@redocly/config-rules-builder 0.0.1 → 0.1.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.
@@ -0,0 +1,12 @@
1
+ import { SectionTone } from '../styles';
2
+ import { AssertionObject } from '../types';
3
+ import { RuleErrors } from '../validation';
4
+ export interface AssertionsEditorProps {
5
+ assertions: AssertionObject;
6
+ onChange: (assertions: AssertionObject) => void;
7
+ keyword: string;
8
+ tone: SectionTone;
9
+ errors: RuleErrors;
10
+ errorPrefix: string;
11
+ }
12
+ export declare function AssertionsEditor({ assertions, onChange, keyword, tone, errors, errorPrefix, }: AssertionsEditorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { HostAdapters } from '../types';
2
+ export interface ConfigPreviewProps {
3
+ yaml: string;
4
+ host?: HostAdapters;
5
+ fileName?: string;
6
+ }
7
+ export declare function ConfigPreview({ yaml, host, fileName }: ConfigPreviewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { NamedRule } from '../types';
2
+ export interface ImportPanelProps {
3
+ onImport: (rules: NamedRule[]) => void;
4
+ }
5
+ export declare function ImportPanel({ onImport }: ImportPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ModalProps {
3
+ title: string;
4
+ subtitle?: string;
5
+ onClose: () => void;
6
+ children: ReactNode;
7
+ footer?: ReactNode;
8
+ width?: number;
9
+ }
10
+ export declare function Modal({ title, subtitle, onClose, children, footer, width }: ModalProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export interface RulerMarker {
2
+ line: number;
3
+ from: number;
4
+ to: number;
5
+ kind: 'match' | 'error' | 'warn';
6
+ title?: string;
7
+ }
8
+ export interface OverviewRulerProps {
9
+ markers: RulerMarker[];
10
+ totalLines: number;
11
+ onMarkerClick: (marker: RulerMarker) => void;
12
+ }
13
+ export declare function OverviewRuler({ markers, totalLines, onMarkerClick }: OverviewRulerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { ProblemInfo } from '../types';
2
+ export interface ProblemsPanelProps {
3
+ problems: ProblemInfo[];
4
+ ruleErrors: string[];
5
+ specError?: string;
6
+ isRunning: boolean;
7
+ onSelect: (problem: ProblemInfo) => void;
8
+ }
9
+ export declare function ProblemsPanel({ problems, ruleErrors, specError, isRunning, onSelect, }: ProblemsPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { RuleEntry } from '../state';
2
+ export interface RuleCardProps {
3
+ entry: RuleEntry;
4
+ selected: boolean;
5
+ matchCount: number;
6
+ isDuplicateName: boolean;
7
+ isEvaluating: boolean;
8
+ onToggle: () => void;
9
+ onChange: (entry: RuleEntry) => void;
10
+ onRemove: () => void;
11
+ }
12
+ export declare function RuleCard({ entry, selected, matchCount, isDuplicateName, isEvaluating, onToggle, onChange, onRemove, }: RuleCardProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare const Badge: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$dim"> & {
14
+ $dim?: boolean;
15
+ }, never> & Partial<Pick<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$dim"> & {
16
+ $dim?: boolean;
17
+ }, never>>> & string;
@@ -0,0 +1,16 @@
1
+ import { RuleEntry } from '../state';
2
+ import { ConfigPreviewProps } from './ConfigPreview';
3
+ import { ImportPanelProps } from './ImportPanel';
4
+ export interface RuleListProps {
5
+ entries: RuleEntry[];
6
+ selectedId: string | null;
7
+ matchCountById: Record<string, number>;
8
+ onToggle: (id: string) => void;
9
+ onChangeEntry: (entry: RuleEntry) => void;
10
+ onRemove: (id: string) => void;
11
+ onAdd: () => void;
12
+ isEvaluating: boolean;
13
+ importProps: ImportPanelProps;
14
+ configPreviewProps: ConfigPreviewProps;
15
+ }
16
+ export declare function RuleList({ entries, selectedId, matchCountById, onToggle, onChangeEntry, onRemove, onAdd, isEvaluating, importProps, configPreviewProps, }: RuleListProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { ConfigurableRule, HostAdapters, NamedRule } from '../types';
2
+ export interface RulesBuilderProps {
3
+ defaultSpec?: string;
4
+ defaultSpecFileName?: string;
5
+ initialRule?: ConfigurableRule;
6
+ initialRuleName?: string;
7
+ onRuleChange?: (yaml: string, rules: NamedRule[]) => void;
8
+ host?: HostAdapters;
9
+ height?: number;
10
+ }
11
+ export declare function RulesBuilder({ defaultSpec, defaultSpecFileName, initialRule, initialRuleName, onRuleChange, host, height, }: RulesBuilderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,48 @@
1
+ import { HostAdapters } from '../types';
2
+ import { RulerMarker } from './OverviewRuler';
3
+ export interface FailRange {
4
+ from: number;
5
+ to: number;
6
+ messages: string[];
7
+ severity: 'error' | 'warn';
8
+ }
9
+ export interface SpecHighlights {
10
+ matchKeys: {
11
+ from: number;
12
+ to: number;
13
+ }[];
14
+ matchBlocks: {
15
+ from: number;
16
+ to: number;
17
+ }[];
18
+ matchProps: {
19
+ from: number;
20
+ to: number;
21
+ }[];
22
+ fails: FailRange[];
23
+ }
24
+ export declare const EMPTY_HIGHLIGHTS: SpecHighlights;
25
+ export interface SpecPanelProps {
26
+ spec: string;
27
+ fileName: string;
28
+ highlights: SpecHighlights;
29
+ rulerMarkers: RulerMarker[];
30
+ matchTargets: {
31
+ from: number;
32
+ to: number;
33
+ }[];
34
+ totalLines: number;
35
+ jump?: {
36
+ from: number;
37
+ to: number;
38
+ };
39
+ matchCount: number;
40
+ showMatchStatus: boolean;
41
+ isEvaluating: boolean;
42
+ onSpecChange: (content: string, fileName?: string) => void;
43
+ onResetSpec: () => void;
44
+ uploadError?: string;
45
+ onUploadError: (message?: string) => void;
46
+ host?: HostAdapters;
47
+ }
48
+ export declare function SpecPanel({ spec, fileName, highlights, rulerMarkers, matchTargets, totalLines, jump, matchCount, showMatchStatus, isEvaluating, onSpecChange, onResetSpec, uploadError, onUploadError, host, }: SpecPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { SubjectObject } from '../types';
2
+ import { RuleErrors } from '../validation';
3
+ export interface SubjectEditorProps {
4
+ subject: SubjectObject;
5
+ onChange: (subject: SubjectObject) => void;
6
+ lead: string;
7
+ ariaPrefix: string;
8
+ errors: RuleErrors;
9
+ errorPrefix: string;
10
+ }
11
+ export declare function SubjectEditor({ subject, onChange, lead, ariaPrefix, errors, errorPrefix, }: SubjectEditorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export interface ChipListInputProps {
2
+ values: string[];
3
+ onChange: (values: string[]) => void;
4
+ ariaLabel: string;
5
+ placeholder?: string;
6
+ }
7
+ export declare function ChipListInput({ values, onChange, ariaLabel, placeholder }: ChipListInputProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export interface ComboboxProps {
2
+ value: string;
3
+ options: string[];
4
+ onChange: (value: string) => void;
5
+ ariaLabel: string;
6
+ placeholder?: string;
7
+ width?: number;
8
+ }
9
+ export declare function Combobox({ value, options, onChange, ariaLabel, placeholder, width, }: ComboboxProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export interface SegmentedOption<T extends string> {
2
+ value: T;
3
+ label: string;
4
+ activeColor?: string;
5
+ }
6
+ export interface SegmentedProps<T extends string> {
7
+ value: T;
8
+ options: SegmentedOption<T>[];
9
+ onChange: (value: T) => void;
10
+ ariaLabel: string;
11
+ }
12
+ export declare function Segmented<T extends string>({ value, options, onChange, ariaLabel, }: SegmentedProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { Severity } from '../../types';
2
+ export declare function SeverityPill({ value, onChange, }: {
3
+ value: Severity;
4
+ onChange: (value: Severity) => void;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,31 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { SectionTone } from '../../styles';
3
+ export declare const InlineSelect: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never>>> & string;
4
+ export declare const InlineInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>> & string;
5
+ export declare const MonoInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>, "as" | "forwardedAs"> & {
6
+ as?: import('styled-components').WebTarget | undefined;
7
+ forwardedAs?: import('styled-components').WebTarget | undefined;
8
+ }, never> & Partial<Pick<import('styled-components').FastOmit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>, "as" | "forwardedAs"> & {
9
+ as?: import('styled-components').WebTarget | undefined;
10
+ forwardedAs?: import('styled-components').WebTarget | undefined;
11
+ }, never>>> & string;
12
+ export declare const ToolbarButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
13
+ export declare const TriggerButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
14
+ export declare const SecondaryButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
15
+ export declare const PrimaryButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
16
+ export declare const Keyword: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
17
+ export declare function Section({ tone, label, hint, children, }: {
18
+ tone: SectionTone;
19
+ label: string;
20
+ hint: string;
21
+ children: ReactNode;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
+ export declare const SentenceRow: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
24
+ export declare function Chevron({ open }: {
25
+ open: boolean;
26
+ }): import("react/jsx-runtime").JSX.Element;
27
+ export declare function FieldSquiggle({ error, children, style, }: {
28
+ error?: string;
29
+ children: ReactNode;
30
+ style?: CSSProperties;
31
+ }): import("react/jsx-runtime").JSX.Element;