@ng-brutalism/ui 0.1.0
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.
- package/CHANGELOG.md +60 -0
- package/LICENSE +21 -0
- package/README.md +109 -0
- package/fesm2022/ng-brutalism-ui.mjs +1336 -0
- package/fesm2022/ng-brutalism-ui.mjs.map +1 -0
- package/package.json +81 -0
- package/schematics/collection.json +10 -0
- package/schematics/index.d.ts +1 -0
- package/schematics/index.js +7 -0
- package/schematics/index.js.map +1 -0
- package/schematics/ng-add/index.d.ts +3 -0
- package/schematics/ng-add/index.js +233 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.d.ts +3 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/package.json +3 -0
- package/styles.css +162 -0
- package/theme.css +70 -0
- package/types/ng-brutalism-ui.d.ts +387 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-brutalism-ui.mjs","sources":["../../../libs/ui/src/lib/core/class.ts","../../../libs/ui/src/lib/tokens/theme.tokens.ts","../../../libs/ui/src/lib/core/provide.ts","../../../libs/ui/src/lib/checkbox/nb-checkbox.ts","../../../libs/ui/src/lib/accordion/accordion.types.ts","../../../libs/ui/src/lib/accordion/nb-accordion-item.ts","../../../libs/ui/src/lib/accordion/nb-accordion.ts","../../../libs/ui/src/lib/accordion/nb-accordion-content.ts","../../../libs/ui/src/lib/accordion/nb-accordion-trigger.ts","../../../libs/ui/src/lib/button/nb-button.ts","../../../libs/ui/src/lib/card/nb-card.ts","../../../libs/ui/src/lib/image-card/nb-image-card.ts","../../../libs/ui/src/lib/marquee/nb-marquee.ts","../../../libs/ui/src/lib/marquee/nb-marquee-item.ts","../../../libs/ui/src/lib/input-group/input-group.types.ts","../../../libs/ui/src/lib/input/nb-input.ts","../../../libs/ui/src/lib/label/nb-label.ts","../../../libs/ui/src/lib/title/nb-title.ts","../../../libs/ui/src/lib/textarea/nb-textarea.ts","../../../libs/ui/src/lib/input-group/nb-input-group.ts","../../../libs/ui/src/lib/input-group/nb-input-group-prefix.ts","../../../libs/ui/src/lib/input-group/nb-input-group-suffix.ts","../../../libs/ui/src/lib/select/nb-native-select.ts","../../../libs/ui/src/lib/select/select.types.ts","../../../libs/ui/src/lib/select/nb-select-option.ts","../../../libs/ui/src/lib/select/nb-select.ts","../../../libs/ui/src/lib/badge/nb-badge.ts","../../../libs/ui/src/lib/avatar/nb-avatar.ts","../../../libs/ui/src/lib/dialog/dialog.types.ts","../../../libs/ui/src/lib/dialog/nb-dialog.ts","../../../libs/ui/src/lib/dialog/nb-dialog-title.ts","../../../libs/ui/src/lib/dialog/nb-dialog-description.ts","../../../libs/ui/src/lib/dialog/nb-dialog-content.ts","../../../libs/ui/src/lib/dialog/nb-dialog-actions.ts","../../../libs/ui/src/lib/dialog/nb-dialog-close.ts","../../../libs/ui/src/index.ts","../../../libs/ui/src/ng-brutalism-ui.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges class names with Tailwind conflict resolution.\n * Publicly exported for consumers extending library components.\n *\n * @example\n * nbClass('px-2 px-4') // -> 'px-4'\n * nbClass('flex', condition && 'w-full') // -> 'flex w-full' or 'flex'\n */\nexport function nbClass(...inputs: ClassValue[]): string {\n return twMerge(clsx(...inputs));\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface NbThemeConfig {\n primary?: string;\n secondary?: string;\n accent?: string;\n danger?: string;\n success?: string;\n warning?: string;\n radius?: string;\n borderWidth?: string;\n shadowOffsetX?: string;\n shadowOffsetY?: string;\n fontSans?: string;\n fontMono?: string;\n}\n\nexport const NB_THEME_CONFIG = new InjectionToken<NbThemeConfig>(\n 'NB_THEME_CONFIG'\n);\n","import {\n EnvironmentProviders,\n inject,\n makeEnvironmentProviders,\n PLATFORM_ID,\n provideAppInitializer,\n DOCUMENT,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { NB_THEME_CONFIG, NbThemeConfig } from '../tokens/theme.tokens';\n\nfunction applyThemeVars(doc: Document, config: NbThemeConfig): void {\n const root = doc.documentElement;\n const map: Record<keyof NbThemeConfig, string> = {\n primary: '--nb-primary',\n secondary: '--nb-secondary',\n accent: '--nb-accent',\n danger: '--nb-danger',\n success: '--nb-success',\n warning: '--nb-warning',\n radius: '--nb-radius',\n borderWidth: '--nb-border-width',\n shadowOffsetX: '--nb-shadow-offset-x',\n shadowOffsetY: '--nb-shadow-offset-y',\n fontSans: '--nb-font-sans',\n fontMono: '--nb-font-mono',\n };\n\n for (const [key, cssVar] of Object.entries(map)) {\n const value = config[key as keyof NbThemeConfig];\n if (value !== undefined) {\n root.style.setProperty(cssVar, value);\n }\n }\n}\n\nexport interface NbConfig {\n theme?: NbThemeConfig;\n}\n\nexport function provideNgBrutalism(\n config: NbConfig = {}\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: NB_THEME_CONFIG,\n useValue: config.theme ?? {},\n },\n provideAppInitializer(() => {\n const initializerFn = (() => {\n const doc = inject(DOCUMENT);\n const platformId = inject(PLATFORM_ID);\n const themeConfig = inject(NB_THEME_CONFIG);\n\n return () => {\n if (isPlatformBrowser(platformId)) {\n applyThemeVars(doc, themeConfig);\n }\n };\n })();\n return initializerFn();\n }),\n ]);\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport type { NbCheckboxSize } from './checkbox.types';\n\n@Directive({\n selector: 'input[nbCheckbox]',\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n },\n})\nexport class NbCheckbox {\n readonly size = input<NbCheckboxSize>('default');\n\n protected readonly classes = computed(() =>\n nbClass(\n '[--nb-checkbox-bg:var(--nb-main)]',\n '[--nb-checkbox-fg:#fff]',\n '[--nb-checkbox-border:var(--nb-border)]',\n '[--nb-checkbox-radius:0]',\n 'peer grid shrink-0 cursor-pointer appearance-none place-content-center',\n 'rounded-(--nb-checkbox-radius) outline-2 outline-(--nb-checkbox-border) ring-offset-white',\n 'checked:bg-(--nb-checkbox-bg) checked:text-(--nb-checkbox-fg)',\n 'focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-(--nb-checkbox-border) focus-visible:ring-offset-2',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n this.sizeClass()\n )\n );\n\n private sizeClass(): string {\n const map: Record<NbCheckboxSize, string> = {\n default: 'size-4',\n sm: 'size-3.5',\n lg: 'size-5',\n };\n return map[this.size()];\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport type NbAccordionType = 'single' | 'multiple';\n\nexport type NbAccordionValue = string | string[] | null;\n\nexport interface NbAccordionController {\n isItemOpen(value: string): boolean;\n toggleItem(value: string): void;\n}\n\nexport const NB_ACCORDION = new InjectionToken<NbAccordionController>(\n 'NB_ACCORDION'\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_ACCORDION } from './accordion.types';\n\nlet nextAccordionItemId = 0;\n\n@Component({\n selector: 'nb-accordion-item',\n template: `\n <div [class]=\"classes()\">\n <ng-content />\n </div>\n `,\n host: {\n class: 'block',\n '[attr.data-state]': 'open() ? \"open\" : \"closed\"',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.data-orientation]': '\"vertical\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbAccordionItem {\n private readonly id = nextAccordionItemId++;\n\n readonly value = input(`neo-accordion-item-${this.id}`);\n readonly disabled = input(false, { transform: booleanAttribute });\n\n private readonly accordion = inject(NB_ACCORDION);\n\n readonly triggerId = `neo-accordion-trigger-${this.id}`;\n readonly contentId = `neo-accordion-content-${this.id}`;\n\n readonly open = computed(() => this.accordion.isItemOpen(this.value()));\n\n protected readonly classes = computed(() =>\n nbClass(\n '[--nb-accordion-item-bg:var(--nb-surface)]',\n '[--nb-accordion-item-fg:var(--nb-surface-foreground)]',\n '[--nb-accordion-item-border:var(--nb-border)]',\n '[--nb-accordion-item-radius:var(--nb-radius)]',\n '[--nb-accordion-item-shadow:var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]',\n 'overflow-hidden rounded-(--nb-accordion-item-radius)',\n 'border-2 border-(--nb-accordion-item-border)',\n 'bg-(--nb-accordion-item-bg) text-(--nb-accordion-item-fg)',\n 'shadow-[var(--nb-accordion-item-shadow)]',\n this.disabled() && 'opacity-50'\n )\n );\n\n toggle(): void {\n if (!this.disabled()) {\n this.accordion.toggleItem(this.value());\n }\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n input,\n model,\n} from '@angular/core';\n\nimport { NbAccordionItem } from './nb-accordion-item';\nimport {\n NB_ACCORDION,\n type NbAccordionController,\n type NbAccordionType,\n type NbAccordionValue,\n} from './accordion.types';\n\n@Component({\n selector: 'nb-accordion',\n template: `\n <div class=\"flex w-full flex-col gap-3\">\n <ng-content />\n </div>\n `,\n host: {\n class: 'block w-full',\n '[attr.data-orientation]': '\"vertical\"',\n '[attr.data-type]': 'type()',\n },\n providers: [{ provide: NB_ACCORDION, useExisting: NbAccordion }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbAccordion implements NbAccordionController {\n readonly type = input<NbAccordionType>('single');\n readonly collapsible = input(false, { transform: booleanAttribute });\n readonly value = model<NbAccordionValue>(null);\n\n readonly items = contentChildren(NbAccordionItem);\n\n isItemOpen(value: string): boolean {\n const currentValue = this.value();\n\n return Array.isArray(currentValue)\n ? currentValue.includes(value)\n : currentValue === value;\n }\n\n toggleItem(value: string): void {\n if (this.type() === 'multiple') {\n this.toggleMultipleItem(value);\n return;\n }\n\n if (this.isItemOpen(value)) {\n if (this.collapsible()) {\n this.value.set(null);\n }\n\n return;\n }\n\n this.value.set(value);\n }\n\n private toggleMultipleItem(value: string): void {\n const currentValue = this.value();\n const values = Array.isArray(currentValue)\n ? currentValue\n : currentValue\n ? [currentValue]\n : [];\n\n this.value.set(\n values.includes(value)\n ? values.filter((itemValue) => itemValue !== value)\n : [...values, value]\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NbAccordionItem } from './nb-accordion-item';\n\n@Component({\n selector: 'nb-accordion-content',\n template: `\n <div\n [id]=\"item.contentId\"\n [class]=\"classes()\"\n role=\"region\"\n [attr.aria-labelledby]=\"item.triggerId\"\n [attr.data-slot]=\"'accordion-content'\"\n [attr.data-state]=\"item.open() ? 'open' : 'closed'\"\n [attr.data-orientation]=\"'vertical'\"\n [attr.aria-hidden]=\"!item.open()\"\n >\n <div class=\"min-h-0 overflow-hidden\">\n <div class=\"p-4\">\n <ng-content />\n </div>\n </div>\n </div>\n `,\n host: {\n class: 'block',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbAccordionContent {\n protected readonly item = inject(NbAccordionItem);\n\n protected readonly classes = computed(() =>\n nbClass(\n '[--nb-accordion-content-bg:var(--nb-surface)]',\n '[--nb-accordion-content-fg:var(--nb-surface-foreground)]',\n 'grid overflow-hidden bg-(--nb-accordion-content-bg) text-sm font-medium',\n 'text-(--nb-accordion-content-fg)',\n 'transition-[grid-template-rows] duration-200 ease-out',\n this.item.open() ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'\n )\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NbAccordionItem } from './nb-accordion-item';\n\n@Component({\n selector: 'nb-accordion-trigger',\n template: `\n <h3 class=\"flex\">\n <button\n type=\"button\"\n [id]=\"item.triggerId\"\n [attr.aria-expanded]=\"item.open()\"\n [attr.aria-controls]=\"item.contentId\"\n [attr.data-state]=\"item.open() ? 'open' : 'closed'\"\n [disabled]=\"item.disabled()\"\n [class]=\"triggerClasses()\"\n (click)=\"item.toggle()\"\n >\n <ng-content />\n <svg\n class=\"size-6 shrink-0 fill-none stroke-current stroke-[3] stroke-linecap-round stroke-linejoin-round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path [attr.d]=\"item.open() ? 'm18 15-6-6-6 6' : 'm6 9 6 6 6-6'\" />\n </svg>\n </button>\n </h3>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbAccordionTrigger {\n protected readonly item = inject(NbAccordionItem);\n\n protected readonly triggerClasses = computed(() =>\n nbClass(\n '[--nb-accordion-trigger-bg:var(--nb-main)]',\n '[--nb-accordion-trigger-fg:var(--nb-main-foreground)]',\n 'flex min-h-14 flex-1 items-center justify-between gap-4',\n 'w-full bg-(--nb-accordion-trigger-bg) p-4 text-left text-base font-bold',\n 'text-(--nb-accordion-trigger-fg) transition-all duration-200',\n 'focus-visible:outline-none focus-visible:ring-2',\n 'focus-visible:ring-(--nb-accordion-item-border) focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n this.item.open() && 'border-b-2 border-(--nb-accordion-item-border)'\n )\n );\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport type {\n NbButtonShadow,\n NbButtonSize,\n NbButtonVariant,\n} from './button.types';\n\n@Directive({\n selector: 'button[nbButton], a[nbButton]',\n host: {\n '[class]': 'classes()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-shadow]': 'shadow()',\n '[attr.data-size]': 'size()',\n '[attr.data-full-width]': 'fullWidth() ? \"\" : null',\n },\n})\nexport class NbButton {\n readonly variant = input<NbButtonVariant>('default');\n readonly shadow = input<NbButtonShadow>('default');\n readonly size = input<NbButtonSize>('default');\n readonly fullWidth = input(false);\n\n protected readonly classes = computed(() =>\n nbClass(\n 'inline-flex items-center justify-center whitespace-nowrap select-none',\n 'gap-2',\n 'font-bold',\n '[--nb-button-bg:var(--nb-main)]',\n '[--nb-button-fg:var(--nb-main-foreground)]',\n '[--nb-button-border:var(--nb-border)]',\n '[--nb-button-radius:var(--nb-radius)]',\n '[--nb-button-shadow:var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]',\n 'bg-(--nb-button-bg) text-(--nb-button-fg)',\n 'rounded-(--nb-button-radius)',\n 'border-2 border-(--nb-button-border)',\n 'shadow-[var(--nb-button-shadow)]',\n 'transition-all duration-150 ease-out',\n '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-border) focus-visible:ring-offset-2',\n 'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none',\n 'aria-disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:pointer-events-none',\n this.variantClass(),\n this.shadowClass(),\n this.sizeClass(),\n this.fullWidth() && 'w-full'\n )\n );\n\n private variantClass(): string {\n const variant = this.variant();\n\n const map: Record<NbButtonVariant, string> = {\n default: '',\n neutral:\n '[--nb-button-bg:var(--nb-background)] [--nb-button-fg:var(--nb-foreground)]',\n primary:\n '[--nb-button-bg:var(--nb-primary)] [--nb-button-fg:var(--nb-primary-foreground)]',\n secondary:\n '[--nb-button-bg:var(--nb-secondary)] [--nb-button-fg:var(--nb-secondary-foreground)]',\n accent:\n '[--nb-button-bg:var(--nb-accent)] [--nb-button-fg:var(--nb-accent-foreground)]',\n danger:\n '[--nb-button-bg:var(--nb-danger)] [--nb-button-fg:var(--nb-danger-foreground)]',\n success:\n '[--nb-button-bg:var(--nb-success)] [--nb-button-fg:var(--nb-success-foreground)]',\n warning:\n '[--nb-button-bg:var(--nb-warning)] [--nb-button-fg:var(--nb-warning-foreground)]',\n };\n\n return map[variant];\n }\n\n private shadowClass(): string {\n const map: Record<NbButtonShadow, string> = {\n default:\n 'hover:translate-x-(--nb-shadow-offset-x) hover:translate-y-(--nb-shadow-offset-y) hover:shadow-none',\n none: '[--nb-button-shadow:none]',\n reverse:\n '[--nb-button-shadow:none] hover:-translate-x-(--nb-reverse-shadow-offset-x) hover:-translate-y-(--nb-reverse-shadow-offset-y) hover:shadow-[var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]',\n };\n\n return map[this.shadow()];\n }\n\n private sizeClass(): string {\n const map: Record<NbButtonSize, string> = {\n default: 'h-10 px-4 py-2 text-sm',\n sm: 'h-9 px-3 text-sm',\n lg: 'h-11 px-8 text-sm',\n icon: 'size-10',\n };\n\n return map[this.size()];\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\nexport type NbCardActionsAlign = 'start' | 'end';\n\n@Component({\n selector: 'nb-card',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"card\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbCard {\n protected readonly classes = nbClass(\n '[--nb-card-bg:var(--nb-background)]',\n '[--nb-card-fg:var(--nb-foreground)]',\n '[--nb-card-border:var(--nb-border)]',\n '[--nb-card-radius:18px]',\n '[--nb-card-shadow:var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]',\n 'flex flex-col gap-6 py-6',\n 'rounded-(--nb-card-radius) border-2 border-(--nb-card-border)',\n 'bg-(--nb-card-bg) text-(--nb-card-fg)',\n 'shadow-[var(--nb-card-shadow)] font-medium'\n );\n}\n\n@Component({\n selector: 'nb-card-header',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"card-header\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbCardHeader {\n protected readonly classes = nbClass(\n 'grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6',\n '[.border-b]:pb-6'\n );\n}\n\n@Component({\n selector: 'nb-card-title',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"card-title\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbCardTitle {\n protected readonly classes = nbClass('font-bold leading-none');\n}\n\n@Component({\n selector: 'nb-card-description',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"card-description\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbCardDescription {\n protected readonly classes = nbClass('text-sm font-medium');\n}\n\n@Component({\n selector: 'nb-card-actions',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes()',\n '[attr.data-slot]': '\"card-actions\"',\n '[attr.data-align]': 'align()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbCardActions {\n readonly align = input<NbCardActionsAlign>('start');\n\n protected readonly classes = computed(() =>\n nbClass(\n 'flex flex-wrap items-center gap-3 px-6',\n '[[data-slot=card-footer]_&]:px-0',\n this.align() === 'end' ? 'justify-end' : 'justify-start'\n )\n );\n}\n\n@Component({\n selector: 'nb-card-content',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"card-content\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbCardContent {\n protected readonly classes = nbClass('px-6');\n}\n\n@Component({\n selector: 'nb-card-footer',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"card-footer\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbCardFooter {\n protected readonly classes = nbClass(\n 'flex items-center px-6',\n 'has-[[data-slot=card-actions]]:flex-wrap',\n 'has-[[data-slot=card-actions]]:justify-between',\n 'has-[[data-slot=card-actions]]:gap-4',\n '[.border-t]:pt-6'\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\n@Component({\n selector: 'nb-image-card',\n template: `\n <img\n [src]=\"image()\"\n [alt]=\"alt()\"\n [class]=\"imageClasses\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n <ng-content select=\"nb-image-card-caption\" />\n `,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"image-card\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbImageCard {\n readonly image = input.required<string>();\n readonly alt = input.required<string>();\n\n protected readonly classes = nbClass(\n '[--nb-image-card-bg:var(--nb-background)]',\n '[--nb-image-card-fg:var(--nb-foreground)]',\n '[--nb-image-card-border:var(--nb-border)]',\n '[--nb-image-card-radius:var(--nb-radius)]',\n '[--nb-image-card-shadow:var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]',\n 'flex flex-col overflow-hidden',\n 'rounded-(--nb-image-card-radius) border-2 border-(--nb-image-card-border)',\n 'bg-(--nb-image-card-bg) text-(--nb-image-card-fg)',\n 'shadow-[var(--nb-image-card-shadow)] font-medium'\n );\n\n protected readonly imageClasses = nbClass('block w-full h-auto');\n}\n\n@Component({\n selector: 'nb-image-card-caption',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"image-card-caption\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbImageCardCaption {\n protected readonly classes = nbClass(\n 'border-t-2 border-(--nb-image-card-border)',\n 'px-6 py-4 text-center font-bold text-base'\n );\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n PLATFORM_ID,\n afterNextRender,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\n@Component({\n selector: 'nb-marquee',\n host: {\n class: 'block',\n },\n template: `\n <div #wrapper [class]=\"wrapperClass()\" [style]=\"wrapperStyle()\">\n <div #strip1 [class]=\"strip1Class()\">\n <ng-content />\n </div>\n <div #strip2 [class]=\"strip2Class()\" aria-hidden=\"true\"></div>\n </div>\n `,\n styles: [\n `\n @keyframes nb-marquee-1 {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n }\n @keyframes nb-marquee-2 {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n }\n @keyframes nb-marquee-reverse-1 {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(100%);\n }\n }\n @keyframes nb-marquee-reverse-2 {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0%);\n }\n }\n\n .nb-marquee-strip-1 {\n animation-name: nb-marquee-1;\n animation-duration: var(--nb-marquee-duration, 5s);\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n }\n .nb-marquee-strip-1.nb-marquee-reverse {\n animation-name: nb-marquee-reverse-1;\n }\n\n .nb-marquee-strip-2 {\n animation-name: nb-marquee-2;\n animation-duration: var(--nb-marquee-duration, 5s);\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n }\n .nb-marquee-strip-2.nb-marquee-reverse {\n animation-name: nb-marquee-reverse-2;\n }\n\n .nb-marquee-strip-1,\n .nb-marquee-strip-2 {\n display: flex;\n width: max-content;\n min-width: 100%;\n align-items: center;\n flex-shrink: 0;\n }\n\n .nb-marquee-wrapper.nb-pause-on-hover:hover .nb-marquee-strip-1,\n .nb-marquee-wrapper.nb-pause-on-hover:hover .nb-marquee-strip-2 {\n animation-play-state: paused;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbMarquee {\n readonly duration = input('5s');\n readonly reverse = input(false, { transform: booleanAttribute });\n readonly pauseOnHover = input(true, { transform: booleanAttribute });\n\n private readonly wrapper =\n viewChild.required<ElementRef<HTMLElement>>('wrapper');\n private readonly strip1 =\n viewChild.required<ElementRef<HTMLElement>>('strip1');\n private readonly strip2 =\n viewChild.required<ElementRef<HTMLElement>>('strip2');\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly widthScale = signal(1);\n\n protected readonly wrapperClass = computed(() =>\n nbClass(\n 'nb-marquee-wrapper relative flex w-full overflow-hidden',\n 'border-t-2 border-b-2 border-(--nb-border)',\n 'bg-white text-black font-base',\n this.pauseOnHover() && 'nb-pause-on-hover'\n )\n );\n\n protected readonly wrapperStyle = computed(() => ({\n '--nb-marquee-duration': this.scaledDuration(),\n }));\n\n private readonly scaledDuration = computed(() => {\n const duration = this.duration();\n const durationMs = this.durationToMs(duration);\n\n if (durationMs === null) {\n return duration;\n }\n\n return `${durationMs * this.widthScale()}ms`;\n });\n\n protected readonly strip1Class = computed(() =>\n nbClass(\n 'nb-marquee-strip-1 whitespace-nowrap py-4',\n this.reverse() && 'nb-marquee-reverse'\n )\n );\n\n protected readonly strip2Class = computed(() =>\n nbClass(\n 'nb-marquee-strip-2 absolute top-0 left-0 whitespace-nowrap py-4',\n this.reverse() && 'nb-marquee-reverse'\n )\n );\n\n constructor() {\n if (!this.isBrowser) {\n return;\n }\n\n afterNextRender(() => {\n this.syncSecondStrip();\n this.updateAnimationScale();\n\n const mutationObserver = new MutationObserver(() => {\n this.syncSecondStrip();\n this.updateAnimationScale();\n });\n mutationObserver.observe(this.strip1().nativeElement, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n\n const resizeObserver = new ResizeObserver(() =>\n this.updateAnimationScale()\n );\n resizeObserver.observe(this.wrapper().nativeElement);\n resizeObserver.observe(this.strip1().nativeElement);\n\n this.destroyRef.onDestroy(() => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n });\n });\n }\n\n private syncSecondStrip(): void {\n const source = this.strip1().nativeElement;\n const cloneTarget = this.strip2().nativeElement;\n const clones = Array.from(source.childNodes, (node) =>\n node.cloneNode(true)\n );\n\n cloneTarget.replaceChildren(...clones);\n }\n\n private updateAnimationScale(): void {\n const wrapperWidth = this.wrapper().nativeElement.clientWidth;\n const contentWidth = this.strip1().nativeElement.scrollWidth;\n\n if (wrapperWidth <= 0 || contentWidth <= 0) {\n this.widthScale.set(1);\n return;\n }\n\n this.widthScale.set(Math.max(1, contentWidth / wrapperWidth));\n }\n\n private durationToMs(duration: string): number | null {\n const match = duration.trim().match(/^(\\d*\\.?\\d+)(ms|s)$/);\n\n if (!match) {\n return null;\n }\n\n const value = Number(match[1]);\n return match[2] === 's' ? value * 1000 : value;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'nb-marquee-item',\n host: {\n class: 'mx-4 inline-flex shrink-0 items-center text-4xl whitespace-nowrap',\n },\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbMarqueeItem {}\n","import { InjectionToken, type Signal } from '@angular/core';\n\nexport interface NbInputGroupContext {\n readonly hasPrefix: Signal<boolean>;\n readonly hasSuffix: Signal<boolean>;\n}\n\nexport const NB_INPUT_GROUP = new InjectionToken<NbInputGroupContext>(\n 'NB_INPUT_GROUP'\n);\n\nexport const NB_INPUT_PREFIX = new InjectionToken<unknown>('NB_INPUT_PREFIX');\n\nexport const NB_INPUT_SUFFIX = new InjectionToken<unknown>('NB_INPUT_SUFFIX');\n","import { Directive, computed, inject, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_INPUT_GROUP } from '../input-group/input-group.types';\nimport type { NbInputSize } from './input.types';\n\n@Directive({\n selector: 'input[nbInput]',\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n },\n})\nexport class NbInput {\n readonly size = input<NbInputSize>('default');\n\n private readonly group = inject(NB_INPUT_GROUP, { optional: true });\n\n protected readonly classes = computed(() => {\n const inGroup = this.group !== null;\n\n return nbClass(\n '[--nb-input-bg:var(--nb-field-bg)]',\n '[--nb-input-fg:var(--nb-foreground)]',\n '[--nb-input-border:var(--nb-border)]',\n '[--nb-input-radius:var(--nb-radius)]',\n '[--nb-input-shadow:var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]',\n 'flex border-2 border-(--nb-input-border)',\n 'bg-(--nb-input-bg) text-(--nb-input-fg)',\n 'font-medium',\n 'placeholder:text-gray-400',\n 'file:h-full file:py-0 file:my-0 file:mr-3 file:px-3',\n 'file:cursor-pointer file:text-sm file:font-bold',\n 'file:bg-(--nb-main) file:text-(--nb-main-foreground)',\n 'file:border-0 file:border-r-2 file:border-(--nb-input-border)',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n inGroup\n ? [\n 'flex-1 min-w-0',\n 'bg-transparent',\n 'border-0',\n 'focus-visible:outline-none',\n ]\n : [\n 'rounded-(--nb-input-radius)',\n 'shadow-[var(--nb-input-shadow)]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-input-border)',\n 'focus-visible:ring-offset-2 focus-visible:shadow-none',\n ]\n );\n });\n}\n","import { Directive } from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\n@Directive({\n selector: 'label[nbLabel]',\n host: {\n '[class]': 'classes',\n },\n})\nexport class NbLabel {\n protected readonly classes = nbClass(\n 'font-bold leading-none',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50'\n );\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[nbTitle]',\n host: {\n '[attr.data-nb-title]': '\"\"',\n },\n})\nexport class NbTitle {}\n","import { Directive, computed, inject, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_INPUT_GROUP } from '../input-group/input-group.types';\nimport type { NbTextareaSize } from './textarea.types';\n\n@Directive({\n selector: 'textarea[nbTextarea]',\n host: {\n '[class]': 'classes()',\n '[attr.data-size]': 'size()',\n },\n})\nexport class NbTextarea {\n readonly size = input<NbTextareaSize>('default');\n\n private readonly group = inject(NB_INPUT_GROUP, { optional: true });\n\n protected readonly classes = computed(() => {\n const inGroup = this.group !== null;\n\n return nbClass(\n '[--nb-textarea-bg:var(--nb-input-bg,var(--nb-field-bg))]',\n '[--nb-textarea-fg:var(--nb-foreground)]',\n '[--nb-textarea-border:var(--nb-border)]',\n '[--nb-textarea-radius:var(--nb-radius)]',\n '[--nb-textarea-shadow:var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]',\n 'flex border-2 border-(--nb-textarea-border)',\n 'bg-(--nb-textarea-bg) text-(--nb-textarea-fg)',\n 'font-medium',\n 'placeholder:text-gray-400',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n 'resize-none',\n inGroup\n ? [\n 'flex-1 min-w-0',\n 'bg-transparent',\n 'border-0',\n 'focus-visible:outline-none',\n ]\n : [\n 'rounded-(--nb-textarea-radius)',\n 'shadow-[var(--nb-textarea-shadow)]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-textarea-border)',\n 'focus-visible:ring-offset-2 focus-visible:shadow-none',\n ]\n );\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport {\n NB_INPUT_GROUP,\n NB_INPUT_PREFIX,\n NB_INPUT_SUFFIX,\n type NbInputGroupContext,\n} from './input-group.types';\n\n@Component({\n selector: 'nb-input-group',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes()',\n },\n providers: [{ provide: NB_INPUT_GROUP, useExisting: NbInputGroup }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbInputGroup implements NbInputGroupContext {\n private readonly prefixes = contentChildren(NB_INPUT_PREFIX);\n private readonly suffixes = contentChildren(NB_INPUT_SUFFIX);\n\n readonly hasPrefix = computed(() => this.prefixes().length > 0);\n readonly hasSuffix = computed(() => this.suffixes().length > 0);\n\n protected readonly classes = computed(() =>\n nbClass(\n '[--nb-input-group-bg:var(--nb-input-bg,var(--nb-field-bg))]',\n '[--nb-input-group-border:var(--nb-border)]',\n '[--nb-input-group-radius:var(--nb-radius)]',\n 'relative inline-flex w-full rounded-(--nb-input-group-radius) border-2 border-(--nb-input-group-border)',\n 'bg-(--nb-input-group-bg) shadow-nb focus-within:outline-none',\n 'focus-within:ring-2 focus-within:ring-offset-2 focus-within:ring-(--nb-input-group-border) focus-within:shadow-none'\n )\n );\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_INPUT_PREFIX } from './input-group.types';\n\nexport type NbInputPrefixAlign = 'center' | 'stretch';\n\n@Directive({\n selector: '[nbInputPrefix]',\n host: {\n '[class]': 'classes()',\n '[attr.data-align]': 'align()',\n },\n providers: [{ provide: NB_INPUT_PREFIX, useExisting: NbInputPrefix }],\n})\nexport class NbInputPrefix {\n readonly align = input<NbInputPrefixAlign>('center');\n\n protected readonly classes = computed(() =>\n nbClass(\n '[--nb-input-group-addon-bg:#ffd24a]',\n '[--nb-input-group-prefix-bg:var(--nb-input-group-addon-bg)]',\n 'flex w-12 shrink-0 justify-center',\n 'border-r-2 border-(--nb-input-group-border,var(--nb-border))',\n 'bg-(--nb-input-group-prefix-bg)',\n this.align() === 'stretch'\n ? 'self-stretch items-start pt-2'\n : 'items-center'\n )\n );\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_INPUT_SUFFIX } from './input-group.types';\n\nexport type NbInputSuffixAlign = 'center' | 'stretch';\n\n@Directive({\n selector: '[nbInputSuffix]',\n host: {\n '[class]': 'classes()',\n '[attr.data-align]': 'align()',\n },\n providers: [{ provide: NB_INPUT_SUFFIX, useExisting: NbInputSuffix }],\n})\nexport class NbInputSuffix {\n readonly align = input<NbInputSuffixAlign>('center');\n\n protected readonly classes = computed(() =>\n nbClass(\n '[--nb-input-group-addon-bg:#ffd24a]',\n '[--nb-input-group-suffix-bg:var(--nb-input-group-addon-bg)]',\n 'flex w-12 shrink-0 items-center justify-center',\n 'border-l-2 border-(--nb-input-group-border,var(--nb-border))',\n 'bg-(--nb-input-group-suffix-bg)',\n this.align() === 'stretch' ? 'self-stretch' : ''\n )\n );\n}\n","import { Directive, computed, inject } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_INPUT_GROUP } from '../input-group/input-group.types';\n\n@Directive({\n selector: 'select[nbSelect]',\n host: {\n '[class]': 'classes()',\n },\n})\nexport class NbNativeSelect {\n private readonly group = inject(NB_INPUT_GROUP, { optional: true });\n\n protected readonly classes = computed(() => {\n const inGroup = this.group !== null;\n\n return nbClass(\n '[--nb-select-bg:var(--nb-input-bg,var(--nb-field-bg))]',\n '[--nb-select-fg:var(--nb-foreground)]',\n '[--nb-select-border:var(--nb-border)]',\n '[--nb-select-radius:var(--nb-radius)]',\n 'flex border-2 border-(--nb-select-border)',\n 'bg-(--nb-select-bg) text-(--nb-select-fg)',\n 'font-medium',\n 'appearance-none',\n 'pr-10',\n 'has-[option:disabled:checked]:text-gray-400',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n inGroup\n ? [\n 'flex-1 min-w-0',\n 'bg-transparent',\n 'border-0',\n 'focus-visible:outline-none',\n ]\n : [\n 'rounded-(--nb-select-radius)',\n 'shadow-nb',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-select-border)',\n 'focus-visible:ring-offset-2 focus-visible:shadow-none',\n ]\n );\n });\n}\n","import { InjectionToken } from '@angular/core';\n\nimport type { NbSelectOption } from './nb-select-option';\n\nexport type NbSelectValue = string | number;\n\nexport interface NbSelectController {\n readonly disabled: () => boolean;\n readonly listboxId: string;\n\n isSelected(value: NbSelectValue | null): boolean;\n selectOption(option: NbSelectOption): void;\n focusPreviousOption(current: NbSelectOption): void;\n focusNextOption(current: NbSelectOption): void;\n closeAndFocusTrigger(): void;\n}\n\nexport const NB_SELECT = new InjectionToken<NbSelectController>('NB_SELECT');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n booleanAttribute,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_SELECT, type NbSelectValue } from './select.types';\n\nlet nextSelectOptionId = 0;\n\n@Component({\n selector: 'nb-select-option',\n template: `\n <button\n #button\n type=\"button\"\n role=\"option\"\n [id]=\"id\"\n [attr.aria-selected]=\"selected()\"\n [disabled]=\"disabled() || select.disabled()\"\n [class]=\"classes()\"\n (click)=\"select.selectOption(this)\"\n (keydown)=\"selectOptionOnKey($event)\"\n >\n <span\n class=\"min-w-0 flex flex-1 items-center gap-3 truncate text-left [&_svg]:size-6 [&_svg]:shrink-0 [&_svg]:fill-none [&_svg]:stroke-current [&_svg]:stroke-[2.3] [&_svg]:stroke-linecap-round [&_svg]:stroke-linejoin-round\"\n >\n <ng-content />\n </span>\n @if (showIndicator()) {\n <svg\n class=\"size-6 shrink-0 fill-none stroke-current stroke-[3] stroke-linecap-round stroke-linejoin-round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"m20 6-11 11-5-5\" />\n </svg>\n }\n </button>\n `,\n host: {\n class: 'block',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbSelectOption {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected readonly select = inject(NB_SELECT);\n\n readonly id = `neo-select-option-${nextSelectOptionId++}`;\n readonly value = input<NbSelectValue | null>(null);\n readonly label = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly selected = computed(() => {\n const value = this.value();\n\n return this.select.isSelected(value);\n });\n\n protected readonly showIndicator = computed(\n () => this.value() !== null && this.selected()\n );\n\n protected readonly classes = computed(() =>\n nbClass(\n 'flex h-11 w-full items-center gap-3 px-2',\n 'font-mono text-base font-bold text-(--nb-select-fg)',\n 'transition-colors duration-150',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-select-border)',\n 'disabled:pointer-events-none disabled:opacity-50',\n this.selected()\n ? 'bg-[#bdf7c8]'\n : 'bg-transparent hover:bg-[#e8d6ff] focus-visible:bg-[#e8d6ff]'\n )\n );\n\n focus(): void {\n this.element.nativeElement.querySelector('button')?.focus();\n }\n\n selectOptionOnKey(event: KeyboardEvent): void {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.select.focusPreviousOption(this);\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.select.focusNextOption(this);\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.select.closeAndFocusTrigger();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n booleanAttribute,\n computed,\n contentChildren,\n inject,\n input,\n model,\n viewChild,\n} from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport { NB_INPUT_GROUP } from '../input-group/input-group.types';\nimport { NbSelectOption } from './nb-select-option';\nimport {\n NB_SELECT,\n type NbSelectController,\n type NbSelectValue,\n} from './select.types';\n\nlet nextSelectId = 0;\n\n@Component({\n selector: 'nb-select',\n template: `\n <button\n #trigger\n type=\"button\"\n [id]=\"triggerId\"\n [class]=\"triggerClasses()\"\n [disabled]=\"disabled()\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (click)=\"toggle()\"\n (keydown)=\"openListboxOnKey($event)\"\n >\n <span [class]=\"valueClasses()\">\n {{ selectedLabel() || placeholder() }}\n </span>\n\n <svg\n class=\"size-6 shrink-0 fill-none stroke-current stroke-[3] stroke-linecap-round stroke-linejoin-round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path [attr.d]=\"open() ? 'm18 15-6-6-6 6' : 'm6 9 6 6 6-6'\" />\n </svg>\n </button>\n\n @if (open()) {\n <div\n [id]=\"listboxId\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"triggerId\"\n [class]=\"listboxClasses\"\n >\n <ng-content />\n </div>\n }\n `,\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-state]': 'open() ? \"open\" : \"closed\"',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '(document:click)': 'closeOnOutsideClick($event)',\n },\n providers: [{ provide: NB_SELECT, useExisting: NbSelect }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbSelect implements NbSelectController {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly group = inject(NB_INPUT_GROUP, { optional: true });\n\n readonly placeholder = input('Select an option');\n readonly value = model<NbSelectValue | null>(null);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaLabelledby = input<string | null>(null, {\n alias: 'aria-labelledby',\n });\n\n readonly options = contentChildren(NbSelectOption);\n private readonly trigger =\n viewChild<ElementRef<HTMLButtonElement>>('trigger');\n\n readonly open = model<boolean>(false);\n\n readonly id = nextSelectId++;\n readonly triggerId = `neo-select-trigger-${this.id}`;\n readonly listboxId = `neo-select-listbox-${this.id}`;\n\n protected readonly selectedOption = computed(() =>\n this.options().find((option) => option.value() === this.value())\n );\n\n protected readonly selectedLabel = computed(\n () => this.selectedOption()?.label() ?? ''\n );\n\n protected readonly hostClasses = computed(() => {\n const inGroup = this.group !== null;\n return nbClass(\n '[--nb-select-bg:var(--nb-input-bg,var(--nb-field-bg))]',\n '[--nb-select-fg:var(--nb-foreground)]',\n '[--nb-select-border:var(--nb-border)]',\n '[--nb-select-radius:var(--nb-radius)]',\n '[--nb-select-listbox-bg:var(--nb-select-bg)]',\n inGroup\n ? 'block w-full'\n : [\n 'relative block w-full',\n 'rounded-(--nb-select-radius) border-2 border-(--nb-select-border)',\n 'bg-(--nb-select-bg) shadow-nb',\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-(--nb-select-border)',\n 'focus-within:ring-offset-2 focus-within:shadow-none',\n 'data-[disabled]:border-gray-400 data-[disabled]:shadow-[5px_5px_0_0_#a3a3a3]',\n ]\n );\n });\n\n protected readonly triggerClasses = computed(() => {\n const inGroup = this.group !== null;\n return nbClass(\n 'flex h-14 w-full items-center gap-4 font-mono text-base font-bold',\n 'text-(--nb-select-fg) transition-all duration-150',\n 'disabled:cursor-not-allowed disabled:text-gray-400',\n inGroup\n ? ['flex-1 min-w-0 bg-transparent px-3 focus-visible:outline-none']\n : ['flex-1 min-w-0 bg-transparent px-5 focus-visible:outline-none']\n );\n });\n\n protected readonly valueClasses = computed(() =>\n nbClass(\n 'min-w-0 flex-1 truncate text-left',\n this.selectedLabel() ? 'text-(--nb-select-fg)' : 'text-gray-400'\n )\n );\n\n protected readonly listboxClasses = nbClass(\n 'absolute z-50 top-[calc(100%+8px)]',\n 'left-[-6px] w-[calc(100%+12px)] mt-0.5',\n 'rounded-b-(--nb-select-radius) border-2 border-(--nb-select-border) bg-(--nb-select-listbox-bg)',\n 'shadow-nb'\n );\n\n isSelected(value: NbSelectValue | null): boolean {\n return this.value() === value;\n }\n\n selectOption(option: NbSelectOption): void {\n if (this.disabled() || option.disabled()) {\n return;\n }\n\n this.value.set(option.value());\n this.closeAndFocusTrigger();\n }\n\n toggle(): void {\n if (!this.disabled()) {\n this.open.update((open) => !open);\n }\n }\n\n openAndFocusOption(): void {\n if (this.disabled()) {\n return;\n }\n\n this.open.set(true);\n queueMicrotask(() => {\n (this.selectedOption() ?? this.firstEnabledOption())?.focus();\n });\n }\n\n closeAndFocusTrigger(): void {\n this.open.set(false);\n queueMicrotask(() => this.trigger()?.nativeElement.focus());\n }\n\n focusPreviousOption(current: NbSelectOption): void {\n this.focusRelativeOption(current, -1);\n }\n\n focusNextOption(current: NbSelectOption): void {\n this.focusRelativeOption(current, 1);\n }\n\n openListboxOnKey(event: KeyboardEvent): void {\n if (\n event.key === 'ArrowDown' ||\n event.key === 'Enter' ||\n event.key === ' '\n ) {\n event.preventDefault();\n this.openAndFocusOption();\n }\n }\n\n closeOnOutsideClick(event: MouseEvent): void {\n if (!this.element.nativeElement.contains(event.target as Node)) {\n this.open.set(false);\n }\n }\n\n private firstEnabledOption(): NbSelectOption | undefined {\n return this.options().find((option) => !option.disabled());\n }\n\n private focusRelativeOption(\n current: NbSelectOption,\n direction: 1 | -1\n ): void {\n const options = this.options().filter((option) => !option.disabled());\n const currentIndex = options.indexOf(current);\n const nextIndex =\n (currentIndex + direction + options.length) % options.length;\n\n options[nextIndex]?.focus();\n }\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\nimport type { NbBadgeVariant } from './badge.types';\n\n@Directive({\n selector: 'span[nbBadge]',\n host: {\n '[class]': 'classes()',\n '[attr.data-variant]': 'variant()',\n },\n})\nexport class NbBadge {\n readonly variant = input<NbBadgeVariant>('default');\n\n protected readonly classes = computed(() =>\n nbClass(\n 'inline-flex items-center rounded-(--nb-badge-radius) border-2 border-(--nb-badge-border)',\n 'bg-(--nb-badge-bg) text-(--nb-badge-fg)',\n '[--nb-badge-bg:#fff]',\n '[--nb-badge-fg:var(--nb-foreground)]',\n '[--nb-badge-border:var(--nb-border)]',\n '[--nb-badge-radius:9999px]',\n '[--nb-badge-shadow:2px_2px_0_var(--nb-shadow)]',\n 'px-2.5 py-0.5 text-xs font-bold',\n 'shadow-[var(--nb-badge-shadow)]',\n this.variantClass()\n )\n );\n\n private variantClass(): string {\n const map: Record<NbBadgeVariant, string> = {\n default: '',\n secondary:\n '[--nb-badge-bg:var(--nb-accent)] [--nb-badge-fg:var(--nb-accent-foreground)]',\n success:\n '[--nb-badge-bg:var(--nb-success)] [--nb-badge-fg:var(--nb-success-foreground)]',\n warning:\n '[--nb-badge-bg:var(--nb-warning)] [--nb-badge-fg:var(--nb-warning-foreground)]',\n danger:\n '[--nb-badge-bg:var(--nb-danger)] [--nb-badge-fg:var(--nb-danger-foreground)]',\n };\n\n return map[this.variant()];\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\n@Component({\n selector: 'nb-avatar',\n template: `\n @if (src()) {\n <img [src]=\"src()\" [alt]=\"alt()\" class=\"h-full w-full object-cover\" />\n } @else {\n <ng-content />\n }\n `,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"avatar\"',\n '[attr.role]': '\"img\"',\n '[attr.aria-label]': 'alt()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbAvatar {\n readonly src = input<string | undefined>(undefined);\n readonly alt = input<string>('');\n\n protected readonly classes = nbClass(\n '[--nb-avatar-bg:var(--nb-secondary-background)]',\n '[--nb-avatar-fg:var(--nb-foreground)]',\n '[--nb-avatar-border:var(--nb-border)]',\n '[--nb-avatar-radius:9999px]',\n '[--nb-avatar-shadow:2px_2px_0_0_var(--nb-shadow)]',\n 'relative inline-flex h-10 w-10 shrink-0 overflow-hidden',\n 'rounded-(--nb-avatar-radius) border-2 border-(--nb-avatar-border)',\n 'bg-(--nb-avatar-bg) text-(--nb-avatar-fg)',\n 'shadow-[var(--nb-avatar-shadow)]',\n 'font-bold text-sm items-center justify-center'\n );\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface NbDialogController {\n open(): void;\n close(): void;\n}\n\nexport const NB_DIALOG = new InjectionToken<NbDialogController>('NB_DIALOG');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n PLATFORM_ID,\n inject,\n viewChild,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport { nbClass } from '../core/class';\nimport { NB_DIALOG, type NbDialogController } from './dialog.types';\n\n@Component({\n selector: 'nb-dialog',\n template: `\n <dialog\n #dialogEl\n data-nb-dialog\n [class]=\"classes\"\n (click)=\"dismissOnBackdrop($event)\"\n >\n <ng-content />\n </dialog>\n `,\n host: { '[attr.data-slot]': '\"dialog\"' },\n providers: [{ provide: NB_DIALOG, useExisting: NbDialog }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbDialog implements NbDialogController {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly dialogEl =\n viewChild.required<ElementRef<HTMLDialogElement>>('dialogEl');\n\n protected readonly classes = nbClass(\n '[--nb-dialog-bg:#fff]',\n '[--nb-dialog-fg:var(--nb-foreground)]',\n '[--nb-dialog-border:var(--nb-border)]',\n '[--nb-dialog-radius:0.5rem]',\n '[--nb-dialog-shadow:8px_8px_0_0_var(--nb-shadow)]',\n 'w-[calc(100vw-2rem)] max-w-2xl rounded-(--nb-dialog-radius)',\n 'border-2 border-(--nb-dialog-border)',\n 'bg-(--nb-dialog-bg) text-(--nb-dialog-fg)',\n 'shadow-[var(--nb-dialog-shadow)]',\n 'm-auto p-0 max-h-[90vh] overflow-x-hidden',\n 'open:flex open:flex-col'\n );\n\n open(): void {\n if (this.isBrowser) {\n this.dialogEl().nativeElement.showModal();\n }\n }\n\n close(): void {\n if (this.isBrowser) {\n this.dialogEl().nativeElement.close();\n }\n }\n\n protected dismissOnBackdrop(event: MouseEvent): void {\n if (event.target === this.dialogEl().nativeElement) {\n this.close();\n }\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[nbDialogTitle]',\n host: {\n '[attr.data-slot]': '\"dialog-title\"',\n },\n})\nexport class NbDialogTitle {}\n","import { Directive } from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\n@Directive({\n selector: '[nbDialogDescription]',\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"dialog-description\"',\n },\n})\nexport class NbDialogDescription {\n protected readonly classes = nbClass(\n '[--nb-dialog-description-fg:#4b5563]',\n 'text-(--nb-dialog-description-fg)'\n );\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\n@Component({\n selector: 'nb-dialog-content',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"dialog-content\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbDialogContent {\n protected readonly classes = nbClass(\n '[--nb-dialog-content-bg:transparent]',\n 'bg-(--nb-dialog-content-bg)'\n );\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { nbClass } from '../core/class';\n\n@Component({\n selector: 'nb-dialog-actions',\n template: `<ng-content />`,\n host: {\n '[class]': 'classes',\n '[attr.data-slot]': '\"dialog-actions\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbDialogActions {\n protected readonly classes = nbClass(\n '[--nb-dialog-actions-bg:transparent]',\n 'bg-(--nb-dialog-actions-bg)'\n );\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { NB_DIALOG } from './dialog.types';\n\n@Directive({\n selector: '[nbDialogClose]',\n host: { '(click)': 'controller.close()' },\n})\nexport class NbDialogClose {\n protected readonly controller = inject(NB_DIALOG);\n}\n","// Foundation\nexport { nbClass } from './lib/core/class';\nexport { provideNgBrutalism } from './lib/core/provide';\nexport type { NbConfig } from './lib/core/provide';\nexport { NB_THEME_CONFIG } from './lib/tokens/theme.tokens';\nexport type { NbThemeConfig } from './lib/tokens/theme.tokens';\n\n// Components\nexport { NbCheckbox } from './lib/checkbox';\nexport type { NbCheckboxSize } from './lib/checkbox';\nexport {\n NbAccordion,\n NbAccordionContent,\n NbAccordionItem,\n NbAccordionTrigger,\n} from './lib/accordion';\nexport type { NbAccordionType, NbAccordionValue } from './lib/accordion';\nexport { NbButton } from './lib/button';\nexport type {\n NbButtonShadow,\n NbButtonSize,\n NbButtonVariant,\n} from './lib/button';\nexport {\n NbCard,\n NbCardHeader,\n NbCardTitle,\n NbCardDescription,\n NbCardActions,\n NbCardContent,\n NbCardFooter,\n} from './lib/card';\nexport type { NbCardActionsAlign } from './lib/card';\nexport { NbImageCard, NbImageCardCaption } from './lib/image-card';\nexport { NbMarquee, NbMarqueeItem } from './lib/marquee';\nexport { NbInput } from './lib/input';\nexport { NbLabel } from './lib/label';\nexport { NbTitle } from './lib/title';\nexport type { NbInputSize } from './lib/input';\nexport { NbTextarea } from './lib/textarea';\nexport type { NbTextareaSize } from './lib/textarea';\nexport { NbInputGroup, NbInputPrefix, NbInputSuffix } from './lib/input-group';\nexport type { NbInputPrefixAlign, NbInputSuffixAlign } from './lib/input-group';\nexport {\n NbNativeSelect,\n NbSelect,\n NbSelectOption,\n} from './lib/select';\nexport type { NbSelectValue } from './lib/select';\nexport { NbBadge } from './lib/badge';\nexport type { NbBadgeVariant } from './lib/badge';\nexport { NbAvatar } from './lib/avatar';\nexport {\n NbDialog,\n NbDialogTitle,\n NbDialogDescription,\n NbDialogContent,\n NbDialogActions,\n NbDialogClose,\n} from './lib/dialog';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ng-brutalism/ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A neo-brutalist Angular component library — Signals • Zoneless • Token-based • Tailwind v4.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Khang Tran <khangtrann8198@gmail.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/khangtrannn/ng-brutalism.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://ngbrutalism.khangtran.dev",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/khangtrannn/ng-brutalism/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"neo-brutalism",
|
|
17
|
+
"neo-brutalism-ui",
|
|
18
|
+
"neo brutalism",
|
|
19
|
+
"brutalism",
|
|
20
|
+
"brutalist-design",
|
|
21
|
+
"angular",
|
|
22
|
+
"angular-ui",
|
|
23
|
+
"angular-components",
|
|
24
|
+
"ui",
|
|
25
|
+
"ui-library",
|
|
26
|
+
"component-library",
|
|
27
|
+
"design-system",
|
|
28
|
+
"tailwind",
|
|
29
|
+
"tailwindcss",
|
|
30
|
+
"signals",
|
|
31
|
+
"zoneless"
|
|
32
|
+
],
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"@angular/common": "^21.0.0",
|
|
35
|
+
"@angular/core": "^21.0.0",
|
|
36
|
+
"tailwindcss": "^4.0.0"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@angular-devkit/schematics": "^21.0.0",
|
|
40
|
+
"clsx": "^2.1.1",
|
|
41
|
+
"tailwind-merge": "^3.5.0",
|
|
42
|
+
"tslib": "^2.3.0"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": "^20.19.0 || ^22.12.0"
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"fesm2022/",
|
|
49
|
+
"types/",
|
|
50
|
+
"schematics/",
|
|
51
|
+
"*.css",
|
|
52
|
+
"README.md",
|
|
53
|
+
"CHANGELOG.md",
|
|
54
|
+
"LICENSE",
|
|
55
|
+
"package.json"
|
|
56
|
+
],
|
|
57
|
+
"schematics": "./schematics/collection.json",
|
|
58
|
+
"exports": {
|
|
59
|
+
".": {
|
|
60
|
+
"types": "./types/ng-brutalism-ui.d.ts",
|
|
61
|
+
"default": "./fesm2022/ng-brutalism-ui.mjs"
|
|
62
|
+
},
|
|
63
|
+
"./styles.css": {
|
|
64
|
+
"style": "./styles.css",
|
|
65
|
+
"default": "./styles.css"
|
|
66
|
+
},
|
|
67
|
+
"./theme.css": {
|
|
68
|
+
"style": "./theme.css",
|
|
69
|
+
"default": "./theme.css"
|
|
70
|
+
},
|
|
71
|
+
"./package.json": {
|
|
72
|
+
"default": "./package.json"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"sideEffects": [
|
|
76
|
+
"**/*.css"
|
|
77
|
+
],
|
|
78
|
+
"module": "fesm2022/ng-brutalism-ui.mjs",
|
|
79
|
+
"typings": "types/ng-brutalism-ui.d.ts",
|
|
80
|
+
"type": "module"
|
|
81
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/angular-schematics-collection",
|
|
3
|
+
"schematics": {
|
|
4
|
+
"ng-add": {
|
|
5
|
+
"description": "Install @ng-brutalism/ui in an Angular CLI application.",
|
|
6
|
+
"factory": "./ng-add/index",
|
|
7
|
+
"schema": "./ng-add/schema.json"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './ng-add';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
var ng_add_1 = require("./ng-add");
|
|
6
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(ng_add_1).default; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/schematics/src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAAmC;AAA1B,0HAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = ngAdd;
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
6
|
+
const posix_1 = require("node:path/posix");
|
|
7
|
+
const ANGULAR_JSON_PATH = '/angular.json';
|
|
8
|
+
const PACKAGE_JSON_PATH = '/package.json';
|
|
9
|
+
const NG_BRUTALISM_IMPORT = "@import '@ng-brutalism/ui/styles.css';";
|
|
10
|
+
const TAILWIND_IMPORT = '@import "tailwindcss";';
|
|
11
|
+
const TAILWIND_IMPORT_PATTERN = /@import\s+["']tailwindcss["'];?/;
|
|
12
|
+
const NG_BRUTALISM_IMPORT_PATTERN = /@import\s+["']@ng-brutalism\/ui\/styles\.css["'];?/;
|
|
13
|
+
const STYLESHEET_EXTENSIONS = ['.css', '.scss', '.sass', '.less'];
|
|
14
|
+
function ngAdd(options) {
|
|
15
|
+
return (tree, context) => {
|
|
16
|
+
const workspace = readWorkspace(tree);
|
|
17
|
+
const target = resolveTargetProject(workspace, options.project);
|
|
18
|
+
const stylePath = ensureGlobalStylesheet(tree, workspace, target);
|
|
19
|
+
const shouldSetupTailwind = !hasTailwindSetup(tree);
|
|
20
|
+
const rules = [];
|
|
21
|
+
rules.push((innerTree) => {
|
|
22
|
+
if (shouldSetupTailwind) {
|
|
23
|
+
ensureTailwindFallback(innerTree, context, target.project);
|
|
24
|
+
}
|
|
25
|
+
ensureStylesheetImports(innerTree, stylePath, true);
|
|
26
|
+
context.logger.info(`Configured @ng-brutalism/ui styles for project "${target.name}".`);
|
|
27
|
+
return innerTree;
|
|
28
|
+
});
|
|
29
|
+
return (0, schematics_1.chain)(rules)(tree, context);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function readWorkspace(tree) {
|
|
33
|
+
if (!tree.exists(ANGULAR_JSON_PATH)) {
|
|
34
|
+
throw new schematics_1.SchematicsException('Could not find angular.json. @ng-brutalism/ui ng-add currently supports Angular CLI workspaces only.');
|
|
35
|
+
}
|
|
36
|
+
return readJson(tree, ANGULAR_JSON_PATH);
|
|
37
|
+
}
|
|
38
|
+
function resolveTargetProject(workspace, requestedProject) {
|
|
39
|
+
const projects = workspace.projects ?? {};
|
|
40
|
+
if (requestedProject) {
|
|
41
|
+
const project = projects[requestedProject];
|
|
42
|
+
if (!project) {
|
|
43
|
+
throw new schematics_1.SchematicsException(`Project "${requestedProject}" was not found in angular.json.`);
|
|
44
|
+
}
|
|
45
|
+
assertApplicationProject(requestedProject, project);
|
|
46
|
+
return { name: requestedProject, project };
|
|
47
|
+
}
|
|
48
|
+
if (workspace.defaultProject) {
|
|
49
|
+
const defaultProject = projects[workspace.defaultProject];
|
|
50
|
+
if (defaultProject && isApplicationProject(defaultProject)) {
|
|
51
|
+
return { name: workspace.defaultProject, project: defaultProject };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const applications = Object.entries(projects).filter(([, project]) => isApplicationProject(project));
|
|
55
|
+
if (applications.length === 1) {
|
|
56
|
+
const [name, project] = applications[0];
|
|
57
|
+
return { name, project };
|
|
58
|
+
}
|
|
59
|
+
if (applications.length === 0) {
|
|
60
|
+
throw new schematics_1.SchematicsException('No Angular CLI application project was found in angular.json.');
|
|
61
|
+
}
|
|
62
|
+
throw new schematics_1.SchematicsException('Multiple Angular application projects were found. Run ng add @ng-brutalism/ui --project <project-name>.');
|
|
63
|
+
}
|
|
64
|
+
function assertApplicationProject(name, project) {
|
|
65
|
+
if (!isApplicationProject(project)) {
|
|
66
|
+
throw new schematics_1.SchematicsException(`Project "${name}" is not an Angular application.`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function isApplicationProject(project) {
|
|
70
|
+
if (project.projectType === 'application') {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
const buildTarget = getBuildTarget(project);
|
|
74
|
+
const builder = buildTarget?.builder ?? buildTarget?.executor ?? '';
|
|
75
|
+
return (builder === '@angular/build:application' ||
|
|
76
|
+
builder === '@angular-devkit/build-angular:application' ||
|
|
77
|
+
builder === '@angular-devkit/build-angular:browser');
|
|
78
|
+
}
|
|
79
|
+
function ensureGlobalStylesheet(tree, workspace, target) {
|
|
80
|
+
const buildTarget = getBuildTarget(target.project);
|
|
81
|
+
if (!buildTarget) {
|
|
82
|
+
throw new schematics_1.SchematicsException(`Project "${target.name}" does not have a build target.`);
|
|
83
|
+
}
|
|
84
|
+
const styles = getStyleEntries(buildTarget.options);
|
|
85
|
+
const existingStylesheet = styles
|
|
86
|
+
.map(getStylePath)
|
|
87
|
+
.find((path) => typeof path === 'string' && isStylesheetPath(path));
|
|
88
|
+
if (existingStylesheet) {
|
|
89
|
+
return normalizePath(existingStylesheet);
|
|
90
|
+
}
|
|
91
|
+
const stylesheetPath = (0, posix_1.join)(target.project.sourceRoot ?? 'src', 'styles.css');
|
|
92
|
+
if (!tree.exists(stylesheetPath)) {
|
|
93
|
+
tree.create(stylesheetPath, '');
|
|
94
|
+
}
|
|
95
|
+
addStyleToTarget(buildTarget, stylesheetPath);
|
|
96
|
+
overwriteJson(tree, ANGULAR_JSON_PATH, workspace);
|
|
97
|
+
return stylesheetPath;
|
|
98
|
+
}
|
|
99
|
+
function getBuildTarget(project) {
|
|
100
|
+
return project.architect?.['build'] ?? project.targets?.['build'];
|
|
101
|
+
}
|
|
102
|
+
function getStyleEntries(options = {}) {
|
|
103
|
+
const styles = options['styles'];
|
|
104
|
+
return Array.isArray(styles) ? styles : [];
|
|
105
|
+
}
|
|
106
|
+
function getStylePath(style) {
|
|
107
|
+
return typeof style === 'string' ? style : style.input;
|
|
108
|
+
}
|
|
109
|
+
function isStylesheetPath(path) {
|
|
110
|
+
return STYLESHEET_EXTENSIONS.some((extension) => path.endsWith(extension));
|
|
111
|
+
}
|
|
112
|
+
function addStyleToTarget(target, stylesheetPath) {
|
|
113
|
+
target.options ??= {};
|
|
114
|
+
const existingStyles = getStyleEntries(target.options);
|
|
115
|
+
target.options['styles'] = [stylesheetPath, ...existingStyles];
|
|
116
|
+
for (const configuration of Object.values(target.configurations ?? {})) {
|
|
117
|
+
if ('styles' in configuration) {
|
|
118
|
+
const styles = getStyleEntries(configuration);
|
|
119
|
+
configuration['styles'] = [stylesheetPath, ...styles];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function hasTailwindSetup(tree) {
|
|
124
|
+
if (hasPackageDependency(tree, 'tailwindcss')) {
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
for (const path of ['/.postcssrc.json', '/postcss.config.json']) {
|
|
128
|
+
if (tree.exists(path)) {
|
|
129
|
+
const config = readJson(tree, path);
|
|
130
|
+
const plugins = config['plugins'];
|
|
131
|
+
if (plugins &&
|
|
132
|
+
typeof plugins === 'object' &&
|
|
133
|
+
'@tailwindcss/postcss' in plugins) {
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
let hasTailwindImport = false;
|
|
139
|
+
tree.visit((path) => {
|
|
140
|
+
if (isStylesheetPath(path) &&
|
|
141
|
+
TAILWIND_IMPORT_PATTERN.test(tree.readText(path))) {
|
|
142
|
+
hasTailwindImport = true;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
return hasTailwindImport;
|
|
146
|
+
}
|
|
147
|
+
function ensureTailwindFallback(tree, context, project) {
|
|
148
|
+
addDevDependency(tree, 'tailwindcss', '^4.1.12');
|
|
149
|
+
addDevDependency(tree, '@tailwindcss/postcss', '^4.1.12');
|
|
150
|
+
addDevDependency(tree, 'postcss', '^8.5.3');
|
|
151
|
+
ensurePostcssConfig(tree, project);
|
|
152
|
+
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
153
|
+
}
|
|
154
|
+
function ensurePostcssConfig(tree, project) {
|
|
155
|
+
const configPaths = [
|
|
156
|
+
'/.postcssrc.json',
|
|
157
|
+
'/postcss.config.json',
|
|
158
|
+
(0, posix_1.join)('/', project.root ?? '', '.postcssrc.json'),
|
|
159
|
+
(0, posix_1.join)('/', project.root ?? '', 'postcss.config.json'),
|
|
160
|
+
];
|
|
161
|
+
for (const path of configPaths) {
|
|
162
|
+
if (tree.exists(path)) {
|
|
163
|
+
const config = readJson(tree, path);
|
|
164
|
+
const plugins = config['plugins'] && typeof config['plugins'] === 'object'
|
|
165
|
+
? config['plugins']
|
|
166
|
+
: {};
|
|
167
|
+
plugins['@tailwindcss/postcss'] ??= {};
|
|
168
|
+
config['plugins'] = plugins;
|
|
169
|
+
overwriteJson(tree, path, config);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
tree.create('/.postcssrc.json', `${JSON.stringify({ plugins: { '@tailwindcss/postcss': {} } }, null, 2)}\n`);
|
|
174
|
+
}
|
|
175
|
+
function ensureStylesheetImports(tree, stylesheetPath, includeTailwind) {
|
|
176
|
+
const content = tree.exists(stylesheetPath)
|
|
177
|
+
? tree.readText(stylesheetPath)
|
|
178
|
+
: '';
|
|
179
|
+
const body = content
|
|
180
|
+
.replace(TAILWIND_IMPORT_PATTERN, '')
|
|
181
|
+
.replace(NG_BRUTALISM_IMPORT_PATTERN, '')
|
|
182
|
+
.trimStart();
|
|
183
|
+
const imports = [
|
|
184
|
+
includeTailwind ? TAILWIND_IMPORT : undefined,
|
|
185
|
+
NG_BRUTALISM_IMPORT,
|
|
186
|
+
].filter(Boolean);
|
|
187
|
+
const nextContent = `${imports.join('\n')}${body ? `\n\n${body}` : '\n'}`;
|
|
188
|
+
if (content !== nextContent) {
|
|
189
|
+
if (tree.exists(stylesheetPath)) {
|
|
190
|
+
tree.overwrite(stylesheetPath, nextContent);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
tree.create(stylesheetPath, nextContent);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
function hasPackageDependency(tree, name) {
|
|
198
|
+
if (!tree.exists(PACKAGE_JSON_PATH)) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
const packageJson = readJson(tree, PACKAGE_JSON_PATH);
|
|
202
|
+
return [
|
|
203
|
+
packageJson['dependencies'],
|
|
204
|
+
packageJson['devDependencies'],
|
|
205
|
+
packageJson['peerDependencies'],
|
|
206
|
+
].some((dependencies) => Boolean(dependencies?.[name]));
|
|
207
|
+
}
|
|
208
|
+
function addDevDependency(tree, name, version) {
|
|
209
|
+
const packageJson = tree.exists(PACKAGE_JSON_PATH)
|
|
210
|
+
? readJson(tree, PACKAGE_JSON_PATH)
|
|
211
|
+
: {};
|
|
212
|
+
const devDependencies = packageJson['devDependencies'] &&
|
|
213
|
+
typeof packageJson['devDependencies'] === 'object'
|
|
214
|
+
? packageJson['devDependencies']
|
|
215
|
+
: {};
|
|
216
|
+
devDependencies[name] ??= version;
|
|
217
|
+
packageJson['devDependencies'] = sortObject(devDependencies);
|
|
218
|
+
overwriteJson(tree, PACKAGE_JSON_PATH, packageJson);
|
|
219
|
+
}
|
|
220
|
+
function readJson(tree, path) {
|
|
221
|
+
const content = tree.readText(path);
|
|
222
|
+
return JSON.parse(content);
|
|
223
|
+
}
|
|
224
|
+
function overwriteJson(tree, path, value) {
|
|
225
|
+
tree.overwrite(path, `${JSON.stringify(value, null, 2)}\n`);
|
|
226
|
+
}
|
|
227
|
+
function sortObject(value) {
|
|
228
|
+
return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right)));
|
|
229
|
+
}
|
|
230
|
+
function normalizePath(path) {
|
|
231
|
+
return path.startsWith('/') ? path.slice(1) : path;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/schematics/src/ng-add/index.ts"],"names":[],"mappings":"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"}
|