@italia/input 0.1.0-alpha.0 → 1.0.0-alpha.10
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 +1 -1
- package/custom-elements.json +419 -304
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/it-input.d.ts +25 -1077
- package/dist/src/it-input.d.ts.map +1 -1
- package/dist/src/it-input.js +1543 -973
- package/dist/src/it-input.js.map +1 -1
- package/dist/src/locales/it.d.ts.map +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +17 -14
- package/styles/globals.scss +12 -6
package/dist/src/it-input.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { directive, Directive } from 'lit/directive.js';
|
|
2
2
|
import { LitElement, css, html, nothing } from 'lit';
|
|
3
|
-
import {
|
|
3
|
+
import { state, query, property, queryAssignedElements, customElement } from 'lit/decorators.js';
|
|
4
4
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
5
5
|
import { when } from 'lit/directives/when.js';
|
|
6
|
+
import { live } from 'lit/directives/live.js';
|
|
6
7
|
|
|
7
8
|
/******************************************************************************
|
|
8
9
|
Copyright (c) Microsoft Corporation.
|
|
@@ -37,209 +38,6 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
37
38
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
38
39
|
};
|
|
39
40
|
|
|
40
|
-
/**
|
|
41
|
-
* @license
|
|
42
|
-
*
|
|
43
|
-
* Copyright IBM Corp. 2020, 2022
|
|
44
|
-
*
|
|
45
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
|
46
|
-
* LICENSE file in the root directory of this source tree.
|
|
47
|
-
*/
|
|
48
|
-
/**
|
|
49
|
-
* @param Base The base class.
|
|
50
|
-
* @returns A mix-in to handle `formdata` event on the containing form.
|
|
51
|
-
*/
|
|
52
|
-
const FormMixin = (Base) => {
|
|
53
|
-
/**
|
|
54
|
-
* A mix-in class to handle `formdata` event on the containing form.
|
|
55
|
-
*/
|
|
56
|
-
class FormMixinImpl extends Base {
|
|
57
|
-
connectedCallback() {
|
|
58
|
-
// @ts-ignore
|
|
59
|
-
super.connectedCallback();
|
|
60
|
-
if (this.closest('form')) {
|
|
61
|
-
this.closest('form')?.addEventListener('formdata', this._handleFormdata.bind(this));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
disconnectedCallback() {
|
|
65
|
-
// if (this._hFormdata) {
|
|
66
|
-
// this._hFormdata = this._hFormdata.release();
|
|
67
|
-
// }
|
|
68
|
-
// @ts-ignore
|
|
69
|
-
super.disconnectedCallback();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return FormMixinImpl;
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* @license
|
|
77
|
-
*
|
|
78
|
-
* Copyright IBM Corp. 2020, 2022
|
|
79
|
-
*
|
|
80
|
-
* This source code is licensed under the Apache-2.0 license found in the
|
|
81
|
-
* LICENSE file in the root directory of this source tree.
|
|
82
|
-
*/
|
|
83
|
-
/**
|
|
84
|
-
* Form validation status.
|
|
85
|
-
*/
|
|
86
|
-
var VALIDATION_STATUS;
|
|
87
|
-
(function (VALIDATION_STATUS) {
|
|
88
|
-
/**
|
|
89
|
-
* One indicating no validation error.
|
|
90
|
-
*/
|
|
91
|
-
VALIDATION_STATUS["NO_ERROR"] = "";
|
|
92
|
-
/**
|
|
93
|
-
* One indicating that the value is invalid (generic).
|
|
94
|
-
*/
|
|
95
|
-
VALIDATION_STATUS["INVALID"] = "invalid";
|
|
96
|
-
/**
|
|
97
|
-
* One indicating missing required value.
|
|
98
|
-
*/
|
|
99
|
-
VALIDATION_STATUS["ERROR_REQUIRED"] = "required";
|
|
100
|
-
/**
|
|
101
|
-
* One indicating that the value does not match the pattern.
|
|
102
|
-
*/
|
|
103
|
-
VALIDATION_STATUS["PATTERN"] = "pattern";
|
|
104
|
-
/**
|
|
105
|
-
* One indicating that the value is shorter than the minimum length.
|
|
106
|
-
*/
|
|
107
|
-
VALIDATION_STATUS["MINLENGTH"] = "minlength";
|
|
108
|
-
/**
|
|
109
|
-
* One indicating that the value is less than the maximum length.
|
|
110
|
-
*/
|
|
111
|
-
VALIDATION_STATUS["MAXLENGTH"] = "maxlength";
|
|
112
|
-
})(VALIDATION_STATUS || (VALIDATION_STATUS = {}));
|
|
113
|
-
/**
|
|
114
|
-
* @param Base The base class.
|
|
115
|
-
* @returns A mix-in implementing `.setCustomValidity()` method.
|
|
116
|
-
*/
|
|
117
|
-
const ValidityMixin = (Base) => {
|
|
118
|
-
class ValidityMixinImpl extends Base {
|
|
119
|
-
constructor() {
|
|
120
|
-
super(...arguments);
|
|
121
|
-
/**
|
|
122
|
-
* Field is touched
|
|
123
|
-
*/
|
|
124
|
-
this._touched = false;
|
|
125
|
-
}
|
|
126
|
-
// Not using TypeScript `protected` due to: microsoft/TypeScript#17744
|
|
127
|
-
// Using `string` instead of `VALIDATION_STATUS` until we can require TypeScript 3.8
|
|
128
|
-
/**
|
|
129
|
-
* @param state The form validation status.
|
|
130
|
-
* @returns The form validation error mesasages associated with the given status.
|
|
131
|
-
* @protected
|
|
132
|
-
*/
|
|
133
|
-
_getValidityMessage(state, translations) {
|
|
134
|
-
return {
|
|
135
|
-
[VALIDATION_STATUS.NO_ERROR]: '',
|
|
136
|
-
[VALIDATION_STATUS.INVALID]: translations[VALIDATION_STATUS.INVALID],
|
|
137
|
-
[VALIDATION_STATUS.ERROR_REQUIRED]: translations[VALIDATION_STATUS.ERROR_REQUIRED],
|
|
138
|
-
[VALIDATION_STATUS.PATTERN]: translations[VALIDATION_STATUS.PATTERN],
|
|
139
|
-
[VALIDATION_STATUS.MINLENGTH]: translations[VALIDATION_STATUS.MINLENGTH].replace('{minlength}', this.minlength.toString()),
|
|
140
|
-
[VALIDATION_STATUS.MAXLENGTH]: translations[VALIDATION_STATUS.MAXLENGTH].replace('{maxlength}', this.maxlength.toString()),
|
|
141
|
-
}[state];
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Checks if the value meets the constraints.
|
|
145
|
-
*
|
|
146
|
-
* @returns `true` if the value meets the constraints. `false` otherwise.
|
|
147
|
-
*/
|
|
148
|
-
_checkValidity(translations, htmlValidity = true) {
|
|
149
|
-
// htmlValidity = this.inputElement.checkValidity(); //check browser validity
|
|
150
|
-
if (this.customValidation) {
|
|
151
|
-
return undefined;
|
|
152
|
-
}
|
|
153
|
-
let validity = htmlValidity;
|
|
154
|
-
let message = validity
|
|
155
|
-
? this._getValidityMessage(VALIDATION_STATUS.NO_ERROR, translations)
|
|
156
|
-
: this._getValidityMessage(VALIDATION_STATUS.INVALID, translations);
|
|
157
|
-
if (this.required || (this._value && (this.pattern || this.minlength > 0 || this.maxlength > 0))) {
|
|
158
|
-
if (this.pattern) {
|
|
159
|
-
const regex = new RegExp(`^${this.pattern}$`, 'u');
|
|
160
|
-
validity = regex.test(this._value.toString());
|
|
161
|
-
if (!validity) {
|
|
162
|
-
message = this._getValidityMessage(VALIDATION_STATUS.PATTERN, translations);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
if (typeof this.minlength !== 'undefined' && this.minlength > 0) {
|
|
166
|
-
validity = validity && this._value.toString().length >= this.minlength;
|
|
167
|
-
if (!validity) {
|
|
168
|
-
message = this._getValidityMessage(VALIDATION_STATUS.MINLENGTH, translations);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (typeof this.maxlength !== 'undefined' && this.maxlength > 0) {
|
|
172
|
-
validity = validity && this._value.toString().length <= this.maxlength;
|
|
173
|
-
if (!validity) {
|
|
174
|
-
message = this._getValidityMessage(VALIDATION_STATUS.MAXLENGTH, translations);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
if (this.required && !this._value) {
|
|
178
|
-
validity = false;
|
|
179
|
-
message = this._getValidityMessage(VALIDATION_STATUS.ERROR_REQUIRED, translations);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
this.invalid = !validity;
|
|
183
|
-
this.validityMessage = message;
|
|
184
|
-
return validity;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Sets the given custom validity message.
|
|
188
|
-
*
|
|
189
|
-
* @param validityMessage The custom validity message
|
|
190
|
-
*/
|
|
191
|
-
setCustomValidity(validityMessage) {
|
|
192
|
-
this.invalid = Boolean(validityMessage);
|
|
193
|
-
this.validityMessage = validityMessage;
|
|
194
|
-
}
|
|
195
|
-
_handleBlur() {
|
|
196
|
-
this._touched = true;
|
|
197
|
-
this.dispatchEvent(new FocusEvent('blur', { bubbles: true, composed: true }));
|
|
198
|
-
}
|
|
199
|
-
_handleFocus() {
|
|
200
|
-
this.dispatchEvent(new FocusEvent('focus', { bubbles: true, composed: true }));
|
|
201
|
-
}
|
|
202
|
-
_handleClick() {
|
|
203
|
-
this.dispatchEvent(new MouseEvent('click', { bubbles: true, composed: true }));
|
|
204
|
-
}
|
|
205
|
-
_handleChange(e) {
|
|
206
|
-
const target = e.target;
|
|
207
|
-
let value;
|
|
208
|
-
if (target instanceof HTMLInputElement) {
|
|
209
|
-
switch (target.type) {
|
|
210
|
-
case 'checkbox':
|
|
211
|
-
case 'radio':
|
|
212
|
-
value = target.checked;
|
|
213
|
-
break;
|
|
214
|
-
case 'file':
|
|
215
|
-
value = target.files; // FileList
|
|
216
|
-
break;
|
|
217
|
-
default:
|
|
218
|
-
value = target.value;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
else if (target instanceof HTMLSelectElement) {
|
|
222
|
-
if (target.multiple) {
|
|
223
|
-
value = Array.from(target.selectedOptions).map((o) => o.value);
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
value = target.value;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
// textarea o altri input con value
|
|
231
|
-
value = target.value;
|
|
232
|
-
}
|
|
233
|
-
this.dispatchEvent(new CustomEvent('change', {
|
|
234
|
-
detail: { value, el: target },
|
|
235
|
-
bubbles: true,
|
|
236
|
-
composed: true,
|
|
237
|
-
}));
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
return ValidityMixinImpl;
|
|
241
|
-
};
|
|
242
|
-
|
|
243
41
|
class SetAttributesDirective extends Directive {
|
|
244
42
|
update(part, [attributes]) {
|
|
245
43
|
const el = part.element;
|
|
@@ -262,6 +60,8 @@ class SetAttributesDirective extends Directive {
|
|
|
262
60
|
*/
|
|
263
61
|
const setAttributes = directive(SetAttributesDirective);
|
|
264
62
|
|
|
63
|
+
function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
|
|
64
|
+
|
|
265
65
|
const connectedElements = new Set();
|
|
266
66
|
if (window && !window.translations) {
|
|
267
67
|
window.translations = new Map();
|
|
@@ -316,7 +116,9 @@ function registerTranslation(...translation) {
|
|
|
316
116
|
});
|
|
317
117
|
update();
|
|
318
118
|
}
|
|
319
|
-
window
|
|
119
|
+
if (typeof window !== 'undefined') {
|
|
120
|
+
window.registerTranslation = registerTranslation;
|
|
121
|
+
}
|
|
320
122
|
/**
|
|
321
123
|
* Localize Reactive Controller for components built with Lit
|
|
322
124
|
*
|
|
@@ -471,10 +273,11 @@ const LocalizeMixin = (Base) => class extends Base {
|
|
|
471
273
|
constructor() {
|
|
472
274
|
super(...arguments);
|
|
473
275
|
this.localize = new LocalizeController(this);
|
|
474
|
-
// Provide default values to avoid definite assignment errors and avoid decorators
|
|
475
|
-
this.dir = '';
|
|
476
|
-
this.lang = '';
|
|
477
276
|
}
|
|
277
|
+
// Provide default values to avoid definite assignment errors and avoid decorators
|
|
278
|
+
// commentati perchè danno problemi su React.js. Sono attributi nativi, e assegnare un valore di default a react da fastidio
|
|
279
|
+
// dir: string = '';
|
|
280
|
+
// lang: string = '';
|
|
478
281
|
/**
|
|
479
282
|
* Restituisce tutta l'utility di traduzione
|
|
480
283
|
*
|
|
@@ -567,9 +370,21 @@ class Logger {
|
|
|
567
370
|
class BaseComponent extends LitElement {
|
|
568
371
|
constructor() {
|
|
569
372
|
super();
|
|
570
|
-
this.
|
|
373
|
+
this.composeClass = clsx;
|
|
571
374
|
this.logger = new Logger(this.tagName.toLowerCase());
|
|
572
375
|
}
|
|
376
|
+
get _ariaAttributes() {
|
|
377
|
+
const attributes = {};
|
|
378
|
+
for (const attr of this.getAttributeNames()) {
|
|
379
|
+
if (attr === 'it-role') {
|
|
380
|
+
attributes.role = this.getAttribute(attr);
|
|
381
|
+
}
|
|
382
|
+
else if (attr.startsWith('it-aria-')) {
|
|
383
|
+
attributes[attr.replace(/^it-/, '')] = this.getAttribute(attr);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return attributes;
|
|
387
|
+
}
|
|
573
388
|
// eslint-disable-next-line class-methods-use-this
|
|
574
389
|
generateId(prefix) {
|
|
575
390
|
return `${prefix}-${Math.random().toString(36).slice(2)}`;
|
|
@@ -579,25 +394,22 @@ class BaseComponent extends LitElement {
|
|
|
579
394
|
// new TrackFocus(element); // per il momento è stato disattivato perchè ci sono le pseudo classi ::focus-visible per fare quello che fa TrackFocus. Si possono aggiungere regole css in bsi-italia 3 dato che stiamo facendo una breaking release di bsi.
|
|
580
395
|
}
|
|
581
396
|
// eslint-disable-next-line class-methods-use-this
|
|
582
|
-
|
|
583
|
-
let
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
.forEach((newClass) => {
|
|
587
|
-
composedClass += ` ${newClass}`;
|
|
588
|
-
});
|
|
589
|
-
return composedClass.trim();
|
|
590
|
-
}
|
|
591
|
-
getAriaAttributes() {
|
|
592
|
-
for (const attr of this.getAttributeNames()) {
|
|
593
|
-
if (attr.startsWith('aria-')) {
|
|
594
|
-
this._ariaAttributes[attr] = this.getAttribute(attr);
|
|
595
|
-
}
|
|
397
|
+
getActiveElement() {
|
|
398
|
+
let active = document.activeElement;
|
|
399
|
+
while (active && active.shadowRoot && active.shadowRoot.activeElement) {
|
|
400
|
+
active = active.shadowRoot.activeElement;
|
|
596
401
|
}
|
|
402
|
+
return active;
|
|
403
|
+
}
|
|
404
|
+
get focusElement() {
|
|
405
|
+
return this;
|
|
406
|
+
}
|
|
407
|
+
// eslint-disable-next-line class-methods-use-this
|
|
408
|
+
get prefersReducedMotion() {
|
|
409
|
+
return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
597
410
|
}
|
|
598
411
|
connectedCallback() {
|
|
599
|
-
super.connectedCallback
|
|
600
|
-
this.getAriaAttributes();
|
|
412
|
+
super.connectedCallback();
|
|
601
413
|
// generate internal _id
|
|
602
414
|
const prefix = this.id?.length > 0 ? this.id : this.tagName.toLowerCase();
|
|
603
415
|
this._id = this.generateId(prefix);
|
|
@@ -605,6 +417,686 @@ class BaseComponent extends LitElement {
|
|
|
605
417
|
}
|
|
606
418
|
const BaseLocalizedComponent = LocalizeMixin(BaseComponent);
|
|
607
419
|
|
|
420
|
+
//
|
|
421
|
+
// We store a WeakMap of forms + controls so we can keep references to all FormControl within a given form. As
|
|
422
|
+
// elements connect and disconnect to/from the DOM, their containing form is used as the key and the form control is
|
|
423
|
+
// added and removed from the form's set, respectively.
|
|
424
|
+
//
|
|
425
|
+
const formCollections = new WeakMap();
|
|
426
|
+
//
|
|
427
|
+
// We store a WeakMap of reportValidity() overloads so we can override it when form controls connect to the DOM and
|
|
428
|
+
// restore the original behavior when they disconnect.
|
|
429
|
+
//
|
|
430
|
+
const reportValidityOverloads = new WeakMap();
|
|
431
|
+
const checkValidityOverloads = new WeakMap();
|
|
432
|
+
//
|
|
433
|
+
// We store a Set of controls that users have interacted with. This allows us to determine the interaction state
|
|
434
|
+
// without littering the DOM with additional data attributes.
|
|
435
|
+
//
|
|
436
|
+
const userInteractedControls = new WeakSet();
|
|
437
|
+
//
|
|
438
|
+
// We store a WeakMap of interactions for each form control so we can track when all conditions are met for validation.
|
|
439
|
+
//
|
|
440
|
+
const interactions = new WeakMap();
|
|
441
|
+
/** A reactive controller to allow form controls to participate in form submission, validation, etc. */
|
|
442
|
+
class FormControlController {
|
|
443
|
+
constructor(host, options) {
|
|
444
|
+
this.submittedOnce = false;
|
|
445
|
+
this.handleFormData = (event) => {
|
|
446
|
+
// console.log('handleFormData');
|
|
447
|
+
const disabled = this.options.disabled(this.host);
|
|
448
|
+
const name = this.options.name(this.host);
|
|
449
|
+
const value = this.options.value(this.host);
|
|
450
|
+
const tagName = this.host.tagName.toLowerCase();
|
|
451
|
+
// For buttons, we only submit the value if they were the submitter. This is currently done in doAction() by
|
|
452
|
+
// injecting the name/value on a temporary button, so we can just skip them here.
|
|
453
|
+
const isButton = tagName === 'it-button';
|
|
454
|
+
if (this.host.isConnected &&
|
|
455
|
+
!disabled &&
|
|
456
|
+
!isButton &&
|
|
457
|
+
typeof name === 'string' &&
|
|
458
|
+
name.length > 0 &&
|
|
459
|
+
typeof value !== 'undefined') {
|
|
460
|
+
switch (tagName) {
|
|
461
|
+
case 'it-radio':
|
|
462
|
+
if (this.host.checked) {
|
|
463
|
+
event.formData.append(name, value);
|
|
464
|
+
}
|
|
465
|
+
break;
|
|
466
|
+
case 'it-checkbox':
|
|
467
|
+
case 'it-toggle':
|
|
468
|
+
if (this.host.checked) {
|
|
469
|
+
if (event.formData.getAll(name).indexOf(value) < 0) {
|
|
470
|
+
// handle group checkbox
|
|
471
|
+
event.formData.append(name, value);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
break;
|
|
475
|
+
case 'it-checkbox-group':
|
|
476
|
+
case 'it-toggle-group':
|
|
477
|
+
// non settare valori in formData, perchè ogni singola checkbox setta il suo valore
|
|
478
|
+
break;
|
|
479
|
+
case 'it-upload':
|
|
480
|
+
// value is File[] — append each File object directly (not as string)
|
|
481
|
+
if (Array.isArray(value)) {
|
|
482
|
+
value.forEach((file) => {
|
|
483
|
+
event.formData.append(name, file);
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
break;
|
|
487
|
+
default:
|
|
488
|
+
if (Array.isArray(value)) {
|
|
489
|
+
value.forEach((val) => {
|
|
490
|
+
event.formData.append(name, val.toString());
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
event.formData.append(name, value.toString());
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
this.handleFormSubmit = (event) => {
|
|
500
|
+
const disabled = this.options.disabled(this.host);
|
|
501
|
+
const reportValidity = this.options.reportValidity;
|
|
502
|
+
// Update the interacted state for all controls when the form is submitted
|
|
503
|
+
if (this.form && !this.form.noValidate) {
|
|
504
|
+
formCollections.get(this.form)?.forEach((control) => {
|
|
505
|
+
this.setUserInteracted(control, true);
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
const resReportValidity = reportValidity(this.host);
|
|
509
|
+
if (this.form && !this.form.noValidate && !disabled && !resReportValidity) {
|
|
510
|
+
event.preventDefault();
|
|
511
|
+
// event.stopImmediatePropagation(); // se lo attiviamo, valida un campo alla volta
|
|
512
|
+
// Scroll al primo controllo non valido
|
|
513
|
+
const formControls = formCollections.get(this.form);
|
|
514
|
+
if (formControls) {
|
|
515
|
+
for (const control of formControls) {
|
|
516
|
+
if (!control.validity?.valid) {
|
|
517
|
+
// Scroll smooth verso il controllo non valido
|
|
518
|
+
control.scrollIntoView({
|
|
519
|
+
behavior: 'smooth',
|
|
520
|
+
block: 'center',
|
|
521
|
+
});
|
|
522
|
+
break;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
this.submittedOnce = true;
|
|
528
|
+
};
|
|
529
|
+
this.handleFormReset = () => {
|
|
530
|
+
this.options.setValue(this.host, '');
|
|
531
|
+
this.submittedOnce = false;
|
|
532
|
+
this.setUserInteracted(this.host, false);
|
|
533
|
+
interactions.set(this.host, []);
|
|
534
|
+
};
|
|
535
|
+
this.handleInteraction = (event) => {
|
|
536
|
+
const emittedEvents = interactions.get(this.host);
|
|
537
|
+
if (!emittedEvents.includes(event.type)) {
|
|
538
|
+
emittedEvents.push(event.type);
|
|
539
|
+
}
|
|
540
|
+
// Mark it as user-interacted as soon as all associated events have been emitted
|
|
541
|
+
if (emittedEvents.length === this.options.assumeInteractionOn.length) {
|
|
542
|
+
this.setUserInteracted(this.host, true);
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
this.checkFormValidity = () => {
|
|
546
|
+
// console.log('checkFormValidity');
|
|
547
|
+
//
|
|
548
|
+
// This is very similar to the `reportFormValidity` function, but it does not trigger native constraint validation
|
|
549
|
+
// Allow the user to simply check if the form is valid and handling validity in their own way.
|
|
550
|
+
//
|
|
551
|
+
// We preserve the original method in a WeakMap, but we don't call it from the overload because that would trigger
|
|
552
|
+
// validations in an unexpected order. When the element disconnects, we revert to the original behavior. This won't
|
|
553
|
+
// be necessary once we can use ElementInternals.
|
|
554
|
+
//
|
|
555
|
+
// Note that we're also honoring the form's novalidate attribute.
|
|
556
|
+
//
|
|
557
|
+
if (this.form && !this.form.noValidate) {
|
|
558
|
+
// This seems sloppy, but checking all elements will cover native inputs, Shoelace inputs, and other custom
|
|
559
|
+
// elements that support the constraint validation API.
|
|
560
|
+
const elements = this.form.querySelectorAll('*');
|
|
561
|
+
for (const element of elements) {
|
|
562
|
+
if (typeof element.checkValidity === 'function') {
|
|
563
|
+
if (!element.checkValidity()) {
|
|
564
|
+
return false;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
return true;
|
|
570
|
+
};
|
|
571
|
+
this.reportFormValidity = () => {
|
|
572
|
+
// console.log('reportFormValidity');
|
|
573
|
+
//
|
|
574
|
+
// FormControl work hard to act like regular form controls. They support the Constraint Validation API
|
|
575
|
+
// and its associated methods such as setCustomValidity() and reportValidity(). However, the HTMLFormElement also
|
|
576
|
+
// has a reportValidity() method that will trigger validation on all child controls. Since we're not yet using
|
|
577
|
+
// ElementInternals, we need to overload this method so it looks for any element with the reportValidity() method.
|
|
578
|
+
//
|
|
579
|
+
// We preserve the original method in a WeakMap, but we don't call it from the overload because that would trigger
|
|
580
|
+
// validations in an unexpected order. When the element disconnects, we revert to the original behavior. This won't
|
|
581
|
+
// be necessary once we can use ElementInternals.
|
|
582
|
+
//
|
|
583
|
+
// Note that we're also honoring the form's novalidate attribute.
|
|
584
|
+
//
|
|
585
|
+
if (this.form && !this.form.noValidate) {
|
|
586
|
+
// This seems sloppy, but checking all elements will cover native inputs, Shoelace inputs, and other custom
|
|
587
|
+
// elements that support the constraint validation API.
|
|
588
|
+
const elements = this.form.querySelectorAll('*');
|
|
589
|
+
for (const element of elements) {
|
|
590
|
+
if (typeof element.reportValidity === 'function') {
|
|
591
|
+
if (!element.reportValidity()) {
|
|
592
|
+
return false;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
return true;
|
|
598
|
+
};
|
|
599
|
+
(this.host = host).addController(this);
|
|
600
|
+
this.options = {
|
|
601
|
+
form: (input) => {
|
|
602
|
+
// If there's a form attribute, use it to find the target form by id
|
|
603
|
+
// Controls may not always reflect the 'form' property. For example, `<it-button>` doesn't reflect.
|
|
604
|
+
const formId = input.form;
|
|
605
|
+
if (formId) {
|
|
606
|
+
const root = input.getRootNode();
|
|
607
|
+
const form = root.querySelector(`#${formId}`);
|
|
608
|
+
if (form) {
|
|
609
|
+
return form;
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
return input.closest('form');
|
|
613
|
+
},
|
|
614
|
+
name: (input) => input.name,
|
|
615
|
+
value: (input) => input.value,
|
|
616
|
+
disabled: (input) => input.disabled ?? false,
|
|
617
|
+
reportValidity: (input) => typeof input.reportValidity === 'function' ? input.reportValidity() : true,
|
|
618
|
+
checkValidity: (input) => (typeof input.checkValidity === 'function' ? input.checkValidity() : true),
|
|
619
|
+
setValue: (input, value) => {
|
|
620
|
+
// eslint-disable-next-line no-param-reassign
|
|
621
|
+
input.value = value;
|
|
622
|
+
},
|
|
623
|
+
assumeInteractionOn: ['it-input'],
|
|
624
|
+
...options,
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
hostConnected() {
|
|
628
|
+
const form = this.options.form(this.host);
|
|
629
|
+
if (form) {
|
|
630
|
+
this.attachForm(form);
|
|
631
|
+
}
|
|
632
|
+
// Listen for interactions
|
|
633
|
+
interactions.set(this.host, []);
|
|
634
|
+
this.options.assumeInteractionOn.forEach((event) => {
|
|
635
|
+
this.host.addEventListener(event, this.handleInteraction);
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
hostDisconnected() {
|
|
639
|
+
this.detachForm();
|
|
640
|
+
// Clean up interactions
|
|
641
|
+
interactions.delete(this.host);
|
|
642
|
+
this.options.assumeInteractionOn.forEach((event) => {
|
|
643
|
+
this.host.removeEventListener(event, this.handleInteraction);
|
|
644
|
+
});
|
|
645
|
+
}
|
|
646
|
+
hostUpdated() {
|
|
647
|
+
const form = this.options.form(this.host);
|
|
648
|
+
// Detach if the form no longer exists
|
|
649
|
+
if (!form) {
|
|
650
|
+
this.detachForm();
|
|
651
|
+
}
|
|
652
|
+
// If the form has changed, reattach it
|
|
653
|
+
if (form && this.form !== form) {
|
|
654
|
+
this.detachForm();
|
|
655
|
+
this.attachForm(form);
|
|
656
|
+
}
|
|
657
|
+
if (this.host.hasUpdated) {
|
|
658
|
+
this.setValidity(this.host.validity.valid);
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
attachForm(form) {
|
|
662
|
+
if (form) {
|
|
663
|
+
this.form = form;
|
|
664
|
+
// Add this element to the form's collection
|
|
665
|
+
if (formCollections.has(this.form)) {
|
|
666
|
+
formCollections.get(this.form).add(this.host);
|
|
667
|
+
}
|
|
668
|
+
else {
|
|
669
|
+
formCollections.set(this.form, new Set([this.host]));
|
|
670
|
+
}
|
|
671
|
+
this.form.addEventListener('formdata', this.handleFormData);
|
|
672
|
+
this.form.addEventListener('submit', this.handleFormSubmit);
|
|
673
|
+
this.form.addEventListener('reset', this.handleFormReset);
|
|
674
|
+
// Overload the form's reportValidity() method so it looks at FormControl
|
|
675
|
+
if (!reportValidityOverloads.has(this.form)) {
|
|
676
|
+
reportValidityOverloads.set(this.form, this.form.reportValidity);
|
|
677
|
+
this.form.reportValidity = () => this.reportFormValidity();
|
|
678
|
+
}
|
|
679
|
+
// Overload the form's checkValidity() method so it looks at FormControl
|
|
680
|
+
if (!checkValidityOverloads.has(this.form)) {
|
|
681
|
+
checkValidityOverloads.set(this.form, this.form.checkValidity);
|
|
682
|
+
this.form.checkValidity = () => this.checkFormValidity();
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
this.form = undefined;
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
detachForm() {
|
|
690
|
+
if (!this.form)
|
|
691
|
+
return;
|
|
692
|
+
const formCollection = formCollections.get(this.form);
|
|
693
|
+
if (!formCollection) {
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
this.submittedOnce = false;
|
|
697
|
+
// Remove this host from the form's collection
|
|
698
|
+
formCollection.delete(this.host);
|
|
699
|
+
// Check to make sure there's no other form controls in the collection. If we do this
|
|
700
|
+
// without checking if any other controls are still in the collection, then we will wipe out the
|
|
701
|
+
// validity checks for all other elements.
|
|
702
|
+
// see: https://github.com/shoelace-style/shoelace/issues/1703
|
|
703
|
+
if (formCollection.size <= 0) {
|
|
704
|
+
this.form.removeEventListener('formdata', this.handleFormData);
|
|
705
|
+
this.form.removeEventListener('submit', this.handleFormSubmit);
|
|
706
|
+
this.form.removeEventListener('reset', this.handleFormReset);
|
|
707
|
+
// Remove the overload and restore the original method
|
|
708
|
+
if (reportValidityOverloads.has(this.form)) {
|
|
709
|
+
this.form.reportValidity = reportValidityOverloads.get(this.form);
|
|
710
|
+
reportValidityOverloads.delete(this.form);
|
|
711
|
+
}
|
|
712
|
+
if (checkValidityOverloads.has(this.form)) {
|
|
713
|
+
this.form.checkValidity = checkValidityOverloads.get(this.form);
|
|
714
|
+
checkValidityOverloads.delete(this.form);
|
|
715
|
+
}
|
|
716
|
+
// So it looks weird here to not always set the form to undefined. But I _think_ if we unattach this.form here,
|
|
717
|
+
// we end up in this fun spot where future validity checks don't have a reference to the form validity handler.
|
|
718
|
+
// First form element in sets the validity handler. So we can't clean up `this.form` until there are no other form elements in the form.
|
|
719
|
+
this.form = undefined;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
// eslint-disable-next-line class-methods-use-this
|
|
723
|
+
setUserInteracted(el, hasInteracted) {
|
|
724
|
+
if (hasInteracted) {
|
|
725
|
+
userInteractedControls.add(el);
|
|
726
|
+
}
|
|
727
|
+
else {
|
|
728
|
+
userInteractedControls.delete(el);
|
|
729
|
+
}
|
|
730
|
+
el.requestUpdate();
|
|
731
|
+
}
|
|
732
|
+
doAction(type, submitter) {
|
|
733
|
+
// console.log('doaction', type);
|
|
734
|
+
if (this.form) {
|
|
735
|
+
const button = document.createElement('button');
|
|
736
|
+
button.type = type;
|
|
737
|
+
button.style.position = 'absolute';
|
|
738
|
+
button.style.width = '0';
|
|
739
|
+
button.style.height = '0';
|
|
740
|
+
button.style.clipPath = 'inset(50%)';
|
|
741
|
+
button.style.overflow = 'hidden';
|
|
742
|
+
button.style.whiteSpace = 'nowrap';
|
|
743
|
+
// Pass name, value, and form attributes through to the temporary button
|
|
744
|
+
if (submitter) {
|
|
745
|
+
button.name = submitter.name;
|
|
746
|
+
button.value = submitter.value;
|
|
747
|
+
['formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget'].forEach((attr) => {
|
|
748
|
+
if (submitter.hasAttribute(attr)) {
|
|
749
|
+
button.setAttribute(attr, submitter.getAttribute(attr));
|
|
750
|
+
}
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
this.form.append(button);
|
|
754
|
+
button.click();
|
|
755
|
+
button.remove();
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
/** Returns the associated `<form>` element, if one exists. */
|
|
759
|
+
getForm() {
|
|
760
|
+
return this.form ?? null;
|
|
761
|
+
}
|
|
762
|
+
/** Resets the form, restoring all the control to their default value */
|
|
763
|
+
reset(submitter) {
|
|
764
|
+
this.doAction('reset', submitter);
|
|
765
|
+
}
|
|
766
|
+
/** Submits the form, triggering validation and form data injection. */
|
|
767
|
+
submit(submitter) {
|
|
768
|
+
// Calling form.submit() bypasses the submit event and constraint validation. To prevent this, we can inject a
|
|
769
|
+
// native submit button into the form, "click" it, then remove it to simulate a standard form submission.
|
|
770
|
+
this.doAction('submit', submitter);
|
|
771
|
+
}
|
|
772
|
+
/**
|
|
773
|
+
* Synchronously sets the form control's validity. Call this when you know the future validity but need to update
|
|
774
|
+
* the host element immediately, i.e. before Lit updates the component in the next update.
|
|
775
|
+
*/
|
|
776
|
+
setValidity(isValid) {
|
|
777
|
+
const host = this.host;
|
|
778
|
+
const hasInteracted = Boolean(userInteractedControls.has(host));
|
|
779
|
+
const required = Boolean(host.required);
|
|
780
|
+
//
|
|
781
|
+
// We're mapping the following "states" to data attributes. In the future, we can use ElementInternals.states to
|
|
782
|
+
// create a similar mapping, but instead of [data-invalid] it will look like :--invalid.
|
|
783
|
+
//
|
|
784
|
+
// See this RFC for more details: https://github.com/shoelace-style/shoelace/issues/1011
|
|
785
|
+
//
|
|
786
|
+
host.toggleAttribute('data-required', required);
|
|
787
|
+
host.toggleAttribute('data-optional', !required);
|
|
788
|
+
host.toggleAttribute('data-invalid', !isValid);
|
|
789
|
+
host.toggleAttribute('data-valid', isValid);
|
|
790
|
+
host.toggleAttribute('data-user-invalid', !isValid && hasInteracted);
|
|
791
|
+
host.toggleAttribute('data-user-valid', isValid && hasInteracted);
|
|
792
|
+
}
|
|
793
|
+
userInteracted() {
|
|
794
|
+
const hasInteracted = Boolean(userInteractedControls.has(this.host));
|
|
795
|
+
return hasInteracted;
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Updates the form control's validity based on the current value of `host.validity.valid`. Call this when anything
|
|
799
|
+
* that affects constraint validation changes so the component receives the correct validity states.
|
|
800
|
+
*/
|
|
801
|
+
updateValidity() {
|
|
802
|
+
const host = this.host;
|
|
803
|
+
this.setValidity(host.validity.valid);
|
|
804
|
+
}
|
|
805
|
+
/**
|
|
806
|
+
* Dispatches a non-bubbling, cancelable custom event of type `it-invalid`.
|
|
807
|
+
* If the `it-invalid` event will be cancelled then the original `invalid`
|
|
808
|
+
* event (which may have been passed as argument) will also be cancelled.
|
|
809
|
+
* If no original `invalid` event has been passed then the `it-invalid`
|
|
810
|
+
* event will be cancelled before being dispatched.
|
|
811
|
+
*/
|
|
812
|
+
emitInvalidEvent(originalInvalidEvent) {
|
|
813
|
+
const itInvalidEvent = new CustomEvent('it-invalid', {
|
|
814
|
+
bubbles: false,
|
|
815
|
+
composed: false,
|
|
816
|
+
cancelable: true,
|
|
817
|
+
detail: {},
|
|
818
|
+
});
|
|
819
|
+
if (!originalInvalidEvent) {
|
|
820
|
+
itInvalidEvent.preventDefault();
|
|
821
|
+
}
|
|
822
|
+
if (!this.host.dispatchEvent(itInvalidEvent)) {
|
|
823
|
+
originalInvalidEvent?.preventDefault();
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
const translation$1 = {
|
|
829
|
+
$code: 'it',
|
|
830
|
+
$name: 'Italiano',
|
|
831
|
+
$dir: 'ltr',
|
|
832
|
+
validityRequired: 'Questo campo è obbligatorio.',
|
|
833
|
+
validityGroupRequired: "Scegli almeno un'opzione",
|
|
834
|
+
validityPattern: 'Il valore non corrisponde al formato richiesto.',
|
|
835
|
+
validityMinlength: 'Il valore deve essere lungo almeno {minlength} caratteri.',
|
|
836
|
+
validityMaxlength: 'Il valore deve essere lungo al massimo {maxlength} caratteri.',
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
registerTranslation(translation$1);
|
|
840
|
+
class FormControl extends BaseLocalizedComponent {
|
|
841
|
+
constructor() {
|
|
842
|
+
super(...arguments);
|
|
843
|
+
this.formControlController = new FormControlController(this, {
|
|
844
|
+
assumeInteractionOn: ['it-input', 'it-blur', 'it-change'],
|
|
845
|
+
});
|
|
846
|
+
// TODO: verificare se serve davvero con il fatto che usiamo form-controller
|
|
847
|
+
// static formAssociated = true;
|
|
848
|
+
// @property()
|
|
849
|
+
// internals = this.attachInternals();
|
|
850
|
+
this._touched = false;
|
|
851
|
+
/** The name of the input, submitted as a name/value pair with form data. */
|
|
852
|
+
this.name = '';
|
|
853
|
+
/** The current value of the input, submitted as a name/value pair with form data. */
|
|
854
|
+
this.value = '';
|
|
855
|
+
/** If the input is disabled. */
|
|
856
|
+
this.disabled = false;
|
|
857
|
+
/**
|
|
858
|
+
* By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you
|
|
859
|
+
* to place the form control outside of a form and associate it with the form that has this `id`. The form must be in
|
|
860
|
+
* the same document or shadow root for this to work.
|
|
861
|
+
*/
|
|
862
|
+
this.form = '';
|
|
863
|
+
/** If you implement your custom validation and you won't to trigger default validation */
|
|
864
|
+
this.customValidation = false;
|
|
865
|
+
/** If your input is invalid from your custom validition, set this attribute with message validation */
|
|
866
|
+
this.validationText = '';
|
|
867
|
+
/**
|
|
868
|
+
* Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is
|
|
869
|
+
* implied, allowing any numeric value. Only applies to date and number input types.
|
|
870
|
+
*/
|
|
871
|
+
this.step = 'any';
|
|
872
|
+
/** The input's minimum length. */
|
|
873
|
+
this.minlength = -1;
|
|
874
|
+
/** The input's maximum length. */
|
|
875
|
+
this.maxlength = -1;
|
|
876
|
+
/** If the input is required. */
|
|
877
|
+
this.required = false;
|
|
878
|
+
/* For grouped input, like checkbox-group */
|
|
879
|
+
this.isInGroup = false;
|
|
880
|
+
this.validationMessage = '';
|
|
881
|
+
}
|
|
882
|
+
/** Gets the validity state object */
|
|
883
|
+
get validity() {
|
|
884
|
+
return this.inputElement?.validity;
|
|
885
|
+
}
|
|
886
|
+
/** Gets the associated form, if one exists. */
|
|
887
|
+
getForm() {
|
|
888
|
+
return this.formControlController.getForm();
|
|
889
|
+
}
|
|
890
|
+
// Form validation methods
|
|
891
|
+
checkValidity() {
|
|
892
|
+
const inputValid = this.inputElement?.checkValidity() ?? true; // this.inputElement.checkValidity() è la validazione del browser
|
|
893
|
+
return inputValid;
|
|
894
|
+
}
|
|
895
|
+
/** Checks for validity and shows the browser's validation message if the control is invalid. */
|
|
896
|
+
reportValidity() {
|
|
897
|
+
// const ret = this.inputElement.checkValidity();
|
|
898
|
+
const ret = this.checkValidity(); // chiama la checkValidity, che se è stata overridata chiama quella
|
|
899
|
+
this.handleValidationMessages();
|
|
900
|
+
return ret; // this.inputElement.reportValidity();
|
|
901
|
+
}
|
|
902
|
+
/** Sets a custom validation message. Pass an empty string to restore validity. */
|
|
903
|
+
setCustomValidity(message) {
|
|
904
|
+
this.inputElement.setCustomValidity(message);
|
|
905
|
+
this.validationMessage = this.inputElement.validationMessage;
|
|
906
|
+
this.formControlController.updateValidity();
|
|
907
|
+
}
|
|
908
|
+
// Handlers
|
|
909
|
+
_handleReady() {
|
|
910
|
+
requestAnimationFrame(() => {
|
|
911
|
+
this.dispatchEvent(new CustomEvent('it-input-ready', { bubbles: true, detail: { el: this.inputElement } }));
|
|
912
|
+
});
|
|
913
|
+
}
|
|
914
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
915
|
+
_handleInput(e) {
|
|
916
|
+
this.handleValidationMessages();
|
|
917
|
+
this.dispatchEvent(new CustomEvent('it-input', {
|
|
918
|
+
detail: { value: this.inputElement.value, el: this.inputElement },
|
|
919
|
+
bubbles: true,
|
|
920
|
+
composed: true,
|
|
921
|
+
}));
|
|
922
|
+
}
|
|
923
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
924
|
+
_handleBlur(e) {
|
|
925
|
+
this._touched = true;
|
|
926
|
+
this.handleValidationMessages();
|
|
927
|
+
this.dispatchEvent(new FocusEvent('it-blur', { bubbles: true, composed: true }));
|
|
928
|
+
}
|
|
929
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
930
|
+
_handleFocus(e) {
|
|
931
|
+
this.dispatchEvent(new FocusEvent('it-focus', { bubbles: true, composed: true }));
|
|
932
|
+
}
|
|
933
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
934
|
+
_handleClick(e) {
|
|
935
|
+
this.dispatchEvent(new MouseEvent('it-click', { bubbles: true, composed: true }));
|
|
936
|
+
}
|
|
937
|
+
/*
|
|
938
|
+
Override default browser validation messages
|
|
939
|
+
*/
|
|
940
|
+
handleValidationMessages() {
|
|
941
|
+
if (!this.customValidation) {
|
|
942
|
+
const _v = this.inputElement.validity;
|
|
943
|
+
const isRequiredHandledByGroup = this.isInGroup === true;
|
|
944
|
+
if (_v.valueMissing && !isRequiredHandledByGroup) {
|
|
945
|
+
this.setCustomValidity(this.$t('validityRequired'));
|
|
946
|
+
}
|
|
947
|
+
else if (_v.patternMismatch) {
|
|
948
|
+
this.setCustomValidity(this.$t('validityPattern'));
|
|
949
|
+
}
|
|
950
|
+
else if (_v.tooShort) {
|
|
951
|
+
this.setCustomValidity(this.$t('validityMinlength').replace('{minlength}', this.minlength.toString()));
|
|
952
|
+
}
|
|
953
|
+
else if (_v.tooLong) {
|
|
954
|
+
this.setCustomValidity(this.$t('validityMaxlength').replace('{maxlength}', this.maxlength.toString()));
|
|
955
|
+
}
|
|
956
|
+
else {
|
|
957
|
+
/* nothing. Usa il messaggio di errore della validazione
|
|
958
|
+
di default del browser per altri errori di validità come:
|
|
959
|
+
- typeMismatch
|
|
960
|
+
- rangeUnderflow
|
|
961
|
+
- rangeOverflow
|
|
962
|
+
- stepMismatch
|
|
963
|
+
- badInput */
|
|
964
|
+
const otherConstraintErrors = _v.typeMismatch || _v.rangeUnderflow || _v.rangeOverflow || _v.stepMismatch || _v.badInput;
|
|
965
|
+
if (!otherConstraintErrors) {
|
|
966
|
+
this.setCustomValidity('');
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
this.validationMessage = this.inputElement.validationMessage;
|
|
971
|
+
}
|
|
972
|
+
_handleInvalid(event) {
|
|
973
|
+
this.formControlController.setValidity(false);
|
|
974
|
+
this.formControlController.emitInvalidEvent(event);
|
|
975
|
+
}
|
|
976
|
+
_handleChange(e) {
|
|
977
|
+
const target = e.target;
|
|
978
|
+
let value;
|
|
979
|
+
if (target instanceof HTMLInputElement) {
|
|
980
|
+
switch (target.type) {
|
|
981
|
+
case 'checkbox':
|
|
982
|
+
case 'radio':
|
|
983
|
+
value = target.checked;
|
|
984
|
+
break;
|
|
985
|
+
case 'file':
|
|
986
|
+
value = target.files; // FileList
|
|
987
|
+
break;
|
|
988
|
+
default:
|
|
989
|
+
value = target.value;
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
else if (target instanceof HTMLSelectElement) {
|
|
993
|
+
if (target.multiple) {
|
|
994
|
+
value = Array.from(target.selectedOptions).map((o) => o.value);
|
|
995
|
+
}
|
|
996
|
+
else {
|
|
997
|
+
value = target.value;
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
else {
|
|
1001
|
+
// textarea o altri input con value
|
|
1002
|
+
value = target.value;
|
|
1003
|
+
}
|
|
1004
|
+
this.dispatchEvent(new CustomEvent('it-change', {
|
|
1005
|
+
detail: { value, el: target },
|
|
1006
|
+
bubbles: true,
|
|
1007
|
+
composed: true,
|
|
1008
|
+
}));
|
|
1009
|
+
}
|
|
1010
|
+
updated(changedProperties) {
|
|
1011
|
+
super.updated?.(changedProperties);
|
|
1012
|
+
if (this.customValidation) {
|
|
1013
|
+
this.setCustomValidity(this.validationText ?? '');
|
|
1014
|
+
}
|
|
1015
|
+
else if (this.formControlController.userInteracted()) {
|
|
1016
|
+
this.formControlController.updateValidity();
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
__decorate([
|
|
1021
|
+
state(),
|
|
1022
|
+
__metadata("design:type", Object)
|
|
1023
|
+
], FormControl.prototype, "_touched", void 0);
|
|
1024
|
+
__decorate([
|
|
1025
|
+
query('.it-form__control'),
|
|
1026
|
+
__metadata("design:type", HTMLInputElement)
|
|
1027
|
+
], FormControl.prototype, "inputElement", void 0);
|
|
1028
|
+
__decorate([
|
|
1029
|
+
property({ type: String, reflect: true }) // from FormControl
|
|
1030
|
+
,
|
|
1031
|
+
__metadata("design:type", Object)
|
|
1032
|
+
], FormControl.prototype, "name", void 0);
|
|
1033
|
+
__decorate([
|
|
1034
|
+
property({ reflect: true }),
|
|
1035
|
+
__metadata("design:type", Object)
|
|
1036
|
+
], FormControl.prototype, "value", void 0);
|
|
1037
|
+
__decorate([
|
|
1038
|
+
property({ type: Boolean, reflect: true }) // from FormControl
|
|
1039
|
+
,
|
|
1040
|
+
__metadata("design:type", Object)
|
|
1041
|
+
], FormControl.prototype, "disabled", void 0);
|
|
1042
|
+
__decorate([
|
|
1043
|
+
property({ reflect: true, type: String }),
|
|
1044
|
+
__metadata("design:type", Object)
|
|
1045
|
+
], FormControl.prototype, "form", void 0);
|
|
1046
|
+
__decorate([
|
|
1047
|
+
property({ type: Boolean, reflect: true, attribute: 'custom-validation' }),
|
|
1048
|
+
__metadata("design:type", Object)
|
|
1049
|
+
], FormControl.prototype, "customValidation", void 0);
|
|
1050
|
+
__decorate([
|
|
1051
|
+
property({ attribute: 'validity-message', reflect: true }),
|
|
1052
|
+
__metadata("design:type", String)
|
|
1053
|
+
], FormControl.prototype, "validationText", void 0);
|
|
1054
|
+
__decorate([
|
|
1055
|
+
property(),
|
|
1056
|
+
__metadata("design:type", String)
|
|
1057
|
+
], FormControl.prototype, "pattern", void 0);
|
|
1058
|
+
__decorate([
|
|
1059
|
+
property(),
|
|
1060
|
+
__metadata("design:type", Object)
|
|
1061
|
+
], FormControl.prototype, "min", void 0);
|
|
1062
|
+
__decorate([
|
|
1063
|
+
property(),
|
|
1064
|
+
__metadata("design:type", Object)
|
|
1065
|
+
], FormControl.prototype, "max", void 0);
|
|
1066
|
+
__decorate([
|
|
1067
|
+
property(),
|
|
1068
|
+
__metadata("design:type", Object)
|
|
1069
|
+
], FormControl.prototype, "step", void 0);
|
|
1070
|
+
__decorate([
|
|
1071
|
+
property({ type: Number }),
|
|
1072
|
+
__metadata("design:type", Object)
|
|
1073
|
+
], FormControl.prototype, "minlength", void 0);
|
|
1074
|
+
__decorate([
|
|
1075
|
+
property({ type: Number }),
|
|
1076
|
+
__metadata("design:type", Object)
|
|
1077
|
+
], FormControl.prototype, "maxlength", void 0);
|
|
1078
|
+
__decorate([
|
|
1079
|
+
property({ type: Boolean, reflect: true }) // from FormControl
|
|
1080
|
+
,
|
|
1081
|
+
__metadata("design:type", Object)
|
|
1082
|
+
], FormControl.prototype, "required", void 0);
|
|
1083
|
+
__decorate([
|
|
1084
|
+
property({ type: Boolean }),
|
|
1085
|
+
__metadata("design:type", Object)
|
|
1086
|
+
], FormControl.prototype, "isInGroup", void 0);
|
|
1087
|
+
__decorate([
|
|
1088
|
+
state(),
|
|
1089
|
+
__metadata("design:type", Object)
|
|
1090
|
+
], FormControl.prototype, "validationMessage", void 0);
|
|
1091
|
+
|
|
1092
|
+
if (typeof window !== 'undefined') {
|
|
1093
|
+
window._itAnalytics = window._itAnalytics || {};
|
|
1094
|
+
window._itAnalytics = {
|
|
1095
|
+
...window._itAnalytics,
|
|
1096
|
+
version: '1.0.0-alpha.10',
|
|
1097
|
+
};
|
|
1098
|
+
}
|
|
1099
|
+
|
|
608
1100
|
/**
|
|
609
1101
|
* Checks for repetition of characters in
|
|
610
1102
|
* a string
|
|
@@ -776,13 +1268,10 @@ const translation = {
|
|
|
776
1268
|
passwordSuggestionSpecial: 'Uno o più caratteri speciali.',
|
|
777
1269
|
passwordSuggestionFollowed: 'suggerimenti seguiti',
|
|
778
1270
|
passwordSuggestionFollowedPlural: 'suggerimenti seguiti',
|
|
779
|
-
passwordSuggestionOf: 'di',
|
|
780
|
-
passwordSuggestionMetLabel: 'Soddisfatto:',
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
validityPattern: 'Il valore non corrisponde al formato richiesto.',
|
|
784
|
-
validityMinlength: 'Il valore deve essere lungo almeno {minlength} caratteri.',
|
|
785
|
-
validityMaxlength: 'Il valore deve essere lungo al massimo {maxlength} caratteri.',
|
|
1271
|
+
passwordSuggestionOf: 'di',
|
|
1272
|
+
passwordSuggestionMetLabel: 'Soddisfatto:',
|
|
1273
|
+
increaseValue: 'Aumenta il valore',
|
|
1274
|
+
decreaseValue: 'Diminuisci il valore',
|
|
786
1275
|
};
|
|
787
1276
|
|
|
788
1277
|
var styles = css`@charset "UTF-8";
|
|
@@ -802,7 +1291,7 @@ var styles = css`@charset "UTF-8";
|
|
|
802
1291
|
.form-check [type=checkbox]:focus + label,
|
|
803
1292
|
.form-check [type=radio]:focus + label {
|
|
804
1293
|
border-color: hsl(0, 0%, 0%) !important;
|
|
805
|
-
box-shadow: 0 0 0 2px var(--
|
|
1294
|
+
box-shadow: 0 0 0 2px var(--bsi-color-border-inverse), 0 0 0 5px var(--bsi-color-outline-focus) !important;
|
|
806
1295
|
outline: 3px solid transparent !important;
|
|
807
1296
|
outline-offset: 3px !important;
|
|
808
1297
|
}
|
|
@@ -842,7 +1331,7 @@ hr {
|
|
|
842
1331
|
|
|
843
1332
|
p {
|
|
844
1333
|
margin-top: 0;
|
|
845
|
-
margin-bottom: var(--
|
|
1334
|
+
margin-bottom: var(--bsi-paragraph-spacing);
|
|
846
1335
|
}
|
|
847
1336
|
|
|
848
1337
|
abbr[title] {
|
|
@@ -852,21 +1341,21 @@ abbr[title] {
|
|
|
852
1341
|
}
|
|
853
1342
|
|
|
854
1343
|
address {
|
|
855
|
-
margin-bottom: var(--
|
|
1344
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
856
1345
|
font-style: normal;
|
|
857
1346
|
line-height: inherit;
|
|
858
1347
|
}
|
|
859
1348
|
|
|
860
1349
|
ol,
|
|
861
1350
|
ul {
|
|
862
|
-
padding-left: var(--
|
|
1351
|
+
padding-left: var(--bsi-spacing-l);
|
|
863
1352
|
}
|
|
864
1353
|
|
|
865
1354
|
ol,
|
|
866
1355
|
ul,
|
|
867
1356
|
dl {
|
|
868
1357
|
margin-top: 0;
|
|
869
|
-
margin-bottom: var(--
|
|
1358
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
870
1359
|
}
|
|
871
1360
|
|
|
872
1361
|
ol ol,
|
|
@@ -877,22 +1366,22 @@ ul ol {
|
|
|
877
1366
|
}
|
|
878
1367
|
|
|
879
1368
|
dt {
|
|
880
|
-
font-weight: var(--
|
|
1369
|
+
font-weight: var(--bsi-font-weight-strong);
|
|
881
1370
|
}
|
|
882
1371
|
|
|
883
1372
|
dd {
|
|
884
|
-
margin-bottom: var(--
|
|
1373
|
+
margin-bottom: var(--bsi-spacing-xxs);
|
|
885
1374
|
margin-left: 0;
|
|
886
1375
|
}
|
|
887
1376
|
|
|
888
1377
|
blockquote {
|
|
889
|
-
margin: 0 0 var(--
|
|
1378
|
+
margin: 0 0 var(--bsi-spacing-s);
|
|
890
1379
|
}
|
|
891
1380
|
|
|
892
1381
|
sub,
|
|
893
1382
|
sup {
|
|
894
1383
|
position: relative;
|
|
895
|
-
font-size: var(--
|
|
1384
|
+
font-size: var(--bsi-font-size-1);
|
|
896
1385
|
line-height: 0;
|
|
897
1386
|
vertical-align: baseline;
|
|
898
1387
|
}
|
|
@@ -906,19 +1395,14 @@ sup {
|
|
|
906
1395
|
}
|
|
907
1396
|
|
|
908
1397
|
a {
|
|
909
|
-
color: var(--
|
|
1398
|
+
color: var(--bsi-color-link);
|
|
910
1399
|
text-decoration: underline;
|
|
911
1400
|
text-decoration-skip-ink: auto;
|
|
912
1401
|
text-underline-offset: 2px;
|
|
913
1402
|
}
|
|
914
|
-
a:hover
|
|
915
|
-
color: var(--
|
|
916
|
-
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
|
920
|
-
color: inherit;
|
|
921
|
-
text-decoration: none;
|
|
1403
|
+
a:hover {
|
|
1404
|
+
color: var(--bsi-color-link-hover);
|
|
1405
|
+
cursor: pointer;
|
|
922
1406
|
}
|
|
923
1407
|
|
|
924
1408
|
pre,
|
|
@@ -931,7 +1415,7 @@ samp {
|
|
|
931
1415
|
pre {
|
|
932
1416
|
display: block;
|
|
933
1417
|
margin-top: 0;
|
|
934
|
-
margin-bottom: var(--
|
|
1418
|
+
margin-bottom: var(--bsi-paragraph-spacing);
|
|
935
1419
|
overflow: auto;
|
|
936
1420
|
}
|
|
937
1421
|
pre code {
|
|
@@ -1051,23 +1535,6 @@ fieldset {
|
|
|
1051
1535
|
border: 0;
|
|
1052
1536
|
}
|
|
1053
1537
|
|
|
1054
|
-
legend {
|
|
1055
|
-
float: left;
|
|
1056
|
-
width: 100%;
|
|
1057
|
-
padding: 0;
|
|
1058
|
-
margin-bottom: 0.5rem;
|
|
1059
|
-
font-size: calc(1.275rem + 0.3vw);
|
|
1060
|
-
line-height: inherit;
|
|
1061
|
-
}
|
|
1062
|
-
@media (min-width: 1200px) {
|
|
1063
|
-
legend {
|
|
1064
|
-
font-size: 1.5rem;
|
|
1065
|
-
}
|
|
1066
|
-
}
|
|
1067
|
-
legend + * {
|
|
1068
|
-
clear: left;
|
|
1069
|
-
}
|
|
1070
|
-
|
|
1071
1538
|
::-webkit-datetime-edit-fields-wrapper,
|
|
1072
1539
|
::-webkit-datetime-edit-text,
|
|
1073
1540
|
::-webkit-datetime-edit-minute,
|
|
@@ -1143,78 +1610,82 @@ progress {
|
|
|
1143
1610
|
}
|
|
1144
1611
|
|
|
1145
1612
|
.btn {
|
|
1146
|
-
--
|
|
1147
|
-
--
|
|
1148
|
-
--
|
|
1149
|
-
--
|
|
1150
|
-
--
|
|
1151
|
-
--
|
|
1152
|
-
--
|
|
1153
|
-
--
|
|
1154
|
-
--
|
|
1155
|
-
--
|
|
1156
|
-
--
|
|
1157
|
-
--
|
|
1158
|
-
--
|
|
1159
|
-
--
|
|
1160
|
-
}
|
|
1161
|
-
|
|
1613
|
+
--bsi-btn-background: transparent;
|
|
1614
|
+
--bsi-btn-border-color: transparent;
|
|
1615
|
+
--bsi-btn-border-radius: var(--bsi-radius-smooth);
|
|
1616
|
+
--bsi-btn-border-size: 0;
|
|
1617
|
+
--bsi-btn-disabled-opacity: 0.5;
|
|
1618
|
+
--bsi-btn-font-family: var(--bsi-font-sans);
|
|
1619
|
+
--bsi-btn-font-size: var(--bsi-label-font-size);
|
|
1620
|
+
--bsi-btn-font-weight: var(--bsi-font-weight-solid);
|
|
1621
|
+
--bsi-btn-line-height: var(--bsi-font-leading-3);
|
|
1622
|
+
--bsi-btn-outline-border-color: transparent;
|
|
1623
|
+
--bsi-btn-outline-border-size: 2px;
|
|
1624
|
+
--bsi-btn-padding-x: var(--bsi-spacing-s);
|
|
1625
|
+
--bsi-btn-padding-y: var(--bsi-spacing-xs);
|
|
1626
|
+
--bsi-btn-text-color: var(--bsi-color-text-primary);
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
/* stylelint-disable-next-line no-duplicate-selectors */
|
|
1162
1630
|
.btn {
|
|
1163
1631
|
display: inline-block;
|
|
1164
|
-
padding: var(--
|
|
1165
|
-
border: var(--
|
|
1166
|
-
border-radius: var(--
|
|
1167
|
-
background: var(--
|
|
1168
|
-
box-shadow: var(--
|
|
1169
|
-
color: var(--
|
|
1170
|
-
font-family: var(--
|
|
1171
|
-
font-size: var(--
|
|
1172
|
-
font-weight: var(--
|
|
1173
|
-
line-height: var(--
|
|
1632
|
+
padding: var(--bsi-btn-padding-y) var(--bsi-btn-padding-x);
|
|
1633
|
+
border: var(--bsi-btn-border-width) solid var(--bsi-btn-border-color);
|
|
1634
|
+
border-radius: var(--bsi-btn-border-radius);
|
|
1635
|
+
background: var(--bsi-btn-background);
|
|
1636
|
+
box-shadow: var(--bsi-btn-box-shadow, none);
|
|
1637
|
+
color: var(--bsi-btn-text-color);
|
|
1638
|
+
font-family: var(--bsi-btn-font-family);
|
|
1639
|
+
font-size: var(--bsi-btn-font-size);
|
|
1640
|
+
font-weight: var(--bsi-btn-font-weight);
|
|
1641
|
+
line-height: var(--bsi-btn-line-height);
|
|
1174
1642
|
text-align: center;
|
|
1175
1643
|
text-decoration: none;
|
|
1176
1644
|
vertical-align: middle;
|
|
1177
1645
|
white-space: initial;
|
|
1178
1646
|
width: auto;
|
|
1179
|
-
transition: all var(--
|
|
1647
|
+
transition: all var(--bsi-transition-instant) ease-in-out;
|
|
1180
1648
|
user-select: none;
|
|
1181
1649
|
}
|
|
1650
|
+
.btn:hover {
|
|
1651
|
+
color: var(--bsi-btn-text-color);
|
|
1652
|
+
}
|
|
1182
1653
|
.btn:disabled, .btn.disabled {
|
|
1183
|
-
opacity: var(--
|
|
1654
|
+
opacity: var(--bsi-btn-disabled-opacity);
|
|
1184
1655
|
cursor: not-allowed;
|
|
1185
1656
|
pointer-events: none;
|
|
1186
1657
|
}
|
|
1187
1658
|
.btn:focus-visible {
|
|
1188
|
-
border-color: var(--
|
|
1659
|
+
border-color: var(--bsi-btn-hover-border-color);
|
|
1189
1660
|
outline: 0;
|
|
1190
1661
|
}
|
|
1191
1662
|
.btn-check:focus-visible + .btn {
|
|
1192
|
-
border-color: var(--
|
|
1663
|
+
border-color: var(--bsi-btn-hover-border-color);
|
|
1193
1664
|
outline: 0;
|
|
1194
1665
|
}
|
|
1195
1666
|
|
|
1196
1667
|
.btn-link {
|
|
1197
|
-
--
|
|
1198
|
-
--
|
|
1668
|
+
--bsi-btn-background: transparent;
|
|
1669
|
+
--bsi-btn-border-color: transparent;
|
|
1199
1670
|
text-decoration: underline;
|
|
1200
1671
|
}
|
|
1201
1672
|
.btn-link:hover {
|
|
1202
|
-
color: var(--
|
|
1673
|
+
color: var(--bsi-color-link-hover);
|
|
1203
1674
|
}
|
|
1204
1675
|
|
|
1205
1676
|
.btn-xs {
|
|
1206
|
-
--
|
|
1207
|
-
--
|
|
1208
|
-
--
|
|
1209
|
-
--
|
|
1210
|
-
--
|
|
1677
|
+
--bsi-btn-padding-x: var(--bsi-spacing-xs);
|
|
1678
|
+
--bsi-btn-padding-y: var(--bsi-spacing-xs);
|
|
1679
|
+
--bsi-btn-font-size: var(--bsi-label-font-size-s);
|
|
1680
|
+
--bsi-btn-line-height: var(--bsi-font-leading-1);
|
|
1681
|
+
--bsi-rounded-icon-size: 20px;
|
|
1211
1682
|
}
|
|
1212
1683
|
|
|
1213
1684
|
.btn-lg {
|
|
1214
|
-
--
|
|
1215
|
-
--
|
|
1216
|
-
--
|
|
1217
|
-
--
|
|
1685
|
+
--bsi-btn-padding-x: var(--bsi-spacing-m);
|
|
1686
|
+
--bsi-btn-padding-y: var(--bsi-spacing-s);
|
|
1687
|
+
--bsi-btn-font-size: var(--bsi-label-font-size-l);
|
|
1688
|
+
--bsi-btn-line-height: var(--bsi-font-leading-5);
|
|
1218
1689
|
}
|
|
1219
1690
|
|
|
1220
1691
|
.btn-progress {
|
|
@@ -1226,7 +1697,7 @@ progress {
|
|
|
1226
1697
|
flex-direction: row;
|
|
1227
1698
|
align-items: center;
|
|
1228
1699
|
justify-content: center;
|
|
1229
|
-
gap: var(--
|
|
1700
|
+
gap: var(--bsi-icon-spacing);
|
|
1230
1701
|
}
|
|
1231
1702
|
|
|
1232
1703
|
.btn-full {
|
|
@@ -1253,16 +1724,16 @@ progress {
|
|
|
1253
1724
|
|
|
1254
1725
|
.btn-primary,
|
|
1255
1726
|
a.btn-primary {
|
|
1256
|
-
--
|
|
1257
|
-
--
|
|
1727
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1728
|
+
--bsi-btn-background: var(--bsi-color-background-primary);
|
|
1258
1729
|
}
|
|
1259
1730
|
.btn-primary:hover,
|
|
1260
1731
|
a.btn-primary:hover {
|
|
1261
|
-
--
|
|
1732
|
+
--bsi-btn-background: var(--bsi-color-background-primary-hover);
|
|
1262
1733
|
}
|
|
1263
1734
|
.btn-primary:active,
|
|
1264
1735
|
a.btn-primary:active {
|
|
1265
|
-
--
|
|
1736
|
+
--bsi-btn-background: var(--bsi-color-background-primary-active);
|
|
1266
1737
|
}
|
|
1267
1738
|
.btn-primary.btn-progress,
|
|
1268
1739
|
a.btn-primary.btn-progress {
|
|
@@ -1273,16 +1744,16 @@ a.btn-primary.btn-progress {
|
|
|
1273
1744
|
|
|
1274
1745
|
.btn-secondary,
|
|
1275
1746
|
a.btn-secondary {
|
|
1276
|
-
--
|
|
1277
|
-
--
|
|
1747
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1748
|
+
--bsi-btn-background: var(--bsi-color-background-secondary);
|
|
1278
1749
|
}
|
|
1279
1750
|
.btn-secondary:hover,
|
|
1280
1751
|
a.btn-secondary:hover {
|
|
1281
|
-
--
|
|
1752
|
+
--bsi-btn-background: var(--bsi-color-background-secondary-hover);
|
|
1282
1753
|
}
|
|
1283
1754
|
.btn-secondary:active,
|
|
1284
1755
|
a.btn-secondary:active {
|
|
1285
|
-
--
|
|
1756
|
+
--bsi-btn-background: var(--bsi-color-background-secondary-active);
|
|
1286
1757
|
}
|
|
1287
1758
|
.btn-secondary:disabled.btn-progress, .btn-secondary.disabled.btn-progress,
|
|
1288
1759
|
a.btn-secondary:disabled.btn-progress,
|
|
@@ -1294,135 +1765,174 @@ a.btn-secondary.disabled.btn-progress {
|
|
|
1294
1765
|
|
|
1295
1766
|
.btn-success,
|
|
1296
1767
|
a.btn-success {
|
|
1297
|
-
--
|
|
1298
|
-
--
|
|
1768
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1769
|
+
--bsi-btn-background: var(--bsi-color-background-success);
|
|
1299
1770
|
}
|
|
1300
1771
|
.btn-success:hover,
|
|
1301
1772
|
a.btn-success:hover {
|
|
1302
|
-
--
|
|
1773
|
+
--bsi-btn-background: var(--bsi-color-background-success-hover);
|
|
1303
1774
|
}
|
|
1304
1775
|
.btn-success:active,
|
|
1305
1776
|
a.btn-success:active {
|
|
1306
|
-
--
|
|
1777
|
+
--bsi-btn-background: var(--bsi-color-background-success-active);
|
|
1307
1778
|
}
|
|
1308
1779
|
|
|
1309
1780
|
.btn-warning,
|
|
1310
1781
|
a.btn-warning {
|
|
1311
|
-
--
|
|
1312
|
-
--
|
|
1782
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1783
|
+
--bsi-btn-background: var(--bsi-color-background-warning);
|
|
1313
1784
|
}
|
|
1314
1785
|
.btn-warning:hover,
|
|
1315
1786
|
a.btn-warning:hover {
|
|
1316
|
-
--
|
|
1787
|
+
--bsi-btn-background: var(--bsi-color-background-warning-hover);
|
|
1317
1788
|
}
|
|
1318
1789
|
.btn-warning:active,
|
|
1319
1790
|
a.btn-warning:active {
|
|
1320
|
-
--
|
|
1791
|
+
--bsi-btn-background: var(--bsi-color-background-warning-active);
|
|
1321
1792
|
}
|
|
1322
1793
|
|
|
1323
1794
|
.btn-danger,
|
|
1324
1795
|
a.btn-danger {
|
|
1325
|
-
--
|
|
1326
|
-
--
|
|
1796
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1797
|
+
--bsi-btn-background: var(--bsi-color-background-danger);
|
|
1327
1798
|
}
|
|
1328
1799
|
.btn-danger:hover,
|
|
1329
1800
|
a.btn-danger:hover {
|
|
1330
|
-
--
|
|
1801
|
+
--bsi-btn-background: var(--bsi-color-background-danger-hover);
|
|
1331
1802
|
}
|
|
1332
1803
|
.btn-danger:active,
|
|
1333
1804
|
a.btn-danger:active {
|
|
1334
|
-
--
|
|
1805
|
+
--bsi-btn-background: var(--bsi-color-background-danger-active);
|
|
1335
1806
|
}
|
|
1336
1807
|
|
|
1337
1808
|
.btn[class*=btn-outline-] {
|
|
1338
|
-
--
|
|
1809
|
+
--bsi-btn-box-shadow: inset 0 0 0 var(--bsi-btn-outline-border-size) var(--bsi-btn-outline-border-color);
|
|
1339
1810
|
}
|
|
1340
1811
|
|
|
1341
1812
|
.btn-outline-primary,
|
|
1342
1813
|
a.btn-outline-primary {
|
|
1343
|
-
--
|
|
1344
|
-
--
|
|
1814
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-primary);
|
|
1815
|
+
--bsi-btn-text-color: var(--bsi-color-text-primary);
|
|
1345
1816
|
}
|
|
1346
1817
|
.btn-outline-primary:hover,
|
|
1347
1818
|
a.btn-outline-primary:hover {
|
|
1348
|
-
--
|
|
1349
|
-
--
|
|
1819
|
+
--bsi-btn-outline-border-color: color-mix(in srgb, var(--bsi-color-border-primary-hover) 70%, black);
|
|
1820
|
+
--bsi-btn-text-color: var(--bsi-color-link-hover);
|
|
1350
1821
|
}
|
|
1351
1822
|
.btn-outline-primary:active,
|
|
1352
1823
|
a.btn-outline-primary:active {
|
|
1353
|
-
--
|
|
1354
|
-
--
|
|
1824
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-primary-active);
|
|
1825
|
+
--bsi-btn-text-color: var(--bsi-color-link-active);
|
|
1355
1826
|
}
|
|
1356
1827
|
.btn-outline-secondary,
|
|
1357
1828
|
a.btn-outline-secondary {
|
|
1358
|
-
--
|
|
1359
|
-
--
|
|
1829
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-secondary);
|
|
1830
|
+
--bsi-btn-text-color: var(--bsi-color-text-secondary);
|
|
1360
1831
|
}
|
|
1361
1832
|
.btn-outline-secondary:hover,
|
|
1362
1833
|
a.btn-outline-secondary:hover {
|
|
1363
|
-
--
|
|
1364
|
-
--
|
|
1834
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-secondary-hover);
|
|
1835
|
+
--bsi-btn-text-color: var(--bsi-color-link-secondary-hover);
|
|
1365
1836
|
}
|
|
1366
1837
|
.btn-outline-secondary:active,
|
|
1367
1838
|
a.btn-outline-secondary:active {
|
|
1368
|
-
--
|
|
1369
|
-
--
|
|
1839
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-secondary-active);
|
|
1840
|
+
--bsi-btn-text-color: var(--bsi-color-link-secondary-active);
|
|
1370
1841
|
}
|
|
1371
1842
|
.btn-outline-success,
|
|
1372
1843
|
a.btn-outline-success {
|
|
1373
|
-
--
|
|
1374
|
-
--
|
|
1844
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-success);
|
|
1845
|
+
--bsi-btn-text-color: var(--bsi-color-text-success);
|
|
1375
1846
|
}
|
|
1376
1847
|
.btn-outline-success:hover,
|
|
1377
1848
|
a.btn-outline-success:hover {
|
|
1378
|
-
|
|
1379
|
-
--
|
|
1849
|
+
/* aumenta contrasto scurendo il bordo rispetto al token base */
|
|
1850
|
+
--bsi-btn-outline-border-color: color-mix(in srgb, var(--bsi-color-border-success-hover) 70%, black);
|
|
1851
|
+
--bsi-btn-text-color: var(--bsi-color-text-success-hover);
|
|
1380
1852
|
}
|
|
1381
1853
|
.btn-outline-success:active,
|
|
1382
1854
|
a.btn-outline-success:active {
|
|
1383
|
-
--
|
|
1384
|
-
--
|
|
1855
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-success-active);
|
|
1856
|
+
--bsi-btn-text-color: var(--bsi-color-text-success-active);
|
|
1385
1857
|
}
|
|
1386
1858
|
.btn-outline-warning,
|
|
1387
1859
|
a.btn-outline-warning {
|
|
1388
|
-
--
|
|
1389
|
-
--
|
|
1860
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-warning);
|
|
1861
|
+
--bsi-btn-text-color: var(--bsi-color-text-warning);
|
|
1390
1862
|
}
|
|
1391
1863
|
.btn-outline-warning:hover,
|
|
1392
1864
|
a.btn-outline-warning:hover {
|
|
1393
|
-
--
|
|
1394
|
-
--
|
|
1865
|
+
--bsi-btn-outline-border-color: color-mix(in srgb, var(--bsi-color-border-warning-hover) 70%, black);
|
|
1866
|
+
--bsi-btn-text-color: var(--bsi-color-text-warning-hover);
|
|
1395
1867
|
}
|
|
1396
1868
|
.btn-outline-warning:active,
|
|
1397
1869
|
a.btn-outline-warning:active {
|
|
1398
|
-
--
|
|
1399
|
-
--
|
|
1870
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-warning-active);
|
|
1871
|
+
--bsi-btn-text-color: var(--bsi-color-text-warning-active);
|
|
1400
1872
|
}
|
|
1401
1873
|
.btn-outline-danger,
|
|
1402
1874
|
a.btn-outline-danger {
|
|
1403
|
-
--
|
|
1404
|
-
--
|
|
1875
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-danger);
|
|
1876
|
+
--bsi-btn-text-color: var(--bsi-color-text-danger);
|
|
1405
1877
|
}
|
|
1406
1878
|
.btn-outline-danger:hover,
|
|
1407
1879
|
a.btn-outline-danger:hover {
|
|
1408
|
-
--
|
|
1409
|
-
--
|
|
1880
|
+
--bsi-btn-outline-border-color: color-mix(in srgb, var(--bsi-color-border-danger-hover) 70%, black);
|
|
1881
|
+
--bsi-btn-text-color: var(--bsi-color-text-danger-hover);
|
|
1410
1882
|
}
|
|
1411
1883
|
.btn-outline-danger:active,
|
|
1412
1884
|
a.btn-outline-danger:active {
|
|
1413
|
-
--
|
|
1414
|
-
--
|
|
1885
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-danger-active);
|
|
1886
|
+
--bsi-btn-text-color: var(--bsi-color-text-danger-active);
|
|
1415
1887
|
}
|
|
1416
1888
|
|
|
1417
1889
|
.bg-dark .btn-link {
|
|
1418
|
-
--
|
|
1890
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1891
|
+
}
|
|
1892
|
+
.bg-dark a.btn-primary,
|
|
1893
|
+
.bg-dark .btn-primary {
|
|
1894
|
+
--bsi-btn-text-color: var(--bsi-color-text-primary);
|
|
1895
|
+
--bsi-btn-background: var(--bsi-color-background-inverse);
|
|
1896
|
+
}
|
|
1897
|
+
.bg-dark a.btn-primary:hover,
|
|
1898
|
+
.bg-dark .btn-primary:hover {
|
|
1899
|
+
--bsi-btn-background: color-mix(in srgb, var(--bsi-color-background-inverse) 85%, black);
|
|
1900
|
+
}
|
|
1901
|
+
.bg-dark a.btn-primary:active,
|
|
1902
|
+
.bg-dark .btn-primary:active {
|
|
1903
|
+
--bsi-btn-background: color-mix(in srgb, var(--bsi-color-background-inverse) 80%, black);
|
|
1904
|
+
}
|
|
1905
|
+
.bg-dark a.btn-secondary,
|
|
1906
|
+
.bg-dark .btn-secondary {
|
|
1907
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1908
|
+
--bsi-btn-background: var(--bsi-color-background-secondary);
|
|
1909
|
+
}
|
|
1910
|
+
.bg-dark a.btn-secondary:hover, .bg-dark a.btn-secondary:active,
|
|
1911
|
+
.bg-dark .btn-secondary:hover,
|
|
1912
|
+
.bg-dark .btn-secondary:active {
|
|
1913
|
+
--bsi-btn-background: color-mix(in srgb, var(--bsi-color-background-secondary) 85%, black);
|
|
1419
1914
|
}
|
|
1420
1915
|
.bg-dark .btn-outline-primary,
|
|
1421
|
-
.bg-dark a.btn-outline-primary
|
|
1916
|
+
.bg-dark a.btn-outline-primary {
|
|
1917
|
+
--bsi-btn-outline-border-color: var(--bsi-color-border-inverse);
|
|
1918
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1919
|
+
}
|
|
1920
|
+
.bg-dark .btn-outline-primary:hover,
|
|
1921
|
+
.bg-dark a.btn-outline-primary:hover {
|
|
1922
|
+
--bsi-btn-boxshadow-color-darken: color-mix(in srgb, var(--bsi-color-border-inverse) 80%, black);
|
|
1923
|
+
--bsi-btn-boxshadow-color-desaturated: color-mix(in srgb, var(--bsi-btn-boxshadow-color-darken) 80%, gray);
|
|
1924
|
+
--bsi-btn-outline-border-color: var(--bsi-btn-boxshadow-color-desaturated);
|
|
1925
|
+
}
|
|
1422
1926
|
.bg-dark .btn-outline-secondary,
|
|
1423
1927
|
.bg-dark a.btn-outline-secondary {
|
|
1424
|
-
--
|
|
1425
|
-
|
|
1928
|
+
--bsi-btn-text-color: var(--bsi-color-text-inverse);
|
|
1929
|
+
}
|
|
1930
|
+
.bg-dark .btn-outline-secondary:hover, .bg-dark .btn-outline-secondary:active,
|
|
1931
|
+
.bg-dark a.btn-outline-secondary:hover,
|
|
1932
|
+
.bg-dark a.btn-outline-secondary:active {
|
|
1933
|
+
--bsi-btn-boxshadow-color-darken: color-mix(in srgb, var(--bsi-color-background-secondary) 80%, black);
|
|
1934
|
+
--bsi-btn-boxshadow-color-desaturated: color-mix(in srgb, var(--bsi-btn-boxshadow-color-darken) 80%, gray);
|
|
1935
|
+
--bsi-btn-outline-border-color: var(--bsi-btn-boxshadow-color-desaturated);
|
|
1426
1936
|
}
|
|
1427
1937
|
|
|
1428
1938
|
.btn-close {
|
|
@@ -1432,25 +1942,24 @@ a.btn-outline-danger:active {
|
|
|
1432
1942
|
height: 2.5rem;
|
|
1433
1943
|
padding: 0;
|
|
1434
1944
|
border: 0;
|
|
1435
|
-
opacity: 0.5;
|
|
1436
1945
|
background-color: transparent;
|
|
1437
|
-
color: var(--bs-color-text-base);
|
|
1438
1946
|
}
|
|
1439
1947
|
.btn-close .icon {
|
|
1440
1948
|
position: absolute;
|
|
1441
1949
|
top: 50%;
|
|
1442
1950
|
left: 50%;
|
|
1443
1951
|
transform: translate(-50%, -50%);
|
|
1952
|
+
fill: var(--bsi-icon-secondary);
|
|
1444
1953
|
}
|
|
1445
|
-
.btn-close:hover {
|
|
1446
|
-
|
|
1954
|
+
.btn-close .icon:hover {
|
|
1955
|
+
fill: var(--bsi-icon-default);
|
|
1447
1956
|
text-decoration: none;
|
|
1448
1957
|
}
|
|
1449
1958
|
.btn-close:focus {
|
|
1450
1959
|
opacity: 1;
|
|
1451
1960
|
}
|
|
1452
1961
|
.btn-close:disabled, .btn-close.disabled {
|
|
1453
|
-
opacity: var(--
|
|
1962
|
+
opacity: var(--bsi-btn-disabled-opacity);
|
|
1454
1963
|
pointer-events: none;
|
|
1455
1964
|
user-select: none;
|
|
1456
1965
|
}
|
|
@@ -1460,21 +1969,21 @@ a.btn-outline-danger:active {
|
|
|
1460
1969
|
}
|
|
1461
1970
|
|
|
1462
1971
|
.row {
|
|
1463
|
-
--
|
|
1464
|
-
--
|
|
1972
|
+
--bsi-gutter-x: 24px;
|
|
1973
|
+
--bsi-gutter-y: 0;
|
|
1465
1974
|
display: flex;
|
|
1466
1975
|
flex-wrap: wrap;
|
|
1467
|
-
margin-top: calc(-1 * var(--
|
|
1468
|
-
margin-right: calc(-0.5 * var(--
|
|
1469
|
-
margin-left: calc(-0.5 * var(--
|
|
1976
|
+
margin-top: calc(-1 * var(--bsi-gutter-y));
|
|
1977
|
+
margin-right: calc(-0.5 * var(--bsi-gutter-x));
|
|
1978
|
+
margin-left: calc(-0.5 * var(--bsi-gutter-x));
|
|
1470
1979
|
}
|
|
1471
1980
|
.row > * {
|
|
1472
1981
|
flex-shrink: 0;
|
|
1473
1982
|
width: 100%;
|
|
1474
1983
|
max-width: 100%;
|
|
1475
|
-
padding-right: calc(var(--
|
|
1476
|
-
padding-left: calc(var(--
|
|
1477
|
-
margin-top: var(--
|
|
1984
|
+
padding-right: calc(var(--bsi-gutter-x) * 0.5);
|
|
1985
|
+
padding-left: calc(var(--bsi-gutter-x) * 0.5);
|
|
1986
|
+
margin-top: var(--bsi-gutter-y);
|
|
1478
1987
|
}
|
|
1479
1988
|
|
|
1480
1989
|
.col {
|
|
@@ -1627,62 +2136,62 @@ a.btn-outline-danger:active {
|
|
|
1627
2136
|
|
|
1628
2137
|
.g-0,
|
|
1629
2138
|
.gx-0 {
|
|
1630
|
-
--
|
|
2139
|
+
--bsi-gutter-x: 0;
|
|
1631
2140
|
}
|
|
1632
2141
|
|
|
1633
2142
|
.g-0,
|
|
1634
2143
|
.gy-0 {
|
|
1635
|
-
--
|
|
2144
|
+
--bsi-gutter-y: 0;
|
|
1636
2145
|
}
|
|
1637
2146
|
|
|
1638
2147
|
.g-1,
|
|
1639
2148
|
.gx-1 {
|
|
1640
|
-
--
|
|
2149
|
+
--bsi-gutter-x: 0.25rem;
|
|
1641
2150
|
}
|
|
1642
2151
|
|
|
1643
2152
|
.g-1,
|
|
1644
2153
|
.gy-1 {
|
|
1645
|
-
--
|
|
2154
|
+
--bsi-gutter-y: 0.25rem;
|
|
1646
2155
|
}
|
|
1647
2156
|
|
|
1648
2157
|
.g-2,
|
|
1649
2158
|
.gx-2 {
|
|
1650
|
-
--
|
|
2159
|
+
--bsi-gutter-x: 0.5rem;
|
|
1651
2160
|
}
|
|
1652
2161
|
|
|
1653
2162
|
.g-2,
|
|
1654
2163
|
.gy-2 {
|
|
1655
|
-
--
|
|
2164
|
+
--bsi-gutter-y: 0.5rem;
|
|
1656
2165
|
}
|
|
1657
2166
|
|
|
1658
2167
|
.g-3,
|
|
1659
2168
|
.gx-3 {
|
|
1660
|
-
--
|
|
2169
|
+
--bsi-gutter-x: 1rem;
|
|
1661
2170
|
}
|
|
1662
2171
|
|
|
1663
2172
|
.g-3,
|
|
1664
2173
|
.gy-3 {
|
|
1665
|
-
--
|
|
2174
|
+
--bsi-gutter-y: 1rem;
|
|
1666
2175
|
}
|
|
1667
2176
|
|
|
1668
2177
|
.g-4,
|
|
1669
2178
|
.gx-4 {
|
|
1670
|
-
--
|
|
2179
|
+
--bsi-gutter-x: 1.5rem;
|
|
1671
2180
|
}
|
|
1672
2181
|
|
|
1673
2182
|
.g-4,
|
|
1674
2183
|
.gy-4 {
|
|
1675
|
-
--
|
|
2184
|
+
--bsi-gutter-y: 1.5rem;
|
|
1676
2185
|
}
|
|
1677
2186
|
|
|
1678
2187
|
.g-5,
|
|
1679
2188
|
.gx-5 {
|
|
1680
|
-
--
|
|
2189
|
+
--bsi-gutter-x: 3rem;
|
|
1681
2190
|
}
|
|
1682
2191
|
|
|
1683
2192
|
.g-5,
|
|
1684
2193
|
.gy-5 {
|
|
1685
|
-
--
|
|
2194
|
+
--bsi-gutter-y: 3rem;
|
|
1686
2195
|
}
|
|
1687
2196
|
|
|
1688
2197
|
@media (min-width: 576px) {
|
|
@@ -1807,51 +2316,51 @@ a.btn-outline-danger:active {
|
|
|
1807
2316
|
}
|
|
1808
2317
|
.g-sm-0,
|
|
1809
2318
|
.gx-sm-0 {
|
|
1810
|
-
--
|
|
2319
|
+
--bsi-gutter-x: 0;
|
|
1811
2320
|
}
|
|
1812
2321
|
.g-sm-0,
|
|
1813
2322
|
.gy-sm-0 {
|
|
1814
|
-
--
|
|
2323
|
+
--bsi-gutter-y: 0;
|
|
1815
2324
|
}
|
|
1816
2325
|
.g-sm-1,
|
|
1817
2326
|
.gx-sm-1 {
|
|
1818
|
-
--
|
|
2327
|
+
--bsi-gutter-x: 0.25rem;
|
|
1819
2328
|
}
|
|
1820
2329
|
.g-sm-1,
|
|
1821
2330
|
.gy-sm-1 {
|
|
1822
|
-
--
|
|
2331
|
+
--bsi-gutter-y: 0.25rem;
|
|
1823
2332
|
}
|
|
1824
2333
|
.g-sm-2,
|
|
1825
2334
|
.gx-sm-2 {
|
|
1826
|
-
--
|
|
2335
|
+
--bsi-gutter-x: 0.5rem;
|
|
1827
2336
|
}
|
|
1828
2337
|
.g-sm-2,
|
|
1829
2338
|
.gy-sm-2 {
|
|
1830
|
-
--
|
|
2339
|
+
--bsi-gutter-y: 0.5rem;
|
|
1831
2340
|
}
|
|
1832
2341
|
.g-sm-3,
|
|
1833
2342
|
.gx-sm-3 {
|
|
1834
|
-
--
|
|
2343
|
+
--bsi-gutter-x: 1rem;
|
|
1835
2344
|
}
|
|
1836
2345
|
.g-sm-3,
|
|
1837
2346
|
.gy-sm-3 {
|
|
1838
|
-
--
|
|
2347
|
+
--bsi-gutter-y: 1rem;
|
|
1839
2348
|
}
|
|
1840
2349
|
.g-sm-4,
|
|
1841
2350
|
.gx-sm-4 {
|
|
1842
|
-
--
|
|
2351
|
+
--bsi-gutter-x: 1.5rem;
|
|
1843
2352
|
}
|
|
1844
2353
|
.g-sm-4,
|
|
1845
2354
|
.gy-sm-4 {
|
|
1846
|
-
--
|
|
2355
|
+
--bsi-gutter-y: 1.5rem;
|
|
1847
2356
|
}
|
|
1848
2357
|
.g-sm-5,
|
|
1849
2358
|
.gx-sm-5 {
|
|
1850
|
-
--
|
|
2359
|
+
--bsi-gutter-x: 3rem;
|
|
1851
2360
|
}
|
|
1852
2361
|
.g-sm-5,
|
|
1853
2362
|
.gy-sm-5 {
|
|
1854
|
-
--
|
|
2363
|
+
--bsi-gutter-y: 3rem;
|
|
1855
2364
|
}
|
|
1856
2365
|
}
|
|
1857
2366
|
@media (min-width: 768px) {
|
|
@@ -1976,51 +2485,51 @@ a.btn-outline-danger:active {
|
|
|
1976
2485
|
}
|
|
1977
2486
|
.g-md-0,
|
|
1978
2487
|
.gx-md-0 {
|
|
1979
|
-
--
|
|
2488
|
+
--bsi-gutter-x: 0;
|
|
1980
2489
|
}
|
|
1981
2490
|
.g-md-0,
|
|
1982
2491
|
.gy-md-0 {
|
|
1983
|
-
--
|
|
2492
|
+
--bsi-gutter-y: 0;
|
|
1984
2493
|
}
|
|
1985
2494
|
.g-md-1,
|
|
1986
2495
|
.gx-md-1 {
|
|
1987
|
-
--
|
|
2496
|
+
--bsi-gutter-x: 0.25rem;
|
|
1988
2497
|
}
|
|
1989
2498
|
.g-md-1,
|
|
1990
2499
|
.gy-md-1 {
|
|
1991
|
-
--
|
|
2500
|
+
--bsi-gutter-y: 0.25rem;
|
|
1992
2501
|
}
|
|
1993
2502
|
.g-md-2,
|
|
1994
2503
|
.gx-md-2 {
|
|
1995
|
-
--
|
|
2504
|
+
--bsi-gutter-x: 0.5rem;
|
|
1996
2505
|
}
|
|
1997
2506
|
.g-md-2,
|
|
1998
2507
|
.gy-md-2 {
|
|
1999
|
-
--
|
|
2508
|
+
--bsi-gutter-y: 0.5rem;
|
|
2000
2509
|
}
|
|
2001
2510
|
.g-md-3,
|
|
2002
2511
|
.gx-md-3 {
|
|
2003
|
-
--
|
|
2512
|
+
--bsi-gutter-x: 1rem;
|
|
2004
2513
|
}
|
|
2005
2514
|
.g-md-3,
|
|
2006
2515
|
.gy-md-3 {
|
|
2007
|
-
--
|
|
2516
|
+
--bsi-gutter-y: 1rem;
|
|
2008
2517
|
}
|
|
2009
2518
|
.g-md-4,
|
|
2010
2519
|
.gx-md-4 {
|
|
2011
|
-
--
|
|
2520
|
+
--bsi-gutter-x: 1.5rem;
|
|
2012
2521
|
}
|
|
2013
2522
|
.g-md-4,
|
|
2014
2523
|
.gy-md-4 {
|
|
2015
|
-
--
|
|
2524
|
+
--bsi-gutter-y: 1.5rem;
|
|
2016
2525
|
}
|
|
2017
2526
|
.g-md-5,
|
|
2018
2527
|
.gx-md-5 {
|
|
2019
|
-
--
|
|
2528
|
+
--bsi-gutter-x: 3rem;
|
|
2020
2529
|
}
|
|
2021
2530
|
.g-md-5,
|
|
2022
2531
|
.gy-md-5 {
|
|
2023
|
-
--
|
|
2532
|
+
--bsi-gutter-y: 3rem;
|
|
2024
2533
|
}
|
|
2025
2534
|
}
|
|
2026
2535
|
@media (min-width: 992px) {
|
|
@@ -2145,51 +2654,51 @@ a.btn-outline-danger:active {
|
|
|
2145
2654
|
}
|
|
2146
2655
|
.g-lg-0,
|
|
2147
2656
|
.gx-lg-0 {
|
|
2148
|
-
--
|
|
2657
|
+
--bsi-gutter-x: 0;
|
|
2149
2658
|
}
|
|
2150
2659
|
.g-lg-0,
|
|
2151
2660
|
.gy-lg-0 {
|
|
2152
|
-
--
|
|
2661
|
+
--bsi-gutter-y: 0;
|
|
2153
2662
|
}
|
|
2154
2663
|
.g-lg-1,
|
|
2155
2664
|
.gx-lg-1 {
|
|
2156
|
-
--
|
|
2665
|
+
--bsi-gutter-x: 0.25rem;
|
|
2157
2666
|
}
|
|
2158
2667
|
.g-lg-1,
|
|
2159
2668
|
.gy-lg-1 {
|
|
2160
|
-
--
|
|
2669
|
+
--bsi-gutter-y: 0.25rem;
|
|
2161
2670
|
}
|
|
2162
2671
|
.g-lg-2,
|
|
2163
2672
|
.gx-lg-2 {
|
|
2164
|
-
--
|
|
2673
|
+
--bsi-gutter-x: 0.5rem;
|
|
2165
2674
|
}
|
|
2166
2675
|
.g-lg-2,
|
|
2167
2676
|
.gy-lg-2 {
|
|
2168
|
-
--
|
|
2677
|
+
--bsi-gutter-y: 0.5rem;
|
|
2169
2678
|
}
|
|
2170
2679
|
.g-lg-3,
|
|
2171
2680
|
.gx-lg-3 {
|
|
2172
|
-
--
|
|
2681
|
+
--bsi-gutter-x: 1rem;
|
|
2173
2682
|
}
|
|
2174
2683
|
.g-lg-3,
|
|
2175
2684
|
.gy-lg-3 {
|
|
2176
|
-
--
|
|
2685
|
+
--bsi-gutter-y: 1rem;
|
|
2177
2686
|
}
|
|
2178
2687
|
.g-lg-4,
|
|
2179
2688
|
.gx-lg-4 {
|
|
2180
|
-
--
|
|
2689
|
+
--bsi-gutter-x: 1.5rem;
|
|
2181
2690
|
}
|
|
2182
2691
|
.g-lg-4,
|
|
2183
2692
|
.gy-lg-4 {
|
|
2184
|
-
--
|
|
2693
|
+
--bsi-gutter-y: 1.5rem;
|
|
2185
2694
|
}
|
|
2186
2695
|
.g-lg-5,
|
|
2187
2696
|
.gx-lg-5 {
|
|
2188
|
-
--
|
|
2697
|
+
--bsi-gutter-x: 3rem;
|
|
2189
2698
|
}
|
|
2190
2699
|
.g-lg-5,
|
|
2191
2700
|
.gy-lg-5 {
|
|
2192
|
-
--
|
|
2701
|
+
--bsi-gutter-y: 3rem;
|
|
2193
2702
|
}
|
|
2194
2703
|
}
|
|
2195
2704
|
@media (min-width: 1200px) {
|
|
@@ -2314,51 +2823,51 @@ a.btn-outline-danger:active {
|
|
|
2314
2823
|
}
|
|
2315
2824
|
.g-xl-0,
|
|
2316
2825
|
.gx-xl-0 {
|
|
2317
|
-
--
|
|
2826
|
+
--bsi-gutter-x: 0;
|
|
2318
2827
|
}
|
|
2319
2828
|
.g-xl-0,
|
|
2320
2829
|
.gy-xl-0 {
|
|
2321
|
-
--
|
|
2830
|
+
--bsi-gutter-y: 0;
|
|
2322
2831
|
}
|
|
2323
2832
|
.g-xl-1,
|
|
2324
2833
|
.gx-xl-1 {
|
|
2325
|
-
--
|
|
2834
|
+
--bsi-gutter-x: 0.25rem;
|
|
2326
2835
|
}
|
|
2327
2836
|
.g-xl-1,
|
|
2328
2837
|
.gy-xl-1 {
|
|
2329
|
-
--
|
|
2838
|
+
--bsi-gutter-y: 0.25rem;
|
|
2330
2839
|
}
|
|
2331
2840
|
.g-xl-2,
|
|
2332
2841
|
.gx-xl-2 {
|
|
2333
|
-
--
|
|
2842
|
+
--bsi-gutter-x: 0.5rem;
|
|
2334
2843
|
}
|
|
2335
2844
|
.g-xl-2,
|
|
2336
2845
|
.gy-xl-2 {
|
|
2337
|
-
--
|
|
2846
|
+
--bsi-gutter-y: 0.5rem;
|
|
2338
2847
|
}
|
|
2339
2848
|
.g-xl-3,
|
|
2340
2849
|
.gx-xl-3 {
|
|
2341
|
-
--
|
|
2850
|
+
--bsi-gutter-x: 1rem;
|
|
2342
2851
|
}
|
|
2343
2852
|
.g-xl-3,
|
|
2344
2853
|
.gy-xl-3 {
|
|
2345
|
-
--
|
|
2854
|
+
--bsi-gutter-y: 1rem;
|
|
2346
2855
|
}
|
|
2347
2856
|
.g-xl-4,
|
|
2348
2857
|
.gx-xl-4 {
|
|
2349
|
-
--
|
|
2858
|
+
--bsi-gutter-x: 1.5rem;
|
|
2350
2859
|
}
|
|
2351
2860
|
.g-xl-4,
|
|
2352
2861
|
.gy-xl-4 {
|
|
2353
|
-
--
|
|
2862
|
+
--bsi-gutter-y: 1.5rem;
|
|
2354
2863
|
}
|
|
2355
2864
|
.g-xl-5,
|
|
2356
2865
|
.gx-xl-5 {
|
|
2357
|
-
--
|
|
2866
|
+
--bsi-gutter-x: 3rem;
|
|
2358
2867
|
}
|
|
2359
2868
|
.g-xl-5,
|
|
2360
2869
|
.gy-xl-5 {
|
|
2361
|
-
--
|
|
2870
|
+
--bsi-gutter-y: 3rem;
|
|
2362
2871
|
}
|
|
2363
2872
|
}
|
|
2364
2873
|
@media (min-width: 1400px) {
|
|
@@ -2483,64 +2992,66 @@ a.btn-outline-danger:active {
|
|
|
2483
2992
|
}
|
|
2484
2993
|
.g-xxl-0,
|
|
2485
2994
|
.gx-xxl-0 {
|
|
2486
|
-
--
|
|
2995
|
+
--bsi-gutter-x: 0;
|
|
2487
2996
|
}
|
|
2488
2997
|
.g-xxl-0,
|
|
2489
2998
|
.gy-xxl-0 {
|
|
2490
|
-
--
|
|
2999
|
+
--bsi-gutter-y: 0;
|
|
2491
3000
|
}
|
|
2492
3001
|
.g-xxl-1,
|
|
2493
3002
|
.gx-xxl-1 {
|
|
2494
|
-
--
|
|
3003
|
+
--bsi-gutter-x: 0.25rem;
|
|
2495
3004
|
}
|
|
2496
3005
|
.g-xxl-1,
|
|
2497
3006
|
.gy-xxl-1 {
|
|
2498
|
-
--
|
|
3007
|
+
--bsi-gutter-y: 0.25rem;
|
|
2499
3008
|
}
|
|
2500
3009
|
.g-xxl-2,
|
|
2501
3010
|
.gx-xxl-2 {
|
|
2502
|
-
--
|
|
3011
|
+
--bsi-gutter-x: 0.5rem;
|
|
2503
3012
|
}
|
|
2504
3013
|
.g-xxl-2,
|
|
2505
3014
|
.gy-xxl-2 {
|
|
2506
|
-
--
|
|
3015
|
+
--bsi-gutter-y: 0.5rem;
|
|
2507
3016
|
}
|
|
2508
3017
|
.g-xxl-3,
|
|
2509
3018
|
.gx-xxl-3 {
|
|
2510
|
-
--
|
|
3019
|
+
--bsi-gutter-x: 1rem;
|
|
2511
3020
|
}
|
|
2512
3021
|
.g-xxl-3,
|
|
2513
3022
|
.gy-xxl-3 {
|
|
2514
|
-
--
|
|
3023
|
+
--bsi-gutter-y: 1rem;
|
|
2515
3024
|
}
|
|
2516
3025
|
.g-xxl-4,
|
|
2517
3026
|
.gx-xxl-4 {
|
|
2518
|
-
--
|
|
3027
|
+
--bsi-gutter-x: 1.5rem;
|
|
2519
3028
|
}
|
|
2520
3029
|
.g-xxl-4,
|
|
2521
3030
|
.gy-xxl-4 {
|
|
2522
|
-
--
|
|
3031
|
+
--bsi-gutter-y: 1.5rem;
|
|
2523
3032
|
}
|
|
2524
3033
|
.g-xxl-5,
|
|
2525
3034
|
.gx-xxl-5 {
|
|
2526
|
-
--
|
|
3035
|
+
--bsi-gutter-x: 3rem;
|
|
2527
3036
|
}
|
|
2528
3037
|
.g-xxl-5,
|
|
2529
3038
|
.gy-xxl-5 {
|
|
2530
|
-
--
|
|
3039
|
+
--bsi-gutter-y: 3rem;
|
|
2531
3040
|
}
|
|
2532
3041
|
}
|
|
2533
3042
|
.row.variable-gutters {
|
|
2534
3043
|
margin-right: -12px;
|
|
2535
3044
|
margin-left: -12px;
|
|
2536
|
-
margin-right: -6px;
|
|
2537
|
-
margin-left: -6px;
|
|
2538
3045
|
}
|
|
2539
3046
|
.row.variable-gutters > .col,
|
|
2540
3047
|
.row.variable-gutters > [class*=col-] {
|
|
2541
3048
|
padding-right: 12px;
|
|
2542
3049
|
padding-left: 12px;
|
|
2543
3050
|
}
|
|
3051
|
+
.row.variable-gutters {
|
|
3052
|
+
margin-right: -6px;
|
|
3053
|
+
margin-left: -6px;
|
|
3054
|
+
}
|
|
2544
3055
|
.row.variable-gutters > .col,
|
|
2545
3056
|
.row.variable-gutters > [class*=col-] {
|
|
2546
3057
|
padding-right: 6px;
|
|
@@ -2603,9 +3114,9 @@ a.btn-outline-danger:active {
|
|
|
2603
3114
|
}
|
|
2604
3115
|
|
|
2605
3116
|
.row.row-column-border > [class^=col-] {
|
|
2606
|
-
padding-top: var(--
|
|
2607
|
-
padding-bottom: var(--
|
|
2608
|
-
border-top: var(--
|
|
3117
|
+
padding-top: var(--bsi-spacing-l);
|
|
3118
|
+
padding-bottom: var(--bsi-spacing-l);
|
|
3119
|
+
border-top: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
2609
3120
|
}
|
|
2610
3121
|
.row.row-column-border > [class^=col-]:first-child {
|
|
2611
3122
|
border: none;
|
|
@@ -2617,23 +3128,23 @@ a.btn-outline-danger:active {
|
|
|
2617
3128
|
padding-right: 0;
|
|
2618
3129
|
}
|
|
2619
3130
|
.row.row-column-menu-left > [class^=col-]:first-child {
|
|
2620
|
-
padding: var(--
|
|
3131
|
+
padding: var(--bsi-spacing-s) 0;
|
|
2621
3132
|
}
|
|
2622
3133
|
.row.row-column-menu-right > [class^=col-]:last-child {
|
|
2623
|
-
padding: var(--
|
|
3134
|
+
padding: var(--bsi-spacing-s) 0;
|
|
2624
3135
|
}
|
|
2625
3136
|
.row.row-card {
|
|
2626
|
-
background-color: var(--
|
|
3137
|
+
background-color: var(--bsi-color-background-inverse);
|
|
2627
3138
|
}
|
|
2628
3139
|
@media (min-width: 992px) {
|
|
2629
3140
|
.row.row-column-border {
|
|
2630
3141
|
margin-top: 1rem;
|
|
2631
|
-
border-top: var(--
|
|
3142
|
+
border-top: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
2632
3143
|
}
|
|
2633
3144
|
.row.row-column-border > [class^=col-] {
|
|
2634
3145
|
padding: 3rem 3rem;
|
|
2635
3146
|
border-top: none;
|
|
2636
|
-
border-left: var(--
|
|
3147
|
+
border-left: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
2637
3148
|
}
|
|
2638
3149
|
.row.row-column-border > [class^=col-]:first-child {
|
|
2639
3150
|
border: none;
|
|
@@ -2679,40 +3190,40 @@ a.btn-outline-danger:active {
|
|
|
2679
3190
|
}
|
|
2680
3191
|
}
|
|
2681
3192
|
.row.row-border h1 {
|
|
2682
|
-
border-bottom: var(--
|
|
2683
|
-
padding-bottom: var(--
|
|
2684
|
-
margin-bottom: var(--
|
|
3193
|
+
border-bottom: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3194
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3195
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
2685
3196
|
}
|
|
2686
3197
|
.row.row-border h2 {
|
|
2687
|
-
border-bottom: var(--
|
|
2688
|
-
padding-bottom: var(--
|
|
2689
|
-
margin-bottom: var(--
|
|
3198
|
+
border-bottom: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3199
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3200
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
2690
3201
|
}
|
|
2691
3202
|
.row.row-border h3 {
|
|
2692
|
-
border-bottom: var(--
|
|
2693
|
-
padding-bottom: var(--
|
|
2694
|
-
margin-bottom: var(--
|
|
3203
|
+
border-bottom: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3204
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3205
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
2695
3206
|
}
|
|
2696
3207
|
.row.row-border h4 {
|
|
2697
|
-
border-bottom: var(--
|
|
2698
|
-
padding-bottom: var(--
|
|
2699
|
-
margin-bottom: var(--
|
|
3208
|
+
border-bottom: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3209
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3210
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
2700
3211
|
}
|
|
2701
3212
|
.row.row-border h5 {
|
|
2702
|
-
border-bottom: var(--
|
|
2703
|
-
padding-bottom: var(--
|
|
2704
|
-
margin-bottom: var(--
|
|
3213
|
+
border-bottom: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3214
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3215
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
2705
3216
|
}
|
|
2706
3217
|
.row.row-border h6 {
|
|
2707
|
-
border-bottom: var(--
|
|
2708
|
-
padding-bottom: var(--
|
|
2709
|
-
margin-bottom: var(--
|
|
3218
|
+
border-bottom: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3219
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3220
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
2710
3221
|
}
|
|
2711
3222
|
@media (min-width: 576px) {
|
|
2712
3223
|
.row.row-border {
|
|
2713
|
-
border-bottom: var(--
|
|
2714
|
-
padding-bottom: var(--
|
|
2715
|
-
margin-bottom: var(--
|
|
3224
|
+
border-bottom: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3225
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3226
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
2716
3227
|
}
|
|
2717
3228
|
.row.row-border h1 {
|
|
2718
3229
|
border: none;
|
|
@@ -2759,9 +3270,9 @@ a.btn-outline-danger:active {
|
|
|
2759
3270
|
width: auto;
|
|
2760
3271
|
}
|
|
2761
3272
|
.sticky-wrapper.is-sticky.navbar-wrapper .navbar {
|
|
2762
|
-
padding-top: var(--
|
|
2763
|
-
padding-bottom: var(--
|
|
2764
|
-
border-top: var(--
|
|
3273
|
+
padding-top: var(--bsi-spacing-s);
|
|
3274
|
+
padding-bottom: var(--bsi-spacing-s);
|
|
3275
|
+
border-top: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
2765
3276
|
}
|
|
2766
3277
|
.sticky-wrapper.is-sticky.navbar-wrapper.sticky-expanded {
|
|
2767
3278
|
z-index: auto;
|
|
@@ -2801,14 +3312,20 @@ a.btn-outline-danger:active {
|
|
|
2801
3312
|
bottom: auto;
|
|
2802
3313
|
}
|
|
2803
3314
|
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
3315
|
+
.progress {
|
|
3316
|
+
--bsi-progress-bg: var(--bsi-color-background-secondary-lighter);
|
|
3317
|
+
--bsi-progress-border-radius: var(--bsi-radius-smooth);
|
|
3318
|
+
--bsi-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
3319
|
+
--bsi-progress-label-color: var(--bsi-color-text-secondary);
|
|
3320
|
+
--bsi-progress-label-font-size: var(--bsi-label-font-size-xs);
|
|
3321
|
+
--bsi-progress-bar-transition: width 0.5s ease;
|
|
3322
|
+
--bsi-progress-bar-bg: var(--bsi-color-background-secondary);
|
|
3323
|
+
--bsi-progress-height: 4px;
|
|
2808
3324
|
}
|
|
3325
|
+
|
|
2809
3326
|
.progress-bar-striped {
|
|
2810
3327
|
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
|
2811
|
-
background-size: var(--
|
|
3328
|
+
background-size: var(--bsi-progress-height) var(--bsi-progress-height);
|
|
2812
3329
|
}
|
|
2813
3330
|
|
|
2814
3331
|
.progress-bar-animated {
|
|
@@ -2820,6 +3337,11 @@ a.btn-outline-danger:active {
|
|
|
2820
3337
|
}
|
|
2821
3338
|
}
|
|
2822
3339
|
|
|
3340
|
+
@keyframes progress-bar-stripes {
|
|
3341
|
+
0% {
|
|
3342
|
+
background-position-x: 16px;
|
|
3343
|
+
}
|
|
3344
|
+
}
|
|
2823
3345
|
@keyframes progressBarIndeterminate {
|
|
2824
3346
|
0% {
|
|
2825
3347
|
left: -5%;
|
|
@@ -2833,25 +3355,13 @@ a.btn-outline-danger:active {
|
|
|
2833
3355
|
}
|
|
2834
3356
|
}
|
|
2835
3357
|
.progress {
|
|
2836
|
-
--bs-progress-height: 16px;
|
|
2837
|
-
--bs-progress-font-size: 0.75rem;
|
|
2838
|
-
--bs-progress-bg: hsl(0, 0%, 90%);
|
|
2839
|
-
--bs-progress-border-radius: 0;
|
|
2840
|
-
--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
2841
|
-
--bs-progress-bar-color: hsl(0, 0%, 100%);
|
|
2842
|
-
--bs-progress-bar-bg: hsl(210, 100%, 40%);
|
|
2843
|
-
--bs-progress-bar-transition: width 0.6s ease;
|
|
2844
3358
|
display: flex;
|
|
2845
3359
|
overflow: hidden;
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
height: 4px;
|
|
3360
|
+
background-color: var(--bsi-progress-bg);
|
|
3361
|
+
border-radius: var(--bsi-progress-border-radius);
|
|
3362
|
+
height: var(--bsi-progress-height);
|
|
2850
3363
|
box-shadow: none;
|
|
2851
3364
|
}
|
|
2852
|
-
.progress.progress-color {
|
|
2853
|
-
background-color: hsl(210, 3%, 85%);
|
|
2854
|
-
}
|
|
2855
3365
|
.progress.progress-indeterminate {
|
|
2856
3366
|
position: relative;
|
|
2857
3367
|
}
|
|
@@ -2868,22 +3378,23 @@ a.btn-outline-danger:active {
|
|
|
2868
3378
|
flex-direction: column;
|
|
2869
3379
|
justify-content: center;
|
|
2870
3380
|
overflow: hidden;
|
|
2871
|
-
color: var(--bs-progress-bar-color);
|
|
2872
3381
|
text-align: center;
|
|
2873
3382
|
white-space: nowrap;
|
|
2874
|
-
transition: var(--
|
|
2875
|
-
background-color: hsl(210, 17%, 44%);
|
|
3383
|
+
transition: var(--bsi-progress-bar-transition);
|
|
2876
3384
|
}
|
|
2877
3385
|
@media (prefers-reduced-motion: reduce) {
|
|
2878
3386
|
.progress-bar {
|
|
2879
3387
|
transition: none;
|
|
2880
3388
|
}
|
|
2881
3389
|
}
|
|
3390
|
+
.progress-bar {
|
|
3391
|
+
background-color: var(--bsi-progress-bar-bg);
|
|
3392
|
+
}
|
|
2882
3393
|
|
|
2883
3394
|
.progress-bar-label {
|
|
2884
3395
|
text-align: right;
|
|
2885
|
-
font-size:
|
|
2886
|
-
color:
|
|
3396
|
+
font-size: var(--bsi-progress-label-font-size);
|
|
3397
|
+
color: var(--bsi-progress-label-color);
|
|
2887
3398
|
font-weight: 500;
|
|
2888
3399
|
}
|
|
2889
3400
|
|
|
@@ -2893,55 +3404,50 @@ a.btn-outline-danger:active {
|
|
|
2893
3404
|
bottom: 0;
|
|
2894
3405
|
width: 100%;
|
|
2895
3406
|
left: 0;
|
|
2896
|
-
border-radius: 0 0
|
|
3407
|
+
border-radius: 0 0 var(--bsi-progress-border-radius) var(--bsi-progress-border-radius);
|
|
2897
3408
|
}
|
|
2898
3409
|
.btn-progress .progress-bar {
|
|
2899
|
-
height:
|
|
3410
|
+
height: var(--bsi-progress-height);
|
|
2900
3411
|
}
|
|
2901
3412
|
|
|
2902
|
-
@media (min-width: 576px) {
|
|
2903
|
-
.progress-bar-label {
|
|
2904
|
-
font-size: 0.75rem;
|
|
2905
|
-
}
|
|
2906
|
-
}
|
|
2907
3413
|
body {
|
|
2908
|
-
font-family: var(--
|
|
3414
|
+
font-family: var(--bsi-font-sans);
|
|
2909
3415
|
}
|
|
2910
3416
|
|
|
2911
3417
|
p,
|
|
2912
3418
|
ul,
|
|
2913
3419
|
ol,
|
|
2914
3420
|
dl {
|
|
2915
|
-
font-size: var(--
|
|
2916
|
-
line-height: var(--
|
|
3421
|
+
font-size: var(--bsi-body-font-size);
|
|
3422
|
+
line-height: var(--bsi-body-leading);
|
|
2917
3423
|
}
|
|
2918
3424
|
|
|
2919
3425
|
caption,
|
|
2920
3426
|
figcaption {
|
|
2921
|
-
font-size: var(--
|
|
2922
|
-
line-height: var(--
|
|
3427
|
+
font-size: var(--bsi-caption-font-size);
|
|
3428
|
+
line-height: var(--bsi-caption-leading);
|
|
2923
3429
|
}
|
|
2924
3430
|
|
|
2925
3431
|
b,
|
|
2926
3432
|
strong {
|
|
2927
|
-
font-weight: var(--
|
|
3433
|
+
font-weight: var(--bsi-font-weight-strong);
|
|
2928
3434
|
}
|
|
2929
3435
|
|
|
2930
3436
|
mark,
|
|
2931
3437
|
code {
|
|
2932
|
-
padding: 0 var(--
|
|
3438
|
+
padding: 0 var(--bsi-spacing-3xs);
|
|
2933
3439
|
}
|
|
2934
3440
|
|
|
2935
3441
|
mark {
|
|
2936
|
-
background-color: var(--
|
|
3442
|
+
background-color: var(--bsi-highlight-background);
|
|
2937
3443
|
}
|
|
2938
3444
|
|
|
2939
3445
|
pre,
|
|
2940
3446
|
code,
|
|
2941
3447
|
kbd,
|
|
2942
3448
|
samp {
|
|
2943
|
-
border-radius: var(--
|
|
2944
|
-
font-family: var(--
|
|
3449
|
+
border-radius: var(--bsi-radius-smooth);
|
|
3450
|
+
font-family: var(--bsi-font-mono);
|
|
2945
3451
|
}
|
|
2946
3452
|
|
|
2947
3453
|
ins,
|
|
@@ -2949,18 +3455,18 @@ del {
|
|
|
2949
3455
|
position: relative;
|
|
2950
3456
|
display: flex;
|
|
2951
3457
|
align-items: center;
|
|
2952
|
-
padding: var(--
|
|
2953
|
-
font: var(--
|
|
3458
|
+
padding: var(--bsi-spacing-3xs) var(--bsi-spacing-m);
|
|
3459
|
+
font: var(--bsi-body-font-size);
|
|
2954
3460
|
text-decoration: none;
|
|
2955
3461
|
}
|
|
2956
3462
|
|
|
2957
3463
|
ins {
|
|
2958
|
-
background-color: var(--
|
|
3464
|
+
background-color: var(--bsi-ins-background);
|
|
2959
3465
|
text-decoration: none;
|
|
2960
3466
|
}
|
|
2961
3467
|
|
|
2962
3468
|
del {
|
|
2963
|
-
background-color: var(--
|
|
3469
|
+
background-color: var(--bsi-del-background);
|
|
2964
3470
|
}
|
|
2965
3471
|
|
|
2966
3472
|
del::before,
|
|
@@ -2979,57 +3485,57 @@ ins::before {
|
|
|
2979
3485
|
|
|
2980
3486
|
kbd {
|
|
2981
3487
|
margin: 0 2px;
|
|
2982
|
-
padding: 2px var(--
|
|
2983
|
-
border: var(--
|
|
2984
|
-
background-color: var(--
|
|
2985
|
-
box-shadow: var(--
|
|
2986
|
-
color: var(--
|
|
2987
|
-
font-size: var(--
|
|
2988
|
-
font-weight: var(--
|
|
3488
|
+
padding: 2px var(--bsi-spacing-3xs);
|
|
3489
|
+
border: var(--bsi-border-base) solid var(--bsi-color-border-subtle);
|
|
3490
|
+
background-color: var(--bsi-color-background-secondary-lighter);
|
|
3491
|
+
box-shadow: var(--bsi-elevation-low), 0 2px 0 0 hsla(255, 0%, 100%, 0.7) inset;
|
|
3492
|
+
color: var(--bsi-color-text-secondary);
|
|
3493
|
+
font-size: var(--bsi-font-size-1);
|
|
3494
|
+
font-weight: var(--bsi-font-weight-solid);
|
|
2989
3495
|
white-space: nowrap;
|
|
2990
3496
|
}
|
|
2991
3497
|
kbd kbd {
|
|
2992
3498
|
padding: 0;
|
|
2993
|
-
font-size: var(--
|
|
3499
|
+
font-size: var(--bsi-code-font-size);
|
|
2994
3500
|
}
|
|
2995
3501
|
|
|
2996
3502
|
small,
|
|
2997
3503
|
.small {
|
|
2998
|
-
font-size: var(--
|
|
3504
|
+
font-size: var(--bsi-caption-font-size);
|
|
2999
3505
|
}
|
|
3000
3506
|
|
|
3001
3507
|
.x-small {
|
|
3002
|
-
font-size: var(--
|
|
3508
|
+
font-size: var(--bsi-font-size-1);
|
|
3003
3509
|
}
|
|
3004
3510
|
|
|
3005
3511
|
h1,
|
|
3006
3512
|
.h1 {
|
|
3007
|
-
font-size: var(--
|
|
3513
|
+
font-size: var(--bsi-heading-1-font-size);
|
|
3008
3514
|
}
|
|
3009
3515
|
|
|
3010
3516
|
h2,
|
|
3011
3517
|
.h2 {
|
|
3012
|
-
font-size: var(--
|
|
3518
|
+
font-size: var(--bsi-heading-2-font-size);
|
|
3013
3519
|
}
|
|
3014
3520
|
|
|
3015
3521
|
h3,
|
|
3016
3522
|
.h3 {
|
|
3017
|
-
font-size: var(--
|
|
3523
|
+
font-size: var(--bsi-heading-3-font-size);
|
|
3018
3524
|
}
|
|
3019
3525
|
|
|
3020
3526
|
h4,
|
|
3021
3527
|
.h4 {
|
|
3022
|
-
font-size: var(--
|
|
3528
|
+
font-size: var(--bsi-heading-4-font-size);
|
|
3023
3529
|
}
|
|
3024
3530
|
|
|
3025
3531
|
h5,
|
|
3026
3532
|
.h5 {
|
|
3027
|
-
font-size: var(--
|
|
3533
|
+
font-size: var(--bsi-heading-5-font-size);
|
|
3028
3534
|
}
|
|
3029
3535
|
|
|
3030
3536
|
h6,
|
|
3031
3537
|
.h6 {
|
|
3032
|
-
font-size: var(--
|
|
3538
|
+
font-size: var(--bsi-heading-6-font-size);
|
|
3033
3539
|
}
|
|
3034
3540
|
|
|
3035
3541
|
h1,
|
|
@@ -3045,8 +3551,8 @@ h5,
|
|
|
3045
3551
|
h6,
|
|
3046
3552
|
.h6 {
|
|
3047
3553
|
margin-top: 0;
|
|
3048
|
-
margin-bottom: var(--
|
|
3049
|
-
line-height: var(--
|
|
3554
|
+
margin-bottom: var(--bsi-heading-spacing);
|
|
3555
|
+
line-height: var(--bsi-heading-leading);
|
|
3050
3556
|
}
|
|
3051
3557
|
:is(h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6) + h1, p + h1,
|
|
3052
3558
|
:is(h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6) + .h1,
|
|
@@ -3071,7 +3577,7 @@ p + .h5,
|
|
|
3071
3577
|
p + h6,
|
|
3072
3578
|
:is(h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6) + .h6,
|
|
3073
3579
|
p + .h6 {
|
|
3074
|
-
padding-top: var(--
|
|
3580
|
+
padding-top: var(--bsi-spacing-s);
|
|
3075
3581
|
}
|
|
3076
3582
|
|
|
3077
3583
|
h1,
|
|
@@ -3080,7 +3586,7 @@ h3,
|
|
|
3080
3586
|
.h1,
|
|
3081
3587
|
.h2,
|
|
3082
3588
|
.h3 {
|
|
3083
|
-
font-weight: var(--
|
|
3589
|
+
font-weight: var(--bsi-heading-font-weight);
|
|
3084
3590
|
}
|
|
3085
3591
|
|
|
3086
3592
|
h4,
|
|
@@ -3089,7 +3595,7 @@ h6,
|
|
|
3089
3595
|
.h4,
|
|
3090
3596
|
.h5,
|
|
3091
3597
|
.h6 {
|
|
3092
|
-
font-weight: var(--
|
|
3598
|
+
font-weight: var(--bsi-heading-font-weight-weak);
|
|
3093
3599
|
}
|
|
3094
3600
|
|
|
3095
3601
|
h1,
|
|
@@ -3099,37 +3605,37 @@ h1,
|
|
|
3099
3605
|
}
|
|
3100
3606
|
|
|
3101
3607
|
.font-serif {
|
|
3102
|
-
font-family: var(--
|
|
3608
|
+
font-family: var(--bsi-font-serif) !important;
|
|
3103
3609
|
}
|
|
3104
3610
|
|
|
3105
3611
|
.font-sans-serif {
|
|
3106
|
-
font-family: var(--
|
|
3612
|
+
font-family: var(--bsi-font-sans) !important;
|
|
3107
3613
|
}
|
|
3108
3614
|
|
|
3109
3615
|
.font-monospace {
|
|
3110
|
-
font-family: var(--
|
|
3616
|
+
font-family: var(--bsi-font-mono) !important;
|
|
3111
3617
|
}
|
|
3112
3618
|
|
|
3113
3619
|
.display-1 {
|
|
3114
|
-
font-size: var(--
|
|
3115
|
-
font-weight: var(--
|
|
3116
|
-
line-height: var(--
|
|
3620
|
+
font-size: var(--bsi-display-font-size);
|
|
3621
|
+
font-weight: var(--bsi-heading-font-weight);
|
|
3622
|
+
line-height: var(--bsi-heading-leading);
|
|
3117
3623
|
}
|
|
3118
3624
|
|
|
3119
3625
|
.lead {
|
|
3120
|
-
font-size: var(--
|
|
3121
|
-
font-weight: var(--
|
|
3122
|
-
line-height: var(--
|
|
3626
|
+
font-size: var(--bsi-lead-font-size);
|
|
3627
|
+
font-weight: var(--bsi-lead-font-weight);
|
|
3628
|
+
line-height: var(--bsi-lead-leading);
|
|
3123
3629
|
}
|
|
3124
3630
|
|
|
3125
3631
|
blockquote,
|
|
3126
3632
|
.blockquote {
|
|
3127
|
-
margin: var(--
|
|
3128
|
-
margin-left: var(--
|
|
3129
|
-
padding: var(--
|
|
3130
|
-
border-left: var(--
|
|
3131
|
-
font-size: var(--
|
|
3132
|
-
line-height: var(--
|
|
3633
|
+
margin: var(--bsi-spacing-m) 0;
|
|
3634
|
+
margin-left: var(--bsi-spacin-inline-xs);
|
|
3635
|
+
padding: var(--bsi-spacing-s);
|
|
3636
|
+
border-left: var(--bsi-border-thick) solid var(--bsi-border-color-secondary);
|
|
3637
|
+
font-size: var(--bsi-body-font-size);
|
|
3638
|
+
line-height: var(--bsi-body-leading);
|
|
3133
3639
|
}
|
|
3134
3640
|
blockquote > :last-child,
|
|
3135
3641
|
.blockquote > :last-child {
|
|
@@ -3137,8 +3643,8 @@ blockquote > :last-child,
|
|
|
3137
3643
|
}
|
|
3138
3644
|
blockquote.text-end,
|
|
3139
3645
|
.blockquote.text-end {
|
|
3140
|
-
margin-right: var(--
|
|
3141
|
-
border-right: var(--
|
|
3646
|
+
margin-right: var(--bsi-spacin-inline-xs);
|
|
3647
|
+
border-right: var(--bsi-border-thick) solid var(--bsi-border-color-secondary);
|
|
3142
3648
|
}
|
|
3143
3649
|
blockquote.text-center, blockquote.text-end, blockquote.blockquote-simple,
|
|
3144
3650
|
.blockquote.text-center,
|
|
@@ -3160,9 +3666,9 @@ blockquote.blockquote-simple,
|
|
|
3160
3666
|
blockquote.blockquote-card,
|
|
3161
3667
|
.blockquote.blockquote-card {
|
|
3162
3668
|
margin-left: 0;
|
|
3163
|
-
padding: var(--
|
|
3164
|
-
background-color: var(--
|
|
3165
|
-
box-shadow: var(--
|
|
3669
|
+
padding: var(--bsi-spacing-m);
|
|
3670
|
+
background-color: var(--bsi-color-background-inverse);
|
|
3671
|
+
box-shadow: var(--bsi-elevation-low);
|
|
3166
3672
|
}
|
|
3167
3673
|
blockquote.blockquote-card .blockquote-footer,
|
|
3168
3674
|
.blockquote.blockquote-card .blockquote-footer {
|
|
@@ -3175,53 +3681,53 @@ blockquote.blockquote-card .blockquote-footer:before,
|
|
|
3175
3681
|
blockquote.blockquote-card.dark,
|
|
3176
3682
|
.blockquote.blockquote-card.dark {
|
|
3177
3683
|
border-left: none;
|
|
3178
|
-
background-color: var(--
|
|
3179
|
-
color: var(--
|
|
3684
|
+
background-color: var(--bsi-color-background-primary);
|
|
3685
|
+
color: var(--bsi-color-text-inverse);
|
|
3180
3686
|
}
|
|
3181
3687
|
blockquote.blockquote-card.dark .blockquote-footer,
|
|
3182
3688
|
.blockquote.blockquote-card.dark .blockquote-footer {
|
|
3183
|
-
color: var(--
|
|
3689
|
+
color: var(--bsi-color-text-inverse);
|
|
3184
3690
|
}
|
|
3185
3691
|
|
|
3186
3692
|
.blockquote-footer {
|
|
3187
3693
|
margin-top: 0;
|
|
3188
|
-
margin-bottom: var(--
|
|
3189
|
-
color: var(--
|
|
3190
|
-
font-size: var(--
|
|
3694
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
3695
|
+
color: var(--bsi-color-text-secondary);
|
|
3696
|
+
font-size: var(--bsi-label-font-size);
|
|
3191
3697
|
}
|
|
3192
3698
|
.blockquote-footer::before {
|
|
3193
3699
|
content: "— ";
|
|
3194
3700
|
}
|
|
3195
3701
|
.bg-dark .blockquote-footer {
|
|
3196
|
-
color: var(--
|
|
3702
|
+
color: var(--bsi-color-text-muted);
|
|
3197
3703
|
}
|
|
3198
3704
|
|
|
3199
3705
|
.initialism {
|
|
3200
|
-
font-size: var(--
|
|
3706
|
+
font-size: var(--bsi-label-font-size-s);
|
|
3201
3707
|
text-transform: uppercase;
|
|
3202
3708
|
}
|
|
3203
3709
|
|
|
3204
3710
|
:root {
|
|
3205
|
-
--
|
|
3206
|
-
--
|
|
3207
|
-
--
|
|
3208
|
-
--
|
|
3209
|
-
--
|
|
3210
|
-
--
|
|
3211
|
-
--
|
|
3212
|
-
--
|
|
3213
|
-
--
|
|
3214
|
-
--
|
|
3215
|
-
--
|
|
3216
|
-
--
|
|
3217
|
-
--
|
|
3711
|
+
--bsi-form-control-height: 2.5rem;
|
|
3712
|
+
--bsi-form-control-spacing: var(--bsi-spacing-xxs);
|
|
3713
|
+
--bsi-form-control-background-color: var(--bsi-color-background-inverse);
|
|
3714
|
+
--bsi-form-control-border-color: var(--bsi-color-border-secondary);
|
|
3715
|
+
--bsi-form-control-border-radius: var(--bsi-radius-smooth);
|
|
3716
|
+
--bsi-form-control-placeholder-color: var(--bsi-color-text-muted);
|
|
3717
|
+
--bsi-form-control-label-color: var(--bsi-color-text-base);
|
|
3718
|
+
--bsi-form-control-text-color: var(--bsi-color-text-secondary);
|
|
3719
|
+
--bsi-form-control-font-size: var(--bsi-body-font-size);
|
|
3720
|
+
--bsi-form-group-spacing-y: var(--bsi-spacing-m);
|
|
3721
|
+
--bsi-form-checkbox-border-color: var(--bsi-color-border-secondary);
|
|
3722
|
+
--bsi-form-checkbox-border-radius: var(--bsi-radius-smooth);
|
|
3723
|
+
--bsi-form-checked-color: var(--bsi-color-background-primary);
|
|
3218
3724
|
}
|
|
3219
3725
|
|
|
3220
3726
|
input[readonly],
|
|
3221
3727
|
textarea[readonly],
|
|
3222
3728
|
select[readonly] {
|
|
3223
|
-
--
|
|
3224
|
-
--
|
|
3729
|
+
--bsi-form-control-border-color: var(--bsi-color-border-subtle);
|
|
3730
|
+
--bsi-form-control-background-color: var(--bsi-color-background-muted);
|
|
3225
3731
|
cursor: not-allowed;
|
|
3226
3732
|
}
|
|
3227
3733
|
|
|
@@ -3230,29 +3736,30 @@ textarea,
|
|
|
3230
3736
|
select {
|
|
3231
3737
|
display: block;
|
|
3232
3738
|
width: 100%;
|
|
3233
|
-
padding: var(--
|
|
3234
|
-
border: 1px solid var(--
|
|
3235
|
-
border-radius: var(--
|
|
3236
|
-
background-color: var(--
|
|
3237
|
-
color: var(--
|
|
3238
|
-
font-size: var(--
|
|
3739
|
+
padding: var(--bsi-form-control-spacing);
|
|
3740
|
+
border: 1px solid var(--bsi-form-control-border-color);
|
|
3741
|
+
border-radius: var(--bsi-form-control-border-radius);
|
|
3742
|
+
background-color: var(--bsi-form-control-background-color);
|
|
3743
|
+
color: var(--bsi-form-control-text-color);
|
|
3744
|
+
font-size: var(--bsi-form-control-font-size);
|
|
3239
3745
|
}
|
|
3240
3746
|
input.disabled, input:disabled,
|
|
3241
3747
|
textarea.disabled,
|
|
3242
3748
|
textarea:disabled,
|
|
3243
3749
|
select.disabled,
|
|
3244
3750
|
select:disabled {
|
|
3245
|
-
border-color: var(--
|
|
3751
|
+
border-color: var(--bsi-color-border-disabled);
|
|
3246
3752
|
opacity: 1;
|
|
3247
|
-
background-color: var(--
|
|
3248
|
-
color: var(--
|
|
3753
|
+
background-color: var(--bsi-color-background-disabled);
|
|
3754
|
+
color: var(--bsi-color-text-disabled);
|
|
3249
3755
|
}
|
|
3250
3756
|
|
|
3757
|
+
/* stylelint-disable-next-line no-duplicate-selectors */
|
|
3251
3758
|
input:focus,
|
|
3252
3759
|
textarea:focus {
|
|
3253
3760
|
outline: 3px solid transparent;
|
|
3254
3761
|
outline-offset: 3px;
|
|
3255
|
-
box-shadow: 0 0 0 2px var(--
|
|
3762
|
+
box-shadow: 0 0 0 2px var(--bsi-color-border-inverse), 0 0 0 5px var(--bsi-color-outline-focus) !important;
|
|
3256
3763
|
}
|
|
3257
3764
|
|
|
3258
3765
|
input::file-selector-button {
|
|
@@ -3290,7 +3797,7 @@ input::-webkit-date-and-time-value {
|
|
|
3290
3797
|
select {
|
|
3291
3798
|
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='hsl%280, 0%, 15%%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
|
|
3292
3799
|
background-repeat: no-repeat;
|
|
3293
|
-
background-position: right var(--
|
|
3800
|
+
background-position: right var(--bsi-form-control-spacing) center;
|
|
3294
3801
|
background-size: 16px 12px;
|
|
3295
3802
|
appearance: none;
|
|
3296
3803
|
}
|
|
@@ -3316,6 +3823,9 @@ select:-moz-focusring {
|
|
|
3316
3823
|
select option {
|
|
3317
3824
|
font-weight: normal;
|
|
3318
3825
|
}
|
|
3826
|
+
select {
|
|
3827
|
+
/* stylelint-disable-next-line no-duplicate-selectors */ /* TO DO check these styles */
|
|
3828
|
+
}
|
|
3319
3829
|
select:disabled {
|
|
3320
3830
|
opacity: 1;
|
|
3321
3831
|
background-color: hsl(210, 3%, 85%);
|
|
@@ -3323,7 +3833,7 @@ select:disabled {
|
|
|
3323
3833
|
|
|
3324
3834
|
textarea {
|
|
3325
3835
|
height: auto;
|
|
3326
|
-
font-size: var(--
|
|
3836
|
+
font-size: var(--bsi-body-font-size);
|
|
3327
3837
|
line-height: 1.5;
|
|
3328
3838
|
}
|
|
3329
3839
|
|
|
@@ -3331,13 +3841,14 @@ label {
|
|
|
3331
3841
|
display: inline-block;
|
|
3332
3842
|
width: auto;
|
|
3333
3843
|
max-width: 100%;
|
|
3334
|
-
margin-bottom: var(--
|
|
3335
|
-
color: var(--
|
|
3336
|
-
font-size: var(--
|
|
3337
|
-
font-weight: var(--
|
|
3338
|
-
line-height: var(--
|
|
3844
|
+
margin-bottom: var(--bsi-spacing-xxs);
|
|
3845
|
+
color: var(--bsi-form-control-label-color);
|
|
3846
|
+
font-size: var(--bsi-label-font-size-s);
|
|
3847
|
+
font-weight: var(--bsi-font-weight-solid);
|
|
3848
|
+
line-height: var(--bsi-label-leading);
|
|
3339
3849
|
}
|
|
3340
3850
|
|
|
3851
|
+
/* stylelint-disable-next-line no-duplicate-selectors */
|
|
3341
3852
|
input,
|
|
3342
3853
|
textarea {
|
|
3343
3854
|
outline: 0;
|
|
@@ -3353,34 +3864,26 @@ input[type=time] {
|
|
|
3353
3864
|
}
|
|
3354
3865
|
|
|
3355
3866
|
fieldset legend {
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
width: auto;
|
|
3359
|
-
max-width: 100%;
|
|
3360
|
-
margin-bottom: 0;
|
|
3361
|
-
padding: 0 var(--bs-form-input-spacing-x);
|
|
3362
|
-
float: none;
|
|
3867
|
+
margin-bottom: var(--bsi-spacing-s);
|
|
3868
|
+
padding: 0 var(--bsi-form-input-spacing-x);
|
|
3363
3869
|
background-color: transparent;
|
|
3364
|
-
color: var(--
|
|
3365
|
-
font-size:
|
|
3366
|
-
font-weight:
|
|
3367
|
-
line-height: calc(2.5rem - 1px);
|
|
3368
|
-
transition: 0.2s ease-out;
|
|
3369
|
-
cursor: text;
|
|
3870
|
+
color: var(--bsi-form-control-text-color);
|
|
3871
|
+
font-size: var(--bsi-label-font-size-s);
|
|
3872
|
+
font-weight: var(--bsi-font-weight-solid);
|
|
3370
3873
|
}
|
|
3371
3874
|
|
|
3372
3875
|
::placeholder {
|
|
3373
|
-
color: var(--
|
|
3876
|
+
color: var(--bsi-form-control-placeholder-color);
|
|
3374
3877
|
}
|
|
3375
3878
|
|
|
3376
3879
|
input::-webkit-datetime-edit {
|
|
3377
|
-
background-color: var(--
|
|
3378
|
-
color: var(--
|
|
3880
|
+
background-color: var(--bsi-color-background-primary-lighter);
|
|
3881
|
+
color: var(--bsi-form-contro-text-color);
|
|
3379
3882
|
}
|
|
3380
3883
|
|
|
3381
3884
|
.form-group {
|
|
3382
3885
|
position: relative;
|
|
3383
|
-
margin-bottom: var(--
|
|
3886
|
+
margin-bottom: var(--bsi-form-group-spacing-y);
|
|
3384
3887
|
}
|
|
3385
3888
|
.form-group label.input-symbol-label:not(.active) {
|
|
3386
3889
|
left: 2.25rem;
|
|
@@ -3394,8 +3897,8 @@ input::-webkit-datetime-edit {
|
|
|
3394
3897
|
}
|
|
3395
3898
|
|
|
3396
3899
|
.form-text {
|
|
3397
|
-
margin: var(--
|
|
3398
|
-
color: var(--
|
|
3900
|
+
margin: var(--bsi-spacing-xxs) 0;
|
|
3901
|
+
color: var(--bsi-color-text-secondary);
|
|
3399
3902
|
}
|
|
3400
3903
|
|
|
3401
3904
|
.form-group.active .form-file-name {
|
|
@@ -3406,7 +3909,7 @@ input::-webkit-datetime-edit {
|
|
|
3406
3909
|
display: none;
|
|
3407
3910
|
width: 100%;
|
|
3408
3911
|
margin-top: 0.25rem;
|
|
3409
|
-
color: var(--
|
|
3912
|
+
color: var(--bsi-color-text-warning);
|
|
3410
3913
|
font-size: 0.75rem;
|
|
3411
3914
|
}
|
|
3412
3915
|
|
|
@@ -3417,7 +3920,7 @@ input::-webkit-datetime-edit {
|
|
|
3417
3920
|
}
|
|
3418
3921
|
|
|
3419
3922
|
.input-group .input-group-text .btn {
|
|
3420
|
-
border-radius: var(--
|
|
3923
|
+
border-radius: var(--bsi-form-control-border-radius) 0 0 var(--bsi-form-control-border-radius);
|
|
3421
3924
|
}
|
|
3422
3925
|
.input-group .input-group-append {
|
|
3423
3926
|
margin-left: 0;
|
|
@@ -3427,21 +3930,21 @@ input::-webkit-datetime-edit {
|
|
|
3427
3930
|
padding-top: 0;
|
|
3428
3931
|
padding-bottom: 0;
|
|
3429
3932
|
border-bottom: 1px solid hsl(210, 17%, 44%);
|
|
3430
|
-
border-radius: 0 var(--
|
|
3933
|
+
border-radius: 0 var(--bsi-form-control-border-radius) var(--bsi-form-control-border-radius) 0;
|
|
3431
3934
|
}
|
|
3432
3935
|
|
|
3433
3936
|
.form-check {
|
|
3434
3937
|
position: relative;
|
|
3435
|
-
margin-bottom: var(--bs-spacing-s);
|
|
3436
|
-
padding-left: 0;
|
|
3437
3938
|
}
|
|
3438
3939
|
.form-check + .form-check {
|
|
3439
|
-
margin-top: var(--
|
|
3940
|
+
margin-top: var(--bsi-spacing-s);
|
|
3440
3941
|
}
|
|
3441
3942
|
.form-check [type=checkbox],
|
|
3442
3943
|
.form-check [type=radio] {
|
|
3443
3944
|
position: absolute;
|
|
3444
|
-
|
|
3945
|
+
top: 9px;
|
|
3946
|
+
left: 9px;
|
|
3947
|
+
width: auto;
|
|
3445
3948
|
margin-top: 0;
|
|
3446
3949
|
margin-left: 0;
|
|
3447
3950
|
opacity: 0;
|
|
@@ -3449,19 +3952,17 @@ input::-webkit-datetime-edit {
|
|
|
3449
3952
|
.form-check [type=checkbox] + label,
|
|
3450
3953
|
.form-check [type=radio] + label {
|
|
3451
3954
|
position: relative;
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
font-
|
|
3456
|
-
font-weight: var(--bs-font-weight-solid);
|
|
3457
|
-
line-height: 1;
|
|
3955
|
+
margin-bottom: 0;
|
|
3956
|
+
padding-left: 28px;
|
|
3957
|
+
font-size: var(--bsi-label-font-size);
|
|
3958
|
+
font-weight: var(--bsi-font-weight-solid);
|
|
3458
3959
|
cursor: pointer;
|
|
3459
3960
|
user-select: none;
|
|
3460
3961
|
}
|
|
3461
3962
|
@media (min-width: 576px) {
|
|
3462
3963
|
.form-check [type=checkbox] + label,
|
|
3463
3964
|
.form-check [type=radio] + label {
|
|
3464
|
-
font-size: var(--
|
|
3965
|
+
font-size: var(--bsi-label-font-size-l);
|
|
3465
3966
|
}
|
|
3466
3967
|
}
|
|
3467
3968
|
.form-check input[type=checkbox] + label::after,
|
|
@@ -3472,13 +3973,13 @@ input::-webkit-datetime-edit {
|
|
|
3472
3973
|
content: "";
|
|
3473
3974
|
border-width: 2px;
|
|
3474
3975
|
border-style: solid;
|
|
3475
|
-
transition: all var(--
|
|
3976
|
+
transition: all var(--bsi-transition-instant) ease-out;
|
|
3476
3977
|
}
|
|
3477
3978
|
.form-check input[type=checkbox] + label::after {
|
|
3478
3979
|
top: 0;
|
|
3479
3980
|
width: 20px;
|
|
3480
3981
|
height: 20px;
|
|
3481
|
-
border-radius: var(--
|
|
3982
|
+
border-radius: var(--bsi-form-control-border-radius);
|
|
3482
3983
|
}
|
|
3483
3984
|
.form-check input[type=checkbox]:checked + label::before {
|
|
3484
3985
|
top: 3px;
|
|
@@ -3487,7 +3988,7 @@ input::-webkit-datetime-edit {
|
|
|
3487
3988
|
height: 12px;
|
|
3488
3989
|
border-width: 2px;
|
|
3489
3990
|
border-style: solid;
|
|
3490
|
-
border-color: transparent var(--
|
|
3991
|
+
border-color: transparent var(--bsi-color-border-inverse) var(--bsi-color-border-inverse) transparent;
|
|
3491
3992
|
opacity: 1;
|
|
3492
3993
|
transform: rotate(40deg);
|
|
3493
3994
|
transform-origin: 100% 100%;
|
|
@@ -3495,12 +3996,12 @@ input::-webkit-datetime-edit {
|
|
|
3495
3996
|
}
|
|
3496
3997
|
.form-check input[type=checkbox]:checked + label::after {
|
|
3497
3998
|
z-index: 0;
|
|
3498
|
-
border-color: var(--
|
|
3499
|
-
background-color: var(--
|
|
3999
|
+
border-color: var(--bsi-form-checked-color);
|
|
4000
|
+
background-color: var(--bsi-form-checked-color);
|
|
3500
4001
|
}
|
|
3501
4002
|
.form-check input[type=checkbox]:not(:checked) + label::after {
|
|
3502
4003
|
z-index: 0;
|
|
3503
|
-
border-color: var(--
|
|
4004
|
+
border-color: var(--bsi-form-checkbox-border-color);
|
|
3504
4005
|
background-color: transparent;
|
|
3505
4006
|
}
|
|
3506
4007
|
.form-check input[type=checkbox]:not(:checked) + label::before {
|
|
@@ -3515,12 +4016,12 @@ input::-webkit-datetime-edit {
|
|
|
3515
4016
|
cursor: not-allowed;
|
|
3516
4017
|
}
|
|
3517
4018
|
.form-check input[type=checkbox]:disabled:not(:checked) + label::after {
|
|
3518
|
-
border-color: var(--
|
|
4019
|
+
border-color: var(--bsi-color-border-disabled);
|
|
3519
4020
|
background-color: transparent;
|
|
3520
4021
|
}
|
|
3521
4022
|
.form-check input[type=checkbox]:disabled:checked + label::after {
|
|
3522
|
-
border-color: var(--
|
|
3523
|
-
background-color: var(--
|
|
4023
|
+
border-color: var(--bsi-color-border-disabled);
|
|
4024
|
+
background-color: var(--bsi-color-border-disabled);
|
|
3524
4025
|
}
|
|
3525
4026
|
.form-check input[type=radio] + label::after, .form-check input[type=radio] + label::before {
|
|
3526
4027
|
position: absolute;
|
|
@@ -3532,11 +4033,11 @@ input::-webkit-datetime-edit {
|
|
|
3532
4033
|
height: 20px;
|
|
3533
4034
|
border-width: 2px;
|
|
3534
4035
|
border-style: solid;
|
|
3535
|
-
border-radius: var(--
|
|
3536
|
-
transition: all var(--
|
|
4036
|
+
border-radius: var(--bsi-radius-rounded);
|
|
4037
|
+
transition: all var(--bsi-transition-instant) ease-out;
|
|
3537
4038
|
}
|
|
3538
4039
|
.form-check input[type=radio]:not(:checked) + label::after, .form-check input[type=radio]:not(:checked) + label::before {
|
|
3539
|
-
border-color: var(
|
|
4040
|
+
border-color: var(--bsi-form-checkbox-border-color);
|
|
3540
4041
|
}
|
|
3541
4042
|
.form-check input[type=radio]:not(:checked) + label:after {
|
|
3542
4043
|
z-index: -1;
|
|
@@ -3544,25 +4045,30 @@ input::-webkit-datetime-edit {
|
|
|
3544
4045
|
}
|
|
3545
4046
|
.form-check input[type=radio]:checked + label::after {
|
|
3546
4047
|
z-index: 0;
|
|
3547
|
-
border-color: var(--
|
|
3548
|
-
background-color: var(--
|
|
4048
|
+
border-color: var(--bsi-form-checked-color);
|
|
4049
|
+
background-color: var(--bsi-form-checked-color);
|
|
3549
4050
|
transform: scale(0.64);
|
|
3550
4051
|
}
|
|
3551
4052
|
.form-check input[type=radio]:checked + label::before {
|
|
3552
|
-
border-color: var(--
|
|
4053
|
+
border-color: var(--bsi-form-checked-color);
|
|
3553
4054
|
}
|
|
3554
4055
|
.form-check input[type=radio]:disabled + label {
|
|
3555
4056
|
cursor: not-allowed;
|
|
3556
4057
|
}
|
|
3557
4058
|
.form-check input[type=radio]:disabled:not(:checked) + label::after, .form-check input[type=radio]:disabled:not(:checked) + label::before {
|
|
3558
|
-
border-color: var(--
|
|
4059
|
+
border-color: var(--bsi-color-border-disabled);
|
|
3559
4060
|
}
|
|
3560
4061
|
.form-check input[type=radio]:disabled:checked + label::after {
|
|
3561
|
-
border-color: var(--
|
|
3562
|
-
background-color: var(--
|
|
4062
|
+
border-color: var(--bsi-color-border-disabled);
|
|
4063
|
+
background-color: var(--bsi-color-border-disabled);
|
|
3563
4064
|
}
|
|
3564
4065
|
.form-check input[type=radio]:disabled:checked + label::before {
|
|
3565
|
-
border-color: var(--
|
|
4066
|
+
border-color: var(--bsi-color-border-disabled);
|
|
4067
|
+
}
|
|
4068
|
+
.form-check .form-text {
|
|
4069
|
+
display: block;
|
|
4070
|
+
margin-bottom: 0.5rem;
|
|
4071
|
+
padding-right: 3.25rem;
|
|
3566
4072
|
}
|
|
3567
4073
|
.form-check.form-check-group {
|
|
3568
4074
|
margin-bottom: 1rem;
|
|
@@ -3571,6 +4077,7 @@ input::-webkit-datetime-edit {
|
|
|
3571
4077
|
}
|
|
3572
4078
|
.form-check.form-check-group input[type=checkbox] + label,
|
|
3573
4079
|
.form-check.form-check-group input[type=radio] + label {
|
|
4080
|
+
position: static;
|
|
3574
4081
|
padding-right: 3.25rem;
|
|
3575
4082
|
padding-left: 0;
|
|
3576
4083
|
}
|
|
@@ -3586,17 +4093,12 @@ input::-webkit-datetime-edit {
|
|
|
3586
4093
|
.form-check.form-check-group input[type=radio]:checked + label::before {
|
|
3587
4094
|
right: 0;
|
|
3588
4095
|
}
|
|
3589
|
-
.form-check.form-check-group .form-text {
|
|
3590
|
-
display: block;
|
|
3591
|
-
margin-bottom: 0.5rem;
|
|
3592
|
-
padding-right: 3.25rem;
|
|
3593
|
-
}
|
|
3594
4096
|
.form-check.form-check-group input.semi-checked:not(:checked) + label::before {
|
|
3595
4097
|
right: 4px;
|
|
3596
4098
|
left: auto;
|
|
3597
4099
|
}
|
|
3598
4100
|
.form-check input.semi-checked:not(:checked) + label::before {
|
|
3599
|
-
top:
|
|
4101
|
+
top: 12px;
|
|
3600
4102
|
left: 4px;
|
|
3601
4103
|
width: 12px;
|
|
3602
4104
|
height: 2px;
|
|
@@ -3604,14 +4106,21 @@ input::-webkit-datetime-edit {
|
|
|
3604
4106
|
border-style: none;
|
|
3605
4107
|
border-color: transparent;
|
|
3606
4108
|
opacity: 1;
|
|
3607
|
-
background: var(--
|
|
4109
|
+
background: var(--bsi-color-background-inverse);
|
|
3608
4110
|
transform: none;
|
|
3609
4111
|
backface-visibility: hidden;
|
|
3610
4112
|
}
|
|
3611
4113
|
.form-check input.semi-checked:not(:checked) + label::after {
|
|
3612
4114
|
z-index: 0;
|
|
3613
|
-
border-color: var(--
|
|
3614
|
-
background-color: var(--
|
|
4115
|
+
border-color: var(--bsi-form-checked-color);
|
|
4116
|
+
background-color: var(--bsi-form-checked-color);
|
|
4117
|
+
}
|
|
4118
|
+
|
|
4119
|
+
.form-check-inline {
|
|
4120
|
+
display: inline-block;
|
|
4121
|
+
}
|
|
4122
|
+
.form-check-inline:not(:last-child) {
|
|
4123
|
+
margin-right: var(--bsi-spacing-m);
|
|
3615
4124
|
}
|
|
3616
4125
|
|
|
3617
4126
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -3632,7 +4141,7 @@ input::-webkit-datetime-edit {
|
|
|
3632
4141
|
.form-check [type=checkbox]:focus + label,
|
|
3633
4142
|
.form-check [type=radio]:focus + label {
|
|
3634
4143
|
border-color: hsl(0, 0%, 0%) !important;
|
|
3635
|
-
box-shadow: 0 0 0 2px var(--
|
|
4144
|
+
box-shadow: 0 0 0 2px var(--bsi-color-border-inverse), 0 0 0 5px var(--bsi-color-outline-focus) !important;
|
|
3636
4145
|
outline: 3px solid transparent !important;
|
|
3637
4146
|
outline-offset: 3px !important;
|
|
3638
4147
|
}
|
|
@@ -3646,10 +4155,10 @@ input::-webkit-datetime-edit {
|
|
|
3646
4155
|
|
|
3647
4156
|
.form-control-plaintext {
|
|
3648
4157
|
border: 0;
|
|
3649
|
-
--
|
|
3650
|
-
--
|
|
3651
|
-
--
|
|
3652
|
-
--
|
|
4158
|
+
--bsi-form-control-border-color: transparent;
|
|
4159
|
+
--bsi-form-control-border-radius: 0;
|
|
4160
|
+
--bsi-form-control-background-color: transparent;
|
|
4161
|
+
--bsi-form-control-spacing: 0;
|
|
3653
4162
|
}
|
|
3654
4163
|
.form-control-plaintext:focus {
|
|
3655
4164
|
outline: 0;
|
|
@@ -3666,31 +4175,28 @@ input::-webkit-datetime-edit {
|
|
|
3666
4175
|
}
|
|
3667
4176
|
.form-control:disabled {
|
|
3668
4177
|
cursor: not-allowed;
|
|
3669
|
-
background: var(--
|
|
4178
|
+
background: var(--bsi-color-background-disabled);
|
|
3670
4179
|
border: 0;
|
|
3671
|
-
color: var(--
|
|
4180
|
+
color: var(--bsi-color-text-disabled);
|
|
3672
4181
|
}
|
|
3673
4182
|
.was-validated .form-control:valid, .form-control.is-valid {
|
|
3674
4183
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23008055' viewBox='0 0 192 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E");
|
|
3675
4184
|
}
|
|
3676
4185
|
.was-validated .form-control:invalid, .form-control.is-invalid {
|
|
3677
4186
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23cc334d' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E");
|
|
3678
|
-
border-color: var(--
|
|
3679
|
-
}
|
|
3680
|
-
.was-validated .form-control:invalid[type=number], .form-control.is-invalid[type=number] {
|
|
3681
|
-
background-size: 80px 30%;
|
|
4187
|
+
border-color: var(--bsi-color-border-danger);
|
|
3682
4188
|
}
|
|
3683
4189
|
.form-control.warning {
|
|
3684
4190
|
background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2%2012C2%206.47715%206.47715%202%2012%202C14.6522%202%2017.1957%203.05357%2019.0711%204.92893C20.9464%206.8043%2022%209.34784%2022%2012C22%2017.5228%2017.5228%2022%2012%2022C6.47715%2022%202%2017.5228%202%2012ZM3%2012C3%2016.9706%207.02944%2021%2012%2021C16.9706%2021%2021%2016.9706%2021%2012C21%207.02944%2016.9706%203%2012%203C7.02944%203%203%207.02944%203%2012ZM11.5%2014.2V5.7H12.7V14.2H11.5ZM12.6%2018.3V16.5H11.4V18.3H12.6Z%22/%3E%0A%3C/svg%3E") no-repeat;
|
|
3685
|
-
border-color: var(--
|
|
4191
|
+
border-color: var(--bsi-color-border-warning);
|
|
3686
4192
|
}
|
|
3687
4193
|
.form-control.is-valid ~ .warning-feedback {
|
|
3688
4194
|
display: block;
|
|
3689
4195
|
}
|
|
3690
4196
|
|
|
3691
4197
|
.form-control-sm {
|
|
3692
|
-
--
|
|
3693
|
-
--
|
|
4198
|
+
--bsi-form-control-spacing: var(--bsi-spacing-xxs) var(--bsi-spacing-3xs);
|
|
4199
|
+
--bsi-form-control-font-size: var(--bsi-label-font-size);
|
|
3694
4200
|
}
|
|
3695
4201
|
.form-control-sm::file-selector-button {
|
|
3696
4202
|
padding: 0.25rem 0.5rem;
|
|
@@ -3699,7 +4205,7 @@ input::-webkit-datetime-edit {
|
|
|
3699
4205
|
}
|
|
3700
4206
|
|
|
3701
4207
|
.form-control-lg {
|
|
3702
|
-
--
|
|
4208
|
+
--bsi-form-control-font-size: var(--bsi-lead-font-size);
|
|
3703
4209
|
}
|
|
3704
4210
|
.form-control-lg::file-selector-button {
|
|
3705
4211
|
padding: 0.5rem 1rem;
|
|
@@ -3742,15 +4248,15 @@ textarea.form-control-lg {
|
|
|
3742
4248
|
|
|
3743
4249
|
.password-icon {
|
|
3744
4250
|
position: absolute;
|
|
3745
|
-
top: calc(var(--
|
|
3746
|
-
right: var(--
|
|
4251
|
+
top: calc(var(--bsi-form-control-spacing) * 4.5);
|
|
4252
|
+
right: var(--bsi-form-control-spacing);
|
|
3747
4253
|
z-index: 10;
|
|
3748
|
-
padding: 0 var(--
|
|
3749
|
-
background-color: var(--
|
|
4254
|
+
padding: 0 var(--bsi-spacing-xxs);
|
|
4255
|
+
background-color: var(--bsi-form-control-background-color);
|
|
3750
4256
|
cursor: pointer;
|
|
3751
4257
|
}
|
|
3752
4258
|
.password-icon .icon {
|
|
3753
|
-
fill: var(--
|
|
4259
|
+
fill: var(--bsi-icon-primary);
|
|
3754
4260
|
}
|
|
3755
4261
|
|
|
3756
4262
|
.password-meter {
|
|
@@ -3771,6 +4277,106 @@ textarea.form-control-lg {
|
|
|
3771
4277
|
display: block;
|
|
3772
4278
|
}
|
|
3773
4279
|
|
|
4280
|
+
.input-number {
|
|
4281
|
+
position: relative;
|
|
4282
|
+
}
|
|
4283
|
+
.input-number.input-number-adaptive {
|
|
4284
|
+
width: fit-content;
|
|
4285
|
+
}
|
|
4286
|
+
.input-number.input-number-adaptive input[type=number] {
|
|
4287
|
+
width: auto;
|
|
4288
|
+
transition: all va(--bsi-transition-instant);
|
|
4289
|
+
}
|
|
4290
|
+
.input-number input[type=number] {
|
|
4291
|
+
appearance: textfield;
|
|
4292
|
+
border-top-right-radius: var(--bsi-form-control-border-radius) !important;
|
|
4293
|
+
border-bottom-right-radius: var(--bsi-form-control-border-radius) !important;
|
|
4294
|
+
}
|
|
4295
|
+
.input-number input[type=number]::-webkit-inner-spin-button, .input-number input[type=number]::-webkit-outer-spin-button {
|
|
4296
|
+
-webkit-appearance: none;
|
|
4297
|
+
}
|
|
4298
|
+
.input-number input[type=number]::-ms-clear {
|
|
4299
|
+
display: none;
|
|
4300
|
+
}
|
|
4301
|
+
.input-number input[type=number]:not(:disabled) {
|
|
4302
|
+
border-left: 1px solid var(--bsi-form-control-border-color);
|
|
4303
|
+
}
|
|
4304
|
+
.input-number input[type=number][readonly] ~ .input-group-text .input-number-add,
|
|
4305
|
+
.input-number input[type=number][readonly] ~ .input-group-text .input-number-sub {
|
|
4306
|
+
display: none;
|
|
4307
|
+
}
|
|
4308
|
+
.input-number.disabled button {
|
|
4309
|
+
display: none;
|
|
4310
|
+
pointer-events: none;
|
|
4311
|
+
}
|
|
4312
|
+
.input-number.disabled button:hover {
|
|
4313
|
+
cursor: not-allowed;
|
|
4314
|
+
}
|
|
4315
|
+
.input-number .input-group-text.align-buttons {
|
|
4316
|
+
position: absolute;
|
|
4317
|
+
top: 0;
|
|
4318
|
+
bottom: 0;
|
|
4319
|
+
right: 0;
|
|
4320
|
+
z-index: 10;
|
|
4321
|
+
padding-right: var(--bsi-form-control-spacing);
|
|
4322
|
+
border: none;
|
|
4323
|
+
background: transparent;
|
|
4324
|
+
}
|
|
4325
|
+
.is-invalid + .input-number .input-group-text.align-buttons {
|
|
4326
|
+
bottom: 0;
|
|
4327
|
+
}
|
|
4328
|
+
.input-number .input-group-text button {
|
|
4329
|
+
position: relative;
|
|
4330
|
+
transition: opacity 0.1s;
|
|
4331
|
+
padding: 0;
|
|
4332
|
+
border: none;
|
|
4333
|
+
height: 50%;
|
|
4334
|
+
width: 16px;
|
|
4335
|
+
background: transparent;
|
|
4336
|
+
}
|
|
4337
|
+
.input-number .input-group-text button:after {
|
|
4338
|
+
position: absolute;
|
|
4339
|
+
top: 50%;
|
|
4340
|
+
left: 50%;
|
|
4341
|
+
transform: translateX(-50%) translateY(-50%);
|
|
4342
|
+
content: "";
|
|
4343
|
+
width: 0;
|
|
4344
|
+
height: 0;
|
|
4345
|
+
border-style: solid;
|
|
4346
|
+
}
|
|
4347
|
+
.input-number .input-group-text button:focus.input-number-add:after, .input-number .input-group-text button:hover.input-number-add:after {
|
|
4348
|
+
border-color: transparent transparent var(--bsi-form-control-border-color) transparent;
|
|
4349
|
+
}
|
|
4350
|
+
.input-number .input-group-text button:focus.input-number-sub:after, .input-number .input-group-text button:hover.input-number-sub:after {
|
|
4351
|
+
border-color: var(--bsi-form-control-border-color) transparent transparent transparent;
|
|
4352
|
+
}
|
|
4353
|
+
.input-number .input-group-text button:focus:not([data-focus-mouse=true]) {
|
|
4354
|
+
opacity: 1;
|
|
4355
|
+
}
|
|
4356
|
+
.input-number .input-group-text button.input-number-add:after {
|
|
4357
|
+
border-width: 0 5px 6px 5px;
|
|
4358
|
+
border-color: transparent transparent var(--bsi-form-control-border-color) transparent;
|
|
4359
|
+
}
|
|
4360
|
+
.input-number .input-group-text button.input-number-sub:after {
|
|
4361
|
+
border-width: 6px 5px 0 5px;
|
|
4362
|
+
border-color: var(--bsi-form-control-border-color) transparent transparent transparent;
|
|
4363
|
+
}
|
|
4364
|
+
.input-number .input-group-text button:hover {
|
|
4365
|
+
cursor: pointer;
|
|
4366
|
+
}
|
|
4367
|
+
|
|
4368
|
+
.input-number .input-group-text + input[type=number] {
|
|
4369
|
+
border-left: 0;
|
|
4370
|
+
}
|
|
4371
|
+
|
|
4372
|
+
@media (min-width: 1200px) {
|
|
4373
|
+
.input-number button {
|
|
4374
|
+
opacity: 0;
|
|
4375
|
+
}
|
|
4376
|
+
.input-number:hover button {
|
|
4377
|
+
opacity: 1;
|
|
4378
|
+
}
|
|
4379
|
+
}
|
|
3774
4380
|
.input-group {
|
|
3775
4381
|
position: relative;
|
|
3776
4382
|
display: flex;
|
|
@@ -3805,11 +4411,11 @@ textarea.form-control-lg {
|
|
|
3805
4411
|
.input-group-text {
|
|
3806
4412
|
display: flex;
|
|
3807
4413
|
align-items: center;
|
|
3808
|
-
padding: var(--
|
|
3809
|
-
font-size: var(--
|
|
3810
|
-
font-weight: var(--
|
|
3811
|
-
color: var(--
|
|
3812
|
-
background-color: var(--
|
|
4414
|
+
padding: var(--bsi-form-control-spacing) 0 var(--bsi-form-control-spacing) var(--bsi-form-control-spacing);
|
|
4415
|
+
font-size: var(--bsi-body-font-size);
|
|
4416
|
+
font-weight: var(--bsi-font-weight-solid);
|
|
4417
|
+
color: var(--bsi-form-inpunt-text-color);
|
|
4418
|
+
background-color: var(--bsi-form-control-background-color);
|
|
3813
4419
|
text-align: center;
|
|
3814
4420
|
white-space: nowrap;
|
|
3815
4421
|
border-top-width: 1px;
|
|
@@ -3817,13 +4423,13 @@ textarea.form-control-lg {
|
|
|
3817
4423
|
border-right-width: 0;
|
|
3818
4424
|
border-bottom-width: 1px;
|
|
3819
4425
|
border-style: solid;
|
|
3820
|
-
border-color: var(--
|
|
3821
|
-
border-radius: var(--
|
|
4426
|
+
border-color: var(--bsi-form-control-border-color);
|
|
4427
|
+
border-radius: var(--bsi-form-control-border-radius);
|
|
3822
4428
|
}
|
|
3823
4429
|
.disabled .input-group-text {
|
|
3824
|
-
background-color: var(--
|
|
3825
|
-
border-color: var(--
|
|
3826
|
-
color: var(--
|
|
4430
|
+
background-color: var(--bsi-color-background-disabled);
|
|
4431
|
+
border-color: var(--bsi-color-border-disabled);
|
|
4432
|
+
color: var(--bsi-color-text-disabled);
|
|
3827
4433
|
}
|
|
3828
4434
|
|
|
3829
4435
|
.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
|
|
@@ -3857,7 +4463,7 @@ textarea.form-control-lg {
|
|
|
3857
4463
|
font-size: 0.75rem;
|
|
3858
4464
|
}
|
|
3859
4465
|
.form-feedback.just-validate-error-label {
|
|
3860
|
-
color: var(--
|
|
4466
|
+
color: var(--bsi-color-text-danger);
|
|
3861
4467
|
}
|
|
3862
4468
|
|
|
3863
4469
|
.input-group-text:has(~ [data-focus-mouse=true]:not(.btn)),
|
|
@@ -3873,7 +4479,7 @@ button:has(~ [data-focus-mouse=true]:not(.btn)),
|
|
|
3873
4479
|
.is-invalid ~ .input-group-text,
|
|
3874
4480
|
button:has(~ .is-invalid),
|
|
3875
4481
|
.is-invalid + button {
|
|
3876
|
-
border-color: var(--
|
|
4482
|
+
border-color: var(--bsi-color-border-danger) !important;
|
|
3877
4483
|
}
|
|
3878
4484
|
|
|
3879
4485
|
.sr-only-justvalidate-bi {
|
|
@@ -3881,7 +4487,7 @@ button:has(~ .is-invalid),
|
|
|
3881
4487
|
}
|
|
3882
4488
|
|
|
3883
4489
|
.just-validate-success-field {
|
|
3884
|
-
border-color: var(--
|
|
4490
|
+
border-color: var(--bsi-color-border-success) !important;
|
|
3885
4491
|
padding-right: calc(1.5em + 0.75rem) !important;
|
|
3886
4492
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23008055' viewBox='0 0 192 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E");
|
|
3887
4493
|
}
|
|
@@ -3890,7 +4496,7 @@ button:has(~ .is-invalid),
|
|
|
3890
4496
|
.just-validate-success-field ~ .input-group-text,
|
|
3891
4497
|
button:has(~ .just-validate-success-field),
|
|
3892
4498
|
.just-validate-success-field + button {
|
|
3893
|
-
border-color: var(--
|
|
4499
|
+
border-color: var(--bsi-color-border-success);
|
|
3894
4500
|
}
|
|
3895
4501
|
|
|
3896
4502
|
.just-validate-success-field + .input-group-text.align-buttons,
|
|
@@ -3919,16 +4525,16 @@ textarea.just-validate-success-field {
|
|
|
3919
4525
|
border-bottom-width: 1px;
|
|
3920
4526
|
}
|
|
3921
4527
|
|
|
3922
|
-
input[type=checkbox].
|
|
3923
|
-
input[type=radio].
|
|
3924
|
-
color: var(--
|
|
4528
|
+
input[type=checkbox].is-invalid,
|
|
4529
|
+
input[type=radio].is-invalid {
|
|
4530
|
+
--bsi-form-checkbox-border-color: var(--bsi-color-border-danger);
|
|
3925
4531
|
}
|
|
3926
4532
|
|
|
3927
4533
|
select.is-invalid {
|
|
3928
|
-
border: 1px solid var(--
|
|
4534
|
+
border: 1px solid var(--bsi-color-border-danger);
|
|
3929
4535
|
}
|
|
3930
4536
|
select.just-validate-success-field {
|
|
3931
|
-
border: 1px solid var(--
|
|
4537
|
+
border: 1px solid var(--bsi-color-border-success);
|
|
3932
4538
|
}
|
|
3933
4539
|
|
|
3934
4540
|
.position-absolute {
|
|
@@ -3944,27 +4550,27 @@ select.just-validate-success-field {
|
|
|
3944
4550
|
}
|
|
3945
4551
|
|
|
3946
4552
|
.bg-muted {
|
|
3947
|
-
--
|
|
4553
|
+
--bsi-bg-opacity: 1;
|
|
3948
4554
|
background-color: hsl(0, 0%, 96%) !important;
|
|
3949
4555
|
}
|
|
3950
4556
|
|
|
3951
4557
|
.bg-danger {
|
|
3952
|
-
--
|
|
4558
|
+
--bsi-bg-opacity: 1;
|
|
3953
4559
|
background-color: hsl(350, 60%, 50%) !important;
|
|
3954
4560
|
}
|
|
3955
4561
|
|
|
3956
4562
|
.bg-warning {
|
|
3957
|
-
--
|
|
4563
|
+
--bsi-bg-opacity: 1;
|
|
3958
4564
|
background-color: hsl(36, 100%, 30%) !important;
|
|
3959
4565
|
}
|
|
3960
4566
|
|
|
3961
4567
|
.bg-success {
|
|
3962
|
-
--
|
|
4568
|
+
--bsi-bg-opacity: 1;
|
|
3963
4569
|
background-color: hsl(160, 100%, 25%) !important;
|
|
3964
4570
|
}
|
|
3965
4571
|
|
|
3966
4572
|
.border-start {
|
|
3967
|
-
border-left: var(--
|
|
4573
|
+
border-left: var(--bsi-border-base) var(--bsi-border-style) var(--bsi-border-color) !important;
|
|
3968
4574
|
}
|
|
3969
4575
|
|
|
3970
4576
|
.border-start-0 {
|
|
@@ -3972,7 +4578,7 @@ select.just-validate-success-field {
|
|
|
3972
4578
|
}
|
|
3973
4579
|
|
|
3974
4580
|
.border-end {
|
|
3975
|
-
border-right: var(--
|
|
4581
|
+
border-right: var(--bsi-border-base) var(--bsi-border-style) var(--bsi-border-color) !important;
|
|
3976
4582
|
}
|
|
3977
4583
|
|
|
3978
4584
|
.border-end-0 {
|
|
@@ -3980,127 +4586,126 @@ select.just-validate-success-field {
|
|
|
3980
4586
|
}
|
|
3981
4587
|
|
|
3982
4588
|
.border-white {
|
|
3983
|
-
--
|
|
3984
|
-
border-color: white !important;
|
|
4589
|
+
--bsi-border-color: white;
|
|
3985
4590
|
}
|
|
3986
4591
|
|
|
3987
4592
|
.text-primary {
|
|
3988
|
-
--
|
|
3989
|
-
color: rgba(var(--
|
|
4593
|
+
--bsi-text-opacity: 1;
|
|
4594
|
+
color: rgba(var(--bsi-primary-rgb), var(--bsi-text-opacity)) !important;
|
|
3990
4595
|
}
|
|
3991
4596
|
|
|
3992
4597
|
.text-secondary {
|
|
3993
|
-
--
|
|
3994
|
-
color:
|
|
4598
|
+
--bsi-text-opacity: 1;
|
|
4599
|
+
color: hsl(210, 33%, 28%) !important;
|
|
3995
4600
|
}
|
|
3996
4601
|
|
|
3997
4602
|
.text-success {
|
|
3998
|
-
--
|
|
3999
|
-
color: rgba(var(--
|
|
4603
|
+
--bsi-text-opacity: 1;
|
|
4604
|
+
color: rgba(var(--bsi-success-rgb), var(--bsi-text-opacity)) !important;
|
|
4000
4605
|
}
|
|
4001
4606
|
|
|
4002
4607
|
.text-info {
|
|
4003
|
-
--
|
|
4004
|
-
color: rgba(var(--
|
|
4608
|
+
--bsi-text-opacity: 1;
|
|
4609
|
+
color: rgba(var(--bsi-info-rgb), var(--bsi-text-opacity)) !important;
|
|
4005
4610
|
}
|
|
4006
4611
|
|
|
4007
4612
|
.text-warning {
|
|
4008
|
-
--
|
|
4009
|
-
color: rgba(var(--
|
|
4613
|
+
--bsi-text-opacity: 1;
|
|
4614
|
+
color: rgba(var(--bsi-warning-rgb), var(--bsi-text-opacity)) !important;
|
|
4010
4615
|
}
|
|
4011
4616
|
|
|
4012
4617
|
.text-danger {
|
|
4013
|
-
--
|
|
4014
|
-
color: rgba(var(--
|
|
4618
|
+
--bsi-text-opacity: 1;
|
|
4619
|
+
color: rgba(var(--bsi-danger-rgb), var(--bsi-text-opacity)) !important;
|
|
4015
4620
|
}
|
|
4016
4621
|
|
|
4017
4622
|
.text-light {
|
|
4018
|
-
--
|
|
4019
|
-
color: rgba(var(--
|
|
4623
|
+
--bsi-text-opacity: 1;
|
|
4624
|
+
color: rgba(var(--bsi-light-rgb), var(--bsi-text-opacity)) !important;
|
|
4020
4625
|
}
|
|
4021
4626
|
|
|
4022
4627
|
.text-dark {
|
|
4023
|
-
--
|
|
4024
|
-
color: rgba(var(--
|
|
4628
|
+
--bsi-text-opacity: 1;
|
|
4629
|
+
color: rgba(var(--bsi-dark-rgb), var(--bsi-text-opacity)) !important;
|
|
4025
4630
|
}
|
|
4026
4631
|
|
|
4027
4632
|
.text-black {
|
|
4028
|
-
--
|
|
4029
|
-
color: rgba(var(--
|
|
4633
|
+
--bsi-text-opacity: 1;
|
|
4634
|
+
color: rgba(var(--bsi-black-rgb), var(--bsi-text-opacity)) !important;
|
|
4030
4635
|
}
|
|
4031
4636
|
|
|
4032
4637
|
.text-white {
|
|
4033
|
-
--
|
|
4034
|
-
color: rgba(var(--
|
|
4638
|
+
--bsi-text-opacity: 1;
|
|
4639
|
+
color: rgba(var(--bsi-white-rgb), var(--bsi-text-opacity)) !important;
|
|
4035
4640
|
}
|
|
4036
4641
|
|
|
4037
4642
|
.text-100 {
|
|
4038
|
-
--
|
|
4039
|
-
color: rgba(var(--
|
|
4643
|
+
--bsi-text-opacity: 1;
|
|
4644
|
+
color: rgba(var(--bsi-100-rgb), var(--bsi-text-opacity)) !important;
|
|
4040
4645
|
}
|
|
4041
4646
|
|
|
4042
4647
|
.text-200 {
|
|
4043
|
-
--
|
|
4044
|
-
color: rgba(var(--
|
|
4648
|
+
--bsi-text-opacity: 1;
|
|
4649
|
+
color: rgba(var(--bsi-200-rgb), var(--bsi-text-opacity)) !important;
|
|
4045
4650
|
}
|
|
4046
4651
|
|
|
4047
4652
|
.text-300 {
|
|
4048
|
-
--
|
|
4049
|
-
color: rgba(var(--
|
|
4653
|
+
--bsi-text-opacity: 1;
|
|
4654
|
+
color: rgba(var(--bsi-300-rgb), var(--bsi-text-opacity)) !important;
|
|
4050
4655
|
}
|
|
4051
4656
|
|
|
4052
4657
|
.text-400 {
|
|
4053
|
-
--
|
|
4054
|
-
color: rgba(var(--
|
|
4658
|
+
--bsi-text-opacity: 1;
|
|
4659
|
+
color: rgba(var(--bsi-400-rgb), var(--bsi-text-opacity)) !important;
|
|
4055
4660
|
}
|
|
4056
4661
|
|
|
4057
4662
|
.text-500 {
|
|
4058
|
-
--
|
|
4059
|
-
color: rgba(var(--
|
|
4663
|
+
--bsi-text-opacity: 1;
|
|
4664
|
+
color: rgba(var(--bsi-500-rgb), var(--bsi-text-opacity)) !important;
|
|
4060
4665
|
}
|
|
4061
4666
|
|
|
4062
4667
|
.text-600 {
|
|
4063
|
-
--
|
|
4064
|
-
color: rgba(var(--
|
|
4668
|
+
--bsi-text-opacity: 1;
|
|
4669
|
+
color: rgba(var(--bsi-600-rgb), var(--bsi-text-opacity)) !important;
|
|
4065
4670
|
}
|
|
4066
4671
|
|
|
4067
4672
|
.text-700 {
|
|
4068
|
-
--
|
|
4069
|
-
color: rgba(var(--
|
|
4673
|
+
--bsi-text-opacity: 1;
|
|
4674
|
+
color: rgba(var(--bsi-700-rgb), var(--bsi-text-opacity)) !important;
|
|
4070
4675
|
}
|
|
4071
4676
|
|
|
4072
4677
|
.text-800 {
|
|
4073
|
-
--
|
|
4074
|
-
color: rgba(var(--
|
|
4678
|
+
--bsi-text-opacity: 1;
|
|
4679
|
+
color: rgba(var(--bsi-800-rgb), var(--bsi-text-opacity)) !important;
|
|
4075
4680
|
}
|
|
4076
4681
|
|
|
4077
4682
|
.text-900 {
|
|
4078
|
-
--
|
|
4079
|
-
color: rgba(var(--
|
|
4683
|
+
--bsi-text-opacity: 1;
|
|
4684
|
+
color: rgba(var(--bsi-900-rgb), var(--bsi-text-opacity)) !important;
|
|
4080
4685
|
}
|
|
4081
4686
|
|
|
4082
4687
|
.text-body {
|
|
4083
|
-
--
|
|
4084
|
-
color: rgba(var(--
|
|
4688
|
+
--bsi-text-opacity: 1;
|
|
4689
|
+
color: rgba(var(--bsi-body-color-rgb), var(--bsi-text-opacity)) !important;
|
|
4085
4690
|
}
|
|
4086
4691
|
|
|
4087
4692
|
.text-muted {
|
|
4088
|
-
--
|
|
4693
|
+
--bsi-text-opacity: 1;
|
|
4089
4694
|
color: hsl(210, 17%, 44%) !important;
|
|
4090
4695
|
}
|
|
4091
4696
|
|
|
4092
4697
|
.text-black-50 {
|
|
4093
|
-
--
|
|
4698
|
+
--bsi-text-opacity: 1;
|
|
4094
4699
|
color: rgba(0, 0, 0, 0.5) !important;
|
|
4095
4700
|
}
|
|
4096
4701
|
|
|
4097
4702
|
.text-white-50 {
|
|
4098
|
-
--
|
|
4703
|
+
--bsi-text-opacity: 1;
|
|
4099
4704
|
color: rgba(255, 255, 255, 0.5) !important;
|
|
4100
4705
|
}
|
|
4101
4706
|
|
|
4102
4707
|
.text-reset {
|
|
4103
|
-
--
|
|
4708
|
+
--bsi-text-opacity: 1;
|
|
4104
4709
|
color: inherit !important;
|
|
4105
4710
|
}
|
|
4106
4711
|
|
|
@@ -4108,6 +4713,10 @@ select.just-validate-success-field {
|
|
|
4108
4713
|
display: none !important;
|
|
4109
4714
|
}
|
|
4110
4715
|
|
|
4716
|
+
.flex-column {
|
|
4717
|
+
flex-direction: column !important;
|
|
4718
|
+
}
|
|
4719
|
+
|
|
4111
4720
|
@media (min-width: 576px) {
|
|
4112
4721
|
.m-sm-0 {
|
|
4113
4722
|
margin: 0 !important;
|
|
@@ -4115,6 +4724,9 @@ select.just-validate-success-field {
|
|
|
4115
4724
|
.d-sm-none {
|
|
4116
4725
|
display: none !important;
|
|
4117
4726
|
}
|
|
4727
|
+
.flex-sm-column {
|
|
4728
|
+
flex-direction: column !important;
|
|
4729
|
+
}
|
|
4118
4730
|
}
|
|
4119
4731
|
@media (min-width: 768px) {
|
|
4120
4732
|
.m-md-0 {
|
|
@@ -4123,6 +4735,9 @@ select.just-validate-success-field {
|
|
|
4123
4735
|
.d-md-none {
|
|
4124
4736
|
display: none !important;
|
|
4125
4737
|
}
|
|
4738
|
+
.flex-md-column {
|
|
4739
|
+
flex-direction: column !important;
|
|
4740
|
+
}
|
|
4126
4741
|
}
|
|
4127
4742
|
@media (min-width: 992px) {
|
|
4128
4743
|
.m-lg-0 {
|
|
@@ -4131,6 +4746,9 @@ select.just-validate-success-field {
|
|
|
4131
4746
|
.d-lg-none {
|
|
4132
4747
|
display: none !important;
|
|
4133
4748
|
}
|
|
4749
|
+
.flex-lg-column {
|
|
4750
|
+
flex-direction: column !important;
|
|
4751
|
+
}
|
|
4134
4752
|
}
|
|
4135
4753
|
@media (min-width: 1200px) {
|
|
4136
4754
|
.m-xl-0 {
|
|
@@ -4139,6 +4757,9 @@ select.just-validate-success-field {
|
|
|
4139
4757
|
.d-xl-none {
|
|
4140
4758
|
display: none !important;
|
|
4141
4759
|
}
|
|
4760
|
+
.flex-xl-column {
|
|
4761
|
+
flex-direction: column !important;
|
|
4762
|
+
}
|
|
4142
4763
|
}
|
|
4143
4764
|
@media (min-width: 1400px) {
|
|
4144
4765
|
.m-xxl-0 {
|
|
@@ -4147,153 +4768,86 @@ select.just-validate-success-field {
|
|
|
4147
4768
|
.d-xxl-none {
|
|
4148
4769
|
display: none !important;
|
|
4149
4770
|
}
|
|
4771
|
+
.flex-xxl-column {
|
|
4772
|
+
flex-direction: column !important;
|
|
4773
|
+
}
|
|
4150
4774
|
}
|
|
4151
4775
|
@media print {
|
|
4152
4776
|
.d-print-none {
|
|
4153
4777
|
display: none !important;
|
|
4154
4778
|
}
|
|
4155
4779
|
}
|
|
4156
|
-
|
|
4157
|
-
|
|
4780
|
+
.password-icon {
|
|
4781
|
+
top: calc(var(--bsi-form-control-spacing) * 5);
|
|
4782
|
+
--bsi-icon-default: var(--bsi-icon-primary);
|
|
4158
4783
|
}
|
|
4159
4784
|
|
|
4160
|
-
.
|
|
4161
|
-
|
|
4162
|
-
--bs-icon-default: var(--bs-icon-primary);
|
|
4785
|
+
.is-invalid + .input-group-text.align-buttons {
|
|
4786
|
+
bottom: 0 !important;
|
|
4163
4787
|
}`;
|
|
4164
4788
|
|
|
4789
|
+
var ItInput_1;
|
|
4165
4790
|
registerTranslation(translation);
|
|
4166
|
-
let ItInput = class ItInput extends
|
|
4791
|
+
let ItInput = ItInput_1 = class ItInput extends FormControl {
|
|
4167
4792
|
constructor() {
|
|
4168
4793
|
super(...arguments);
|
|
4169
|
-
this.
|
|
4170
|
-
this.
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
this.label = '';
|
|
4176
|
-
this.labelHidden = false;
|
|
4794
|
+
this._slotPrepend = null;
|
|
4795
|
+
this._slotAppend = null;
|
|
4796
|
+
/**
|
|
4797
|
+
* The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults
|
|
4798
|
+
* to `text`.
|
|
4799
|
+
*/
|
|
4177
4800
|
this.type = 'text';
|
|
4178
|
-
|
|
4801
|
+
/** If you want number-input to be adaptive in width */
|
|
4802
|
+
this.adaptive = false;
|
|
4803
|
+
/** If you want label to be hidden. */
|
|
4804
|
+
this.labelHidden = false;
|
|
4805
|
+
/** Placeholder text to show as a hint when the input is empty. */
|
|
4179
4806
|
this.placeholder = '';
|
|
4807
|
+
/** The input's help text. */
|
|
4180
4808
|
this.supportText = '';
|
|
4181
|
-
|
|
4809
|
+
/** If you want the input to be displayed as plaintext. */
|
|
4182
4810
|
this.plaintext = false;
|
|
4811
|
+
/** If the input is read-only. */
|
|
4183
4812
|
this.readonly = false;
|
|
4813
|
+
/** If your input is of type 'password' and you want to display a strength meter */
|
|
4184
4814
|
this.passwordStrengthMeter = false;
|
|
4815
|
+
/** If your input is of type 'password' and you want to show password suggestions. */
|
|
4185
4816
|
this.suggestions = false;
|
|
4186
|
-
this.minlength = -1;
|
|
4187
|
-
this.maxlength = -1;
|
|
4188
4817
|
this._passwordVisible = false;
|
|
4189
4818
|
this._strengthInfos = '';
|
|
4190
4819
|
this._score = 0;
|
|
4191
|
-
this._value = ''; // from validity mixin
|
|
4192
|
-
this._touched = false; // from validity mixin
|
|
4193
|
-
this.validityMessage = ''; // from validity mixin
|
|
4194
|
-
}
|
|
4195
|
-
static get formAssociated() {
|
|
4196
|
-
return true;
|
|
4197
|
-
}
|
|
4198
|
-
get value() {
|
|
4199
|
-
if (this._inputElement) {
|
|
4200
|
-
return this._inputElement.value;
|
|
4201
|
-
}
|
|
4202
|
-
return this._value;
|
|
4203
|
-
}
|
|
4204
|
-
set value(value) {
|
|
4205
|
-
const oldValue = this._value;
|
|
4206
|
-
this._value = value;
|
|
4207
|
-
this.internals.setFormValue(value); // <- Associa il valore al form
|
|
4208
|
-
// make sure that lit-element updates the right properties
|
|
4209
|
-
this.requestUpdate('value', oldValue);
|
|
4210
|
-
// we set the value directly on the input (when available)
|
|
4211
|
-
// so that programatic manipulation updates the UI correctly
|
|
4212
|
-
if (this._inputElement && this._inputElement.value !== value) {
|
|
4213
|
-
this._inputElement.value = value;
|
|
4214
|
-
}
|
|
4215
|
-
}
|
|
4216
|
-
// Getter pubblico per accedere all'input
|
|
4217
|
-
get inputElement() {
|
|
4218
|
-
return this.shadowRoot?.querySelector('input');
|
|
4219
|
-
}
|
|
4220
|
-
_handleFormdata(event) {
|
|
4221
|
-
// Add name and value to the form's submission data if it's not disabled.
|
|
4222
|
-
if (!this.disabled) {
|
|
4223
|
-
const { formData } = event;
|
|
4224
|
-
formData.append(this.name, this._value);
|
|
4225
|
-
}
|
|
4226
|
-
}
|
|
4227
|
-
_handleInput(e) {
|
|
4228
|
-
const input = e.target;
|
|
4229
|
-
this.value = input.value;
|
|
4230
|
-
if (this.passwordStrengthMeter) {
|
|
4231
|
-
this._checkPasswordStrength(input.value);
|
|
4232
|
-
}
|
|
4233
|
-
this.dispatchEvent(new CustomEvent('on-input', {
|
|
4234
|
-
detail: { value: input.value, el: input },
|
|
4235
|
-
bubbles: true,
|
|
4236
|
-
composed: true,
|
|
4237
|
-
}));
|
|
4238
4820
|
}
|
|
4239
|
-
|
|
4240
|
-
if (
|
|
4241
|
-
|
|
4242
|
-
this._checkValidity({
|
|
4243
|
-
[VALIDATION_STATUS.INVALID]: this.$t('validityInvalid'),
|
|
4244
|
-
[VALIDATION_STATUS.ERROR_REQUIRED]: this.$t('validityRequired'),
|
|
4245
|
-
[VALIDATION_STATUS.PATTERN]: this.$t('validityPattern'),
|
|
4246
|
-
[VALIDATION_STATUS.MINLENGTH]: this.$t('validityMinlength'),
|
|
4247
|
-
[VALIDATION_STATUS.MAXLENGTH]: this.$t('validityMaxlength'),
|
|
4248
|
-
}, inputValid);
|
|
4821
|
+
get label() {
|
|
4822
|
+
if (this.labelElements.length > 0) {
|
|
4823
|
+
return this.labelElements[0].innerText.trim();
|
|
4249
4824
|
}
|
|
4825
|
+
return '';
|
|
4250
4826
|
}
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
this.checkValidity();
|
|
4827
|
+
get slotted() {
|
|
4828
|
+
return this._slotPrepend || this._slotAppend;
|
|
4254
4829
|
}
|
|
4255
4830
|
firstUpdated() {
|
|
4256
|
-
// this.addFocus(this.
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4831
|
+
// this.addFocus(this.inputElement); //NON serve per il momento perche sfruttiamo :focus-visible. Per gli input focus-visible si attiva anche al click perchè è il browser che lo gestisce
|
|
4832
|
+
this._slotPrepend = this.querySelector('[slot="prepend"]');
|
|
4833
|
+
this._slotAppend = this.querySelector('[slot="append"]');
|
|
4834
|
+
this._slotPrepend?.addEventListener('slotchange', () => {
|
|
4260
4835
|
this.requestUpdate();
|
|
4261
4836
|
});
|
|
4262
|
-
|
|
4837
|
+
this._slotAppend?.addEventListener('slotchange', () => {
|
|
4263
4838
|
this.requestUpdate();
|
|
4264
4839
|
});
|
|
4265
4840
|
}
|
|
4266
4841
|
connectedCallback() {
|
|
4267
4842
|
super.connectedCallback?.();
|
|
4268
|
-
/* così quando si scrive <it-input value="ciao"></it-input>, this.value viene impostato con 'ciao' */
|
|
4269
|
-
const attrValue = this.getAttribute('value');
|
|
4270
|
-
if (attrValue !== null) {
|
|
4271
|
-
this.value = attrValue;
|
|
4272
|
-
}
|
|
4273
4843
|
if (this.type === 'password' && this.minlength < 0) {
|
|
4274
4844
|
this.minlength = 8; // set default minlength for password
|
|
4275
4845
|
}
|
|
4276
|
-
|
|
4277
|
-
this.dispatchEvent(new CustomEvent('input-ready', { bubbles: true, detail: { el: this.inputElement } }));
|
|
4278
|
-
});
|
|
4846
|
+
this._handleReady();
|
|
4279
4847
|
}
|
|
4280
|
-
// protected override update(changedProperties: Map<string | number | symbol, unknown>): void {
|
|
4281
|
-
// if (changedProperties.has('value') || (changedProperties.has('required') && this.required)) {
|
|
4282
|
-
// this.updateComplete.then(() => {
|
|
4283
|
-
// this.checkValidity();
|
|
4284
|
-
// });
|
|
4285
|
-
// }
|
|
4286
|
-
// super.update(changedProperties);
|
|
4287
|
-
// }
|
|
4288
4848
|
updated(changedProperties) {
|
|
4289
4849
|
super.updated?.(changedProperties);
|
|
4290
|
-
|
|
4291
|
-
this.setCustomValidity(this.validationText);
|
|
4292
|
-
}
|
|
4293
|
-
if (this.invalid) {
|
|
4294
|
-
const message = this.validationText?.length > 0 ? this.validationText : (this.validityMessage ?? 'Campo non valido');
|
|
4295
|
-
this.internals.setValidity({ customError: this.invalid }, message);
|
|
4296
|
-
}
|
|
4850
|
+
// logger
|
|
4297
4851
|
if (this.passwordStrengthMeter && this.type !== 'password') {
|
|
4298
4852
|
this.logger.warn("The strength-meter property is enabled, but type isn't password. Please, remove strength-meter property.");
|
|
4299
4853
|
}
|
|
@@ -4301,13 +4855,24 @@ let ItInput = class ItInput extends ValidityMixin(FormMixin(BaseLocalizedCompone
|
|
|
4301
4855
|
this.logger.warn("The suggestions property is enabled, but type isn't password. Please, remove suggestions this property.");
|
|
4302
4856
|
}
|
|
4303
4857
|
if (!this.label || this.label?.length === 0) {
|
|
4304
|
-
this.logger.warn(`Label is required to ensure accessibility. Please, define a label for <it-input name="${this.name}" ... /> . Set attribute label-hidden="true" if you don't want to show label.`);
|
|
4858
|
+
this.logger.warn(`Label is required to ensure accessibility. Please, define a label for <it-input name="${this.name}" id="${this.id}" ... /> . Set attribute label-hidden="true" if you don't want to show label.`);
|
|
4859
|
+
}
|
|
4860
|
+
}
|
|
4861
|
+
_handleInput(e) {
|
|
4862
|
+
this.value = this.inputElement.value;
|
|
4863
|
+
if (this.value === '00') {
|
|
4864
|
+
this.value = '0';
|
|
4865
|
+
this.inputElement.value = '0';
|
|
4866
|
+
}
|
|
4867
|
+
if (this.passwordStrengthMeter) {
|
|
4868
|
+
this._checkPasswordStrength(this.inputElement.value);
|
|
4305
4869
|
}
|
|
4870
|
+
super._handleInput(e);
|
|
4306
4871
|
}
|
|
4307
4872
|
_togglePasswordVisibility() {
|
|
4308
4873
|
this._passwordVisible = !this._passwordVisible;
|
|
4309
|
-
if (this.
|
|
4310
|
-
this.
|
|
4874
|
+
if (this.inputElement) {
|
|
4875
|
+
this.inputElement.type = this._passwordVisible ? 'text' : 'password';
|
|
4311
4876
|
}
|
|
4312
4877
|
}
|
|
4313
4878
|
_checkPasswordStrength(value) {
|
|
@@ -4348,6 +4913,28 @@ let ItInput = class ItInput extends ValidityMixin(FormMixin(BaseLocalizedCompone
|
|
|
4348
4913
|
}
|
|
4349
4914
|
this._strengthInfos = text;
|
|
4350
4915
|
}
|
|
4916
|
+
static _cleanFloat(num) {
|
|
4917
|
+
return parseFloat(num.toPrecision(15));
|
|
4918
|
+
}
|
|
4919
|
+
_inputNumberIncDec(v) {
|
|
4920
|
+
const step = typeof this.step === 'number' ? this.step : Number(this.step) || 1;
|
|
4921
|
+
const value = typeof this.value === 'number' ? this.value : Number(this.value) || 0;
|
|
4922
|
+
const min = typeof this.min === 'number' ? this.min : Number(this.min);
|
|
4923
|
+
const max = typeof this.max === 'number' ? this.max : Number(this.max);
|
|
4924
|
+
const _v = v * step;
|
|
4925
|
+
const newValue = ItInput_1._cleanFloat(value + _v);
|
|
4926
|
+
if (newValue > max || newValue < min) ;
|
|
4927
|
+
else {
|
|
4928
|
+
const _value = newValue.toString();
|
|
4929
|
+
this.value = _value;
|
|
4930
|
+
this.inputElement.dispatchEvent(new Event('blur', { bubbles: true }));
|
|
4931
|
+
this.inputElement.dispatchEvent(new Event('change', { bubbles: true }));
|
|
4932
|
+
const liveRegion = this.shadowRoot?.querySelector(`#${this._id}-live-region`);
|
|
4933
|
+
if (liveRegion) {
|
|
4934
|
+
liveRegion.textContent = `${_value}`;
|
|
4935
|
+
}
|
|
4936
|
+
}
|
|
4937
|
+
}
|
|
4351
4938
|
_renderTogglePasswordButton() {
|
|
4352
4939
|
// Solo se type=password
|
|
4353
4940
|
if (this.type === 'password') {
|
|
@@ -4400,7 +4987,7 @@ let ItInput = class ItInput extends ValidityMixin(FormMixin(BaseLocalizedCompone
|
|
|
4400
4987
|
_renderpasswordStrengthMeter() {
|
|
4401
4988
|
if (this.type === 'password' && this.passwordStrengthMeter) {
|
|
4402
4989
|
const perc = this._score < 0 ? 0 : this._score;
|
|
4403
|
-
const color = this.
|
|
4990
|
+
const color = this.value?.length === 0 ? 'muted' : scoreColor(this._score);
|
|
4404
4991
|
return html `<div class="password-strength-meter">
|
|
4405
4992
|
${this._renderSuggestions()}
|
|
4406
4993
|
|
|
@@ -4433,9 +5020,9 @@ let ItInput = class ItInput extends ValidityMixin(FormMixin(BaseLocalizedCompone
|
|
|
4433
5020
|
}
|
|
4434
5021
|
return nothing;
|
|
4435
5022
|
}
|
|
4436
|
-
_renderInput(supportTextId) {
|
|
4437
|
-
const ariaDescribedBy = this.composeClass(this.supportText?.length > 0 ? supportTextId : '', this.passwordStrengthMeter ? `strengthMeterInfo_${this._id}` : '', this._ariaAttributes['aria-describedby']?.length > 0 ? this._ariaAttributes['aria-describedby'] : '',
|
|
4438
|
-
const inputClasses = this.composeClass(this.plaintext ? 'form-control-plaintext' : 'form-control', this.size ? `form-control-${this.size}` : '',
|
|
5023
|
+
_renderInput(supportTextId, invalid, validityMessage, showValidation) {
|
|
5024
|
+
const ariaDescribedBy = this.composeClass(this.supportText?.length > 0 ? supportTextId : '', this.passwordStrengthMeter ? `strengthMeterInfo_${this._id}` : '', this._ariaAttributes['aria-describedby']?.length > 0 ? this._ariaAttributes['aria-describedby'] : '', showValidation && validityMessage?.length > 0 ? `invalid-feedback-${this._id}` : '');
|
|
5025
|
+
const inputClasses = this.composeClass('it-form__control', this.plaintext ? 'form-control-plaintext' : 'form-control', this.size ? `form-control-${this.size}` : '', showValidation && invalid ? 'is-invalid' : '', showValidation && !invalid && !this.readonly ? 'just-validate-success-field' : '');
|
|
4439
5026
|
let inputRender;
|
|
4440
5027
|
if (this.type === 'textarea') {
|
|
4441
5028
|
inputRender = html `
|
|
@@ -4443,139 +5030,151 @@ let ItInput = class ItInput extends ValidityMixin(FormMixin(BaseLocalizedCompone
|
|
|
4443
5030
|
part="textarea focusable"
|
|
4444
5031
|
${setAttributes(this._ariaAttributes)}
|
|
4445
5032
|
aria-describedby=${ifDefined(ariaDescribedBy || undefined)}
|
|
4446
|
-
|
|
5033
|
+
aria-invalid=${ifDefined(invalid ? 'true' : undefined)}
|
|
4447
5034
|
@input="${this._handleInput}"
|
|
4448
5035
|
@blur=${this._handleBlur}
|
|
4449
5036
|
@focus=${this._handleFocus}
|
|
4450
5037
|
@click=${this._handleClick}
|
|
4451
5038
|
@change=${this._handleChange}
|
|
5039
|
+
@invalid=${this._handleInvalid}
|
|
4452
5040
|
id="${this._id}"
|
|
4453
5041
|
name="${this.name}"
|
|
4454
5042
|
?disabled=${this.disabled}
|
|
4455
5043
|
?readonly=${this.readonly}
|
|
4456
5044
|
?required=${this.required}
|
|
4457
|
-
|
|
5045
|
+
minlength=${ifDefined(this.minlength)}
|
|
5046
|
+
maxlength=${ifDefined(this.maxlength)}
|
|
5047
|
+
pattern=${ifDefined(this.pattern)}
|
|
5048
|
+
?formNoValidate=${this.customValidation}
|
|
5049
|
+
.value="${live(this.value)}"
|
|
4458
5050
|
placeholder=${ifDefined(this.placeholder || undefined)}
|
|
4459
5051
|
class="${inputClasses}"
|
|
4460
5052
|
></textarea>
|
|
4461
5053
|
`;
|
|
4462
5054
|
}
|
|
4463
5055
|
else {
|
|
5056
|
+
let style = null;
|
|
5057
|
+
if (this.type === 'number' && this.adaptive) {
|
|
5058
|
+
style = `width: calc(${this.value.toString().length}ch + 70px);`;
|
|
5059
|
+
}
|
|
4464
5060
|
inputRender = html `
|
|
4465
5061
|
<input
|
|
4466
5062
|
part="input focusable"
|
|
4467
5063
|
${setAttributes(this._ariaAttributes)}
|
|
4468
5064
|
aria-describedby=${ifDefined(ariaDescribedBy || undefined)}
|
|
4469
|
-
|
|
5065
|
+
aria-invalid=${ifDefined(invalid ? 'true' : undefined)}
|
|
4470
5066
|
@input="${this._handleInput}"
|
|
4471
5067
|
@blur=${this._handleBlur}
|
|
4472
5068
|
@focus=${this._handleFocus}
|
|
4473
5069
|
@click=${this._handleClick}
|
|
4474
5070
|
@change=${this._handleChange}
|
|
5071
|
+
@invalid=${this._handleInvalid}
|
|
4475
5072
|
type="${this.type}"
|
|
4476
5073
|
id="${this._id}"
|
|
4477
5074
|
name="${this.name}"
|
|
4478
5075
|
?disabled=${this.disabled}
|
|
4479
5076
|
?readonly=${this.readonly}
|
|
4480
5077
|
?required=${this.required}
|
|
4481
|
-
|
|
5078
|
+
minlength=${ifDefined(this.minlength)}
|
|
5079
|
+
maxlength=${ifDefined(this.maxlength)}
|
|
5080
|
+
min=${ifDefined(this.min)}
|
|
5081
|
+
max=${ifDefined(this.max)}
|
|
5082
|
+
step=${ifDefined(this.step)}
|
|
5083
|
+
autocomplete="off"
|
|
5084
|
+
pattern=${ifDefined(this.pattern)}
|
|
5085
|
+
?formNoValidate=${this.customValidation}
|
|
5086
|
+
.value="${live(this.value)}"
|
|
4482
5087
|
placeholder=${ifDefined(this.placeholder || undefined)}
|
|
4483
5088
|
class="${inputClasses}"
|
|
5089
|
+
style=${ifDefined(style)}
|
|
4484
5090
|
/>${this._renderTogglePasswordButton()}
|
|
4485
5091
|
`;
|
|
4486
5092
|
}
|
|
4487
|
-
inputRender = html `
|
|
4488
|
-
${inputRender}
|
|
4489
|
-
<div
|
|
4490
|
-
role="alert"
|
|
4491
|
-
id="invalid-feedback-${this._id}"
|
|
4492
|
-
class="invalid-feedback form-feedback form-text form-feedback just-validate-error-label"
|
|
4493
|
-
?hidden=${!(this.validityMessage?.length > 0)}
|
|
4494
|
-
>
|
|
4495
|
-
<span class="visually-hidden">${this.label}: </span>${this.validityMessage}
|
|
4496
|
-
</div>
|
|
4497
|
-
`;
|
|
4498
5093
|
return inputRender;
|
|
4499
5094
|
}
|
|
4500
5095
|
// Render the UI as a function of component state
|
|
4501
5096
|
render() {
|
|
4502
5097
|
const supportTextId = `${this._id}-support-text`;
|
|
4503
5098
|
const supportTextRender = html ` ${when(this.supportText, () => html ` <small class="form-text" id="${supportTextId}">${this.supportText}</small> `)}`;
|
|
5099
|
+
const showValidation = this.formControlController.submittedOnce || this.customValidation; // true; // this._touched || this.customValidation;
|
|
5100
|
+
const validityMessage = (showValidation ? this.validationMessage : '') ?? '';
|
|
5101
|
+
const invalid = validityMessage?.length > 0 || (!this.customValidation && this.inputElement?.checkValidity() === false);
|
|
5102
|
+
const validityMessageRender = html `<div
|
|
5103
|
+
role="alert"
|
|
5104
|
+
id="invalid-feedback-${this._id}"
|
|
5105
|
+
class="invalid-feedback form-feedback form-text form-feedback just-validate-error-label"
|
|
5106
|
+
?hidden=${!(validityMessage?.length > 0)}
|
|
5107
|
+
>
|
|
5108
|
+
<span class="visually-hidden">${this.label}: </span>${validityMessage}
|
|
5109
|
+
</div>`;
|
|
4504
5110
|
return html `
|
|
4505
5111
|
<div class="form-group" part="input-wrapper">
|
|
4506
5112
|
<label
|
|
4507
5113
|
for="${ifDefined(this._id || undefined)}"
|
|
4508
5114
|
part="label"
|
|
4509
5115
|
class="${this.composeClass('active', this.labelHidden ? 'visually-hidden' : '')}"
|
|
4510
|
-
|
|
4511
|
-
>
|
|
4512
|
-
|
|
4513
|
-
${when(this.slotted, () => html
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
5116
|
+
><slot name="label"></slot
|
|
5117
|
+
></label>
|
|
5118
|
+
|
|
5119
|
+
${when(this.slotted || this.type === 'number', () => html `<div
|
|
5120
|
+
class="${this.composeClass('input-group ', this.type === 'number' ? 'input-number' : '', this.type === 'number' && this.adaptive ? 'input-number-adaptive' : '', this.disabled ? 'disabled' : '', this.readonly ? 'readonly' : '')}"
|
|
5121
|
+
>
|
|
5122
|
+
${when(this._slotPrepend, () => html ` <span class="input-group-text">
|
|
5123
|
+
<slot name="prepend" @slotchange=${() => this.requestUpdate()}></slot
|
|
5124
|
+
></span>`)}
|
|
5125
|
+
${this._renderInput(supportTextId, invalid, validityMessage, showValidation)}
|
|
5126
|
+
${when(this.type === 'number', () => html `<span class="input-group-text align-buttons flex-column">
|
|
5127
|
+
<button
|
|
5128
|
+
class="input-number-add"
|
|
5129
|
+
@click=${() => this._inputNumberIncDec(1)}
|
|
5130
|
+
?disabled=${this.disabled || this.readonly}
|
|
5131
|
+
>
|
|
5132
|
+
<span class="visually-hidden">${this.$t('increaseValue')}</span>
|
|
5133
|
+
</button>
|
|
5134
|
+
<button
|
|
5135
|
+
class="input-number-sub"
|
|
5136
|
+
@click=${() => this._inputNumberIncDec(-1)}
|
|
5137
|
+
?disabled=${this.disabled || this.readonly}
|
|
5138
|
+
>
|
|
5139
|
+
<span class="visually-hidden">${this.$t('decreaseValue')}</span>
|
|
5140
|
+
</button>
|
|
5141
|
+
<div aria-live="polite" class="visually-hidden" id="${this._id}-live-region"></div>
|
|
5142
|
+
</span>`)}
|
|
5143
|
+
${when(this._slotAppend, () => html ` <div class="input-group-append">
|
|
5144
|
+
<slot name="append" @slotchange=${() => this.requestUpdate()}></slot>
|
|
5145
|
+
</div>`)}
|
|
4521
5146
|
</div>
|
|
4522
|
-
${supportTextRender} ${this._renderpasswordStrengthMeter()}`, () => html ` ${this._renderInput(supportTextId)} ${
|
|
5147
|
+
${validityMessageRender} ${supportTextRender} ${this._renderpasswordStrengthMeter()}`, () => html ` ${this._renderInput(supportTextId, invalid, validityMessage, showValidation)} ${validityMessageRender}
|
|
5148
|
+
${supportTextRender} ${this._renderpasswordStrengthMeter()}`)}
|
|
4523
5149
|
</div>
|
|
4524
5150
|
`;
|
|
4525
5151
|
}
|
|
4526
5152
|
};
|
|
4527
5153
|
ItInput.styles = styles;
|
|
4528
5154
|
__decorate([
|
|
4529
|
-
|
|
4530
|
-
__metadata("design:type", Object)
|
|
4531
|
-
], ItInput.prototype, "internals", void 0);
|
|
4532
|
-
__decorate([
|
|
4533
|
-
property({ type: Boolean }),
|
|
4534
|
-
__metadata("design:type", Object)
|
|
4535
|
-
], ItInput.prototype, "slotted", void 0);
|
|
4536
|
-
__decorate([
|
|
4537
|
-
property({ type: Boolean, reflect: true }) // from validity mixin
|
|
4538
|
-
,
|
|
4539
|
-
__metadata("design:type", Object)
|
|
4540
|
-
], ItInput.prototype, "invalid", void 0);
|
|
4541
|
-
__decorate([
|
|
4542
|
-
property({ type: Boolean, reflect: true, attribute: 'custom-validation' }) // from validity mixin
|
|
4543
|
-
,
|
|
5155
|
+
state(),
|
|
4544
5156
|
__metadata("design:type", Object)
|
|
4545
|
-
], ItInput.prototype, "
|
|
5157
|
+
], ItInput.prototype, "_slotPrepend", void 0);
|
|
4546
5158
|
__decorate([
|
|
4547
|
-
|
|
4548
|
-
,
|
|
5159
|
+
state(),
|
|
4549
5160
|
__metadata("design:type", Object)
|
|
4550
|
-
], ItInput.prototype, "
|
|
5161
|
+
], ItInput.prototype, "_slotAppend", void 0);
|
|
4551
5162
|
__decorate([
|
|
4552
|
-
property({
|
|
5163
|
+
property({ type: String }),
|
|
4553
5164
|
__metadata("design:type", String)
|
|
4554
|
-
], ItInput.prototype, "
|
|
4555
|
-
__decorate([
|
|
4556
|
-
query('input'),
|
|
4557
|
-
__metadata("design:type", HTMLInputElement)
|
|
4558
|
-
], ItInput.prototype, "_inputElement", void 0);
|
|
5165
|
+
], ItInput.prototype, "type", void 0);
|
|
4559
5166
|
__decorate([
|
|
4560
|
-
property(
|
|
5167
|
+
property(),
|
|
4561
5168
|
__metadata("design:type", Object)
|
|
4562
5169
|
], ItInput.prototype, "size", void 0);
|
|
4563
5170
|
__decorate([
|
|
4564
|
-
property({ type:
|
|
5171
|
+
property({ type: Boolean }),
|
|
4565
5172
|
__metadata("design:type", Object)
|
|
4566
|
-
], ItInput.prototype, "
|
|
5173
|
+
], ItInput.prototype, "adaptive", void 0);
|
|
4567
5174
|
__decorate([
|
|
4568
5175
|
property({ type: Boolean, attribute: 'label-hidden' }),
|
|
4569
5176
|
__metadata("design:type", Object)
|
|
4570
5177
|
], ItInput.prototype, "labelHidden", void 0);
|
|
4571
|
-
__decorate([
|
|
4572
|
-
property({ type: String }),
|
|
4573
|
-
__metadata("design:type", String)
|
|
4574
|
-
], ItInput.prototype, "type", void 0);
|
|
4575
|
-
__decorate([
|
|
4576
|
-
property({ type: String }),
|
|
4577
|
-
__metadata("design:type", Object)
|
|
4578
|
-
], ItInput.prototype, "name", void 0);
|
|
4579
5178
|
__decorate([
|
|
4580
5179
|
property({ type: String }),
|
|
4581
5180
|
__metadata("design:type", Object)
|
|
@@ -4584,10 +5183,6 @@ __decorate([
|
|
|
4584
5183
|
property({ type: String, attribute: 'support-text' }),
|
|
4585
5184
|
__metadata("design:type", Object)
|
|
4586
5185
|
], ItInput.prototype, "supportText", void 0);
|
|
4587
|
-
__decorate([
|
|
4588
|
-
property({ type: Boolean }),
|
|
4589
|
-
__metadata("design:type", Object)
|
|
4590
|
-
], ItInput.prototype, "disabled", void 0);
|
|
4591
5186
|
__decorate([
|
|
4592
5187
|
property({ type: Boolean }),
|
|
4593
5188
|
__metadata("design:type", Object)
|
|
@@ -4605,17 +5200,9 @@ __decorate([
|
|
|
4605
5200
|
__metadata("design:type", Object)
|
|
4606
5201
|
], ItInput.prototype, "suggestions", void 0);
|
|
4607
5202
|
__decorate([
|
|
4608
|
-
|
|
4609
|
-
__metadata("design:type",
|
|
4610
|
-
], ItInput.prototype, "
|
|
4611
|
-
__decorate([
|
|
4612
|
-
property({ type: Number }),
|
|
4613
|
-
__metadata("design:type", Object)
|
|
4614
|
-
], ItInput.prototype, "maxlength", void 0);
|
|
4615
|
-
__decorate([
|
|
4616
|
-
property({ type: String }),
|
|
4617
|
-
__metadata("design:type", String)
|
|
4618
|
-
], ItInput.prototype, "pattern", void 0);
|
|
5203
|
+
queryAssignedElements({ slot: 'label' }),
|
|
5204
|
+
__metadata("design:type", Array)
|
|
5205
|
+
], ItInput.prototype, "labelElements", void 0);
|
|
4619
5206
|
__decorate([
|
|
4620
5207
|
state(),
|
|
4621
5208
|
__metadata("design:type", Object)
|
|
@@ -4628,24 +5215,7 @@ __decorate([
|
|
|
4628
5215
|
state(),
|
|
4629
5216
|
__metadata("design:type", Object)
|
|
4630
5217
|
], ItInput.prototype, "_score", void 0);
|
|
4631
|
-
__decorate([
|
|
4632
|
-
state(),
|
|
4633
|
-
__metadata("design:type", Object)
|
|
4634
|
-
], ItInput.prototype, "_value", void 0);
|
|
4635
|
-
__decorate([
|
|
4636
|
-
state(),
|
|
4637
|
-
__metadata("design:type", Object)
|
|
4638
|
-
], ItInput.prototype, "_touched", void 0);
|
|
4639
|
-
__decorate([
|
|
4640
|
-
property({ type: String }),
|
|
4641
|
-
__metadata("design:type", String)
|
|
4642
|
-
], ItInput.prototype, "validityMessage", void 0);
|
|
4643
|
-
__decorate([
|
|
4644
|
-
property({ reflect: true }),
|
|
4645
|
-
__metadata("design:type", Object),
|
|
4646
|
-
__metadata("design:paramtypes", [Object])
|
|
4647
|
-
], ItInput.prototype, "value", null);
|
|
4648
|
-
ItInput = __decorate([
|
|
5218
|
+
ItInput = ItInput_1 = __decorate([
|
|
4649
5219
|
customElement('it-input')
|
|
4650
5220
|
], ItInput);
|
|
4651
5221
|
|