@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.
- package/dist/catalyst/app-globals-23d8c4a8.js +948 -0
- package/dist/catalyst/app-globals-23d8c4a8.js.map +1 -0
- package/dist/catalyst/app-globals-3dd6a26b.js +948 -0
- package/dist/catalyst/app-globals-3dd6a26b.js.map +1 -0
- package/dist/catalyst/app-globals-42ce39cc.js +948 -0
- package/dist/catalyst/app-globals-42ce39cc.js.map +1 -0
- package/dist/catalyst/app-globals-5cf43b57.js +949 -0
- package/dist/catalyst/app-globals-5cf43b57.js.map +1 -0
- package/dist/catalyst/app-globals-8598c768.js +948 -0
- package/dist/catalyst/app-globals-8598c768.js.map +1 -0
- package/dist/catalyst/app-globals-a41af143.js +948 -0
- package/dist/catalyst/app-globals-a41af143.js.map +1 -0
- package/dist/catalyst/app-globals-c6a8b994.js +949 -0
- package/dist/catalyst/app-globals-c6a8b994.js.map +1 -0
- package/dist/catalyst/cat-alert.entry.js +33 -0
- package/dist/catalyst/cat-alert.entry.js.map +1 -0
- package/dist/catalyst/cat-badge.entry.js +44 -0
- package/dist/catalyst/cat-badge.entry.js.map +1 -0
- package/dist/catalyst/cat-button.entry.js +298 -0
- package/dist/catalyst/cat-button.entry.js.map +1 -0
- package/dist/catalyst/cat-card.entry.js +17 -0
- package/dist/catalyst/cat-card.entry.js.map +1 -0
- package/dist/catalyst/cat-checkbox.entry.js +75 -0
- package/dist/catalyst/cat-checkbox.entry.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-2a6187c9.js +75 -0
- package/dist/catalyst/cat-i18n-registry-2a6187c9.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-330db605.js +74 -0
- package/dist/catalyst/cat-i18n-registry-330db605.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-83d20604.js +74 -0
- package/dist/catalyst/cat-i18n-registry-83d20604.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-dd55821d.js +73 -0
- package/dist/catalyst/cat-i18n-registry-dd55821d.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-f6560651.js +75 -0
- package/dist/catalyst/cat-i18n-registry-f6560651.js.map +1 -0
- package/dist/catalyst/cat-icon-registry-2dcfc9fb.js +59 -0
- package/dist/catalyst/cat-icon-registry-2dcfc9fb.js.map +1 -0
- package/dist/catalyst/cat-icon.entry.js +31 -0
- package/dist/catalyst/cat-icon.entry.js.map +1 -0
- package/dist/catalyst/cat-input.entry.js +111 -0
- package/dist/catalyst/cat-input.entry.js.map +1 -0
- package/dist/catalyst/cat-menu.entry.js +850 -0
- package/dist/catalyst/cat-menu.entry.js.map +1 -0
- package/dist/catalyst/cat-radio.entry.js +66 -0
- package/dist/catalyst/cat-radio.entry.js.map +1 -0
- package/dist/catalyst/cat-scrollable.entry.js +4522 -0
- package/dist/catalyst/cat-scrollable.entry.js.map +1 -0
- package/dist/catalyst/cat-skeleton.entry.js +55 -0
- package/dist/catalyst/cat-skeleton.entry.js.map +1 -0
- package/dist/catalyst/cat-spinner.entry.js +23 -0
- package/dist/catalyst/cat-spinner.entry.js.map +1 -0
- package/dist/catalyst/cat-textarea.entry.js +87 -0
- package/dist/catalyst/cat-textarea.entry.js.map +1 -0
- package/dist/catalyst/cat-toggle.entry.js +66 -0
- package/dist/catalyst/cat-toggle.entry.js.map +1 -0
- package/dist/catalyst/cat-tooltip.entry.js +129 -0
- package/dist/catalyst/cat-tooltip.entry.js.map +1 -0
- package/dist/catalyst/catalyst.css +2033 -1
- package/dist/catalyst/catalyst.esm.js +133 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/css-shim-e6dd2538.js +6 -0
- package/dist/catalyst/css-shim-e6dd2538.js.map +1 -0
- package/dist/catalyst/dom-7fc649b0.js +75 -0
- package/dist/catalyst/dom-7fc649b0.js.map +1 -0
- package/dist/catalyst/first-tabbable-2d9f9e9a.js +2123 -0
- package/dist/catalyst/first-tabbable-2d9f9e9a.js.map +1 -0
- package/dist/catalyst/index-471d4e05.js +3059 -0
- package/dist/catalyst/index-471d4e05.js.map +1 -0
- package/dist/catalyst/index-bbb694f5.js +3059 -0
- package/dist/catalyst/index-bbb694f5.js.map +1 -0
- package/dist/catalyst/index.esm.js +4 -1
- package/dist/catalyst/index.esm.js.map +1 -1
- package/dist/{esm/cat-icon-registry-77963c26.js → catalyst/loglevel-7f0f71af.js} +35 -126
- package/dist/catalyst/loglevel-7f0f71af.js.map +1 -0
- package/dist/catalyst/shadow-css-4d56fa31.js +390 -0
- package/dist/catalyst/shadow-css-4d56fa31.js.map +1 -0
- package/dist/cjs/app-globals-aaefc070.js +950 -0
- package/dist/cjs/app-globals-aaefc070.js.map +1 -0
- package/dist/cjs/cat-alert.cjs.entry.js +37 -0
- package/dist/cjs/cat-alert.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-badge.cjs.entry.js +48 -0
- package/dist/cjs/cat-badge.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-button.cjs.entry.js +302 -0
- package/dist/cjs/cat-button.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-card.cjs.entry.js +21 -0
- package/dist/cjs/cat-card.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-checkbox.cjs.entry.js +79 -0
- package/dist/cjs/cat-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-i18n-registry-a1379d1e.js +76 -0
- package/dist/cjs/cat-i18n-registry-a1379d1e.js.map +1 -0
- package/dist/cjs/cat-icon-registry-74247389.js +61 -0
- package/dist/cjs/cat-icon-registry-74247389.js.map +1 -0
- package/dist/cjs/cat-icon.cjs.entry.js +35 -0
- package/dist/cjs/cat-icon.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-input.cjs.entry.js +115 -0
- package/dist/cjs/cat-input.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-menu.cjs.entry.js +854 -0
- package/dist/cjs/cat-menu.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-radio.cjs.entry.js +70 -0
- package/dist/cjs/cat-radio.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-scrollable.cjs.entry.js +4526 -0
- package/dist/cjs/cat-scrollable.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-skeleton.cjs.entry.js +59 -0
- package/dist/cjs/cat-skeleton.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-spinner.cjs.entry.js +27 -0
- package/dist/cjs/cat-spinner.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-textarea.cjs.entry.js +91 -0
- package/dist/cjs/cat-textarea.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-toggle.cjs.entry.js +70 -0
- package/dist/cjs/cat-toggle.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-tooltip.cjs.entry.js +133 -0
- package/dist/cjs/cat-tooltip.cjs.entry.js.map +1 -0
- package/dist/cjs/catalyst.cjs.js +118 -6
- package/dist/cjs/catalyst.cjs.js.map +1 -1
- package/dist/cjs/css-shim-6ca600c2.js +8 -0
- package/dist/cjs/css-shim-6ca600c2.js.map +1 -0
- package/dist/cjs/dom-8d415461.js +77 -0
- package/dist/cjs/dom-8d415461.js.map +1 -0
- package/dist/cjs/first-tabbable-2068dcc6.js +2133 -0
- package/dist/cjs/first-tabbable-2068dcc6.js.map +1 -0
- package/dist/cjs/index-abcb3941.js +3094 -0
- package/dist/cjs/index-abcb3941.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +20 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{cat-icon-registry-6895750f.js → loglevel-24040e9d.js} +34 -127
- package/dist/cjs/loglevel-24040e9d.js.map +1 -0
- package/dist/cjs/shadow-css-78860e39.js +392 -0
- package/dist/cjs/shadow-css-78860e39.js.map +1 -0
- package/dist/collection/components/cat-i18n/cat-i18n-registry.js +2 -1
- package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
- package/dist/components/cat-i18n-registry.js +2 -1
- package/dist/components/cat-i18n-registry.js.map +1 -1
- package/dist/components/cat-scrollable.js +3209 -23
- package/dist/components/cat-scrollable.js.map +1 -1
- package/dist/components/first-tabbable.js +627 -0
- package/dist/components/first-tabbable.js.map +1 -1
- package/dist/components/index.js +769 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/loglevel.js +33 -2
- package/dist/components/loglevel.js.map +1 -1
- package/dist/esm/app-globals-3dd6a26b.js +948 -0
- package/dist/esm/app-globals-3dd6a26b.js.map +1 -0
- package/dist/esm/cat-alert.entry.js +33 -0
- package/dist/esm/cat-alert.entry.js.map +1 -0
- package/dist/esm/cat-badge.entry.js +44 -0
- package/dist/esm/cat-badge.entry.js.map +1 -0
- package/dist/esm/cat-button.entry.js +298 -0
- package/dist/esm/cat-button.entry.js.map +1 -0
- package/dist/esm/cat-card.entry.js +17 -0
- package/dist/esm/cat-card.entry.js.map +1 -0
- package/dist/esm/cat-checkbox.entry.js +75 -0
- package/dist/esm/cat-checkbox.entry.js.map +1 -0
- package/dist/esm/cat-i18n-registry-83d20604.js +74 -0
- package/dist/esm/cat-i18n-registry-83d20604.js.map +1 -0
- package/dist/esm/cat-icon-registry-2dcfc9fb.js +59 -0
- package/dist/esm/cat-icon-registry-2dcfc9fb.js.map +1 -0
- package/dist/esm/cat-icon.entry.js +31 -0
- package/dist/esm/cat-icon.entry.js.map +1 -0
- package/dist/esm/cat-input.entry.js +111 -0
- package/dist/esm/cat-input.entry.js.map +1 -0
- package/dist/esm/cat-menu.entry.js +850 -0
- package/dist/esm/cat-menu.entry.js.map +1 -0
- package/dist/esm/cat-radio.entry.js +66 -0
- package/dist/esm/cat-radio.entry.js.map +1 -0
- package/dist/esm/cat-scrollable.entry.js +4522 -0
- package/dist/esm/cat-scrollable.entry.js.map +1 -0
- package/dist/esm/cat-skeleton.entry.js +55 -0
- package/dist/esm/cat-skeleton.entry.js.map +1 -0
- package/dist/esm/cat-spinner.entry.js +23 -0
- package/dist/esm/cat-spinner.entry.js.map +1 -0
- package/dist/esm/cat-textarea.entry.js +87 -0
- package/dist/esm/cat-textarea.entry.js.map +1 -0
- package/dist/esm/cat-toggle.entry.js +66 -0
- package/dist/esm/cat-toggle.entry.js.map +1 -0
- package/dist/esm/cat-tooltip.entry.js +129 -0
- package/dist/esm/cat-tooltip.entry.js.map +1 -0
- package/dist/esm/catalyst.js +118 -6
- package/dist/esm/catalyst.js.map +1 -1
- package/dist/esm/css-shim-e6dd2538.js +6 -0
- package/dist/esm/css-shim-e6dd2538.js.map +1 -0
- package/dist/esm/dom-7fc649b0.js +75 -0
- package/dist/esm/dom-7fc649b0.js.map +1 -0
- package/dist/esm/first-tabbable-2d9f9e9a.js +2123 -0
- package/dist/esm/first-tabbable-2d9f9e9a.js.map +1 -0
- package/dist/esm/index-471d4e05.js +3059 -0
- package/dist/esm/index-471d4e05.js.map +1 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +20 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/loglevel-7f0f71af.js +346 -0
- package/dist/esm/loglevel-7f0f71af.js.map +1 -0
- package/dist/esm/shadow-css-4d56fa31.js +390 -0
- package/dist/esm/shadow-css-4d56fa31.js.map +1 -0
- package/dist/types/components/cat-alert/cat-alert.e2e.d.ts +1 -0
- package/dist/types/components/cat-alert/cat-alert.spec.d.ts +1 -0
- package/dist/types/components/cat-badge/cat-badge.e2e.d.ts +1 -0
- package/dist/types/components/cat-badge/cat-badge.spec.d.ts +1 -0
- package/dist/types/components/cat-button/cat-button.e2e.d.ts +1 -0
- package/dist/types/components/cat-button/cat-button.spec.d.ts +1 -0
- package/dist/types/components/cat-card/cat-card.e2e.d.ts +1 -0
- package/dist/types/components/cat-card/cat-card.spec.d.ts +1 -0
- package/dist/types/components/cat-checkbox/cat-checkbox.e2e.d.ts +1 -0
- package/dist/types/components/cat-checkbox/cat-checkbox.spec.d.ts +1 -0
- package/dist/types/components/cat-icon/cat-icon.e2e.d.ts +1 -0
- package/dist/types/components/cat-icon/cat-icon.spec.d.ts +1 -0
- package/dist/types/components/cat-input/cat-input.e2e.d.ts +1 -0
- package/dist/types/components/cat-input/cat-input.spec.d.ts +1 -0
- package/dist/types/components/cat-menu/cat-menu.e2e.d.ts +1 -0
- package/dist/types/components/cat-menu/cat-menu.spec.d.ts +1 -0
- package/dist/types/components/cat-radio/cat-radio.e2e.d.ts +1 -0
- package/dist/types/components/cat-radio/cat-radio.spec.d.ts +1 -0
- package/dist/types/components/cat-scrollable/cat-scrollable.e2e.d.ts +1 -0
- package/dist/types/components/cat-scrollable/cat-scrollable.spec.d.ts +1 -0
- package/dist/types/components/cat-skeleton/cat-skeleton.e2e.d.ts +1 -0
- package/dist/types/components/cat-skeleton/cat-skeleton.spec.d.ts +1 -0
- package/dist/types/components/cat-spinner/cat-spinner.e2e.d.ts +1 -0
- package/dist/types/components/cat-spinner/cat-spinner.spec.d.ts +1 -0
- package/dist/types/components/cat-textarea/cat-textarea.e2e.d.ts +1 -0
- package/dist/types/components/cat-textarea/cat-textarea.spec.d.ts +1 -0
- package/dist/types/components/cat-toggle/cat-toggle.e2e.d.ts +1 -0
- package/dist/types/components/cat-toggle/cat-toggle.spec.d.ts +1 -0
- package/dist/types/components/cat-tooltip/cat-tooltip.e2e.d.ts +1 -0
- package/dist/types/components/cat-tooltip/cat-tooltip.spec.d.ts +1 -0
- package/dist/types/utils/media-matcher.spec.d.ts +1 -0
- package/package.json +3 -3
- package/dist/catalyst/p-23d54bc6.js +0 -2
- package/dist/catalyst/p-23d54bc6.js.map +0 -1
- package/dist/catalyst/p-84693f87.entry.js +0 -24
- package/dist/catalyst/p-84693f87.entry.js.map +0 -1
- package/dist/catalyst/p-8f5cfa78.js +0 -2
- package/dist/catalyst/p-8f5cfa78.js.map +0 -1
- package/dist/catalyst/p-fa7da4c6.js +0 -2
- package/dist/catalyst/p-fa7da4c6.js.map +0 -1
- package/dist/cjs/app-globals-50e7504d.js +0 -180
- package/dist/cjs/app-globals-50e7504d.js.map +0 -1
- package/dist/cjs/cat-alert_15.cjs.entry.js +0 -4652
- package/dist/cjs/cat-alert_15.cjs.entry.js.map +0 -1
- package/dist/cjs/cat-icon-registry-6895750f.js.map +0 -1
- package/dist/cjs/index-2db8e23d.js +0 -1347
- package/dist/cjs/index-2db8e23d.js.map +0 -1
- package/dist/esm/app-globals-6906ac5c.js +0 -178
- package/dist/esm/app-globals-6906ac5c.js.map +0 -1
- package/dist/esm/cat-alert_15.entry.js +0 -4634
- package/dist/esm/cat-alert_15.entry.js.map +0 -1
- package/dist/esm/cat-icon-registry-77963c26.js.map +0 -1
- package/dist/esm/index-1f3ca03b.js +0 -1320
- 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}
|