@usetheo/ui 0.1.0-next.0 → 0.3.0-next.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.
- package/CHANGELOG.md +62 -0
- package/README.md +116 -9
- package/dist/index.d.ts +242 -16
- package/dist/index.js +436 -131
- package/dist/index.js.map +1 -1
- package/dist/plugin-Atb0VKtr.d.ts +172 -0
- package/dist/slide/index.d.ts +212 -0
- package/dist/slide/index.js +714 -0
- package/dist/slide/index.js.map +1 -0
- package/dist/slide/plugins/emoji/index.d.ts +29 -0
- package/dist/slide/plugins/emoji/index.js +157 -0
- package/dist/slide/plugins/emoji/index.js.map +1 -0
- package/dist/slide/plugins/math/index.d.ts +13 -0
- package/dist/slide/plugins/math/index.js +145 -0
- package/dist/slide/plugins/math/index.js.map +1 -0
- package/dist/slide/plugins/mermaid/index.d.ts +55 -0
- package/dist/slide/plugins/mermaid/index.js +218 -0
- package/dist/slide/plugins/mermaid/index.js.map +1 -0
- package/dist/slide/plugins/shiki/index.d.ts +18 -0
- package/dist/slide/plugins/shiki/index.js +87 -0
- package/dist/slide/plugins/shiki/index.js.map +1 -0
- package/dist/slide/themes/default.css +256 -0
- package/dist/slide/themes/layouts.css +143 -0
- package/dist/slide/themes/violet-forge.css +256 -0
- package/dist/slide-deck/index.css +52 -0
- package/dist/slide-deck/index.css.map +1 -0
- package/dist/slide-deck/index.d.ts +377 -0
- package/dist/slide-deck/index.js +1797 -0
- package/dist/slide-deck/index.js.map +1 -0
- package/dist/whiteboard/index.d.ts +258 -0
- package/dist/whiteboard/index.js +738 -0
- package/dist/whiteboard/index.js.map +1 -0
- package/package.json +126 -6
- package/registry/index.json +42 -0
- package/registry/r/agent-composer.json +4 -4
- package/registry/r/agent-editor.json +9 -9
- package/registry/r/agent-error-card.json +2 -2
- package/registry/r/agent-event.json +4 -4
- package/registry/r/agent-handoff.json +2 -2
- package/registry/r/agent-profile.json +2 -2
- package/registry/r/agent-starting-state.json +2 -2
- package/registry/r/agent-stream.json +9 -9
- package/registry/r/agent-streaming.json +2 -2
- package/registry/r/agent-timeline.json +4 -4
- package/registry/r/approval-card.json +4 -4
- package/registry/r/artifact-preview.json +2 -2
- package/registry/r/attachment-chip.json +4 -4
- package/registry/r/audit-log-entry.json +3 -3
- package/registry/r/auto-compact-notice.json +2 -2
- package/registry/r/avatar.json +2 -2
- package/registry/r/badge.json +3 -3
- package/registry/r/browser-controls.json +2 -2
- package/registry/r/build-log-stream.json +2 -2
- package/registry/r/button.json +3 -3
- package/registry/r/capability-indicator.json +3 -3
- package/registry/r/card.json +3 -3
- package/registry/r/chat-composer.json +3 -3
- package/registry/r/chat-message.json +3 -3
- package/registry/r/chat-thread.json +2 -2
- package/registry/r/checkbox.json +4 -3
- package/registry/r/cn.json +1 -1
- package/registry/r/command-palette.json +4 -4
- package/registry/r/context-card.json +3 -3
- package/registry/r/context-window-bar.json +2 -2
- package/registry/r/cost-meter.json +2 -2
- package/registry/r/created-files-card.json +3 -3
- package/registry/r/cron-job-card.json +2 -2
- package/registry/r/cron-jobs-list.json +3 -3
- package/registry/r/deployment-row.json +3 -3
- package/registry/r/dialog.json +2 -2
- package/registry/r/diff-viewer.json +2 -2
- package/registry/r/domain-config.json +6 -6
- package/registry/r/empty-state.json +3 -3
- package/registry/r/env-var-editor.json +5 -5
- package/registry/r/folder-context-card.json +3 -3
- package/registry/r/folder-selector.json +2 -2
- package/registry/r/form-field.json +3 -3
- package/registry/r/hook-config.json +2 -2
- package/registry/r/hook-event-log.json +2 -2
- package/registry/r/input.json +6 -3
- package/registry/r/intent-selector.json +3 -3
- package/registry/r/label.json +2 -2
- package/registry/r/lane-board.json +2 -2
- package/registry/r/login-split.json +2 -2
- package/registry/r/mcp-server-card.json +2 -2
- package/registry/r/mcp-server-list.json +3 -3
- package/registry/r/memory-editor.json +3 -3
- package/registry/r/mention-menu.json +3 -3
- package/registry/r/metrics-panel.json +2 -2
- package/registry/r/model-card.json +3 -3
- package/registry/r/model-selector.json +2 -2
- package/registry/r/permission-matrix.json +2 -2
- package/registry/r/permission-modal.json +4 -4
- package/registry/r/preview-env-card.json +5 -5
- package/registry/r/preview-panel.json +3 -3
- package/registry/r/progress-checklist.json +3 -3
- package/registry/r/project-card.json +5 -5
- package/registry/r/project-switcher.json +2 -2
- package/registry/r/quick-action-chips.json +3 -3
- package/registry/r/radio-group.json +2 -2
- package/registry/r/recent-folders-list.json +2 -2
- package/registry/r/rollback-ui.json +4 -4
- package/registry/r/rule-card.json +3 -3
- package/registry/r/rule-editor.json +10 -10
- package/registry/r/rule-types.json +1 -1
- package/registry/r/run-stats.json +2 -2
- package/registry/r/running-tasks-panel.json +2 -2
- package/registry/r/scroll-area.json +2 -2
- package/registry/r/select.json +4 -3
- package/registry/r/session-list-item.json +2 -2
- package/registry/r/session-timeline.json +2 -2
- package/registry/r/sheet.json +2 -2
- package/registry/r/sidebar.json +2 -2
- package/registry/r/skeleton.json +2 -2
- package/registry/r/skill-card.json +4 -4
- package/registry/r/skill-editor.json +10 -10
- package/registry/r/skills-list.json +3 -3
- package/registry/r/slide-deck.json +130 -0
- package/registry/r/slide-plugin-emoji.json +28 -0
- package/registry/r/slide-plugin-math.json +24 -0
- package/registry/r/slide-plugin-mermaid.json +23 -0
- package/registry/r/slide-plugin-shiki.json +23 -0
- package/registry/r/slide.json +123 -0
- package/registry/r/social-auth-row.json +3 -3
- package/registry/r/steps-rail.json +2 -2
- package/registry/r/sub-agent-dispatch.json +2 -2
- package/registry/r/switch.json +5 -4
- package/registry/r/system-prompt-editor.json +2 -2
- package/registry/r/tabs.json +2 -2
- package/registry/r/tailwind-preset.json +1 -1
- package/registry/r/task-header.json +4 -4
- package/registry/r/task-plan.json +2 -2
- package/registry/r/terminal-panel.json +2 -2
- package/registry/r/textarea.json +6 -3
- package/registry/r/theme-provider.json +4 -4
- package/registry/r/theme-script.json +1 -1
- package/registry/r/theo-ui-provider.json +2 -2
- package/registry/r/toast.json +3 -3
- package/registry/r/token-usage-chart.json +2 -2
- package/registry/r/tool-call-card.json +3 -3
- package/registry/r/tool-call.json +2 -2
- package/registry/r/tool-result.json +2 -2
- package/registry/r/tools-list.json +3 -3
- package/registry/r/tooltip.json +2 -2
- package/registry/r/topnav.json +2 -2
- package/registry/r/whiteboard.json +101 -0
package/registry/r/input.json
CHANGED
|
@@ -5,15 +5,18 @@
|
|
|
5
5
|
"title": "Input",
|
|
6
6
|
"description": "Text input primitive with focus ring, error state, and form-field composition support.",
|
|
7
7
|
"registryDependencies": [
|
|
8
|
-
"cn",
|
|
9
|
-
"tailwind-preset"
|
|
8
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
10
10
|
],
|
|
11
11
|
"files": [
|
|
12
12
|
{
|
|
13
13
|
"path": "components/primitives/input/input.tsx",
|
|
14
14
|
"type": "registry:ui",
|
|
15
15
|
"target": "components/ui/input.tsx",
|
|
16
|
-
"content": "import { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/cn\";\n\
|
|
16
|
+
"content": "import { type VariantProps, cva } from \"class-variance-authority\";\nimport { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/cn\";\n\nconst inputVariants = cva(\n [\n \"flex w-full rounded-md border border-input bg-card\",\n \"text-foreground placeholder:text-muted-foreground\",\n \"transition-[box-shadow,border-color] duration-base ease-out-soft\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"focus-visible:border-primary\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"file:border-0 file:bg-transparent file:font-medium file:text-body-sm\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 px-2.5 py-1 text-body-sm\",\n // md: density-tunable via CSS var. Comfortable (default) = 36px.\n md: \"h-[var(--theo-control-h,2.25rem)] px-[var(--theo-control-px,0.875rem)] py-1.5 text-body-sm\",\n lg: \"h-11 px-4 py-2.5 text-body-md\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n\n/**\n * Input — text input primitive.\n *\n * Violet Forge specifics:\n * - height 40px (h-10) matching default Button md.\n * - rounded-md (6px) — slightly less than buttons to differentiate.\n * - focus uses violet ring (--ring).\n * - placeholder uses --muted-foreground.\n *\n * The `size` prop accepts `\"sm\" | \"md\" | \"lg\"`. Default `md` preserves the\n * 40px tall input from before this prop existed. EC-1 (edge-case review):\n * this overrides the native HTML `size` attribute (text-input columns) —\n * use `{...{ size: 20 } as any}` if you genuinely need the HTML attribute,\n * which is exceedingly rare.\n */\nexport interface InputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof inputVariants> {}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, type = \"text\", size, ...props }, ref) => (\n <input ref={ref} type={type} className={cn(inputVariants({ size }), className)} {...props} />\n ),\n);\nInput.displayName = \"Input\";\n\nexport { Input, inputVariants };\n"
|
|
17
17
|
}
|
|
18
|
+
],
|
|
19
|
+
"dependencies": [
|
|
20
|
+
"class-variance-authority"
|
|
18
21
|
]
|
|
19
22
|
}
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"lucide-react"
|
|
10
10
|
],
|
|
11
11
|
"registryDependencies": [
|
|
12
|
-
"cn",
|
|
13
|
-
"tailwind-preset",
|
|
14
|
-
"types"
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/types.json"
|
|
15
15
|
],
|
|
16
16
|
"files": [
|
|
17
17
|
{
|
package/registry/r/label.json
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"description": "Kanban-style task board with 4 lanes matching the claw-code",
|
|
7
7
|
"dependencies": [],
|
|
8
8
|
"registryDependencies": [
|
|
9
|
-
"cn",
|
|
10
|
-
"tailwind-preset"
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
10
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
11
11
|
],
|
|
12
12
|
"files": [
|
|
13
13
|
{
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"description": "50/50 split shell for authentication screens — form pane on the left, illustration on the right.",
|
|
7
7
|
"dependencies": [],
|
|
8
8
|
"registryDependencies": [
|
|
9
|
-
"cn",
|
|
10
|
-
"tailwind-preset"
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
10
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
11
11
|
],
|
|
12
12
|
"files": [
|
|
13
13
|
{
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"mcp-server-card",
|
|
13
|
-
"tailwind-preset"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/mcp-server-card.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
14
14
|
],
|
|
15
15
|
"files": [
|
|
16
16
|
{
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"tailwind-preset",
|
|
13
|
-
"types"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/types.json"
|
|
14
14
|
],
|
|
15
15
|
"files": [
|
|
16
16
|
{
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"tailwind-preset",
|
|
13
|
-
"types"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/types.json"
|
|
14
14
|
],
|
|
15
15
|
"files": [
|
|
16
16
|
{
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"tailwind-preset",
|
|
13
|
-
"types"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/types.json"
|
|
14
14
|
],
|
|
15
15
|
"files": [
|
|
16
16
|
{
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"button",
|
|
12
|
-
"dialog",
|
|
13
|
-
"permission-types",
|
|
14
|
-
"tailwind-preset"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/button.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/dialog.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/permission-types.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
15
15
|
],
|
|
16
16
|
"files": [
|
|
17
17
|
{
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"badge",
|
|
12
|
-
"cn",
|
|
13
|
-
"deployment-row",
|
|
14
|
-
"safe-href",
|
|
15
|
-
"tailwind-preset"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/badge.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/deployment-row.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/safe-href.json",
|
|
15
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
16
16
|
],
|
|
17
17
|
"files": [
|
|
18
18
|
{
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"description": "Browser preview with controls + integrated logs slot.",
|
|
7
7
|
"dependencies": [],
|
|
8
8
|
"registryDependencies": [
|
|
9
|
-
"browser-controls",
|
|
10
|
-
"cn",
|
|
11
|
-
"tailwind-preset"
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/browser-controls.json",
|
|
10
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
12
12
|
],
|
|
13
13
|
"files": [
|
|
14
14
|
{
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"tailwind-preset",
|
|
13
|
-
"task-types"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/task-types.json"
|
|
14
14
|
],
|
|
15
15
|
"files": [
|
|
16
16
|
{
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"badge",
|
|
12
|
-
"cn",
|
|
13
|
-
"deployment-row",
|
|
14
|
-
"safe-href",
|
|
15
|
-
"tailwind-preset"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/badge.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/deployment-row.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/safe-href.json",
|
|
15
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
16
16
|
],
|
|
17
17
|
"files": [
|
|
18
18
|
{
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"description": "Row of intent chips below a hero composer.",
|
|
7
7
|
"dependencies": [],
|
|
8
8
|
"registryDependencies": [
|
|
9
|
-
"cn",
|
|
10
|
-
"tailwind-preset",
|
|
11
|
-
"types"
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
10
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/types.json"
|
|
12
12
|
],
|
|
13
13
|
"files": [
|
|
14
14
|
{
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"badge",
|
|
12
|
-
"button",
|
|
13
|
-
"cn",
|
|
14
|
-
"tailwind-preset"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/badge.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/button.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
15
15
|
],
|
|
16
16
|
"files": [
|
|
17
17
|
{
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"rule-types",
|
|
13
|
-
"tailwind-preset"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/rule-types.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
14
14
|
],
|
|
15
15
|
"files": [
|
|
16
16
|
{
|
|
@@ -6,16 +6,16 @@
|
|
|
6
6
|
"description": "Form for creating or editing a Rule (behavior instruction",
|
|
7
7
|
"dependencies": [],
|
|
8
8
|
"registryDependencies": [
|
|
9
|
-
"button",
|
|
10
|
-
"cn",
|
|
11
|
-
"form-field",
|
|
12
|
-
"input",
|
|
13
|
-
"mode-types",
|
|
14
|
-
"rule-types",
|
|
15
|
-
"select",
|
|
16
|
-
"switch",
|
|
17
|
-
"tailwind-preset",
|
|
18
|
-
"textarea"
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/button.json",
|
|
10
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/form-field.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/input.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/mode-types.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/rule-types.json",
|
|
15
|
+
"https://usetheodev.github.io/theo-ui/r/select.json",
|
|
16
|
+
"https://usetheodev.github.io/theo-ui/r/switch.json",
|
|
17
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
18
|
+
"https://usetheodev.github.io/theo-ui/r/textarea.json"
|
|
19
19
|
],
|
|
20
20
|
"files": [
|
|
21
21
|
{
|
package/registry/r/select.json
CHANGED
|
@@ -6,18 +6,19 @@
|
|
|
6
6
|
"description": "Styled wrapper around Radix Select.",
|
|
7
7
|
"dependencies": [
|
|
8
8
|
"@radix-ui/react-select",
|
|
9
|
+
"class-variance-authority",
|
|
9
10
|
"lucide-react"
|
|
10
11
|
],
|
|
11
12
|
"registryDependencies": [
|
|
12
|
-
"cn",
|
|
13
|
-
"tailwind-preset"
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
14
15
|
],
|
|
15
16
|
"files": [
|
|
16
17
|
{
|
|
17
18
|
"path": "components/primitives/select/select.tsx",
|
|
18
19
|
"type": "registry:ui",
|
|
19
20
|
"target": "components/ui/select.tsx",
|
|
20
|
-
"content": "import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\";\nimport { cn } from \"@/lib/cn\";\n\n/**\n * Select — styled wrapper around Radix Select.\n *\n * Composition:\n * <Select value={value} onValueChange={setValue}>\n * <Select.Trigger>\n * <Select.Value placeholder=\"Pick…\" />\n * </Select.Trigger>\n * <Select.Content>\n * <Select.Group>\n * <Select.Label>Group</Select.Label>\n * <Select.Item value=\"a\">A</Select.Item>\n * </Select.Group>\n * </Select.Content>\n * </Select>\n *\n * Trigger matches Input height + violet focus ring. Content uses popover\n * surface with check on the selected item.\n */\n\
|
|
21
|
+
"content": "import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\";\nimport { cn } from \"@/lib/cn\";\n\n/**\n * Trigger size variant (theming-and-sizes plan T1.9).\n * Items inside Select.Content stay md-equivalent regardless — the floating\n * menu is isolated from the trigger context (documented decision).\n *\n * EC-2 guard: `<Select.Trigger>` is a Radix `<button>` — no SelectHTMLAttributes\n * conflict to Omit. Verified before implementation.\n */\nconst selectTriggerVariants = cva(\n [\n \"flex w-full items-center justify-between gap-2 rounded-md border border-input bg-card\",\n \"text-foreground placeholder:text-muted-foreground\",\n \"transition-[border-color,box-shadow] duration-base ease-out-soft\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"focus-visible:border-primary\",\n \"data-[placeholder]:text-muted-foreground\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"[&>span]:line-clamp-1\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 px-2.5 py-1 text-body-sm\",\n md: \"h-[var(--theo-control-h,2.25rem)] px-[var(--theo-control-px,0.875rem)] py-1.5 text-body-sm\",\n lg: \"h-11 px-4 py-2.5 text-body-md\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n\n/**\n * Select — styled wrapper around Radix Select.\n *\n * Composition:\n * <Select value={value} onValueChange={setValue}>\n * <Select.Trigger>\n * <Select.Value placeholder=\"Pick…\" />\n * </Select.Trigger>\n * <Select.Content>\n * <Select.Group>\n * <Select.Label>Group</Select.Label>\n * <Select.Item value=\"a\">A</Select.Item>\n * </Select.Group>\n * </Select.Content>\n * </Select>\n *\n * Trigger matches Input height + violet focus ring. Content uses popover\n * surface with check on the selected item.\n */\n\ninterface SelectTriggerProps\n extends ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>,\n VariantProps<typeof selectTriggerVariants> {}\n\nconst SelectTrigger = forwardRef<ElementRef<typeof SelectPrimitive.Trigger>, SelectTriggerProps>(\n ({ className, children, size, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(selectTriggerVariants({ size }), className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"size-4 shrink-0 text-muted-foreground\" aria-hidden=\"true\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n ),\n);\nSelectTrigger.displayName = \"Select.Trigger\";\n\nconst SelectScrollUpButton = forwardRef<\n ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronUp className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = \"Select.ScrollUpButton\";\n\nconst SelectScrollDownButton = forwardRef<\n ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronDown className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = \"Select.ScrollDownButton\";\n\nconst SelectContent = forwardRef<\n ElementRef<typeof SelectPrimitive.Content>,\n ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n position={position}\n className={cn(\n \"relative z-50 min-w-[8rem] overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-md\",\n \"data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:animate-in\",\n \"data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:animate-out\",\n position === \"popper\" && \"data-[side=top]:-translate-y-1 data-[side=bottom]:translate-y-1\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = \"Select.Content\";\n\nconst SelectLabel = forwardRef<\n ElementRef<typeof SelectPrimitive.Label>,\n ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 font-mono text-label-caps text-muted-foreground uppercase tracking-wider\",\n className,\n )}\n {...props}\n />\n));\nSelectLabel.displayName = \"Select.Label\";\n\nconst SelectItem = forwardRef<\n ElementRef<typeof SelectPrimitive.Item>,\n ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-md py-1.5 pr-2 pl-7\",\n \"text-body-sm outline-none\",\n \"focus:bg-muted focus:text-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-1.5 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"size-3.5 text-primary\" aria-hidden=\"true\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = \"Select.Item\";\n\nconst SelectSeparator = forwardRef<\n ElementRef<typeof SelectPrimitive.Separator>,\n ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border/40\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = \"Select.Separator\";\n\nconst Select = SelectPrimitive.Root as typeof SelectPrimitive.Root & {\n Trigger: typeof SelectTrigger;\n Value: typeof SelectPrimitive.Value;\n Content: typeof SelectContent;\n Group: typeof SelectPrimitive.Group;\n Label: typeof SelectLabel;\n Item: typeof SelectItem;\n Separator: typeof SelectSeparator;\n};\nSelect.Trigger = SelectTrigger;\nSelect.Value = SelectPrimitive.Value;\nSelect.Content = SelectContent;\nSelect.Group = SelectPrimitive.Group;\nSelect.Label = SelectLabel;\nSelect.Item = SelectItem;\nSelect.Separator = SelectSeparator;\n\nexport { Select };\n"
|
|
21
22
|
}
|
|
22
23
|
]
|
|
23
24
|
}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"description": "Single row in the sidebar's Sessions list for a code agent",
|
|
7
7
|
"dependencies": [],
|
|
8
8
|
"registryDependencies": [
|
|
9
|
-
"cn",
|
|
10
|
-
"tailwind-preset"
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
10
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
11
11
|
],
|
|
12
12
|
"files": [
|
|
13
13
|
{
|
package/registry/r/sheet.json
CHANGED
package/registry/r/sidebar.json
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"title": "Sidebar",
|
|
6
6
|
"description": "Vertical navigation shell with header, sections, items (active / count), and footer slots.",
|
|
7
7
|
"registryDependencies": [
|
|
8
|
-
"cn",
|
|
9
|
-
"tailwind-preset"
|
|
8
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
10
10
|
],
|
|
11
11
|
"files": [
|
|
12
12
|
{
|
package/registry/r/skeleton.json
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"title": "Skeleton",
|
|
6
6
|
"description": "Placeholder block shown while content is loading.",
|
|
7
7
|
"registryDependencies": [
|
|
8
|
-
"cn",
|
|
9
|
-
"tailwind-preset"
|
|
8
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
10
10
|
],
|
|
11
11
|
"files": [
|
|
12
12
|
{
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"mode-types",
|
|
13
|
-
"tailwind-preset",
|
|
14
|
-
"types"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/mode-types.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/types.json"
|
|
15
15
|
],
|
|
16
16
|
"files": [
|
|
17
17
|
{
|
|
@@ -6,16 +6,16 @@
|
|
|
6
6
|
"description": "Form for creating or editing a Skill.",
|
|
7
7
|
"dependencies": [],
|
|
8
8
|
"registryDependencies": [
|
|
9
|
-
"button",
|
|
10
|
-
"cn",
|
|
11
|
-
"form-field",
|
|
12
|
-
"input",
|
|
13
|
-
"mode-types",
|
|
14
|
-
"select",
|
|
15
|
-
"skill-card",
|
|
16
|
-
"switch",
|
|
17
|
-
"tailwind-preset",
|
|
18
|
-
"textarea"
|
|
9
|
+
"https://usetheodev.github.io/theo-ui/r/button.json",
|
|
10
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/form-field.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/input.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/mode-types.json",
|
|
14
|
+
"https://usetheodev.github.io/theo-ui/r/select.json",
|
|
15
|
+
"https://usetheodev.github.io/theo-ui/r/skill-card.json",
|
|
16
|
+
"https://usetheodev.github.io/theo-ui/r/switch.json",
|
|
17
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json",
|
|
18
|
+
"https://usetheodev.github.io/theo-ui/r/textarea.json"
|
|
19
19
|
],
|
|
20
20
|
"files": [
|
|
21
21
|
{
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"lucide-react"
|
|
9
9
|
],
|
|
10
10
|
"registryDependencies": [
|
|
11
|
-
"cn",
|
|
12
|
-
"skill-card",
|
|
13
|
-
"tailwind-preset"
|
|
11
|
+
"https://usetheodev.github.io/theo-ui/r/cn.json",
|
|
12
|
+
"https://usetheodev.github.io/theo-ui/r/skill-card.json",
|
|
13
|
+
"https://usetheodev.github.io/theo-ui/r/tailwind-preset.json"
|
|
14
14
|
],
|
|
15
15
|
"files": [
|
|
16
16
|
{
|