@mastra/playground-ui 63.0.0-alpha.3 → 63.0.0-alpha.4

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 (52) hide show
  1. package/dist/components/DataPanel.cjs.js +1 -1
  2. package/dist/components/DataPanel.es.js +1 -1
  3. package/dist/components/PageHeader.cjs.js +1 -1
  4. package/dist/components/PageHeader.es.js +1 -1
  5. package/dist/components/PageLayout.cjs.js +1 -1
  6. package/dist/components/PageLayout.cjs.js.map +1 -1
  7. package/dist/components/PageLayout.es.js +1 -1
  8. package/dist/components/PageLayout.es.js.map +1 -1
  9. package/dist/{data-panel-nbeducTl.js → data-panel-BdCw3F_h.js} +4 -4
  10. package/dist/{data-panel-nbeducTl.js.map → data-panel-BdCw3F_h.js.map} +1 -1
  11. package/dist/{data-panel-FG2S84x7.cjs → data-panel-Wjgbl6zx.cjs} +4 -4
  12. package/dist/{data-panel-FG2S84x7.cjs.map → data-panel-Wjgbl6zx.cjs.map} +1 -1
  13. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +0 -1
  14. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  15. package/dist/domains/chat/tools/badges/workflow-badge.es.js +0 -1
  16. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  17. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  18. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  19. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  20. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  21. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  22. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  23. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  24. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  25. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  26. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  27. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -1
  28. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  29. package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -1
  30. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  31. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +1 -1
  32. package/dist/domains/traces/components/trace-data-panel-view.es.js +1 -1
  33. package/dist/domains/traces/components/trace-data-panel.cjs.js +0 -1
  34. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  35. package/dist/domains/traces/components/trace-data-panel.es.js +0 -1
  36. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  37. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  38. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  39. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  40. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  41. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  42. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  43. package/dist/new/layout/page-header.cjs.js +1 -1
  44. package/dist/new/layout/page-header.es.js +1 -1
  45. package/dist/{page-header-CLxPq7T5.cjs → page-header-9Q9vOrh-.cjs} +3 -9
  46. package/dist/page-header-9Q9vOrh-.cjs.map +1 -0
  47. package/dist/{page-header-Bf0zLkyY.js → page-header-d2cK2zOg.js} +3 -9
  48. package/dist/page-header-d2cK2zOg.js.map +1 -0
  49. package/dist/style.css +4 -0
  50. package/package.json +9 -9
  51. package/dist/page-header-Bf0zLkyY.js.map +0 -1
  52. package/dist/page-header-CLxPq7T5.cjs.map +0 -1
@@ -113,16 +113,10 @@ function groupSlots(items) {
113
113
  function PageHeaderRoot({ children, className, spacing = "default", ...props }) {
114
114
  const items = Children.toArray(children);
115
115
  const { eyebrows, icons, headline, below, actions } = groupSlots(items);
116
- const hasControls = icons.length > 0 || actions.length > 0;
117
116
  return /* @__PURE__ */ jsxs(
118
117
  "header",
119
118
  {
120
- className: cn(
121
- "relative flex w-full flex-col",
122
- !hasControls && "gap-1",
123
- className,
124
- spacing === "breathing" && "pt-10"
125
- ),
119
+ className: cn("relative flex w-full flex-col", className, spacing === "breathing" && "pt-10"),
126
120
  "data-page-header-spacing": spacing === "breathing" ? spacing : void 0,
127
121
  ...props,
128
122
  children: [
@@ -130,7 +124,7 @@ function PageHeaderRoot({ children, className, spacing = "default", ...props })
130
124
  /* @__PURE__ */ jsxs("div", { className: "flex w-full items-start gap-3", children: [
131
125
  icons,
132
126
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
133
- headline.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("flex min-w-0 items-start gap-3", hasControls && "py-1"), children: headline }),
127
+ headline.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-start gap-3 py-1", children: headline }),
134
128
  below
135
129
  ] }),
136
130
  actions
@@ -150,4 +144,4 @@ const PageHeader = Object.assign(PageHeaderRoot, {
150
144
  });
151
145
 
152
146
  export { PageHeader as P };
153
- //# sourceMappingURL=page-header-Bf0zLkyY.js.map
147
+ //# sourceMappingURL=page-header-d2cK2zOg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header-d2cK2zOg.js","sources":["../src/ds/new/layout/page-header/page-header-action.tsx","../src/ds/new/layout/page-header/page-header-description.tsx","../src/ds/new/layout/page-header/page-header-eyebrow.tsx","../src/ds/new/layout/page-header/page-header-icon.tsx","../src/ds/new/layout/page-header/page-header-meta.tsx","../src/ds/new/layout/page-header/page-header-title.tsx","../src/ds/new/layout/page-header/page-header-root.tsx","../src/ds/new/layout/page-header/page-header.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderActionProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderAction({ className, ...props }: PageHeaderActionProps) {\n return (\n <div\n data-slot=\"page-header-action\"\n className={cn('ml-auto flex min-h-control-lg shrink-0 items-center self-start', className)}\n {...props}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderDescriptionProps extends ComponentPropsWithoutRef<'p'> {\n isLoading?: boolean;\n}\n\nexport function PageHeaderDescription({ children, className, isLoading, ...props }: PageHeaderDescriptionProps) {\n return (\n <Txt\n variant=\"caption\"\n tone=\"muted\"\n data-slot=\"page-header-description\"\n className={cn(\n 'flex max-w-140 flex-wrap gap-x-4 gap-y-1',\n isLoading && 'w-160 max-w-4/5 animate-pulse rounded-md bg-muted',\n className,\n )}\n {...props}\n >\n {isLoading ? <>&nbsp;</> : children}\n </Txt>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderEyebrowProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderEyebrow({ className, ...props }: PageHeaderEyebrowProps) {\n return (\n <div\n data-slot=\"page-header-eyebrow\"\n {...props}\n className={cn(\n 'text-caption text-muted-foreground',\n 'flex min-w-0 items-center',\n '*:inline-flex *:items-center *:gap-1 *:rounded-sm *:transition-colors *:hover:text-foreground',\n className,\n )}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderIconProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderIcon({ className, ...props }: PageHeaderIconProps) {\n return (\n <div\n data-slot=\"page-header-icon\"\n className={cn('flex min-h-control-lg items-center self-start text-muted-foreground', className)}\n {...props}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderMetaProps extends ComponentPropsWithoutRef<'div'> {\n beside?: boolean;\n}\n\nexport function PageHeaderMeta({ beside = false, className, ...props }: PageHeaderMetaProps) {\n return (\n <div\n data-slot=\"page-header-meta\"\n data-placement={beside ? 'beside' : 'below'}\n {...props}\n className={cn(\n 'text-meta text-muted-foreground',\n 'flex min-w-0 flex-wrap items-center gap-2',\n beside && 'min-h-6 shrink-0',\n className,\n )}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderTitleProps extends ComponentPropsWithoutRef<'h1'> {\n isLoading?: boolean;\n}\n\nexport function PageHeaderTitle({ children, className, isLoading, ...props }: PageHeaderTitleProps) {\n return (\n <Txt\n as=\"h1\"\n variant=\"heading\"\n tone=\"ink\"\n data-slot=\"page-header-title\"\n className={cn(\n 'flex min-w-0 items-center gap-2',\n isLoading && 'w-60 max-w-1/2 animate-pulse rounded-md bg-fill',\n className,\n )}\n {...props}\n >\n {isLoading ? <>&nbsp;</> : children}\n </Txt>\n );\n}\n","import { Children, isValidElement } from 'react';\nimport type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';\n\nimport { PageHeaderAction } from './page-header-action';\nimport { PageHeaderEyebrow } from './page-header-eyebrow';\nimport { PageHeaderIcon } from './page-header-icon';\nimport { PageHeaderMeta } from './page-header-meta';\nimport type { PageHeaderMetaProps } from './page-header-meta';\nimport { PageHeaderTitle } from './page-header-title';\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderRootProps = ComponentPropsWithoutRef<'header'> & {\n spacing?: 'default' | 'breathing';\n};\n\nfunction isSlot(child: ReactNode, type: ElementType) {\n return isValidElement(child) && child.type === type;\n}\n\nfunction isBesideMeta(child: ReactNode) {\n return isValidElement<PageHeaderMetaProps>(child) && child.type === PageHeaderMeta && Boolean(child.props.beside);\n}\n\nfunction groupSlots(items: ReactNode[]) {\n const eyebrows = items.filter(child => isSlot(child, PageHeaderEyebrow));\n const icons = items.filter(child => isSlot(child, PageHeaderIcon));\n const headline = [...items.filter(child => isSlot(child, PageHeaderTitle)), ...items.filter(isBesideMeta)];\n // Actions sit outside the title column so their height never affects title/meta/description alignment.\n const actions = items.filter(child => isSlot(child, PageHeaderAction));\n const placed = [...eyebrows, ...icons, ...headline, ...actions];\n const below = items.filter(child => !placed.includes(child));\n return { eyebrows, icons, headline, below, actions };\n}\n\nexport function PageHeaderRoot({ children, className, spacing = 'default', ...props }: PageHeaderRootProps) {\n const items = Children.toArray(children);\n const { eyebrows, icons, headline, below, actions } = groupSlots(items);\n\n return (\n <header\n className={cn('relative flex w-full flex-col', className, spacing === 'breathing' && 'pt-10')}\n data-page-header-spacing={spacing === 'breathing' ? spacing : undefined}\n {...props}\n >\n {eyebrows}\n <div className=\"flex w-full items-start gap-3\">\n {icons}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n {headline.length > 0 && <div className=\"flex min-w-0 items-start gap-3 py-1\">{headline}</div>}\n {below}\n </div>\n {actions}\n </div>\n </header>\n );\n}\n","import './page-header.css';\n\nimport { PageHeaderAction } from './page-header-action';\nimport { PageHeaderDescription } from './page-header-description';\nimport { PageHeaderEyebrow } from './page-header-eyebrow';\nimport { PageHeaderIcon } from './page-header-icon';\nimport { PageHeaderMeta } from './page-header-meta';\nimport { PageHeaderRoot } from './page-header-root';\nimport { PageHeaderTitle } from './page-header-title';\n\nexport type { PageHeaderActionProps } from './page-header-action';\nexport type { PageHeaderDescriptionProps } from './page-header-description';\nexport type { PageHeaderEyebrowProps } from './page-header-eyebrow';\nexport type { PageHeaderIconProps } from './page-header-icon';\nexport type { PageHeaderMetaProps } from './page-header-meta';\nexport type { PageHeaderRootProps } from './page-header-root';\nexport type { PageHeaderTitleProps } from './page-header-title';\n\nexport const PageHeader = Object.assign(PageHeaderRoot, {\n Eyebrow: PageHeaderEyebrow,\n Icon: PageHeaderIcon,\n Title: PageHeaderTitle,\n Meta: PageHeaderMeta,\n Description: PageHeaderDescription,\n Action: PageHeaderAction,\n});\n"],"names":[],"mappings":"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"}
package/dist/style.css CHANGED
@@ -3929,6 +3929,10 @@
3929
3929
  scroll-padding-block: calc(var(--spacing) * 8);
3930
3930
  }
3931
3931
 
3932
+ .\[scrollbar-gutter\:stable\] {
3933
+ scrollbar-gutter: stable;
3934
+ }
3935
+
3932
3936
  .\[scrollbar-gutter\:stable_both-edges\] {
3933
3937
  scrollbar-gutter: stable both-edges;
3934
3938
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mastra/playground-ui",
3
3
  "type": "module",
4
- "version": "63.0.0-alpha.3",
4
+ "version": "63.0.0-alpha.4",
5
5
  "description": "Mastra Playground components",
6
6
  "sideEffects": [
7
7
  "**/*.css"
@@ -202,9 +202,9 @@
202
202
  "react": ">=19.0.0",
203
203
  "react-dom": ">=19.0.0",
204
204
  "tailwindcss": "^4.0.0",
205
- "@mastra/ai-sdk": "^1.11.1-alpha.0",
206
- "@mastra/client-js": "^1.54.0-alpha.3",
207
- "@mastra/react": "1.10.0-alpha.3"
205
+ "@mastra/client-js": "^1.54.0-alpha.4",
206
+ "@mastra/react": "1.10.0-alpha.4",
207
+ "@mastra/ai-sdk": "^1.11.1-alpha.0"
208
208
  },
209
209
  "devDependencies": {
210
210
  "@modelcontextprotocol/sdk": "^1.32.1",
@@ -251,11 +251,11 @@
251
251
  "vitest": "4.1.11",
252
252
  "@internal/lint": "0.0.142",
253
253
  "@mastra/ai-sdk": "1.11.1-alpha.0",
254
- "@mastra/client-js": "^1.54.0-alpha.3",
255
- "@mastra/memory": "1.37.1-alpha.2",
256
- "@mastra/core": "1.77.0-alpha.3",
257
- "@mastra/react": "1.10.0-alpha.3",
258
- "@mastra/schema-compat": "1.3.13"
254
+ "@mastra/memory": "1.37.1-alpha.3",
255
+ "@mastra/client-js": "^1.54.0-alpha.4",
256
+ "@mastra/react": "1.10.0-alpha.4",
257
+ "@mastra/schema-compat": "1.3.14-alpha.0",
258
+ "@mastra/core": "1.77.0-alpha.4"
259
259
  },
260
260
  "homepage": "https://mastra.ai",
261
261
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-header-Bf0zLkyY.js","sources":["../src/ds/new/layout/page-header/page-header-action.tsx","../src/ds/new/layout/page-header/page-header-description.tsx","../src/ds/new/layout/page-header/page-header-eyebrow.tsx","../src/ds/new/layout/page-header/page-header-icon.tsx","../src/ds/new/layout/page-header/page-header-meta.tsx","../src/ds/new/layout/page-header/page-header-title.tsx","../src/ds/new/layout/page-header/page-header-root.tsx","../src/ds/new/layout/page-header/page-header.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderActionProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderAction({ className, ...props }: PageHeaderActionProps) {\n return (\n <div\n data-slot=\"page-header-action\"\n className={cn('ml-auto flex min-h-control-lg shrink-0 items-center self-start', className)}\n {...props}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderDescriptionProps extends ComponentPropsWithoutRef<'p'> {\n isLoading?: boolean;\n}\n\nexport function PageHeaderDescription({ children, className, isLoading, ...props }: PageHeaderDescriptionProps) {\n return (\n <Txt\n variant=\"caption\"\n tone=\"muted\"\n data-slot=\"page-header-description\"\n className={cn(\n 'flex max-w-140 flex-wrap gap-x-4 gap-y-1',\n isLoading && 'w-160 max-w-4/5 animate-pulse rounded-md bg-muted',\n className,\n )}\n {...props}\n >\n {isLoading ? <>&nbsp;</> : children}\n </Txt>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderEyebrowProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderEyebrow({ className, ...props }: PageHeaderEyebrowProps) {\n return (\n <div\n data-slot=\"page-header-eyebrow\"\n {...props}\n className={cn(\n 'text-caption text-muted-foreground',\n 'flex min-w-0 items-center',\n '*:inline-flex *:items-center *:gap-1 *:rounded-sm *:transition-colors *:hover:text-foreground',\n className,\n )}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderIconProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderIcon({ className, ...props }: PageHeaderIconProps) {\n return (\n <div\n data-slot=\"page-header-icon\"\n className={cn('flex min-h-control-lg items-center self-start text-muted-foreground', className)}\n {...props}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderMetaProps extends ComponentPropsWithoutRef<'div'> {\n beside?: boolean;\n}\n\nexport function PageHeaderMeta({ beside = false, className, ...props }: PageHeaderMetaProps) {\n return (\n <div\n data-slot=\"page-header-meta\"\n data-placement={beside ? 'beside' : 'below'}\n {...props}\n className={cn(\n 'text-meta text-muted-foreground',\n 'flex min-w-0 flex-wrap items-center gap-2',\n beside && 'min-h-6 shrink-0',\n className,\n )}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderTitleProps extends ComponentPropsWithoutRef<'h1'> {\n isLoading?: boolean;\n}\n\nexport function PageHeaderTitle({ children, className, isLoading, ...props }: PageHeaderTitleProps) {\n return (\n <Txt\n as=\"h1\"\n variant=\"heading\"\n tone=\"ink\"\n data-slot=\"page-header-title\"\n className={cn(\n 'flex min-w-0 items-center gap-2',\n isLoading && 'w-60 max-w-1/2 animate-pulse rounded-md bg-fill',\n className,\n )}\n {...props}\n >\n {isLoading ? <>&nbsp;</> : children}\n </Txt>\n );\n}\n","import { Children, isValidElement } from 'react';\nimport type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';\n\nimport { PageHeaderAction } from './page-header-action';\nimport { PageHeaderEyebrow } from './page-header-eyebrow';\nimport { PageHeaderIcon } from './page-header-icon';\nimport { PageHeaderMeta } from './page-header-meta';\nimport type { PageHeaderMetaProps } from './page-header-meta';\nimport { PageHeaderTitle } from './page-header-title';\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderRootProps = ComponentPropsWithoutRef<'header'> & {\n spacing?: 'default' | 'breathing';\n};\n\nfunction isSlot(child: ReactNode, type: ElementType) {\n return isValidElement(child) && child.type === type;\n}\n\nfunction isBesideMeta(child: ReactNode) {\n return isValidElement<PageHeaderMetaProps>(child) && child.type === PageHeaderMeta && Boolean(child.props.beside);\n}\n\nfunction groupSlots(items: ReactNode[]) {\n const eyebrows = items.filter(child => isSlot(child, PageHeaderEyebrow));\n const icons = items.filter(child => isSlot(child, PageHeaderIcon));\n const headline = [...items.filter(child => isSlot(child, PageHeaderTitle)), ...items.filter(isBesideMeta)];\n // Actions sit outside the title column so their height never affects title/meta/description alignment.\n const actions = items.filter(child => isSlot(child, PageHeaderAction));\n const placed = [...eyebrows, ...icons, ...headline, ...actions];\n const below = items.filter(child => !placed.includes(child));\n return { eyebrows, icons, headline, below, actions };\n}\n\nexport function PageHeaderRoot({ children, className, spacing = 'default', ...props }: PageHeaderRootProps) {\n const items = Children.toArray(children);\n const { eyebrows, icons, headline, below, actions } = groupSlots(items);\n const hasControls = icons.length > 0 || actions.length > 0;\n\n return (\n <header\n className={cn(\n 'relative flex w-full flex-col',\n !hasControls && 'gap-1',\n className,\n spacing === 'breathing' && 'pt-10',\n )}\n data-page-header-spacing={spacing === 'breathing' ? spacing : undefined}\n {...props}\n >\n {eyebrows}\n <div className=\"flex w-full items-start gap-3\">\n {icons}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n {headline.length > 0 && (\n <div className={cn('flex min-w-0 items-start gap-3', hasControls && 'py-1')}>{headline}</div>\n )}\n {below}\n </div>\n {actions}\n </div>\n </header>\n );\n}\n","import './page-header.css';\n\nimport { PageHeaderAction } from './page-header-action';\nimport { PageHeaderDescription } from './page-header-description';\nimport { PageHeaderEyebrow } from './page-header-eyebrow';\nimport { PageHeaderIcon } from './page-header-icon';\nimport { PageHeaderMeta } from './page-header-meta';\nimport { PageHeaderRoot } from './page-header-root';\nimport { PageHeaderTitle } from './page-header-title';\n\nexport type { PageHeaderActionProps } from './page-header-action';\nexport type { PageHeaderDescriptionProps } from './page-header-description';\nexport type { PageHeaderEyebrowProps } from './page-header-eyebrow';\nexport type { PageHeaderIconProps } from './page-header-icon';\nexport type { PageHeaderMetaProps } from './page-header-meta';\nexport type { PageHeaderRootProps } from './page-header-root';\nexport type { PageHeaderTitleProps } from './page-header-title';\n\nexport const PageHeader = Object.assign(PageHeaderRoot, {\n Eyebrow: PageHeaderEyebrow,\n Icon: PageHeaderIcon,\n Title: PageHeaderTitle,\n Meta: PageHeaderMeta,\n Description: PageHeaderDescription,\n Action: PageHeaderAction,\n});\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-header-CLxPq7T5.cjs","sources":["../src/ds/new/layout/page-header/page-header-action.tsx","../src/ds/new/layout/page-header/page-header-description.tsx","../src/ds/new/layout/page-header/page-header-eyebrow.tsx","../src/ds/new/layout/page-header/page-header-icon.tsx","../src/ds/new/layout/page-header/page-header-meta.tsx","../src/ds/new/layout/page-header/page-header-title.tsx","../src/ds/new/layout/page-header/page-header-root.tsx","../src/ds/new/layout/page-header/page-header.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderActionProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderAction({ className, ...props }: PageHeaderActionProps) {\n return (\n <div\n data-slot=\"page-header-action\"\n className={cn('ml-auto flex min-h-control-lg shrink-0 items-center self-start', className)}\n {...props}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderDescriptionProps extends ComponentPropsWithoutRef<'p'> {\n isLoading?: boolean;\n}\n\nexport function PageHeaderDescription({ children, className, isLoading, ...props }: PageHeaderDescriptionProps) {\n return (\n <Txt\n variant=\"caption\"\n tone=\"muted\"\n data-slot=\"page-header-description\"\n className={cn(\n 'flex max-w-140 flex-wrap gap-x-4 gap-y-1',\n isLoading && 'w-160 max-w-4/5 animate-pulse rounded-md bg-muted',\n className,\n )}\n {...props}\n >\n {isLoading ? <>&nbsp;</> : children}\n </Txt>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderEyebrowProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderEyebrow({ className, ...props }: PageHeaderEyebrowProps) {\n return (\n <div\n data-slot=\"page-header-eyebrow\"\n {...props}\n className={cn(\n 'text-caption text-muted-foreground',\n 'flex min-w-0 items-center',\n '*:inline-flex *:items-center *:gap-1 *:rounded-sm *:transition-colors *:hover:text-foreground',\n className,\n )}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderIconProps = ComponentPropsWithoutRef<'div'>;\n\nexport function PageHeaderIcon({ className, ...props }: PageHeaderIconProps) {\n return (\n <div\n data-slot=\"page-header-icon\"\n className={cn('flex min-h-control-lg items-center self-start text-muted-foreground', className)}\n {...props}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderMetaProps extends ComponentPropsWithoutRef<'div'> {\n beside?: boolean;\n}\n\nexport function PageHeaderMeta({ beside = false, className, ...props }: PageHeaderMetaProps) {\n return (\n <div\n data-slot=\"page-header-meta\"\n data-placement={beside ? 'beside' : 'below'}\n {...props}\n className={cn(\n 'text-meta text-muted-foreground',\n 'flex min-w-0 flex-wrap items-center gap-2',\n beside && 'min-h-6 shrink-0',\n className,\n )}\n />\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderTitleProps extends ComponentPropsWithoutRef<'h1'> {\n isLoading?: boolean;\n}\n\nexport function PageHeaderTitle({ children, className, isLoading, ...props }: PageHeaderTitleProps) {\n return (\n <Txt\n as=\"h1\"\n variant=\"heading\"\n tone=\"ink\"\n data-slot=\"page-header-title\"\n className={cn(\n 'flex min-w-0 items-center gap-2',\n isLoading && 'w-60 max-w-1/2 animate-pulse rounded-md bg-fill',\n className,\n )}\n {...props}\n >\n {isLoading ? <>&nbsp;</> : children}\n </Txt>\n );\n}\n","import { Children, isValidElement } from 'react';\nimport type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';\n\nimport { PageHeaderAction } from './page-header-action';\nimport { PageHeaderEyebrow } from './page-header-eyebrow';\nimport { PageHeaderIcon } from './page-header-icon';\nimport { PageHeaderMeta } from './page-header-meta';\nimport type { PageHeaderMetaProps } from './page-header-meta';\nimport { PageHeaderTitle } from './page-header-title';\nimport { cn } from '@/lib/utils';\n\nexport type PageHeaderRootProps = ComponentPropsWithoutRef<'header'> & {\n spacing?: 'default' | 'breathing';\n};\n\nfunction isSlot(child: ReactNode, type: ElementType) {\n return isValidElement(child) && child.type === type;\n}\n\nfunction isBesideMeta(child: ReactNode) {\n return isValidElement<PageHeaderMetaProps>(child) && child.type === PageHeaderMeta && Boolean(child.props.beside);\n}\n\nfunction groupSlots(items: ReactNode[]) {\n const eyebrows = items.filter(child => isSlot(child, PageHeaderEyebrow));\n const icons = items.filter(child => isSlot(child, PageHeaderIcon));\n const headline = [...items.filter(child => isSlot(child, PageHeaderTitle)), ...items.filter(isBesideMeta)];\n // Actions sit outside the title column so their height never affects title/meta/description alignment.\n const actions = items.filter(child => isSlot(child, PageHeaderAction));\n const placed = [...eyebrows, ...icons, ...headline, ...actions];\n const below = items.filter(child => !placed.includes(child));\n return { eyebrows, icons, headline, below, actions };\n}\n\nexport function PageHeaderRoot({ children, className, spacing = 'default', ...props }: PageHeaderRootProps) {\n const items = Children.toArray(children);\n const { eyebrows, icons, headline, below, actions } = groupSlots(items);\n const hasControls = icons.length > 0 || actions.length > 0;\n\n return (\n <header\n className={cn(\n 'relative flex w-full flex-col',\n !hasControls && 'gap-1',\n className,\n spacing === 'breathing' && 'pt-10',\n )}\n data-page-header-spacing={spacing === 'breathing' ? spacing : undefined}\n {...props}\n >\n {eyebrows}\n <div className=\"flex w-full items-start gap-3\">\n {icons}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n {headline.length > 0 && (\n <div className={cn('flex min-w-0 items-start gap-3', hasControls && 'py-1')}>{headline}</div>\n )}\n {below}\n </div>\n {actions}\n </div>\n </header>\n );\n}\n","import './page-header.css';\n\nimport { PageHeaderAction } from './page-header-action';\nimport { PageHeaderDescription } from './page-header-description';\nimport { PageHeaderEyebrow } from './page-header-eyebrow';\nimport { PageHeaderIcon } from './page-header-icon';\nimport { PageHeaderMeta } from './page-header-meta';\nimport { PageHeaderRoot } from './page-header-root';\nimport { PageHeaderTitle } from './page-header-title';\n\nexport type { PageHeaderActionProps } from './page-header-action';\nexport type { PageHeaderDescriptionProps } from './page-header-description';\nexport type { PageHeaderEyebrowProps } from './page-header-eyebrow';\nexport type { PageHeaderIconProps } from './page-header-icon';\nexport type { PageHeaderMetaProps } from './page-header-meta';\nexport type { PageHeaderRootProps } from './page-header-root';\nexport type { PageHeaderTitleProps } from './page-header-title';\n\nexport const PageHeader = Object.assign(PageHeaderRoot, {\n Eyebrow: PageHeaderEyebrow,\n Icon: PageHeaderIcon,\n Title: PageHeaderTitle,\n Meta: PageHeaderMeta,\n Description: PageHeaderDescription,\n Action: PageHeaderAction,\n});\n"],"names":["jsx","cn","Txt","Fragment","isValidElement","Children","jsxs"],"mappings":"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"}