@toolr/ui-design 0.1.5 → 0.1.6
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/agent-rules.json +91 -0
- package/ai-manifest.json +190 -0
- package/components/content/info-panel-primitives.tsx +14 -14
- package/components/lib/ai-tools.tsx +1 -1
- package/components/sections/ai-tools-paths/tools-paths-panel.tsx +7 -7
- package/components/sections/captured-issues/captured-issues-panel.tsx +11 -11
- package/components/sections/golden-snapshots/file-diff-viewer.tsx +13 -13
- package/components/sections/golden-snapshots/golden-sync-panel.tsx +5 -5
- package/components/sections/golden-snapshots/snapshot-manager.tsx +11 -11
- package/components/sections/golden-snapshots/status-overview.tsx +20 -20
- package/components/sections/golden-snapshots/version-manager.tsx +8 -8
- package/components/sections/prompt-editor/file-type-tabbed-prompt-editor.tsx +4 -4
- package/components/sections/prompt-editor/simulator-prompt-editor.tsx +5 -5
- package/components/sections/prompt-editor/tabbed-prompt-editor.tsx +7 -7
- package/components/sections/report-bug/report-bug-form.tsx +14 -14
- package/components/sections/report-bug/screenshot-uploader.tsx +6 -6
- package/components/sections/snapshot-browser/snapshot-browser-panel.tsx +3 -3
- package/components/sections/snapshot-browser/snapshot-tree.tsx +8 -8
- package/components/sections/snippets-editor/snippets-editor.tsx +81 -22
- package/components/settings/SettingsHeader.tsx +1 -1
- package/components/settings/SettingsTreeNav.tsx +22 -4
- package/components/ui/action-dialog.tsx +5 -5
- package/components/ui/badge.tsx +4 -4
- package/components/ui/bottom-panel-header.tsx +4 -4
- package/components/ui/breadcrumb.tsx +2 -2
- package/components/ui/collapsible-section.tsx +1 -1
- package/components/ui/cookie-consent.tsx +5 -5
- package/components/ui/detail-section.tsx +3 -3
- package/components/ui/editor-placeholder-card.tsx +7 -7
- package/components/ui/editor-toolbar.tsx +12 -0
- package/components/ui/execution-details-panel.tsx +6 -6
- package/components/ui/extension-list-card.tsx +3 -3
- package/components/ui/file-structure-section.tsx +17 -17
- package/components/ui/file-tree.tsx +3 -1
- package/components/ui/files-panel.tsx +27 -9
- package/components/ui/filter-dropdown.tsx +5 -5
- package/components/ui/form-actions.tsx +1 -1
- package/components/ui/frontmatter-form-header.tsx +4 -4
- package/components/ui/icon-button.tsx +1 -1
- package/components/ui/input.tsx +5 -5
- package/components/ui/label.tsx +4 -4
- package/components/ui/layout-tab-bar.tsx +4 -4
- package/components/ui/modal.tsx +2 -2
- package/components/ui/nav-card.tsx +3 -3
- package/components/ui/navigation-bar.tsx +5 -5
- package/components/ui/number-input.tsx +4 -4
- package/components/ui/registry-browser.tsx +4 -4
- package/components/ui/registry-card.tsx +13 -13
- package/components/ui/registry-detail.tsx +6 -6
- package/components/ui/segmented-toggle.tsx +4 -4
- package/components/ui/select.tsx +5 -5
- package/components/ui/selection-grid.tsx +4 -4
- package/components/ui/setting-row.tsx +1 -1
- package/components/ui/settings-card.tsx +3 -3
- package/components/ui/settings-info-box.tsx +1 -1
- package/components/ui/settings-section-title.tsx +1 -1
- package/components/ui/snapshot-card.tsx +7 -7
- package/components/ui/snippets-panel.tsx +10 -10
- package/components/ui/sort-dropdown.tsx +2 -2
- package/components/ui/status-card.tsx +4 -4
- package/components/ui/tab-bar.tsx +2 -2
- package/components/ui/tooltip.tsx +3 -3
- package/dist/content.js +14 -14
- package/dist/index.d.ts +11 -4
- package/dist/index.js +428 -336
- package/dist/tokens/primitives.css +9 -2
- package/package.json +13 -3
- package/tokens/primitives.css +9 -2
package/dist/content.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// components/content/info-panel-primitives.tsx
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
function P({ children }) {
|
|
4
|
-
return /* @__PURE__ */ jsx("p", { className: "text-
|
|
4
|
+
return /* @__PURE__ */ jsx("p", { className: "text-md text-neutral-400 leading-relaxed mb-5", children });
|
|
5
5
|
}
|
|
6
6
|
function SectionHeader({ color, children }) {
|
|
7
7
|
const textColor = color ? `text-${color}-500/70` : "text-neutral-500";
|
|
8
|
-
return /* @__PURE__ */ jsx("p", { className: `${textColor} text-
|
|
8
|
+
return /* @__PURE__ */ jsx("p", { className: `${textColor} text-sm uppercase font-semibold pb-0.5 border-b border-neutral-700/50 mb-2.5`, style: { letterSpacing: "0.8px" }, children });
|
|
9
9
|
}
|
|
10
10
|
function DL({ children }) {
|
|
11
11
|
return /* @__PURE__ */ jsx("div", { className: "mb-5", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-[auto_1fr] gap-x-4", children }) });
|
|
@@ -13,12 +13,12 @@ function DL({ children }) {
|
|
|
13
13
|
function DLRow({ term, children, even }) {
|
|
14
14
|
const bg = even ? "bg-white/[0.015]" : "";
|
|
15
15
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
16
|
-
/* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} font-semibold text-
|
|
17
|
-
/* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} text-
|
|
16
|
+
/* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} font-semibold text-md whitespace-nowrap`, children: term }),
|
|
17
|
+
/* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} text-md text-neutral-400`, children })
|
|
18
18
|
] });
|
|
19
19
|
}
|
|
20
20
|
function UL({ children }) {
|
|
21
|
-
return /* @__PURE__ */ jsx("ul", { className: "text-
|
|
21
|
+
return /* @__PURE__ */ jsx("ul", { className: "text-md text-neutral-400 space-y-2 mb-5", children });
|
|
22
22
|
}
|
|
23
23
|
function LI({ color, children }) {
|
|
24
24
|
return /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2", children: [
|
|
@@ -30,7 +30,7 @@ function OL({ children }) {
|
|
|
30
30
|
return /* @__PURE__ */ jsx("div", { className: "space-y-2 mb-5", children });
|
|
31
31
|
}
|
|
32
32
|
function OLI({ n, color, children }) {
|
|
33
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2.5 text-
|
|
33
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2.5 text-md", children: [
|
|
34
34
|
/* @__PURE__ */ jsxs("span", { className: `text-${color}-400 shrink-0 w-4 text-right font-bold`, children: [
|
|
35
35
|
n,
|
|
36
36
|
"."
|
|
@@ -61,17 +61,17 @@ function getCalloutColors(color) {
|
|
|
61
61
|
}
|
|
62
62
|
function Callout({ color, children }) {
|
|
63
63
|
const c = CALLOUT_COLORS[color] ?? CALLOUT_COLORS.blue;
|
|
64
|
-
return /* @__PURE__ */ jsx("div", { className: `border-l-4 ${c.borderL} border-y ${c.borderY} ${c.bg} px-3 py-2.5 rounded-r mb-5 text-
|
|
64
|
+
return /* @__PURE__ */ jsx("div", { className: `border-l-4 ${c.borderL} border-y ${c.borderY} ${c.bg} px-3 py-2.5 rounded-r mb-5 text-md text-neutral-400`, children });
|
|
65
65
|
}
|
|
66
66
|
function CalloutCode({ color, children }) {
|
|
67
67
|
const c = CALLOUT_COLORS[color] ?? CALLOUT_COLORS.blue;
|
|
68
|
-
return /* @__PURE__ */ jsx("code", { className: `block bg-neutral-800/80 px-2 py-1 rounded mt-1.5 text-
|
|
68
|
+
return /* @__PURE__ */ jsx("code", { className: `block bg-neutral-800/80 px-2 py-1 rounded mt-1.5 text-md ${c.codeText}`, children });
|
|
69
69
|
}
|
|
70
70
|
function CalloutDim({ children }) {
|
|
71
71
|
return /* @__PURE__ */ jsx("p", { className: "text-neutral-500 mt-1.5", children });
|
|
72
72
|
}
|
|
73
73
|
function CodeBlock({ children }) {
|
|
74
|
-
return /* @__PURE__ */ jsx("div", { className: "bg-neutral-900/60 rounded-md p-3 font-mono text-
|
|
74
|
+
return /* @__PURE__ */ jsx("div", { className: "bg-neutral-900/60 rounded-md p-3 font-mono text-sm text-neutral-400 mb-5 whitespace-pre overflow-x-auto leading-normal", children });
|
|
75
75
|
}
|
|
76
76
|
function CK({ color, children }) {
|
|
77
77
|
const textColor = color ? `text-${color}-400` : "";
|
|
@@ -98,13 +98,13 @@ function LocationItem({
|
|
|
98
98
|
className: `w-2 h-2 rounded-full bg-${color}-500/50 border border-${color}-500 shrink-0`
|
|
99
99
|
}
|
|
100
100
|
),
|
|
101
|
-
/* @__PURE__ */ jsx("span", { className: `text-${color}-400 text-
|
|
101
|
+
/* @__PURE__ */ jsx("span", { className: `text-${color}-400 text-md font-semibold`, children: label })
|
|
102
102
|
] }),
|
|
103
|
-
/* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} text-
|
|
103
|
+
/* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} text-md text-neutral-400`, children })
|
|
104
104
|
] });
|
|
105
105
|
}
|
|
106
106
|
function TitledLI({ color, title, children }) {
|
|
107
|
-
return /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-
|
|
107
|
+
return /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-md text-neutral-400", children: [
|
|
108
108
|
/* @__PURE__ */ jsx("span", { className: `text-${color}-400 shrink-0`, style: { marginTop: "3px", fontSize: "18px", lineHeight: "14px" }, children: "\u2022" }),
|
|
109
109
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
110
110
|
/* @__PURE__ */ jsx("span", { className: `text-${color}-300 font-semibold`, children: title }),
|
|
@@ -115,7 +115,7 @@ function TitledLI({ color, title, children }) {
|
|
|
115
115
|
] });
|
|
116
116
|
}
|
|
117
117
|
function CalloutDialog({ color, lines }) {
|
|
118
|
-
return /* @__PURE__ */ jsx("div", { className: "bg-neutral-800/80 rounded px-2 py-1 mt-1.5 flex flex-col gap-0.5 text-
|
|
118
|
+
return /* @__PURE__ */ jsx("div", { className: "bg-neutral-800/80 rounded px-2 py-1 mt-1.5 flex flex-col gap-0.5 text-md", children: lines.map((line, idx) => /* @__PURE__ */ jsxs("div", { children: [
|
|
119
119
|
/* @__PURE__ */ jsxs("span", { className: `text-${color}-300 font-semibold mr-1`, children: [
|
|
120
120
|
line.speaker,
|
|
121
121
|
":"
|
|
@@ -131,7 +131,7 @@ function StatusBadge({ value, badgeColor, label, children, even }) {
|
|
|
131
131
|
DLRow,
|
|
132
132
|
{
|
|
133
133
|
term: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
134
|
-
/* @__PURE__ */ jsx("span", { className: `inline-flex items-center justify-center w-5 h-5 rounded-full bg-${badgeColor}-500/20 text-${badgeColor}-400 text-
|
|
134
|
+
/* @__PURE__ */ jsx("span", { className: `inline-flex items-center justify-center w-5 h-5 rounded-full bg-${badgeColor}-500/20 text-${badgeColor}-400 text-xs font-bold shrink-0`, children: value }),
|
|
135
135
|
/* @__PURE__ */ jsx("span", { className: `text-${badgeColor}-400 font-semibold`, children: label })
|
|
136
136
|
] }),
|
|
137
137
|
even,
|
package/dist/index.d.ts
CHANGED
|
@@ -731,6 +731,10 @@ declare function collectDirPaths(nodes: FileTreeNode[], rootName?: string, prefi
|
|
|
731
731
|
declare function FileTree({ nodes, rootName, selectedPath, onSelectFile, prefix, expandedPaths, onTogglePath, accentColor }: FileTreeProps): react_jsx_runtime.JSX.Element;
|
|
732
732
|
|
|
733
733
|
interface EditorToolbarProps {
|
|
734
|
+
/** Optional title displayed in the toolbar */
|
|
735
|
+
title?: string;
|
|
736
|
+
/** Optional description displayed below the title */
|
|
737
|
+
description?: string;
|
|
734
738
|
/** Whether content has unsaved changes */
|
|
735
739
|
isDirty: boolean;
|
|
736
740
|
/** Whether save operation is in progress */
|
|
@@ -755,7 +759,7 @@ interface EditorToolbarProps {
|
|
|
755
759
|
/** Optional: Additional action buttons on the right side (before save) */
|
|
756
760
|
rightActions?: ActionItem[];
|
|
757
761
|
}
|
|
758
|
-
declare function EditorToolbar({ isDirty, isSaving, onSave, canReset, onReset, resetTooltip, isReadOnly, hasError, leftActions, rightActions, }: EditorToolbarProps): react_jsx_runtime.JSX.Element | null;
|
|
762
|
+
declare function EditorToolbar({ title, description, isDirty, isSaving, onSave, canReset, onReset, resetTooltip, isReadOnly, hasError, leftActions, rightActions, }: EditorToolbarProps): react_jsx_runtime.JSX.Element | null;
|
|
759
763
|
|
|
760
764
|
/** Status banner configuration for outdated/info messages */
|
|
761
765
|
interface StatusBanner {
|
|
@@ -2216,8 +2220,9 @@ interface SnippetsEditorProps {
|
|
|
2216
2220
|
/** Section description, e.g. "Define snippets to reuse in skills prompts..." */
|
|
2217
2221
|
description?: string;
|
|
2218
2222
|
className?: string;
|
|
2223
|
+
accentColor?: string;
|
|
2219
2224
|
}
|
|
2220
|
-
declare function SnippetsEditor({ api, snippets, title, description, className, }: SnippetsEditorProps): react_jsx_runtime.JSX.Element;
|
|
2225
|
+
declare function SnippetsEditor({ api, snippets, title, description, className, accentColor, }: SnippetsEditorProps): react_jsx_runtime.JSX.Element;
|
|
2221
2226
|
|
|
2222
2227
|
/**
|
|
2223
2228
|
* useSnippetsEditor — Form state and CRUD hook for the snippets editor
|
|
@@ -2482,8 +2487,9 @@ interface FilesPanelProps {
|
|
|
2482
2487
|
onAction?: (action: string, path: string) => void;
|
|
2483
2488
|
showSearch?: boolean;
|
|
2484
2489
|
className?: string;
|
|
2490
|
+
accentColor?: string;
|
|
2485
2491
|
}
|
|
2486
|
-
declare function FilesPanel({ files, selectedPath, onSelect, onAction, showSearch, className, }: FilesPanelProps): react_jsx_runtime.JSX.Element;
|
|
2492
|
+
declare function FilesPanel({ files, selectedPath, onSelect, onAction, showSearch, className, accentColor, }: FilesPanelProps): react_jsx_runtime.JSX.Element;
|
|
2487
2493
|
|
|
2488
2494
|
/** Searchable panel for browsing, copying, and inserting code snippets. */
|
|
2489
2495
|
interface Snippet {
|
|
@@ -2820,8 +2826,9 @@ interface SettingsTreeNavProps {
|
|
|
2820
2826
|
tree: SettingsTreeNode[];
|
|
2821
2827
|
selectedPath: string;
|
|
2822
2828
|
onSelectPath: (path: string) => void;
|
|
2829
|
+
accentColor?: string;
|
|
2823
2830
|
}
|
|
2824
|
-
declare function SettingsTreeNav({ tree, selectedPath, onSelectPath }: SettingsTreeNavProps): react_jsx_runtime.JSX.Element;
|
|
2831
|
+
declare function SettingsTreeNav({ tree, selectedPath, onSelectPath, accentColor }: SettingsTreeNavProps): react_jsx_runtime.JSX.Element;
|
|
2825
2832
|
|
|
2826
2833
|
interface SettingsHeaderProps {
|
|
2827
2834
|
description: string;
|