@axis-ds/cli 1.4.0 → 1.5.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.
Files changed (37) hide show
  1. package/README.md +25 -4
  2. package/dist/{chunk-3WGMHDZL.js → chunk-NVGENR3K.js} +9 -1
  3. package/dist/index.js +1544 -254
  4. package/dist/registry/agentic-a11y-labels.json +16 -0
  5. package/dist/registry/agentic-agent-avatar.json +19 -0
  6. package/dist/registry/agentic-approval-card.json +19 -0
  7. package/dist/registry/agentic-attachment-card.json +19 -0
  8. package/dist/registry/agentic-code-block.json +18 -0
  9. package/dist/registry/agentic-context-panel.json +18 -0
  10. package/dist/registry/agentic-diff-viewer.json +19 -0
  11. package/dist/registry/agentic-feedback-buttons.json +19 -0
  12. package/dist/registry/agentic-message-bubble.json +19 -0
  13. package/dist/registry/agentic-plan-card.json +19 -0
  14. package/dist/registry/agentic-recovery-banner.json +18 -0
  15. package/dist/registry/agentic-run-progress.json +19 -0
  16. package/dist/registry/agentic-source-panel.json +19 -0
  17. package/dist/registry/agentic-step-timeline.json +19 -0
  18. package/dist/registry/agentic-streaming-text.json +18 -0
  19. package/dist/registry/agentic-surface-renderer.json +18 -0
  20. package/dist/registry/agentic-thinking-indicator.json +18 -0
  21. package/dist/registry/agentic-token-usage-indicator.json +18 -0
  22. package/dist/registry/agentic-tool-call-card.json +19 -0
  23. package/dist/registry/badge.json +20 -0
  24. package/dist/registry/button.json +21 -0
  25. package/dist/registry/card.json +18 -0
  26. package/dist/registry/dialog.json +20 -0
  27. package/dist/registry/index.json +217 -0
  28. package/dist/registry/input.json +18 -0
  29. package/dist/registry/label.json +21 -0
  30. package/dist/registry/registry.json +218 -0
  31. package/dist/registry/select.json +20 -0
  32. package/dist/registry/separator.json +20 -0
  33. package/dist/registry/tabs.json +20 -0
  34. package/dist/registry/toast.json +21 -0
  35. package/dist/registry/utils.json +19 -0
  36. package/dist/{registry-client-RMES4CL5.js → registry-client-BJ2XYT73.js} +1 -1
  37. package/package.json +3 -3
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "tabs",
4
+ "type": "registry:ui",
5
+ "title": "Tabs",
6
+ "description": "AXIS 탭 컴포넌트 - 탭 네비게이션",
7
+ "dependencies": [
8
+ "@radix-ui/react-tabs"
9
+ ],
10
+ "registryDependencies": [
11
+ "https://axis-design-system.pages.dev/r/utils.json"
12
+ ],
13
+ "files": [
14
+ {
15
+ "path": "components/ui/tabs.tsx",
16
+ "type": "registry:ui",
17
+ "content": "import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"@/registry/axis/lib/utils\";\n\n/** 탭 기반 네비게이션의 루트 컴포넌트. 활성 탭 상태를 관리한다. */\nconst Tabs = TabsPrimitive.Root;\n\n/** 탭 트리거 버튼들을 감싸는 리스트 컨테이너. 인라인 정렬과 배경색이 적용된다. */\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md p-1\",\n \"bg-[var(--axis-surface-secondary)] text-[var(--axis-text-secondary)]\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = \"TabsList\";\n\n/** 개별 탭을 선택하는 트리거 버튼. 활성 상태에 따라 스타일이 변경된다. */\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all\",\n \"ring-offset-[var(--axis-surface-default)]\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--axis-border-focus)] focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=active]:bg-[var(--axis-surface-default)] data-[state=active]:text-[var(--axis-text-primary)] data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\n/** 선택된 탭에 해당하는 콘텐츠를 표시하는 컴포넌트. 포커스 링 스타일을 지원한다. */\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-[var(--axis-surface-default)]\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--axis-border-focus)] focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = \"TabsContent\";\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "toast",
4
+ "type": "registry:ui",
5
+ "title": "Toast",
6
+ "description": "AXIS 토스트 컴포넌트 - 알림 메시지",
7
+ "dependencies": [
8
+ "@radix-ui/react-toast",
9
+ "class-variance-authority"
10
+ ],
11
+ "registryDependencies": [
12
+ "https://axis-design-system.pages.dev/r/utils.json"
13
+ ],
14
+ "files": [
15
+ {
16
+ "path": "components/ui/toast.tsx",
17
+ "type": "registry:ui",
18
+ "content": "import * as React from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/registry/axis/lib/utils\";\n\n/** 토스트 알림 시스템의 프로바이더 컴포넌트. 앱 루트에 배치하여 토스트 기능을 활성화한다. */\nconst ToastProvider = ToastPrimitives.Provider;\n\n/** 토스트 알림이 표시되는 뷰포트 영역. 화면 하단 우측에 고정 위치로 렌더링된다. */\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n \"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]\",\n className\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full\",\n {\n variants: {\n variant: {\n default:\n \"border-[var(--axis-border-default)] bg-[var(--axis-surface-default)] text-[var(--axis-text-primary)]\",\n success:\n \"border-[var(--axis-border-success)] bg-[var(--axis-surface-success)] text-[var(--axis-text-success)]\",\n error:\n \"border-[var(--axis-border-error)] bg-[var(--axis-surface-error)] text-[var(--axis-text-error)]\",\n warning:\n \"border-transparent bg-[var(--axis-surface-warning)] text-[var(--axis-text-warning)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\n/** 토스트 알림의 루트 컴포넌트. default, success, error, warning 변형을 지원하며 스와이프로 닫을 수 있다. */\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &\n VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n));\nToast.displayName = ToastPrimitives.Root.displayName;\n\n/** 토스트 내에 표시되는 액션 버튼 컴포넌트. 사용자 상호작용을 위한 CTA를 제공한다. */\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border px-3 text-sm font-medium transition-colors\",\n \"border-[var(--axis-border-default)] bg-transparent\",\n \"hover:bg-[var(--axis-surface-secondary)]\",\n \"focus:outline-none focus:ring-2 focus:ring-[var(--axis-border-focus)]\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action.displayName;\n\n/** 토스트를 닫는 닫기 버튼 컴포넌트. 호버 시 표시되며 X 아이콘을 포함한다. */\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-2 top-2 rounded-md p-1 text-[var(--axis-text-secondary)] opacity-0 transition-opacity\",\n \"hover:text-[var(--axis-text-primary)]\",\n \"focus:opacity-100 focus:outline-none focus:ring-2\",\n \"group-hover:opacity-100\",\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <svg className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close.displayName;\n\n/** 토스트의 제목을 표시하는 컴포넌트 */\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn(\"text-sm font-semibold\", className)}\n {...props}\n />\n));\nToastTitle.displayName = ToastPrimitives.Title.displayName;\n\n/** 토스트의 상세 설명을 표시하는 컴포넌트 */\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn(\"text-sm opacity-90\", className)}\n {...props}\n />\n));\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\nexport {\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n};\n"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "utils",
4
+ "type": "registry:lib",
5
+ "title": "Utils",
6
+ "description": "AXIS cn 유틸 - clsx 와 tailwind-merge(그림자 임의값 그룹 확장)로 클래스 병합",
7
+ "dependencies": [
8
+ "clsx",
9
+ "tailwind-merge"
10
+ ],
11
+ "registryDependencies": [],
12
+ "files": [
13
+ {
14
+ "path": "registry/axis/lib/utils.ts",
15
+ "type": "registry:lib",
16
+ "content": "import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/**\n * `shadow-[shadow:<CSS 변수 참조>]` 처럼 `shadow:` 타입 힌트가 붙은 임의값 그림자 클래스인지 판정\n *\n * tailwind-merge 기본 설정은 이 클래스를 그림자 색(shadow-color) 그룹으로 분류해서\n * `cn(기본, \"shadow-none\")` 이 기본 그림자를 지우지 못하고, `shadow-black/50` 은 그림자를 통째로 지운다.\n * 그림자(shadow) 그룹에 등록해 종전 `shadow-sm` · `shadow-lg` 와 같은 병합 결과를 낸다(WI-0025 U4).\n */\nconst isArbitraryShadowWithHint = (value: string) => /^\\[shadow:.+\\]$/.test(value);\n\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n shadow: [{ shadow: [isArbitraryShadowWithHint] }],\n },\n },\n});\n\n/**\n * Tailwind CSS 클래스를 병합하는 유틸리티 함수\n * clsx로 조건부 클래스를 처리하고 tailwind-merge로 충돌을 해결\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"
17
+ }
18
+ ]
19
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchTemplateDetail,
3
3
  fetchTemplateIndex
4
- } from "./chunk-3WGMHDZL.js";
4
+ } from "./chunk-NVGENR3K.js";
5
5
  export {
6
6
  fetchTemplateDetail,
7
7
  fetchTemplateIndex
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axis-ds/cli",
3
- "version": "1.4.0",
3
+ "version": "1.5.1",
4
4
  "type": "module",
5
5
  "description": "AXIS Design System - CLI for adding components (shadcn compatible)",
6
6
  "publishConfig": {
@@ -44,9 +44,9 @@
44
44
  "url": "https://github.com/IDEA-on-Action/AXIS-Design-System.git",
45
45
  "directory": "packages/axis-cli"
46
46
  },
47
- "homepage": "https://axis.minu.best",
47
+ "homepage": "https://axis-design-system.pages.dev",
48
48
  "scripts": {
49
- "build": "tsup src/index.ts src/monet.ts src/v0.ts src/sync/index.ts --format esm --dts",
49
+ "build": "tsup src/index.ts src/monet.ts src/v0.ts src/sync/index.ts --format esm --dts --clean && node scripts/copy-registry.mjs",
50
50
  "dev": "tsup src/index.ts src/monet.ts src/v0.ts src/sync/index.ts --format esm --watch",
51
51
  "clean": "rm -rf dist",
52
52
  "test": "vitest run",