diff --git a/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/playground/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/playground/page-client.tsx
index 209ae95a0..f5374aa86 100644
--- a/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/playground/page-client.tsx
+++ b/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/playground/page-client.tsx
@@ -536,6 +536,7 @@ export default function PageClient() {
type: "text",
icon: ,
name: "Display Name",
+ description: "The customer-facing name for this product.",
value: "Widget Pro",
readOnly: false,
onUpdate: async () => {
@@ -548,6 +549,7 @@ export default function PageClient() {
type: "boolean",
icon: ,
name: "Active",
+ description: "Controls whether this product can be purchased.",
value: true,
readOnly: false,
trueLabel: "Yes",
@@ -562,6 +564,7 @@ export default function PageClient() {
type: "dropdown",
icon: ,
name: "Category",
+ description: "Used to organize this product in the catalog.",
value: "hardware",
options: [
{ value: "hardware", label: "Hardware" },
@@ -579,6 +582,7 @@ export default function PageClient() {
type: "custom",
icon: ,
name: "Price",
+ description: "Current base price before discounts.",
children: $29.99,
},
];
@@ -591,6 +595,7 @@ export default function PageClient() {
type: "custom-dropdown",
icon: ,
name: "Custom Dropdown",
+ description: "A composed control with custom popover content.",
triggerContent: Open custom panel,
popoverContent:
Custom content
,
disabled: false,
@@ -600,6 +605,7 @@ export default function PageClient() {
type: "custom-button",
icon: ,
name: "Custom Button",
+ description: "Runs a custom action with built-in loading behavior.",
onClick: () => setGridActionLog("Clicked custom button"),
children: Run action,
disabled: false,
@@ -1082,28 +1088,28 @@ export default function PageClient() {
if (selected === "editable-grid") {
return (
-
+
{
- await new Promise((r) => setTimeout(r, 400));
- setGridActionLog("Saved deferred changes");
- setGridHasChanges(false);
- } : undefined}
+ items={editableItems}
onDiscard={gridDeferredSave ? () => {
setGridActionLog("Discarded deferred changes");
setGridHasChanges(false);
} : undefined}
- externalModifiedKeys={gridShowModified ? new Set(["display-name", "category"]) : undefined}
+ onSave={gridDeferredSave ? async () => {
+ await new Promise((resolve) => setTimeout(resolve, 400));
+ setGridActionLog("Saved deferred changes");
+ setGridHasChanges(false);
+ } : undefined}
+ size={gridSize}
/>
{gridActionLog && (
-
+
Last action: {gridActionLog}
)}