@arbidocs/blocks 0.3.177 → 0.3.179
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/{chunk-6HGMAQLB.cjs → chunk-DBAUZD7A.cjs} +448 -113
- package/dist/chunk-DBAUZD7A.cjs.map +1 -0
- package/dist/{chunk-27Q4AST5.js → chunk-FZ2S6VAZ.js} +449 -116
- package/dist/chunk-FZ2S6VAZ.js.map +1 -0
- package/dist/{index-er1L8kkn.d.cts → index-DduoEosi.d.cts} +65 -2
- package/dist/{index-er1L8kkn.d.ts → index-DduoEosi.d.ts} +65 -2
- package/dist/index.cjs +258 -178
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +64 -9
- package/dist/index.d.ts +64 -9
- package/dist/index.js +110 -40
- package/dist/index.js.map +1 -1
- package/dist/site/index.cjs +61 -61
- package/dist/site/index.d.cts +1 -1
- package/dist/site/index.d.ts +1 -1
- package/dist/site/index.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-27Q4AST5.js.map +0 -1
- package/dist/chunk-6HGMAQLB.cjs.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ap as ThemeBundle, ax as ThemeTokens, av as ThemeState } from './index-
|
|
2
|
-
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as ApplyThemeOptions, d as AvatarBlock, e as AvatarBlockProps, B as Banner, f as BannerProps, g as BannerTone, h as BlockImage, i as BlockImageProps, j as BlockLink, k as BlockLinkComponent, l as BlockLinkProps, C as CTABanner, m as CTABannerProps, n as Callout, o as CalloutProps, p as CalloutVariant, q as ColorToken, r as Columns, s as ColumnsProps, t as ContactField, u as ContactForm, v as ContactFormProps, w as Container, x as ContainerProps, F as FAQ, y as FAQProps, z as FONT_PAIRINGS, D as FaqItem, E as FeatureGrid, G as FeatureGridProps, H as FeatureItem, I as FontPairing, J as Footer, K as FooterColumn, L as FooterLink, M as FooterProps, N as Gallery, O as GalleryImage, P as GalleryProps, Q as Hero, R as HeroCta, S as HeroProps, T as ListBlock, U as ListBlockProps, V as ListItem, W as LogoCloud, X as LogoCloudProps, Y as LogoItem, Z as MediaText, _ as MediaTextProps, $ as NavLink, a0 as Navbar, a1 as NavbarProps, a2 as PricingPlan, a3 as PricingTable, a4 as PricingTableProps, a5 as RichTextBlock, a6 as RichTextBlockProps, a7 as SectionHeading, a8 as Spacer, a9 as SpacerProps, aa as StepItem, ab as Steps, ac as StepsProps, ad as THEME_STYLE_ID, ae as TabItem, af as Tabs, ag as TabsProps, ah as TeamGrid, ai as TeamGridProps, aj as TeamMember, ak as Testimonial, al as TestimonialGrid, am as TestimonialGridProps, an as TestimonialItem, ao as TestimonialProps, aq as ThemeEditor, ar as ThemeEditorProps, as as ThemeEmitMode, at as ThemeFonts, au as ThemePreset, aw as ThemeStoreConfig, ay as Timeline, az as TimelineCalendar, aA as TimelineCalendarProps, aB as TimelineGantt, aC as TimelineGanttProps, aD as TimelineItem, aE as TimelineProps, aF as TimelineViewMode, aG as VideoAspect, aH as VideoEmbed, aI as VideoEmbedProps, aJ as applyFontVars, aK as applyStoredTheme, aL as applyThemeVars, aM as clearFontVars, aN as clearThemeVars, aO as createThemeStore, aP as dayKey, aQ as daysUntil, aR as fmtDate, aS as fmtDateTime, aT as fontPackages, aU as formatPageRefs, aV as formatSpan, aW as fromNow, aX as gbp, aY as getFontPairing, aZ as hrs, a_ as initials, a$ as matchFontPairing, b0 as monthLabel, b1 as parseIso, b2 as pct, b3 as tid, b4 as toEmbedUrl, b5 as toHslTriplet, b6 as utcDay } from './index-
|
|
1
|
+
import { ap as ThemeBundle, ax as ThemeTokens, av as ThemeState } from './index-DduoEosi.cjs';
|
|
2
|
+
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as ApplyThemeOptions, d as AvatarBlock, e as AvatarBlockProps, B as Banner, f as BannerProps, g as BannerTone, h as BlockImage, i as BlockImageProps, j as BlockLink, k as BlockLinkComponent, l as BlockLinkProps, C as CTABanner, m as CTABannerProps, n as Callout, o as CalloutProps, p as CalloutVariant, q as ColorToken, r as Columns, s as ColumnsProps, t as ContactField, u as ContactForm, v as ContactFormProps, w as Container, x as ContainerProps, F as FAQ, y as FAQProps, z as FONT_PAIRINGS, D as FaqItem, E as FeatureGrid, G as FeatureGridProps, H as FeatureItem, I as FontPairing, J as Footer, K as FooterColumn, L as FooterLink, M as FooterProps, N as Gallery, O as GalleryImage, P as GalleryProps, Q as Hero, R as HeroCta, S as HeroProps, T as ListBlock, U as ListBlockProps, V as ListItem, W as LogoCloud, X as LogoCloudProps, Y as LogoItem, Z as MediaText, _ as MediaTextProps, $ as NavLink, a0 as Navbar, a1 as NavbarProps, a2 as PricingPlan, a3 as PricingTable, a4 as PricingTableProps, a5 as RichTextBlock, a6 as RichTextBlockProps, a7 as SectionHeading, a8 as Spacer, a9 as SpacerProps, aa as StepItem, ab as Steps, ac as StepsProps, ad as THEME_STYLE_ID, ae as TabItem, af as Tabs, ag as TabsProps, ah as TeamGrid, ai as TeamGridProps, aj as TeamMember, ak as Testimonial, al as TestimonialGrid, am as TestimonialGridProps, an as TestimonialItem, ao as TestimonialProps, aq as ThemeEditor, ar as ThemeEditorProps, as as ThemeEmitMode, at as ThemeFonts, au as ThemePreset, aw as ThemeStoreConfig, ay as Timeline, az as TimelineCalendar, aA as TimelineCalendarProps, aB as TimelineGantt, aC as TimelineGanttProps, aD as TimelineItem, aE as TimelineProps, aF as TimelineViewMode, aG as VideoAspect, aH as VideoEmbed, aI as VideoEmbedProps, aJ as applyFontVars, aK as applyStoredTheme, aL as applyThemeVars, aM as clearFontVars, aN as clearThemeVars, aO as createThemeStore, aP as dayKey, aQ as daysUntil, aR as fmtDate, aS as fmtDateTime, aT as fontPackages, aU as formatPageRefs, aV as formatSpan, aW as fromNow, aX as gbp, aY as getFontPairing, aZ as hrs, a_ as initials, a$ as matchFontPairing, b0 as monthLabel, b1 as parseIso, b2 as pct, b3 as tid, b4 as toEmbedUrl, b5 as toHslTriplet, b6 as utcDay } from './index-DduoEosi.cjs';
|
|
3
3
|
import * as react from 'react';
|
|
4
4
|
import react__default, { ReactNode, KeyboardEventHandler, RefObject, ComponentType } from 'react';
|
|
5
5
|
import * as _arbidocs_react from '@arbidocs/react';
|
|
@@ -326,12 +326,12 @@ declare function useWorkspaceDocs(): {
|
|
|
326
326
|
doctags: {
|
|
327
327
|
note?: string | null | undefined;
|
|
328
328
|
citations?: {
|
|
329
|
-
|
|
329
|
+
doc_ext_id: string;
|
|
330
|
+
chunks?: {
|
|
330
331
|
chunk_id: string;
|
|
331
|
-
doc_ext_id?: string | null | undefined;
|
|
332
332
|
page?: number | null | undefined;
|
|
333
|
-
}[];
|
|
334
|
-
} | null | undefined;
|
|
333
|
+
}[] | undefined;
|
|
334
|
+
}[] | null | undefined;
|
|
335
335
|
external_id: string;
|
|
336
336
|
doc_ext_id: string;
|
|
337
337
|
tag_ext_id: string;
|
|
@@ -499,6 +499,24 @@ declare function UsageMeter({ icon: Icon, label, value, pct, hint, className, te
|
|
|
499
499
|
testId?: string;
|
|
500
500
|
}): react.JSX.Element;
|
|
501
501
|
|
|
502
|
+
/** Zoom bounds shared by the control and the chart, so a hoisted control stays in
|
|
503
|
+
* step with the plot scaling. STEP is the slider granularity. */
|
|
504
|
+
declare const TIMELINE_ZOOM: {
|
|
505
|
+
readonly MIN: 1;
|
|
506
|
+
readonly MAX: 10;
|
|
507
|
+
readonly STEP: 0.25;
|
|
508
|
+
};
|
|
509
|
+
interface TimelineZoomControlProps {
|
|
510
|
+
/** Current zoom factor (1 = fit). */
|
|
511
|
+
zoom: number;
|
|
512
|
+
/** Fired with the next clamped zoom factor. */
|
|
513
|
+
onZoomChange: (zoom: number) => void;
|
|
514
|
+
className?: string;
|
|
515
|
+
/** Prefix for the `data-testid`s this control emits. */
|
|
516
|
+
testId?: string;
|
|
517
|
+
}
|
|
518
|
+
declare function TimelineZoomControl({ zoom, onZoomChange, className, testId, }: TimelineZoomControlProps): react.JSX.Element;
|
|
519
|
+
|
|
502
520
|
interface UploadDropzoneProps {
|
|
503
521
|
/** Called with the chosen/dropped files. */
|
|
504
522
|
onFiles: (files: File[]) => void;
|
|
@@ -699,7 +717,7 @@ interface RecentActivityRow {
|
|
|
699
717
|
title: string;
|
|
700
718
|
/** Second line: what this row is, in a few words. */
|
|
701
719
|
subtitle?: string;
|
|
702
|
-
/** Pinned right on the
|
|
720
|
+
/** Pinned right on the title line, like a message time. */
|
|
703
721
|
meta?: string;
|
|
704
722
|
onClick?: () => void;
|
|
705
723
|
/**
|
|
@@ -765,7 +783,7 @@ interface RecentActivityCardProps {
|
|
|
765
783
|
* count rides along as a caption beside the title, not as the content.
|
|
766
784
|
*
|
|
767
785
|
* The row anatomy is the DM conversation chip's (leading avatar, bold name
|
|
768
|
-
* line
|
|
786
|
+
* line with the time pinned right, muted second line), because a list of
|
|
769
787
|
* recognisable things reads the same way whoever owns it.
|
|
770
788
|
*
|
|
771
789
|
* Styled with SEMANTIC tokens only (card, border, foreground, muted-foreground,
|
|
@@ -821,6 +839,43 @@ interface ResumeStripProps {
|
|
|
821
839
|
}
|
|
822
840
|
declare function ResumeStrip({ items, caption, className, testId, }: ResumeStripProps): react.JSX.Element | null;
|
|
823
841
|
|
|
842
|
+
interface QuickActionItem {
|
|
843
|
+
id: string;
|
|
844
|
+
icon: LucideIcon;
|
|
845
|
+
/** The job, in the user's words — "Deep research", not "Research agent". */
|
|
846
|
+
title: string;
|
|
847
|
+
/** One line on what happens. Sentence case, no full stop needed. */
|
|
848
|
+
description: string;
|
|
849
|
+
onClick: () => void;
|
|
850
|
+
/** Rendered non-interactive and dimmed; `disabledReason` explains why. */
|
|
851
|
+
disabled?: boolean;
|
|
852
|
+
/** Shown as the card's tooltip when disabled — say how to unblock it. */
|
|
853
|
+
disabledReason?: string;
|
|
854
|
+
testId?: string;
|
|
855
|
+
}
|
|
856
|
+
interface QuickActionCardsProps {
|
|
857
|
+
items: QuickActionItem[];
|
|
858
|
+
/** Optional lead-in above the row. */
|
|
859
|
+
caption?: string;
|
|
860
|
+
className?: string;
|
|
861
|
+
testId?: string;
|
|
862
|
+
}
|
|
863
|
+
declare function QuickActionCards({ items, caption, className, testId, }: QuickActionCardsProps): react.JSX.Element | null;
|
|
864
|
+
|
|
865
|
+
interface SectionCaptionProps {
|
|
866
|
+
children: ReactNode;
|
|
867
|
+
className?: string;
|
|
868
|
+
testId?: string;
|
|
869
|
+
}
|
|
870
|
+
/**
|
|
871
|
+
* The small uppercase eyebrow that names a band of a page — "Start something",
|
|
872
|
+
* "Continue a chat". One component so every band on a home surface wears the
|
|
873
|
+
* same caption, and a single screenful never mixes two caption languages.
|
|
874
|
+
*
|
|
875
|
+
* Styled with SEMANTIC tokens only, so every firm gets it in its own colours.
|
|
876
|
+
*/
|
|
877
|
+
declare function SectionCaption({ children, className, testId }: SectionCaptionProps): react.JSX.Element;
|
|
878
|
+
|
|
824
879
|
interface SectionStripRow {
|
|
825
880
|
id: string;
|
|
826
881
|
/** The row's mark — a pin, a dot, a tiny glyph. Consumer-supplied. */
|
|
@@ -1645,4 +1700,4 @@ interface AgentsPanelProps {
|
|
|
1645
1700
|
}
|
|
1646
1701
|
declare function AgentsPanel({ store, testIdPrefix }: AgentsPanelProps): react.JSX.Element;
|
|
1647
1702
|
|
|
1648
|
-
export { ASSET_REF_PREFIX, type AgentSelectionStore, AgentsPanel, type AgentsPanelProps, type AiFields, type AiFieldsConfig, AppHeader, type AppHeaderProps, type AppHeaderUser, type AppNavItem, type AppNavSection, AppShell, type AppShellProps, type ArbiBlocksConfigOptions, type ArbiMode, type ArbiUser, AskBar, type AskBarProps, type AssetMaterializer, type AssetRenderProps, type AssetRenderer, AssetResolverProvider, AssetThumb, type AssistantCitation, type AssistantMessage, type AssistantStep, type BlockKit, type BuildPrompt, type BuilderModule, CitationEditor, type CitationEditorProps, type Column, ConnectionProvider, type ConnectionStatus, DataTable, DataTableBlock, type DataTableBlockColumn, type DataTableBlockProps, EmptyState, EntityIdentityBar, type EntityIdentityBarProps, type EntityIdentityField, type ExportedModule, type FirmArbiConfig, GridView, type GridViewEmptyState, type GridViewProps, type GridViewSelection, IDENTITY_NAME_MAX_LENGTH, type ImageFieldConfig, type ImageFieldFactory, LegalArbiProvider, LiveDataProvider, type LoadResult, type MaterializeOptions, type MatterContext, MemberAvatarStack, type MemberAvatarStackProps, MetricCard, type MetricCardProps, ModuleManager, type ModuleManagerProps, type ModuleRegistry, type ModuleStoreBundle, PageHeader, PageRenderer, type PageRendererProps, type PersistVia, type PromptConfig, type PromptLibrary, type Prompts, RecentActivityCard, type RecentActivityCardProps, type RecentActivityRow, type ResolvedModule, ResumeStrip, type ResumeStripItem, type ResumeStripProps, Section, type SectionProps, SectionStrip, type SectionStripAction, type SectionStripGroup, type SectionStripProps, type SectionStripRow, type StackedMember, StartHero, type StartHeroProps, StatGroup, type StatGroupProps, type StatItem, StudioEditor, type StudioEditorProps, type StudioPageMeta, type StudioPersistence, type StudioPersistenceConfig, ThemeBundle, ThemeState, ThemeTokens, Toolbar, UploadDropzone, type UploadDropzoneProps, UsageMeter, type UseImageGen, VerticalBuilder, type VerticalBuilderProps, type VerticalConfig, type VerticalExport, type VerticalExportConfig, WidgetPlaceholder, WorkspaceCard, type WorkspaceCardMember, type WorkspaceCardProps, asAssetRef, assetRefId, createAgentSelectionStore, createAiFields, createArbiBlocksConfig, createArbiMaterializer, createBlockKit, createImageField, createLiveWidgets, createModuleRegistry, createModuleStore, createPromptLibrary, createSiteBlocks, createStudioPersistence, createVerticalExport, createWebsiteBlocks, iconMap, isAssetRef, isAuthenticated, materializePageData, matterToContext, useAssetImage, useAssetRenderer, useAssetResolverActive, useConnection, useFirmAiTask, useImageGen, useLiveDataActive, useSemanticSearch, useWorkspaceDocs };
|
|
1703
|
+
export { ASSET_REF_PREFIX, type AgentSelectionStore, AgentsPanel, type AgentsPanelProps, type AiFields, type AiFieldsConfig, AppHeader, type AppHeaderProps, type AppHeaderUser, type AppNavItem, type AppNavSection, AppShell, type AppShellProps, type ArbiBlocksConfigOptions, type ArbiMode, type ArbiUser, AskBar, type AskBarProps, type AssetMaterializer, type AssetRenderProps, type AssetRenderer, AssetResolverProvider, AssetThumb, type AssistantCitation, type AssistantMessage, type AssistantStep, type BlockKit, type BuildPrompt, type BuilderModule, CitationEditor, type CitationEditorProps, type Column, ConnectionProvider, type ConnectionStatus, DataTable, DataTableBlock, type DataTableBlockColumn, type DataTableBlockProps, EmptyState, EntityIdentityBar, type EntityIdentityBarProps, type EntityIdentityField, type ExportedModule, type FirmArbiConfig, GridView, type GridViewEmptyState, type GridViewProps, type GridViewSelection, IDENTITY_NAME_MAX_LENGTH, type ImageFieldConfig, type ImageFieldFactory, LegalArbiProvider, LiveDataProvider, type LoadResult, type MaterializeOptions, type MatterContext, MemberAvatarStack, type MemberAvatarStackProps, MetricCard, type MetricCardProps, ModuleManager, type ModuleManagerProps, type ModuleRegistry, type ModuleStoreBundle, PageHeader, PageRenderer, type PageRendererProps, type PersistVia, type PromptConfig, type PromptLibrary, type Prompts, QuickActionCards, type QuickActionCardsProps, type QuickActionItem, RecentActivityCard, type RecentActivityCardProps, type RecentActivityRow, type ResolvedModule, ResumeStrip, type ResumeStripItem, type ResumeStripProps, Section, SectionCaption, type SectionCaptionProps, type SectionProps, SectionStrip, type SectionStripAction, type SectionStripGroup, type SectionStripProps, type SectionStripRow, type StackedMember, StartHero, type StartHeroProps, StatGroup, type StatGroupProps, type StatItem, StudioEditor, type StudioEditorProps, type StudioPageMeta, type StudioPersistence, type StudioPersistenceConfig, TIMELINE_ZOOM, ThemeBundle, ThemeState, ThemeTokens, TimelineZoomControl, type TimelineZoomControlProps, Toolbar, UploadDropzone, type UploadDropzoneProps, UsageMeter, type UseImageGen, VerticalBuilder, type VerticalBuilderProps, type VerticalConfig, type VerticalExport, type VerticalExportConfig, WidgetPlaceholder, WorkspaceCard, type WorkspaceCardMember, type WorkspaceCardProps, asAssetRef, assetRefId, createAgentSelectionStore, createAiFields, createArbiBlocksConfig, createArbiMaterializer, createBlockKit, createImageField, createLiveWidgets, createModuleRegistry, createModuleStore, createPromptLibrary, createSiteBlocks, createStudioPersistence, createVerticalExport, createWebsiteBlocks, iconMap, isAssetRef, isAuthenticated, materializePageData, matterToContext, useAssetImage, useAssetRenderer, useAssetResolverActive, useConnection, useFirmAiTask, useImageGen, useLiveDataActive, useSemanticSearch, useWorkspaceDocs };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ap as ThemeBundle, ax as ThemeTokens, av as ThemeState } from './index-
|
|
2
|
-
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as ApplyThemeOptions, d as AvatarBlock, e as AvatarBlockProps, B as Banner, f as BannerProps, g as BannerTone, h as BlockImage, i as BlockImageProps, j as BlockLink, k as BlockLinkComponent, l as BlockLinkProps, C as CTABanner, m as CTABannerProps, n as Callout, o as CalloutProps, p as CalloutVariant, q as ColorToken, r as Columns, s as ColumnsProps, t as ContactField, u as ContactForm, v as ContactFormProps, w as Container, x as ContainerProps, F as FAQ, y as FAQProps, z as FONT_PAIRINGS, D as FaqItem, E as FeatureGrid, G as FeatureGridProps, H as FeatureItem, I as FontPairing, J as Footer, K as FooterColumn, L as FooterLink, M as FooterProps, N as Gallery, O as GalleryImage, P as GalleryProps, Q as Hero, R as HeroCta, S as HeroProps, T as ListBlock, U as ListBlockProps, V as ListItem, W as LogoCloud, X as LogoCloudProps, Y as LogoItem, Z as MediaText, _ as MediaTextProps, $ as NavLink, a0 as Navbar, a1 as NavbarProps, a2 as PricingPlan, a3 as PricingTable, a4 as PricingTableProps, a5 as RichTextBlock, a6 as RichTextBlockProps, a7 as SectionHeading, a8 as Spacer, a9 as SpacerProps, aa as StepItem, ab as Steps, ac as StepsProps, ad as THEME_STYLE_ID, ae as TabItem, af as Tabs, ag as TabsProps, ah as TeamGrid, ai as TeamGridProps, aj as TeamMember, ak as Testimonial, al as TestimonialGrid, am as TestimonialGridProps, an as TestimonialItem, ao as TestimonialProps, aq as ThemeEditor, ar as ThemeEditorProps, as as ThemeEmitMode, at as ThemeFonts, au as ThemePreset, aw as ThemeStoreConfig, ay as Timeline, az as TimelineCalendar, aA as TimelineCalendarProps, aB as TimelineGantt, aC as TimelineGanttProps, aD as TimelineItem, aE as TimelineProps, aF as TimelineViewMode, aG as VideoAspect, aH as VideoEmbed, aI as VideoEmbedProps, aJ as applyFontVars, aK as applyStoredTheme, aL as applyThemeVars, aM as clearFontVars, aN as clearThemeVars, aO as createThemeStore, aP as dayKey, aQ as daysUntil, aR as fmtDate, aS as fmtDateTime, aT as fontPackages, aU as formatPageRefs, aV as formatSpan, aW as fromNow, aX as gbp, aY as getFontPairing, aZ as hrs, a_ as initials, a$ as matchFontPairing, b0 as monthLabel, b1 as parseIso, b2 as pct, b3 as tid, b4 as toEmbedUrl, b5 as toHslTriplet, b6 as utcDay } from './index-
|
|
1
|
+
import { ap as ThemeBundle, ax as ThemeTokens, av as ThemeState } from './index-DduoEosi.js';
|
|
2
|
+
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as ApplyThemeOptions, d as AvatarBlock, e as AvatarBlockProps, B as Banner, f as BannerProps, g as BannerTone, h as BlockImage, i as BlockImageProps, j as BlockLink, k as BlockLinkComponent, l as BlockLinkProps, C as CTABanner, m as CTABannerProps, n as Callout, o as CalloutProps, p as CalloutVariant, q as ColorToken, r as Columns, s as ColumnsProps, t as ContactField, u as ContactForm, v as ContactFormProps, w as Container, x as ContainerProps, F as FAQ, y as FAQProps, z as FONT_PAIRINGS, D as FaqItem, E as FeatureGrid, G as FeatureGridProps, H as FeatureItem, I as FontPairing, J as Footer, K as FooterColumn, L as FooterLink, M as FooterProps, N as Gallery, O as GalleryImage, P as GalleryProps, Q as Hero, R as HeroCta, S as HeroProps, T as ListBlock, U as ListBlockProps, V as ListItem, W as LogoCloud, X as LogoCloudProps, Y as LogoItem, Z as MediaText, _ as MediaTextProps, $ as NavLink, a0 as Navbar, a1 as NavbarProps, a2 as PricingPlan, a3 as PricingTable, a4 as PricingTableProps, a5 as RichTextBlock, a6 as RichTextBlockProps, a7 as SectionHeading, a8 as Spacer, a9 as SpacerProps, aa as StepItem, ab as Steps, ac as StepsProps, ad as THEME_STYLE_ID, ae as TabItem, af as Tabs, ag as TabsProps, ah as TeamGrid, ai as TeamGridProps, aj as TeamMember, ak as Testimonial, al as TestimonialGrid, am as TestimonialGridProps, an as TestimonialItem, ao as TestimonialProps, aq as ThemeEditor, ar as ThemeEditorProps, as as ThemeEmitMode, at as ThemeFonts, au as ThemePreset, aw as ThemeStoreConfig, ay as Timeline, az as TimelineCalendar, aA as TimelineCalendarProps, aB as TimelineGantt, aC as TimelineGanttProps, aD as TimelineItem, aE as TimelineProps, aF as TimelineViewMode, aG as VideoAspect, aH as VideoEmbed, aI as VideoEmbedProps, aJ as applyFontVars, aK as applyStoredTheme, aL as applyThemeVars, aM as clearFontVars, aN as clearThemeVars, aO as createThemeStore, aP as dayKey, aQ as daysUntil, aR as fmtDate, aS as fmtDateTime, aT as fontPackages, aU as formatPageRefs, aV as formatSpan, aW as fromNow, aX as gbp, aY as getFontPairing, aZ as hrs, a_ as initials, a$ as matchFontPairing, b0 as monthLabel, b1 as parseIso, b2 as pct, b3 as tid, b4 as toEmbedUrl, b5 as toHslTriplet, b6 as utcDay } from './index-DduoEosi.js';
|
|
3
3
|
import * as react from 'react';
|
|
4
4
|
import react__default, { ReactNode, KeyboardEventHandler, RefObject, ComponentType } from 'react';
|
|
5
5
|
import * as _arbidocs_react from '@arbidocs/react';
|
|
@@ -326,12 +326,12 @@ declare function useWorkspaceDocs(): {
|
|
|
326
326
|
doctags: {
|
|
327
327
|
note?: string | null | undefined;
|
|
328
328
|
citations?: {
|
|
329
|
-
|
|
329
|
+
doc_ext_id: string;
|
|
330
|
+
chunks?: {
|
|
330
331
|
chunk_id: string;
|
|
331
|
-
doc_ext_id?: string | null | undefined;
|
|
332
332
|
page?: number | null | undefined;
|
|
333
|
-
}[];
|
|
334
|
-
} | null | undefined;
|
|
333
|
+
}[] | undefined;
|
|
334
|
+
}[] | null | undefined;
|
|
335
335
|
external_id: string;
|
|
336
336
|
doc_ext_id: string;
|
|
337
337
|
tag_ext_id: string;
|
|
@@ -499,6 +499,24 @@ declare function UsageMeter({ icon: Icon, label, value, pct, hint, className, te
|
|
|
499
499
|
testId?: string;
|
|
500
500
|
}): react.JSX.Element;
|
|
501
501
|
|
|
502
|
+
/** Zoom bounds shared by the control and the chart, so a hoisted control stays in
|
|
503
|
+
* step with the plot scaling. STEP is the slider granularity. */
|
|
504
|
+
declare const TIMELINE_ZOOM: {
|
|
505
|
+
readonly MIN: 1;
|
|
506
|
+
readonly MAX: 10;
|
|
507
|
+
readonly STEP: 0.25;
|
|
508
|
+
};
|
|
509
|
+
interface TimelineZoomControlProps {
|
|
510
|
+
/** Current zoom factor (1 = fit). */
|
|
511
|
+
zoom: number;
|
|
512
|
+
/** Fired with the next clamped zoom factor. */
|
|
513
|
+
onZoomChange: (zoom: number) => void;
|
|
514
|
+
className?: string;
|
|
515
|
+
/** Prefix for the `data-testid`s this control emits. */
|
|
516
|
+
testId?: string;
|
|
517
|
+
}
|
|
518
|
+
declare function TimelineZoomControl({ zoom, onZoomChange, className, testId, }: TimelineZoomControlProps): react.JSX.Element;
|
|
519
|
+
|
|
502
520
|
interface UploadDropzoneProps {
|
|
503
521
|
/** Called with the chosen/dropped files. */
|
|
504
522
|
onFiles: (files: File[]) => void;
|
|
@@ -699,7 +717,7 @@ interface RecentActivityRow {
|
|
|
699
717
|
title: string;
|
|
700
718
|
/** Second line: what this row is, in a few words. */
|
|
701
719
|
subtitle?: string;
|
|
702
|
-
/** Pinned right on the
|
|
720
|
+
/** Pinned right on the title line, like a message time. */
|
|
703
721
|
meta?: string;
|
|
704
722
|
onClick?: () => void;
|
|
705
723
|
/**
|
|
@@ -765,7 +783,7 @@ interface RecentActivityCardProps {
|
|
|
765
783
|
* count rides along as a caption beside the title, not as the content.
|
|
766
784
|
*
|
|
767
785
|
* The row anatomy is the DM conversation chip's (leading avatar, bold name
|
|
768
|
-
* line
|
|
786
|
+
* line with the time pinned right, muted second line), because a list of
|
|
769
787
|
* recognisable things reads the same way whoever owns it.
|
|
770
788
|
*
|
|
771
789
|
* Styled with SEMANTIC tokens only (card, border, foreground, muted-foreground,
|
|
@@ -821,6 +839,43 @@ interface ResumeStripProps {
|
|
|
821
839
|
}
|
|
822
840
|
declare function ResumeStrip({ items, caption, className, testId, }: ResumeStripProps): react.JSX.Element | null;
|
|
823
841
|
|
|
842
|
+
interface QuickActionItem {
|
|
843
|
+
id: string;
|
|
844
|
+
icon: LucideIcon;
|
|
845
|
+
/** The job, in the user's words — "Deep research", not "Research agent". */
|
|
846
|
+
title: string;
|
|
847
|
+
/** One line on what happens. Sentence case, no full stop needed. */
|
|
848
|
+
description: string;
|
|
849
|
+
onClick: () => void;
|
|
850
|
+
/** Rendered non-interactive and dimmed; `disabledReason` explains why. */
|
|
851
|
+
disabled?: boolean;
|
|
852
|
+
/** Shown as the card's tooltip when disabled — say how to unblock it. */
|
|
853
|
+
disabledReason?: string;
|
|
854
|
+
testId?: string;
|
|
855
|
+
}
|
|
856
|
+
interface QuickActionCardsProps {
|
|
857
|
+
items: QuickActionItem[];
|
|
858
|
+
/** Optional lead-in above the row. */
|
|
859
|
+
caption?: string;
|
|
860
|
+
className?: string;
|
|
861
|
+
testId?: string;
|
|
862
|
+
}
|
|
863
|
+
declare function QuickActionCards({ items, caption, className, testId, }: QuickActionCardsProps): react.JSX.Element | null;
|
|
864
|
+
|
|
865
|
+
interface SectionCaptionProps {
|
|
866
|
+
children: ReactNode;
|
|
867
|
+
className?: string;
|
|
868
|
+
testId?: string;
|
|
869
|
+
}
|
|
870
|
+
/**
|
|
871
|
+
* The small uppercase eyebrow that names a band of a page — "Start something",
|
|
872
|
+
* "Continue a chat". One component so every band on a home surface wears the
|
|
873
|
+
* same caption, and a single screenful never mixes two caption languages.
|
|
874
|
+
*
|
|
875
|
+
* Styled with SEMANTIC tokens only, so every firm gets it in its own colours.
|
|
876
|
+
*/
|
|
877
|
+
declare function SectionCaption({ children, className, testId }: SectionCaptionProps): react.JSX.Element;
|
|
878
|
+
|
|
824
879
|
interface SectionStripRow {
|
|
825
880
|
id: string;
|
|
826
881
|
/** The row's mark — a pin, a dot, a tiny glyph. Consumer-supplied. */
|
|
@@ -1645,4 +1700,4 @@ interface AgentsPanelProps {
|
|
|
1645
1700
|
}
|
|
1646
1701
|
declare function AgentsPanel({ store, testIdPrefix }: AgentsPanelProps): react.JSX.Element;
|
|
1647
1702
|
|
|
1648
|
-
export { ASSET_REF_PREFIX, type AgentSelectionStore, AgentsPanel, type AgentsPanelProps, type AiFields, type AiFieldsConfig, AppHeader, type AppHeaderProps, type AppHeaderUser, type AppNavItem, type AppNavSection, AppShell, type AppShellProps, type ArbiBlocksConfigOptions, type ArbiMode, type ArbiUser, AskBar, type AskBarProps, type AssetMaterializer, type AssetRenderProps, type AssetRenderer, AssetResolverProvider, AssetThumb, type AssistantCitation, type AssistantMessage, type AssistantStep, type BlockKit, type BuildPrompt, type BuilderModule, CitationEditor, type CitationEditorProps, type Column, ConnectionProvider, type ConnectionStatus, DataTable, DataTableBlock, type DataTableBlockColumn, type DataTableBlockProps, EmptyState, EntityIdentityBar, type EntityIdentityBarProps, type EntityIdentityField, type ExportedModule, type FirmArbiConfig, GridView, type GridViewEmptyState, type GridViewProps, type GridViewSelection, IDENTITY_NAME_MAX_LENGTH, type ImageFieldConfig, type ImageFieldFactory, LegalArbiProvider, LiveDataProvider, type LoadResult, type MaterializeOptions, type MatterContext, MemberAvatarStack, type MemberAvatarStackProps, MetricCard, type MetricCardProps, ModuleManager, type ModuleManagerProps, type ModuleRegistry, type ModuleStoreBundle, PageHeader, PageRenderer, type PageRendererProps, type PersistVia, type PromptConfig, type PromptLibrary, type Prompts, RecentActivityCard, type RecentActivityCardProps, type RecentActivityRow, type ResolvedModule, ResumeStrip, type ResumeStripItem, type ResumeStripProps, Section, type SectionProps, SectionStrip, type SectionStripAction, type SectionStripGroup, type SectionStripProps, type SectionStripRow, type StackedMember, StartHero, type StartHeroProps, StatGroup, type StatGroupProps, type StatItem, StudioEditor, type StudioEditorProps, type StudioPageMeta, type StudioPersistence, type StudioPersistenceConfig, ThemeBundle, ThemeState, ThemeTokens, Toolbar, UploadDropzone, type UploadDropzoneProps, UsageMeter, type UseImageGen, VerticalBuilder, type VerticalBuilderProps, type VerticalConfig, type VerticalExport, type VerticalExportConfig, WidgetPlaceholder, WorkspaceCard, type WorkspaceCardMember, type WorkspaceCardProps, asAssetRef, assetRefId, createAgentSelectionStore, createAiFields, createArbiBlocksConfig, createArbiMaterializer, createBlockKit, createImageField, createLiveWidgets, createModuleRegistry, createModuleStore, createPromptLibrary, createSiteBlocks, createStudioPersistence, createVerticalExport, createWebsiteBlocks, iconMap, isAssetRef, isAuthenticated, materializePageData, matterToContext, useAssetImage, useAssetRenderer, useAssetResolverActive, useConnection, useFirmAiTask, useImageGen, useLiveDataActive, useSemanticSearch, useWorkspaceDocs };
|
|
1703
|
+
export { ASSET_REF_PREFIX, type AgentSelectionStore, AgentsPanel, type AgentsPanelProps, type AiFields, type AiFieldsConfig, AppHeader, type AppHeaderProps, type AppHeaderUser, type AppNavItem, type AppNavSection, AppShell, type AppShellProps, type ArbiBlocksConfigOptions, type ArbiMode, type ArbiUser, AskBar, type AskBarProps, type AssetMaterializer, type AssetRenderProps, type AssetRenderer, AssetResolverProvider, AssetThumb, type AssistantCitation, type AssistantMessage, type AssistantStep, type BlockKit, type BuildPrompt, type BuilderModule, CitationEditor, type CitationEditorProps, type Column, ConnectionProvider, type ConnectionStatus, DataTable, DataTableBlock, type DataTableBlockColumn, type DataTableBlockProps, EmptyState, EntityIdentityBar, type EntityIdentityBarProps, type EntityIdentityField, type ExportedModule, type FirmArbiConfig, GridView, type GridViewEmptyState, type GridViewProps, type GridViewSelection, IDENTITY_NAME_MAX_LENGTH, type ImageFieldConfig, type ImageFieldFactory, LegalArbiProvider, LiveDataProvider, type LoadResult, type MaterializeOptions, type MatterContext, MemberAvatarStack, type MemberAvatarStackProps, MetricCard, type MetricCardProps, ModuleManager, type ModuleManagerProps, type ModuleRegistry, type ModuleStoreBundle, PageHeader, PageRenderer, type PageRendererProps, type PersistVia, type PromptConfig, type PromptLibrary, type Prompts, QuickActionCards, type QuickActionCardsProps, type QuickActionItem, RecentActivityCard, type RecentActivityCardProps, type RecentActivityRow, type ResolvedModule, ResumeStrip, type ResumeStripItem, type ResumeStripProps, Section, SectionCaption, type SectionCaptionProps, type SectionProps, SectionStrip, type SectionStripAction, type SectionStripGroup, type SectionStripProps, type SectionStripRow, type StackedMember, StartHero, type StartHeroProps, StatGroup, type StatGroupProps, type StatItem, StudioEditor, type StudioEditorProps, type StudioPageMeta, type StudioPersistence, type StudioPersistenceConfig, TIMELINE_ZOOM, ThemeBundle, ThemeState, ThemeTokens, TimelineZoomControl, type TimelineZoomControlProps, Toolbar, UploadDropzone, type UploadDropzoneProps, UsageMeter, type UseImageGen, VerticalBuilder, type VerticalBuilderProps, type VerticalConfig, type VerticalExport, type VerticalExportConfig, WidgetPlaceholder, WorkspaceCard, type WorkspaceCardMember, type WorkspaceCardProps, asAssetRef, assetRefId, createAgentSelectionStore, createAiFields, createArbiBlocksConfig, createArbiMaterializer, createBlockKit, createImageField, createLiveWidgets, createModuleRegistry, createModuleStore, createPromptLibrary, createSiteBlocks, createStudioPersistence, createVerticalExport, createWebsiteBlocks, iconMap, isAssetRef, isAuthenticated, materializePageData, matterToContext, useAssetImage, useAssetRenderer, useAssetResolverActive, useConnection, useFirmAiTask, useImageGen, useLiveDataActive, useSemanticSearch, useWorkspaceDocs };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { formatPageRefs, tid, initials, fromNow, fmtDate, assetRefId, applyStoredTheme, AssetResolverProvider, ThemeEditor, applyThemeVars, SectionHeading, PricingTable, Tabs as Tabs$1, Accordion, Gallery, VideoEmbed, ContactForm, Banner, MediaText, TeamGrid, Steps, TestimonialGrid, Columns, Spacer, Container, Hero, FeatureGrid, Testimonial, CTABanner, LogoCloud, FAQ, Timeline, RichTextBlock, Callout, BlockImage, AvatarBlock, Navbar, Footer, ListBlock, isAssetRef, asAssetRef } from './chunk-
|
|
2
|
-
export { ASSET_REF_PREFIX, Accordion, AssetResolverProvider, AvatarBlock, Banner, BlockImage, BlockLink, CTABanner, Callout, Columns, ContactForm, Container, FAQ, FONT_PAIRINGS, FeatureGrid, Footer, Gallery, Hero, ListBlock, LogoCloud, MediaText, Navbar, PricingTable, RichTextBlock, SectionHeading, Spacer, Steps, THEME_STYLE_ID, Tabs, TeamGrid, Testimonial, TestimonialGrid, ThemeEditor, Timeline, TimelineCalendar, TimelineGantt, VideoEmbed, applyFontVars, applyStoredTheme, applyThemeVars, asAssetRef, assetRefId, clearFontVars, clearThemeVars, createThemeStore, dayKey, daysUntil, fmtDate, fmtDateTime, fontPackages, formatPageRefs, formatSpan, fromNow, gbp, getFontPairing, hrs, initials, isAssetRef, matchFontPairing, monthLabel, parseIso, pct, tid, toEmbedUrl, toHslTriplet, useAssetRenderer, useAssetResolverActive, utcDay } from './chunk-
|
|
1
|
+
import { formatPageRefs, tid, initials, fromNow, fmtDate, assetRefId, applyStoredTheme, AssetResolverProvider, ThemeEditor, applyThemeVars, SectionHeading, PricingTable, Tabs as Tabs$1, Accordion, Gallery, VideoEmbed, ContactForm, Banner, MediaText, TeamGrid, Steps, TestimonialGrid, Columns, Spacer, Container, Hero, FeatureGrid, Testimonial, CTABanner, LogoCloud, FAQ, Timeline, RichTextBlock, Callout, BlockImage, AvatarBlock, Navbar, Footer, ListBlock, isAssetRef, asAssetRef } from './chunk-FZ2S6VAZ.js';
|
|
2
|
+
export { ASSET_REF_PREFIX, Accordion, AssetResolverProvider, AvatarBlock, Banner, BlockImage, BlockLink, CTABanner, Callout, Columns, ContactForm, Container, FAQ, FONT_PAIRINGS, FeatureGrid, Footer, Gallery, Hero, ListBlock, LogoCloud, MediaText, Navbar, PricingTable, RichTextBlock, SectionHeading, Spacer, Steps, THEME_STYLE_ID, TIMELINE_ZOOM, Tabs, TeamGrid, Testimonial, TestimonialGrid, ThemeEditor, Timeline, TimelineCalendar, TimelineGantt, TimelineZoomControl, VideoEmbed, applyFontVars, applyStoredTheme, applyThemeVars, asAssetRef, assetRefId, clearFontVars, clearThemeVars, createThemeStore, dayKey, daysUntil, fmtDate, fmtDateTime, fontPackages, formatPageRefs, formatSpan, fromNow, gbp, getFontPairing, hrs, initials, isAssetRef, matchFontPairing, monthLabel, parseIso, pct, tid, toEmbedUrl, toHslTriplet, useAssetRenderer, useAssetResolverActive, utcDay } from './chunk-FZ2S6VAZ.js';
|
|
3
3
|
import { createContext, useState, useRef, useEffect, useMemo, useCallback, useContext } from 'react';
|
|
4
4
|
import { MessageSquare, Cpu, Code, Cloud, Layers, Target, Award, MapPin, Phone, Mail, Lock, Globe, Heart, Star, Rocket, Shield, Zap, Sparkles, Gavel, Scale, Bell, Activity, BarChart3, DollarSign, TrendingUp, Info, AlertCircle, CheckCircle, Clock, Calendar, Briefcase, Users, Folder, FileText, X, Loader2, UploadCloud, Search, Pencil, ChevronDown, ArrowUpRight, ArrowDownRight, Plus, FolderLock, CheckCircle2, ArrowLeftRight, MessagesSquare, Menu, ArrowLeft, Palette, RotateCcw, ChevronUp, BrainCircuit, Bot, LayoutGrid, FileJson, Download, Crop, ImagePlus, Upload, Link2, Check } from 'lucide-react';
|
|
5
5
|
import { Textarea, cn, DocumentEntity, useArbi, ArbiProvider, useAiTask, useWorkspaceDocs as useWorkspaceDocs$1, useSemanticSearch as useSemanticSearch$1, Table, TableHeader, TableRow, TableHead, TableBody, TableCell, Input, Avatar, AvatarImage, AvatarFallback, Card, Button, CardHeader, CardTitle, CardDescription, CardContent, Tooltip, TooltipTrigger, TooltipContent, CardFooter, TooltipProvider, NotificationBell, UserMenu, useThumbnails, Badge, Switch, useConfigs, useAgents, Checkbox, Tabs, TabsList, TabsTrigger, TabsContent, Separator, ArbiWebSocketProvider, useDocuments, ImageCropModal, DEFAULT_ASPECT_OPTIONS, useConversations } from '@arbidocs/react';
|
|
@@ -219,27 +219,25 @@ function CitationEditor({
|
|
|
219
219
|
setLocalValue(value);
|
|
220
220
|
}
|
|
221
221
|
}, [value, isEditing]);
|
|
222
|
-
const
|
|
223
|
-
const hasCitations =
|
|
222
|
+
const sources = useMemo(() => citations ?? [], [citations]);
|
|
223
|
+
const hasCitations = sources.length > 0;
|
|
224
224
|
const byDoc = useMemo(() => {
|
|
225
225
|
const groups = /* @__PURE__ */ new Map();
|
|
226
|
-
for (const
|
|
227
|
-
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
group.pages.push(passage.page);
|
|
232
|
-
groups.set(passage.doc_ext_id, group);
|
|
226
|
+
for (const doc of sources) {
|
|
227
|
+
const chunks = doc.chunks ?? [];
|
|
228
|
+
const pages = [];
|
|
229
|
+
for (const c of chunks) if (c.page != null && !pages.includes(c.page)) pages.push(c.page);
|
|
230
|
+
groups.set(doc.doc_ext_id, { pages, count: chunks.length });
|
|
233
231
|
}
|
|
234
232
|
return groups;
|
|
235
|
-
}, [
|
|
233
|
+
}, [sources]);
|
|
236
234
|
const docIds = Array.from(byDoc.keys());
|
|
237
235
|
const handleRemoveDocument = useCallback(
|
|
238
236
|
(docExtId) => {
|
|
239
|
-
const remaining =
|
|
240
|
-
onChange(localValue, remaining.length ?
|
|
237
|
+
const remaining = sources.filter((d) => d.doc_ext_id !== docExtId);
|
|
238
|
+
onChange(localValue, remaining.length ? remaining : null);
|
|
241
239
|
},
|
|
242
|
-
[
|
|
240
|
+
[sources, localValue, onChange]
|
|
243
241
|
);
|
|
244
242
|
const handleToggleDocument = useCallback(
|
|
245
243
|
(docExtId) => {
|
|
@@ -346,10 +344,6 @@ function CitationEditor({
|
|
|
346
344
|
docId
|
|
347
345
|
);
|
|
348
346
|
}),
|
|
349
|
-
passages.some((p) => !p.doc_ext_id) && /* @__PURE__ */ jsxs("span", { className: "text-sm text-muted-foreground", children: [
|
|
350
|
-
passages.filter((p) => !p.doc_ext_id).length,
|
|
351
|
-
" passage(s) without a recorded document"
|
|
352
|
-
] }),
|
|
353
347
|
!readOnly && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsx("div", { className: "flex-1 min-w-0", "data-testid": "citation-document-picker", children: renderDocumentPicker?.(handleToggleDocument, docIds) }) })
|
|
354
348
|
] }),
|
|
355
349
|
activeCitationKey && /* @__PURE__ */ jsxs("p", { className: "text-sm text-blue-text", children: [
|
|
@@ -1269,16 +1263,24 @@ function EntityIdentityBar({
|
|
|
1269
1263
|
children: [
|
|
1270
1264
|
/* @__PURE__ */ jsxs("dl", { className: "min-w-0 flex-1 space-y-1.5", children: [
|
|
1271
1265
|
fields.map((field) => /* @__PURE__ */ jsx(IdentityFieldRow, { field, canEdit }, field.label)),
|
|
1272
|
-
extraRows.map((row) => /* @__PURE__ */ jsxs(
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1266
|
+
extraRows.map((row) => /* @__PURE__ */ jsxs(
|
|
1267
|
+
"div",
|
|
1268
|
+
{
|
|
1269
|
+
className: "flex min-h-7 min-w-0 items-center gap-2",
|
|
1270
|
+
"data-testid": row.testId,
|
|
1271
|
+
children: [
|
|
1272
|
+
/* @__PURE__ */ jsxs("dt", { className: "w-24 shrink-0 text-sm font-medium text-muted-foreground", children: [
|
|
1273
|
+
row.label,
|
|
1274
|
+
":"
|
|
1275
|
+
] }),
|
|
1276
|
+
/* @__PURE__ */ jsxs("dd", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
1277
|
+
row.content,
|
|
1278
|
+
row.trailing ? /* @__PURE__ */ jsx("div", { className: "ml-auto shrink-0", children: row.trailing }) : null
|
|
1279
|
+
] })
|
|
1280
|
+
]
|
|
1281
|
+
},
|
|
1282
|
+
row.label
|
|
1283
|
+
)),
|
|
1282
1284
|
footer ? /* @__PURE__ */ jsx("div", { className: "flex items-center pt-0.5", children: footer }) : null
|
|
1283
1285
|
] }),
|
|
1284
1286
|
actions ? /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2", children: actions }) : null
|
|
@@ -1333,7 +1335,7 @@ function IdentityFieldRow({ field, canEdit }) {
|
|
|
1333
1335
|
}
|
|
1334
1336
|
}
|
|
1335
1337
|
};
|
|
1336
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 gap-2", multiline ? "items-start" : "items-center"), children: [
|
|
1338
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-7 min-w-0 gap-2", multiline ? "items-start" : "items-center"), children: [
|
|
1337
1339
|
/* @__PURE__ */ jsxs(
|
|
1338
1340
|
"dt",
|
|
1339
1341
|
{
|
|
@@ -1603,18 +1605,18 @@ function RecentActivityCard({
|
|
|
1603
1605
|
onClick: row.onClick,
|
|
1604
1606
|
title: row.title,
|
|
1605
1607
|
className: cn(
|
|
1606
|
-
"flex min-w-0 flex-1 items-start gap-3 py-
|
|
1608
|
+
"flex min-w-0 flex-1 items-start gap-3 py-1.5 pl-4 pr-2 text-left focus-visible:outline-none",
|
|
1607
1609
|
row.onClick && "cursor-pointer"
|
|
1608
1610
|
),
|
|
1609
1611
|
"data-testid": testId && `${testId}-row`,
|
|
1610
1612
|
children: [
|
|
1611
1613
|
row.leading,
|
|
1612
1614
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1613
|
-
/* @__PURE__ */
|
|
1614
|
-
|
|
1615
|
-
/* @__PURE__ */ jsx("p", { className: "min-w-0 flex-1 truncate text-xs text-muted-foreground", children: row.subtitle }),
|
|
1615
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-1.5", children: [
|
|
1616
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-sm font-semibold text-foreground group-hover:text-primary", children: row.title }),
|
|
1616
1617
|
!row.trailing && row.meta && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: row.meta })
|
|
1617
|
-
] })
|
|
1618
|
+
] }),
|
|
1619
|
+
/* @__PURE__ */ jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: row.subtitle })
|
|
1618
1620
|
] })
|
|
1619
1621
|
]
|
|
1620
1622
|
}
|
|
@@ -1758,6 +1760,74 @@ function ResumeStrip({
|
|
|
1758
1760
|
)) })
|
|
1759
1761
|
] });
|
|
1760
1762
|
}
|
|
1763
|
+
function SectionCaption({ children, className, testId }) {
|
|
1764
|
+
return /* @__PURE__ */ jsx(
|
|
1765
|
+
"p",
|
|
1766
|
+
{
|
|
1767
|
+
className: cn(
|
|
1768
|
+
"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",
|
|
1769
|
+
className
|
|
1770
|
+
),
|
|
1771
|
+
"data-testid": testId,
|
|
1772
|
+
children
|
|
1773
|
+
}
|
|
1774
|
+
);
|
|
1775
|
+
}
|
|
1776
|
+
function QuickActionCards({
|
|
1777
|
+
items,
|
|
1778
|
+
caption,
|
|
1779
|
+
className,
|
|
1780
|
+
testId = "quick-action-cards"
|
|
1781
|
+
}) {
|
|
1782
|
+
if (items.length === 0) return null;
|
|
1783
|
+
return /* @__PURE__ */ jsxs("section", { className: cn("flex flex-col gap-2", className), "data-testid": testId, children: [
|
|
1784
|
+
caption && /* @__PURE__ */ jsx(SectionCaption, { children: caption }),
|
|
1785
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-2 [grid-template-columns:repeat(auto-fit,minmax(190px,1fr))]", children: items.map((item) => {
|
|
1786
|
+
const Icon = item.icon;
|
|
1787
|
+
return /* @__PURE__ */ jsxs(
|
|
1788
|
+
"button",
|
|
1789
|
+
{
|
|
1790
|
+
type: "button",
|
|
1791
|
+
onClick: item.onClick,
|
|
1792
|
+
disabled: item.disabled,
|
|
1793
|
+
title: item.disabled ? item.disabledReason : void 0,
|
|
1794
|
+
"aria-describedby": void 0,
|
|
1795
|
+
className: cn(
|
|
1796
|
+
"group flex h-full items-start gap-3 rounded-2xl border border-border/70 bg-card p-4 text-left",
|
|
1797
|
+
"transition-colors",
|
|
1798
|
+
// `[&:hover]` rather than `hover:` — Tailwind v4 wraps the hover
|
|
1799
|
+
// variant in @media (hover: hover), so on a touchscreen the
|
|
1800
|
+
// affordance would never appear at all.
|
|
1801
|
+
"[&:hover]:border-theme-cyan/50 [&:hover]:bg-theme-cyan/5",
|
|
1802
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-theme-cyan focus-visible:ring-offset-2",
|
|
1803
|
+
"disabled:cursor-default disabled:opacity-55",
|
|
1804
|
+
"disabled:[&:hover]:border-border/70 disabled:[&:hover]:bg-card"
|
|
1805
|
+
),
|
|
1806
|
+
"data-testid": item.testId,
|
|
1807
|
+
children: [
|
|
1808
|
+
/* @__PURE__ */ jsx(
|
|
1809
|
+
"span",
|
|
1810
|
+
{
|
|
1811
|
+
className: cn(
|
|
1812
|
+
"flex h-10 w-10 shrink-0 items-center justify-center rounded-full",
|
|
1813
|
+
"bg-theme-cyan/10 text-theme-cyan transition-colors",
|
|
1814
|
+
"[.group:hover_&]:bg-theme-cyan/20",
|
|
1815
|
+
item.disabled && "bg-muted text-muted-foreground [.group:hover_&]:bg-muted"
|
|
1816
|
+
),
|
|
1817
|
+
children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5" })
|
|
1818
|
+
}
|
|
1819
|
+
),
|
|
1820
|
+
/* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
|
|
1821
|
+
/* @__PURE__ */ jsx("span", { className: "block text-base font-medium text-foreground", children: item.title }),
|
|
1822
|
+
/* @__PURE__ */ jsx("span", { className: "mt-0.5 block text-sm leading-snug text-muted-foreground", children: item.disabled && item.disabledReason ? item.disabledReason : item.description })
|
|
1823
|
+
] })
|
|
1824
|
+
]
|
|
1825
|
+
},
|
|
1826
|
+
item.id
|
|
1827
|
+
);
|
|
1828
|
+
}) })
|
|
1829
|
+
] });
|
|
1830
|
+
}
|
|
1761
1831
|
function SectionStrip({
|
|
1762
1832
|
icon: Icon,
|
|
1763
1833
|
title,
|
|
@@ -2049,18 +2119,18 @@ function WorkspaceCard({
|
|
|
2049
2119
|
)
|
|
2050
2120
|
] }),
|
|
2051
2121
|
/* @__PURE__ */ jsxs(CardFooter, { className: "mt-auto flex w-full min-w-0 flex-col items-stretch gap-3 overflow-hidden p-0", children: [
|
|
2052
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-x-3 text-
|
|
2122
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-x-3 text-[15px]", children: [
|
|
2053
2123
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-3", children: [
|
|
2054
2124
|
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-foreground", title: "Documents", children: [
|
|
2055
|
-
/* @__PURE__ */ jsx(FileText, { className: "size-
|
|
2125
|
+
/* @__PURE__ */ jsx(FileText, { className: "size-4 text-muted-foreground" }),
|
|
2056
2126
|
/* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: docCount.toLocaleString() })
|
|
2057
2127
|
] }),
|
|
2058
2128
|
chatCount !== void 0 && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-foreground", title: "Chats", children: [
|
|
2059
|
-
/* @__PURE__ */ jsx(MessagesSquare, { className: "size-
|
|
2129
|
+
/* @__PURE__ */ jsx(MessagesSquare, { className: "size-4 text-muted-foreground" }),
|
|
2060
2130
|
/* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: chatCount.toLocaleString() })
|
|
2061
2131
|
] }),
|
|
2062
2132
|
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-foreground", title: "Members", children: [
|
|
2063
|
-
/* @__PURE__ */ jsx(Users, { className: "size-
|
|
2133
|
+
/* @__PURE__ */ jsx(Users, { className: "size-4 text-muted-foreground" }),
|
|
2064
2134
|
/* @__PURE__ */ jsx(
|
|
2065
2135
|
"span",
|
|
2066
2136
|
{
|
|
@@ -5532,6 +5602,6 @@ function VerticalBuilder({
|
|
|
5532
5602
|
] });
|
|
5533
5603
|
}
|
|
5534
5604
|
|
|
5535
|
-
export { AgentsPanel, AppHeader, AppShell, AskBar, AssetThumb, CitationEditor, ConnectionProvider, DataTable, DataTableBlock, EmptyState, EntityIdentityBar, GridView, IDENTITY_NAME_MAX_LENGTH, LegalArbiProvider, LiveDataProvider, MemberAvatarStack, MetricCard, ModuleManager, PageHeader, PageRenderer, RecentActivityCard, ResumeStrip, Section, SectionStrip, StartHero, StatGroup, StudioEditor, Toolbar, UploadDropzone, UsageMeter, VerticalBuilder, WidgetPlaceholder, WorkspaceCard, createAgentSelectionStore, createAiFields, createArbiBlocksConfig, createArbiMaterializer, createBlockKit, createImageField, createLiveWidgets, createModuleRegistry, createModuleStore, createPromptLibrary, createSiteBlocks, createStudioPersistence, createVerticalExport, createWebsiteBlocks, iconMap, isAuthenticated, materializePageData, matterToContext, useAssetImage, useConnection, useFirmAiTask, useImageGen, useLiveDataActive, useSemanticSearch, useWorkspaceDocs };
|
|
5605
|
+
export { AgentsPanel, AppHeader, AppShell, AskBar, AssetThumb, CitationEditor, ConnectionProvider, DataTable, DataTableBlock, EmptyState, EntityIdentityBar, GridView, IDENTITY_NAME_MAX_LENGTH, LegalArbiProvider, LiveDataProvider, MemberAvatarStack, MetricCard, ModuleManager, PageHeader, PageRenderer, QuickActionCards, RecentActivityCard, ResumeStrip, Section, SectionCaption, SectionStrip, StartHero, StatGroup, StudioEditor, Toolbar, UploadDropzone, UsageMeter, VerticalBuilder, WidgetPlaceholder, WorkspaceCard, createAgentSelectionStore, createAiFields, createArbiBlocksConfig, createArbiMaterializer, createBlockKit, createImageField, createLiveWidgets, createModuleRegistry, createModuleStore, createPromptLibrary, createSiteBlocks, createStudioPersistence, createVerticalExport, createWebsiteBlocks, iconMap, isAuthenticated, materializePageData, matterToContext, useAssetImage, useConnection, useFirmAiTask, useImageGen, useLiveDataActive, useSemanticSearch, useWorkspaceDocs };
|
|
5536
5606
|
//# sourceMappingURL=index.js.map
|
|
5537
5607
|
//# sourceMappingURL=index.js.map
|