@sellmate/design-system 1.0.53 → 1.0.55
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/cjs/{component.textinput-DIDZPtYE.js → component.textinput-BWW8c3OY.js} +10 -1
- package/dist/cjs/design-system.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
- package/dist/cjs/{sd-button_5.cjs.entry.js → sd-button_4.cjs.entry.js} +2 -146
- package/dist/cjs/sd-ghost-button.cjs.entry.js +148 -0
- package/dist/cjs/sd-input_2.cjs.entry.js +9 -3
- package/dist/cjs/sd-textarea.cjs.entry.js +76 -37
- package/dist/cjs/sd-toast-container.cjs.entry.js +1 -1
- package/dist/cjs/sd-toast.cjs.entry.js +2 -2
- package/dist/cjs/sd-toggle-button.cjs.entry.js +1 -1
- package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
- package/dist/collection/components/sd-input/sd-input.js +124 -2
- package/dist/collection/components/sd-textarea/sd-textarea.config.js +16 -0
- package/dist/collection/components/sd-textarea/sd-textarea.css +13 -53
- package/dist/collection/components/sd-textarea/sd-textarea.js +445 -60
- package/dist/collection/components/sd-toast/sd-toast.js +2 -2
- package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
- package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +1 -1
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
- package/dist/components/{p-hWm-Llzv.js → p-BM4qDFZj.js} +1 -1
- package/dist/components/p-BR0LWoJL.js +1 -0
- package/dist/components/p-C8kA64_1.js +1 -0
- package/dist/components/{p-CnUsbdL7.js → p-Cbtpfl9F.js} +1 -1
- package/dist/components/{p-UUxu2akd.js → p-CmXAKr-2.js} +1 -1
- package/dist/components/p-DSNs8RRn.js +1 -0
- package/dist/components/{p-CpGiSLY_.js → p-DxzIjbQJ.js} +1 -1
- package/dist/components/{p-eOGZo-WB.js → p-w3CsjVGg.js} +1 -1
- package/dist/components/sd-barcode-input.js +1 -1
- package/dist/components/sd-date-picker.js +1 -1
- package/dist/components/sd-date-range-picker.js +1 -1
- package/dist/components/sd-field.js +1 -1
- package/dist/components/sd-file-picker.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-number-input.js +1 -1
- package/dist/components/sd-select-dropdown.js +1 -1
- package/dist/components/sd-select-group.js +1 -1
- package/dist/components/sd-select-multiple-group.js +1 -1
- package/dist/components/sd-select-multiple.js +1 -1
- package/dist/components/sd-select-search-input.js +1 -1
- package/dist/components/sd-select-v2.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-table.js +1 -1
- package/dist/components/sd-textarea.js +1 -1
- package/dist/components/sd-toast-container.js +1 -1
- package/dist/components/sd-toast.js +1 -1
- package/dist/components/sd-toggle-button.js +1 -1
- package/dist/components/sd-toggle.js +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/{p-47931c26.entry.js → p-184649a9.entry.js} +1 -1
- package/dist/design-system/{p-64f2a188.entry.js → p-266ff86b.entry.js} +1 -1
- package/dist/design-system/{p-cebaca7c.entry.js → p-391cf704.entry.js} +1 -1
- package/dist/design-system/p-4e9413c0.entry.js +1 -0
- package/dist/design-system/p-5213773b.entry.js +1 -0
- package/dist/design-system/{p-4487b2ec.entry.js → p-99b6157f.entry.js} +1 -1
- package/dist/design-system/p-DSNs8RRn.js +1 -0
- package/dist/design-system/p-c2a0f10d.entry.js +1 -0
- package/dist/design-system/{p-c9af0fc9.entry.js → p-efe684e6.entry.js} +1 -1
- package/dist/design-system/{p-ea768c2e.entry.js → p-fdf7ed87.entry.js} +1 -1
- package/dist/esm/{component.textinput-BGovA1BG.js → component.textinput-DSNs8RRn.js} +10 -1
- package/dist/esm/design-system.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sd-barcode-input.entry.js +1 -1
- package/dist/esm/{sd-button_5.entry.js → sd-button_4.entry.js} +3 -146
- package/dist/esm/sd-ghost-button.entry.js +146 -0
- package/dist/esm/sd-input_2.entry.js +9 -3
- package/dist/esm/sd-textarea.entry.js +76 -37
- package/dist/esm/sd-toast-container.entry.js +1 -1
- package/dist/esm/sd-toast.entry.js +2 -2
- package/dist/esm/sd-toggle-button.entry.js +1 -1
- package/dist/esm/sd-toggle.entry.js +1 -1
- package/dist/types/components/sd-input/sd-input.d.ts +6 -0
- package/dist/types/components/sd-textarea/sd-textarea.config.d.ts +34 -0
- package/dist/types/components/sd-textarea/sd-textarea.d.ts +28 -9
- package/dist/types/components.d.ts +172 -8
- package/hydrate/index.js +128 -54
- package/hydrate/index.mjs +128 -54
- package/package.json +1 -1
- package/dist/components/p-BGovA1BG.js +0 -1
- package/dist/components/p-Ck-2jtzb.js +0 -1
- package/dist/components/p-Dx7R5s53.js +0 -1
- package/dist/design-system/p-52d6d7b5.entry.js +0 -1
- package/dist/design-system/p-BGovA1BG.js +0 -1
- package/dist/design-system/p-c9bc4fa6.entry.js +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-BQt-JC6r.js');
|
|
4
4
|
var index$1 = require('./index-BUvXpPc3.js');
|
|
5
|
-
var component_textinput = require('./component.textinput-
|
|
5
|
+
var component_textinput = require('./component.textinput-BWW8c3OY.js');
|
|
6
6
|
|
|
7
7
|
const sm = component_textinput.inputTokens.input.sm;
|
|
8
8
|
const md = component_textinput.inputTokens.input.md;
|
|
@@ -51,6 +51,12 @@ const SdInput = class {
|
|
|
51
51
|
width = '';
|
|
52
52
|
rules = [];
|
|
53
53
|
autoFocus = false;
|
|
54
|
+
autocomplete = '';
|
|
55
|
+
maxlength;
|
|
56
|
+
minlength;
|
|
57
|
+
inputmode;
|
|
58
|
+
enterkeyhint;
|
|
59
|
+
spellcheck = false;
|
|
54
60
|
status;
|
|
55
61
|
hint = '';
|
|
56
62
|
errorMessage = '';
|
|
@@ -142,12 +148,12 @@ const SdInput = class {
|
|
|
142
148
|
'--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
|
|
143
149
|
'--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
|
|
144
150
|
};
|
|
145
|
-
return (index.h("sd-field", { key: '
|
|
151
|
+
return (index.h("sd-field", { key: 'd5f554784340cbb9246165fb15124098e4f7165b', name: this.name, label: this.label, addonLabel: this.addonLabel, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, index.h("label", { key: '02225d57c5bd17dbe78c680f243ad3a9a4ab3b5d', class: "sd-input__content" }, index.h("slot", { key: '1011876ea9726e62a19047b28a82932e43762436', name: "prefix" }), index.h("input", { key: '10f4c594382aa002ba09a0012979ff930154fc7a', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type === 'password' && this.passwordVisible ? 'text' : this.type, value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, autocomplete: this.autocomplete || undefined, maxlength: this.maxlength, minlength: this.minlength, inputmode: this.inputmode, enterkeyhint: this.enterkeyhint, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), index.h("slot", { key: '007d15357a81f13ab4db5ddf237110b9d1f1728b', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && (index.h("sd-ghost-button", { key: '92dfd40117cccdb48ebfc0056aa9e093546bbf6b', icon: "close", ariaLabel: "close", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
|
|
146
152
|
if (this.disabled)
|
|
147
153
|
return;
|
|
148
154
|
this.internalValue = '';
|
|
149
155
|
await this.formField?.sdValidate();
|
|
150
|
-
} })), this.type === 'password' && (index.h("sd-ghost-button", { key: '
|
|
156
|
+
} })), this.type === 'password' && (index.h("sd-ghost-button", { key: 'a4bef720b55a94a4a6ada002f4a2ffd1d0f8da24', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled, class: "sd-input__password-icon", onClick: () => {
|
|
151
157
|
if (this.disabled)
|
|
152
158
|
return;
|
|
153
159
|
this.passwordVisible = !this.passwordVisible;
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-BQt-JC6r.js');
|
|
4
|
+
var index$1 = require('./index-BUvXpPc3.js');
|
|
5
|
+
var component_textinput = require('./component.textinput-BWW8c3OY.js');
|
|
4
6
|
|
|
5
|
-
const
|
|
7
|
+
const TEXTAREA_TOKENS = {
|
|
8
|
+
paddingX: component_textinput.inputTokens.input.sm.paddingX,
|
|
9
|
+
paddingY: component_textinput.inputTokens.input.sm.paddingY,
|
|
10
|
+
radius: component_textinput.inputTokens.input.sm.radius,
|
|
11
|
+
fontSize: component_textinput.inputTokens.input.sm.typography.fontSize,
|
|
12
|
+
lineHeight: component_textinput.inputTokens.input.sm.typography.lineHeight,
|
|
13
|
+
fontWeight: component_textinput.inputTokens.input.sm.typography.fontWeight};
|
|
14
|
+
const TEXTAREA_COLORS = {
|
|
15
|
+
text: component_textinput.inputTokens.input.text,
|
|
16
|
+
bg: component_textinput.inputTokens.input.bg,
|
|
17
|
+
border: component_textinput.inputTokens.input.border,
|
|
18
|
+
resizer: component_textinput.inputTokens.input.resizer,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const sdTextareaCss = () => `sd-textarea{display:inline-flex}sd-textarea .sd-textarea__content{width:100%;display:flex}sd-textarea .sd-textarea__content .sd-textarea__native{width:100%;min-height:100px;border:none;outline:none;background:transparent;padding:var(--sd-textarea-padding-y) var(--sd-textarea-padding-x);font-family:inherit;font-size:var(--sd-textarea-font-size);line-height:var(--sd-textarea-line-height);font-weight:var(--sd-textarea-font-weight);color:var(--sd-textarea-text-color);resize:vertical}sd-textarea .sd-textarea__content .sd-textarea__native::placeholder{color:var(--sd-textarea-placeholder-color)}sd-textarea .sd-textarea__content .sd-textarea__native:disabled{cursor:not-allowed;color:var(--sd-textarea-disabled-color)}`;
|
|
6
22
|
|
|
7
23
|
const SdTextarea = class {
|
|
8
24
|
constructor(hostRef) {
|
|
@@ -13,17 +29,33 @@ const SdTextarea = class {
|
|
|
13
29
|
}
|
|
14
30
|
get host() { return index.getElement(this); }
|
|
15
31
|
value = null;
|
|
16
|
-
|
|
32
|
+
placeholder = '입력해 주세요.';
|
|
17
33
|
disabled = false;
|
|
34
|
+
readonly = false;
|
|
18
35
|
autoFocus = false;
|
|
19
36
|
textareaClass = '';
|
|
20
|
-
|
|
37
|
+
textareaStyle = {};
|
|
21
38
|
maxLength;
|
|
22
|
-
|
|
23
|
-
|
|
39
|
+
rows;
|
|
40
|
+
spellcheck = false;
|
|
41
|
+
width = '';
|
|
42
|
+
// props - sd-field
|
|
43
|
+
label = '';
|
|
44
|
+
addonLabel = '';
|
|
45
|
+
hint = '';
|
|
46
|
+
errorMessage = '';
|
|
47
|
+
icon = undefined;
|
|
48
|
+
labelTooltip = '';
|
|
49
|
+
labelTooltipProps = null;
|
|
50
|
+
rules = [];
|
|
51
|
+
error = false;
|
|
52
|
+
status;
|
|
24
53
|
focused = false;
|
|
25
54
|
hovered = false;
|
|
55
|
+
internalValue = null;
|
|
26
56
|
nativeEl = undefined;
|
|
57
|
+
formField;
|
|
58
|
+
name = index$1.nanoid();
|
|
27
59
|
input;
|
|
28
60
|
focus;
|
|
29
61
|
blur;
|
|
@@ -36,12 +68,21 @@ const SdTextarea = class {
|
|
|
36
68
|
this.input?.emit(this.value);
|
|
37
69
|
}
|
|
38
70
|
}
|
|
39
|
-
async
|
|
40
|
-
this.nativeEl?.focus();
|
|
41
|
-
}
|
|
42
|
-
async getNativeElement() {
|
|
71
|
+
async sdGetNativeElement() {
|
|
43
72
|
return this.nativeEl || null;
|
|
44
73
|
}
|
|
74
|
+
async sdValidate() {
|
|
75
|
+
this.formField?.sdValidate();
|
|
76
|
+
}
|
|
77
|
+
async sdReset() {
|
|
78
|
+
this.formField?.sdReset();
|
|
79
|
+
}
|
|
80
|
+
async sdResetValidate() {
|
|
81
|
+
this.formField?.sdResetValidation();
|
|
82
|
+
}
|
|
83
|
+
async sdFocus() {
|
|
84
|
+
this.formField?.sdFocus();
|
|
85
|
+
}
|
|
45
86
|
componentWillLoad() {
|
|
46
87
|
if (this.value !== null && this.value !== undefined) {
|
|
47
88
|
this.internalValue = this.value;
|
|
@@ -52,44 +93,42 @@ const SdTextarea = class {
|
|
|
52
93
|
this.nativeEl?.focus();
|
|
53
94
|
}
|
|
54
95
|
}
|
|
55
|
-
handleInput(event) {
|
|
96
|
+
handleInput = (event) => {
|
|
56
97
|
const target = event.target;
|
|
57
98
|
this.internalValue = target.value;
|
|
58
|
-
}
|
|
59
|
-
handleFocus(type, event) {
|
|
99
|
+
};
|
|
100
|
+
handleFocus = async (type, event) => {
|
|
60
101
|
this.focused = type === 'focus';
|
|
61
102
|
if (type === 'blur') {
|
|
103
|
+
if (this.rules && this.rules.length > 0) {
|
|
104
|
+
await this.formField?.sdValidate();
|
|
105
|
+
}
|
|
62
106
|
this.blur?.emit(event);
|
|
63
107
|
}
|
|
64
108
|
else {
|
|
65
109
|
this.focus?.emit(event);
|
|
66
110
|
}
|
|
67
|
-
}
|
|
68
|
-
getTextareaStatus() {
|
|
69
|
-
if (this.disabled)
|
|
70
|
-
return 'sd-textarea--disabled';
|
|
71
|
-
if (this.hovered)
|
|
72
|
-
return 'sd-textarea--hovered';
|
|
73
|
-
if (this.focused)
|
|
74
|
-
return 'sd-textarea--focused';
|
|
75
|
-
return '';
|
|
76
|
-
}
|
|
77
|
-
getMaxLengthCounter() {
|
|
78
|
-
if (this.maxLength === undefined) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
const currentLength = (this.internalValue || '').length;
|
|
82
|
-
return `${currentLength}/${this.maxLength}`;
|
|
83
|
-
}
|
|
84
|
-
hasFooter() {
|
|
85
|
-
return this.helpText !== undefined || this.maxLength !== undefined;
|
|
86
|
-
}
|
|
111
|
+
};
|
|
87
112
|
render() {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
113
|
+
const cssVars = {
|
|
114
|
+
'--sd-textarea-font-size': `${TEXTAREA_TOKENS.fontSize}px`,
|
|
115
|
+
'--sd-textarea-line-height': `${TEXTAREA_TOKENS.lineHeight}px`,
|
|
116
|
+
'--sd-textarea-font-weight': TEXTAREA_TOKENS.fontWeight,
|
|
117
|
+
'--sd-textarea-padding-x': `${TEXTAREA_TOKENS.paddingX}px`,
|
|
118
|
+
'--sd-textarea-padding-y': `${TEXTAREA_TOKENS.paddingY}px`,
|
|
119
|
+
'--sd-textarea-radius': `${TEXTAREA_TOKENS.radius}px`,
|
|
120
|
+
'--sd-textarea-text-color': TEXTAREA_COLORS.text.default,
|
|
121
|
+
'--sd-textarea-placeholder-color': TEXTAREA_COLORS.text.placeholder,
|
|
122
|
+
'--sd-textarea-disabled-color': TEXTAREA_COLORS.text.disabled,
|
|
123
|
+
'--sd-textarea-bg-color': TEXTAREA_COLORS.bg.default,
|
|
124
|
+
'--sd-textarea-disabled-bg-color': TEXTAREA_COLORS.bg.disabled,
|
|
125
|
+
'--sd-textarea-border-color': TEXTAREA_COLORS.border.default,
|
|
126
|
+
'--sd-textarea-resizer-color': TEXTAREA_COLORS.resizer.color,
|
|
127
|
+
// sd-field 시스템 변수 override (textarea는 고정 높이가 아닌 auto)
|
|
128
|
+
'--sd-system-size-field-sm-height': 'auto',
|
|
129
|
+
'--sd-system-radius-field-sm': `${TEXTAREA_TOKENS.radius}px`,
|
|
130
|
+
};
|
|
131
|
+
return (index.h("sd-field", { key: '390028112d84c22766c6e00fa3625312b8096629', name: this.name, label: this.label, addonLabel: this.addonLabel, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, index.h("div", { key: '026ec0293049da167e7dbab5d3a28593d5e6b291', class: "sd-textarea__content" }, index.h("textarea", { key: 'd30b5e1bc61535c1c350f09bf2ea289f0b09001b', name: this.name, ref: el => (this.nativeEl = el), class: `sd-textarea__native ${this.textareaClass}`, value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, autofocus: this.autoFocus, maxLength: this.maxLength, rows: this.rows, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.textareaStyle }))));
|
|
93
132
|
}
|
|
94
133
|
static get watchers() { return {
|
|
95
134
|
"value": [{
|
|
@@ -234,7 +234,7 @@ const SdToastContainer = class {
|
|
|
234
234
|
const activeToasts = toasts.filter(t => t.state !== 'exiting').reverse();
|
|
235
235
|
const indexMap = new Map();
|
|
236
236
|
activeToasts.forEach((t, i) => indexMap.set(t.id, i));
|
|
237
|
-
return (index.h("div", { key: '
|
|
237
|
+
return (index.h("div", { key: '7d2c4a095a0762710024c4c102ce49c7c7163368', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
|
|
238
238
|
this.expanded = true;
|
|
239
239
|
this.pauseTimers();
|
|
240
240
|
}, onMouseLeave: () => {
|
|
@@ -57,10 +57,10 @@ const SdToast = class {
|
|
|
57
57
|
render() {
|
|
58
58
|
const typeConfig = TOAST_TYPE_CONFIG[this.type] ?? TOAST_TYPE_CONFIG.default;
|
|
59
59
|
const iconSize = Number(TOAST_LAYOUT.iconSize);
|
|
60
|
-
return (index.h("div", { key: '
|
|
60
|
+
return (index.h("div", { key: 'cb42937774233de10872edb8414db88f03868eb3', style: {
|
|
61
61
|
'--sd-toast-bg': typeConfig.bg,
|
|
62
62
|
'--sd-toast-text': typeConfig.content,
|
|
63
|
-
} }, index.h("div", { key: '
|
|
63
|
+
} }, index.h("div", { key: 'e58b3335c4d7c450ef3686c53138636502c4e0f3', class: "sd-toast", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (index.h("div", { key: '62e42c814ab2f15d563b3f75c4e9dd3e559318a0', class: "sd-toast__icon" }, index.h("sd-icon", { key: '3e346baecd3207ee817ba843427ed2076fd7cc7c', name: this.icon, size: iconSize, color: typeConfig.content }))), index.h("div", { key: '700c7127a1d59409103b5ceb917e584020078736', class: "sd-toast__content" }, index.h("span", { key: 'd4165f0e324048edcb2492f3050795d26ce1fc86', class: "sd-toast__message" }, this.message)), this.link && (index.h("a", { key: 'f87089865b4e4fd5b488185478c453641920ac92', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.useClose && (index.h("sd-ghost-button", { key: '33de3a35d1532cd15215751996827a462a7b8cad', class: "sd-toast__close", icon: "close", ariaLabel: "close", size: "xs", onClick: () => this.close.emit() })))));
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
66
|
SdToast.style = sdToastCss();
|
|
@@ -41,7 +41,7 @@ const SdToggleButton = class {
|
|
|
41
41
|
this.change.emit(newValue);
|
|
42
42
|
};
|
|
43
43
|
render() {
|
|
44
|
-
return (index.h("label", { key: '
|
|
44
|
+
return (index.h("label", { key: '9d98201d5ab361d0d2d5c8c61ce1e5b129f4d588', class: this.buttonClasses, "aria-label": this.label || 'toggle button' }, this.label, index.h("input", { key: 'a745715a752bf99a94ab01d8c07c87d0f507a8ef', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
SdToggleButton.style = sdToggleButtonCss();
|
|
@@ -37,7 +37,7 @@ const SdToggle = class {
|
|
|
37
37
|
this.change.emit(newValue);
|
|
38
38
|
};
|
|
39
39
|
render() {
|
|
40
|
-
return (index.h("label", { key: '
|
|
40
|
+
return (index.h("label", { key: '9f4cf71a2aab588deb68d8e6908f0988ddbacb90', "aria-label": this.label || 'toggle', class: this.toggleClasses }, index.h("input", { key: '6d1279761ea384a233bff234c549030709fd4ea3', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), this.label && index.h("span", { key: '7ecd96f5e2c48fda17ed0086ab3cc8bc1caab458', class: "sd-toggle__label" }, this.label), index.h("div", { key: '26f4d468e4ff0c4473e2ce00b7e69a855a249a96', class: "sd-toggle__track" }, index.h("div", { key: '3a7f4019197cfa23dc268ee95308e60d7159ba28', class: "sd-toggle__thumb" }))));
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
SdToggle.style = sdToggleCss();
|
|
@@ -13,6 +13,12 @@ export class SdInput {
|
|
|
13
13
|
width = '';
|
|
14
14
|
rules = [];
|
|
15
15
|
autoFocus = false;
|
|
16
|
+
autocomplete = '';
|
|
17
|
+
maxlength;
|
|
18
|
+
minlength;
|
|
19
|
+
inputmode;
|
|
20
|
+
enterkeyhint;
|
|
21
|
+
spellcheck = false;
|
|
16
22
|
status;
|
|
17
23
|
hint = '';
|
|
18
24
|
errorMessage = '';
|
|
@@ -104,12 +110,12 @@ export class SdInput {
|
|
|
104
110
|
'--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
|
|
105
111
|
'--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
|
|
106
112
|
};
|
|
107
|
-
return (h("sd-field", { key: '
|
|
113
|
+
return (h("sd-field", { key: 'd5f554784340cbb9246165fb15124098e4f7165b', name: this.name, label: this.label, addonLabel: this.addonLabel, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("label", { key: '02225d57c5bd17dbe78c680f243ad3a9a4ab3b5d', class: "sd-input__content" }, h("slot", { key: '1011876ea9726e62a19047b28a82932e43762436', name: "prefix" }), h("input", { key: '10f4c594382aa002ba09a0012979ff930154fc7a', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type === 'password' && this.passwordVisible ? 'text' : this.type, value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, autocomplete: this.autocomplete || undefined, maxlength: this.maxlength, minlength: this.minlength, inputmode: this.inputmode, enterkeyhint: this.enterkeyhint, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), h("slot", { key: '007d15357a81f13ab4db5ddf237110b9d1f1728b', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && (h("sd-ghost-button", { key: '92dfd40117cccdb48ebfc0056aa9e093546bbf6b', icon: "close", ariaLabel: "close", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
|
|
108
114
|
if (this.disabled)
|
|
109
115
|
return;
|
|
110
116
|
this.internalValue = '';
|
|
111
117
|
await this.formField?.sdValidate();
|
|
112
|
-
} })), this.type === 'password' && (h("sd-ghost-button", { key: '
|
|
118
|
+
} })), this.type === 'password' && (h("sd-ghost-button", { key: 'a4bef720b55a94a4a6ada002f4a2ffd1d0f8da24', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled, class: "sd-input__password-icon", onClick: () => {
|
|
113
119
|
if (this.disabled)
|
|
114
120
|
return;
|
|
115
121
|
this.passwordVisible = !this.passwordVisible;
|
|
@@ -340,6 +346,122 @@ export class SdInput {
|
|
|
340
346
|
"attribute": "auto-focus",
|
|
341
347
|
"defaultValue": "false"
|
|
342
348
|
},
|
|
349
|
+
"autocomplete": {
|
|
350
|
+
"type": "string",
|
|
351
|
+
"mutable": false,
|
|
352
|
+
"complexType": {
|
|
353
|
+
"original": "string",
|
|
354
|
+
"resolved": "string",
|
|
355
|
+
"references": {}
|
|
356
|
+
},
|
|
357
|
+
"required": false,
|
|
358
|
+
"optional": false,
|
|
359
|
+
"docs": {
|
|
360
|
+
"tags": [],
|
|
361
|
+
"text": ""
|
|
362
|
+
},
|
|
363
|
+
"getter": false,
|
|
364
|
+
"setter": false,
|
|
365
|
+
"reflect": false,
|
|
366
|
+
"attribute": "autocomplete",
|
|
367
|
+
"defaultValue": "''"
|
|
368
|
+
},
|
|
369
|
+
"maxlength": {
|
|
370
|
+
"type": "number",
|
|
371
|
+
"mutable": false,
|
|
372
|
+
"complexType": {
|
|
373
|
+
"original": "number",
|
|
374
|
+
"resolved": "number | undefined",
|
|
375
|
+
"references": {}
|
|
376
|
+
},
|
|
377
|
+
"required": false,
|
|
378
|
+
"optional": true,
|
|
379
|
+
"docs": {
|
|
380
|
+
"tags": [],
|
|
381
|
+
"text": ""
|
|
382
|
+
},
|
|
383
|
+
"getter": false,
|
|
384
|
+
"setter": false,
|
|
385
|
+
"reflect": false,
|
|
386
|
+
"attribute": "maxlength"
|
|
387
|
+
},
|
|
388
|
+
"minlength": {
|
|
389
|
+
"type": "number",
|
|
390
|
+
"mutable": false,
|
|
391
|
+
"complexType": {
|
|
392
|
+
"original": "number",
|
|
393
|
+
"resolved": "number | undefined",
|
|
394
|
+
"references": {}
|
|
395
|
+
},
|
|
396
|
+
"required": false,
|
|
397
|
+
"optional": true,
|
|
398
|
+
"docs": {
|
|
399
|
+
"tags": [],
|
|
400
|
+
"text": ""
|
|
401
|
+
},
|
|
402
|
+
"getter": false,
|
|
403
|
+
"setter": false,
|
|
404
|
+
"reflect": false,
|
|
405
|
+
"attribute": "minlength"
|
|
406
|
+
},
|
|
407
|
+
"inputmode": {
|
|
408
|
+
"type": "string",
|
|
409
|
+
"mutable": false,
|
|
410
|
+
"complexType": {
|
|
411
|
+
"original": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'",
|
|
412
|
+
"resolved": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined",
|
|
413
|
+
"references": {}
|
|
414
|
+
},
|
|
415
|
+
"required": false,
|
|
416
|
+
"optional": true,
|
|
417
|
+
"docs": {
|
|
418
|
+
"tags": [],
|
|
419
|
+
"text": ""
|
|
420
|
+
},
|
|
421
|
+
"getter": false,
|
|
422
|
+
"setter": false,
|
|
423
|
+
"reflect": false,
|
|
424
|
+
"attribute": "inputmode"
|
|
425
|
+
},
|
|
426
|
+
"enterkeyhint": {
|
|
427
|
+
"type": "string",
|
|
428
|
+
"mutable": false,
|
|
429
|
+
"complexType": {
|
|
430
|
+
"original": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'",
|
|
431
|
+
"resolved": "\"done\" | \"enter\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
|
|
432
|
+
"references": {}
|
|
433
|
+
},
|
|
434
|
+
"required": false,
|
|
435
|
+
"optional": true,
|
|
436
|
+
"docs": {
|
|
437
|
+
"tags": [],
|
|
438
|
+
"text": ""
|
|
439
|
+
},
|
|
440
|
+
"getter": false,
|
|
441
|
+
"setter": false,
|
|
442
|
+
"reflect": false,
|
|
443
|
+
"attribute": "enterkeyhint"
|
|
444
|
+
},
|
|
445
|
+
"spellcheck": {
|
|
446
|
+
"type": "boolean",
|
|
447
|
+
"mutable": false,
|
|
448
|
+
"complexType": {
|
|
449
|
+
"original": "boolean",
|
|
450
|
+
"resolved": "boolean",
|
|
451
|
+
"references": {}
|
|
452
|
+
},
|
|
453
|
+
"required": false,
|
|
454
|
+
"optional": false,
|
|
455
|
+
"docs": {
|
|
456
|
+
"tags": [],
|
|
457
|
+
"text": ""
|
|
458
|
+
},
|
|
459
|
+
"getter": false,
|
|
460
|
+
"setter": false,
|
|
461
|
+
"reflect": false,
|
|
462
|
+
"attribute": "spellcheck",
|
|
463
|
+
"defaultValue": "false"
|
|
464
|
+
},
|
|
343
465
|
"status": {
|
|
344
466
|
"type": "string",
|
|
345
467
|
"mutable": false,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import inputTokens from "../../tokens/generated/component.textinput.json";
|
|
2
|
+
export const TEXTAREA_TOKENS = {
|
|
3
|
+
paddingX: inputTokens.input.sm.paddingX,
|
|
4
|
+
paddingY: inputTokens.input.sm.paddingY,
|
|
5
|
+
radius: inputTokens.input.sm.radius,
|
|
6
|
+
fontSize: inputTokens.input.sm.typography.fontSize,
|
|
7
|
+
lineHeight: inputTokens.input.sm.typography.lineHeight,
|
|
8
|
+
fontWeight: inputTokens.input.sm.typography.fontWeight,
|
|
9
|
+
borderWidth: inputTokens.input.borderWidth,
|
|
10
|
+
};
|
|
11
|
+
export const TEXTAREA_COLORS = {
|
|
12
|
+
text: inputTokens.input.text,
|
|
13
|
+
bg: inputTokens.input.bg,
|
|
14
|
+
border: inputTokens.input.border,
|
|
15
|
+
resizer: inputTokens.input.resizer,
|
|
16
|
+
};
|
|
@@ -1,68 +1,28 @@
|
|
|
1
1
|
sd-textarea {
|
|
2
|
-
display:
|
|
2
|
+
display: inline-flex;
|
|
3
3
|
}
|
|
4
|
-
sd-textarea .sd-
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
color: #333333;
|
|
8
|
-
font-size: 12px;
|
|
9
|
-
line-height: 20px;
|
|
10
|
-
}
|
|
11
|
-
sd-textarea .sd-textarea .sd-textarea__content {
|
|
4
|
+
sd-textarea .sd-textarea__content {
|
|
12
5
|
width: 100%;
|
|
13
6
|
display: flex;
|
|
14
|
-
border: 1px solid #AAAAAA;
|
|
15
|
-
border-radius: 4px;
|
|
16
|
-
background: white;
|
|
17
7
|
}
|
|
18
|
-
sd-textarea .sd-
|
|
8
|
+
sd-textarea .sd-textarea__content .sd-textarea__native {
|
|
19
9
|
width: 100%;
|
|
20
10
|
min-height: 100px;
|
|
21
11
|
border: none;
|
|
22
12
|
outline: none;
|
|
23
13
|
background: transparent;
|
|
24
|
-
padding:
|
|
14
|
+
padding: var(--sd-textarea-padding-y) var(--sd-textarea-padding-x);
|
|
25
15
|
font-family: inherit;
|
|
26
|
-
font-size:
|
|
27
|
-
line-height:
|
|
28
|
-
|
|
16
|
+
font-size: var(--sd-textarea-font-size);
|
|
17
|
+
line-height: var(--sd-textarea-line-height);
|
|
18
|
+
font-weight: var(--sd-textarea-font-weight);
|
|
19
|
+
color: var(--sd-textarea-text-color);
|
|
29
20
|
resize: vertical;
|
|
30
21
|
}
|
|
31
|
-
sd-textarea .sd-
|
|
32
|
-
color:
|
|
33
|
-
}
|
|
34
|
-
sd-textarea .sd-textarea--hovered .sd-textarea__content, sd-textarea .sd-textarea--focused .sd-textarea__content {
|
|
35
|
-
border-color: #0075FF;
|
|
36
|
-
box-shadow: 0 0 4px 0 rgba(0, 113, 255, 0.4);
|
|
37
|
-
}
|
|
38
|
-
sd-textarea .sd-textarea--disabled {
|
|
39
|
-
cursor: not-allowed !important;
|
|
40
|
-
box-shadow: none !important;
|
|
41
|
-
}
|
|
42
|
-
sd-textarea .sd-textarea--disabled .sd-textarea__content {
|
|
43
|
-
background: #EEEEEE !important;
|
|
44
|
-
border: 1px solid #CCCCCC !important;
|
|
45
|
-
color: #888888 !important;
|
|
46
|
-
}
|
|
47
|
-
sd-textarea .sd-textarea--disabled .sd-textarea__content .sd-textarea__native {
|
|
48
|
-
cursor: not-allowed !important;
|
|
49
|
-
color: #888888 !important;
|
|
50
|
-
}
|
|
51
|
-
sd-textarea .sd-textarea .sd-textarea__footer {
|
|
52
|
-
display: flex;
|
|
53
|
-
justify-content: space-between;
|
|
54
|
-
align-items: center;
|
|
55
|
-
margin-top: 4px;
|
|
56
|
-
font-size: 12px;
|
|
57
|
-
line-height: 20px;
|
|
58
|
-
}
|
|
59
|
-
sd-textarea .sd-textarea .sd-textarea__help-text {
|
|
60
|
-
font-size: 12px;
|
|
61
|
-
line-height: 20px;
|
|
62
|
-
font-weight: 400;
|
|
63
|
-
color: #222222;
|
|
22
|
+
sd-textarea .sd-textarea__content .sd-textarea__native::placeholder {
|
|
23
|
+
color: var(--sd-textarea-placeholder-color);
|
|
64
24
|
}
|
|
65
|
-
sd-textarea .sd-
|
|
66
|
-
|
|
67
|
-
|
|
25
|
+
sd-textarea .sd-textarea__content .sd-textarea__native:disabled {
|
|
26
|
+
cursor: not-allowed;
|
|
27
|
+
color: var(--sd-textarea-disabled-color);
|
|
68
28
|
}
|