@haiilo/catalyst 0.5.0 → 0.5.1

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 (249) hide show
  1. package/dist/catalyst/app-globals-23d8c4a8.js +948 -0
  2. package/dist/catalyst/app-globals-23d8c4a8.js.map +1 -0
  3. package/dist/catalyst/app-globals-3dd6a26b.js +948 -0
  4. package/dist/catalyst/app-globals-3dd6a26b.js.map +1 -0
  5. package/dist/catalyst/app-globals-42ce39cc.js +948 -0
  6. package/dist/catalyst/app-globals-42ce39cc.js.map +1 -0
  7. package/dist/catalyst/app-globals-5cf43b57.js +949 -0
  8. package/dist/catalyst/app-globals-5cf43b57.js.map +1 -0
  9. package/dist/catalyst/app-globals-8598c768.js +948 -0
  10. package/dist/catalyst/app-globals-8598c768.js.map +1 -0
  11. package/dist/catalyst/app-globals-a41af143.js +948 -0
  12. package/dist/catalyst/app-globals-a41af143.js.map +1 -0
  13. package/dist/catalyst/app-globals-c6a8b994.js +949 -0
  14. package/dist/catalyst/app-globals-c6a8b994.js.map +1 -0
  15. package/dist/catalyst/cat-alert.entry.js +33 -0
  16. package/dist/catalyst/cat-alert.entry.js.map +1 -0
  17. package/dist/catalyst/cat-badge.entry.js +44 -0
  18. package/dist/catalyst/cat-badge.entry.js.map +1 -0
  19. package/dist/catalyst/cat-button.entry.js +298 -0
  20. package/dist/catalyst/cat-button.entry.js.map +1 -0
  21. package/dist/catalyst/cat-card.entry.js +17 -0
  22. package/dist/catalyst/cat-card.entry.js.map +1 -0
  23. package/dist/catalyst/cat-checkbox.entry.js +75 -0
  24. package/dist/catalyst/cat-checkbox.entry.js.map +1 -0
  25. package/dist/catalyst/cat-i18n-registry-2a6187c9.js +75 -0
  26. package/dist/catalyst/cat-i18n-registry-2a6187c9.js.map +1 -0
  27. package/dist/catalyst/cat-i18n-registry-330db605.js +74 -0
  28. package/dist/catalyst/cat-i18n-registry-330db605.js.map +1 -0
  29. package/dist/catalyst/cat-i18n-registry-83d20604.js +74 -0
  30. package/dist/catalyst/cat-i18n-registry-83d20604.js.map +1 -0
  31. package/dist/catalyst/cat-i18n-registry-dd55821d.js +73 -0
  32. package/dist/catalyst/cat-i18n-registry-dd55821d.js.map +1 -0
  33. package/dist/catalyst/cat-i18n-registry-f6560651.js +75 -0
  34. package/dist/catalyst/cat-i18n-registry-f6560651.js.map +1 -0
  35. package/dist/catalyst/cat-icon-registry-2dcfc9fb.js +59 -0
  36. package/dist/catalyst/cat-icon-registry-2dcfc9fb.js.map +1 -0
  37. package/dist/catalyst/cat-icon.entry.js +31 -0
  38. package/dist/catalyst/cat-icon.entry.js.map +1 -0
  39. package/dist/catalyst/cat-input.entry.js +111 -0
  40. package/dist/catalyst/cat-input.entry.js.map +1 -0
  41. package/dist/catalyst/cat-menu.entry.js +850 -0
  42. package/dist/catalyst/cat-menu.entry.js.map +1 -0
  43. package/dist/catalyst/cat-radio.entry.js +66 -0
  44. package/dist/catalyst/cat-radio.entry.js.map +1 -0
  45. package/dist/catalyst/cat-scrollable.entry.js +4522 -0
  46. package/dist/catalyst/cat-scrollable.entry.js.map +1 -0
  47. package/dist/catalyst/cat-skeleton.entry.js +55 -0
  48. package/dist/catalyst/cat-skeleton.entry.js.map +1 -0
  49. package/dist/catalyst/cat-spinner.entry.js +23 -0
  50. package/dist/catalyst/cat-spinner.entry.js.map +1 -0
  51. package/dist/catalyst/cat-textarea.entry.js +87 -0
  52. package/dist/catalyst/cat-textarea.entry.js.map +1 -0
  53. package/dist/catalyst/cat-toggle.entry.js +66 -0
  54. package/dist/catalyst/cat-toggle.entry.js.map +1 -0
  55. package/dist/catalyst/cat-tooltip.entry.js +129 -0
  56. package/dist/catalyst/cat-tooltip.entry.js.map +1 -0
  57. package/dist/catalyst/catalyst.css +2033 -1
  58. package/dist/catalyst/catalyst.esm.js +133 -1
  59. package/dist/catalyst/catalyst.esm.js.map +1 -1
  60. package/dist/catalyst/css-shim-e6dd2538.js +6 -0
  61. package/dist/catalyst/css-shim-e6dd2538.js.map +1 -0
  62. package/dist/catalyst/dom-7fc649b0.js +75 -0
  63. package/dist/catalyst/dom-7fc649b0.js.map +1 -0
  64. package/dist/catalyst/first-tabbable-2d9f9e9a.js +2123 -0
  65. package/dist/catalyst/first-tabbable-2d9f9e9a.js.map +1 -0
  66. package/dist/catalyst/index-471d4e05.js +3059 -0
  67. package/dist/catalyst/index-471d4e05.js.map +1 -0
  68. package/dist/catalyst/index-bbb694f5.js +3059 -0
  69. package/dist/catalyst/index-bbb694f5.js.map +1 -0
  70. package/dist/catalyst/index.esm.js +4 -1
  71. package/dist/catalyst/index.esm.js.map +1 -1
  72. package/dist/{esm/cat-icon-registry-77963c26.js → catalyst/loglevel-7f0f71af.js} +35 -126
  73. package/dist/catalyst/loglevel-7f0f71af.js.map +1 -0
  74. package/dist/catalyst/shadow-css-4d56fa31.js +390 -0
  75. package/dist/catalyst/shadow-css-4d56fa31.js.map +1 -0
  76. package/dist/cjs/app-globals-aaefc070.js +950 -0
  77. package/dist/cjs/app-globals-aaefc070.js.map +1 -0
  78. package/dist/cjs/cat-alert.cjs.entry.js +37 -0
  79. package/dist/cjs/cat-alert.cjs.entry.js.map +1 -0
  80. package/dist/cjs/cat-badge.cjs.entry.js +48 -0
  81. package/dist/cjs/cat-badge.cjs.entry.js.map +1 -0
  82. package/dist/cjs/cat-button.cjs.entry.js +302 -0
  83. package/dist/cjs/cat-button.cjs.entry.js.map +1 -0
  84. package/dist/cjs/cat-card.cjs.entry.js +21 -0
  85. package/dist/cjs/cat-card.cjs.entry.js.map +1 -0
  86. package/dist/cjs/cat-checkbox.cjs.entry.js +79 -0
  87. package/dist/cjs/cat-checkbox.cjs.entry.js.map +1 -0
  88. package/dist/cjs/cat-i18n-registry-a1379d1e.js +76 -0
  89. package/dist/cjs/cat-i18n-registry-a1379d1e.js.map +1 -0
  90. package/dist/cjs/cat-icon-registry-74247389.js +61 -0
  91. package/dist/cjs/cat-icon-registry-74247389.js.map +1 -0
  92. package/dist/cjs/cat-icon.cjs.entry.js +35 -0
  93. package/dist/cjs/cat-icon.cjs.entry.js.map +1 -0
  94. package/dist/cjs/cat-input.cjs.entry.js +115 -0
  95. package/dist/cjs/cat-input.cjs.entry.js.map +1 -0
  96. package/dist/cjs/cat-menu.cjs.entry.js +854 -0
  97. package/dist/cjs/cat-menu.cjs.entry.js.map +1 -0
  98. package/dist/cjs/cat-radio.cjs.entry.js +70 -0
  99. package/dist/cjs/cat-radio.cjs.entry.js.map +1 -0
  100. package/dist/cjs/cat-scrollable.cjs.entry.js +4526 -0
  101. package/dist/cjs/cat-scrollable.cjs.entry.js.map +1 -0
  102. package/dist/cjs/cat-skeleton.cjs.entry.js +59 -0
  103. package/dist/cjs/cat-skeleton.cjs.entry.js.map +1 -0
  104. package/dist/cjs/cat-spinner.cjs.entry.js +27 -0
  105. package/dist/cjs/cat-spinner.cjs.entry.js.map +1 -0
  106. package/dist/cjs/cat-textarea.cjs.entry.js +91 -0
  107. package/dist/cjs/cat-textarea.cjs.entry.js.map +1 -0
  108. package/dist/cjs/cat-toggle.cjs.entry.js +70 -0
  109. package/dist/cjs/cat-toggle.cjs.entry.js.map +1 -0
  110. package/dist/cjs/cat-tooltip.cjs.entry.js +133 -0
  111. package/dist/cjs/cat-tooltip.cjs.entry.js.map +1 -0
  112. package/dist/cjs/catalyst.cjs.js +118 -6
  113. package/dist/cjs/catalyst.cjs.js.map +1 -1
  114. package/dist/cjs/css-shim-6ca600c2.js +8 -0
  115. package/dist/cjs/css-shim-6ca600c2.js.map +1 -0
  116. package/dist/cjs/dom-8d415461.js +77 -0
  117. package/dist/cjs/dom-8d415461.js.map +1 -0
  118. package/dist/cjs/first-tabbable-2068dcc6.js +2133 -0
  119. package/dist/cjs/first-tabbable-2068dcc6.js.map +1 -0
  120. package/dist/cjs/index-abcb3941.js +3094 -0
  121. package/dist/cjs/index-abcb3941.js.map +1 -0
  122. package/dist/cjs/index.cjs.js +4 -2
  123. package/dist/cjs/index.cjs.js.map +1 -1
  124. package/dist/cjs/loader.cjs.js +20 -4
  125. package/dist/cjs/loader.cjs.js.map +1 -1
  126. package/dist/cjs/{cat-icon-registry-6895750f.js → loglevel-24040e9d.js} +34 -127
  127. package/dist/cjs/loglevel-24040e9d.js.map +1 -0
  128. package/dist/cjs/shadow-css-78860e39.js +392 -0
  129. package/dist/cjs/shadow-css-78860e39.js.map +1 -0
  130. package/dist/collection/components/cat-i18n/cat-i18n-registry.js +2 -1
  131. package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
  132. package/dist/components/cat-i18n-registry.js +2 -1
  133. package/dist/components/cat-i18n-registry.js.map +1 -1
  134. package/dist/components/cat-scrollable.js +3209 -23
  135. package/dist/components/cat-scrollable.js.map +1 -1
  136. package/dist/components/first-tabbable.js +627 -0
  137. package/dist/components/first-tabbable.js.map +1 -1
  138. package/dist/components/index.js +769 -0
  139. package/dist/components/index.js.map +1 -1
  140. package/dist/components/loglevel.js +33 -2
  141. package/dist/components/loglevel.js.map +1 -1
  142. package/dist/esm/app-globals-3dd6a26b.js +948 -0
  143. package/dist/esm/app-globals-3dd6a26b.js.map +1 -0
  144. package/dist/esm/cat-alert.entry.js +33 -0
  145. package/dist/esm/cat-alert.entry.js.map +1 -0
  146. package/dist/esm/cat-badge.entry.js +44 -0
  147. package/dist/esm/cat-badge.entry.js.map +1 -0
  148. package/dist/esm/cat-button.entry.js +298 -0
  149. package/dist/esm/cat-button.entry.js.map +1 -0
  150. package/dist/esm/cat-card.entry.js +17 -0
  151. package/dist/esm/cat-card.entry.js.map +1 -0
  152. package/dist/esm/cat-checkbox.entry.js +75 -0
  153. package/dist/esm/cat-checkbox.entry.js.map +1 -0
  154. package/dist/esm/cat-i18n-registry-83d20604.js +74 -0
  155. package/dist/esm/cat-i18n-registry-83d20604.js.map +1 -0
  156. package/dist/esm/cat-icon-registry-2dcfc9fb.js +59 -0
  157. package/dist/esm/cat-icon-registry-2dcfc9fb.js.map +1 -0
  158. package/dist/esm/cat-icon.entry.js +31 -0
  159. package/dist/esm/cat-icon.entry.js.map +1 -0
  160. package/dist/esm/cat-input.entry.js +111 -0
  161. package/dist/esm/cat-input.entry.js.map +1 -0
  162. package/dist/esm/cat-menu.entry.js +850 -0
  163. package/dist/esm/cat-menu.entry.js.map +1 -0
  164. package/dist/esm/cat-radio.entry.js +66 -0
  165. package/dist/esm/cat-radio.entry.js.map +1 -0
  166. package/dist/esm/cat-scrollable.entry.js +4522 -0
  167. package/dist/esm/cat-scrollable.entry.js.map +1 -0
  168. package/dist/esm/cat-skeleton.entry.js +55 -0
  169. package/dist/esm/cat-skeleton.entry.js.map +1 -0
  170. package/dist/esm/cat-spinner.entry.js +23 -0
  171. package/dist/esm/cat-spinner.entry.js.map +1 -0
  172. package/dist/esm/cat-textarea.entry.js +87 -0
  173. package/dist/esm/cat-textarea.entry.js.map +1 -0
  174. package/dist/esm/cat-toggle.entry.js +66 -0
  175. package/dist/esm/cat-toggle.entry.js.map +1 -0
  176. package/dist/esm/cat-tooltip.entry.js +129 -0
  177. package/dist/esm/cat-tooltip.entry.js.map +1 -0
  178. package/dist/esm/catalyst.js +118 -6
  179. package/dist/esm/catalyst.js.map +1 -1
  180. package/dist/esm/css-shim-e6dd2538.js +6 -0
  181. package/dist/esm/css-shim-e6dd2538.js.map +1 -0
  182. package/dist/esm/dom-7fc649b0.js +75 -0
  183. package/dist/esm/dom-7fc649b0.js.map +1 -0
  184. package/dist/esm/first-tabbable-2d9f9e9a.js +2123 -0
  185. package/dist/esm/first-tabbable-2d9f9e9a.js.map +1 -0
  186. package/dist/esm/index-471d4e05.js +3059 -0
  187. package/dist/esm/index-471d4e05.js.map +1 -0
  188. package/dist/esm/index.js +3 -1
  189. package/dist/esm/index.js.map +1 -1
  190. package/dist/esm/loader.js +20 -4
  191. package/dist/esm/loader.js.map +1 -1
  192. package/dist/esm/loglevel-7f0f71af.js +346 -0
  193. package/dist/esm/loglevel-7f0f71af.js.map +1 -0
  194. package/dist/esm/shadow-css-4d56fa31.js +390 -0
  195. package/dist/esm/shadow-css-4d56fa31.js.map +1 -0
  196. package/dist/types/components/cat-alert/cat-alert.e2e.d.ts +1 -0
  197. package/dist/types/components/cat-alert/cat-alert.spec.d.ts +1 -0
  198. package/dist/types/components/cat-badge/cat-badge.e2e.d.ts +1 -0
  199. package/dist/types/components/cat-badge/cat-badge.spec.d.ts +1 -0
  200. package/dist/types/components/cat-button/cat-button.e2e.d.ts +1 -0
  201. package/dist/types/components/cat-button/cat-button.spec.d.ts +1 -0
  202. package/dist/types/components/cat-card/cat-card.e2e.d.ts +1 -0
  203. package/dist/types/components/cat-card/cat-card.spec.d.ts +1 -0
  204. package/dist/types/components/cat-checkbox/cat-checkbox.e2e.d.ts +1 -0
  205. package/dist/types/components/cat-checkbox/cat-checkbox.spec.d.ts +1 -0
  206. package/dist/types/components/cat-icon/cat-icon.e2e.d.ts +1 -0
  207. package/dist/types/components/cat-icon/cat-icon.spec.d.ts +1 -0
  208. package/dist/types/components/cat-input/cat-input.e2e.d.ts +1 -0
  209. package/dist/types/components/cat-input/cat-input.spec.d.ts +1 -0
  210. package/dist/types/components/cat-menu/cat-menu.e2e.d.ts +1 -0
  211. package/dist/types/components/cat-menu/cat-menu.spec.d.ts +1 -0
  212. package/dist/types/components/cat-radio/cat-radio.e2e.d.ts +1 -0
  213. package/dist/types/components/cat-radio/cat-radio.spec.d.ts +1 -0
  214. package/dist/types/components/cat-scrollable/cat-scrollable.e2e.d.ts +1 -0
  215. package/dist/types/components/cat-scrollable/cat-scrollable.spec.d.ts +1 -0
  216. package/dist/types/components/cat-skeleton/cat-skeleton.e2e.d.ts +1 -0
  217. package/dist/types/components/cat-skeleton/cat-skeleton.spec.d.ts +1 -0
  218. package/dist/types/components/cat-spinner/cat-spinner.e2e.d.ts +1 -0
  219. package/dist/types/components/cat-spinner/cat-spinner.spec.d.ts +1 -0
  220. package/dist/types/components/cat-textarea/cat-textarea.e2e.d.ts +1 -0
  221. package/dist/types/components/cat-textarea/cat-textarea.spec.d.ts +1 -0
  222. package/dist/types/components/cat-toggle/cat-toggle.e2e.d.ts +1 -0
  223. package/dist/types/components/cat-toggle/cat-toggle.spec.d.ts +1 -0
  224. package/dist/types/components/cat-tooltip/cat-tooltip.e2e.d.ts +1 -0
  225. package/dist/types/components/cat-tooltip/cat-tooltip.spec.d.ts +1 -0
  226. package/dist/types/utils/media-matcher.spec.d.ts +1 -0
  227. package/package.json +3 -3
  228. package/dist/catalyst/p-23d54bc6.js +0 -2
  229. package/dist/catalyst/p-23d54bc6.js.map +0 -1
  230. package/dist/catalyst/p-84693f87.entry.js +0 -24
  231. package/dist/catalyst/p-84693f87.entry.js.map +0 -1
  232. package/dist/catalyst/p-8f5cfa78.js +0 -2
  233. package/dist/catalyst/p-8f5cfa78.js.map +0 -1
  234. package/dist/catalyst/p-fa7da4c6.js +0 -2
  235. package/dist/catalyst/p-fa7da4c6.js.map +0 -1
  236. package/dist/cjs/app-globals-50e7504d.js +0 -180
  237. package/dist/cjs/app-globals-50e7504d.js.map +0 -1
  238. package/dist/cjs/cat-alert_15.cjs.entry.js +0 -4652
  239. package/dist/cjs/cat-alert_15.cjs.entry.js.map +0 -1
  240. package/dist/cjs/cat-icon-registry-6895750f.js.map +0 -1
  241. package/dist/cjs/index-2db8e23d.js +0 -1347
  242. package/dist/cjs/index-2db8e23d.js.map +0 -1
  243. package/dist/esm/app-globals-6906ac5c.js +0 -178
  244. package/dist/esm/app-globals-6906ac5c.js.map +0 -1
  245. package/dist/esm/cat-alert_15.entry.js +0 -4634
  246. package/dist/esm/cat-alert_15.entry.js.map +0 -1
  247. package/dist/esm/cat-icon-registry-77963c26.js.map +0 -1
  248. package/dist/esm/index-1f3ca03b.js +0 -1320
  249. package/dist/esm/index-1f3ca03b.js.map +0 -1
@@ -0,0 +1,111 @@
1
+ import { r as registerInstance, f as createEvent, h, e as Host } from './index-471d4e05.js';
2
+ import { l as loglevel } from './loglevel-7f0f71af.js';
3
+ import { C as CatI18nRegistry } from './cat-i18n-registry-83d20604.js';
4
+
5
+ const catInputCss = ":host{display:flex;flex-direction:column;gap:0.5rem;font-size:0.9375rem;line-height:1.25rem;margin-bottom:1rem}:host([hidden]){display:none}.input-wrapper{display:flex;align-items:stretch;gap:0.5rem;padding:0 0.75rem;height:2.5rem;overflow:hidden;background:white;border-radius:0.25rem;box-shadow:0 0 0 1px #d7dbe0;transition:box-shadow 0.13s linear}.input-wrapper.input-round{border-radius:10rem}.input-wrapper.input-disabled{background:#f8f8fb;cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.input-wrapper:not(.input-disabled):hover{box-shadow:0 0 0 2px #d7dbe0}.input-wrapper:not(.input-disabled):focus-within{outline:2px solid rgb(var(--cat-border-color-focus, 0, 113, 255))}label{display:block;align-self:flex-start}label.hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.input-optional{margin-left:0.25rem;font-size:0.75rem;line-height:1rem;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.text-prefix,.text-suffix{display:inline-flex;align-items:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.text-prefix{border-right:1px solid #d7dbe0;padding-right:0.5rem}.text-suffix{border-left:1px solid #d7dbe0;padding-left:0.5rem}.icon-prefix,.icon-suffix{align-self:center}.input-inner-wrapper{display:flex;position:relative}input{font:inherit;margin:0;padding:0;width:100%;min-width:0;border:none;outline:none;background:none}.input-disabled input{cursor:not-allowed;color:rgb(var(--cat-font-color-muted, 105, 118, 135))}input.has-clearable{padding-right:2rem}input::placeholder{color:rgb(var(--cat-font-color-muted, 105, 118, 135))}.clearable{position:absolute;top:calc(50% - 1rem);right:-0.25rem}.input-hint{font-size:0.875rem;line-height:1rem;margin:0}";
6
+
7
+ let nextUniqueId = 0;
8
+ const CatInput = class {
9
+ constructor(hostRef) {
10
+ registerInstance(this, hostRef);
11
+ this.catChange = createEvent(this, "catChange", 7);
12
+ this.catFocus = createEvent(this, "catFocus", 7);
13
+ this.catBlur = createEvent(this, "catBlur", 7);
14
+ this.i18n = CatI18nRegistry.getInstance();
15
+ this.id = `cat-input-${nextUniqueId++}`;
16
+ this.inputValue = '';
17
+ /**
18
+ * Whether the input should show a clear button.
19
+ */
20
+ this.clearable = false;
21
+ /**
22
+ * Whether the input is disabled.
23
+ */
24
+ this.disabled = false;
25
+ /**
26
+ * Display the icon on the right.
27
+ */
28
+ this.iconRight = false;
29
+ /**
30
+ * The label for the input.
31
+ */
32
+ this.label = '';
33
+ /**
34
+ * Visually hide the label, but still show it to assistive technologies like screen readers.
35
+ */
36
+ this.labelHidden = false;
37
+ /**
38
+ * The name of the form control. Submitted with the form as part of a name/value pair.
39
+ */
40
+ this.name = '';
41
+ /**
42
+ * The value is not editable.
43
+ */
44
+ this.readonly = false;
45
+ /**
46
+ * A value is required or must be check for the form to be submittable.
47
+ */
48
+ this.required = false;
49
+ /**
50
+ * Use round input edges.
51
+ */
52
+ this.round = false;
53
+ /**
54
+ * Type of form control.
55
+ */
56
+ this.type = 'text';
57
+ }
58
+ onValueChange(value) {
59
+ this.inputValue = '' + (value !== null && value !== void 0 ? value : '');
60
+ }
61
+ componentWillLoad() {
62
+ this.onValueChange(this.value);
63
+ }
64
+ componentWillRender() {
65
+ if (!this.label) {
66
+ loglevel.error('[A11y] Missing ARIA label on input', this);
67
+ }
68
+ }
69
+ /**
70
+ * Sets focus on the input. Use this method instead of `input.focus()`.
71
+ *
72
+ * @param options An optional object providing options to control aspects of
73
+ * the focusing process.
74
+ */
75
+ async setFocus(options) {
76
+ this.input.focus(options);
77
+ }
78
+ /**
79
+ * Clear the input.
80
+ */
81
+ async clear() {
82
+ this.inputValue = '';
83
+ }
84
+ render() {
85
+ return (h(Host, null, this.label && (h("label", { htmlFor: this.id, class: { hidden: this.labelHidden } }, h("span", { part: "label" }, this.label, !this.required && (h("span", { class: "input-optional", "aria-hidden": "true" }, "(", this.i18n.getMessage('input.optional'), ")"))))), h("div", { class: {
86
+ 'input-wrapper': true,
87
+ 'input-round': this.round,
88
+ 'input-disabled': this.disabled
89
+ }, onClick: () => this.input.focus() }, this.textPrefix && (h("span", { class: "text-prefix", part: "prefix" }, this.textPrefix)), this.icon && !this.iconRight && h("cat-icon", { icon: this.icon, class: "icon-prefix" }), h("div", { class: "input-inner-wrapper" }, h("input", { ref: el => (this.input = el), id: this.id, class: {
90
+ 'has-clearable': this.clearable && !this.disabled
91
+ }, autocomplete: this.autoComplete, disabled: this.disabled, max: this.max, maxlength: this.maxLength, min: this.max, minlength: this.minLength, name: this.name, placeholder: this.placeholder, readonly: this.readonly, required: this.required, type: this.type, value: this.inputValue, onInput: this.onInput.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }), this.clearable && !this.disabled && this.inputValue && (h("cat-button", { class: "clearable", icon: "cross-circle-outlined", "icon-only": "true", size: "s", variant: "text", round: true, "a11y-label": "sdf", onClick: this.clear.bind(this) }, this.i18n.getMessage('input.clear')))), this.icon && this.iconRight && h("cat-icon", { icon: this.icon, class: "icon-suffix" }), this.textSuffix && (h("span", { class: "text-suffix", part: "suffix" }, this.textSuffix))), this.hint && h("p", { class: "input-hint" }, this.hint)));
92
+ }
93
+ onInput(event) {
94
+ this.inputValue = this.input.value;
95
+ this.catChange.emit(event);
96
+ }
97
+ onFocus(event) {
98
+ this.catFocus.emit(event);
99
+ }
100
+ onBlur(event) {
101
+ this.catBlur.emit(event);
102
+ }
103
+ static get watchers() { return {
104
+ "value": ["onValueChange"]
105
+ }; }
106
+ };
107
+ CatInput.style = catInputCss;
108
+
109
+ export { CatInput as cat_input };
110
+
111
+ //# sourceMappingURL=cat-input.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"cat-input.entry.esm.js","mappings":"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","names":["log"],"sources":["./src/components/cat-input/cat-input.scss?tag=cat-input&encapsulation=shadow","./src/components/cat-input/cat-input.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n @include cat-body('m');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.input-wrapper {\n display: flex;\n align-items: stretch;\n gap: 0.5rem;\n padding: 0 0.75rem;\n height: cat-size('m');\n overflow: hidden;\n background: cat-token('color.ui.background.input');\n border-radius: cat-border-radius('m');\n box-shadow: 0 0 0 1px cat-token('color.ui.border.input');\n transition: box-shadow cat-token('time.transition.s') linear;\n\n &.input-round {\n border-radius: 10rem;\n }\n\n &.input-disabled {\n background: cat-token('color.ui.background.inputDisabled');\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &:not(.input-disabled) {\n &:hover {\n box-shadow: 0 0 0 2px cat-token('color.ui.border.input');\n }\n\n &:focus-within {\n outline: 2px solid cat-token('color.ui.border.focus');\n }\n }\n}\n\nlabel {\n display: block;\n align-self: flex-start;\n\n &.hidden {\n @include cat-visually-hidden;\n }\n}\n\n.input-optional {\n margin-left: 0.25rem;\n @include cat-body('xs');\n color: cat-token('color.ui.font.muted');\n}\n\n.text-prefix,\n.text-suffix {\n display: inline-flex;\n align-items: center;\n @include cat-select(none);\n}\n\n.text-prefix {\n border-right: 1px solid cat-token('color.ui.border.input');\n padding-right: 0.5rem;\n}\n\n.text-suffix {\n border-left: 1px solid cat-token('color.ui.border.input');\n padding-left: 0.5rem;\n}\n\n.icon-prefix,\n.icon-suffix {\n align-self: center;\n}\n\n.input-inner-wrapper {\n display: flex;\n position: relative;\n}\n\ninput {\n font: inherit;\n margin: 0;\n padding: 0;\n width: 100%;\n min-width: 0;\n border: none;\n outline: none;\n background: none;\n\n .input-disabled & {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &.has-clearable {\n padding-right: cat-size('s');\n }\n\n &::placeholder {\n color: cat-token('color.ui.font.muted');\n }\n}\n\n.clearable {\n position: absolute;\n top: calc(50% - cat-size('s') / 2);\n right: -0.25rem;\n}\n\n.input-hint {\n @include cat-body('s');\n margin: 0;\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';\n\nlet nextUniqueId = 0;\n\n/**\n * Inputs are used to allow users to provide text input when the expected input\n * is short. As well as plain text, Input supports various types of text,\n * including passwords and numbers.\n *\n * @part label - The label content.\n * @part prefix - The text prefix.\n * @part suffix - The text suffix.\n */\n@Component({\n tag: 'cat-input',\n styleUrl: 'cat-input.scss',\n shadow: true\n})\nexport class CatInput {\n private readonly i18n = CatI18nRegistry.getInstance();\n private readonly id = `cat-input-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @State() private inputValue = '';\n\n /**\n * Hint for form autofill feature.\n */\n @Prop() autoComplete?: string;\n\n /**\n * Whether the input should show a clear button.\n */\n @Prop() clearable = false;\n\n /**\n * Whether the input is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Optional hint text to be displayed with the input.\n */\n @Prop() hint?: string;\n\n /**\n * The name of an icon to be displayed in the input.\n */\n @Prop() icon?: string;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * The label for the input.\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 * A maximum value for numeric values.\n */\n @Prop() max?: number;\n\n /**\n * A maximum length (number of characters) for textual values.\n */\n @Prop() maxLength?: number;\n\n /**\n * A minimum value for numeric values.\n */\n @Prop() min?: number;\n\n /**\n * A minimum length (number of characters) for textual values.\n */\n @Prop() minLength?: number;\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name = '';\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * A textual prefix to be displayed in the input.\n */\n @Prop() textPrefix?: string;\n\n /**\n * A textual suffix to be displayed in the input.\n */\n @Prop() textSuffix?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * Use round input edges.\n */\n @Prop() round = false;\n\n /**\n * Type of form control.\n */\n @Prop() type: 'text' | 'email' | 'password' | 'tel' | 'url' | 'search' | 'number' = 'text';\n\n /**\n * The initial value of the control.\n */\n @Prop() value?: string | number;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the input received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n @Watch('value')\n onValueChange(value?: string | number) {\n this.inputValue = '' + (value ?? '');\n }\n\n componentWillLoad() {\n this.onValueChange(this.value);\n }\n\n componentWillRender(): void {\n if (!this.label) {\n log.error('[A11y] Missing ARIA label on input', this);\n }\n }\n\n /**\n * Sets focus on the input. Use this method instead of `input.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 /**\n * Clear the input.\n */\n @Method()\n async clear(): Promise<void> {\n this.inputValue = '';\n }\n\n render() {\n return (\n <Host>\n {this.label && (\n <label htmlFor={this.id} class={{ hidden: this.labelHidden }}>\n <span part=\"label\">\n {this.label}\n {!this.required && (\n <span class=\"input-optional\" aria-hidden=\"true\">\n ({this.i18n.getMessage('input.optional')})\n </span>\n )}\n </span>\n </label>\n )}\n <div\n class={{\n 'input-wrapper': true,\n 'input-round': this.round,\n 'input-disabled': this.disabled\n }}\n onClick={() => this.input.focus()}\n >\n {this.textPrefix && (\n <span class=\"text-prefix\" part=\"prefix\">\n {this.textPrefix}\n </span>\n )}\n {this.icon && !this.iconRight && <cat-icon icon={this.icon} class=\"icon-prefix\"></cat-icon>}\n <div class=\"input-inner-wrapper\">\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n class={{\n 'has-clearable': this.clearable && !this.disabled\n }}\n autocomplete={this.autoComplete}\n disabled={this.disabled}\n max={this.max}\n maxlength={this.maxLength}\n min={this.max}\n minlength={this.minLength}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n type={this.type}\n value={this.inputValue}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n ></input>\n {this.clearable && !this.disabled && this.inputValue && (\n <cat-button\n class=\"clearable\"\n icon=\"cross-circle-outlined\"\n icon-only=\"true\"\n size=\"s\"\n variant=\"text\"\n round\n a11y-label=\"sdf\"\n onClick={this.clear.bind(this)}\n >\n {this.i18n.getMessage('input.clear')}\n </cat-button>\n )}\n </div>\n {this.icon && this.iconRight && <cat-icon icon={this.icon} class=\"icon-suffix\"></cat-icon>}\n {this.textSuffix && (\n <span class=\"text-suffix\" part=\"suffix\">\n {this.textSuffix}\n </span>\n )}\n </div>\n {this.hint && <p class=\"input-hint\">{this.hint}</p>}\n </Host>\n );\n }\n\n private onInput(event: Event) {\n this.inputValue = this.input.value;\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"],"version":3}