@ucalgary-design-system/text-input 1.0.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/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # TextInput
2
+
3
+ This package provides the **TextInput** web component.
4
+
5
+ ## Installation
6
+
7
+ Install the component using npm:
8
+
9
+ ```sh
10
+ npm install @ucalgary-design-system/text-input
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ Import the component into your application:
16
+
17
+ ```ts
18
+ import '@ucalgary-design-system/text-input';
19
+ ```
20
+
21
+ Use the component in your HTML:
22
+
23
+ ```html
24
+ <ucds-text-input></ucds-text-input>
25
+ ```
26
+
27
+ ## Development
28
+
29
+ Build the component:
30
+
31
+ ```sh
32
+ npm run build
33
+ ```
34
+
35
+ Alternatively, build from the monorepo root:
36
+
37
+ ```sh
38
+ npm run build -w @ucalgary-design-system/ucds-text-input
39
+ ```
40
+
41
+ Run storybook from the monorepo root.
42
+
43
+ ## Testing
44
+
45
+ Run the test from this package:
46
+
47
+ ```sh
48
+ npm run test
49
+ ```
50
+
51
+ Alternatively, run the tests from the monorepo root:
52
+
53
+ ```sh
54
+ npm run test -w @ucalgary-design-system/ucds-text-input
55
+ ```
56
+
57
+
package/index.js ADDED
@@ -0,0 +1,404 @@
1
+ import { unsafeCSS as C, nothing as f, html as m } from "lit";
2
+ import { BaseElement as x } from "@ucalgary-design-system/core";
3
+ import "@ucalgary-design-system/helper-components";
4
+ /**
5
+ * @license
6
+ * Copyright 2017 Google LLC
7
+ * SPDX-License-Identifier: BSD-3-Clause
8
+ */
9
+ const O = (i) => (t, e) => {
10
+ e !== void 0 ? e.addInitializer(() => {
11
+ customElements.define(i, t);
12
+ }) : customElements.define(i, t);
13
+ };
14
+ /**
15
+ * @license
16
+ * Copyright 2019 Google LLC
17
+ * SPDX-License-Identifier: BSD-3-Clause
18
+ */
19
+ const y = globalThis, g = y.ShadowRoot && (y.ShadyCSS === void 0 || y.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, U = Symbol(), S = /* @__PURE__ */ new WeakMap();
20
+ let A = class {
21
+ constructor(t, e, r) {
22
+ if (this._$cssResult$ = !0, r !== U) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
23
+ this.cssText = t, this.t = e;
24
+ }
25
+ get styleSheet() {
26
+ let t = this.o;
27
+ const e = this.t;
28
+ if (g && t === void 0) {
29
+ const r = e !== void 0 && e.length === 1;
30
+ r && (t = S.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), r && S.set(e, t));
31
+ }
32
+ return t;
33
+ }
34
+ toString() {
35
+ return this.cssText;
36
+ }
37
+ };
38
+ const T = (i) => new A(typeof i == "string" ? i : i + "", void 0, U), k = (i, t) => {
39
+ if (g) i.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
40
+ else for (const e of t) {
41
+ const r = document.createElement("style"), s = y.litNonce;
42
+ s !== void 0 && r.setAttribute("nonce", s), r.textContent = e.cssText, i.appendChild(r);
43
+ }
44
+ }, E = g ? (i) => i : (i) => i instanceof CSSStyleSheet ? ((t) => {
45
+ let e = "";
46
+ for (const r of t.cssRules) e += r.cssText;
47
+ return T(e);
48
+ })(i) : i;
49
+ /**
50
+ * @license
51
+ * Copyright 2017 Google LLC
52
+ * SPDX-License-Identifier: BSD-3-Clause
53
+ */
54
+ const { is: R, defineProperty: z, getOwnPropertyDescriptor: q, getOwnPropertyNames: M, getOwnPropertySymbols: j, getPrototypeOf: I } = Object, d = globalThis, P = d.trustedTypes, D = P ? P.emptyScript : "", $ = d.reactiveElementPolyfillSupport, u = (i, t) => i, b = { toAttribute(i, t) {
55
+ switch (t) {
56
+ case Boolean:
57
+ i = i ? D : null;
58
+ break;
59
+ case Object:
60
+ case Array:
61
+ i = i == null ? i : JSON.stringify(i);
62
+ }
63
+ return i;
64
+ }, fromAttribute(i, t) {
65
+ let e = i;
66
+ switch (t) {
67
+ case Boolean:
68
+ e = i !== null;
69
+ break;
70
+ case Number:
71
+ e = i === null ? null : Number(i);
72
+ break;
73
+ case Object:
74
+ case Array:
75
+ try {
76
+ e = JSON.parse(i);
77
+ } catch {
78
+ e = null;
79
+ }
80
+ }
81
+ return e;
82
+ } }, _ = (i, t) => !R(i, t), w = { attribute: !0, type: String, converter: b, reflect: !1, hasChanged: _ };
83
+ Symbol.metadata ?? (Symbol.metadata = Symbol("metadata")), d.litPropertyMetadata ?? (d.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
84
+ class p extends HTMLElement {
85
+ static addInitializer(t) {
86
+ this._$Ei(), (this.l ?? (this.l = [])).push(t);
87
+ }
88
+ static get observedAttributes() {
89
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
90
+ }
91
+ static createProperty(t, e = w) {
92
+ if (e.state && (e.attribute = !1), this._$Ei(), this.elementProperties.set(t, e), !e.noAccessor) {
93
+ const r = Symbol(), s = this.getPropertyDescriptor(t, r, e);
94
+ s !== void 0 && z(this.prototype, t, s);
95
+ }
96
+ }
97
+ static getPropertyDescriptor(t, e, r) {
98
+ const { get: s, set: a } = q(this.prototype, t) ?? { get() {
99
+ return this[e];
100
+ }, set(o) {
101
+ this[e] = o;
102
+ } };
103
+ return { get() {
104
+ return s == null ? void 0 : s.call(this);
105
+ }, set(o) {
106
+ const l = s == null ? void 0 : s.call(this);
107
+ a.call(this, o), this.requestUpdate(t, l, r);
108
+ }, configurable: !0, enumerable: !0 };
109
+ }
110
+ static getPropertyOptions(t) {
111
+ return this.elementProperties.get(t) ?? w;
112
+ }
113
+ static _$Ei() {
114
+ if (this.hasOwnProperty(u("elementProperties"))) return;
115
+ const t = I(this);
116
+ t.finalize(), t.l !== void 0 && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
117
+ }
118
+ static finalize() {
119
+ if (this.hasOwnProperty(u("finalized"))) return;
120
+ if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(u("properties"))) {
121
+ const e = this.properties, r = [...M(e), ...j(e)];
122
+ for (const s of r) this.createProperty(s, e[s]);
123
+ }
124
+ const t = this[Symbol.metadata];
125
+ if (t !== null) {
126
+ const e = litPropertyMetadata.get(t);
127
+ if (e !== void 0) for (const [r, s] of e) this.elementProperties.set(r, s);
128
+ }
129
+ this._$Eh = /* @__PURE__ */ new Map();
130
+ for (const [e, r] of this.elementProperties) {
131
+ const s = this._$Eu(e, r);
132
+ s !== void 0 && this._$Eh.set(s, e);
133
+ }
134
+ this.elementStyles = this.finalizeStyles(this.styles);
135
+ }
136
+ static finalizeStyles(t) {
137
+ const e = [];
138
+ if (Array.isArray(t)) {
139
+ const r = new Set(t.flat(1 / 0).reverse());
140
+ for (const s of r) e.unshift(E(s));
141
+ } else t !== void 0 && e.push(E(t));
142
+ return e;
143
+ }
144
+ static _$Eu(t, e) {
145
+ const r = e.attribute;
146
+ return r === !1 ? void 0 : typeof r == "string" ? r : typeof t == "string" ? t.toLowerCase() : void 0;
147
+ }
148
+ constructor() {
149
+ super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
150
+ }
151
+ _$Ev() {
152
+ var t;
153
+ this._$ES = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), (t = this.constructor.l) == null || t.forEach((e) => e(this));
154
+ }
155
+ addController(t) {
156
+ var e;
157
+ (this._$EO ?? (this._$EO = /* @__PURE__ */ new Set())).add(t), this.renderRoot !== void 0 && this.isConnected && ((e = t.hostConnected) == null || e.call(t));
158
+ }
159
+ removeController(t) {
160
+ var e;
161
+ (e = this._$EO) == null || e.delete(t);
162
+ }
163
+ _$E_() {
164
+ const t = /* @__PURE__ */ new Map(), e = this.constructor.elementProperties;
165
+ for (const r of e.keys()) this.hasOwnProperty(r) && (t.set(r, this[r]), delete this[r]);
166
+ t.size > 0 && (this._$Ep = t);
167
+ }
168
+ createRenderRoot() {
169
+ const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
170
+ return k(t, this.constructor.elementStyles), t;
171
+ }
172
+ connectedCallback() {
173
+ var t;
174
+ this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (t = this._$EO) == null || t.forEach((e) => {
175
+ var r;
176
+ return (r = e.hostConnected) == null ? void 0 : r.call(e);
177
+ });
178
+ }
179
+ enableUpdating(t) {
180
+ }
181
+ disconnectedCallback() {
182
+ var t;
183
+ (t = this._$EO) == null || t.forEach((e) => {
184
+ var r;
185
+ return (r = e.hostDisconnected) == null ? void 0 : r.call(e);
186
+ });
187
+ }
188
+ attributeChangedCallback(t, e, r) {
189
+ this._$AK(t, r);
190
+ }
191
+ _$EC(t, e) {
192
+ var a;
193
+ const r = this.constructor.elementProperties.get(t), s = this.constructor._$Eu(t, r);
194
+ if (s !== void 0 && r.reflect === !0) {
195
+ const o = (((a = r.converter) == null ? void 0 : a.toAttribute) !== void 0 ? r.converter : b).toAttribute(e, r.type);
196
+ this._$Em = t, o == null ? this.removeAttribute(s) : this.setAttribute(s, o), this._$Em = null;
197
+ }
198
+ }
199
+ _$AK(t, e) {
200
+ var a;
201
+ const r = this.constructor, s = r._$Eh.get(t);
202
+ if (s !== void 0 && this._$Em !== s) {
203
+ const o = r.getPropertyOptions(s), l = typeof o.converter == "function" ? { fromAttribute: o.converter } : ((a = o.converter) == null ? void 0 : a.fromAttribute) !== void 0 ? o.converter : b;
204
+ this._$Em = s, this[s] = l.fromAttribute(e, o.type), this._$Em = null;
205
+ }
206
+ }
207
+ requestUpdate(t, e, r) {
208
+ if (t !== void 0) {
209
+ if (r ?? (r = this.constructor.getPropertyOptions(t)), !(r.hasChanged ?? _)(this[t], e)) return;
210
+ this.P(t, e, r);
211
+ }
212
+ this.isUpdatePending === !1 && (this._$ES = this._$ET());
213
+ }
214
+ P(t, e, r) {
215
+ this._$AL.has(t) || this._$AL.set(t, e), r.reflect === !0 && this._$Em !== t && (this._$Ej ?? (this._$Ej = /* @__PURE__ */ new Set())).add(t);
216
+ }
217
+ async _$ET() {
218
+ this.isUpdatePending = !0;
219
+ try {
220
+ await this._$ES;
221
+ } catch (e) {
222
+ Promise.reject(e);
223
+ }
224
+ const t = this.scheduleUpdate();
225
+ return t != null && await t, !this.isUpdatePending;
226
+ }
227
+ scheduleUpdate() {
228
+ return this.performUpdate();
229
+ }
230
+ performUpdate() {
231
+ var r;
232
+ if (!this.isUpdatePending) return;
233
+ if (!this.hasUpdated) {
234
+ if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) {
235
+ for (const [a, o] of this._$Ep) this[a] = o;
236
+ this._$Ep = void 0;
237
+ }
238
+ const s = this.constructor.elementProperties;
239
+ if (s.size > 0) for (const [a, o] of s) o.wrapped !== !0 || this._$AL.has(a) || this[a] === void 0 || this.P(a, this[a], o);
240
+ }
241
+ let t = !1;
242
+ const e = this._$AL;
243
+ try {
244
+ t = this.shouldUpdate(e), t ? (this.willUpdate(e), (r = this._$EO) == null || r.forEach((s) => {
245
+ var a;
246
+ return (a = s.hostUpdate) == null ? void 0 : a.call(s);
247
+ }), this.update(e)) : this._$EU();
248
+ } catch (s) {
249
+ throw t = !1, this._$EU(), s;
250
+ }
251
+ t && this._$AE(e);
252
+ }
253
+ willUpdate(t) {
254
+ }
255
+ _$AE(t) {
256
+ var e;
257
+ (e = this._$EO) == null || e.forEach((r) => {
258
+ var s;
259
+ return (s = r.hostUpdated) == null ? void 0 : s.call(r);
260
+ }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
261
+ }
262
+ _$EU() {
263
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
264
+ }
265
+ get updateComplete() {
266
+ return this.getUpdateComplete();
267
+ }
268
+ getUpdateComplete() {
269
+ return this._$ES;
270
+ }
271
+ shouldUpdate(t) {
272
+ return !0;
273
+ }
274
+ update(t) {
275
+ this._$Ej && (this._$Ej = this._$Ej.forEach((e) => this._$EC(e, this[e]))), this._$EU();
276
+ }
277
+ updated(t) {
278
+ }
279
+ firstUpdated(t) {
280
+ }
281
+ }
282
+ p.elementStyles = [], p.shadowRootOptions = { mode: "open" }, p[u("elementProperties")] = /* @__PURE__ */ new Map(), p[u("finalized")] = /* @__PURE__ */ new Map(), $ == null || $({ ReactiveElement: p }), (d.reactiveElementVersions ?? (d.reactiveElementVersions = [])).push("2.0.4");
283
+ /**
284
+ * @license
285
+ * Copyright 2017 Google LLC
286
+ * SPDX-License-Identifier: BSD-3-Clause
287
+ */
288
+ const L = { attribute: !0, type: String, converter: b, reflect: !1, hasChanged: _ }, B = (i = L, t, e) => {
289
+ const { kind: r, metadata: s } = e;
290
+ let a = globalThis.litPropertyMetadata.get(s);
291
+ if (a === void 0 && globalThis.litPropertyMetadata.set(s, a = /* @__PURE__ */ new Map()), a.set(e.name, i), r === "accessor") {
292
+ const { name: o } = e;
293
+ return { set(l) {
294
+ const v = t.get.call(this);
295
+ t.set.call(this, l), this.requestUpdate(o, v, i);
296
+ }, init(l) {
297
+ return l !== void 0 && this.P(o, void 0, i), l;
298
+ } };
299
+ }
300
+ if (r === "setter") {
301
+ const { name: o } = e;
302
+ return function(l) {
303
+ const v = this[o];
304
+ t.call(this, l), this.requestUpdate(o, v, i);
305
+ };
306
+ }
307
+ throw Error("Unsupported decorator location: " + r);
308
+ };
309
+ function c(i) {
310
+ return (t, e) => typeof e == "object" ? B(i, t, e) : ((r, s, a) => {
311
+ const o = s.hasOwnProperty(a);
312
+ return s.constructor.createProperty(a, o ? { ...r, wrapped: !0 } : r), o ? Object.getOwnPropertyDescriptor(s, a) : void 0;
313
+ })(i, t, e);
314
+ }
315
+ const N = ":host{display:block}.form-text{display:flex;flex-direction:column;gap:var(--ucds-form-component-intra-spacing);align-items:start;max-width:var(--ucds-form-element-maxwidth)}.form-text input{display:block;height:var(--ucds-form-element-height);width:var(--ucds-form-element-width);padding-left:var(--ucds-form-element-horizontal-padding);padding-right:var(--ucds-form-element-horizontal-padding);line-height:16px;background-color:var(--ucds-color-forms-input-background-rest);border:var(--ucds-form-element-border-width) solid var(--ucds-color-forms-input-border-rest);border-radius:var(--ucds-form-element-border-radius);transition:border-color .5s ease;text-align:left}.form-text input::-moz-placeholder{font-style:italic;color:var(--ucds-color-text-secondary)}.form-text input::placeholder{font-style:italic;color:var(--ucds-color-text-secondary)}.form-text input[error]{background-color:var(--ucds-color-feedback-error-background-light);border-color:var(--ucds-color-feedback-error-light)}.form-text input:hover{border-color:var(--ucds-color-forms-input-border-hover)}.form-text input:focus{outline:var(--ucds-color-action-focus) 2px solid;outline-offset:2px}.form-text.disabled input{color:var(--ucds-color-text-disabled);background-color:transparent;border-color:var(--ucds-color-forms-input-border-disabled)}.form-text.disabled input::-moz-placeholder{color:var(--ucds-color-text-disabled)}.form-text.disabled input::placeholder{color:var(--ucds-color-text-disabled)}";
316
+ var V = Object.defineProperty, J = Object.getOwnPropertyDescriptor, h = (i, t, e, r) => {
317
+ for (var s = r > 1 ? void 0 : r ? J(t, e) : t, a = i.length - 1, o; a >= 0; a--)
318
+ (o = i[a]) && (s = (r ? o(t, e, s) : o(s)) || s);
319
+ return r && s && V(t, e, s), s;
320
+ };
321
+ let n = class extends x {
322
+ constructor() {
323
+ super(), this.errorText = "", this.helpText = "", this.inputId = "", this.label = "", this._value = "", this.disabled = !1, this.error = !1, this.required = !1, this.internals = this.attachInternals();
324
+ }
325
+ get value() {
326
+ return this._value;
327
+ }
328
+ set value(i) {
329
+ const t = this._value;
330
+ i !== t && (this._value = i, this.requestUpdate("value", t), this.internals.setFormValue(this._value));
331
+ }
332
+ updated(i) {
333
+ i.has("label") && !this.label && console.error("Property 'label' is required and was not set.");
334
+ }
335
+ handleInput(i) {
336
+ const t = i.target;
337
+ this.value = t.value;
338
+ }
339
+ formResetCallback() {
340
+ this.value = "";
341
+ }
342
+ formStateRestoreCallback(i) {
343
+ this.value = i;
344
+ }
345
+ checkValidity() {
346
+ return this.internals.checkValidity();
347
+ }
348
+ reportValidity() {
349
+ return this.internals.reportValidity();
350
+ }
351
+ render() {
352
+ return m`
353
+ <div class="form-text ${this.disabled ? "disabled" : ""} ${this.required ? "required" : ""}">
354
+ ${this.label ? m`<form-label for="${this.inputId}" text="${this.label}" ?required="${this.required}" ?disabled="${this.disabled}"></form-label>` : f}
355
+ <input
356
+ type="text"
357
+ id="${this.inputId}"
358
+ ?disabled=${this.disabled}
359
+ ?required=${this.required}
360
+ ?error=${this.error}
361
+ .value="${this.value}"
362
+ placeholder="${this.placeholder ?? f}"
363
+ @input=${this.handleInput}>
364
+ ${this.error ? m`<form-error-message text="${this.errorText}"></form-error-message>` : f}
365
+ ${this.helpText ? m`<form-help-message text="${this.helpText}" ?disabled="${this.disabled}"></form-help-message>` : f}
366
+ </div>
367
+ `;
368
+ }
369
+ };
370
+ n.styles = [
371
+ x.styles,
372
+ C(N)
373
+ ];
374
+ n.formAssociated = !0;
375
+ h([
376
+ c({ type: String, attribute: "error-text" })
377
+ ], n.prototype, "errorText", 2);
378
+ h([
379
+ c({ type: String, attribute: "help-text" })
380
+ ], n.prototype, "helpText", 2);
381
+ h([
382
+ c({ type: String, attribute: "input-id" })
383
+ ], n.prototype, "inputId", 2);
384
+ h([
385
+ c({ type: String })
386
+ ], n.prototype, "label", 2);
387
+ h([
388
+ c({ type: String, reflect: !0 })
389
+ ], n.prototype, "placeholder", 2);
390
+ h([
391
+ c({ type: Boolean, reflect: !0 })
392
+ ], n.prototype, "disabled", 2);
393
+ h([
394
+ c({ type: Boolean, reflect: !0 })
395
+ ], n.prototype, "error", 2);
396
+ h([
397
+ c({ type: Boolean, reflect: !0 })
398
+ ], n.prototype, "required", 2);
399
+ n = h([
400
+ O("ucds-text-input")
401
+ ], n);
402
+ export {
403
+ n as TextInput
404
+ };
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@ucalgary-design-system/text-input",
3
+ "version": "1.0.1",
4
+ "type": "module",
5
+ "main": "index.js",
6
+ "module": "index.js",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./index.js",
10
+ "require": "./index.js"
11
+ }
12
+ },
13
+ "dependencies": {
14
+ "@ucalgary-design-system/core": "^1.0.1",
15
+ "@ucalgary-design-system/helper-components": "^1.0.1",
16
+ "@ucalgary-design-system/tokens": "^1.0.1",
17
+ "lit": "^3.2.1"
18
+ },
19
+ "description": "A web component for TextInput",
20
+ "publishConfig": {
21
+ "access": "public"
22
+ }
23
+ }
package/text-input.css ADDED
@@ -0,0 +1 @@
1
+ :root{--ucds-color-palette-brand-red: #d6001c;--ucds-color-palette-brand-gold: #ffcd00;--ucds-color-palette-brand-light-orange: #ffa300;--ucds-color-palette-brand-dark-orange: #ff7b1f;--ucds-color-palette-brand-berry: #9c0534;--ucds-color-palette-brand-rubine: #ce0058;--ucds-color-palette-brand-brown: #6b3529;--ucds-color-palette-brand-teal: #47a67c;--ucds-color-palette-white: #ffffff;--ucds-color-palette-black: #000000;--ucds-color-palette-gray-100: #2d2d2d;--ucds-color-palette-gray-200: #3d3d3d;--ucds-color-palette-gray-250: #4d4d4d;--ucds-color-palette-gray-300: #5d5d5d;--ucds-color-palette-gray-400: #8d8d8d;--ucds-color-palette-gray-500: #adadad;--ucds-color-palette-gray-600: #c0c0c0;--ucds-color-palette-gray-700: #d8d8d8;--ucds-color-palette-gray-800: #e5e5e5;--ucds-color-palette-gray-900: #f4f4f4;--ucds-color-palette-red-100: #3d0910;--ucds-color-palette-red-200: #5c0e18;--ucds-color-palette-red-300: #7a111f;--ucds-color-palette-red-400: #991022;--ucds-color-palette-red-500: #b70b21;--ucds-color-palette-red-600: #d6001c;--ucds-color-palette-red-700: #df3047;--ucds-color-palette-red-800: #ee0e2c;--ucds-color-palette-red-900: #ffadad;--ucds-color-palette-berry-600: #9c0534;--ucds-color-palette-berry-700: #a6192e;--ucds-color-palette-berry-800: #ea7b8a;--ucds-color-palette-berry-900: #f6ebed;--ucds-color-palette-rubine-600: #ce0058;--ucds-color-palette-rubine-800: #ed0a72;--ucds-color-palette-rubine-900: #ffa3c9;--ucds-color-palette-dark-orange-200: #6b3529;--ucds-color-palette-dark-orange-600: #ff671f;--ucds-color-palette-dark-orange-900: #fff2e9;--ucds-color-palette-light-orange-200: #614e00;--ucds-color-palette-light-orange-600: #ffa300;--ucds-color-palette-light-orange-900: #fff6e7;--ucds-color-palette-brown-600: #6c3302;--ucds-color-palette-brown-900: #ca7d68;--ucds-color-surface-page: #ffffff;--ucds-color-surface-primary: #ffffff;--ucds-color-border-neutral: #8d8d8d;--ucds-color-text-primary: #2d2d2d;--ucds-color-text-primary-inverse: #ffffff;--ucds-color-text-secondary: #5d5d5d;--ucds-color-text-error: #df3047;--ucds-color-text-disabled: #e5e5e5;--ucds-color-icon-primary: #2d2d2d;--ucds-color-icon-primary-inverse: #ffffff;--ucds-color-forms-input-background-rest: #ffffff;--ucds-color-forms-input-background-hover: #9c0534;--ucds-color-forms-input-background-active: #9c0534;--ucds-color-forms-input-background-selected: #9c0534;--ucds-color-forms-input-background-disabled: #e5e5e5;--ucds-color-forms-input-background-error: rgb(255 173 173 / 50%);--ucds-color-forms-input-border-rest: #8d8d8d;--ucds-color-forms-input-border-hover: #3d3d3d;--ucds-color-forms-input-border-active: #3d3d3d;--ucds-color-forms-input-border-selected: #9c0534;--ucds-color-forms-input-border-disabled: #e5e5e5;--ucds-color-forms-input-border-error: #df3047;--ucds-color-forms-input-element-disabled: #f4f4f4;--ucds-color-action-rest: #d6001c;--ucds-color-action-hover: #991022;--ucds-color-action-active: #991022;--ucds-color-action-focus: #4d4d4d;--ucds-color-action-visited: #991022;--ucds-color-action-secondary-rest: #2d2d2d;--ucds-color-action-secondary-hover: #4d4d4d;--ucds-color-action-secondary-active: #4d4d4d;--ucds-color-action-secondary-focus: #4d4d4d;--ucds-color-action-inverse-rest: #ffffff;--ucds-color-action-inverse-hover: #e5e5e5;--ucds-color-action-inverse-active: #e5e5e5;--ucds-color-action-inverse-focus: #ffffff;--ucds-color-feedback-error-light: #df3047;--ucds-color-feedback-error-background-light: rgb(255 173 173 / 50%);--ucds-font-base-size: 16px;--ucds-font-base-line-height: 24px;--ucds-font-base-weight-light: 200;--ucds-font-base-weight-normal: 400;--ucds-font-base-weight-medium: 500;--ucds-font-base-weight-semibold: 600;--ucds-font-base-weight-bold: 700;--ucds-font-sans-serif-family: "Proxima Nova", Arial, Helvetica, sans-serif;--ucds-font-serif-family: "Museo Slab", "Proxima Nova", Arial, Helvetica, sans-serif;--ucds-form-element-border-radius: 8px;--ucds-form-element-border-width: 2px;--ucds-form-element-height: 48px;--ucds-form-element-width: 100%;--ucds-form-element-maxwidth: 555px;--ucds-form-element-horizontal-padding: 16px;--ucds-form-component-intra-spacing: 8px;--ucds-form-component-inter-spacing: 16px}