Compare commits

..

1 Commits

Author SHA1 Message Date
Wendelin
405ea0d09d Fix integration search shrink on mobile (#51867) 2026-05-05 13:12:52 +01:00
6 changed files with 9 additions and 43 deletions

View File

@@ -1,4 +1,3 @@
/* global require, module, __dirname, process */
const path = require("path");
const env = require("./env.cjs");
const paths = require("./paths.cjs");
@@ -177,14 +176,11 @@ module.exports.babelOptions = ({
{
// Use unambiguous for dependencies so that require() is correctly injected into CommonJS files
// Exclusions are needed in some cases where ES modules have no static imports or exports, such as polyfills
// (otherwise babel-plugin-polyfill-corejs3 injects bare require("core-js/modules/...") calls
// that rspack does not transform, causing ReferenceError in browsers like Safari 14).
sourceType: "unambiguous",
include: /\/node_modules\//,
exclude: [
"element-internals-polyfill",
"@?lit(?:-labs|-element|-html)?",
"@formatjs/(?:ecma402-abstract|intl-\\w+)",
].map((p) => new RegExp(`/node_modules/${p}/`)),
},
],

View File

@@ -1,12 +0,0 @@
/* global module */
// Browser-only replacement for core-js/internals/get-built-in-node-module.
// The original helper evaluates `Function('return require("...")')()`
// when it detects a Node environment, which causes a runtime
// ReferenceError on browsers (notably Safari 14) if environment
// detection mis-classifies the page. Since browser bundles never need to
// access Node built-in modules, return undefined unconditionally.
//
// Wired up via rspack `NormalModuleReplacementPlugin` in build-scripts/rspack.cjs.
module.exports = function () {
return undefined;
};

View File

@@ -1,4 +1,3 @@
/* global require, module, __dirname */
const { existsSync } = require("fs");
const path = require("path");
const rspack = require("@rspack/core");
@@ -174,16 +173,6 @@ const createRspackConfig = ({
path.resolve(paths.root_dir, "src/util/empty.js")
)
: false,
// core-js ships a Node-only helper that evaluates
// `Function('return require("...")')()` when its runtime environment
// detection mis-classifies the page as Node. That produces a
// ReferenceError on browsers (observed on Safari 14). Since browser
// bundles never need to access Node built-in modules, replace it with
// a CommonJS no-op stub matching the helper's API (returns undefined).
new rspack.NormalModuleReplacementPlugin(
/core-js[\\/]internals[\\/]get-built-in-node-module(?:\.js)?$/,
path.resolve(__dirname, "get-built-in-node-module-shim.cjs")
),
!isProdBuild && new LogStartCompilePlugin(),
isProdBuild &&
new StatsWriterPlugin({

View File

@@ -374,6 +374,7 @@ export class HassTabsSubpage extends LitElement {
}
.main-title {
min-width: 0;
flex: 1;
max-height: var(--header-height);
line-height: var(--ha-line-height-normal);

View File

@@ -8,6 +8,7 @@ import { customElement, property, query, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import memoizeOne from "memoize-one";
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { deepActiveElement } from "../../../common/dom/deep-active-element";
import {
PROTOCOL_INTEGRATIONS,
protocolIntegrationPicked,
@@ -16,7 +17,6 @@ import { navigate } from "../../../common/navigate";
import { caseInsensitiveStringCompare } from "../../../common/string/compare";
import { extractSearchParam } from "../../../common/url/search-params";
import { nextRender } from "../../../common/util/render-status";
import { deepActiveElement } from "../../../common/dom/deep-active-element";
import "../../../components/ha-button";
import "../../../components/ha-dropdown";
import type { HaDropdownSelectEvent } from "../../../components/ha-dropdown";
@@ -1073,9 +1073,11 @@ class HaConfigIntegrationsDashboard extends KeyboardShortcutMixin(
}
ha-input-search {
flex: 1;
min-width: 0;
}
.header {
display: flex;
min-width: 0;
}
.search {
display: flex;

View File

@@ -17,24 +17,14 @@ const addData = async (
addFunc = "__addLocaleData"
) => {
// Add function will only exist if constructor is polyfilled
if (typeof (Intl[obj] as any)?.[addFunc] !== "function") {
return;
}
const url = `${__STATIC_PATH__}locale-data/intl-${obj.toLowerCase()}/${language}.json`;
try {
const result = await fetch(url);
// 404 means polyfill data does not exist for the language; ignore silently.
if (typeof (Intl[obj] as any)?.[addFunc] === "function") {
const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-${obj.toLowerCase()}/${language}.json`
);
// Ignore if polyfill data does not exist for language
if (result.ok) {
(Intl[obj] as any)[addFunc](await result.json());
}
} catch (err) {
// Network/access-control failures should not block startup, but they
// degrade i18n features so surface a warning for diagnostics.
// eslint-disable-next-line no-console
console.warn(`Failed to load Intl.${obj} locale data for ${language}`, {
url,
error: err,
});
}
};