@peripheries/core 0.5.3 → 0.7.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.
Files changed (35) hide show
  1. package/README.md +1 -1
  2. package/index.css +1 -1
  3. package/index.js +3 -3
  4. package/package.json +1 -1
  5. package/types/core/Accordion/Accordion.d.ts +3 -1
  6. package/types/core/_shared/Slot.d.ts +8 -0
  7. package/types/core/_shared/embed.d.ts +3 -0
  8. package/types/core/_shared/interact.d.ts +14 -0
  9. package/types/core/actions/Button/Button.d.ts +2 -1
  10. package/types/core/actions/FilterChips/FilterChips.d.ts +16 -0
  11. package/types/core/actions/Link/Link.d.ts +3 -2
  12. package/types/core/display/ProposedComponent/ProposedComponent.d.ts +20 -0
  13. package/types/core/events/BookEventCard/BookEventCard.d.ts +7 -10
  14. package/types/core/events/EditEventCard/EditEventCard.d.ts +51 -0
  15. package/types/core/events/EventDetail/EventDetail.d.ts +4 -0
  16. package/types/core/events/EventNoteCard/EventNoteCard.d.ts +15 -0
  17. package/types/core/events/LogCard/LogCard.d.ts +6 -1
  18. package/types/core/events/TaskCard/TaskCard.d.ts +8 -0
  19. package/types/core/events/_shared/audience.d.ts +20 -0
  20. package/types/core/events/_shared/event.d.ts +1 -0
  21. package/types/core/events/_shared/eventFields.d.ts +47 -0
  22. package/types/core/events/_shared/when.d.ts +1 -0
  23. package/types/core/forms/Checkbox/Checkbox.d.ts +1 -1
  24. package/types/core/forms/FormField/FormField.d.ts +4 -1
  25. package/types/core/forms/RadioGroup/RadioGroup.d.ts +1 -1
  26. package/types/core/forms/SearchField/SearchField.d.ts +2 -1
  27. package/types/core/forms/Select/Select.d.ts +1 -1
  28. package/types/core/forms/Slider/Slider.d.ts +1 -1
  29. package/types/core/forms/Switch/Switch.d.ts +1 -1
  30. package/types/core/forms/TextArea/TextArea.d.ts +1 -2
  31. package/types/core/forms/TextField/TextField.d.ts +2 -3
  32. package/types/core/forms/_shared/field.d.ts +17 -2
  33. package/types/core/text/Avatar/Avatar.d.ts +3 -1
  34. package/types/core/text/Heading/Heading.d.ts +1 -1
  35. package/types/index.core.d.ts +6 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peripheries/core",
3
- "version": "0.5.3",
3
+ "version": "0.7.0",
4
4
  "description": "The shared core lineage: layout, the document kit and the display cells, on the semantic tokens",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -11,7 +11,9 @@ export interface AccordionProps {
11
11
  numbered?: boolean;
12
12
  single?: boolean;
13
13
  rules?: 'strong' | 'subtle';
14
+ value?: string[];
15
+ onValueChange?: (value: string[]) => void;
14
16
  className?: string;
15
17
  style?: CSSProperties;
16
18
  }
17
- export declare function Accordion({ items, children, numbered, single, rules, className, ...rest }: AccordionProps): import("react").JSX.Element;
19
+ export declare function Accordion({ items, children, numbered, single, rules, value, onValueChange, className, ...rest }: AccordionProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { type CSSProperties, type ReactElement, type ReactNode } from 'react';
2
+ export interface SlotProps {
3
+ children?: ReactNode;
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ [key: string]: unknown;
7
+ }
8
+ export declare function Slot({ children, className, style, ...rest }: SlotProps): ReactElement | null;
@@ -0,0 +1,3 @@
1
+ import { type Context } from 'react';
2
+ export declare const EmbedContext: Context<boolean>;
3
+ export declare function useEmbedded(): boolean;
@@ -0,0 +1,14 @@
1
+ export type InteractionKind = 'field' | 'select' | 'expand';
2
+ export interface EmbedInteraction {
3
+ kind: InteractionKind;
4
+ name: string;
5
+ value?: string | number | boolean;
6
+ }
7
+ export type InteractHandler = (interaction: EmbedInteraction) => void;
8
+ export declare const INTERACT_NAME_MAX = 80;
9
+ export declare const INTERACT_VALUE_MAX = 200;
10
+ export declare function interact(handler: InteractHandler | undefined, interaction: {
11
+ kind: InteractionKind;
12
+ name: unknown;
13
+ value?: unknown;
14
+ }): void;
@@ -15,7 +15,8 @@ export interface ButtonProps extends PressProps {
15
15
  disabled?: boolean;
16
16
  type?: 'button' | 'submit' | 'reset';
17
17
  fullWidth?: boolean;
18
+ asChild?: boolean;
18
19
  className?: string;
19
20
  style?: CSSProperties;
20
21
  }
21
- export declare function Button({ children, label, variant, size, tone, iconLeft, iconRight, loading, disabled, type, fullWidth, className, href, action, input, actions, navigate, onClick, ...rest }: ButtonProps): import("react").JSX.Element;
22
+ export declare function Button({ children, label, variant, size, tone, iconLeft, iconRight, loading, disabled, type, fullWidth, asChild, className, href, action, input, actions, navigate, onClick, ...rest }: ButtonProps): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { type CSSProperties, type ReactElement } from 'react';
2
+ export interface FilterChipOption {
3
+ id: string;
4
+ label: string;
5
+ }
6
+ export interface FilterChipsProps {
7
+ options: ReadonlyArray<FilterChipOption>;
8
+ selected?: string;
9
+ param?: string;
10
+ keep?: Readonly<Record<string, string>>;
11
+ label?: string;
12
+ onChange?: (id: string) => void;
13
+ className?: string;
14
+ style?: CSSProperties;
15
+ }
16
+ export declare function FilterChips(props: FilterChipsProps): ReactElement | null;
@@ -1,11 +1,12 @@
1
- import type { ReactNode, CSSProperties } from 'react';
1
+ import type { AriaAttributes, ReactNode, CSSProperties } from 'react';
2
2
  import { type PressProps } from '../_shared/press';
3
3
  export interface LinkProps extends Omit<PressProps, 'action' | 'input'> {
4
4
  href: string;
5
5
  children?: ReactNode;
6
6
  label?: string;
7
7
  variant?: 'default' | 'subtle';
8
+ 'aria-current'?: AriaAttributes['aria-current'];
8
9
  className?: string;
9
10
  style?: CSSProperties;
10
11
  }
11
- export declare function Link({ href, children, label, variant, className, navigate, onClick, ...rest }: LinkProps): import("react").JSX.Element;
12
+ export declare function Link({ href, children, label, variant, 'aria-current': ariaCurrent, className, navigate, onClick, ...rest }: LinkProps): import("react").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import type { CSSProperties, ReactElement } from 'react';
2
+ export interface ProposedProp {
3
+ name: string;
4
+ type?: string;
5
+ note?: string;
6
+ }
7
+ export interface ProposedComponentProps {
8
+ name?: string;
9
+ description?: string;
10
+ takes?: ReadonlyArray<ProposedProp>;
11
+ sketch?: {
12
+ src: string;
13
+ alt?: string;
14
+ w?: number;
15
+ h?: number;
16
+ };
17
+ className?: string;
18
+ style?: CSSProperties;
19
+ }
20
+ export declare function ProposedComponent({ name, description, takes, sketch, className, style }: ProposedComponentProps): ReactElement | null;
@@ -1,19 +1,15 @@
1
1
  import { type CSSProperties, type ReactElement } from 'react';
2
2
  import { type IntentHandler } from '../_shared/intent';
3
+ import { type EventAssignee, type EventLink, type EventLinkCandidate, type EventPerson } from '../_shared/eventFields';
4
+ import { type Audience } from '../_shared/audience';
3
5
  export interface BookableType {
4
6
  id: string;
5
7
  name: string;
6
8
  kind?: 'scheduled' | 'record';
9
+ audiences?: ReadonlyArray<Audience>;
7
10
  }
8
- export interface BookablePerson {
9
- id: string;
10
- name: string;
11
- role?: string;
12
- }
13
- export interface BookableAssignee {
14
- id: string;
15
- name: string;
16
- }
11
+ export type BookablePerson = EventPerson;
12
+ export type BookableAssignee = EventAssignee;
17
13
  export interface BookEventPrefill {
18
14
  typeId?: string;
19
15
  startsAt?: string;
@@ -25,8 +21,9 @@ export interface BookEventPrefill {
25
21
  export interface BookEventCardProps {
26
22
  types: ReadonlyArray<BookableType>;
27
23
  people?: ReadonlyArray<BookablePerson>;
28
- canShare?: boolean;
29
24
  assignees?: ReadonlyArray<BookableAssignee>;
25
+ linkCandidates?: ReadonlyArray<EventLinkCandidate>;
26
+ links?: ReadonlyArray<EventLink>;
30
27
  subjectName?: string;
31
28
  prefill?: BookEventPrefill;
32
29
  invitesSent?: boolean;
@@ -0,0 +1,51 @@
1
+ import { type CSSProperties, type ReactElement } from 'react';
2
+ import { type IntentHandler } from '../_shared/intent';
3
+ import { type EventAssignee } from '../_shared/eventFields';
4
+ import { type Audience } from '../_shared/audience';
5
+ import type { BookableType } from '../BookEventCard/BookEventCard';
6
+ export interface EditEventCurrent {
7
+ name?: string;
8
+ typeId?: string;
9
+ typeName?: string;
10
+ startsAt?: string;
11
+ startOn?: string;
12
+ durationMin?: number;
13
+ tzid?: string;
14
+ assigneeId?: string;
15
+ assigneeName?: string;
16
+ audience?: Audience;
17
+ status?: 'tentative' | 'confirmed' | 'cancelled' | 'completed' | string;
18
+ location?: string;
19
+ }
20
+ export interface EditEventPrefill {
21
+ title?: string;
22
+ startsAt?: string;
23
+ startOn?: string;
24
+ durationMin?: number;
25
+ assigneeId?: string;
26
+ location?: string;
27
+ }
28
+ export interface EditEventCardProps {
29
+ current: EditEventCurrent;
30
+ changed?: ReadonlyArray<string>;
31
+ prefill?: EditEventPrefill;
32
+ types?: ReadonlyArray<BookableType>;
33
+ assignees?: ReadonlyArray<EventAssignee>;
34
+ subjectName?: string;
35
+ updated?: {
36
+ name?: string;
37
+ href?: string;
38
+ };
39
+ cancelled?: {
40
+ name?: string;
41
+ };
42
+ assigned?: {
43
+ name?: string;
44
+ };
45
+ locale?: string;
46
+ timeZone?: string;
47
+ onIntent?: IntentHandler<'update_event' | 'cancel_event' | 'assign_self'>;
48
+ className?: string;
49
+ style?: CSSProperties;
50
+ }
51
+ export declare function EditEventCard(props: EditEventCardProps): ReactElement;
@@ -21,6 +21,10 @@ export interface EventDetailProps {
21
21
  response: string;
22
22
  }>;
23
23
  };
24
+ editHref?: string;
25
+ rescheduleHref?: string;
26
+ noteHref?: string;
27
+ cancelHref?: string;
24
28
  locale?: string;
25
29
  timeZone?: string;
26
30
  className?: string;
@@ -0,0 +1,15 @@
1
+ import { type CSSProperties, type ReactElement } from 'react';
2
+ import { type IntentHandler } from '../_shared/intent';
3
+ export interface EventNoteCardProps {
4
+ eventName?: string;
5
+ subjectName?: string;
6
+ body?: string;
7
+ noted?: {
8
+ name?: string;
9
+ href?: string;
10
+ };
11
+ onIntent?: IntentHandler<'add_note'>;
12
+ className?: string;
13
+ style?: CSSProperties;
14
+ }
15
+ export declare function EventNoteCard(props: EventNoteCardProps): ReactElement;
@@ -1,4 +1,5 @@
1
1
  import { type CSSProperties, type ReactElement } from 'react';
2
+ import { type EventAssignee, type EventLink, type EventLinkCandidate, type EventPerson } from '../_shared/eventFields';
2
3
  import { type EventTypeOption } from '../_shared/event';
3
4
  import { type IntentHandler } from '../_shared/intent';
4
5
  export interface LogCardPrefill {
@@ -6,7 +7,7 @@ export interface LogCardPrefill {
6
7
  name?: string;
7
8
  startsAt?: string;
8
9
  durationMin?: number;
9
- attendees?: ReadonlyArray<string>;
10
+ attendeeIds?: ReadonlyArray<string>;
10
11
  outcome?: string;
11
12
  followUp?: string;
12
13
  note?: string;
@@ -15,6 +16,10 @@ export interface LogCardProps {
15
16
  types: ReadonlyArray<EventTypeOption>;
16
17
  subjectName?: string;
17
18
  prefill?: LogCardPrefill;
19
+ people?: ReadonlyArray<EventPerson>;
20
+ assignees?: ReadonlyArray<EventAssignee>;
21
+ linkCandidates?: ReadonlyArray<EventLinkCandidate>;
22
+ links?: ReadonlyArray<EventLink>;
18
23
  canWriteStaffNotes?: boolean;
19
24
  logged?: {
20
25
  name?: string;
@@ -1,4 +1,6 @@
1
1
  import { type CSSProperties, type ReactElement } from 'react';
2
+ import { type Audience } from '../_shared/audience';
3
+ import { type EventAssignee, type EventLink, type EventLinkCandidate, type EventPerson } from '../_shared/eventFields';
2
4
  import { type IntentHandler } from '../_shared/intent';
3
5
  import { localWithOffset } from '../_shared/when';
4
6
  export { localWithOffset };
@@ -6,8 +8,10 @@ export interface TaskTypeOption {
6
8
  id: string;
7
9
  name: string;
8
10
  kind?: 'scheduled' | 'record';
11
+ audiences?: ReadonlyArray<Audience>;
9
12
  }
10
13
  export interface TaskView {
14
+ id?: string;
11
15
  title: string;
12
16
  dueOn?: string;
13
17
  dueAt?: string;
@@ -21,6 +25,10 @@ export interface TaskCardProps {
21
25
  locale?: string;
22
26
  timeZone?: string;
23
27
  types?: ReadonlyArray<TaskTypeOption>;
28
+ people?: ReadonlyArray<EventPerson>;
29
+ assignees?: ReadonlyArray<EventAssignee>;
30
+ linkCandidates?: ReadonlyArray<EventLinkCandidate>;
31
+ links?: ReadonlyArray<EventLink>;
24
32
  onIntent?: IntentHandler<'log_event' | 'complete'>;
25
33
  className?: string;
26
34
  style?: CSSProperties;
@@ -0,0 +1,20 @@
1
+ import { type ReactElement } from 'react';
2
+ export type Audience = 'private' | 'team' | 'client';
3
+ export declare function audiencesOf(type: {
4
+ audiences?: unknown;
5
+ } | undefined): Audience[];
6
+ export declare function resolveAudience(chosen: Audience, audiences: ReadonlyArray<Audience>): Audience | undefined;
7
+ export declare function useAudience(audiences: ReadonlyArray<Audience>, initial?: Audience): {
8
+ value: Audience | undefined;
9
+ setValue: import("react").Dispatch<import("react").SetStateAction<Audience>>;
10
+ };
11
+ export declare function audienceWords(audience: Audience, subjectName?: string): string;
12
+ export declare function audienceConfirm(audience: Audience | undefined): string;
13
+ export declare function AudienceField({ id, audiences, value, onChange, subjectName, disabled }: {
14
+ id: string;
15
+ audiences: ReadonlyArray<Audience>;
16
+ value: Audience | undefined;
17
+ onChange: (a: Audience) => void;
18
+ subjectName?: string;
19
+ disabled?: boolean;
20
+ }): ReactElement | null;
@@ -21,6 +21,7 @@ export interface EventTypeOption {
21
21
  id: string;
22
22
  name: string;
23
23
  kind: 'scheduled' | 'record';
24
+ audiences?: ReadonlyArray<'private' | 'team' | 'client'>;
24
25
  dataSchema?: {
25
26
  properties?: Record<string, JsonField>;
26
27
  required?: string[];
@@ -0,0 +1,47 @@
1
+ import { type ReactElement } from 'react';
2
+ export interface EventPerson {
3
+ id: string;
4
+ name: string;
5
+ role?: string;
6
+ }
7
+ export interface EventAssignee {
8
+ id: string;
9
+ name: string;
10
+ }
11
+ export interface EventLinkCandidate {
12
+ kind: 'project' | 'process' | 'run' | 'node' | 'event';
13
+ id: string;
14
+ label: string;
15
+ }
16
+ export type EventLink = EventLinkCandidate;
17
+ export declare const LINKS_MAX = 10;
18
+ export declare const cleanPeople: (v: unknown) => EventPerson[];
19
+ export declare const cleanAssignees: (v: unknown) => EventAssignee[];
20
+ export declare const cleanLinks: (v: unknown) => EventLinkCandidate[];
21
+ export interface EventExtrasInput {
22
+ people?: unknown;
23
+ assignees?: unknown;
24
+ linkCandidates?: unknown;
25
+ links?: unknown;
26
+ attendeeIds?: unknown;
27
+ assigneeId?: unknown;
28
+ }
29
+ export declare function useEventExtras(input: EventExtrasInput): {
30
+ people: EventPerson[];
31
+ assignees: EventAssignee[];
32
+ candidates: EventLinkCandidate[];
33
+ guests: ReadonlySet<string>;
34
+ setGuests: import("react").Dispatch<import("react").SetStateAction<ReadonlySet<string>>>;
35
+ assigneeId: string;
36
+ setAssigneeId: import("react").Dispatch<import("react").SetStateAction<string>>;
37
+ links: EventLinkCandidate[];
38
+ setLinks: import("react").Dispatch<import("react").SetStateAction<EventLinkCandidate[]>>;
39
+ picked: EventPerson[];
40
+ assignee: EventAssignee | undefined;
41
+ write(values: Record<string, unknown>): void;
42
+ };
43
+ export type EventExtras = ReturnType<typeof useEventExtras>;
44
+ export declare function EventExtrasFields({ extras, disabled }: {
45
+ extras: EventExtras;
46
+ disabled?: boolean;
47
+ }): ReactElement | null;
@@ -7,4 +7,5 @@ export declare function partsOf(iso: string | undefined, timeZone?: string): {
7
7
  time: string;
8
8
  } | null;
9
9
  export declare function localWithOffset(date: string, time: string): string | undefined;
10
+ export declare function instantIn(date: string, time: string, zone?: string): string | undefined;
10
11
  export declare function todayIn(timeZone?: string, now?: number): string;
@@ -5,4 +5,4 @@ export interface CheckboxProps extends FieldProps<boolean> {
5
5
  ref?: Ref<HTMLInputElement>;
6
6
  style?: CSSProperties;
7
7
  }
8
- export declare function Checkbox({ value, defaultValue, onChange, setValue, id, name, label, children, hint, error, required, disabled, readOnly, className, style, ref }: CheckboxProps): import("react").JSX.Element;
8
+ export declare function Checkbox({ value, defaultValue, onChange, setValue, id, name, label, children, hint, error, required, disabled, readOnly, onBlur, onFocus, className, wrapperClassName, style, ref, ...rest }: CheckboxProps): import("react").JSX.Element;
@@ -4,6 +4,9 @@ export interface FormFieldProps {
4
4
  hint?: string;
5
5
  error?: string;
6
6
  required?: boolean;
7
+ optional?: boolean;
8
+ helperText?: string;
9
+ id?: string;
7
10
  htmlFor?: string;
8
11
  hintId?: string;
9
12
  errorId?: string;
@@ -12,4 +15,4 @@ export interface FormFieldProps {
12
15
  className?: string;
13
16
  style?: CSSProperties;
14
17
  }
15
- export declare function FormField({ label, hint, error, required, htmlFor, hintId, errorId, as, children, className, style }: FormFieldProps): import("react").JSX.Element;
18
+ export declare function FormField({ label, hint: hintProp, helperText, error, required, optional, htmlFor: forProp, id, hintId, errorId, as, children, className, style }: FormFieldProps): import("react").JSX.Element;
@@ -6,4 +6,4 @@ export interface RadioGroupProps extends FieldProps<string | null> {
6
6
  ref?: Ref<HTMLInputElement>;
7
7
  style?: CSSProperties;
8
8
  }
9
- export declare function RadioGroup({ options, value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, orientation, className, style, ref }: RadioGroupProps): import("react").JSX.Element;
9
+ export declare function RadioGroup({ options, value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, orientation, className, wrapperClassName, style, ref, ...rest }: RadioGroupProps): import("react").JSX.Element;
@@ -3,8 +3,9 @@ import type { FieldProps } from '../_shared/field';
3
3
  export interface SearchFieldProps extends FieldProps<string> {
4
4
  placeholder?: string;
5
5
  onSearch?: (query: string) => void;
6
+ onClear?: () => void;
6
7
  size?: 'sm' | 'md';
7
8
  ref?: Ref<HTMLInputElement>;
8
9
  style?: CSSProperties;
9
10
  }
10
- export declare function SearchField({ value, defaultValue, onChange, setValue, label, onSearch, size, className, ...rest }: SearchFieldProps): import("react").JSX.Element;
11
+ export declare function SearchField({ value, defaultValue, onChange, setValue, label, onSearch, onClear, size, className, wrapperClassName, ...rest }: SearchFieldProps): import("react").JSX.Element;
@@ -7,4 +7,4 @@ export interface SelectProps extends FieldProps<string | null> {
7
7
  ref?: Ref<HTMLSelectElement>;
8
8
  style?: CSSProperties;
9
9
  }
10
- export declare function Select({ options, value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, placeholder, className, style, ref }: SelectProps): import("react").JSX.Element;
10
+ export declare function Select({ options, value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, placeholder, onBlur, onFocus, className, wrapperClassName, style, ref, ...rest }: SelectProps): import("react").JSX.Element;
@@ -8,4 +8,4 @@ export interface SliderProps extends FieldProps<number> {
8
8
  ref?: Ref<HTMLInputElement>;
9
9
  style?: CSSProperties;
10
10
  }
11
- export declare function Slider({ value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, min, max, step, format, className, style, ref }: SliderProps): import("react").JSX.Element;
11
+ export declare function Slider({ value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, min, max, step, format, onBlur, onFocus, className, wrapperClassName, style, ref, ...rest }: SliderProps): import("react").JSX.Element;
@@ -4,4 +4,4 @@ export interface SwitchProps extends FieldProps<boolean> {
4
4
  ref?: Ref<HTMLButtonElement>;
5
5
  style?: CSSProperties;
6
6
  }
7
- export declare function Switch({ value, defaultValue, onChange, setValue, id, name, label, hint, error, disabled, readOnly, className, style, ref }: SwitchProps): import("react").JSX.Element;
7
+ export declare function Switch({ value, defaultValue, onChange, setValue, id, name, label, hint, error, disabled, readOnly, onBlur, onFocus, className, wrapperClassName, style, ref, ...rest }: SwitchProps): import("react").JSX.Element;
@@ -6,8 +6,7 @@ export interface TextAreaProps extends FieldProps<string> {
6
6
  autoGrow?: boolean;
7
7
  maxLength?: number;
8
8
  onKeyDown?: (event: KeyboardEvent<HTMLTextAreaElement>) => void;
9
- onBlur?: () => void;
10
9
  ref?: Ref<HTMLTextAreaElement>;
11
10
  style?: CSSProperties;
12
11
  }
13
- export declare function TextArea({ value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, placeholder, rows, autoGrow, maxLength, onKeyDown, onBlur, className, style, ref }: TextAreaProps): import("react").JSX.Element;
12
+ export declare function TextArea({ value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, placeholder, rows, autoGrow, maxLength, onKeyDown, onBlur, onFocus, className, wrapperClassName, style, ref, ...rest }: TextAreaProps): import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { type KeyboardEvent, type Ref, type CSSProperties } from 'react';
2
2
  import { type FieldProps } from '../_shared/field';
3
- export type TextFieldType = 'text' | 'number' | 'email' | 'tel' | 'url' | 'date' | 'datetime-local';
3
+ export type TextFieldType = 'text' | 'number' | 'email' | 'tel' | 'url' | 'search' | 'date' | 'datetime-local';
4
4
  export interface TextFieldProps extends FieldProps<string | number | null> {
5
5
  type?: TextFieldType;
6
6
  placeholder?: string;
@@ -13,9 +13,8 @@ export interface TextFieldProps extends FieldProps<string | number | null> {
13
13
  suffix?: string;
14
14
  onEnter?: (event: KeyboardEvent<HTMLInputElement>) => void;
15
15
  onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;
16
- onBlur?: () => void;
17
16
  ref?: Ref<HTMLInputElement>;
18
17
  style?: CSSProperties;
19
18
  }
20
19
  export declare const toNumber: (text: string) => number | null;
21
- export declare function TextField({ type, value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, placeholder, inputMode, autoComplete, min, max, step, prefix, suffix, onEnter, onKeyDown, onBlur, className, style, ref }: TextFieldProps): import("react").JSX.Element;
20
+ export declare function TextField({ type, value, defaultValue, onChange, setValue, id, name, label, hint, error, required, disabled, readOnly, placeholder, inputMode, autoComplete, min, max, step, prefix, suffix, onEnter, onKeyDown, onBlur, onFocus, className, wrapperClassName, style, ref, ...rest }: TextFieldProps): import("react").JSX.Element;
@@ -1,5 +1,14 @@
1
- import { type CSSProperties } from 'react';
2
- export interface FieldProps<V> {
1
+ import { type CSSProperties, type FocusEvent } from 'react';
2
+ export interface NativeProps {
3
+ title?: string;
4
+ autoFocus?: boolean;
5
+ 'aria-label'?: string;
6
+ 'aria-labelledby'?: string;
7
+ 'aria-describedby'?: string;
8
+ onFocus?: (event: FocusEvent<HTMLElement>) => void;
9
+ onBlur?: (event: FocusEvent<HTMLElement>) => void;
10
+ }
11
+ export interface FieldProps<V> extends NativeProps {
3
12
  value?: V;
4
13
  defaultValue?: V;
5
14
  onChange?: (value: V) => void;
@@ -13,6 +22,7 @@ export interface FieldProps<V> {
13
22
  disabled?: boolean;
14
23
  readOnly?: boolean;
15
24
  className?: string;
25
+ wrapperClassName?: string;
16
26
  style?: CSSProperties;
17
27
  }
18
28
  export declare function useFieldIds(id: string | undefined, hint?: string, error?: string): {
@@ -24,6 +34,11 @@ export declare function useFieldIds(id: string | undefined, hint?: string, error
24
34
  'aria-invalid': true | undefined;
25
35
  };
26
36
  };
37
+ export declare function nativeAttrs(props: object): Record<string, unknown>;
38
+ export declare function controlAria(ids: ReturnType<typeof useFieldIds>, attrs: Record<string, unknown>): {
39
+ 'aria-describedby': string | undefined;
40
+ 'aria-invalid': boolean | "false" | "true" | undefined;
41
+ };
27
42
  export declare function emit<V>(onChange?: (v: V) => void, setValue?: (v: V) => void): (v: V) => void;
28
43
  export type ChoiceOption = {
29
44
  value: string;
@@ -5,8 +5,10 @@ export interface AvatarProps {
5
5
  src?: string;
6
6
  alt?: string;
7
7
  size?: 'sm' | 'md' | 'lg';
8
+ tone?: string;
9
+ title?: string;
8
10
  className?: string;
9
11
  style?: CSSProperties;
10
12
  }
11
13
  export declare const initialsOf: (name?: string) => string;
12
- export declare function Avatar({ name, initials, src, alt, size, className, ...rest }: AvatarProps): import("react").JSX.Element;
14
+ export declare function Avatar({ name, initials, src, alt, size, tone, title, className, ...rest }: AvatarProps): import("react").JSX.Element;
@@ -3,7 +3,7 @@ export interface HeadingProps {
3
3
  text?: string;
4
4
  children?: ReactNode;
5
5
  level?: 1 | 2 | 3 | 4 | 5 | 6;
6
- size?: 'display' | 'lg' | 'md' | 'sm' | 'xs';
6
+ size?: 'display-xl' | 'display-lg' | 'display' | 'lg' | 'md' | 'sm' | 'xs';
7
7
  anchor?: string;
8
8
  className?: string;
9
9
  style?: CSSProperties;
@@ -1,4 +1,5 @@
1
1
  export { cx, length, vars } from './core/_shared/props';
2
+ export { EmbedContext, useEmbedded } from './core/_shared/embed';
2
3
  export { Box } from './core/Box/Box';
3
4
  export { Center } from './core/Center/Center';
4
5
  export { Container } from './core/Container/Container';
@@ -48,6 +49,7 @@ export { Button, type ButtonProps, type ButtonSize, type ButtonTone, type Button
48
49
  export { Chip, type ChipProps } from './core/actions/Chip/Chip';
49
50
  export { IconButton, type IconButtonProps } from './core/actions/IconButton/IconButton';
50
51
  export { Link, type LinkProps } from './core/actions/Link/Link';
52
+ export { FilterChips, type FilterChipOption, type FilterChipsProps } from './core/actions/FilterChips/FilterChips';
51
53
  export { SegmentedControl, type Segment, type SegmentedControlProps } from './core/actions/SegmentedControl/SegmentedControl';
52
54
  export { Accordion, type AccordionItem, type AccordionProps } from './core/Accordion/Accordion';
53
55
  export { Card, type CardProps, type CardTone } from './core/Card/Card';
@@ -93,6 +95,7 @@ export { Eyebrow, inkToneOf, type EyebrowAs, type EyebrowProps, type InkTone } f
93
95
  export { Stat, StatGroup, type StatGroupProps, type StatProps, type StatSize } from './core/display/Stat/Stat';
94
96
  export { SectionHeader, type SectionHeaderProps } from './core/display/SectionHeader/SectionHeader';
95
97
  export { HighlightBox, type HighlightBoxProps } from './core/display/HighlightBox/HighlightBox';
98
+ export { ProposedComponent, type ProposedComponentProps, type ProposedProp } from './core/display/ProposedComponent/ProposedComponent';
96
99
  export { DisclaimerBlock, type DisclaimerBlockProps } from './core/display/DisclaimerBlock/DisclaimerBlock';
97
100
  export { StatStrip, type StatStripProps } from './core/display/StatStrip/StatStrip';
98
101
  export { OptionCard, type OptionCardBar, type OptionCardProps } from './core/display/OptionCard/OptionCard';
@@ -116,9 +119,12 @@ export { CalendarView, type CalendarViewName, type CalendarViewProps } from './c
116
119
  export { WeekStrip, type WeekStripProps } from './core/events/WeekStrip/WeekStrip';
117
120
  export { sameOriginPath } from './core/events/_shared/path';
118
121
  export { NOT_AVAILABLE, useIntent, type CardIntent, type IntentHandler } from './core/events/_shared/intent';
122
+ export { interact, type EmbedInteraction, type InteractHandler, type InteractionKind } from './core/_shared/interact';
119
123
  export { LogCard, type LogCardPrefill, type LogCardProps } from './core/events/LogCard/LogCard';
120
124
  export { QuickNoteCard, type QuickNote, type QuickNoteCardProps } from './core/events/QuickNoteCard/QuickNoteCard';
121
125
  export { BookEventCard, type BookEventCardProps, type BookEventPrefill, type BookablePerson, type BookableType } from './core/events/BookEventCard/BookEventCard';
126
+ export { EditEventCard, type EditEventCardProps, type EditEventCurrent, type EditEventPrefill } from './core/events/EditEventCard/EditEventCard';
127
+ export { EventNoteCard, type EventNoteCardProps } from './core/events/EventNoteCard/EventNoteCard';
122
128
  export { TaskCard, localWithOffset, type TaskCardProps, type TaskTypeOption, type TaskView } from './core/events/TaskCard/TaskCard';
123
129
  export { HandoverCard, type HandoverCardProps, type HandoverPointer } from './core/events/HandoverCard/HandoverCard';
124
130
  export { StartProcessCard, type StartProcessCardProps, type StartProcessNeed } from './core/events/StartProcessCard/StartProcessCard';