npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jalili-project

v1.2.0

Published

A comprehensive Vue 3 component library with Persian/Farsi support, theming, and utility functions.

Readme

Amir Component Library

A comprehensive Vue 3 component library with Persian/Farsi support, theming, and utility functions.

Installation

npm install amir-component

Quick Start

1. Install Dependencies

npm install vue@^3.4.0 vuetify@^3.6.0

2. Import and Use Components

import { createApp } from 'vue';
import { createAmirVuetify } from 'amir-component';
import App from './App.vue';

// Import shared components
import { 
  BaseIcon, 
  BaseBreadcrumb, 
  CustomDataTable, 
  DescriptionInput,
  MoneyInput,
  PdfViewer,
  ShamsiDatePicker,
  UiChildCard,
  UiParentCard,
  VPriceTextField,
  AppStepper,
  Loading
} from 'amir-component';

// Import themes
import { 
  ModernTheme, 
  PurpleTheme, 
  DarkModernTheme 
} from 'amir-component/themes';

// Import utilities
import { 
  convertToShamsi, 
  convertToGregorian,
  formatNumber,
  validateNationalCode 
} from 'amir-component/utils';

const app = createApp(App);

// Create Vuetify instance with themes
const vuetify = createAmirVuetify({
  theme: {
    defaultTheme: 'ModernTheme',
    themes: {
      ModernTheme,
      PurpleTheme,
      DarkModernTheme
    }
  }
});

app.use(vuetify);

// Register components globally (optional)
app.component('BaseIcon', BaseIcon);
app.component('BaseBreadcrumb', BaseBreadcrumb);
app.component('CustomDataTable', CustomDataTable);
// ... register other components as needed

app.mount('#app');

Available Components

Shared Components

  • BaseIcon - Icon component with click handling
  • BaseBreadcrumb - Breadcrumb navigation
  • CustomDataTable - Enhanced data table
  • DescriptionInput - Text area with description
  • MoneyInput - Currency input field
  • PdfViewer - PDF viewer component
  • ShamsiDatePicker - Persian date picker
  • UiChildCard - Child card component
  • UiParentCard - Parent card component
  • VPriceTextField - Price input field

Common Components

  • AppStepper - Step-by-step navigation component
  • Loading - Loading spinner component

Utilities

The library includes various utility functions:

Date Utilities

  • convertToShamsi() - Convert Gregorian to Persian date
  • convertToGregorian() - Convert Persian to Gregorian date

Number Utilities

  • formatNumber() - Format numbers with Persian digits

Validation Utilities

  • validateNationalCode() - Validate Iranian national code

Helper Utilities

  • fetchWrapper - HTTP request wrapper
  • fakeBackend - Mock backend for development

Theming

The library includes multiple built-in themes:

Light Themes

  • ModernTheme
  • PurpleTheme
  • RedTheme
  • OrangeTheme
  • SteelTealGreen
  • TealTheme
  • SilverTheme

Dark Themes

  • DarkModernTheme
  • DarkOrangeTheme
  • DarkPurpleTheme
  • DarkSteelTealGreen
  • DarkTealTheme
  • DarkSilverTheme
  • DarkRedTheme

Persian/Farsi Support

The library includes Persian date picker, number formatting, and RTL support for Persian language applications.

Usage Examples

Using Components

<template>
  <div>
    <BaseIcon icon="mdi-home" @click="handleClick" />
    <ShamsiDatePicker v-model="selectedDate" />
    <CustomDataTable :items="tableData" />
  </div>
</template>

<script setup>
import { BaseIcon, ShamsiDatePicker, CustomDataTable } from 'amir-component';
</script>

Using Utilities

import { convertToShamsi, formatNumber, validateNationalCode } from 'amir-component/utils';

// Convert date
const persianDate = convertToShamsi(new Date());

// Format number
const formattedNumber = formatNumber(1234567); // "۱,۲۳۴,۵۶۷"

// Validate national code
const isValid = validateNationalCode('1234567890');

License

MIT