@arbidocs/blocks 0.5.102 → 0.5.104
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/{DocumentReviewCard-UUMBYSHO.cjs → DocumentReviewCard-MSHD73S3.cjs} +12 -12
- package/dist/{DocumentReviewCard-UUMBYSHO.cjs.map → DocumentReviewCard-MSHD73S3.cjs.map} +1 -1
- package/dist/{DocumentReviewCard-UEFTDEOL.js → DocumentReviewCard-WZNBPG72.js} +7 -7
- package/dist/{DocumentReviewCard-UEFTDEOL.js.map → DocumentReviewCard-WZNBPG72.js.map} +1 -1
- package/dist/{FilesViewerDialog-B6AQP2UB.cjs → FilesViewerDialog-DV2U4USR.cjs} +7 -7
- package/dist/{FilesViewerDialog-B6AQP2UB.cjs.map → FilesViewerDialog-DV2U4USR.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-R5VNYH72.js → FilesViewerDialog-XETOHORQ.js} +6 -6
- package/dist/{FilesViewerDialog-R5VNYH72.js.map → FilesViewerDialog-XETOHORQ.js.map} +1 -1
- package/dist/agents/index.cjs +176 -175
- package/dist/agents/index.js +3 -2
- package/dist/{chunk-AUQF6UJZ.js → chunk-4UOXUWX3.js} +4 -4
- package/dist/{chunk-AUQF6UJZ.js.map → chunk-4UOXUWX3.js.map} +1 -1
- package/dist/{chunk-ZGAUD357.cjs → chunk-4WMGFGYP.cjs} +4 -4
- package/dist/{chunk-ZGAUD357.cjs.map → chunk-4WMGFGYP.cjs.map} +1 -1
- package/dist/{chunk-AMIPT72L.cjs → chunk-5R67KX2O.cjs} +8 -8
- package/dist/{chunk-AMIPT72L.cjs.map → chunk-5R67KX2O.cjs.map} +1 -1
- package/dist/{chunk-PL2CVHBB.cjs → chunk-5UMZXDGL.cjs} +5 -5
- package/dist/{chunk-PL2CVHBB.cjs.map → chunk-5UMZXDGL.cjs.map} +1 -1
- package/dist/{chunk-CDOW3H4B.js → chunk-62OMGQHS.js} +3 -3
- package/dist/{chunk-CDOW3H4B.js.map → chunk-62OMGQHS.js.map} +1 -1
- package/dist/{chunk-JJ5BXK3Q.cjs → chunk-6A4GNM4T.cjs} +5 -4
- package/dist/chunk-6A4GNM4T.cjs.map +1 -0
- package/dist/{chunk-VVCSEYDP.cjs → chunk-6NSKIS35.cjs} +4 -4
- package/dist/{chunk-VVCSEYDP.cjs.map → chunk-6NSKIS35.cjs.map} +1 -1
- package/dist/{chunk-PCSJODXV.js → chunk-7ONU7EWY.js} +3 -3
- package/dist/{chunk-PCSJODXV.js.map → chunk-7ONU7EWY.js.map} +1 -1
- package/dist/{chunk-D3DOHXBQ.cjs → chunk-BSPPKX6X.cjs} +24 -24
- package/dist/{chunk-D3DOHXBQ.cjs.map → chunk-BSPPKX6X.cjs.map} +1 -1
- package/dist/{chunk-ICE2ZKN4.js → chunk-CEVVGJQX.js} +3 -3
- package/dist/{chunk-ICE2ZKN4.js.map → chunk-CEVVGJQX.js.map} +1 -1
- package/dist/{chunk-6AETD75K.js → chunk-E26MNOLG.js} +3 -3
- package/dist/{chunk-6AETD75K.js.map → chunk-E26MNOLG.js.map} +1 -1
- package/dist/{chunk-S67KFB54.js → chunk-E6ISR55S.js} +3 -3
- package/dist/{chunk-S67KFB54.js.map → chunk-E6ISR55S.js.map} +1 -1
- package/dist/{chunk-ZKTMTYFN.js → chunk-ET3W24JV.js} +5 -5
- package/dist/{chunk-ZKTMTYFN.js.map → chunk-ET3W24JV.js.map} +1 -1
- package/dist/{chunk-GCW7PS3D.js → chunk-GOJ5GHFS.js} +3 -3
- package/dist/{chunk-GCW7PS3D.js.map → chunk-GOJ5GHFS.js.map} +1 -1
- package/dist/{chunk-FKFUAU4F.js → chunk-HTGEAQOA.js} +5 -4
- package/dist/chunk-HTGEAQOA.js.map +1 -0
- package/dist/{chunk-4RQDYXLE.js → chunk-HTIEJVPI.js} +5 -5
- package/dist/{chunk-4RQDYXLE.js.map → chunk-HTIEJVPI.js.map} +1 -1
- package/dist/{chunk-4YQBT5EL.cjs → chunk-IWLNDDPN.cjs} +35 -35
- package/dist/{chunk-4YQBT5EL.cjs.map → chunk-IWLNDDPN.cjs.map} +1 -1
- package/dist/chunk-JCMKYQGZ.js +26 -0
- package/dist/chunk-JCMKYQGZ.js.map +1 -0
- package/dist/{chunk-6S2LRXJ4.js → chunk-JWUCDK2F.js} +5 -5
- package/dist/chunk-JWUCDK2F.js.map +1 -0
- package/dist/{chunk-6TYZ33WH.cjs → chunk-OKUXM2N4.cjs} +5 -5
- package/dist/chunk-OKUXM2N4.cjs.map +1 -0
- package/dist/{chunk-HC54CTGN.cjs → chunk-OSR3GCJG.cjs} +11 -11
- package/dist/chunk-OSR3GCJG.cjs.map +1 -0
- package/dist/{chunk-TOT4HHHN.js → chunk-P5RTO2WL.js} +3 -24
- package/dist/chunk-P5RTO2WL.js.map +1 -0
- package/dist/chunk-QECKDZ47.cjs +31 -0
- package/dist/chunk-QECKDZ47.cjs.map +1 -0
- package/dist/{chunk-L3CWX2BN.cjs → chunk-RBI7WVEP.cjs} +4 -4
- package/dist/{chunk-L3CWX2BN.cjs.map → chunk-RBI7WVEP.cjs.map} +1 -1
- package/dist/{chunk-PP2NXTOP.js → chunk-RUV2ERID.js} +12 -12
- package/dist/{chunk-PP2NXTOP.js.map → chunk-RUV2ERID.js.map} +1 -1
- package/dist/{chunk-W4QYNRBU.cjs → chunk-S7NJVJJX.cjs} +45 -45
- package/dist/{chunk-W4QYNRBU.cjs.map → chunk-S7NJVJJX.cjs.map} +1 -1
- package/dist/{chunk-QM6OI62U.js → chunk-TQFDPCWU.js} +5 -5
- package/dist/{chunk-QM6OI62U.js.map → chunk-TQFDPCWU.js.map} +1 -1
- package/dist/{chunk-MDMQDVCA.cjs → chunk-V2CKYM4B.cjs} +4 -4
- package/dist/{chunk-MDMQDVCA.cjs.map → chunk-V2CKYM4B.cjs.map} +1 -1
- package/dist/{chunk-CMEIU2GA.cjs → chunk-VULH3XAJ.cjs} +28 -28
- package/dist/{chunk-CMEIU2GA.cjs.map → chunk-VULH3XAJ.cjs.map} +1 -1
- package/dist/{chunk-SOS2WASA.cjs → chunk-WZAHVTTO.cjs} +2 -26
- package/dist/chunk-WZAHVTTO.cjs.map +1 -0
- package/dist/collaboration/index.cjs +69 -69
- package/dist/collaboration/index.js +1 -1
- package/dist/collaboration/mail/MailActionBar.d.ts +3 -2
- package/dist/collaboration/mail/MailAddToWorkspaceDialog.d.ts +20 -0
- package/dist/collaboration/mail/MailFiledChips.d.ts +15 -0
- package/dist/collaboration/mail/MailMessageView.d.ts +3 -3
- package/dist/connect/index.cjs +1078 -805
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +498 -225
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +5 -5
- package/dist/connect/viewer.js +4 -4
- package/dist/connection/connectors/ConnectedMailboxSyncDialog.d.ts +3 -1
- package/dist/connection/connectors/native-mailbox.d.ts +19 -0
- package/dist/connection/files/imports/EmailImportPanel.d.ts +2 -2
- package/dist/connection/files/imports/NativeMailImportRow.d.ts +11 -0
- package/dist/connection/mail/ConnectedMailConversation.d.ts +3 -4
- package/dist/connection/mail/ConnectedMailbox.d.ts +1 -4
- package/dist/connection/mail/types.d.ts +2 -4
- package/dist/connection/mail/useMailMessageChange.d.ts +11 -2
- package/dist/connection/mail/useMailboxDefaults.d.ts +6 -3
- package/dist/connection/workspace-access/ConnectedGrantWorkspaceAccessDialog.d.ts +1 -1
- package/dist/document-tools/viewer/index.cjs +1 -1
- package/dist/document-tools/viewer/index.cjs.map +1 -1
- package/dist/document-tools/viewer/index.js +1 -1
- package/dist/document-tools/viewer/index.js.map +1 -1
- package/dist/embed/index.cjs +11 -11
- package/dist/embed/index.js +5 -5
- package/dist/files/import/ImportParts.d.ts +6 -3
- package/dist/files/index.cjs +222 -222
- package/dist/files/index.js +1 -1
- package/dist/index.cjs +294 -293
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +1 -1
- package/dist/studio/index.js +1 -1
- package/dist/workflow-canvas/index.cjs +19 -18
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +9 -8
- package/dist/workflow-canvas/index.js.map +1 -1
- package/dist/workspaces/index.cjs +33 -28
- package/dist/workspaces/index.cjs.map +1 -1
- package/dist/workspaces/index.d.ts +1 -1
- package/dist/workspaces/index.js +3 -2
- package/dist/workspaces/index.js.map +1 -1
- package/dist/workspaces/workspace-roles.d.ts +11 -4
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/chunk-6S2LRXJ4.js.map +0 -1
- package/dist/chunk-6TYZ33WH.cjs.map +0 -1
- package/dist/chunk-FKFUAU4F.js.map +0 -1
- package/dist/chunk-HC54CTGN.cjs.map +0 -1
- package/dist/chunk-JJ5BXK3Q.cjs.map +0 -1
- package/dist/chunk-SOS2WASA.cjs.map +0 -1
- package/dist/chunk-TOT4HHHN.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/workspaces/WorkspaceTypeBadge.tsx","../src/workspaces/WorkspaceSettingsParts.tsx","../src/workspaces/CommonWorkspaceToggle.tsx","../src/workspaces/WorkspaceCard.tsx","../src/workspaces/WorkspaceGroup.tsx"],"names":["getHumanUserCount","getWorkspaceTypeInfo","Globe","Users","User","jsx","WorkspaceTypeBadgeView","getVariantBgClass","jsxs","Popover","PopoverTrigger","PopoverContent","Button","UserPlus","cn","LogOut","IconToggle","createContext","useMemo","ActionLink","useContext","Check","ChevronRight","FileText","MessagesSquare","MemberAvatarStack","fmtDate","formatRelativeTime","CollapsibleSection"],"mappings":"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","file":"chunk-WZAHVTTO.cjs","sourcesContent":["/**\n * WorkspaceTypeBadge: a workspace's type badge (private, shared or public: icon, colour, label).\n */\n\nimport { User, Users, Globe } from 'lucide-react'\nimport type { components } from '@arbidocs/client'\nimport { WorkspaceTypeBadgeView } from './WorkspaceBadges'\nimport { getHumanUserCount, getVariantBgClass, getWorkspaceTypeInfo } from './workspace-type'\n\ntype Workspace = Pick<components['schemas']['WorkspaceResponse'], 'is_public' | 'users'>\n\nexport interface WorkspaceTypeBadgeProps {\n workspace: Workspace\n showTooltip?: boolean\n size?: 'sm' | 'md'\n isSelected?: boolean\n className?: string\n}\n\nexport function WorkspaceTypeBadge({\n workspace,\n showTooltip = false,\n size = 'md',\n isSelected = false,\n className,\n}: WorkspaceTypeBadgeProps) {\n const userCount = getHumanUserCount(workspace.users)\n const { type, variant } = getWorkspaceTypeInfo(workspace.is_public, userCount)\n const icon = workspace.is_public ? Globe : userCount > 1 ? Users : User\n\n return (\n <WorkspaceTypeBadgeView\n icon={icon}\n bgClass={getVariantBgClass(variant)}\n typeLabel={type}\n showTooltip={showTooltip}\n size={size}\n isSelected={isSelected}\n className={className}\n />\n )\n}\n","import type { ReactNode } from 'react'\nimport { LogOut, UserPlus } from 'lucide-react'\nimport { Button, cn, Popover, PopoverContent, PopoverTrigger } from '@arbidocs/react/ui'\n\n/**\n * Page frame of a workspace's home: a bounded column whose ONE scroll region spans the full\n * width (scrollbar on the outer edge), the inset living on the content inside it. A container,\n * so children can use `@2xl:` queries.\n */\nexport function WorkspacePageFrame({ testId, children }: { testId?: string; children: ReactNode }) {\n return (\n <div\n className=\"flex h-full flex-col @container\"\n data-slot=\"workspace-page\"\n data-testid={testId}\n >\n {/* scrollbar-gutter:stable keeps the content from jumping when a scrollbar appears. */}\n <div className=\"scrollbar-subtle min-h-0 flex-1 overflow-y-auto [scrollbar-gutter:stable]\">\n <div className=\"space-y-6 px-4 pb-6 sm:px-6 pt-4\">{children}</div>\n </div>\n </div>\n )\n}\n\n/** Tinted card holding the identity bar and the expandable member list. */\nexport function WorkspaceIdentityPanel({ children }: { children: ReactNode }) {\n return (\n <div\n data-slot=\"workspace-identity-panel\"\n className=\"group rounded-lg border border-border bg-card px-4 py-3 shadow-xs\"\n >\n {children}\n </div>\n )\n}\n\nexport interface WorkspaceProjectSlotProps {\n testId: string\n /** Screen-reader caption (\"Project:\"): the chip says what it is without a word in front. */\n caption: string\n children: ReactNode\n}\n\n/** The project control / chip pinned to the end of the name row. */\nexport function WorkspaceProjectSlot({ testId, caption, children }: WorkspaceProjectSlotProps) {\n return (\n <div className=\"flex min-w-0 items-center gap-3\">\n <div className=\"flex min-w-0 flex-1 items-center gap-2\" data-testid={testId}>\n <span className=\"sr-only\">{caption}</span>\n {children}\n </div>\n </div>\n )\n}\n\n/** Stated absence (\"None\") rather than a blank gap. */\nexport function ItalicNone({ children }: { children: ReactNode }) {\n return <span className=\"text-sm italic text-muted-foreground\">{children}</span>\n}\n\nexport interface WorkspaceAudienceLineProps {\n visibility: {\n testId: string\n caption: string\n /** The owner's visibility switch (developers only). */\n toggle?: ReactNode\n /** The state named in words, so the switch is never a puzzle. */\n stateText: string\n /** What the state means for who can see the workspace; opened by tapping the state words. */\n stateHelp: string\n }\n /** Member avatar stack. */\n members: ReactNode\n /** \"Share\" button (owners). */\n share?: { label: string; onClick: () => void; testId: string }\n}\n\n/** Visibility and members end the description line together: who can see and use the workspace. */\nexport function WorkspaceAudienceLine({ visibility, members, share }: WorkspaceAudienceLineProps) {\n return (\n <span className=\"flex flex-wrap items-center gap-x-4 gap-y-2\" data-slot=\"workspace-audience\">\n <span className=\"flex items-center gap-2\" data-testid={visibility.testId}>\n <span className=\"sr-only\">{visibility.caption}</span>\n {visibility.toggle}\n {/* Tap-to-explain, not hover-only: the words must answer a click on touch screens too. */}\n <Popover>\n <PopoverTrigger className=\"touch-hit cursor-pointer rounded-sm text-sm text-muted-foreground underline decoration-dotted underline-offset-4 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\">\n {visibility.stateText}\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"w-64 text-sm\">\n {visibility.stateHelp}\n </PopoverContent>\n </Popover>\n </span>\n {/* Faces first, then Share: \"these people ... add more\". */}\n <span className=\"flex items-center gap-1\">\n {members}\n {share && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 gap-1.5 px-3 text-sm pointer-coarse:h-11\"\n onClick={share.onClick}\n data-testid={share.testId}\n >\n <UserPlus className=\"size-4\" />\n {share.label}\n </Button>\n )}\n </span>\n </span>\n )\n}\n\n/**\n * Collapsible block under the identity bar. Stays mounted and animates its height (grid-rows\n * 0fr to 1fr), so opening and closing glides instead of snapping.\n */\nexport function ExpandableSection({\n expanded,\n testId,\n children,\n}: {\n expanded: boolean\n testId?: string\n children: ReactNode\n}) {\n return (\n <div\n className={cn(\n 'grid transition-[grid-template-rows] duration-300 ease-in-out',\n expanded ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'\n )}\n data-slot=\"expandable-section\"\n data-expanded={expanded}\n data-testid={testId}\n >\n <div className=\"overflow-hidden\">\n <div className=\"mt-4 border-t border-border pt-4\">{children}</div>\n </div>\n </div>\n )\n}\n\n/** Centered loading placeholder of a page body. */\nexport function PageLoading({ children }: { children: ReactNode }) {\n return <div className=\"flex h-64 items-center justify-center\">{children}</div>\n}\n\nexport interface LeaveFooterProps {\n testId?: string\n leave: { label: string; disabled?: boolean; onClick: () => void; testId?: string }\n}\n\n/** Leaving ENDS your part in the workspace, so it sits last and alone at the foot of the page. */\nexport function LeaveFooter({ testId, leave }: LeaveFooterProps) {\n return (\n <div className=\"flex justify-end\" data-slot=\"leave-footer\" data-testid={testId}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={leave.onClick}\n disabled={leave.disabled}\n className=\"h-7 px-2 text-sm text-destructive hover:bg-destructive/10 hover:text-destructive pointer-coarse:h-11\"\n data-testid={leave.testId}\n >\n <LogOut className=\"mr-1 size-3.5\" />\n {leave.label}\n </Button>\n </div>\n )\n}\n","/**\n * CommonWorkspaceToggle Component\n *\n * Toggle for workspace common/members-only visibility.\n * Takes isCommon and onToggle as props for form integration.\n */\n\nimport { Globe } from 'lucide-react'\nimport { IconToggle } from '@arbidocs/react/ui'\n\nexport interface CommonWorkspaceToggleProps {\n isCommon: boolean\n onToggle: (isCommon: boolean) => void\n disabled?: boolean\n /** Tooltip to show when disabled */\n disabledTooltip?: string\n 'data-testid'?: string\n}\n\nconst COLORS = {\n text: 'text-muted-foreground',\n bg: 'bg-gray-600',\n}\n\nexport function CommonWorkspaceToggle({\n isCommon,\n onToggle,\n disabled = false,\n disabledTooltip,\n 'data-testid': dataTestId,\n}: CommonWorkspaceToggleProps) {\n return (\n <IconToggle\n icon={Globe}\n isActive={isCommon}\n onToggle={onToggle}\n colors={COLORS}\n disabled={disabled}\n disabledTooltip={disabledTooltip}\n tooltipActive=\"On: everyone on this deployment can see it. Turn off to limit it to members.\"\n tooltipInactive=\"Off: only members of this workspace can see it. Turn on to let everyone on this deployment see it.\"\n data-testid={dataTestId}\n />\n )\n}\n","import {\n createContext,\n useContext,\n type HTMLAttributes,\n useMemo,\n type KeyboardEvent,\n type ReactNode,\n} from 'react'\nimport { Check, ChevronRight, FileText, MessagesSquare, Users } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { formatRelativeTime } from '@arbidocs/react/ui'\nimport { fmtDate } from '../lib/format'\nimport { ActionLink } from '../components/ActionLink'\nimport { MemberAvatarStack, type StackedMember } from '../components/MemberAvatarStack'\n\n/** Everything a workspace tile shows, source-agnostic (not the raw SDK shape). */\nexport interface WorkspaceSummary {\n id: string\n name: string\n description?: string | null\n /** Host-supplied line under the name (a reference, a client, a status...). Not interpreted. */\n subtitle?: ReactNode\n docCount: number\n /** Hidden when undefined, so a host without chats shows no empty counter. */\n chatCount?: number\n /** Number of visible members (agents excluded by the caller). */\n memberCount: number\n members: StackedMember[]\n /** The viewer may not see who is here (RLS): renders an em dash, not a `0`. */\n membersHidden?: boolean\n /** ISO timestamp: rendered as \"Updated {relative}\". */\n updatedAt?: string | null\n}\n\n/** Every fixed string of the workspace tile. Pass a partial `labels` to translate or reword. */\nexport interface WorkspaceCardLabels {\n /** The tile's accessible name. */\n openWorkspace: (name: string) => string\n currentWorkspace: string\n documents: string\n chats: string\n members: string\n /** `relative` is the formatted \"3 days ago\". */\n updated: (relative: string) => string\n}\n\nexport const DEFAULT_WORKSPACE_CARD_LABELS: WorkspaceCardLabels = {\n openWorkspace: (name) => `Open workspace ${name}`,\n currentWorkspace: 'Current workspace',\n documents: 'Documents',\n chats: 'Tasks',\n members: 'Members',\n updated: (relative) => `Updated ${relative}`,\n}\n\ninterface CardContextValue {\n current: boolean\n testId?: string\n labels: WorkspaceCardLabels\n}\n\nconst CardContext = createContext<CardContextValue>({\n current: false,\n labels: DEFAULT_WORKSPACE_CARD_LABELS,\n})\n\ntype DivProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'>\n\n/* ------------------------------------------------------------------ */\n/* Parts */\n/* ------------------------------------------------------------------ */\n\nexport interface WorkspaceCardRootProps extends DivProps {\n /** This is the workspace you are in: accented surface, \"Current workspace\" cue. */\n current?: boolean\n onSelect: () => void\n /**\n * Real link target. The tile then renders as an anchor (ctrl-click / new tab, in-SPA through\n * the host environment's `linkComponent`); `onSelect` still fires on a plain click.\n */\n href?: string\n /** Accessible name; defaults to `labels.openWorkspace(name)` when composed via `WorkspaceCard`. */\n label: string\n testId?: string\n labels?: Partial<WorkspaceCardLabels>\n children: ReactNode\n}\n\n/**\n * The tile surface: one button that opens the workspace. A raised white card\n * (hairline border, soft shadow, hover lift); the current workspace takes the selection tint.\n */\nfunction WorkspaceCardRoot({\n current = false,\n onSelect,\n href,\n label,\n testId,\n labels,\n className,\n children,\n ...rest\n}: WorkspaceCardRootProps) {\n const mergedLabels = useMemo(() => ({ ...DEFAULT_WORKSPACE_CARD_LABELS, ...labels }), [labels])\n const surfaceClass = cn(\n '@container/ws-card flex min-h-40 w-full cursor-pointer flex-col gap-3 rounded-lg p-4 text-left transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n current\n ? 'bg-accent text-accent-foreground'\n : 'border border-border bg-card shadow-xs transition-colors hover:border-ring/50 hover:bg-accent/40',\n className\n )\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget) return\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n onSelect()\n }\n }\n return (\n <CardContext.Provider value={{ current, testId, labels: mergedLabels }}>\n {href ? (\n <ActionLink\n {...(rest as object)}\n href={href}\n onSelect={onSelect}\n aria-label={label}\n aria-current={current ? 'page' : undefined}\n data-slot=\"workspace-card\"\n data-testid={testId}\n data-active={current || undefined}\n className={surfaceClass}\n >\n {children}\n </ActionLink>\n ) : (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n aria-label={label}\n aria-current={current ? 'page' : undefined}\n data-slot=\"workspace-card\"\n data-testid={testId}\n data-active={current || undefined}\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n className={surfaceClass}\n >\n {children}\n </div>\n )}\n </CardContext.Provider>\n )\n}\n\n/** Mark + name + open cue, on one row. Put the entity mark first. */\nfunction WorkspaceCardHeader({ className, children, ...rest }: DivProps & { children: ReactNode }) {\n return (\n <div\n {...rest}\n className={cn('flex flex-wrap items-center gap-x-3 gap-y-2', className)}\n data-slot=\"workspace-card-header\"\n >\n {children}\n </div>\n )\n}\n\nfunction WorkspaceCardTitle({ children, className }: { children: ReactNode; className?: string }) {\n const { testId } = useContext(CardContext)\n return (\n <h3\n className={cn(\n 'line-clamp-2 min-w-24 flex-1 break-words text-base font-semibold leading-tight text-foreground',\n className\n )}\n data-slot=\"workspace-card-title\"\n data-testid={testId && `${testId}-title`}\n >\n {children}\n </h3>\n )\n}\n\n/**\n * The open cue is always on screen (never hover-only): a chevron, or the words\n * \"Current workspace\" on the one you are in.\n */\nfunction WorkspaceCardOpenCue({\n testId,\n currentLabel,\n}: {\n /** Deliberately separate from the card id: suites count cards by prefix. */\n testId?: string\n /** Overrides `labels.currentWorkspace`. */\n currentLabel?: string\n}) {\n const { current, labels } = useContext(CardContext)\n return (\n <span\n className=\"inline-flex max-w-full min-w-0 shrink-0 items-center text-sm text-muted-foreground\"\n data-slot=\"workspace-card-open-cue\"\n data-testid={testId}\n >\n {current ? (\n // Never wider than the card: the words truncate, and in a card narrower than 20rem\n // the pill shrinks to a check (the words stay as the accessible name).\n <span className=\"inline-flex max-w-full min-w-0 items-center gap-1 rounded-full bg-background px-2 py-0.5 text-xs font-medium text-foreground\">\n <Check className=\"hidden size-3 shrink-0 @max-xs/ws-card:block\" aria-hidden=\"true\" />\n <span className=\"min-w-0 truncate @max-xs/ws-card:sr-only\">\n {currentLabel ?? labels.currentWorkspace}\n </span>\n </span>\n ) : (\n <ChevronRight className=\"size-4\" aria-hidden=\"true\" />\n )}\n </span>\n )\n}\n\nfunction WorkspaceCardDescription({\n children,\n className,\n}: {\n children: ReactNode\n className?: string\n}) {\n return (\n <p\n className={cn('line-clamp-2 text-sm text-muted-foreground', className)}\n title={typeof children === 'string' ? children : undefined}\n data-slot=\"workspace-card-description\"\n >\n {children}\n </p>\n )\n}\n\n/** Host-supplied line under the title. */\nfunction WorkspaceCardSubtitle({\n className,\n children,\n ...rest\n}: DivProps & { children: ReactNode }) {\n return (\n <div\n {...rest}\n className={cn('truncate text-xs text-muted-foreground', className)}\n data-slot=\"workspace-card-subtitle\"\n >\n {children}\n </div>\n )\n}\n\n/** Footer block: stats row and meta line, pinned to the bottom of the tile. */\nfunction WorkspaceCardFooter({ className, children, ...rest }: DivProps & { children: ReactNode }) {\n return (\n <div {...rest} className={cn('mt-auto flex flex-col gap-2', className)}>\n {children}\n </div>\n )\n}\n\nexport interface WorkspaceCardStatsProps {\n docCount: number\n /** Omit to hide the chats counter. */\n chatCount?: number\n memberCount: number\n members?: StackedMember[]\n membersHidden?: boolean\n /** Faces before the rest collapse into `+N`. */\n maxAvatars?: number\n className?: string\n}\n\n/** Documents / chats / members counts, with the member faces at the trailing edge. */\nfunction WorkspaceCardStats({\n docCount,\n chatCount,\n memberCount,\n members = [],\n membersHidden = false,\n maxAvatars = 3,\n className,\n}: WorkspaceCardStatsProps) {\n const { current, testId, labels } = useContext(CardContext)\n return (\n <div\n className={cn('flex w-full items-center gap-x-4 text-sm text-muted-foreground', className)}\n data-slot=\"workspace-card-stats\"\n >\n <span className=\"inline-flex items-center gap-1.5\" title={labels.documents}>\n <FileText className=\"size-4\" aria-hidden=\"true\" />\n <span className=\"tabular-nums\">{docCount.toLocaleString()}</span>\n </span>\n {chatCount !== undefined && (\n <span className=\"inline-flex items-center gap-1.5\" title={labels.chats}>\n <MessagesSquare className=\"size-4\" aria-hidden=\"true\" />\n <span className=\"tabular-nums\">{chatCount.toLocaleString()}</span>\n </span>\n )}\n <span className=\"inline-flex items-center gap-1.5\" title={labels.members}>\n <Users className=\"size-4\" aria-hidden=\"true\" />\n <span className=\"tabular-nums\" data-testid={testId && `${testId}-member-count`}>\n {membersHidden ? '—' : memberCount}\n </span>\n </span>\n <MemberAvatarStack\n members={members}\n total={memberCount}\n max={maxAvatars}\n hidden={membersHidden}\n ringClassName={current ? 'ring-accent' : 'ring-muted'}\n label={labels.members}\n className=\"ml-auto\"\n testId={testId && `${testId}-member-avatars`}\n />\n </div>\n )\n}\n\n/** \"Updated 3 days ago\", with the exact date on the title. */\nfunction WorkspaceCardMeta({ updatedAt }: { updatedAt: string }) {\n const { labels } = useContext(CardContext)\n return (\n <span\n className=\"min-w-0 max-w-full self-start truncate text-xs text-muted-foreground\"\n title={fmtDate(updatedAt)}\n data-slot=\"workspace-card-meta\"\n >\n {labels.updated(formatRelativeTime(updatedAt))}\n </span>\n )\n}\n\n/* ------------------------------------------------------------------ */\n/* Default composition */\n/* ------------------------------------------------------------------ */\n\nexport interface WorkspaceCardProps {\n workspace: WorkspaceSummary\n current?: boolean\n onSelect: () => void\n /** Real link target; see `WorkspaceCard.Root`. */\n href?: string\n /** The entity mark shown before the name (the host's own workspace glyph). */\n mark?: ReactNode\n /** Card id; derived ids: `-title`, `-member-count`, `-member-avatars`. */\n testId?: string\n /** Id for the open cue (kept apart from `testId`, see `WorkspaceCard.OpenCue`). */\n openCueTestId?: string\n maxAvatars?: number\n /**\n * The stats row: omit for the default counts + member faces, `false` to hide it, or any node to\n * replace it.\n */\n stats?: ReactNode | false\n /** Reword the tile's fixed strings. */\n labels?: Partial<WorkspaceCardLabels>\n className?: string\n}\n\n/**\n * The workspace tile: mark + name + open cue, description, stats and meta.\n * The whole tile opens the workspace; nothing on it is hover-only.\n *\n * Need a different layout? Compose the parts: `WorkspaceCard.Root`, `.Header`,\n * `.Title`, `.OpenCue`, `.Subtitle`, `.Description`, `.Footer`, `.Stats`, `.Meta`.\n */\nfunction WorkspaceCardBase({\n workspace,\n current = false,\n onSelect,\n href,\n mark,\n testId,\n openCueTestId,\n maxAvatars,\n stats,\n labels,\n className,\n}: WorkspaceCardProps) {\n const mergedLabels = { ...DEFAULT_WORKSPACE_CARD_LABELS, ...labels }\n return (\n <WorkspaceCardRoot\n current={current}\n onSelect={onSelect}\n href={href}\n label={mergedLabels.openWorkspace(workspace.name)}\n labels={labels}\n testId={testId}\n className={className}\n >\n <WorkspaceCardHeader>\n {mark}\n <WorkspaceCardTitle>{workspace.name}</WorkspaceCardTitle>\n <WorkspaceCardOpenCue testId={openCueTestId} />\n </WorkspaceCardHeader>\n {workspace.subtitle && <WorkspaceCardSubtitle>{workspace.subtitle}</WorkspaceCardSubtitle>}\n {workspace.description && (\n <WorkspaceCardDescription>{workspace.description}</WorkspaceCardDescription>\n )}\n <WorkspaceCardFooter>\n {stats === undefined ? (\n <WorkspaceCardStats\n docCount={workspace.docCount}\n chatCount={workspace.chatCount}\n memberCount={workspace.memberCount}\n members={workspace.members}\n membersHidden={workspace.membersHidden}\n maxAvatars={maxAvatars}\n />\n ) : (\n stats\n )}\n {workspace.updatedAt && <WorkspaceCardMeta updatedAt={workspace.updatedAt} />}\n </WorkspaceCardFooter>\n </WorkspaceCardRoot>\n )\n}\n\nexport const WorkspaceCard = Object.assign(WorkspaceCardBase, {\n Root: WorkspaceCardRoot,\n Header: WorkspaceCardHeader,\n Title: WorkspaceCardTitle,\n OpenCue: WorkspaceCardOpenCue,\n Subtitle: WorkspaceCardSubtitle,\n Description: WorkspaceCardDescription,\n Footer: WorkspaceCardFooter,\n Stats: WorkspaceCardStats,\n Meta: WorkspaceCardMeta,\n})\n","import type { ReactNode } from 'react'\nimport { ChevronRight } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { CollapsibleSection } from '../home/CollapsibleSection'\n\nexport interface WorkspaceListProps {\n children: ReactNode\n className?: string\n testId?: string\n}\n\n/** The column that stacks workspace groups (padding follows the page gutter). */\nexport function WorkspaceList({ children, className, testId }: WorkspaceListProps) {\n return (\n <div\n className={cn('flex w-full flex-col gap-2 px-4 py-4 sm:px-8', className)}\n data-slot=\"workspace-list\"\n data-testid={testId}\n >\n {children}\n </div>\n )\n}\n\nexport interface WorkspaceGroupProps {\n /** Group heading: name, count, badges. Plain text on the canvas, no band. */\n title: ReactNode\n isExpanded: boolean\n onToggle: () => void\n /**\n * Makes the whole header one target (e.g. open the project panel); the\n * chevron stays a separate toggle. Adds a trailing `openLabel` affordance.\n */\n onOpen?: () => void\n /** Words beside the trailing chevron when `onOpen` is set, e.g. \"Plans & Usage\". */\n openLabel?: string\n /** Muted words on the right of a collapsed group without `onOpen`, e.g. \"Show 11 shared workspaces\". */\n collapsedHint?: string\n /** The cards, laid out in a responsive grid (1 / 2 / 3 columns). */\n children: ReactNode\n className?: string\n}\n\n/**\n * One collapsible band of workspace tiles under a slim header. The open\n * affordance is always visible, so nothing is reachable by hover alone.\n */\nexport function WorkspaceGroup({\n title,\n isExpanded,\n onToggle,\n onOpen,\n openLabel,\n collapsedHint,\n children,\n className,\n}: WorkspaceGroupProps) {\n return (\n <CollapsibleSection\n title={title}\n isExpanded={isExpanded}\n onToggle={onToggle}\n onHeaderClick={onOpen}\n rightContent={\n onOpen && openLabel ? (\n <span className=\"flex shrink-0 items-center gap-1 text-sm font-medium text-muted-foreground\">\n {openLabel}\n <ChevronRight className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n </span>\n ) : collapsedHint && !isExpanded ? (\n <span className=\"shrink-0 text-sm text-muted-foreground\">{collapsedHint}</span>\n ) : undefined\n }\n className={cn('group', className)}\n headerClassName=\"mb-3 flex-wrap gap-y-2 rounded-md px-1 py-1 pointer-coarse:min-h-11\"\n childrenClassName=\"mb-8 grid gap-3 @xl:grid-cols-2 @5xl:grid-cols-3\"\n >\n {children}\n </CollapsibleSection>\n )\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunkVZKTOGZR_cjs = require('../chunk-VZKTOGZR.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkOSR3GCJG_cjs = require('../chunk-OSR3GCJG.cjs');
|
|
6
6
|
require('../chunk-7G2LJMUG.cjs');
|
|
7
7
|
var chunkVLCY46K6_cjs = require('../chunk-VLCY46K6.cjs');
|
|
8
8
|
require('../chunk-XNXNLXIC.cjs');
|
|
@@ -36,275 +36,275 @@ Object.defineProperty(exports, "vCardFilename", {
|
|
|
36
36
|
});
|
|
37
37
|
Object.defineProperty(exports, "ActionMenu", {
|
|
38
38
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
39
|
+
get: function () { return chunkOSR3GCJG_cjs.ActionMenu; }
|
|
40
40
|
});
|
|
41
41
|
Object.defineProperty(exports, "AddContactsForm", {
|
|
42
42
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
43
|
+
get: function () { return chunkOSR3GCJG_cjs.AddContactsForm; }
|
|
44
44
|
});
|
|
45
45
|
Object.defineProperty(exports, "AddContactsResults", {
|
|
46
46
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
47
|
+
get: function () { return chunkOSR3GCJG_cjs.AddContactsResults; }
|
|
48
48
|
});
|
|
49
49
|
Object.defineProperty(exports, "DEFAULT_ADD_CONTACTS_LABELS", {
|
|
50
50
|
enumerable: true,
|
|
51
|
-
get: function () { return
|
|
51
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_ADD_CONTACTS_LABELS; }
|
|
52
52
|
});
|
|
53
53
|
Object.defineProperty(exports, "DEFAULT_CONTACT_INVITE_LABELS", {
|
|
54
54
|
enumerable: true,
|
|
55
|
-
get: function () { return
|
|
55
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_CONTACT_INVITE_LABELS; }
|
|
56
56
|
});
|
|
57
57
|
Object.defineProperty(exports, "DEFAULT_CONTACT_OUTCOME_LABELS", {
|
|
58
58
|
enumerable: true,
|
|
59
|
-
get: function () { return
|
|
59
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_CONTACT_OUTCOME_LABELS; }
|
|
60
60
|
});
|
|
61
61
|
Object.defineProperty(exports, "DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS", {
|
|
62
62
|
enumerable: true,
|
|
63
|
-
get: function () { return
|
|
63
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS; }
|
|
64
64
|
});
|
|
65
65
|
Object.defineProperty(exports, "DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS", {
|
|
66
66
|
enumerable: true,
|
|
67
|
-
get: function () { return
|
|
67
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS; }
|
|
68
68
|
});
|
|
69
69
|
Object.defineProperty(exports, "DEFAULT_DM_THREAD_FRAME_LABELS", {
|
|
70
70
|
enumerable: true,
|
|
71
|
-
get: function () { return
|
|
71
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_DM_THREAD_FRAME_LABELS; }
|
|
72
72
|
});
|
|
73
73
|
Object.defineProperty(exports, "DEFAULT_MAIL_FOLDER_TREE_LABELS", {
|
|
74
74
|
enumerable: true,
|
|
75
|
-
get: function () { return
|
|
75
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_MAIL_FOLDER_TREE_LABELS; }
|
|
76
76
|
});
|
|
77
77
|
Object.defineProperty(exports, "DEFAULT_RECIPIENT_PICKER_LABELS", {
|
|
78
78
|
enumerable: true,
|
|
79
|
-
get: function () { return
|
|
79
|
+
get: function () { return chunkOSR3GCJG_cjs.DEFAULT_RECIPIENT_PICKER_LABELS; }
|
|
80
80
|
});
|
|
81
81
|
Object.defineProperty(exports, "DmAccessRequestBanner", {
|
|
82
82
|
enumerable: true,
|
|
83
|
-
get: function () { return
|
|
83
|
+
get: function () { return chunkOSR3GCJG_cjs.DmAccessRequestBanner; }
|
|
84
84
|
});
|
|
85
85
|
Object.defineProperty(exports, "DmGrantAccessDialogView", {
|
|
86
86
|
enumerable: true,
|
|
87
|
-
get: function () { return
|
|
87
|
+
get: function () { return chunkOSR3GCJG_cjs.DmGrantAccessDialogView; }
|
|
88
88
|
});
|
|
89
89
|
Object.defineProperty(exports, "DmInviteAvatar", {
|
|
90
90
|
enumerable: true,
|
|
91
|
-
get: function () { return
|
|
91
|
+
get: function () { return chunkOSR3GCJG_cjs.DmInviteAvatar; }
|
|
92
92
|
});
|
|
93
93
|
Object.defineProperty(exports, "DmThreadFrame", {
|
|
94
94
|
enumerable: true,
|
|
95
|
-
get: function () { return
|
|
95
|
+
get: function () { return chunkOSR3GCJG_cjs.DmThreadFrame; }
|
|
96
96
|
});
|
|
97
97
|
Object.defineProperty(exports, "EMPTY_CONTACT_FORM", {
|
|
98
98
|
enumerable: true,
|
|
99
|
-
get: function () { return
|
|
99
|
+
get: function () { return chunkOSR3GCJG_cjs.EMPTY_CONTACT_FORM; }
|
|
100
100
|
});
|
|
101
101
|
Object.defineProperty(exports, "MAX_INVITE_EMAILS", {
|
|
102
102
|
enumerable: true,
|
|
103
|
-
get: function () { return
|
|
103
|
+
get: function () { return chunkOSR3GCJG_cjs.MAX_INVITE_EMAILS; }
|
|
104
104
|
});
|
|
105
105
|
Object.defineProperty(exports, "MailActionBar", {
|
|
106
106
|
enumerable: true,
|
|
107
|
-
get: function () { return
|
|
107
|
+
get: function () { return chunkOSR3GCJG_cjs.MailActionBar; }
|
|
108
108
|
});
|
|
109
109
|
Object.defineProperty(exports, "MailConversationView", {
|
|
110
110
|
enumerable: true,
|
|
111
|
-
get: function () { return
|
|
111
|
+
get: function () { return chunkOSR3GCJG_cjs.MailConversationView; }
|
|
112
112
|
});
|
|
113
113
|
Object.defineProperty(exports, "MailDeliveryBadge", {
|
|
114
114
|
enumerable: true,
|
|
115
|
-
get: function () { return
|
|
115
|
+
get: function () { return chunkOSR3GCJG_cjs.MailDeliveryBadge; }
|
|
116
116
|
});
|
|
117
117
|
Object.defineProperty(exports, "MailDeliveryList", {
|
|
118
118
|
enumerable: true,
|
|
119
|
-
get: function () { return
|
|
119
|
+
get: function () { return chunkOSR3GCJG_cjs.MailDeliveryList; }
|
|
120
120
|
});
|
|
121
121
|
Object.defineProperty(exports, "MailDocumentPicker", {
|
|
122
122
|
enumerable: true,
|
|
123
|
-
get: function () { return
|
|
123
|
+
get: function () { return chunkOSR3GCJG_cjs.MailDocumentPicker; }
|
|
124
124
|
});
|
|
125
125
|
Object.defineProperty(exports, "MailFlagButton", {
|
|
126
126
|
enumerable: true,
|
|
127
|
-
get: function () { return
|
|
127
|
+
get: function () { return chunkOSR3GCJG_cjs.MailFlagButton; }
|
|
128
128
|
});
|
|
129
129
|
Object.defineProperty(exports, "MailFolderTree", {
|
|
130
130
|
enumerable: true,
|
|
131
|
-
get: function () { return
|
|
131
|
+
get: function () { return chunkOSR3GCJG_cjs.MailFolderTree; }
|
|
132
132
|
});
|
|
133
133
|
Object.defineProperty(exports, "MailGrid", {
|
|
134
134
|
enumerable: true,
|
|
135
|
-
get: function () { return
|
|
135
|
+
get: function () { return chunkOSR3GCJG_cjs.MailGrid; }
|
|
136
136
|
});
|
|
137
137
|
Object.defineProperty(exports, "MailMessageContent", {
|
|
138
138
|
enumerable: true,
|
|
139
|
-
get: function () { return
|
|
139
|
+
get: function () { return chunkOSR3GCJG_cjs.MailMessageContent; }
|
|
140
140
|
});
|
|
141
141
|
Object.defineProperty(exports, "MailMessagePreview", {
|
|
142
142
|
enumerable: true,
|
|
143
|
-
get: function () { return
|
|
143
|
+
get: function () { return chunkOSR3GCJG_cjs.MailMessagePreview; }
|
|
144
144
|
});
|
|
145
145
|
Object.defineProperty(exports, "MailMessageView", {
|
|
146
146
|
enumerable: true,
|
|
147
|
-
get: function () { return
|
|
147
|
+
get: function () { return chunkOSR3GCJG_cjs.MailMessageView; }
|
|
148
148
|
});
|
|
149
149
|
Object.defineProperty(exports, "MemberBulkActions", {
|
|
150
150
|
enumerable: true,
|
|
151
|
-
get: function () { return
|
|
151
|
+
get: function () { return chunkOSR3GCJG_cjs.MemberBulkActions; }
|
|
152
152
|
});
|
|
153
153
|
Object.defineProperty(exports, "MemberListLoading", {
|
|
154
154
|
enumerable: true,
|
|
155
|
-
get: function () { return
|
|
155
|
+
get: function () { return chunkOSR3GCJG_cjs.MemberListLoading; }
|
|
156
156
|
});
|
|
157
157
|
Object.defineProperty(exports, "MemberMutedText", {
|
|
158
158
|
enumerable: true,
|
|
159
|
-
get: function () { return
|
|
159
|
+
get: function () { return chunkOSR3GCJG_cjs.MemberMutedText; }
|
|
160
160
|
});
|
|
161
161
|
Object.defineProperty(exports, "MemberNameCell", {
|
|
162
162
|
enumerable: true,
|
|
163
|
-
get: function () { return
|
|
163
|
+
get: function () { return chunkOSR3GCJG_cjs.MemberNameCell; }
|
|
164
164
|
});
|
|
165
165
|
Object.defineProperty(exports, "MemberRoleCell", {
|
|
166
166
|
enumerable: true,
|
|
167
|
-
get: function () { return
|
|
167
|
+
get: function () { return chunkOSR3GCJG_cjs.MemberRoleCell; }
|
|
168
168
|
});
|
|
169
169
|
Object.defineProperty(exports, "NEEDS_CONNECTION", {
|
|
170
170
|
enumerable: true,
|
|
171
|
-
get: function () { return
|
|
171
|
+
get: function () { return chunkOSR3GCJG_cjs.NEEDS_CONNECTION; }
|
|
172
172
|
});
|
|
173
173
|
Object.defineProperty(exports, "PlainMailBodyEditor", {
|
|
174
174
|
enumerable: true,
|
|
175
|
-
get: function () { return
|
|
175
|
+
get: function () { return chunkOSR3GCJG_cjs.PlainMailBodyEditor; }
|
|
176
176
|
});
|
|
177
177
|
Object.defineProperty(exports, "RecipientPicker", {
|
|
178
178
|
enumerable: true,
|
|
179
|
-
get: function () { return
|
|
179
|
+
get: function () { return chunkOSR3GCJG_cjs.RecipientPicker; }
|
|
180
180
|
});
|
|
181
181
|
Object.defineProperty(exports, "RoleSelect", {
|
|
182
182
|
enumerable: true,
|
|
183
|
-
get: function () { return
|
|
183
|
+
get: function () { return chunkOSR3GCJG_cjs.RoleSelect; }
|
|
184
184
|
});
|
|
185
185
|
Object.defineProperty(exports, "applyContactInviteResults", {
|
|
186
186
|
enumerable: true,
|
|
187
|
-
get: function () { return
|
|
187
|
+
get: function () { return chunkOSR3GCJG_cjs.applyContactInviteResults; }
|
|
188
188
|
});
|
|
189
189
|
Object.defineProperty(exports, "buildMailFolderTree", {
|
|
190
190
|
enumerable: true,
|
|
191
|
-
get: function () { return
|
|
191
|
+
get: function () { return chunkOSR3GCJG_cjs.buildMailFolderTree; }
|
|
192
192
|
});
|
|
193
193
|
Object.defineProperty(exports, "contactName", {
|
|
194
194
|
enumerable: true,
|
|
195
|
-
get: function () { return
|
|
195
|
+
get: function () { return chunkOSR3GCJG_cjs.contactName; }
|
|
196
196
|
});
|
|
197
197
|
Object.defineProperty(exports, "contactOutcomeMessage", {
|
|
198
198
|
enumerable: true,
|
|
199
|
-
get: function () { return
|
|
199
|
+
get: function () { return chunkOSR3GCJG_cjs.contactOutcomeMessage; }
|
|
200
200
|
});
|
|
201
201
|
Object.defineProperty(exports, "contactStatusLabel", {
|
|
202
202
|
enumerable: true,
|
|
203
|
-
get: function () { return
|
|
203
|
+
get: function () { return chunkOSR3GCJG_cjs.contactStatusLabel; }
|
|
204
204
|
});
|
|
205
205
|
Object.defineProperty(exports, "contactToForm", {
|
|
206
206
|
enumerable: true,
|
|
207
|
-
get: function () { return
|
|
207
|
+
get: function () { return chunkOSR3GCJG_cjs.contactToForm; }
|
|
208
208
|
});
|
|
209
209
|
Object.defineProperty(exports, "descendantFolderIds", {
|
|
210
210
|
enumerable: true,
|
|
211
|
-
get: function () { return
|
|
211
|
+
get: function () { return chunkOSR3GCJG_cjs.descendantFolderIds; }
|
|
212
212
|
});
|
|
213
213
|
Object.defineProperty(exports, "draftMailCompose", {
|
|
214
214
|
enumerable: true,
|
|
215
|
-
get: function () { return
|
|
215
|
+
get: function () { return chunkOSR3GCJG_cjs.draftMailCompose; }
|
|
216
216
|
});
|
|
217
217
|
Object.defineProperty(exports, "emailTokens", {
|
|
218
218
|
enumerable: true,
|
|
219
|
-
get: function () { return
|
|
219
|
+
get: function () { return chunkOSR3GCJG_cjs.emailTokens; }
|
|
220
220
|
});
|
|
221
221
|
Object.defineProperty(exports, "emptyMailCompose", {
|
|
222
222
|
enumerable: true,
|
|
223
|
-
get: function () { return
|
|
223
|
+
get: function () { return chunkOSR3GCJG_cjs.emptyMailCompose; }
|
|
224
224
|
});
|
|
225
225
|
Object.defineProperty(exports, "failContactInvites", {
|
|
226
226
|
enumerable: true,
|
|
227
|
-
get: function () { return
|
|
227
|
+
get: function () { return chunkOSR3GCJG_cjs.failContactInvites; }
|
|
228
228
|
});
|
|
229
229
|
Object.defineProperty(exports, "formToContactCard", {
|
|
230
230
|
enumerable: true,
|
|
231
|
-
get: function () { return
|
|
231
|
+
get: function () { return chunkOSR3GCJG_cjs.formToContactCard; }
|
|
232
232
|
});
|
|
233
233
|
Object.defineProperty(exports, "hasCalendarPart", {
|
|
234
234
|
enumerable: true,
|
|
235
|
-
get: function () { return
|
|
235
|
+
get: function () { return chunkOSR3GCJG_cjs.hasCalendarPart; }
|
|
236
236
|
});
|
|
237
237
|
Object.defineProperty(exports, "inviteEmail", {
|
|
238
238
|
enumerable: true,
|
|
239
|
-
get: function () { return
|
|
239
|
+
get: function () { return chunkOSR3GCJG_cjs.inviteEmail; }
|
|
240
240
|
});
|
|
241
241
|
Object.defineProperty(exports, "isInboxFolder", {
|
|
242
242
|
enumerable: true,
|
|
243
|
-
get: function () { return
|
|
243
|
+
get: function () { return chunkOSR3GCJG_cjs.isInboxFolder; }
|
|
244
244
|
});
|
|
245
245
|
Object.defineProperty(exports, "isInvitableEmail", {
|
|
246
246
|
enumerable: true,
|
|
247
|
-
get: function () { return
|
|
247
|
+
get: function () { return chunkOSR3GCJG_cjs.isInvitableEmail; }
|
|
248
248
|
});
|
|
249
249
|
Object.defineProperty(exports, "mailAddressLabel", {
|
|
250
250
|
enumerable: true,
|
|
251
|
-
get: function () { return
|
|
251
|
+
get: function () { return chunkOSR3GCJG_cjs.mailAddressLabel; }
|
|
252
252
|
});
|
|
253
253
|
Object.defineProperty(exports, "matchesContact", {
|
|
254
254
|
enumerable: true,
|
|
255
|
-
get: function () { return
|
|
255
|
+
get: function () { return chunkOSR3GCJG_cjs.matchesContact; }
|
|
256
256
|
});
|
|
257
257
|
Object.defineProperty(exports, "normalizeVCardDate", {
|
|
258
258
|
enumerable: true,
|
|
259
|
-
get: function () { return
|
|
259
|
+
get: function () { return chunkOSR3GCJG_cjs.normalizeVCardDate; }
|
|
260
260
|
});
|
|
261
261
|
Object.defineProperty(exports, "parseEmails", {
|
|
262
262
|
enumerable: true,
|
|
263
|
-
get: function () { return
|
|
263
|
+
get: function () { return chunkOSR3GCJG_cjs.parseEmails; }
|
|
264
264
|
});
|
|
265
265
|
Object.defineProperty(exports, "parseMailRecipients", {
|
|
266
266
|
enumerable: true,
|
|
267
|
-
get: function () { return
|
|
267
|
+
get: function () { return chunkOSR3GCJG_cjs.parseMailRecipients; }
|
|
268
268
|
});
|
|
269
269
|
Object.defineProperty(exports, "planContactInvites", {
|
|
270
270
|
enumerable: true,
|
|
271
|
-
get: function () { return
|
|
271
|
+
get: function () { return chunkOSR3GCJG_cjs.planContactInvites; }
|
|
272
272
|
});
|
|
273
273
|
Object.defineProperty(exports, "primaryEmail", {
|
|
274
274
|
enumerable: true,
|
|
275
|
-
get: function () { return
|
|
275
|
+
get: function () { return chunkOSR3GCJG_cjs.primaryEmail; }
|
|
276
276
|
});
|
|
277
277
|
Object.defineProperty(exports, "replyMailCompose", {
|
|
278
278
|
enumerable: true,
|
|
279
|
-
get: function () { return
|
|
279
|
+
get: function () { return chunkOSR3GCJG_cjs.replyMailCompose; }
|
|
280
280
|
});
|
|
281
281
|
Object.defineProperty(exports, "summarizeContactInvites", {
|
|
282
282
|
enumerable: true,
|
|
283
|
-
get: function () { return
|
|
283
|
+
get: function () { return chunkOSR3GCJG_cjs.summarizeContactInvites; }
|
|
284
284
|
});
|
|
285
285
|
Object.defineProperty(exports, "summarizeImport", {
|
|
286
286
|
enumerable: true,
|
|
287
|
-
get: function () { return
|
|
287
|
+
get: function () { return chunkOSR3GCJG_cjs.summarizeImport; }
|
|
288
288
|
});
|
|
289
289
|
Object.defineProperty(exports, "summarizeUnsentInvites", {
|
|
290
290
|
enumerable: true,
|
|
291
|
-
get: function () { return
|
|
291
|
+
get: function () { return chunkOSR3GCJG_cjs.summarizeUnsentInvites; }
|
|
292
292
|
});
|
|
293
293
|
Object.defineProperty(exports, "toAddContactsRow", {
|
|
294
294
|
enumerable: true,
|
|
295
|
-
get: function () { return
|
|
295
|
+
get: function () { return chunkOSR3GCJG_cjs.toAddContactsRow; }
|
|
296
296
|
});
|
|
297
297
|
Object.defineProperty(exports, "toAddContactsRows", {
|
|
298
298
|
enumerable: true,
|
|
299
|
-
get: function () { return
|
|
299
|
+
get: function () { return chunkOSR3GCJG_cjs.toAddContactsRows; }
|
|
300
300
|
});
|
|
301
301
|
Object.defineProperty(exports, "toggleMailFolder", {
|
|
302
302
|
enumerable: true,
|
|
303
|
-
get: function () { return
|
|
303
|
+
get: function () { return chunkOSR3GCJG_cjs.toggleMailFolder; }
|
|
304
304
|
});
|
|
305
305
|
Object.defineProperty(exports, "validateContactForm", {
|
|
306
306
|
enumerable: true,
|
|
307
|
-
get: function () { return
|
|
307
|
+
get: function () { return chunkOSR3GCJG_cjs.validateContactForm; }
|
|
308
308
|
});
|
|
309
309
|
Object.defineProperty(exports, "DEFAULT_SHARE_CONTROL_LABELS", {
|
|
310
310
|
enumerable: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
export { ContactCard, DEFAULT_CONTACT_CARD_LABELS, contactToVCard, downloadVCard, vCardFilename } from '../chunk-VQKGCV6H.js';
|
|
3
|
-
export { ActionMenu, AddContactsForm, AddContactsResults, DEFAULT_ADD_CONTACTS_LABELS, DEFAULT_CONTACT_INVITE_LABELS, DEFAULT_CONTACT_OUTCOME_LABELS, DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS, DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS, DEFAULT_DM_THREAD_FRAME_LABELS, DEFAULT_MAIL_FOLDER_TREE_LABELS, DEFAULT_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmThreadFrame, EMPTY_CONTACT_FORM, MAX_INVITE_EMAILS, MailActionBar, MailConversationView, MailDeliveryBadge, MailDeliveryList, MailDocumentPicker, MailFlagButton, MailFolderTree, MailGrid, MailMessageContent, MailMessagePreview, MailMessageView, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, NEEDS_CONNECTION, PlainMailBodyEditor, RecipientPicker, RoleSelect, applyContactInviteResults, buildMailFolderTree, contactName, contactOutcomeMessage, contactStatusLabel, contactToForm, descendantFolderIds, draftMailCompose, emailTokens, emptyMailCompose, failContactInvites, formToContactCard, hasCalendarPart, inviteEmail, isInboxFolder, isInvitableEmail, mailAddressLabel, matchesContact, normalizeVCardDate, parseEmails, parseMailRecipients, planContactInvites, primaryEmail, replyMailCompose, summarizeContactInvites, summarizeImport, summarizeUnsentInvites, toAddContactsRow, toAddContactsRows, toggleMailFolder, validateContactForm } from '../chunk-
|
|
3
|
+
export { ActionMenu, AddContactsForm, AddContactsResults, DEFAULT_ADD_CONTACTS_LABELS, DEFAULT_CONTACT_INVITE_LABELS, DEFAULT_CONTACT_OUTCOME_LABELS, DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS, DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS, DEFAULT_DM_THREAD_FRAME_LABELS, DEFAULT_MAIL_FOLDER_TREE_LABELS, DEFAULT_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmThreadFrame, EMPTY_CONTACT_FORM, MAX_INVITE_EMAILS, MailActionBar, MailConversationView, MailDeliveryBadge, MailDeliveryList, MailDocumentPicker, MailFlagButton, MailFolderTree, MailGrid, MailMessageContent, MailMessagePreview, MailMessageView, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, NEEDS_CONNECTION, PlainMailBodyEditor, RecipientPicker, RoleSelect, applyContactInviteResults, buildMailFolderTree, contactName, contactOutcomeMessage, contactStatusLabel, contactToForm, descendantFolderIds, draftMailCompose, emailTokens, emptyMailCompose, failContactInvites, formToContactCard, hasCalendarPart, inviteEmail, isInboxFolder, isInvitableEmail, mailAddressLabel, matchesContact, normalizeVCardDate, parseEmails, parseMailRecipients, planContactInvites, primaryEmail, replyMailCompose, summarizeContactInvites, summarizeImport, summarizeUnsentInvites, toAddContactsRow, toAddContactsRows, toggleMailFolder, validateContactForm } from '../chunk-RUV2ERID.js';
|
|
4
4
|
import '../chunk-NBV56SGU.js';
|
|
5
5
|
export { DEFAULT_SHARE_CONTROL_LABELS, ShareControl } from '../chunk-K4BGOPGG.js';
|
|
6
6
|
import '../chunk-IU5CHOEU.js';
|
|
@@ -20,7 +20,8 @@ export interface MailActionBarProps {
|
|
|
20
20
|
/** Where "Move to…" can move it (the current folder and views like Flagged left out). */
|
|
21
21
|
moveTargets?: MailFolder[];
|
|
22
22
|
onMove?: (folderId: string) => void;
|
|
23
|
-
|
|
23
|
+
/** Add it (or its whole conversation) to a workspace, privately: opens the host's dialog. */
|
|
24
|
+
onAddToWorkspace?: () => void;
|
|
24
25
|
onPrint?: () => void;
|
|
25
26
|
/** ARBI mail: the original `.eml`. */
|
|
26
27
|
onDownloadOriginal?: () => void;
|
|
@@ -37,4 +38,4 @@ export interface MailActionBarProps {
|
|
|
37
38
|
* An open message's or conversation's actions. The everyday ones are always in view (Reply, Reply
|
|
38
39
|
* all, Archive, and the Flag as a one-click toggle); the rarer ones wait behind "…".
|
|
39
40
|
*/
|
|
40
|
-
export declare function MailActionBar({ onBack, onEditDraft, onReply, onReplyAll, onReplyWithArbi, onForward, onArchive, onRestore, flagged, onToggleFlag, onMarkUnread, moveTargets, onMove,
|
|
41
|
+
export declare function MailActionBar({ onBack, onEditDraft, onReply, onReplyAll, onReplyWithArbi, onForward, onArchive, onRestore, flagged, onToggleFlag, onMarkUnread, moveTargets, onMove, onAddToWorkspace, onPrint, onDownloadOriginal, onDelete, deletesForever, canChange, isOnline, busy, }: MailActionBarProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** What "Add to workspace" adds: this message, or the whole conversation and its future replies. */
|
|
2
|
+
export type MailFilingScope = 'message' | 'conversation';
|
|
3
|
+
export interface MailAddToWorkspaceDialogProps {
|
|
4
|
+
open: boolean;
|
|
5
|
+
onOpenChange: (open: boolean) => void;
|
|
6
|
+
workspaces: {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}[];
|
|
10
|
+
/** Preselected (e.g. the open workspace). Default: the first. */
|
|
11
|
+
defaultWorkspaceId?: string | null;
|
|
12
|
+
pending?: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
onAdd: (choice: {
|
|
15
|
+
workspaceId: string;
|
|
16
|
+
scope: MailFilingScope;
|
|
17
|
+
}) => void;
|
|
18
|
+
}
|
|
19
|
+
/** Choose where an email goes, and whether its future replies follow. Only its filer can see it there. */
|
|
20
|
+
export declare function MailAddToWorkspaceDialog({ open, onOpenChange, workspaces, defaultWorkspaceId, pending, error, onAdd, }: MailAddToWorkspaceDialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface MailFiledChipsProps {
|
|
2
|
+
/** Workspaces (names) the shown messages are in, or wait to be (until the workspace is next opened). */
|
|
3
|
+
workspaces: {
|
|
4
|
+
name: string;
|
|
5
|
+
pending?: boolean;
|
|
6
|
+
}[];
|
|
7
|
+
/** A filed conversation: its replies are added to this workspace until stopped. */
|
|
8
|
+
rule?: {
|
|
9
|
+
workspace: string;
|
|
10
|
+
onStop: () => void;
|
|
11
|
+
stopping?: boolean;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** Where an open message (or conversation) has been added: "In ⟨workspace⟩", and stopping its replies. */
|
|
15
|
+
export declare function MailFiledChips({ workspaces, rule }: MailFiledChipsProps): import("react").JSX.Element | null;
|
|
@@ -21,8 +21,8 @@ export interface MailMessageViewProps {
|
|
|
21
21
|
onUpdate: (body: MailMessageUpdate) => void;
|
|
22
22
|
onDownloadAttachment: (attachment: MailAttachment) => void;
|
|
23
23
|
onDownloadOriginal: () => void;
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/** Add the email to a workspace (the host's dialog). Absent: not offered. */
|
|
25
|
+
onAddToWorkspace?: () => void;
|
|
26
26
|
/** How a person is named (default: the name on the message, else the address). */
|
|
27
27
|
personLabel?: (person: MailAddress) => string;
|
|
28
28
|
/** A calendar invite card, for a message that carries an .ics part. */
|
|
@@ -33,4 +33,4 @@ export interface MailMessageViewProps {
|
|
|
33
33
|
onDeleteForever?: () => void;
|
|
34
34
|
}
|
|
35
35
|
/** An opened message on its own: its actions, then the message as read. */
|
|
36
|
-
export declare function MailMessageView({ account, message, folderRole, folders, isOnline, changesWaitOffline, loading, uploadPending, onBack, onEditDraft, onReply, onReplyWithArbi, onUpdate, onDownloadAttachment, onDownloadOriginal,
|
|
36
|
+
export declare function MailMessageView({ account, message, folderRole, folders, isOnline, changesWaitOffline, loading, uploadPending, onBack, onEditDraft, onReply, onReplyWithArbi, onUpdate, onDownloadAttachment, onDownloadOriginal, onAddToWorkspace, personLabel, renderInvite, onRestore, onDeleteForever, }: MailMessageViewProps): import("react").JSX.Element;
|