@mastra/playground-ui 64.0.0-alpha.7 → 64.0.0-alpha.9
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/combobox-BNlVCFgY.cjs +718 -0
- package/dist/combobox-BNlVCFgY.cjs.map +1 -0
- package/dist/combobox-Bw13EcK0.js +676 -0
- package/dist/combobox-Bw13EcK0.js.map +1 -0
- package/dist/{combobox-styles-B3jftCXY.js → combobox-styles-Dr66ofEp.js} +2 -2
- package/dist/{combobox-styles-B3jftCXY.js.map → combobox-styles-Dr66ofEp.js.map} +1 -1
- package/dist/components/Combobox.cjs.js +22 -1
- package/dist/components/Combobox.cjs.js.map +1 -1
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/FilterBar.es.js +3 -3
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/SavedViews.es.js +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/{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/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/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/span-scoring.cjs.js +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +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 +2 -2
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/{filter-bar-chip-BAqmNIeE.js → filter-bar-chip-BarAq1S2.js} +2 -2
- package/dist/{filter-bar-chip-BAqmNIeE.js.map → filter-bar-chip-BarAq1S2.js.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +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/Combobox/combobox-parts.d.ts +102 -0
- package/dist/src/ds/components/Combobox/combobox.d.ts +17 -3
- package/dist/src/ds/components/Combobox/index.d.ts +1 -0
- 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 +113 -1
- package/package.json +9 -9
- package/dist/combobox-DlKD-Q3M.js +0 -208
- package/dist/combobox-DlKD-Q3M.js.map +0 -1
- package/dist/combobox-VHtZQcl9.cjs +0 -229
- package/dist/combobox-VHtZQcl9.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
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
require('../tabbed-container.css');const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
|
-
const combobox = require('../combobox-
|
|
8
|
+
const combobox = require('../combobox-BNlVCFgY.cjs');
|
|
9
9
|
const dataList = require('../data-list-ecHsw-zr.cjs');
|
|
10
10
|
const listSearch = require('../list-search-DHiQ1-O6.cjs');
|
|
11
11
|
const tabsContent = require('../tabs-content-B16298Ur.cjs');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { ListFilterIcon } from 'lucide-react';
|
|
3
3
|
import { Children, isValidElement, useContext } from 'react';
|
|
4
|
-
import { C as Combobox } from '../combobox-
|
|
4
|
+
import { C as Combobox } from '../combobox-Bw13EcK0.js';
|
|
5
5
|
import { e as DataList } from '../data-list-DdCZZctL.js';
|
|
6
6
|
import { L as ListSearch } from '../list-search-D3I6xt0B.js';
|
|
7
7
|
import { T as TabContent } from '../tabs-content-DEnFKGyJ.js';
|
package/dist/new/settings.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const settingsRow = require('../settings-row-
|
|
5
|
+
const settingsRow = require('../settings-row-m_4gDCwS.cjs');
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const Txt = require('../Txt-CIS2G5Jx.cjs');
|
package/dist/new/settings.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { S as SettingsContainer, a as SettingsFieldsetRow, b as SettingsRow } from '../settings-row-
|
|
1
|
+
export { S as SettingsContainer, a as SettingsFieldsetRow, b as SettingsRow } from '../settings-row-yuQjwWTl.js';
|
|
2
2
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
3
|
import { useId, useContext, createContext } from 'react';
|
|
4
4
|
import { T as Txt } from '../Txt-BtIGLRk1.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
const settingsRow = require('./settings-row-
|
|
4
|
+
const settingsRow = require('./settings-row-m_4gDCwS.cjs');
|
|
5
5
|
const Txt = require('./Txt-CIS2G5Jx.cjs');
|
|
6
6
|
const utils_cn = require('./cn-DlOJCxrS.cjs');
|
|
7
7
|
|
|
@@ -114,4 +114,4 @@ Section.Divider = SectionDivider;
|
|
|
114
114
|
exports.Section = Section;
|
|
115
115
|
exports.SectionRoot = SectionRoot;
|
|
116
116
|
exports.SubSectionRoot = SubSectionRoot;
|
|
117
|
-
//# sourceMappingURL=section-
|
|
117
|
+
//# sourceMappingURL=section-CctlZIXp.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-BPhTrzbk.cjs","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":["jsx","SettingsContainerLayout","Txt","cn","SettingsRowLayout"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"section-CctlZIXp.cjs","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":["jsx","SettingsContainerLayout","Txt","cn","SettingsRowLayout"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { c as SettingsContainerLayout, d as SettingsRowLayout } from './settings-row-
|
|
2
|
+
import { c as SettingsContainerLayout, d as SettingsRowLayout } from './settings-row-yuQjwWTl.js';
|
|
3
3
|
import { T as Txt } from './Txt-BtIGLRk1.js';
|
|
4
4
|
import { c as cn } from './cn-CQUhN5Jx.js';
|
|
5
5
|
|
|
@@ -110,4 +110,4 @@ Section.DestructiveRow = SectionDestructiveRow;
|
|
|
110
110
|
Section.Divider = SectionDivider;
|
|
111
111
|
|
|
112
112
|
export { Section as S, SectionRoot as a, SubSectionRoot as b };
|
|
113
|
-
//# sourceMappingURL=section-
|
|
113
|
+
//# sourceMappingURL=section-D0hKTVXt.js.map
|
|
@@ -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":";;;;;;;;AAIO,SAAS,uBAAA,CAAwB;AAAA,EACtC,MAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8D;AAC5D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAW,MAAA,KAAW,SAAA,GAAY,iBAAA,GAAoB,oBAAA;AAAA,MACtD,SAAA,EAAW,EAAA;AAAA,QACT,MAAA,KAAW,SAAA,GACP,EAAA,CAAG,kBAAA,EAAoB,YAAY,CAAA,GACnC,EAAA;AAAA,UACE,sGAAA;AAAA,UACA;AAAA,SACF;AAAA,QACJ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAMA,MAAM,cAAA,GAAiB;AAAA,EACrB,OAAA,EAAS,wBAAA;AAAA,EACT,KAAA,EACE;AACJ,CAAA;AAEO,SAAS,kBAAkB,EAAE,OAAA,GAAU,WAAW,SAAA,EAAW,GAAG,OAAM,EAA2B;AACtG,EAAA,uBACE,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,MAAA,EAAO,SAAA;AAAA,MACP,cAAA,EAAc,OAAA;AAAA,MACd,SAAA,EAAW,EAAA,CAAG,cAAA,CAAe,OAAO,GAAG,SAAS;AAAA;AAAA,GAClD;AAEJ;;ACtBA,MAAM,mBAAA,GAAsB,6CAAA;AAC5B,MAAM,mCAAA,GAAsC,gDAAA;AAC5C,MAAM,0BAAA,GAA6B,+BAAA;AAE5B,SAAS,iBAAA,CAAkB;AAAA,EAChC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,MAAM,kBAAkB,MAAA,KAAW,SAAA;AACnC,EAAA,MAAM,OAAA,GAAU,2BACd,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,iBAAA,EAAkB,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,oBACzD,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,IACpC;AAAA,GAAA,EACH,CAAA,GAEA,QAAA;AAGF,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAY,YAAA;AAAA,MACZ,OAAA,EAAS,QAAQ,QAAQ,CAAA;AAAA,MACzB,UAAU,QAAA,IAAY,QAAA;AAAA,MACtB,WAAA,EAAW,kBAAkB,aAAA,GAAgB,cAAA;AAAA,MAC7C,SAAA,EAAW,EAAA;AAAA,QACT,kBACI,uUAAA,GACA,SAAA;AAAA,QACJ,WAAW,SAAA,IAAa,mBAAA;AAAA,QACxB,WAAW,SAAA,IAAa,mCAAA;AAAA,QACxB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,eAAA,GAAkB,SAAA,GAAY,0BAAA,EAC5C,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACE,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY,EAAC;AAAA,cAC9B,QAAA;AAAA,cACA,SAAA,EAAW,EAAA,CAAG,IAAA,KAAS,aAAA,IAAiB,6BAA6B,CAAA;AAAA,cAEpE,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UACC,eAAe,IAAA,oBACd,GAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,MAAA,EAAQ,eAAA,GAAkB,MAAA,mBAAY,GAAA,CAAC,KAAA,EAAA,EAAI,CAAA;AAAA,cAC3C,SAAA,EAAW,EAAA,CAAG,MAAA,EAAQ,eAAA,GAAkB,kCAAkC,uBAAuB,CAAA;AAAA,cAEhG,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,0BAEF,GAAA,CAAC,cAAW,SAAA,EAAW,EAAA,CAAG,QAAQ,eAAA,IAAmB,MAAM,GAAI,QAAA,EAAA,QAAA,EAAS;AAAA,SAAA,EAC1E,CAAA;AAAA,QACC,QAAA,IAAY,IAAA,KACV,eAAA,IAAmB,QAAA,mBAClB,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAW,kBAAkB,iBAAA,GAAoB,MAAA;AAAA,YACjD,SAAA,EAAW,EAAA;AAAA,cACT,SAAA;AAAA,cACA,eAAA,IAAmB,qBAAA;AAAA,cACnB,QAAA,IAAY;AAAA,aACd;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH,GAEA,OAAA;AAAA;AAAA;AAAA,GAEN;AAEJ;AAEO,SAAS,YAAY,KAAA,EAAyB;AACnD,EAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAmB,GAAG,KAAA,EAAO,QAAO,SAAA,EAAU,CAAA;AACxD;AAQO,SAAS,mBAAA,CAAoB,EAAE,KAAA,EAAO,WAAA,EAAa,UAAU,SAAA,EAAW,GAAG,OAAM,EAA6B;AACnH,EAAA,MAAM,gBAAgB,KAAA,EAAM;AAE5B,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,kBAAA,EAAkB,WAAA,IAAe,IAAA,GAAO,MAAA,GAAY,aAAA;AAAA,MACpD,SAAA,EAAW,EAAA,CAAG,2CAAA,EAA6C,mBAAA,EAAqB,SAAS,CAAA;AAAA,MACxF,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAW,0BAAA,EACd,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,kBAAgB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACtB,WAAA,IAAe,wBACd,GAAA,CAAC,KAAA,EAAA,EAAI,IAAI,aAAA,EAAe,SAAA,EAAU,4DAC/B,QAAA,EAAA,WAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ;;;;"}
|
|
@@ -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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"}
|