@peripheries/core 0.4.1 → 0.5.0
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/README.md +1 -1
- package/index.css +1 -1
- package/index.js +3 -3
- package/package.json +1 -1
- package/types/core/Rail/Rail.d.ts +9 -0
- package/types/core/_shared/formatters.d.ts +9 -2
- package/types/core/_shared/overlay/focusables.d.ts +2 -0
- package/types/core/_shared/overlay/hooks.d.ts +4 -0
- package/types/core/_shared/overlay/placement.d.ts +28 -0
- package/types/core/_shared/overlay/scroll-lock.d.ts +1 -0
- package/types/core/_shared/safe-url.d.ts +2 -0
- package/types/core/_shared/viewer.d.ts +15 -0
- package/types/core/display/DataTable/DataTable.d.ts +5 -3
- package/types/core/display/KpiCardGrid/KpiCardGrid.d.ts +1 -0
- package/types/core/display/OptionCard/OptionCard.d.ts +1 -0
- package/types/core/display/ProfileCard/ProfileCard.d.ts +1 -0
- package/types/core/display/SectionHeader/SectionHeader.d.ts +2 -1
- package/types/core/display/Stat/Stat.d.ts +2 -1
- package/types/core/display/StatStrip/StatStrip.d.ts +2 -1
- package/types/core/display/_shared/ValueBadge.d.ts +3 -2
- package/types/core/document/ComparisonBars/ComparisonBars.d.ts +2 -1
- package/types/core/document/RowList/RowList.d.ts +5 -3
- package/types/core/events/CalendarFilters/CalendarFilters.d.ts +22 -0
- package/types/core/events/CalendarView/CalendarView.d.ts +23 -0
- package/types/core/events/EventCard/EventCard.d.ts +1 -0
- package/types/core/events/EventSchedule/EventSchedule.d.ts +2 -0
- package/types/core/events/HandoverCard/HandoverCard.d.ts +19 -0
- package/types/core/events/HourGrid/HourGrid.d.ts +24 -0
- package/types/core/events/LogCard/LogCard.d.ts +27 -0
- package/types/core/events/MiniMonth/MiniMonth.d.ts +18 -0
- package/types/core/events/NoteSplitCard/NoteSplitCard.d.ts +22 -0
- package/types/core/events/QuickNoteCard/QuickNoteCard.d.ts +21 -0
- package/types/core/events/ShareApprovalCard/ShareApprovalCard.d.ts +16 -0
- package/types/core/events/StartProcessCard/StartProcessCard.d.ts +22 -0
- package/types/core/events/SuggestedActions/SuggestedActions.d.ts +10 -0
- package/types/core/events/TaskCard/TaskCard.d.ts +17 -0
- package/types/core/events/WeekStrip/WeekStrip.d.ts +16 -0
- package/types/core/events/_shared/SeriesGlyph.d.ts +9 -0
- package/types/core/events/_shared/calendar.d.ts +36 -0
- package/types/core/events/_shared/event.d.ts +7 -1
- package/types/core/events/_shared/intent.d.ts +18 -0
- package/types/core/events/_shared/path.d.ts +1 -0
- package/types/core/forms/CodeField/CodeField.d.ts +15 -0
- package/types/core/forms/Combobox/Combobox.d.ts +17 -0
- package/types/core/forms/Combobox/useCombobox.d.ts +74 -0
- package/types/core/overlay/Dialog/Dialog.d.ts +16 -0
- package/types/core/overlay/Menu/Menu.d.ts +26 -0
- package/types/core/overlay/Popover/Popover.d.ts +19 -0
- package/types/core/overlay/Sheet/Sheet.d.ts +21 -0
- package/types/core/overlay/Toast/Toast.d.ts +20 -0
- package/types/core/overlay/Toast/toast-store.d.ts +51 -0
- package/types/core/overlay/_shared/Modal.d.ts +19 -0
- package/types/core/public/ContactForm/ContactForm.d.ts +24 -0
- package/types/core/public/CtaBand/CtaBand.d.ts +11 -0
- package/types/core/public/FeatureGrid/FeatureGrid.d.ts +15 -0
- package/types/core/public/Hero/Hero.d.ts +14 -0
- package/types/core/public/Image/Image.d.ts +12 -0
- package/types/core/public/LogoMark/LogoMark.d.ts +10 -0
- package/types/core/public/PublicFooter/PublicFooter.d.ts +15 -0
- package/types/core/public/PublicHeader/PublicHeader.d.ts +16 -0
- package/types/core/public/TeamGrid/TeamGrid.d.ts +16 -0
- package/types/core/public/Testimonial/Testimonial.d.ts +11 -0
- package/types/core/public/_shared/actions.d.ts +15 -0
- package/types/core/public/_shared/media.d.ts +9 -0
- package/types/index.core.d.ts +40 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactElement } from 'react';
|
|
2
|
+
export interface CodeFieldProps {
|
|
3
|
+
length?: number;
|
|
4
|
+
label?: string;
|
|
5
|
+
value?: string;
|
|
6
|
+
onChange?: (value: string) => void;
|
|
7
|
+
onComplete?: (code: string) => void;
|
|
8
|
+
error?: string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
autoFocus?: boolean;
|
|
11
|
+
name?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
export declare function CodeField({ length, label, value, onChange, onComplete, error, disabled, autoFocus, name, className, style }: CodeFieldProps): ReactElement;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
+
import { useCombobox, type ComboboxOption, type UseComboboxOptions } from './useCombobox';
|
|
3
|
+
export type { ComboboxOption, UseComboboxOptions };
|
|
4
|
+
export { useCombobox };
|
|
5
|
+
export interface ComboboxProps extends UseComboboxOptions {
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
emptyText?: string;
|
|
8
|
+
errorText?: string;
|
|
9
|
+
renderOption?: (option: ComboboxOption, query: string) => ReactNode;
|
|
10
|
+
className?: string;
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
}
|
|
13
|
+
export declare function Highlighted({ text, match }: {
|
|
14
|
+
text: string;
|
|
15
|
+
match: string;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
|
+
export declare function Combobox({ placeholder, emptyText, errorText, renderOption, className, style, ...options }: ComboboxProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { type ChangeEvent, type KeyboardEvent } from 'react';
|
|
2
|
+
export interface ComboboxOption {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
highlight?: string;
|
|
7
|
+
group?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
data?: unknown;
|
|
10
|
+
}
|
|
11
|
+
export type ComboboxStatus = 'idle' | 'loading' | 'ready' | 'empty' | 'error';
|
|
12
|
+
export interface UseComboboxOptions {
|
|
13
|
+
label: string;
|
|
14
|
+
options?: ReadonlyArray<ComboboxOption>;
|
|
15
|
+
loadOptions?: (query: string, signal: AbortSignal) => Promise<ReadonlyArray<ComboboxOption>>;
|
|
16
|
+
value?: string;
|
|
17
|
+
defaultValue?: string;
|
|
18
|
+
onValueChange?: (value: string) => void;
|
|
19
|
+
onSelect?: (option: ComboboxOption) => void;
|
|
20
|
+
orientation?: 'vertical' | 'horizontal';
|
|
21
|
+
debounceMs?: number;
|
|
22
|
+
minChars?: number;
|
|
23
|
+
closeOnSelect?: boolean;
|
|
24
|
+
fillOnSelect?: boolean;
|
|
25
|
+
openOnFocus?: boolean;
|
|
26
|
+
emptyText?: string;
|
|
27
|
+
errorText?: string;
|
|
28
|
+
defaultOpen?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare function useCombobox({ label, options, loadOptions, value, defaultValue, onValueChange, onSelect, orientation, debounceMs, minChars, closeOnSelect, fillOnSelect, openOnFocus, defaultOpen, emptyText, errorText }: UseComboboxOptions): {
|
|
31
|
+
options: readonly ComboboxOption[];
|
|
32
|
+
status: ComboboxStatus;
|
|
33
|
+
statusText: string;
|
|
34
|
+
open: boolean;
|
|
35
|
+
activeId: string | null;
|
|
36
|
+
close: () => void;
|
|
37
|
+
inputProps: {
|
|
38
|
+
role: "combobox";
|
|
39
|
+
'aria-label': string;
|
|
40
|
+
'aria-expanded': boolean;
|
|
41
|
+
'aria-controls': string;
|
|
42
|
+
'aria-autocomplete': "list";
|
|
43
|
+
'aria-activedescendant': string | undefined;
|
|
44
|
+
autoComplete: string;
|
|
45
|
+
value: string;
|
|
46
|
+
onChange: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
47
|
+
onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void;
|
|
48
|
+
onFocus: () => void;
|
|
49
|
+
onBlur: () => void;
|
|
50
|
+
};
|
|
51
|
+
listboxProps: {
|
|
52
|
+
id: string;
|
|
53
|
+
role: "listbox";
|
|
54
|
+
'aria-label': string;
|
|
55
|
+
'aria-orientation': "horizontal" | "vertical";
|
|
56
|
+
};
|
|
57
|
+
statusProps: {
|
|
58
|
+
role: "status";
|
|
59
|
+
'aria-live': "polite";
|
|
60
|
+
'aria-atomic': boolean;
|
|
61
|
+
};
|
|
62
|
+
getOptionProps: (option: ComboboxOption) => {
|
|
63
|
+
id: string;
|
|
64
|
+
role: "option";
|
|
65
|
+
'aria-selected': boolean;
|
|
66
|
+
'aria-disabled': true | undefined;
|
|
67
|
+
'data-active': string | undefined;
|
|
68
|
+
onPointerDown: (e: {
|
|
69
|
+
preventDefault: () => void;
|
|
70
|
+
}) => void;
|
|
71
|
+
onClick: () => void;
|
|
72
|
+
};
|
|
73
|
+
query: string;
|
|
74
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface DialogProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title: ReactNode;
|
|
6
|
+
label?: string;
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
role?: 'dialog' | 'alertdialog';
|
|
9
|
+
initialFocus?: string;
|
|
10
|
+
dismissOnBackdrop?: boolean;
|
|
11
|
+
headerTools?: ReactNode;
|
|
12
|
+
footer?: ReactNode;
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function Dialog({ role, dismissOnBackdrop, ...props }: DialogProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
import { type Placement } from '../Popover/Popover';
|
|
3
|
+
export interface MenuItem {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
tone?: 'danger';
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
href?: string;
|
|
10
|
+
onSelect?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export interface MenuSeparator {
|
|
13
|
+
type: 'separator';
|
|
14
|
+
id: string;
|
|
15
|
+
}
|
|
16
|
+
export interface MenuProps {
|
|
17
|
+
trigger: ReactElement<Record<string, unknown>>;
|
|
18
|
+
items: ReadonlyArray<MenuItem | MenuSeparator>;
|
|
19
|
+
label: string;
|
|
20
|
+
placement?: Placement;
|
|
21
|
+
presentation?: 'auto' | 'popover' | 'sheet';
|
|
22
|
+
defaultOpen?: boolean;
|
|
23
|
+
onOpenChange?: (open: boolean) => void;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function Menu({ trigger, items, label, placement, presentation, defaultOpen, onOpenChange, className }: MenuProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
import { type Placement } from '../../_shared/overlay/placement';
|
|
3
|
+
export type { Placement };
|
|
4
|
+
export interface PopoverProps {
|
|
5
|
+
trigger: ReactElement<Record<string, unknown>>;
|
|
6
|
+
label: string;
|
|
7
|
+
placement?: Placement;
|
|
8
|
+
open?: boolean;
|
|
9
|
+
defaultOpen?: boolean;
|
|
10
|
+
onOpenChange?: (open: boolean) => void;
|
|
11
|
+
popupRole?: 'dialog' | 'menu';
|
|
12
|
+
initialFocus?: string | false | ((panel: HTMLElement) => HTMLElement | null);
|
|
13
|
+
onTriggerKeyDown?: (event: React.KeyboardEvent) => void;
|
|
14
|
+
children?: ReactNode | ((api: {
|
|
15
|
+
close: () => void;
|
|
16
|
+
}) => ReactNode);
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function Popover({ trigger, label, placement, open: openProp, defaultOpen, onOpenChange, popupRole, initialFocus, onTriggerKeyDown, children, className }: PopoverProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface SheetBack {
|
|
3
|
+
label: string;
|
|
4
|
+
onBack: () => void;
|
|
5
|
+
}
|
|
6
|
+
export interface SheetProps {
|
|
7
|
+
open: boolean;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
title: ReactNode;
|
|
10
|
+
label?: string;
|
|
11
|
+
description?: ReactNode;
|
|
12
|
+
side?: 'bottom' | 'end';
|
|
13
|
+
back?: SheetBack;
|
|
14
|
+
initialFocus?: string;
|
|
15
|
+
dismissOnBackdrop?: boolean;
|
|
16
|
+
headerTools?: ReactNode;
|
|
17
|
+
footer?: ReactNode;
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function Sheet({ side, back, ...props }: SheetProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
import { dismissToast, toast, type ToastItem } from './toast-store';
|
|
3
|
+
export { dismissToast, toast, type ToastInput, type ToastTone } from './toast-store';
|
|
4
|
+
export declare function useToast(): {
|
|
5
|
+
toast: typeof toast;
|
|
6
|
+
dismiss: typeof dismissToast;
|
|
7
|
+
};
|
|
8
|
+
export interface ToastProps {
|
|
9
|
+
toast: Pick<ToastItem, 'title' | 'description' | 'tone' | 'action'>;
|
|
10
|
+
actionAvailable?: boolean;
|
|
11
|
+
onAction?: () => void;
|
|
12
|
+
onDismiss?: () => void;
|
|
13
|
+
className?: string;
|
|
14
|
+
style?: CSSProperties;
|
|
15
|
+
}
|
|
16
|
+
export declare function Toast({ toast: t, actionAvailable, onAction, onDismiss, className, ...rest }: ToastProps): import("react").JSX.Element;
|
|
17
|
+
export declare function ToastRegion({ className, actions }: {
|
|
18
|
+
className?: string;
|
|
19
|
+
actions?: Record<string, () => void>;
|
|
20
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export type ToastTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
2
|
+
export interface ToastInput {
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
tone?: ToastTone;
|
|
6
|
+
duration?: number;
|
|
7
|
+
action?: {
|
|
8
|
+
id: string;
|
|
9
|
+
label: string;
|
|
10
|
+
};
|
|
11
|
+
id?: string;
|
|
12
|
+
source?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ToastItem {
|
|
15
|
+
id: string;
|
|
16
|
+
title: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
tone: ToastTone;
|
|
19
|
+
duration: number;
|
|
20
|
+
action?: {
|
|
21
|
+
id: string;
|
|
22
|
+
label: string;
|
|
23
|
+
};
|
|
24
|
+
source: string;
|
|
25
|
+
revision: number;
|
|
26
|
+
}
|
|
27
|
+
export interface ToastSnapshot {
|
|
28
|
+
toasts: readonly ToastItem[];
|
|
29
|
+
actions: readonly string[];
|
|
30
|
+
}
|
|
31
|
+
export declare const LIMITS: {
|
|
32
|
+
readonly title: 120;
|
|
33
|
+
readonly description: 280;
|
|
34
|
+
readonly label: 40;
|
|
35
|
+
readonly visible: 4;
|
|
36
|
+
readonly perSource: 2;
|
|
37
|
+
readonly burst: 5;
|
|
38
|
+
readonly windowMs: 10000;
|
|
39
|
+
readonly defaultDuration: 6000;
|
|
40
|
+
};
|
|
41
|
+
export declare function toast(input: ToastInput): string | null;
|
|
42
|
+
export declare function dismissToast(id: string): void;
|
|
43
|
+
export declare function runToastAction(id: string): boolean;
|
|
44
|
+
export declare const subscribeToasts: (listener: () => void) => () => undefined;
|
|
45
|
+
export declare const getToasts: () => ToastSnapshot;
|
|
46
|
+
export interface RegionClaim {
|
|
47
|
+
release: () => void;
|
|
48
|
+
setActions: (handlers: Record<string, () => void>) => void;
|
|
49
|
+
}
|
|
50
|
+
export declare function claimRegion(): RegionClaim | null;
|
|
51
|
+
export declare function resetToasts(): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export type ModalVariant = 'dialog' | 'sheet-bottom' | 'sheet-end';
|
|
3
|
+
export interface ModalProps {
|
|
4
|
+
variant: ModalVariant;
|
|
5
|
+
open: boolean;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
title: ReactNode;
|
|
8
|
+
label?: string;
|
|
9
|
+
description?: ReactNode;
|
|
10
|
+
role?: 'dialog' | 'alertdialog';
|
|
11
|
+
initialFocus?: string;
|
|
12
|
+
dismissOnBackdrop?: boolean;
|
|
13
|
+
headerStart?: ReactNode;
|
|
14
|
+
headerTools?: ReactNode;
|
|
15
|
+
footer?: ReactNode;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function Modal({ variant, open, onClose, title, label, description, role, initialFocus, dismissOnBackdrop, headerStart, headerTools, footer, children, className }: ModalProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactElement } from 'react';
|
|
2
|
+
import { type Action } from '../../events/_shared/event';
|
|
3
|
+
export interface ContactRequestInput {
|
|
4
|
+
name: string;
|
|
5
|
+
email: string;
|
|
6
|
+
phone?: string;
|
|
7
|
+
message?: string;
|
|
8
|
+
consent: boolean;
|
|
9
|
+
website: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ContactFormProps {
|
|
12
|
+
title?: string;
|
|
13
|
+
intro?: string;
|
|
14
|
+
askPhone?: boolean;
|
|
15
|
+
consent?: string;
|
|
16
|
+
submitLabel?: string;
|
|
17
|
+
thanks?: string;
|
|
18
|
+
actions?: {
|
|
19
|
+
submitRequest?: Action<ContactRequestInput>;
|
|
20
|
+
};
|
|
21
|
+
className?: string;
|
|
22
|
+
style?: CSSProperties;
|
|
23
|
+
}
|
|
24
|
+
export declare function ContactForm({ title, intro, askPhone, consent, submitLabel, thanks, actions, className, style }: ContactFormProps): ReactElement;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { type PublicAction } from '../_shared/actions';
|
|
3
|
+
export interface CtaBandProps {
|
|
4
|
+
title: string;
|
|
5
|
+
text?: string;
|
|
6
|
+
actions?: PublicAction[] | PublicAction;
|
|
7
|
+
tone?: 'accent' | 'strong' | 'neutral' | string;
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: CSSProperties;
|
|
10
|
+
}
|
|
11
|
+
export declare function CtaBand({ title, text, actions, tone, className, style }: CtaBandProps): ReactElement;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
export interface FeatureItem {
|
|
3
|
+
title: string;
|
|
4
|
+
text?: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FeatureGridProps {
|
|
8
|
+
title?: string;
|
|
9
|
+
intro?: string;
|
|
10
|
+
items: FeatureItem[];
|
|
11
|
+
columns?: number;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
export declare function FeatureGrid({ title, intro, items, columns, className, style }: FeatureGridProps): ReactElement | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { type PublicAction } from '../_shared/actions';
|
|
3
|
+
import { type PublicImage } from '../_shared/media';
|
|
4
|
+
export interface HeroProps {
|
|
5
|
+
eyebrow?: string;
|
|
6
|
+
title: string;
|
|
7
|
+
intro?: string;
|
|
8
|
+
actions?: PublicAction[] | PublicAction;
|
|
9
|
+
media?: PublicImage;
|
|
10
|
+
align?: 'start' | 'center' | string;
|
|
11
|
+
className?: string;
|
|
12
|
+
style?: CSSProperties;
|
|
13
|
+
}
|
|
14
|
+
export declare function Hero({ eyebrow, title, intro, actions, media, align, className, style }: HeroProps): ReactElement;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
export interface ImageProps {
|
|
3
|
+
src: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
decorative?: boolean;
|
|
6
|
+
ratio?: string;
|
|
7
|
+
caption?: string;
|
|
8
|
+
priority?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
style?: CSSProperties;
|
|
11
|
+
}
|
|
12
|
+
export declare function Image({ src, alt, decorative, ratio, caption, priority, className, style }: ImageProps): ReactElement | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
export interface LogoMarkProps {
|
|
3
|
+
text: string;
|
|
4
|
+
src?: string;
|
|
5
|
+
href?: string;
|
|
6
|
+
size?: 'sm' | 'md' | 'lg' | string;
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: CSSProperties;
|
|
9
|
+
}
|
|
10
|
+
export declare function LogoMark({ text, src, href, size, className, style }: LogoMarkProps): ReactElement;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { type LogoMarkProps } from '../LogoMark/LogoMark';
|
|
3
|
+
import { type PublicNavLink } from '../PublicHeader/PublicHeader';
|
|
4
|
+
export interface PublicFooterGroup {
|
|
5
|
+
title: string;
|
|
6
|
+
links: PublicNavLink[];
|
|
7
|
+
}
|
|
8
|
+
export interface PublicFooterProps {
|
|
9
|
+
logo?: LogoMarkProps;
|
|
10
|
+
groups?: PublicFooterGroup[];
|
|
11
|
+
legal?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
export declare function PublicFooter({ logo, groups, legal, className, style }: PublicFooterProps): ReactElement;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { type PublicAction } from '../_shared/actions';
|
|
3
|
+
import { type LogoMarkProps } from '../LogoMark/LogoMark';
|
|
4
|
+
export interface PublicNavLink {
|
|
5
|
+
label: string;
|
|
6
|
+
href: string;
|
|
7
|
+
}
|
|
8
|
+
export interface PublicHeaderProps {
|
|
9
|
+
logo?: LogoMarkProps;
|
|
10
|
+
links?: PublicNavLink[];
|
|
11
|
+
signIn?: PublicAction | false;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
export declare const linksOf: (v: unknown) => PublicNavLink[];
|
|
16
|
+
export declare function PublicHeader({ logo, links, signIn, className, style }: PublicHeaderProps): ReactElement;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { type PublicImage } from '../_shared/media';
|
|
3
|
+
export interface TeamMember {
|
|
4
|
+
name: string;
|
|
5
|
+
role?: string;
|
|
6
|
+
bio?: string;
|
|
7
|
+
photo?: PublicImage;
|
|
8
|
+
}
|
|
9
|
+
export interface TeamGridProps {
|
|
10
|
+
title?: string;
|
|
11
|
+
intro?: string;
|
|
12
|
+
members: TeamMember[];
|
|
13
|
+
className?: string;
|
|
14
|
+
style?: CSSProperties;
|
|
15
|
+
}
|
|
16
|
+
export declare function TeamGrid({ title, intro, members, className, style }: TeamGridProps): ReactElement | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { type PublicImage } from '../_shared/media';
|
|
3
|
+
export interface TestimonialProps {
|
|
4
|
+
quote: string;
|
|
5
|
+
name: string;
|
|
6
|
+
role?: string;
|
|
7
|
+
photo?: PublicImage;
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: CSSProperties;
|
|
10
|
+
}
|
|
11
|
+
export declare function Testimonial({ quote, name, role, photo, className, style }: TestimonialProps): ReactElement | null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
export interface PublicAction {
|
|
3
|
+
label: string;
|
|
4
|
+
href: string;
|
|
5
|
+
variant?: 'primary' | 'secondary' | string;
|
|
6
|
+
}
|
|
7
|
+
export declare function actionsOf(value: unknown): PublicAction[];
|
|
8
|
+
export declare function ActionLink({ action, className }: {
|
|
9
|
+
action: PublicAction;
|
|
10
|
+
className?: string;
|
|
11
|
+
}): ReactElement | null;
|
|
12
|
+
export declare function ActionRow({ actions, className }: {
|
|
13
|
+
actions: PublicAction[];
|
|
14
|
+
className?: string;
|
|
15
|
+
}): ReactElement | null;
|
package/types/index.core.d.ts
CHANGED
|
@@ -5,7 +5,13 @@ export { Container } from './core/Container/Container';
|
|
|
5
5
|
export { Divider } from './core/Divider/Divider';
|
|
6
6
|
export { Hide } from './core/Hide/Hide';
|
|
7
7
|
export { Inline } from './core/Inline/Inline';
|
|
8
|
+
export { Rail, type RailProps } from './core/Rail/Rail';
|
|
8
9
|
export { Show } from './core/Show/Show';
|
|
10
|
+
export { Menu, type MenuItem, type MenuProps, type MenuSeparator } from './core/overlay/Menu/Menu';
|
|
11
|
+
export { ToastRegion, Toast, dismissToast, toast, useToast, type ToastInput, type ToastTone, type ToastProps } from './core/overlay/Toast/Toast';
|
|
12
|
+
export { Popover, type Placement, type PopoverProps } from './core/overlay/Popover/Popover';
|
|
13
|
+
export { Dialog, type DialogProps } from './core/overlay/Dialog/Dialog';
|
|
14
|
+
export { Sheet, type SheetBack, type SheetProps } from './core/overlay/Sheet/Sheet';
|
|
9
15
|
export { Spacer } from './core/Spacer/Spacer';
|
|
10
16
|
export { Stack } from './core/Stack/Stack';
|
|
11
17
|
export { ListRow, type ListRowProps } from './core/page/ListRow/ListRow';
|
|
@@ -80,7 +86,7 @@ export { ExecutionBlock, type ExecutionBlockProps, type ExecutionSignatory } fro
|
|
|
80
86
|
export { DocumentBlocks, type DocumentBlocksProps } from './core/document/DocumentBlocks/DocumentBlocks';
|
|
81
87
|
export { DocumentSection, type DocumentSectionProps } from './core/document/DocumentSection/DocumentSection';
|
|
82
88
|
export { BLOCK_SCHEMAS } from './core/document/_shared/block-schemas';
|
|
83
|
-
export { formatValue, renderFormatted, type FormatOpts, type FormattableValue, type FormatterToken, type ValueSpec } from './core/_shared/formatters';
|
|
89
|
+
export { DEFAULT_DISPLAY_LOCALE, displayLocale, formatValue, renderFormatted, type DisplayLocale, type FormatOpts, type FormattableValue, type FormatterToken, type ValueSpec } from './core/_shared/formatters';
|
|
84
90
|
export { TONES, toneOf, type Tone } from './core/display/_shared/tone';
|
|
85
91
|
export { Eyebrow, inkToneOf, type EyebrowAs, type EyebrowProps, type InkTone } from './core/display/Eyebrow/Eyebrow';
|
|
86
92
|
export { Stat, StatGroup, type StatGroupProps, type StatProps, type StatSize } from './core/display/Stat/Stat';
|
|
@@ -98,4 +104,36 @@ export { EventLogForm, type EventLogFormProps, type LogEventInput } from './core
|
|
|
98
104
|
export { EventRespond, type EventRespondProps } from './core/events/EventRespond/EventRespond';
|
|
99
105
|
export { EventSchedule, type EventScheduleProps } from './core/events/EventSchedule/EventSchedule';
|
|
100
106
|
export { EventTimeline, type ActivityItem, type EventTimelineProps } from './core/events/EventTimeline/EventTimeline';
|
|
101
|
-
export { eventWhen, typeCard, type EventTypeOption, type EventView, type RenderComponent as EventRenderComponent, type WriteResult as EventWriteResult } from './core/events/_shared/event';
|
|
107
|
+
export { eventWhen, hrefFrom, typeCard, type EventTypeOption, type EventView, type RenderComponent as EventRenderComponent, type WriteResult as EventWriteResult } from './core/events/_shared/event';
|
|
108
|
+
export { DAY_MINUTES, isBusyOnly, layoutDay, overlapDays, visibleRange, wallOf, weekDates, type CalendarBlock, type DayLayout, type Wall } from './core/events/_shared/calendar';
|
|
109
|
+
export { HourGrid, type HourGridColumn, type HourGridProps } from './core/events/HourGrid/HourGrid';
|
|
110
|
+
export { SeriesGlyph, seriesNumber, seriesShape, SERIES_SHAPES, type SeriesShape } from './core/events/_shared/SeriesGlyph';
|
|
111
|
+
export { CalendarFilters, type CalendarFilterType, type CalendarFiltersProps } from './core/events/CalendarFilters/CalendarFilters';
|
|
112
|
+
export { MiniMonth, type MiniMonthProps } from './core/events/MiniMonth/MiniMonth';
|
|
113
|
+
export { CalendarView, type CalendarViewName, type CalendarViewProps } from './core/events/CalendarView/CalendarView';
|
|
114
|
+
export { WeekStrip, type WeekStripProps } from './core/events/WeekStrip/WeekStrip';
|
|
115
|
+
export { sameOriginPath } from './core/events/_shared/path';
|
|
116
|
+
export { NOT_AVAILABLE, useIntent, type CardIntent, type IntentHandler } from './core/events/_shared/intent';
|
|
117
|
+
export { LogCard, type LogCardPrefill, type LogCardProps } from './core/events/LogCard/LogCard';
|
|
118
|
+
export { QuickNoteCard, type QuickNote, type QuickNoteCardProps } from './core/events/QuickNoteCard/QuickNoteCard';
|
|
119
|
+
export { TaskCard, type TaskCardProps, type TaskView } from './core/events/TaskCard/TaskCard';
|
|
120
|
+
export { HandoverCard, type HandoverCardProps, type HandoverPointer } from './core/events/HandoverCard/HandoverCard';
|
|
121
|
+
export { StartProcessCard, type StartProcessCardProps, type StartProcessNeed } from './core/events/StartProcessCard/StartProcessCard';
|
|
122
|
+
export { NoteSplitCard, type NoteSplitCardProps, type NoteSplitMatch, type NoteSplitPart } from './core/events/NoteSplitCard/NoteSplitCard';
|
|
123
|
+
export { ShareApprovalCard, type ShareApprovalCardProps, type ShareApprovalItem } from './core/events/ShareApprovalCard/ShareApprovalCard';
|
|
124
|
+
export { SuggestedActions, type SuggestedAction, type SuggestedActionsProps } from './core/events/SuggestedActions/SuggestedActions';
|
|
125
|
+
export { ActionLink, ActionRow, actionsOf, type PublicAction } from './core/public/_shared/actions';
|
|
126
|
+
export { imageOf, type PublicImage } from './core/public/_shared/media';
|
|
127
|
+
export { Hero, type HeroProps } from './core/public/Hero/Hero';
|
|
128
|
+
export { PublicHeader, type PublicHeaderProps, type PublicNavLink } from './core/public/PublicHeader/PublicHeader';
|
|
129
|
+
export { PublicFooter, type PublicFooterGroup, type PublicFooterProps } from './core/public/PublicFooter/PublicFooter';
|
|
130
|
+
export { LogoMark, type LogoMarkProps } from './core/public/LogoMark/LogoMark';
|
|
131
|
+
export { Image, type ImageProps } from './core/public/Image/Image';
|
|
132
|
+
export { FeatureGrid, type FeatureGridProps, type FeatureItem } from './core/public/FeatureGrid/FeatureGrid';
|
|
133
|
+
export { TeamGrid, type TeamGridProps, type TeamMember } from './core/public/TeamGrid/TeamGrid';
|
|
134
|
+
export { Testimonial, type TestimonialProps } from './core/public/Testimonial/Testimonial';
|
|
135
|
+
export { CtaBand, type CtaBandProps } from './core/public/CtaBand/CtaBand';
|
|
136
|
+
export { ContactForm, type ContactFormProps, type ContactRequestInput } from './core/public/ContactForm/ContactForm';
|
|
137
|
+
export { Combobox, Highlighted, useCombobox, type ComboboxOption, type ComboboxProps, type UseComboboxOptions } from './core/forms/Combobox/Combobox';
|
|
138
|
+
export { CodeField, type CodeFieldProps } from './core/forms/CodeField/CodeField';
|
|
139
|
+
export { DEFAULT_VIEWER, ViewerProvider, hasRole, isStaff, normalizeViewer, useViewer, type Viewer } from './core/_shared/viewer';
|