@spectrum-web-components/number-field 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +24 -4
- package/package.json +8 -8
- package/src/NumberField.d.ts +4 -2
- package/src/NumberField.js +6 -4
- package/src/NumberField.js.map +1 -1
- package/src/number-field.css.js +30 -30
- package/src/number-field.css.js.map +1 -1
- package/src/spectrum-config.js +1 -0
- package/src/spectrum-number-field.css.js +29 -29
- package/src/spectrum-number-field.css.js.map +1 -1
- package/test/helpers.js +0 -66
- package/test/helpers.js.map +0 -1
- package/test/inputs.test.js +0 -253
- package/test/inputs.test.js.map +0 -1
- package/test/number-field.test-vrt.js +0 -15
- package/test/number-field.test-vrt.js.map +0 -1
- package/test/number-field.test.js +0 -1051
- package/test/number-field.test.js.map +0 -1
package/custom-elements.json
CHANGED
|
@@ -41,6 +41,16 @@
|
|
|
41
41
|
"kind": "class",
|
|
42
42
|
"description": "",
|
|
43
43
|
"name": "NumberField",
|
|
44
|
+
"slots": [
|
|
45
|
+
{
|
|
46
|
+
"description": "default or non-negative help text to associate to your form element",
|
|
47
|
+
"name": "help-text"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"description": "negative help text to associate to your form element when `invalid`",
|
|
51
|
+
"name": "negative-help-text"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
44
54
|
"members": [
|
|
45
55
|
{
|
|
46
56
|
"kind": "field",
|
|
@@ -77,7 +87,7 @@
|
|
|
77
87
|
},
|
|
78
88
|
"privacy": "public",
|
|
79
89
|
"default": "{}",
|
|
80
|
-
"description": "An
|
|
90
|
+
"description": "An `<sp-number-field>` element will process its numeric value with\n`new Intl.NumberFormat(this.resolvedLanguage, this.formatOptions).format(this.valueAsNumber)`\nin order to prepare it for visual delivery in the input. In order to customize this\nprocessing supply your own `Intl.NumberFormatOptions` object here.\n\nSee: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat",
|
|
81
91
|
"attribute": "format-options"
|
|
82
92
|
},
|
|
83
93
|
{
|
|
@@ -638,6 +648,16 @@
|
|
|
638
648
|
},
|
|
639
649
|
"privacy": "private"
|
|
640
650
|
},
|
|
651
|
+
{
|
|
652
|
+
"kind": "method",
|
|
653
|
+
"name": "renderField",
|
|
654
|
+
"privacy": "protected",
|
|
655
|
+
"return": {
|
|
656
|
+
"type": {
|
|
657
|
+
"text": "TemplateResult"
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
},
|
|
641
661
|
{
|
|
642
662
|
"kind": "method",
|
|
643
663
|
"name": "resolveLanguage",
|
|
@@ -678,7 +698,7 @@
|
|
|
678
698
|
"text": "Intl.NumberFormatOptions"
|
|
679
699
|
},
|
|
680
700
|
"default": "{}",
|
|
681
|
-
"description": "An
|
|
701
|
+
"description": "An `<sp-number-field>` element will process its numeric value with\n`new Intl.NumberFormat(this.resolvedLanguage, this.formatOptions).format(this.valueAsNumber)`\nin order to prepare it for visual delivery in the input. In order to customize this\nprocessing supply your own `Intl.NumberFormatOptions` object here.\n\nSee: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat",
|
|
682
702
|
"fieldName": "formatOptions"
|
|
683
703
|
},
|
|
684
704
|
{
|
|
@@ -801,7 +821,7 @@
|
|
|
801
821
|
{
|
|
802
822
|
"kind": "variable",
|
|
803
823
|
"name": "styles",
|
|
804
|
-
"default": "css`\n:host{--spectrum-stepper-width:var(\n--spectrum-global-dimension-size-900\n);--spectrum-stepper-border-size:var(\n--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)\n);--spectrum-stepper-button-height:calc(var(\n--spectrum-alias-single-line-height,\nvar(--spectrum-global-dimension-size-400)\n)/2);--spectrum-stepper-button-width:calc(var(--spectrum-global-dimension-size-300) - var(--spectrum-stepper-border-size));--spectrum-stepper-button-padding:calc(var(--spectrum-global-dimension-size-150)/2);--spectrum-stepper-border-radius-reset:0;--spectrum-stepper-border-size-reset:0;--spectrum-stepper-icon-nudge-top:var(--spectrum-global-dimension-size-10);--spectrum-stepper-icon-nudge:var(--spectrum-global-dimension-size-25);--spectrum-stepper-quiet-width:var(--spectrum-global-dimension-size-600);--spectrum-stepper-button-offset:calc(var(--spectrum-stepper-button-width)/2 - var(--spectrum-alias-ui-icon-chevron-size-75)/2);--spectrum-stepper-quiet-button-width:calc(var(--spectrum-stepper-button-width) - var(--spectrum-stepper-button-offset))}:host{border-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n);display:inline-flex;flex-direction:row;flex-wrap:nowrap;line-height:0;transition:border-color var(--spectrum-global-animation-duration-100,.13s) ease-in-out,box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out;width:var(--spectrum-stepper-width)}:host:before{content:\"\"}:host([dir=ltr]) .buttons{border-top-left-radius:0}:host([dir=rtl]) .buttons{border-top-right-radius:0}:host([dir=ltr]) .buttons{border-top-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-top-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-bottom-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-left-radius:0}:host([dir=rtl]) .buttons{border-bottom-right-radius:0}.buttons{display:block;transition:box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown,.stepUp{border-width:var(--spectrum-stepper-border-size);box-sizing:border-box;display:flex;height:var(--spectrum-stepper-button-height);margin:0!important;min-width:0;position:relative;width:var(--spectrum-stepper-button-width)}.stepDown .icon,.stepUp .icon{margin:0!important;opacity:1}:host([dir=ltr]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepUp{border-bottom:none;padding-top:var(--spectrum-stepper-icon-nudge-top)}:host([dir=ltr]) .stepDown{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown{padding-bottom:var(\n--spectrum-stepper-icon-nudge\n)}.textfield{flex:1;width:auto}:host([dir=ltr]) .input{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .input{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.input,.textfield{min-width:0}:host([quiet]){border-radius:var(\n--spectrum-stepper-border-radius-reset\n);width:var(--spectrum-stepper-quiet-width)}:host([quiet]) .buttons{border-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-left:none}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-right:none}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{padding-right:0}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{padding-left:0}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-radius:var(--spectrum-stepper-border-radius-reset);border-top:none;justify-content:flex-end;min-width:0;width:var(\n--spectrum-stepper-quiet-button-width\n)}:host([dir=ltr][quiet]) .stepDown:after,:host([dir=ltr][quiet]) .stepUp:after{right:calc(var(--spectrum-stepper-button-offset)*-1)}:host([dir=rtl][quiet]) .stepDown:after,:host([dir=rtl][quiet]) .stepUp:after{left:calc(var(--spectrum-stepper-button-offset)*-1)}:host([quiet]) .stepDown:after,:host([quiet]) .stepUp:after{content:\"\";height:100%;position:absolute;width:var(--spectrum-stepper-button-offset)}:host(:hover:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) .input,:host(:hover:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) .stepDown,:host(:hover:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-hover,var(--spectrum-alias-input-border-color-hover)\n)}:host([focused]){border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) .stepDown,:host([focused]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n);box-shadow:none}:host([focused][invalid]){border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) .stepDown,:host([focused][invalid]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([keyboard-focused]){box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) .buttons,:host([keyboard-focused]) .input{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) .input,:host([keyboard-focused]) .stepDown,:host([keyboard-focused]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused][invalid]){box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) .stepDown,:host([keyboard-focused][invalid]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid]) .stepDown,:host([invalid]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid][keyboard-focused]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n);box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid][keyboard-focused]) .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([disabled]) .stepDown,:host([disabled]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}.stepDown,.stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}.stepDown:disabled,.stepUp:disabled{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}:host([quiet][disabled]) .stepDown,:host([quiet][disabled]) .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}:host([quiet]) .stepDown:disabled,:host([quiet]) .stepUp:disabled{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .input{box-shadow:none}:host([quiet][invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][invalid]) .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused]),:host([quiet][keyboard-focused]){box-shadow:none}:host([quiet][focused]) .buttons,:host([quiet][focused]) .input,:host([quiet][keyboard-focused]) .buttons,:host([quiet][keyboard-focused]) .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused]) .stepDown,:host([quiet][keyboard-focused]) .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused][invalid]),:host([quiet][keyboard-focused][invalid]){box-shadow:none}:host([quiet][focused][invalid]) .buttons,:host([quiet][focused][invalid]) .input,:host([quiet][keyboard-focused][invalid]) .buttons,:host([quiet][keyboard-focused][invalid]) .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) .input,:host([quiet][keyboard-focused][invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) .stepDown,:host([quiet][keyboard-focused][invalid]) .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}sp-field-button{--spectrum-dropdown-height:100%;--spectrum-dropdown-padding-x:0}.input{font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums}:host([readonly]) .buttons{pointer-events:none}:host([hide-stepper]) .input{border-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr][invalid]:not([hide-stepper])) .icon{right:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=rtl][invalid]:not([hide-stepper])) .icon{left:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=ltr][valid]:not([hide-stepper])) .icon{right:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=rtl][valid]:not([hide-stepper])) .icon{left:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=ltr][quiet][invalid]:not([hide-stepper])) .icon{right:var(--spectrum-stepper-button-width)}:host([dir=rtl][quiet][invalid]:not([hide-stepper])) .icon{left:var(--spectrum-stepper-button-width)}:host([dir=ltr][quiet][valid]:not([hide-stepper])) .icon{right:var(--spectrum-stepper-button-width)}:host([dir=rtl][quiet][valid]:not([hide-stepper])) .icon{left:var(--spectrum-stepper-button-width)}:host([dir=ltr]:not([hide-stepper])) .icon-workflow{left:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=rtl]:not([hide-stepper])) .icon-workflow{right:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=ltr][quiet]:not([hide-stepper])) .icon-workflow{left:var(--spectrum-stepper-button-width)}:host([dir=rtl][quiet]:not([hide-stepper])) .icon-workflow{right:var(--spectrum-stepper-button-width)}\n`"
|
|
824
|
+
"default": "css`\n:host{--spectrum-stepper-width:var(\n--spectrum-global-dimension-size-900\n);--spectrum-stepper-border-size:var(\n--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)\n);--spectrum-stepper-button-height:calc(var(\n--spectrum-alias-single-line-height,\nvar(--spectrum-global-dimension-size-400)\n)/2);--spectrum-stepper-button-width:calc(var(--spectrum-global-dimension-size-300) - var(--spectrum-stepper-border-size));--spectrum-stepper-button-padding:calc(var(--spectrum-global-dimension-size-150)/2);--spectrum-stepper-border-radius-reset:0;--spectrum-stepper-border-size-reset:0;--spectrum-stepper-icon-nudge-top:var(--spectrum-global-dimension-size-10);--spectrum-stepper-icon-nudge:var(--spectrum-global-dimension-size-25);--spectrum-stepper-quiet-width:var(--spectrum-global-dimension-size-600);--spectrum-stepper-button-offset:calc(var(--spectrum-stepper-button-width)/2 - var(--spectrum-alias-ui-icon-chevron-size-75)/2);--spectrum-stepper-quiet-button-width:calc(var(--spectrum-stepper-button-width) - var(--spectrum-stepper-button-offset))}#textfield{border-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n);display:inline-flex;flex-direction:row;flex-wrap:nowrap;line-height:0;transition:border-color var(--spectrum-global-animation-duration-100,.13s) ease-in-out,box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out;width:var(--spectrum-stepper-width)}#textfield:before{content:\"\"}:host([dir=ltr]) .buttons{border-top-left-radius:0}:host([dir=rtl]) .buttons{border-top-right-radius:0}:host([dir=ltr]) .buttons{border-top-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-top-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-bottom-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-left-radius:0}:host([dir=rtl]) .buttons{border-bottom-right-radius:0}.buttons{display:block;transition:box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown,.stepUp{border-width:var(--spectrum-stepper-border-size);box-sizing:border-box;display:flex;height:var(--spectrum-stepper-button-height);margin:0!important;min-width:0;position:relative;width:var(--spectrum-stepper-button-width)}.stepDown .icon,.stepUp .icon{margin:0!important;opacity:1}:host([dir=ltr]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepUp{border-bottom:none;padding-top:var(--spectrum-stepper-icon-nudge-top)}:host([dir=ltr]) .stepDown{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown{padding-bottom:var(\n--spectrum-stepper-icon-nudge\n)}.textfield{flex:1;width:auto}:host([dir=ltr]) .input{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .input{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.input,.textfield{min-width:0}:host([quiet]) #textfield{border-radius:var(\n--spectrum-stepper-border-radius-reset\n);width:var(--spectrum-stepper-quiet-width)}:host([quiet]) .buttons{border-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-left:none}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-right:none}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{padding-right:0}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{padding-left:0}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-radius:var(--spectrum-stepper-border-radius-reset);border-top:none;justify-content:flex-end;min-width:0;width:var(\n--spectrum-stepper-quiet-button-width\n)}:host([dir=ltr][quiet]) .stepDown:after,:host([dir=ltr][quiet]) .stepUp:after{right:calc(var(--spectrum-stepper-button-offset)*-1)}:host([dir=rtl][quiet]) .stepDown:after,:host([dir=rtl][quiet]) .stepUp:after{left:calc(var(--spectrum-stepper-button-offset)*-1)}:host([quiet]) .stepDown:after,:host([quiet]) .stepUp:after{content:\"\";height:100%;position:absolute;width:var(--spectrum-stepper-button-offset)}:host(:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) #textfield:hover .input,:host(:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) #textfield:hover .stepDown,:host(:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) #textfield:hover .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-hover,var(--spectrum-alias-input-border-color-hover)\n)}:host([focused]) #textfield{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) #textfield .stepDown,:host([focused]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n);box-shadow:none}:host([focused][invalid]) #textfield{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) #textfield .stepDown,:host([focused][invalid]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([keyboard-focused]) #textfield{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) #textfield .buttons,:host([keyboard-focused]) #textfield .input{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) #textfield .input,:host([keyboard-focused]) #textfield .stepDown,:host([keyboard-focused]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused][invalid]) #textfield{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) #textfield .stepDown,:host([keyboard-focused][invalid]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) #textfield .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid]) #textfield .stepDown,:host([invalid]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid][keyboard-focused]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n);box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid][keyboard-focused]) #textfield .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([disabled]) #textfield .stepDown,:host([disabled]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}.stepDown,.stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}.stepDown:disabled,.stepUp:disabled{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}:host([quiet][disabled]) #textfield .stepDown,:host([quiet][disabled]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}:host([quiet]) .stepDown:disabled,:host([quiet]) .stepUp:disabled{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .input{box-shadow:none}:host([quiet][invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][invalid]) #textfield .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused]) #textfield,:host([quiet][keyboard-focused]) #textfield{box-shadow:none}:host([quiet][focused]) #textfield .buttons,:host([quiet][focused]) #textfield .input,:host([quiet][keyboard-focused]) #textfield .buttons,:host([quiet][keyboard-focused]) #textfield .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused]) #textfield .stepDown,:host([quiet][keyboard-focused]) #textfield .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused][invalid]) #textfield,:host([quiet][keyboard-focused][invalid]) #textfield{box-shadow:none}:host([quiet][focused][invalid]) #textfield .buttons,:host([quiet][focused][invalid]) #textfield .input,:host([quiet][keyboard-focused][invalid]) #textfield .buttons,:host([quiet][keyboard-focused][invalid]) #textfield .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) #textfield .input,:host([quiet][keyboard-focused][invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) #textfield .stepDown,:host([quiet][keyboard-focused][invalid]) #textfield .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host{width:var(--spectrum-stepper-width)}#textfield{width:100%}sp-field-button{--spectrum-dropdown-height:100%;--spectrum-dropdown-padding-x:0}.input{font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums}:host([readonly]) .buttons{pointer-events:none}:host([hide-stepper]) .input{border-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr][invalid]:not([hide-stepper])) .icon{right:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=rtl][invalid]:not([hide-stepper])) .icon{left:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=ltr][valid]:not([hide-stepper])) .icon{right:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=rtl][valid]:not([hide-stepper])) .icon{left:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=ltr][quiet][invalid]:not([hide-stepper])) .icon{right:var(--spectrum-stepper-button-width)}:host([dir=rtl][quiet][invalid]:not([hide-stepper])) .icon{left:var(--spectrum-stepper-button-width)}:host([dir=ltr][quiet][valid]:not([hide-stepper])) .icon{right:var(--spectrum-stepper-button-width)}:host([dir=rtl][quiet][valid]:not([hide-stepper])) .icon{left:var(--spectrum-stepper-button-width)}:host([dir=ltr]:not([hide-stepper])) .icon-workflow{left:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=rtl]:not([hide-stepper])) .icon-workflow{right:calc(var(--spectrum-stepper-button-width) + var(--spectrum-textfield-error-icon-margin-left))}:host([dir=ltr][quiet]:not([hide-stepper])) .icon-workflow{left:var(--spectrum-stepper-button-width)}:host([dir=rtl][quiet]:not([hide-stepper])) .icon-workflow{right:var(--spectrum-stepper-button-width)}\n`"
|
|
805
825
|
}
|
|
806
826
|
],
|
|
807
827
|
"exports": [
|
|
@@ -822,7 +842,7 @@
|
|
|
822
842
|
{
|
|
823
843
|
"kind": "variable",
|
|
824
844
|
"name": "styles",
|
|
825
|
-
"default": "css`\n:host{--spectrum-stepper-width:var(\n--spectrum-global-dimension-size-900\n);--spectrum-stepper-border-size:var(\n--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)\n);--spectrum-stepper-button-height:calc(var(\n--spectrum-alias-single-line-height,\nvar(--spectrum-global-dimension-size-400)\n)/2);--spectrum-stepper-button-width:calc(var(--spectrum-global-dimension-size-300) - var(--spectrum-stepper-border-size));--spectrum-stepper-button-padding:calc(var(--spectrum-global-dimension-size-150)/2);--spectrum-stepper-border-radius-reset:0;--spectrum-stepper-border-size-reset:0;--spectrum-stepper-icon-nudge-top:var(--spectrum-global-dimension-size-10);--spectrum-stepper-icon-nudge:var(--spectrum-global-dimension-size-25);--spectrum-stepper-quiet-width:var(--spectrum-global-dimension-size-600);--spectrum-stepper-button-offset:calc(var(--spectrum-stepper-button-width)/2 - var(--spectrum-alias-ui-icon-chevron-size-75)/2);--spectrum-stepper-quiet-button-width:calc(var(--spectrum-stepper-button-width) - var(--spectrum-stepper-button-offset))}:host{border-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n);display:inline-flex;flex-direction:row;flex-wrap:nowrap;line-height:0;transition:border-color var(--spectrum-global-animation-duration-100,.13s) ease-in-out,box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out;width:var(--spectrum-stepper-width)}:host:before{content:\"\"}:host([dir=ltr]) .buttons{border-top-left-radius:0}:host([dir=rtl]) .buttons{border-top-right-radius:0}:host([dir=ltr]) .buttons{border-top-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-top-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-bottom-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-left-radius:0}:host([dir=rtl]) .buttons{border-bottom-right-radius:0}.buttons{display:block;transition:box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown,.stepUp{border-width:var(--spectrum-stepper-border-size);box-sizing:border-box;display:flex;height:var(--spectrum-stepper-button-height);margin:0!important;min-width:0;position:relative;width:var(--spectrum-stepper-button-width)}.stepDown .icon,.stepUp .icon{margin:0!important;opacity:1}:host([dir=ltr]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepUp{border-bottom:none;padding-top:var(--spectrum-stepper-icon-nudge-top)}:host([dir=ltr]) .stepDown{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown{padding-bottom:var(\n--spectrum-stepper-icon-nudge\n)}.textfield{flex:1;width:auto}:host([dir=ltr]) .input{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .input{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.input,.textfield{min-width:0}:host([quiet]){border-radius:var(\n--spectrum-stepper-border-radius-reset\n);width:var(--spectrum-stepper-quiet-width)}:host([quiet]) .buttons{border-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-left:none}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-right:none}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{padding-right:0}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{padding-left:0}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-radius:var(--spectrum-stepper-border-radius-reset);border-top:none;justify-content:flex-end;min-width:0;width:var(\n--spectrum-stepper-quiet-button-width\n)}:host([dir=ltr][quiet]) .stepDown:after,:host([dir=ltr][quiet]) .stepUp:after{right:calc(var(--spectrum-stepper-button-offset)*-1)}:host([dir=rtl][quiet]) .stepDown:after,:host([dir=rtl][quiet]) .stepUp:after{left:calc(var(--spectrum-stepper-button-offset)*-1)}:host([quiet]) .stepDown:after,:host([quiet]) .stepUp:after{content:\"\";height:100%;position:absolute;width:var(--spectrum-stepper-button-offset)}:host(:hover:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) .input,:host(:hover:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) .stepDown,:host(:hover:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-hover,var(--spectrum-alias-input-border-color-hover)\n)}:host([focused]){border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) .stepDown,:host([focused]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n);box-shadow:none}:host([focused][invalid]){border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) .stepDown,:host([focused][invalid]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([keyboard-focused]){box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) .buttons,:host([keyboard-focused]) .input{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) .input,:host([keyboard-focused]) .stepDown,:host([keyboard-focused]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused][invalid]){box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) .stepDown,:host([keyboard-focused][invalid]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid]) .stepDown,:host([invalid]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid][keyboard-focused]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n);box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid][keyboard-focused]) .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([disabled]) .stepDown,:host([disabled]) .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}.stepDown,.stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}.stepDown:disabled,.stepUp:disabled{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}:host([quiet][disabled]) .stepDown,:host([quiet][disabled]) .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}:host([quiet]) .stepDown:disabled,:host([quiet]) .stepUp:disabled{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .input{box-shadow:none}:host([quiet][invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][invalid]) .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused]),:host([quiet][keyboard-focused]){box-shadow:none}:host([quiet][focused]) .buttons,:host([quiet][focused]) .input,:host([quiet][keyboard-focused]) .buttons,:host([quiet][keyboard-focused]) .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused]) .stepDown,:host([quiet][keyboard-focused]) .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused][invalid]),:host([quiet][keyboard-focused][invalid]){box-shadow:none}:host([quiet][focused][invalid]) .buttons,:host([quiet][focused][invalid]) .input,:host([quiet][keyboard-focused][invalid]) .buttons,:host([quiet][keyboard-focused][invalid]) .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) .input,:host([quiet][keyboard-focused][invalid]) .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) .stepDown,:host([quiet][keyboard-focused][invalid]) .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}\n`"
|
|
845
|
+
"default": "css`\n:host{--spectrum-stepper-width:var(\n--spectrum-global-dimension-size-900\n);--spectrum-stepper-border-size:var(\n--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)\n);--spectrum-stepper-button-height:calc(var(\n--spectrum-alias-single-line-height,\nvar(--spectrum-global-dimension-size-400)\n)/2);--spectrum-stepper-button-width:calc(var(--spectrum-global-dimension-size-300) - var(--spectrum-stepper-border-size));--spectrum-stepper-button-padding:calc(var(--spectrum-global-dimension-size-150)/2);--spectrum-stepper-border-radius-reset:0;--spectrum-stepper-border-size-reset:0;--spectrum-stepper-icon-nudge-top:var(--spectrum-global-dimension-size-10);--spectrum-stepper-icon-nudge:var(--spectrum-global-dimension-size-25);--spectrum-stepper-quiet-width:var(--spectrum-global-dimension-size-600);--spectrum-stepper-button-offset:calc(var(--spectrum-stepper-button-width)/2 - var(--spectrum-alias-ui-icon-chevron-size-75)/2);--spectrum-stepper-quiet-button-width:calc(var(--spectrum-stepper-button-width) - var(--spectrum-stepper-button-offset))}#textfield{border-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n);display:inline-flex;flex-direction:row;flex-wrap:nowrap;line-height:0;transition:border-color var(--spectrum-global-animation-duration-100,.13s) ease-in-out,box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out;width:var(--spectrum-stepper-width)}#textfield:before{content:\"\"}:host([dir=ltr]) .buttons{border-top-left-radius:0}:host([dir=rtl]) .buttons{border-top-right-radius:0}:host([dir=ltr]) .buttons{border-top-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-top-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-right-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=rtl]) .buttons{border-bottom-left-radius:var(\n--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)\n)}:host([dir=ltr]) .buttons{border-bottom-left-radius:0}:host([dir=rtl]) .buttons{border-bottom-right-radius:0}.buttons{display:block;transition:box-shadow var(--spectrum-global-animation-duration-100,.13s) ease-in-out}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{padding-right:var(\n--spectrum-stepper-button-padding\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{padding-left:var(\n--spectrum-stepper-button-padding\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .stepDown,:host([dir=ltr]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown,:host([dir=rtl]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown,.stepUp{border-width:var(--spectrum-stepper-border-size);box-sizing:border-box;display:flex;height:var(--spectrum-stepper-button-height);margin:0!important;min-width:0;position:relative;width:var(--spectrum-stepper-button-width)}.stepDown .icon,.stepUp .icon{margin:0!important;opacity:1}:host([dir=ltr]) .stepUp{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepUp{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepUp{border-bottom:none;padding-top:var(--spectrum-stepper-icon-nudge-top)}:host([dir=ltr]) .stepDown{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .stepDown{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.stepDown{padding-bottom:var(\n--spectrum-stepper-icon-nudge\n)}.textfield{flex:1;width:auto}:host([dir=ltr]) .input{border-top-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-top-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr]) .input{border-bottom-right-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=rtl]) .input{border-bottom-left-radius:var(\n--spectrum-stepper-border-radius-reset\n)}.input,.textfield{min-width:0}:host([quiet]) #textfield{border-radius:var(\n--spectrum-stepper-border-radius-reset\n);width:var(--spectrum-stepper-quiet-width)}:host([quiet]) .buttons{border-radius:var(\n--spectrum-stepper-border-radius-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-right-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-left-width:var(\n--spectrum-stepper-border-size-reset\n)}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{border-left:none}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{border-right:none}:host([dir=ltr][quiet]) .stepDown,:host([dir=ltr][quiet]) .stepUp{padding-right:0}:host([dir=rtl][quiet]) .stepDown,:host([dir=rtl][quiet]) .stepUp{padding-left:0}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-radius:var(--spectrum-stepper-border-radius-reset);border-top:none;justify-content:flex-end;min-width:0;width:var(\n--spectrum-stepper-quiet-button-width\n)}:host([dir=ltr][quiet]) .stepDown:after,:host([dir=ltr][quiet]) .stepUp:after{right:calc(var(--spectrum-stepper-button-offset)*-1)}:host([dir=rtl][quiet]) .stepDown:after,:host([dir=rtl][quiet]) .stepUp:after{left:calc(var(--spectrum-stepper-button-offset)*-1)}:host([quiet]) .stepDown:after,:host([quiet]) .stepUp:after{content:\"\";height:100%;position:absolute;width:var(--spectrum-stepper-button-offset)}:host(:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) #textfield:hover .input,:host(:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) #textfield:hover .stepDown,:host(:not([disabled]):not([invalid]):not([focused]):not([keyboard-focused])) #textfield:hover .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-hover,var(--spectrum-alias-input-border-color-hover)\n)}:host([focused]) #textfield{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) #textfield .stepDown,:host([focused]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n)}:host([focused]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-mouse-focus,var(--spectrum-alias-input-border-color-mouse-focus)\n);box-shadow:none}:host([focused][invalid]) #textfield{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) #textfield .stepDown,:host([focused][invalid]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([focused][invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-mouse-focus,var(--spectrum-alias-input-border-color-invalid-mouse-focus)\n)}:host([keyboard-focused]) #textfield{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) #textfield .buttons,:host([keyboard-focused]) #textfield .input{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused]) #textfield .input,:host([keyboard-focused]) #textfield .stepDown,:host([keyboard-focused]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([keyboard-focused][invalid]) #textfield{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) #textfield .stepDown,:host([keyboard-focused][invalid]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([keyboard-focused][invalid]) #textfield .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid]) #textfield .stepDown,:host([invalid]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([invalid][keyboard-focused]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n);box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([invalid][keyboard-focused]) #textfield .buttons{box-shadow:0 0 0 1px var(\n--spectrum-textfield-m-texticon-border-color-invalid-key-focus,var(--spectrum-alias-input-border-color-invalid-key-focus)\n)}:host([disabled]) #textfield .stepDown,:host([disabled]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}.stepDown,.stepUp{border-color:var(\n--spectrum-textfield-m-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}.stepDown:disabled,.stepUp:disabled{border-color:var(\n--spectrum-textfield-m-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-disabled)\n)}:host([quiet][disabled]) #textfield .stepDown,:host([quiet][disabled]) #textfield .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .stepDown,:host([quiet]) .stepUp{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color,var(--spectrum-alias-input-border-color-default)\n)}:host([quiet]) .stepDown:disabled,:host([quiet]) .stepUp:disabled{border-color:var(\n--spectrum-textfield-m-quiet-texticon-border-color-disabled,var(--spectrum-alias-input-border-color-quiet-disabled)\n)}:host([quiet]) .input{box-shadow:none}:host([quiet][invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][invalid]) #textfield .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused]) #textfield,:host([quiet][keyboard-focused]) #textfield{box-shadow:none}:host([quiet][focused]) #textfield .buttons,:host([quiet][focused]) #textfield .input,:host([quiet][keyboard-focused]) #textfield .buttons,:host([quiet][keyboard-focused]) #textfield .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused]) #textfield .stepDown,:host([quiet][keyboard-focused]) #textfield .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-key-focus,var(--spectrum-alias-input-border-color-key-focus)\n)}:host([quiet][focused][invalid]) #textfield,:host([quiet][keyboard-focused][invalid]) #textfield{box-shadow:none}:host([quiet][focused][invalid]) #textfield .buttons,:host([quiet][focused][invalid]) #textfield .input,:host([quiet][keyboard-focused][invalid]) #textfield .buttons,:host([quiet][keyboard-focused][invalid]) #textfield .input{box-shadow:0 1px 0 0 var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) #textfield .input,:host([quiet][keyboard-focused][invalid]) #textfield .input{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}:host([quiet][focused][invalid]) #textfield .stepDown,:host([quiet][keyboard-focused][invalid]) #textfield .stepDown{border-color:var(\n--spectrum-textfield-m-texticon-border-color-invalid,var(--spectrum-alias-input-border-color-invalid-default)\n)}\n`"
|
|
826
846
|
}
|
|
827
847
|
],
|
|
828
848
|
"exports": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/number-field",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -45,21 +45,21 @@
|
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@internationalized/number": "^3.0.2",
|
|
48
|
-
"@spectrum-web-components/action-button": "^0.7.
|
|
49
|
-
"@spectrum-web-components/base": "^0.5.
|
|
50
|
-
"@spectrum-web-components/icon": "^0.11.
|
|
51
|
-
"@spectrum-web-components/icons-ui": "^0.8.
|
|
52
|
-
"@spectrum-web-components/textfield": "^0.10.
|
|
48
|
+
"@spectrum-web-components/action-button": "^0.7.1",
|
|
49
|
+
"@spectrum-web-components/base": "^0.5.1",
|
|
50
|
+
"@spectrum-web-components/icon": "^0.11.1",
|
|
51
|
+
"@spectrum-web-components/icons-ui": "^0.8.1",
|
|
52
|
+
"@spectrum-web-components/textfield": "^0.10.1",
|
|
53
53
|
"tslib": "^2.0.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@formatjs/intl-numberformat": "7.1.4",
|
|
57
|
-
"@spectrum-css/stepper": "^3.0.
|
|
57
|
+
"@spectrum-css/stepper": "^3.0.11"
|
|
58
58
|
},
|
|
59
59
|
"types": "./src/index.d.ts",
|
|
60
60
|
"customElements": "custom-elements.json",
|
|
61
61
|
"sideEffects": [
|
|
62
62
|
"./sp-*.js"
|
|
63
63
|
],
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "df3f333ee26a45f9fc247716b6e8ef051dca630b"
|
|
65
65
|
}
|
package/src/NumberField.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export declare const FRAMES_PER_CHANGE = 5;
|
|
|
7
7
|
export declare const indeterminatePlaceholder = "-";
|
|
8
8
|
/**
|
|
9
9
|
* @element sp-number-field
|
|
10
|
+
* @slot help-text - default or non-negative help text to associate to your form element
|
|
11
|
+
* @slot negative-help-text - negative help text to associate to your form element when `invalid`
|
|
10
12
|
*/
|
|
11
13
|
export declare class NumberField extends TextfieldBase {
|
|
12
14
|
static get styles(): CSSResultArray;
|
|
@@ -14,7 +16,7 @@ export declare class NumberField extends TextfieldBase {
|
|
|
14
16
|
focused: boolean;
|
|
15
17
|
_forcedUnit: string;
|
|
16
18
|
/**
|
|
17
|
-
* An
|
|
19
|
+
* An `<sp-number-field>` element will process its numeric value with
|
|
18
20
|
* `new Intl.NumberFormat(this.resolvedLanguage, this.formatOptions).format(this.valueAsNumber)`
|
|
19
21
|
* in order to prepare it for visual delivery in the input. In order to customize this
|
|
20
22
|
* processing supply your own `Intl.NumberFormatOptions` object here.
|
|
@@ -86,7 +88,7 @@ export declare class NumberField extends TextfieldBase {
|
|
|
86
88
|
protected get numberParser(): NumberParser;
|
|
87
89
|
private _numberParser?;
|
|
88
90
|
private _numberParserFocused?;
|
|
89
|
-
protected
|
|
91
|
+
protected renderField(): TemplateResult;
|
|
90
92
|
protected update(changes: PropertyValues): void;
|
|
91
93
|
protected firstUpdated(changes: PropertyValues): void;
|
|
92
94
|
protected updated(changes: PropertyValues<this>): void;
|
package/src/NumberField.js
CHANGED
|
@@ -41,6 +41,8 @@ export const FRAMES_PER_CHANGE = 5;
|
|
|
41
41
|
export const indeterminatePlaceholder = '-';
|
|
42
42
|
/**
|
|
43
43
|
* @element sp-number-field
|
|
44
|
+
* @slot help-text - default or non-negative help text to associate to your form element
|
|
45
|
+
* @slot negative-help-text - negative help text to associate to your form element when `invalid`
|
|
44
46
|
*/
|
|
45
47
|
export class NumberField extends TextfieldBase {
|
|
46
48
|
constructor() {
|
|
@@ -48,7 +50,7 @@ export class NumberField extends TextfieldBase {
|
|
|
48
50
|
this.focused = false;
|
|
49
51
|
this._forcedUnit = '';
|
|
50
52
|
/**
|
|
51
|
-
* An
|
|
53
|
+
* An `<sp-number-field>` element will process its numeric value with
|
|
52
54
|
* `new Intl.NumberFormat(this.resolvedLanguage, this.formatOptions).format(this.valueAsNumber)`
|
|
53
55
|
* in order to prepare it for visual delivery in the input. In order to customize this
|
|
54
56
|
* processing supply your own `Intl.NumberFormatOptions` object here.
|
|
@@ -173,7 +175,7 @@ export class NumberField extends TextfieldBase {
|
|
|
173
175
|
});
|
|
174
176
|
}
|
|
175
177
|
stepBy(count) {
|
|
176
|
-
if (this.readonly) {
|
|
178
|
+
if (this.disabled || this.readonly) {
|
|
177
179
|
return;
|
|
178
180
|
}
|
|
179
181
|
const min = typeof this.min !== 'undefined' ? this.min : 0;
|
|
@@ -363,10 +365,10 @@ export class NumberField extends TextfieldBase {
|
|
|
363
365
|
}
|
|
364
366
|
return this.focused ? this._numberParserFocused : this._numberParser;
|
|
365
367
|
}
|
|
366
|
-
|
|
368
|
+
renderField() {
|
|
367
369
|
this.autocomplete = 'off';
|
|
368
370
|
return html `
|
|
369
|
-
${super.
|
|
371
|
+
${super.renderField()}
|
|
370
372
|
${this.hideStepper
|
|
371
373
|
? html ``
|
|
372
374
|
: html `
|
package/src/NumberField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberField.js","sourceRoot":"","sources":["NumberField.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ProvideLang } from '@spectrum-web-components/theme';\nimport { streamingListener } from '@spectrum-web-components/base/src/streaming-listener.js';\nimport { NumberFormatter, NumberParser } from '@internationalized/number';\n\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron75.js';\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport { TextfieldBase } from '@spectrum-web-components/textfield';\nimport chevronStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport styles from './number-field.css.js';\n\nfunction testPlatform(re: RegExp): boolean {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator.platform)\n : /* c8 ignore next */\n false;\n}\n\nfunction testUserAgent(re: RegExp): boolean {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator.userAgent)\n : /* c8 ignore next */\n false;\n}\n\nfunction isIPhone(): boolean {\n return testPlatform(/^iPhone/);\n}\n\nfunction isAndroid(): boolean {\n return testUserAgent(/Android/);\n}\n\nexport const FRAMES_PER_CHANGE = 5;\nexport const indeterminatePlaceholder = '-';\n\n/**\n * @element sp-number-field\n */\nexport class NumberField extends TextfieldBase {\n public static get styles(): CSSResultArray {\n return [...super.styles, styles, chevronStyles];\n }\n\n @query('.buttons')\n private buttons!: HTMLDivElement;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n _forcedUnit = '';\n\n /**\n * An `<sp-number-field>` element will process its numeric value with\n * `new Intl.NumberFormat(this.resolvedLanguage, this.formatOptions).format(this.valueAsNumber)`\n * in order to prepare it for visual delivery in the input. In order to customize this\n * processing supply your own `Intl.NumberFormatOptions` object here.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat\n */\n @property({ type: Object, attribute: 'format-options' })\n public formatOptions: Intl.NumberFormatOptions = {};\n\n /**\n * Whether the stepper UI is hidden or not.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-stepper' })\n public hideStepper = false;\n\n @property({ type: Boolean, reflect: true })\n public indeterminate = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'keyboard-focused' })\n public keyboardFocused = false;\n\n @property({ type: Number })\n public max?: number;\n\n @property({ type: Number })\n public min?: number;\n\n @property({ attribute: false })\n private resolvedLanguage =\n document.documentElement.lang || navigator.language;\n\n /**\n * The distance by which to alter the value of the element when taking a \"step\".\n *\n * When `this.formatOptions.style === 'percentage'` the default step will be\n * set to 0.01 unless otherwise supplied to the element.\n */\n @property({ type: Number })\n public step?: number;\n\n public stepperActive = false;\n\n @property({ type: Number, reflect: true, attribute: 'step-modifier' })\n public stepModifier = 10;\n\n @property({ type: Number })\n public set value(value: number) {\n if (value === this.value) {\n return;\n }\n const oldValue = this._value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n public get value(): number {\n return this._value;\n }\n\n private get inputValue(): string {\n return this.indeterminate\n ? this.formattedValue\n : this.inputElement.value;\n }\n\n public _value = NaN;\n private _trackingValue = '';\n\n /**\n * Retreive the value of the element parsed to a Number.\n */\n public get valueAsString(): string {\n return this._value.toString();\n }\n\n public set valueAsString(value: string) {\n this.value = this.numberParser.parse(value);\n }\n\n public get formattedValue(): string {\n if (isNaN(this.value)) return '';\n return (\n this.numberFormatter.format(this.value) +\n (this.focused ? '' : this._forcedUnit)\n );\n }\n\n private convertValueToNumber(value: string): number {\n return this.numberParser.parse(value);\n }\n\n private get _step(): number {\n if (typeof this.step !== 'undefined') {\n return this.step;\n }\n if (this.formatOptions?.style === 'percent') {\n return 0.01;\n }\n return 1;\n }\n\n private nextChange!: number;\n private changeCount = 0;\n private findChange!: (event: PointerEvent) => void;\n private change!: (event: PointerEvent) => void;\n private safty!: number;\n\n private handlePointerdown(event: PointerEvent): void {\n if (event.button !== 0) {\n event.preventDefault();\n return;\n }\n this.stepperActive = true;\n this.buttons.setPointerCapture(event.pointerId);\n const stepUpRect = this.buttons.children[0].getBoundingClientRect();\n const stepDownRect = this.buttons.children[1].getBoundingClientRect();\n this.findChange = (event: PointerEvent) => {\n if (\n event.clientX >= stepUpRect.x &&\n event.clientY >= stepUpRect.y &&\n event.clientX <= stepUpRect.x + stepUpRect.width &&\n event.clientY <= stepUpRect.y + stepUpRect.height\n ) {\n this.change = (event: PointerEvent) =>\n this.increment(event.shiftKey ? this.stepModifier : 1);\n } else if (\n event.clientX >= stepDownRect.x &&\n event.clientY >= stepDownRect.y &&\n event.clientX <= stepDownRect.x + stepDownRect.width &&\n event.clientY <= stepDownRect.y + stepDownRect.height\n ) {\n this.change = (event: PointerEvent) =>\n this.decrement(event.shiftKey ? this.stepModifier : 1);\n }\n };\n this.findChange(event);\n this.startChange(event);\n }\n\n private startChange(event: PointerEvent): void {\n this.changeCount = 0;\n this.doChange(event);\n this.safty = setTimeout(() => {\n this.doNextChange(event);\n }, 400) as unknown as number;\n }\n\n private doChange(event: PointerEvent): void {\n this.change(event);\n }\n\n private handlePointermove(event: PointerEvent): void {\n this.findChange(event);\n }\n\n private handlePointerup(event: PointerEvent): void {\n this.buttons.releasePointerCapture(event.pointerId);\n cancelAnimationFrame(this.nextChange);\n clearTimeout(this.safty);\n this.dispatchEvent(\n new Event('change', { bubbles: true, composed: true })\n );\n this.stepperActive = false;\n }\n\n private doNextChange(event: PointerEvent): number {\n this.changeCount += 1;\n if (this.changeCount % FRAMES_PER_CHANGE === 0) {\n this.doChange(event);\n }\n return requestAnimationFrame(() => {\n this.nextChange = this.doNextChange(event);\n });\n }\n\n private stepBy(count: number): void {\n if (this.readonly) {\n return;\n }\n const min = typeof this.min !== 'undefined' ? this.min : 0;\n let value = this.value;\n value += count * this._step;\n if (isNaN(this.value)) {\n this.value = min;\n } else {\n this.value = value;\n }\n this.dispatchEvent(\n new Event('input', { bubbles: true, composed: true })\n );\n this.indeterminate = false;\n this.focus();\n }\n\n private increment(factor = 1): void {\n this.stepBy(1 * factor);\n }\n\n private decrement(factor = 1): void {\n this.stepBy(-1 * factor);\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'ArrowUp':\n event.preventDefault();\n this.increment(event.shiftKey ? this.stepModifier : 1);\n this.dispatchEvent(\n new Event('change', { bubbles: true, composed: true })\n );\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.decrement(event.shiftKey ? this.stepModifier : 1);\n this.dispatchEvent(\n new Event('change', { bubbles: true, composed: true })\n );\n break;\n }\n }\n\n protected onScroll(event: WheelEvent): void {\n event.preventDefault();\n const direction = event.shiftKey\n ? event.deltaX / Math.abs(event.deltaX)\n : event.deltaY / Math.abs(event.deltaY);\n if (direction !== 0 && !isNaN(direction)) {\n this.stepBy(direction * (event.shiftKey ? this.stepModifier : 1));\n }\n }\n\n protected onFocus(): void {\n super.onFocus();\n this._trackingValue = this.inputValue;\n this.keyboardFocused = true;\n this.addEventListener('wheel', this.onScroll);\n }\n\n protected onBlur(): void {\n super.onBlur();\n this.keyboardFocused = false;\n this.removeEventListener('wheel', this.onScroll);\n }\n\n private handleFocusin(): void {\n this.focused = true;\n this.keyboardFocused = true;\n }\n\n private handleFocusout(): void {\n this.focused = false;\n this.keyboardFocused = false;\n }\n\n private wasIndeterminate = false;\n private indeterminateValue?: number;\n\n protected onChange(): void {\n const value = this.convertValueToNumber(this.inputValue);\n if (this.wasIndeterminate) {\n this.wasIndeterminate = false;\n this.indeterminateValue = undefined;\n if (isNaN(value)) {\n this.indeterminate = true;\n return;\n }\n }\n this.value = value;\n super.onChange();\n }\n\n protected onInput(): void {\n if (this.indeterminate) {\n this.wasIndeterminate = true;\n this.indeterminateValue = this.value;\n this.inputElement.value = this.inputElement.value.replace(\n indeterminatePlaceholder,\n ''\n );\n }\n const { value, selectionStart } = this.inputElement;\n if (this.numberParser.isValidPartialNumber(value)) {\n const valueAsNumber = this.convertValueToNumber(value);\n if (!value && this.indeterminateValue) {\n this.indeterminate = true;\n this._value = this.indeterminateValue;\n } else {\n this.indeterminate = false;\n this._value = this.validateInput(valueAsNumber);\n }\n this._trackingValue = value;\n return;\n }\n const currentLength = value.length;\n const previousLength = this._trackingValue.length;\n const nextSelectStart =\n (selectionStart || currentLength) -\n (currentLength - previousLength);\n this.inputElement.value = this.indeterminate\n ? indeterminatePlaceholder\n : this._trackingValue;\n this.inputElement.setSelectionRange(nextSelectStart, nextSelectStart);\n }\n\n private validateInput(value: number): number {\n if (typeof this.min !== 'undefined') {\n value = Math.max(this.min, value);\n }\n if (typeof this.step !== 'undefined') {\n const min = typeof this.min !== 'undefined' ? this.min : 0;\n const moduloStep = (value - min) % this.step;\n const fallsOnStep = moduloStep === 0;\n if (!fallsOnStep) {\n const overUnder = Math.round(moduloStep / this.step);\n if (overUnder === 1) {\n value += this.step - moduloStep;\n } else {\n value -= moduloStep;\n }\n }\n if (typeof this.max !== 'undefined') {\n while (value > this.max) {\n value -= this.step;\n }\n }\n }\n if (typeof this.max !== 'undefined') {\n value = Math.min(this.max, value);\n }\n return value;\n }\n\n protected get displayValue(): string {\n const indeterminateValue = this.focused ? '' : indeterminatePlaceholder;\n return this.indeterminate ? indeterminateValue : this.formattedValue;\n }\n\n protected clearNumberFormatterCache(): void {\n this._numberFormatter = undefined;\n this._numberParser = undefined;\n }\n\n protected get numberFormatter(): NumberFormatter {\n if (!this._numberFormatter || !this._numberFormatterFocused) {\n const {\n style,\n unit,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n unitDisplay,\n ...formatOptionsNoUnit\n } = this.formatOptions;\n if (style !== 'unit') {\n (formatOptionsNoUnit as Intl.NumberFormatOptions).style = style;\n }\n this._numberFormatterFocused = new NumberFormatter(\n this.resolvedLanguage,\n formatOptionsNoUnit\n );\n try {\n this._numberFormatter = new NumberFormatter(\n this.resolvedLanguage,\n this.formatOptions\n );\n this._forcedUnit = '';\n this._numberFormatter.format(1);\n } catch (error) {\n if (style === 'unit') {\n this._forcedUnit = unit as string;\n }\n this._numberFormatter = this._numberFormatterFocused;\n }\n }\n return this.focused\n ? this._numberFormatterFocused\n : this._numberFormatter;\n }\n\n private _numberFormatter?: NumberFormatter;\n private _numberFormatterFocused?: NumberFormatter;\n\n protected get numberParser(): NumberParser {\n if (!this._numberParser || !this._numberParserFocused) {\n const {\n style,\n unit,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n unitDisplay,\n ...formatOptionsNoUnit\n } = this.formatOptions;\n if (style !== 'unit') {\n (formatOptionsNoUnit as Intl.NumberFormatOptions).style = style;\n }\n this._numberParserFocused = new NumberParser(\n this.resolvedLanguage,\n formatOptionsNoUnit\n );\n try {\n this._numberParser = new NumberParser(\n this.resolvedLanguage,\n this.formatOptions\n );\n this._forcedUnit = '';\n this._numberParser.parse('0');\n } catch (error) {\n if (style === 'unit') {\n this._forcedUnit = unit as string;\n }\n this._numberParser = this._numberParserFocused;\n }\n }\n return this.focused ? this._numberParserFocused : this._numberParser;\n }\n\n private _numberParser?: NumberParser;\n private _numberParserFocused?: NumberParser;\n\n protected render(): TemplateResult {\n this.autocomplete = 'off';\n return html`\n ${super.render()}\n ${this.hideStepper\n ? html``\n : html`\n <span\n class=\"buttons\"\n @focusin=${this.handleFocusin}\n @focusout=${this.handleFocusout}\n ${streamingListener({\n start: ['pointerdown', this.handlePointerdown],\n streamInside: [\n [\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerover',\n 'pointerout',\n ],\n this.handlePointermove,\n ],\n end: [\n ['pointerup', 'pointercancel'],\n this.handlePointerup,\n ],\n })}\n >\n <sp-action-button\n class=\"stepUp\"\n label=\"Increment\"\n tabindex=\"-1\"\n ?focused=${this.focused}\n ?disabled=${this.disabled ||\n this.readonly ||\n (typeof this.max !== 'undefined' &&\n this.value === this.max)}\n >\n <sp-icon-chevron75\n slot=\"icon\"\n class=\"stepper-icon spectrum-UIIcon-ChevronUp75\"\n ></sp-icon-chevron75>\n </sp-action-button>\n <sp-action-button\n class=\"stepDown\"\n label=\"Decrement\"\n tabindex=\"-1\"\n ?focused=${this.focused}\n ?disabled=${this.disabled ||\n this.readonly ||\n (typeof this.min !== 'undefined' &&\n this.value === this.min)}\n >\n <sp-icon-chevron75\n slot=\"icon\"\n class=\"stepper-icon spectrum-UIIcon-ChevronDown75\"\n ></sp-icon-chevron75>\n </sp-action-button>\n </span>\n `}\n `;\n }\n\n protected update(changes: PropertyValues): void {\n if (changes.has('formatOptions') || changes.has('resolvedLanguage')) {\n this.clearNumberFormatterCache();\n }\n super.update(changes);\n }\n\n protected firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.multiline = false;\n this.addEventListener('keydown', this.handleKeydown);\n }\n\n protected updated(changes: PropertyValues<this>): void {\n if (\n changes.has('value') ||\n changes.has('max') ||\n changes.has('min') ||\n changes.has('min')\n ) {\n const value = this.numberParser.parse(\n this.inputValue.replace(this._forcedUnit, '')\n );\n this.value = this.validateInput(value);\n }\n if (changes.has('min') || changes.has('formatOptions')) {\n let inputMode = 'numeric';\n const hasNegative = typeof this.min !== 'undefined' && this.min < 0;\n const { maximumFractionDigits } = this.formatOptions;\n const hasDecimals =\n maximumFractionDigits && maximumFractionDigits > 0;\n /* c8 ignore next 18 */\n if (isIPhone()) {\n // iPhone doesn't have a minus sign in either numeric or decimal.\n // Note this is only for iPhone, not iPad, which always has both\n // minus and decimal in numeric.\n if (hasNegative) {\n inputMode = 'text';\n } else if (hasDecimals) {\n inputMode = 'decimal';\n }\n } else if (isAndroid()) {\n // Android numeric has both a decimal point and minus key.\n // decimal does not have a minus key.\n if (hasNegative) {\n inputMode = 'numeric';\n } else if (hasDecimals) {\n inputMode = 'decimal';\n }\n }\n this.inputElement.inputMode = inputMode;\n }\n }\n\n public connectedCallback(): void {\n super.connectedCallback();\n this.resolveLanguage();\n }\n\n public disconnectedCallback(): void {\n this.resolveLanguage();\n super.disconnectedCallback();\n }\n\n private resolveLanguage(): void {\n const queryThemeEvent = new CustomEvent<ProvideLang>(\n 'sp-language-context',\n {\n bubbles: true,\n composed: true,\n detail: {\n callback: (lang: string) => {\n this.resolvedLanguage = lang;\n },\n },\n cancelable: true,\n }\n );\n this.dispatchEvent(queryThemeEvent);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NumberField.js","sourceRoot":"","sources":["NumberField.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ProvideLang } from '@spectrum-web-components/theme';\nimport { streamingListener } from '@spectrum-web-components/base/src/streaming-listener.js';\nimport { NumberFormatter, NumberParser } from '@internationalized/number';\n\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron75.js';\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport { TextfieldBase } from '@spectrum-web-components/textfield';\nimport chevronStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport styles from './number-field.css.js';\n\nfunction testPlatform(re: RegExp): boolean {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator.platform)\n : /* c8 ignore next */\n false;\n}\n\nfunction testUserAgent(re: RegExp): boolean {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator.userAgent)\n : /* c8 ignore next */\n false;\n}\n\nfunction isIPhone(): boolean {\n return testPlatform(/^iPhone/);\n}\n\nfunction isAndroid(): boolean {\n return testUserAgent(/Android/);\n}\n\nexport const FRAMES_PER_CHANGE = 5;\nexport const indeterminatePlaceholder = '-';\n\n/**\n * @element sp-number-field\n * @slot help-text - default or non-negative help text to associate to your form element\n * @slot negative-help-text - negative help text to associate to your form element when `invalid`\n */\nexport class NumberField extends TextfieldBase {\n public static get styles(): CSSResultArray {\n return [...super.styles, styles, chevronStyles];\n }\n\n @query('.buttons')\n private buttons!: HTMLDivElement;\n\n @property({ type: Boolean, reflect: true })\n public focused = false;\n\n _forcedUnit = '';\n\n /**\n * An `<sp-number-field>` element will process its numeric value with\n * `new Intl.NumberFormat(this.resolvedLanguage, this.formatOptions).format(this.valueAsNumber)`\n * in order to prepare it for visual delivery in the input. In order to customize this\n * processing supply your own `Intl.NumberFormatOptions` object here.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat\n */\n @property({ type: Object, attribute: 'format-options' })\n public formatOptions: Intl.NumberFormatOptions = {};\n\n /**\n * Whether the stepper UI is hidden or not.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-stepper' })\n public hideStepper = false;\n\n @property({ type: Boolean, reflect: true })\n public indeterminate = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'keyboard-focused' })\n public keyboardFocused = false;\n\n @property({ type: Number })\n public max?: number;\n\n @property({ type: Number })\n public min?: number;\n\n @property({ attribute: false })\n private resolvedLanguage =\n document.documentElement.lang || navigator.language;\n\n /**\n * The distance by which to alter the value of the element when taking a \"step\".\n *\n * When `this.formatOptions.style === 'percentage'` the default step will be\n * set to 0.01 unless otherwise supplied to the element.\n */\n @property({ type: Number })\n public step?: number;\n\n public stepperActive = false;\n\n @property({ type: Number, reflect: true, attribute: 'step-modifier' })\n public stepModifier = 10;\n\n @property({ type: Number })\n public set value(value: number) {\n if (value === this.value) {\n return;\n }\n const oldValue = this._value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n public get value(): number {\n return this._value;\n }\n\n private get inputValue(): string {\n return this.indeterminate\n ? this.formattedValue\n : this.inputElement.value;\n }\n\n public _value = NaN;\n private _trackingValue = '';\n\n /**\n * Retreive the value of the element parsed to a Number.\n */\n public get valueAsString(): string {\n return this._value.toString();\n }\n\n public set valueAsString(value: string) {\n this.value = this.numberParser.parse(value);\n }\n\n public get formattedValue(): string {\n if (isNaN(this.value)) return '';\n return (\n this.numberFormatter.format(this.value) +\n (this.focused ? '' : this._forcedUnit)\n );\n }\n\n private convertValueToNumber(value: string): number {\n return this.numberParser.parse(value);\n }\n\n private get _step(): number {\n if (typeof this.step !== 'undefined') {\n return this.step;\n }\n if (this.formatOptions?.style === 'percent') {\n return 0.01;\n }\n return 1;\n }\n\n private nextChange!: number;\n private changeCount = 0;\n private findChange!: (event: PointerEvent) => void;\n private change!: (event: PointerEvent) => void;\n private safty!: number;\n\n private handlePointerdown(event: PointerEvent): void {\n if (event.button !== 0) {\n event.preventDefault();\n return;\n }\n this.stepperActive = true;\n this.buttons.setPointerCapture(event.pointerId);\n const stepUpRect = this.buttons.children[0].getBoundingClientRect();\n const stepDownRect = this.buttons.children[1].getBoundingClientRect();\n this.findChange = (event: PointerEvent) => {\n if (\n event.clientX >= stepUpRect.x &&\n event.clientY >= stepUpRect.y &&\n event.clientX <= stepUpRect.x + stepUpRect.width &&\n event.clientY <= stepUpRect.y + stepUpRect.height\n ) {\n this.change = (event: PointerEvent) =>\n this.increment(event.shiftKey ? this.stepModifier : 1);\n } else if (\n event.clientX >= stepDownRect.x &&\n event.clientY >= stepDownRect.y &&\n event.clientX <= stepDownRect.x + stepDownRect.width &&\n event.clientY <= stepDownRect.y + stepDownRect.height\n ) {\n this.change = (event: PointerEvent) =>\n this.decrement(event.shiftKey ? this.stepModifier : 1);\n }\n };\n this.findChange(event);\n this.startChange(event);\n }\n\n private startChange(event: PointerEvent): void {\n this.changeCount = 0;\n this.doChange(event);\n this.safty = setTimeout(() => {\n this.doNextChange(event);\n }, 400) as unknown as number;\n }\n\n private doChange(event: PointerEvent): void {\n this.change(event);\n }\n\n private handlePointermove(event: PointerEvent): void {\n this.findChange(event);\n }\n\n private handlePointerup(event: PointerEvent): void {\n this.buttons.releasePointerCapture(event.pointerId);\n cancelAnimationFrame(this.nextChange);\n clearTimeout(this.safty);\n this.dispatchEvent(\n new Event('change', { bubbles: true, composed: true })\n );\n this.stepperActive = false;\n }\n\n private doNextChange(event: PointerEvent): number {\n this.changeCount += 1;\n if (this.changeCount % FRAMES_PER_CHANGE === 0) {\n this.doChange(event);\n }\n return requestAnimationFrame(() => {\n this.nextChange = this.doNextChange(event);\n });\n }\n\n private stepBy(count: number): void {\n if (this.disabled || this.readonly) {\n return;\n }\n const min = typeof this.min !== 'undefined' ? this.min : 0;\n let value = this.value;\n value += count * this._step;\n if (isNaN(this.value)) {\n this.value = min;\n } else {\n this.value = value;\n }\n this.dispatchEvent(\n new Event('input', { bubbles: true, composed: true })\n );\n this.indeterminate = false;\n this.focus();\n }\n\n private increment(factor = 1): void {\n this.stepBy(1 * factor);\n }\n\n private decrement(factor = 1): void {\n this.stepBy(-1 * factor);\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'ArrowUp':\n event.preventDefault();\n this.increment(event.shiftKey ? this.stepModifier : 1);\n this.dispatchEvent(\n new Event('change', { bubbles: true, composed: true })\n );\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.decrement(event.shiftKey ? this.stepModifier : 1);\n this.dispatchEvent(\n new Event('change', { bubbles: true, composed: true })\n );\n break;\n }\n }\n\n protected onScroll(event: WheelEvent): void {\n event.preventDefault();\n const direction = event.shiftKey\n ? event.deltaX / Math.abs(event.deltaX)\n : event.deltaY / Math.abs(event.deltaY);\n if (direction !== 0 && !isNaN(direction)) {\n this.stepBy(direction * (event.shiftKey ? this.stepModifier : 1));\n }\n }\n\n protected onFocus(): void {\n super.onFocus();\n this._trackingValue = this.inputValue;\n this.keyboardFocused = true;\n this.addEventListener('wheel', this.onScroll);\n }\n\n protected onBlur(): void {\n super.onBlur();\n this.keyboardFocused = false;\n this.removeEventListener('wheel', this.onScroll);\n }\n\n private handleFocusin(): void {\n this.focused = true;\n this.keyboardFocused = true;\n }\n\n private handleFocusout(): void {\n this.focused = false;\n this.keyboardFocused = false;\n }\n\n private wasIndeterminate = false;\n private indeterminateValue?: number;\n\n protected onChange(): void {\n const value = this.convertValueToNumber(this.inputValue);\n if (this.wasIndeterminate) {\n this.wasIndeterminate = false;\n this.indeterminateValue = undefined;\n if (isNaN(value)) {\n this.indeterminate = true;\n return;\n }\n }\n this.value = value;\n super.onChange();\n }\n\n protected onInput(): void {\n if (this.indeterminate) {\n this.wasIndeterminate = true;\n this.indeterminateValue = this.value;\n this.inputElement.value = this.inputElement.value.replace(\n indeterminatePlaceholder,\n ''\n );\n }\n const { value, selectionStart } = this.inputElement;\n if (this.numberParser.isValidPartialNumber(value)) {\n const valueAsNumber = this.convertValueToNumber(value);\n if (!value && this.indeterminateValue) {\n this.indeterminate = true;\n this._value = this.indeterminateValue;\n } else {\n this.indeterminate = false;\n this._value = this.validateInput(valueAsNumber);\n }\n this._trackingValue = value;\n return;\n }\n const currentLength = value.length;\n const previousLength = this._trackingValue.length;\n const nextSelectStart =\n (selectionStart || currentLength) -\n (currentLength - previousLength);\n this.inputElement.value = this.indeterminate\n ? indeterminatePlaceholder\n : this._trackingValue;\n this.inputElement.setSelectionRange(nextSelectStart, nextSelectStart);\n }\n\n private validateInput(value: number): number {\n if (typeof this.min !== 'undefined') {\n value = Math.max(this.min, value);\n }\n if (typeof this.step !== 'undefined') {\n const min = typeof this.min !== 'undefined' ? this.min : 0;\n const moduloStep = (value - min) % this.step;\n const fallsOnStep = moduloStep === 0;\n if (!fallsOnStep) {\n const overUnder = Math.round(moduloStep / this.step);\n if (overUnder === 1) {\n value += this.step - moduloStep;\n } else {\n value -= moduloStep;\n }\n }\n if (typeof this.max !== 'undefined') {\n while (value > this.max) {\n value -= this.step;\n }\n }\n }\n if (typeof this.max !== 'undefined') {\n value = Math.min(this.max, value);\n }\n return value;\n }\n\n protected get displayValue(): string {\n const indeterminateValue = this.focused ? '' : indeterminatePlaceholder;\n return this.indeterminate ? indeterminateValue : this.formattedValue;\n }\n\n protected clearNumberFormatterCache(): void {\n this._numberFormatter = undefined;\n this._numberParser = undefined;\n }\n\n protected get numberFormatter(): NumberFormatter {\n if (!this._numberFormatter || !this._numberFormatterFocused) {\n const {\n style,\n unit,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n unitDisplay,\n ...formatOptionsNoUnit\n } = this.formatOptions;\n if (style !== 'unit') {\n (formatOptionsNoUnit as Intl.NumberFormatOptions).style = style;\n }\n this._numberFormatterFocused = new NumberFormatter(\n this.resolvedLanguage,\n formatOptionsNoUnit\n );\n try {\n this._numberFormatter = new NumberFormatter(\n this.resolvedLanguage,\n this.formatOptions\n );\n this._forcedUnit = '';\n this._numberFormatter.format(1);\n } catch (error) {\n if (style === 'unit') {\n this._forcedUnit = unit as string;\n }\n this._numberFormatter = this._numberFormatterFocused;\n }\n }\n return this.focused\n ? this._numberFormatterFocused\n : this._numberFormatter;\n }\n\n private _numberFormatter?: NumberFormatter;\n private _numberFormatterFocused?: NumberFormatter;\n\n protected get numberParser(): NumberParser {\n if (!this._numberParser || !this._numberParserFocused) {\n const {\n style,\n unit,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n unitDisplay,\n ...formatOptionsNoUnit\n } = this.formatOptions;\n if (style !== 'unit') {\n (formatOptionsNoUnit as Intl.NumberFormatOptions).style = style;\n }\n this._numberParserFocused = new NumberParser(\n this.resolvedLanguage,\n formatOptionsNoUnit\n );\n try {\n this._numberParser = new NumberParser(\n this.resolvedLanguage,\n this.formatOptions\n );\n this._forcedUnit = '';\n this._numberParser.parse('0');\n } catch (error) {\n if (style === 'unit') {\n this._forcedUnit = unit as string;\n }\n this._numberParser = this._numberParserFocused;\n }\n }\n return this.focused ? this._numberParserFocused : this._numberParser;\n }\n\n private _numberParser?: NumberParser;\n private _numberParserFocused?: NumberParser;\n\n protected renderField(): TemplateResult {\n this.autocomplete = 'off';\n return html`\n ${super.renderField()}\n ${this.hideStepper\n ? html``\n : html`\n <span\n class=\"buttons\"\n @focusin=${this.handleFocusin}\n @focusout=${this.handleFocusout}\n ${streamingListener({\n start: ['pointerdown', this.handlePointerdown],\n streamInside: [\n [\n 'pointermove',\n 'pointerenter',\n 'pointerleave',\n 'pointerover',\n 'pointerout',\n ],\n this.handlePointermove,\n ],\n end: [\n ['pointerup', 'pointercancel'],\n this.handlePointerup,\n ],\n })}\n >\n <sp-action-button\n class=\"stepUp\"\n label=\"Increment\"\n tabindex=\"-1\"\n ?focused=${this.focused}\n ?disabled=${this.disabled ||\n this.readonly ||\n (typeof this.max !== 'undefined' &&\n this.value === this.max)}\n >\n <sp-icon-chevron75\n slot=\"icon\"\n class=\"stepper-icon spectrum-UIIcon-ChevronUp75\"\n ></sp-icon-chevron75>\n </sp-action-button>\n <sp-action-button\n class=\"stepDown\"\n label=\"Decrement\"\n tabindex=\"-1\"\n ?focused=${this.focused}\n ?disabled=${this.disabled ||\n this.readonly ||\n (typeof this.min !== 'undefined' &&\n this.value === this.min)}\n >\n <sp-icon-chevron75\n slot=\"icon\"\n class=\"stepper-icon spectrum-UIIcon-ChevronDown75\"\n ></sp-icon-chevron75>\n </sp-action-button>\n </span>\n `}\n `;\n }\n\n protected update(changes: PropertyValues): void {\n if (changes.has('formatOptions') || changes.has('resolvedLanguage')) {\n this.clearNumberFormatterCache();\n }\n super.update(changes);\n }\n\n protected firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.multiline = false;\n this.addEventListener('keydown', this.handleKeydown);\n }\n\n protected updated(changes: PropertyValues<this>): void {\n if (\n changes.has('value') ||\n changes.has('max') ||\n changes.has('min') ||\n changes.has('min')\n ) {\n const value = this.numberParser.parse(\n this.inputValue.replace(this._forcedUnit, '')\n );\n this.value = this.validateInput(value);\n }\n if (changes.has('min') || changes.has('formatOptions')) {\n let inputMode = 'numeric';\n const hasNegative = typeof this.min !== 'undefined' && this.min < 0;\n const { maximumFractionDigits } = this.formatOptions;\n const hasDecimals =\n maximumFractionDigits && maximumFractionDigits > 0;\n /* c8 ignore next 18 */\n if (isIPhone()) {\n // iPhone doesn't have a minus sign in either numeric or decimal.\n // Note this is only for iPhone, not iPad, which always has both\n // minus and decimal in numeric.\n if (hasNegative) {\n inputMode = 'text';\n } else if (hasDecimals) {\n inputMode = 'decimal';\n }\n } else if (isAndroid()) {\n // Android numeric has both a decimal point and minus key.\n // decimal does not have a minus key.\n if (hasNegative) {\n inputMode = 'numeric';\n } else if (hasDecimals) {\n inputMode = 'decimal';\n }\n }\n this.inputElement.inputMode = inputMode;\n }\n }\n\n public connectedCallback(): void {\n super.connectedCallback();\n this.resolveLanguage();\n }\n\n public disconnectedCallback(): void {\n this.resolveLanguage();\n super.disconnectedCallback();\n }\n\n private resolveLanguage(): void {\n const queryThemeEvent = new CustomEvent<ProvideLang>(\n 'sp-language-context',\n {\n bubbles: true,\n composed: true,\n detail: {\n callback: (lang: string) => {\n this.resolvedLanguage = lang;\n },\n },\n cancelable: true,\n }\n );\n this.dispatchEvent(queryThemeEvent);\n }\n}\n"]}
|