@atomng/ui 1.0.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/README.md +401 -0
- package/atomng-ui.d.ts.map +1 -0
- package/atoms/atomng-ui-atoms.d.ts.map +1 -0
- package/atoms/avatar/avatar.component.d.ts +24 -0
- package/atoms/avatar/avatar.component.d.ts.map +1 -0
- package/atoms/avatar/index.d.ts +3 -0
- package/atoms/avatar/index.d.ts.map +1 -0
- package/atoms/badge/badge.component.d.ts +23 -0
- package/atoms/badge/badge.component.d.ts.map +1 -0
- package/atoms/badge/index.d.ts +3 -0
- package/atoms/badge/index.d.ts.map +1 -0
- package/atoms/button/button.component.d.ts +47 -0
- package/atoms/button/button.component.d.ts.map +1 -0
- package/atoms/button/index.d.ts +3 -0
- package/atoms/button/index.d.ts.map +1 -0
- package/atoms/checkbox/checkbox.component.d.ts +28 -0
- package/atoms/checkbox/checkbox.component.d.ts.map +1 -0
- package/atoms/checkbox/index.d.ts +2 -0
- package/atoms/checkbox/index.d.ts.map +1 -0
- package/atoms/chip/chip.component.d.ts +17 -0
- package/atoms/chip/chip.component.d.ts.map +1 -0
- package/atoms/chip/index.d.ts +2 -0
- package/atoms/chip/index.d.ts.map +1 -0
- package/atoms/index.d.ts +14 -0
- package/atoms/index.d.ts.map +1 -0
- package/atoms/kbd/index.d.ts +2 -0
- package/atoms/kbd/index.d.ts.map +1 -0
- package/atoms/kbd/kbd.component.d.ts +14 -0
- package/atoms/kbd/kbd.component.d.ts.map +1 -0
- package/atoms/link/index.d.ts +2 -0
- package/atoms/link/index.d.ts.map +1 -0
- package/atoms/link/link.component.d.ts +15 -0
- package/atoms/link/link.component.d.ts.map +1 -0
- package/atoms/progress/index.d.ts +3 -0
- package/atoms/progress/index.d.ts.map +1 -0
- package/atoms/progress/progress.component.d.ts +20 -0
- package/atoms/progress/progress.component.d.ts.map +1 -0
- package/atoms/separator/index.d.ts +2 -0
- package/atoms/separator/index.d.ts.map +1 -0
- package/atoms/separator/separator.component.d.ts +13 -0
- package/atoms/separator/separator.component.d.ts.map +1 -0
- package/atoms/skeleton/index.d.ts +2 -0
- package/atoms/skeleton/index.d.ts.map +1 -0
- package/atoms/skeleton/skeleton.component.d.ts +13 -0
- package/atoms/skeleton/skeleton.component.d.ts.map +1 -0
- package/atoms/slider/index.d.ts +2 -0
- package/atoms/slider/index.d.ts.map +1 -0
- package/atoms/slider/slider.component.d.ts +27 -0
- package/atoms/slider/slider.component.d.ts.map +1 -0
- package/atoms/switch/index.d.ts +2 -0
- package/atoms/switch/index.d.ts.map +1 -0
- package/atoms/switch/switch.component.d.ts +25 -0
- package/atoms/switch/switch.component.d.ts.map +1 -0
- package/atoms/tooltip/index.d.ts +2 -0
- package/atoms/tooltip/index.d.ts.map +1 -0
- package/atoms/tooltip/tooltip.component.d.ts +15 -0
- package/atoms/tooltip/tooltip.component.d.ts.map +1 -0
- package/fesm2022/atomng-ui-atoms.mjs +778 -0
- package/fesm2022/atomng-ui-atoms.mjs.map +1 -0
- package/fesm2022/atomng-ui-molecules.mjs +1590 -0
- package/fesm2022/atomng-ui-molecules.mjs.map +1 -0
- package/fesm2022/atomng-ui-organisms.mjs +1346 -0
- package/fesm2022/atomng-ui-organisms.mjs.map +1 -0
- package/fesm2022/atomng-ui-tokens.mjs +499 -0
- package/fesm2022/atomng-ui-tokens.mjs.map +1 -0
- package/fesm2022/atomng-ui.mjs +4184 -0
- package/fesm2022/atomng-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/index.d.ts.map +1 -0
- package/lib/atoms/avatar/avatar.component.d.ts +24 -0
- package/lib/atoms/avatar/avatar.component.d.ts.map +1 -0
- package/lib/atoms/avatar/index.d.ts +3 -0
- package/lib/atoms/avatar/index.d.ts.map +1 -0
- package/lib/atoms/badge/badge.component.d.ts +23 -0
- package/lib/atoms/badge/badge.component.d.ts.map +1 -0
- package/lib/atoms/badge/index.d.ts +3 -0
- package/lib/atoms/badge/index.d.ts.map +1 -0
- package/lib/atoms/button/button.component.d.ts +47 -0
- package/lib/atoms/button/button.component.d.ts.map +1 -0
- package/lib/atoms/button/index.d.ts +3 -0
- package/lib/atoms/button/index.d.ts.map +1 -0
- package/lib/atoms/checkbox/checkbox.component.d.ts +28 -0
- package/lib/atoms/checkbox/checkbox.component.d.ts.map +1 -0
- package/lib/atoms/checkbox/index.d.ts +2 -0
- package/lib/atoms/checkbox/index.d.ts.map +1 -0
- package/lib/atoms/chip/chip.component.d.ts +17 -0
- package/lib/atoms/chip/chip.component.d.ts.map +1 -0
- package/lib/atoms/chip/index.d.ts +2 -0
- package/lib/atoms/chip/index.d.ts.map +1 -0
- package/lib/atoms/index.d.ts +14 -0
- package/lib/atoms/index.d.ts.map +1 -0
- package/lib/atoms/kbd/index.d.ts +2 -0
- package/lib/atoms/kbd/index.d.ts.map +1 -0
- package/lib/atoms/kbd/kbd.component.d.ts +14 -0
- package/lib/atoms/kbd/kbd.component.d.ts.map +1 -0
- package/lib/atoms/link/index.d.ts +2 -0
- package/lib/atoms/link/index.d.ts.map +1 -0
- package/lib/atoms/link/link.component.d.ts +15 -0
- package/lib/atoms/link/link.component.d.ts.map +1 -0
- package/lib/atoms/progress/index.d.ts +3 -0
- package/lib/atoms/progress/index.d.ts.map +1 -0
- package/lib/atoms/progress/progress.component.d.ts +20 -0
- package/lib/atoms/progress/progress.component.d.ts.map +1 -0
- package/lib/atoms/separator/index.d.ts +2 -0
- package/lib/atoms/separator/index.d.ts.map +1 -0
- package/lib/atoms/separator/separator.component.d.ts +13 -0
- package/lib/atoms/separator/separator.component.d.ts.map +1 -0
- package/lib/atoms/skeleton/index.d.ts +2 -0
- package/lib/atoms/skeleton/index.d.ts.map +1 -0
- package/lib/atoms/skeleton/skeleton.component.d.ts +13 -0
- package/lib/atoms/skeleton/skeleton.component.d.ts.map +1 -0
- package/lib/atoms/slider/index.d.ts +2 -0
- package/lib/atoms/slider/index.d.ts.map +1 -0
- package/lib/atoms/slider/slider.component.d.ts +27 -0
- package/lib/atoms/slider/slider.component.d.ts.map +1 -0
- package/lib/atoms/switch/index.d.ts +2 -0
- package/lib/atoms/switch/index.d.ts.map +1 -0
- package/lib/atoms/switch/switch.component.d.ts +25 -0
- package/lib/atoms/switch/switch.component.d.ts.map +1 -0
- package/lib/atoms/tooltip/index.d.ts +2 -0
- package/lib/atoms/tooltip/index.d.ts.map +1 -0
- package/lib/atoms/tooltip/tooltip.component.d.ts +15 -0
- package/lib/atoms/tooltip/tooltip.component.d.ts.map +1 -0
- package/lib/molecules/alert/alert.component.d.ts +22 -0
- package/lib/molecules/alert/alert.component.d.ts.map +1 -0
- package/lib/molecules/alert/index.d.ts +2 -0
- package/lib/molecules/alert/index.d.ts.map +1 -0
- package/lib/molecules/avatar-group/avatar-group.component.d.ts +22 -0
- package/lib/molecules/avatar-group/avatar-group.component.d.ts.map +1 -0
- package/lib/molecules/avatar-group/index.d.ts +2 -0
- package/lib/molecules/avatar-group/index.d.ts.map +1 -0
- package/lib/molecules/breadcrumb/breadcrumb.component.d.ts +17 -0
- package/lib/molecules/breadcrumb/breadcrumb.component.d.ts.map +1 -0
- package/lib/molecules/breadcrumb/index.d.ts +2 -0
- package/lib/molecules/breadcrumb/index.d.ts.map +1 -0
- package/lib/molecules/button-group/button-group.component.d.ts +11 -0
- package/lib/molecules/button-group/button-group.component.d.ts.map +1 -0
- package/lib/molecules/button-group/index.d.ts +2 -0
- package/lib/molecules/button-group/index.d.ts.map +1 -0
- package/lib/molecules/form-field/form-field.component.d.ts +18 -0
- package/lib/molecules/form-field/form-field.component.d.ts.map +1 -0
- package/lib/molecules/form-field/index.d.ts +2 -0
- package/lib/molecules/form-field/index.d.ts.map +1 -0
- package/lib/molecules/index.d.ts +13 -0
- package/lib/molecules/index.d.ts.map +1 -0
- package/lib/molecules/input/index.d.ts +2 -0
- package/lib/molecules/input/index.d.ts.map +1 -0
- package/lib/molecules/input/input.component.d.ts +50 -0
- package/lib/molecules/input/input.component.d.ts.map +1 -0
- package/lib/molecules/pagination/index.d.ts +2 -0
- package/lib/molecules/pagination/index.d.ts.map +1 -0
- package/lib/molecules/pagination/pagination.component.d.ts +18 -0
- package/lib/molecules/pagination/pagination.component.d.ts.map +1 -0
- package/lib/molecules/select/index.d.ts +3 -0
- package/lib/molecules/select/index.d.ts.map +1 -0
- package/lib/molecules/select/select.component.d.ts +56 -0
- package/lib/molecules/select/select.component.d.ts.map +1 -0
- package/lib/molecules/select-search/index.d.ts +2 -0
- package/lib/molecules/select-search/index.d.ts.map +1 -0
- package/lib/molecules/select-search/select-search.component.d.ts +63 -0
- package/lib/molecules/select-search/select-search.component.d.ts.map +1 -0
- package/lib/molecules/tabs/index.d.ts +2 -0
- package/lib/molecules/tabs/index.d.ts.map +1 -0
- package/lib/molecules/tabs/tabs.component.d.ts +23 -0
- package/lib/molecules/tabs/tabs.component.d.ts.map +1 -0
- package/lib/molecules/textarea/index.d.ts +2 -0
- package/lib/molecules/textarea/index.d.ts.map +1 -0
- package/lib/molecules/textarea/textarea.component.d.ts +27 -0
- package/lib/molecules/textarea/textarea.component.d.ts.map +1 -0
- package/lib/molecules/toast/index.d.ts +2 -0
- package/lib/molecules/toast/index.d.ts.map +1 -0
- package/lib/molecules/toast/toast.component.d.ts +19 -0
- package/lib/molecules/toast/toast.component.d.ts.map +1 -0
- package/lib/organisms/accordion/accordion.component.d.ts +25 -0
- package/lib/organisms/accordion/accordion.component.d.ts.map +1 -0
- package/lib/organisms/card/card.component.d.ts +14 -0
- package/lib/organisms/card/card.component.d.ts.map +1 -0
- package/lib/organisms/dropdown-menu/dropdown-menu.component.d.ts +29 -0
- package/lib/organisms/dropdown-menu/dropdown-menu.component.d.ts.map +1 -0
- package/lib/organisms/index.d.ts +8 -0
- package/lib/organisms/index.d.ts.map +1 -0
- package/lib/organisms/modal/modal.component.d.ts +19 -0
- package/lib/organisms/modal/modal.component.d.ts.map +1 -0
- package/lib/organisms/navigation-menu/navigation-menu.component.d.ts +24 -0
- package/lib/organisms/navigation-menu/navigation-menu.component.d.ts.map +1 -0
- package/lib/organisms/sidebar/sidebar.component.d.ts +68 -0
- package/lib/organisms/sidebar/sidebar.component.d.ts.map +1 -0
- package/lib/organisms/table/index.d.ts +3 -0
- package/lib/organisms/table/index.d.ts.map +1 -0
- package/lib/organisms/table/table-cell.directive.d.ts +17 -0
- package/lib/organisms/table/table-cell.directive.d.ts.map +1 -0
- package/lib/organisms/table/table.component.d.ts +50 -0
- package/lib/organisms/table/table.component.d.ts.map +1 -0
- package/lib/tokens/index.d.ts +2 -0
- package/lib/tokens/index.d.ts.map +1 -0
- package/lib/tokens/theme/color-presets.d.ts +24 -0
- package/lib/tokens/theme/color-presets.d.ts.map +1 -0
- package/lib/tokens/theme/index.d.ts +6 -0
- package/lib/tokens/theme/index.d.ts.map +1 -0
- package/lib/tokens/theme/theme-picker.component.d.ts +11 -0
- package/lib/tokens/theme/theme-picker.component.d.ts.map +1 -0
- package/lib/tokens/theme/theme-toggle.component.d.ts +15 -0
- package/lib/tokens/theme/theme-toggle.component.d.ts.map +1 -0
- package/lib/tokens/theme/theme.provider.d.ts +4 -0
- package/lib/tokens/theme/theme.provider.d.ts.map +1 -0
- package/lib/tokens/theme/theme.service.d.ts +48 -0
- package/lib/tokens/theme/theme.service.d.ts.map +1 -0
- package/molecules/alert/alert.component.d.ts +22 -0
- package/molecules/alert/alert.component.d.ts.map +1 -0
- package/molecules/alert/index.d.ts +2 -0
- package/molecules/alert/index.d.ts.map +1 -0
- package/molecules/atomng-ui-molecules.d.ts.map +1 -0
- package/molecules/avatar-group/avatar-group.component.d.ts +22 -0
- package/molecules/avatar-group/avatar-group.component.d.ts.map +1 -0
- package/molecules/avatar-group/index.d.ts +2 -0
- package/molecules/avatar-group/index.d.ts.map +1 -0
- package/molecules/breadcrumb/breadcrumb.component.d.ts +17 -0
- package/molecules/breadcrumb/breadcrumb.component.d.ts.map +1 -0
- package/molecules/breadcrumb/index.d.ts +2 -0
- package/molecules/breadcrumb/index.d.ts.map +1 -0
- package/molecules/button-group/button-group.component.d.ts +11 -0
- package/molecules/button-group/button-group.component.d.ts.map +1 -0
- package/molecules/button-group/index.d.ts +2 -0
- package/molecules/button-group/index.d.ts.map +1 -0
- package/molecules/form-field/form-field.component.d.ts +18 -0
- package/molecules/form-field/form-field.component.d.ts.map +1 -0
- package/molecules/form-field/index.d.ts +2 -0
- package/molecules/form-field/index.d.ts.map +1 -0
- package/molecules/index.d.ts +13 -0
- package/molecules/index.d.ts.map +1 -0
- package/molecules/input/index.d.ts +2 -0
- package/molecules/input/index.d.ts.map +1 -0
- package/molecules/input/input.component.d.ts +50 -0
- package/molecules/input/input.component.d.ts.map +1 -0
- package/molecules/pagination/index.d.ts +2 -0
- package/molecules/pagination/index.d.ts.map +1 -0
- package/molecules/pagination/pagination.component.d.ts +18 -0
- package/molecules/pagination/pagination.component.d.ts.map +1 -0
- package/molecules/select/index.d.ts +3 -0
- package/molecules/select/index.d.ts.map +1 -0
- package/molecules/select/select.component.d.ts +56 -0
- package/molecules/select/select.component.d.ts.map +1 -0
- package/molecules/select-search/index.d.ts +2 -0
- package/molecules/select-search/index.d.ts.map +1 -0
- package/molecules/select-search/select-search.component.d.ts +63 -0
- package/molecules/select-search/select-search.component.d.ts.map +1 -0
- package/molecules/tabs/index.d.ts +2 -0
- package/molecules/tabs/index.d.ts.map +1 -0
- package/molecules/tabs/tabs.component.d.ts +23 -0
- package/molecules/tabs/tabs.component.d.ts.map +1 -0
- package/molecules/textarea/index.d.ts +2 -0
- package/molecules/textarea/index.d.ts.map +1 -0
- package/molecules/textarea/textarea.component.d.ts +27 -0
- package/molecules/textarea/textarea.component.d.ts.map +1 -0
- package/molecules/toast/index.d.ts +2 -0
- package/molecules/toast/index.d.ts.map +1 -0
- package/molecules/toast/toast.component.d.ts +19 -0
- package/molecules/toast/toast.component.d.ts.map +1 -0
- package/organisms/accordion/accordion.component.d.ts +25 -0
- package/organisms/accordion/accordion.component.d.ts.map +1 -0
- package/organisms/atomng-ui-organisms.d.ts.map +1 -0
- package/organisms/card/card.component.d.ts +14 -0
- package/organisms/card/card.component.d.ts.map +1 -0
- package/organisms/dropdown-menu/dropdown-menu.component.d.ts +29 -0
- package/organisms/dropdown-menu/dropdown-menu.component.d.ts.map +1 -0
- package/organisms/index.d.ts +8 -0
- package/organisms/index.d.ts.map +1 -0
- package/organisms/modal/modal.component.d.ts +19 -0
- package/organisms/modal/modal.component.d.ts.map +1 -0
- package/organisms/navigation-menu/navigation-menu.component.d.ts +24 -0
- package/organisms/navigation-menu/navigation-menu.component.d.ts.map +1 -0
- package/organisms/sidebar/sidebar.component.d.ts +68 -0
- package/organisms/sidebar/sidebar.component.d.ts.map +1 -0
- package/organisms/table/index.d.ts +3 -0
- package/organisms/table/index.d.ts.map +1 -0
- package/organisms/table/table-cell.directive.d.ts +17 -0
- package/organisms/table/table-cell.directive.d.ts.map +1 -0
- package/organisms/table/table.component.d.ts +50 -0
- package/organisms/table/table.component.d.ts.map +1 -0
- package/package.json +81 -0
- package/tokens/_colors.scss +150 -0
- package/tokens/_spacing.scss +98 -0
- package/tokens/_typography.scss +59 -0
- package/tokens/atomng-ui-tokens.d.ts.map +1 -0
- package/tokens/index.d.ts +2 -0
- package/tokens/index.d.ts.map +1 -0
- package/tokens/index.scss +8 -0
- package/tokens/theme/color-presets.d.ts +24 -0
- package/tokens/theme/color-presets.d.ts.map +1 -0
- package/tokens/theme/index.d.ts +6 -0
- package/tokens/theme/index.d.ts.map +1 -0
- package/tokens/theme/theme-picker.component.d.ts +11 -0
- package/tokens/theme/theme-picker.component.d.ts.map +1 -0
- package/tokens/theme/theme-toggle.component.d.ts +15 -0
- package/tokens/theme/theme-toggle.component.d.ts.map +1 -0
- package/tokens/theme/theme.provider.d.ts +4 -0
- package/tokens/theme/theme.provider.d.ts.map +1 -0
- package/tokens/theme/theme.service.d.ts +48 -0
- package/tokens/theme/theme.service.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomng-ui-molecules.mjs","sources":["../../../../libs/shared-ui/src/lib/molecules/alert/alert.component.ts","../../../../libs/shared-ui/src/lib/molecules/avatar-group/avatar-group.component.ts","../../../../libs/shared-ui/src/lib/molecules/breadcrumb/breadcrumb.component.ts","../../../../libs/shared-ui/src/lib/molecules/button-group/button-group.component.ts","../../../../libs/shared-ui/src/lib/molecules/form-field/form-field.component.ts","../../../../libs/shared-ui/src/lib/molecules/input/input.component.ts","../../../../libs/shared-ui/src/lib/molecules/pagination/pagination.component.ts","../../../../libs/shared-ui/src/lib/molecules/select/select.component.ts","../../../../libs/shared-ui/src/lib/molecules/tabs/tabs.component.ts","../../../../libs/shared-ui/src/lib/molecules/textarea/textarea.component.ts","../../../../libs/shared-ui/src/lib/molecules/toast/toast.component.ts","../../../../libs/shared-ui/src/lib/molecules/select-search/select-search.component.ts","../../../../libs/shared-ui/src/lib/molecules/index.ts","../../../../libs/shared-ui/src/lib/molecules/atomng-ui-molecules.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type AlertVariant = 'solid' | 'outline' | 'soft' | 'subtle';\nexport type AlertColor = 'primary' | 'secondary' | 'neutral' | 'success' | 'info' | 'warning' | 'error';\n\n/**\n * Alert Molecule — Source: Nuxt UI v3 ❖ Alert\n * Contextual messages with icon, title, description, actions\n * Built from: icon (atom) + content + optional close button\n */\n@Component({\n selector: 'ui-alert',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div [class]=\"'ui-alert ui-alert--' + variant() + ' ui-alert--' + color()\"\n role=\"alert\" [attr.aria-live]=\"live()\">\n @if (icon()) {\n <span class=\"ui-alert__icon\" aria-hidden=\"true\">\n <ng-content select=\"[slot=icon]\" />\n </span>\n }\n <div class=\"ui-alert__body\">\n @if (title()) {\n <p class=\"ui-alert__title\">{{ title() }}</p>\n }\n @if (description()) {\n <p class=\"ui-alert__description\">{{ description() }}</p>\n }\n <ng-content />\n @if (actions()) {\n <div class=\"ui-alert__actions\">\n <ng-content select=\"[slot=actions]\" />\n </div>\n }\n </div>\n @if (closable()) {\n <button type=\"button\" class=\"ui-alert__close\" aria-label=\"Close\" (click)=\"close.emit()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n }\n </div>\n `,\n styleUrl: './alert.component.scss',\n})\nexport class AlertComponent {\n readonly variant = input<AlertVariant>('soft');\n readonly color = input<AlertColor>('info');\n readonly title = input<string | null>(null);\n readonly description = input<string | null>(null);\n readonly icon = input<boolean>(true);\n readonly closable = input<boolean>(false);\n readonly actions = input<boolean>(false);\n readonly live = input<'polite' | 'assertive'>('polite');\n\n readonly close = output<void>();\n}","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent, AvatarSize } from \"@atomng/ui/atoms\";\n//import { AvatarComponent } from '@workspace/shared-ui/atoms';\n//import type { AvatarSize } from '@workspace/shared-ui/atoms';\n\nexport interface AvatarGroupItem {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\n/**\n * AvatarGroup Molecule — Source: Nuxt UI v3 ❖ AvatarGroup\n * Stacked avatar list with overflow count\n * Depends on: AvatarComponent (atom)\n */\n@Component({\n selector: 'ui-avatar-group',\n standalone: true,\n imports: [CommonModule, AvatarComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ui-avatar-group\" [attr.aria-label]=\"'Group of ' + items().length + ' avatars'\">\n @for (item of visibleItems(); track item.alt) {\n <ui-avatar\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [initials]=\"item.initials ?? null\"\n [size]=\"size()\"\n class=\"ui-avatar-group__item\"\n />\n }\n @if (overflow() > 0) {\n <span class=\"ui-avatar-group__overflow ui-avatar-group__overflow--{{ size() }}\"\n [attr.aria-label]=\"overflow() + ' more'\">\n +{{ overflow() }}\n </span>\n }\n </div>\n `,\n styleUrl: './avatar-group.component.scss',\n})\nexport class AvatarGroupComponent {\n readonly items = input.required<AvatarGroupItem[]>();\n readonly max = input<number>(5);\n readonly size = input<AvatarSize>('md');\n\n get visibleItems() { return () => this.items().slice(0, this.max()); }\n get overflow() { return () => Math.max(0, this.items().length - this.max()); }\n}","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\n\nexport interface BreadcrumbItem {\n label: string;\n to?: string;\n href?: string;\n}\n\n/**\n * Breadcrumb Molecule — Source: Nuxt UI v3 ❖ Breadcrumb\n * Navigation trail with router support\n */\n@Component({\n selector: 'ui-breadcrumb',\n standalone: true,\n imports: [CommonModule, RouterModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <nav aria-label=\"Breadcrumb\">\n <ol class=\"ui-breadcrumb\">\n @for (item of items(); track item.label; let last = $last) {\n <li class=\"ui-breadcrumb__item\" [class.ui-breadcrumb__item--current]=\"last\">\n @if (!last && item.to) {\n <a [routerLink]=\"item.to\" class=\"ui-breadcrumb__link\">{{ item.label }}</a>\n } @else if (!last && item.href) {\n <a [href]=\"item.href\" class=\"ui-breadcrumb__link\">{{ item.label }}</a>\n } @else {\n <span class=\"ui-breadcrumb__current\" [attr.aria-current]=\"last ? 'page' : null\">{{ item.label }}</span>\n }\n @if (!last) {\n <span class=\"ui-breadcrumb__separator\" aria-hidden=\"true\">{{ separator() }}</span>\n }\n </li>\n }\n </ol>\n </nav>\n `,\n styleUrl: './breadcrumb.component.scss',\n})\nexport class BreadcrumbComponent {\n readonly items = input.required<BreadcrumbItem[]>();\n readonly separator = input<string>('/');\n}","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * ButtonGroup Molecule — Source: Nuxt UI v3 ❖ ButtonGroup\n * Groups buttons in a visual row (joined borders)\n */\n@Component({\n selector: 'ui-button-group',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ui-button-group\" [class.ui-button-group--vertical]=\"vertical()\" role=\"group\">\n <ng-content />\n </div>\n `,\n styleUrl: './button-group.component.scss',\n})\nexport class ButtonGroupComponent {\n readonly vertical = input<boolean>(false);\n}","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type FormFieldSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * FormField Molecule — Source: Nuxt UI v3 ❖ FormField\n * Wrapper for form controls: label + control + hint + error\n * Used with: Input, Textarea, Select, Checkbox, Radio...\n */\n@Component({\n selector: 'ui-form-field',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ui-form-field\" [class.ui-form-field--error]=\"!!errorMessage()\" [class.ui-form-field--required]=\"required()\">\n @if (label()) {\n <label class=\"ui-form-field__label ui-form-field__label--{{ size() }}\" [for]=\"name()\">\n {{ label() }}\n @if (required()) {\n <span class=\"ui-form-field__required\" aria-hidden=\"true\"> *</span>\n }\n </label>\n }\n\n <div class=\"ui-form-field__control\">\n <ng-content />\n </div>\n\n @if (hint() && !errorMessage()) {\n <p class=\"ui-form-field__hint\" [id]=\"name() + '-hint'\">{{ hint() }}</p>\n }\n\n @if (errorMessage()) {\n <p class=\"ui-form-field__error\" role=\"alert\" [id]=\"name() + '-error'\">\n {{ errorMessage() }}\n </p>\n }\n </div>\n `,\n styleUrl: './form-field.component.scss',\n})\nexport class FormFieldComponent {\n readonly label = input<string | null>(null);\n readonly name = input<string>('');\n readonly hint = input<string | null>(null);\n readonly errorMessage = input<string | null>(null);\n readonly required = input<boolean>(false);\n readonly size = input<FormFieldSize>('md');\n}","import { ChangeDetectionStrategy, Component, forwardRef, input, model, output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport type InputSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type InputVariant = 'outline' | 'soft' | 'subtle' | 'none';\nexport type InputColor = 'primary' | 'neutral' | 'error' | 'success' | 'warning';\n\n/**\n * Input Molecule — Source: Nuxt UI v3 ❖ Input\n *\n * Slots :\n * [slot=leading] — icône / contenu à gauche\n * [slot=trailing] — icône / contenu à droite\n *\n * Pour rendre un slot cliquable (ex: toggle password) :\n * [trailingClickable]=\"true\" → rend le slot trailing en <button> et émet (trailingClick)\n * [leadingClickable]=\"true\" → rend le slot leading en <button> et émet (leadingClick)\n */\n@Component({\n selector: 'ui-input',\n standalone: true,\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputComponent), multi: true }],\n // Un ng-content par sélecteur — jamais dupliqué dans des branches @if/@else.\n // Le slot est toujours rendu dans un <span> ; les attributs button (role, tabindex)\n // sont ajoutés conditionnellement quand `leadingClickable` / `trailingClickable` = true.\n template: `\n <div [class]=\"wrapClass()\">\n\n <!-- Leading slot -->\n @if (leading()) {\n <span\n class=\"ui-input__leading\"\n [class.ui-input__slot--clickable]=\"leadingClickable()\"\n [attr.role]=\"leadingClickable() ? 'button' : null\"\n [attr.tabindex]=\"leadingClickable() ? 0 : null\"\n [attr.aria-label]=\"leadingClickable() ? leadingLabel() : null\"\n (click)=\"leadingClickable() && leadingClick.emit()\"\n (keydown.enter)=\"leadingClickable() && leadingClick.emit()\"\n (keydown.space)=\"leadingClickable() && leadingClick.emit()\"\n >\n <ng-content select=\"[slot=leading]\" />\n </span>\n }\n\n <!-- Native input -->\n <input\n [class]=\"inputClass()\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [required]=\"required()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-invalid]=\"color() === 'error'\"\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n />\n\n <!-- Trailing slot -->\n @if (trailing()) {\n <span\n class=\"ui-input__trailing\"\n [class.ui-input__slot--clickable]=\"trailingClickable()\"\n [attr.role]=\"trailingClickable() ? 'button' : null\"\n [attr.tabindex]=\"trailingClickable() ? 0 : null\"\n [attr.aria-label]=\"trailingClickable() ? trailingLabel() : null\"\n (click)=\"trailingClickable() && trailingClick.emit()\"\n (keydown.enter)=\"trailingClickable() && trailingClick.emit()\"\n (keydown.space)=\"trailingClickable() && trailingClick.emit()\"\n >\n <ng-content select=\"[slot=trailing]\" />\n </span>\n }\n\n </div>\n `,\n styleUrl: './input.component.scss',\n})\nexport class InputComponent implements ControlValueAccessor {\n // ── Inputs ───────────────────────────────────────────────\n readonly type = input<string>('text');\n readonly placeholder = input<string>('');\n readonly size = input<InputSize>('md');\n readonly variant = input<InputVariant>('outline');\n readonly color = input<InputColor>('primary');\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null);\n\n readonly leading = input<boolean>(false);\n readonly leadingClickable = input<boolean>(false);\n /** aria-label du bouton leading quand leadingClickable=true */\n readonly leadingLabel = input<string>('');\n\n readonly trailing = input<boolean>(false);\n readonly trailingClickable = input<boolean>(false);\n /** aria-label du bouton trailing quand trailingClickable=true */\n readonly trailingLabel = input<string>('');\n\n // ── Two-way ──────────────────────────────────────────────\n readonly value = model<string>('');\n\n // ── Outputs ──────────────────────────────────────────────\n readonly leadingClick = output<void>();\n readonly trailingClick = output<void>();\n\n // ── Classes computed ─────────────────────────────────────\n protected wrapClass() {\n return [\n 'ui-input-wrap',\n `ui-input-wrap--${this.size()}`,\n this.leading() ? 'ui-input-wrap--has-leading' : '',\n this.trailing() ? 'ui-input-wrap--has-trailing' : '',\n ].filter(Boolean).join(' ');\n }\n\n protected inputClass() {\n return `ui-input ui-input--${this.variant()} ui-input--${this.color()} ui-input--${this.size()}`;\n }\n\n // ── CVA ──────────────────────────────────────────────────\n private _onChange: (v: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n protected onInput(e: Event): void {\n const val = (e.target as HTMLInputElement).value;\n this.value.set(val);\n this._onChange(val);\n }\n\n writeValue(v: string) { this.value.set(v ?? ''); }\n registerOnChange(fn: (v: string) => void) { this._onChange = fn; }\n registerOnTouched(fn: () => void) { this.onTouched = fn; }\n setDisabledState(_: boolean) {}\n}","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type PaginationSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Pagination Molecule — Source: Nuxt UI v3 ❖ Pagination\n * Page navigation with page numbers, prev/next controls\n */\n@Component({\n selector: 'ui-pagination',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <nav class=\"ui-pagination ui-pagination--{{ size() }}\" aria-label=\"Pagination\">\n <button\n class=\"ui-pagination__btn\"\n [disabled]=\"page() <= 1\"\n (click)=\"prev()\"\n aria-label=\"Previous page\"\n >‹</button>\n\n @for (p of pages(); track p) {\n @if (p === '...') {\n <span class=\"ui-pagination__ellipsis\" aria-hidden=\"true\">…</span>\n } @else {\n <button\n class=\"ui-pagination__btn\"\n [class.ui-pagination__btn--active]=\"p === page()\"\n [attr.aria-current]=\"p === page() ? 'page' : null\"\n (click)=\"goTo(+p)\"\n >{{ p }}</button>\n }\n }\n\n <button\n class=\"ui-pagination__btn\"\n [disabled]=\"page() >= total()\"\n (click)=\"next()\"\n aria-label=\"Next page\"\n >›</button>\n </nav>\n `,\n styleUrl: './pagination.component.scss',\n})\nexport class PaginationComponent {\n readonly total = input.required<number>();\n readonly size = input<PaginationSize>('md');\n readonly page = model<number>(1);\n\n protected readonly pages = computed(() => {\n const current = this.page();\n const last = this.total();\n if (last <= 7) return Array.from({ length: last }, (_, i) => i + 1);\n const items: (number | string)[] = [1];\n if (current > 3) items.push('...');\n const start = Math.max(2, current - 1);\n const end = Math.min(last - 1, current + 1);\n for (let i = start; i <= end; i++) items.push(i);\n if (current < last - 2) items.push('...');\n items.push(last);\n return items;\n });\n\n prev() { if (this.page() > 1) this.page.update(p => p - 1); }\n next() { if (this.page() < this.total()) this.page.update(p => p + 1); }\n goTo(p: number) { this.page.set(p); }\n}","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n input,\n model,\n output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { trigger, transition, style, animate } from '@angular/animations';\n\nexport interface SelectOption<T = string> {\n label: string;\n value: T;\n icon?: string;\n disabled?: boolean;\n}\n\nexport type SelectSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type SelectVariant = 'outline' | 'soft' | 'subtle' | 'ghost' | 'none';\nexport type SelectColor = 'primary' | 'secondary' | 'neutral' | 'success' | 'warning' | 'error' | 'info';\n\n/**\n * Select Molecule — Source: Nuxt UI v3 ❖ Select\n *\n * Dropdown custom (non natif) :\n * - Trigger stylisé comme un Input (variants, couleurs, tailles Figma)\n * - Panel dropdown animé (scale + fade, 100ms ease-out)\n * - Navigation clavier : ArrowUp/Down, Enter, Space, Escape, Tab\n * - ClickOutside pour fermer\n * - Slot leading icon dans le trigger\n * - Icône + checkmark par option\n * - Compatible ControlValueAccessor\n */\n@Component({\n selector: 'ui-select',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n }],\n animations: [\n trigger('dropdown', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scale(0.96) translateY(-4px)' }),\n animate('100ms ease-out', style({ opacity: 1, transform: 'scale(1) translateY(0)' })),\n ]),\n transition(':leave', [\n animate('80ms ease-in', style({ opacity: 0, transform: 'scale(0.96) translateY(-4px)' })),\n ]),\n ]),\n ],\n template: `\n <div\n class=\"ui-select\"\n [class.ui-select--open]=\"isOpen()\"\n [class.ui-select--disabled]=\"disabled()\"\n >\n <!-- Trigger -->\n <button\n #triggerEl\n type=\"button\"\n [class]=\"triggerClasses()\"\n [disabled]=\"disabled() || loading()\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n (click)=\"toggleOpen(); $event.stopPropagation()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n @if (leadingIcon()) {\n <span class=\"ui-select__leading\" aria-hidden=\"true\">\n <ng-content select=\"[slot=leading]\" />\n </span>\n }\n\n <span class=\"ui-select__value\" [class.ui-select__value--placeholder]=\"!selectedOption()\">\n @if (loading()) {\n <span class=\"ui-select__spinner\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke-opacity=\"0.25\"/>\n <path d=\"M12 2a10 10 0 0 1 10 10\" stroke-linecap=\"round\"/>\n </svg>\n </span>\n } @else {\n {{ selectedOption()?.label ?? placeholder() ?? 'Sélectionner...' }}\n }\n </span>\n\n <span class=\"ui-select__chevron\" [class.ui-select__chevron--open]=\"isOpen()\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M4 6l4 4 4-4\"/>\n </svg>\n </span>\n </button>\n\n <!-- Dropdown panel -->\n @if (isOpen()) {\n <div\n [@dropdown]\n class=\"ui-select__panel\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() ?? 'Options'\"\n (click)=\"$event.stopPropagation()\"\n >\n @for (opt of options(); track opt.value; let i = $index) {\n <button\n type=\"button\"\n class=\"ui-select__option\"\n role=\"option\"\n [class.ui-select__option--selected]=\"isSelected(opt)\"\n [class.ui-select__option--highlighted]=\"activeIndex() === i\"\n [class.ui-select__option--disabled]=\"opt.disabled\"\n [attr.aria-selected]=\"isSelected(opt)\"\n [disabled]=\"opt.disabled\"\n (click)=\"selectOption(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n @if (opt.icon) {\n <span class=\"ui-select__option-icon\" aria-hidden=\"true\">{{ opt.icon }}</span>\n }\n <span class=\"ui-select__option-label\">{{ opt.label }}</span>\n @if (isSelected(opt)) {\n <span class=\"ui-select__option-check\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.25\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M3 8l3.5 3.5L13 5\"/>\n </svg>\n </span>\n }\n </button>\n }\n @if (options().length === 0) {\n <div class=\"ui-select__empty\">Aucune option disponible</div>\n }\n </div>\n }\n </div>\n `,\n styleUrl: './select.component.scss',\n})\nexport class SelectComponent implements ControlValueAccessor {\n @ViewChild('triggerEl') triggerEl!: ElementRef<HTMLButtonElement>;\n\n readonly options = input.required<SelectOption[]>();\n readonly placeholder = input<string | null>(null);\n readonly size = input<SelectSize>('md');\n readonly variant = input<SelectVariant>('outline');\n readonly color = input<SelectColor>('neutral');\n readonly disabled = input<boolean>(false);\n readonly loading = input<boolean>(false);\n readonly leadingIcon = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null);\n\n readonly value = model<string>('');\n readonly change = output<SelectOption>();\n\n protected readonly isOpen = signal(false);\n protected readonly activeIndex = signal(-1);\n\n protected readonly selectedOption = computed(() =>\n this.options().find(o => String(o.value) === String(this.value()))\n );\n\n protected readonly triggerClasses = computed(() =>\n ['ui-select__trigger',\n `ui-select__trigger--${this.size()}`,\n `ui-select__trigger--${this.variant()}`,\n `ui-select__trigger--${this.color()}`\n ].join(' ')\n );\n\n protected isSelected(opt: SelectOption): boolean {\n return String(opt.value) === String(this.value());\n }\n\n // CVA\n private _onChange: (v: string) => void = () => {};\n private _onTouched: () => void = () => {};\n writeValue(v: string) { this.value.set(v ?? ''); }\n registerOnChange(fn: (v: string) => void) { this._onChange = fn; }\n registerOnTouched(fn: () => void) { this._onTouched = fn; }\n setDisabledState(_: boolean) {}\n\n toggleOpen() {\n if (this.disabled() || this.loading()) return;\n this.isOpen.update(v => !v);\n if (this.isOpen()) {\n const idx = this.options().findIndex(o => this.isSelected(o));\n this.activeIndex.set(idx >= 0 ? idx : 0);\n }\n }\n\n selectOption(opt: SelectOption) {\n if (opt.disabled) return;\n const val = String(opt.value);\n this.value.set(val);\n this._onChange(val);\n this._onTouched();\n this.change.emit(opt);\n this.isOpen.set(false);\n this.triggerEl?.nativeElement.focus();\n }\n\n onTriggerKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (!this.isOpen()) { this.toggleOpen(); }\n else {\n const opt = this.options()[this.activeIndex()];\n if (opt && !opt.disabled) this.selectOption(opt);\n }\n break;\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen()) { this.toggleOpen(); return; }\n this.activeIndex.update(i => {\n let n = i + 1;\n while (n < this.options().length && this.options()[n]?.disabled) n++;\n return Math.min(n, this.options().length - 1);\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update(i => {\n let n = i - 1;\n while (n >= 0 && this.options()[n]?.disabled) n--;\n return Math.max(n, 0);\n });\n break;\n case 'Escape':\n case 'Tab':\n this.isOpen.set(false);\n break;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (this.isOpen() && !(event.target as HTMLElement).closest('ui-select')) {\n this.isOpen.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, model, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface TabItem {\n id: string;\n label: string;\n disabled?: boolean;\n count?: number;\n}\n\nexport type TabsVariant = 'pill' | 'link' | 'underline';\nexport type TabsSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Tabs Molecule — Source: Nuxt UI v3 ❖ Tabs\n * Tabbed navigation with pill, link and underline variants\n */\n@Component({\n selector: 'ui-tabs',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ui-tabs ui-tabs--{{ variant() }} ui-tabs--{{ size() }}\" role=\"tablist\">\n @for (tab of items(); track tab.id) {\n <button\n role=\"tab\"\n type=\"button\"\n [class]=\"'ui-tabs__tab' + (activeId() === tab.id ? ' ui-tabs__tab--active' : '') + (tab.disabled ? ' ui-tabs__tab--disabled' : '')\"\n [attr.aria-selected]=\"activeId() === tab.id\"\n [attr.aria-controls]=\"'panel-' + tab.id\"\n [disabled]=\"tab.disabled\"\n (click)=\"select(tab.id)\"\n >\n {{ tab.label }}\n @if (tab.count !== undefined) {\n <span class=\"ui-tabs__count\">{{ tab.count }}</span>\n }\n </button>\n }\n </div>\n <div class=\"ui-tabs__panels\">\n <ng-content />\n </div>\n `,\n styleUrl: './tabs.component.scss',\n})\nexport class TabsComponent {\n readonly items = input.required<TabItem[]>();\n readonly variant = input<TabsVariant>('pill');\n readonly size = input<TabsSize>('md');\n readonly activeId = model<string>('');\n\n select(id: string) { this.activeId.set(id); }\n}","import { ChangeDetectionStrategy, Component, forwardRef, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nexport type TextareaSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Textarea Molecule — Source: Nuxt UI v3 ❖ Textarea\n * Multi-line text input with auto-resize support\n */\n@Component({\n selector: 'ui-textarea',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TextareaComponent), multi: true }],\n template: `\n <textarea\n [class]=\"'ui-textarea ui-textarea--' + size()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [rows]=\"rows()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n (input)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n >{{ value() }}</textarea>\n `,\n styleUrl: './textarea.component.scss',\n})\nexport class TextareaComponent implements ControlValueAccessor {\n readonly placeholder = input<string>('');\n readonly size = input<TextareaSize>('md');\n readonly rows = input<number>(4);\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly autoResize = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null);\n readonly value = model<string>('');\n\n private _onChange: (v: string) => void = () => {};\n protected onTouched: () => void = () => {};\n\n onInput(e: Event) {\n const el = e.target as HTMLTextAreaElement;\n this.value.set(el.value);\n this._onChange(el.value);\n }\n\n writeValue(v: string) { this.value.set(v ?? ''); }\n registerOnChange(fn: (v: string) => void) { this._onChange = fn; }\n registerOnTouched(fn: () => void) { this.onTouched = fn; }\n setDisabledState(_: boolean) {}\n}","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type ToastVariant = 'solid' | 'outline' | 'soft' | 'subtle';\nexport type ToastColor = 'primary' | 'neutral' | 'success' | 'info' | 'warning' | 'error';\n\n/**\n * Toast Molecule — Source: Nuxt UI v3 ❖ Toast\n * Transient notification with auto-close\n */\n@Component({\n selector: 'ui-toast',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div\n [class]=\"'ui-toast ui-toast--' + variant() + ' ui-toast--' + color()\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n @if (icon()) {\n <span class=\"ui-toast__icon\" aria-hidden=\"true\">\n <ng-content select=\"[slot=icon]\" />\n </span>\n }\n <div class=\"ui-toast__body\">\n @if (title()) {\n <p class=\"ui-toast__title\">{{ title() }}</p>\n }\n @if (description()) {\n <p class=\"ui-toast__description\">{{ description() }}</p>\n }\n <ng-content />\n </div>\n @if (closable()) {\n <button type=\"button\" class=\"ui-toast__close\" aria-label=\"Dismiss\" (click)=\"close.emit()\">×</button>\n }\n </div>\n `,\n styleUrl: './toast.component.scss',\n})\nexport class ToastComponent {\n readonly variant = input<ToastVariant>('soft');\n readonly color = input<ToastColor>('neutral');\n readonly title = input<string | null>(null);\n readonly description = input<string | null>(null);\n readonly icon = input<boolean>(false);\n readonly closable = input<boolean>(true);\n\n readonly close = output<void>();\n}","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostListener,\n input,\n model,\n output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { SelectOption, SelectSize, SelectVariant, SelectColor } from '../select/select.component';\n\nexport { SelectOption, SelectSize, SelectVariant, SelectColor };\n\n/**\n * SelectSearch Molecule — Source: Nuxt UI v3 ❖ SelectMenu / Combobox\n *\n * Extension du Select avec un input de recherche intégré dans le panel :\n * - Filtre les options en temps réel (case-insensitive)\n * - Highlight du terme recherché dans les labels\n * - \"Aucun résultat\" si aucune option trouvée\n * - Clavier : ↑↓ navigue, Enter sélectionne, Escape ferme, Tab ferme\n * - Focus automatique sur l'input à l'ouverture\n * - Même API / variants / couleurs / tailles que SelectComponent\n * - Compatible ControlValueAccessor\n *\n * @example\n * <ui-select-search [options]=\"pays\" placeholder=\"Rechercher un pays...\" />\n * <ui-select-search [(value)]=\"val\" variant=\"soft\" color=\"primary\" />\n */\n@Component({\n selector: 'ui-select-search',\n standalone: true,\n imports: [CommonModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectSearchComponent),\n multi: true,\n }],\n animations: [\n trigger('dropdown', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scale(0.96) translateY(-4px)' }),\n animate('100ms ease-out', style({ opacity: 1, transform: 'scale(1) translateY(0)' })),\n ]),\n transition(':leave', [\n animate('80ms ease-in', style({ opacity: 0, transform: 'scale(0.96) translateY(-4px)' })),\n ]),\n ]),\n ],\n template: `\n <div\n class=\"ui-select-search\"\n [class.ui-select-search--open]=\"isOpen()\"\n [class.ui-select-search--disabled]=\"disabled()\"\n >\n <!-- ── Trigger ──────────────────────────────────────── -->\n <button\n #triggerEl\n type=\"button\"\n [class]=\"triggerClasses()\"\n [disabled]=\"disabled() || loading()\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n (click)=\"toggleOpen(); $event.stopPropagation()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n @if (leadingIcon()) {\n <span class=\"ui-select-search__leading\" aria-hidden=\"true\">\n <ng-content select=\"[slot=leading]\" />\n </span>\n }\n\n <span\n class=\"ui-select-search__value\"\n [class.ui-select-search__value--placeholder]=\"!selectedOption()\"\n >\n @if (loading()) {\n <span class=\"ui-select-search__spinner\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke-opacity=\"0.25\"/>\n <path d=\"M12 2a10 10 0 0 1 10 10\" stroke-linecap=\"round\"/>\n </svg>\n </span>\n } @else {\n {{ selectedOption()?.label ?? placeholder() ?? 'Sélectionner...' }}\n }\n </span>\n\n <span\n class=\"ui-select-search__chevron\"\n [class.ui-select-search__chevron--open]=\"isOpen()\"\n aria-hidden=\"true\"\n >\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M4 6l4 4 4-4\"/>\n </svg>\n </span>\n </button>\n\n <!-- ── Dropdown panel ───────────────────────────────── -->\n @if (isOpen()) {\n <div [@dropdown] class=\"ui-select-search__panel\" (click)=\"$event.stopPropagation()\">\n\n <!-- Search input -->\n <div class=\"ui-select-search__search-wrap\">\n <span class=\"ui-select-search__search-icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <circle cx=\"6.5\" cy=\"6.5\" r=\"4\"/>\n <path d=\"M10 10l3 3\"/>\n </svg>\n </span>\n <input\n #searchInput\n type=\"text\"\n class=\"ui-select-search__input\"\n [placeholder]=\"searchPlaceholder()\"\n [ngModel]=\"query()\"\n (ngModelChange)=\"query.set($event); activeIndex.set(0)\"\n (keydown)=\"onSearchKeydown($event)\"\n aria-label=\"Rechercher\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n />\n @if (query()) {\n <button\n type=\"button\"\n class=\"ui-select-search__clear\"\n (click)=\"clearQuery()\"\n aria-label=\"Effacer la recherche\"\n >\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M4 4l8 8M12 4l-8 8\"/>\n </svg>\n </button>\n }\n </div>\n\n <!-- Options list -->\n <div\n class=\"ui-select-search__options\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() ?? 'Options'\"\n >\n @for (opt of filteredOptions(); track opt.value; let i = $index) {\n <button\n type=\"button\"\n class=\"ui-select-search__option\"\n role=\"option\"\n [class.ui-select-search__option--selected]=\"isSelected(opt)\"\n [class.ui-select-search__option--highlighted]=\"activeIndex() === i\"\n [class.ui-select-search__option--disabled]=\"opt.disabled\"\n [attr.aria-selected]=\"isSelected(opt)\"\n [disabled]=\"opt.disabled\"\n (click)=\"selectOption(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n @if (opt.icon) {\n <span class=\"ui-select-search__option-icon\" aria-hidden=\"true\">{{ opt.icon }}</span>\n }\n <!-- Highlighted label -->\n <span\n class=\"ui-select-search__option-label\"\n [innerHTML]=\"highlight(opt.label)\"\n ></span>\n\n @if (isSelected(opt)) {\n <span class=\"ui-select-search__option-check\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"2.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M3 8l3.5 3.5L13 5\"/>\n </svg>\n </span>\n }\n </button>\n }\n\n @if (filteredOptions().length === 0) {\n <div class=\"ui-select-search__empty\">\n <svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <circle cx=\"10\" cy=\"10\" r=\"8\"/>\n <path d=\"M10 6v5M10 14h.01\"/>\n </svg>\n <span>{{ emptyLabel() }}</span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n `,\n styleUrl: './select-search.component.scss',\n})\nexport class SelectSearchComponent implements ControlValueAccessor, AfterViewInit {\n @ViewChild('triggerEl') triggerEl!: ElementRef<HTMLButtonElement>;\n @ViewChild('searchInput') searchInput!: ElementRef<HTMLInputElement>;\n\n // ── Inputs ───────────────────────────────────────────────\n readonly options = input.required<SelectOption[]>();\n readonly placeholder = input<string | null>(null);\n readonly searchPlaceholder = input<string>('Rechercher...');\n readonly emptyLabel = input<string>('Aucun résultat');\n readonly size = input<SelectSize>('md');\n readonly variant = input<SelectVariant>('outline');\n readonly color = input<SelectColor>('neutral');\n readonly disabled = input<boolean>(false);\n readonly loading = input<boolean>(false);\n readonly leadingIcon = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null);\n\n // ── Two-way binding ──────────────────────────────────────\n readonly value = model<string>('');\n readonly change = output<SelectOption>();\n\n // ── Internal state ───────────────────────────────────────\n protected readonly isOpen = signal(false);\n protected readonly activeIndex = signal(-1);\n protected readonly query = signal('');\n\n protected readonly selectedOption = computed(() =>\n this.options().find(o => String(o.value) === String(this.value()))\n );\n\n protected readonly filteredOptions = computed(() => {\n const q = this.query().trim().toLowerCase();\n if (!q) return this.options();\n return this.options().filter(o =>\n o.label.toLowerCase().includes(q)\n );\n });\n\n protected readonly triggerClasses = computed(() =>\n ['ui-select-search__trigger',\n `ui-select-search__trigger--${this.size()}`,\n `ui-select-search__trigger--${this.variant()}`,\n `ui-select-search__trigger--${this.color()}`\n ].join(' ')\n );\n\n protected isSelected(opt: SelectOption): boolean {\n return String(opt.value) === String(this.value());\n }\n\n /** Entoure le terme recherché dans le label avec <mark> */\n protected highlight(label: string): string {\n const q = this.query().trim();\n if (!q) return label;\n const escaped = q.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return label.replace(\n new RegExp(`(${escaped})`, 'gi'),\n '<mark class=\"ui-select-search__highlight\">$1</mark>'\n );\n }\n\n // ── CVA ──────────────────────────────────────────────────\n private _onChange: (v: string) => void = () => {};\n private _onTouched: () => void = () => {};\n\n writeValue(v: string) { this.value.set(v ?? ''); }\n registerOnChange(fn: (v: string) => void) { this._onChange = fn; }\n registerOnTouched(fn: () => void) { this._onTouched = fn; }\n setDisabledState(_: boolean) {}\n\n ngAfterViewInit() {}\n\n // ── Actions ──────────────────────────────────────────────\n toggleOpen() {\n if (this.disabled() || this.loading()) return;\n this.isOpen.update(v => !v);\n if (this.isOpen()) {\n this.query.set('');\n const idx = this.filteredOptions().findIndex(o => this.isSelected(o));\n this.activeIndex.set(idx >= 0 ? idx : 0);\n // Focus search input after animation\n setTimeout(() => this.searchInput?.nativeElement.focus(), 60);\n }\n }\n\n selectOption(opt: SelectOption) {\n if (opt.disabled) return;\n const val = String(opt.value);\n this.value.set(val);\n this._onChange(val);\n this._onTouched();\n this.change.emit(opt);\n this.isOpen.set(false);\n this.query.set('');\n this.triggerEl?.nativeElement.focus();\n }\n\n clearQuery() {\n this.query.set('');\n this.activeIndex.set(0);\n this.searchInput?.nativeElement.focus();\n }\n\n // ── Keyboard — trigger ───────────────────────────────────\n onTriggerKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n this.toggleOpen();\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.toggleOpen();\n break;\n case 'Escape':\n this.isOpen.set(false);\n break;\n }\n }\n\n // ── Keyboard — search input ──────────────────────────────\n onSearchKeydown(event: KeyboardEvent) {\n const opts = this.filteredOptions();\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex.update(i => {\n let n = i + 1;\n while (n < opts.length && opts[n]?.disabled) n++;\n return Math.min(n, opts.length - 1);\n });\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex.update(i => {\n let n = i - 1;\n while (n >= 0 && opts[n]?.disabled) n--;\n return Math.max(n, 0);\n });\n break;\n case 'Enter':\n event.preventDefault();\n const opt = opts[this.activeIndex()];\n if (opt && !opt.disabled) this.selectOption(opt);\n break;\n case 'Escape':\n case 'Tab':\n this.isOpen.set(false);\n this.triggerEl?.nativeElement.focus();\n break;\n }\n }\n\n // ── Close on outside click ───────────────────────────────\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (this.isOpen() && !(event.target as HTMLElement).closest('ui-select-search')) {\n this.isOpen.set(false);\n }\n }\n}\n","// ============================================================\n// MOLECULES — Nuxt UI v3 Design Kit → Angular 19 + NX\n// Combinations of atoms with focused single responsibility\n// ============================================================\n\nexport * from './alert';\nexport * from './avatar-group';\nexport * from './breadcrumb';\nexport * from './button-group';\nexport * from './form-field';\nexport * from './input';\nexport * from './pagination';\nexport * from './select';\nexport * from './tabs';\nexport * from './textarea';\nexport * from './toast';\nexport * from './select-search';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|