@arbidocs/blocks 0.3.177 → 0.3.180
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 +268 -183
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +78 -9
- package/dist/index.d.ts +78 -9
- package/dist/index.js +120 -45
- 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/src/components/grid.css +10 -0
- 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;
|
|
@@ -575,6 +593,20 @@ interface EntityIdentityField {
|
|
|
575
593
|
* value run the full width, which is what a description wants.
|
|
576
594
|
*/
|
|
577
595
|
trailing?: ReactNode;
|
|
596
|
+
/**
|
|
597
|
+
* Content rendered immediately BEFORE the value — the entity's own mark.
|
|
598
|
+
* Sits outside the edit swap, so starting to edit the name doesn't make the
|
|
599
|
+
* icon jump or disappear.
|
|
600
|
+
*/
|
|
601
|
+
leading?: ReactNode;
|
|
602
|
+
/**
|
|
603
|
+
* Drops the caption from view for this row, leaving the value flush left.
|
|
604
|
+
* For a field whose value already says what it is — a workspace's name and
|
|
605
|
+
* description read as exactly that — the caption is a word the eye has to
|
|
606
|
+
* step over on the way in. The caption stays in the markup for screen
|
|
607
|
+
* readers, which have no such visual cue to fall back on.
|
|
608
|
+
*/
|
|
609
|
+
hideLabel?: boolean;
|
|
578
610
|
/** Row test id; the pencil and input derive `-edit` and `-input`. */
|
|
579
611
|
testId?: string;
|
|
580
612
|
}
|
|
@@ -699,7 +731,7 @@ interface RecentActivityRow {
|
|
|
699
731
|
title: string;
|
|
700
732
|
/** Second line: what this row is, in a few words. */
|
|
701
733
|
subtitle?: string;
|
|
702
|
-
/** Pinned right on the
|
|
734
|
+
/** Pinned right on the title line, like a message time. */
|
|
703
735
|
meta?: string;
|
|
704
736
|
onClick?: () => void;
|
|
705
737
|
/**
|
|
@@ -765,7 +797,7 @@ interface RecentActivityCardProps {
|
|
|
765
797
|
* count rides along as a caption beside the title, not as the content.
|
|
766
798
|
*
|
|
767
799
|
* The row anatomy is the DM conversation chip's (leading avatar, bold name
|
|
768
|
-
* line
|
|
800
|
+
* line with the time pinned right, muted second line), because a list of
|
|
769
801
|
* recognisable things reads the same way whoever owns it.
|
|
770
802
|
*
|
|
771
803
|
* Styled with SEMANTIC tokens only (card, border, foreground, muted-foreground,
|
|
@@ -821,6 +853,43 @@ interface ResumeStripProps {
|
|
|
821
853
|
}
|
|
822
854
|
declare function ResumeStrip({ items, caption, className, testId, }: ResumeStripProps): react.JSX.Element | null;
|
|
823
855
|
|
|
856
|
+
interface QuickActionItem {
|
|
857
|
+
id: string;
|
|
858
|
+
icon: LucideIcon;
|
|
859
|
+
/** The job, in the user's words — "Deep research", not "Research agent". */
|
|
860
|
+
title: string;
|
|
861
|
+
/** One line on what happens. Sentence case, no full stop needed. */
|
|
862
|
+
description: string;
|
|
863
|
+
onClick: () => void;
|
|
864
|
+
/** Rendered non-interactive and dimmed; `disabledReason` explains why. */
|
|
865
|
+
disabled?: boolean;
|
|
866
|
+
/** Shown as the card's tooltip when disabled — say how to unblock it. */
|
|
867
|
+
disabledReason?: string;
|
|
868
|
+
testId?: string;
|
|
869
|
+
}
|
|
870
|
+
interface QuickActionCardsProps {
|
|
871
|
+
items: QuickActionItem[];
|
|
872
|
+
/** Optional lead-in above the row. */
|
|
873
|
+
caption?: string;
|
|
874
|
+
className?: string;
|
|
875
|
+
testId?: string;
|
|
876
|
+
}
|
|
877
|
+
declare function QuickActionCards({ items, caption, className, testId, }: QuickActionCardsProps): react.JSX.Element | null;
|
|
878
|
+
|
|
879
|
+
interface SectionCaptionProps {
|
|
880
|
+
children: ReactNode;
|
|
881
|
+
className?: string;
|
|
882
|
+
testId?: string;
|
|
883
|
+
}
|
|
884
|
+
/**
|
|
885
|
+
* The small uppercase eyebrow that names a band of a page — "Start something",
|
|
886
|
+
* "Continue a chat". One component so every band on a home surface wears the
|
|
887
|
+
* same caption, and a single screenful never mixes two caption languages.
|
|
888
|
+
*
|
|
889
|
+
* Styled with SEMANTIC tokens only, so every firm gets it in its own colours.
|
|
890
|
+
*/
|
|
891
|
+
declare function SectionCaption({ children, className, testId }: SectionCaptionProps): react.JSX.Element;
|
|
892
|
+
|
|
824
893
|
interface SectionStripRow {
|
|
825
894
|
id: string;
|
|
826
895
|
/** The row's mark — a pin, a dot, a tiny glyph. Consumer-supplied. */
|
|
@@ -1645,4 +1714,4 @@ interface AgentsPanelProps {
|
|
|
1645
1714
|
}
|
|
1646
1715
|
declare function AgentsPanel({ store, testIdPrefix }: AgentsPanelProps): react.JSX.Element;
|
|
1647
1716
|
|
|
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 };
|
|
1717
|
+
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;
|
|
@@ -575,6 +593,20 @@ interface EntityIdentityField {
|
|
|
575
593
|
* value run the full width, which is what a description wants.
|
|
576
594
|
*/
|
|
577
595
|
trailing?: ReactNode;
|
|
596
|
+
/**
|
|
597
|
+
* Content rendered immediately BEFORE the value — the entity's own mark.
|
|
598
|
+
* Sits outside the edit swap, so starting to edit the name doesn't make the
|
|
599
|
+
* icon jump or disappear.
|
|
600
|
+
*/
|
|
601
|
+
leading?: ReactNode;
|
|
602
|
+
/**
|
|
603
|
+
* Drops the caption from view for this row, leaving the value flush left.
|
|
604
|
+
* For a field whose value already says what it is — a workspace's name and
|
|
605
|
+
* description read as exactly that — the caption is a word the eye has to
|
|
606
|
+
* step over on the way in. The caption stays in the markup for screen
|
|
607
|
+
* readers, which have no such visual cue to fall back on.
|
|
608
|
+
*/
|
|
609
|
+
hideLabel?: boolean;
|
|
578
610
|
/** Row test id; the pencil and input derive `-edit` and `-input`. */
|
|
579
611
|
testId?: string;
|
|
580
612
|
}
|
|
@@ -699,7 +731,7 @@ interface RecentActivityRow {
|
|
|
699
731
|
title: string;
|
|
700
732
|
/** Second line: what this row is, in a few words. */
|
|
701
733
|
subtitle?: string;
|
|
702
|
-
/** Pinned right on the
|
|
734
|
+
/** Pinned right on the title line, like a message time. */
|
|
703
735
|
meta?: string;
|
|
704
736
|
onClick?: () => void;
|
|
705
737
|
/**
|
|
@@ -765,7 +797,7 @@ interface RecentActivityCardProps {
|
|
|
765
797
|
* count rides along as a caption beside the title, not as the content.
|
|
766
798
|
*
|
|
767
799
|
* The row anatomy is the DM conversation chip's (leading avatar, bold name
|
|
768
|
-
* line
|
|
800
|
+
* line with the time pinned right, muted second line), because a list of
|
|
769
801
|
* recognisable things reads the same way whoever owns it.
|
|
770
802
|
*
|
|
771
803
|
* Styled with SEMANTIC tokens only (card, border, foreground, muted-foreground,
|
|
@@ -821,6 +853,43 @@ interface ResumeStripProps {
|
|
|
821
853
|
}
|
|
822
854
|
declare function ResumeStrip({ items, caption, className, testId, }: ResumeStripProps): react.JSX.Element | null;
|
|
823
855
|
|
|
856
|
+
interface QuickActionItem {
|
|
857
|
+
id: string;
|
|
858
|
+
icon: LucideIcon;
|
|
859
|
+
/** The job, in the user's words — "Deep research", not "Research agent". */
|
|
860
|
+
title: string;
|
|
861
|
+
/** One line on what happens. Sentence case, no full stop needed. */
|
|
862
|
+
description: string;
|
|
863
|
+
onClick: () => void;
|
|
864
|
+
/** Rendered non-interactive and dimmed; `disabledReason` explains why. */
|
|
865
|
+
disabled?: boolean;
|
|
866
|
+
/** Shown as the card's tooltip when disabled — say how to unblock it. */
|
|
867
|
+
disabledReason?: string;
|
|
868
|
+
testId?: string;
|
|
869
|
+
}
|
|
870
|
+
interface QuickActionCardsProps {
|
|
871
|
+
items: QuickActionItem[];
|
|
872
|
+
/** Optional lead-in above the row. */
|
|
873
|
+
caption?: string;
|
|
874
|
+
className?: string;
|
|
875
|
+
testId?: string;
|
|
876
|
+
}
|
|
877
|
+
declare function QuickActionCards({ items, caption, className, testId, }: QuickActionCardsProps): react.JSX.Element | null;
|
|
878
|
+
|
|
879
|
+
interface SectionCaptionProps {
|
|
880
|
+
children: ReactNode;
|
|
881
|
+
className?: string;
|
|
882
|
+
testId?: string;
|
|
883
|
+
}
|
|
884
|
+
/**
|
|
885
|
+
* The small uppercase eyebrow that names a band of a page — "Start something",
|
|
886
|
+
* "Continue a chat". One component so every band on a home surface wears the
|
|
887
|
+
* same caption, and a single screenful never mixes two caption languages.
|
|
888
|
+
*
|
|
889
|
+
* Styled with SEMANTIC tokens only, so every firm gets it in its own colours.
|
|
890
|
+
*/
|
|
891
|
+
declare function SectionCaption({ children, className, testId }: SectionCaptionProps): react.JSX.Element;
|
|
892
|
+
|
|
824
893
|
interface SectionStripRow {
|
|
825
894
|
id: string;
|
|
826
895
|
/** The row's mark — a pin, a dot, a tiny glyph. Consumer-supplied. */
|
|
@@ -1645,4 +1714,4 @@ interface AgentsPanelProps {
|
|
|
1645
1714
|
}
|
|
1646
1715
|
declare function AgentsPanel({ store, testIdPrefix }: AgentsPanelProps): react.JSX.Element;
|
|
1647
1716
|
|
|
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 };
|
|
1717
|
+
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
|
|
@@ -1295,6 +1297,8 @@ function IdentityFieldRow({ field, canEdit }) {
|
|
|
1295
1297
|
multiline = false,
|
|
1296
1298
|
maxLength,
|
|
1297
1299
|
valueClassName,
|
|
1300
|
+
leading,
|
|
1301
|
+
hideLabel,
|
|
1298
1302
|
trailing,
|
|
1299
1303
|
testId
|
|
1300
1304
|
} = field;
|
|
@@ -1333,13 +1337,12 @@ function IdentityFieldRow({ field, canEdit }) {
|
|
|
1333
1337
|
}
|
|
1334
1338
|
}
|
|
1335
1339
|
};
|
|
1336
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 gap-2", multiline ? "items-start" : "items-center"), children: [
|
|
1340
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-7 min-w-0 gap-2", multiline ? "items-start" : "items-center"), children: [
|
|
1337
1341
|
/* @__PURE__ */ jsxs(
|
|
1338
1342
|
"dt",
|
|
1339
1343
|
{
|
|
1340
1344
|
className: cn(
|
|
1341
|
-
"w-24 shrink-0 text-sm font-medium text-muted-foreground",
|
|
1342
|
-
multiline && "pt-1"
|
|
1345
|
+
hideLabel ? "sr-only" : cn("w-24 shrink-0 text-sm font-medium text-muted-foreground", multiline && "pt-1")
|
|
1343
1346
|
),
|
|
1344
1347
|
children: [
|
|
1345
1348
|
label,
|
|
@@ -1348,6 +1351,7 @@ function IdentityFieldRow({ field, canEdit }) {
|
|
|
1348
1351
|
}
|
|
1349
1352
|
),
|
|
1350
1353
|
/* @__PURE__ */ jsxs("dd", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
1354
|
+
leading,
|
|
1351
1355
|
isEditing ? /* @__PURE__ */ jsxs("div", { className: "relative min-w-0 flex-1", children: [
|
|
1352
1356
|
multiline ? /* @__PURE__ */ jsx(
|
|
1353
1357
|
Textarea,
|
|
@@ -1577,7 +1581,7 @@ function RecentActivityCard({
|
|
|
1577
1581
|
/* @__PURE__ */ jsx(
|
|
1578
1582
|
"p",
|
|
1579
1583
|
{
|
|
1580
|
-
className: "mt-1 px-4 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground",
|
|
1584
|
+
className: "mt-1 px-4 pb-1 text-right text-[11px] font-medium uppercase tracking-wide text-muted-foreground",
|
|
1581
1585
|
"data-testid": testId && `${testId}-caption`,
|
|
1582
1586
|
children: caption
|
|
1583
1587
|
}
|
|
@@ -1603,18 +1607,18 @@ function RecentActivityCard({
|
|
|
1603
1607
|
onClick: row.onClick,
|
|
1604
1608
|
title: row.title,
|
|
1605
1609
|
className: cn(
|
|
1606
|
-
"flex min-w-0 flex-1 items-start gap-3 py-
|
|
1610
|
+
"flex min-w-0 flex-1 items-start gap-3 py-1.5 pl-4 pr-2 text-left focus-visible:outline-none",
|
|
1607
1611
|
row.onClick && "cursor-pointer"
|
|
1608
1612
|
),
|
|
1609
1613
|
"data-testid": testId && `${testId}-row`,
|
|
1610
1614
|
children: [
|
|
1611
1615
|
row.leading,
|
|
1612
1616
|
/* @__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 }),
|
|
1617
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-1.5", children: [
|
|
1618
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-sm font-semibold text-foreground group-hover:text-primary", children: row.title }),
|
|
1616
1619
|
!row.trailing && row.meta && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: row.meta })
|
|
1617
|
-
] })
|
|
1620
|
+
] }),
|
|
1621
|
+
/* @__PURE__ */ jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: row.subtitle })
|
|
1618
1622
|
] })
|
|
1619
1623
|
]
|
|
1620
1624
|
}
|
|
@@ -1758,6 +1762,74 @@ function ResumeStrip({
|
|
|
1758
1762
|
)) })
|
|
1759
1763
|
] });
|
|
1760
1764
|
}
|
|
1765
|
+
function SectionCaption({ children, className, testId }) {
|
|
1766
|
+
return /* @__PURE__ */ jsx(
|
|
1767
|
+
"p",
|
|
1768
|
+
{
|
|
1769
|
+
className: cn(
|
|
1770
|
+
"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",
|
|
1771
|
+
className
|
|
1772
|
+
),
|
|
1773
|
+
"data-testid": testId,
|
|
1774
|
+
children
|
|
1775
|
+
}
|
|
1776
|
+
);
|
|
1777
|
+
}
|
|
1778
|
+
function QuickActionCards({
|
|
1779
|
+
items,
|
|
1780
|
+
caption,
|
|
1781
|
+
className,
|
|
1782
|
+
testId = "quick-action-cards"
|
|
1783
|
+
}) {
|
|
1784
|
+
if (items.length === 0) return null;
|
|
1785
|
+
return /* @__PURE__ */ jsxs("section", { className: cn("flex flex-col gap-2", className), "data-testid": testId, children: [
|
|
1786
|
+
caption && /* @__PURE__ */ jsx(SectionCaption, { children: caption }),
|
|
1787
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-2 [grid-template-columns:repeat(auto-fit,minmax(190px,1fr))]", children: items.map((item) => {
|
|
1788
|
+
const Icon = item.icon;
|
|
1789
|
+
return /* @__PURE__ */ jsxs(
|
|
1790
|
+
"button",
|
|
1791
|
+
{
|
|
1792
|
+
type: "button",
|
|
1793
|
+
onClick: item.onClick,
|
|
1794
|
+
disabled: item.disabled,
|
|
1795
|
+
title: item.disabled ? item.disabledReason : void 0,
|
|
1796
|
+
"aria-describedby": void 0,
|
|
1797
|
+
className: cn(
|
|
1798
|
+
"group flex h-full items-start gap-3 rounded-2xl border-2 border-border bg-card p-4 text-left",
|
|
1799
|
+
"transition-colors",
|
|
1800
|
+
// `[&:hover]` rather than `hover:` — Tailwind v4 wraps the hover
|
|
1801
|
+
// variant in @media (hover: hover), so on a touchscreen the
|
|
1802
|
+
// affordance would never appear at all.
|
|
1803
|
+
"[&:hover]:border-theme-cyan/50 [&:hover]:bg-theme-cyan/5",
|
|
1804
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-theme-cyan focus-visible:ring-offset-2",
|
|
1805
|
+
"disabled:cursor-default disabled:opacity-55",
|
|
1806
|
+
"disabled:[&:hover]:border-border disabled:[&:hover]:bg-card"
|
|
1807
|
+
),
|
|
1808
|
+
"data-testid": item.testId,
|
|
1809
|
+
children: [
|
|
1810
|
+
/* @__PURE__ */ jsx(
|
|
1811
|
+
"span",
|
|
1812
|
+
{
|
|
1813
|
+
className: cn(
|
|
1814
|
+
"flex h-10 w-10 shrink-0 items-center justify-center rounded-full",
|
|
1815
|
+
"bg-theme-cyan/10 text-theme-cyan transition-colors",
|
|
1816
|
+
"[.group:hover_&]:bg-theme-cyan/20",
|
|
1817
|
+
item.disabled && "bg-muted text-muted-foreground [.group:hover_&]:bg-muted"
|
|
1818
|
+
),
|
|
1819
|
+
children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5" })
|
|
1820
|
+
}
|
|
1821
|
+
),
|
|
1822
|
+
/* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
|
|
1823
|
+
/* @__PURE__ */ jsx("span", { className: "block text-base font-medium text-foreground", children: item.title }),
|
|
1824
|
+
/* @__PURE__ */ jsx("span", { className: "mt-0.5 block text-sm leading-snug text-muted-foreground", children: item.disabled && item.disabledReason ? item.disabledReason : item.description })
|
|
1825
|
+
] })
|
|
1826
|
+
]
|
|
1827
|
+
},
|
|
1828
|
+
item.id
|
|
1829
|
+
);
|
|
1830
|
+
}) })
|
|
1831
|
+
] });
|
|
1832
|
+
}
|
|
1761
1833
|
function SectionStrip({
|
|
1762
1834
|
icon: Icon,
|
|
1763
1835
|
title,
|
|
@@ -1773,7 +1845,10 @@ function SectionStrip({
|
|
|
1773
1845
|
return /* @__PURE__ */ jsxs(
|
|
1774
1846
|
"div",
|
|
1775
1847
|
{
|
|
1776
|
-
className: cn(
|
|
1848
|
+
className: cn(
|
|
1849
|
+
"@container rounded-xl border border-border/60 bg-card p-2 shadow-sm",
|
|
1850
|
+
className
|
|
1851
|
+
),
|
|
1777
1852
|
"data-testid": testId,
|
|
1778
1853
|
children: [
|
|
1779
1854
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
@@ -1842,7 +1917,7 @@ function SectionStrip({
|
|
|
1842
1917
|
]
|
|
1843
1918
|
}
|
|
1844
1919
|
) : null : /* @__PURE__ */ jsx("div", { className: "grid gap-x-4 @2xl:grid-cols-2", children: filledGroups.map((group) => /* @__PURE__ */ jsxs("div", { children: [
|
|
1845
|
-
/* @__PURE__ */ jsx("p", { className: "mt-1 px-2 pb-0.5 text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: group.caption }),
|
|
1920
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 px-2 pb-0.5 text-right text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: group.caption }),
|
|
1846
1921
|
/* @__PURE__ */ jsx("ul", { children: group.rows.map((row) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
1847
1922
|
"button",
|
|
1848
1923
|
{
|
|
@@ -2049,18 +2124,18 @@ function WorkspaceCard({
|
|
|
2049
2124
|
)
|
|
2050
2125
|
] }),
|
|
2051
2126
|
/* @__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-
|
|
2127
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-x-3 text-[15px]", children: [
|
|
2053
2128
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-3", children: [
|
|
2054
2129
|
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-foreground", title: "Documents", children: [
|
|
2055
|
-
/* @__PURE__ */ jsx(FileText, { className: "size-
|
|
2130
|
+
/* @__PURE__ */ jsx(FileText, { className: "size-4 text-muted-foreground" }),
|
|
2056
2131
|
/* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: docCount.toLocaleString() })
|
|
2057
2132
|
] }),
|
|
2058
2133
|
chatCount !== void 0 && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-foreground", title: "Chats", children: [
|
|
2059
|
-
/* @__PURE__ */ jsx(MessagesSquare, { className: "size-
|
|
2134
|
+
/* @__PURE__ */ jsx(MessagesSquare, { className: "size-4 text-muted-foreground" }),
|
|
2060
2135
|
/* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: chatCount.toLocaleString() })
|
|
2061
2136
|
] }),
|
|
2062
2137
|
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-foreground", title: "Members", children: [
|
|
2063
|
-
/* @__PURE__ */ jsx(Users, { className: "size-
|
|
2138
|
+
/* @__PURE__ */ jsx(Users, { className: "size-4 text-muted-foreground" }),
|
|
2064
2139
|
/* @__PURE__ */ jsx(
|
|
2065
2140
|
"span",
|
|
2066
2141
|
{
|
|
@@ -5532,6 +5607,6 @@ function VerticalBuilder({
|
|
|
5532
5607
|
] });
|
|
5533
5608
|
}
|
|
5534
5609
|
|
|
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 };
|
|
5610
|
+
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
5611
|
//# sourceMappingURL=index.js.map
|
|
5537
5612
|
//# sourceMappingURL=index.js.map
|