@mastra/playground-ui 64.0.0-alpha.7 → 64.0.0-alpha.8
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/components/DataList.cjs.js +17 -15
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +5 -4
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -5
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -5
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/data-list-DUfXIhyC.cjs +142 -0
- package/dist/data-list-DUfXIhyC.cjs.map +1 -0
- package/dist/data-list-DXQY_iQW.js +138 -0
- package/dist/data-list-DXQY_iQW.js.map +1 -0
- package/dist/{data-list-skeleton-CGKlcoiI.js → data-list-skeleton-B_SXAeE0.js} +2 -2
- package/dist/{data-list-skeleton-CGKlcoiI.js.map → data-list-skeleton-B_SXAeE0.js.map} +1 -1
- package/dist/{data-list-skeleton-DGMTqeNP.cjs → data-list-skeleton-BqC9Gggi.cjs} +6 -6
- package/dist/{data-list-skeleton-DGMTqeNP.cjs.map → data-list-skeleton-BqC9Gggi.cjs.map} +1 -1
- package/dist/data-list-spacer-ByA4ce2a.js +209 -0
- package/dist/data-list-spacer-ByA4ce2a.js.map +1 -0
- package/dist/data-list-spacer-tQaBaum4.cjs +218 -0
- package/dist/data-list-spacer-tQaBaum4.cjs.map +1 -0
- package/dist/{data-list-ecHsw-zr.cjs → data-list-top-ByT2Mo77.cjs} +13 -339
- package/dist/data-list-top-ByT2Mo77.cjs.map +1 -0
- package/dist/{data-list-DdCZZctL.js → data-list-top-DSr_ocKA.js} +5 -332
- package/dist/data-list-top-DSr_ocKA.js.map +1 -0
- package/dist/{date-time-range-picker-B3qORFfa.cjs → date-time-range-picker-BjQVCVUM.cjs} +12 -3
- package/dist/date-time-range-picker-BjQVCVUM.cjs.map +1 -0
- package/dist/{date-time-range-picker-CmtCmIrU.js → date-time-range-picker-D-EECKzz.js} +13 -4
- package/dist/date-time-range-picker-D-EECKzz.js.map +1 -0
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +0 -2
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +0 -2
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -3
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +2 -3
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -2
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +1 -2
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +0 -2
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +0 -2
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +5 -4
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +4 -3
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -4
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -4
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -3
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/{logs-data-list-DBJINzIL.js → logs-data-list-CoER2Hst.js} +3 -2
- package/dist/{logs-data-list-DBJINzIL.js.map → logs-data-list-CoER2Hst.js.map} +1 -1
- package/dist/{logs-data-list-IWZgMCKG.cjs → logs-data-list-DRR6cMgl.cjs} +22 -21
- package/dist/{logs-data-list-IWZgMCKG.cjs.map → logs-data-list-DRR6cMgl.cjs.map} +1 -1
- package/dist/new/settings.cjs.js +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/{section-BPhTrzbk.cjs → section-CctlZIXp.cjs} +2 -2
- package/dist/{section-BPhTrzbk.cjs.map → section-CctlZIXp.cjs.map} +1 -1
- package/dist/{section-87-fGU29.js → section-D0hKTVXt.js} +2 -2
- package/dist/{section-87-fGU29.js.map → section-D0hKTVXt.js.map} +1 -1
- package/dist/{settings-row-DdLpZXM4.cjs → settings-row-m_4gDCwS.cjs} +16 -4
- package/dist/settings-row-m_4gDCwS.cjs.map +1 -0
- package/dist/{settings-row-Cm7IBGvT.js → settings-row-yuQjwWTl.js} +16 -4
- package/dist/settings-row-yuQjwWTl.js.map +1 -0
- package/dist/{side-dialog-qfaOhtjK.cjs → side-dialog-BzULMBaH.cjs} +2 -2
- package/dist/{side-dialog-qfaOhtjK.cjs.map → side-dialog-BzULMBaH.cjs.map} +1 -1
- package/dist/{side-dialog-QTPa70zU.js → side-dialog-bm8NPDXy.js} +2 -2
- package/dist/{side-dialog-QTPa70zU.js.map → side-dialog-bm8NPDXy.js.map} +1 -1
- package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +1 -1
- package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -1
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +3 -1
- package/dist/src/ds/new/settings/index.d.ts +1 -1
- package/dist/src/ds/new/settings/settings-container.d.ts +5 -1
- package/dist/style.css +34 -0
- package/dist/{traces-data-list-BgloVIVi.js → traces-data-list-0GcqZUbe.js} +4 -2
- package/dist/{traces-data-list-BgloVIVi.js.map → traces-data-list-0GcqZUbe.js.map} +1 -1
- package/dist/{traces-data-list-CHREkLv0.cjs → traces-data-list-B0-fbEpk.cjs} +19 -17
- package/dist/{traces-data-list-CHREkLv0.cjs.map → traces-data-list-B0-fbEpk.cjs.map} +1 -1
- package/package.json +6 -6
- package/dist/data-list-DdCZZctL.js.map +0 -1
- package/dist/data-list-ecHsw-zr.cjs.map +0 -1
- package/dist/date-time-range-picker-B3qORFfa.cjs.map +0 -1
- package/dist/date-time-range-picker-CmtCmIrU.js.map +0 -1
- package/dist/settings-row-Cm7IBGvT.js.map +0 -1
- package/dist/settings-row-DdLpZXM4.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-87-fGU29.js","sources":["../src/ds/components/Section/section-content.tsx","../src/ds/components/Section/section-description.tsx","../src/ds/components/Section/section-divider.tsx","../src/ds/components/Section/section-header.tsx","../src/ds/components/Section/section-header-text.tsx","../src/ds/components/Section/section-heading.tsx","../src/ds/components/Section/section-root.tsx","../src/ds/components/Section/section-row.tsx","../src/ds/components/Section/section.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { SettingsContainerLayout } from '@/ds/new/settings/settings-container';\n\nexport type SectionContentProps = ComponentProps<'div'>;\n\nexport function SectionContent(props: SectionContentProps) {\n return <SettingsContainerLayout {...props} layout=\"section\" />;\n}\n","import type { ComponentProps } from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport type SectionDescriptionProps = ComponentProps<'p'>;\n\nexport function SectionDescription({ className, ...props }: SectionDescriptionProps) {\n return (\n <Txt\n variant=\"caption\"\n tone=\"muted\"\n data-slot=\"section-description\"\n className={cn('max-w-[62ch] text-pretty', className)}\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionDividerProps = ComponentProps<'div'>;\n\nexport function SectionDivider({ className, ...props }: SectionDividerProps) {\n return <div role=\"separator\" aria-orientation=\"horizontal\" className={cn('h-px bg-border', className)} {...props} />;\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionHeaderProps = ComponentProps<'header'> & {\n inset?: boolean;\n};\n\nexport function SectionHeader({ children, className, inset = false, ...props }: SectionHeaderProps) {\n return (\n <header\n data-slot=\"section-header\"\n className={cn(\n 'group-data-[variant=default]/section:grid group-data-[variant=default]/section:grid-cols-[1fr_auto] group-data-[variant=default]/section:items-center',\n 'group-data-[variant=flat]/section:flex group-data-[variant=flat]/section:min-w-0 group-data-[variant=flat]/section:flex-col group-data-[variant=flat]/section:gap-3 group-data-[variant=flat]/section:pb-3 sm:group-data-[variant=flat]/section:flex-row sm:group-data-[variant=flat]/section:items-start sm:group-data-[variant=flat]/section:justify-between sm:group-data-[variant=flat]/section:gap-4',\n 'group-data-[variant=factory]/section:flex group-data-[variant=factory]/section:min-w-0 group-data-[variant=factory]/section:flex-col group-data-[variant=factory]/section:gap-2 sm:group-data-[variant=factory]/section:flex-row sm:group-data-[variant=factory]/section:items-start sm:group-data-[variant=factory]/section:justify-between sm:group-data-[variant=factory]/section:gap-4',\n inset && 'px-4',\n className,\n )}\n {...props}\n >\n {children}\n </header>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionHeaderTextProps = ComponentProps<'div'>;\n\nexport function SectionHeaderText({ className, ...props }: SectionHeaderTextProps) {\n return <div data-slot=\"section-header-text\" className={cn('flex min-w-0 flex-col gap-1.5', className)} {...props} />;\n}\n","import type { ComponentProps, ElementType } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionHeadingProps = ComponentProps<'h2'> & {\n headingLevel?: 'h2' | 'h3' | 'h4';\n};\n\nexport function SectionHeading({ headingLevel = 'h2', children, className, ...props }: SectionHeadingProps) {\n const HeadingTag: ElementType = headingLevel;\n\n return (\n <HeadingTag\n data-slot=\"section-heading\"\n className={cn(\n 'group-data-[variant=default]/section:flex group-data-[variant=default]/section:items-center group-data-[variant=default]/section:gap-2 group-data-[variant=default]/section:text-subheading group-data-[variant=default]/section:text-muted-foreground group-data-[variant=default]/section:[&>svg]:size-[1.2em] group-data-[variant=default]/section:[&>svg]:opacity-50',\n 'group-data-[variant=flat]/section:text-subheading group-data-[variant=flat]/section:text-balance group-data-[variant=flat]/section:text-foreground',\n 'group-data-[variant=factory]/section:text-subheading group-data-[variant=factory]/section:text-balance group-data-[variant=factory]/section:text-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </HeadingTag>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionVariant = 'default' | 'flat' | 'factory';\n\nexport type SectionRootProps = ComponentProps<'section'> & {\n variant?: SectionVariant;\n};\n\nexport function SectionRoot({ variant = 'default', children, className, ...props }: SectionRootProps) {\n return (\n <section\n data-slot=\"section\"\n data-variant={variant}\n className={cn(\n 'group/section',\n variant === 'default' && 'grid gap-3',\n variant === 'flat' && 'w-full min-w-0',\n variant === 'factory' && 'flex w-full min-w-0 flex-col gap-2',\n className,\n )}\n {...props}\n >\n {children}\n </section>\n );\n}\n\nexport function SubSectionRoot({ children, className, ...props }: ComponentProps<'section'>) {\n return (\n <section className={cn('grid gap-2', className)} {...props}>\n {children}\n </section>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SettingsRowLayout } from '@/ds/new/settings/settings-row';\nimport type { SettingsRowProps } from '@/ds/new/settings/settings-row';\n\nexport type SectionRowProps = Omit<SettingsRowProps, 'tone' | 'viewOnly'>;\nexport type SectionViewOnlyRowProps = SectionRowProps & { children: ReactNode };\nexport type SectionDestructiveRowProps = SectionRowProps & { children: ReactNode };\n\n/** @deprecated Use SettingsRow from @mastra/playground-ui/new/settings for settings pages. */\nexport function SectionRow(props: SectionRowProps) {\n return <SettingsRowLayout {...props} layout=\"section\" />;\n}\n\n/** @deprecated Use SettingsRow with viewOnly from @mastra/playground-ui/new/settings. */\nexport function SectionViewOnlyRow(props: SectionViewOnlyRowProps) {\n return <SettingsRowLayout {...props} layout=\"section\" viewOnly />;\n}\n\n/** @deprecated Use SettingsRow with tone=\"destructive\" from @mastra/playground-ui/new/settings. */\nexport function SectionDestructiveRow(props: SectionDestructiveRowProps) {\n return <SettingsRowLayout {...props} layout=\"section\" tone=\"destructive\" />;\n}\n","import { SectionContent } from './section-content';\nimport { SectionDescription } from './section-description';\nimport { SectionDivider } from './section-divider';\nimport { SectionHeader } from './section-header';\nimport { SectionHeaderText } from './section-header-text';\nimport { SectionHeading } from './section-heading';\nimport { SectionRoot, type SectionRootProps } from './section-root';\nimport { SectionDestructiveRow, SectionRow, SectionViewOnlyRow } from './section-row';\n\nexport { type SectionContentProps } from './section-content';\nexport { type SectionDescriptionProps } from './section-description';\nexport { type SectionDividerProps } from './section-divider';\nexport { type SectionHeaderProps } from './section-header';\nexport { type SectionHeaderTextProps } from './section-header-text';\nexport { type SectionHeadingProps } from './section-heading';\nexport { type SectionRootProps as SectionProps, type SectionVariant } from './section-root';\nexport { type SectionDestructiveRowProps, type SectionRowProps, type SectionViewOnlyRowProps } from './section-row';\n\nexport function Section(props: SectionRootProps) {\n return <SectionRoot {...props} />;\n}\n\nSection.Header = SectionHeader;\nSection.HeaderText = SectionHeaderText;\nSection.Heading = SectionHeading;\nSection.Description = SectionDescription;\nSection.Content = SectionContent;\nSection.Row = SectionRow;\nSection.ViewOnlyRow = SectionViewOnlyRow;\nSection.DestructiveRow = SectionDestructiveRow;\nSection.Divider = SectionDivider;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"section-D0hKTVXt.js","sources":["../src/ds/components/Section/section-content.tsx","../src/ds/components/Section/section-description.tsx","../src/ds/components/Section/section-divider.tsx","../src/ds/components/Section/section-header.tsx","../src/ds/components/Section/section-header-text.tsx","../src/ds/components/Section/section-heading.tsx","../src/ds/components/Section/section-root.tsx","../src/ds/components/Section/section-row.tsx","../src/ds/components/Section/section.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { SettingsContainerLayout } from '@/ds/new/settings/settings-container';\n\nexport type SectionContentProps = ComponentProps<'div'>;\n\nexport function SectionContent(props: SectionContentProps) {\n return <SettingsContainerLayout {...props} layout=\"section\" />;\n}\n","import type { ComponentProps } from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport type SectionDescriptionProps = ComponentProps<'p'>;\n\nexport function SectionDescription({ className, ...props }: SectionDescriptionProps) {\n return (\n <Txt\n variant=\"caption\"\n tone=\"muted\"\n data-slot=\"section-description\"\n className={cn('max-w-[62ch] text-pretty', className)}\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionDividerProps = ComponentProps<'div'>;\n\nexport function SectionDivider({ className, ...props }: SectionDividerProps) {\n return <div role=\"separator\" aria-orientation=\"horizontal\" className={cn('h-px bg-border', className)} {...props} />;\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionHeaderProps = ComponentProps<'header'> & {\n inset?: boolean;\n};\n\nexport function SectionHeader({ children, className, inset = false, ...props }: SectionHeaderProps) {\n return (\n <header\n data-slot=\"section-header\"\n className={cn(\n 'group-data-[variant=default]/section:grid group-data-[variant=default]/section:grid-cols-[1fr_auto] group-data-[variant=default]/section:items-center',\n 'group-data-[variant=flat]/section:flex group-data-[variant=flat]/section:min-w-0 group-data-[variant=flat]/section:flex-col group-data-[variant=flat]/section:gap-3 group-data-[variant=flat]/section:pb-3 sm:group-data-[variant=flat]/section:flex-row sm:group-data-[variant=flat]/section:items-start sm:group-data-[variant=flat]/section:justify-between sm:group-data-[variant=flat]/section:gap-4',\n 'group-data-[variant=factory]/section:flex group-data-[variant=factory]/section:min-w-0 group-data-[variant=factory]/section:flex-col group-data-[variant=factory]/section:gap-2 sm:group-data-[variant=factory]/section:flex-row sm:group-data-[variant=factory]/section:items-start sm:group-data-[variant=factory]/section:justify-between sm:group-data-[variant=factory]/section:gap-4',\n inset && 'px-4',\n className,\n )}\n {...props}\n >\n {children}\n </header>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionHeaderTextProps = ComponentProps<'div'>;\n\nexport function SectionHeaderText({ className, ...props }: SectionHeaderTextProps) {\n return <div data-slot=\"section-header-text\" className={cn('flex min-w-0 flex-col gap-1.5', className)} {...props} />;\n}\n","import type { ComponentProps, ElementType } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionHeadingProps = ComponentProps<'h2'> & {\n headingLevel?: 'h2' | 'h3' | 'h4';\n};\n\nexport function SectionHeading({ headingLevel = 'h2', children, className, ...props }: SectionHeadingProps) {\n const HeadingTag: ElementType = headingLevel;\n\n return (\n <HeadingTag\n data-slot=\"section-heading\"\n className={cn(\n 'group-data-[variant=default]/section:flex group-data-[variant=default]/section:items-center group-data-[variant=default]/section:gap-2 group-data-[variant=default]/section:text-subheading group-data-[variant=default]/section:text-muted-foreground group-data-[variant=default]/section:[&>svg]:size-[1.2em] group-data-[variant=default]/section:[&>svg]:opacity-50',\n 'group-data-[variant=flat]/section:text-subheading group-data-[variant=flat]/section:text-balance group-data-[variant=flat]/section:text-foreground',\n 'group-data-[variant=factory]/section:text-subheading group-data-[variant=factory]/section:text-balance group-data-[variant=factory]/section:text-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </HeadingTag>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SectionVariant = 'default' | 'flat' | 'factory';\n\nexport type SectionRootProps = ComponentProps<'section'> & {\n variant?: SectionVariant;\n};\n\nexport function SectionRoot({ variant = 'default', children, className, ...props }: SectionRootProps) {\n return (\n <section\n data-slot=\"section\"\n data-variant={variant}\n className={cn(\n 'group/section',\n variant === 'default' && 'grid gap-3',\n variant === 'flat' && 'w-full min-w-0',\n variant === 'factory' && 'flex w-full min-w-0 flex-col gap-2',\n className,\n )}\n {...props}\n >\n {children}\n </section>\n );\n}\n\nexport function SubSectionRoot({ children, className, ...props }: ComponentProps<'section'>) {\n return (\n <section className={cn('grid gap-2', className)} {...props}>\n {children}\n </section>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SettingsRowLayout } from '@/ds/new/settings/settings-row';\nimport type { SettingsRowProps } from '@/ds/new/settings/settings-row';\n\nexport type SectionRowProps = Omit<SettingsRowProps, 'tone' | 'viewOnly'>;\nexport type SectionViewOnlyRowProps = SectionRowProps & { children: ReactNode };\nexport type SectionDestructiveRowProps = SectionRowProps & { children: ReactNode };\n\n/** @deprecated Use SettingsRow from @mastra/playground-ui/new/settings for settings pages. */\nexport function SectionRow(props: SectionRowProps) {\n return <SettingsRowLayout {...props} layout=\"section\" />;\n}\n\n/** @deprecated Use SettingsRow with viewOnly from @mastra/playground-ui/new/settings. */\nexport function SectionViewOnlyRow(props: SectionViewOnlyRowProps) {\n return <SettingsRowLayout {...props} layout=\"section\" viewOnly />;\n}\n\n/** @deprecated Use SettingsRow with tone=\"destructive\" from @mastra/playground-ui/new/settings. */\nexport function SectionDestructiveRow(props: SectionDestructiveRowProps) {\n return <SettingsRowLayout {...props} layout=\"section\" tone=\"destructive\" />;\n}\n","import { SectionContent } from './section-content';\nimport { SectionDescription } from './section-description';\nimport { SectionDivider } from './section-divider';\nimport { SectionHeader } from './section-header';\nimport { SectionHeaderText } from './section-header-text';\nimport { SectionHeading } from './section-heading';\nimport { SectionRoot, type SectionRootProps } from './section-root';\nimport { SectionDestructiveRow, SectionRow, SectionViewOnlyRow } from './section-row';\n\nexport { type SectionContentProps } from './section-content';\nexport { type SectionDescriptionProps } from './section-description';\nexport { type SectionDividerProps } from './section-divider';\nexport { type SectionHeaderProps } from './section-header';\nexport { type SectionHeaderTextProps } from './section-header-text';\nexport { type SectionHeadingProps } from './section-heading';\nexport { type SectionRootProps as SectionProps, type SectionVariant } from './section-root';\nexport { type SectionDestructiveRowProps, type SectionRowProps, type SectionViewOnlyRowProps } from './section-row';\n\nexport function Section(props: SectionRootProps) {\n return <SectionRoot {...props} />;\n}\n\nSection.Header = SectionHeader;\nSection.HeaderText = SectionHeaderText;\nSection.Heading = SectionHeading;\nSection.Description = SectionDescription;\nSection.Content = SectionContent;\nSection.Row = SectionRow;\nSection.ViewOnlyRow = SectionViewOnlyRow;\nSection.DestructiveRow = SectionDestructiveRow;\nSection.Divider = SectionDivider;\n"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ function SettingsContainerLayout({
|
|
|
18
18
|
{
|
|
19
19
|
"data-slot": layout === "section" ? "section-content" : "settings-container",
|
|
20
20
|
className: utils_cn.cn(
|
|
21
|
-
layout === "factory" ? utils_cn.cn(primitives_raisedSurface.raisedSurfaceStyle, "
|
|
21
|
+
layout === "factory" ? utils_cn.cn(primitives_raisedSurface.raisedSurfaceStyle, "rounded-xl") : utils_cn.cn(
|
|
22
22
|
"group-data-[variant=factory]/section:overflow-hidden group-data-[variant=factory]/section:rounded-xl",
|
|
23
23
|
"group-data-[variant=factory]/section:bg-card group-data-[variant=factory]/section:shadow-raised"
|
|
24
24
|
),
|
|
@@ -28,8 +28,20 @@ function SettingsContainerLayout({
|
|
|
28
28
|
}
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
const rowsClassNames = {
|
|
32
|
+
default: "divide-y divide-border",
|
|
33
|
+
inset: "flex flex-col gap-px p-1 [&>*]:min-h-14 [&>*]:bg-background [&>*]:px-3.5 [&>*]:py-2.5 [&>:first-child]:rounded-t-lg [&>:last-child]:rounded-b-lg"
|
|
34
|
+
};
|
|
35
|
+
function SettingsContainer({ variant = "default", className, ...props }) {
|
|
36
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
+
SettingsContainerLayout,
|
|
38
|
+
{
|
|
39
|
+
...props,
|
|
40
|
+
layout: "factory",
|
|
41
|
+
"data-variant": variant,
|
|
42
|
+
className: utils_cn.cn(rowsClassNames[variant], className)
|
|
43
|
+
}
|
|
44
|
+
);
|
|
33
45
|
}
|
|
34
46
|
|
|
35
47
|
const factoryRowClassName = "gap-2 px-4 py-3 sm:justify-between sm:gap-4";
|
|
@@ -134,4 +146,4 @@ exports.SettingsContainerLayout = SettingsContainerLayout;
|
|
|
134
146
|
exports.SettingsFieldsetRow = SettingsFieldsetRow;
|
|
135
147
|
exports.SettingsRow = SettingsRow;
|
|
136
148
|
exports.SettingsRowLayout = SettingsRowLayout;
|
|
137
|
-
//# sourceMappingURL=settings-row-
|
|
149
|
+
//# sourceMappingURL=settings-row-m_4gDCwS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-row-m_4gDCwS.cjs","sources":["../src/ds/new/settings/settings-container.tsx","../src/ds/new/settings/settings-row.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport function SettingsContainerLayout({\n layout,\n className,\n ...props\n}: ComponentProps<'div'> & { layout: 'factory' | 'section' }) {\n return (\n <div\n data-slot={layout === 'section' ? 'section-content' : 'settings-container'}\n className={cn(\n layout === 'factory'\n ? cn(raisedSurfaceStyle, 'rounded-xl')\n : cn(\n 'group-data-[variant=factory]/section:overflow-hidden group-data-[variant=factory]/section:rounded-xl',\n 'group-data-[variant=factory]/section:bg-card group-data-[variant=factory]/section:shadow-raised',\n ),\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type SettingsContainerVariant = 'default' | 'inset';\n\nexport type SettingsContainerProps = ComponentProps<'div'> & { variant?: SettingsContainerVariant };\n\nconst rowsClassNames = {\n default: 'divide-y divide-border',\n inset:\n 'flex flex-col gap-px p-1 [&>*]:min-h-14 [&>*]:bg-background [&>*]:px-3.5 [&>*]:py-2.5 [&>:first-child]:rounded-t-lg [&>:last-child]:rounded-b-lg',\n} satisfies Record<SettingsContainerVariant, string>;\n\nexport function SettingsContainer({ variant = 'default', className, ...props }: SettingsContainerProps) {\n return (\n <SettingsContainerLayout\n {...props}\n layout=\"factory\"\n data-variant={variant}\n className={cn(rowsClassNames[variant], className)}\n />\n );\n}\n","import { LockKeyholeIcon } from 'lucide-react';\nimport { useId } from 'react';\nimport type { ReactNode } from 'react';\nimport { Field, FieldDescription, FieldError, FieldLabel, Fieldset, FieldsetLegend } from '@/ds/components/Field';\nimport type { FieldProps, FieldsetProps } from '@/ds/components/Field';\nimport { cn } from '@/lib/utils';\n\nexport type SettingsRowProps = Omit<FieldProps, 'children' | 'invalid' | 'orientation'> & {\n label: ReactNode;\n description?: ReactNode;\n /** @deprecated The row's `Field` names the control it holds; drop `htmlFor` and the control's `id`. */\n htmlFor?: string;\n children?: ReactNode;\n tone?: 'default' | 'destructive';\n viewOnly?: boolean;\n required?: boolean;\n errorMsg?: ReactNode;\n};\n\ntype SettingsRowLayoutProps = SettingsRowProps & {\n layout: 'factory' | 'section';\n};\n\nconst factoryRowClassName = 'gap-2 px-4 py-3 sm:justify-between sm:gap-4';\nconst factoryRowSideControlWidthClassName = 'sm:[--field-shrink:0] sm:[--field-width:16rem]';\nconst factoryRowHeadingClassName = 'flex min-w-0 flex-col gap-0.5';\n\nexport function SettingsRowLayout({\n label,\n description,\n htmlFor,\n children,\n className,\n layout,\n tone = 'default',\n viewOnly = false,\n required = false,\n errorMsg,\n disabled,\n ...props\n}: SettingsRowLayoutProps) {\n const isSectionLayout = layout === 'section';\n const control = viewOnly ? (\n <>\n <LockKeyholeIcon className=\"size-4 shrink-0\" aria-hidden />\n <span className=\"sr-only\">View only: </span>\n {children}\n </>\n ) : (\n children\n );\n\n return (\n <Field\n orientation=\"responsive\"\n invalid={Boolean(errorMsg)}\n disabled={disabled || viewOnly}\n data-slot={isSectionLayout ? 'section-row' : 'settings-row'}\n className={cn(\n isSectionLayout\n ? 'grid min-w-0 gap-3 group-data-[variant=factory]/section:px-3 group-data-[variant=factory]/section:py-2 group-data-[variant=flat]/section:p-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center sm:group-data-[variant=default]/section:gap-4 sm:group-data-[variant=factory]/section:gap-4 sm:group-data-[variant=flat]/section:gap-6'\n : 'min-w-0',\n layout === 'factory' && factoryRowClassName,\n layout === 'factory' && factoryRowSideControlWidthClassName,\n className,\n )}\n {...props}\n >\n <div className={isSectionLayout ? 'min-w-0' : factoryRowHeadingClassName}>\n <FieldLabel\n {...(htmlFor ? { htmlFor } : {})}\n required={required}\n className={cn(tone === 'destructive' && 'text-destructive-foreground')}\n >\n {label}\n </FieldLabel>\n {description != null && (\n <FieldDescription\n render={isSectionLayout ? undefined : <div />}\n className={cn('mt-0', isSectionLayout ? 'mt-1 max-w-[62ch] text-pretty' : 'flex flex-col gap-0.5')}\n >\n {description}\n </FieldDescription>\n )}\n <FieldError className={cn('mt-0', isSectionLayout && 'mt-1')}>{errorMsg}</FieldError>\n </div>\n {children != null &&\n (isSectionLayout || viewOnly ? (\n <div\n data-slot={isSectionLayout ? 'section-control' : undefined}\n className={cn(\n 'min-w-0',\n isSectionLayout && 'sm:justify-self-end',\n viewOnly && 'flex items-center gap-2 text-body-sm text-muted-foreground',\n )}\n >\n {control}\n </div>\n ) : (\n control\n ))}\n </Field>\n );\n}\n\nexport function SettingsRow(props: SettingsRowProps) {\n return <SettingsRowLayout {...props} layout=\"factory\" />;\n}\n\nexport type SettingsFieldsetRowProps = Omit<FieldsetProps, 'children'> & {\n label: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n};\n\nexport function SettingsFieldsetRow({ label, description, children, className, ...props }: SettingsFieldsetRowProps) {\n const descriptionId = useId();\n\n return (\n <Fieldset\n data-slot=\"settings-row\"\n aria-describedby={description == null ? undefined : descriptionId}\n className={cn('flex flex-col sm:flex-row sm:items-center', factoryRowClassName, className)}\n {...props}\n >\n <div className={factoryRowHeadingClassName}>\n <FieldsetLegend>{label}</FieldsetLegend>\n {description != null && (\n <div id={descriptionId} className=\"flex flex-col gap-0.5 text-caption text-muted-foreground\">\n {description}\n </div>\n )}\n </div>\n {children}\n </Fieldset>\n );\n}\n"],"names":["jsx","cn","raisedSurfaceStyle","jsxs","Fragment","LockKeyholeIcon","Field","FieldLabel","FieldDescription","FieldError","useId","Fieldset","FieldsetLegend"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ function SettingsContainerLayout({
|
|
|
16
16
|
{
|
|
17
17
|
"data-slot": layout === "section" ? "section-content" : "settings-container",
|
|
18
18
|
className: cn(
|
|
19
|
-
layout === "factory" ? cn(raisedSurfaceStyle, "
|
|
19
|
+
layout === "factory" ? cn(raisedSurfaceStyle, "rounded-xl") : cn(
|
|
20
20
|
"group-data-[variant=factory]/section:overflow-hidden group-data-[variant=factory]/section:rounded-xl",
|
|
21
21
|
"group-data-[variant=factory]/section:bg-card group-data-[variant=factory]/section:shadow-raised"
|
|
22
22
|
),
|
|
@@ -26,8 +26,20 @@ function SettingsContainerLayout({
|
|
|
26
26
|
}
|
|
27
27
|
);
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const rowsClassNames = {
|
|
30
|
+
default: "divide-y divide-border",
|
|
31
|
+
inset: "flex flex-col gap-px p-1 [&>*]:min-h-14 [&>*]:bg-background [&>*]:px-3.5 [&>*]:py-2.5 [&>:first-child]:rounded-t-lg [&>:last-child]:rounded-b-lg"
|
|
32
|
+
};
|
|
33
|
+
function SettingsContainer({ variant = "default", className, ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
SettingsContainerLayout,
|
|
36
|
+
{
|
|
37
|
+
...props,
|
|
38
|
+
layout: "factory",
|
|
39
|
+
"data-variant": variant,
|
|
40
|
+
className: cn(rowsClassNames[variant], className)
|
|
41
|
+
}
|
|
42
|
+
);
|
|
31
43
|
}
|
|
32
44
|
|
|
33
45
|
const factoryRowClassName = "gap-2 px-4 py-3 sm:justify-between sm:gap-4";
|
|
@@ -128,4 +140,4 @@ function SettingsFieldsetRow({ label, description, children, className, ...props
|
|
|
128
140
|
}
|
|
129
141
|
|
|
130
142
|
export { SettingsContainer as S, SettingsFieldsetRow as a, SettingsRow as b, SettingsContainerLayout as c, SettingsRowLayout as d };
|
|
131
|
-
//# sourceMappingURL=settings-row-
|
|
143
|
+
//# sourceMappingURL=settings-row-yuQjwWTl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-row-yuQjwWTl.js","sources":["../src/ds/new/settings/settings-container.tsx","../src/ds/new/settings/settings-row.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport function SettingsContainerLayout({\n layout,\n className,\n ...props\n}: ComponentProps<'div'> & { layout: 'factory' | 'section' }) {\n return (\n <div\n data-slot={layout === 'section' ? 'section-content' : 'settings-container'}\n className={cn(\n layout === 'factory'\n ? cn(raisedSurfaceStyle, 'rounded-xl')\n : cn(\n 'group-data-[variant=factory]/section:overflow-hidden group-data-[variant=factory]/section:rounded-xl',\n 'group-data-[variant=factory]/section:bg-card group-data-[variant=factory]/section:shadow-raised',\n ),\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type SettingsContainerVariant = 'default' | 'inset';\n\nexport type SettingsContainerProps = ComponentProps<'div'> & { variant?: SettingsContainerVariant };\n\nconst rowsClassNames = {\n default: 'divide-y divide-border',\n inset:\n 'flex flex-col gap-px p-1 [&>*]:min-h-14 [&>*]:bg-background [&>*]:px-3.5 [&>*]:py-2.5 [&>:first-child]:rounded-t-lg [&>:last-child]:rounded-b-lg',\n} satisfies Record<SettingsContainerVariant, string>;\n\nexport function SettingsContainer({ variant = 'default', className, ...props }: SettingsContainerProps) {\n return (\n <SettingsContainerLayout\n {...props}\n layout=\"factory\"\n data-variant={variant}\n className={cn(rowsClassNames[variant], className)}\n />\n );\n}\n","import { LockKeyholeIcon } from 'lucide-react';\nimport { useId } from 'react';\nimport type { ReactNode } from 'react';\nimport { Field, FieldDescription, FieldError, FieldLabel, Fieldset, FieldsetLegend } from '@/ds/components/Field';\nimport type { FieldProps, FieldsetProps } from '@/ds/components/Field';\nimport { cn } from '@/lib/utils';\n\nexport type SettingsRowProps = Omit<FieldProps, 'children' | 'invalid' | 'orientation'> & {\n label: ReactNode;\n description?: ReactNode;\n /** @deprecated The row's `Field` names the control it holds; drop `htmlFor` and the control's `id`. */\n htmlFor?: string;\n children?: ReactNode;\n tone?: 'default' | 'destructive';\n viewOnly?: boolean;\n required?: boolean;\n errorMsg?: ReactNode;\n};\n\ntype SettingsRowLayoutProps = SettingsRowProps & {\n layout: 'factory' | 'section';\n};\n\nconst factoryRowClassName = 'gap-2 px-4 py-3 sm:justify-between sm:gap-4';\nconst factoryRowSideControlWidthClassName = 'sm:[--field-shrink:0] sm:[--field-width:16rem]';\nconst factoryRowHeadingClassName = 'flex min-w-0 flex-col gap-0.5';\n\nexport function SettingsRowLayout({\n label,\n description,\n htmlFor,\n children,\n className,\n layout,\n tone = 'default',\n viewOnly = false,\n required = false,\n errorMsg,\n disabled,\n ...props\n}: SettingsRowLayoutProps) {\n const isSectionLayout = layout === 'section';\n const control = viewOnly ? (\n <>\n <LockKeyholeIcon className=\"size-4 shrink-0\" aria-hidden />\n <span className=\"sr-only\">View only: </span>\n {children}\n </>\n ) : (\n children\n );\n\n return (\n <Field\n orientation=\"responsive\"\n invalid={Boolean(errorMsg)}\n disabled={disabled || viewOnly}\n data-slot={isSectionLayout ? 'section-row' : 'settings-row'}\n className={cn(\n isSectionLayout\n ? 'grid min-w-0 gap-3 group-data-[variant=factory]/section:px-3 group-data-[variant=factory]/section:py-2 group-data-[variant=flat]/section:p-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center sm:group-data-[variant=default]/section:gap-4 sm:group-data-[variant=factory]/section:gap-4 sm:group-data-[variant=flat]/section:gap-6'\n : 'min-w-0',\n layout === 'factory' && factoryRowClassName,\n layout === 'factory' && factoryRowSideControlWidthClassName,\n className,\n )}\n {...props}\n >\n <div className={isSectionLayout ? 'min-w-0' : factoryRowHeadingClassName}>\n <FieldLabel\n {...(htmlFor ? { htmlFor } : {})}\n required={required}\n className={cn(tone === 'destructive' && 'text-destructive-foreground')}\n >\n {label}\n </FieldLabel>\n {description != null && (\n <FieldDescription\n render={isSectionLayout ? undefined : <div />}\n className={cn('mt-0', isSectionLayout ? 'mt-1 max-w-[62ch] text-pretty' : 'flex flex-col gap-0.5')}\n >\n {description}\n </FieldDescription>\n )}\n <FieldError className={cn('mt-0', isSectionLayout && 'mt-1')}>{errorMsg}</FieldError>\n </div>\n {children != null &&\n (isSectionLayout || viewOnly ? (\n <div\n data-slot={isSectionLayout ? 'section-control' : undefined}\n className={cn(\n 'min-w-0',\n isSectionLayout && 'sm:justify-self-end',\n viewOnly && 'flex items-center gap-2 text-body-sm text-muted-foreground',\n )}\n >\n {control}\n </div>\n ) : (\n control\n ))}\n </Field>\n );\n}\n\nexport function SettingsRow(props: SettingsRowProps) {\n return <SettingsRowLayout {...props} layout=\"factory\" />;\n}\n\nexport type SettingsFieldsetRowProps = Omit<FieldsetProps, 'children'> & {\n label: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n};\n\nexport function SettingsFieldsetRow({ label, description, children, className, ...props }: SettingsFieldsetRowProps) {\n const descriptionId = useId();\n\n return (\n <Fieldset\n data-slot=\"settings-row\"\n aria-describedby={description == null ? undefined : descriptionId}\n className={cn('flex flex-col sm:flex-row sm:items-center', factoryRowClassName, className)}\n {...props}\n >\n <div className={factoryRowHeadingClassName}>\n <FieldsetLegend>{label}</FieldsetLegend>\n {description != null && (\n <div id={descriptionId} className=\"flex flex-col gap-0.5 text-caption text-muted-foreground\">\n {description}\n </div>\n )}\n </div>\n {children}\n </Fieldset>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ const React = require('react');
|
|
|
12
12
|
const Button = require('./Button-DH1aTzbs.cjs');
|
|
13
13
|
const buttonsGroup = require('./buttons-group-Bg9Unm6G.cjs');
|
|
14
14
|
const copyButton = require('./copy-button-Cd0keCti.cjs');
|
|
15
|
-
const section = require('./section-
|
|
15
|
+
const section = require('./section-CctlZIXp.cjs');
|
|
16
16
|
const themeProvider = require('./theme-provider-DDGNiyY_.cjs');
|
|
17
17
|
const primitives_raisedSurface = require('./primitives/raised-surface.cjs.js');
|
|
18
18
|
const drawer = require('./drawer-DROYPMUm.cjs');
|
|
@@ -291,4 +291,4 @@ const SideDialog = Object.assign(SideDialogRoot, {
|
|
|
291
291
|
});
|
|
292
292
|
|
|
293
293
|
exports.SideDialog = SideDialog;
|
|
294
|
-
//# sourceMappingURL=side-dialog-
|
|
294
|
+
//# sourceMappingURL=side-dialog-BzULMBaH.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"side-dialog-qfaOhtjK.cjs","sources":["../src/ds/components/SideDialog/side-dialog-code-section.tsx","../src/ds/components/SideDialog/side-dialog-content.tsx","../src/ds/components/SideDialog/side-dialog-header.tsx","../src/ds/components/SideDialog/side-dialog-heading.tsx","../src/ds/components/SideDialog/side-dialog-nav.tsx","../src/ds/components/SideDialog/side-dialog-root.tsx","../src/ds/components/SideDialog/side-dialog-top.tsx","../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--muted-foreground)',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--syntax-string)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--syntax-literal)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--syntax-keyword)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--syntax-name)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--syntax-link)',\n },\n { tag: [t.variableName, t.number], color: 'var(--syntax-name)' },\n { tag: [t.name, t.quote], color: 'var(--syntax-string)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-caption text-muted-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["draculaInit","t","EditorView","HighlightStyle","syntaxHighlighting","useTheme","useMemo","useState","Section","jsxs","ButtonsGroup","jsx","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","raisedSurfaceStyle","ReactCodeMirror","json","DrawerInteractive","cn","ArrowUpIcon","ArrowDownIcon","React","Drawer","DrawerPortal","DrawerBackdrop","DrawerViewport","DrawerPopup","DrawerTitle","DrawerDescription","DrawerClose","transitions","ChevronsRightIcon","PortalContainerProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"side-dialog-BzULMBaH.cjs","sources":["../src/ds/components/SideDialog/side-dialog-code-section.tsx","../src/ds/components/SideDialog/side-dialog-content.tsx","../src/ds/components/SideDialog/side-dialog-header.tsx","../src/ds/components/SideDialog/side-dialog-heading.tsx","../src/ds/components/SideDialog/side-dialog-nav.tsx","../src/ds/components/SideDialog/side-dialog-root.tsx","../src/ds/components/SideDialog/side-dialog-top.tsx","../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--muted-foreground)',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--syntax-string)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--syntax-literal)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--syntax-keyword)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--syntax-name)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--syntax-link)',\n },\n { tag: [t.variableName, t.number], color: 'var(--syntax-name)' },\n { tag: [t.name, t.quote], color: 'var(--syntax-string)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-caption text-muted-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["draculaInit","t","EditorView","HighlightStyle","syntaxHighlighting","useTheme","useMemo","useState","Section","jsxs","ButtonsGroup","jsx","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","raisedSurfaceStyle","ReactCodeMirror","json","DrawerInteractive","cn","ArrowUpIcon","ArrowDownIcon","React","Drawer","DrawerPortal","DrawerBackdrop","DrawerViewport","DrawerPopup","DrawerTitle","DrawerDescription","DrawerClose","transitions","ChevronsRightIcon","PortalContainerProvider"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { useState, useMemo } from 'react';
|
|
|
11
11
|
import { B as Button } from './Button-EGoajBQY.js';
|
|
12
12
|
import { B as ButtonsGroup } from './buttons-group-DGWioDP3.js';
|
|
13
13
|
import { C as CopyButton } from './copy-button-C_M3Tu_-.js';
|
|
14
|
-
import { S as Section } from './section-
|
|
14
|
+
import { S as Section } from './section-D0hKTVXt.js';
|
|
15
15
|
import { u as useTheme } from './theme-provider-BbMYMtxP.js';
|
|
16
16
|
import { raisedSurfaceStyle } from './primitives/raised-surface.es.js';
|
|
17
17
|
import { j as DrawerInteractive, D as Drawer, l as DrawerPortal, a as DrawerBackdrop, q as DrawerViewport, k as DrawerPopup, o as DrawerTitle, e as DrawerDescription, c as DrawerClose } from './drawer-C-8E9yHN.js';
|
|
@@ -271,4 +271,4 @@ const SideDialog = Object.assign(SideDialogRoot, {
|
|
|
271
271
|
});
|
|
272
272
|
|
|
273
273
|
export { SideDialog as S };
|
|
274
|
-
//# sourceMappingURL=side-dialog-
|
|
274
|
+
//# sourceMappingURL=side-dialog-bm8NPDXy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"side-dialog-QTPa70zU.js","sources":["../src/ds/components/SideDialog/side-dialog-code-section.tsx","../src/ds/components/SideDialog/side-dialog-content.tsx","../src/ds/components/SideDialog/side-dialog-header.tsx","../src/ds/components/SideDialog/side-dialog-heading.tsx","../src/ds/components/SideDialog/side-dialog-nav.tsx","../src/ds/components/SideDialog/side-dialog-root.tsx","../src/ds/components/SideDialog/side-dialog-top.tsx","../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--muted-foreground)',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--syntax-string)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--syntax-literal)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--syntax-keyword)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--syntax-name)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--syntax-link)',\n },\n { tag: [t.variableName, t.number], color: 'var(--syntax-name)' },\n { tag: [t.name, t.quote], color: 'var(--syntax-string)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-caption text-muted-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["t","ReactCodeMirror"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"side-dialog-bm8NPDXy.js","sources":["../src/ds/components/SideDialog/side-dialog-code-section.tsx","../src/ds/components/SideDialog/side-dialog-content.tsx","../src/ds/components/SideDialog/side-dialog-header.tsx","../src/ds/components/SideDialog/side-dialog-heading.tsx","../src/ds/components/SideDialog/side-dialog-nav.tsx","../src/ds/components/SideDialog/side-dialog-root.tsx","../src/ds/components/SideDialog/side-dialog-top.tsx","../src/ds/components/SideDialog/side-dialog.tsx"],"sourcesContent":["import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport React, { useState, useMemo } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Section } from '@/ds/components/Section';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\n/** Dark theme — matches original side-dialog draculaInit settings exactly. */\nfunction buildSideDialogDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-body-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: 'var(--muted-foreground)',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\n/** Light theme for side-dialog code sections. */\nfunction buildSideDialogLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--foreground)',\n fontSize: 'var(--text-body-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--placeholder)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--foreground)',\n caretColor: 'var(--foreground)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--foreground)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--placeholder)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--syntax-string)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--syntax-literal)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--syntax-keyword)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--syntax-name)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--syntax-link)',\n },\n { tag: [t.variableName, t.number], color: 'var(--syntax-name)' },\n { tag: [t.name, t.quote], color: 'var(--syntax-string)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildSideDialogDarkTheme() : buildSideDialogLightTheme()), [isDark]);\n};\n\nexport type SideDialogCodeSectionProps = {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n};\n\nexport function SideDialogCodeSection({ codeStr = '', title, icon, simplified = false }: SideDialogCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n\n return (\n <Section>\n <Section.Header>\n <Section.Heading>\n {icon}\n {title}\n </Section.Heading>\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(!showAsMultilineText)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </Section.Header>\n {codeStr && (\n <div\n className={`${raisedSurfaceStyle} max-h-[30vh] overflow-hidden overflow-y-auto rounded-xl p-3 text-body break-all text-muted-foreground`}\n >\n {simplified ? (\n <div className=\"px-2 font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{codeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror extensions={[json(), EditorView.lineWrapping]} theme={theme} value={finalCodeStr} />\n )}\n </div>\n )}\n </Section>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import { DrawerInteractive } from '@/ds/components/Drawer';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogContentProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogContent({ children, className }: SideDialogContentProps) {\n return (\n <DrawerInteractive\n render={\n <div className={cn('grid content-start gap-4 overflow-y-scroll p-4 pb-5 pl-5', className)}>{children}</div>\n }\n />\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeaderProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogHeader({ children, className }: SideDialogHeaderProps) {\n return <div className={cn('flex items-center justify-between pb-3', className)}>{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogHeadingProps = {\n children?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2';\n};\n\nexport function SideDialogHeading({ children, className, as = 'h1' }: SideDialogHeadingProps) {\n const HeadingTag = as;\n\n return (\n <HeadingTag\n className={cn(\n 'flex items-start gap-2',\n as === 'h1' ? 'text-heading text-foreground' : 'text-subheading text-foreground',\n '[&>svg]:mt-0.5 [&>svg]:size-[1.25em] [&>svg]:shrink-0 [&>svg]:opacity-70',\n className,\n )}\n >\n {children}\n </HeadingTag>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogNavProps = {\n onNext?: (() => void) | null;\n onPrevious?: (() => void) | null;\n className?: string;\n};\n\nexport function SideDialogNav({ onNext, onPrevious, className }: SideDialogNavProps) {\n const handleOnNext = () => {\n onNext?.();\n };\n\n const handleOnPrevious = () => {\n onPrevious?.();\n };\n\n return (\n <div className={cn('flex items-center gap-3', '[&_svg]:size-[1.1em] [&_svg]:text-muted-foreground', className)}>\n {(onNext || onPrevious) && (\n <div className={cn('flex items-baseline gap-3')}>\n <Button onClick={handleOnPrevious} disabled={!onPrevious} icon={<ArrowUpIcon />}>\n Previous\n </Button>\n <Button onClick={handleOnNext} disabled={!onNext} icon={<ArrowDownIcon />}>\n Next\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { ChevronsRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Drawer,\n DrawerBackdrop,\n DrawerClose,\n DrawerDescription,\n DrawerInteractive,\n DrawerPopup,\n DrawerPortal,\n DrawerTitle,\n DrawerViewport,\n} from '@/ds/components/Drawer';\nimport { PortalContainerProvider } from '@/ds/primitives/portal-container';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type SideDialogRootProps = {\n variant?: 'default' | 'confirmation';\n dialogTitle: string;\n dialogDescription: string;\n isOpen: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n className?: string;\n level?: 1 | 2 | 3;\n};\n\nexport function SideDialogRoot({\n dialogTitle,\n dialogDescription,\n isOpen,\n onClose,\n children,\n variant = 'default',\n level = 1,\n className,\n}: SideDialogRootProps) {\n const isConfirmation = variant === 'confirmation';\n\n // Mount point for nested popups (Select, Popover, …). It sits *inside* Base\n // UI's modal `FloatingFocusManager` region (so a `document.body` portal can't\n // leave them unclickable) AND is a `DrawerInteractive` (`data-drawer-content`)\n // node, which Base UI's Drawer excludes from swipe-to-dismiss. Without that\n // exclusion, a `pointerdown` on a dropdown option starts a drawer swipe and\n // captures the pointer, so the option never receives `pointerup` and the\n // click never commits. See `portal-container.tsx`.\n const [portalHost, setPortalHost] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <Drawer\n side=\"right\"\n open={isOpen}\n onOpenChange={open => {\n if (!open) onClose?.();\n }}\n >\n <DrawerPortal>\n {!isConfirmation && <DrawerBackdrop className=\"backdrop-blur-sm\" />}\n <DrawerViewport className={isConfirmation ? 'pointer-events-none' : undefined}>\n <DrawerPopup\n className={cn(\n 'max-w-none overflow-visible rounded-none border-y-0 border-r-0 border-l border-border-strong bg-background',\n {\n 'w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]': level === 1,\n 'w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]': level === 2,\n 'w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]': level === 3,\n 'pointer-events-auto bg-background/70 shadow-none backdrop-blur-sm': isConfirmation,\n },\n className,\n )}\n >\n <DrawerTitle className=\"sr-only\">{dialogTitle}</DrawerTitle>\n <DrawerDescription className=\"sr-only\">{dialogDescription}</DrawerDescription>\n\n {!isConfirmation && (\n <DrawerClose\n render={\n <button\n type=\"button\"\n className={cn(\n 'absolute top-0 -left-14 flex size-14 appearance-none items-center justify-center rounded-bl-lg border-b border-l border-border-strong bg-background text-muted-foreground',\n transitions.all,\n 'hover:bg-fill-subtle hover:text-foreground',\n )}\n aria-label=\"Close\"\n >\n <ChevronsRightIcon />\n </button>\n }\n />\n )}\n\n {/* Swipe-exempt, out-of-flow mount point for nested popups. */}\n <DrawerInteractive render={<div ref={setPortalHost} className=\"absolute\" />} />\n\n <PortalContainerProvider container={portalHost}>\n <div\n className={cn('grid h-full', {\n 'grid-rows-[auto_1fr]': !isConfirmation,\n })}\n >\n {children}\n </div>\n </PortalContainerProvider>\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n </Drawer>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type SideDialogTopProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function SideDialogTop({ children, className }: SideDialogTopProps) {\n return (\n <div\n className={cn(\n `relative flex h-11 items-center gap-3 pl-4 text-caption text-muted-foreground`,\n '[&:after]:absolute [&:after]:inset-x-6 [&:after]:bottom-0 [&:after]:border-b [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { SideDialogCodeSection } from './side-dialog-code-section';\nimport { SideDialogContent } from './side-dialog-content';\nimport { SideDialogHeader } from './side-dialog-header';\nimport { SideDialogHeading } from './side-dialog-heading';\nimport { SideDialogNav } from './side-dialog-nav';\nimport { SideDialogRoot } from './side-dialog-root';\nimport { SideDialogTop } from './side-dialog-top';\n\nexport { type SideDialogRootProps } from './side-dialog-root';\n\nexport const SideDialog = Object.assign(SideDialogRoot, {\n Top: SideDialogTop,\n Header: SideDialogHeader,\n Heading: SideDialogHeading,\n Content: SideDialogContent,\n CodeSection: SideDialogCodeSection,\n Nav: SideDialogNav,\n});\n"],"names":["t","ReactCodeMirror"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const TRACE_TIME_RANGE_FIELD: FilterBarField;
|
|
10
10
|
export declare const TRACE_TIME_RANGE_ITEM: FilterBarItem;
|
|
11
|
-
export type TraceTimeRangeChipProps = Pick<DateTimeRangePickerProps, 'preset' | 'onPresetChange' | 'dateFrom' | 'dateTo' | 'onDateChange' | 'onDateRangeChange' | 'disabled' | 'maxRangeMs' | 'presets'>;
|
|
11
|
+
export type TraceTimeRangeChipProps = Pick<DateTimeRangePickerProps, 'preset' | 'onPresetChange' | 'dateFrom' | 'dateTo' | 'onDateChange' | 'onDateRangeChange' | 'disabled' | 'maxRangeMs' | 'minDate' | 'presets'>;
|
|
12
12
|
/**
|
|
13
13
|
* The trace list's date range rendered as a FilterBar chip: `Time <preset>`. Always
|
|
14
14
|
* present and non-removable; the value segment opens the regular DateTimeRangePicker
|
|
@@ -4,6 +4,8 @@ export interface CustomRangeEditorProps {
|
|
|
4
4
|
disabled?: boolean;
|
|
5
5
|
/** Widest range that can be applied, in milliseconds. */
|
|
6
6
|
maxRangeMs?: number;
|
|
7
|
+
/** Earliest day a range can start on. Days before it are disabled. */
|
|
8
|
+
minDate?: Date;
|
|
7
9
|
onApply: (from: Date | undefined, to: Date | undefined) => void;
|
|
8
10
|
onShowPresets: () => void;
|
|
9
11
|
}
|
|
@@ -11,4 +13,4 @@ export interface CustomRangeEditorProps {
|
|
|
11
13
|
* The custom range popover body. It mounts each time the popover opens, so its drafts
|
|
12
14
|
* start from the current range without the picker resetting them.
|
|
13
15
|
*/
|
|
14
|
-
export declare function CustomRangeEditor({ dateFrom, dateTo, disabled, maxRangeMs, onApply, onShowPresets, }: CustomRangeEditorProps): import("react").JSX.Element;
|
|
16
|
+
export declare function CustomRangeEditor({ dateFrom, dateTo, disabled, maxRangeMs, minDate, onApply, onShowPresets, }: CustomRangeEditorProps): import("react").JSX.Element;
|
|
@@ -15,6 +15,8 @@ export interface DateTimeRangePickerProps {
|
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
/** Widest custom range that can be applied, in milliseconds. Presets are unaffected. */
|
|
17
17
|
maxRangeMs?: number;
|
|
18
|
+
/** Earliest day a custom range can start on, e.g. the oldest data still kept. Earlier days are disabled. */
|
|
19
|
+
minDate?: Date;
|
|
18
20
|
/** Subset of presets to show. If omitted, all presets are shown. */
|
|
19
21
|
presets?: readonly DateRangePreset[];
|
|
20
22
|
/** Size passed through to the trigger Button. Defaults to 'md'. */
|
|
@@ -28,4 +30,4 @@ export interface DateTimeRangePickerProps {
|
|
|
28
30
|
disabled?: boolean;
|
|
29
31
|
}) => ReactElement;
|
|
30
32
|
}
|
|
31
|
-
export declare function DateTimeRangePicker({ preset, onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, presets, size, renderTrigger, }: DateTimeRangePickerProps): import("react").JSX.Element;
|
|
33
|
+
export declare function DateTimeRangePicker({ preset, onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, size, renderTrigger, }: DateTimeRangePickerProps): import("react").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SettingsContainer } from './settings-container';
|
|
1
|
+
export { SettingsContainer, type SettingsContainerProps, type SettingsContainerVariant } from './settings-container';
|
|
2
2
|
export { SettingsDescription, SettingsGroup, SettingsHeader, SettingsTitle } from './settings-header';
|
|
3
3
|
export { SettingsFieldsetRow, SettingsRow, type SettingsFieldsetRowProps, type SettingsRowProps } from './settings-row';
|
|
4
4
|
export { SettingsLayout, type SettingsLayoutProps } from './settings-layout';
|
|
@@ -2,4 +2,8 @@ import { ComponentProps } from 'react';
|
|
|
2
2
|
export declare function SettingsContainerLayout({ layout, className, ...props }: ComponentProps<'div'> & {
|
|
3
3
|
layout: 'factory' | 'section';
|
|
4
4
|
}): import("react").JSX.Element;
|
|
5
|
-
export
|
|
5
|
+
export type SettingsContainerVariant = 'default' | 'inset';
|
|
6
|
+
export type SettingsContainerProps = ComponentProps<'div'> & {
|
|
7
|
+
variant?: SettingsContainerVariant;
|
|
8
|
+
};
|
|
9
|
+
export declare function SettingsContainer({ variant, className, ...props }: SettingsContainerProps): import("react").JSX.Element;
|
package/dist/style.css
CHANGED
|
@@ -10330,6 +10330,14 @@
|
|
|
10330
10330
|
--tw-exit-scale: .95;
|
|
10331
10331
|
}
|
|
10332
10332
|
|
|
10333
|
+
.data-\[current\=true\]\:rounded-xl[data-current="true"] {
|
|
10334
|
+
border-radius: var(--radius-xl);
|
|
10335
|
+
}
|
|
10336
|
+
|
|
10337
|
+
.data-\[current\=true\]\:bg-fill-subtle[data-current="true"] {
|
|
10338
|
+
background-color: var(--fill-subtle);
|
|
10339
|
+
}
|
|
10340
|
+
|
|
10333
10341
|
.data-\[direction\=end\]\:bottom-4[data-direction="end"] {
|
|
10334
10342
|
bottom: calc(var(--spacing) * 4);
|
|
10335
10343
|
}
|
|
@@ -12515,6 +12523,10 @@
|
|
|
12515
12523
|
pointer-events: auto;
|
|
12516
12524
|
}
|
|
12517
12525
|
|
|
12526
|
+
.\[\&\>\*\]\:min-h-14 > * {
|
|
12527
|
+
min-height: calc(var(--spacing) * 14);
|
|
12528
|
+
}
|
|
12529
|
+
|
|
12518
12530
|
.\[\&\>\*\]\:max-w-full > * {
|
|
12519
12531
|
max-width: 100%;
|
|
12520
12532
|
}
|
|
@@ -12527,6 +12539,18 @@
|
|
|
12527
12539
|
overflow: hidden;
|
|
12528
12540
|
}
|
|
12529
12541
|
|
|
12542
|
+
.\[\&\>\*\]\:bg-background > * {
|
|
12543
|
+
background-color: var(--background);
|
|
12544
|
+
}
|
|
12545
|
+
|
|
12546
|
+
.\[\&\>\*\]\:px-3\.5 > * {
|
|
12547
|
+
padding-inline: calc(var(--spacing) * 3.5);
|
|
12548
|
+
}
|
|
12549
|
+
|
|
12550
|
+
.\[\&\>\*\]\:py-2\.5 > * {
|
|
12551
|
+
padding-block: calc(var(--spacing) * 2.5);
|
|
12552
|
+
}
|
|
12553
|
+
|
|
12530
12554
|
.\[\&\>\*\]\:text-ellipsis > * {
|
|
12531
12555
|
text-overflow: ellipsis;
|
|
12532
12556
|
}
|
|
@@ -12555,10 +12579,20 @@
|
|
|
12555
12579
|
flex: 1;
|
|
12556
12580
|
}
|
|
12557
12581
|
|
|
12582
|
+
.\[\&\>\:first-child\]\:rounded-t-lg > :first-child {
|
|
12583
|
+
border-top-left-radius: var(--radius-lg);
|
|
12584
|
+
border-top-right-radius: var(--radius-lg);
|
|
12585
|
+
}
|
|
12586
|
+
|
|
12558
12587
|
.\[\&\>\:last-child\]\:mb-0 > :last-child {
|
|
12559
12588
|
margin-bottom: 0;
|
|
12560
12589
|
}
|
|
12561
12590
|
|
|
12591
|
+
.\[\&\>\:last-child\]\:rounded-b-lg > :last-child {
|
|
12592
|
+
border-bottom-right-radius: var(--radius-lg);
|
|
12593
|
+
border-bottom-left-radius: var(--radius-lg);
|
|
12594
|
+
}
|
|
12595
|
+
|
|
12562
12596
|
.\[\&\>\:not\(\.data-list-row\)\]\:col-span-full > :not(.data-list-row) {
|
|
12563
12597
|
grid-column: 1 / -1;
|
|
12564
12598
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { c as DataListCell,
|
|
2
|
+
import { c as DataListCell, e as DataListTextCell, j as DataListCreatedCell, k as DataListIdCell, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop, D as DataListRoot } from './data-list-top-DSr_ocKA.js';
|
|
3
|
+
import { D as DataListNextPageLoading, b as DataListSpacer, a as DataListNoMatch, d as DataListRowButton, f as DataListSortableTopCell } from './data-list-spacer-ByA4ce2a.js';
|
|
4
|
+
import { a as DataListSubHeading, b as DataListSubheader } from './data-list-DXQY_iQW.js';
|
|
3
5
|
import { RouteIcon, DatabaseIcon, ListTreeIcon, CornerDownRightIcon } from 'lucide-react';
|
|
4
6
|
import { B as Badge } from './Badge-CHGARUEW.js';
|
|
5
7
|
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-DrsXZDAj.js';
|
|
@@ -91,4 +93,4 @@ const TracesDataList = Object.assign(TracesDataListRoot, {
|
|
|
91
93
|
});
|
|
92
94
|
|
|
93
95
|
export { TracesDataList as T };
|
|
94
|
-
//# sourceMappingURL=traces-data-list-
|
|
96
|
+
//# sourceMappingURL=traces-data-list-0GcqZUbe.js.map
|