@descope/web-components-ui 1.0.82 → 1.0.84

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. package/dist/index.esm.js +419 -312
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/umd/18.js +577 -0
  4. package/dist/umd/{233.js.LICENSE.txt → 18.js.LICENSE.txt} +6 -0
  5. package/dist/umd/803.js +1 -0
  6. package/dist/umd/boolean-fields-descope-boolean-field-internal-index-js.js +1 -0
  7. package/dist/umd/boolean-fields-descope-checkbox-index-js.js +1 -0
  8. package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +1 -0
  9. package/dist/umd/descope-combo-box-index-js.js +1 -1
  10. package/dist/umd/descope-container-index-js.js +1 -1
  11. package/dist/umd/index.js +1 -1
  12. package/package.json +1 -1
  13. package/src/components/boolean-fields/booleanFieldMixin.js +38 -0
  14. package/src/components/boolean-fields/commonStyles.js +59 -0
  15. package/src/components/{descope-checkbox/descope-checkbox-internal/CheckboxInternal.js → boolean-fields/descope-boolean-field-internal/BooleanFieldInternal.js} +7 -4
  16. package/src/components/boolean-fields/descope-boolean-field-internal/index.js +3 -0
  17. package/src/components/{descope-checkbox → boolean-fields/descope-checkbox}/Checkbox.js +7 -95
  18. package/src/components/{descope-checkbox → boolean-fields/descope-checkbox}/index.js +3 -1
  19. package/src/components/boolean-fields/descope-switch-toggle/SwitchToggle.js +124 -0
  20. package/src/components/boolean-fields/descope-switch-toggle/index.js +8 -0
  21. package/src/components/descope-container/Container.js +2 -1
  22. package/src/index.js +2 -2
  23. package/src/index.umd.js +5 -0
  24. package/src/theme/components/checkbox.js +3 -6
  25. package/src/theme/components/container.js +1 -0
  26. package/src/theme/components/switchToggle.js +71 -4
  27. package/dist/umd/233.js +0 -577
  28. package/dist/umd/786.js +0 -2
  29. package/dist/umd/786.js.LICENSE.txt +0 -17
  30. package/dist/umd/descope-checkbox-descope-checkbox-internal-index-js.js +0 -1
  31. package/dist/umd/descope-checkbox-index-js.js +0 -1
  32. package/dist/umd/descope-switch-toggle-index-js.js +0 -1
  33. package/src/components/descope-checkbox/descope-checkbox-internal/index.js +0 -3
  34. package/src/components/descope-switch-toggle/SwitchToggle.js +0 -89
  35. package/src/components/descope-switch-toggle/index.js +0 -6
@@ -1,10 +1,77 @@
1
- import SwitchToggle from '../../components/descope-switch-toggle/SwitchToggle';
1
+ import globals from '../globals';
2
+ import { getThemeRefs } from '../../helpers/themeHelpers';
3
+ import SwitchToggle from '../../components/boolean-fields/descope-switch-toggle/SwitchToggle';
2
4
 
5
+ const knobMargin = '2px';
6
+ const checkboxHeight = '1.25em';
7
+ const trackBorderWidth = '2px';
8
+
9
+ const globalRefs = getThemeRefs(globals);
3
10
  const vars = SwitchToggle.cssVarList;
4
11
 
5
12
  const switchToggle = {
6
- [vars.width]: '70px',
7
- [vars.cursor]: [{}, { selector: '> label' }]
13
+ size: {
14
+ xs: { [vars.fontSize]: '8px' },
15
+ sm: { [vars.fontSize]: '12px' },
16
+ md: { [vars.fontSize]: '16px' },
17
+ lg: { [vars.fontSize]: '20px' },
18
+ xl: { [vars.fontSize]: '24px' }
19
+ },
20
+
21
+ [vars.cursor]: 'pointer',
22
+
23
+ [vars.trackBorderStyle]: 'solid',
24
+ [vars.trackBorderWidth]: trackBorderWidth,
25
+ [vars.trackBorderColor]: globalRefs.colors.surface.contrast,
26
+
27
+ [vars.trackBackgroundColor]: 'none',
28
+ [vars.trackRadius]: globalRefs.radius.md,
29
+ [vars.trackWidth]: '2.5em',
30
+ [vars.trackHeight]: checkboxHeight,
31
+
32
+ [vars.knobSize]: `calc(1em - ${knobMargin})`,
33
+ [vars.knobRadius]: '50%',
34
+ [vars.knobTopOffset]: '1px',
35
+ [vars.knobColor]: globalRefs.colors.surface.contrast,
36
+ [vars.knobPosition]: knobMargin,
37
+ [vars.knobTransition]: '0.3s',
38
+
39
+ [vars.labelTextColor]: globalRefs.colors.surface.contrast,
40
+ [vars.labelFontWeight]: '400',
41
+ [vars.labelLineHeight]: `calc(${checkboxHeight} + 0.25em)`,
42
+ [vars.labelMargin]: '0.25em',
43
+
44
+ _fullWidth: {
45
+ [vars.width]: '100%',
46
+ },
47
+
48
+ _checked: {
49
+ [vars.trackBorderColor]: globalRefs.colors.primary.main,
50
+ [vars.knobPosition]: `calc(100% - var(${vars.knobSize}) - ${knobMargin})`,
51
+ [vars.knobColor]: globalRefs.colors.primary.main,
52
+ [vars.knobTextColor]: globalRefs.colors.primary.contrast,
53
+ },
54
+
55
+ _disabled: {
56
+ [vars.cursor]: 'not-allowed', // todo: fix cursor
57
+ [vars.knobColor]: globalRefs.colors.surface.main,
58
+ [vars.trackBorderColor]: globalRefs.colors.surface.main,
59
+ [vars.trackBackgroundColor]: globalRefs.colors.surface.light,
60
+ },
61
+
62
+ _focusRing: {
63
+ [vars.switchOutlineWidth]: '2px',
64
+ [vars.switchOutlineOffset]: '1px',
65
+ [vars.switchOutlineColor]: globalRefs.colors.primary.main,
66
+ [vars.switchOutlineStyle]: 'solid'
67
+ },
68
+
69
+ _invalid: {
70
+ [vars.switchOutlineColor]: globalRefs.colors.error.main,
71
+ [vars.trackBorderColor]: globalRefs.colors.error.main,
72
+ [vars.knobColor]: globalRefs.colors.error.main,
73
+ [vars.labelTextColor]: globalRefs.colors.error.main
74
+ },
8
75
  };
9
76
 
10
- export default switchToggle;
77
+ export default switchToggle;
package/dist/umd/233.js DELETED
@@ -1,577 +0,0 @@
1
- /*! For license information please see 233.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkDescopeUI=self.webpackChunkDescopeUI||[]).push([[233],{9091:(e,t,r)=>{r.d(t,{t:()=>n});var o=r(1014),i=r(6328),a=r(6326),s=r(4524);const n=(0,o.o)((e=>class extends((0,i.A)((0,s.n)((0,a.J)(e)))){static get constraints(){return["required"]}static get delegateAttrs(){return[...super.delegateAttrs,"required"]}ready(){super.ready(),this._createConstraintsObserver()}checkValidity(){return this.inputElement&&this._hasValidConstraints(this.constructor.constraints.map((e=>this[e])))?this.inputElement.checkValidity():!this.invalid}_hasValidConstraints(e){return e.some((e=>this.__isValidConstraint(e)))}_createConstraintsObserver(){this._createMethodObserver(`_constraintsChanged(stateTarget, ${this.constructor.constraints.join(", ")})`)}_constraintsChanged(e,...t){if(!e)return;const r=this._hasValidConstraints(t),o=this.__previousHasConstraints&&!r;(this._hasValue||this.invalid)&&r?this.validate():o&&this._setInvalid(!1),this.__previousHasConstraints=r}_onChange(e){e.stopPropagation(),this.validate(),this.dispatchEvent(new CustomEvent("change",{detail:{sourceEvent:e},bubbles:e.bubbles,cancelable:e.cancelable}))}__isValidConstraint(e){return Boolean(e)||0===e}}))},2006:(e,t,r)=>{r.d(t,{L:()=>C});var o=r(7913),i=r(6139),a=r(6634),s=r(602),n=r(6326);const l=e=>class extends((0,n.J)((0,s.L)(e))){static get properties(){return{clearButtonVisible:{type:Boolean,reflectToAttribute:!0,value:!1}}}get clearElement(){return console.warn(`Please implement the 'clearElement' property in <${this.localName}>`),null}ready(){super.ready(),this.clearElement&&this.clearElement.addEventListener("click",(e=>this._onClearButtonClick(e)))}_onClearButtonClick(e){e.preventDefault(),this.inputElement.focus(),this._onClearAction()}_onEscape(e){super._onEscape(e),this.clearButtonVisible&&this.value&&(e.stopPropagation(),this._onClearAction())}_onClearAction(){this.clear(),this.inputElement.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),this.inputElement.dispatchEvent(new Event("change",{bubbles:!0}))}};var d=r(6155),h=r(2604);class u extends h.v{constructor(e){super(e,"error-message","div")}setErrorMessage(e){this.errorMessage=e,this.updateDefaultNode(this.node)}setInvalid(e){this.invalid=e,this.updateDefaultNode(this.node)}initAddedNode(e){e!==this.defaultNode&&this.initCustomNode(e)}initNode(e){this.updateDefaultNode(e)}initCustomNode(e){e.textContent&&!this.errorMessage&&(this.errorMessage=e.textContent.trim()),super.initCustomNode(e)}restoreDefaultNode(){this.attachDefaultNode()}updateDefaultNode(e){const{errorMessage:t,invalid:r}=this,o=Boolean(r&&t&&""!==t.trim());e&&(e.textContent=o?t:"",e.hidden=!o,o?e.setAttribute("role","alert"):e.removeAttribute("role")),super.updateDefaultNode(e)}}var p=r(3726);class c{constructor(e){this.host=e,this.__required=!1}get __isGroupField(){return this.__target===this.host}setTarget(e){this.__target=e,this.__setAriaRequiredAttribute(this.__required),this.__setLabelIdToAriaAttribute(this.__labelId),this.__setErrorIdToAriaAttribute(this.__errorId),this.__setHelperIdToAriaAttribute(this.__helperId)}setRequired(e){this.__setAriaRequiredAttribute(e),this.__required=e}setLabelId(e){this.__setLabelIdToAriaAttribute(e,this.__labelId),this.__labelId=e}setErrorId(e){this.__setErrorIdToAriaAttribute(e,this.__errorId),this.__errorId=e}setHelperId(e){this.__setHelperIdToAriaAttribute(e,this.__helperId),this.__helperId=e}__setLabelIdToAriaAttribute(e,t){this.__setAriaAttributeId("aria-labelledby",e,t)}__setErrorIdToAriaAttribute(e,t){this.__isGroupField?this.__setAriaAttributeId("aria-labelledby",e,t):this.__setAriaAttributeId("aria-describedby",e,t)}__setHelperIdToAriaAttribute(e,t){this.__isGroupField?this.__setAriaAttributeId("aria-labelledby",e,t):this.__setAriaAttributeId("aria-describedby",e,t)}__setAriaRequiredAttribute(e){this.__target&&(["input","textarea"].includes(this.__target.localName)||(e?this.__target.setAttribute("aria-required","true"):this.__target.removeAttribute("aria-required")))}__setAriaAttributeId(e,t,r){this.__target&&(r&&(0,p.x_)(this.__target,e,r),t&&(0,p.$2)(this.__target,e,t))}}class m extends h.v{constructor(e){super(e,"helper",null)}setHelperText(e){this.helperText=e,this.getSlotChild()||this.restoreDefaultNode(),this.node===this.defaultNode&&this.updateDefaultNode(this.node)}restoreDefaultNode(){const{helperText:e}=this;if(e&&""!==e.trim()){this.tagName="div";const e=this.attachDefaultNode();this.observeNode(e)}}updateDefaultNode(e){e&&(e.textContent=this.helperText),super.updateDefaultNode(e)}initCustomNode(e){super.initCustomNode(e),this.observeNode(e)}}var v=r(6821),f=r(4524);const g=e=>class extends((0,f.n)((0,v.h)((0,d.k)(e)))){static get properties(){return{ariaTarget:{type:Object,observer:"_ariaTargetChanged"},errorMessage:{type:String,observer:"_errorMessageChanged"},helperText:{type:String,observer:"_helperTextChanged"}}}static get observers(){return["_invalidChanged(invalid)","_requiredChanged(required)"]}constructor(){super(),this._fieldAriaController=new c(this),this._helperController=new m(this),this._errorController=new u(this),this._errorController.addEventListener("slot-content-changed",(e=>{this.toggleAttribute("has-error-message",e.detail.hasContent)})),this._labelController.addEventListener("slot-content-changed",(e=>{const{hasContent:t,node:r}=e.detail;this.__labelChanged(t,r)})),this._helperController.addEventListener("slot-content-changed",(e=>{const{hasContent:t,node:r}=e.detail;this.toggleAttribute("has-helper",t),this.__helperChanged(t,r)}))}get _errorNode(){return this._errorController.node}get _helperNode(){return this._helperController.node}ready(){super.ready(),this.addController(this._fieldAriaController),this.addController(this._helperController),this.addController(this._errorController)}__helperChanged(e,t){e?this._fieldAriaController.setHelperId(t.id):this._fieldAriaController.setHelperId(null)}__labelChanged(e,t){e?this._fieldAriaController.setLabelId(t.id):this._fieldAriaController.setLabelId(null)}_errorMessageChanged(e){this._errorController.setErrorMessage(e)}_helperTextChanged(e){this._helperController.setHelperText(e)}_ariaTargetChanged(e){e&&this._fieldAriaController.setTarget(e)}_requiredChanged(e){this._fieldAriaController.setRequired(e)}_invalidChanged(e){this._errorController.setInvalid(e),setTimeout((()=>{if(e){const e=this._errorNode;this._fieldAriaController.setErrorId(e&&e.id)}else this._fieldAriaController.setErrorId(null)}))}};var b=r(9091),_=r(1014);const x=new WeakMap,y=(0,_.o)((e=>class extends e{get slotStyles(){return{}}connectedCallback(){super.connectedCallback(),this.__applySlotStyles()}__applySlotStyles(){const e=this.getRootNode(),t=function(e){return x.has(e)||x.set(e,new Set),x.get(e)}(e);this.slotStyles.forEach((r=>{t.has(r)||(function(e,t){const r=document.createElement("style");r.textContent=e,t===document?document.head.appendChild(r):t.insertBefore(r,t.firstChild)}(r,e),t.add(r))}))}})),C=e=>class extends(y((0,a.B)((0,b.t)(g(l((0,s.L)(e))))))){static get properties(){return{allowedCharPattern:{type:String,observer:"_allowedCharPatternChanged"},autoselect:{type:Boolean,value:!1},name:{type:String,reflectToAttribute:!0},placeholder:{type:String,reflectToAttribute:!0},readonly:{type:Boolean,value:!1,reflectToAttribute:!0},title:{type:String,reflectToAttribute:!0}}}static get delegateAttrs(){return[...super.delegateAttrs,"name","type","placeholder","readonly","invalid","title"]}constructor(){super(),this._boundOnPaste=this._onPaste.bind(this),this._boundOnDrop=this._onDrop.bind(this),this._boundOnBeforeInput=this._onBeforeInput.bind(this)}get slotStyles(){return["\n :is(input[slot='input'], textarea[slot='textarea'])::placeholder {\n font: inherit;\n color: inherit;\n }\n "]}_onFocus(e){super._onFocus(e),this.autoselect&&this.inputElement&&this.inputElement.select()}_onChange(e){e.stopPropagation(),this.validate(),this.dispatchEvent(new CustomEvent("change",{detail:{sourceEvent:e},bubbles:e.bubbles,cancelable:e.cancelable}))}_addInputListeners(e){super._addInputListeners(e),e.addEventListener("paste",this._boundOnPaste),e.addEventListener("drop",this._boundOnDrop),e.addEventListener("beforeinput",this._boundOnBeforeInput)}_removeInputListeners(e){super._removeInputListeners(e),e.removeEventListener("paste",this._boundOnPaste),e.removeEventListener("drop",this._boundOnDrop),e.removeEventListener("beforeinput",this._boundOnBeforeInput)}_onKeyDown(e){super._onKeyDown(e),this.allowedCharPattern&&!this.__shouldAcceptKey(e)&&(e.preventDefault(),this._markInputPrevented())}_markInputPrevented(){this.setAttribute("input-prevented",""),this._preventInputDebouncer=i.dx.debounce(this._preventInputDebouncer,o.Wc.after(200),(()=>{this.removeAttribute("input-prevented")}))}__shouldAcceptKey(e){return e.metaKey||e.ctrlKey||!e.key||1!==e.key.length||this.__allowedCharRegExp.test(e.key)}_onPaste(e){if(this.allowedCharPattern){const t=e.clipboardData.getData("text");this.__allowedTextRegExp.test(t)||(e.preventDefault(),this._markInputPrevented())}}_onDrop(e){if(this.allowedCharPattern){const t=e.dataTransfer.getData("text");this.__allowedTextRegExp.test(t)||(e.preventDefault(),this._markInputPrevented())}}_onBeforeInput(e){this.allowedCharPattern&&e.data&&!this.__allowedTextRegExp.test(e.data)&&(e.preventDefault(),this._markInputPrevented())}_allowedCharPatternChanged(e){if(e)try{this.__allowedCharRegExp=new RegExp(`^${e}$`,"u"),this.__allowedTextRegExp=new RegExp(`^${e}*$`,"u")}catch(e){console.error(e)}}}},2743:(e,t,r)=>{r.d(t,{J:()=>a});var o=r(9897);const i=o.iv`
3
- [part='clear-button'] {
4
- display: none;
5
- cursor: default;
6
- }
7
-
8
- [part='clear-button']::before {
9
- content: '\\2715';
10
- }
11
-
12
- :host([clear-button-visible][has-value]:not([disabled]):not([readonly])) [part='clear-button'] {
13
- display: block;
14
- }
15
- `,a=[o.iv`
16
- :host {
17
- display: inline-flex;
18
- outline: none;
19
- }
20
-
21
- :host::before {
22
- content: '\\2003';
23
- width: 0;
24
- display: inline-block;
25
- /* Size and position this element on the same vertical position as the input-field element
26
- to make vertical align for the host element work as expected */
27
- }
28
-
29
- :host([hidden]) {
30
- display: none !important;
31
- }
32
-
33
- :host(:not([has-label])) [part='label'] {
34
- display: none;
35
- }
36
- `,o.iv`
37
- [class$='container'] {
38
- display: flex;
39
- flex-direction: column;
40
- min-width: 100%;
41
- max-width: 100%;
42
- width: var(--vaadin-field-default-width, 12em);
43
- }
44
- `,i]},4524:(e,t,r)=>{r.d(t,{n:()=>o});const o=(0,r(1014).o)((e=>class extends e{static get properties(){return{invalid:{type:Boolean,reflectToAttribute:!0,notify:!0,value:!1},required:{type:Boolean,reflectToAttribute:!0}}}validate(){const e=this.checkValidity();return this._setInvalid(!e),this.dispatchEvent(new CustomEvent("validated",{detail:{valid:e}})),e}checkValidity(){return!this.required||!!this.value}_setInvalid(e){this._shouldSetInvalid(e)&&(this.invalid=e)}_shouldSetInvalid(e){return!0}}))},3130:(e,t,r)=>{var o=r(4241),i=r(1914),a=r(5128);class s extends((0,a.Tb)((0,i.U)(o.H3))){static get is(){return"vaadin-input-container"}static get template(){return o.dy`
45
- <style>
46
- :host {
47
- display: flex;
48
- align-items: center;
49
- flex: 0 1 auto;
50
- border-radius:
51
- /* See https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius */
52
- var(--vaadin-input-field-top-start-radius, var(--__border-radius))
53
- var(--vaadin-input-field-top-end-radius, var(--__border-radius))
54
- var(--vaadin-input-field-bottom-end-radius, var(--__border-radius))
55
- var(--vaadin-input-field-bottom-start-radius, var(--__border-radius));
56
- --_border-radius: var(--vaadin-input-field-border-radius, 0px);
57
- }
58
-
59
- :host([dir='rtl']) {
60
- border-radius:
61
- /* Don't use logical props, see https://github.com/vaadin/vaadin-time-picker/issues/145 */
62
- var(--vaadin-input-field-top-end-radius, var(--_border-radius))
63
- var(--vaadin-input-field-top-start-radius, var(--_border-radius))
64
- var(--vaadin-input-field-bottom-start-radius, var(--_border-radius))
65
- var(--vaadin-input-field-bottom-end-radius, var(--_border-radius));
66
- }
67
-
68
- :host([hidden]) {
69
- display: none !important;
70
- }
71
-
72
- /* Reset the native input styles */
73
- ::slotted(input) {
74
- -webkit-appearance: none;
75
- -moz-appearance: none;
76
- flex: auto;
77
- white-space: nowrap;
78
- overflow: hidden;
79
- width: 100%;
80
- height: 100%;
81
- outline: none;
82
- margin: 0;
83
- padding: 0;
84
- border: 0;
85
- border-radius: 0;
86
- min-width: 0;
87
- font: inherit;
88
- line-height: normal;
89
- color: inherit;
90
- background-color: transparent;
91
- /* Disable default invalid style in Firefox */
92
- box-shadow: none;
93
- }
94
-
95
- ::slotted(*) {
96
- flex: none;
97
- }
98
-
99
- ::slotted(:is(input, textarea))::placeholder {
100
- /* Use ::slotted(input:placeholder-shown) in themes to style the placeholder. */
101
- /* because ::slotted(...)::placeholder does not work in Safari. */
102
- font: inherit;
103
- color: inherit;
104
- /* Override default opacity in Firefox */
105
- opacity: 1;
106
- }
107
- </style>
108
- <slot name="prefix"></slot>
109
- <slot></slot>
110
- <slot name="suffix"></slot>
111
- `}static get properties(){return{disabled:{type:Boolean,reflectToAttribute:!0},readonly:{type:Boolean,reflectToAttribute:!0},invalid:{type:Boolean,reflectToAttribute:!0}}}ready(){super.ready(),this.addEventListener("pointerdown",(e=>{e.target===this&&e.preventDefault()})),this.addEventListener("click",(e=>{e.target===this&&this.shadowRoot.querySelector("slot:not([name])").assignedNodes({flatten:!0}).forEach((e=>e.focus&&e.focus()))}))}}customElements.define(s.is,s)},3787:(e,t,r)=>{r(1195),r(9098),r(9849),r(4173);var o=r(5128);(0,o.hC)("vaadin-input-container",o.iv`
112
- :host {
113
- background-color: var(--lumo-contrast-10pct);
114
- padding: 0 calc(0.375em + var(--_input-container-radius) / 4 - 1px);
115
- font-weight: 500;
116
- line-height: 1;
117
- position: relative;
118
- cursor: text;
119
- box-sizing: border-box;
120
- border-radius:
121
- /* See https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius#syntax */
122
- var(--vaadin-input-field-top-start-radius, var(--_input-container-radius))
123
- var(--vaadin-input-field-top-end-radius, var(--_input-container-radius))
124
- var(--vaadin-input-field-bottom-end-radius, var(--_input-container-radius))
125
- var(--vaadin-input-field-bottom-start-radius, var(--_input-container-radius));
126
- /* Fallback */
127
- --_input-container-radius: var(--vaadin-input-field-border-radius, var(--lumo-border-radius-m));
128
- }
129
-
130
- :host([dir='rtl']) {
131
- border-radius:
132
- /* Don't use logical props, see https://github.com/vaadin/vaadin-time-picker/issues/145 */
133
- var(--vaadin-input-field-top-end-radius, var(--_input-container-radius))
134
- var(--vaadin-input-field-top-start-radius, var(--_input-container-radius))
135
- var(--vaadin-input-field-bottom-start-radius, var(--_input-container-radius))
136
- var(--vaadin-input-field-bottom-end-radius, var(--_input-container-radius));
137
- }
138
-
139
- /* Used for hover and activation effects */
140
- :host::after {
141
- content: '';
142
- position: absolute;
143
- top: 0;
144
- right: 0;
145
- bottom: 0;
146
- left: 0;
147
- border-radius: inherit;
148
- pointer-events: none;
149
- background-color: var(--lumo-contrast-50pct);
150
- opacity: 0;
151
- transition: transform 0.15s, opacity 0.2s;
152
- transform-origin: 100% 0;
153
- }
154
-
155
- ::slotted(:not([slot$='fix'])) {
156
- cursor: inherit;
157
- min-height: var(--lumo-text-field-size, var(--lumo-size-m));
158
- padding: 0 0.25em;
159
- --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent, #000 1.25em);
160
- -webkit-mask-image: var(--_lumo-text-field-overflow-mask-image);
161
- mask-image: var(--_lumo-text-field-overflow-mask-image);
162
- }
163
-
164
- /* Read-only */
165
- :host([readonly]) {
166
- color: var(--lumo-secondary-text-color);
167
- background-color: transparent;
168
- cursor: default;
169
- }
170
-
171
- :host([readonly])::after {
172
- background-color: transparent;
173
- opacity: 1;
174
- border: 1px dashed var(--lumo-contrast-30pct);
175
- }
176
-
177
- /* Disabled */
178
- :host([disabled]) {
179
- background-color: var(--lumo-contrast-5pct);
180
- }
181
-
182
- :host([disabled]) ::slotted(*) {
183
- color: var(--lumo-disabled-text-color);
184
- -webkit-text-fill-color: var(--lumo-disabled-text-color);
185
- }
186
-
187
- /* Invalid */
188
- :host([invalid]) {
189
- background-color: var(--lumo-error-color-10pct);
190
- }
191
-
192
- :host([invalid])::after {
193
- background-color: var(--lumo-error-color-50pct);
194
- }
195
-
196
- /* Slotted icons */
197
- ::slotted(vaadin-icon) {
198
- color: var(--lumo-contrast-60pct);
199
- width: var(--lumo-icon-size-m);
200
- height: var(--lumo-icon-size-m);
201
- }
202
-
203
- /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */
204
- ::slotted(vaadin-icon[icon^='vaadin:']) {
205
- padding: 0.25em;
206
- box-sizing: border-box !important;
207
- }
208
-
209
- /* Text align */
210
- :host([dir='rtl']) ::slotted(:not([slot$='fix'])) {
211
- --_lumo-text-field-overflow-mask-image: linear-gradient(to right, transparent, #000 1.25em);
212
- }
213
-
214
- @-moz-document url-prefix() {
215
- :host([dir='rtl']) ::slotted(:not([slot$='fix'])) {
216
- mask-image: var(--_lumo-text-field-overflow-mask-image);
217
- }
218
- }
219
-
220
- :host([theme~='align-left']) ::slotted(:not([slot$='fix'])) {
221
- text-align: start;
222
- --_lumo-text-field-overflow-mask-image: none;
223
- }
224
-
225
- :host([theme~='align-center']) ::slotted(:not([slot$='fix'])) {
226
- text-align: center;
227
- --_lumo-text-field-overflow-mask-image: none;
228
- }
229
-
230
- :host([theme~='align-right']) ::slotted(:not([slot$='fix'])) {
231
- text-align: end;
232
- --_lumo-text-field-overflow-mask-image: none;
233
- }
234
-
235
- @-moz-document url-prefix() {
236
- /* Firefox is smart enough to align overflowing text to right */
237
- :host([theme~='align-right']) ::slotted(:not([slot$='fix'])) {
238
- --_lumo-text-field-overflow-mask-image: linear-gradient(to right, transparent 0.25em, #000 1.5em);
239
- }
240
- }
241
-
242
- @-moz-document url-prefix() {
243
- /* Firefox is smart enough to align overflowing text to right */
244
- :host([theme~='align-left']) ::slotted(:not([slot$='fix'])) {
245
- --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent 0.25em, #000 1.5em);
246
- }
247
- }
248
-
249
- /* RTL specific styles */
250
- :host([dir='rtl'])::after {
251
- transform-origin: 0% 0;
252
- }
253
-
254
- :host([theme~='align-left'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
255
- --_lumo-text-field-overflow-mask-image: none;
256
- }
257
-
258
- :host([theme~='align-center'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
259
- --_lumo-text-field-overflow-mask-image: none;
260
- }
261
-
262
- :host([theme~='align-right'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
263
- --_lumo-text-field-overflow-mask-image: none;
264
- }
265
-
266
- @-moz-document url-prefix() {
267
- /* Firefox is smart enough to align overflowing text to right */
268
- :host([theme~='align-right'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
269
- --_lumo-text-field-overflow-mask-image: linear-gradient(to right, transparent 0.25em, #000 1.5em);
270
- }
271
- }
272
-
273
- @-moz-document url-prefix() {
274
- /* Firefox is smart enough to align overflowing text to right */
275
- :host([theme~='align-left'][dir='rtl']) ::slotted(:not([slot$='fix'])) {
276
- --_lumo-text-field-overflow-mask-image: linear-gradient(to left, transparent 0.25em, #000 1.5em);
277
- }
278
- }
279
- `,{moduleId:"lumo-input-container"}),r(3130)},4398:(e,t,r)=>{r.d(t,{q:()=>i}),r(1195),r(1735),r(9098),r(9849);var o=r(5128);const i=o.iv`
280
- [part$='button'] {
281
- flex: none;
282
- width: 1em;
283
- height: 1em;
284
- line-height: 1;
285
- font-size: var(--lumo-icon-size-m);
286
- text-align: center;
287
- color: var(--lumo-contrast-60pct);
288
- transition: 0.2s color;
289
- cursor: var(--lumo-clickable-cursor);
290
- }
291
-
292
- [part$='button']:hover {
293
- color: var(--lumo-contrast-90pct);
294
- }
295
-
296
- :host([disabled]) [part$='button'],
297
- :host([readonly]) [part$='button'] {
298
- color: var(--lumo-contrast-20pct);
299
- cursor: default;
300
- }
301
-
302
- [part$='button']::before {
303
- font-family: 'lumo-icons';
304
- display: block;
305
- }
306
- `;(0,o.hC)("",i,{moduleId:"lumo-field-button"})},2279:(e,t,r)=>{r.d(t,{J:()=>l}),r(1195),r(1735),r(9098),r(9416),r(9849),r(4173);var o=r(5128),i=r(4398);const a=o.iv`
307
- :host([has-helper]) [part='helper-text']::before {
308
- content: '';
309
- display: block;
310
- height: 0.4em;
311
- }
312
-
313
- [part='helper-text'] {
314
- display: block;
315
- color: var(--lumo-secondary-text-color);
316
- font-size: var(--lumo-font-size-xs);
317
- line-height: var(--lumo-line-height-xs);
318
- margin-left: calc(var(--lumo-border-radius-m) / 4);
319
- transition: color 0.2s;
320
- }
321
-
322
- :host(:hover:not([readonly])) [part='helper-text'] {
323
- color: var(--lumo-body-text-color);
324
- }
325
-
326
- :host([disabled]) [part='helper-text'] {
327
- color: var(--lumo-disabled-text-color);
328
- -webkit-text-fill-color: var(--lumo-disabled-text-color);
329
- }
330
-
331
- :host([has-helper][theme~='helper-above-field']) [part='helper-text']::before {
332
- display: none;
333
- }
334
-
335
- :host([has-helper][theme~='helper-above-field']) [part='helper-text']::after {
336
- content: '';
337
- display: block;
338
- height: 0.4em;
339
- }
340
-
341
- :host([has-helper][theme~='helper-above-field']) [part='label'] {
342
- order: 0;
343
- padding-bottom: 0.4em;
344
- }
345
-
346
- :host([has-helper][theme~='helper-above-field']) [part='helper-text'] {
347
- order: 1;
348
- }
349
-
350
- :host([has-helper][theme~='helper-above-field']) [part='label'] + * {
351
- order: 2;
352
- }
353
-
354
- :host([has-helper][theme~='helper-above-field']) [part='error-message'] {
355
- order: 3;
356
- }
357
- `,s=o.iv`
358
- [part='label'] {
359
- align-self: flex-start;
360
- color: var(--lumo-secondary-text-color);
361
- font-weight: 500;
362
- font-size: var(--lumo-font-size-s);
363
- margin-left: calc(var(--lumo-border-radius-m) / 4);
364
- transition: color 0.2s;
365
- line-height: 1;
366
- padding-right: 1em;
367
- padding-bottom: 0.5em;
368
- /* As a workaround for diacritics being cut off, add a top padding and a
369
- negative margin to compensate */
370
- padding-top: 0.25em;
371
- margin-top: -0.25em;
372
- overflow: hidden;
373
- white-space: nowrap;
374
- text-overflow: ellipsis;
375
- position: relative;
376
- max-width: 100%;
377
- box-sizing: border-box;
378
- }
379
-
380
- :host([has-label])::before {
381
- margin-top: calc(var(--lumo-font-size-s) * 1.5);
382
- }
383
-
384
- :host([has-label][theme~='small'])::before {
385
- margin-top: calc(var(--lumo-font-size-xs) * 1.5);
386
- }
387
-
388
- :host([has-label]) {
389
- padding-top: var(--lumo-space-m);
390
- }
391
-
392
- :host([has-label]) ::slotted([slot='tooltip']) {
393
- --vaadin-tooltip-offset-bottom: calc((var(--lumo-space-m) - var(--lumo-space-xs)) * -1);
394
- }
395
-
396
- :host([required]) [part='required-indicator']::after {
397
- content: var(--lumo-required-field-indicator, '\\2022');
398
- transition: opacity 0.2s;
399
- color: var(--lumo-required-field-indicator-color, var(--lumo-primary-text-color));
400
- position: absolute;
401
- right: 0;
402
- width: 1em;
403
- text-align: center;
404
- }
405
-
406
- :host([invalid]) [part='required-indicator']::after {
407
- color: var(--lumo-required-field-indicator-color, var(--lumo-error-text-color));
408
- }
409
-
410
- [part='error-message'] {
411
- margin-left: calc(var(--lumo-border-radius-m) / 4);
412
- font-size: var(--lumo-font-size-xs);
413
- line-height: var(--lumo-line-height-xs);
414
- color: var(--lumo-error-text-color);
415
- will-change: max-height;
416
- transition: 0.4s max-height;
417
- max-height: 5em;
418
- }
419
-
420
- :host([has-error-message]) [part='error-message']::before,
421
- :host([has-error-message]) [part='error-message']::after {
422
- content: '';
423
- display: block;
424
- height: 0.4em;
425
- }
426
-
427
- :host(:not([invalid])) [part='error-message'] {
428
- max-height: 0;
429
- overflow: hidden;
430
- }
431
-
432
- /* RTL specific styles */
433
-
434
- :host([dir='rtl']) [part='label'] {
435
- margin-left: 0;
436
- margin-right: calc(var(--lumo-border-radius-m) / 4);
437
- }
438
-
439
- :host([dir='rtl']) [part='label'] {
440
- padding-left: 1em;
441
- padding-right: 0;
442
- }
443
-
444
- :host([dir='rtl']) [part='required-indicator']::after {
445
- right: auto;
446
- left: 0;
447
- }
448
-
449
- :host([dir='rtl']) [part='error-message'] {
450
- margin-left: 0;
451
- margin-right: calc(var(--lumo-border-radius-m) / 4);
452
- }
453
- `;(0,o.hC)("",s,{moduleId:"lumo-required-field"});const n=o.iv`
454
- :host {
455
- --lumo-text-field-size: var(--lumo-size-m);
456
- color: var(--lumo-body-text-color);
457
- font-size: var(--lumo-font-size-m);
458
- font-family: var(--lumo-font-family);
459
- -webkit-font-smoothing: antialiased;
460
- -moz-osx-font-smoothing: grayscale;
461
- -webkit-tap-highlight-color: transparent;
462
- padding: var(--lumo-space-xs) 0;
463
- }
464
-
465
- :host::before {
466
- height: var(--lumo-text-field-size);
467
- box-sizing: border-box;
468
- display: inline-flex;
469
- align-items: center;
470
- }
471
-
472
- :host([focused]:not([readonly])) [part='label'] {
473
- color: var(--lumo-primary-text-color);
474
- }
475
-
476
- :host([focused]) [part='input-field'] ::slotted(:is(input, textarea)) {
477
- -webkit-mask-image: none;
478
- mask-image: none;
479
- }
480
-
481
- ::slotted(:is(input, textarea):placeholder-shown) {
482
- color: var(--lumo-secondary-text-color);
483
- }
484
-
485
- /* Hover */
486
- :host(:hover:not([readonly]):not([focused])) [part='label'] {
487
- color: var(--lumo-body-text-color);
488
- }
489
-
490
- :host(:hover:not([readonly]):not([focused])) [part='input-field']::after {
491
- opacity: 0.1;
492
- }
493
-
494
- /* Touch device adjustment */
495
- @media (pointer: coarse) {
496
- :host(:hover:not([readonly]):not([focused])) [part='label'] {
497
- color: var(--lumo-secondary-text-color);
498
- }
499
-
500
- :host(:hover:not([readonly]):not([focused])) [part='input-field']::after {
501
- opacity: 0;
502
- }
503
-
504
- :host(:active:not([readonly]):not([focused])) [part='input-field']::after {
505
- opacity: 0.2;
506
- }
507
- }
508
-
509
- /* Trigger when not focusing using the keyboard */
510
- :host([focused]:not([focus-ring]):not([readonly])) [part='input-field']::after {
511
- transform: scaleX(0);
512
- transition-duration: 0.15s, 1s;
513
- }
514
-
515
- /* Focus-ring */
516
- :host([focus-ring]) [part='input-field'] {
517
- box-shadow: 0 0 0 2px var(--lumo-primary-color-50pct);
518
- }
519
-
520
- /* Read-only and disabled */
521
- :host(:is([readonly], [disabled])) ::slotted(:is(input, textarea):placeholder-shown) {
522
- opacity: 0;
523
- }
524
-
525
- /* Disabled style */
526
- :host([disabled]) {
527
- pointer-events: none;
528
- }
529
-
530
- :host([disabled]) [part='label'],
531
- :host([disabled]) [part='input-field'] ::slotted(*) {
532
- color: var(--lumo-disabled-text-color);
533
- -webkit-text-fill-color: var(--lumo-disabled-text-color);
534
- }
535
-
536
- /* Invalid style */
537
- :host([invalid][focus-ring]) [part='input-field'] {
538
- box-shadow: 0 0 0 2px var(--lumo-error-color-50pct);
539
- }
540
-
541
- :host([input-prevented]) [part='input-field'] {
542
- animation: shake 0.15s infinite;
543
- }
544
-
545
- @keyframes shake {
546
- 25% {
547
- transform: translateX(4px);
548
- }
549
- 75% {
550
- transform: translateX(-4px);
551
- }
552
- }
553
-
554
- /* Small theme */
555
- :host([theme~='small']) {
556
- font-size: var(--lumo-font-size-s);
557
- --lumo-text-field-size: var(--lumo-size-s);
558
- }
559
-
560
- :host([theme~='small']) [part='label'] {
561
- font-size: var(--lumo-font-size-xs);
562
- }
563
-
564
- :host([theme~='small']) [part='error-message'] {
565
- font-size: var(--lumo-font-size-xxs);
566
- }
567
-
568
- /* Slotted content */
569
- [part='input-field'] ::slotted(:not(vaadin-icon):not(input):not(textarea)) {
570
- color: var(--lumo-secondary-text-color);
571
- font-weight: 400;
572
- }
573
-
574
- [part='clear-button']::before {
575
- content: var(--lumo-icons-cross);
576
- }
577
- `,l=[s,i.q,a,n];(0,o.hC)("",l,{moduleId:"lumo-input-field-shared-styles"})}}]);