
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@thaparoyal/calendar-cli
Advanced tools
CLI for installing @thaparoyal/calendar components - shadcn/ui style
CLI tool for installing @thaparoyal/calendar components into your project — inspired by shadcn/ui's copy-paste approach.
# Using npx (recommended — no global install needed)
npx @thaparoyal/calendar-cli init
# Or install globally
npm install -g @thaparoyal/calendar-cli
trc init
Instead of shipping opaque, hard-to-customise UI components, this CLI copies component source code directly into your project. You own the code and can modify it freely.
Workflow:
trc init — Set up calendar configuration in your projecttrc add <component> — Copy component files into your projecttrc initInitialise calendar configuration in your project.
npx @thaparoyal/calendar-cli init
This command:
calendar.config.json configuration file@thaparoyal/calendar-core and framework packageOptions:
-c, --cwd <path> Working directory (defaults to current directory)
Generated calendar.config.json:
{
"$schema": "https://thaparoyal-calendar.dev/schema.json",
"framework": "react",
"typescript": true,
"tailwind": true,
"defaultCalendar": "BS",
"locale": "en",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils"
}
}
trc add [components...]Add calendar components to your project.
# Interactive selection (shows a checklist)
npx @thaparoyal/calendar-cli add
# Add specific components
npx @thaparoyal/calendar-cli add calendar
npx @thaparoyal/calendar-cli add date-picker
# Skip confirmation prompts
npx @thaparoyal/calendar-cli add calendar --yes
This command:
@thaparoyal/calendar-core, lucide-react)Options:
-c, --cwd <path> Working directory (defaults to current directory)
-y, --yes Skip all confirmation prompts
trc list (alias: trc ls)List all available components in the registry.
npx @thaparoyal/calendar-cli list
Output:
Available components:
calendar (UI) A calendar component supporting AD and BS date formats.
date-picker (UI) A date picker with input field and calendar dropdown.
utils (Lib) Utility functions for class name merging.
| Name | Type | Description |
|---|---|---|
calendar | UI | Full calendar with navigation and date selection |
date-picker | UI | Date picker with a button trigger and dropdown calendar |
utils | Lib | cn() helper for merging Tailwind class names |
calendar depends on: utils, @thaparoyal/calendar-coredate-picker depends on: calendar, utils, @thaparoyal/calendar-core, lucide-reactutils depends on: clsx, tailwind-mergecalendar.config.json Schema| Field | Type | Default | Description |
|---|---|---|---|
framework | 'react' | 'vue' | 'svelte' | 'vanilla' | 'react' | Target framework |
typescript | boolean | true | Use TypeScript |
tailwind | boolean | true | Use Tailwind CSS |
defaultCalendar | 'BS' | 'AD' | 'BS' | Default calendar system |
locale | 'en' | 'ne' | 'en' | Default locale |
aliases.components | string | '@/components' | Components directory alias |
aliases.utils | string | '@/lib/utils' | Utils file alias |
aliases.hooks | string | — | Hooks directory alias (optional) |
The CLI searches for configuration in (in priority order):
calendar.config.jsoncalendar.config.jscalendar.config.cjs.calendarrc.calendarrc.jsoncd my-next-app
npx @thaparoyal/calendar-cli init
# > Framework: React
# > TypeScript: Yes
# > Tailwind: Yes
# > Default calendar: BS
# > Locale: en
npx @thaparoyal/calendar-cli add calendar date-picker
Then use in your component:
import { Calendar } from '@/components/ui/calendar';
import { DatePicker } from '@/components/ui/date-picker';
import '@thaparoyal/calendar-core/themes/themes.css';
export default function Page() {
return (
<div data-theme="default">
<Calendar config={{ calendarType: 'BS', locale: 'en' }} />
</div>
);
}
cd my-vue-app
npx @thaparoyal/calendar-cli init
# > Framework: Vue
npx @thaparoyal/calendar-cli add calendar
cd my-svelte-app
npx @thaparoyal/calendar-cli init
# > Framework: Svelte
npx @thaparoyal/calendar-cli add calendar
If you prefer not to use the CLI, install packages directly:
# Core (always required)
npm install @thaparoyal/calendar-core
# Framework package (pick one)
npm install @thaparoyal/calendar-react # React
npm install @thaparoyal/calendar-vue # Vue
npm install @thaparoyal/calendar-svelte # Svelte
npm install @thaparoyal/calendar-vanilla # Vanilla JS
Then import styles and components from the framework package:
// React
import { Calendar, DatePicker } from '@thaparoyal/calendar-react';
import '@thaparoyal/calendar-react/styles.css';
import '@thaparoyal/calendar-core/themes/themes.css';
The CLI automatically detects your package manager:
| Lock File | Package Manager |
|---|---|
pnpm-lock.yaml | pnpm |
yarn.lock | yarn |
bun.lockb | bun |
| (none) | npm |
MIT
FAQs
CLI for installing @thaparoyal/calendar components - shadcn/ui style
We found that @thaparoyal/calendar-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.