🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@erplora/erx

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@erplora/erx

ERPlora eXtensions - Web Components library for ERP desktop/web

latest
Source
npmnpm
Version
0.0.2
Version published
Weekly downloads
7
250%
Maintainers
1
Weekly downloads
 
Created
Source

ERX - ERPlora eXtensions

npm version license components framework Ionic compatible

ERX is a comprehensive Web Components library built with Stencil.js, designed to complement Ionic Framework for enterprise ERP desktop/web applications. It provides 94 specialized components not available in Ionic, while using Ionic's design system for perfect integration.

✨ Features

  • 94 Enterprise Components - POS, HR, Manufacturing, Data Grids, Scheduling, and more
  • 🎨 Ionic Design System - Components inherit Ionic's look and feel automatically
  • ✨ iOS 26 Liquid Glass - Glassmorphism effect with .liquid-glass class
  • 📱 Bootstrap Grid - Responsive grid system with Ionic spacing
  • 🌓 iOS & Android Modes - Platform-specific styling (rounded vs sharp corners, shadows, etc.)
  • 🌙 Dark Mode Support - Follows Ionic's dark theme automatically
  • Framework Agnostic - Works with React, Vue, Angular, or vanilla JS
  • TypeScript - Full type definitions included
  • Accessible - WCAG 2.1 compliant with ARIA support
  • Touch Optimized - 44px touch targets (iOS standard), gesture support

🎮 Live Demos & Examples

🌟 Main Demos

  • Component Showcase - Browse all 94 components with live examples
  • Interactive Playground - Test components with live JSON editing
  • Full API Documentation - Complete technical reference

🎨 Feature Demos

📸 Component Examples

POS & Retail Components (12 components)
ComponentPreviewDemo
<erx-cart>Shopping cart with items, totals, taxView Demo
<erx-product-card>Product cards with images, prices, badgesView Demo
<erx-calculator>POS calculator with operationsView Demo
<erx-payment>Payment methods selectorView Demo
<erx-receipt>Digital receipt printerView Demo
<erx-order-ticket>Kitchen/bar order ticketsView Demo
<erx-quantity-badge>Animated quantity indicatorsView Demo
<erx-barcode-scanner>Barcode/QR scannerView Demo
<erx-cash-drawer>Cash drawer managementView Demo
<erx-price-tag>Price display with formattingView Demo
<erx-discount-badge>Discount/sale badgesView Demo
<erx-loyalty-card>Customer loyalty cardsView Demo
Data Display Components (15 components)
ComponentPreviewDemo
<erx-data-grid>Advanced data tables with sorting, filteringView Demo
<erx-tree>Hierarchical tree viewView Demo
<erx-table>Responsive tablesView Demo
<erx-list>Virtual scrolling listsView Demo
<erx-card-list>Card-based listsView Demo
<erx-timeline>Event timelinesView Demo
<erx-stats-card>Statistics cardsView Demo
<erx-metric-display>KPI metricsView Demo
<erx-progress-ring>Circular progressView Demo
<erx-gauge>Gauge chartsView Demo
<erx-sparkline>Mini trend chartsView Demo
<erx-json-viewer>JSON tree viewerView Demo
<erx-diff-viewer>Text diff comparisonView Demo
<erx-code-block>Syntax highlighted codeView Demo
<erx-badge>Status badgesView Demo
Form Components (10 components)
ComponentPreviewDemo
<erx-rich-text>WYSIWYG editorView Demo
<erx-color-picker>Color selectionView Demo
<erx-rating>Star ratings (with half-stars)View Demo
<erx-signature-pad>Digital signaturesView Demo
<erx-phone-input>International phone numbersView Demo
<erx-date-range>Date range pickerView Demo
<erx-file-upload>Drag & drop file uploadsView Demo
<erx-slider>Range slidersView Demo
<erx-toggle-group>Toggle button groupsView Demo
<erx-search>Advanced search with filtersView Demo
HR & Workforce Components (7 components)
ComponentPreviewDemo
<erx-org-chart>Organization hierarchyView Demo
<erx-employee-card>Employee profilesView Demo
<erx-time-clock>Clock in/out widgetView Demo
<erx-timesheet>Time tracking sheetsView Demo
<erx-shift-calendar>Shift schedulingView Demo
<erx-leave-request>Leave/vacation requestsView Demo
<erx-attendance>Attendance trackingView Demo
Manufacturing Components (7 components)
ComponentPreviewDemo
<erx-bom-tree>Bill of Materials treeView Demo
<erx-work-order>Work order cardsView Demo
<erx-production-line>Production line statusView Demo
<erx-quality-check>Quality inspection formsView Demo
<erx-batch-tracker>Batch/lot trackingView Demo
<erx-inventory-status>Inventory levelsView Demo
<erx-machine-status>Machine monitoringView Demo
Layout Components (12 components)
ComponentPreviewDemo
<erx-kanban>Kanban boards (drag & drop)View Demo
<erx-dashboard-grid>Dashboard layoutsView Demo
<erx-master-detail>Master-detail viewsView Demo
<erx-split-pane>Resizable split viewsView Demo
<erx-tabs>Tab navigationView Demo
<erx-accordion>Collapsible sectionsView Demo
<erx-stepper>Multi-step formsView Demo
<erx-sidebar>Collapsible sidebarsView Demo
<erx-panel>Resizable panelsView Demo
<erx-masonry>Masonry layoutsView Demo
<erx-card-stack>Stacked cards (swipeable)View Demo
<erx-carousel>Image carouselsView Demo
Calendar & Scheduling (4 components)
ComponentPreviewDemo
<erx-calendar>Full calendar viewView Demo
<erx-scheduler>Resource schedulerView Demo
<erx-gantt-chart>Gantt project timelinesView Demo
<erx-date-picker>Date selectionView Demo
View All 94 Components

See the complete list with live demos in the Component Showcase.

Categories:

  • POS/Retail: 12 components
  • Data Display: 15 components
  • Forms (Advanced): 10 components
  • HR/Workforce: 7 components
  • Manufacturing: 7 components
  • Layout: 12 components
  • Media: 11 components
  • Navigation: 6 components
  • Calendar: 4 components
  • Feedback: 4 components
  • Overlays: 4 components
  • Others: 2 components

Total: 94 Components

📦 Installation

NPM

npm install @erplora/erx @ionic/core

CDN

<!-- Ionic Core (required) -->
<script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css">

<!-- ERX Components -->
<script type="module" src="https://unpkg.com/@erplora/erx/dist/erx/erx.esm.js"></script>

🚀 Quick Start

⚡ One-Minute Examples

POS Shopping Cart:

<erx-cart id="cart"></erx-cart>

<script>
  cart.items = [
    { id: '1', name: 'Laptop', price: 999, quantity: 1 },
    { id: '2', name: 'Mouse', price: 29, quantity: 2 }
  ];
  cart.taxRate = 0.21; // 21% tax
</script>

Try it live →

Product Card with Liquid Glass:

<erx-product-card class="liquid-glass" id="product"></erx-product-card>

<script>
  product.product = {
    name: 'iPhone 26 Pro',
    price: 1299.99,
    stock: 15,
    image: 'product.jpg',
    badge: 'New'
  };
</script>

Try it live →

Star Rating:

<!-- Simple -->
<erx-rating value="4.5" allow-half="true"></erx-rating>

<!-- With hearts -->
<erx-rating value="5" icon="heart" color="danger"></erx-rating>

Try it live →

Data Grid with Sorting:

<erx-data-grid id="grid"></erx-data-grid>

<script>
  grid.columns = [
    { field: 'name', header: 'Product', sortable: true },
    { field: 'price', header: 'Price', sortable: true }
  ];
  grid.data = [
    { name: 'Laptop', price: '$999' },
    { name: 'Mouse', price: '$29' }
  ];
</script>

Try it live →

🎨 With Ionic + Bootstrap Grid

ERX components work perfectly inside Ionic layouts with Bootstrap Grid for responsive design:

<!DOCTYPE html>
<html>
<head>
  <!-- Ionic Core -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css">
  <script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>

  <!-- ERX Components -->
  <script type="module" src="https://unpkg.com/@erplora/erx/dist/erx/erx.esm.js"></script>

  <!-- ERX Grid System (Bootstrap Grid + Ionic spacing) -->
  <link rel="stylesheet" href="https://unpkg.com/@erplora/erx/dist/erx/ionic-bootstrap-grid.css">
</head>
<body>
  <ion-app>
    <ion-header>
      <ion-toolbar>
        <ion-title>POS Dashboard</ion-title>
      </ion-toolbar>
    </ion-header>

    <ion-content>
      <!-- Bootstrap Grid with Ionic spacing -->
      <div class="container">
        <div class="row g-3">
          <!-- Responsive columns -->
          <div class="col-12 col-md-6 col-lg-4">
            <!-- Ionic Card -->
            <ion-card>
              <ion-card-header>
                <ion-card-title>Shopping Cart</ion-card-title>
              </ion-card-header>
              <ion-card-content>
                <!-- ERX Component inside Ionic Card -->
                <erx-cart id="cart"></erx-cart>
              </ion-card-content>
            </ion-card>
          </div>

          <div class="col-12 col-md-6 col-lg-8">
            <ion-card>
              <ion-card-header>
                <ion-card-title>Products</ion-card-title>
              </ion-card-header>
              <ion-card-content>
                <erx-data-grid id="products"></erx-data-grid>
              </ion-card-content>
            </ion-card>
          </div>
        </div>
      </div>
    </ion-content>
  </ion-app>

  <script>
    // Configure components
    const grid = document.getElementById('products');
    grid.columns = [
      { field: 'name', header: 'Product' },
      { field: 'price', header: 'Price' }
    ];
    grid.data = [
      { name: 'Widget', price: '$29.99' }
    ];
  </script>
</body>
</html>

React + Ionic

npm install @erplora/erx @erplora/erx-react @ionic/react
import { IonCard, IonCardContent, IonCardHeader, IonCardTitle } from '@ionic/react';
import { ErxDataGrid, ErxCart } from '@erplora/erx-react';
import '@erplora/erx/dist/erx/ionic-bootstrap-grid.css';

function Dashboard() {
  return (
    <div className="container">
      <div className="row g-3">
        <div className="col-12 col-md-6">
          <IonCard>
            <IonCardHeader>
              <IonCardTitle>Shopping Cart</IonCardTitle>
            </IonCardHeader>
            <IonCardContent>
              <ErxCart items={cartItems} />
            </IonCardContent>
          </IonCard>
        </div>

        <div className="col-12 col-md-6">
          <IonCard>
            <IonCardHeader>
              <IonCardTitle>Products</IonCardTitle>
            </IonCardHeader>
            <IonCardContent>
              <ErxDataGrid columns={columns} data={products} />
            </IonCardContent>
          </IonCard>
        </div>
      </div>
    </div>
  );
}

🎨 Design System Integration

ERX is designed to complement Ionic, not replace it:

✅ Use Ionic For:

  • Basic UI: <ion-button>, <ion-input>, <ion-card>
  • Navigation: <ion-tabs>, <ion-menu>, <ion-toolbar>
  • Layout: <ion-content>, <ion-grid>, <ion-list>
  • Overlays: <ion-modal>, <ion-alert>, <ion-toast>

✅ Use ERX For:

  • Enterprise Components: Data grids, Gantt charts, Kanban boards
  • POS Components: Cart, receipt, payment, order tickets
  • HR Components: Org chart, timesheets, shift calendar
  • Manufacturing: BOM tree, work orders, production line
  • Advanced Inputs: Rich text editor, signature pad, color picker

CSS Variables

ERX uses Ionic's CSS variables for perfect integration:

/* ERX automatically uses Ionic variables */
--ion-color-primary: #667eea;      /* ERX inherits this */
--ion-color-success: #22c55e;      /* ERX inherits this */
--ion-padding: 16px;               /* ERX uses this for spacing */
--ion-margin: 16px;                /* ERX uses this for margins */

/* Dark mode automatically supported */
body.dark {
  --ion-background-color: #0f172a;
  --ion-text-color: #f1f5f9;
  /* ERX components adapt automatically */
}

iOS vs Android Styling

ERX automatically inherits Ionic's platform-specific styles:

<!-- iOS mode - rounded corners (10px-12px), softer shadows, 44px buttons -->
<html class="ios">
  <erx-cart></erx-cart>
  <!-- Buttons: rounded, no uppercase, soft feel -->
  <!-- Cards: 12px border-radius, subtle shadow -->
</html>

<!-- Material Design mode - sharp corners (4px), elevation shadows, 36px buttons -->
<html class="md">
  <erx-cart></erx-cart>
  <!-- Buttons: 4px corners, UPPERCASE text, material elevation -->
  <!-- Cards: 4px border-radius, pronounced shadow -->
</html>

How it works: ERX components detect the .ios or .md class on <html> and apply platform-specific styles automatically using CSS variables and :host-context() selectors. No JavaScript detection needed!

Automatic Style Inheritance

ERX components automatically inherit Ionic styles based on CSS class naming conventions:

Element TypeCSS PatternInherits FromExample
Buttons*erx-*btn or *erx-*buttonion-button.erx-cart__checkout-btn
Cards*erx-*card or *erx-*__containerion-card.erx-product-card
List Items*erx-*item or *erx-*__itemion-item.erx-cart__item
Inputsinput[class*="erx-"]ion-input<input class="erx-search">
Badges*erx-*badgeion-badge.erx-quantity-badge
Headers*erx-*header or *erx-*toolbarion-toolbar.erx-cart__header

Example:

// This button automatically looks like ion-button
<button class="erx-cart__checkout-btn">Checkout</button>

// This card automatically looks like ion-card
<div class="erx-product-card">...</div>

// Both adapt to iOS/MD modes automatically!

See IONIC_MIGRATION.md for detailed technical documentation.

✨ iOS 26 Liquid Glass Effect

Add Apple's Vision Pro-inspired glassmorphism to any component with a simple class:

<!-- Basic liquid glass -->
<erx-cart class="liquid-glass"></erx-cart>

<!-- Apply to any element -->
<div class="liquid-glass">
  <h2>Beautiful Glass Effect</h2>
  <p>Works with backdrop-filter blur and vibrancy</p>
</div>

Variants:

ClassEffect
.liquid-glassDefault glass effect (20px blur, 72% opacity)
.liquid-glass-subtleLighter effect (12px blur, 60% opacity)
.liquid-glass-intenseMaximum vibrancy (32px blur, 85% opacity)
.liquid-glass-frostedClassic frosted glass with brightness boost
.liquid-glass-tintedColored glass with hue rotation

Features:

  • ✅ Automatic iOS/MD adaptation (iOS gets more blur)
  • ✅ Dark mode support
  • ✅ Hover/active states
  • ✅ GPU-accelerated (will-change, transform3d)
  • ✅ Fallback for unsupported browsers
  • ✅ Respects prefers-reduced-motion
<!-- iOS mode: 24px blur, 16px border-radius -->
<html class="ios">
  <erx-product-card class="liquid-glass"></erx-product-card>
</html>

<!-- MD mode: 16px blur, 8px border-radius -->
<html class="md">
  <erx-product-card class="liquid-glass"></erx-product-card>
</html>

See Liquid Glass Demo for live examples.

📐 Bootstrap Grid Integration

ERX includes a custom Bootstrap Grid configured for Ionic:

<!-- Import the grid -->
<link rel="stylesheet" href="https://unpkg.com/@erplora/erx/dist/erx/ionic-bootstrap-grid.css">

<!-- Use Bootstrap classes with Ionic spacing -->
<div class="container">
  <div class="row g-3">  <!-- g-3 uses --ion-padding -->
    <div class="col-12 col-md-6 col-lg-4">
      <ion-card>...</ion-card>
    </div>
  </div>
</div>

Gutter Spacing (Ionic scale)

  • g-0 - No gutters (0px)
  • g-1 - Extra small (4px)
  • g-2 - Small (8px)
  • g-3 - Medium (16px) - Default Ionic padding
  • g-4 - Large (24px)
  • g-5 - Extra large (32px)

Breakpoints (Same as Ionic)

  • xs: 0px
  • sm: 576px
  • md: 768px
  • lg: 992px
  • xl: 1200px

📚 Component Categories

ERX includes 94 components organized into categories:

CategoryCountComponents
POS/Retail12Cart, Calculator, Payment, Receipt, Product Card, Order Ticket, Quantity Badge, etc.
HR/Workforce7Org Chart, Employee Card, Time Clock, Shift Calendar, Leave Request, etc.
Manufacturing7BOM Tree, Work Order, Production Line, Quality Check, Batch Tracker, etc.
Data Display15Data Grid, Tree, Table, JSON Viewer, Diff, Sparkline, Gauge, Chart, etc.
Forms (Advanced)10Rich Text, Color Picker, Phone Input, Signature Pad, Rating, Upload, etc.
Layout12Kanban, Dashboard Grid, Master-Detail, Resizable Panels, Masonry, etc.
Media11Video Player, Audio Player, QR Code, Barcode Scanner, Gallery, Image Crop, etc.
Navigation6Mega Menu, Pagination, Dropdown, Context Menu, Command Palette, etc.
Feedback4State (Empty/Error), Banner, Callout, Status Indicator
Calendar4Calendar, Calendar Views, Scheduler, Gantt Chart
Overlays4Drawer, Sheet, Lightbox, Fullscreen Modal
Others2Split Pane, Divider

🎨 Theming

Use Ionic Theme Variables

:root {
  /* Modify Ionic variables - ERX inherits them */
  --ion-color-primary: #667eea;
  --ion-color-success: #22c55e;
  --ion-color-warning: #eab308;
  --ion-color-danger: #ef4444;

  --ion-padding: 16px;
  --ion-margin: 16px;

  --ion-background-color: #ffffff;
  --ion-text-color: #111827;
}

/* Dark Mode */
body.dark {
  --ion-background-color: #0f172a;
  --ion-text-color: #f1f5f9;
  /* ERX components automatically adapt */
}

ERX-Specific Overrides (Optional)

/* Override specific ERX components if needed */
erx-data-grid::part(container) {
  border-radius: 12px;
}

erx-cart::part(header) {
  background: var(--ion-color-primary);
}

🛠 Development

# Install dependencies
npm install

# Start dev server
npm start

# Build for production
npm run build

# Run tests
npm test

# Generate new component
npm run generate erx-my-component

📖 Documentation

🌐 Browser Support

BrowserVersion
Chrome60+
Firefox63+
Safari10.1+
Edge79+
iOS Safari10.3+
Android Chrome60+

🔌 ERPlora Hub Integration

Components integrate with the ERPlora Hub API bridge:

import { getErploraApi, isInErploraHub } from '@erplora/erx';

if (isInErploraHub()) {
  const api = getErploraApi('my-module');

  // Query data
  const result = await api.query({
    action: 'select',
    table: 'products',
    orderBy: 'name ASC',
  });

  // Navigate
  api.navigate('/products/123');

  // Show toast
  api.toast('Product saved!', 'success');
}

📄 License

MIT License - see LICENSE for details.

Built with ❤️ by the ERPlora Team
Complementary to Ionic Framework

Keywords

web-components

FAQs

Package last updated on 19 Jan 2026

Did you know?

Socket

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.

Install

Related posts