@kiranshub/dashboard-ui 0.0.3 → 0.0.4

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.
@@ -101,15 +101,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
101
101
  args: [{ selector: 'particle-card', standalone: true, imports: [CommonModule], template: "<div class=\"card\">\n <ng-content></ng-content>\n</div>\n", styles: ["@tailwind base;@tailwind components;@tailwind utilities;.card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:0 1px 3px #0000000d}\n"] }]
102
102
  }] });
103
103
 
104
+ function getEffectiveCols(cols, defaultCols = 1) {
105
+ if (cols === undefined) {
106
+ return { mobile: defaultCols, tablet: defaultCols, desktop: defaultCols };
107
+ }
108
+ if (typeof cols === 'number') {
109
+ return { mobile: cols, tablet: cols, desktop: cols };
110
+ }
111
+ const mobile = cols.mobile ?? defaultCols;
112
+ const tablet = cols.tablet ?? cols.desktop ?? mobile;
113
+ const desktop = cols.desktop ?? cols.tablet ?? mobile;
114
+ return { mobile, tablet, desktop };
115
+ }
104
116
  class GridComponent {
105
117
  gap = input('md', ...(ngDevMode ? [{ debugName: "gap" }] : []));
106
- cols = input(4, ...(ngDevMode ? [{ debugName: "cols" }] : []));
118
+ cols = input(1, ...(ngDevMode ? [{ debugName: "cols" }] : []));
119
+ responsiveCols = () => getEffectiveCols(this.cols());
107
120
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: GridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: GridComponent, isStandalone: true, selector: "particle-grid", inputs: { gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, cols: { classPropertyName: "cols", publicName: "cols", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"grid\"\n [ngClass]=\"'gap-' + gap()\"\n [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["@tailwind base;@tailwind components;@tailwind utilities;.grid{display:grid}.gap-xs{gap:var(--grid-gap-xs)}.gap-sm{gap:var(--grid-gap-sm)}.gap-md{gap:var(--grid-gap-md)}.gap-lg{gap:var(--grid-gap-lg)}.gap-xl{gap:var(--grid-gap-xl)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
121
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: GridComponent, isStandalone: true, selector: "particle-grid", inputs: { gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, cols: { classPropertyName: "cols", publicName: "cols", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"grid\"\n [ngClass]=\"'gap-' + gap()\"\n [style.--grid-cols-mobile]=\"responsiveCols().mobile\"\n [style.--grid-cols-tablet]=\"responsiveCols().tablet\"\n [style.--grid-cols-desktop]=\"responsiveCols().desktop\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["@tailwind base;@tailwind components;@tailwind utilities;.grid{display:grid;grid-template-columns:repeat(var(--grid-cols-mobile, 1),1fr)}@media(min-width:768px){.grid{grid-template-columns:repeat(var(--grid-cols-tablet, var(--grid-cols-mobile, 1)),1fr)}}@media(min-width:1024px){.grid{grid-template-columns:repeat(var(--grid-cols-desktop, var(--grid-cols-tablet, var(--grid-cols-mobile, 1))),1fr)}}.gap-xs{gap:var(--grid-gap-xs)}.gap-sm{gap:var(--grid-gap-sm)}.gap-md{gap:var(--grid-gap-md)}.gap-lg{gap:var(--grid-gap-lg)}.gap-xl{gap:var(--grid-gap-xl)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
109
122
  }
110
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: GridComponent, decorators: [{
111
124
  type: Component,
112
- args: [{ selector: 'particle-grid', standalone: true, imports: [CommonModule], template: "<div\n class=\"grid\"\n [ngClass]=\"'gap-' + gap()\"\n [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["@tailwind base;@tailwind components;@tailwind utilities;.grid{display:grid}.gap-xs{gap:var(--grid-gap-xs)}.gap-sm{gap:var(--grid-gap-sm)}.gap-md{gap:var(--grid-gap-md)}.gap-lg{gap:var(--grid-gap-lg)}.gap-xl{gap:var(--grid-gap-xl)}\n"] }]
125
+ args: [{ selector: 'particle-grid', standalone: true, imports: [CommonModule], template: "<div\n class=\"grid\"\n [ngClass]=\"'gap-' + gap()\"\n [style.--grid-cols-mobile]=\"responsiveCols().mobile\"\n [style.--grid-cols-tablet]=\"responsiveCols().tablet\"\n [style.--grid-cols-desktop]=\"responsiveCols().desktop\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["@tailwind base;@tailwind components;@tailwind utilities;.grid{display:grid;grid-template-columns:repeat(var(--grid-cols-mobile, 1),1fr)}@media(min-width:768px){.grid{grid-template-columns:repeat(var(--grid-cols-tablet, var(--grid-cols-mobile, 1)),1fr)}}@media(min-width:1024px){.grid{grid-template-columns:repeat(var(--grid-cols-desktop, var(--grid-cols-tablet, var(--grid-cols-mobile, 1))),1fr)}}.gap-xs{gap:var(--grid-gap-xs)}.gap-sm{gap:var(--grid-gap-sm)}.gap-md{gap:var(--grid-gap-md)}.gap-lg{gap:var(--grid-gap-lg)}.gap-xl{gap:var(--grid-gap-xl)}\n"] }]
113
126
  }], propDecorators: { gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], cols: [{ type: i0.Input, args: [{ isSignal: true, alias: "cols", required: false }] }] } });
114
127
 
115
128
  class SidebarComponent {
@@ -1 +1 @@
1
- {"version":3,"file":"kiranshub-dashboard-ui.mjs","sources":["../../../projects/component-lib/src/lib/component-lib.ts","../../../projects/component-lib/src/lib/atoms/button/button.component.ts","../../../projects/component-lib/src/lib/atoms/button/button.component.html","../../../projects/component-lib/src/lib/atoms/icons/icons.ts","../../../projects/component-lib/src/lib/atoms/icons/icon.component.ts","../../../projects/component-lib/src/lib/atoms/icons/icon.component.html","../../../projects/component-lib/src/lib/atoms/card/card.component.ts","../../../projects/component-lib/src/lib/atoms/card/card.component.html","../../../projects/component-lib/src/lib/molecules/grid/grid.component.ts","../../../projects/component-lib/src/lib/molecules/grid/grid.component.html","../../../projects/component-lib/src/lib/organisms/sidebar.component.ts","../../../projects/component-lib/src/lib/organisms/sidebar.component.html","../../../projects/component-lib/src/lib/molecules/nav-list/nav-list.component.ts","../../../projects/component-lib/src/lib/molecules/nav-list/nav-list.component.html","../../../projects/component-lib/src/lib/services/theme.service.ts","../../../projects/component-lib/src/lib/templates/dashboard.component.ts","../../../projects/component-lib/src/lib/templates/dashboard.component.html","../../../projects/component-lib/src/public-api.ts","../../../projects/component-lib/src/kiranshub-dashboard-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-component-lib',\n imports: [],\n template: ` <p>component-lib works!</p> `,\n styles: ``,\n})\nexport class ComponentLib {}\n","import { Component, output, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline';\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n selector: 'particle-button',\n imports: [CommonModule],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n})\nexport class ParticleButton {\n readonly variant = input<ButtonVariant>('primary');\n readonly size = input<ButtonSize>('medium');\n readonly disabled = input<boolean>(false);\n readonly type = input<ButtonType>('button');\n readonly clicked = output<void>();\n\n protected onClick(): void {\n if (!this.disabled()) {\n this.clicked.emit();\n }\n }\n\n protected getClasses(): string {\n const base = 'btn';\n const sizeClasses: Record<ButtonSize, string> = {\n small: 'btn-small',\n medium: 'btn-medium',\n large: 'btn-large',\n };\n const variantClasses: Record<ButtonVariant, string> = {\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n outline: 'btn-outline',\n };\n\n const sizeClass = sizeClasses[this.size()] || 'btn-medium';\n const variantClass = variantClasses[this.variant()] || 'btn-primary';\n\n return `${base} ${sizeClass} ${variantClass}`;\n }\n}\n","<button\n [ngClass]=\"getClasses()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</button>\n","export const ICONS: Record<string, string> = {\n menu: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"/></svg>',\n 'chevron-left':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\"/></svg>',\n 'chevron-right':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\"/></svg>',\n xmark:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18 18 6M6 6l12 12\"/></svg>',\n home: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"/></svg>',\n 'chart-bar':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"/></svg>',\n users:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"/></svg>',\n cog: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495\"/></svg>',\n sun: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z\"/></svg>',\n moon: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z\"/></svg>',\n bell: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0\"/></svg>',\n folder:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z\"/></svg>',\n 'shopping-cart':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 0 0-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 0 0-16.536-1.84M7.5 14.25 5.106 5.272M6 20.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Zm12.75 0a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z\"/></svg>',\n mail: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75\"/></svg>',\n 'information-circle':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z\"/></svg>',\n user: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z\"/></svg>',\n logout:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75\"/></svg>',\n};\n\nexport type IconName = keyof typeof ICONS;\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ICONS } from './icons';\n\nexport type IconName = keyof typeof ICONS;\nexport type IconSize = 'small' | 'medium' | 'large';\n\n@Component({\n selector: 'particle-icon',\n imports: [CommonModule],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n})\nexport class ParticleIcon {\n readonly name = input.required<IconName>();\n readonly size = input<IconSize>('medium');\n\n constructor(private sanitizer: DomSanitizer) {}\n\n protected svgContent = computed(() => {\n const iconName = this.name();\n const svg = ICONS[iconName] || '';\n return this.sanitizer.bypassSecurityTrustHtml(svg) as SafeHtml;\n });\n\n protected getSizeClass(): string {\n return `icon-${this.size()}`;\n }\n}\n","<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n [class]=\"getSizeClass()\"\n [innerHTML]=\"svgContent()\"\n></svg>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'particle-card',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n})\nexport class CardComponent {}\n","<div class=\"card\">\n <ng-content></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type GridGap = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type GridCols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n@Component({\n selector: 'particle-grid',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './grid.component.html',\n styleUrl: './grid.component.scss',\n})\nexport class GridComponent {\n readonly gap = input<GridGap>('md');\n readonly cols = input<GridCols>(4);\n}\n","<div\n class=\"grid\"\n [ngClass]=\"'gap-' + gap()\"\n [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component, input, output } from '@angular/core';\nimport type { IconName } from '../atoms/icons/icon.component';\nimport { ParticleIcon } from '../atoms/icons/icon.component';\n\nexport interface NavListItem {\n label: string;\n icon: IconName;\n route?: string;\n}\n\n@Component({\n selector: 'particle-sidebar',\n standalone: true,\n imports: [ParticleIcon],\n templateUrl: './sidebar.component.html',\n styleUrl: './sidebar.component.scss',\n})\nexport class SidebarComponent {\n readonly appTitle = input<string>('');\n readonly collapsed = input<boolean>(false);\n readonly isMobile = input<boolean>(false);\n readonly toggle = output<void>();\n}\n","<aside class=\"sidebar\" [class.collapsed]=\"collapsed()\">\n <div class=\"sidebar-header\">\n <button class=\"sidebar-toggle\" (click)=\"toggle.emit()\" aria-label=\"Toggle sidebar\">\n <particle-icon\n [name]=\"isMobile() ? 'xmark' : collapsed() ? 'chevron-right' : 'chevron-left'\"\n size=\"medium\"\n />\n </button>\n @if (appTitle() && !collapsed()) {\n <h1 class=\"app-title\">{{ appTitle() }}</h1>\n }\n <ng-content select=\"[sidebarHeader]\"></ng-content>\n </div>\n <div class=\"sidebar-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"sidebar-footer\">\n <ng-content select=\"[sidebarFooter]\"></ng-content>\n </div>\n</aside>\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\n\nimport { ParticleIcon } from '../../atoms/icons/icon.component';\nimport type { NavListItem } from '../../organisms/sidebar.component';\n\n@Component({\n selector: 'particle-nav-list',\n standalone: true,\n imports: [CommonModule, RouterLink, RouterLinkActive, ParticleIcon],\n templateUrl: './nav-list.component.html',\n styleUrl: './nav-list.component.scss',\n})\nexport class NavListComponent {\n readonly items = input<readonly NavListItem[]>([]);\n readonly collapsed = input<boolean>(false);\n}\n","<div class=\"sidebar-nav-wrapper\">\n <nav class=\"sidebar-nav\" [class.collapsed]=\"collapsed()\">\n @for (item of items(); track item.label) {\n @if (item.route) {\n <a class=\"nav-item\" [routerLink]=\"item.route\" routerLinkActive=\"active\">\n <particle-icon [name]=\"item.icon\" size=\"medium\" />\n @if (!collapsed()) {\n <span class=\"nav-label\">{{ item.label }}</span>\n }\n </a>\n } @else {\n <span class=\"nav-item nav-item-disabled\">\n <particle-icon [name]=\"item.icon\" size=\"medium\" />\n @if (!collapsed()) {\n <span class=\"nav-label\">{{ item.label }}</span>\n }\n </span>\n }\n }\n </nav>\n</div>\n","import { signal } from '@angular/core';\n\nconst STORAGE_KEY = 'theme';\n\nexport const themeSignal = signal<boolean>(false);\n\nfunction getInitialTheme(): boolean {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored !== null) {\n return stored === 'dark';\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\nexport function initializeTheme(): void {\n const isDark = getInitialTheme();\n themeSignal.set(isDark);\n applyTheme(isDark);\n}\n\nexport function toggleTheme(): void {\n const newValue = !themeSignal();\n setTheme(newValue);\n}\n\nexport function setTheme(isDark: boolean): void {\n themeSignal.set(isDark);\n applyTheme(isDark);\n localStorage.setItem(STORAGE_KEY, isDark ? 'dark' : 'light');\n}\n\nfunction applyTheme(isDark: boolean): void {\n document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');\n}\n","import { Component, input, signal, HostListener } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from '../organisms/sidebar.component';\nimport { NavListComponent } from '../molecules/nav-list/nav-list.component';\nimport { ParticleIcon } from '../atoms/icons/icon.component';\nimport type { NavListItem } from '../organisms/sidebar.component';\nimport { themeSignal, toggleTheme } from '../services/theme.service';\n\n@Component({\n selector: 'particle-dashboard',\n standalone: true,\n imports: [CommonModule, SidebarComponent, NavListComponent, ParticleIcon],\n templateUrl: './dashboard.component.html',\n styleUrl: './dashboard.component.scss',\n})\nexport class DashboardComponent {\n readonly appTitle = input<string>('Dashboard');\n readonly navItems = input<readonly NavListItem[]>([]);\n readonly userInitials = input<string>('');\n readonly userMenuItems = input<readonly NavListItem[]>([\n { label: 'Manage Account', icon: 'user', route: '/account' },\n { label: 'Settings', icon: 'cog', route: '/settings' },\n { label: 'Log Out', icon: 'logout', route: '/logout' },\n ]);\n\n protected readonly sidebarCollapsed = signal(false);\n protected readonly isMobile = signal(false);\n protected readonly mobileSidebarOpen = signal(false);\n protected readonly isDark = themeSignal;\n protected readonly userMenuOpen = signal(false);\n\n constructor() {\n this.checkScreenSize();\n }\n\n private getBreakpoint(): number {\n return parseInt(\n getComputedStyle(document.documentElement).getPropertyValue('--breakpoint-mobile') || '768',\n 10,\n );\n }\n\n @HostListener('window:resize')\n protected readonly checkScreenSize = () => {\n this.isMobile.set(window.innerWidth < this.getBreakpoint());\n };\n\n protected readonly toggleSidebar = () => {\n if (this.isMobile()) {\n this.mobileSidebarOpen.update((v) => !v);\n } else {\n this.sidebarCollapsed.update((v) => !v);\n }\n };\n\n protected readonly closeMobileSidebar = () => {\n this.mobileSidebarOpen.set(false);\n };\n\n protected readonly toggleTheme = () => toggleTheme();\n\n protected readonly toggleUserMenu = () => {\n this.userMenuOpen.update((v) => !v);\n };\n\n protected readonly closeUserMenu = () => {\n this.userMenuOpen.set(false);\n };\n}\n","<div class=\"dashboard\" [class.collapsed]=\"sidebarCollapsed()\">\n @if (!isMobile()) {\n <particle-sidebar\n [appTitle]=\"appTitle()\"\n [collapsed]=\"sidebarCollapsed()\"\n [isMobile]=\"false\"\n (toggle)=\"toggleSidebar()\"\n >\n <particle-nav-list [items]=\"navItems()\" [collapsed]=\"sidebarCollapsed()\" />\n </particle-sidebar>\n }\n\n @if (isMobile() && mobileSidebarOpen()) {\n <div class=\"mobile-sidebar-overlay\" (click)=\"closeMobileSidebar()\">\n <div class=\"mobile-sidebar\" (click)=\"$event.stopPropagation()\">\n <particle-sidebar\n [appTitle]=\"appTitle()\"\n [collapsed]=\"false\"\n [isMobile]=\"true\"\n (toggle)=\"closeMobileSidebar()\"\n >\n <particle-nav-list [items]=\"navItems()\" [collapsed]=\"false\" />\n </particle-sidebar>\n </div>\n </div>\n }\n\n <div class=\"main-content\" [class.mobile]=\"isMobile()\">\n <header class=\"header\">\n <div class=\"header-left\">\n @if (isMobile()) {\n <button class=\"menu-toggle\" (click)=\"toggleSidebar()\" aria-label=\"Toggle menu\">\n <particle-icon name=\"menu\" size=\"medium\" />\n </button>\n }\n </div>\n <div class=\"header-right\">\n <button\n class=\"theme-toggle\"\n (click)=\"toggleTheme()\"\n [attr.aria-label]=\"isDark() ? 'Switch to light mode' : 'Switch to dark mode'\"\n >\n @if (isDark()) {\n <particle-icon name=\"sun\" size=\"medium\" />\n } @else {\n <particle-icon name=\"moon\" size=\"medium\" />\n }\n </button>\n <div class=\"user-menu\" (click)=\"toggleUserMenu()\">\n <span class=\"user-initials\">{{ userInitials() }}</span>\n @if (userMenuOpen()) {\n <div class=\"user-dropdown\" (click)=\"$event.stopPropagation()\">\n <particle-nav-list [items]=\"userMenuItems()\" [collapsed]=\"false\" />\n </div>\n }\n </div>\n </div>\n </header>\n\n <main class=\"content\">\n <ng-content></ng-content>\n </main>\n </div>\n</div>\n","/*\n * Public API Surface of component-lib\n */\n\nexport { ComponentLib } from './lib/component-lib';\n\nexport { ParticleButton } from './lib/atoms/button/button.component';\nexport type { ButtonVariant, ButtonSize, ButtonType } from './lib/atoms/button/button.component';\n\nexport { ParticleIcon } from './lib/atoms/icons/icon.component';\nexport type { IconName, IconSize } from './lib/atoms/icons/icon.component';\n\nexport { CardComponent } from './lib/atoms/card/card.component';\n\nexport { GridComponent } from './lib/molecules/grid/grid.component';\nexport type { GridGap, GridCols } from './lib/molecules/grid/grid.component';\n\nexport { DashboardComponent } from './lib/templates/dashboard.component';\n\nexport { SidebarComponent } from './lib/organisms/sidebar.component';\nexport type { NavListItem } from './lib/organisms/sidebar.component';\n\nexport { NavListComponent } from './lib/molecules/nav-list/nav-list.component';\n\nexport { initializeTheme, themeSignal, toggleTheme, setTheme } from './lib/services/theme.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"kiranshub-dashboard-ui.mjs","sources":["../../../projects/component-lib/src/lib/component-lib.ts","../../../projects/component-lib/src/lib/atoms/button/button.component.ts","../../../projects/component-lib/src/lib/atoms/button/button.component.html","../../../projects/component-lib/src/lib/atoms/icons/icons.ts","../../../projects/component-lib/src/lib/atoms/icons/icon.component.ts","../../../projects/component-lib/src/lib/atoms/icons/icon.component.html","../../../projects/component-lib/src/lib/atoms/card/card.component.ts","../../../projects/component-lib/src/lib/atoms/card/card.component.html","../../../projects/component-lib/src/lib/molecules/grid/grid.component.ts","../../../projects/component-lib/src/lib/molecules/grid/grid.component.html","../../../projects/component-lib/src/lib/organisms/sidebar.component.ts","../../../projects/component-lib/src/lib/organisms/sidebar.component.html","../../../projects/component-lib/src/lib/molecules/nav-list/nav-list.component.ts","../../../projects/component-lib/src/lib/molecules/nav-list/nav-list.component.html","../../../projects/component-lib/src/lib/services/theme.service.ts","../../../projects/component-lib/src/lib/templates/dashboard.component.ts","../../../projects/component-lib/src/lib/templates/dashboard.component.html","../../../projects/component-lib/src/public-api.ts","../../../projects/component-lib/src/kiranshub-dashboard-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-component-lib',\n imports: [],\n template: ` <p>component-lib works!</p> `,\n styles: ``,\n})\nexport class ComponentLib {}\n","import { Component, output, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline';\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n selector: 'particle-button',\n imports: [CommonModule],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n})\nexport class ParticleButton {\n readonly variant = input<ButtonVariant>('primary');\n readonly size = input<ButtonSize>('medium');\n readonly disabled = input<boolean>(false);\n readonly type = input<ButtonType>('button');\n readonly clicked = output<void>();\n\n protected onClick(): void {\n if (!this.disabled()) {\n this.clicked.emit();\n }\n }\n\n protected getClasses(): string {\n const base = 'btn';\n const sizeClasses: Record<ButtonSize, string> = {\n small: 'btn-small',\n medium: 'btn-medium',\n large: 'btn-large',\n };\n const variantClasses: Record<ButtonVariant, string> = {\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n outline: 'btn-outline',\n };\n\n const sizeClass = sizeClasses[this.size()] || 'btn-medium';\n const variantClass = variantClasses[this.variant()] || 'btn-primary';\n\n return `${base} ${sizeClass} ${variantClass}`;\n }\n}\n","<button\n [ngClass]=\"getClasses()\"\n [disabled]=\"disabled()\"\n [type]=\"type()\"\n (click)=\"onClick()\"\n>\n <ng-content></ng-content>\n</button>\n","export const ICONS: Record<string, string> = {\n menu: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"/></svg>',\n 'chevron-left':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\"/></svg>',\n 'chevron-right':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\"/></svg>',\n xmark:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18 18 6M6 6l12 12\"/></svg>',\n home: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"/></svg>',\n 'chart-bar':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"/></svg>',\n users:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"/></svg>',\n cog: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495\"/></svg>',\n sun: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z\"/></svg>',\n moon: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z\"/></svg>',\n bell: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0\"/></svg>',\n folder:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z\"/></svg>',\n 'shopping-cart':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 0 0-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 0 0-16.536-1.84M7.5 14.25 5.106 5.272M6 20.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Zm12.75 0a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z\"/></svg>',\n mail: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75\"/></svg>',\n 'information-circle':\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z\"/></svg>',\n user: '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z\"/></svg>',\n logout:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75\"/></svg>',\n};\n\nexport type IconName = keyof typeof ICONS;\n","import { Component, input, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ICONS } from './icons';\n\nexport type IconName = keyof typeof ICONS;\nexport type IconSize = 'small' | 'medium' | 'large';\n\n@Component({\n selector: 'particle-icon',\n imports: [CommonModule],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n})\nexport class ParticleIcon {\n readonly name = input.required<IconName>();\n readonly size = input<IconSize>('medium');\n\n constructor(private sanitizer: DomSanitizer) {}\n\n protected svgContent = computed(() => {\n const iconName = this.name();\n const svg = ICONS[iconName] || '';\n return this.sanitizer.bypassSecurityTrustHtml(svg) as SafeHtml;\n });\n\n protected getSizeClass(): string {\n return `icon-${this.size()}`;\n }\n}\n","<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n [class]=\"getSizeClass()\"\n [innerHTML]=\"svgContent()\"\n></svg>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'particle-card',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n})\nexport class CardComponent {}\n","<div class=\"card\">\n <ng-content></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type GridGap = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type GridCols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport interface GridResponsiveCols {\n mobile?: GridCols;\n tablet?: GridCols;\n desktop?: GridCols;\n}\n\nexport function getEffectiveCols(\n cols: GridCols | GridResponsiveCols | undefined,\n defaultCols: GridCols = 1,\n): { mobile: number; tablet: number; desktop: number } {\n if (cols === undefined) {\n return { mobile: defaultCols, tablet: defaultCols, desktop: defaultCols };\n }\n\n if (typeof cols === 'number') {\n return { mobile: cols, tablet: cols, desktop: cols };\n }\n\n const mobile = cols.mobile ?? defaultCols;\n const tablet = cols.tablet ?? cols.desktop ?? mobile;\n const desktop = cols.desktop ?? cols.tablet ?? mobile;\n\n return { mobile, tablet, desktop };\n}\n\n@Component({\n selector: 'particle-grid',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './grid.component.html',\n styleUrl: './grid.component.scss',\n})\nexport class GridComponent {\n readonly gap = input<GridGap>('md');\n readonly cols = input<GridCols | GridResponsiveCols>(1);\n\n protected readonly responsiveCols = () => getEffectiveCols(this.cols());\n}\n","<div\n class=\"grid\"\n [ngClass]=\"'gap-' + gap()\"\n [style.--grid-cols-mobile]=\"responsiveCols().mobile\"\n [style.--grid-cols-tablet]=\"responsiveCols().tablet\"\n [style.--grid-cols-desktop]=\"responsiveCols().desktop\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component, input, output } from '@angular/core';\nimport type { IconName } from '../atoms/icons/icon.component';\nimport { ParticleIcon } from '../atoms/icons/icon.component';\n\nexport interface NavListItem {\n label: string;\n icon: IconName;\n route?: string;\n}\n\n@Component({\n selector: 'particle-sidebar',\n standalone: true,\n imports: [ParticleIcon],\n templateUrl: './sidebar.component.html',\n styleUrl: './sidebar.component.scss',\n})\nexport class SidebarComponent {\n readonly appTitle = input<string>('');\n readonly collapsed = input<boolean>(false);\n readonly isMobile = input<boolean>(false);\n readonly toggle = output<void>();\n}\n","<aside class=\"sidebar\" [class.collapsed]=\"collapsed()\">\n <div class=\"sidebar-header\">\n <button class=\"sidebar-toggle\" (click)=\"toggle.emit()\" aria-label=\"Toggle sidebar\">\n <particle-icon\n [name]=\"isMobile() ? 'xmark' : collapsed() ? 'chevron-right' : 'chevron-left'\"\n size=\"medium\"\n />\n </button>\n @if (appTitle() && !collapsed()) {\n <h1 class=\"app-title\">{{ appTitle() }}</h1>\n }\n <ng-content select=\"[sidebarHeader]\"></ng-content>\n </div>\n <div class=\"sidebar-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"sidebar-footer\">\n <ng-content select=\"[sidebarFooter]\"></ng-content>\n </div>\n</aside>\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\n\nimport { ParticleIcon } from '../../atoms/icons/icon.component';\nimport type { NavListItem } from '../../organisms/sidebar.component';\n\n@Component({\n selector: 'particle-nav-list',\n standalone: true,\n imports: [CommonModule, RouterLink, RouterLinkActive, ParticleIcon],\n templateUrl: './nav-list.component.html',\n styleUrl: './nav-list.component.scss',\n})\nexport class NavListComponent {\n readonly items = input<readonly NavListItem[]>([]);\n readonly collapsed = input<boolean>(false);\n}\n","<div class=\"sidebar-nav-wrapper\">\n <nav class=\"sidebar-nav\" [class.collapsed]=\"collapsed()\">\n @for (item of items(); track item.label) {\n @if (item.route) {\n <a class=\"nav-item\" [routerLink]=\"item.route\" routerLinkActive=\"active\">\n <particle-icon [name]=\"item.icon\" size=\"medium\" />\n @if (!collapsed()) {\n <span class=\"nav-label\">{{ item.label }}</span>\n }\n </a>\n } @else {\n <span class=\"nav-item nav-item-disabled\">\n <particle-icon [name]=\"item.icon\" size=\"medium\" />\n @if (!collapsed()) {\n <span class=\"nav-label\">{{ item.label }}</span>\n }\n </span>\n }\n }\n </nav>\n</div>\n","import { signal } from '@angular/core';\n\nconst STORAGE_KEY = 'theme';\n\nexport const themeSignal = signal<boolean>(false);\n\nfunction getInitialTheme(): boolean {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored !== null) {\n return stored === 'dark';\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\nexport function initializeTheme(): void {\n const isDark = getInitialTheme();\n themeSignal.set(isDark);\n applyTheme(isDark);\n}\n\nexport function toggleTheme(): void {\n const newValue = !themeSignal();\n setTheme(newValue);\n}\n\nexport function setTheme(isDark: boolean): void {\n themeSignal.set(isDark);\n applyTheme(isDark);\n localStorage.setItem(STORAGE_KEY, isDark ? 'dark' : 'light');\n}\n\nfunction applyTheme(isDark: boolean): void {\n document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');\n}\n","import { Component, input, signal, HostListener } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from '../organisms/sidebar.component';\nimport { NavListComponent } from '../molecules/nav-list/nav-list.component';\nimport { ParticleIcon } from '../atoms/icons/icon.component';\nimport type { NavListItem } from '../organisms/sidebar.component';\nimport { themeSignal, toggleTheme } from '../services/theme.service';\n\n@Component({\n selector: 'particle-dashboard',\n standalone: true,\n imports: [CommonModule, SidebarComponent, NavListComponent, ParticleIcon],\n templateUrl: './dashboard.component.html',\n styleUrl: './dashboard.component.scss',\n})\nexport class DashboardComponent {\n readonly appTitle = input<string>('Dashboard');\n readonly navItems = input<readonly NavListItem[]>([]);\n readonly userInitials = input<string>('');\n readonly userMenuItems = input<readonly NavListItem[]>([\n { label: 'Manage Account', icon: 'user', route: '/account' },\n { label: 'Settings', icon: 'cog', route: '/settings' },\n { label: 'Log Out', icon: 'logout', route: '/logout' },\n ]);\n\n protected readonly sidebarCollapsed = signal(false);\n protected readonly isMobile = signal(false);\n protected readonly mobileSidebarOpen = signal(false);\n protected readonly isDark = themeSignal;\n protected readonly userMenuOpen = signal(false);\n\n constructor() {\n this.checkScreenSize();\n }\n\n private getBreakpoint(): number {\n return parseInt(\n getComputedStyle(document.documentElement).getPropertyValue('--breakpoint-mobile') || '768',\n 10,\n );\n }\n\n @HostListener('window:resize')\n protected readonly checkScreenSize = () => {\n this.isMobile.set(window.innerWidth < this.getBreakpoint());\n };\n\n protected readonly toggleSidebar = () => {\n if (this.isMobile()) {\n this.mobileSidebarOpen.update((v) => !v);\n } else {\n this.sidebarCollapsed.update((v) => !v);\n }\n };\n\n protected readonly closeMobileSidebar = () => {\n this.mobileSidebarOpen.set(false);\n };\n\n protected readonly toggleTheme = () => toggleTheme();\n\n protected readonly toggleUserMenu = () => {\n this.userMenuOpen.update((v) => !v);\n };\n\n protected readonly closeUserMenu = () => {\n this.userMenuOpen.set(false);\n };\n}\n","<div class=\"dashboard\" [class.collapsed]=\"sidebarCollapsed()\">\n @if (!isMobile()) {\n <particle-sidebar\n [appTitle]=\"appTitle()\"\n [collapsed]=\"sidebarCollapsed()\"\n [isMobile]=\"false\"\n (toggle)=\"toggleSidebar()\"\n >\n <particle-nav-list [items]=\"navItems()\" [collapsed]=\"sidebarCollapsed()\" />\n </particle-sidebar>\n }\n\n @if (isMobile() && mobileSidebarOpen()) {\n <div class=\"mobile-sidebar-overlay\" (click)=\"closeMobileSidebar()\">\n <div class=\"mobile-sidebar\" (click)=\"$event.stopPropagation()\">\n <particle-sidebar\n [appTitle]=\"appTitle()\"\n [collapsed]=\"false\"\n [isMobile]=\"true\"\n (toggle)=\"closeMobileSidebar()\"\n >\n <particle-nav-list [items]=\"navItems()\" [collapsed]=\"false\" />\n </particle-sidebar>\n </div>\n </div>\n }\n\n <div class=\"main-content\" [class.mobile]=\"isMobile()\">\n <header class=\"header\">\n <div class=\"header-left\">\n @if (isMobile()) {\n <button class=\"menu-toggle\" (click)=\"toggleSidebar()\" aria-label=\"Toggle menu\">\n <particle-icon name=\"menu\" size=\"medium\" />\n </button>\n }\n </div>\n <div class=\"header-right\">\n <button\n class=\"theme-toggle\"\n (click)=\"toggleTheme()\"\n [attr.aria-label]=\"isDark() ? 'Switch to light mode' : 'Switch to dark mode'\"\n >\n @if (isDark()) {\n <particle-icon name=\"sun\" size=\"medium\" />\n } @else {\n <particle-icon name=\"moon\" size=\"medium\" />\n }\n </button>\n <div class=\"user-menu\" (click)=\"toggleUserMenu()\">\n <span class=\"user-initials\">{{ userInitials() }}</span>\n @if (userMenuOpen()) {\n <div class=\"user-dropdown\" (click)=\"$event.stopPropagation()\">\n <particle-nav-list [items]=\"userMenuItems()\" [collapsed]=\"false\" />\n </div>\n }\n </div>\n </div>\n </header>\n\n <main class=\"content\">\n <ng-content></ng-content>\n </main>\n </div>\n</div>\n","/*\n * Public API Surface of component-lib\n */\n\nexport { ComponentLib } from './lib/component-lib';\n\nexport { ParticleButton } from './lib/atoms/button/button.component';\nexport type { ButtonVariant, ButtonSize, ButtonType } from './lib/atoms/button/button.component';\n\nexport { ParticleIcon } from './lib/atoms/icons/icon.component';\nexport type { IconName, IconSize } from './lib/atoms/icons/icon.component';\n\nexport { CardComponent } from './lib/atoms/card/card.component';\n\nexport { GridComponent } from './lib/molecules/grid/grid.component';\nexport type { GridGap, GridCols } from './lib/molecules/grid/grid.component';\n\nexport { DashboardComponent } from './lib/templates/dashboard.component';\n\nexport { SidebarComponent } from './lib/organisms/sidebar.component';\nexport type { NavListItem } from './lib/organisms/sidebar.component';\n\nexport { NavListComponent } from './lib/molecules/nav-list/nav-list.component';\n\nexport { initializeTheme, themeSignal, toggleTheme, setTheme } from './lib/services/theme.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kiranshub/dashboard-ui",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "Angular UI component library with dashboard, sidebar, buttons, icons, and more",
5
5
  "keywords": [
6
6
  "angular",
@@ -43,9 +43,19 @@ declare class CardComponent {
43
43
 
44
44
  type GridGap = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
45
45
  type GridCols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
46
+ interface GridResponsiveCols {
47
+ mobile?: GridCols;
48
+ tablet?: GridCols;
49
+ desktop?: GridCols;
50
+ }
46
51
  declare class GridComponent {
47
52
  readonly gap: _angular_core.InputSignal<GridGap>;
48
- readonly cols: _angular_core.InputSignal<GridCols>;
53
+ readonly cols: _angular_core.InputSignal<GridCols | GridResponsiveCols>;
54
+ protected readonly responsiveCols: () => {
55
+ mobile: number;
56
+ tablet: number;
57
+ desktop: number;
58
+ };
49
59
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridComponent, never>;
50
60
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<GridComponent, "particle-grid", never, { "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "cols": { "alias": "cols"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
51
61
  }