@declarion/react 0.1.33 → 0.1.44

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 (97) hide show
  1. package/dist-lib/JsonEditor-ByVfvrpB.js +71 -0
  2. package/dist-lib/JsonEditor-ByVfvrpB.js.map +1 -0
  3. package/dist-lib/api/params.d.ts +16 -2
  4. package/dist-lib/components/columns/ColumnPicker.d.ts +0 -5
  5. package/dist-lib/components/detail/DetailPage.d.ts +30 -0
  6. package/dist-lib/components/fields/MultilangField.d.ts +1 -1
  7. package/dist-lib/components/fields/MultilangTextField.d.ts +1 -1
  8. package/dist-lib/components/fields/RefField.d.ts +1 -1
  9. package/dist-lib/components/filters/FilterChips.d.ts +0 -6
  10. package/dist-lib/components/filters/FilterDrawer.d.ts +0 -6
  11. package/dist-lib/components/layout/Rail.d.ts +16 -0
  12. package/dist-lib/components/layout/Sidebar.d.ts +11 -1
  13. package/dist-lib/components/layout/TabStrip.d.ts +4 -0
  14. package/dist-lib/components/layout/TenantChip.d.ts +17 -0
  15. package/dist-lib/components/layout/TopBar.d.ts +11 -1
  16. package/dist-lib/components/list/BulkBar.d.ts +18 -0
  17. package/dist-lib/components/list/InlineEditCell.d.ts +15 -0
  18. package/dist-lib/components/list/ListPage.d.ts +34 -0
  19. package/dist-lib/components/list/QuickPeek.d.ts +36 -0
  20. package/dist-lib/components/list/RowMenu.d.ts +23 -0
  21. package/dist-lib/components/list/resolveActions.d.ts +67 -0
  22. package/dist-lib/components/pages/auth/AuthShell.d.ts +13 -0
  23. package/dist-lib/components/pages/auth/Forgot.d.ts +1 -0
  24. package/dist-lib/components/pages/auth/SignIn.d.ts +1 -0
  25. package/dist-lib/components/pages/auth/SignUp.d.ts +1 -0
  26. package/dist-lib/components/pages/auth/TwoFA.d.ts +1 -0
  27. package/dist-lib/components/pages/auth/icons.d.ts +6 -0
  28. package/dist-lib/components/pages/home/HomeStub.d.ts +6 -0
  29. package/dist-lib/components/pages/jobs/Jobs.d.ts +1 -0
  30. package/dist-lib/components/pages/pipeline/Pipeline.d.ts +1 -0
  31. package/dist-lib/components/pages/profile/Preferences.d.ts +1 -0
  32. package/dist-lib/components/pages/profile/Profile.d.ts +1 -0
  33. package/dist-lib/components/primitives/Avatar.d.ts +6 -0
  34. package/dist-lib/components/primitives/BoolToggle.d.ts +5 -0
  35. package/dist-lib/components/primitives/Btn.d.ts +19 -0
  36. package/dist-lib/components/primitives/Check.d.ts +7 -0
  37. package/dist-lib/components/primitives/Chip.d.ts +9 -0
  38. package/dist-lib/components/primitives/Dropdown.d.ts +11 -0
  39. package/dist-lib/components/primitives/Fields.d.ts +82 -0
  40. package/dist-lib/components/primitives/IconBtn.d.ts +11 -0
  41. package/dist-lib/components/primitives/Icons.d.ts +87 -0
  42. package/dist-lib/components/primitives/Kbd.d.ts +4 -0
  43. package/dist-lib/components/primitives/MenuItem.d.ts +11 -0
  44. package/dist-lib/components/primitives/Pill.d.ts +11 -0
  45. package/dist-lib/components/primitives/RecordIdBadge.d.ts +8 -0
  46. package/dist-lib/components/primitives/RowField.d.ts +10 -0
  47. package/dist-lib/components/primitives/SectionCard.d.ts +19 -0
  48. package/dist-lib/components/primitives/Spinner.d.ts +3 -0
  49. package/dist-lib/components/primitives/cx.d.ts +1 -0
  50. package/dist-lib/components/primitives/index.d.ts +31 -0
  51. package/dist-lib/components/shared/ActionConfirmDialog.d.ts +1 -1
  52. package/dist-lib/components/shared/ActionDialog.d.ts +1 -11
  53. package/dist-lib/components/shared/ActionResultDialog.d.ts +1 -1
  54. package/dist-lib/components/shared/ActionRunner.d.ts +21 -0
  55. package/dist-lib/components/shared/Breadcrumbs.d.ts +14 -0
  56. package/dist-lib/components/shared/ChangePasswordDialog.d.ts +9 -0
  57. package/dist-lib/components/shared/ConfirmDialog.d.ts +1 -1
  58. package/dist-lib/components/shared/CopyButton.d.ts +1 -1
  59. package/dist-lib/components/shared/DynamicIcon.d.ts +6 -3
  60. package/dist-lib/components/shared/ErrorBoundary.d.ts +0 -5
  61. package/dist-lib/components/shell/AIPanel.d.ts +6 -0
  62. package/dist-lib/components/shell/CommandPalette.d.ts +18 -0
  63. package/dist-lib/components/views/ViewSwitcher.d.ts +1 -7
  64. package/dist-lib/declarion-react.css +1 -1
  65. package/dist-lib/hooks/useParams.d.ts +1 -1
  66. package/dist-lib/index.d.ts +47 -0
  67. package/dist-lib/index.js +14587 -8270
  68. package/dist-lib/index.js.map +1 -1
  69. package/dist-lib/lib/child-config.d.ts +1 -0
  70. package/dist-lib/stores/appearance.d.ts +31 -0
  71. package/dist-lib/stores/tabs.d.ts +13 -0
  72. package/dist-lib/types/api.d.ts +21 -1
  73. package/dist-lib/types/ordmap.d.ts +32 -0
  74. package/dist-lib/types/schema.d.ts +108 -37
  75. package/package.json +1 -2
  76. package/dist-lib/JsonEditor-C5NOzsey.js +0 -71
  77. package/dist-lib/JsonEditor-C5NOzsey.js.map +0 -1
  78. package/dist-lib/components/layout/TabBar.d.ts +0 -1
  79. package/dist-lib/components/layout/ThemeToggle.d.ts +0 -1
  80. package/dist-lib/components/pages/LoginPage.d.ts +0 -1
  81. package/dist-lib/components/pages/SignupPage.d.ts +0 -1
  82. package/dist-lib/components/shared/BatchActionProgress.d.ts +0 -18
  83. package/dist-lib/components/ui/alert-dialog.d.ts +0 -14
  84. package/dist-lib/components/ui/badge.d.ts +0 -9
  85. package/dist-lib/components/ui/button.d.ts +0 -11
  86. package/dist-lib/components/ui/card.d.ts +0 -8
  87. package/dist-lib/components/ui/dialog.d.ts +0 -13
  88. package/dist-lib/components/ui/dropdown-menu.d.ts +0 -24
  89. package/dist-lib/components/ui/input.d.ts +0 -3
  90. package/dist-lib/components/ui/label.d.ts +0 -5
  91. package/dist-lib/components/ui/select.d.ts +0 -13
  92. package/dist-lib/components/ui/separator.d.ts +0 -4
  93. package/dist-lib/components/ui/skeleton.d.ts +0 -2
  94. package/dist-lib/components/ui/table.d.ts +0 -10
  95. package/dist-lib/components/ui/textarea.d.ts +0 -3
  96. package/dist-lib/lib/theme-utils.d.ts +0 -3
  97. package/dist-lib/stores/theme.d.ts +0 -10
@@ -0,0 +1,82 @@
1
+ import type { CSSProperties, InputHTMLAttributes, ReactNode } from "react";
2
+ export type FieldLabelProps = {
3
+ children?: ReactNode;
4
+ required?: boolean;
5
+ hint?: string;
6
+ };
7
+ export declare const FieldLabel: ({ children, required, hint }: FieldLabelProps) => import("react/jsx-runtime").JSX.Element;
8
+ export type TextInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "prefix"> & {
9
+ value?: string | null;
10
+ onChange?: (v: string) => void;
11
+ prefix?: ReactNode;
12
+ suffix?: ReactNode;
13
+ style?: CSSProperties;
14
+ };
15
+ export declare function TextInput({ value, onChange, placeholder, prefix, suffix, style, ...rest }: TextInputProps): import("react/jsx-runtime").JSX.Element;
16
+ export type TextAreaProps = {
17
+ value?: string | null;
18
+ onChange?: (v: string) => void;
19
+ placeholder?: string;
20
+ rows?: number;
21
+ };
22
+ export declare function TextArea({ value, onChange, placeholder, rows }: TextAreaProps): import("react/jsx-runtime").JSX.Element;
23
+ export type SelectOption = {
24
+ value: string;
25
+ label: ReactNode;
26
+ };
27
+ export type SelectProps = {
28
+ value?: string;
29
+ options: SelectOption[];
30
+ onChange: (v: string) => void;
31
+ placeholder?: string;
32
+ };
33
+ export declare function Select({ value, options, onChange, placeholder }: SelectProps): import("react/jsx-runtime").JSX.Element;
34
+ export type DateInputProps = {
35
+ value?: string | null;
36
+ onChange?: (v: string) => void;
37
+ };
38
+ export declare function DateInput({ value, onChange }: DateInputProps): import("react/jsx-runtime").JSX.Element;
39
+ export type PasswordInputProps = {
40
+ value?: string | null;
41
+ onChange?: (v: string) => void;
42
+ placeholder?: string;
43
+ showStrength?: boolean;
44
+ };
45
+ export declare function PasswordInput({ value, onChange, placeholder, showStrength, }: PasswordInputProps): import("react/jsx-runtime").JSX.Element;
46
+ export type TagsInputProps = {
47
+ value?: string[];
48
+ onChange: (v: string[]) => void;
49
+ };
50
+ export declare function TagsInput({ value, onChange }: TagsInputProps): import("react/jsx-runtime").JSX.Element;
51
+ export type JsonFieldProps = {
52
+ value?: string;
53
+ onChange?: (v: string) => void;
54
+ };
55
+ export declare function JsonField({ value, onChange }: JsonFieldProps): import("react/jsx-runtime").JSX.Element;
56
+ export type RefFieldItem = {
57
+ id: string;
58
+ name: string;
59
+ };
60
+ export type RefFieldProps = {
61
+ value?: string;
62
+ entity?: string;
63
+ onChange?: (v: string) => void;
64
+ items?: RefFieldItem[];
65
+ };
66
+ export declare function RefField({ value, entity, onChange, items }: RefFieldProps): import("react/jsx-runtime").JSX.Element;
67
+ export type ViewFieldProps = {
68
+ label: ReactNode;
69
+ children?: ReactNode;
70
+ mono?: boolean;
71
+ wide?: boolean;
72
+ empty?: boolean;
73
+ };
74
+ export declare function ViewField({ label, children, mono, wide, empty }: ViewFieldProps): import("react/jsx-runtime").JSX.Element;
75
+ export type QuickEditCellProps = {
76
+ value?: string;
77
+ onChange?: (v: string) => void;
78
+ type?: "text" | "select" | "bool";
79
+ options?: SelectOption[];
80
+ tone?: string;
81
+ };
82
+ export declare function QuickEditCell({ value, onChange, type, options }: QuickEditCellProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import type { CSSProperties, MouseEvent, ReactNode } from "react";
2
+ export type IconBtnProps = {
3
+ icon: ReactNode;
4
+ onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
5
+ title?: string;
6
+ size?: number;
7
+ active?: boolean;
8
+ disabled?: boolean;
9
+ style?: CSSProperties;
10
+ };
11
+ export declare const IconBtn: import("react").ForwardRefExoticComponent<IconBtnProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,87 @@
1
+ import type { CSSProperties, FC } from "react";
2
+ export type IconProps = {
3
+ size?: number;
4
+ cls?: string;
5
+ style?: CSSProperties;
6
+ };
7
+ export declare const Icon: {
8
+ readonly home: FC<IconProps>;
9
+ readonly inbox: FC<IconProps>;
10
+ readonly flow: FC<IconProps>;
11
+ readonly pipeline: FC<IconProps>;
12
+ readonly leads: FC<IconProps>;
13
+ readonly company: FC<IconProps>;
14
+ readonly activity: FC<IconProps>;
15
+ readonly users: FC<IconProps>;
16
+ readonly tenant: FC<IconProps>;
17
+ readonly shield: FC<IconProps>;
18
+ readonly key: FC<IconProps>;
19
+ readonly group: FC<IconProps>;
20
+ readonly idp: FC<IconProps>;
21
+ readonly audit: FC<IconProps>;
22
+ readonly log: FC<IconProps>;
23
+ readonly handlers: FC<IconProps>;
24
+ readonly jobs: FC<IconProps>;
25
+ readonly sched: FC<IconProps>;
26
+ readonly entity: FC<IconProps>;
27
+ readonly field: FC<IconProps>;
28
+ readonly action: FC<IconProps>;
29
+ readonly code: FC<IconProps>;
30
+ readonly search: FC<IconProps>;
31
+ readonly filter: FC<IconProps>;
32
+ readonly columns: FC<IconProps>;
33
+ readonly plus: FC<IconProps>;
34
+ readonly minus: FC<IconProps>;
35
+ readonly sort: FC<IconProps>;
36
+ readonly more: FC<IconProps>;
37
+ readonly x: FC<IconProps>;
38
+ readonly check: FC<IconProps>;
39
+ readonly down: FC<IconProps>;
40
+ readonly up: FC<IconProps>;
41
+ readonly right: FC<IconProps>;
42
+ readonly left: FC<IconProps>;
43
+ readonly cheveron: FC<IconProps>;
44
+ readonly back: FC<IconProps>;
45
+ readonly calendar: FC<IconProps>;
46
+ readonly clock: FC<IconProps>;
47
+ readonly email: FC<IconProps>;
48
+ readonly link: FC<IconProps>;
49
+ readonly hash: FC<IconProps>;
50
+ readonly eye: FC<IconProps>;
51
+ readonly eyeOff: FC<IconProps>;
52
+ readonly copy: FC<IconProps>;
53
+ readonly trash: FC<IconProps>;
54
+ readonly edit: FC<IconProps>;
55
+ readonly save: FC<IconProps>;
56
+ readonly refresh: FC<IconProps>;
57
+ readonly download: FC<IconProps>;
58
+ readonly upload: FC<IconProps>;
59
+ readonly paperclip: FC<IconProps>;
60
+ readonly tag: FC<IconProps>;
61
+ readonly bolt: FC<IconProps>;
62
+ readonly bell: FC<IconProps>;
63
+ readonly ai: FC<IconProps>;
64
+ readonly sparkle: FC<IconProps>;
65
+ readonly command: FC<IconProps>;
66
+ readonly menu: FC<IconProps>;
67
+ readonly dot: FC<IconProps>;
68
+ readonly globe: FC<IconProps>;
69
+ readonly folder: FC<IconProps>;
70
+ readonly branch: FC<IconProps>;
71
+ readonly sun: FC<IconProps>;
72
+ readonly moon: FC<IconProps>;
73
+ readonly settings: FC<IconProps>;
74
+ readonly logout: FC<IconProps>;
75
+ readonly loader: FC<IconProps>;
76
+ readonly grid: FC<IconProps>;
77
+ readonly star: FC<IconProps>;
78
+ readonly warning: FC<IconProps>;
79
+ readonly info: FC<IconProps>;
80
+ readonly building: FC<IconProps>;
81
+ readonly device: FC<IconProps>;
82
+ readonly arrowUp: FC<IconProps>;
83
+ readonly arrowDown: FC<IconProps>;
84
+ readonly external: FC<IconProps>;
85
+ readonly dbtable: FC<IconProps>;
86
+ };
87
+ export type IconName = keyof typeof Icon;
@@ -0,0 +1,4 @@
1
+ import type { ReactNode } from "react";
2
+ export declare function Kbd({ children }: {
3
+ children?: ReactNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import type { ReactNode } from "react";
2
+ export type MenuItemProps = {
3
+ icon?: ReactNode;
4
+ children?: ReactNode;
5
+ onClick?: () => void;
6
+ danger?: boolean;
7
+ kbd?: ReactNode;
8
+ active?: boolean;
9
+ divider?: boolean;
10
+ };
11
+ export declare function MenuItem({ icon, children, onClick, danger, kbd, active, divider }: MenuItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import type { CSSProperties, ReactNode } from "react";
2
+ export type PillTone = "indigo" | "emerald" | "amber" | "rose" | "sky" | "violet" | "slate" | "teal";
3
+ export type PillSize = "xs" | "sm" | "md";
4
+ export type PillProps = {
5
+ tone?: PillTone;
6
+ size?: PillSize;
7
+ dot?: boolean;
8
+ style?: CSSProperties;
9
+ children?: ReactNode;
10
+ };
11
+ export declare function Pill({ tone, children, size, dot, style }: PillProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export type RecordIdBadgeProps = {
2
+ value: string;
3
+ };
4
+ /**
5
+ * Compact record-ID badge. Truncates UUIDs to their first segment for readability
6
+ * and copies the full value on click. Non-UUID ids render in full.
7
+ */
8
+ export declare function RecordIdBadge({ value }: RecordIdBadgeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ export type RowFieldProps = {
3
+ label: ReactNode;
4
+ children?: ReactNode;
5
+ wide?: boolean;
6
+ editing?: boolean;
7
+ required?: boolean;
8
+ hint?: string;
9
+ };
10
+ export declare function RowField({ label, children, wide, editing, required }: RowFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import type { ReactNode } from "react";
2
+ import { type PillTone } from "./Pill";
3
+ export type SectionBadge = {
4
+ text: string;
5
+ tone?: PillTone;
6
+ dot?: boolean;
7
+ };
8
+ export type SectionCardProps = {
9
+ title: ReactNode;
10
+ subtitle?: ReactNode;
11
+ right?: ReactNode;
12
+ badge?: SectionBadge;
13
+ children?: ReactNode;
14
+ collapsible?: boolean;
15
+ defaultOpen?: boolean;
16
+ icon?: ReactNode;
17
+ padding?: string;
18
+ };
19
+ export declare function SectionCard({ title, subtitle, right, badge, children, collapsible, defaultOpen, icon, padding, }: SectionCardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export declare function Spinner({ size }: {
2
+ size?: number;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function cx(...a: Array<string | false | null | undefined>): string;
@@ -0,0 +1,31 @@
1
+ export { cx } from "./cx";
2
+ export { Icon } from "./Icons";
3
+ export type { IconProps, IconName } from "./Icons";
4
+ export { Btn } from "./Btn";
5
+ export type { BtnProps, BtnKind, BtnSize } from "./Btn";
6
+ export { IconBtn } from "./IconBtn";
7
+ export type { IconBtnProps } from "./IconBtn";
8
+ export { Pill } from "./Pill";
9
+ export type { PillProps, PillTone, PillSize } from "./Pill";
10
+ export { Kbd } from "./Kbd";
11
+ export { Avatar } from "./Avatar";
12
+ export type { AvatarProps } from "./Avatar";
13
+ export { Dropdown } from "./Dropdown";
14
+ export type { DropdownProps } from "./Dropdown";
15
+ export { Chip } from "./Chip";
16
+ export type { ChipProps } from "./Chip";
17
+ export { SectionCard } from "./SectionCard";
18
+ export type { SectionCardProps, SectionBadge } from "./SectionCard";
19
+ export { RecordIdBadge } from "./RecordIdBadge";
20
+ export type { RecordIdBadgeProps } from "./RecordIdBadge";
21
+ export { RowField } from "./RowField";
22
+ export type { RowFieldProps } from "./RowField";
23
+ export { BoolToggle } from "./BoolToggle";
24
+ export type { BoolToggleProps } from "./BoolToggle";
25
+ export { MenuItem } from "./MenuItem";
26
+ export type { MenuItemProps } from "./MenuItem";
27
+ export { Check } from "./Check";
28
+ export type { CheckProps } from "./Check";
29
+ export { Spinner } from "./Spinner";
30
+ export { FieldLabel, TextInput, TextArea, Select, DateInput, PasswordInput, TagsInput, JsonField, RefField, ViewField, QuickEditCell, } from "./Fields";
31
+ export type { FieldLabelProps, TextInputProps, TextAreaProps, SelectProps, SelectOption, DateInputProps, PasswordInputProps, TagsInputProps, JsonFieldProps, RefFieldProps, RefFieldItem, ViewFieldProps, QuickEditCellProps, } from "./Fields";
@@ -6,5 +6,5 @@ interface ActionConfirmDialogProps {
6
6
  onConfirm: () => void;
7
7
  isPending: boolean;
8
8
  }
9
- export declare function ActionConfirmDialog({ open, onOpenChange, actionName, message, onConfirm, isPending, }: ActionConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function ActionConfirmDialog({ open, onOpenChange, actionName, message, onConfirm, isPending, }: ActionConfirmDialogProps): import("react/jsx-runtime").JSX.Element | null;
10
10
  export {};
@@ -6,17 +6,7 @@ interface ActionDialogProps {
6
6
  actionName: string;
7
7
  onSubmit: (params: Record<string, unknown>) => void;
8
8
  isPending: boolean;
9
- /**
10
- * Target record for default-value prefill via the `$row.<field>` template
11
- * syntax. When a param default is a string literal `$row.foo`, the dialog
12
- * substitutes `row.foo` at open time. For batch invocations on a list
13
- * page, pass the first selected row (or omit - callers that invoke the
14
- * action without a single-row context simply don't get row prefills).
15
- *
16
- * The substitution is client-side only. The server ignores template
17
- * syntax - it only sees the concrete value the admin submits.
18
- */
19
9
  row?: Record<string, unknown>;
20
10
  }
21
- export declare function ActionDialog({ open, onOpenChange, action, actionName, onSubmit, isPending, row, }: ActionDialogProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function ActionDialog({ open, onOpenChange, action, actionName, onSubmit, isPending, row, }: ActionDialogProps): import("react/jsx-runtime").JSX.Element | null;
22
12
  export {};
@@ -14,5 +14,5 @@ interface ActionResultDialogProps {
14
14
  onClose: () => void;
15
15
  display: ActionDisplayResult;
16
16
  }
17
- export declare function ActionResultDialog({ open, onClose, display }: ActionResultDialogProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function ActionResultDialog({ open, onClose, display }: ActionResultDialogProps): import("react/jsx-runtime").JSX.Element | null;
18
18
  export {};
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from "react";
2
+ import { type Action } from "../../types/schema";
3
+ export interface RunActionOptions {
4
+ /** Full YAML action when available; drives destructive/long_running/resolved_params. */
5
+ action?: Action;
6
+ /** Presentation title for the modal/toast. */
7
+ title?: string;
8
+ /** When `action` is absent, individual flags still steer dispatch. */
9
+ destructive?: boolean;
10
+ longRunning?: boolean;
11
+ /** Invoked after the user confirms / fills params. */
12
+ execute: (params: Record<string, unknown>) => Promise<unknown> | unknown;
13
+ }
14
+ interface ActionRunnerContextValue {
15
+ run: (opts: RunActionOptions) => void;
16
+ }
17
+ export declare function useActionRunner(): ActionRunnerContextValue;
18
+ export declare function ActionRunnerProvider({ children }: {
19
+ children: ReactNode;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,14 @@
1
+ import { type IconName } from "../../components/primitives";
2
+ export interface Crumb {
3
+ label: string;
4
+ icon?: IconName | string;
5
+ onClick?: () => void;
6
+ target?: unknown;
7
+ /** True for the final segment (rendered bold per design spec). */
8
+ isLast?: boolean;
9
+ }
10
+ export interface BreadcrumbsProps {
11
+ items: Crumb[];
12
+ onCrumbClick?: (crumb: Crumb) => void;
13
+ }
14
+ export declare function Breadcrumbs({ items, onCrumbClick }: BreadcrumbsProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,9 @@
1
+ export type ChangePasswordDialogProps = {
2
+ open: boolean;
3
+ onClose: () => void;
4
+ onSubmit: (input: {
5
+ current: string;
6
+ next: string;
7
+ }) => Promise<void> | void;
8
+ };
9
+ export declare function ChangePasswordDialog({ open, onClose, onSubmit }: ChangePasswordDialogProps): import("react/jsx-runtime").JSX.Element | null;
@@ -7,5 +7,5 @@ interface ConfirmDialogProps {
7
7
  onConfirm: () => void;
8
8
  destructive?: boolean;
9
9
  }
10
- export declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, onConfirm, destructive, }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, onConfirm, destructive, }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element | null;
11
11
  export {};
@@ -4,5 +4,5 @@ interface CopyButtonProps {
4
4
  className?: string;
5
5
  size?: "sm" | "icon";
6
6
  }
7
- export declare function CopyButton({ value, title, className, size }: CopyButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function CopyButton({ value, title, size }: CopyButtonProps): import("react/jsx-runtime").JSX.Element;
8
8
  export {};
@@ -1,6 +1,9 @@
1
- import type { LucideProps } from "lucide-react";
2
- interface DynamicIconProps extends LucideProps {
1
+ import type { CSSProperties } from "react";
2
+ interface DynamicIconProps {
3
3
  name: string;
4
+ size?: number | string;
5
+ className?: string;
6
+ style?: CSSProperties;
4
7
  }
5
- export declare function DynamicIcon({ name, ...props }: DynamicIconProps): import("react/jsx-runtime").JSX.Element | null;
8
+ export declare function DynamicIcon({ name, size, className, style }: DynamicIconProps): import("react/jsx-runtime").JSX.Element;
6
9
  export {};
@@ -1,17 +1,12 @@
1
1
  import { Component, type ErrorInfo, type ReactNode } from "react";
2
2
  interface Props {
3
3
  children: ReactNode;
4
- /** Optional fallback UI. Defaults to a centered error card with retry button. */
5
4
  fallback?: ReactNode;
6
5
  }
7
6
  interface State {
8
7
  hasError: boolean;
9
8
  error: Error | null;
10
9
  }
11
- /**
12
- * Catches JavaScript errors in child components and renders a fallback UI
13
- * instead of crashing the entire app.
14
- */
15
10
  export declare class ErrorBoundary extends Component<Props, State> {
16
11
  constructor(props: Props);
17
12
  static getDerivedStateFromError(error: Error): State;
@@ -0,0 +1,6 @@
1
+ export interface AIPanelProps {
2
+ open: boolean;
3
+ onClose: () => void;
4
+ context?: string;
5
+ }
6
+ export declare function AIPanel({ open, onClose, context }: AIPanelProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,18 @@
1
+ import { type NavNode, type Screen } from "../../types/schema";
2
+ export type CommandActionType = "nav" | "new" | "open" | "ai" | "ai-panel" | "theme";
3
+ export interface CommandAction {
4
+ type: CommandActionType;
5
+ id?: string;
6
+ route?: string;
7
+ q?: string;
8
+ }
9
+ export interface CommandPaletteProps {
10
+ open: boolean;
11
+ onClose: () => void;
12
+ onAction: (a: CommandAction) => void;
13
+ mode?: "default" | "new";
14
+ navigation?: NavNode[];
15
+ screens?: Record<string, Screen>;
16
+ includeAI?: boolean;
17
+ }
18
+ export declare function CommandPalette({ open, onClose, onAction, mode, navigation, screens, includeAI, }: CommandPaletteProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1,5 +1,4 @@
1
1
  export interface ViewItem {
2
- /** UUID for DB views, code string for system views */
3
2
  id: string;
4
3
  name: Record<string, string>;
5
4
  icon?: string;
@@ -18,10 +17,5 @@ interface ViewSwitcherProps {
18
17
  onSaveAs?: () => void;
19
18
  onSetDefault?: (viewId: string) => void;
20
19
  }
21
- /**
22
- * ViewSwitcher - dropdown at the top of list pages.
23
- * Shows system views (presets) + personal/shared DB views.
24
- * "Save View" button appears when dirty.
25
- */
26
- export declare function ViewSwitcher({ views, activeViewId, isDirty, onSelect, onSave, onSaveAs, onSetDefault, }: ViewSwitcherProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function ViewSwitcher({ views, activeViewId, isDirty, onSelect, onSave, onSaveAs, }: ViewSwitcherProps): import("react/jsx-runtime").JSX.Element;
27
21
  export {};