@magicvr/schema-ui-renderer 0.2.0 → 0.3.1

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.
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function AccountSessionToolbar(_props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function ActivityExport({ node }: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function CronPreview(props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function DataPermissionScopes(_props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,43 @@
1
+ import type { ReactNode } from "react";
2
+ export type SortOrder = "asc" | "desc";
3
+ export interface SortState {
4
+ field: string;
5
+ order: SortOrder;
6
+ }
7
+ export interface DataTableColumn<T> {
8
+ key: string;
9
+ /** Cell content or header node (checkboxes render in headers for selection). */
10
+ label: ReactNode;
11
+ sortable?: boolean;
12
+ /** W4 · GOAL-005: render the string fallback single-line truncated with a
13
+ * native title full-text affordance so long values do not crowd out
14
+ * sibling columns. Custom render cells are unaffected. Since the
15
+ * table-style refresh every string cell truncates by default; this flag
16
+ * is kept for schema declarations that opt into the 16rem cap. */
17
+ truncate?: boolean;
18
+ /** Column width hint (px number or CSS length). Content-driven auto layout
19
+ * otherwise; a column that declares a width skips the default max-width
20
+ * cap so it can exceed it (table-layout auto still grows on content). */
21
+ width?: number | string;
22
+ /** Minimum column width (px number or CSS length). */
23
+ minWidth?: number | string;
24
+ render?: (row: T) => ReactNode;
25
+ }
26
+ export interface DataTableProps<T> {
27
+ columns: DataTableColumn<T>[];
28
+ rows: T[];
29
+ rowKey: (row: T) => string;
30
+ sort?: SortState;
31
+ onSortChange?: (sort: SortState | null) => void;
32
+ loading?: boolean;
33
+ error?: string | null;
34
+ emptyMessage?: string;
35
+ caption?: string;
36
+ /** Invoked when a data row is clicked (row selection, S4 · GOAL-007). */
37
+ onRowClick?: (row: T) => void;
38
+ /** Row key of the currently selected row (highlight), S4 · GOAL-007. */
39
+ selectedKey?: string;
40
+ /** W15-F02: retry control shown in the error state. */
41
+ onRetry?: () => void;
42
+ }
43
+ export declare function DataTable<T>({ columns, rows, rowKey, sort, onSortChange, loading, error, emptyMessage, caption, onRowClick, selectedKey, onRetry, }: DataTableProps<T>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function EmailIdentityCard(_props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function ForcePasswordChange(): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function ImportTemplateDownload(_props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Public invitation acceptance surface (workspace-019 R3 · GOAL-004 C4):
3
+ * mounted at /invite/accept?token=… for unauthenticated visitors. Success
4
+ * returns WITHOUT tokens — the new user signs in with their chosen password.
5
+ */
6
+ export declare function InviteAcceptPage(): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Invitation issue card (workspace-019): the create operation PLUS one-time
3
+ * link disclosure for creation and resend. The records list lives on the
4
+ * schema table of the same page; resend accepts the invite id from the table
5
+ * (column "id") because the schema engine cannot disclose response bodies.
6
+ */
7
+ export declare function InviteIssueCard(_props: unknown): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ /**
3
+ * Resend dialog (workspace-019, protocol modal action): the row-level
4
+ * "Resend" opens this modal with the triggering invite in context.modalRow
5
+ * (renderer injects it for modal content). Sending rotates the token via the
6
+ * admin API and discloses the ONE-TIME link inline — the schema engine cannot
7
+ * stream response bodies into the page, so the modal is the interaction.
8
+ */
9
+ export declare function InviteResendDialog(props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Language switcher (S1 · C4) — refactored to a lightweight header
3
+ * dropdown (2026-08-14, user request):
4
+ *
5
+ * - Trigger: pure icon button (lucide Languages), same size/shape as the
6
+ * theme toggle and notification bell (size-9 rounded-md ghost).
7
+ * - Menu: absolutely positioned panel (NO portal — the app root carries
8
+ * the `dark` class, so the panel inherits the dark theme variables
9
+ * automatically; no Radix/Headless portal scope issue).
10
+ * - Dark-mode styling via design tokens (shadcn convention): bg-popover
11
+ * resolves to ~neutral-900 in dark, border-border to white/10
12
+ * (~neutral-800), accent hover to ~neutral-800, popover-foreground to
13
+ * ~neutral-200 — exactly the requested palette; light mode stays
14
+ * correct automatically.
15
+ * - Selected item shows a checkmark (lucide Check) on the right.
16
+ *
17
+ * Reachable from the Shell and the anonymous login page — no settings
18
+ * permission required (VP-007 requirement).
19
+ */
20
+ export interface LocaleSwitcherProps {
21
+ className?: string;
22
+ }
23
+ export declare function LocaleSwitcher({ className }: LocaleSwitcherProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function MailAdminTab(_props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function MfaManager(_props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function MonitoringAutoRefresh(_props: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function NotificationCenter({ node, context }: CustomComponentProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Password-policy configuration block (workspace-019 R3 · GOAL-004 D-001
3
+ * §2): the admin.settings tab extension. GET/PATCH /api/settings/password-
4
+ * policy; the server enforces range validation (8–72 / 0–4 / 0–10).
5
+ */
6
+ export declare function PasswordPolicyTab(_props: unknown): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ export interface QrCodeProps {
2
+ /** Text to encode (e.g. an otpauth:// URI). Empty → renders nothing. */
3
+ value: string;
4
+ /** Rendered size in CSS pixels (the matrix is square). */
5
+ size?: number;
6
+ /** Extra class names for the wrapping figure. */
7
+ className?: string;
8
+ /** Accessible label. */
9
+ label?: string;
10
+ }
11
+ /**
12
+ * Renders the QR module matrix as SVG. Each dark module becomes a 1×1 rect in
13
+ * a unit viewBox scaled to `size`; a white background rect keeps scanners
14
+ * happy (quiet zone included via the 4-module default margin of the encoder).
15
+ */
16
+ export declare function QrCode({ value, size, className, label }: QrCodeProps): import("react").JSX.Element | null;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Theme toggle (S1 · C3) — W8 visual unification (GOAL-009):
3
+ *
4
+ * The trigger now matches the neighbouring header icon buttons (language
5
+ * switcher and notification bell): size-9 rounded-md ghost with
6
+ * text-muted-foreground + hover:bg-accent — instead of the form-styled
7
+ * outline Button. The tooltip / aria-label follow the active locale via
8
+ * the i18n catalog (shell.theme.toggle) — no hardcoded English.
9
+ */
10
+ export declare function ThemeToggle(): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Timezone switcher (workspace-020 · R2 · C2).
3
+ *
4
+ * User-level timezone override next to the language switcher in the header
5
+ * locale channel (contract GOAL-002 D-001 §4.2): persists via the single
6
+ * localStorage channel "schema-ui:timezone"; "auto" removes the key.
7
+ * The option list is the documented common set (contract §6 permits a
8
+ * verifiable, extendable list); the effective timezone always degrades
9
+ * safely through the L1–L4 resolver in i18n/timezone.
10
+ */
11
+ /** Common IANA set offered in the header menu (extendable per contract §6). */
12
+ export declare const TIMEZONE_OPTIONS: readonly string[];
13
+ export interface TimezoneSwitcherProps {
14
+ className?: string;
15
+ }
16
+ export declare function TimezoneSwitcher({ className }: TimezoneSwitcherProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { type CustomComponentProps } from "@schema-ui/renderer/renderer/custom-components";
2
+ export declare function WalletEnsure(_props: CustomComponentProps): import("react").JSX.Element;