diff --git a/apps/builder/app/builder/features/settings-panel/property-label.tsx b/apps/builder/app/builder/features/settings-panel/property-label.tsx
index d23548c2c1b1..b7eb8faa93ae 100644
--- a/apps/builder/app/builder/features/settings-panel/property-label.tsx
+++ b/apps/builder/app/builder/features/settings-panel/property-label.tsx
@@ -12,26 +12,18 @@ import {
rawTheme,
theme,
} from "@webstudio-is/design-system";
-import { InfoCircleIcon } from "@webstudio-is/icons";
+import { AlertIcon } from "@webstudio-is/icons";
import type { Prop } from "@webstudio-is/sdk";
import { showAttribute } from "@webstudio-is/react-sdk";
import { updateWebstudioData } from "~/shared/instance-utils";
import { $selectedInstance } from "~/shared/awareness";
import { $props, $registeredComponentPropsMetas } from "~/shared/nano-states";
-import { humanizeAttribute, showAttributeMeta } from "./shared";
+import { $selectedInstancePropsMetas, humanizeAttribute } from "./shared";
const usePropMeta = (name: string) => {
const store = useMemo(() => {
- return computed(
- [$selectedInstance, $registeredComponentPropsMetas],
- (instance, propsMetas) => {
- if (name === showAttribute) {
- return showAttributeMeta;
- }
- const metas = propsMetas.get(instance?.component ?? "");
- const propMeta = metas?.props[name];
- return propMeta;
- }
+ return computed($selectedInstancePropsMetas, (propsMetas) =>
+ propsMetas.get(name)
);
}, [name]);
return useStore(store);
@@ -144,6 +136,18 @@ export const PropertyLabel = ({
{label}
{propMeta?.description && {propMeta.description}}
+ {readOnly && (
+
+
+
+ The value is controlled by an expression and cannot be
+ changed.
+
+
+ )}
{isDeletable && (