@descope/web-components-ui 1.135.0 → 1.137.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +305 -253
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +290 -253
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/{2739.js → 3685.js} +2 -2
- package/dist/umd/3685.js.map +1 -0
- package/dist/umd/8961.js +1 -1
- package/dist/umd/8961.js.map +1 -1
- package/dist/umd/9365.js +1 -1
- package/dist/umd/9365.js.map +1 -1
- package/dist/umd/DescopeDev.js +1 -1
- package/dist/umd/DescopeDev.js.map +1 -1
- package/dist/umd/boolean-fields-descope-checkbox-index-js.js +1 -1
- package/dist/umd/boolean-fields-descope-checkbox-index-js.js.map +1 -1
- package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +1 -1
- package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js.map +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
- package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
- package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -1
- package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -1
- package/dist/umd/descope-email-field-index-js.js +4 -4
- package/dist/umd/descope-email-field-index-js.js.map +1 -1
- package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
- package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js.map +1 -1
- package/dist/umd/descope-grid-index-js.js +1 -1
- package/dist/umd/descope-grid-index-js.js.map +1 -1
- package/dist/umd/descope-multi-select-combo-box-index-js.js +1 -1
- package/dist/umd/descope-multi-select-combo-box-index-js.js.map +1 -1
- package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
- package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js.map +1 -1
- package/dist/umd/descope-new-password-index-js.js +1 -1
- package/dist/umd/descope-new-password-index-js.js.map +1 -1
- package/dist/umd/descope-number-field-index-js.js +1 -1
- package/dist/umd/descope-number-field-index-js.js.map +1 -1
- package/dist/umd/descope-passcode-index-js.js +2 -2
- package/dist/umd/descope-passcode-index-js.js.map +1 -1
- package/dist/umd/descope-password-index-js.js +1 -1
- package/dist/umd/descope-password-index-js.js.map +1 -1
- package/dist/umd/descope-radio-group-index-js.js +1 -1
- package/dist/umd/descope-radio-group-index-js.js.map +1 -1
- package/dist/umd/descope-scopes-list-index-js.js +1 -1
- package/dist/umd/descope-scopes-list-index-js.js.map +1 -1
- package/dist/umd/descope-security-questions-setup-index-js.js +1 -1
- package/dist/umd/descope-security-questions-setup-index-js.js.map +1 -1
- package/dist/umd/descope-security-questions-verify-index-js.js +2 -2
- package/dist/umd/descope-security-questions-verify-index-js.js.map +1 -1
- package/dist/umd/descope-text-area-index-js.js +1 -1
- package/dist/umd/descope-text-area-index-js.js.map +1 -1
- package/dist/umd/descope-text-field-index-js.js +2 -2
- package/dist/umd/descope-text-field-index-js.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
- package/dist/umd/mapping-fields-descope-mappings-field-index-js.js.map +1 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
- package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js.map +1 -1
- package/package.json +24 -24
- package/src/constants.js +1 -1
- package/src/helpers/themeHelpers/index.js +33 -4
- package/src/mixins/createStyleMixin/helpers.js +1 -1
- package/src/mixins/createStyleMixin/index.js +7 -1
- package/src/theme/components/container.js +2 -1
- package/dist/umd/2739.js.map +0 -1
package/dist/cjs/index.cjs.js
CHANGED
@@ -32,7 +32,7 @@ var zxcvbnCommonPackage__namespace = /*#__PURE__*/_interopNamespaceDefault(zxcvb
|
|
32
32
|
var zxcvbnEnPackage__namespace = /*#__PURE__*/_interopNamespaceDefault(zxcvbnEnPackage);
|
33
33
|
|
34
34
|
const DESCOPE_PREFIX$1 = 'descope';
|
35
|
-
const CSS_SELECTOR_SPECIFIER_MULTIPLY$1 =
|
35
|
+
const CSS_SELECTOR_SPECIFIER_MULTIPLY$1 = 5;
|
36
36
|
const BASE_THEME_SECTION$1 = 'host';
|
37
37
|
const PORTAL_THEME_PREFIX$1 = '@';
|
38
38
|
|
@@ -199,7 +199,7 @@ const forwardProps$3 = (src, target, props = []) => {
|
|
199
199
|
};
|
200
200
|
|
201
201
|
const DESCOPE_PREFIX = 'descope';
|
202
|
-
const CSS_SELECTOR_SPECIFIER_MULTIPLY =
|
202
|
+
const CSS_SELECTOR_SPECIFIER_MULTIPLY = 5;
|
203
203
|
const BASE_THEME_SECTION = 'host';
|
204
204
|
|
205
205
|
const kebabCase = (str) =>
|
@@ -643,6 +643,241 @@ const createHelperVars$1 = (theme, prefix) => {
|
|
643
643
|
return [res.theme, res.useVars, res.vars];
|
644
644
|
};
|
645
645
|
|
646
|
+
const colorGaps = {
|
647
|
+
darkLight: 0.4,
|
648
|
+
highlight: 0.8,
|
649
|
+
contrast: 1,
|
650
|
+
edgeColor: {
|
651
|
+
darkLight: 0.25,
|
652
|
+
highlight: 0.1,
|
653
|
+
},
|
654
|
+
};
|
655
|
+
|
656
|
+
const darken = (c, percentage) => c.darken(percentage).hex();
|
657
|
+
|
658
|
+
const contrast = (c) => {
|
659
|
+
const isDark = c.isDark();
|
660
|
+
return c
|
661
|
+
.mix(Color(isDark ? 'white' : 'black'), colorGaps.contrast)
|
662
|
+
.saturate(1)
|
663
|
+
.hex();
|
664
|
+
};
|
665
|
+
|
666
|
+
const lighten = (c, percentage) => {
|
667
|
+
const isDark = c.lightness() < 0.5;
|
668
|
+
|
669
|
+
if (isDark) {
|
670
|
+
return c.lightness(percentage * 100).hex();
|
671
|
+
}
|
672
|
+
|
673
|
+
return c.lighten(percentage).hex();
|
674
|
+
};
|
675
|
+
|
676
|
+
const isNearBlack = (color) => color.luminosity() < 0.01;
|
677
|
+
const isNearWhite = (color) => color.luminosity() > 0.99;
|
678
|
+
|
679
|
+
const generateDarkColor = (color, theme) => {
|
680
|
+
if (theme === 'dark') {
|
681
|
+
return isNearWhite(color)
|
682
|
+
? darken(color, colorGaps.edgeColor.darkLight)
|
683
|
+
: lighten(color, colorGaps.darkLight);
|
684
|
+
}
|
685
|
+
|
686
|
+
return isNearBlack(color)
|
687
|
+
? lighten(color, colorGaps.edgeColor.darkLight)
|
688
|
+
: darken(color, colorGaps.darkLight);
|
689
|
+
};
|
690
|
+
|
691
|
+
const generateLightColor = (color, theme) => {
|
692
|
+
if (theme === 'dark') {
|
693
|
+
return isNearBlack(color)
|
694
|
+
? lighten(color, colorGaps.edgeColor.darkLight)
|
695
|
+
: darken(color, colorGaps.darkLight);
|
696
|
+
}
|
697
|
+
|
698
|
+
return isNearWhite(color)
|
699
|
+
? darken(color, colorGaps.edgeColor.darkLight)
|
700
|
+
: lighten(color, colorGaps.darkLight);
|
701
|
+
};
|
702
|
+
|
703
|
+
const generateHighlightColor = (color, theme) => {
|
704
|
+
if (theme === 'dark') {
|
705
|
+
return isNearBlack(color)
|
706
|
+
? lighten(color, colorGaps.edgeColor.highlight)
|
707
|
+
: darken(color, colorGaps.highlight);
|
708
|
+
}
|
709
|
+
|
710
|
+
return isNearWhite(color)
|
711
|
+
? darken(color, colorGaps.edgeColor.highlight)
|
712
|
+
: lighten(color, colorGaps.highlight);
|
713
|
+
};
|
714
|
+
|
715
|
+
const genColor = (color, theme) => {
|
716
|
+
const mainColor = new Color(color.main || color);
|
717
|
+
|
718
|
+
const res = {
|
719
|
+
main: mainColor.hex(),
|
720
|
+
dark: color.dark || generateDarkColor(mainColor, theme),
|
721
|
+
light: color.light || generateLightColor(mainColor, theme),
|
722
|
+
highlight: color.highlight || generateHighlightColor(mainColor, theme),
|
723
|
+
contrast: color.contrast || contrast(mainColor),
|
724
|
+
};
|
725
|
+
|
726
|
+
return res;
|
727
|
+
};
|
728
|
+
|
729
|
+
const genColors = (colors) => {
|
730
|
+
return Object.keys(colors).reduce((acc, colorName) => {
|
731
|
+
const currentColor = colors[colorName];
|
732
|
+
|
733
|
+
return Object.assign(acc, {
|
734
|
+
[colorName]: genColor(currentColor),
|
735
|
+
});
|
736
|
+
}, {});
|
737
|
+
};
|
738
|
+
|
739
|
+
const useHostExternalPadding = (cssVarList) => `
|
740
|
+
:host {
|
741
|
+
padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))
|
742
|
+
}
|
743
|
+
`;
|
744
|
+
|
745
|
+
const resetInputFieldUnderlayingBorder = (name) => `
|
746
|
+
${name}::part(input-field)::after {
|
747
|
+
border: none;
|
748
|
+
}
|
749
|
+
`;
|
750
|
+
|
751
|
+
const resetInitialHeight = (name) => `
|
752
|
+
${name}::before {
|
753
|
+
height: unset;
|
754
|
+
}
|
755
|
+
`;
|
756
|
+
|
757
|
+
const resetInputElement = (name) => `
|
758
|
+
${name} > input {
|
759
|
+
-webkit-mask-image: none;
|
760
|
+
min-height: 0;
|
761
|
+
box-sizing: border-box;
|
762
|
+
}
|
763
|
+
`;
|
764
|
+
|
765
|
+
const resetInputContainer = (name) => `
|
766
|
+
${name} {
|
767
|
+
margin: 0;
|
768
|
+
padding: 0;
|
769
|
+
width: 100%;
|
770
|
+
height: 100%;
|
771
|
+
box-sizing: border-box;
|
772
|
+
}
|
773
|
+
`;
|
774
|
+
|
775
|
+
const resetInputField = (name) => `
|
776
|
+
${name}::part(input-field) {
|
777
|
+
overflow: hidden;
|
778
|
+
padding: 0;
|
779
|
+
box-shadow: none;
|
780
|
+
}
|
781
|
+
`;
|
782
|
+
|
783
|
+
const resetInputCursor = (name) => `
|
784
|
+
${name} > label,
|
785
|
+
${name}::part(label),
|
786
|
+
${name}::part(required-indicator) {
|
787
|
+
cursor: pointer;
|
788
|
+
}
|
789
|
+
`;
|
790
|
+
|
791
|
+
const resetInputPlaceholder = (name, ele = 'input') => `
|
792
|
+
${name}[disabled] > ${ele}:placeholder-shown,
|
793
|
+
${name}[readonly] > ${ele}:placeholder-shown {
|
794
|
+
opacity: 1;
|
795
|
+
}
|
796
|
+
`;
|
797
|
+
|
798
|
+
const resetInputAutoFill = (name, cssVarList) => `
|
799
|
+
${name} input:-webkit-autofill,
|
800
|
+
${name} input:-webkit-autofill::first-line,
|
801
|
+
${name} input:-webkit-autofill:hover,
|
802
|
+
${name} input:-webkit-autofill:active,
|
803
|
+
${name} input:-webkit-autofill:focus {
|
804
|
+
-webkit-text-fill-color: var(${cssVarList.inputValueTextColor});
|
805
|
+
box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;
|
806
|
+
}
|
807
|
+
`;
|
808
|
+
|
809
|
+
const resetInputFieldDefaultWidth = () => `
|
810
|
+
:host {
|
811
|
+
--vaadin-field-default-width: auto;
|
812
|
+
box-sizing: border-box;
|
813
|
+
}
|
814
|
+
`;
|
815
|
+
|
816
|
+
const resetInputReadonlyStyle = (name) => `
|
817
|
+
${name}::part(input-field)::after {
|
818
|
+
opacity: 0;
|
819
|
+
}
|
820
|
+
`;
|
821
|
+
|
822
|
+
const resetInputFieldInvalidBackgroundColor = (name) => `
|
823
|
+
${name}::part(input-field)::after {
|
824
|
+
background: none;
|
825
|
+
}
|
826
|
+
`;
|
827
|
+
|
828
|
+
const resetInputOverrides = (name, cssVarList) => `
|
829
|
+
${resetInputContainer(name)}
|
830
|
+
${resetInputCursor(name)}
|
831
|
+
${resetInputPlaceholder(name)}
|
832
|
+
${resetInputField(name)}
|
833
|
+
${resetInputAutoFill(name, cssVarList)}
|
834
|
+
${resetInputFieldInvalidBackgroundColor(name)}
|
835
|
+
${resetInitialHeight(name)}
|
836
|
+
${resetInputElement(name)}
|
837
|
+
${resetInputFieldUnderlayingBorder(name)}
|
838
|
+
`;
|
839
|
+
|
840
|
+
// This function is used to support RTL correctly for input components.
|
841
|
+
// It also fixes the error message to be displayed LTR since we currently
|
842
|
+
// don't support RTL for error messages.
|
843
|
+
const resetInputLabelPosition = (name) => `
|
844
|
+
:host ::part(error-message) {
|
845
|
+
direction: ltr;
|
846
|
+
}
|
847
|
+
:host([required]) ::part(required-indicator) {
|
848
|
+
width: 1em;
|
849
|
+
display: inline-flex;
|
850
|
+
}
|
851
|
+
:host([required]) ::part(required-indicator)::after {
|
852
|
+
position: static;
|
853
|
+
}
|
854
|
+
:host([has-label]) ::part(label) {
|
855
|
+
padding-right: 0;
|
856
|
+
padding-bottom: 0;
|
857
|
+
display: flex;
|
858
|
+
width: 100%;
|
859
|
+
}
|
860
|
+
${name} [slot="label"] {
|
861
|
+
max-width: calc(100% - 1em);
|
862
|
+
overflow: hidden;
|
863
|
+
text-overflow: ellipsis;
|
864
|
+
padding-bottom: 0.5em;
|
865
|
+
}
|
866
|
+
`;
|
867
|
+
|
868
|
+
const inputFloatingLabelStyle = () => {
|
869
|
+
return `
|
870
|
+
:host([label-type="floating"]) {
|
871
|
+
position: relative;
|
872
|
+
}
|
873
|
+
:host([label-type="floating"][has-label]) > ::part(label) {
|
874
|
+
z-index: 1;
|
875
|
+
padding: 0;
|
876
|
+
width: auto;
|
877
|
+
}
|
878
|
+
`;
|
879
|
+
};
|
880
|
+
|
646
881
|
const getVarName = (path) => getCssVarName$1(DESCOPE_PREFIX$1, ...path);
|
647
882
|
|
648
883
|
// lodash.set alternative
|
@@ -705,6 +940,15 @@ const globalsThemeToStyle = (theme, themeName = '') => {
|
|
705
940
|
return `*[data-theme="${themeName}"] {${style}}`;
|
706
941
|
};
|
707
942
|
|
943
|
+
function splitAmpersands(str) {
|
944
|
+
const match = str.match(/^(&+)?(.*)$/);
|
945
|
+
return [match[1] || '', match[2] || ''];
|
946
|
+
}
|
947
|
+
|
948
|
+
// st attributes are also using selector multiplication
|
949
|
+
// so we need to limit the multiplication
|
950
|
+
const MAX_SELECTOR_MULTIPLY = 3;
|
951
|
+
|
708
952
|
const componentsThemeToStyleObj = (componentsTheme) =>
|
709
953
|
transformTheme(componentsTheme, [], (path, val) => {
|
710
954
|
const [component, ...restPath] = path;
|
@@ -729,11 +973,22 @@ const componentsThemeToStyleObj = (componentsTheme) =>
|
|
729
973
|
// do not start with underscore -> key:value, must have 2 no underscore attrs in a row
|
730
974
|
// starts with underscore -> attribute selector
|
731
975
|
const attrsSelector = restPath.reduce((acc, section, idx) => {
|
732
|
-
|
976
|
+
const [ampersands, content] = splitAmpersands(section);
|
977
|
+
const selectorMultiplier = Math.min(
|
978
|
+
ampersands.length + 1, // if there are no & we need to multiply by 1
|
979
|
+
MAX_SELECTOR_MULTIPLY
|
980
|
+
);
|
981
|
+
|
982
|
+
if (content.startsWith('_'))
|
983
|
+
return acc + `[${kebabCase$1(content.replace(/^_/, ''))}="true"]`.repeat(selectorMultiplier);
|
733
984
|
|
734
985
|
const nextSection = restPath[idx + 1];
|
735
986
|
|
736
|
-
if (
|
987
|
+
if (
|
988
|
+
typeof nextSection !== 'string' ||
|
989
|
+
nextSection.startsWith('_') ||
|
990
|
+
nextSection.startsWith('&')
|
991
|
+
) {
|
737
992
|
// eslint-disable-next-line no-console
|
738
993
|
console.error(
|
739
994
|
'theme generator',
|
@@ -742,7 +997,12 @@ const componentsThemeToStyleObj = (componentsTheme) =>
|
|
742
997
|
return acc;
|
743
998
|
}
|
744
999
|
|
745
|
-
return
|
1000
|
+
return (
|
1001
|
+
acc +
|
1002
|
+
`[${kebabCase$1(content)}="${restPath.splice(idx + 1, 1).join('')}"]`.repeat(
|
1003
|
+
selectorMultiplier
|
1004
|
+
)
|
1005
|
+
);
|
746
1006
|
}, '');
|
747
1007
|
|
748
1008
|
const selector = `:host${attrsSelector ? `(${attrsSelector})` : ''}`;
|
@@ -776,7 +1036,9 @@ const createComponentsTheme = (componentsTheme) => {
|
|
776
1036
|
return Object.assign(acc, {
|
777
1037
|
[componentName]: Object.keys(componentThemes).reduce(
|
778
1038
|
(res, theme) =>
|
779
|
-
Object.assign(res, {
|
1039
|
+
Object.assign(res, {
|
1040
|
+
[theme]: componentsThemeToStyle(componentThemes[theme]),
|
1041
|
+
}),
|
780
1042
|
{}
|
781
1043
|
),
|
782
1044
|
});
|
@@ -812,99 +1074,6 @@ const createHelperVars = (theme, prefix) => {
|
|
812
1074
|
return [res.theme, res.useVars, res.vars];
|
813
1075
|
};
|
814
1076
|
|
815
|
-
const colorGaps = {
|
816
|
-
darkLight: 0.4,
|
817
|
-
highlight: 0.8,
|
818
|
-
contrast: 1,
|
819
|
-
edgeColor: {
|
820
|
-
darkLight: 0.25,
|
821
|
-
highlight: 0.1,
|
822
|
-
},
|
823
|
-
};
|
824
|
-
|
825
|
-
const darken = (c, percentage) => c.darken(percentage).hex();
|
826
|
-
|
827
|
-
const contrast = (c) => {
|
828
|
-
const isDark = c.isDark();
|
829
|
-
return c
|
830
|
-
.mix(Color(isDark ? 'white' : 'black'), colorGaps.contrast)
|
831
|
-
.saturate(1)
|
832
|
-
.hex();
|
833
|
-
};
|
834
|
-
|
835
|
-
const lighten = (c, percentage) => {
|
836
|
-
const isDark = c.lightness() < 0.5;
|
837
|
-
|
838
|
-
if (isDark) {
|
839
|
-
return c.lightness(percentage * 100).hex();
|
840
|
-
}
|
841
|
-
|
842
|
-
return c.lighten(percentage).hex();
|
843
|
-
};
|
844
|
-
|
845
|
-
const isNearBlack = (color) => color.luminosity() < 0.01;
|
846
|
-
const isNearWhite = (color) => color.luminosity() > 0.99;
|
847
|
-
|
848
|
-
const generateDarkColor = (color, theme) => {
|
849
|
-
if (theme === 'dark') {
|
850
|
-
return isNearWhite(color)
|
851
|
-
? darken(color, colorGaps.edgeColor.darkLight)
|
852
|
-
: lighten(color, colorGaps.darkLight);
|
853
|
-
}
|
854
|
-
|
855
|
-
return isNearBlack(color)
|
856
|
-
? lighten(color, colorGaps.edgeColor.darkLight)
|
857
|
-
: darken(color, colorGaps.darkLight);
|
858
|
-
};
|
859
|
-
|
860
|
-
const generateLightColor = (color, theme) => {
|
861
|
-
if (theme === 'dark') {
|
862
|
-
return isNearBlack(color)
|
863
|
-
? lighten(color, colorGaps.edgeColor.darkLight)
|
864
|
-
: darken(color, colorGaps.darkLight);
|
865
|
-
}
|
866
|
-
|
867
|
-
return isNearWhite(color)
|
868
|
-
? darken(color, colorGaps.edgeColor.darkLight)
|
869
|
-
: lighten(color, colorGaps.darkLight);
|
870
|
-
};
|
871
|
-
|
872
|
-
const generateHighlightColor = (color, theme) => {
|
873
|
-
if (theme === 'dark') {
|
874
|
-
return isNearBlack(color)
|
875
|
-
? lighten(color, colorGaps.edgeColor.highlight)
|
876
|
-
: darken(color, colorGaps.highlight);
|
877
|
-
}
|
878
|
-
|
879
|
-
return isNearWhite(color)
|
880
|
-
? darken(color, colorGaps.edgeColor.highlight)
|
881
|
-
: lighten(color, colorGaps.highlight);
|
882
|
-
};
|
883
|
-
|
884
|
-
const genColor = (color, theme) => {
|
885
|
-
const mainColor = new Color(color.main || color);
|
886
|
-
|
887
|
-
const res = {
|
888
|
-
main: mainColor.hex(),
|
889
|
-
dark: color.dark || generateDarkColor(mainColor, theme),
|
890
|
-
light: color.light || generateLightColor(mainColor, theme),
|
891
|
-
highlight: color.highlight || generateHighlightColor(mainColor, theme),
|
892
|
-
contrast: color.contrast || contrast(mainColor),
|
893
|
-
};
|
894
|
-
|
895
|
-
return res;
|
896
|
-
};
|
897
|
-
|
898
|
-
const genColors = (colors) => {
|
899
|
-
return Object.keys(colors).reduce((acc, colorName) => {
|
900
|
-
const currentColor = colors[colorName];
|
901
|
-
|
902
|
-
return Object.assign(acc, {
|
903
|
-
[colorName]: genColor(currentColor),
|
904
|
-
});
|
905
|
-
}, {});
|
906
|
-
};
|
907
|
-
|
908
1077
|
const direction$1 = 'ltr';
|
909
1078
|
|
910
1079
|
const colors$2 = genColors({
|
@@ -1374,8 +1543,7 @@ const createCssVarsList$1 = (componentName, mappings) =>
|
|
1374
1543
|
|
1375
1544
|
// on some cases we need a selector to be more specific than another
|
1376
1545
|
// for this we have this fn that generate a class selector multiple times
|
1377
|
-
const createClassSelectorSpecifier$1 = (className, numOfRepeats) =>
|
1378
|
-
Array(numOfRepeats).fill(`.${className}`).join('');
|
1546
|
+
const createClassSelectorSpecifier$1 = (className, numOfRepeats) => `.${className}`.repeat(numOfRepeats);
|
1379
1547
|
|
1380
1548
|
const STYLE_OVERRIDE_ATTR_PREFIX$1 = 'st';
|
1381
1549
|
|
@@ -1462,20 +1630,24 @@ const createStyleMixin$1 =
|
|
1462
1630
|
|
1463
1631
|
#createOverridesStyle() {
|
1464
1632
|
if (this.#styleAttributes.length) {
|
1465
|
-
|
1633
|
+
let classSpecifier = createClassSelectorSpecifier$1(
|
1466
1634
|
componentName,
|
1467
|
-
CSS_SELECTOR_SPECIFIER_MULTIPLY
|
1635
|
+
CSS_SELECTOR_SPECIFIER_MULTIPLY
|
1468
1636
|
);
|
1637
|
+
const elementId = this.getAttribute('id');
|
1638
|
+
if (elementId) {
|
1639
|
+
// basically this is enough to make the selector more specific
|
1640
|
+
// but just in case there is no id, we will also add the class multiple times
|
1641
|
+
classSpecifier += `#${elementId}`;
|
1642
|
+
}
|
1469
1643
|
|
1470
|
-
this.#overrideStyleEle = injectStyle(
|
1471
|
-
`:host(${classSpecifier}) {}`,
|
1472
|
-
this.#rootElement,
|
1473
|
-
);
|
1644
|
+
this.#overrideStyleEle = injectStyle(`:host(${classSpecifier}) {}`, this.#rootElement);
|
1474
1645
|
}
|
1475
1646
|
}
|
1476
1647
|
|
1648
|
+
|
1477
1649
|
#setAttrOverride(attrName, value) {
|
1478
|
-
const style = this.#overrideStyleEle?.cssRules[0]
|
1650
|
+
const style = this.#overrideStyleEle?.cssRules[0]?.style;
|
1479
1651
|
|
1480
1652
|
if (!style) return;
|
1481
1653
|
|
@@ -3377,7 +3549,7 @@ const createCssVarsList = (componentName, mappings) =>
|
|
3377
3549
|
// on some cases we need a selector to be more specific than another
|
3378
3550
|
// for this we have this fn that generate a class selector multiple times
|
3379
3551
|
const createClassSelectorSpecifier = (className, numOfRepeats) =>
|
3380
|
-
|
3552
|
+
`.${className}`.repeat(numOfRepeats);
|
3381
3553
|
|
3382
3554
|
const STYLE_OVERRIDE_ATTR_PREFIX = 'st';
|
3383
3555
|
|
@@ -3453,10 +3625,16 @@ const createStyleMixin =
|
|
3453
3625
|
|
3454
3626
|
#createOverridesStyle() {
|
3455
3627
|
if (this.#styleAttributes.length) {
|
3456
|
-
|
3628
|
+
let classSpecifier = createClassSelectorSpecifier(
|
3457
3629
|
componentName,
|
3458
3630
|
CSS_SELECTOR_SPECIFIER_MULTIPLY$1
|
3459
3631
|
);
|
3632
|
+
const elementId = this.getAttribute('id');
|
3633
|
+
if (elementId) {
|
3634
|
+
// basically this is enough to make the selector more specific
|
3635
|
+
// but just in case there is no id, we will also add the class multiple times
|
3636
|
+
classSpecifier += `#${elementId}`;
|
3637
|
+
}
|
3460
3638
|
|
3461
3639
|
this.#overrideStyleEle = injectStyle(`:host(${classSpecifier}) {}`, this.#rootElement);
|
3462
3640
|
}
|
@@ -4879,148 +5057,6 @@ var textFieldMappings = {
|
|
4879
5057
|
inputIconColor: { ...inputIcon, property: 'color' },
|
4880
5058
|
};
|
4881
5059
|
|
4882
|
-
const useHostExternalPadding = (cssVarList) => `
|
4883
|
-
:host {
|
4884
|
-
padding: calc(var(${cssVarList.inputOutlineWidth}) + var(${cssVarList.inputOutlineOffset}))
|
4885
|
-
}
|
4886
|
-
`;
|
4887
|
-
|
4888
|
-
const resetInputFieldUnderlayingBorder = (name) => `
|
4889
|
-
${name}::part(input-field)::after {
|
4890
|
-
border: none;
|
4891
|
-
}
|
4892
|
-
`;
|
4893
|
-
|
4894
|
-
const resetInitialHeight = (name) => `
|
4895
|
-
${name}::before {
|
4896
|
-
height: unset;
|
4897
|
-
}
|
4898
|
-
`;
|
4899
|
-
|
4900
|
-
const resetInputElement = (name) => `
|
4901
|
-
${name} > input {
|
4902
|
-
-webkit-mask-image: none;
|
4903
|
-
min-height: 0;
|
4904
|
-
box-sizing: border-box;
|
4905
|
-
}
|
4906
|
-
`;
|
4907
|
-
|
4908
|
-
const resetInputContainer = (name) => `
|
4909
|
-
${name} {
|
4910
|
-
margin: 0;
|
4911
|
-
padding: 0;
|
4912
|
-
width: 100%;
|
4913
|
-
height: 100%;
|
4914
|
-
box-sizing: border-box;
|
4915
|
-
}
|
4916
|
-
`;
|
4917
|
-
|
4918
|
-
const resetInputField = (name) => `
|
4919
|
-
${name}::part(input-field) {
|
4920
|
-
overflow: hidden;
|
4921
|
-
padding: 0;
|
4922
|
-
box-shadow: none;
|
4923
|
-
}
|
4924
|
-
`;
|
4925
|
-
|
4926
|
-
const resetInputCursor = (name) => `
|
4927
|
-
${name} > label,
|
4928
|
-
${name}::part(label),
|
4929
|
-
${name}::part(required-indicator) {
|
4930
|
-
cursor: pointer;
|
4931
|
-
}
|
4932
|
-
`;
|
4933
|
-
|
4934
|
-
const resetInputPlaceholder = (name, ele = 'input') => `
|
4935
|
-
${name}[disabled] > ${ele}:placeholder-shown,
|
4936
|
-
${name}[readonly] > ${ele}:placeholder-shown {
|
4937
|
-
opacity: 1;
|
4938
|
-
}
|
4939
|
-
`;
|
4940
|
-
|
4941
|
-
const resetInputAutoFill = (name, cssVarList) => `
|
4942
|
-
${name} input:-webkit-autofill,
|
4943
|
-
${name} input:-webkit-autofill::first-line,
|
4944
|
-
${name} input:-webkit-autofill:hover,
|
4945
|
-
${name} input:-webkit-autofill:active,
|
4946
|
-
${name} input:-webkit-autofill:focus {
|
4947
|
-
-webkit-text-fill-color: var(${cssVarList.inputValueTextColor});
|
4948
|
-
box-shadow: 0 0 0 var(${cssVarList.inputHeight}) var(${cssVarList.inputBackgroundColor}) inset;
|
4949
|
-
}
|
4950
|
-
`;
|
4951
|
-
|
4952
|
-
const resetInputFieldDefaultWidth = () => `
|
4953
|
-
:host {
|
4954
|
-
--vaadin-field-default-width: auto;
|
4955
|
-
box-sizing: border-box;
|
4956
|
-
}
|
4957
|
-
`;
|
4958
|
-
|
4959
|
-
const resetInputReadonlyStyle = (name) => `
|
4960
|
-
${name}::part(input-field)::after {
|
4961
|
-
opacity: 0;
|
4962
|
-
}
|
4963
|
-
`;
|
4964
|
-
|
4965
|
-
const resetInputFieldInvalidBackgroundColor = (name) => `
|
4966
|
-
${name}::part(input-field)::after {
|
4967
|
-
background: none;
|
4968
|
-
}
|
4969
|
-
`;
|
4970
|
-
|
4971
|
-
const resetInputOverrides = (name, cssVarList) => `
|
4972
|
-
${resetInputContainer(name)}
|
4973
|
-
${resetInputCursor(name)}
|
4974
|
-
${resetInputPlaceholder(name)}
|
4975
|
-
${resetInputField(name)}
|
4976
|
-
${resetInputAutoFill(name, cssVarList)}
|
4977
|
-
${resetInputFieldInvalidBackgroundColor(name)}
|
4978
|
-
${resetInitialHeight(name)}
|
4979
|
-
${resetInputElement(name)}
|
4980
|
-
${resetInputFieldUnderlayingBorder(name)}
|
4981
|
-
`;
|
4982
|
-
|
4983
|
-
// This function is used to support RTL correctly for input components.
|
4984
|
-
// It also fixes the error message to be displayed LTR since we currently
|
4985
|
-
// don't support RTL for error messages.
|
4986
|
-
const resetInputLabelPosition = (name) => `
|
4987
|
-
:host ::part(error-message) {
|
4988
|
-
direction: ltr;
|
4989
|
-
}
|
4990
|
-
:host([required]) ::part(required-indicator) {
|
4991
|
-
width: 1em;
|
4992
|
-
display: inline-flex;
|
4993
|
-
}
|
4994
|
-
:host([required]) ::part(required-indicator)::after {
|
4995
|
-
position: static;
|
4996
|
-
}
|
4997
|
-
:host([has-label]) ::part(label) {
|
4998
|
-
padding-right: 0;
|
4999
|
-
padding-bottom: 0;
|
5000
|
-
display: flex;
|
5001
|
-
width: 100%;
|
5002
|
-
}
|
5003
|
-
${name} [slot="label"] {
|
5004
|
-
max-width: calc(100% - 1em);
|
5005
|
-
overflow: hidden;
|
5006
|
-
text-overflow: ellipsis;
|
5007
|
-
padding-bottom: 0.5em;
|
5008
|
-
}
|
5009
|
-
`;
|
5010
|
-
|
5011
|
-
const inputFloatingLabelStyle = () => {
|
5012
|
-
return `
|
5013
|
-
:host([label-type="floating"]) {
|
5014
|
-
position: relative;
|
5015
|
-
}
|
5016
|
-
:host([label-type="floating"][has-label]) > ::part(label) {
|
5017
|
-
z-index: 1;
|
5018
|
-
padding: 0;
|
5019
|
-
width: auto;
|
5020
|
-
}
|
5021
|
-
`;
|
5022
|
-
};
|
5023
|
-
|
5024
5060
|
const componentName$1c = getComponentName$1('text-field');
|
5025
5061
|
|
5026
5062
|
const observedAttrs$4 = ['type', 'label-type', 'copy-to-clipboard'];
|
@@ -6734,7 +6770,8 @@ const container = {
|
|
6734
6770
|
},
|
6735
6771
|
},
|
6736
6772
|
|
6737
|
-
|
6773
|
+
// we must add & to override the root container style (applied via the styles page)
|
6774
|
+
'&borderRadius': {
|
6738
6775
|
sm: { [compVars$8.borderRadius]: globalRefs$B.radius.sm },
|
6739
6776
|
md: { [compVars$8.borderRadius]: globalRefs$B.radius.md },
|
6740
6777
|
lg: { [compVars$8.borderRadius]: globalRefs$B.radius.lg },
|
@@ -23405,8 +23442,23 @@ exports.genColors = genColors;
|
|
23405
23442
|
exports.getThemeRefs = getThemeRefs;
|
23406
23443
|
exports.getThemeVars = getThemeVars;
|
23407
23444
|
exports.globalsThemeToStyle = globalsThemeToStyle;
|
23445
|
+
exports.inputFloatingLabelStyle = inputFloatingLabelStyle;
|
23446
|
+
exports.resetInitialHeight = resetInitialHeight;
|
23447
|
+
exports.resetInputAutoFill = resetInputAutoFill;
|
23448
|
+
exports.resetInputContainer = resetInputContainer;
|
23449
|
+
exports.resetInputCursor = resetInputCursor;
|
23450
|
+
exports.resetInputElement = resetInputElement;
|
23451
|
+
exports.resetInputField = resetInputField;
|
23452
|
+
exports.resetInputFieldDefaultWidth = resetInputFieldDefaultWidth;
|
23453
|
+
exports.resetInputFieldInvalidBackgroundColor = resetInputFieldInvalidBackgroundColor;
|
23454
|
+
exports.resetInputFieldUnderlayingBorder = resetInputFieldUnderlayingBorder;
|
23455
|
+
exports.resetInputLabelPosition = resetInputLabelPosition;
|
23456
|
+
exports.resetInputOverrides = resetInputOverrides;
|
23457
|
+
exports.resetInputPlaceholder = resetInputPlaceholder;
|
23458
|
+
exports.resetInputReadonlyStyle = resetInputReadonlyStyle;
|
23408
23459
|
exports.themeToCSSVarsObj = themeToCSSVarsObj;
|
23409
23460
|
exports.themeToStyle = themeToStyle;
|
23410
23461
|
exports.themeVars = themeVars;
|
23462
|
+
exports.useHostExternalPadding = useHostExternalPadding;
|
23411
23463
|
exports.useVar = useVar;
|
23412
23464
|
//# sourceMappingURL=index.cjs.js.map
|