@loykin/designkit 0.0.1-dev.3 → 0.0.1-dev.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.
package/dist/index.cjs CHANGED
@@ -1756,6 +1756,9 @@ function SidebarMenuSubButton({
1756
1756
  }
1757
1757
  });
1758
1758
  }
1759
+ function useSidebarOptional() {
1760
+ return React2__namespace.useContext(SidebarContext);
1761
+ }
1759
1762
  function EmptyState({ icon: Icon, title, description, action, className }) {
1760
1763
  return /* @__PURE__ */ jsxRuntime.jsxs(
1761
1764
  "div",
@@ -2010,18 +2013,21 @@ function Header({ children, className }) {
2010
2013
  {
2011
2014
  "data-slot": "data-page-header",
2012
2015
  className: cn(
2013
- "shrink-0 px-[var(--dk-page-padding-x)] pt-[var(--dk-page-padding-y)]",
2016
+ "shrink-0 px-[var(--designkit-page-padding-x)] pt-[var(--designkit-page-padding-y)]",
2014
2017
  className
2015
2018
  ),
2016
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between gap-[var(--dk-panel-gap)]", children })
2019
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center justify-between gap-[var(--designkit-panel-gap)]", children })
2017
2020
  }
2018
2021
  );
2019
2022
  }
2020
- function TitleBlock({ title, description, breadcrumb, className }) {
2021
- if (!title && !description && !breadcrumb) return null;
2023
+ function TitleBlock({ title, description, breadcrumb, status, className }) {
2024
+ if (!title && !description && !breadcrumb && !status) return null;
2022
2025
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "data-page-title-block", className: cn("min-w-0 flex-1", className), children: [
2023
2026
  breadcrumb && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-xs text-muted-foreground", children: breadcrumb }),
2024
- title && /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "truncate text-xl font-semibold", children: title }),
2027
+ (title || status) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
2028
+ title && /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "min-w-0 truncate text-xl font-semibold", children: title }),
2029
+ status && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", children: status })
2030
+ ] }),
2025
2031
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1.5 text-sm text-muted-foreground", children: description })
2026
2032
  ] });
2027
2033
  }
@@ -2031,7 +2037,10 @@ function Actions({ children, className }) {
2031
2037
  "div",
2032
2038
  {
2033
2039
  "data-slot": "data-page-actions",
2034
- className: cn("flex shrink-0 items-center gap-[calc(var(--dk-panel-gap)*0.5)]", className),
2040
+ className: cn(
2041
+ "flex shrink-0 items-center gap-[calc(var(--designkit-panel-gap)*0.5)]",
2042
+ className
2043
+ ),
2035
2044
  children
2036
2045
  }
2037
2046
  );
@@ -2069,8 +2078,8 @@ function Content({ children, className, padding = "default" }) {
2069
2078
  "data-slot": "data-page-content",
2070
2079
  className: cn(
2071
2080
  "min-h-0 flex-1 overflow-auto",
2072
- padding === "default" && "px-[var(--dk-page-padding-x)] pb-[var(--dk-page-padding-y)] pt-[var(--dk-page-padding-y)]",
2073
- padding === "compact" && "p-[calc(var(--dk-page-padding-y)*0.875)]",
2081
+ padding === "default" && "px-[var(--designkit-page-padding-x)] pb-[var(--designkit-page-padding-y)] pt-[var(--designkit-page-padding-y)]",
2082
+ padding === "compact" && "p-[calc(var(--designkit-page-padding-y)*0.875)]",
2074
2083
  padding === "none" && "p-0",
2075
2084
  className
2076
2085
  ),
@@ -2107,7 +2116,7 @@ function GroupHeader({
2107
2116
  {
2108
2117
  "data-slot": "data-page-group-header",
2109
2118
  className: cn(
2110
- "flex items-start justify-between gap-4 px-0 pb-[calc(var(--dk-panel-gap)*0.75)]",
2119
+ "flex items-start justify-between gap-4 px-0 pb-[calc(var(--designkit-panel-gap)*0.75)]",
2111
2120
  className
2112
2121
  ),
2113
2122
  children: [
@@ -2128,7 +2137,7 @@ function GroupToolbar({ children, className }) {
2128
2137
  {
2129
2138
  "data-slot": "data-page-group-toolbar",
2130
2139
  className: cn(
2131
- "flex min-h-[var(--dk-toolbar-height)] items-center justify-between gap-[calc(var(--dk-panel-gap)*0.75)] pb-[calc(var(--dk-panel-gap)*0.75)]",
2140
+ "flex min-h-[var(--designkit-toolbar-height)] items-center justify-between gap-[calc(var(--designkit-panel-gap)*0.75)] pb-[calc(var(--designkit-panel-gap)*0.75)]",
2132
2141
  className
2133
2142
  ),
2134
2143
  children
@@ -2155,47 +2164,49 @@ var DataPage = Object.assign(Root, {
2155
2164
  GroupBody,
2156
2165
  Footer
2157
2166
  });
2158
- var DashboardPanel = React2.forwardRef(function DashboardPanel2({
2159
- title,
2160
- description,
2161
- loading,
2162
- error,
2163
- transparent,
2164
- editable,
2165
- className,
2166
- style,
2167
- children,
2168
- headerRight
2169
- }, ref) {
2170
- return /* @__PURE__ */ jsxRuntime.jsxs(
2171
- "div",
2172
- {
2173
- ref,
2174
- className: cn(
2175
- "group flex h-full flex-col overflow-hidden",
2176
- transparent ? "" : "rounded-(--radius) border bg-card text-card-foreground",
2177
- editable && "ring-1 ring-border/60 ring-inset",
2178
- className
2179
- ),
2180
- style,
2181
- children: [
2182
- (title || headerRight || editable) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2 pl-3 pr-1.5 py-2", children: [
2183
- editable && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 cursor-grab active:cursor-grabbing select-none text-muted-foreground/40 hover:text-muted-foreground/70 transition-colors -ml-1 px-0.5", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripHorizontal, { className: "h-3.5 w-3.5" }) }),
2184
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2185
- title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-card-foreground", children: title }),
2186
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[11px] text-muted-foreground", children: description })
2167
+ var DashboardPanel = React2.forwardRef(
2168
+ function DashboardPanel2({
2169
+ title,
2170
+ description,
2171
+ loading,
2172
+ error,
2173
+ transparent,
2174
+ editable,
2175
+ className,
2176
+ style,
2177
+ children,
2178
+ headerRight
2179
+ }, ref) {
2180
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2181
+ "div",
2182
+ {
2183
+ ref,
2184
+ className: cn(
2185
+ "group flex h-full flex-col overflow-hidden",
2186
+ transparent ? "" : "rounded-(--radius) border bg-card text-card-foreground",
2187
+ editable && "ring-1 ring-border/60 ring-inset",
2188
+ className
2189
+ ),
2190
+ style,
2191
+ children: [
2192
+ (title || headerRight || editable) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2 pl-3 pr-1.5 py-2", children: [
2193
+ editable && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 cursor-grab active:cursor-grabbing select-none text-muted-foreground/40 hover:text-muted-foreground/70 transition-colors -ml-1 px-0.5", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripHorizontal, { className: "h-3.5 w-3.5" }) }),
2194
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
2195
+ title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-card-foreground", children: title }),
2196
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[11px] text-muted-foreground", children: description })
2197
+ ] }),
2198
+ headerRight && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-150", children: headerRight })
2187
2199
  ] }),
2188
- headerRight && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-150", children: headerRight })
2189
- ] }),
2190
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-1 min-h-0 p-3", children: [
2191
- loading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-card/70 z-10", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 animate-spin rounded-full border-2 border-primary border-t-transparent" }) }),
2192
- error && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-destructive", children: error }) }),
2193
- !error && children
2194
- ] })
2195
- ]
2196
- }
2197
- );
2198
- });
2200
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-1 min-h-0 p-3", children: [
2201
+ loading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-card/70 z-10", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 animate-spin rounded-full border-2 border-primary border-t-transparent" }) }),
2202
+ error && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-destructive", children: error }) }),
2203
+ !error && children
2204
+ ] })
2205
+ ]
2206
+ }
2207
+ );
2208
+ }
2209
+ );
2199
2210
  function DashboardBodyTemplate({
2200
2211
  theme,
2201
2212
  className,
@@ -2209,15 +2220,24 @@ function DashboardBodyTemplate({
2209
2220
  }) {
2210
2221
  return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: cn("layout-dashboard", className), style: theme, children: [
2211
2222
  topBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: topBar }),
2212
- (title || toolbar) && /* @__PURE__ */ jsxRuntime.jsx("header", { className: "shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-page-padding-y)", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
2223
+ (title || toolbar) && /* @__PURE__ */ jsxRuntime.jsx("header", { className: "shrink-0 border-b px-(--designkit-page-padding-x) py-(--designkit-page-padding-y)", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
2213
2224
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
2214
2225
  title && /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-sm font-semibold truncate", children: title }),
2215
2226
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: description })
2216
2227
  ] }),
2217
2228
  toolbar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2 shrink-0", children: toolbar })
2218
2229
  ] }) }),
2219
- variableBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex flex-wrap items-center gap-2 px-(--dk-page-padding-x) py-1.5", children: variableBar }),
2220
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex-1 min-h-0 overflow-auto px-[calc(var(--dk-page-padding-x)-0.5rem)] pt-0 pb-(--dk-page-padding-y)", contentClassName), children })
2230
+ variableBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex flex-wrap items-center gap-2 px-(--designkit-page-padding-x) py-1.5", children: variableBar }),
2231
+ /* @__PURE__ */ jsxRuntime.jsx(
2232
+ "div",
2233
+ {
2234
+ className: cn(
2235
+ "flex-1 min-h-0 overflow-auto px-[calc(var(--designkit-page-padding-x)-0.5rem)] pt-0 pb-(--designkit-page-padding-y)",
2236
+ contentClassName
2237
+ ),
2238
+ children
2239
+ }
2240
+ )
2221
2241
  ] });
2222
2242
  }
2223
2243
  function clamp(value, min, max) {
@@ -2268,6 +2288,7 @@ function WorkbenchBodyTemplate({
2268
2288
  contentClassName,
2269
2289
  title,
2270
2290
  description,
2291
+ status,
2271
2292
  topBar,
2272
2293
  headerRight,
2273
2294
  toolbar,
@@ -2293,41 +2314,49 @@ function WorkbenchBodyTemplate({
2293
2314
  leftPaneClassName,
2294
2315
  mainPaneClassName,
2295
2316
  rightPaneClassName,
2296
- bottomPaneClassName
2317
+ bottomPaneClassName,
2318
+ leftPaneLabel = "Panel",
2319
+ rightPaneLabel = "Inspector"
2297
2320
  }) {
2298
2321
  const [leftWidth, setLeftWidth] = React2.useState(leftPaneWidth);
2299
2322
  const [rightWidth, setRightWidth] = React2.useState(rightPaneWidth);
2300
2323
  const [bottomHeight, setBottomHeight] = React2.useState(bottomPaneHeight);
2301
- const startResize = React2.useCallback((event, axis, applyDelta) => {
2302
- if (!resizable) return;
2303
- const start = axis === "x" ? event.clientX : event.clientY;
2304
- event.currentTarget.setPointerCapture(event.pointerId);
2305
- const previousCursor = document.body.style.cursor;
2306
- const previousUserSelect = document.body.style.userSelect;
2307
- document.body.style.cursor = axis === "x" ? "col-resize" : "row-resize";
2308
- document.body.style.userSelect = "none";
2309
- const onPointerMove = (moveEvent) => {
2310
- applyDelta((axis === "x" ? moveEvent.clientX : moveEvent.clientY) - start);
2311
- };
2312
- const onPointerUp = () => {
2313
- document.body.style.cursor = previousCursor;
2314
- document.body.style.userSelect = previousUserSelect;
2315
- window.removeEventListener("pointermove", onPointerMove);
2316
- window.removeEventListener("pointerup", onPointerUp);
2317
- };
2318
- window.addEventListener("pointermove", onPointerMove);
2319
- window.addEventListener("pointerup", onPointerUp, { once: true });
2320
- }, [resizable]);
2324
+ const startResize = React2.useCallback(
2325
+ (event, axis, applyDelta) => {
2326
+ if (!resizable) return;
2327
+ const start = axis === "x" ? event.clientX : event.clientY;
2328
+ event.currentTarget.setPointerCapture(event.pointerId);
2329
+ const previousCursor = document.body.style.cursor;
2330
+ const previousUserSelect = document.body.style.userSelect;
2331
+ document.body.style.cursor = axis === "x" ? "col-resize" : "row-resize";
2332
+ document.body.style.userSelect = "none";
2333
+ const onPointerMove = (moveEvent) => {
2334
+ applyDelta((axis === "x" ? moveEvent.clientX : moveEvent.clientY) - start);
2335
+ };
2336
+ const onPointerUp = () => {
2337
+ document.body.style.cursor = previousCursor;
2338
+ document.body.style.userSelect = previousUserSelect;
2339
+ window.removeEventListener("pointermove", onPointerMove);
2340
+ window.removeEventListener("pointerup", onPointerUp);
2341
+ };
2342
+ window.addEventListener("pointermove", onPointerMove);
2343
+ window.addEventListener("pointerup", onPointerUp, { once: true });
2344
+ },
2345
+ [resizable]
2346
+ );
2321
2347
  const headerRightContent = headerRight ?? toolbar;
2322
- const showHeader = title || description || headerRightContent || actions;
2348
+ const showHeader = title || description || status || headerRightContent || actions;
2323
2349
  const showLeftPane = leftPane && !leftPaneCollapsed;
2324
2350
  const showRightPane = rightPane && !rightPaneCollapsed;
2325
2351
  const showBottomPane = bottomPane && !bottomPaneCollapsed;
2326
2352
  return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: cn("layout-workbench", className), style: theme, children: [
2327
2353
  topBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: topBar }),
2328
- showHeader && /* @__PURE__ */ jsxRuntime.jsx("header", { className: "shrink-0 border-b px-(--dk-page-padding-x) py-[calc(var(--dk-page-padding-y)*0.75)]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-[var(--dk-toolbar-height)] items-center justify-between gap-3", children: [
2354
+ showHeader && /* @__PURE__ */ jsxRuntime.jsx("header", { className: "shrink-0 border-b px-(--designkit-page-padding-x) py-[calc(var(--designkit-page-padding-y)*0.75)]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-[var(--designkit-toolbar-height)] items-center justify-between gap-3", children: [
2329
2355
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
2330
- title && /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "truncate text-sm font-semibold", children: title }),
2356
+ (title || status) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
2357
+ title && /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "min-w-0 truncate text-sm font-semibold", children: title }),
2358
+ status && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", children: status })
2359
+ ] }),
2331
2360
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: description })
2332
2361
  ] }),
2333
2362
  (headerRightContent || actions) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
@@ -2335,12 +2364,31 @@ function WorkbenchBodyTemplate({
2335
2364
  actions
2336
2365
  ] })
2337
2366
  ] }) }),
2367
+ (showLeftPane || showRightPane) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-1.5 border-b px-2 py-1.5 md:hidden", children: [
2368
+ showLeftPane && /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { children: [
2369
+ /* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { render: /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", size: "sm" }), children: leftPaneLabel }),
2370
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { side: "left", className: "flex flex-col gap-0 p-0", children: [
2371
+ /* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { className: "shrink-0 border-b px-4 py-3", children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: leftPaneLabel }) }),
2372
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollArea, { className: "flex-1", children: leftPane })
2373
+ ] })
2374
+ ] }),
2375
+ showRightPane && /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { children: [
2376
+ /* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { render: /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", size: "sm" }), children: rightPaneLabel }),
2377
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { side: "right", className: "flex flex-col gap-0 p-0", children: [
2378
+ /* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { className: "shrink-0 border-b px-4 py-3", children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: rightPaneLabel }) }),
2379
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollArea, { className: "flex-1", children: rightPane })
2380
+ ] })
2381
+ ] })
2382
+ ] }),
2338
2383
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex min-h-0 flex-1 overflow-hidden", contentClassName), children: [
2339
2384
  showLeftPane && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2340
2385
  /* @__PURE__ */ jsxRuntime.jsx(
2341
2386
  "aside",
2342
2387
  {
2343
- className: cn("min-h-0 shrink-0 overflow-hidden border-r bg-card/45", leftPaneClassName),
2388
+ className: cn(
2389
+ "hidden min-h-0 shrink-0 overflow-hidden border-r bg-card/45 md:flex md:flex-col",
2390
+ leftPaneClassName
2391
+ ),
2344
2392
  style: { width: leftWidth },
2345
2393
  children: leftPane
2346
2394
  }
@@ -2349,6 +2397,7 @@ function WorkbenchBodyTemplate({
2349
2397
  ResizeHandle,
2350
2398
  {
2351
2399
  axis: "x",
2400
+ className: "hidden md:flex",
2352
2401
  onPointerDown: (event) => {
2353
2402
  const start = leftWidth;
2354
2403
  startResize(event, "x", (delta) => {
@@ -2365,10 +2414,13 @@ function WorkbenchBodyTemplate({
2365
2414
  ResizeHandle,
2366
2415
  {
2367
2416
  axis: "y",
2417
+ className: "hidden md:flex",
2368
2418
  onPointerDown: (event) => {
2369
2419
  const start = bottomHeight;
2370
2420
  startResize(event, "y", (delta) => {
2371
- setBottomHeight(clamp(start - delta, minBottomPaneHeight, maxBottomPaneHeight));
2421
+ setBottomHeight(
2422
+ clamp(start - delta, minBottomPaneHeight, maxBottomPaneHeight)
2423
+ );
2372
2424
  });
2373
2425
  }
2374
2426
  }
@@ -2376,7 +2428,10 @@ function WorkbenchBodyTemplate({
2376
2428
  /* @__PURE__ */ jsxRuntime.jsx(
2377
2429
  "section",
2378
2430
  {
2379
- className: cn("min-h-0 shrink-0 overflow-hidden border-t bg-card/40", bottomPaneClassName),
2431
+ className: cn(
2432
+ "min-h-0 shrink-0 overflow-auto border-t bg-card/40 md:overflow-hidden",
2433
+ bottomPaneClassName
2434
+ ),
2380
2435
  style: { height: bottomHeight },
2381
2436
  children: bottomPane
2382
2437
  }
@@ -2388,6 +2443,7 @@ function WorkbenchBodyTemplate({
2388
2443
  ResizeHandle,
2389
2444
  {
2390
2445
  axis: "x",
2446
+ className: "hidden md:flex",
2391
2447
  onPointerDown: (event) => {
2392
2448
  const start = rightWidth;
2393
2449
  startResize(event, "x", (delta) => {
@@ -2399,7 +2455,10 @@ function WorkbenchBodyTemplate({
2399
2455
  /* @__PURE__ */ jsxRuntime.jsx(
2400
2456
  "aside",
2401
2457
  {
2402
- className: cn("min-h-0 shrink-0 overflow-hidden border-l bg-card/45", rightPaneClassName),
2458
+ className: cn(
2459
+ "hidden min-h-0 shrink-0 overflow-hidden border-l bg-card/45 md:flex md:flex-col",
2460
+ rightPaneClassName
2461
+ ),
2403
2462
  style: { width: rightWidth },
2404
2463
  children: rightPane
2405
2464
  }
@@ -2454,13 +2513,13 @@ function GroupWrapper({
2454
2513
  children
2455
2514
  }) {
2456
2515
  if (variant === "card") {
2457
- return /* @__PURE__ */ jsxRuntime.jsx(Card, { children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-(--dk-panel-gap)", children }) });
2516
+ return /* @__PURE__ */ jsxRuntime.jsx(Card, { children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-(--designkit-panel-gap)", children }) });
2458
2517
  }
2459
2518
  if (variant === "bordered") {
2460
2519
  if (layout === "inline") {
2461
2520
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-(--radius) border divide-y", children });
2462
2521
  }
2463
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-(--radius) border p-(--dk-panel-gap)", children });
2522
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-(--radius) border p-(--designkit-panel-gap)", children });
2464
2523
  }
2465
2524
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
2466
2525
  }
@@ -2486,7 +2545,7 @@ function renderGroupProps(props) {
2486
2545
  const variant = variantProp ?? layoutDefaultVariant[layout];
2487
2546
  if (layout === "split") {
2488
2547
  const panes = React2.Children.toArray(children);
2489
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("py-(--dk-panel-gap)", className), children: [
2548
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("py-(--designkit-panel-gap)", className), children: [
2490
2549
  (title || description || actions) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-start justify-between", children: [
2491
2550
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2492
2551
  title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-sm font-semibold", danger && "text-destructive"), children: title }),
@@ -2494,21 +2553,30 @@ function renderGroupProps(props) {
2494
2553
  ] }),
2495
2554
  actions && /* @__PURE__ */ jsxRuntime.jsx("div", { children: actions })
2496
2555
  ] }),
2497
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid min-h-104 gap-(--dk-panel-gap) lg:grid-cols-[20rem_minmax(0,1fr)]", children: panes.map((pane, i) => /* @__PURE__ */ jsxRuntime.jsx(GroupWrapper, { layout, variant, children: pane }, i)) })
2556
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid min-h-104 gap-(--designkit-panel-gap) lg:grid-cols-[20rem_minmax(0,1fr)]", children: panes.map((pane, i) => /* @__PURE__ */ jsxRuntime.jsx(GroupWrapper, { layout, variant, children: pane }, i)) })
2498
2557
  ] });
2499
2558
  }
2500
2559
  if (layout === "horizontal") {
2501
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid grid-cols-3 gap-[calc(var(--dk-panel-gap)*2)] py-(--dk-panel-gap)", className), children: [
2502
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2503
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm font-medium", danger && "text-destructive"), children: title }),
2504
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: description }),
2505
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: actions })
2506
- ] }),
2507
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-2", children: /* @__PURE__ */ jsxRuntime.jsx(GroupWrapper, { layout, variant, children }) })
2508
- ] });
2560
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2561
+ "div",
2562
+ {
2563
+ className: cn(
2564
+ "grid grid-cols-1 gap-(--designkit-panel-gap) py-(--designkit-panel-gap) sm:grid-cols-3 sm:gap-[calc(var(--designkit-panel-gap)*2)]",
2565
+ className
2566
+ ),
2567
+ children: [
2568
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2569
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm font-medium", danger && "text-destructive"), children: title }),
2570
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: description }),
2571
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: actions })
2572
+ ] }),
2573
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sm:col-span-2", children: /* @__PURE__ */ jsxRuntime.jsx(GroupWrapper, { layout, variant, children }) })
2574
+ ]
2575
+ }
2576
+ );
2509
2577
  }
2510
2578
  if (layout === "inline") {
2511
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("py-(--dk-panel-gap)", className), children: [
2579
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("py-(--designkit-panel-gap)", className), children: [
2512
2580
  (title || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-start justify-between", children: [
2513
2581
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2514
2582
  title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-sm font-semibold", danger && "text-destructive"), children: title }),
@@ -2519,7 +2587,7 @@ function renderGroupProps(props) {
2519
2587
  /* @__PURE__ */ jsxRuntime.jsx(GroupWrapper, { layout, variant, children })
2520
2588
  ] });
2521
2589
  }
2522
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("py-(--dk-panel-gap)", className), children: [
2590
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("py-(--designkit-panel-gap)", className), children: [
2523
2591
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
2524
2592
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2525
2593
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-sm font-semibold", danger && "text-destructive"), children: title }),
@@ -2534,8 +2602,8 @@ function DataBodyField({ label, description, children }) {
2534
2602
  return /* @__PURE__ */ jsxRuntime.jsxs(
2535
2603
  "div",
2536
2604
  {
2537
- className: "grid items-start gap-x-4 px-4 py-3",
2538
- style: { gridTemplateColumns: "var(--dk-form-label-w, 11rem) 1fr" },
2605
+ className: "flex flex-col gap-y-1 px-4 py-3 sm:grid sm:items-start sm:gap-x-4 sm:gap-y-0",
2606
+ style: { gridTemplateColumns: "var(--designkit-form-label-w, 11rem) 1fr" },
2539
2607
  children: [
2540
2608
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pt-0.5", children: [
2541
2609
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: label }),
@@ -2550,8 +2618,8 @@ function DataBodyRow({ label, description, required, children }) {
2550
2618
  return /* @__PURE__ */ jsxRuntime.jsxs(
2551
2619
  "div",
2552
2620
  {
2553
- className: "grid items-start gap-x-4 px-4 py-3",
2554
- style: { gridTemplateColumns: "var(--dk-form-label-w, 11rem) 1fr" },
2621
+ className: "flex flex-col gap-y-1.5 px-4 py-3 sm:grid sm:items-start sm:gap-x-4 sm:gap-y-0",
2622
+ style: { gridTemplateColumns: "var(--designkit-form-label-w, 11rem) 1fr" },
2555
2623
  children: [
2556
2624
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pt-1", children: [
2557
2625
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
@@ -2575,6 +2643,7 @@ function Root2({
2575
2643
  topBar,
2576
2644
  title,
2577
2645
  description,
2646
+ status,
2578
2647
  actions,
2579
2648
  toolbarLeft,
2580
2649
  toolbarRight,
@@ -2608,10 +2677,10 @@ function Root2({
2608
2677
  return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: cn("layout-databody", className), style: theme, children: [
2609
2678
  /* @__PURE__ */ jsxRuntime.jsx(TopBarSlot, { topBar }),
2610
2679
  /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Header, { children: [
2611
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description }),
2680
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description, status }),
2612
2681
  /* @__PURE__ */ jsxRuntime.jsx(DataPage.Actions, { children: actions })
2613
2682
  ] }),
2614
- summaryEl && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)", children: summaryEl.props.children }),
2683
+ summaryEl && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b px-(--designkit-page-padding-x) py-(--designkit-panel-gap)", children: summaryEl.props.children }),
2615
2684
  /* @__PURE__ */ jsxRuntime.jsx(DataPage.Content, { className: contentClassName, children: /* @__PURE__ */ jsxRuntime.jsx(DataPage.Group, { className: "h-full", children: /* @__PURE__ */ jsxRuntime.jsx(DataPage.GroupBody, { className: cn("h-full", bodyEl.props.className), children: bodyEl.props.children }) }) })
2616
2685
  ] });
2617
2686
  }
@@ -2620,11 +2689,11 @@ function Root2({
2620
2689
  return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: cn("layout-sectioned", className), style: theme, children: [
2621
2690
  /* @__PURE__ */ jsxRuntime.jsx(TopBarSlot, { topBar }),
2622
2691
  /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Header, { children: [
2623
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description }),
2692
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description, status }),
2624
2693
  /* @__PURE__ */ jsxRuntime.jsx(DataPage.Actions, { children: actions })
2625
2694
  ] }),
2626
- summaryEl && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)", children: summaryEl.props.children }),
2627
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.Content, { className: contentClassName, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-(--dk-panel-gap) lg:grid-cols-[16rem_minmax(0,1fr)]", children: [
2695
+ summaryEl && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b px-(--designkit-page-padding-x) py-(--designkit-panel-gap)", children: summaryEl.props.children }),
2696
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.Content, { className: contentClassName, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-(--designkit-panel-gap) lg:grid-cols-[16rem_minmax(0,1fr)]", children: [
2628
2697
  /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "space-y-1", children: sections.map((section) => {
2629
2698
  const active = section.props.id === activeSection?.props.id;
2630
2699
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2646,7 +2715,7 @@ function Root2({
2646
2715
  section.props.id
2647
2716
  );
2648
2717
  }) }),
2649
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 space-y-(--dk-panel-gap)", children: renderGroups(activeSection?.props.children) })
2718
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 space-y-(--designkit-panel-gap)", children: renderGroups(activeSection?.props.children) })
2650
2719
  ] }) })
2651
2720
  ] });
2652
2721
  }
@@ -2654,10 +2723,10 @@ function Root2({
2654
2723
  return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: cn("layout-databody", className), style: theme, children: [
2655
2724
  /* @__PURE__ */ jsxRuntime.jsx(TopBarSlot, { topBar }),
2656
2725
  /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Header, { children: [
2657
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description }),
2726
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description, status }),
2658
2727
  /* @__PURE__ */ jsxRuntime.jsx(DataPage.Actions, { children: actions })
2659
2728
  ] }),
2660
- summaryEl && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b px-(--dk-page-padding-x) py-(--dk-panel-gap)", children: summaryEl.props.children }),
2729
+ summaryEl && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-b px-(--designkit-page-padding-x) py-(--designkit-panel-gap)", children: summaryEl.props.children }),
2661
2730
  hasTabs && /* @__PURE__ */ jsxRuntime.jsx(DataPage.Tabs, { children: tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
2662
2731
  DataPage.Tab,
2663
2732
  {
@@ -2704,6 +2773,7 @@ function BrowseBodyTemplate({
2704
2773
  topBar,
2705
2774
  title,
2706
2775
  description,
2776
+ status,
2707
2777
  actions,
2708
2778
  sidebar,
2709
2779
  sidebarTitle = "Filters",
@@ -2714,15 +2784,15 @@ function BrowseBodyTemplate({
2714
2784
  children
2715
2785
  }) {
2716
2786
  const isNarrow = useIsNarrow();
2717
- const hasHeader = title || description || actions;
2787
+ const hasHeader = title || description || status || actions;
2718
2788
  return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: cn("layout-browse", className), style: theme, children: [
2719
2789
  topBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: topBar }),
2720
2790
  hasHeader && /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Header, { children: [
2721
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description }),
2791
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, description, status }),
2722
2792
  /* @__PURE__ */ jsxRuntime.jsx(DataPage.Actions, { children: actions })
2723
2793
  ] }),
2724
2794
  /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Content, { padding: "none", className: "flex flex-col overflow-hidden", children: [
2725
- (toolbar || isNarrow) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b px-(--dk-page-padding-x) py-2", children: [
2795
+ (toolbar || isNarrow) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b px-(--designkit-page-padding-x) py-2", children: [
2726
2796
  isNarrow && /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { children: [
2727
2797
  /* @__PURE__ */ jsxRuntime.jsxs(
2728
2798
  SheetTrigger,
@@ -2742,19 +2812,12 @@ function BrowseBodyTemplate({
2742
2812
  toolbar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: toolbar })
2743
2813
  ] }),
2744
2814
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 overflow-hidden", children: [
2745
- !isNarrow && /* @__PURE__ */ jsxRuntime.jsx(
2746
- "aside",
2747
- {
2748
- className: "shrink-0 overflow-hidden border-r",
2749
- style: { width: sidebarWidth },
2750
- children: /* @__PURE__ */ jsxRuntime.jsx(ScrollArea, { className: "h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-(--dk-page-padding-x) py-(--dk-page-padding-y)", children: sidebar }) })
2751
- }
2752
- ),
2815
+ !isNarrow && /* @__PURE__ */ jsxRuntime.jsx("aside", { className: "shrink-0 overflow-hidden border-r", style: { width: sidebarWidth }, children: /* @__PURE__ */ jsxRuntime.jsx(ScrollArea, { className: "h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-(--designkit-page-padding-x) py-(--designkit-page-padding-y)", children: sidebar }) }) }),
2753
2816
  /* @__PURE__ */ jsxRuntime.jsx(
2754
2817
  "div",
2755
2818
  {
2756
2819
  className: cn(
2757
- "min-w-0 flex-1 overflow-hidden px-(--dk-page-padding-x) py-(--dk-page-padding-y)",
2820
+ "min-w-0 flex-1 overflow-hidden px-(--designkit-page-padding-x) py-(--designkit-page-padding-y)",
2758
2821
  "[&_.gridkit-shell]:h-full [&_.gridkit-table-stack]:flex-1 [&_.gridkit-table-stack]:min-h-0",
2759
2822
  "[&_.gridkit-frame]:flex-1 [&_.gridkit-frame]:min-h-0 [&_.gridkit-frame]:overflow-auto",
2760
2823
  contentClassName
@@ -2807,8 +2870,8 @@ function DetailBodySection({
2807
2870
  {
2808
2871
  className: cn(
2809
2872
  "min-h-0",
2810
- surface === "card" && "rounded-(--radius) border bg-card p-(--dk-panel-gap) text-card-foreground shadow-sm",
2811
- surface === "bordered" && "rounded-(--radius) border p-(--dk-panel-gap)",
2873
+ surface === "card" && "rounded-(--radius) border bg-card p-(--designkit-panel-gap) text-card-foreground shadow-sm",
2874
+ surface === "bordered" && "rounded-(--radius) border p-(--designkit-panel-gap)",
2812
2875
  className
2813
2876
  ),
2814
2877
  children: [
@@ -2853,8 +2916,14 @@ function DetailBodyTemplateRoot({
2853
2916
  const hasTabs = tabs.length > 0;
2854
2917
  const [activeTab, setActiveTab] = React2.useState(() => tabs[0]?.props.id ?? "");
2855
2918
  const selectedTab = tabs.find((tab) => tab.props.id === activeTab) ?? tabs[0];
2856
- const summarySlot = summary ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 rounded-(--radius) border bg-card p-(--dk-panel-gap) text-card-foreground", children: summary }) : null;
2857
- const mediaSlot = media ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("min-h-0 overflow-hidden rounded-(--radius) border bg-card", mediaClassName), children: media }) : null;
2919
+ const summarySlot = summary ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 rounded-(--radius) border bg-card p-(--designkit-panel-gap) text-card-foreground", children: summary }) : null;
2920
+ const mediaSlot = media ? /* @__PURE__ */ jsxRuntime.jsx(
2921
+ "div",
2922
+ {
2923
+ className: cn("min-h-0 overflow-hidden rounded-(--radius) border bg-card", mediaClassName),
2924
+ children: media
2925
+ }
2926
+ ) : null;
2858
2927
  const leadGridClass = variant === "media" ? "xl:grid-cols-[minmax(0,1.35fr)_minmax(18rem,0.65fr)]" : "xl:grid-cols-2";
2859
2928
  const defaultHeader = eyebrow || title || description || status || actions ? /* @__PURE__ */ jsxRuntime.jsx(
2860
2929
  DetailBodyHeader,
@@ -2866,7 +2935,7 @@ function DetailBodyTemplateRoot({
2866
2935
  actions
2867
2936
  }
2868
2937
  ) : null;
2869
- const defaultLead = media || summary ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-(--dk-panel-gap)", leadGridClass), children: [
2938
+ const defaultLead = media || summary ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-(--designkit-panel-gap)", leadGridClass), children: [
2870
2939
  mediaSlot,
2871
2940
  summarySlot
2872
2941
  ] }) : null;
@@ -2882,8 +2951,8 @@ function DetailBodyTemplateRoot({
2882
2951
  },
2883
2952
  tab.props.id
2884
2953
  )) }),
2885
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-(--dk-panel-gap)", children: selectedTab?.props.children })
2886
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-(--dk-panel-gap)", children: renderChildren(children) });
2954
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-(--designkit-panel-gap)", children: selectedTab?.props.children })
2955
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-(--designkit-panel-gap)", children: renderChildren(children) });
2887
2956
  const leadSlot = lead ?? defaultLead;
2888
2957
  const outsideAsideSlot = variant === "full" ? null : aside;
2889
2958
  const insideAsideSlot = variant === "full" ? aside : null;
@@ -2891,19 +2960,19 @@ function DetailBodyTemplateRoot({
2891
2960
  const hasFullLeadArea = Boolean(leadSlot || insideAsideSlot);
2892
2961
  const layout = {
2893
2962
  media: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2894
- leadSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-(--dk-panel-gap)", children: leadSlot }),
2963
+ leadSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-(--designkit-panel-gap)", children: leadSlot }),
2895
2964
  body
2896
2965
  ] }),
2897
2966
  record: /* @__PURE__ */ jsxRuntime.jsxs(
2898
2967
  "div",
2899
2968
  {
2900
2969
  className: cn(
2901
- "grid gap-(--dk-panel-gap)",
2970
+ "grid gap-(--designkit-panel-gap)",
2902
2971
  hasRecordInspector && "xl:grid-cols-[minmax(28rem,1fr)_minmax(14rem,18rem)]"
2903
2972
  ),
2904
2973
  children: [
2905
2974
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: body }),
2906
- hasRecordInspector && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-(--dk-panel-gap)", children: leadSlot })
2975
+ hasRecordInspector && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-(--designkit-panel-gap)", children: leadSlot })
2907
2976
  ]
2908
2977
  }
2909
2978
  ),
@@ -2912,53 +2981,79 @@ function DetailBodyTemplateRoot({
2912
2981
  "div",
2913
2982
  {
2914
2983
  className: cn(
2915
- "mb-(--dk-panel-gap) grid gap-(--dk-panel-gap)",
2984
+ "mb-(--designkit-panel-gap) grid gap-(--designkit-panel-gap)",
2916
2985
  insideAsideSlot && "xl:grid-cols-[minmax(0,1fr)_minmax(18rem,24rem)]"
2917
2986
  ),
2918
2987
  children: [
2919
- leadSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-(--dk-panel-gap)", children: leadSlot }),
2920
- insideAsideSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("min-h-0 rounded-(--radius) border bg-card p-(--dk-panel-gap)", asideClassName), children: insideAsideSlot })
2988
+ leadSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-(--designkit-panel-gap)", children: leadSlot }),
2989
+ insideAsideSlot && /* @__PURE__ */ jsxRuntime.jsx(
2990
+ "div",
2991
+ {
2992
+ className: cn(
2993
+ "min-h-0 rounded-(--radius) border bg-card p-(--designkit-panel-gap)",
2994
+ asideClassName
2995
+ ),
2996
+ children: insideAsideSlot
2997
+ }
2998
+ )
2921
2999
  ]
2922
3000
  }
2923
3001
  ),
2924
3002
  body
2925
3003
  ] })
2926
3004
  };
2927
- return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: cn("layout-detail", className), style: theme, "data-detail-variant": variant, children: [
2928
- topBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: topBar }),
2929
- header ?? defaultHeader,
2930
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.Content, { padding: "none", className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(
2931
- "div",
2932
- {
2933
- className: cn(
2934
- "grid h-full min-h-0 grid-cols-1 overflow-hidden",
2935
- outsideAsideSlot && "lg:grid-cols-[minmax(0,1fr)_minmax(18rem,24rem)]"
2936
- ),
2937
- children: [
2938
- /* @__PURE__ */ jsxRuntime.jsx(
2939
- "main",
2940
- {
2941
- className: cn(
2942
- "min-h-0 overflow-auto px-(--dk-page-padding-x) py-(--dk-page-padding-y)",
2943
- contentClassName
2944
- ),
2945
- children: layout[variant]
2946
- }
2947
- ),
2948
- outsideAsideSlot && /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("min-h-0 border-t bg-background lg:border-l lg:border-t-0", asideClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
2949
- "div",
2950
- {
2951
- className: cn(
2952
- "px-(--dk-page-padding-x) py-(--dk-page-padding-y)",
2953
- stickyAside && "lg:sticky lg:top-0"
3005
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3006
+ DataPage,
3007
+ {
3008
+ className: cn("layout-detail", className),
3009
+ style: theme,
3010
+ "data-detail-variant": variant,
3011
+ children: [
3012
+ topBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: topBar }),
3013
+ header ?? defaultHeader,
3014
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.Content, { padding: "none", className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(
3015
+ "div",
3016
+ {
3017
+ className: cn(
3018
+ "grid h-full min-h-0 grid-cols-1 overflow-hidden",
3019
+ outsideAsideSlot && "lg:grid-cols-[minmax(0,1fr)_minmax(18rem,24rem)]"
3020
+ ),
3021
+ children: [
3022
+ /* @__PURE__ */ jsxRuntime.jsx(
3023
+ "main",
3024
+ {
3025
+ className: cn(
3026
+ "min-h-0 overflow-auto px-(--designkit-page-padding-x) py-(--designkit-page-padding-y)",
3027
+ contentClassName
3028
+ ),
3029
+ children: layout[variant]
3030
+ }
2954
3031
  ),
2955
- children: outsideAsideSlot
2956
- }
2957
- ) })
2958
- ]
2959
- }
2960
- ) })
2961
- ] });
3032
+ outsideAsideSlot && /* @__PURE__ */ jsxRuntime.jsx(
3033
+ "aside",
3034
+ {
3035
+ className: cn(
3036
+ "min-h-0 border-t bg-background lg:border-l lg:border-t-0",
3037
+ asideClassName
3038
+ ),
3039
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3040
+ "div",
3041
+ {
3042
+ className: cn(
3043
+ "px-(--designkit-page-padding-x) py-(--designkit-page-padding-y)",
3044
+ stickyAside && "lg:sticky lg:top-0"
3045
+ ),
3046
+ children: outsideAsideSlot
3047
+ }
3048
+ )
3049
+ }
3050
+ )
3051
+ ]
3052
+ }
3053
+ ) })
3054
+ ]
3055
+ }
3056
+ );
2962
3057
  }
2963
3058
  var DetailBodyTemplate = Object.assign(DetailBodyTemplateRoot, {
2964
3059
  Header: DetailBodyHeader,
@@ -2974,7 +3069,9 @@ function ListDetailBodyTemplate({
2974
3069
  emptyDetail,
2975
3070
  listWidth = 320,
2976
3071
  listClassName,
2977
- detailClassName
3072
+ detailClassName,
3073
+ onBack,
3074
+ backLabel = "Back"
2978
3075
  }) {
2979
3076
  return /* @__PURE__ */ jsxRuntime.jsxs(
2980
3077
  DataPage,
@@ -2995,15 +3092,21 @@ function ListDetailBodyTemplate({
2995
3092
  children: list
2996
3093
  }
2997
3094
  ),
2998
- /* @__PURE__ */ jsxRuntime.jsx(
3095
+ /* @__PURE__ */ jsxRuntime.jsxs(
2999
3096
  "main",
3000
3097
  {
3001
3098
  className: cn(
3002
- "min-h-0 min-w-0 flex-1 overflow-auto",
3003
- !detail && "hidden lg:block",
3099
+ "flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden",
3100
+ !detail && "hidden lg:flex",
3004
3101
  detailClassName
3005
3102
  ),
3006
- children: detail ?? emptyDetail
3103
+ children: [
3104
+ detail && onBack && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center border-b px-3 py-2 lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "ghost", size: "sm", className: "-ml-1 gap-1", onClick: onBack, children: [
3105
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" }),
3106
+ backLabel
3107
+ ] }) }),
3108
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-auto", children: detail ?? emptyDetail })
3109
+ ]
3007
3110
  }
3008
3111
  )
3009
3112
  ] })
@@ -3011,9 +3114,56 @@ function ListDetailBodyTemplate({
3011
3114
  }
3012
3115
  );
3013
3116
  }
3117
+ function PanelTemplateSection({
3118
+ title,
3119
+ description,
3120
+ actions,
3121
+ className,
3122
+ children
3123
+ }) {
3124
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: cn("space-y-2.5", className), children: [
3125
+ (title || description || actions) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-2", children: [
3126
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
3127
+ title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-muted-foreground", children: title }),
3128
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: description })
3129
+ ] }),
3130
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: actions })
3131
+ ] }),
3132
+ children
3133
+ ] });
3134
+ }
3135
+ function PanelTemplateRoot({
3136
+ title,
3137
+ eyebrow,
3138
+ status,
3139
+ actions,
3140
+ footer,
3141
+ children,
3142
+ className,
3143
+ bodyClassName
3144
+ }) {
3145
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-full flex-col overflow-hidden", className), children: [
3146
+ (title || eyebrow || actions) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0 px-4 py-3", children: [
3147
+ eyebrow && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-0.5 text-[10px] font-medium uppercase tracking-wider text-muted-foreground", children: eyebrow }),
3148
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3149
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
3150
+ title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "min-w-0 truncate text-sm font-semibold", children: title }),
3151
+ status && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", children: status })
3152
+ ] }),
3153
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-1", children: actions })
3154
+ ] })
3155
+ ] }),
3156
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("min-h-0 flex-1 overflow-y-auto px-4 py-4", bodyClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-5", children }) }),
3157
+ footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 border-t px-4 py-3", children: footer })
3158
+ ] });
3159
+ }
3160
+ var PanelTemplate = Object.assign(PanelTemplateRoot, {
3161
+ Section: PanelTemplateSection
3162
+ });
3014
3163
  function FormWizardBodyTemplate({
3015
3164
  theme,
3016
3165
  title,
3166
+ status,
3017
3167
  topBar,
3018
3168
  variant = "plain",
3019
3169
  steps,
@@ -3031,8 +3181,8 @@ function FormWizardBodyTemplate({
3031
3181
  }
3032
3182
  return /* @__PURE__ */ jsxRuntime.jsxs(DataPage, { className: "layout-form-wizard", style: theme, children: [
3033
3183
  topBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: topBar }),
3034
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title }) }),
3035
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 px-(--dk-page-padding-x) pb-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center", children: steps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs(React2.Fragment, { children: [
3184
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(DataPage.TitleBlock, { title, status }) }),
3185
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 px-(--designkit-page-padding-x) pb-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center", children: steps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs(React2.Fragment, { children: [
3036
3186
  i > 0 && /* @__PURE__ */ jsxRuntime.jsx(
3037
3187
  "div",
3038
3188
  {
@@ -3065,7 +3215,7 @@ function FormWizardBodyTemplate({
3065
3215
  )
3066
3216
  ] })
3067
3217
  ] }, step.key)) }) }),
3068
- /* @__PURE__ */ jsxRuntime.jsx(DataPage.Content, { children: current && (variant === "card" ? /* @__PURE__ */ jsxRuntime.jsx(Card, { children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-(--dk-panel-gap)", children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: current.key, onSubmit: handleStepSubmit, children: [
3218
+ /* @__PURE__ */ jsxRuntime.jsx(DataPage.Content, { children: current && (variant === "card" ? /* @__PURE__ */ jsxRuntime.jsx(Card, { children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-(--designkit-panel-gap)", children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: current.key, onSubmit: handleStepSubmit, children: [
3069
3219
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-5", children: [
3070
3220
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold", children: current.title }),
3071
3221
  current.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: current.description })
@@ -3123,8 +3273,8 @@ function TypographyBodyTemplate({ theme, breadcrumb }) {
3123
3273
  description: "Global type scale preview for shell, template, and grid content"
3124
3274
  }
3125
3275
  ) }),
3126
- /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Content, { className: "grid gap-[var(--dk-panel-gap)] lg:grid-cols-[1fr_22rem]", children: [
3127
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-[var(--dk-panel-gap)]", children: [
3276
+ /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Content, { className: "grid gap-[var(--designkit-panel-gap)] lg:grid-cols-[1fr_22rem]", children: [
3277
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-[var(--designkit-panel-gap)]", children: [
3128
3278
  /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "rounded-lg border border-border ring-0", children: [
3129
3279
  /* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "Type Scale" }) }),
3130
3280
  /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "space-y-4", children: scaleRows.map((row) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[8rem_1fr] items-baseline gap-4", children: [
@@ -3315,7 +3465,7 @@ function ColorsBodyTemplate({ theme, breadcrumb }) {
3315
3465
  description: "Design token color palette and derivation rules for the active theme"
3316
3466
  }
3317
3467
  ) }),
3318
- /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Content, { className: "space-y-[var(--dk-panel-gap)]", children: [
3468
+ /* @__PURE__ */ jsxRuntime.jsxs(DataPage.Content, { className: "space-y-[var(--designkit-panel-gap)]", children: [
3319
3469
  /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "rounded-lg border border-border ring-0", children: [
3320
3470
  /* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "Primary \u2014 controlled by hue & chroma" }) }),
3321
3471
  /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "space-y-3", children: [
@@ -3485,15 +3635,7 @@ function LoginBodyTemplate({
3485
3635
  );
3486
3636
  }
3487
3637
  function Breadcrumb({ className, ...props }) {
3488
- return /* @__PURE__ */ jsxRuntime.jsx(
3489
- "nav",
3490
- {
3491
- "aria-label": "breadcrumb",
3492
- "data-slot": "breadcrumb",
3493
- className: cn(className),
3494
- ...props
3495
- }
3496
- );
3638
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", className: cn(className), ...props });
3497
3639
  }
3498
3640
  function BreadcrumbList({ className, ...props }) {
3499
3641
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3518,11 +3660,7 @@ function BreadcrumbItem({ className, ...props }) {
3518
3660
  }
3519
3661
  );
3520
3662
  }
3521
- function BreadcrumbLink({
3522
- className,
3523
- render,
3524
- ...props
3525
- }) {
3663
+ function BreadcrumbLink({ className, render, ...props }) {
3526
3664
  return useRender.useRender({
3527
3665
  defaultTagName: "a",
3528
3666
  props: mergeProps.mergeProps(
@@ -3550,11 +3688,7 @@ function BreadcrumbPage({ className, ...props }) {
3550
3688
  }
3551
3689
  );
3552
3690
  }
3553
- function BreadcrumbSeparator({
3554
- children,
3555
- className,
3556
- ...props
3557
- }) {
3691
+ function BreadcrumbSeparator({ children, className, ...props }) {
3558
3692
  return /* @__PURE__ */ jsxRuntime.jsx(
3559
3693
  "li",
3560
3694
  {
@@ -3602,26 +3736,36 @@ function buildTopBar(opts) {
3602
3736
  }
3603
3737
  );
3604
3738
  }
3739
+ function AutoSidebarTrigger() {
3740
+ const ctx = useSidebarOptional();
3741
+ if (!ctx?.isMobile) return null;
3742
+ return /* @__PURE__ */ jsxRuntime.jsx(SidebarTrigger, { className: "-ml-1 shrink-0" });
3743
+ }
3605
3744
  function PageTopBar({
3606
3745
  left,
3607
3746
  right,
3608
3747
  variant = "ghost",
3609
- height = "var(--dk-toolbar-height)",
3748
+ height = "var(--designkit-toolbar-height)",
3610
3749
  className,
3611
3750
  style,
3612
- children
3751
+ children,
3752
+ sidebarTrigger
3613
3753
  }) {
3754
+ const trigger = sidebarTrigger === false ? null : sidebarTrigger !== void 0 ? sidebarTrigger : /* @__PURE__ */ jsxRuntime.jsx(AutoSidebarTrigger, {});
3614
3755
  return /* @__PURE__ */ jsxRuntime.jsxs(
3615
3756
  "div",
3616
3757
  {
3617
3758
  className: cn(
3618
- "flex shrink-0 items-center justify-between gap-4 px-(--dk-page-padding-x)",
3759
+ "flex shrink-0 items-center justify-between gap-4 px-(--designkit-page-padding-x)",
3619
3760
  variant === "default" && "border-b",
3620
3761
  className
3621
3762
  ),
3622
3763
  style: { height, ...style },
3623
3764
  children: [
3624
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 items-center text-xs text-muted-foreground", children: normalizeBreadcrumb(left ?? children) }),
3765
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2 text-xs text-muted-foreground", children: [
3766
+ trigger,
3767
+ normalizeBreadcrumb(left ?? children)
3768
+ ] }),
3625
3769
  right && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-2", children: right })
3626
3770
  ]
3627
3771
  }
@@ -3661,8 +3805,7 @@ function buildTokenMap({
3661
3805
  }[density];
3662
3806
  const c = (factor) => (primaryChroma * factor).toFixed(4);
3663
3807
  return {
3664
- "--dk-radius": `${radius}rem`,
3665
- "--gridkit-radius": `${radius}rem`,
3808
+ "--designkit-radius": `${radius}rem`,
3666
3809
  "--radius": `${radius}rem`,
3667
3810
  "--radius-sm": `${(radius * 0.6).toFixed(4)}rem`,
3668
3811
  "--radius-md": `${(radius * 0.8).toFixed(4)}rem`,
@@ -3670,12 +3813,9 @@ function buildTokenMap({
3670
3813
  "--radius-xl": `${(radius * 1.4).toFixed(4)}rem`,
3671
3814
  "--radius-2xl": `${(radius * 1.8).toFixed(4)}rem`,
3672
3815
  // primary — fully controlled
3673
- "--dk-primary": `oklch(0.52 ${primaryChroma} ${primaryHue})`,
3674
- "--dk-primary-foreground": "oklch(0.985 0 0)",
3675
- "--dk-ring": `oklch(0.50 ${primaryChroma} ${primaryHue})`,
3676
- "--gridkit-primary": `oklch(0.52 ${primaryChroma} ${primaryHue})`,
3677
- "--gridkit-primary-foreground": "oklch(0.985 0 0)",
3678
- "--gridkit-ring": `oklch(0.50 ${primaryChroma} ${primaryHue})`,
3816
+ "--designkit-primary": `oklch(0.52 ${primaryChroma} ${primaryHue})`,
3817
+ "--designkit-primary-foreground": "oklch(0.985 0 0)",
3818
+ "--designkit-ring": `oklch(0.50 ${primaryChroma} ${primaryHue})`,
3679
3819
  "--primary": `oklch(0.52 ${primaryChroma} ${primaryHue})`,
3680
3820
  "--primary-foreground": "oklch(0.985 0 0)",
3681
3821
  "--color-primary": `oklch(0.52 ${primaryChroma} ${primaryHue})`,
@@ -3695,37 +3835,35 @@ function buildTokenMap({
3695
3835
  "--color-muted": `oklch(0.970 ${c(0.02)} ${primaryHue})`,
3696
3836
  "--color-secondary": `oklch(0.970 ${c(0.02)} ${primaryHue})`,
3697
3837
  "--color-accent": `oklch(0.970 ${c(0.04)} ${primaryHue})`,
3698
- "--dk-border": `oklch(0.922 ${c(0.04)} ${primaryHue})`,
3699
- "--dk-input": `oklch(0.922 ${c(0.04)} ${primaryHue})`,
3700
- "--dk-muted": `oklch(0.970 ${c(0.02)} ${primaryHue})`,
3701
- "--gridkit-border": `oklch(0.922 ${c(0.04)} ${primaryHue})`,
3702
- "--gridkit-muted": `oklch(0.970 ${c(0.02)} ${primaryHue})`,
3703
- "--dk-font-scale": fontScale,
3704
- "--dk-line-height": lineHeight,
3705
- "--dk-density": densityValues.density,
3706
- "--dk-page-padding-y": pagePaddingY ?? densityValues.pagePaddingY,
3707
- "--dk-panel-gap": panelGap ?? densityValues.panelGap,
3708
- "--dk-toolbar-height": toolbarHeight ?? densityValues.toolbarHeight,
3709
- "--dk-text-xs": `calc(0.75rem * ${fontScale})`,
3710
- "--dk-text-sm": `calc(0.875rem * ${fontScale})`,
3711
- "--dk-text-base": `calc(1rem * ${fontScale})`,
3712
- "--dk-text-lg": `calc(1.125rem * ${fontScale})`,
3713
- "--dk-text-xl": `calc(1.25rem * ${fontScale})`,
3714
- "--dk-leading-xs": `calc(1rem * ${lineHeight})`,
3715
- "--dk-leading-sm": `calc(1.25rem * ${lineHeight})`,
3716
- "--dk-leading-base": `calc(1.5rem * ${lineHeight})`,
3717
- "--dk-leading-lg": `calc(1.75rem * ${lineHeight})`,
3718
- "--dk-leading-xl": `calc(1.75rem * ${lineHeight})`,
3719
- "--text-xs": "var(--dk-text-xs)",
3720
- "--text-sm": "var(--dk-text-sm)",
3721
- "--text-base": "var(--dk-text-base)",
3722
- "--text-lg": "var(--dk-text-lg)",
3723
- "--text-xl": "var(--dk-text-xl)",
3724
- "--text-xs--line-height": "var(--dk-leading-xs)",
3725
- "--text-sm--line-height": "var(--dk-leading-sm)",
3726
- "--text-base--line-height": "var(--dk-leading-base)",
3727
- "--text-lg--line-height": "var(--dk-leading-lg)",
3728
- "--text-xl--line-height": "var(--dk-leading-xl)"
3838
+ "--designkit-border": `oklch(0.922 ${c(0.04)} ${primaryHue})`,
3839
+ "--designkit-input": `oklch(0.922 ${c(0.04)} ${primaryHue})`,
3840
+ "--designkit-muted": `oklch(0.970 ${c(0.02)} ${primaryHue})`,
3841
+ "--designkit-font-scale": fontScale,
3842
+ "--designkit-line-height": lineHeight,
3843
+ "--designkit-density": densityValues.density,
3844
+ "--designkit-page-padding-y": pagePaddingY ?? densityValues.pagePaddingY,
3845
+ "--designkit-panel-gap": panelGap ?? densityValues.panelGap,
3846
+ "--designkit-toolbar-height": toolbarHeight ?? densityValues.toolbarHeight,
3847
+ "--designkit-text-xs": `calc(0.75rem * ${fontScale})`,
3848
+ "--designkit-text-sm": `calc(0.875rem * ${fontScale})`,
3849
+ "--designkit-text-base": `calc(1rem * ${fontScale})`,
3850
+ "--designkit-text-lg": `calc(1.125rem * ${fontScale})`,
3851
+ "--designkit-text-xl": `calc(1.25rem * ${fontScale})`,
3852
+ "--designkit-leading-xs": `calc(1rem * ${lineHeight})`,
3853
+ "--designkit-leading-sm": `calc(1.25rem * ${lineHeight})`,
3854
+ "--designkit-leading-base": `calc(1.5rem * ${lineHeight})`,
3855
+ "--designkit-leading-lg": `calc(1.75rem * ${lineHeight})`,
3856
+ "--designkit-leading-xl": `calc(1.75rem * ${lineHeight})`,
3857
+ "--text-xs": "var(--designkit-text-xs)",
3858
+ "--text-sm": "var(--designkit-text-sm)",
3859
+ "--text-base": "var(--designkit-text-base)",
3860
+ "--text-lg": "var(--designkit-text-lg)",
3861
+ "--text-xl": "var(--designkit-text-xl)",
3862
+ "--text-xs--line-height": "var(--designkit-leading-xs)",
3863
+ "--text-sm--line-height": "var(--designkit-leading-sm)",
3864
+ "--text-base--line-height": "var(--designkit-leading-base)",
3865
+ "--text-lg--line-height": "var(--designkit-leading-lg)",
3866
+ "--text-xl--line-height": "var(--designkit-leading-xl)"
3729
3867
  };
3730
3868
  }
3731
3869
  function buildDarkTonalTokens(primaryHue, primaryChroma) {
@@ -3741,11 +3879,9 @@ function buildDarkTonalTokens(primaryHue, primaryChroma) {
3741
3879
  "--color-muted": `oklch(0.269 ${c(0.03)} ${primaryHue})`,
3742
3880
  "--color-secondary": `oklch(0.269 ${c(0.02)} ${primaryHue})`,
3743
3881
  "--color-accent": `oklch(0.320 ${c(0.04)} ${primaryHue})`,
3744
- "--dk-border": `oklch(0.32 ${c(0.06)} ${primaryHue})`,
3745
- "--dk-input": `oklch(0.35 ${c(0.06)} ${primaryHue})`,
3746
- "--dk-muted": `oklch(0.269 ${c(0.03)} ${primaryHue})`,
3747
- "--gridkit-border": `oklch(0.32 ${c(0.06)} ${primaryHue})`,
3748
- "--gridkit-muted": `oklch(0.269 ${c(0.03)} ${primaryHue})`
3882
+ "--designkit-border": `oklch(0.32 ${c(0.06)} ${primaryHue})`,
3883
+ "--designkit-input": `oklch(0.35 ${c(0.06)} ${primaryHue})`,
3884
+ "--designkit-muted": `oklch(0.269 ${c(0.03)} ${primaryHue})`
3749
3885
  };
3750
3886
  }
3751
3887
  function tokenMapToCss(tokens) {
@@ -3791,10 +3927,10 @@ ${tokenMapToCss(tokens)}
3791
3927
  }, [g.darkMode]);
3792
3928
  React2.useEffect(() => {
3793
3929
  if (g.density === "default") {
3794
- document.documentElement.removeAttribute("data-dk-density");
3930
+ document.documentElement.removeAttribute("data-designkit-density");
3795
3931
  return;
3796
3932
  }
3797
- document.documentElement.dataset.dkDensity = g.density;
3933
+ document.documentElement.dataset.designkitDensity = g.density;
3798
3934
  }, [g.density]);
3799
3935
  }
3800
3936
  function buildTemplateTheme(g, ov = {}) {
@@ -3869,6 +4005,7 @@ exports.NavigationMenuPositioner = NavigationMenuPositioner;
3869
4005
  exports.NavigationMenuTrigger = NavigationMenuTrigger;
3870
4006
  exports.PageBreadcrumb = PageBreadcrumb;
3871
4007
  exports.PageTopBar = PageTopBar;
4008
+ exports.PanelTemplate = PanelTemplate;
3872
4009
  exports.Popover = Popover;
3873
4010
  exports.PopoverContent = PopoverContent;
3874
4011
  exports.PopoverDescription = PopoverDescription;
@@ -3949,6 +4086,7 @@ exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;
3949
4086
  exports.tabsListVariants = tabsListVariants;
3950
4087
  exports.useIsMobile = useIsMobile;
3951
4088
  exports.useSidebar = useSidebar;
4089
+ exports.useSidebarOptional = useSidebarOptional;
3952
4090
  exports.useStyleInjector = useStyleInjector;
3953
4091
  exports.useThemeStore = useThemeStore;
3954
4092
  //# sourceMappingURL=index.cjs.map