@blank-software/core-components 0.0.1 → 0.0.2

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 (39) hide show
  1. package/fesm2022/blank-software-core-components.mjs +118 -2
  2. package/fesm2022/blank-software-core-components.mjs.map +1 -1
  3. package/package.json +1 -1
  4. package/src/lib/accordion/accordion.css +5 -0
  5. package/src/lib/alert/alert.css +27 -0
  6. package/src/lib/avatar/avatar.css +0 -0
  7. package/src/lib/badge/badge.css +0 -0
  8. package/src/lib/breadcrumb/breadcrumb.css +0 -0
  9. package/src/lib/button/button.css +83 -0
  10. package/src/lib/card/card.css +31 -0
  11. package/src/lib/checkbox/checkbox.css +53 -0
  12. package/src/lib/date-picker/date-picker.css +0 -0
  13. package/src/lib/dropdown/dropdown.css +0 -0
  14. package/src/lib/file-upload/file-upload.css +0 -0
  15. package/src/lib/footer/footer.css +0 -0
  16. package/src/lib/form-field/form-field.css +0 -0
  17. package/src/lib/header/header.css +23 -0
  18. package/src/lib/icon/icon.css +0 -0
  19. package/src/lib/input/input.css +29 -0
  20. package/src/lib/label/label.css +27 -0
  21. package/src/lib/modal/modal-dialog.css +117 -0
  22. package/src/lib/modal/modal.css +69 -0
  23. package/src/lib/navigation/navigation.css +0 -0
  24. package/src/lib/pagination/pagination.css +76 -0
  25. package/src/lib/progress-bar/progress-bar.css +88 -0
  26. package/src/lib/radio/radio.css +35 -0
  27. package/src/lib/search-bar/search-bar.css +0 -0
  28. package/src/lib/select/select.css +75 -0
  29. package/src/lib/sidebar/sidebar.css +41 -0
  30. package/src/lib/skeleton/skeleton.css +46 -0
  31. package/src/lib/spinner/spinner.css +0 -0
  32. package/src/lib/stepper/stepper.css +0 -0
  33. package/src/lib/table/table.css +97 -0
  34. package/src/lib/tabs/tabs.css +0 -0
  35. package/src/lib/toggle/toggle.css +52 -0
  36. package/src/lib/tooltip/tooltip.css +0 -0
  37. package/src/styles/index.css +34 -0
  38. package/src/styles/theme.css +133 -0
  39. package/types/blank-software-core-components.d.ts +51 -2
@@ -1 +1 @@
1
- {"version":3,"file":"blank-software-core-components.mjs","sources":["../../../projects/core-components/src/lib/accordion/accordion.ts","../../../projects/core-components/src/lib/accordion/accordion.html","../../../projects/core-components/src/lib/alert/alert.ts","../../../projects/core-components/src/lib/alert/alert.html","../../../projects/core-components/src/lib/avatar/avatar.ts","../../../projects/core-components/src/lib/avatar/avatar.html","../../../projects/core-components/src/lib/badge/badge.ts","../../../projects/core-components/src/lib/badge/badge.html","../../../projects/core-components/src/lib/breadcrumb/breadcrumb.ts","../../../projects/core-components/src/lib/breadcrumb/breadcrumb.html","../../../projects/core-components/src/lib/button/button.ts","../../../projects/core-components/src/lib/button/button.html","../../../projects/core-components/src/lib/card/card.ts","../../../projects/core-components/src/lib/card/card.html","../../../projects/core-components/src/lib/checkbox/checkbox.ts","../../../projects/core-components/src/lib/checkbox/checkbox.html","../../../projects/core-components/src/lib/date-picker/date-picker.ts","../../../projects/core-components/src/lib/date-picker/date-picker.html","../../../projects/core-components/src/lib/dropdown/dropdown.ts","../../../projects/core-components/src/lib/dropdown/dropdown.html","../../../projects/core-components/src/lib/file-upload/file-upload.ts","../../../projects/core-components/src/lib/file-upload/file-upload.html","../../../projects/core-components/src/lib/footer/footer.ts","../../../projects/core-components/src/lib/footer/footer.html","../../../projects/core-components/src/lib/form-field/form-field.ts","../../../projects/core-components/src/lib/form-field/form-field.html","../../../projects/core-components/src/lib/header/header.ts","../../../projects/core-components/src/lib/header/header.html","../../../projects/core-components/src/lib/icon/icon.ts","../../../projects/core-components/src/lib/icon/icon.html","../../../projects/core-components/src/lib/input/input.ts","../../../projects/core-components/src/lib/input/input.html","../../../projects/core-components/src/lib/label/label.ts","../../../projects/core-components/src/lib/label/label.html","../../../projects/core-components/src/lib/modal/modal.ts","../../../projects/core-components/src/lib/modal/modal.html","../../../projects/core-components/src/lib/navigation/navigation.ts","../../../projects/core-components/src/lib/navigation/navigation.html","../../../projects/core-components/src/lib/select/select.ts","../../../projects/core-components/src/lib/select/select.html","../../../projects/core-components/src/lib/pagination/pagination.ts","../../../projects/core-components/src/lib/pagination/pagination.html","../../../projects/core-components/src/lib/progress-bar/progress-bar.ts","../../../projects/core-components/src/lib/progress-bar/progress-bar.html","../../../projects/core-components/src/lib/radio/radio.ts","../../../projects/core-components/src/lib/radio/radio.html","../../../projects/core-components/src/lib/search-bar/search-bar.ts","../../../projects/core-components/src/lib/search-bar/search-bar.html","../../../projects/core-components/src/lib/sidebar/sidebar.service.ts","../../../projects/core-components/src/lib/sidebar/sidebar.ts","../../../projects/core-components/src/lib/sidebar/sidebar.html","../../../projects/core-components/src/lib/skeleton/skeleton.ts","../../../projects/core-components/src/lib/skeleton/skeleton.html","../../../projects/core-components/src/lib/spinner/spinner.ts","../../../projects/core-components/src/lib/spinner/spinner.html","../../../projects/core-components/src/lib/stepper/stepper.ts","../../../projects/core-components/src/lib/stepper/stepper.html","../../../projects/core-components/src/lib/table/table.ts","../../../projects/core-components/src/lib/table/table.html","../../../projects/core-components/src/lib/tabs/tabs.ts","../../../projects/core-components/src/lib/tabs/tabs.html","../../../projects/core-components/src/lib/toggle/toggle.ts","../../../projects/core-components/src/lib/toggle/toggle.html","../../../projects/core-components/src/lib/tooltip/tooltip.ts","../../../projects/core-components/src/lib/tooltip/tooltip.html","../../../projects/core-components/src/public-api.ts","../../../projects/core-components/src/blank-software-core-components.ts"],"sourcesContent":["import {\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n forwardRef,\n inject,\n input,\n model,\n} from '@angular/core';\n\n@Component({\n selector: 'bsc-accordion-item',\n imports: [],\n template: `\n <div [class]=\"itemClasses()\">\n <button class=\"accordion-header\" [disabled]=\"disabled()\" (click)=\"toggle()\">\n <span class=\"accordion-title\">{{ title() }}</span>\n <svg\n class=\"accordion-chevron\"\n [class.accordion-chevron-open]=\"open()\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n </button>\n @if (open()) {\n <div class=\"accordion-body\">\n <ng-content />\n </div>\n }\n </div>\n `,\n styles: `\n :host {\n display: block;\n }\n\n .accordion-item {\n border-bottom: 1px solid var(--color-ink-200);\n }\n\n .accordion-item:last-child {\n border-bottom: none;\n }\n\n .accordion-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 1rem 1.5rem;\n background: transparent;\n border: none;\n cursor: pointer;\n font-weight: 500;\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: var(--color-ink-900);\n transition: background-color 0.15s;\n }\n\n .accordion-header:hover:not(:disabled) {\n background-color: var(--color-ink-50);\n }\n\n .accordion-header:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .accordion-chevron {\n flex-shrink: 0;\n color: var(--color-ink-400);\n transition: transform 0.2s ease;\n }\n\n .accordion-chevron-open {\n transform: rotate(180deg);\n }\n\n .accordion-body {\n padding: 0 1.5rem 1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: var(--color-ink-600);\n }\n\n .accordion-item-disabled {\n opacity: 0.5;\n }\n `,\n})\nexport class AccordionItem {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly title = input.required<string>();\n readonly open = model(false);\n\n private readonly parent = inject(\n forwardRef(() => Accordion),\n { optional: true },\n );\n\n protected readonly itemClasses = computed(() => {\n const classes = ['accordion-item'];\n if (this.disabled()) classes.push('accordion-item-disabled');\n return classes.join(' ');\n });\n\n toggle() {\n if (this.disabled()) return;\n this.open.set(!this.open());\n if (this.open() && this.parent) {\n this.parent.onItemToggle(this);\n }\n }\n}\n\n@Component({\n selector: 'bsc-accordion',\n imports: [],\n templateUrl: './accordion.html',\n styleUrl: './accordion.css',\n})\nexport class Accordion {\n readonly multiple = input(false, { transform: booleanAttribute });\n\n private readonly items = contentChildren(AccordionItem);\n\n onItemToggle(openedItem: AccordionItem) {\n if (this.multiple()) return;\n for (const item of this.items()) {\n if (item !== openedItem) {\n item.open.set(false);\n }\n }\n }\n}\n","<div class=\"accordion\">\n <ng-content />\n</div>\n","import { Component, computed, input } from '@angular/core';\n\nexport type AlertVariant = 'info' | 'danger' | 'success' | 'warning' | 'dark';\n\n@Component({\n selector: 'bsc-alert',\n imports: [],\n templateUrl: './alert.html',\n})\nexport class Alert {\n readonly variant = input<AlertVariant>('info');\n\n protected readonly alertClasses = computed(() => {\n return `alert alert-${this.variant()}`;\n });\n}\n","<div [class]=\"alertClasses()\" role=\"alert\">\n <ng-content />\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-avatar',\n imports: [],\n templateUrl: './avatar.html',\n styleUrl: './avatar.css',\n})\nexport class Avatar {}\n","<p>avatar works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-badge',\n imports: [],\n templateUrl: './badge.html',\n styleUrl: './badge.css',\n})\nexport class Badge {}\n","<p>badge works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-breadcrumb',\n imports: [],\n templateUrl: './breadcrumb.html',\n styleUrl: './breadcrumb.css',\n})\nexport class Breadcrumb {}\n","<p>breadcrumb works!</p>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost';\nexport type ButtonShape = 'rounded' | 'pill';\n\nfunction luminance(hex: string): number {\n const raw = hex.replace('#', '');\n const r = parseInt(raw.substring(0, 2), 16) / 255;\n const g = parseInt(raw.substring(2, 4), 16) / 255;\n const b = parseInt(raw.substring(4, 6), 16) / 255;\n const toLinear = (c: number) => (c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));\n return 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b);\n}\n\n@Component({\n selector: 'bsc-button',\n imports: [],\n templateUrl: './button.html',\n})\nexport class Button {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly iconOnly = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly color = input<string | undefined>(undefined);\n readonly shape = input<ButtonShape>('rounded');\n readonly size = input<Size>('md');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly variant = input<ButtonVariant>('primary');\n\n protected readonly buttonClasses = computed(() => {\n const io = this.iconOnly();\n const sizePrefix = io ? 'btn-icon-' : 'btn-';\n\n const classes = ['btn', `btn-${this.shape()}`, `${sizePrefix}${this.size()}`];\n\n if (this.color()) {\n classes.push('btn-custom-color');\n } else {\n classes.push(`btn-${this.variant()}`);\n }\n\n return classes.join(' ');\n });\n\n protected readonly buttonStyles = computed(() => {\n const c = this.color();\n if (!c) return {};\n const textColor = luminance(c) > 0.4 ? '#0F172A' : '#FFFFFF';\n return {\n '--btn-bg': c,\n '--btn-text': textColor,\n } as Record<string, string>;\n });\n}\n","<button\n [type]=\"type()\"\n [disabled]=\"disabled() || loading()\"\n [class]=\"buttonClasses()\"\n [style]=\"buttonStyles()\"\n>\n @if (loading()) {\n <svg\n class=\"animate-spin shrink-0\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n }\n <ng-content select=\"[leftIcon]\" />\n <ng-content />\n <ng-content select=\"[rightIcon]\" />\n</button>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nexport type CardVariant = 'default' | 'outlined';\n\n@Component({\n selector: 'bsc-card',\n imports: [],\n templateUrl: './card.html',\n styleUrl: './card.css',\n})\nexport class Card {\n readonly padded = input(true, { transform: booleanAttribute });\n readonly variant = input<CardVariant>('default');\n\n protected readonly cardClasses = computed(() => {\n const classes = ['card', `card-${this.variant()}`];\n if (this.padded()) classes.push('card-padded');\n return classes.join(' ');\n });\n}\n","<div [class]=\"cardClasses()\">\n <ng-content select=\"[cardHeader]\" />\n <div class=\"card-body\">\n <ng-content />\n </div>\n <ng-content select=\"[cardFooter]\" />\n</div>\n","import { booleanAttribute, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bsc-checkbox',\n imports: [],\n templateUrl: './checkbox.html',\n})\nexport class Checkbox {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly indeterminate = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n\n protected toggle() {\n if (!this.disabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<label class=\"checkbox\">\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n (change)=\"toggle()\"\n />\n <span class=\"checkbox-box\" [class.checkbox-indeterminate]=\"indeterminate() && !checked()\">\n @if (indeterminate() && !checked()) {\n <svg\n class=\"checkbox-check\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 6h8\" />\n </svg>\n } @else {\n <svg\n class=\"checkbox-check\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 6l3 3 5-6\" />\n </svg>\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content />\n </span>\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-date-picker',\n imports: [],\n templateUrl: './date-picker.html',\n styleUrl: './date-picker.css',\n})\nexport class DatePicker {}\n","<p>date-picker works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-dropdown',\n imports: [],\n templateUrl: './dropdown.html',\n styleUrl: './dropdown.css',\n})\nexport class Dropdown {}\n","<p>dropdown works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-file-upload',\n imports: [],\n templateUrl: './file-upload.html',\n styleUrl: './file-upload.css',\n})\nexport class FileUpload {}\n","<p>file-upload works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-footer',\n imports: [],\n templateUrl: './footer.html',\n styleUrl: './footer.css',\n})\nexport class Footer {}\n","<p>footer works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-form-field',\n imports: [],\n templateUrl: './form-field.html',\n styleUrl: './form-field.css',\n})\nexport class FormField {}\n","<p>form-field works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-header',\n imports: [],\n templateUrl: './header.html',\n})\nexport class Header {}\n","<nav class=\"header\" aria-label=\"Top navigation\">\n <div class=\"header-inner\">\n <div class=\"header-left\">\n <ng-content select=\"[headerLeft]\" />\n </div>\n <div class=\"header-right\">\n <ng-content select=\"[headerRight]\" />\n </div>\n </div>\n</nav>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-icon',\n imports: [],\n templateUrl: './icon.html',\n styleUrl: './icon.css',\n})\nexport class Icon {}\n","<p>icon works!</p>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size, State } from '../types';\n\n@Component({\n selector: 'bsc-input',\n imports: [],\n templateUrl: './input.html',\n})\nexport class Input {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly placeholder = input<string>('');\n readonly size = input<Size>('md');\n readonly state = input<State>('default');\n readonly type = input<string>('text');\n\n protected readonly inputClasses = computed(() => {\n const classes = ['input', `input-${this.size()}`];\n const s = this.state();\n if (s !== 'default') classes.push(`input-${s}`);\n return classes.join(' ');\n });\n}\n","<input\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [class]=\"inputClasses()\"\n/>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-label',\n imports: [],\n templateUrl: './label.html',\n})\nexport class Label {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n readonly size = input<Size>('md');\n\n protected readonly labelClasses = computed(() => {\n const classes = ['label', `label-${this.size()}`];\n if (this.disabled()) classes.push('label-disabled');\n return classes.join(' ');\n });\n}\n","<!-- eslint-disable-next-line @angular-eslint/template/label-has-associated-control -->\n<label [class]=\"labelClasses()\">\n <ng-content />\n @if (required()) {\n <span class=\"label-required\">*</span>\n }\n</label>\n","import {\n booleanAttribute,\n Component,\n computed,\n HostListener,\n input,\n model,\n output,\n} from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-modal',\n imports: [],\n templateUrl: './modal.html',\n})\nexport class Modal {\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n readonly closeOnEsc = input(true, { transform: booleanAttribute });\n readonly confirmDisabled = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n readonly confirmed = output<void>();\n readonly confirmText = input<string>('Conferma');\n readonly open = model<boolean>(false);\n\n readonly size = input<Size>('md');\n readonly title = input<string>('');\n\n protected readonly panelClasses = computed(() => {\n return `bsc-modal-panel bsc-modal-${this.size()}`;\n });\n\n protected close() {\n this.open.set(false);\n this.closed.emit();\n }\n\n protected onBackdropClick() {\n if (this.closeOnBackdrop()) {\n this.close();\n }\n }\n\n protected onConfirm() {\n this.confirmed.emit();\n }\n\n @HostListener('document:keydown.escape')\n protected onEscKey() {\n if (this.open() && this.closeOnEsc()) {\n this.close();\n }\n }\n}\n","@if (open()) {\n <!-- Backdrop -->\n <div\n class=\"bsc-modal-backdrop\"\n (click)=\"onBackdropClick()\"\n (keydown.escape)=\"close()\"\n tabindex=\"-1\"\n role=\"button\"\n aria-label=\"Close modal\"\n ></div>\n\n <!-- Modal -->\n <div class=\"bsc-modal-overlay\">\n <div [class]=\"panelClasses()\">\n <!-- Modal content -->\n <div class=\"bsc-modal-content\" role=\"dialog\" aria-modal=\"true\">\n <!-- Header -->\n <div class=\"bsc-modal-header\">\n <h3 class=\"bsc-modal-title\">{{ title() }}</h3>\n <button type=\"button\" class=\"bsc-modal-close\" (click)=\"close()\">\n <svg\n class=\"w-5 h-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 18 17.94 6M18 18 6.06 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n\n <!-- Body (content projection) -->\n <div class=\"bsc-modal-body\">\n <ng-content />\n </div>\n\n <!-- Footer -->\n <div class=\"bsc-modal-footer\">\n <button\n type=\"button\"\n class=\"bsc-modal-confirm-btn\"\n [disabled]=\"confirmDisabled()\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText() }}\n </button>\n <ng-content select=\"[modalFooter]\" />\n </div>\n </div>\n </div>\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-navigation',\n imports: [],\n templateUrl: './navigation.html',\n styleUrl: './navigation.css',\n})\nexport class Navigation {}\n","<p>navigation works!</p>\n","import {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n signal,\n} from '@angular/core';\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\nimport { Size, State } from '../types';\n\n@Component({\n selector: 'bsc-select',\n imports: [],\n templateUrl: './select.html',\n styleUrl: './select.css',\n})\nexport class Select {\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly placeholder = input('');\n readonly isOpen = signal(false);\n readonly options = input<SelectOption[]>([]);\n readonly size = input<Size>('md');\n readonly state = input<State>('default');\n readonly value = model<string | string[] | null>(null);\n\n private readonly el = inject(ElementRef);\n\n protected readonly displayText = computed(() => {\n const val = this.value();\n const opts = this.options();\n\n if (val === null || val === undefined) return this.placeholder();\n\n if (Array.isArray(val)) {\n if (val.length === 0) return this.placeholder();\n const labels = val.map((v) => opts.find((o) => o.value === v)?.label ?? v).join(', ');\n return labels;\n }\n\n return (opts.find((o) => o.value === val)?.label ?? val) || this.placeholder();\n });\n\n protected readonly triggerClasses = computed(() => {\n const classes = ['select-trigger', `select-${this.size()}`];\n const s = this.state();\n if (s !== 'default') classes.push(`select-${s}`);\n if (this.disabled()) classes.push('select-disabled');\n return classes.join(' ');\n });\n\n isSelected(option: SelectOption): boolean {\n const val = this.value();\n if (Array.isArray(val)) return val.includes(option.value);\n return val === option.value;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (!this.el.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n }\n }\n\n selectOption(option: SelectOption) {\n if (this.multiple()) {\n const current = (this.value() as string[]) ?? [];\n const idx = current.indexOf(option.value);\n if (idx === -1) {\n this.value.set([...current, option.value]);\n } else {\n this.value.set(current.filter((v) => v !== option.value));\n }\n } else {\n this.value.set(option.value);\n this.isOpen.set(false);\n }\n }\n\n toggle() {\n if (this.disabled()) return;\n this.isOpen.update((v) => !v);\n }\n}\n","<div class=\"select-wrapper\">\n <button type=\"button\" [class]=\"triggerClasses()\" [disabled]=\"disabled()\" (click)=\"toggle()\">\n <span [class.select-placeholder]=\"displayText() === placeholder()\">\n {{ displayText() }}\n </span>\n <svg\n class=\"select-icon\"\n [class.select-chevron-open]=\"isOpen()\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n </button>\n\n @if (isOpen()) {\n <ul class=\"select-panel\" role=\"listbox\">\n @for (option of options(); track option.value) {\n <li\n class=\"select-option\"\n [class.select-option-selected]=\"isSelected(option)\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(option)\"\n tabindex=\"0\"\n (click)=\"selectOption(option)\"\n (keydown.enter)=\"selectOption(option)\"\n (keydown.space)=\"selectOption(option)\"\n >\n @if (multiple()) {\n <span class=\"select-checkbox\" [class.select-checkbox-checked]=\"isSelected(option)\">\n @if (isSelected(option)) {\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20 6L9 17l-5-5\" />\n </svg>\n }\n </span>\n }\n {{ option.label }}\n </li>\n }\n </ul>\n }\n</div>\n","import { booleanAttribute, Component, computed, input, model } from '@angular/core';\n\nimport { Select, SelectOption } from '../select/select';\n\n@Component({\n selector: 'bsc-pagination',\n imports: [Select],\n templateUrl: './pagination.html',\n styleUrl: './pagination.css',\n})\nexport class Pagination {\n readonly pageSizeOptions = input([10, 25, 50, 100]);\n readonly showPageSize = input(false, { transform: booleanAttribute });\n readonly totalItems = input(0);\n\n readonly currentPage = model(1);\n readonly pageSize = model(10);\n\n protected readonly pageSizeSelectOptions = computed<SelectOption[]>(() => {\n return this.pageSizeOptions().map((n) => ({ value: String(n), label: `${n} / page` }));\n });\n\n protected readonly pageSizeValue = computed(() => String(this.pageSize()));\n\n protected readonly totalPages = computed(() => {\n return Math.max(1, Math.ceil(this.totalItems() / this.pageSize()));\n });\n\n protected readonly visiblePages = computed<(number | '...')[]>(() => {\n const total = this.totalPages();\n const current = this.currentPage();\n\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n // Always 7 slots: 5 numbers + up to 2 ellipsis\n if (current <= 4) {\n return [1, 2, 3, 4, 5, '...', total];\n }\n\n if (current >= total - 3) {\n return [1, '...', total - 4, total - 3, total - 2, total - 1, total];\n }\n\n return [1, '...', current - 1, current, current + 1, '...', total];\n });\n\n first() {\n this.goToPage(1);\n }\n\n goToPage(page: number) {\n this.currentPage.set(Math.max(1, Math.min(page, this.totalPages())));\n }\n\n last() {\n this.goToPage(this.totalPages());\n }\n\n next() {\n this.goToPage(this.currentPage() + 1);\n }\n\n onPageSizeChange(value: string | string[] | null) {\n if (value && !Array.isArray(value)) {\n this.pageSize.set(Number(value));\n this.currentPage.set(1);\n }\n }\n\n previous() {\n this.goToPage(this.currentPage() - 1);\n }\n}\n","<nav class=\"pagination\">\n <ul class=\"pagination-list\">\n <li>\n <button\n class=\"pagination-btn pagination-btn-first\"\n [class.pagination-btn-disabled]=\"currentPage() === 1\"\n [disabled]=\"currentPage() === 1\"\n (click)=\"previous()\"\n >\n ‹\n </button>\n </li>\n @for (page of visiblePages(); track $index) {\n @if (page === '...') {\n <li>\n <span class=\"pagination-btn pagination-btn-page pagination-ellipsis\">…</span>\n </li>\n } @else {\n <li>\n <button\n class=\"pagination-btn pagination-btn-page\"\n [class.pagination-btn-active]=\"page === currentPage()\"\n (click)=\"goToPage(+page)\"\n >\n {{ page }}\n </button>\n </li>\n }\n }\n <li>\n <button\n class=\"pagination-btn pagination-btn-last\"\n [class.pagination-btn-disabled]=\"currentPage() === totalPages()\"\n [disabled]=\"currentPage() === totalPages()\"\n (click)=\"next()\"\n >\n ›\n </button>\n </li>\n </ul>\n\n @if (showPageSize()) {\n <bsc-select\n size=\"sm\"\n [options]=\"pageSizeSelectOptions()\"\n [value]=\"pageSizeValue()\"\n (valueChange)=\"onPageSizeChange($event)\"\n />\n }\n</nav>\n","import { Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\nexport type ProgressBarVariant = 'dark' | 'brand' | 'success' | 'danger' | 'warning';\nexport type ProgressBarLabelPosition = 'none' | 'inside' | 'outside';\n\n@Component({\n selector: 'bsc-progress-bar',\n imports: [],\n templateUrl: './progress-bar.html',\n})\nexport class ProgressBar {\n readonly label = input<string>('');\n readonly labelPosition = input<ProgressBarLabelPosition>('none');\n readonly size = input<Size>('md');\n readonly value = input<number>(0);\n readonly variant = input<ProgressBarVariant>('brand');\n\n protected readonly barClasses = computed(() => {\n const pos = this.labelPosition();\n const classes = ['progress-bar', `progress-bar-${this.variant()}`];\n if (pos === 'inside') {\n classes.push('progress-bar-inside');\n } else {\n classes.push(`progress-bar-${this.size()}`);\n }\n return classes.join(' ');\n });\n\n protected readonly clampedValue = computed(() => {\n return Math.max(0, Math.min(100, this.value()));\n });\n\n protected readonly barWidth = computed(() => {\n return `${this.clampedValue()}%`;\n });\n\n protected readonly labelClasses = computed(() => {\n return `progress-label progress-label-${this.variant()}`;\n });\n\n protected readonly trackClasses = computed(() => {\n return `progress-track progress-track-${this.size()}`;\n });\n\n protected readonly valueText = computed(() => {\n return `${this.clampedValue()}%`;\n });\n}\n","@switch (labelPosition()) {\n @case ('outside') {\n <!-- Outside: label + percentage on top -->\n <div class=\"progress-outside-header\">\n <span [class]=\"labelClasses()\">{{ label() }}</span>\n <span class=\"progress-outside-value\">{{ valueText() }}</span>\n </div>\n <div [class]=\"trackClasses()\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\"></div>\n </div>\n }\n @case ('inside') {\n <!-- Inside: percentage inside the bar -->\n <div class=\"progress-track progress-track-inside\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\">{{ valueText() }}</div>\n </div>\n }\n @default {\n <!-- None: optional label on top, no percentage -->\n @if (label()) {\n <div [class]=\"labelClasses()\">{{ label() }}</div>\n }\n <div [class]=\"trackClasses()\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\"></div>\n </div>\n }\n}\n","import { booleanAttribute, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bsc-radio',\n imports: [],\n templateUrl: './radio.html',\n})\nexport class Radio {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n readonly name = input<string>('');\n readonly value = input<string>('');\n\n protected onSelect() {\n if (!this.disabled()) {\n this.checked.set(true);\n }\n }\n}\n","<label class=\"radio\">\n <input\n type=\"radio\"\n class=\"radio-input\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n (change)=\"onSelect()\"\n />\n <span class=\"radio-circle\"></span>\n <span class=\"radio-label\">\n <ng-content />\n </span>\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-search-bar',\n imports: [],\n templateUrl: './search-bar.html',\n styleUrl: './search-bar.css',\n})\nexport class SearchBar {}\n","<p>search-bar works!</p>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarService {\n readonly isPinned = signal(this.loadPinned());\n\n readonly isVisible = signal(this.loadPinned());\n private blockShow = false;\n\n private hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private readonly STORAGE_KEY = 'sidebar-pinned';\n\n hide(): void {\n if (this.isPinned()) return;\n this.clearHideTimeout();\n this.hideTimeout = setTimeout(() => {\n this.isVisible.set(false);\n this.hideTimeout = null;\n }, 150);\n }\n\n show(): void {\n if (this.blockShow) return;\n this.clearHideTimeout();\n if (!this.isPinned()) {\n this.isVisible.set(true);\n }\n }\n\n toggle(): void {\n this.clearHideTimeout();\n this.isVisible.update((v) => !v);\n }\n\n togglePin(): void {\n const wasPinned = this.isPinned();\n const pinned = !wasPinned;\n\n this.isPinned.set(pinned);\n this.savePinned(pinned);\n\n if (pinned) {\n this.isVisible.set(true);\n this.clearHideTimeout();\n } else {\n this.isVisible.set(false);\n this.clearHideTimeout();\n this.blockShow = true;\n setTimeout(() => (this.blockShow = false), 300);\n }\n }\n\n private clearHideTimeout(): void {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n private loadPinned(): boolean {\n try {\n return localStorage.getItem(this.STORAGE_KEY) === 'true';\n } catch {\n return false;\n }\n }\n\n private savePinned(pinned: boolean): void {\n try {\n localStorage.setItem(this.STORAGE_KEY, String(pinned));\n } catch {\n // ignore (e.g. incognito)\n }\n }\n}\n","import { booleanAttribute, Component, computed, inject, input } from '@angular/core';\n\nimport { SidebarService } from './sidebar.service';\n\n@Component({\n selector: 'bsc-sidebar',\n imports: [],\n templateUrl: './sidebar.html',\n})\nexport class Sidebar {\n readonly hasHeader = input(false, { transform: booleanAttribute });\n\n protected readonly sidebar = inject(SidebarService);\n\n protected readonly sidebarClasses = computed(() => {\n const visible = this.sidebar.isVisible();\n const classes = ['sidebar', visible ? 'sidebar-visible' : 'sidebar-hidden'];\n if (this.hasHeader()) classes.push('sidebar-with-header');\n return classes.join(' ');\n });\n\n protected onMouseEnter(): void {\n this.sidebar.show();\n }\n\n protected onMouseLeave(): void {\n this.sidebar.hide();\n }\n}\n","<!-- Invisible hover trigger at left edge (shows sidebar on hover when unpinned) -->\n@if (!sidebar.isVisible()) {\n <div class=\"sidebar-trigger\" (mouseenter)=\"onMouseEnter()\"></div>\n}\n\n<aside\n [class]=\"sidebarClasses()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n aria-label=\"Sidebar\"\n>\n <!-- Header -->\n <div class=\"sidebar-header\">\n <ng-content select=\"[sidebarHeader]\" />\n </div>\n\n <!-- Body (scrollable) -->\n <div class=\"sidebar-body\">\n <ng-content />\n </div>\n\n <!-- Footer (optional) -->\n <ng-content select=\"[sidebarFooter]\" />\n</aside>\n","import { Component, computed, input } from '@angular/core';\n\nexport type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'table';\n\n@Component({\n selector: 'bsc-skeleton',\n imports: [],\n templateUrl: './skeleton.html',\n})\nexport class Skeleton {\n readonly animated = input<boolean>(true);\n readonly columns = input<number>(3);\n readonly height = input<string>('');\n readonly lines = input<number>(1);\n readonly variant = input<SkeletonVariant>('text');\n readonly width = input<string>('100%');\n\n protected readonly animClass = computed(() => {\n return this.animated() ? 'skeleton-animated' : '';\n });\n\n protected readonly columnsArray = computed(() => {\n return Array.from({ length: this.columns() });\n });\n\n protected readonly linesArray = computed(() => {\n return Array.from({ length: this.lines() });\n });\n}\n","@switch (variant()) {\n @case ('text') {\n <div class=\"skeleton-text-container\" [style.width]=\"width()\">\n @for (line of linesArray(); track $index; let last = $last) {\n <div\n class=\"skeleton-base skeleton-text\"\n [class]=\"animClass()\"\n [style.width]=\"last && linesArray().length > 1 ? '75%' : '100%'\"\n [style.height]=\"height() || null\"\n ></div>\n }\n </div>\n }\n @case ('circular') {\n <div\n class=\"skeleton-base skeleton-circular\"\n [class]=\"animClass()\"\n [style.width]=\"width() === '100%' ? '3rem' : width()\"\n [style.height]=\"height() || (width() === '100%' ? '3rem' : width())\"\n ></div>\n }\n @case ('rectangular') {\n <div\n class=\"skeleton-base skeleton-rectangular\"\n [class]=\"animClass()\"\n [style.width]=\"width()\"\n [style.height]=\"height() || '8rem'\"\n ></div>\n }\n @case ('table') {\n <div class=\"skeleton-table\" [style.width]=\"width()\">\n <!-- Header row -->\n <div class=\"skeleton-table-row\">\n @for (col of columnsArray(); track $index) {\n <div class=\"skeleton-base skeleton-table-header-cell\" [class]=\"animClass()\"></div>\n }\n </div>\n <!-- Body rows -->\n @for (row of linesArray(); track $index) {\n <div class=\"skeleton-table-row\">\n @for (col of columnsArray(); track $index) {\n <div class=\"skeleton-base skeleton-table-cell\" [class]=\"animClass()\"></div>\n }\n </div>\n }\n </div>\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-spinner',\n imports: [],\n templateUrl: './spinner.html',\n styleUrl: './spinner.css',\n})\nexport class Spinner {}\n","<p>spinner works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-stepper',\n imports: [],\n templateUrl: './stepper.html',\n styleUrl: './stepper.css',\n})\nexport class Stepper {}\n","<p>stepper works!</p>\n","import { booleanAttribute, Component, computed, input, signal } from '@angular/core';\n\nimport { Pagination } from '../pagination/pagination';\n\nexport interface TableColumn {\n key: string;\n label: string;\n sortable?: boolean;\n}\n\nexport type StripedDirection = 'row' | 'column' | 'none';\nexport type SortDirection = 'asc' | 'desc' | 'none';\n\nexport interface SortState {\n column: string;\n direction: SortDirection;\n}\n\n@Component({\n selector: 'bsc-table',\n imports: [Pagination],\n templateUrl: './table.html',\n styleUrl: './table.css',\n})\nexport class Table {\n readonly hover = input(true, { transform: booleanAttribute });\n readonly pageSizeOptions = input([10, 25, 50, 100]);\n readonly paginate = input(false, { transform: booleanAttribute });\n readonly showPageSize = input(false, { transform: booleanAttribute });\n readonly sortable = input(false, { transform: booleanAttribute });\n readonly tableSearch = input(false, { transform: booleanAttribute });\n readonly columns = input<TableColumn[]>([]);\n readonly currentPage = signal(1);\n readonly data = input<Record<string, unknown>[]>([]);\n\n readonly pageSize = signal(10);\n readonly searchTerm = signal('');\n readonly sortState = signal<SortState>({ column: '', direction: 'none' });\n readonly stripedDirection = input<StripedDirection>('none');\n\n protected readonly filteredData = computed(() => {\n const term = this.searchTerm().toLowerCase();\n const rows = this.data();\n if (!term) return rows;\n return rows.filter((row) =>\n this.columns().some((col) => {\n const val = row[col.key];\n return val != null && String(val).toLowerCase().includes(term);\n }),\n );\n });\n\n protected readonly displayData = computed(() => {\n const rows = this.filteredData();\n const sort = this.sortState();\n if (sort.direction === 'none' || !sort.column) return rows;\n return [...rows].sort((a, b) => {\n const aVal = String(a[sort.column] ?? '');\n const bVal = String(b[sort.column] ?? '');\n const cmp = aVal.localeCompare(bVal, undefined, { numeric: true });\n return sort.direction === 'asc' ? cmp : -cmp;\n });\n });\n\n protected readonly paginatedData = computed(() => {\n const rows = this.displayData();\n if (!this.paginate()) return rows;\n const page = this.currentPage();\n const size = this.pageSize();\n const start = (page - 1) * size;\n return rows.slice(start, start + size);\n });\n\n protected readonly tableClasses = computed(() => {\n const classes = ['table'];\n const dir = this.stripedDirection();\n if (dir !== 'none') classes.push(`table-striped-${dir}`);\n if (this.hover()) classes.push('table-hover');\n return classes.join(' ');\n });\n\n protected readonly totalItems = computed(() => this.displayData().length);\n\n getSortDirection(col: TableColumn): SortDirection {\n const sort = this.sortState();\n return sort.column === col.key ? sort.direction : 'none';\n }\n\n isColumnSortable(col: TableColumn): boolean {\n if (col.sortable !== undefined) return col.sortable;\n return this.sortable();\n }\n\n onSearchInput(event: Event) {\n const target = event.target as HTMLInputElement;\n this.searchTerm.set(target.value);\n this.currentPage.set(1);\n }\n\n toggleSort(col: TableColumn) {\n if (!this.isColumnSortable(col)) return;\n const current = this.sortState();\n if (current.column !== col.key) {\n this.sortState.set({ column: col.key, direction: 'asc' });\n } else {\n const next: SortDirection =\n current.direction === 'asc' ? 'desc' : current.direction === 'desc' ? 'none' : 'asc';\n this.sortState.set({ column: col.key, direction: next });\n }\n }\n}\n","<div class=\"table-wrapper\">\n @if (tableSearch()) {\n <div class=\"table-search\">\n <svg\n class=\"table-search-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"M21 21l-4.35-4.35\" />\n </svg>\n <input\n class=\"table-search-input\"\n type=\"text\"\n placeholder=\"Search...\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchInput($event)\"\n />\n </div>\n }\n\n <div class=\"table-scroll\">\n <table [class]=\"tableClasses()\">\n <thead>\n <tr>\n @for (col of columns(); track col.key) {\n <th\n class=\"table-th\"\n [class.table-th-sortable]=\"isColumnSortable(col)\"\n (click)=\"toggleSort(col)\"\n >\n <span class=\"table-th-content\">\n {{ col.label }}\n @if (isColumnSortable(col)) {\n <svg\n class=\"table-sort-icon\"\n [class.table-sort-asc]=\"getSortDirection(col) === 'asc'\"\n [class.table-sort-desc]=\"getSortDirection(col) === 'desc'\"\n [class.table-sort-none]=\"getSortDirection(col) === 'none'\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6-6 6 6\" />\n <path d=\"M6 15l6 6 6-6\" />\n </svg>\n }\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of paginatedData(); track $index) {\n <tr>\n @for (col of columns(); track col.key) {\n <td class=\"table-td\">{{ row[col.key] }}</td>\n }\n </tr>\n } @empty {\n <tr>\n <td class=\"table-empty\" [attr.colspan]=\"columns().length\">No data available.</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n @if (paginate()) {\n <div class=\"table-pagination\">\n <bsc-pagination\n [totalItems]=\"totalItems()\"\n [(currentPage)]=\"currentPage\"\n [(pageSize)]=\"pageSize\"\n [showPageSize]=\"showPageSize()\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-tabs',\n imports: [],\n templateUrl: './tabs.html',\n styleUrl: './tabs.css',\n})\nexport class Tabs {}\n","<p>tabs works!</p>\n","import { booleanAttribute, Component, computed, input, model } from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-toggle',\n imports: [],\n templateUrl: './toggle.html',\n})\nexport class Toggle {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n readonly size = input<Size>('md');\n\n protected readonly thumbClasses = computed(() => {\n const classes = ['toggle-thumb'];\n if (this.checked()) classes.push('toggle-thumb-checked');\n return classes.join(' ');\n });\n\n protected readonly trackClasses = computed(() => {\n const classes = ['toggle-track'];\n if (this.checked()) classes.push('toggle-track-checked');\n return classes.join(' ');\n });\n\n protected readonly wrapperClasses = computed(() => {\n return `toggle toggle-${this.size()}`;\n });\n\n protected toggle() {\n if (!this.disabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [class]=\"wrapperClasses()\"\n (click)=\"toggle()\"\n>\n <span [class]=\"trackClasses()\">\n <span [class]=\"thumbClasses()\"></span>\n </span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-tooltip',\n imports: [],\n templateUrl: './tooltip.html',\n styleUrl: './tooltip.css',\n})\nexport class Tooltip {}\n","<p>tooltip works!</p>\n","/*\n * Public API Surface of core-components\n */\n\nexport * from './lib/types';\nexport * from './lib/accordion/accordion';\nexport * from './lib/alert/alert';\nexport * from './lib/avatar/avatar';\nexport * from './lib/badge/badge';\nexport * from './lib/breadcrumb/breadcrumb';\nexport * from './lib/button/button';\nexport * from './lib/card/card';\nexport * from './lib/checkbox/checkbox';\nexport * from './lib/date-picker/date-picker';\nexport * from './lib/dropdown/dropdown';\nexport * from './lib/file-upload/file-upload';\nexport * from './lib/footer/footer';\nexport * from './lib/form-field/form-field';\nexport * from './lib/header/header';\nexport * from './lib/icon/icon';\nexport * from './lib/input/input';\nexport * from './lib/label/label';\nexport * from './lib/modal/modal';\nexport * from './lib/navigation/navigation';\nexport * from './lib/pagination/pagination';\nexport * from './lib/progress-bar/progress-bar';\nexport * from './lib/radio/radio';\nexport * from './lib/search-bar/search-bar';\nexport * from './lib/select/select';\nexport * from './lib/sidebar/sidebar';\nexport * from './lib/skeleton/skeleton';\nexport * from './lib/sidebar/sidebar.service';\nexport * from './lib/spinner/spinner';\nexport * from './lib/stepper/stepper';\nexport * from './lib/table/table';\nexport * from './lib/tabs/tabs';\nexport * from './lib/toggle/toggle';\nexport * from './lib/tooltip/tooltip';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blank-software-core-components.mjs","sources":["../../../projects/core-components/src/lib/accordion/accordion.ts","../../../projects/core-components/src/lib/accordion/accordion.html","../../../projects/core-components/src/lib/alert/alert.ts","../../../projects/core-components/src/lib/alert/alert.html","../../../projects/core-components/src/lib/avatar/avatar.ts","../../../projects/core-components/src/lib/avatar/avatar.html","../../../projects/core-components/src/lib/badge/badge.ts","../../../projects/core-components/src/lib/badge/badge.html","../../../projects/core-components/src/lib/breadcrumb/breadcrumb.ts","../../../projects/core-components/src/lib/breadcrumb/breadcrumb.html","../../../projects/core-components/src/lib/button/button.ts","../../../projects/core-components/src/lib/button/button.html","../../../projects/core-components/src/lib/card/card.ts","../../../projects/core-components/src/lib/card/card.html","../../../projects/core-components/src/lib/checkbox/checkbox.ts","../../../projects/core-components/src/lib/checkbox/checkbox.html","../../../projects/core-components/src/lib/date-picker/date-picker.ts","../../../projects/core-components/src/lib/date-picker/date-picker.html","../../../projects/core-components/src/lib/dropdown/dropdown.ts","../../../projects/core-components/src/lib/dropdown/dropdown.html","../../../projects/core-components/src/lib/file-upload/file-upload.ts","../../../projects/core-components/src/lib/file-upload/file-upload.html","../../../projects/core-components/src/lib/footer/footer.ts","../../../projects/core-components/src/lib/footer/footer.html","../../../projects/core-components/src/lib/form-field/form-field.ts","../../../projects/core-components/src/lib/form-field/form-field.html","../../../projects/core-components/src/lib/header/header.ts","../../../projects/core-components/src/lib/header/header.html","../../../projects/core-components/src/lib/icon/icon.ts","../../../projects/core-components/src/lib/icon/icon.html","../../../projects/core-components/src/lib/input/input.ts","../../../projects/core-components/src/lib/input/input.html","../../../projects/core-components/src/lib/label/label.ts","../../../projects/core-components/src/lib/label/label.html","../../../projects/core-components/src/lib/modal/modal.ts","../../../projects/core-components/src/lib/modal/modal.html","../../../projects/core-components/src/lib/modal/modal-dialog.ts","../../../projects/core-components/src/lib/modal/modal-dialog.html","../../../projects/core-components/src/lib/modal/modal.service.ts","../../../projects/core-components/src/lib/navigation/navigation.ts","../../../projects/core-components/src/lib/navigation/navigation.html","../../../projects/core-components/src/lib/select/select.ts","../../../projects/core-components/src/lib/select/select.html","../../../projects/core-components/src/lib/pagination/pagination.ts","../../../projects/core-components/src/lib/pagination/pagination.html","../../../projects/core-components/src/lib/progress-bar/progress-bar.ts","../../../projects/core-components/src/lib/progress-bar/progress-bar.html","../../../projects/core-components/src/lib/radio/radio.ts","../../../projects/core-components/src/lib/radio/radio.html","../../../projects/core-components/src/lib/search-bar/search-bar.ts","../../../projects/core-components/src/lib/search-bar/search-bar.html","../../../projects/core-components/src/lib/sidebar/sidebar.service.ts","../../../projects/core-components/src/lib/sidebar/sidebar.ts","../../../projects/core-components/src/lib/sidebar/sidebar.html","../../../projects/core-components/src/lib/skeleton/skeleton.ts","../../../projects/core-components/src/lib/skeleton/skeleton.html","../../../projects/core-components/src/lib/spinner/spinner.ts","../../../projects/core-components/src/lib/spinner/spinner.html","../../../projects/core-components/src/lib/stepper/stepper.ts","../../../projects/core-components/src/lib/stepper/stepper.html","../../../projects/core-components/src/lib/table/table.ts","../../../projects/core-components/src/lib/table/table.html","../../../projects/core-components/src/lib/tabs/tabs.ts","../../../projects/core-components/src/lib/tabs/tabs.html","../../../projects/core-components/src/lib/toggle/toggle.ts","../../../projects/core-components/src/lib/toggle/toggle.html","../../../projects/core-components/src/lib/tooltip/tooltip.ts","../../../projects/core-components/src/lib/tooltip/tooltip.html","../../../projects/core-components/src/public-api.ts","../../../projects/core-components/src/blank-software-core-components.ts"],"sourcesContent":["import {\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n forwardRef,\n inject,\n input,\n model,\n} from '@angular/core';\n\n@Component({\n selector: 'bsc-accordion-item',\n imports: [],\n template: `\n <div [class]=\"itemClasses()\">\n <button class=\"accordion-header\" [disabled]=\"disabled()\" (click)=\"toggle()\">\n <span class=\"accordion-title\">{{ title() }}</span>\n <svg\n class=\"accordion-chevron\"\n [class.accordion-chevron-open]=\"open()\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n </button>\n @if (open()) {\n <div class=\"accordion-body\">\n <ng-content />\n </div>\n }\n </div>\n `,\n styles: `\n :host {\n display: block;\n }\n\n .accordion-item {\n border-bottom: 1px solid var(--color-ink-200);\n }\n\n .accordion-item:last-child {\n border-bottom: none;\n }\n\n .accordion-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 1rem 1.5rem;\n background: transparent;\n border: none;\n cursor: pointer;\n font-weight: 500;\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: var(--color-ink-900);\n transition: background-color 0.15s;\n }\n\n .accordion-header:hover:not(:disabled) {\n background-color: var(--color-ink-50);\n }\n\n .accordion-header:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .accordion-chevron {\n flex-shrink: 0;\n color: var(--color-ink-400);\n transition: transform 0.2s ease;\n }\n\n .accordion-chevron-open {\n transform: rotate(180deg);\n }\n\n .accordion-body {\n padding: 0 1.5rem 1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: var(--color-ink-600);\n }\n\n .accordion-item-disabled {\n opacity: 0.5;\n }\n `,\n})\nexport class AccordionItem {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly title = input.required<string>();\n readonly open = model(false);\n\n private readonly parent = inject(\n forwardRef(() => Accordion),\n { optional: true },\n );\n\n protected readonly itemClasses = computed(() => {\n const classes = ['accordion-item'];\n if (this.disabled()) classes.push('accordion-item-disabled');\n return classes.join(' ');\n });\n\n toggle() {\n if (this.disabled()) return;\n this.open.set(!this.open());\n if (this.open() && this.parent) {\n this.parent.onItemToggle(this);\n }\n }\n}\n\n@Component({\n selector: 'bsc-accordion',\n imports: [],\n templateUrl: './accordion.html',\n styleUrl: './accordion.css',\n})\nexport class Accordion {\n readonly multiple = input(false, { transform: booleanAttribute });\n\n private readonly items = contentChildren(AccordionItem);\n\n onItemToggle(openedItem: AccordionItem) {\n if (this.multiple()) return;\n for (const item of this.items()) {\n if (item !== openedItem) {\n item.open.set(false);\n }\n }\n }\n}\n","<div class=\"accordion\">\n <ng-content />\n</div>\n","import { Component, computed, input } from '@angular/core';\n\nexport type AlertVariant = 'info' | 'danger' | 'success' | 'warning' | 'dark';\n\n@Component({\n selector: 'bsc-alert',\n imports: [],\n templateUrl: './alert.html',\n})\nexport class Alert {\n readonly variant = input<AlertVariant>('info');\n\n protected readonly alertClasses = computed(() => {\n return `alert alert-${this.variant()}`;\n });\n}\n","<div [class]=\"alertClasses()\" role=\"alert\">\n <ng-content />\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-avatar',\n imports: [],\n templateUrl: './avatar.html',\n styleUrl: './avatar.css',\n})\nexport class Avatar {}\n","<p>avatar works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-badge',\n imports: [],\n templateUrl: './badge.html',\n styleUrl: './badge.css',\n})\nexport class Badge {}\n","<p>badge works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-breadcrumb',\n imports: [],\n templateUrl: './breadcrumb.html',\n styleUrl: './breadcrumb.css',\n})\nexport class Breadcrumb {}\n","<p>breadcrumb works!</p>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost';\nexport type ButtonShape = 'rounded' | 'pill';\n\nfunction luminance(hex: string): number {\n const raw = hex.replace('#', '');\n const r = parseInt(raw.substring(0, 2), 16) / 255;\n const g = parseInt(raw.substring(2, 4), 16) / 255;\n const b = parseInt(raw.substring(4, 6), 16) / 255;\n const toLinear = (c: number) => (c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));\n return 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b);\n}\n\n@Component({\n selector: 'bsc-button',\n imports: [],\n templateUrl: './button.html',\n})\nexport class Button {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly iconOnly = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly color = input<string | undefined>(undefined);\n readonly shape = input<ButtonShape>('rounded');\n readonly size = input<Size>('md');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly variant = input<ButtonVariant>('primary');\n\n protected readonly buttonClasses = computed(() => {\n const io = this.iconOnly();\n const sizePrefix = io ? 'btn-icon-' : 'btn-';\n\n const classes = ['btn', `btn-${this.shape()}`, `${sizePrefix}${this.size()}`];\n\n if (this.color()) {\n classes.push('btn-custom-color');\n } else {\n classes.push(`btn-${this.variant()}`);\n }\n\n return classes.join(' ');\n });\n\n protected readonly buttonStyles = computed(() => {\n const c = this.color();\n if (!c) return {};\n const textColor = luminance(c) > 0.4 ? '#0F172A' : '#FFFFFF';\n return {\n '--btn-bg': c,\n '--btn-text': textColor,\n } as Record<string, string>;\n });\n}\n","<button\n [type]=\"type()\"\n [disabled]=\"disabled() || loading()\"\n [class]=\"buttonClasses()\"\n [style]=\"buttonStyles()\"\n>\n @if (loading()) {\n <svg\n class=\"animate-spin shrink-0\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n }\n <ng-content select=\"[leftIcon]\" />\n <ng-content />\n <ng-content select=\"[rightIcon]\" />\n</button>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nexport type CardVariant = 'default' | 'outlined';\n\n@Component({\n selector: 'bsc-card',\n imports: [],\n templateUrl: './card.html',\n styleUrl: './card.css',\n})\nexport class Card {\n readonly padded = input(true, { transform: booleanAttribute });\n readonly variant = input<CardVariant>('default');\n\n protected readonly cardClasses = computed(() => {\n const classes = ['card', `card-${this.variant()}`];\n if (this.padded()) classes.push('card-padded');\n return classes.join(' ');\n });\n}\n","<div [class]=\"cardClasses()\">\n <ng-content select=\"[cardHeader]\" />\n <div class=\"card-body\">\n <ng-content />\n </div>\n <ng-content select=\"[cardFooter]\" />\n</div>\n","import { booleanAttribute, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bsc-checkbox',\n imports: [],\n templateUrl: './checkbox.html',\n})\nexport class Checkbox {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly indeterminate = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n\n protected toggle() {\n if (!this.disabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<label class=\"checkbox\">\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n (change)=\"toggle()\"\n />\n <span class=\"checkbox-box\" [class.checkbox-indeterminate]=\"indeterminate() && !checked()\">\n @if (indeterminate() && !checked()) {\n <svg\n class=\"checkbox-check\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 6h8\" />\n </svg>\n } @else {\n <svg\n class=\"checkbox-check\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 6l3 3 5-6\" />\n </svg>\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content />\n </span>\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-date-picker',\n imports: [],\n templateUrl: './date-picker.html',\n styleUrl: './date-picker.css',\n})\nexport class DatePicker {}\n","<p>date-picker works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-dropdown',\n imports: [],\n templateUrl: './dropdown.html',\n styleUrl: './dropdown.css',\n})\nexport class Dropdown {}\n","<p>dropdown works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-file-upload',\n imports: [],\n templateUrl: './file-upload.html',\n styleUrl: './file-upload.css',\n})\nexport class FileUpload {}\n","<p>file-upload works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-footer',\n imports: [],\n templateUrl: './footer.html',\n styleUrl: './footer.css',\n})\nexport class Footer {}\n","<p>footer works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-form-field',\n imports: [],\n templateUrl: './form-field.html',\n styleUrl: './form-field.css',\n})\nexport class FormField {}\n","<p>form-field works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-header',\n imports: [],\n templateUrl: './header.html',\n})\nexport class Header {}\n","<nav class=\"header\" aria-label=\"Top navigation\">\n <div class=\"header-inner\">\n <div class=\"header-left\">\n <ng-content select=\"[headerLeft]\" />\n </div>\n <div class=\"header-right\">\n <ng-content select=\"[headerRight]\" />\n </div>\n </div>\n</nav>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-icon',\n imports: [],\n templateUrl: './icon.html',\n styleUrl: './icon.css',\n})\nexport class Icon {}\n","<p>icon works!</p>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size, State } from '../types';\n\n@Component({\n selector: 'bsc-input',\n imports: [],\n templateUrl: './input.html',\n})\nexport class Input {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly placeholder = input<string>('');\n readonly size = input<Size>('md');\n readonly state = input<State>('default');\n readonly type = input<string>('text');\n\n protected readonly inputClasses = computed(() => {\n const classes = ['input', `input-${this.size()}`];\n const s = this.state();\n if (s !== 'default') classes.push(`input-${s}`);\n return classes.join(' ');\n });\n}\n","<input\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [class]=\"inputClasses()\"\n/>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-label',\n imports: [],\n templateUrl: './label.html',\n})\nexport class Label {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n readonly size = input<Size>('md');\n\n protected readonly labelClasses = computed(() => {\n const classes = ['label', `label-${this.size()}`];\n if (this.disabled()) classes.push('label-disabled');\n return classes.join(' ');\n });\n}\n","<!-- eslint-disable-next-line @angular-eslint/template/label-has-associated-control -->\n<label [class]=\"labelClasses()\">\n <ng-content />\n @if (required()) {\n <span class=\"label-required\">*</span>\n }\n</label>\n","import {\n booleanAttribute,\n Component,\n computed,\n HostListener,\n input,\n model,\n output,\n} from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-modal',\n imports: [],\n templateUrl: './modal.html',\n})\nexport class Modal {\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n readonly closeOnEsc = input(true, { transform: booleanAttribute });\n readonly confirmDisabled = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n readonly confirmed = output<void>();\n readonly confirmText = input<string>('Conferma');\n readonly open = model<boolean>(false);\n\n readonly size = input<Size>('md');\n readonly title = input<string>('');\n\n protected readonly panelClasses = computed(() => {\n return `bsc-modal-panel bsc-modal-${this.size()}`;\n });\n\n protected close() {\n this.open.set(false);\n this.closed.emit();\n }\n\n protected onBackdropClick() {\n if (this.closeOnBackdrop()) {\n this.close();\n }\n }\n\n protected onConfirm() {\n this.confirmed.emit();\n }\n\n @HostListener('document:keydown.escape')\n protected onEscKey() {\n if (this.open() && this.closeOnEsc()) {\n this.close();\n }\n }\n}\n","@if (open()) {\n <!-- Backdrop -->\n <div\n class=\"bsc-modal-backdrop\"\n (click)=\"onBackdropClick()\"\n (keydown.escape)=\"close()\"\n tabindex=\"-1\"\n role=\"button\"\n aria-label=\"Close modal\"\n ></div>\n\n <!-- Modal -->\n <div class=\"bsc-modal-overlay\">\n <div [class]=\"panelClasses()\">\n <!-- Modal content -->\n <div class=\"bsc-modal-content\" role=\"dialog\" aria-modal=\"true\">\n <!-- Header -->\n <div class=\"bsc-modal-header\">\n <h3 class=\"bsc-modal-title\">{{ title() }}</h3>\n <button type=\"button\" class=\"bsc-modal-close\" (click)=\"close()\">\n <svg\n class=\"w-5 h-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 18 17.94 6M18 18 6.06 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n\n <!-- Body (content projection) -->\n <div class=\"bsc-modal-body\">\n <ng-content />\n </div>\n\n <!-- Footer -->\n <div class=\"bsc-modal-footer\">\n <button\n type=\"button\"\n class=\"bsc-modal-confirm-btn\"\n [disabled]=\"confirmDisabled()\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText() }}\n </button>\n <ng-content select=\"[modalFooter]\" />\n </div>\n </div>\n </div>\n </div>\n}\n","import { Component, ElementRef, HostListener, signal, viewChild } from '@angular/core';\n\nimport { Size } from '../types';\n\nexport type ModalDialogType = 'confirm' | 'success' | 'error';\n\nexport interface ModalDialogOptions {\n title?: string;\n text?: string;\n type?: ModalDialogType;\n size?: Size;\n confirmText?: string;\n cancelText?: string;\n showCancel?: boolean;\n closeOnBackdrop?: boolean;\n closeOnEsc?: boolean;\n}\n\nexport interface ModalDialogResult {\n confirmed: boolean;\n}\n\n@Component({\n selector: 'bsc-modal-dialog',\n imports: [],\n templateUrl: './modal-dialog.html',\n styleUrl: './modal-dialog.css',\n})\nexport class ModalDialog {\n readonly cancelText = signal('Annulla');\n readonly closeOnBackdrop = signal(true);\n readonly closeOnEsc = signal(true);\n readonly confirmText = signal('OK');\n readonly open = signal(false);\n readonly showCancel = signal(false);\n readonly size = signal<Size>('sm');\n readonly text = signal('');\n readonly title = signal('');\n readonly type = signal<ModalDialogType>('confirm');\n\n private readonly panel = viewChild<ElementRef<HTMLElement>>('panel');\n private resolvePromise!: (result: ModalDialogResult) => void;\n\n configure(options: ModalDialogOptions): Promise<ModalDialogResult> {\n if (options.title != null) this.title.set(options.title);\n if (options.text != null) this.text.set(options.text);\n if (options.type != null) this.type.set(options.type);\n if (options.size != null) this.size.set(options.size);\n if (options.confirmText != null) this.confirmText.set(options.confirmText);\n if (options.cancelText != null) this.cancelText.set(options.cancelText);\n if (options.showCancel != null) this.showCancel.set(options.showCancel);\n if (options.closeOnBackdrop != null) this.closeOnBackdrop.set(options.closeOnBackdrop);\n if (options.closeOnEsc != null) this.closeOnEsc.set(options.closeOnEsc);\n\n this.open.set(true);\n\n return new Promise<ModalDialogResult>((resolve) => {\n this.resolvePromise = resolve;\n });\n }\n\n protected confirm() {\n this.open.set(false);\n this.resolvePromise({ confirmed: true });\n }\n\n protected dismiss() {\n this.open.set(false);\n this.resolvePromise({ confirmed: false });\n }\n\n protected onBackdropClick() {\n if (this.closeOnBackdrop()) {\n this.dismiss();\n }\n }\n\n @HostListener('document:keydown.escape')\n protected onEscKey() {\n if (this.open() && this.closeOnEsc()) {\n this.dismiss();\n }\n }\n}\n","@if (open()) {\n <!-- Backdrop -->\n <div\n class=\"bsc-modal-backdrop\"\n (click)=\"onBackdropClick()\"\n tabindex=\"-1\"\n role=\"button\"\n aria-label=\"Close modal\"\n ></div>\n\n <!-- Dialog -->\n <div class=\"bsc-modal-overlay\">\n <div class=\"bsc-modal-panel bsc-modal-{{ size() }}\">\n <div class=\"bsc-modal-dialog\" role=\"alertdialog\" aria-modal=\"true\" #panel>\n <!-- Icon -->\n <div class=\"bsc-modal-dialog-icon\" [class]=\"'bsc-modal-dialog-icon-' + type()\">\n @switch (type()) {\n @case ('success') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"48\"\n height=\"48\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n }\n @case ('error') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"48\"\n height=\"48\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n }\n @case ('confirm') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"48\"\n height=\"48\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M12 9v4m0 4h.01M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18Z\"\n />\n </svg>\n }\n }\n </div>\n\n <!-- Title -->\n @if (title()) {\n <h3 class=\"bsc-modal-dialog-title\">{{ title() }}</h3>\n }\n\n <!-- Text -->\n @if (text()) {\n <p class=\"bsc-modal-dialog-text\">{{ text() }}</p>\n }\n\n <!-- Buttons -->\n <div class=\"bsc-modal-dialog-actions\">\n @if (showCancel()) {\n <button type=\"button\" class=\"bsc-modal-dialog-cancel-btn\" (click)=\"dismiss()\">\n {{ cancelText() }}\n </button>\n }\n <button\n type=\"button\"\n class=\"bsc-modal-dialog-confirm-btn bsc-modal-dialog-btn-{{ type() }}\"\n (click)=\"confirm()\"\n >\n {{ confirmText() }}\n </button>\n </div>\n </div>\n </div>\n </div>\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n} from '@angular/core';\n\nimport { ModalDialog, ModalDialogOptions, ModalDialogResult } from './modal-dialog';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private readonly appRef = inject(ApplicationRef);\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(EnvironmentInjector);\n\n confirm(options: Omit<ModalDialogOptions, 'type'>): Promise<ModalDialogResult> {\n return this.fire({\n confirmText: 'Conferma',\n showCancel: true,\n ...options,\n type: 'confirm',\n });\n }\n\n error(options: Omit<ModalDialogOptions, 'type'>): Promise<ModalDialogResult> {\n return this.fire({\n confirmText: 'OK',\n ...options,\n type: 'error',\n });\n }\n\n fire(options: ModalDialogOptions): Promise<ModalDialogResult> {\n const componentRef = createComponent(ModalDialog, {\n environmentInjector: this.injector,\n });\n\n this.appRef.attachView(componentRef.hostView);\n this.document.body.appendChild(componentRef.location.nativeElement);\n\n const promise = componentRef.instance.configure(options);\n\n return promise.then((result) => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n return result;\n });\n }\n\n success(options: Omit<ModalDialogOptions, 'type'>): Promise<ModalDialogResult> {\n return this.fire({\n confirmText: 'OK',\n ...options,\n type: 'success',\n });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-navigation',\n imports: [],\n templateUrl: './navigation.html',\n styleUrl: './navigation.css',\n})\nexport class Navigation {}\n","<p>navigation works!</p>\n","import {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n signal,\n} from '@angular/core';\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\nimport { Size, State } from '../types';\n\n@Component({\n selector: 'bsc-select',\n imports: [],\n templateUrl: './select.html',\n styleUrl: './select.css',\n})\nexport class Select {\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly placeholder = input('');\n readonly isOpen = signal(false);\n readonly options = input<SelectOption[]>([]);\n readonly size = input<Size>('md');\n readonly state = input<State>('default');\n readonly value = model<string | string[] | null>(null);\n\n private readonly el = inject(ElementRef);\n\n protected readonly displayText = computed(() => {\n const val = this.value();\n const opts = this.options();\n\n if (val === null || val === undefined) return this.placeholder();\n\n if (Array.isArray(val)) {\n if (val.length === 0) return this.placeholder();\n const labels = val.map((v) => opts.find((o) => o.value === v)?.label ?? v).join(', ');\n return labels;\n }\n\n return (opts.find((o) => o.value === val)?.label ?? val) || this.placeholder();\n });\n\n protected readonly triggerClasses = computed(() => {\n const classes = ['select-trigger', `select-${this.size()}`];\n const s = this.state();\n if (s !== 'default') classes.push(`select-${s}`);\n if (this.disabled()) classes.push('select-disabled');\n return classes.join(' ');\n });\n\n isSelected(option: SelectOption): boolean {\n const val = this.value();\n if (Array.isArray(val)) return val.includes(option.value);\n return val === option.value;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (!this.el.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n }\n }\n\n selectOption(option: SelectOption) {\n if (this.multiple()) {\n const current = (this.value() as string[]) ?? [];\n const idx = current.indexOf(option.value);\n if (idx === -1) {\n this.value.set([...current, option.value]);\n } else {\n this.value.set(current.filter((v) => v !== option.value));\n }\n } else {\n this.value.set(option.value);\n this.isOpen.set(false);\n }\n }\n\n toggle() {\n if (this.disabled()) return;\n this.isOpen.update((v) => !v);\n }\n}\n","<div class=\"select-wrapper\">\n <button type=\"button\" [class]=\"triggerClasses()\" [disabled]=\"disabled()\" (click)=\"toggle()\">\n <span [class.select-placeholder]=\"displayText() === placeholder()\">\n {{ displayText() }}\n </span>\n <svg\n class=\"select-icon\"\n [class.select-chevron-open]=\"isOpen()\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n </button>\n\n @if (isOpen()) {\n <ul class=\"select-panel\" role=\"listbox\">\n @for (option of options(); track option.value) {\n <li\n class=\"select-option\"\n [class.select-option-selected]=\"isSelected(option)\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(option)\"\n tabindex=\"0\"\n (click)=\"selectOption(option)\"\n (keydown.enter)=\"selectOption(option)\"\n (keydown.space)=\"selectOption(option)\"\n >\n @if (multiple()) {\n <span class=\"select-checkbox\" [class.select-checkbox-checked]=\"isSelected(option)\">\n @if (isSelected(option)) {\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20 6L9 17l-5-5\" />\n </svg>\n }\n </span>\n }\n {{ option.label }}\n </li>\n }\n </ul>\n }\n</div>\n","import { booleanAttribute, Component, computed, input, model } from '@angular/core';\n\nimport { Select, SelectOption } from '../select/select';\n\n@Component({\n selector: 'bsc-pagination',\n imports: [Select],\n templateUrl: './pagination.html',\n styleUrl: './pagination.css',\n})\nexport class Pagination {\n readonly pageSizeOptions = input([10, 25, 50, 100]);\n readonly showPageSize = input(false, { transform: booleanAttribute });\n readonly totalItems = input(0);\n\n readonly currentPage = model(1);\n readonly pageSize = model(10);\n\n protected readonly pageSizeSelectOptions = computed<SelectOption[]>(() => {\n return this.pageSizeOptions().map((n) => ({ value: String(n), label: `${n} / page` }));\n });\n\n protected readonly pageSizeValue = computed(() => String(this.pageSize()));\n\n protected readonly totalPages = computed(() => {\n return Math.max(1, Math.ceil(this.totalItems() / this.pageSize()));\n });\n\n protected readonly visiblePages = computed<(number | '...')[]>(() => {\n const total = this.totalPages();\n const current = this.currentPage();\n\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n // Always 7 slots: 5 numbers + up to 2 ellipsis\n if (current <= 4) {\n return [1, 2, 3, 4, 5, '...', total];\n }\n\n if (current >= total - 3) {\n return [1, '...', total - 4, total - 3, total - 2, total - 1, total];\n }\n\n return [1, '...', current - 1, current, current + 1, '...', total];\n });\n\n first() {\n this.goToPage(1);\n }\n\n goToPage(page: number) {\n this.currentPage.set(Math.max(1, Math.min(page, this.totalPages())));\n }\n\n last() {\n this.goToPage(this.totalPages());\n }\n\n next() {\n this.goToPage(this.currentPage() + 1);\n }\n\n onPageSizeChange(value: string | string[] | null) {\n if (value && !Array.isArray(value)) {\n this.pageSize.set(Number(value));\n this.currentPage.set(1);\n }\n }\n\n previous() {\n this.goToPage(this.currentPage() - 1);\n }\n}\n","<nav class=\"pagination\">\n <ul class=\"pagination-list\">\n <li>\n <button\n class=\"pagination-btn pagination-btn-first\"\n [class.pagination-btn-disabled]=\"currentPage() === 1\"\n [disabled]=\"currentPage() === 1\"\n (click)=\"previous()\"\n >\n ‹\n </button>\n </li>\n @for (page of visiblePages(); track $index) {\n @if (page === '...') {\n <li>\n <span class=\"pagination-btn pagination-btn-page pagination-ellipsis\">…</span>\n </li>\n } @else {\n <li>\n <button\n class=\"pagination-btn pagination-btn-page\"\n [class.pagination-btn-active]=\"page === currentPage()\"\n (click)=\"goToPage(+page)\"\n >\n {{ page }}\n </button>\n </li>\n }\n }\n <li>\n <button\n class=\"pagination-btn pagination-btn-last\"\n [class.pagination-btn-disabled]=\"currentPage() === totalPages()\"\n [disabled]=\"currentPage() === totalPages()\"\n (click)=\"next()\"\n >\n ›\n </button>\n </li>\n </ul>\n\n @if (showPageSize()) {\n <bsc-select\n size=\"sm\"\n [options]=\"pageSizeSelectOptions()\"\n [value]=\"pageSizeValue()\"\n (valueChange)=\"onPageSizeChange($event)\"\n />\n }\n</nav>\n","import { Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\nexport type ProgressBarVariant = 'dark' | 'brand' | 'success' | 'danger' | 'warning';\nexport type ProgressBarLabelPosition = 'none' | 'inside' | 'outside';\n\n@Component({\n selector: 'bsc-progress-bar',\n imports: [],\n templateUrl: './progress-bar.html',\n})\nexport class ProgressBar {\n readonly label = input<string>('');\n readonly labelPosition = input<ProgressBarLabelPosition>('none');\n readonly size = input<Size>('md');\n readonly value = input<number>(0);\n readonly variant = input<ProgressBarVariant>('brand');\n\n protected readonly barClasses = computed(() => {\n const pos = this.labelPosition();\n const classes = ['progress-bar', `progress-bar-${this.variant()}`];\n if (pos === 'inside') {\n classes.push('progress-bar-inside');\n } else {\n classes.push(`progress-bar-${this.size()}`);\n }\n return classes.join(' ');\n });\n\n protected readonly clampedValue = computed(() => {\n return Math.max(0, Math.min(100, this.value()));\n });\n\n protected readonly barWidth = computed(() => {\n return `${this.clampedValue()}%`;\n });\n\n protected readonly labelClasses = computed(() => {\n return `progress-label progress-label-${this.variant()}`;\n });\n\n protected readonly trackClasses = computed(() => {\n return `progress-track progress-track-${this.size()}`;\n });\n\n protected readonly valueText = computed(() => {\n return `${this.clampedValue()}%`;\n });\n}\n","@switch (labelPosition()) {\n @case ('outside') {\n <!-- Outside: label + percentage on top -->\n <div class=\"progress-outside-header\">\n <span [class]=\"labelClasses()\">{{ label() }}</span>\n <span class=\"progress-outside-value\">{{ valueText() }}</span>\n </div>\n <div [class]=\"trackClasses()\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\"></div>\n </div>\n }\n @case ('inside') {\n <!-- Inside: percentage inside the bar -->\n <div class=\"progress-track progress-track-inside\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\">{{ valueText() }}</div>\n </div>\n }\n @default {\n <!-- None: optional label on top, no percentage -->\n @if (label()) {\n <div [class]=\"labelClasses()\">{{ label() }}</div>\n }\n <div [class]=\"trackClasses()\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\"></div>\n </div>\n }\n}\n","import { booleanAttribute, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bsc-radio',\n imports: [],\n templateUrl: './radio.html',\n})\nexport class Radio {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n readonly name = input<string>('');\n readonly value = input<string>('');\n\n protected onSelect() {\n if (!this.disabled()) {\n this.checked.set(true);\n }\n }\n}\n","<label class=\"radio\">\n <input\n type=\"radio\"\n class=\"radio-input\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n (change)=\"onSelect()\"\n />\n <span class=\"radio-circle\"></span>\n <span class=\"radio-label\">\n <ng-content />\n </span>\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-search-bar',\n imports: [],\n templateUrl: './search-bar.html',\n styleUrl: './search-bar.css',\n})\nexport class SearchBar {}\n","<p>search-bar works!</p>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarService {\n readonly isPinned = signal(this.loadPinned());\n\n readonly isVisible = signal(this.loadPinned());\n private blockShow = false;\n\n private hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private readonly STORAGE_KEY = 'sidebar-pinned';\n\n hide(): void {\n if (this.isPinned()) return;\n this.clearHideTimeout();\n this.hideTimeout = setTimeout(() => {\n this.isVisible.set(false);\n this.hideTimeout = null;\n }, 150);\n }\n\n show(): void {\n if (this.blockShow) return;\n this.clearHideTimeout();\n if (!this.isPinned()) {\n this.isVisible.set(true);\n }\n }\n\n toggle(): void {\n this.clearHideTimeout();\n this.isVisible.update((v) => !v);\n }\n\n togglePin(): void {\n const wasPinned = this.isPinned();\n const pinned = !wasPinned;\n\n this.isPinned.set(pinned);\n this.savePinned(pinned);\n\n if (pinned) {\n this.isVisible.set(true);\n this.clearHideTimeout();\n } else {\n this.isVisible.set(false);\n this.clearHideTimeout();\n this.blockShow = true;\n setTimeout(() => (this.blockShow = false), 300);\n }\n }\n\n private clearHideTimeout(): void {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n private loadPinned(): boolean {\n try {\n return localStorage.getItem(this.STORAGE_KEY) === 'true';\n } catch {\n return false;\n }\n }\n\n private savePinned(pinned: boolean): void {\n try {\n localStorage.setItem(this.STORAGE_KEY, String(pinned));\n } catch {\n // ignore (e.g. incognito)\n }\n }\n}\n","import { booleanAttribute, Component, computed, inject, input } from '@angular/core';\n\nimport { SidebarService } from './sidebar.service';\n\n@Component({\n selector: 'bsc-sidebar',\n imports: [],\n templateUrl: './sidebar.html',\n})\nexport class Sidebar {\n readonly hasHeader = input(false, { transform: booleanAttribute });\n\n protected readonly sidebar = inject(SidebarService);\n\n protected readonly sidebarClasses = computed(() => {\n const visible = this.sidebar.isVisible();\n const classes = ['sidebar', visible ? 'sidebar-visible' : 'sidebar-hidden'];\n if (this.hasHeader()) classes.push('sidebar-with-header');\n return classes.join(' ');\n });\n\n protected onMouseEnter(): void {\n this.sidebar.show();\n }\n\n protected onMouseLeave(): void {\n this.sidebar.hide();\n }\n}\n","<!-- Invisible hover trigger at left edge (shows sidebar on hover when unpinned) -->\n@if (!sidebar.isVisible()) {\n <div class=\"sidebar-trigger\" (mouseenter)=\"onMouseEnter()\"></div>\n}\n\n<aside\n [class]=\"sidebarClasses()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n aria-label=\"Sidebar\"\n>\n <!-- Header -->\n <div class=\"sidebar-header\">\n <ng-content select=\"[sidebarHeader]\" />\n </div>\n\n <!-- Body (scrollable) -->\n <div class=\"sidebar-body\">\n <ng-content />\n </div>\n\n <!-- Footer (optional) -->\n <ng-content select=\"[sidebarFooter]\" />\n</aside>\n","import { Component, computed, input } from '@angular/core';\n\nexport type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'table';\n\n@Component({\n selector: 'bsc-skeleton',\n imports: [],\n templateUrl: './skeleton.html',\n})\nexport class Skeleton {\n readonly animated = input<boolean>(true);\n readonly columns = input<number>(3);\n readonly height = input<string>('');\n readonly lines = input<number>(1);\n readonly variant = input<SkeletonVariant>('text');\n readonly width = input<string>('100%');\n\n protected readonly animClass = computed(() => {\n return this.animated() ? 'skeleton-animated' : '';\n });\n\n protected readonly columnsArray = computed(() => {\n return Array.from({ length: this.columns() });\n });\n\n protected readonly linesArray = computed(() => {\n return Array.from({ length: this.lines() });\n });\n}\n","@switch (variant()) {\n @case ('text') {\n <div class=\"skeleton-text-container\" [style.width]=\"width()\">\n @for (line of linesArray(); track $index; let last = $last) {\n <div\n class=\"skeleton-base skeleton-text\"\n [class]=\"animClass()\"\n [style.width]=\"last && linesArray().length > 1 ? '75%' : '100%'\"\n [style.height]=\"height() || null\"\n ></div>\n }\n </div>\n }\n @case ('circular') {\n <div\n class=\"skeleton-base skeleton-circular\"\n [class]=\"animClass()\"\n [style.width]=\"width() === '100%' ? '3rem' : width()\"\n [style.height]=\"height() || (width() === '100%' ? '3rem' : width())\"\n ></div>\n }\n @case ('rectangular') {\n <div\n class=\"skeleton-base skeleton-rectangular\"\n [class]=\"animClass()\"\n [style.width]=\"width()\"\n [style.height]=\"height() || '8rem'\"\n ></div>\n }\n @case ('table') {\n <div class=\"skeleton-table\" [style.width]=\"width()\">\n <!-- Header row -->\n <div class=\"skeleton-table-row\">\n @for (col of columnsArray(); track $index) {\n <div class=\"skeleton-base skeleton-table-header-cell\" [class]=\"animClass()\"></div>\n }\n </div>\n <!-- Body rows -->\n @for (row of linesArray(); track $index) {\n <div class=\"skeleton-table-row\">\n @for (col of columnsArray(); track $index) {\n <div class=\"skeleton-base skeleton-table-cell\" [class]=\"animClass()\"></div>\n }\n </div>\n }\n </div>\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-spinner',\n imports: [],\n templateUrl: './spinner.html',\n styleUrl: './spinner.css',\n})\nexport class Spinner {}\n","<p>spinner works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-stepper',\n imports: [],\n templateUrl: './stepper.html',\n styleUrl: './stepper.css',\n})\nexport class Stepper {}\n","<p>stepper works!</p>\n","import { booleanAttribute, Component, computed, input, signal } from '@angular/core';\n\nimport { Pagination } from '../pagination/pagination';\n\nexport interface TableColumn {\n key: string;\n label: string;\n sortable?: boolean;\n}\n\nexport type StripedDirection = 'row' | 'column' | 'none';\nexport type SortDirection = 'asc' | 'desc' | 'none';\n\nexport interface SortState {\n column: string;\n direction: SortDirection;\n}\n\n@Component({\n selector: 'bsc-table',\n imports: [Pagination],\n templateUrl: './table.html',\n styleUrl: './table.css',\n})\nexport class Table {\n readonly hover = input(true, { transform: booleanAttribute });\n readonly pageSizeOptions = input([10, 25, 50, 100]);\n readonly paginate = input(false, { transform: booleanAttribute });\n readonly showPageSize = input(false, { transform: booleanAttribute });\n readonly sortable = input(false, { transform: booleanAttribute });\n readonly tableSearch = input(false, { transform: booleanAttribute });\n readonly columns = input<TableColumn[]>([]);\n readonly currentPage = signal(1);\n readonly data = input<Record<string, unknown>[]>([]);\n\n readonly pageSize = signal(10);\n readonly searchTerm = signal('');\n readonly sortState = signal<SortState>({ column: '', direction: 'none' });\n readonly stripedDirection = input<StripedDirection>('none');\n\n protected readonly filteredData = computed(() => {\n const term = this.searchTerm().toLowerCase();\n const rows = this.data();\n if (!term) return rows;\n return rows.filter((row) =>\n this.columns().some((col) => {\n const val = row[col.key];\n return val != null && String(val).toLowerCase().includes(term);\n }),\n );\n });\n\n protected readonly displayData = computed(() => {\n const rows = this.filteredData();\n const sort = this.sortState();\n if (sort.direction === 'none' || !sort.column) return rows;\n return [...rows].sort((a, b) => {\n const aVal = String(a[sort.column] ?? '');\n const bVal = String(b[sort.column] ?? '');\n const cmp = aVal.localeCompare(bVal, undefined, { numeric: true });\n return sort.direction === 'asc' ? cmp : -cmp;\n });\n });\n\n protected readonly paginatedData = computed(() => {\n const rows = this.displayData();\n if (!this.paginate()) return rows;\n const page = this.currentPage();\n const size = this.pageSize();\n const start = (page - 1) * size;\n return rows.slice(start, start + size);\n });\n\n protected readonly tableClasses = computed(() => {\n const classes = ['table'];\n const dir = this.stripedDirection();\n if (dir !== 'none') classes.push(`table-striped-${dir}`);\n if (this.hover()) classes.push('table-hover');\n return classes.join(' ');\n });\n\n protected readonly totalItems = computed(() => this.displayData().length);\n\n getSortDirection(col: TableColumn): SortDirection {\n const sort = this.sortState();\n return sort.column === col.key ? sort.direction : 'none';\n }\n\n isColumnSortable(col: TableColumn): boolean {\n if (col.sortable !== undefined) return col.sortable;\n return this.sortable();\n }\n\n onSearchInput(event: Event) {\n const target = event.target as HTMLInputElement;\n this.searchTerm.set(target.value);\n this.currentPage.set(1);\n }\n\n toggleSort(col: TableColumn) {\n if (!this.isColumnSortable(col)) return;\n const current = this.sortState();\n if (current.column !== col.key) {\n this.sortState.set({ column: col.key, direction: 'asc' });\n } else {\n const next: SortDirection =\n current.direction === 'asc' ? 'desc' : current.direction === 'desc' ? 'none' : 'asc';\n this.sortState.set({ column: col.key, direction: next });\n }\n }\n}\n","<div class=\"table-wrapper\">\n @if (tableSearch()) {\n <div class=\"table-search\">\n <svg\n class=\"table-search-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"M21 21l-4.35-4.35\" />\n </svg>\n <input\n class=\"table-search-input\"\n type=\"text\"\n placeholder=\"Search...\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchInput($event)\"\n />\n </div>\n }\n\n <div class=\"table-scroll\">\n <table [class]=\"tableClasses()\">\n <thead>\n <tr>\n @for (col of columns(); track col.key) {\n <th\n class=\"table-th\"\n [class.table-th-sortable]=\"isColumnSortable(col)\"\n (click)=\"toggleSort(col)\"\n >\n <span class=\"table-th-content\">\n {{ col.label }}\n @if (isColumnSortable(col)) {\n <svg\n class=\"table-sort-icon\"\n [class.table-sort-asc]=\"getSortDirection(col) === 'asc'\"\n [class.table-sort-desc]=\"getSortDirection(col) === 'desc'\"\n [class.table-sort-none]=\"getSortDirection(col) === 'none'\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6-6 6 6\" />\n <path d=\"M6 15l6 6 6-6\" />\n </svg>\n }\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of paginatedData(); track $index) {\n <tr>\n @for (col of columns(); track col.key) {\n <td class=\"table-td\">{{ row[col.key] }}</td>\n }\n </tr>\n } @empty {\n <tr>\n <td class=\"table-empty\" [attr.colspan]=\"columns().length\">No data available.</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n @if (paginate()) {\n <div class=\"table-pagination\">\n <bsc-pagination\n [totalItems]=\"totalItems()\"\n [(currentPage)]=\"currentPage\"\n [(pageSize)]=\"pageSize\"\n [showPageSize]=\"showPageSize()\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-tabs',\n imports: [],\n templateUrl: './tabs.html',\n styleUrl: './tabs.css',\n})\nexport class Tabs {}\n","<p>tabs works!</p>\n","import { booleanAttribute, Component, computed, input, model } from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-toggle',\n imports: [],\n templateUrl: './toggle.html',\n})\nexport class Toggle {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n readonly size = input<Size>('md');\n\n protected readonly thumbClasses = computed(() => {\n const classes = ['toggle-thumb'];\n if (this.checked()) classes.push('toggle-thumb-checked');\n return classes.join(' ');\n });\n\n protected readonly trackClasses = computed(() => {\n const classes = ['toggle-track'];\n if (this.checked()) classes.push('toggle-track-checked');\n return classes.join(' ');\n });\n\n protected readonly wrapperClasses = computed(() => {\n return `toggle toggle-${this.size()}`;\n });\n\n protected toggle() {\n if (!this.disabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [class]=\"wrapperClasses()\"\n (click)=\"toggle()\"\n>\n <span [class]=\"trackClasses()\">\n <span [class]=\"thumbClasses()\"></span>\n </span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-tooltip',\n imports: [],\n templateUrl: './tooltip.html',\n styleUrl: './tooltip.css',\n})\nexport class Tooltip {}\n","<p>tooltip works!</p>\n","/*\n * Public API Surface of core-components\n */\n\nexport * from './lib/types';\nexport * from './lib/accordion/accordion';\nexport * from './lib/alert/alert';\nexport * from './lib/avatar/avatar';\nexport * from './lib/badge/badge';\nexport * from './lib/breadcrumb/breadcrumb';\nexport * from './lib/button/button';\nexport * from './lib/card/card';\nexport * from './lib/checkbox/checkbox';\nexport * from './lib/date-picker/date-picker';\nexport * from './lib/dropdown/dropdown';\nexport * from './lib/file-upload/file-upload';\nexport * from './lib/footer/footer';\nexport * from './lib/form-field/form-field';\nexport * from './lib/header/header';\nexport * from './lib/icon/icon';\nexport * from './lib/input/input';\nexport * from './lib/label/label';\nexport * from './lib/modal/modal';\nexport * from './lib/modal/modal-dialog';\nexport * from './lib/modal/modal.service';\nexport * from './lib/navigation/navigation';\nexport * from './lib/pagination/pagination';\nexport * from './lib/progress-bar/progress-bar';\nexport * from './lib/radio/radio';\nexport * from './lib/search-bar/search-bar';\nexport * from './lib/select/select';\nexport * from './lib/sidebar/sidebar';\nexport * from './lib/skeleton/skeleton';\nexport * from './lib/sidebar/sidebar.service';\nexport * from './lib/spinner/spinner';\nexport * from './lib/stepper/stepper';\nexport * from './lib/table/table';\nexport * from './lib/tabs/tabs';\nexport * from './lib/toggle/toggle';\nexport * from './lib/tooltip/tooltip';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blank-software/core-components",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Angular component library by Blank Software",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -0,0 +1,5 @@
1
+ @reference "tailwindcss";
2
+
3
+ .accordion {
4
+ @apply bg-surface rounded-2xl border border-ink-200 overflow-hidden;
5
+ }
@@ -0,0 +1,27 @@
1
+ @reference "tailwindcss";
2
+
3
+ /* ── Base ── */
4
+ .alert {
5
+ @apply p-4 text-sm rounded-base;
6
+ }
7
+
8
+ /* ── Variants ── */
9
+ .alert-info {
10
+ @apply text-primary-800 bg-primary-50;
11
+ }
12
+
13
+ .alert-danger {
14
+ @apply text-error-800 bg-error-50;
15
+ }
16
+
17
+ .alert-success {
18
+ @apply text-success-800 bg-success-50;
19
+ }
20
+
21
+ .alert-warning {
22
+ @apply text-warning-800 bg-warning-50;
23
+ }
24
+
25
+ .alert-dark {
26
+ @apply text-ink-900 bg-ink-100;
27
+ }
File without changes
File without changes
File without changes
@@ -0,0 +1,83 @@
1
+ @reference "tailwindcss";
2
+
3
+ /* ── Base ── */
4
+ .btn {
5
+ @apply inline-flex items-center justify-center gap-2
6
+ box-border border font-medium leading-5
7
+ transition-colors duration-200 cursor-pointer
8
+ focus:ring-4 focus:outline-none
9
+ disabled:opacity-50 disabled:cursor-not-allowed;
10
+ }
11
+
12
+ /* ── Variants ── */
13
+ .btn-primary {
14
+ @apply text-white bg-primary border-transparent shadow-xs
15
+ enabled:hover:bg-primary-700 enabled:active:bg-primary-800
16
+ focus:ring-primary-200;
17
+ }
18
+ .btn-secondary {
19
+ @apply text-ink-900 bg-ink-100 border-transparent shadow-xs
20
+ enabled:hover:bg-ink-200 enabled:active:bg-ink-300
21
+ focus:ring-ink-200;
22
+ }
23
+ .btn-outline {
24
+ @apply text-ink-900 bg-transparent border-ink-300 shadow-xs
25
+ enabled:hover:bg-ink-50 enabled:active:bg-ink-100
26
+ focus:ring-ink-200;
27
+ }
28
+ .btn-ghost {
29
+ @apply text-ink-700 bg-transparent border-transparent
30
+ enabled:hover:bg-ink-50 enabled:active:bg-ink-100
31
+ focus:ring-ink-200;
32
+ }
33
+
34
+ /* ── Shapes ── */
35
+ .btn-rounded {
36
+ @apply rounded-base;
37
+ }
38
+ .btn-pill {
39
+ @apply rounded-full;
40
+ }
41
+
42
+ /* ── Sizes (con testo) ── */
43
+ .btn-sm {
44
+ @apply text-sm px-3 py-2;
45
+ }
46
+ .btn-md {
47
+ @apply text-sm px-4 py-2.5;
48
+ }
49
+ .btn-lg {
50
+ @apply text-base px-5 py-3;
51
+ }
52
+
53
+ /* ── Sizes (icon only) ── */
54
+ .btn-icon-sm {
55
+ @apply p-2;
56
+ }
57
+ .btn-icon-md {
58
+ @apply p-2.5;
59
+ }
60
+ .btn-icon-lg {
61
+ @apply p-3;
62
+ }
63
+
64
+ /* ── Custom color (usa CSS vars) ── */
65
+ .btn-custom-color {
66
+ background-color: var(--btn-bg);
67
+ color: var(--btn-text);
68
+ border-color: transparent;
69
+ box-shadow: var(--shadow-xs);
70
+ }
71
+
72
+ .btn-custom-color:enabled:hover {
73
+ filter: brightness(0.9);
74
+ }
75
+
76
+ .btn-custom-color:enabled:active {
77
+ filter: brightness(0.8);
78
+ }
79
+
80
+ .btn-custom-color:focus {
81
+ --tw-ring-color: var(--btn-bg);
82
+ --tw-ring-opacity: 0.3;
83
+ }