@ui5/webcomponents-base 1.10.3 → 1.11.0-rc.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.
Files changed (43) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +19 -0
  3. package/dist/UI5Element.d.ts +2 -1
  4. package/dist/UI5Element.js +3 -2
  5. package/dist/UI5Element.js.map +1 -1
  6. package/dist/api.json +1 -1
  7. package/dist/assets/bundle.esm.38c84565.js +56 -0
  8. package/dist/assets/test/pages/{i18n.html.8d173f63.js → i18n.html.a765def3.js} +1 -1
  9. package/dist/assets/test/pages/{i18n_texts.html.94b83f3a.js → i18n_texts.html.9a235f8f.js} +1 -1
  10. package/dist/generated/VersionInfo.js +5 -5
  11. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  12. package/dist/generated/css/BusyIndicator.css.js +7 -5
  13. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  14. package/dist/generated/css/FontFace.css.d.ts +3 -0
  15. package/dist/generated/css/FontFace.css.js +7 -5
  16. package/dist/generated/css/FontFace.css.js.map +1 -0
  17. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  18. package/dist/generated/css/OverrideFontFace.css.js +7 -5
  19. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  20. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  21. package/dist/generated/css/SystemCSSVars.css.js +7 -5
  22. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  23. package/dist/global.d.ts +0 -6
  24. package/dist/test/pages/AllTestElements.html +1 -1
  25. package/dist/test/pages/Configuration.html +1 -1
  26. package/dist/test/pages/ConfigurationScript.html +1 -1
  27. package/dist/test/pages/WithComplexTemplate.html +1 -1
  28. package/dist/test/pages/i18n.html +2 -2
  29. package/dist/test/pages/i18n_texts.html +2 -2
  30. package/dist/util/FocusableElements.js +11 -2
  31. package/dist/util/FocusableElements.js.map +1 -1
  32. package/dist/util/getClassCopy.d.ts +1 -1
  33. package/lib/generate-styles/index.js +10 -5
  34. package/package-scripts.js +3 -3
  35. package/package.json +3 -3
  36. package/src/UI5Element.ts +3 -2
  37. package/src/generated/css/BusyIndicator.css.ts +9 -0
  38. package/src/generated/css/FontFace.css.ts +9 -0
  39. package/src/generated/css/OverrideFontFace.css.ts +9 -0
  40. package/src/generated/css/SystemCSSVars.css.ts +9 -0
  41. package/src/global.d.ts +0 -6
  42. package/src/util/FocusableElements.ts +12 -2
  43. package/dist/assets/bundle.esm.12ed72d9.js +0 -56
@@ -0,0 +1,3 @@
1
+ import type { StyleData } from "../../types.js";
2
+ declare const styleData: StyleData;
3
+ export default styleData;
@@ -1,5 +1,7 @@
1
- export default {
2
- packageName: "@ui5/webcomponents-base",
3
- fileName: "FontFace.css",
4
- content: `@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`
5
- };
1
+ const styleData = {
2
+ packageName: "@ui5/webcomponents-base",
3
+ fileName: "FontFace.css",
4
+ content: `@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`,
5
+ };
6
+ export default styleData;
7
+ //# sourceMappingURL=FontFace.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontFace.css.js","sourceRoot":"","sources":["../../../src/generated/css/FontFace.css.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAc;IAC5B,WAAW,EAAE,yBAAyB;IACtC,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,8yDAA8yD;CACvzD,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StyleData } from "../../types.js";
2
+ declare const styleData: StyleData;
3
+ export default styleData;
@@ -1,5 +1,7 @@
1
- export default {
2
- packageName: "@ui5/webcomponents-base",
3
- fileName: "OverrideFontFace.css",
4
- content: `@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}`
5
- };
1
+ const styleData = {
2
+ packageName: "@ui5/webcomponents-base",
3
+ fileName: "OverrideFontFace.css",
4
+ content: `@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}`,
5
+ };
6
+ export default styleData;
7
+ //# sourceMappingURL=OverrideFontFace.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverrideFontFace.css.js","sourceRoot":"","sources":["../../../src/generated/css/OverrideFontFace.css.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAc;IAC5B,WAAW,EAAE,yBAAyB;IACtC,QAAQ,EAAE,sBAAsB;IAChC,OAAO,EAAE,0NAA0N;CACnO,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StyleData } from "../../types.js";
2
+ declare const styleData: StyleData;
3
+ export default styleData;
@@ -1,5 +1,7 @@
1
- export default {
2
- packageName: "@ui5/webcomponents-base",
3
- fileName: "SystemCSSVars.css",
4
- content: `:root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}`
5
- };
1
+ const styleData = {
2
+ packageName: "@ui5/webcomponents-base",
3
+ fileName: "SystemCSSVars.css",
4
+ content: `:root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}`,
5
+ };
6
+ export default styleData;
7
+ //# sourceMappingURL=SystemCSSVars.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemCSSVars.css.js","sourceRoot":"","sources":["../../../src/generated/css/SystemCSSVars.css.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAc;IAC5B,WAAW,EAAE,yBAAyB;IACtC,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,4LAA4L;CACrM,CAAC;AAEF,eAAe,SAAS,CAAC"}
package/dist/global.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- import { StyleData } from "./types.js";
2
-
3
1
  export {};
4
2
 
5
3
  declare global {
@@ -19,10 +17,6 @@ declare global {
19
17
  chrome: any;
20
18
  v8: any;
21
19
  }
22
- module "*.css.js" {
23
- const content: StyleData;
24
- export default content;
25
- }
26
20
 
27
21
  module "*generated/AssetParameters.js" {
28
22
  const DEFAULT_THEME: string;
@@ -6,7 +6,7 @@
6
6
  <title>Base package default test page</title>
7
7
 
8
8
 
9
- <script type="module" crossorigin src="/assets/bundle.esm.12ed72d9.js"></script>
9
+ <script type="module" crossorigin src="/assets/bundle.esm.38c84565.js"></script>
10
10
  </head>
11
11
 
12
12
  <body>
@@ -7,7 +7,7 @@
7
7
 
8
8
 
9
9
 
10
- <script type="module" crossorigin src="/assets/bundle.esm.12ed72d9.js"></script>
10
+ <script type="module" crossorigin src="/assets/bundle.esm.38c84565.js"></script>
11
11
  </head>
12
12
 
13
13
  <body>
@@ -23,7 +23,7 @@
23
23
 
24
24
 
25
25
 
26
- <script type="module" crossorigin src="/assets/bundle.esm.12ed72d9.js"></script>
26
+ <script type="module" crossorigin src="/assets/bundle.esm.38c84565.js"></script>
27
27
  </head>
28
28
 
29
29
  <body>
@@ -4,7 +4,7 @@
4
4
  <meta charset="utf-8">
5
5
  <title>Compex Template Test Page</title>
6
6
 
7
- <script type="module" crossorigin src="/assets/bundle.esm.12ed72d9.js"></script>
7
+ <script type="module" crossorigin src="/assets/bundle.esm.38c84565.js"></script>
8
8
  </head>
9
9
 
10
10
  <body>
@@ -7,8 +7,8 @@
7
7
 
8
8
 
9
9
 
10
- <script type="module" crossorigin src="/assets/test/pages/i18n.html.8d173f63.js"></script>
11
- <link rel="modulepreload" href="/assets/bundle.esm.12ed72d9.js">
10
+ <script type="module" crossorigin src="/assets/test/pages/i18n.html.a765def3.js"></script>
11
+ <link rel="modulepreload" href="/assets/bundle.esm.38c84565.js">
12
12
  </head>
13
13
 
14
14
  <body>
@@ -8,8 +8,8 @@
8
8
 
9
9
 
10
10
 
11
- <script type="module" crossorigin src="/assets/test/pages/i18n_texts.html.94b83f3a.js"></script>
12
- <link rel="modulepreload" href="/assets/bundle.esm.12ed72d9.js">
11
+ <script type="module" crossorigin src="/assets/test/pages/i18n_texts.html.9a235f8f.js"></script>
12
+ <link rel="modulepreload" href="/assets/bundle.esm.38c84565.js">
13
13
  </head>
14
14
 
15
15
  <body>
@@ -21,12 +21,15 @@ const isElemFocusable = (el) => {
21
21
  };
22
22
  const findFocusableElement = async (container, forward, startFromContainer) => {
23
23
  let child;
24
+ let assignedElements;
25
+ let currentIndex = -1;
24
26
  if (container.shadowRoot) {
25
27
  child = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;
26
28
  }
27
29
  else if (container instanceof HTMLSlotElement && container.assignedNodes()) {
28
- const assignedElements = container.assignedNodes();
29
- child = forward ? assignedElements[0] : assignedElements[assignedElements.length - 1];
30
+ assignedElements = container.assignedNodes();
31
+ currentIndex = forward ? 0 : assignedElements.length - 1;
32
+ child = assignedElements[currentIndex];
30
33
  }
31
34
  else if (startFromContainer) {
32
35
  child = container;
@@ -54,6 +57,12 @@ const findFocusableElement = async (container, forward, startFromContainer) => {
54
57
  }
55
58
  }
56
59
  child = forward ? originalChild.nextSibling : originalChild.previousSibling;
60
+ // If the child element is not part of the currently assigned element,
61
+ // we have to check the next element assigned to the slot or continue with the next sibling of the slot,
62
+ // otherwise, the nextSibling is the next element inside the light DOM
63
+ if (assignedElements && !assignedElements[currentIndex].contains(child)) {
64
+ child = assignedElements[++currentIndex];
65
+ }
57
66
  }
58
67
  /* eslint-enable no-await-in-loop */
59
68
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"FocusableElements.js","sourceRoot":"","sources":["../../src/util/FocusableElements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FocusableElements.js","sourceRoot":"","sources":["../../src/util/FocusableElements.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
60
60
  getDomRef(): HTMLElement | undefined;
61
61
  getFocusDomRef(): HTMLElement | undefined;
62
62
  getFocusDomRefAsync(): Promise<HTMLElement | undefined>;
63
- focus(): Promise<void>;
63
+ focus(focusOptions?: FocusOptions | undefined): Promise<void>;
64
64
  fireEvent<T>(name: string, data?: T | undefined, cancelable?: boolean, bubbles?: boolean): boolean;
65
65
  _fireEvent<T_1>(name: string, data?: T_1 | undefined, cancelable?: boolean, bubbles?: boolean): boolean;
66
66
  getSlottedNodes(slotName: string): Node[];
@@ -3,19 +3,24 @@ const path = require('path');
3
3
  const CleanCSS = require('clean-css');
4
4
 
5
5
  const generate = async () => {
6
- await fs.mkdir("dist/generated/css/", {recursive: true});
6
+ await fs.mkdir("src/generated/css/", {recursive: true});
7
7
 
8
8
  const files = (await fs.readdir("src/css/")).filter(file => file.endsWith(".css"));
9
9
  const filesPromises = files.map(async file => {
10
10
  let content = await fs.readFile(path.join("src/css/", file));
11
11
  const res = new CleanCSS().minify(`${content}`);
12
- content = `export default {
12
+ content = `import type { StyleData } from "../../types.js";
13
+
14
+ const styleData: StyleData = {
13
15
  packageName: "@ui5/webcomponents-base",
14
16
  fileName: "${file}",
15
- content: \`${res.styles}\`
16
- };`;
17
+ content: \`${res.styles}\`,
18
+ };
19
+
20
+ export default styleData;
21
+ `;
17
22
 
18
- return fs.writeFile(path.join("dist/generated/css/", `${file}.js`), content);
23
+ return fs.writeFile(path.join("src/generated/css/", `${file}.ts`), content);
19
24
  });
20
25
 
21
26
  return Promise.all(filesPromises);
@@ -14,9 +14,9 @@ const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-p
14
14
  const eslintConfig = `--config ${require.resolve("@ui5/webcomponents-tools/components-package/eslint.js")}`;
15
15
 
16
16
  const scripts = {
17
- clean: "rimraf jsdoc-dist && rimraf dist && rimraf .port",
17
+ clean: "rimraf jsdoc-dist && rimraf src/generated && rimraf dist && rimraf .port",
18
18
  lint: `eslint . ${eslintConfig}`,
19
- prepare: "nps clean integrate copy typescript generateAssetParameters generateVersionInfo generateStyles generateTemplates generateAPI",
19
+ prepare: "nps clean integrate copy generateAssetParameters generateVersionInfo generateStyles generateTemplates typescript generateAPI",
20
20
  typescript: "tsc",
21
21
  integrate: {
22
22
  default: "nps integrate.copy-used-modules integrate.replace-amd integrate.amd-to-es6 integrate.esm-abs-to-rel integrate.third-party",
@@ -31,7 +31,7 @@ const scripts = {
31
31
  },
32
32
  },
33
33
  build: {
34
- default: `nps lint prepare build.bundle`,
34
+ default: `nps prepare lint build.bundle`,
35
35
  bundle: `vite build ${viteConfig}`,
36
36
  },
37
37
  copy: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "1.10.3",
3
+ "version": "1.11.0-rc.0",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -36,7 +36,7 @@
36
36
  "devDependencies": {
37
37
  "@buxlabs/amd-to-es6": "0.16.1",
38
38
  "@openui5/sap.ui.core": "1.109.0",
39
- "@ui5/webcomponents-tools": "1.10.3",
39
+ "@ui5/webcomponents-tools": "1.11.0-rc.0",
40
40
  "chromedriver": "109.0.0",
41
41
  "clean-css": "^5.2.2",
42
42
  "copy-and-watch": "^0.1.5",
@@ -46,5 +46,5 @@
46
46
  "replace-in-file": "^6.3.5",
47
47
  "resolve": "^1.20.0"
48
48
  },
49
- "gitHead": "78222ac6ff90e19163d924b84ef405d39943e98d"
49
+ "gitHead": "6464abd79265425ce65232ebeee53cf6585e6ec6"
50
50
  }
package/src/UI5Element.ts CHANGED
@@ -764,15 +764,16 @@ abstract class UI5Element extends HTMLElement {
764
764
 
765
765
  /**
766
766
  * Set the focus to the element, returned by "getFocusDomRef()" (marked by "data-sap-focus-ref")
767
+ * @param {FocusOptions} focusOptions additional options for the focus
767
768
  * @public
768
769
  */
769
- async focus() {
770
+ async focus(focusOptions?: FocusOptions) {
770
771
  await this._waitForDomRef();
771
772
 
772
773
  const focusDomRef = this.getFocusDomRef();
773
774
 
774
775
  if (focusDomRef && typeof focusDomRef.focus === "function") {
775
- focusDomRef.focus();
776
+ focusDomRef.focus(focusOptions);
776
777
  }
777
778
  }
778
779
 
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "BusyIndicator.css",
6
+ content: `.busy-indicator-wrapper{position:relative;height:100%;width:100%}.busy-indicator-overlay{display:var(--ui5_web_components_busy_indicator_display);position:absolute;inset:0;background:var(--ui5_web_components_busy_indicator_background-color);z-index:99}.busy-indicator-busy-area{display:var(--ui5_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_busy_indicator_color)}:host([__is-busy]) .busy-indicator-wrapper>:not(.busy-indicator-busy-area):not(.busy-indicator-overlay):not([busy-indicator-before-span]){--ui5_web_components_busy_indicator_display:none}.busy-indicator-busy-area:focus{outline:var(--_ui5_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_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)}}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "FontFace.css",
6
+ content: `@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "OverrideFontFace.css",
6
+ content: `@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "SystemCSSVars.css",
6
+ content: `:root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}`,
7
+ };
8
+
9
+ export default styleData;
package/src/global.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- import { StyleData } from "./types.js";
2
-
3
1
  export {};
4
2
 
5
3
  declare global {
@@ -19,10 +17,6 @@ declare global {
19
17
  chrome: any;
20
18
  v8: any;
21
19
  }
22
- module "*.css.js" {
23
- const content: StyleData;
24
- export default content;
25
- }
26
20
 
27
21
  module "*generated/AssetParameters.js" {
28
22
  const DEFAULT_THEME: string;
@@ -30,12 +30,15 @@ const isElemFocusable = (el: HTMLElement) => {
30
30
 
31
31
  const findFocusableElement = async (container: HTMLElement, forward: boolean, startFromContainer?: boolean): FocusableElementPromise => {
32
32
  let child: HTMLElement | undefined;
33
+ let assignedElements;
34
+ let currentIndex = -1;
33
35
 
34
36
  if (container.shadowRoot) {
35
37
  child = forward ? container.shadowRoot.firstChild as HTMLElement : container.shadowRoot.lastChild as HTMLElement;
36
38
  } else if (container instanceof HTMLSlotElement && container.assignedNodes()) {
37
- const assignedElements = container.assignedNodes();
38
- child = forward ? assignedElements[0] as HTMLElement : assignedElements[assignedElements.length - 1] as HTMLElement;
39
+ assignedElements = container.assignedNodes();
40
+ currentIndex = forward ? 0 : assignedElements.length - 1;
41
+ child = assignedElements[currentIndex] as HTMLElement;
39
42
  } else if (startFromContainer) {
40
43
  child = container;
41
44
  } else {
@@ -69,6 +72,13 @@ const findFocusableElement = async (container: HTMLElement, forward: boolean, st
69
72
  }
70
73
 
71
74
  child = forward ? originalChild.nextSibling as HTMLElement : originalChild.previousSibling as HTMLElement;
75
+
76
+ // If the child element is not part of the currently assigned element,
77
+ // we have to check the next element assigned to the slot or continue with the next sibling of the slot,
78
+ // otherwise, the nextSibling is the next element inside the light DOM
79
+ if (assignedElements && !assignedElements[currentIndex].contains(child)) {
80
+ child = assignedElements[++currentIndex] as HTMLElement;
81
+ }
72
82
  }
73
83
 
74
84
  /* eslint-enable no-await-in-loop */