@ui5/webcomponents-base 2.17.0-rc.3 → 2.17.0-rc.5

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/.tsbuildinfobuild +1 -1
  3. package/dist/InitialConfiguration.d.ts +2 -1
  4. package/dist/InitialConfiguration.js +6 -1
  5. package/dist/InitialConfiguration.js.map +1 -1
  6. package/dist/UI5Element.d.ts +12 -1
  7. package/dist/UI5Element.js +12 -1
  8. package/dist/UI5Element.js.map +1 -1
  9. package/dist/config/Theme.d.ts +21 -1
  10. package/dist/config/Theme.js +30 -2
  11. package/dist/config/Theme.js.map +1 -1
  12. package/dist/features/OpenUI5Support.js +3 -3
  13. package/dist/features/OpenUI5Support.js.map +1 -1
  14. package/dist/features/patchPopup.d.ts +1 -1
  15. package/dist/features/patchPopup.js +1 -2
  16. package/dist/features/patchPopup.js.map +1 -1
  17. package/dist/generated/VersionInfo.js +3 -3
  18. package/dist/generated/VersionInfo.js.map +1 -1
  19. package/dist/generated/css/BusyIndicator.css.d.ts +1 -1
  20. package/dist/generated/css/BusyIndicator.css.js +1 -1
  21. package/dist/generated/css/BusyIndicator.css.js.map +1 -1
  22. package/dist/generated/css/SystemCSSVars.css.d.ts +1 -1
  23. package/dist/generated/css/SystemCSSVars.css.js +1 -1
  24. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  25. package/dist/prod/InitialConfiguration.js +1 -1
  26. package/dist/prod/InitialConfiguration.js.map +3 -3
  27. package/dist/prod/UI5Element.js.map +2 -2
  28. package/dist/prod/config/Theme.js +1 -1
  29. package/dist/prod/config/Theme.js.map +3 -3
  30. package/dist/prod/features/OpenUI5Support.js +1 -1
  31. package/dist/prod/features/OpenUI5Support.js.map +3 -3
  32. package/dist/prod/features/patchPopup.js +1 -1
  33. package/dist/prod/features/patchPopup.js.map +3 -3
  34. package/dist/prod/generated/VersionInfo.js +1 -1
  35. package/dist/prod/generated/VersionInfo.js.map +1 -1
  36. package/dist/prod/generated/css/BusyIndicator.css.js +1 -1
  37. package/dist/prod/generated/css/BusyIndicator.css.js.map +1 -1
  38. package/dist/prod/generated/css/SystemCSSVars.css.js +1 -1
  39. package/dist/prod/generated/css/SystemCSSVars.css.js.map +1 -1
  40. package/dist/prod/theming/applyTheme.js +1 -1
  41. package/dist/prod/theming/applyTheme.js.map +3 -3
  42. package/dist/prod/util/SelectionAssistant.js.map +1 -1
  43. package/dist/theming/applyTheme.js +4 -0
  44. package/dist/theming/applyTheme.js.map +1 -1
  45. package/dist/types.d.ts +1 -0
  46. package/dist/types.js.map +1 -1
  47. package/dist/util/SelectionAssistant.js.map +1 -1
  48. package/package-scripts.cjs +3 -3
  49. package/package.json +3 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/generated/css/BusyIndicator.css.ts"],
4
- "sourcesContent": ["export default `.busy-indicator-wrapper{position:relative;height:100%;width:100%}.busy-indicator-overlay{display:var(--ui5-v2-17-0-rc-2_web_components_busy_indicator_display);position:absolute;inset:0;background:var(--ui5-v2-17-0-rc-2_web_components_busy_indicator_background-color);z-index:99}.busy-indicator-busy-area{display:var(--ui5-v2-17-0-rc-2_web_components_busy_indicator_display);position:absolute;z-index:99;inset:0;justify-content:center;align-items:center;background-color:inherit;flex-direction:column;color:var(--_ui5-v2-17-0-rc-2_busy_indicator_color)}:host([__is-busy]) .busy-indicator-wrapper>:not(.busy-indicator-busy-area):not(.busy-indicator-overlay):not([busy-indicator-before-span]){--ui5-v2-17-0-rc-2_web_components_busy_indicator_display:none}.busy-indicator-busy-area:focus{outline:var(--_ui5-v2-17-0-rc-2_busy_indicator_focus_outline);outline-offset:-.125rem}.busy-indicator-circle{width:1rem;height:1rem;display:inline-block;background-color:currentColor;border-radius:50%}.circle-animation-0{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11)}.circle-animation-1{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.2s}.circle-animation-2{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.4s}.sapUiLocalBusy{--ui5-v2-17-0-rc-2_web_components_busy_indicator_display:none}.busy-indicator-wrapper [ui5-busy-indicator]{display:none}@keyframes grow{0%,100%,50%{-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}`;"],
4
+ "sourcesContent": ["export default `.busy-indicator-wrapper{position:relative;height:100%;width:100%}.busy-indicator-overlay{display:var(--ui5-v2-17-0-rc-4_web_components_busy_indicator_display);position:absolute;inset:0;background:var(--ui5-v2-17-0-rc-4_web_components_busy_indicator_background-color);z-index:99}.busy-indicator-busy-area{display:var(--ui5-v2-17-0-rc-4_web_components_busy_indicator_display);position:absolute;z-index:99;inset:0;justify-content:center;align-items:center;background-color:inherit;flex-direction:column;color:var(--_ui5-v2-17-0-rc-4_busy_indicator_color)}:host([__is-busy]) .busy-indicator-wrapper>:not(.busy-indicator-busy-area):not(.busy-indicator-overlay):not([busy-indicator-before-span]){--ui5-v2-17-0-rc-4_web_components_busy_indicator_display:none}.busy-indicator-busy-area:focus{outline:var(--_ui5-v2-17-0-rc-4_busy_indicator_focus_outline);outline-offset:-.125rem}.busy-indicator-circle{width:1rem;height:1rem;display:inline-block;background-color:currentColor;border-radius:50%}.circle-animation-0{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11)}.circle-animation-1{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.2s}.circle-animation-2{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.4s}.sapUiLocalBusy{--ui5-v2-17-0-rc-4_web_components_busy_indicator_display:none}.busy-indicator-wrapper [ui5-busy-indicator]{display:none}@keyframes grow{0%,100%,50%{-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}`;"],
5
5
  "mappings": "aAAA,cAAe",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";export default":root{--_ui5-v2-17-0-rc-2_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5-v2-17-0-rc-2_content_density:compact}";
1
+ "use strict";export default":root{--_ui5-v2-17-0-rc-4_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5-v2-17-0-rc-4_content_density:compact}";
2
2
  //# sourceMappingURL=SystemCSSVars.css.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/generated/css/SystemCSSVars.css.ts"],
4
- "sourcesContent": ["export default `:root{--_ui5-v2-17-0-rc-2_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5-v2-17-0-rc-2_content_density:compact}`;"],
4
+ "sourcesContent": ["export default `:root{--_ui5-v2-17-0-rc-4_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5-v2-17-0-rc-4_content_density:compact}`;"],
5
5
  "mappings": "aAAA,cAAe",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";import{getThemeProperties as i,getRegisteredPackages as n,isThemeRegistered as g}from"../asset-registries/Themes.js";import{createOrUpdateStyle as c}from"../ManagedStyles.js";import p from"./getThemeDesignerTheme.js";import{fireThemeLoaded as T}from"./ThemeLoaded.js";import{attachCustomThemeStylesToHead as d,getThemeRoot as f}from"../config/ThemeRoot.js";import{DEFAULT_THEME as h}from"../generated/AssetParameters.js";import{getCurrentRuntimeIndex as l}from"../Runtimes.js";export let _lib="ui5",_package="webcomponents-theming";const a="@"+_lib+"/"+_package,u=()=>n().has(a),P=async e=>{if(!u())return;const t=await i(a,e);t&&c(t,"data-ui5-theme-properties",a,e)},y=async(e,t)=>{const s=[...n()].map(async r=>{if(r===a)return;const o=await i(r,e,t);o&&c(o,`data-ui5-component-properties-${l()}`,r)});return Promise.all(s)},k=async e=>{f()&&await d(e);const t=p();if(t)return t},E=async e=>{const t=await k(e),s=(g(e)?e:t&&t.baseThemeName)||h;await P(s),await y(s,t&&t.themeName===e?e:void 0),T(e)};export default E;
1
+ "use strict";import{getThemeProperties as i,getRegisteredPackages as n,isThemeRegistered as g}from"../asset-registries/Themes.js";import{createOrUpdateStyle as m}from"../ManagedStyles.js";import p from"./getThemeDesignerTheme.js";import{fireThemeLoaded as T}from"./ThemeLoaded.js";import{attachCustomThemeStylesToHead as d,getThemeRoot as f}from"../config/ThemeRoot.js";import{DEFAULT_THEME as h}from"../generated/AssetParameters.js";import{getCurrentRuntimeIndex as u}from"../Runtimes.js";import{getLoadBaseThemingCSSVariables as l}from"../config/Theme.js";export let _lib="ui5",_package="webcomponents-theming";const r="@"+_lib+"/"+_package,P=()=>n().has(r),y=async e=>{if(!P())return;const t=await i(r,e);t&&m(t,"data-ui5-theme-properties",r,e)},w=async(e,t)=>{const s=[...n()].map(async a=>{if(l()!==!0&&a===`${r}-raw`||a===r)return;const o=await i(a,e,t);o&&m(o,`data-ui5-component-properties-${u()}`,a)});return Promise.all(s)},E=async e=>{f()&&await d(e);const t=p();if(t)return t},k=async e=>{const t=await E(e),s=(g(e)?e:t&&t.baseThemeName)||h;await y(s),await w(s,t&&t.themeName===e?e:void 0),T(e)};export default k;
2
2
  //# sourceMappingURL=applyTheme.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/theming/applyTheme.ts"],
4
- "sourcesContent": ["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\tif (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\t}\n\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\t// Detect external theme if available (e.g., from theme designer or custom theme root)\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Determine which theme to use for component packages:\n\t// 1. If the requested theme is registered, use it directly\n\t// 2. If external theme exists, use its base theme (e.g., \"my_custom_theme\" extends \"sap_fiori_3\")\n\t// 3. Otherwise, fallback to the default theme\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tconst effectiveTheme = packagesTheme || DEFAULT_THEME;\n\n\t// Load base theme properties\n\tawait loadThemeBase(effectiveTheme);\n\n\t// Load component-specific theme properties\n\t// Pass external theme name only if it matches the requested theme to avoid conflicts\n\tawait loadComponentPackages(effectiveTheme, extTheme && extTheme.themeName === theme ? theme : undefined);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"],
5
- "mappings": "aAAA,OAAS,sBAAAA,EAAoB,yBAAAC,EAAuB,qBAAAC,MAAyB,gCAC7E,OAAS,uBAAAC,MAA2B,sBACpC,OAAOC,MAA2B,6BAClC,OAAS,mBAAAC,MAAuB,mBAChC,OAAS,iCAAAC,EAA+B,gBAAAC,MAAoB,yBAC5D,OAAS,iBAAAC,MAAqB,kCAC9B,OAAS,0BAAAC,MAA8B,iBAGhC,WAAI,KAAO,MAEP,SAAW,wBAEtB,MAAMC,EAAqB,IAAM,KAAO,IAAM,SAExCC,EAAwB,IACFV,EAAsB,EACvB,IAAIS,CAAkB,EAG3CE,EAAgB,MAAOC,GAAkB,CAC9C,GAAI,CAACF,EAAsB,EAC1B,OAGD,MAAMG,EAAU,MAAMd,EAAmBU,EAAoBG,CAAK,EAC9DC,GACHX,EAAoBW,EAAS,4BAA6BJ,EAAoBG,CAAK,CAErF,EAEME,EAAwB,MAAOF,EAAeG,IAA+B,CAGlF,MAAMC,EAAyB,CAAC,GAFLhB,EAAsB,CAEI,EAAE,IAAI,MAAMiB,GAAe,CAC/E,GAAIA,IAAgBR,EACnB,OAGD,MAAMI,EAAU,MAAMd,EAAmBkB,EAAaL,EAAOG,CAAiB,EAC1EF,GACHX,EAAoBW,EAAS,iCAAiCL,EAAuB,CAAC,GAAIS,CAAW,CAEvG,CAAC,EAED,OAAO,QAAQ,IAAID,CAAsB,CAC1C,EAEME,EAAsB,MAAON,GAAkB,CAChDN,EAAa,GAChB,MAAMD,EAA8BO,CAAK,EAI1C,MAAMO,EAAWhB,EAAsB,EACvC,GAAIgB,EACH,OAAOA,CAET,EAEMC,EAAa,MAAOR,GAAkB,CAE3C,MAAMO,EAAW,MAAMD,EAAoBN,CAAK,EAO1CS,GADgBpB,EAAkBW,CAAK,EAAIA,EAAQO,GAAYA,EAAS,gBACtCZ,EAGxC,MAAMI,EAAcU,CAAc,EAIlC,MAAMP,EAAsBO,EAAgBF,GAAYA,EAAS,YAAcP,EAAQA,EAAQ,MAAS,EAExGR,EAAgBQ,CAAK,CACtB,EAEA,eAAeQ",
6
- "names": ["getThemeProperties", "getRegisteredPackages", "isThemeRegistered", "createOrUpdateStyle", "getThemeDesignerTheme", "fireThemeLoaded", "attachCustomThemeStylesToHead", "getThemeRoot", "DEFAULT_THEME", "getCurrentRuntimeIndex", "BASE_THEME_PACKAGE", "isThemeBaseRegistered", "loadThemeBase", "theme", "cssData", "loadComponentPackages", "externalThemeName", "packagesStylesPromises", "packageName", "detectExternalTheme", "extTheme", "applyTheme", "effectiveTheme"]
4
+ "sourcesContent": ["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\nimport { getLoadBaseThemingCSSVariables } from \"../config/Theme.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (getLoadBaseThemingCSSVariables() !== true && packageName === `${BASE_THEME_PACKAGE}-raw`) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\tif (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\t}\n\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\t// Detect external theme if available (e.g., from theme designer or custom theme root)\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Determine which theme to use for component packages:\n\t// 1. If the requested theme is registered, use it directly\n\t// 2. If external theme exists, use its base theme (e.g., \"my_custom_theme\" extends \"sap_fiori_3\")\n\t// 3. Otherwise, fallback to the default theme\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tconst effectiveTheme = packagesTheme || DEFAULT_THEME;\n\n\t// Load base theme properties\n\tawait loadThemeBase(effectiveTheme);\n\n\t// Load component-specific theme properties\n\t// Pass external theme name only if it matches the requested theme to avoid conflicts\n\tawait loadComponentPackages(effectiveTheme, extTheme && extTheme.themeName === theme ? theme : undefined);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"],
5
+ "mappings": "aAAA,OAAS,sBAAAA,EAAoB,yBAAAC,EAAuB,qBAAAC,MAAyB,gCAC7E,OAAS,uBAAAC,MAA2B,sBACpC,OAAOC,MAA2B,6BAClC,OAAS,mBAAAC,MAAuB,mBAChC,OAAS,iCAAAC,EAA+B,gBAAAC,MAAoB,yBAC5D,OAAS,iBAAAC,MAAqB,kCAC9B,OAAS,0BAAAC,MAA8B,iBACvC,OAAS,kCAAAC,MAAsC,qBAGxC,WAAI,KAAO,MAEP,SAAW,wBAEtB,MAAMC,EAAqB,IAAM,KAAO,IAAM,SAExCC,EAAwB,IACFX,EAAsB,EACvB,IAAIU,CAAkB,EAG3CE,EAAgB,MAAOC,GAAkB,CAC9C,GAAI,CAACF,EAAsB,EAC1B,OAGD,MAAMG,EAAU,MAAMf,EAAmBW,EAAoBG,CAAK,EAC9DC,GACHZ,EAAoBY,EAAS,4BAA6BJ,EAAoBG,CAAK,CAErF,EAEME,EAAwB,MAAOF,EAAeG,IAA+B,CAGlF,MAAMC,EAAyB,CAAC,GAFLjB,EAAsB,CAEI,EAAE,IAAI,MAAMkB,GAAe,CAK/E,GAJIT,EAA+B,IAAM,IAAQS,IAAgB,GAAGR,CAAkB,QAIlFQ,IAAgBR,EACnB,OAGD,MAAMI,EAAU,MAAMf,EAAmBmB,EAAaL,EAAOG,CAAiB,EAC1EF,GACHZ,EAAoBY,EAAS,iCAAiCN,EAAuB,CAAC,GAAIU,CAAW,CAEvG,CAAC,EAED,OAAO,QAAQ,IAAID,CAAsB,CAC1C,EAEME,EAAsB,MAAON,GAAkB,CAChDP,EAAa,GAChB,MAAMD,EAA8BQ,CAAK,EAI1C,MAAMO,EAAWjB,EAAsB,EACvC,GAAIiB,EACH,OAAOA,CAET,EAEMC,EAAa,MAAOR,GAAkB,CAE3C,MAAMO,EAAW,MAAMD,EAAoBN,CAAK,EAO1CS,GADgBrB,EAAkBY,CAAK,EAAIA,EAAQO,GAAYA,EAAS,gBACtCb,EAGxC,MAAMK,EAAcU,CAAc,EAIlC,MAAMP,EAAsBO,EAAgBF,GAAYA,EAAS,YAAcP,EAAQA,EAAQ,MAAS,EAExGT,EAAgBS,CAAK,CACtB,EAEA,eAAeQ",
6
+ "names": ["getThemeProperties", "getRegisteredPackages", "isThemeRegistered", "createOrUpdateStyle", "getThemeDesignerTheme", "fireThemeLoaded", "attachCustomThemeStylesToHead", "getThemeRoot", "DEFAULT_THEME", "getCurrentRuntimeIndex", "getLoadBaseThemingCSSVariables", "BASE_THEME_PACKAGE", "isThemeBaseRegistered", "loadThemeBase", "theme", "cssData", "loadComponentPackages", "externalThemeName", "packagesStylesPromises", "packageName", "detectExternalTheme", "extTheme", "applyTheme", "effectiveTheme"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/SelectionAssistant.ts"],
4
- "sourcesContent": ["const copyAndApplyStyles = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tconst computedStyles = getComputedStyle(element);\n\n\tfor (let i = 0; i < computedStyles.length; i++) {\n\t\tconst propertyName = computedStyles[i];\n\t\tcopiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));\n\t}\n\n\telement.tagName === \"INPUT\" && setInputSpecificStyles(copiedElement);\n\n\tcopiedElement.style.position = \"absolute\";\n\tcopiedElement.style.left = `${element.getBoundingClientRect().left}px`;\n\tcopiedElement.style.top = `${element.getBoundingClientRect().top}px`;\n\n\tsetUnInteractableStyles(copiedElement);\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst setUnInteractableStyles = (element: HTMLElement) => {\n\telement.style.position = \"absolute\";\n\telement.style.userSelect = \"none\";\n\telement.style.pointerEvents = \"none\";\n\telement.style.zIndex = \"-1\";\n\telement.style.opacity = \"0\";\n};\n\nconst setInputSpecificStyles = (element: HTMLElement) => {\n\telement.style.whiteSpace = \"nowrap\";\n\telement.style.overflowX = \"auto\";\n\telement.style.overflowY = \"hidden\";\n};\n\nconst createCopy = () => {\n\tconst copiedElement = document.createElement(\"div\");\n\n\tcopiedElement.id = \"ui5-selection-mirror\";\n\tcopiedElement.contentEditable = \"true\";\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst applyScrollPosition = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tcopiedElement.scrollTop = element.scrollTop;\n\tcopiedElement.scrollLeft = element.scrollLeft;\n};\n\nconst getSelectionCoordinates = (element: HTMLInputElement | HTMLTextAreaElement, mirror: HTMLDivElement) => {\n\tconst { selectionStart, selectionEnd } = element;\n\tconst selectedText = element.value.slice(\n\t\tselectionStart!,\n\t\telement.selectionEnd!,\n\t);\n\tconst range = document.createRange();\n\n\trange.setStart(mirror.firstChild!, selectionEnd! - 1);\n\trange.setEnd(mirror.firstChild!, selectionEnd!);\n\n\tapplyScrollPosition(element, mirror);\n\n\tconst rangeRect = range.getBoundingClientRect();\n\tconst rectObject = {\n\t\tx: rangeRect.x,\n\t\ty: rangeRect.y,\n\t\twidth: rangeRect.width,\n\t\theight: rangeRect.height,\n\t\ttop: rangeRect.top,\n\t\tright: rangeRect.right,\n\t\tbottom: rangeRect.bottom,\n\t\tleft: rangeRect.left,\n\t};\n\n\tdocument.body.removeChild(mirror);\n\n\treturn { ...rectObject, selectedText };\n};\n\nconst getElementSelection = (element: HTMLElement) => {\n\tconst innerElement = element.shadowRoot!.querySelector(\"textarea\")\n\t\t|| element.shadowRoot!.querySelector(\"input\");\n\n\tif (!document.getElementById(\"ui5-selection-mirror\")) {\n\t\tcreateCopy();\n\t}\n\n\tconst copiedElement = document.getElementById(\n\t\t\"ui5-selection-mirror\",\n\t)!;\n\n\tcopiedElement.textContent = innerElement!.value;\n\n\tif (innerElement) {\n\t\tcopyAndApplyStyles(innerElement, copiedElement)!;\n\t}\n\n\treturn getSelectionCoordinates(innerElement!, copiedElement as HTMLDivElement);\n};\n\nexport default getElementSelection;\n"],
4
+ "sourcesContent": ["const copyAndApplyStyles = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tconst computedStyles = getComputedStyle(element);\n\n\tfor (let i = 0; i < computedStyles.length; i++) {\n\t\tconst propertyName = computedStyles[i];\n\t\tcopiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));\n\t}\n\n\telement.tagName === \"INPUT\" && setInputSpecificStyles(copiedElement);\n\n\tcopiedElement.style.position = \"absolute\";\n\tcopiedElement.style.left = `${element.getBoundingClientRect().left}px`;\n\tcopiedElement.style.top = `${element.getBoundingClientRect().top}px`;\n\n\tsetUnInteractableStyles(copiedElement);\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst setUnInteractableStyles = (element: HTMLElement) => {\n\telement.style.position = \"absolute\";\n\telement.style.userSelect = \"none\";\n\telement.style.pointerEvents = \"none\";\n\telement.style.zIndex = \"-1\";\n\telement.style.opacity = \"0\";\n};\n\nconst setInputSpecificStyles = (element: HTMLElement) => {\n\telement.style.whiteSpace = \"nowrap\";\n\telement.style.overflowX = \"auto\";\n\telement.style.overflowY = \"hidden\";\n};\n\nconst createCopy = () => {\n\tconst copiedElement = document.createElement(\"div\");\n\n\tcopiedElement.id = \"ui5-selection-mirror\";\n\tcopiedElement.contentEditable = \"true\";\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst applyScrollPosition = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tcopiedElement.scrollTop = element.scrollTop;\n\tcopiedElement.scrollLeft = element.scrollLeft;\n};\n\nconst getSelectionCoordinates = (element: HTMLInputElement | HTMLTextAreaElement, mirror: HTMLDivElement) => {\n\tconst { selectionStart, selectionEnd } = element;\n\tconst selectedText = element.value.slice(\n\t\tselectionStart!,\n\t\telement.selectionEnd!,\n\t);\n\tconst range = document.createRange();\n\n\trange.setStart(mirror.firstChild!, selectionEnd! - 1);\n\trange.setEnd(mirror.firstChild!, selectionEnd!);\n\n\tapplyScrollPosition(element, mirror);\n\n\tconst rangeRect = range.getBoundingClientRect();\n\tconst rectObject = {\n\t\tx: rangeRect.x,\n\t\ty: rangeRect.y,\n\t\twidth: rangeRect.width,\n\t\theight: rangeRect.height,\n\t\ttop: rangeRect.top,\n\t\tright: rangeRect.right,\n\t\tbottom: rangeRect.bottom,\n\t\tleft: rangeRect.left,\n\t};\n\n\tdocument.body.removeChild(mirror);\n\n\treturn { ...rectObject, selectedText };\n};\n\nconst getElementSelection = (element: HTMLElement) => {\n\tconst innerElement = element.shadowRoot!.querySelector(\"textarea\")\n\t\t|| element.shadowRoot!.querySelector(\"input\");\n\n\tif (!document.getElementById(\"ui5-selection-mirror\")) {\n\t\tcreateCopy();\n\t}\n\n\tconst copiedElement = document.getElementById(\n\t\t\"ui5-selection-mirror\",\n\t)!;\n\n\tcopiedElement.textContent = innerElement!.value;\n\n\tif (innerElement) {\n\t\tcopyAndApplyStyles(innerElement, copiedElement);\n\t}\n\n\treturn getSelectionCoordinates(innerElement!, copiedElement as HTMLDivElement);\n};\n\nexport default getElementSelection;\n"],
5
5
  "mappings": "aAAA,MAAMA,EAAqB,CAACC,EAAsBC,IAA+B,CAChF,MAAMC,EAAiB,iBAAiBF,CAAO,EAE/C,QAASG,EAAI,EAAGA,EAAID,EAAe,OAAQC,IAAK,CAC/C,MAAMC,EAAeF,EAAeC,CAAC,EACrCF,EAAc,MAAM,YAAYG,EAAcF,EAAe,iBAAiBE,CAAY,CAAC,CAC5F,CAEAJ,EAAQ,UAAY,SAAWK,EAAuBJ,CAAa,EAEnEA,EAAc,MAAM,SAAW,WAC/BA,EAAc,MAAM,KAAO,GAAGD,EAAQ,sBAAsB,EAAE,IAAI,KAClEC,EAAc,MAAM,IAAM,GAAGD,EAAQ,sBAAsB,EAAE,GAAG,KAEhEM,EAAwBL,CAAa,EAErC,SAAS,KAAK,YAAYA,CAAa,CACxC,EAEMK,EAA2BN,GAAyB,CACzDA,EAAQ,MAAM,SAAW,WACzBA,EAAQ,MAAM,WAAa,OAC3BA,EAAQ,MAAM,cAAgB,OAC9BA,EAAQ,MAAM,OAAS,KACvBA,EAAQ,MAAM,QAAU,GACzB,EAEMK,EAA0BL,GAAyB,CACxDA,EAAQ,MAAM,WAAa,SAC3BA,EAAQ,MAAM,UAAY,OAC1BA,EAAQ,MAAM,UAAY,QAC3B,EAEMO,EAAa,IAAM,CACxB,MAAMN,EAAgB,SAAS,cAAc,KAAK,EAElDA,EAAc,GAAK,uBACnBA,EAAc,gBAAkB,OAEhC,SAAS,KAAK,YAAYA,CAAa,CACxC,EAEMO,EAAsB,CAACR,EAAsBC,IAA+B,CACjFA,EAAc,UAAYD,EAAQ,UAClCC,EAAc,WAAaD,EAAQ,UACpC,EAEMS,EAA0B,CAACT,EAAiDU,IAA2B,CAC5G,KAAM,CAAE,eAAAC,EAAgB,aAAAC,CAAa,EAAIZ,EACnCa,EAAeb,EAAQ,MAAM,MAClCW,EACAX,EAAQ,YACT,EACMc,EAAQ,SAAS,YAAY,EAEnCA,EAAM,SAASJ,EAAO,WAAaE,EAAgB,CAAC,EACpDE,EAAM,OAAOJ,EAAO,WAAaE,CAAa,EAE9CJ,EAAoBR,EAASU,CAAM,EAEnC,MAAMK,EAAYD,EAAM,sBAAsB,EACxCE,EAAa,CAClB,EAAGD,EAAU,EACb,EAAGA,EAAU,EACb,MAAOA,EAAU,MACjB,OAAQA,EAAU,OAClB,IAAKA,EAAU,IACf,MAAOA,EAAU,MACjB,OAAQA,EAAU,OAClB,KAAMA,EAAU,IACjB,EAEA,gBAAS,KAAK,YAAYL,CAAM,EAEzB,CAAE,GAAGM,EAAY,aAAAH,CAAa,CACtC,EAEMI,EAAuBjB,GAAyB,CACrD,MAAMkB,EAAelB,EAAQ,WAAY,cAAc,UAAU,GAC7DA,EAAQ,WAAY,cAAc,OAAO,EAExC,SAAS,eAAe,sBAAsB,GAClDO,EAAW,EAGZ,MAAMN,EAAgB,SAAS,eAC9B,sBACD,EAEA,OAAAA,EAAc,YAAciB,EAAc,MAEtCA,GACHnB,EAAmBmB,EAAcjB,CAAa,EAGxCQ,EAAwBS,EAAejB,CAA+B,CAC9E,EAEA,eAAegB",
6
6
  "names": ["copyAndApplyStyles", "element", "copiedElement", "computedStyles", "i", "propertyName", "setInputSpecificStyles", "setUnInteractableStyles", "createCopy", "applyScrollPosition", "getSelectionCoordinates", "mirror", "selectionStart", "selectionEnd", "selectedText", "range", "rangeRect", "rectObject", "getElementSelection", "innerElement"]
7
7
  }
@@ -5,6 +5,7 @@ import { fireThemeLoaded } from "./ThemeLoaded.js";
5
5
  import { attachCustomThemeStylesToHead, getThemeRoot } from "../config/ThemeRoot.js";
6
6
  import { DEFAULT_THEME } from "../generated/AssetParameters.js";
7
7
  import { getCurrentRuntimeIndex } from "../Runtimes.js";
8
+ import { getLoadBaseThemingCSSVariables } from "../config/Theme.js";
8
9
  // eslint-disable-next-line
9
10
  export let _lib = "ui5";
10
11
  // eslint-disable-next-line
@@ -27,6 +28,9 @@ const loadThemeBase = async (theme) => {
27
28
  const loadComponentPackages = async (theme, externalThemeName) => {
28
29
  const registeredPackages = getRegisteredPackages();
29
30
  const packagesStylesPromises = [...registeredPackages].map(async (packageName) => {
31
+ if (getLoadBaseThemingCSSVariables() !== true && packageName === `${BASE_THEME_PACKAGE}-raw`) {
32
+ return;
33
+ }
30
34
  if (packageName === BASE_THEME_PACKAGE) {
31
35
  return;
32
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"applyTheme.js","sourceRoot":"","sources":["../../src/theming/applyTheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\tif (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\t}\n\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\t// Detect external theme if available (e.g., from theme designer or custom theme root)\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Determine which theme to use for component packages:\n\t// 1. If the requested theme is registered, use it directly\n\t// 2. If external theme exists, use its base theme (e.g., \"my_custom_theme\" extends \"sap_fiori_3\")\n\t// 3. Otherwise, fallback to the default theme\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tconst effectiveTheme = packagesTheme || DEFAULT_THEME;\n\n\t// Load base theme properties\n\tawait loadThemeBase(effectiveTheme);\n\n\t// Load component-specific theme properties\n\t// Pass external theme name only if it matches the requested theme to avoid conflicts\n\tawait loadComponentPackages(effectiveTheme, extTheme && extTheme.themeName === theme ? theme : undefined);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"]}
1
+ {"version":3,"file":"applyTheme.js","sourceRoot":"","sources":["../../src/theming/applyTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,2BAA2B;AAC3B,MAAM,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;AACxB,2BAA2B;AAC3B,MAAM,CAAC,IAAI,QAAQ,GAAG,uBAAuB,CAAC;AAC9C,2BAA2B;AAC3B,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC;AAEvD,MAAM,qBAAqB,GAAG,GAAG,EAAE;IAClC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,OAAO,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC7C,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC9B,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,OAAO,EAAE,CAAC;QACb,mBAAmB,CAAC,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACtF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAa,EAAE,iBAA0B,EAAE,EAAE;IACjF,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IAEnD,MAAM,sBAAsB,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,WAAW,EAAC,EAAE;QAC9E,IAAI,8BAA8B,EAAE,KAAK,IAAI,IAAI,WAAW,KAAK,GAAG,kBAAkB,MAAM,EAAE,CAAC;YAC9F,OAAO;QACR,CAAC;QAED,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;YACxC,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAChF,IAAI,OAAO,EAAE,CAAC;YACb,mBAAmB,CAAC,OAAO,EAAE,iCAAiC,sBAAsB,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACxG,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IACnD,IAAI,YAAY,EAAE,EAAE,CAAC;QACpB,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,gDAAgD;IAChD,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IACjB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC1C,sFAAsF;IACtF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAElD,uDAAuD;IACvD,2DAA2D;IAC3D,kGAAkG;IAClG,8CAA8C;IAC9C,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;IAC5F,MAAM,cAAc,GAAG,aAAa,IAAI,aAAa,CAAC;IAEtD,6BAA6B;IAC7B,MAAM,aAAa,CAAC,cAAc,CAAC,CAAC;IAEpC,2CAA2C;IAC3C,qFAAqF;IACrF,MAAM,qBAAqB,CAAC,cAAc,EAAE,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE1G,eAAe,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\nimport { getLoadBaseThemingCSSVariables } from \"../config/Theme.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (getLoadBaseThemingCSSVariables() !== true && packageName === `${BASE_THEME_PACKAGE}-raw`) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\tif (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\t}\n\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\t// Detect external theme if available (e.g., from theme designer or custom theme root)\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Determine which theme to use for component packages:\n\t// 1. If the requested theme is registered, use it directly\n\t// 2. If external theme exists, use its base theme (e.g., \"my_custom_theme\" extends \"sap_fiori_3\")\n\t// 3. Otherwise, fallback to the default theme\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tconst effectiveTheme = packagesTheme || DEFAULT_THEME;\n\n\t// Load base theme properties\n\tawait loadThemeBase(effectiveTheme);\n\n\t// Load component-specific theme properties\n\t// Pass external theme name only if it matches the requested theme to avoid conflicts\n\tawait loadComponentPackages(effectiveTheme, extTheme && extTheme.themeName === theme ? theme : undefined);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"]}
package/dist/types.d.ts CHANGED
@@ -24,6 +24,7 @@ export type AccessibilityInfo = {
24
24
  role?: AriaRole;
25
25
  type?: string;
26
26
  description?: string;
27
+ label?: string;
27
28
  disabled?: boolean;
28
29
  readonly?: boolean;
29
30
  required?: boolean;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { JSX } from \"./jsx-runtime.d.ts\";\n\n// General utils\nexport type LowercaseString<T> = T extends string ? Lowercase<T> : never;\n\n// Core Framework types\nexport type PromiseResolve = (value: void | PromiseLike<void>) => void;\nexport type Timeout = ReturnType<typeof setTimeout>;\nexport type Interval = ReturnType<typeof setInterval>;\n\nexport type StyleData = string;\n\nexport type ComponentStylesData = Array<ComponentStylesData> | string;\nexport type ClassMapValue = Record<string, boolean>\n\nexport type ClassMap = { [x: string] : ClassMapValue | ClassMap };\n\nexport type PassiveEventListenerObject = EventListenerObject & { passive: boolean };\n\n// Accessibility\nexport type AriaRole = JSX.AriaRole;\nexport type AriaDisabled = JSX.AriaAttributes[\"aria-disabled\"];\nexport type AriaChecked = JSX.AriaAttributes[\"aria-checked\"];\nexport type AriaReadonly = JSX.AriaAttributes[\"aria-readonly\"];\nexport type AriaHasPopup = \"dialog\" | \"grid\" | \"listbox\" | \"menu\" | \"tree\" | \"false\";\nexport type AriaCurrent = \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | boolean | undefined;\nexport type AriaAutoComplete = \"list\" | \"none\" | \"inline\" | \"both\" | undefined;\nexport type AriaLandmarkRole = \"none\" | \"banner\" | \"main\" | \"region\" | \"navigation\" | \"search\" | \"complementary\" | \"form\" | \"contentinfo\"\n\nexport type AccessibilityInfo = {\n\t// The WAI-ARIA role of the component.\n\trole?: AriaRole,\n\n\t// A translated text that represents the component type.\n\ttype?: string,\n\n\t// A translated text that represents relevant component description/state - value, placeholder, label, etc.\n\tdescription?: string,\n\n\t// Disabled state of the component.\n\tdisabled?: boolean,\n\n\t// Readonly state of the component.\n\treadonly?: boolean,\n\n\t// Required state of the component.\n\trequired?: boolean,\n\n\t// An array of nodes, aggregated by the component\n\t// **Note:** Children should only be provided when it is helpful to understand the accessibility context.\n\tchildren?: Array<Node>,\n}\n\nexport type AccessibilityAttributes = {\n\tariaSetsize?: number,\n\tariaPosinset?: number,\n\tariaLabel?: string,\n\tcontrols?: LowercaseString<string>\n\texpanded?: \"true\" | \"false\" | boolean,\n\thasPopup?: AriaHasPopup,\n\tname?: string,\n\trole?: AriaRole,\n\tariaKeyShortcuts?: string,\n\tariaCurrent?: AriaCurrent,\n\tcurrent?: AriaCurrent,\n\troleDescription?: string,\n\ttitle?: string,\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { JSX } from \"./jsx-runtime.d.ts\";\n\n// General utils\nexport type LowercaseString<T> = T extends string ? Lowercase<T> : never;\n\n// Core Framework types\nexport type PromiseResolve = (value: void | PromiseLike<void>) => void;\nexport type Timeout = ReturnType<typeof setTimeout>;\nexport type Interval = ReturnType<typeof setInterval>;\n\nexport type StyleData = string;\n\nexport type ComponentStylesData = Array<ComponentStylesData> | string;\nexport type ClassMapValue = Record<string, boolean>\n\nexport type ClassMap = { [x: string] : ClassMapValue | ClassMap };\n\nexport type PassiveEventListenerObject = EventListenerObject & { passive: boolean };\n\n// Accessibility\nexport type AriaRole = JSX.AriaRole;\nexport type AriaDisabled = JSX.AriaAttributes[\"aria-disabled\"];\nexport type AriaChecked = JSX.AriaAttributes[\"aria-checked\"];\nexport type AriaReadonly = JSX.AriaAttributes[\"aria-readonly\"];\nexport type AriaHasPopup = \"dialog\" | \"grid\" | \"listbox\" | \"menu\" | \"tree\" | \"false\";\nexport type AriaCurrent = \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | boolean | undefined;\nexport type AriaAutoComplete = \"list\" | \"none\" | \"inline\" | \"both\" | undefined;\nexport type AriaLandmarkRole = \"none\" | \"banner\" | \"main\" | \"region\" | \"navigation\" | \"search\" | \"complementary\" | \"form\" | \"contentinfo\"\n\nexport type AccessibilityInfo = {\n\t// The WAI-ARIA role of the component.\n\trole?: AriaRole,\n\n\t// A translated text that represents the component type.\n\ttype?: string,\n\n\t// A translated text that represents relevant component description/state - value, placeholder, etc.\n\tdescription?: string,\n\n\t// Label of the component, e.g. `accessible-name` or `accessible-name-ref` for form elements.\n\tlabel?: string,\n\n\t// Disabled state of the component.\n\tdisabled?: boolean,\n\n\t// Readonly state of the component.\n\treadonly?: boolean,\n\n\t// Required state of the component.\n\trequired?: boolean,\n\n\t// An array of nodes, aggregated by the component\n\t// **Note:** Children should only be provided when it is helpful to understand the accessibility context.\n\tchildren?: Array<Node>,\n}\n\nexport type AccessibilityAttributes = {\n\tariaSetsize?: number,\n\tariaPosinset?: number,\n\tariaLabel?: string,\n\tcontrols?: LowercaseString<string>\n\texpanded?: \"true\" | \"false\" | boolean,\n\thasPopup?: AriaHasPopup,\n\tname?: string,\n\trole?: AriaRole,\n\tariaKeyShortcuts?: string,\n\tariaCurrent?: AriaCurrent,\n\tcurrent?: AriaCurrent,\n\troleDescription?: string,\n\ttitle?: string,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionAssistant.js","sourceRoot":"","sources":["../../src/util/SelectionAssistant.ts"],"names":[],"mappings":"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","sourcesContent":["const copyAndApplyStyles = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tconst computedStyles = getComputedStyle(element);\n\n\tfor (let i = 0; i < computedStyles.length; i++) {\n\t\tconst propertyName = computedStyles[i];\n\t\tcopiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));\n\t}\n\n\telement.tagName === \"INPUT\" && setInputSpecificStyles(copiedElement);\n\n\tcopiedElement.style.position = \"absolute\";\n\tcopiedElement.style.left = `${element.getBoundingClientRect().left}px`;\n\tcopiedElement.style.top = `${element.getBoundingClientRect().top}px`;\n\n\tsetUnInteractableStyles(copiedElement);\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst setUnInteractableStyles = (element: HTMLElement) => {\n\telement.style.position = \"absolute\";\n\telement.style.userSelect = \"none\";\n\telement.style.pointerEvents = \"none\";\n\telement.style.zIndex = \"-1\";\n\telement.style.opacity = \"0\";\n};\n\nconst setInputSpecificStyles = (element: HTMLElement) => {\n\telement.style.whiteSpace = \"nowrap\";\n\telement.style.overflowX = \"auto\";\n\telement.style.overflowY = \"hidden\";\n};\n\nconst createCopy = () => {\n\tconst copiedElement = document.createElement(\"div\");\n\n\tcopiedElement.id = \"ui5-selection-mirror\";\n\tcopiedElement.contentEditable = \"true\";\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst applyScrollPosition = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tcopiedElement.scrollTop = element.scrollTop;\n\tcopiedElement.scrollLeft = element.scrollLeft;\n};\n\nconst getSelectionCoordinates = (element: HTMLInputElement | HTMLTextAreaElement, mirror: HTMLDivElement) => {\n\tconst { selectionStart, selectionEnd } = element;\n\tconst selectedText = element.value.slice(\n\t\tselectionStart!,\n\t\telement.selectionEnd!,\n\t);\n\tconst range = document.createRange();\n\n\trange.setStart(mirror.firstChild!, selectionEnd! - 1);\n\trange.setEnd(mirror.firstChild!, selectionEnd!);\n\n\tapplyScrollPosition(element, mirror);\n\n\tconst rangeRect = range.getBoundingClientRect();\n\tconst rectObject = {\n\t\tx: rangeRect.x,\n\t\ty: rangeRect.y,\n\t\twidth: rangeRect.width,\n\t\theight: rangeRect.height,\n\t\ttop: rangeRect.top,\n\t\tright: rangeRect.right,\n\t\tbottom: rangeRect.bottom,\n\t\tleft: rangeRect.left,\n\t};\n\n\tdocument.body.removeChild(mirror);\n\n\treturn { ...rectObject, selectedText };\n};\n\nconst getElementSelection = (element: HTMLElement) => {\n\tconst innerElement = element.shadowRoot!.querySelector(\"textarea\")\n\t\t|| element.shadowRoot!.querySelector(\"input\");\n\n\tif (!document.getElementById(\"ui5-selection-mirror\")) {\n\t\tcreateCopy();\n\t}\n\n\tconst copiedElement = document.getElementById(\n\t\t\"ui5-selection-mirror\",\n\t)!;\n\n\tcopiedElement.textContent = innerElement!.value;\n\n\tif (innerElement) {\n\t\tcopyAndApplyStyles(innerElement, copiedElement)!;\n\t}\n\n\treturn getSelectionCoordinates(innerElement!, copiedElement as HTMLDivElement);\n};\n\nexport default getElementSelection;\n"]}
1
+ {"version":3,"file":"SelectionAssistant.js","sourceRoot":"","sources":["../../src/util/SelectionAssistant.ts"],"names":[],"mappings":"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","sourcesContent":["const copyAndApplyStyles = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tconst computedStyles = getComputedStyle(element);\n\n\tfor (let i = 0; i < computedStyles.length; i++) {\n\t\tconst propertyName = computedStyles[i];\n\t\tcopiedElement.style.setProperty(propertyName, computedStyles.getPropertyValue(propertyName));\n\t}\n\n\telement.tagName === \"INPUT\" && setInputSpecificStyles(copiedElement);\n\n\tcopiedElement.style.position = \"absolute\";\n\tcopiedElement.style.left = `${element.getBoundingClientRect().left}px`;\n\tcopiedElement.style.top = `${element.getBoundingClientRect().top}px`;\n\n\tsetUnInteractableStyles(copiedElement);\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst setUnInteractableStyles = (element: HTMLElement) => {\n\telement.style.position = \"absolute\";\n\telement.style.userSelect = \"none\";\n\telement.style.pointerEvents = \"none\";\n\telement.style.zIndex = \"-1\";\n\telement.style.opacity = \"0\";\n};\n\nconst setInputSpecificStyles = (element: HTMLElement) => {\n\telement.style.whiteSpace = \"nowrap\";\n\telement.style.overflowX = \"auto\";\n\telement.style.overflowY = \"hidden\";\n};\n\nconst createCopy = () => {\n\tconst copiedElement = document.createElement(\"div\");\n\n\tcopiedElement.id = \"ui5-selection-mirror\";\n\tcopiedElement.contentEditable = \"true\";\n\n\tdocument.body.appendChild(copiedElement);\n};\n\nconst applyScrollPosition = (element: HTMLElement, copiedElement: HTMLElement) => {\n\tcopiedElement.scrollTop = element.scrollTop;\n\tcopiedElement.scrollLeft = element.scrollLeft;\n};\n\nconst getSelectionCoordinates = (element: HTMLInputElement | HTMLTextAreaElement, mirror: HTMLDivElement) => {\n\tconst { selectionStart, selectionEnd } = element;\n\tconst selectedText = element.value.slice(\n\t\tselectionStart!,\n\t\telement.selectionEnd!,\n\t);\n\tconst range = document.createRange();\n\n\trange.setStart(mirror.firstChild!, selectionEnd! - 1);\n\trange.setEnd(mirror.firstChild!, selectionEnd!);\n\n\tapplyScrollPosition(element, mirror);\n\n\tconst rangeRect = range.getBoundingClientRect();\n\tconst rectObject = {\n\t\tx: rangeRect.x,\n\t\ty: rangeRect.y,\n\t\twidth: rangeRect.width,\n\t\theight: rangeRect.height,\n\t\ttop: rangeRect.top,\n\t\tright: rangeRect.right,\n\t\tbottom: rangeRect.bottom,\n\t\tleft: rangeRect.left,\n\t};\n\n\tdocument.body.removeChild(mirror);\n\n\treturn { ...rectObject, selectedText };\n};\n\nconst getElementSelection = (element: HTMLElement) => {\n\tconst innerElement = element.shadowRoot!.querySelector(\"textarea\")\n\t\t|| element.shadowRoot!.querySelector(\"input\");\n\n\tif (!document.getElementById(\"ui5-selection-mirror\")) {\n\t\tcreateCopy();\n\t}\n\n\tconst copiedElement = document.getElementById(\n\t\t\"ui5-selection-mirror\",\n\t)!;\n\n\tcopiedElement.textContent = innerElement!.value;\n\n\tif (innerElement) {\n\t\tcopyAndApplyStyles(innerElement, copiedElement);\n\t}\n\n\treturn getSelectionCoordinates(innerElement!, copiedElement as HTMLDivElement);\n};\n\nexport default getElementSelection;\n"]}
@@ -24,7 +24,7 @@ const scripts = {
24
24
  "generated": `ui5nps-script "${LIB}/rimraf/rimraf.js src/generated`,
25
25
  "dist": `ui5nps-script "${LIB}/rimraf/rimraf.js dist`,
26
26
  },
27
- lint: `eslint .`,
27
+ lint: `ui5nps-script "${LIB}/eslint/eslint.js"`,
28
28
  generate: "ui5nps clean build.i18n integrate copy generateAssetParameters generateVersionInfo generateStyles generateFontFace build.jsonImports",
29
29
  prepare: "ui5nps clean build.i18n integrate copy generateAssetParameters generateVersionInfo generateStyles generateFontFace typescript integrate.no-remaining-require build.jsonImports",
30
30
  typescript: "tsc -b",
@@ -41,7 +41,7 @@ const scripts = {
41
41
  },
42
42
  build: {
43
43
  default: `ui5nps prepare`,
44
- bundle: `vite build ${viteConfig}`,
44
+ bundle: `ui5nps-script "${LIB}/vite-bundler/vite-bundler.mjs" ${viteConfig}`,
45
45
  i18n: {
46
46
  default: "ui5nps build.i18n.defaultsjs build.i18n.json",
47
47
  defaultsjs: `ui5nps-script "${LIB}/i18n/defaults.js" src/i18n src/generated/i18n`,
@@ -82,7 +82,7 @@ const scripts = {
82
82
  withBundle: 'ui5nps-p watch.src watch.bundle watch.styles', // concurently
83
83
  src: 'ui5nps copy.srcWithWatch',
84
84
  bundle: `ui5nps-script ${LIB}/dev-server/dev-server.mjs ${viteConfig}`,
85
- styles: 'chokidar "src/css/*.css" -c "ui5nps generateStyles"'
85
+ styles: `ui5nps-script "${LIB}/chokidar/chokidar.js" "src/css/*.css" "ui5nps generateStyles"`
86
86
  },
87
87
  test: {
88
88
  default: 'ui5nps-p test.ssr test.ssr2 test.test-cy-ci', // concurently
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "2.17.0-rc.3",
3
+ "version": "2.17.0-rc.5",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -64,12 +64,9 @@
64
64
  "@openui5/sap.ui.core": "1.120.17",
65
65
  "@sap-theming/theming-base-content": "11.29.3",
66
66
  "@ui5/cypress-internal": "0.1.0",
67
- "@ui5/webcomponents-tools": "2.17.0-rc.3",
68
- "chokidar-cli": "^3.0.0",
67
+ "@ui5/webcomponents-tools": "2.17.0-rc.5",
69
68
  "clean-css": "^5.2.2",
70
69
  "cypress": "^15.3.0",
71
- "eslint": "^7.22.0",
72
- "mkdirp": "^1.0.4",
73
70
  "mocha": "^11.7.2",
74
71
  "replace-in-file": "^6.3.5",
75
72
  "resolve": "^1.20.0",
@@ -78,5 +75,5 @@
78
75
  "vite": "5.4.21"
79
76
  },
80
77
  "customElements": "dist/custom-elements.json",
81
- "gitHead": "45ac45d27dd4c95cc840c51c95fef9d38e7586f0"
78
+ "gitHead": "affb457b35f4a92b8d6632de0042c8a9da7c244e"
82
79
  }