@semantic-components/ui 0.51.0 → 0.53.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/fesm2022/semantic-components-ui.mjs +737 -1022
- package/fesm2022/semantic-components-ui.mjs.map +1 -1
- package/index.d.ts +0 -2
- package/package.json +2 -5
- package/lib/components/carousel/carousel-container.d.ts +0 -7
- package/lib/components/carousel/carousel-item.d.ts +0 -8
- package/lib/components/carousel/carousel-items.d.ts +0 -8
- package/lib/components/carousel/carousel-next.d.ts +0 -12
- package/lib/components/carousel/carousel-previous.d.ts +0 -12
- package/lib/components/carousel/carousel.d.ts +0 -24
- package/lib/components/carousel/index.d.ts +0 -6
- package/lib/components/code-highlighter/code-highlighter.d.ts +0 -17
- package/lib/components/code-highlighter/index.d.ts +0 -1
- package/lib/components/code-highlighter/shiki.service.d.ts +0 -10
- package/lib/components/code-highlighter/types.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-components-ui.mjs","sources":["../../../../libs/ui/src/lib/utils/settings.ts","../../../../libs/ui/src/lib/components/tooltip/tooltip-container.ts","../../../../libs/ui/src/lib/components/tooltip/tooltip.ts","../../../../libs/ui/src/lib/components/paginator/paginator.service.ts","../../../../libs/ui/src/lib/components/paginator/paginator.ts","../../../../libs/ui/src/lib/components/paginator/paginator-container.ts","../../../../libs/ui/src/lib/components/select/option.ts","../../../../libs/ui/src/lib/components/select/select.ts","../../../../libs/ui/src/lib/components/paginator/page-size-select.ts","../../../../libs/ui/src/lib/components/paginator/pagination.ts","../../../../libs/ui/src/lib/components/paginator/pagination-list.ts","../../../../libs/ui/src/lib/components/button/button-base.ts","../../../../libs/ui/src/lib/components/button/button.ts","../../../../libs/ui/src/lib/components/paginator/pagination-first.ts","../../../../libs/ui/src/lib/components/paginator/pagination-last.ts","../../../../libs/ui/src/lib/components/paginator/pagination-previous.ts","../../../../libs/ui/src/lib/components/paginator/pagination-next.ts","../../../../libs/ui/src/lib/components/paginator/pagination-link.ts","../../../../libs/ui/src/lib/components/paginator/pagination-ellipsis.ts","../../../../libs/ui/src/lib/components/card/card.ts","../../../../libs/ui/src/lib/components/card/card-header.ts","../../../../libs/ui/src/lib/components/card/card-title.ts","../../../../libs/ui/src/lib/components/card/card-description.ts","../../../../libs/ui/src/lib/components/card/card-content.ts","../../../../libs/ui/src/lib/components/card/card-footer.ts","../../../../libs/ui/src/lib/components/calendar/calendar.service.ts","../../../../libs/ui/src/lib/components/calendar/utils.ts","../../../../libs/ui/src/lib/components/calendar/calendar-header.ts","../../../../libs/ui/src/lib/components/calendar/calendar-utils.ts","../../../../libs/ui/src/lib/components/calendar/day-button.ts","../../../../libs/ui/src/lib/components/calendar/day-selector.ts","../../../../libs/ui/src/lib/components/calendar/month-selector.ts","../../../../libs/ui/src/lib/components/calendar/year-selector.ts","../../../../libs/ui/src/lib/components/calendar/calendar.ts","../../../../libs/ui/src/lib/components/range-calendar/days-selector.ts","../../../../libs/ui/src/lib/components/range-calendar/range-calendar.ts","../../../../libs/ui/src/lib/components/full-calendar/full-calendar.ts","../../../../libs/ui/src/lib/components/full-calendar/mobile-calendar.ts","../../../../libs/ui/src/lib/components/full-calendar/day-view.ts","../../../../libs/ui/src/lib/components/full-calendar/week-view.ts","../../../../libs/ui/src/lib/components/input/plain-input.ts","../../../../libs/ui/src/lib/components/input/input.ts","../../../../libs/ui/src/lib/components/input/auto-resize-input.ts","../../../../libs/ui/src/lib/components/date-picker/date-picker-toggle.ts","../../../../libs/ui/src/lib/components/date-picker/date-picker.ts","../../../../libs/ui/src/lib/components/date-range-picker/date-range-picker.ts","../../../../libs/ui/src/lib/components/nav/nav.ts","../../../../libs/ui/src/lib/components/nav/nav-list.ts","../../../../libs/ui/src/lib/components/nav/nav-button-base.ts","../../../../libs/ui/src/lib/components/nav/nav-link.ts","../../../../libs/ui/src/lib/components/nav/nav-item.ts","../../../../libs/ui/src/lib/components/nav/nav-button.ts","../../../../libs/ui/src/lib/components/nav/nav-item-dropdown.ts","../../../../libs/ui/src/lib/components/theme-toggler/theme.ts","../../../../libs/ui/src/lib/components/theme-toggler/theme-toggler.ts","../../../../libs/ui/src/lib/components/link/link.ts","../../../../libs/ui/src/lib/components/input-number/input-number.ts","../../../../libs/ui/src/lib/components/input-number/input-number-incrementer.ts","../../../../libs/ui/src/lib/components/input-number/input-number-decrementer.ts","../../../../libs/ui/src/lib/components/input-number-group/input-number-group.ts","../../../../libs/ui/src/lib/components/input-group/input-group.ts","../../../../libs/ui/src/lib/components/label/label.ts","../../../../libs/ui/src/lib/components/progress/progress.ts","../../../../libs/ui/src/lib/components/input-password/input-password.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp-slot.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp-group.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp-separator.ts","../../../../libs/ui/src/lib/components/textarea/textarea.ts","../../../../libs/ui/src/lib/components/multi-select/multi-select.ts","../../../../libs/ui/src/lib/components/scroll-to-top/scroll-to-top-button2.ts","../../../../libs/ui/src/lib/components/scroll-to-top/scroll-to-top.ts","../../../../libs/ui/src/lib/components/scroll-to-top/scroll-to-top-button.ts","../../../../libs/ui/src/lib/components/circular-progress/circular-progress.ts","../../../../libs/ui/src/lib/components/sheet/sheet-container.ts","../../../../libs/ui/src/lib/components/sheet/sheet-manager.ts","../../../../libs/ui/src/lib/components/sheet/sheet.ts","../../../../libs/ui/src/lib/components/sheet/sheet-config.ts","../../../../libs/ui/src/lib/components/sheet/sheet-close.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-list.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-item.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-link.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-page.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-separator.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-ellipsis.ts","../../../../libs/ui/src/lib/components/toggle/toggle-base.ts","../../../../libs/ui/src/lib/components/toggle/toggle.ts","../../../../libs/ui/src/lib/components/toggle-group/toggle-group.ts","../../../../libs/ui/src/lib/components/toggle-group/toggle-item.ts","../../../../libs/ui/src/lib/components/dialog/dialog.ts","../../../../libs/ui/src/lib/components/dialog/dialog-header.ts","../../../../libs/ui/src/lib/components/dialog/dialog-title.ts","../../../../libs/ui/src/lib/components/dialog/dialog-description.ts","../../../../libs/ui/src/lib/components/dialog/dialog-footer.ts","../../../../libs/ui/src/lib/components/dialog/dialog-container.ts","../../../../libs/ui/src/lib/components/dialog/dialog-manager.ts","../../../../libs/ui/src/lib/components/dialog/dialog-close.ts","../../../../libs/ui/src/lib/components/dialog/dialog-content.ts","../../../../libs/ui/src/lib/components/alert/alert.ts","../../../../libs/ui/src/lib/components/alert/alert-title.ts","../../../../libs/ui/src/lib/components/alert/alert-description.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-description.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-footer.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-header.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-title.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-manager.ts","../../../../libs/ui/src/lib/components/badge/badge.ts","../../../../libs/ui/src/lib/components/scroll-area/scroll-area.ts","../../../../libs/ui/src/lib/components/scroll-area/hover-scrollbar.component.ts","../../../../libs/ui/src/lib/components/scroll-area/scroll-area.component.ts","../../../../libs/ui/src/lib/components/scroll-area/horizontal-scroll-area.component.ts","../../../../libs/ui/src/lib/components/scroll-area/flexible-scroll-area.component.ts","../../../../libs/ui/src/lib/components/toast/toast-id.ts","../../../../libs/ui/src/lib/components/toast/toast.service.ts","../../../../libs/ui/src/lib/components/toast/toast-container.ts","../../../../libs/ui/src/lib/components/toast/toaster.ts","../../../../libs/ui/src/lib/components/toast/toast.ts","../../../../libs/ui/src/lib/components/toast/toast-content.ts","../../../../libs/ui/src/lib/components/toast/toast-title.ts","../../../../libs/ui/src/lib/components/toast/toast-description.ts","../../../../libs/ui/src/lib/components/toast/toast-action.ts","../../../../libs/ui/src/lib/components/toast/toast-close.ts","../../../../libs/ui/src/lib/components/slider/slider.ts","../../../../libs/ui/src/lib/components/carousel/carousel.ts","../../../../libs/ui/src/lib/components/carousel/carousel-container.ts","../../../../libs/ui/src/lib/components/carousel/carousel-items.ts","../../../../libs/ui/src/lib/components/carousel/carousel-item.ts","../../../../libs/ui/src/lib/components/carousel/carousel-previous.ts","../../../../libs/ui/src/lib/components/carousel/carousel-next.ts","../../../../libs/ui/src/lib/components/checkbox/checkbox.ts","../../../../libs/ui/src/lib/components/checkbox-group/checkbox-group.ts","../../../../libs/ui/src/lib/components/checkbox-group/checkbox-item.ts","../../../../libs/ui/src/lib/components/accordion/accordion.ts","../../../../libs/ui/src/lib/components/accordion/accordion-item-state.ts","../../../../libs/ui/src/lib/components/accordion/accordion-item.ts","../../../../libs/ui/src/lib/components/accordion/accordion-header.ts","../../../../libs/ui/src/lib/components/accordion/accordion-toggle.ts","../../../../libs/ui/src/lib/components/accordion/accordion-content.ts","../../../../libs/ui/src/lib/components/switch/switch.ts","../../../../libs/ui/src/lib/components/radio-group/radio-group.ts","../../../../libs/ui/src/lib/components/radio-group/radio.ts","../../../../libs/ui/src/lib/components/radio-group/radio-item.ts","../../../../libs/ui/src/lib/components/hover-card/hover-card.ts","../../../../libs/ui/src/lib/components/hover-card/hover-card-trigger-for.ts","../../../../libs/ui/src/lib/components/avatar/avatar-state.ts","../../../../libs/ui/src/lib/components/avatar/avatar.ts","../../../../libs/ui/src/lib/components/avatar/avatar-image.ts","../../../../libs/ui/src/lib/components/avatar/avatar-fallback.ts","../../../../libs/ui/src/lib/components/aspect-ratio/aspect-ratio.ts","../../../../libs/ui/src/lib/components/skeleton/skeleton.ts","../../../../libs/ui/src/lib/components/table/table.ts","../../../../libs/ui/src/lib/components/table/table-container.ts","../../../../libs/ui/src/lib/components/table/table-header-group.ts","../../../../libs/ui/src/lib/components/table/table-body.ts","../../../../libs/ui/src/lib/components/table/table-footer.ts","../../../../libs/ui/src/lib/components/table/table-header.ts","../../../../libs/ui/src/lib/components/table/table-row.ts","../../../../libs/ui/src/lib/components/table/table-cell.ts","../../../../libs/ui/src/lib/components/table/table-caption.ts","../../../../libs/ui/src/lib/components/data-table/data-table.ts","../../../../libs/ui/src/lib/components/popover/popover.ts","../../../../libs/ui/src/lib/components/popover/popover-trigger-for.ts","../../../../libs/ui/src/lib/components/context-menu/context-menu-trigger-for.ts","../../../../libs/ui/src/lib/components/menu/menu.ts","../../../../libs/ui/src/lib/components/menu/menu-label.ts","../../../../libs/ui/src/lib/components/menu/menu-shortcut.ts","../../../../libs/ui/src/lib/components/menu/menu-separator.ts","../../../../libs/ui/src/lib/components/menu/menu-group.ts","../../../../libs/ui/src/lib/components/menu/menu-item.ts","../../../../libs/ui/src/lib/components/menu/menu-checkbox-item.ts","../../../../libs/ui/src/lib/components/menu/menu-radio-group.ts","../../../../libs/ui/src/lib/components/menu/menu-radio-item.ts","../../../../libs/ui/src/lib/components/menu/menu-trigger-for.ts","../../../../libs/ui/src/lib/components/menu/menu-checkbox-group.ts","../../../../libs/ui/src/lib/components/menu-bar/menu-bar.ts","../../../../libs/ui/src/lib/components/menu-bar/menu-bar-item.ts","../../../../libs/ui/src/lib/components/command/command.ts","../../../../libs/ui/src/lib/components/command/command-input.ts","../../../../libs/ui/src/lib/components/command/command-list.ts","../../../../libs/ui/src/lib/components/command/command-empty.ts","../../../../libs/ui/src/lib/components/command/command-group-heading.ts","../../../../libs/ui/src/lib/components/command/command-group.ts","../../../../libs/ui/src/lib/components/command/command-item.ts","../../../../libs/ui/src/lib/components/command/command-shortcut.ts","../../../../libs/ui/src/lib/components/command/command-separator.ts","../../../../libs/ui/src/lib/components/command/command-dialog.ts","../../../../libs/ui/src/lib/components/command/command-error.ts","../../../../libs/ui/src/lib/components/command/command-loading.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible-state.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible-toggle.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible-content.ts","../../../../libs/ui/src/lib/components/sidebar/constants.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-state.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-toggler.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-mobile.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-content.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-provider.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group-label.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group-action.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group-content.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-item.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-base.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-link.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-button.ts","../../../../libs/ui/src/lib/components/autocomplete/autocomplete-item.ts","../../../../libs/ui/src/lib/components/autocomplete/autocomplete.ts","../../../../libs/ui/src/lib/components/time-picker/time-option.ts","../../../../libs/ui/src/lib/components/time-picker/time-picker-input.ts","../../../../libs/ui/src/lib/components/time-picker/time-picker.ts","../../../../libs/ui/src/lib/components/time-picker/time-picker2.ts","../../../../libs/ui/src/lib/components/separator/separator.ts","../../../../libs/ui/src/lib/components/file-upload/file-upload.ts","../../../../libs/ui/src/lib/components/page/page-title.ts","../../../../libs/ui/src/lib/components/page/page-subtitle.ts","../../../../libs/ui/src/lib/components/page/page-description.ts","../../../../libs/ui/src/lib/components/page/section.ts","../../../../libs/ui/src/lib/components/typography/heading.ts","../../../../libs/ui/src/lib/components/typography/article.ts","../../../../libs/ui/src/lib/components/typography/blockquote.ts","../../../../libs/ui/src/lib/components/cookie-consent/cookie-consent.ts","../../../../libs/ui/src/lib/components/comments/comment.ts","../../../../libs/ui/src/lib/components/comments/comments.ts","../../../../libs/ui/src/lib/components/tags/tags.ts","../../../../libs/ui/src/lib/components/combobox/combobox.ts","../../../../libs/ui/src/lib/components/clock-picker/clock-picker.ts","../../../../libs/ui/src/lib/components/clock-picker/clock-picker2.ts","../../../../libs/ui/src/lib/components/code-highlighter/types.ts","../../../../libs/ui/src/lib/components/code-highlighter/shiki.service.ts","../../../../libs/ui/src/lib/components/code-highlighter/code-highlighter.ts","../../../../libs/ui/src/lib/components/image-placeholder/image-placeholder.service.ts","../../../../libs/ui/src/lib/components/image-placeholder/image-placeholder.ts","../../../../libs/ui/src/lib/components/fieldset/description.ts","../../../../libs/ui/src/lib/components/fieldset/error-message.ts","../../../../libs/ui/src/lib/components/fieldset/field.ts","../../../../libs/ui/src/lib/components/fieldset/fieldset.ts","../../../../libs/ui/src/lib/components/fieldset/legend.ts","../../../../libs/ui/src/lib/components/touch-area/touch-area.ts","../../../../libs/ui/src/lib/components/scroll-spy/scroll-spy.ts","../../../../libs/ui/src/lib/components/color-picker/color-picker.ts","../../../../libs/ui/src/lib/components/toggle-switch/toggle-switch.ts","../../../../libs/ui/src/lib/components/range-slider/range-slider.ts","../../../../libs/ui/src/lib/components/dual-range-slider/dual-range-slider.ts","../../../../libs/ui/src/lib/components/table-of-contents/table-of-contents.ts","../../../../libs/ui/src/lib/components/stepper/stepper.ts","../../../../libs/ui/src/lib/components/stepper/step.ts","../../../../libs/ui/src/lib/components/rating/rating.ts","../../../../libs/ui/src/lib/components/on-this-page/on-this-page.ts","../../../../libs/ui/src/lib/components/tabs/tabs.service.ts","../../../../libs/ui/src/lib/components/tabs/tab.ts","../../../../libs/ui/src/lib/components/tabs/tabs.ts","../../../../libs/ui/src/lib/components/tabs/tab-list.ts","../../../../libs/ui/src/lib/components/tabs/tab-panel-content.ts","../../../../libs/ui/src/lib/components/tabs/tab-panels.ts","../../../../libs/ui/src/semantic-components-ui.ts"],"sourcesContent":["import { Injectable, LOCALE_ID, inject, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScSettings {\n clock = signal<'am-pm' | '24-hour'>('am-pm');\n\n dateFormatPattern = signal<string>('');\n\n private readonly localeId = inject(LOCALE_ID);\n\n constructor() {\n this.dateFormatPattern.set(this.getDateFormatPattern(this.localeId));\n }\n\n getDateFormatPattern(localeId: string) {\n const getPatternForPart = (part: Intl.DateTimeFormatPart) => {\n switch (part.type) {\n case 'day':\n return 'd'.repeat(part.value.length);\n case 'month':\n return 'M'.repeat(part.value.length);\n case 'year':\n return 'y'.repeat(part.value.length);\n case 'literal':\n return part.value;\n default:\n throw new Error('no default');\n }\n };\n\n return new Intl.DateTimeFormat(localeId)\n .formatToParts(new Date('2022-01-01'))\n .map(getPatternForPart)\n .join('')\n .toLowerCase();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-tooltip-container',\n imports: [],\n template: `\n {{ message() }}\n `,\n host: {\n role: 'tooltip',\n '[class]': 'class()',\n '[attr.data-position]': 'position()',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTooltipContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[position=below]:slide-in-from-top-2 data-[position=left]:slide-in-from-right-2 data-[position=right]:slide-in-from-left-2 data-[position=above]:slide-in-from-bottom-2',\n this.classInput(),\n ),\n );\n\n readonly message = input.required<string>();\n\n readonly position = input.required<'left' | 'right' | 'above' | 'below'>();\n\n readonly state = input.required<'open' | 'closed'>();\n}\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScTooltipContainer } from './tooltip-container';\n\n@Directive({\n selector: '[scTooltip]',\n host: {\n '(mouseover)': 'showTooltip()',\n '(focus)': 'showTooltip()',\n '(mouseleave)': 'hideTooltip()',\n '(blur)': 'hideTooltip()',\n },\n})\nexport class ScTooltip implements OnInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private overlayRef!: OverlayRef;\n private tooltipRef!: ComponentRef<ScTooltipContainer>;\n\n readonly message = input('', { alias: 'scTooltip' });\n readonly position = input<'left' | 'right' | 'above' | 'below'>('below');\n\n ngOnInit() {\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n protected showTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n protected hideTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\n this.tooltipRef.setInput('state', 'closed');\n this.overlayRef?.detach();\n }\n }\n\n private attachTooltip(): void {\n // Create tooltip portal\n const tooltipPortal = new ComponentPortal(ScTooltipContainer);\n\n // Attach tooltip portal to overlay\n this.tooltipRef = this.overlayRef.attach(tooltipPortal);\n\n // Pass content to tooltip component instance\n\n this.tooltipRef.setInput('message', this.message());\n this.tooltipRef.setInput('position', this.position());\n this.tooltipRef.setInput('state', 'open');\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getPositions());\n }\n\n getPositions(): ConnectedPosition[] {\n switch (this.position()) {\n case 'above': {\n return [\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -4,\n },\n ];\n }\n case 'below': {\n return [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 4,\n },\n ];\n }\n case 'left': {\n return [\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -4,\n },\n ];\n }\n case 'right': {\n return [\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 4,\n },\n ];\n }\n\n default: {\n throw new Error('Error in switch case');\n }\n }\n }\n}\n","import { Injectable, computed, signal } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { ButtonVariants } from '../button';\nimport { ScPageEvent } from './page-event';\n\n/** The default page size if there is no page size and there are no provided page size options. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n@Injectable()\nexport class PaginatorService {\n /** The one-based page index of the displayed list of items. Defaulted to 1. */\n readonly currentPage = signal<number>(1);\n\n /** The total number of items that are being paginated. */\n readonly totalSize = signal<number>(0);\n\n /** The set of provided page size options to display to the user. */\n readonly pageSizeOptions = signal<number[]>([5, DEFAULT_PAGE_SIZE, 25]);\n\n /** Number of items to display on a page. By default, set to 10. */\n readonly pageSize = signal<number>(DEFAULT_PAGE_SIZE);\n\n /** Event emitted when the paginator changes the page index. */\n readonly pageChanged = signal<ScPageEvent>({ page: 1, pageSize: DEFAULT_PAGE_SIZE });\n\n readonly pageSizeFormControl = new FormControl(this.pageSize());\n\n readonly numberOfPages = computed(() => Math.ceil(this.totalSize() / this.pageSize()));\n\n readonly firstItemPage = computed(() => {\n if (this.totalSize() === 0) {\n return 0;\n }\n return this.pageSize() * (this.currentPage() - 1) + 1;\n });\n\n readonly lastItemPage = computed(() => {\n const a = this.firstItemPage() + this.pageSize() - 1;\n\n if (a < this.totalSize()) {\n return a;\n }\n\n return this.totalSize();\n });\n\n readonly isNextPageDisabled = computed(() => {\n return this.currentPage() === this.numberOfPages();\n });\n\n readonly isPrevPageDisabled = computed(() => {\n return this.currentPage() === 1;\n });\n\n readonly paginationLinkVariant = signal<ButtonVariants['variant']>('outline');\n\n readonly paginationActiveLinkVariant = signal<ButtonVariants['variant']>('secondary');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants } from '../button';\nimport { ScPageEvent } from './page-event';\nimport { DEFAULT_PAGE_SIZE, PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'sc-paginator',\n exportAs: 'scPaginator',\n imports: [ReactiveFormsModule],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [PaginatorService],\n})\nexport class ScPaginator implements OnInit {\n protected readonly paginatorService = inject(PaginatorService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block', this.classInput()));\n\n /** The one-based page index of the displayed list of items. Defaulted to 1. */\n readonly currentPage = input<number>(1);\n\n /** The total number of items that are being paginated. */\n readonly totalSize = input.required<number>();\n\n /** The set of provided page size options to display to the user. */\n readonly pageSizeOptions = input<number[]>([5, DEFAULT_PAGE_SIZE, 25]);\n\n /** Number of items to display on a page. By default, set to 10. */\n readonly pageSize = input<number>(DEFAULT_PAGE_SIZE);\n\n readonly paginationLinkVariant = input<ButtonVariants['variant']>('outline');\n readonly paginationActiveLinkVariant = input<ButtonVariants['variant']>('secondary');\n\n /** Event emitted when the paginator changes the page index. */\n readonly pageChanged = output<ScPageEvent>();\n\n constructor() {\n effect(() => {\n this.paginatorService.currentPage.set(this.currentPage());\n });\n\n effect(() => {\n this.paginatorService.totalSize.set(this.totalSize());\n });\n\n effect(() => {\n this.paginatorService.pageSizeOptions.set(this.pageSizeOptions());\n });\n\n effect(() => {\n this.paginatorService.pageSize.set(this.pageSize());\n });\n\n effect(() => {\n this.paginatorService.paginationLinkVariant.set(this.paginationLinkVariant());\n });\n\n effect(() => {\n this.paginatorService.paginationActiveLinkVariant.set(this.paginationActiveLinkVariant());\n });\n\n effect(() => {\n this.paginatorService.pageSizeFormControl.setValue(this.pageSize());\n });\n\n effect(() => {\n this.pageChanged.emit(this.paginatorService.pageChanged());\n });\n }\n\n ngOnInit() {\n this.paginatorService.pageSizeFormControl.valueChanges.subscribe((value) => {\n if (value) {\n this.pageChanged.emit({ page: 1, pageSize: value });\n }\n });\n }\n\n readonly firstItemPage = computed(() => this.paginatorService.firstItemPage());\n\n readonly lastItemPage = computed(() => this.paginatorService.lastItemPage());\n\n private range(start: number, end: number) {\n return Array.from({ length: end - start + 1 }, (_, i) => i + start);\n }\n\n //https://gist.github.com/kottenator/9d936eb3e4e3c3e02598#gistcomment-3238804\n pages = computed<(number | '...')[]>(() => {\n const totalPages = this.paginatorService.numberOfPages();\n\n if (totalPages < 7) {\n return this.range(1, totalPages);\n }\n\n const currentPage = this.paginatorService.currentPage();\n\n const leftSiblingIndex = Math.max(currentPage - 1, 1);\n const rightSiblingIndex = Math.min(currentPage + 1, totalPages);\n\n const shouldShowLeftEllipsis = leftSiblingIndex > 2;\n const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 2;\n\n const firstPageIndex = 1;\n const lastPageIndex = totalPages;\n\n if (!shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n const leftItemCount = 3;\n const leftRange = this.range(1, leftItemCount + 2);\n\n return [...leftRange, '...', totalPages];\n }\n\n if (shouldShowLeftEllipsis && !shouldShowRightEllipsis) {\n const rightItemCount = 3;\n const rightRange = this.range(totalPages - rightItemCount - 1, totalPages);\n\n return [firstPageIndex, '...', ...rightRange];\n }\n\n if (shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n const middleRange = this.range(leftSiblingIndex, rightSiblingIndex);\n\n return [firstPageIndex, '...', ...middleRange, '...', lastPageIndex];\n }\n\n return this.range(1, totalPages);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-paginator-container',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginatorContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n}\n","import { Highlightable, _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScSelect } from './select';\n\n@Component({\n selector: 'sc-option',\n imports: [SiCheckIcon],\n template: `\n @if (isSelected()) {\n <svg class=\"absolute left-2 flex size-4 items-center justify-center\" si-check-icon></svg>\n }\n\n <span #label>\n <ng-content />\n </span>\n `,\n host: {\n '[id]': 'id()',\n '[class]': 'class()',\n '[attr.data-disabled]': '_disabled()',\n '[attr.data-active]': 'active()',\n '(mouseover)': 'setActiveStyles()',\n '(mouseleave)': 'setInactiveStyles()',\n '(click)': 'toggle()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScOption implements Highlightable {\n readonly id = signal<string>(inject(_IdGenerator).getId('sc-option-'));\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[active=true]:bg-accent data-[active=true]:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this.classInput(),\n ),\n );\n\n private readonly scSelect = inject(ScSelect);\n\n protected isSelected = computed(() => this.value() === this.scSelect.value());\n\n readonly value = input.required<unknown>();\n\n private readonly labelEl = viewChild.required<ElementRef<HTMLSpanElement>>('label');\n\n readonly label = computed(() => {\n return this.labelEl().nativeElement.textContent?.trim() ?? '';\n });\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n get nativeElement() {\n return this.element.nativeElement;\n }\n\n readonly active = signal(false);\n\n setActiveStyles(): void {\n this.active.set(true);\n }\n\n setInactiveStyles(): void {\n this.active.set(false);\n }\n\n disabled: boolean | undefined;\n\n getLabel(): string {\n return this.label();\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n protected readonly _disabled = computed(\n () => this.disabledInput() || this.disabled || this.scSelect.disabled(),\n );\n\n protected toggle() {\n if (this.isSelected()) {\n this.deselect();\n } else {\n this.select();\n }\n }\n\n private select() {\n if (this._disabled()) {\n return;\n }\n\n this.scSelect.setValue(this.value());\n }\n\n private deselect() {\n if (this._disabled()) {\n return;\n }\n\n this.scSelect.setValue(null);\n }\n}\n","import { ActiveDescendantKeyManager, _IdGenerator } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Injector,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SiChevronDownIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScOption } from './option';\n\n@Component({\n selector: 'sc-select',\n imports: [SiChevronDownIcon],\n template: `\n <button\n class=\"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\"\n #scSelectTrigger\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"isExpanded()\"\n [attr.aria-controls]=\"panelId\"\n (click)=\"open()\"\n type=\"button\"\n role=\"combobox\"\n >\n {{ label() }}\n <svg class=\"size-4 opacity-50\" si-chevron-down-icon></svg>\n </button>\n\n <ng-template #panelTemplate>\n <ul\n class=\"relative max-h-96 w-full overflow-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n [id]=\"panelId\"\n role=\"listbox\"\n >\n <ng-content />\n </ul>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScSelect),\n multi: true,\n },\n ],\n})\nexport class ScSelect implements ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly overlay = inject(Overlay);\n private readonly directionality = inject(Directionality, { optional: true });\n private readonly viewContainerRef = inject(ViewContainerRef);\n private portal: TemplatePortal<unknown> | null = null;\n readonly scSelectTrigger = viewChild.required<ElementRef<HTMLButtonElement>>('scSelectTrigger');\n\n protected readonly panelId: string = inject(_IdGenerator).getId('sc-select-panel-');\n readonly panelTemplate = viewChild.required<TemplateRef<unknown>>('panelTemplate');\n\n readonly placeholder = input<string>('');\n\n readonly isOpen = signal<boolean>(false);\n\n readonly options = contentChildren(ScOption);\n\n private readonly activeDescendant = signal<string | null>(null);\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n constructor() {\n effect(() => {\n //TODO scroll into option when the panel is open\n if (this.isOpen()) {\n this.syncSelectedState(this.value(), this.options(), this.options()[0]);\n }\n });\n\n this.keyManager.change.subscribe(() =>\n this.activeDescendant.set(this.keyManager.activeItem?.id() ?? null),\n );\n }\n\n /**\n * Scrolls an option into view.\n * @param option Option to be scrolled into view.\n * @param position Position to which to align the option relative to the scrollable container.\n */\n scrollOptionIntoView(option: ScOption, position: ScrollLogicalPosition) {\n option.nativeElement.scrollIntoView({ block: position, inline: position });\n }\n\n private readonly injector = inject(Injector);\n private readonly keyManager = new ActiveDescendantKeyManager(this.options, this.injector)\n .withHomeAndEnd(true)\n .withPageUpDown(true)\n .withVerticalOrientation(true);\n\n readonly value = model<unknown>(undefined);\n\n writeValue(value: unknown): void {\n this.value.set(value);\n }\n\n setValue(value: unknown) {\n this.value.set(value);\n this.onChange(value);\n this.changeDetectorRef.markForCheck();\n this.close();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: unknown) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n label = computed(() => {\n if (this.value()) {\n return this.options()\n .find((element) => element.value() === this.value())\n ?.label();\n }\n\n return this.placeholder();\n });\n\n isExpanded = computed(() => {\n return this.isOpen();\n });\n\n private _overlayRef: OverlayRef | null = null;\n\n private _getOverlayRef(): OverlayRef {\n if (this._overlayRef) {\n return this._overlayRef;\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.scSelectTrigger())\n .withFlexibleDimensions(false)\n .withPush(false)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ]);\n\n this._overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n direction: this.directionality || 'ltr',\n hasBackdrop: false,\n });\n\n this._overlayRef.keydownEvents().subscribe((event) => {\n this._handleKeydown(event);\n });\n\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this.scSelectTrigger().nativeElement;\n\n if (target && target !== origin && !origin.contains(target)) {\n this.close();\n }\n });\n\n return this._overlayRef;\n }\n\n open(): void {\n if (this.isOpen()) {\n return;\n }\n\n this.isOpen.set(true);\n\n const overlayRef = this._getOverlayRef();\n\n overlayRef.updateSize({ width: this.scSelectTrigger().nativeElement.offsetWidth });\n this.portal ??= new TemplatePortal(this.panelTemplate(), this.viewContainerRef);\n overlayRef.attach(this.portal);\n }\n\n close(): void {\n if (this.isOpen()) {\n this.focusOnTrigger();\n this.isOpen.set(false);\n this._overlayRef?.detach();\n }\n }\n\n focusOnTrigger() {\n this.scSelectTrigger().nativeElement.focus();\n }\n\n /**\n * Synchronizes the internal state of the component based on a specific selected date.\n * @param value Currently selected date.\n * @param options Options rendered out in the timepicker.\n * @param fallback Option to set as active if no option is selected.\n */\n private syncSelectedState(\n value: unknown,\n options: readonly ScOption[],\n fallback: ScOption | null,\n ): void {\n let hasSelected = false;\n\n for (const option of options) {\n if (value && option.value() === value) {\n this.scrollOptionIntoView(option, 'center');\n untracked(() => this.keyManager.setActiveItem(option));\n hasSelected = true;\n }\n }\n\n // If no option was selected, we need to reset the key manager since\n // it might be holding onto an option that no longer exists.\n if (!hasSelected) {\n if (fallback) {\n untracked(() => this.keyManager.setActiveItem(fallback));\n this.scrollOptionIntoView(fallback, 'center');\n } else {\n untracked(() => this.keyManager.setActiveItem(-1));\n }\n }\n }\n\n /** Handles keyboard events while the overlay is open. */\n private _handleKeydown(event: KeyboardEvent): void {\n const key = event.key;\n\n if (key === 'Tab') {\n this.close();\n } else if (key === 'Escape' && !hasModifierKey(event)) {\n event.preventDefault();\n this.close();\n } else if (key === 'Enter') {\n event.preventDefault();\n\n if (this.keyManager.activeItem) {\n this.setValue(this.keyManager.activeItem.value() ?? '');\n } else {\n this.close();\n }\n } else {\n const previousActive = this.keyManager.activeItem;\n this.keyManager.onKeydown(event);\n const currentActive = this.keyManager.activeItem;\n\n if (currentActive && currentActive !== previousActive) {\n this.scrollOptionIntoView(currentActive, 'nearest');\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { ScOption, ScSelect } from '../select';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'div[sc-page-size-select]',\n imports: [ScSelect, ScOption, ReactiveFormsModule],\n template: `\n <sc-select [formControl]=\"paginatorService.pageSizeFormControl\">\n @for (pageSizeOption of paginatorService.pageSizeOptions(); track $index) {\n <sc-option [value]=\"pageSizeOption\">{{ pageSizeOption }}</sc-option>\n }\n </sc-select>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageSizeSelect {\n protected readonly paginatorService = inject(PaginatorService);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'nav[sc-pagination]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'navigation',\n 'aria-label': 'pagination',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPagination {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('mx-auto flex w-full justify-center', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ul[sc-pagination-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationList {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-row items-center gap-1', this.classInput()),\n );\n}\n","import { Directive, booleanAttribute, computed, input, linkedSignal } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 pointer-fine:cursor-pointer',\n {\n variants: {\n variant: {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'size-10',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n },\n },\n);\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n\n@Directive({\n host: {\n '[class]': 'class()',\n '[type]': 'type()',\n '[attr.data-disabled]': 'disabled()',\n },\n})\nexport class ScButtonBase {\n readonly variantInput = input<ButtonVariants['variant']>('primary', {\n alias: 'variant',\n });\n protected readonly variant = linkedSignal<ButtonVariants['variant']>(() => this.variantInput());\n\n readonly sizeInput = input<ButtonVariants['size']>('default', {\n alias: 'size',\n });\n protected readonly size = linkedSignal<ButtonVariants['size']>(() => this.sizeInput());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.classInput()),\n );\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n protected readonly disabled = linkedSignal<boolean>(() => this.disabledInput());\n\n readonly type = input<'submit' | 'reset' | 'button'>('button');\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { ScButtonBase } from './button-base';\n\n@Component({\n selector: 'button[sc-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'button',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScButton extends ScButtonBase {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-first]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to first page',\n '(click)': 'firstPage()',\n '(keydown.enter)': 'firstPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationFirst extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isPrevPageDisabled(),\n );\n\n protected readonly paginatorService = inject(PaginatorService);\n\n protected firstPage() {\n this.paginatorService.pageChanged.set({ page: 1, pageSize: this.paginatorService.pageSize() });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-last]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to last page',\n '(click)': 'lastPage()',\n '(keydown.enter)': 'lastPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationLast extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isNextPageDisabled(),\n );\n\n private readonly paginatorService = inject(PaginatorService);\n\n protected lastPage() {\n this.paginatorService.pageChanged.set({\n page: this.paginatorService.numberOfPages(),\n pageSize: this.paginatorService.pageSize(),\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-previous]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to previous page',\n '(click)': 'prevPage()',\n '(keydown.enter)': 'prevPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationPrevious extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.size() === 'default' && 'gap-1 pl-2.5',\n this.classInput(),\n ),\n );\n\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isPrevPageDisabled(),\n );\n\n protected readonly paginatorService = inject(PaginatorService);\n\n protected prevPage() {\n if (!this.paginatorService.isPrevPageDisabled()) {\n this.paginatorService.pageChanged.set({\n page: this.paginatorService.currentPage() - 1,\n pageSize: this.paginatorService.pageSize(),\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-next]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to next page',\n '(click)': 'nextPage()',\n '(keydown.enter)': 'nextPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationNext extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.size() === 'default' && 'gap-1 pr-2.5',\n this.classInput(),\n ),\n );\n\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isNextPageDisabled(),\n );\n\n private readonly paginatorService = inject(PaginatorService);\n\n protected nextPage() {\n if (!this.paginatorService.isNextPageDisabled()) {\n this.paginatorService.pageChanged.set({\n page: this.paginatorService.currentPage() + 1,\n pageSize: this.paginatorService.pageSize(),\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.aria-current]': \"isActive() ? 'page' : undefined\",\n '(click)': 'selectPage()',\n '(keydown.enter)': 'selectPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationLink extends ScButtonBase {\n protected readonly paginatorService = inject(PaginatorService);\n\n readonly page = input.required<number | '...'>();\n\n protected readonly isActive = computed(() => {\n return this.page() === this.paginatorService.currentPage();\n });\n\n protected override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.isActive()\n ? this.paginatorService.paginationActiveLinkVariant()\n : this.paginatorService.paginationLinkVariant(),\n );\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.isActive() &&\n this.paginatorService.paginationActiveLinkVariant() === 'secondary' &&\n 'border border-input',\n this.classInput(),\n ),\n );\n\n protected override readonly size = linkedSignal<ButtonVariants['size']>(() => 'icon');\n\n protected selectPage() {\n const page = this.page();\n if (page !== '...' && page !== this.paginatorService.currentPage()) {\n this.paginatorService.pageChanged.set({\n page: page,\n pageSize: this.paginatorService.pageSize(),\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-pagination-ellipsis]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-hidden': 'true',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationEllipsis {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex size-9 items-center justify-center', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCard {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('rounded-lg border bg-card text-card-foreground shadow-sm', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex flex-col space-y-1.5 p-6', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-card-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('text-2xl font-semibold leading-none tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-card-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('p-6 pt-0', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center p-6 pt-0', this.classInput()));\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class CalendarService {\n readonly firstYear = signal(0);\n\n readonly lastYear = signal(0);\n}\n","import { Temporal } from '@js-temporal/polyfill';\n\nexport function getFirstDayOfWeek(localeId: string): number {\n const locale = new Intl.Locale(localeId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (locale as any).getWeekInfo().firstDay;\n}\n\n// Format date using Intl\nexport function formatDate(locale: string, date: Temporal.PlainDate): string {\n // Convert Temporal date to JavaScript Date for Intl compatibility\n const jsDate = new Date(date.year, date.month - 1, date.day);\n\n return new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }).format(jsDate);\n}\n\n// Get day names based on locale\nexport function getLocalizedDayNames(\n locale: string,\n format: 'long' | 'short' | 'narrow' = 'short',\n): string[] {\n const days = [];\n const firstDay = getFirstDayOfWeek(locale);\n\n // Create a date for a week\n const date = new Date(2023, 0, 1); // Jan 1, 2023 is a Sunday\n const formatter = new Intl.DateTimeFormat(locale, { weekday: format });\n\n // Adjust to get days in correct order for locale\n for (let i = 0; i < 7; i++) {\n const dayIndex = (firstDay + i) % 7;\n date.setDate(1 + dayIndex); // Jan 1 is a Sunday in our reference date\n days.push(formatter.format(date));\n }\n\n return days;\n}\n\n// Get month names based on locale\nexport function getLocalizedMonthNames(locale: string): string[] {\n const months = [];\n const formatter = new Intl.DateTimeFormat(locale, { month: 'long' });\n\n for (let month = 0; month < 12; month++) {\n const date = new Date(2023, month, 1);\n months.push(formatter.format(date));\n }\n\n return months;\n}\n\n// Get current month name based on locale\nexport function getMonthName(locale: string, yearMonth: Temporal.PlainYearMonth): string {\n const jsDate = new Date(yearMonth.year, yearMonth.month - 1, 1);\n\n return new Intl.DateTimeFormat(locale, { month: 'long' }).format(jsDate);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\nimport {\n SiChevronDownIcon,\n SiChevronLeftIcon,\n SiChevronRightIcon,\n SiMinusIcon,\n} from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\nimport { CalendarService } from './calendar.service';\nimport { View } from './types';\nimport { getMonthName } from './utils';\n\n@Component({\n selector: 'sc-calendar-header',\n imports: [SiChevronRightIcon, SiChevronLeftIcon, ScButton, SiChevronDownIcon, SiMinusIcon],\n template: `\n @if (view() !== 'months') {\n <button\n (click)=\"monthYearChange.emit(-1)\"\n aria-label=\"Previous month\"\n sc-button\n variant=\"outline\"\n type=\"button\"\n size=\"icon\"\n >\n <svg si-chevron-left-icon></svg>\n </button>\n }\n\n @if (view() === 'days') {\n <button (click)=\"viewToggled.emit()\" sc-button variant=\"ghost\" type=\"button\">\n {{ monthName() }} {{ currentMonth().year }}\n <svg si-chevron-down-icon></svg>\n </button>\n }\n\n @if (view() === 'months') {\n <div>{{ monthName() }} {{ currentMonth().year }}</div>\n }\n\n @if (view() === 'years') {\n <div class=\"flex items-center\">\n {{ firstYear() }}\n <svg class=\"size-4\" si-minus-icon></svg>\n {{ lastYear() }}\n </div>\n }\n\n @if (view() !== 'months') {\n <button\n (click)=\"monthYearChange.emit(1)\"\n aria-label=\"Next month\"\n sc-button\n variant=\"outline\"\n type=\"button\"\n size=\"icon\"\n type=\"button\"\n >\n <svg si-chevron-right-icon></svg>\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCalendarHeader {\n private readonly calendarService = inject(CalendarService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex',\n this.view() === 'months' && 'justify-center',\n this.view() !== 'months' && 'justify-between',\n this.classInput(),\n ),\n );\n\n readonly currentMonth = input.required<Temporal.PlainYearMonth>();\n\n readonly view = input.required<View>();\n\n protected readonly firstYear = computed(() => this.calendarService.firstYear());\n\n protected readonly lastYear = computed(() => this.calendarService.lastYear());\n\n readonly monthYearChange = output<number>();\n readonly viewToggled = output<void>();\n\n private readonly localeId = inject(LOCALE_ID);\n\n protected readonly monthName = computed(() => getMonthName(this.localeId, this.currentMonth()));\n}\n","import { Signal, computed } from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\n\nimport { CalendarDay } from './types';\nimport { getFirstDayOfWeek } from './utils';\n\nexport function isToday(date: Temporal.PlainDate): boolean {\n //TODO remove today from here\n const today = Temporal.Now.plainDateISO();\n return date.equals(today);\n}\n\nexport function isDateDisabled(\n minDate: Signal<Temporal.PlainDate>,\n maxDate: Signal<Temporal.PlainDate>,\n date: Temporal.PlainDate,\n): boolean {\n if (minDate() && Temporal.PlainDate.compare(date, minDate()) < 0) {\n return true;\n }\n if (maxDate() && Temporal.PlainDate.compare(date, maxDate()) > 0) {\n return true;\n }\n return false;\n}\n\n// minDate: Signal<Temporal.PlainDate>,\n// maxDate: Signal<Temporal.PlainDate>,\n\n//Remove minDate and maxDate\n// Generate calendar days for the current month\nexport function generateCalendarDays(\n localeId: string,\n currentMonth: Signal<Temporal.PlainYearMonth>,\n) {\n return computed(() => {\n const days: CalendarDay[] = [];\n\n // Get locale-specific week info\n const firstDayOfWeek = getFirstDayOfWeek(localeId);\n\n const firstDayOfMonth = currentMonth().toPlainDate({ day: 1 });\n\n // Calculate the day of week adjusted for locale\n // Convert from 1-7 (Monday-Sunday) to 0-6 for easier array handling\n const firstOfMonthDayOfWeek = firstDayOfMonth.dayOfWeek % 7;\n const adjustedFirstDay = (firstOfMonthDayOfWeek - firstDayOfWeek + 7) % 7;\n\n // Add days from previous month to fill the first week\n const prevMonth = currentMonth().subtract({ months: 1 });\n const daysInPrevMonth = prevMonth.daysInMonth;\n\n for (let i = 0; i < adjustedFirstDay; i++) {\n const day = daysInPrevMonth - adjustedFirstDay + i + 1;\n const date = prevMonth.toPlainDate({ day });\n days.push({\n date,\n dayOfMonth: day,\n isInCurrentMonth: false,\n // isToday: isToday(date),\n // isDisabled: isDateDisabled(minDate, maxDate, date),\n });\n }\n\n // Add days of current month\n for (let day = 1; day <= currentMonth().daysInMonth; day++) {\n const date = currentMonth().toPlainDate({ day });\n days.push({\n date,\n dayOfMonth: day,\n isInCurrentMonth: true,\n // isToday: isToday(date),\n // isDisabled: isDateDisabled(minDate, maxDate, date),\n });\n }\n\n const a = days.length % 7;\n\n if (a > 0) {\n // Add days from next month to complete the grid\n const daysNeeded = 7 - a;\n const nextMonth = currentMonth().add({ months: 1 });\n\n for (let day = 1; day <= daysNeeded; day++) {\n const date = nextMonth.toPlainDate({ day });\n days.push({\n date,\n dayOfMonth: day,\n isInCurrentMonth: false,\n // isToday: isToday(date),\n // isDisabled: isDateDisabled(minDate, maxDate, date),\n });\n }\n }\n\n return days;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScButtonBase } from '../button';\n\n@Component({\n selector: 'button[sc-day-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDayButton extends ScButtonBase {\n private readonly host = inject(ElementRef);\n\n readonly hasFocus = input.required<boolean>();\n\n constructor() {\n super();\n effect(() => {\n if (this.hasFocus()) {\n this.host.nativeElement.focus();\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { isToday } from './calendar-utils';\nimport { ScDayButton } from './day-button';\nimport { CalendarDay, ScActiveDate } from './types';\n\n@Component({\n selector: 'sc-day-selector',\n imports: [ScDayButton],\n template: `\n @for (weekday of weekdays(); track weekday) {\n <abbr class=\"size-10 text-center text-muted-foreground\">\n {{ weekday }}\n </abbr>\n }\n\n @for (day of calendarDays(); track day.date) {\n <button\n [variant]=\"getVariant(day)\"\n [hasFocus]=\"hasFocus(day.date)\"\n [tabindex]=\"isActive(day.date) ? 0 : -1\"\n (click)=\"selectDay(day)\"\n sc-day-button\n size=\"icon\"\n >\n {{ day.dayOfMonth }}\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n '(keydown)': 'handleKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDaySelector {\n readonly calendarDays = input.required<CalendarDay[]>();\n readonly weekdays = input.required<string[]>();\n\n readonly selectedDate = input<Temporal.PlainDate>();\n readonly dateSelected = output<Temporal.PlainDate>();\n\n protected readonly activeDate = linkedSignal<ScActiveDate>(() => {\n return { value: this.date(), hasFocus: true };\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid grid-cols-7 gap-px', this.classInput()));\n\n readonly date = input.required<Temporal.PlainDate>();\n readonly currentMonth = input.required<Temporal.PlainYearMonth>();\n readonly firstDayOfMonth = input.required<Temporal.PlainDate>();\n readonly lastDayOfMonth = input.required<Temporal.PlainDate>();\n\n readonly prevMonth = output<void>();\n readonly nextMonth = output<void>();\n\n protected getVariant(day: CalendarDay) {\n if (this.isSelected(day.date)) {\n return 'primary';\n }\n\n if (this.isActive(day.date)) {\n return 'secondary';\n }\n\n if (isToday(day.date)) {\n return 'outline';\n }\n\n return 'ghost';\n }\n\n protected selectDay(day: CalendarDay) {\n this.dateSelected.emit(day.date);\n }\n\n private isSelected(date: Temporal.PlainDate): boolean {\n return this.selectedDate() ? date.equals(this.selectedDate()!) : false;\n }\n\n protected isActive(date: Temporal.PlainDate): boolean {\n return date.equals(this.activeDate().value);\n }\n\n protected hasFocus(date: Temporal.PlainDate): boolean {\n return this.isActive(date) && this.activeDate().hasFocus;\n }\n\n handleKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n this.moveFocus(-1);\n event.preventDefault();\n break;\n case 'ArrowRight':\n this.moveFocus(1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.moveFocus(-7);\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.moveFocus(7);\n event.preventDefault();\n break;\n case 'Enter':\n case ' ':\n if (\n Temporal.PlainDate.compare(this.activeDate().value, this.calendarDays()[0].date) >= 0 &&\n Temporal.PlainDate.compare(\n this.activeDate().value,\n this.calendarDays()[this.calendarDays().length - 1].date,\n ) <= 0\n ) {\n this.dateSelected.emit(this.activeDate().value);\n event.preventDefault();\n }\n break;\n case 'Home':\n // Move to first day of the month\n\n this.activeDate.set({ value: this.firstDayOfMonth(), hasFocus: true });\n\n event.preventDefault();\n break;\n\n case 'End':\n // Move to last day of the month\n this.activeDate.set({ value: this.lastDayOfMonth(), hasFocus: true });\n event.preventDefault();\n break;\n case 'PageUp':\n // Previous month\n this.prevMonth.emit();\n\n //TOOO maybe calcute the date instead of using firstDayOfMonth\n this.activeDate.set({\n value: this.firstDayOfMonth(),\n hasFocus: true,\n });\n\n event.preventDefault();\n break;\n case 'PageDown':\n // Next month\n\n this.nextMonth.emit();\n\n //TOOO maybe calcute the date instead of using firstDayOfMonth\n this.activeDate.set({\n value: this.firstDayOfMonth(),\n hasFocus: true,\n });\n\n event.preventDefault();\n break;\n }\n }\n\n // Move focus in the calendar grid with support for month navigation\n private moveFocus(delta: number): void {\n let newDate;\n\n if (Math.sign(delta) === 1) {\n newDate = this.activeDate().value.add({ days: delta });\n }\n\n if (Math.sign(delta) === -1) {\n newDate = this.activeDate().value.subtract({ days: Math.abs(delta) });\n }\n\n if (!newDate) {\n return;\n }\n\n if (Temporal.PlainDate.compare(newDate, this.calendarDays()[0].date) < 0) {\n this.prevMonth.emit();\n }\n\n if (\n Temporal.PlainDate.compare(\n newDate,\n this.calendarDays()[this.calendarDays().length - 1].date,\n ) > 0\n ) {\n this.nextMonth.emit();\n }\n\n this.activeDate.set({ value: newDate, hasFocus: true });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButton } from '../button';\nimport { getLocalizedMonthNames } from './utils';\n\n@Component({\n selector: 'sc-month-selector',\n imports: [ScButton],\n template: `\n @for (month of months; track $index; let i = $index) {\n <button\n [variant]=\"getVariant(i)\"\n (click)=\"selectMonth(i); $event.stopPropagation()\"\n sc-button\n >\n {{ month }}\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMonthSelector {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid grid-cols-3 gap-1 w-full', this.classInput()));\n\n readonly currentMonth = input.required<Temporal.PlainYearMonth>();\n\n protected months: string[] = [];\n\n private readonly localeId = inject(LOCALE_ID);\n\n constructor() {\n this.months = getLocalizedMonthNames(this.localeId);\n }\n\n readonly monthSelected = output<Temporal.PlainYearMonth>();\n\n protected selectMonth(monthIndex: number): void {\n this.monthSelected.emit(\n Temporal.PlainYearMonth.from({ year: this.currentMonth().year, month: monthIndex + 1 }),\n );\n }\n\n protected getVariant(i: number) {\n if (i === this.currentMonth().month - 1) {\n return 'primary';\n }\n\n // if (this.isFocused(day.date)) {\n // return 'secondary';\n // }\n\n // if (isToday(day.date)) {\n // return 'outline';\n // }\n\n return 'ghost';\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButton } from '../button';\nimport { CalendarService } from './calendar.service';\n\n@Component({\n selector: 'sc-year-selector',\n imports: [ScButton],\n template: `\n @for (year of years(); track $index) {\n <button\n [variant]=\"getVariant(year)\"\n (click)=\"selectYear(year); $event.stopPropagation()\"\n sc-button\n >\n {{ year }}\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScYearSelector {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid grid-cols-4 gap-1 w-full', this.classInput()));\n\n readonly currentYear = input.required<number>();\n\n readonly previewYear = input.required<number>();\n\n private readonly firstYear = computed(() => this.calendarService.firstYear());\n\n private readonly lastYear = computed(() => this.calendarService.lastYear());\n\n protected readonly years = computed(() => {\n const years: number[] = [];\n\n for (let year = this.firstYear(); year <= this.lastYear(); year++) {\n years.push(year);\n }\n\n return years;\n });\n\n readonly yearSelected = output<number>();\n\n protected selectYear(year: number): void {\n this.yearSelected.emit(year);\n }\n\n private readonly calendarService = inject(CalendarService);\n\n constructor() {\n effect(() => {\n this.calendarService.firstYear.set(this.previewYear() - 9);\n\n this.calendarService.lastYear.set(this.previewYear() + 10);\n });\n }\n\n protected getVariant(y: number) {\n if (y === this.currentYear()) {\n return 'primary';\n }\n\n // if (this.isFocused(day.date)) {\n // return 'secondary';\n // }\n\n // if (isToday(day.date)) {\n // return 'outline';\n // }\n\n return 'ghost';\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCard, ScCardContent, ScCardHeader } from '../card';\nimport { ScCalendarHeader } from './calendar-header';\nimport { generateCalendarDays } from './calendar-utils';\nimport { CalendarService } from './calendar.service';\nimport { ScDaySelector } from './day-selector';\nimport { ScMonthSelector } from './month-selector';\nimport { View } from './types';\nimport { getLocalizedDayNames } from './utils';\nimport { ScYearSelector } from './year-selector';\n\n@Component({\n selector: 'sc-calendar',\n imports: [\n ScYearSelector,\n ScMonthSelector,\n ScDaySelector,\n ScCard,\n ScCardHeader,\n ScCardContent,\n ScCalendarHeader,\n ],\n template: `\n <div sc-card>\n <div sc-card-header>\n <sc-calendar-header\n [currentMonth]=\"currentMonth()\"\n [view]=\"view()\"\n (monthYearChange)=\"setMonthYear($event)\"\n (viewToggled)=\"toggleView()\"\n />\n </div>\n <div sc-card-content>\n @switch (view()) {\n @case ('years') {\n <sc-year-selector\n [currentYear]=\"currentYear()\"\n [previewYear]=\"previewYear()\"\n (yearSelected)=\"selectYear($event)\"\n />\n }\n @case ('months') {\n <sc-month-selector\n [currentMonth]=\"currentMonth()\"\n (monthSelected)=\"selectMonth($event)\"\n />\n }\n @default {\n <sc-day-selector\n [weekdays]=\"weekdays\"\n [selectedDate]=\"value()\"\n [calendarDays]=\"calendarDays()\"\n [date]=\"date()\"\n [currentMonth]=\"currentMonth()\"\n [firstDayOfMonth]=\"firstDayOfMonth()\"\n [lastDayOfMonth]=\"lastDayOfMonth()\"\n (dateSelected)=\"setValue($event)\"\n (nextMonth)=\"nextMonth()\"\n (prevMonth)=\"prevMonth()\"\n />\n }\n }\n </div>\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScCalendar),\n multi: true,\n },\n CalendarService,\n ],\n})\nexport class ScCalendar implements ControlValueAccessor {\n readonly value = model<Temporal.PlainDate>();\n readonly min = input<Temporal.PlainDate>();\n readonly max = input<Temporal.PlainDate>();\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block w-84', this.classInput()));\n\n private readonly today = signal(Temporal.Now.plainDateISO());\n\n protected readonly date = computed(() => {\n const v = this.value();\n if (v) {\n return v;\n } else {\n return this.today();\n }\n });\n\n protected readonly currentYear = linkedSignal(() => {\n return this.date()!.year;\n });\n\n protected readonly previewYear = linkedSignal(() => {\n return this.currentYear();\n });\n\n protected readonly currentMonth = linkedSignal(() => {\n return this.date()!.toPlainYearMonth();\n });\n\n protected readonly firstDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: 1,\n }),\n );\n\n protected readonly lastDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: this.currentMonth().daysInMonth,\n }),\n );\n\n private readonly localeId = inject(LOCALE_ID);\n\n protected readonly calendarDays = generateCalendarDays(this.localeId, this.currentMonth);\n\n // Helper methods\n isToday(date: Temporal.PlainDate): boolean {\n const today = Temporal.Now.plainDateISO();\n return date.equals(today);\n }\n\n isDateDisabled(date: Temporal.PlainDate): boolean {\n if (this.min() && Temporal.PlainDate.compare(date, this.min()!) < 0) {\n return true;\n }\n if (this.max() && Temporal.PlainDate.compare(date, this.max()!) > 0) {\n return true;\n }\n return false;\n }\n\n protected setValue(date: Temporal.PlainDate): void {\n if (this.isDateDisabled(date)) return;\n\n this.value.set(date);\n\n this.onChange(date);\n this.onTouched();\n }\n\n // Navigation methods\n protected prevMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.subtract({ months: 1 }));\n }\n }\n\n protected nextMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.add({ months: 1 }));\n }\n }\n\n protected readonly view = signal<View>('days');\n\n protected toggleView(): void {\n if (this.view() === 'days') {\n this.view.set('years');\n } else if (this.view() === 'years') {\n this.view.set('months');\n } else {\n this.view.set('days');\n }\n }\n\n weekdays: string[] = getLocalizedDayNames(this.localeId);\n\n protected setMonthYear(n: number) {\n if (this.view() === 'years') {\n this.previewYear.update((value) => value + n * 20);\n }\n\n if (this.view() === 'days') {\n if (n === 1) {\n this.nextMonth();\n }\n\n if (n === -1) {\n this.prevMonth();\n }\n }\n }\n\n protected selectYear(year: number) {\n this.currentYear.set(year);\n this.currentMonth.update((month) =>\n Temporal.PlainYearMonth.from({ year: year, month: month.month }),\n );\n this.toggleView();\n }\n\n protected selectMonth(month: Temporal.PlainYearMonth) {\n this.currentMonth.set(month);\n this.toggleView();\n }\n\n //CVA\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: Temporal.PlainDate) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n writeValue(value: Temporal.PlainDate): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: Temporal.PlainDate) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\n\nimport { isToday } from '../calendar/calendar-utils';\nimport { ScDayButton } from '../calendar/day-button';\nimport { CalendarDay } from '../calendar/types';\nimport { ScRange } from './types';\n\n@Component({\n selector: 'sc-days-selector',\n imports: [ScDayButton],\n template: `\n <div class=\"grid grid-cols-7 gap-5\">\n @for (weekday of weekdays(); track weekday) {\n <abbr class=\"size-10 text-center text-muted-foreground\">\n {{ weekday }}\n </abbr>\n }\n\n @for (day of calendarDays(); track day.date) {\n <button\n [variant]=\"getVariant(day)\"\n [hasFocus]=\"isFocused(day.date)\"\n (click)=\"selectDate(day)\"\n sc-day-button\n size=\"icon\"\n >\n {{ day.dayOfMonth }}\n </button>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDaysSelector {\n readonly calendarDays = input.required<CalendarDay[]>();\n readonly weekdays = input.required<string[]>();\n readonly rangeSelected = output<ScRange>();\n\n readonly selectedRange = input<ScRange>();\n readonly focusedDate = input<Temporal.PlainDate>();\n\n protected getVariant(day: CalendarDay) {\n if (this.isSelected(day.date)) {\n return 'primary';\n }\n\n if (this.isFocused(day.date)) {\n return 'secondary';\n }\n\n if (isToday(day.date)) {\n return 'outline';\n }\n\n return 'ghost';\n }\n\n protected selectDay(day: CalendarDay) {\n const range = {\n start: day.date,\n end: day.date,\n };\n\n this.rangeSelected.emit(range);\n }\n\n isSelected(date: Temporal.PlainDate): boolean {\n return this.selectedRange()\n ? date.equals(this.selectedRange()!.start) || date.equals(this.selectedRange()!.end)\n : false;\n }\n\n isFocused(date: Temporal.PlainDate): boolean {\n return this.focusedDate() ? date.equals(this.focusedDate()!) : false;\n }\n\n isDateInRange(date: Temporal.PlainDate): boolean {\n if (!this.selectedRange()?.start || !this.selectedRange()?.end) {\n return false;\n }\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n (Temporal.PlainDate.compare(date, this.selectedRange()?.start!) >= 0 &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n Temporal.PlainDate.compare(date, this.selectedRange()?.end!) <= 0) ||\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n (Temporal.PlainDate.compare(date, this.selectedRange()?.end!) >= 0 &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n Temporal.PlainDate.compare(date, this.selectedRange()?.start!) <= 0)\n );\n }\n\n selectDate(day: CalendarDay) {\n console.log('selectDate');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCalendarHeader } from '../calendar/calendar-header';\nimport { generateCalendarDays } from '../calendar/calendar-utils';\nimport { ScMonthSelector } from '../calendar/month-selector';\nimport { getLocalizedDayNames } from '../calendar/utils';\nimport { ScYearSelector } from '../calendar/year-selector';\nimport { ScCard, ScCardContent, ScCardHeader } from '../card';\nimport { ScDaysSelector } from './days-selector';\nimport { ScRange } from './types';\n\n@Component({\n selector: 'sc-range-calendar',\n imports: [\n ScYearSelector,\n ScMonthSelector,\n ScDaysSelector,\n ScCard,\n ScCardHeader,\n ScCardContent,\n ScCalendarHeader,\n ],\n template: `\n <div sc-card>\n <div sc-card-header>\n <sc-calendar-header\n [currentMonth]=\"currentMonth()\"\n [view]=\"view()\"\n (monthYearChange)=\"setMonthYear($event)\"\n (viewToggled)=\"toggleView()\"\n />\n </div>\n <div sc-card-content>\n @switch (view()) {\n @case ('years') {\n <sc-year-selector\n [currentYear]=\"currentYear()\"\n [previewYear]=\"previewYear()\"\n (yearSelected)=\"selectYear($event)\"\n />\n }\n @case ('months') {\n <sc-month-selector\n [currentMonth]=\"currentMonth()\"\n (monthSelected)=\"selectMonth($event)\"\n />\n }\n @default {\n <sc-days-selector\n [weekdays]=\"weekdays\"\n [selectedRange]=\"value()\"\n [calendarDays]=\"calendarDays()\"\n (rangeSelected)=\"selectRange($event)\"\n />\n }\n }\n </div>\n </div>\n `,\n host: {\n '[class]': 'class()',\n // '(keydown)': 'handleKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScRangeCalendar),\n multi: true,\n },\n ],\n})\nexport class ScRangeCalendar implements ControlValueAccessor {\n readonly value = model<ScRange>();\n\n readonly minDate = input<Temporal.PlainDate>();\n readonly maxDate = input<Temporal.PlainDate>();\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n private readonly today = signal(Temporal.Now.plainDateISO());\n\n protected readonly focusedDate = linkedSignal(() => {\n if (this.value()) {\n return this.value();\n } else {\n return this.today();\n }\n });\n\n protected readonly currentYear = linkedSignal(() => {\n if (this.value()) {\n return this.value()!.start.year;\n } else {\n return this.today().year;\n }\n });\n\n protected readonly previewYear = linkedSignal(() => {\n return this.currentYear();\n });\n\n protected readonly currentMonth = linkedSignal(() => {\n if (this.value()) {\n return this.value()!.start.toPlainYearMonth();\n } else {\n return this.today().toPlainYearMonth();\n }\n });\n\n private readonly firstDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: 1,\n }),\n );\n\n private readonly lastDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: this.currentMonth().daysInMonth,\n }),\n );\n\n private readonly localeId = inject(LOCALE_ID);\n\n protected readonly calendarDays = generateCalendarDays(this.localeId, this.currentMonth);\n\n // Helper methods\n isToday(date: Temporal.PlainDate): boolean {\n const today = Temporal.Now.plainDateISO();\n return date.equals(today);\n }\n\n isDateDisabled(date: Temporal.PlainDate): boolean {\n if (this.minDate() && Temporal.PlainDate.compare(date, this.minDate()!) < 0) {\n return true;\n }\n if (this.maxDate() && Temporal.PlainDate.compare(date, this.maxDate()!) > 0) {\n return true;\n }\n return false;\n }\n\n selectRange(range: ScRange): void {\n // if (this.isDateDisabled(date)) return;\n\n this.value.set(range);\n\n this.onChange(range);\n this.onTouched();\n }\n\n // Move focus in the calendar grid with support for month navigation\n // moveFocus(delta: number): void {\n // let newDate;\n\n // if (Math.sign(delta) === 1) {\n // newDate = this.focusedDate()?.add({ days: delta });\n // }\n\n // if (Math.sign(delta) === -1) {\n // newDate = this.focusedDate()?.subtract({ days: Math.abs(delta) });\n // }\n\n // if (!newDate) {\n // return;\n // }\n\n // if (Temporal.PlainDate.compare(newDate, this.calendarDays()[0].date) < 0) {\n // this.prevMonth();\n // }\n\n // if (\n // Temporal.PlainDate.compare(\n // newDate,\n // this.calendarDays()[this.calendarDays().length - 1].date,\n // ) > 0\n // ) {\n // this.nextMonth();\n // }\n\n // this.focusedDate.set(newDate);\n // }\n\n // handleKeydown(event: KeyboardEvent): void {\n // switch (event.key) {\n // case 'ArrowLeft':\n // this.moveFocus(-1);\n // event.preventDefault();\n // break;\n // case 'ArrowRight':\n // this.moveFocus(1);\n // event.preventDefault();\n // break;\n // case 'ArrowUp':\n // this.moveFocus(-7);\n // event.preventDefault();\n // break;\n // case 'ArrowDown':\n // this.moveFocus(7);\n // event.preventDefault();\n // break;\n // case 'Enter':\n // case ' ':\n // if (\n // Temporal.PlainDate.compare(this.focusedDate()!, this.calendarDays()[0].date) >= 0 &&\n // Temporal.PlainDate.compare(\n // this.focusedDate()!,\n // this.calendarDays()[this.calendarDays().length - 1].date,\n // ) <= 0\n // ) {\n // this.selectDate(this.focusedDate()!);\n // event.preventDefault();\n // }\n // break;\n // case 'Home':\n // // Move to first day of the month\n\n // this.focusedDate.set(this.firstDayOfMonth());\n\n // event.preventDefault();\n // break;\n\n // case 'End':\n // // Move to last day of the month\n // this.focusedDate.set(this.lastDayOfMonth());\n // event.preventDefault();\n // break;\n // case 'PageUp':\n // // Previous month\n // this.prevMonth();\n // event.preventDefault();\n // break;\n // case 'PageDown':\n // // Next month\n // this.nextMonth();\n // event.preventDefault();\n // break;\n // }\n // }\n\n // Navigation methods\n prevMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.subtract({ months: 1 }));\n }\n }\n\n nextMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.add({ months: 1 }));\n }\n }\n\n protected readonly view = signal<'days' | 'years' | 'months'>('days');\n\n protected toggleView(): void {\n if (this.view() === 'days') {\n this.view.set('years');\n } else if (this.view() === 'years') {\n this.view.set('months');\n } else {\n this.view.set('days');\n }\n }\n\n weekdays: string[] = getLocalizedDayNames(this.localeId);\n\n protected setMonthYear(n: number) {\n if (this.view() === 'years') {\n this.previewYear.update((value) => value + n * 20);\n }\n\n if (this.view() === 'days') {\n if (n === 1) {\n this.nextMonth();\n }\n\n if (n === -1) {\n this.prevMonth();\n }\n }\n }\n\n protected selectYear(year: number) {\n this.currentYear.set(year);\n this.currentMonth.update((month) =>\n Temporal.PlainYearMonth.from({ year: year, month: month.month }),\n );\n this.value.set(undefined);\n this.toggleView();\n }\n\n protected selectMonth(month: Temporal.PlainYearMonth) {\n this.currentMonth.set(month);\n this.toggleView();\n }\n\n //CVA\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: ScRange) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n writeValue(value: ScRange): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: ScRange) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-full-calendar',\n imports: [CommonModule],\n template: `\n <div class=\"mx-auto flex size-full max-w-full flex-col items-center px-4\">\n <!-- Calendar Controls -->\n <div class=\"mb-4 flex w-full justify-around gap-2\">\n <button\n class=\"w-full rounded bg-gray-200 px-4 py-2 hover:bg-gray-300 sm:w-auto\"\n (click)=\"setView('month')\"\n >\n Month\n </button>\n <button\n class=\"w-full rounded bg-gray-200 px-4 py-2 hover:bg-gray-300 sm:w-auto\"\n (click)=\"setView('week')\"\n >\n Week\n </button>\n <button\n class=\"w-full rounded bg-gray-200 px-4 py-2 hover:bg-gray-300 sm:w-auto\"\n (click)=\"setView('day')\"\n >\n Day\n </button>\n </div>\n\n <!-- Calendar Header -->\n <div class=\"mb-4 flex w-full items-center justify-between\">\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToPreviousMonth()\"\n >\n <\n </button>\n <span class=\"grow text-center text-lg font-semibold\">\n {{ currentDate.toLocaleString('default', { month: 'long' }) }} {{ currentYear }}\n </span>\n <button class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\" (click)=\"goToNextMonth()\">\n >\n </button>\n </div>\n\n <!-- Weekdays -->\n <div class=\"grid w-full grid-cols-7 gap-2 text-center text-sm font-semibold sm:text-base\">\n @for (day of weekdays; track day) {\n <div class=\"text-gray-600\">{{ day }}</div>\n }\n </div>\n\n <!-- Days -->\n <div class=\"grid w-full grow grid-cols-7 gap-2 sm:grid-cols-7\">\n @for (day of daysInMonth; track day) {\n <div\n class=\"flex h-28 flex-col items-center justify-start rounded border p-2 sm:h-32 md:h-40\"\n [ngClass]=\"{\n 'bg-gray-100': day === null,\n 'bg-green-200 border-green-500': isToday(day),\n }\"\n (click)=\"day !== null && addEvent(formatDate(day))\"\n (keydown.enter)=\"day !== null && addEvent(formatDate(day))\"\n (keydown.space)=\"day !== null && addEvent(formatDate(day))\"\n tabindex=\"0\"\n role=\"button\"\n >\n @if (day !== null) {\n <span class=\"font-medium\">{{ day }}</span>\n }\n @if (day !== null) {\n <div class=\"mt-1 w-full\">\n @for (event of getEventsForDate(day); track event) {\n <div\n class=\"truncate rounded bg-blue-500 px-1 py-0.5 text-xs text-white sm:text-sm\"\n >\n {{ event.title }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScFullCalendar implements OnInit {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n currentDate = new Date();\n currentMonth = this.currentDate.getMonth();\n currentYear = this.currentDate.getFullYear();\n\n readonly currentView = signal<'month' | 'week' | 'day'>('month');\n\n daysInMonth: number[] = [];\n weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n events: { date: string; title: string }[] = [{ date: '2025-01-18', title: 'Sample Event' }];\n\n ngOnInit() {\n this.generateCalendar();\n }\n\n generateCalendar() {\n if (this.currentView() === 'month') {\n // Generate days for the entire month\n const firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1).getDay();\n const totalDays = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();\n this.daysInMonth = Array(firstDayOfMonth)\n .fill(null)\n .concat(Array.from({ length: totalDays }, (_, i) => i + 1));\n } else if (this.currentView() === 'week') {\n // Generate dates for the current week\n const today = new Date();\n const startOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));\n this.daysInMonth = Array.from({ length: 7 }, (_, i) => {\n const date = new Date(startOfWeek);\n date.setDate(startOfWeek.getDate() + i);\n return date.getDate();\n });\n } else if (this.currentView() === 'day') {\n // Show only today\n this.daysInMonth = [this.currentDate.getDate()];\n }\n }\n\n goToPreviousMonth() {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.currentYear--;\n } else {\n this.currentMonth--;\n }\n this.generateCalendar();\n }\n\n goToNextMonth() {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.currentYear++;\n } else {\n this.currentMonth++;\n }\n this.generateCalendar();\n }\n\n setView(view: 'month' | 'week' | 'day') {\n this.currentView.set(view);\n this.generateCalendar();\n }\n\n formatDate(day: number | null): string {\n if (day === null) return '';\n const month = String(this.currentMonth + 1).padStart(2, '0');\n const dayStr = String(day).padStart(2, '0');\n return `${this.currentYear}-${month}-${dayStr}`;\n }\n\n addEvent(date: string) {\n const title = prompt('Enter the event title:');\n if (title) {\n this.events.push({ date, title });\n }\n }\n\n isToday(day: number | null): boolean {\n if (day === null) return false;\n const today = new Date();\n return (\n today.getDate() === day &&\n today.getMonth() === this.currentMonth &&\n today.getFullYear() === this.currentYear\n );\n }\n\n getEventsForDate(day: number | null): { date: string; title: string }[] {\n const dateStr = this.formatDate(day);\n return this.events.filter((event) => event.date === dateStr);\n }\n}\n","import { DatePipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-mobile-calendar',\n imports: [NgClass, DatePipe],\n template: `\n <div class=\"mx-auto flex size-full max-w-full flex-col items-center px-4\">\n <!-- Calendar Header: Date Navigation -->\n <div class=\"mb-4 flex w-full items-center justify-between\">\n <!-- Previous Day Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToPreviousDay()\"\n (keydown)=\"onKeydown($event, 'previous')\"\n tabindex=\"0\"\n >\n <\n </button>\n\n <span class=\"grow text-center text-lg font-semibold\">\n {{ currentDate | date: 'fullDate' }}\n </span>\n\n <!-- Next Day Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToNextDay()\"\n (keydown)=\"onKeydown($event, 'next')\"\n tabindex=\"0\"\n >\n >\n </button>\n </div>\n\n <!-- Hourly Slots: Display Hours in Mobile-friendly View -->\n <div class=\"grid w-full gap-2\">\n @for (hour of hoursInDay; track hour) {\n <div\n class=\"flex flex-col items-start justify-start rounded-lg border bg-white p-2 shadow-md hover:bg-gray-100\"\n [ngClass]=\"{\n 'bg-blue-100': isNow(hour),\n 'cursor-pointer': hour !== null,\n }\"\n (click)=\"hour !== null && addEvent(hour)\"\n (keydown.enter)=\"hour !== null && addEvent(hour)\"\n (keydown.space)=\"hour !== null && addEvent(hour)\"\n tabindex=\"0\"\n role=\"button\"\n >\n <span class=\"font-medium\">{{ hour }}:00</span>\n @for (event of getEventsForTime(hour); track event) {\n <div\n class=\"mt-1 truncate rounded bg-blue-500 px-2 py-1 text-xs text-white sm:text-sm\"\n >\n {{ event }}\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMobileCalendar implements OnInit {\n currentDate: Date;\n hoursInDay: number[];\n events: { [key: string]: string[] } = {}; // Store events by hour\n\n constructor() {\n this.currentDate = new Date();\n this.hoursInDay = Array.from({ length: 24 }, (_, index) => index); // 0 - 23 hours\n this.events = {};\n }\n\n ngOnInit(): void {\n console.log('ngOnInit');\n }\n\n // Go to the previous day\n goToPreviousDay(): void {\n const newDate = new Date(this.currentDate);\n newDate.setDate(this.currentDate.getDate() - 1);\n this.currentDate = newDate;\n }\n\n // Go to the next day\n goToNextDay(): void {\n const newDate = new Date(this.currentDate);\n newDate.setDate(this.currentDate.getDate() + 1);\n this.currentDate = newDate;\n }\n\n // Handle keyboard events for navigation (previous/next day)\n onKeydown(event: KeyboardEvent, direction: string): void {\n if (event.key === 'Enter' || event.key === ' ') {\n if (direction === 'previous') {\n this.goToPreviousDay();\n } else if (direction === 'next') {\n this.goToNextDay();\n }\n }\n }\n\n // Add event to a specific hour\n addEvent(hour: number): void {\n const eventTitle = prompt('Enter event title:');\n if (eventTitle) {\n if (!this.events[hour]) {\n this.events[hour] = [];\n }\n this.events[hour].push(eventTitle);\n }\n }\n\n // Get events for a specific hour\n getEventsForTime(hour: number): string[] {\n return this.events[hour] || [];\n }\n\n // Check if a specific hour is the current hour\n isNow(hour: number): boolean {\n const now = new Date();\n return now.getHours() === hour && now.getDate() === this.currentDate.getDate();\n }\n}\n","import { DatePipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-day-view',\n imports: [NgClass, DatePipe],\n template: `\n <div class=\"rounded-lg border bg-white p-4 shadow-md hover:bg-gray-100\">\n <div class=\"text-center font-medium\">{{ date() | date: 'fullDate' }}</div>\n\n <!-- Display hours for the day -->\n @for (hour of hoursInDay; track hour) {\n <div class=\"flex items-center justify-between p-2\">\n <span>{{ hour }}:00</span>\n <button\n class=\"rounded px-2 py-1 hover:bg-blue-400\"\n [ngClass]=\"{ 'bg-blue-500 text-white': isNow(hour) }\"\n (click)=\"addEvent(hour)\"\n (keydown)=\"onKeydown($event, hour)\"\n tabindex=\"0\"\n >\n Add Event\n </button>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDayView implements OnInit {\n readonly date = input.required<Date>(); // Receive the date for each day\n hoursInDay: number[];\n\n constructor() {\n this.hoursInDay = Array.from({ length: 24 }, (_, index) => index); // 0 - 23 hours\n }\n\n ngOnInit(): void {\n console.log('ngOnInit');\n }\n\n // Method to add events for a specific hour\n addEvent(hour: number): void {\n const eventTitle = prompt('Enter event title:');\n if (eventTitle) {\n alert(`Event \"${eventTitle}\" added to ${this.date().toDateString()} at ${hour}:00`);\n }\n }\n\n // Method to check if the current hour is now\n isNow(hour: number): boolean {\n const now = new Date();\n return now.getHours() === hour && now.getDate() === this.date().getDate();\n }\n\n // Handle keyboard events for accessibility\n onKeydown(event: KeyboardEvent, hour: number): void {\n if (event.key === 'Enter' || event.key === ' ') {\n this.addEvent(hour);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { ScDayView } from './day-view';\n\n@Component({\n selector: 'sc-week-view',\n imports: [DatePipe, ScDayView],\n template: `\n <div class=\"mb-4 flex items-center justify-between\">\n <!-- Previous Week Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToPreviousWeek()\"\n (keydown)=\"onKeydown($event, 'previous')\"\n tabindex=\"0\"\n >\n <\n </button>\n\n <span class=\"grow text-center text-lg font-semibold\">\n Week of {{ currentDate | date: 'MMMM d, yyyy' }}\n </span>\n\n <!-- Next Week Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToNextWeek()\"\n (keydown)=\"onKeydown($event, 'next')\"\n tabindex=\"0\"\n >\n >\n </button>\n </div>\n\n <!-- Week Days -->\n <div class=\"grid grid-cols-7 gap-4\">\n @for (day of weekDays; track day) {\n <div>\n <sc-day-view [date]=\"day\"></sc-day-view>\n <!-- Pass each day to Day Component -->\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScWeekView implements OnInit {\n currentDate: Date;\n weekDays: Date[];\n\n constructor() {\n this.currentDate = new Date();\n this.weekDays = this.getWeekDays(this.currentDate); // Get current week's days\n }\n\n ngOnInit(): void {\n console.log('ngOnInit');\n }\n\n // Helper method to get the dates for the week\n getWeekDays(date: Date): Date[] {\n const startOfWeek = date.getDate() - date.getDay(); // Start of the week (Sunday)\n const days: Date[] = [];\n\n for (let i = 0; i < 7; i++) {\n const day = new Date(date);\n day.setDate(startOfWeek + i);\n days.push(day);\n }\n\n return days;\n }\n\n // Go to the previous week\n goToPreviousWeek(): void {\n this.currentDate.setDate(this.currentDate.getDate() - 7);\n this.weekDays = this.getWeekDays(this.currentDate);\n }\n\n // Go to the next week\n goToNextWeek(): void {\n this.currentDate.setDate(this.currentDate.getDate() + 7);\n this.weekDays = this.getWeekDays(this.currentDate);\n }\n\n // Handle keyboard events for week navigation\n onKeydown(event: KeyboardEvent, direction: string): void {\n if (event.key === 'Enter' || event.key === ' ') {\n if (direction === 'previous') {\n this.goToPreviousWeek();\n } else if (direction === 'next') {\n this.goToNextWeek();\n }\n }\n }\n}\n","import { Directive, ElementRef, inject, model } from '@angular/core';\n\n@Directive({\n host: {\n '[value]': 'value()',\n '(input)': 'handleInput()',\n 'data-slot': 'control',\n },\n})\nexport class ScPlainInput {\n private readonly hostRef = inject(ElementRef);\n\n readonly value = model<string>('');\n\n handleInput() {\n const newValue = this.hostRef.nativeElement.value;\n this.value.set(newValue);\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScPlainInput } from './plain-input';\n\nexport const scInputStyles = signal(\n 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n);\n\n@Component({\n selector: 'input[sc-input]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'control',\n '[id]': 'id()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: ScPlainInput,\n inputs: ['value'],\n outputs: ['valueChange'],\n },\n ],\n})\nexport class ScInput {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn(scInputStyles(), this.classInput()));\n\n readonly value = model<string>('');\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-input-'), {\n alias: 'id',\n });\n\n readonly id = linkedSignal(() => this.idInput());\n\n private readonly host = inject(ElementRef);\n\n get nativeElement() {\n return this.host.nativeElement;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-auto-resize-input',\n imports: [],\n template: `\n <div class=\"inline-flex items-center\">\n <!-- Hidden span to calculate width -->\n <span class=\"invisible absolute whitespace-pre\" #sizer [style.font]=\"getFont()\">\n {{ value() || placeholder() }}\n </span>\n\n <!-- Actual input -->\n <input\n #input\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [class]=\"inputClass()\"\n [style.width.px]=\"width()\"\n [min]=\"minWidth()\"\n [max]=\"maxWidth()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n </div>\n\n <br />\n width: {{ width() }}\n <br />\n sizerWidth: {{ sizerWidth() }}\n <br />\n maxWidth: {{ maxWidth() }}\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScAutoResizeInput),\n multi: true,\n },\n ],\n})\nexport class ScAutoResizeInput implements ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative inline-block', this.classInput()));\n\n readonly input = viewChild.required<ElementRef<HTMLInputElement>>('input');\n readonly sizer = viewChild.required<ElementRef<HTMLSpanElement>>('sizer');\n\n readonly type = input('text');\n readonly placeholder = input('');\n readonly minWidth = input(60);\n readonly maxWidth = input(500);\n readonly inputClass = input(\n 'px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500',\n );\n\n readonly value = model('');\n\n protected readonly sizerWidth = signal(0);\n\n //TODO understand the meaning of 16, 24 worked better\n setSizerWidth(): void {\n this.sizerWidth.set(this.sizer().nativeElement.offsetWidth + 24);\n }\n\n // Adjust input width based on span content\n width = computed(() => {\n if (this.sizerWidth() <= this.minWidth()) {\n return this.minWidth();\n }\n\n return Math.min(this.sizerWidth(), this.maxWidth());\n });\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n protected readonly disabled = linkedSignal(() => this.disabledInput());\n\n constructor() {\n afterNextRender(() => {\n this.setSizerWidth();\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // Get computed font style of input for accurate width calculation\n getFont(): string {\n const inputValue = this.input();\n if (!inputValue?.nativeElement) return '';\n const computed = window.getComputedStyle(inputValue.nativeElement);\n return computed.font;\n }\n\n // Handle input event\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value.set(input.value);\n this.setSizerWidth();\n this.onChange(this.value());\n this.changeDetectorRef.markForCheck();\n }\n\n onBlur(): void {\n this.onTouch();\n }\n\n // ControlValueAccessor methods\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-date-picker-toggle]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '(click)': 'toggle()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDatePickerToggle extends ScButtonBase {\n override readonly variantInput = input<ButtonVariants['variant']>('ghost', {\n alias: 'variant',\n });\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute inset-y-0 end-0 pe-4',\n this.classInput(),\n ),\n );\n\n readonly toggled = output<void>();\n\n protected toggle() {\n this.toggled.emit();\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n LOCALE_ID,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCalendar } from '../calendar';\nimport { ScInput } from '../input';\nimport { ScDatePickerToggle } from './date-picker-toggle';\n\n@Component({\n selector: 'sc-date-picker',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScDatePicker),\n multi: true,\n },\n ],\n})\nexport class ScDatePicker implements ControlValueAccessor {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex relative', this.classInput()));\n\n readonly value = model<Temporal.PlainDate>();\n readonly minDate = input<Temporal.PlainDate>();\n readonly maxDate = input<Temporal.PlainDate>();\n\n private readonly localeId = inject(LOCALE_ID);\n\n private readonly host = inject(ElementRef);\n\n private readonly dir = inject(Directionality, { optional: true });\n private readonly overlay = inject(Overlay);\n\n private readonly isOpen = signal(false);\n\n private overlayRef: OverlayRef | null = null;\n private portal: ComponentPortal<unknown> | null = null;\n\n private readonly scDatePickerToggle = contentChild(ScDatePickerToggle);\n private readonly scInput = contentChild(ScInput);\n\n constructor() {\n afterNextRender(() => {\n this.scInput()?.value.subscribe((v) => {\n console.log(v);\n });\n\n this.scDatePickerToggle()?.toggled.subscribe(() => {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n });\n });\n }\n\n /** Opens the datepicker. */\n open(): void {\n if (!this.scInput()) {\n return;\n }\n\n // Focus should already be on the input, but this call is in case the datepicker is opened\n // programmatically. We need to call this even if the datepicker is already open, because\n // the user might be clicking the toggle.\n this.scInput()?.nativeElement.focus();\n\n if (this.isOpen()) {\n return;\n }\n\n this.isOpen.set(true);\n\n const overlayRef = this.getOverlayRef();\n\n //overlayRef.updateSize({ width: this._overlayOrigin()?.nativeElement.offsetWidth });\n\n overlayRef.updateSize({ width: 400 });\n\n this.portal ??= new ComponentPortal(ScCalendar);\n\n const componentRef = overlayRef.attach(this.portal);\n\n (componentRef.instance as ScCalendar).value.subscribe((v) => {\n if (v) {\n this.selectValue(v);\n }\n });\n }\n\n /** Closes the datepicker. */\n close(): void {\n if (this.isOpen()) {\n this.isOpen.set(false);\n this.overlayRef?.detach();\n }\n }\n\n /** Creates an overlay reference for the datepicker panel. */\n private getOverlayRef(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n const overlayOrigin = this.host;\n if (overlayOrigin === undefined) {\n throw new Error('_overlayOrigin is undefined');\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(overlayOrigin)\n .withFlexibleDimensions(false)\n .withPush(false)\n // .withTransformOriginOn('.mat-datepicker-panel')\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n //panelClass: 'mat-datepicker-above',\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n direction: this.dir || 'ltr',\n hasBackdrop: false,\n });\n\n this.overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n\n this.overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this.host?.nativeElement;\n\n if (target && target !== origin && !origin?.contains(target)) {\n this.close();\n }\n });\n\n return this.overlayRef;\n }\n\n /** Selects a specific date value. */\n protected selectValue(value: Temporal.PlainDate) {\n this.close();\n\n this.value.set(value);\n\n this.onChange(value);\n this.onTouched();\n\n const inputElement = this.scInput()?.nativeElement;\n if (inputElement) {\n inputElement.value = value?.toLocaleString(this.localeId) ?? '';\n inputElement.focus();\n }\n }\n\n //CVA\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: Temporal.PlainDate) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n writeValue(value: Temporal.PlainDate): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: Temporal.PlainDate) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n OnInit,\n Output,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\n\n@Component({\n selector: 'sc-date-range-picker',\n imports: [ReactiveFormsModule, CommonModule, FormsModule],\n template: `\n <!-- date-range-picker.component.html -->\n <div class=\"relative w-full max-w-md\">\n <!-- Date range display input -->\n <button\n class=\"flex justify-between items-center p-3 border border-gray-300 rounded-md bg-white cursor-pointer hover:border-blue-500 transition-colors\"\n (click)=\"toggleCalendar()\"\n type=\"button\"\n >\n <div class=\"flex items-center space-x-1\">\n <span class=\"text-gray-700\">\n {{ selectedStartDate ? formatDate(selectedStartDate) : 'Start date' }}\n </span>\n <span class=\"text-gray-500\">to</span>\n <span class=\"text-gray-700\">\n {{ selectedEndDate ? formatDate(selectedEndDate) : 'End date' }}\n </span>\n </div>\n <svg\n class=\"h-5 w-5 text-gray-500\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n </button>\n\n <!-- Calendar dropdown -->\n @if (showCalendar) {\n <div\n class=\"absolute mt-1 z-10 bg-white rounded-md shadow-lg border border-gray-200 p-3 w-full md:w-[350px]\"\n >\n <!-- Header with navigation and dropdown -->\n <div class=\"flex justify-between items-center mb-3\">\n <!-- Month/Year selectors -->\n <div class=\"flex items-center space-x-1\">\n <select\n class=\"p-1 border border-gray-300 rounded text-sm\"\n [ngModel]=\"currentMonth.month\"\n (ngModelChange)=\"setMonth($event)\"\n >\n @for (month of months; track month; let i = $index) {\n <option [value]=\"i + 1\">\n {{ month }}\n </option>\n }\n </select>\n <select\n class=\"p-1 border border-gray-300 rounded text-sm\"\n [ngModel]=\"currentMonth.year\"\n (ngModelChange)=\"setYear($event)\"\n >\n @for (year of years; track year) {\n <option [value]=\"year\">\n {{ year }}\n </option>\n }\n </select>\n </div>\n <!-- Previous/Next month buttons -->\n <div class=\"flex space-x-1\">\n <button class=\"p-1 rounded hover:bg-gray-100\" (click)=\"prevMonth()\" type=\"button\">\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n <button class=\"p-1 rounded hover:bg-gray-100\" (click)=\"nextMonth()\" type=\"button\">\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n </div>\n </div>\n <!-- Calendar grid -->\n <div class=\"mb-3\">\n <!-- Weekday headers -->\n <div class=\"grid grid-cols-7 mb-1\">\n @for (day of weekdays; track day) {\n <div class=\"text-center text-xs font-medium text-gray-500 py-1\">\n {{ day }}\n </div>\n }\n </div>\n <!-- Calendar days -->\n <div class=\"grid grid-cols-7\">\n @for (day of calendarDays; track day) {\n <button\n class=\"text-center py-1 relative\"\n [ngClass]=\"{\n 'text-gray-400': !day.isCurrentMonth,\n 'bg-blue-100': day.isInRange && !day.isSelected,\n 'cursor-pointer hover:bg-gray-100': !day.isDisabled,\n 'cursor-not-allowed opacity-50': day.isDisabled,\n }\"\n (click)=\"selectDate(day.date, day.isDisabled)\"\n type=\"button\"\n >\n <div\n class=\"w-8 h-8 flex items-center justify-center mx-auto rounded-full\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': day.isSelected,\n 'ring-2 ring-blue-600 ring-offset-1': day.isToday && !day.isSelected,\n }\"\n >\n {{ day.date.day }}\n </div>\n </button>\n }\n </div>\n </div>\n <!-- Quick selection buttons -->\n <div class=\"grid grid-cols-3 gap-2 mb-3\">\n <button\n class=\"px-2 py-1.5 text-xs bg-gray-100 hover:bg-gray-200 text-gray-800 rounded-md transition-colors border border-gray-300\"\n (click)=\"setLastWeek()\"\n type=\"button\"\n >\n Last 7 days\n </button>\n <button\n class=\"px-2 py-1.5 text-xs bg-gray-100 hover:bg-gray-200 text-gray-800 rounded-md transition-colors border border-gray-300\"\n (click)=\"setLastMonth()\"\n type=\"button\"\n >\n Last month\n </button>\n <button\n class=\"px-2 py-1.5 text-xs bg-gray-100 hover:bg-gray-200 text-gray-800 rounded-md transition-colors border border-gray-300\"\n (click)=\"setLastThreeMonths()\"\n type=\"button\"\n >\n Last 3 months\n </button>\n </div>\n <!-- Status text and buttons -->\n <div class=\"text-sm text-gray-500 mb-2\">\n @if (isSelectingEndDate && selectedStartDate) {\n <div>\n <p>Select end date</p>\n </div>\n }\n @if (!isSelectingEndDate && !selectedEndDate) {\n <div>\n <p>Select start date</p>\n </div>\n }\n @if (selectedStartDate && selectedEndDate) {\n <div>\n <p>{{ formatDate(selectedStartDate) }} to {{ formatDate(selectedEndDate) }}</p>\n </div>\n }\n </div>\n <div class=\"flex justify-end space-x-2\">\n <button\n class=\"px-3 py-1.5 text-sm border border-gray-300 text-gray-700 rounded-md hover:bg-gray-100 transition-colors\"\n (click)=\"cancelSelection()\"\n type=\"button\"\n >\n Cancel\n </button>\n <button\n class=\"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors\"\n [disabled]=\"!selectedStartDate || !selectedEndDate\"\n [ngClass]=\"{\n 'opacity-50 cursor-not-allowed': !selectedStartDate || !selectedEndDate,\n }\"\n (click)=\"applyDateRange()\"\n type=\"button\"\n >\n Apply\n </button>\n </div>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDateRangePicker implements OnInit {\n readonly startDate = input<Temporal.PlainDate>(Temporal.Now.plainDateISO());\n readonly endDate = input<Temporal.PlainDate>(Temporal.Now.plainDateISO());\n readonly minDate = input<Temporal.PlainDate | null>(null);\n readonly maxDate = input<Temporal.PlainDate | null>(null);\n @Output() dateRangeSelected = new EventEmitter<{\n startDate: Temporal.PlainDate;\n endDate: Temporal.PlainDate;\n }>();\n\n // Calendar state\n currentMonth: Temporal.PlainYearMonth;\n calendarDays: Array<{\n date: Temporal.PlainDate;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isInRange: boolean;\n isDisabled: boolean;\n }> = [];\n\n weekdays: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n months: string[] = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n\n years: number[] = [];\n\n // Selection state\n selectedStartDate: Temporal.PlainDate | null = null;\n selectedEndDate: Temporal.PlainDate | null = null;\n isSelectingEndDate = false;\n\n // UI state\n showCalendar = false;\n today: Temporal.PlainDate = Temporal.Now.plainDateISO();\n\n constructor() {\n this.currentMonth = Temporal.Now.plainDateISO().toPlainYearMonth();\n\n // Generate selectable years (10 years before and after current year)\n const currentYear = Temporal.Now.plainDateISO().year;\n for (let i = currentYear - 10; i <= currentYear + 10; i++) {\n this.years.push(i);\n }\n }\n\n ngOnInit(): void {\n this.selectedStartDate = this.startDate();\n this.selectedEndDate = this.endDate();\n this.currentMonth = this.startDate().toPlainYearMonth();\n this.generateCalendarDays();\n }\n\n toggleCalendar(): void {\n this.showCalendar = !this.showCalendar;\n if (this.showCalendar) {\n // Reset to start date's month when opening calendar\n this.currentMonth =\n this.selectedStartDate?.toPlainYearMonth() ||\n Temporal.Now.plainDateISO().toPlainYearMonth();\n this.generateCalendarDays();\n }\n }\n\n generateCalendarDays(): void {\n this.calendarDays = [];\n\n const firstOfMonth = Temporal.PlainDate.from({\n year: this.currentMonth.year,\n month: this.currentMonth.month,\n day: 1,\n });\n\n const lastOfMonth = firstOfMonth.with({ day: firstOfMonth.daysInMonth });\n\n // Get the first date to show (might be from previous month)\n let startingDate = firstOfMonth;\n const dayOfWeek = firstOfMonth.dayOfWeek % 7; // 0-indexed, Sunday = 0\n if (dayOfWeek > 0) {\n startingDate = firstOfMonth.subtract({ days: dayOfWeek });\n }\n\n // Calculate the last date to show (might be from next month)\n const endDate = lastOfMonth.add({ days: 6 - (lastOfMonth.dayOfWeek % 7) });\n\n // Generate all days for the calendar view\n let currentDate = startingDate;\n\n while (Temporal.PlainDate.compare(currentDate, endDate) <= 0) {\n const isCurrentMonth = currentDate.month === this.currentMonth.month;\n const isToday = Temporal.PlainDate.compare(currentDate, this.today) === 0;\n\n const isSelected =\n (this.selectedStartDate &&\n Temporal.PlainDate.compare(currentDate, this.selectedStartDate) === 0) ||\n (this.selectedEndDate &&\n Temporal.PlainDate.compare(currentDate, this.selectedEndDate) === 0);\n\n // Check if date is in the selected range\n const isInRange =\n this.selectedStartDate &&\n this.selectedEndDate &&\n Temporal.PlainDate.compare(currentDate, this.selectedStartDate) >= 0 &&\n Temporal.PlainDate.compare(currentDate, this.selectedEndDate) <= 0;\n\n // Check if date is disabled (before min date or after max date)\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n const isDisabled =\n (minDate && Temporal.PlainDate.compare(currentDate, minDate) < 0) ||\n (maxDate && Temporal.PlainDate.compare(currentDate, maxDate) > 0);\n\n this.calendarDays.push({\n date: currentDate,\n isCurrentMonth,\n isToday,\n isSelected: !!isSelected,\n isInRange: !!isInRange,\n isDisabled: !!isDisabled,\n });\n\n currentDate = currentDate.add({ days: 1 });\n }\n }\n\n prevMonth(): void {\n this.currentMonth = this.currentMonth.subtract({ months: 1 });\n this.generateCalendarDays();\n }\n\n nextMonth(): void {\n this.currentMonth = this.currentMonth.add({ months: 1 });\n this.generateCalendarDays();\n }\n\n setMonth(month: number): void {\n this.currentMonth = this.currentMonth.with({ month });\n this.generateCalendarDays();\n }\n\n setYear(year: number): void {\n this.currentMonth = this.currentMonth.with({ year });\n this.generateCalendarDays();\n }\n\n selectDate(date: Temporal.PlainDate, isDisabled: boolean): void {\n if (isDisabled) return;\n\n if (!this.isSelectingEndDate) {\n // Selecting start date\n this.selectedStartDate = date;\n this.selectedEndDate = null;\n this.isSelectingEndDate = true;\n } else {\n // Selecting end date\n if (Temporal.PlainDate.compare(date, this.selectedStartDate!) < 0) {\n // If end date is before start date, swap them\n this.selectedEndDate = this.selectedStartDate;\n this.selectedStartDate = date;\n } else {\n this.selectedEndDate = date;\n }\n this.isSelectingEndDate = false;\n }\n\n this.generateCalendarDays();\n }\n\n applyDateRange(): void {\n if (this.selectedStartDate && this.selectedEndDate) {\n this.dateRangeSelected.emit({\n startDate: this.selectedStartDate,\n endDate: this.selectedEndDate,\n });\n this.showCalendar = false;\n }\n }\n\n cancelSelection(): void {\n this.showCalendar = false;\n // Reset to previous selection\n this.selectedStartDate = this.startDate();\n this.selectedEndDate = this.endDate();\n this.isSelectingEndDate = false;\n this.generateCalendarDays();\n }\n\n // Predefined ranges\n setLastWeek(): void {\n const end = Temporal.Now.plainDateISO();\n const start = end.subtract({ days: 6 });\n\n this.selectedStartDate = start;\n this.selectedEndDate = end;\n this.generateCalendarDays();\n this.applyDateRange();\n }\n\n setLastMonth(): void {\n const end = Temporal.Now.plainDateISO();\n const start = end.subtract({ months: 1 });\n\n this.selectedStartDate = start;\n this.selectedEndDate = end;\n this.generateCalendarDays();\n this.applyDateRange();\n }\n\n setLastThreeMonths(): void {\n const end = Temporal.Now.plainDateISO();\n const start = end.subtract({ months: 3 });\n\n this.selectedStartDate = start;\n this.selectedEndDate = end;\n this.generateCalendarDays();\n this.applyDateRange();\n }\n\n formatDate(date: Temporal.PlainDate | null): string {\n if (!date) return '';\n return date.toLocaleString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'nav[sc-nav]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNav {\n class = input<string>('');\n\n classes = computed(() =>\n cn('relative z-10 flex max-w-max flex-1 items-center justify-center', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ul[sc-nav-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n dir: 'ltr',\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavList {\n class = input<string>('');\n\n classes = computed(() =>\n cn('flex flex-1 list-none items-center justify-center space-x-1', this.class()),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\n@Component({\n selector: 'sc-nav-button-base',\n imports: [],\n template: ``,\n host: {},\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavButtonBase {\n baseClass = input<string>(\n 'inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50',\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScNavButtonBase } from './nav-button-base';\n\n@Component({\n selector: 'a[sc-nav-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n routerLinkActive: 'active-page',\n ariaCurrentWhenActive: 'page',\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavLink extends ScNavButtonBase {\n class = input<string>('');\n\n classes = computed(() => cn(this.baseClass(), this.class()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-nav-item',\n imports: [],\n template: `\n <p>nav-item works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavItem {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScNavButtonBase } from './nav-button-base';\n\n@Component({\n selector: 'button[sc-nav-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavButton extends ScNavButtonBase {\n class = input<string>('');\n\n classes = computed(() => cn(this.baseClass(), this.class()));\n}\n","import { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nimport { ScNavButton } from './nav-button';\n\n@Component({\n selector: 'li[sc-nav-item-dropdown]',\n imports: [CdkMenuTrigger, CdkMenu, ScNavButton],\n template: `\n <button [cdkMenuTriggerFor]=\"menu\" sc-nav-button type=\"button\">{{ title() }}</button>\n <ng-template #menu>\n <div\n cdkMenu\n lass=\"origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-(--radix-navigation-menu-viewport-width)\"\n >\n <div\n class=\"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\"\n >\n <ng-content />\n </div>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavItemDropdown {\n title = input.required<string>();\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, afterNextRender, computed, inject, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScTheme {\n private readonly document = inject<Document>(DOCUMENT);\n\n private readonly isDarkModeSignal = signal<boolean>(false);\n\n readonly isDarkMode = computed(() => this.isDarkModeSignal());\n\n readonly theme = computed<'light' | 'dark'>(() => {\n return this.isDarkMode() ? 'dark' : 'light';\n });\n\n constructor() {\n afterNextRender(() => {\n // Initialize theme from localStorage or system preference\n this.initializeTheme();\n });\n }\n\n private initializeTheme(): void {\n // Check if user has a saved preference\n const savedTheme = localStorage.getItem('theme');\n\n if (savedTheme) {\n this.isDarkModeSignal.set(savedTheme === 'dark');\n } else {\n // If no saved preference, check system preference\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n this.isDarkModeSignal.set(prefersDark);\n }\n\n // Apply the theme\n this.applyTheme(this.isDarkMode());\n }\n\n toggleTheme(): void {\n this.isDarkModeSignal.update((t) => !t);\n this.applyTheme(this.isDarkMode());\n localStorage.setItem('theme', this.theme());\n }\n\n private applyTheme(isDark: boolean): void {\n // On page load or when changing themes, best to add inline in `head` to avoid FOUC\n this.document.documentElement.classList.toggle('dark', isDark);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiMoonIcon, SiSunIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\nimport { ScTheme } from './theme';\n\n@Component({\n selector: 'sc-theme-toggler',\n imports: [SiMoonIcon, SiSunIcon, ScButton],\n template: `\n <button (click)=\"toggleTheme()\" sc-button variant=\"outline\" size=\"icon\" type=\"button\">\n @if (isDarkMode()) {\n <svg si-sun-icon></svg>\n } @else {\n <svg si-moon-icon></svg>\n }\n </button>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScThemeToggler {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n private readonly themeService = inject(ScTheme);\n\n protected readonly isDarkMode = computed(() => this.themeService.isDarkMode());\n\n protected toggleTheme() {\n this.themeService.toggleTheme();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\n\n@Component({\n selector: 'a[sc-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'link',\n '[tabindex]': 'tabindex()', //make the link focusable in case don't have href\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScLink extends ScButtonBase {\n override readonly variantInput = input<ButtonVariants['variant']>('link', {\n alias: 'variant',\n });\n\n protected readonly tabindex = computed(() => {\n if (this.disabled()) {\n return -1;\n }\n\n return 0;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { scInputStyles } from '../input/input';\n\n@Component({\n selector: 'input[sc-input-number]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[value]': 'value()',\n '[type]': 'type()',\n '(input)': 'handleInput()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumber {\n private readonly hostRef = inject(ElementRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn(scInputStyles(), this.classInput()));\n\n readonly value = model<number>(0);\n readonly type = input<'number'>('number');\n\n handleInput() {\n const newValue = this.hostRef.nativeElement.value;\n this.value.set(newValue);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-input-number-incrementer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'handleClick()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumberIncrementer extends ScButtonBase {\n readonly incremented = output<void>();\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute right-1 top-1 size-8',\n this.classInput(),\n ),\n );\n\n protected handleClick() {\n this.incremented.emit();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-input-number-decrementer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'handleClick()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumberDecrementer extends ScButtonBase {\n readonly decremented = output<void>();\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute right-10 top-1 size-8',\n this.classInput(),\n ),\n );\n\n protected handleClick() {\n this.decremented.emit();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChild,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScInputNumber } from '../input-number/input-number';\nimport { ScInputNumberDecrementer } from '../input-number/input-number-decrementer';\nimport { ScInputNumberIncrementer } from '../input-number/input-number-incrementer';\n\n@Component({\n selector: 'div[sc-input-number-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumberGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative', this.classInput()));\n\n private readonly scInputNumberIncrementer = contentChild(ScInputNumberIncrementer);\n private readonly scInputNumberDecrementer = contentChild(ScInputNumberDecrementer);\n\n private readonly scInputNumber = contentChild(ScInputNumber);\n\n constructor() {\n afterNextRender(() => {\n this.scInputNumberIncrementer()?.incremented.subscribe(() => {\n this.scInputNumber()?.value.update((v: number) => +v + 1);\n });\n\n this.scInputNumberDecrementer()?.decremented.subscribe(() => {\n this.scInputNumber()?.value.update((v: number) => +v - 1);\n });\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-input-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'control',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'w-full',\n 'grid grid-cols-[24px_1fr_24px]',\n //[&>[data-slot=icon]]:fill-neutral-500\n '[&>[data-slot=icon]:first-child]:col-start-1 [&>[data-slot=icon]:last-child]:col-start-3 *:data-[slot=icon]:row-start-1 *:data-[slot=icon]:z-10 *:data-[slot=icon]:place-self-center *:data-[slot=icon]:size-4 ',\n '*:data-[slot=control]:col-span-3 *:data-[slot=control]:col-start-1 *:data-[slot=control]:row-start-1',\n '[&>[data-slot=icon]+[data-slot=control]]:pl-6',\n '[&:has([data-slot=control]+[data-slot=icon])>[data-slot=control]]:pr-6',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'label[sc-label]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'label',\n '[for]': 'for()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScLabel {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n this.classInput(),\n ),\n );\n\n readonly forInput = input<string>('', {\n alias: 'for',\n });\n\n readonly for = linkedSignal(() => this.forInput());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-progress',\n imports: [],\n template: `\n <div [style.transform]=\"transform()\" data-slot=\"indicator\"></div>\n `,\n host: {\n // Sets the role for this component to \"progressbar\"\n role: 'progressbar',\n // Sets the minimum and maximum values for the progressbar role.\n '[attr.aria-valuemin]': 'min()',\n '[attr.aria-valuemax]': 'max()',\n // Binding that updates the current value of the progressbar.\n '[attr.aria-valuenow]': 'value()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScProgress {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'block relative h-2 w-full overflow-hidden rounded-full bg-primary/20',\n '*:data-[slot=indicator]:size-full *:data-[slot=indicator]:flex-1 *:data-[slot=indicator]:bg-primary *:data-[slot=indicator]:transition-all',\n this.mode() === 'indeterminate' &&\n '*:data-[slot=indicator]:animate-progress *:data-[slot=indicator]:origin-left',\n this.classInput(),\n ),\n );\n\n /** Current value of the progressbar. */\n readonly value = input<number>(0);\n\n //https://github.com/shadcn-ui/ui/issues/700\n readonly mode = input<'determinate' | 'indeterminate'>('determinate');\n\n //TODO maybe name shoould be aria-valuemin\n readonly min = input<number, unknown>(0, {\n transform: numberAttribute,\n });\n\n //TODO maybe name shoould be aria-valuemax\n readonly max = input<number, unknown>(100, {\n transform: numberAttribute,\n });\n\n protected readonly transform = computed(() => {\n return `translateX(${((this.value() - this.min()) / (this.max() - this.min())) * 100 - 100}%)`;\n });\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon, SiEyeIcon, SiEyeOffIcon, SiXIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScInput } from '../input';\nimport { ScLabel } from '../label';\nimport { ScProgress } from '../progress';\n\n@Component({\n selector: 'sc-input-password',\n imports: [\n SiCheckIcon,\n SiXIcon,\n SiEyeOffIcon,\n SiEyeIcon,\n ScLabel,\n ScInput,\n ReactiveFormsModule,\n ScProgress,\n ],\n template: `\n <div class=\"space-y-2\">\n <label [for]=\"id\" sc-label>Password</label>\n <div class=\"relative\">\n <input\n class=\"pe-9\"\n [id]=\"id\"\n [value]=\"password()\"\n [type]=\"isVisible() ? 'text' : 'password'\"\n [attr.aria-invalid]=\"strengthScore() < 4\"\n [formControl]=\"control\"\n sc-input\n placeholder=\"Password\"\n aria-describedby=\"input-51-description\"\n />\n <button\n class=\"absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center text-muted-foreground/80 outline-none transition hover:text-foreground\"\n [attr.aria-label]=\"isVisible() ? 'Hide password' : 'Show password'\"\n [attr.aria-pressed]=\"isVisible()\"\n (click)=\"toggleVisibility()\"\n type=\"button\"\n >\n @if (isVisible()) {\n <svg si-eye-off-icon size=\"16\" strokeWidth=\"2\" aria-hidden=\"true\"></svg>\n } @else {\n <svg si-eye-icon size=\"16\" strokeWidth=\"2\" aria-hidden=\"true\"></svg>\n }\n </button>\n </div>\n </div>\n\n <!--Password strength indicator-->\n <sc-progress\n [class]=\"progressClass()\"\n [value]=\"strengthScore()\"\n max=\"4\"\n aria-label=\"Password strength\"\n />\n\n <!-- Password strength description -->\n <p class=\"mb-2 text-sm font-medium\" id=\"password-description\">\n {{ strengthText() }}. Must contain:\n </p>\n\n <!-- Password requirements list -->\n <ul class=\"space-y-1.5\" aria-label=\"Password requirements\">\n @for (req of strength(); track $index) {\n <li class=\"flex items-center gap-2\">\n @if (req.met) {\n <svg class=\"text-emerald-500\" si-check-icon size=\"16\" aria-hidden=\"true\"></svg>\n } @else {\n <svg class=\"text-emerald-500\" si-x-icon size=\"16\" aria-hidden=\"true\"></svg>\n }\n <span class=\"text-xs\" [class]=\"req.met ? 'text-emerald-500' : 'text-muted-foreground/80'\">\n {{ req.text }}\n </span>\n <span class=\"sr-only\">\n {{ req.met ? '- Requirement met' : '- Requirement not met' }}\n </span>\n </li>\n }\n </ul>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputPassword implements OnInit {\n protected readonly id = inject(_IdGenerator).getId('sc-input-password-');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block w-full', this.classInput()));\n\n protected control = new FormControl();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngOnInit() {\n this.control.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.password.set(value));\n }\n\n readonly password = signal<string>('');\n readonly isVisible = signal<boolean>(false);\n\n readonly requirements = [\n { regex: /.{8,}/, text: 'At least 8 characters' },\n { regex: /\\d/, text: 'At least 1 number' },\n { regex: /[a-z]/, text: 'At least 1 lowercase letter' },\n { regex: /[A-Z]/, text: 'At least 1 uppercase letter' },\n ];\n\n readonly strength = computed(() =>\n this.requirements.map((req) => ({\n met: req.regex.test(this.password()),\n text: req.text,\n })),\n );\n\n readonly strengthScore = computed(() => this.strength().filter((req) => req.met).length);\n\n protected readonly progressClass = computed(() =>\n cn(\n 'mb-4 mt-3 h-1 w-full overflow-hidden rounded-full bg-border',\n '*:data-[slot=indicator]:h-full *:data-[slot=indicator]:transition-all *:data-[slot=indicator]:duration-500 *:data-[slot=indicator]:ease-out',\n this.strengthColor(),\n ),\n );\n\n readonly strengthColor = computed(() => {\n const score = this.strengthScore();\n if (score === 0) return '*:data-[slot=indicator]:bg-border';\n if (score <= 1) return '*:data-[slot=indicator]:bg-red-500';\n if (score <= 2) return '*:data-[slot=indicator]:bg-orange-500';\n if (score === 3) return '*:data-[slot=indicator]:bg-amber-500';\n return '*:data-[slot=indicator]:bg-emerald-500';\n });\n\n readonly strengthText = computed(() => {\n const score = this.strengthScore();\n if (score === 0) return 'Enter a password';\n if (score <= 2) return 'Weak password';\n if (score === 3) return 'Medium password';\n return 'Strong password';\n });\n\n protected toggleVisibility() {\n this.isVisible.update((prev) => !prev);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nconst alphanumeric_regex = /[^a-zA-Z0-9]/g;\nconst numeric_regex = /\\D/g;\n\n@Component({\n selector: 'sc-input-otp-slot',\n imports: [],\n template: `\n <input\n class=\"size-full border-0 bg-transparent text-center shadow-none outline-none ring-0\"\n #inputRef\n [disabled]=\"disabled()\"\n [readonly]=\"!isActive()\"\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (paste)=\"onPaste($event)\"\n type=\"text\"\n maxlength=\"2\"\n />\n\n @if (showFakeCaret()) {\n <div class=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div class=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\"></div>\n </div>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputOTPSlot {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative',\n 'caret-transparent',\n 'flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md',\n this.isActive() && 'ring-2 ring-ring ring-offset-background',\n this.classInput(),\n ),\n );\n\n protected readonly showFakeCaret = computed(() => this.isActive() && !this.value());\n\n protected readonly isActive = signal(false);\n\n readonly disabled = signal(false);\n\n readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('inputRef');\n\n readonly focus = output<string>();\n readonly blur = output<void>();\n readonly backspace = output<void>();\n readonly arrowLeft = output<void>();\n readonly arrowRight = output<void>();\n readonly paste = output<string>();\n\n readonly value = model('');\n\n protected onInput(event: Event) {\n const input = event.target as HTMLInputElement;\n\n // Ensure only digits, letters, or empty values\n let sanitizedValue = input.value.replace(numeric_regex, '');\n\n if (sanitizedValue.length > 1) {\n sanitizedValue = sanitizedValue.slice(-1); // Keep only the last entered character\n }\n\n input.value = sanitizedValue;\n\n //If the value is the same, emit arrow right to move to the next input\n if (sanitizedValue === this.value()) {\n this.arrowRight.emit();\n } else {\n this.value.set(sanitizedValue);\n }\n }\n\n protected onKeydown(event: KeyboardEvent) {\n // Handle backspace key when input is empty\n if (event.key === 'Backspace' && !this.value()) {\n event.preventDefault();\n this.backspace.emit();\n }\n\n // Handle arrow keys for navigation between inputs\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.arrowLeft.emit();\n }\n\n if (event.key === 'ArrowRight' && this.value()) {\n event.preventDefault();\n this.arrowRight.emit();\n }\n }\n\n protected onPaste(event: ClipboardEvent) {\n event.preventDefault();\n\n // Get pasted content and clean it\n const clipboardData = event.clipboardData;\n if (!clipboardData) return;\n\n const pastedText = clipboardData.getData('text');\n if (!pastedText) return;\n\n // Clean the pasted text to only include alphanumeric characters\n const sanitizedText = pastedText.replace(numeric_regex, '');\n\n // Set the first character in this input\n const firstChar = sanitizedText.charAt(0);\n this.value.set(firstChar);\n this.inputRef().nativeElement.value = firstChar;\n\n // Emit the remaining characters for potential distribution to other inputs\n if (sanitizedText.length > 1) {\n this.paste.emit(sanitizedText.substring(1));\n }\n }\n\n protected onFocus(): void {\n this.focus.emit(this.value());\n }\n\n protected onBlur(): void {\n this.blur.emit();\n }\n\n // Public methods\n setActive(active = true): void {\n if (active && !this.disabled()) {\n this.inputRef().nativeElement.focus();\n this.inputRef().nativeElement.select();\n }\n\n this.isActive.set(active);\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n} from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScInputOTPSlot } from './input-otp-slot';\n\n@Component({\n selector: 'sc-input-otp',\n imports: [ReactiveFormsModule],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScInputOtp),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ScInputOtp),\n multi: true,\n },\n ],\n})\nexport class ScInputOtp implements AfterContentInit, ControlValueAccessor {\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n protected readonly disabled = linkedSignal(() => this.disabledInput());\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex items-center gap-2 has-disabled:opacity-50', this.classInput()),\n );\n\n readonly slots = contentChildren(ScInputOTPSlot, { descendants: true });\n\n readonly currentIndex = signal(-1);\n\n readonly value = model('');\n\n type = input<'numeric' | 'alphanumeric'>('numeric');\n\n constructor() {\n effect(() => {\n if (this.slots()) {\n this.slots().forEach((slot) => {\n slot.disabled.set(this.disabled());\n });\n }\n });\n }\n\n ngAfterContentInit() {\n // Wait for content children to be initialized\n setTimeout(() => {\n this.setupDigitComponents();\n });\n }\n\n private setupDigitComponents() {\n const digits = this.slots();\n\n if (!digits || digits.length === 0) {\n console.error('No OTP digit components found');\n return;\n }\n\n // Set up focus management and value change handling\n digits.forEach((digit, index) => {\n // Subscribe to value changes\n digit.value.subscribe((value: string) => {\n this.updateOtpValue();\n this.onTouched();\n\n // Auto-focus next input when a digit is entered\n if (value && index < digits.length - 1) {\n this.setCurrentPosition(index + 1);\n }\n });\n\n digit.arrowRight.subscribe(() => {\n if (index < digits.length - 1) {\n this.setCurrentPosition(index + 1);\n }\n });\n\n // Handle backspace - move focus to previous input\n digit.backspace.subscribe(() => {\n if (index > 0) {\n this.setCurrentPosition(index - 1);\n }\n });\n\n // Handle arrow keys for navigation\n digit.arrowLeft.subscribe(() => {\n if (index > 0) {\n this.setCurrentPosition(index - 1);\n }\n });\n\n // Track focus events\n digit.focus.subscribe((value: string) => {\n if (value) {\n this.setCurrentPosition(index);\n } else {\n const index = this.findFirstSlotToHighlight();\n this.setCurrentPosition(index);\n }\n });\n\n digit.blur.subscribe(() => {\n digit.setActive(false);\n });\n\n // Handle paste event - distribute characters to subsequent inputs\n digit.paste.subscribe((remainingText: string) => {\n // Process the remaining pasted text\n this.handleMultiDigitPaste(remainingText, index + 1);\n this.onTouched();\n });\n });\n\n // Set initial focus if not disabled\n if (!this.disabled()) {\n const index = this.findFirstSlotToHighlight();\n this.setCurrentPosition(index);\n }\n }\n\n setCurrentPosition(position: number) {\n if (position !== this.currentIndex()) {\n this.currentIndex.set(position);\n }\n // Add visual indication to the currently active digit\n this.slots().forEach((digit, index) => {\n digit.setActive(index === position);\n });\n }\n\n private findFirstSlotToHighlight() {\n const arr = this.slots();\n\n for (let i = 0; i < arr.length; i++) {\n if (!arr[i].value()) {\n return i;\n }\n }\n\n return arr.length - 1;\n }\n\n private handleMultiDigitPaste(text: string, startIndex: number) {\n if (!text) return;\n\n const digits = this.slots();\n const chars = text.split('');\n\n // Fill the remaining inputs with the pasted characters\n chars.forEach((char, i) => {\n const targetIndex = startIndex + i;\n if (targetIndex < digits.length) {\n digits[targetIndex].value.set(char);\n }\n });\n\n // Focus the next empty input or the last input if all are filled\n const nextEmptyIndex = digits.findIndex(\n (digit, index) => index >= startIndex + chars.length && !digit.value,\n );\n if (nextEmptyIndex !== -1) {\n this.setCurrentPosition(nextEmptyIndex);\n } else if (startIndex + chars.length < digits.length) {\n this.setCurrentPosition(startIndex + chars.length);\n } else {\n // All digits filled, focus the last one\n this.setCurrentPosition(digits.length - 1);\n }\n\n this.updateOtpValue();\n }\n\n private updateOtpValue() {\n // Check if OTP is complete\n // const isComplete = this.slots().every((digit) => digit.value);\n // if (isComplete) {\n // }\n\n const value = this.slots()\n .map((digit) => digit.value || '')\n .join('');\n\n this.value.set(value);\n\n this.onChange(value);\n }\n\n // Validator implementation\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n // Check if the OTP is complete\n if (value.length < this.slots().length) {\n return { incomplete: true };\n }\n\n return null;\n }\n\n // Public method to clear all inputs\n public clear() {\n if (this.slots()) {\n this.slots().forEach((digit) => digit.value.set(''));\n this.value.set('');\n this.onChange(this.value);\n\n if (this.slots().length > 0 && !this.disabled()) {\n this.setCurrentPosition(0);\n }\n }\n }\n\n // Public method to set OTP value programmatically\n public setValue(value: string) {\n if (!value || !this.slots()) return;\n\n const valueArray = value.split('');\n\n this.slots().forEach((digit, index) => {\n if (index < valueArray.length) {\n digit.value.set(valueArray[index]);\n } else {\n digit.value.set('');\n }\n });\n\n this.updateOtpValue();\n }\n\n writeValue(value: string): void {\n if (!value) {\n this.clear();\n return;\n }\n\n this.setValue(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\n onChange = (_: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-input-otp-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputOTPGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiDotIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'sc-input-otp-separator',\n imports: [SiDotIcon],\n template: `\n <svg si-dot-icon></svg>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputOTPSeparator {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'textarea[sc-textarea]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTextarea {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nexport interface ScOptionModel {\n id: string | number;\n label: string;\n selected?: boolean;\n}\n\n@Component({\n selector: 'sc-multi-select',\n imports: [FormsModule],\n template: `\n <div class=\"relative w-full\">\n <!-- Label for screen readers -->\n @if (label) {\n <label class=\"block text-sm font-medium text-gray-700 mb-1\" [attr.for]=\"labelId\">\n {{ label }}\n @if (required()) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <!-- Selected items display -->\n <div\n class=\"flex flex-wrap items-center gap-1 p-2 border rounded-md bg-white cursor-pointer min-h-10\"\n #toggleButton\n [attr.id]=\"labelId\"\n [attr.aria-labelledby]=\"labelId\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-required]=\"required()\"\n [attr.aria-describedby]=\"descriptionId\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [class.ring-2]=\"isOpen()\"\n [class.ring-blue-500]=\"isOpen()\"\n [class.border-red-500]=\"showError()\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeydown($event)\"\n role=\"combobox\"\n tabindex=\"0\"\n >\n @for (option of selectedOptions; track option) {\n <div class=\"flex items-center bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-sm\">\n {{ option.label }}\n <button\n class=\"ml-1 text-blue-500 hover:text-blue-700\"\n [attr.aria-label]=\"f(option)\"\n (click)=\"toggleOption(option, $event)\"\n type=\"button\"\n >\n ×\n </button>\n </div>\n }\n\n @if (selectedOptions.length === 0) {\n <div class=\"text-gray-400\">\n {{ placeholder() }}\n </div>\n }\n\n <div class=\"ml-auto\">\n <svg\n class=\"h-5 w-5 text-gray-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </div>\n </div>\n\n <!-- Description for screen readers -->\n <div class=\"sr-only\" [attr.id]=\"descriptionId\">\n Press Enter to open the dropdown. Use arrow keys to navigate options. Press Space to select\n or deselect.\n </div>\n\n <!-- Error message -->\n @if (showError() && errorMessage) {\n <div class=\"text-sm text-red-500 mt-1\">\n {{ errorMessage }}\n </div>\n }\n\n <!-- Dropdown menu -->\n @if (isOpen()) {\n <div\n class=\"absolute z-10 mt-1 w-full bg-white border rounded-md shadow-lg max-h-60 overflow-auto\"\n [attr.id]=\"listboxId\"\n [attr.aria-multiselectable]=\"true\"\n role=\"listbox\"\n >\n @if (searchable()) {\n <div class=\"sticky top-0 bg-white p-2 border-b\">\n <input\n class=\"w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n #searchInput\n [(ngModel)]=\"searchText\"\n (input)=\"onSearch()\"\n (click)=\"$event.stopPropagation()\"\n type=\"text\"\n placeholder=\"Search...\"\n aria-label=\"Search options\"\n />\n </div>\n }\n <div class=\"py-1\">\n @for (option of filteredOptions; track option; let i = $index) {\n <button\n class=\"flex items-center px-4 py-2 hover:bg-gray-100 cursor-pointer\"\n [attr.id]=\"'option-' + option.id\"\n [attr.aria-selected]=\"isSelected(option)\"\n [class.bg-gray-100]=\"focusedIndex === i\"\n (click)=\"toggleOption(option, $event)\"\n (mouseenter)=\"focusedIndex = i\"\n role=\"option\"\n >\n <input\n class=\"h-4 w-4 text-blue-600 rounded focus:ring-blue-500\"\n [checked]=\"isSelected(option)\"\n (click)=\"$event.stopPropagation()\"\n type=\"checkbox\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n />\n <span class=\"ml-2\">{{ option.label }}</span>\n </button>\n }\n @if (filteredOptions.length === 0) {\n <div class=\"px-4 py-2 text-gray-500\" role=\"status\">No results found</div>\n }\n </div>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMultiSelect implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n readonly options = input<ScOptionModel[]>([]);\n readonly placeholder = input('Select options');\n readonly searchable = input(true);\n @Input() label = '';\n readonly required = input(false);\n readonly showError = input(false);\n @Input() errorMessage = 'This field is required';\n\n @Output() selectionChange = new EventEmitter<ScOptionModel[]>();\n\n protected readonly isOpen = signal(false);\n searchText = '';\n filteredOptions: ScOptionModel[] = [];\n focusedIndex = -1;\n\n uniqueId: string = 'multiselect-' + Math.random().toString(36).substring(2, 9);\n labelId = `${this.uniqueId}-label`;\n listboxId = `${this.uniqueId}-listbox`;\n descriptionId = `${this.uniqueId}-description`;\n\n get activeDescendant(): string | null {\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n return 'option-' + this.filteredOptions[this.focusedIndex].id;\n }\n return null;\n }\n\n ngOnInit() {\n this.filteredOptions = [...this.options()];\n }\n\n get selectedOptions(): ScOptionModel[] {\n return this.options().filter((option) => option.selected);\n }\n\n toggleDropdown() {\n this.isOpen.update((isOpen) => !isOpen);\n if (this.isOpen()) {\n this.onSearch();\n this.focusedIndex = -1;\n\n // Focus search input if searchable\n setTimeout(() => {\n const searchInput = this.elementRef.nativeElement.querySelector('input[type=\"text\"]');\n if (searchInput && this.searchable()) {\n searchInput.focus();\n }\n });\n }\n }\n\n toggleOption(option: ScOptionModel, event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n\n option.selected = !option.selected;\n this.selectionChange.emit(this.selectedOptions);\n\n // Announce selection change for screen readers\n this.announceForScreenReader(`${option.label} ${option.selected ? 'selected' : 'unselected'}`);\n }\n\n isSelected(option: ScOptionModel): boolean {\n return option.selected === true;\n }\n\n onSearch() {\n if (!this.searchText.trim()) {\n this.filteredOptions = [...this.options()];\n return;\n }\n\n const searchLower = this.searchText.toLowerCase();\n this.filteredOptions = this.options().filter((option) =>\n option.label.toLowerCase().includes(searchLower),\n );\n\n // Reset focused index when search results change\n this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1;\n }\n\n onKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n if (!this.isOpen()) {\n this.toggleDropdown();\n } else if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.toggleOption(this.filteredOptions[this.focusedIndex]);\n }\n break;\n\n case 'Escape':\n if (this.isOpen()) {\n event.preventDefault();\n this.isOpen.set(false);\n this.elementRef.nativeElement.querySelector('[role=\"combobox\"]').focus();\n }\n break;\n\n case 'ArrowDown':\n if (this.isOpen()) {\n event.preventDefault();\n if (this.focusedIndex < this.filteredOptions.length - 1) {\n this.focusedIndex++;\n this.scrollToOption();\n }\n } else {\n this.toggleDropdown();\n }\n break;\n\n case 'ArrowUp':\n if (this.isOpen()) {\n event.preventDefault();\n if (this.focusedIndex > 0) {\n this.focusedIndex--;\n this.scrollToOption();\n }\n }\n break;\n\n case ' ': // Space\n if (this.isOpen() && this.focusedIndex >= 0) {\n event.preventDefault();\n this.toggleOption(this.filteredOptions[this.focusedIndex]);\n }\n break;\n\n case 'Tab':\n if (this.isOpen()) {\n this.isOpen.set(false);\n }\n break;\n\n case 'Home':\n if (this.isOpen()) {\n event.preventDefault();\n this.focusedIndex = 0;\n this.scrollToOption();\n }\n break;\n\n case 'End':\n if (this.isOpen()) {\n event.preventDefault();\n this.focusedIndex = this.filteredOptions.length - 1;\n this.scrollToOption();\n }\n break;\n }\n }\n\n scrollToOption() {\n setTimeout(() => {\n const optionElement = this.elementRef.nativeElement.querySelector(\n `[id=\"option-${this.filteredOptions[this.focusedIndex].id}\"]`,\n );\n if (optionElement) {\n optionElement.scrollIntoView({ block: 'nearest' });\n }\n });\n }\n\n announceForScreenReader(message: string) {\n // Create an invisible div for screen reader announcements\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'polite');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n\n document.body.appendChild(announcement);\n\n // Remove after announcement is read\n setTimeout(() => {\n document.body.removeChild(announcement);\n }, 1000);\n }\n\n @HostListener('document:click', ['$event'])\n clickOutside(event: Event) {\n if (!(event.target as HTMLElement).closest('app-multi-select')) {\n this.isOpen.set(false);\n }\n }\n\n f(option: ScOptionModel) {\n return 'Remove' + option.label;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n output,\n signal,\n} from '@angular/core';\n\nimport { SiArrowUpIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\n\nexport type ButtonState = 'initial' | 'visible' | 'hidden';\n\n@Component({\n selector: 'sc-scroll-to-top-button2',\n imports: [NgClass, ScButton, SiArrowUpIcon],\n template: `\n <button\n class=\"size-12 rounded-full shadow-lg transition-all duration-300 ease-out\"\n [ngClass]=\"{\n 'opacity-0 translate-y-5 scale-90': state() === 'initial' || state() === 'hidden',\n 'opacity-100 translate-y-0 scale-100': state() === 'visible',\n }\"\n (click)=\"onScrollToTop()\"\n (transitionend)=\"onTransitionEnd($event)\"\n sc-button\n aria-label=\"Scroll to top\"\n >\n <svg class=\"size-6\" si-arrow-up-icon></svg>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScScrollToTopButton2 {\n readonly scrollToTop = output<void>();\n readonly animationDone = output<void>();\n\n readonly state = signal<ButtonState>('initial');\n\n protected onScrollToTop() {\n this.scrollToTop.emit();\n }\n\n protected onTransitionEnd(event: TransitionEvent) {\n // Only emit when opacity transition ends to avoid multiple emissions\n if (event.propertyName === 'opacity' && this.state() === 'hidden') {\n this.animationDone.emit();\n }\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, DestroyRef, Injectable, Injector, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { distinctUntilChanged, throttleTime } from 'rxjs/operators';\n\nimport { fromEvent } from 'rxjs';\n\nimport { ScScrollToTopButton2 } from './scroll-to-top-button2';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScScrollToTop {\n private readonly overlay = inject(Overlay);\n private readonly injector = inject(Injector);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private overlayRef: OverlayRef | null = null;\n private componentRef: ComponentRef<ScScrollToTopButton2> | null = null;\n private readonly scrollThreshold = 300;\n\n init() {\n // Set up scroll listener\n fromEvent(window, 'scroll')\n .pipe(throttleTime(100), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (window.scrollY > this.scrollThreshold) {\n this.show();\n } else {\n this.hide();\n }\n });\n }\n\n private show() {\n if (!this.componentRef) {\n // Create the overlay if it doesn't exist\n if (!this.overlayRef) {\n const config = new OverlayConfig({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global().bottom('20px').right('20px'),\n });\n\n this.overlayRef = this.overlay.create(config);\n }\n\n const portal = new ComponentPortal(ScScrollToTopButton2, null, this.injector);\n this.componentRef = this.overlayRef.attach(portal);\n\n // Subscribe to the scrollToTop event\n this.componentRef.instance.scrollToTop.subscribe(() => {\n this.scrollToTop();\n });\n\n // Small delay to allow DOM to update before animation\n setTimeout(() => {\n if (this.componentRef) {\n this.componentRef.instance.state.set('visible');\n }\n }, 10);\n } else if (this.componentRef) {\n this.componentRef.instance.state.set('visible');\n }\n }\n\n private hide() {\n if (this.componentRef) {\n this.componentRef.instance.state.set('hidden');\n this.componentRef.instance.animationDone.subscribe(() => {\n if (\n this.overlayRef &&\n this.componentRef &&\n this.componentRef.instance.state() === 'hidden'\n ) {\n this.overlayRef.detach();\n this.componentRef = null;\n }\n });\n }\n }\n\n private scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiArrowUpIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-scroll-to-top-button]',\n imports: [SiArrowUpIcon],\n template: `\n <svg class=\"size-6\" si-arrow-up-icon></svg>\n `,\n host: {\n '(click)': 'scrollToTop()',\n '(window:scroll)': 'onWindowScroll()',\n 'aria-label': 'Scroll to top',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScScrollToTopButton extends ScButtonBase {\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'fixed bottom-6 right-6 size-12 rounded-full shadow-lg transition-all duration-300 ease-out pointer-events-none',\n !this.showScrollButton() && 'opacity-0 translate-y-5 scale-90',\n this.showScrollButton() && 'opacity-100 translate-y-0 scale-100 pointer-events-auto',\n this.classInput(),\n ),\n );\n\n protected readonly showScrollButton = signal(false);\n\n protected onWindowScroll() {\n // Show button when page is scrolled down 300px\n this.showScrollButton.set(window.scrollY > 300);\n }\n\n protected scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n numberAttribute,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-circular-progress',\n imports: [],\n template: `\n <svg class=\"relative -rotate-90\" [attr.height]=\"radius() * 2\" [attr.width]=\"radius() * 2\">\n <!-- Background Circle -->\n <circle\n class=\"fill-transparent text-gray-200\"\n [attr.stroke-width]=\"stroke()\"\n [attr.r]=\"normalizedRadius()\"\n [attr.cx]=\"radius()\"\n [attr.cy]=\"radius()\"\n stroke=\"currentColor\"\n ></circle>\n\n <!-- Progress Circle -->\n <circle\n class=\"fill-transparent text-primary transition-all duration-300\"\n [attr.stroke-width]=\"stroke()\"\n [attr.r]=\"normalizedRadius()\"\n [attr.cx]=\"radius()\"\n [attr.cy]=\"radius()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"strokeDashoffset()\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n ></circle>\n </svg>\n\n <!-- Progress Text -->\n <div class=\"absolute flex items-center justify-center text-xl font-semibold text-primary\">\n {{ value() }}%\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCircularProgress {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex justify-center items-center relative h-[100px] w-[100px]', this.classInput()),\n );\n\n // Progress percentage\n readonly value = input<number, unknown>(0, {\n transform: numberAttribute,\n });\n\n protected readonly radius = signal(50); // Radius of the circle\n protected readonly stroke = signal(8); // Thickness of the stroke\n\n // Adjusted radius for the stroke width\n protected readonly normalizedRadius = computed(() => this.radius() - this.stroke() * 0.5);\n\n // Circle circumference\n protected readonly circumference = computed(() => this.normalizedRadius() * 2 * Math.PI);\n\n // Dash offset for progress\n // Calculate stroke-dashoffset based on progress\n protected readonly strokeDashoffset = computed(() => {\n return this.circumference() - (this.value() / 100) * this.circumference();\n });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sheet-container',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef()\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSheetContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block size-full', this.classInput()));\n\n readonly templateRef = signal<TemplateRef<unknown> | null>(null);\n}\n","import { Overlay, OverlayConfig, OverlayContainer, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Injectable,\n TemplateRef,\n effect,\n inject,\n linkedSignal,\n signal,\n} from '@angular/core';\n\nimport { ScSheetConfig } from './sheet-config';\nimport { ScSheetContainer } from './sheet-container';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScSheetManager {\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly overlay = inject(Overlay);\n private overlayRef!: OverlayRef;\n\n readonly isOpen = signal(false);\n\n readonly state = linkedSignal(() => (this.isOpen() ? 'open' : 'closed'));\n\n readonly side = signal<'top' | 'bottom' | 'left' | 'right'>('right');\n\n constructor() {\n effect(() => {\n const overlayDarkBackdrop = this.overlayContainer\n .getContainerElement()\n .querySelector('.cdk-overlay-dark-backdrop');\n if (overlayDarkBackdrop) {\n overlayDarkBackdrop.setAttribute('data-state', this.state());\n }\n });\n }\n\n open(templateRef: TemplateRef<unknown>, config: ScSheetConfig) {\n this.isOpen.set(true);\n this.side.set(config.side);\n\n const overlayConfig = this.getOverlayConfig(config);\n\n // Set block scroll strategy\n overlayConfig.scrollStrategy = this.overlay.scrollStrategies.block();\n\n this.overlayRef = this.overlay.create(overlayConfig);\n\n const scSheetPortal = new ComponentPortal(ScSheetContainer);\n const scSheetRef: ComponentRef<ScSheetContainer> = this.overlayRef.attach(scSheetPortal);\n\n scSheetRef.instance.templateRef.set(templateRef);\n\n this.overlayRef.backdropClick().subscribe(() => this.state.set('closed'));\n }\n\n close() {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef?.detach();\n this.isOpen.set(false);\n }\n }\n\n private getOverlayConfig(config: ScSheetConfig): OverlayConfig {\n switch (config.side) {\n case 'top': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().top(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n case 'bottom': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().bottom(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n case 'left': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().left(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n case 'right': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().right(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n\n default: {\n throw new Error('Error in switch case');\n }\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nimport { ScSheetManager } from './sheet-manager';\n\nconst sheetVariants = cva(\n 'relative z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n {\n variants: {\n side: {\n top: 'size-full border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'size-full border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'size-full border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'size-full border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n },\n);\n\nexport type SheetVariants = VariantProps<typeof sheetVariants>;\n\n@Component({\n selector: 'div[sc-sheet]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '(animationend)': 'handleAnimationEnd($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSheet {\n private readonly scSheetManager = inject(ScSheetManager);\n\n readonly state = computed<'open' | 'closed'>(() => {\n return this.scSheetManager.state();\n });\n\n readonly side = computed<'top' | 'bottom' | 'left' | 'right'>(() => {\n return this.scSheetManager.side();\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(sheetVariants({ side: this.side() }), this.classInput()),\n );\n\n protected handleAnimationEnd(event: AnimationEvent): void {\n if (event.target === event.currentTarget && event.animationName === 'exit') {\n this.scSheetManager.close();\n }\n }\n}\n","export class ScSheetConfig {\n side: 'top' | 'bottom' | 'left' | 'right' = 'right';\n width = '100%';\n height = '100%';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScSheetManager } from './sheet-manager';\n\n@Component({\n selector: 'button[sc-sheet-close]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '(click)': 'close()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSheetClose {\n private readonly scSheetManager = inject(ScSheetManager);\n\n readonly state = computed<'open' | 'closed'>(() => {\n return this.scSheetManager.state();\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n this.classInput(),\n ),\n );\n\n protected close() {\n this.scSheetManager.state.set('closed');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'nav[sc-breadcrumb]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.aria-label]': '\"breadcrumb\"',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumb {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ol[sc-breadcrumb-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbList {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'li[sc-breadcrumb-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('inline-flex items-center gap-1.5', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'a[sc-breadcrumb-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbLink {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('transition-colors hover:text-foreground', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-breadcrumb-page]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'link',\n '[attr.aria-disabled]': 'true',\n '[attr.aria-current]': '\"page\"',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbPage {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('font-normal text-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'li[sc-breadcrumb-separator]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'presentation',\n '[attr.aria-hidden]': 'true',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbSeparator {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('[&_svg]:w-3.5 [&_svg]:h-3.5', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-breadcrumb-ellipsis], button[sc-breadcrumb-ellipsis]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'presentation',\n '[attr.aria-hidden]': 'true',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbEllipsis {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex h-9 w-9 items-center justify-center', this.classInput()),\n );\n}\n","import { Directive, computed, input, signal } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nexport const toggleVariants = cva(\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border border-input bg-transparent hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n default: 'h-10 min-w-10 px-3',\n sm: 'h-9 min-w-9 px-2.5',\n lg: 'h-11 min-w-11 px-5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ToggleVariants = VariantProps<typeof toggleVariants>;\n\n@Directive({\n host: {\n '[class]': 'class()',\n '(click)': 'toggle()',\n },\n})\nexport class ScToggleBase {\n readonly variant = input<ToggleVariants['variant']>('default');\n\n readonly size = input<ToggleVariants['size']>('default');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n toggleVariants({ variant: this.variant(), size: this.size() }),\n this.active() && 'bg-accent text-accent-foreground',\n this.classInput(),\n ),\n );\n\n readonly active = signal(false);\n\n protected toggle() {\n this.active.update((active) => !active);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { ScToggleBase } from './toggle-base';\n\n@Component({\n selector: 'button[sc-toggle]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {},\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggle extends ScToggleBase {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-toggle-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggleGroup {\n readonly type = input<'single' | 'multiple'>('single');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex items-center justify-center gap-1', this.classInput()),\n );\n\n readonly value = input<string[]>([]);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScToggleBase, toggleVariants } from '../toggle/toggle-base';\n\n@Component({\n selector: 'button[sc-toggle-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {},\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggleItem extends ScToggleBase {\n protected override readonly class = computed(() =>\n cn(\n toggleVariants({ variant: this.variant(), size: this.size() }),\n 'flex items-center justify-center gap-1',\n this.active() && 'bg-accent text-accent-foreground',\n this.classInput(),\n ),\n );\n\n readonly value = input<string>();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'div[sc-dialog]',\n imports: [],\n template: `\n <ng-content />\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialog {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-dialog-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(' flex flex-col space-y-1.5 text-center sm:text-left', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-dialog-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('text-lg font-semibold leading-none tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-dialog-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-dialog-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.classInput()),\n );\n}\n","import { DIALOG_DATA, DialogModule } from '@angular/cdk/dialog';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-dialog-container',\n imports: [DialogModule, NgTemplateOutlet],\n template: `\n @if (data.templateRef) {\n <ng-container *ngTemplateOutlet=\"data.templateRef\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogContainer {\n data = inject<{\n templateRef: TemplateRef<unknown>;\n }>(DIALOG_DATA);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block size-full', this.classInput()));\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { Injectable, TemplateRef, effect, inject, linkedSignal, signal } from '@angular/core';\n\nimport { ScDialogContainer } from './dialog-container';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScDialogManager {\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly dialog = inject(Dialog);\n\n readonly isOpen = signal(false);\n\n readonly state = linkedSignal(() => (this.isOpen() ? 'open' : 'closed'));\n\n constructor() {\n effect(() => {\n const overlayDarkBackdrop = this.overlayContainer\n .getContainerElement()\n .querySelector('.cdk-overlay-dark-backdrop');\n if (overlayDarkBackdrop) {\n overlayDarkBackdrop.setAttribute('data-state', this.state());\n }\n });\n }\n\n open(templateRef: TemplateRef<unknown>) {\n const dialogRef = this.dialog.open(ScDialogContainer, {\n minWidth: '300px',\n // Pass the template as data to the dialog\n data: { templateRef },\n });\n\n this.isOpen.set(true);\n\n dialogRef.closed.subscribe((result) => {\n this.isOpen.set(false);\n });\n }\n\n close() {\n console.log('close');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScDialogManager } from './dialog-manager';\n\n@Component({\n selector: 'button[sc-dialog-close]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'close()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogClose {\n private readonly scDialogManager = inject(ScDialogManager);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n this.classInput(),\n ),\n );\n\n protected close() {\n this.scDialogManager.close();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-dialog-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7 [&_svg]:size-4',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\ntype AlertVariants = VariantProps<typeof alertVariants>;\n\n@Component({\n selector: 'div[sc-alert]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'alert',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlert {\n readonly variant = input<AlertVariants['variant']>('default');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(alertVariants({ variant: this.variant() }), this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h5[sc-alert-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('mb-1 font-medium leading-none tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-alert-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm [&_p]:leading-relaxed', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-alert-dialog-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-alert-dialog-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-alert-dialog-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-col space-y-2 text-center sm:text-left', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-alert-dialog-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-lg font-semibold', this.classInput()));\n}\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButton } from '../button';\nimport { ScAlertDialogDescription } from './alert-dialog-description';\nimport { ScAlertDialogFooter } from './alert-dialog-footer';\nimport { ScAlertDialogHeader } from './alert-dialog-header';\nimport { ScAlertDialogManager } from './alert-dialog-manager';\nimport { ScAlertDialogTitle } from './alert-dialog-title';\n\n@Component({\n selector: 'sc-alert-dialog',\n imports: [\n ScButton,\n ScAlertDialogFooter,\n ScAlertDialogHeader,\n ScAlertDialogDescription,\n ScAlertDialogTitle,\n ],\n template: `\n <div sc-alert-dialog-header>\n <h2 sc-alert-dialog-title>{{ data.title }}</h2>\n\n <p sc-alert-dialog-description>\n {{ data.description }}\n </p>\n </div>\n\n <div sc-alert-dialog-footer>\n <button class=\"mt-2 sm:mt-0\" (click)=\"close(false)\" variant=\"outline\" sc-button>\n Cancel\n </button>\n <button (click)=\"close(true)\" sc-button>{{ data.action }}</button>\n </div>\n `,\n host: {\n '[class]': 'class()',\n '(animationend)': 'handleAnimationEnd($event)',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialog {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n this.classInput(),\n ),\n );\n\n private readonly dialogRef = inject(DialogRef);\n protected readonly data = inject(DIALOG_DATA);\n\n private readonly scAlertDialogManager = inject(ScAlertDialogManager);\n\n protected readonly state = computed(() => this.scAlertDialogManager.state());\n\n constructor() {\n this.dialogRef.disableClose = true;\n }\n\n private response = false;\n\n protected handleAnimationEnd(event: AnimationEvent): void {\n if (event.target === event.currentTarget && event.animationName === 'exit') {\n this.dialogRef.close(this.response);\n }\n }\n\n protected close(response: boolean) {\n this.scAlertDialogManager.state.set('closed');\n this.response = response;\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { Injectable, effect, inject, linkedSignal, signal } from '@angular/core';\n\nimport { firstValueFrom } from 'rxjs';\n\nimport { ScAlertDialog } from './alert-dialog';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScAlertDialogManager {\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly dialog = inject(Dialog);\n\n readonly isOpen = signal(false);\n\n readonly state = linkedSignal(() => (this.isOpen() ? 'open' : 'closed'));\n\n constructor() {\n effect(() => {\n const overlayDarkBackdrop = this.overlayContainer\n .getContainerElement()\n .querySelector('.cdk-overlay-dark-backdrop');\n if (overlayDarkBackdrop) {\n overlayDarkBackdrop.setAttribute('data-state', this.state());\n }\n });\n }\n\n async open(title: string, description: string, action: string): Promise<boolean> {\n const dialogRef = this.dialog.open<boolean>(ScAlertDialog, {\n minWidth: '300px',\n data: { title: title, description: description, action: action },\n });\n\n this.isOpen.set(true);\n\n return firstValueFrom(dialogRef.closed).then((result) => {\n this.isOpen.set(false);\n return Promise.resolve(!!result);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n primary: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'primary',\n },\n },\n);\n\ntype BadgeVariants = VariantProps<typeof badgeVariants>;\n\n@Component({\n selector: 'div[sc-badge]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBadge {\n readonly variant = input<BadgeVariants['variant']>('primary');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(badgeVariants({ variant: this.variant() }), this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-scroll-area]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[class.scrollbar-gutter-stable-both-edges]': 'true',\n '(mouseover)': 'mouseover()',\n '(mouseout)': 'mouseout()',\n },\n styles: `\n .scrollbar-custom::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n\n .scrollbar-custom::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.05);\n border-radius: 4px;\n }\n\n .scrollbar-custom::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n }\n\n .scrollbar-custom::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n\n .dark .scrollbar-custom::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.05);\n }\n\n .dark .scrollbar-custom::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2);\n }\n\n .dark .scrollbar-custom::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\n }\n\n .scrollbar-hidden {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n\n .scrollbar-gutter-stable-both-edges {\n scrollbar-gutter: stable both-edges;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScScrollArea {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative',\n 'overflow-auto scroll-smooth',\n this.state() === 'visible' && 'scrollbar-custom',\n this.state() === 'hidden' && 'scrollbar-hidden',\n this.classInput(),\n ),\n );\n\n private readonly state = signal<'visible' | 'hidden'>('hidden');\n\n protected mouseover() {\n this.state.set('visible');\n }\n\n protected mouseout() {\n this.state.set('hidden');\n }\n}\n","// hover-scrollbar.component.ts\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n OnChanges,\n SimpleChanges,\n input,\n viewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-hover-scrollbar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"relative mx-auto\"\n [ngClass]=\"{\n 'border border-gray-300': border(),\n }\"\n [ngStyle]=\"{\n width: width() + 'px',\n height: height() + 'px',\n }\"\n >\n <div\n class=\"w-full h-full overflow-y-auto p-3 box-border\"\n #contentContainer\n [ngClass]=\"{ 'hover-scrollbar': isScrollable }\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styles: [\n `\n @reference \"tailwindcss\";\n\n /* These styles need to be included as they cannot be done with Tailwind utility classes */\n .hover-scrollbar::-webkit-scrollbar {\n width: 8px;\n }\n\n .hover-scrollbar::-webkit-scrollbar-thumb {\n @apply bg-transparent rounded-md transition-colors duration-300;\n }\n\n .hover-scrollbar:hover::-webkit-scrollbar-thumb {\n @apply bg-gray-400;\n }\n\n .hover-scrollbar:hover::-webkit-scrollbar-thumb:hover {\n @apply bg-gray-500;\n }\n\n /* Firefox */\n .hover-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n transition: scrollbar-color 0.3s ease;\n }\n\n .hover-scrollbar:hover {\n scrollbar-color: theme('colors.gray.400') transparent;\n }\n\n /* Hide scrollbar when not scrollable for WebKit */\n ::-webkit-scrollbar {\n width: 0px;\n background: transparent;\n }\n `,\n ],\n})\nexport class HoverScrollbarComponent implements AfterViewInit, OnChanges {\n readonly width = input(300);\n readonly height = input(200);\n readonly border = input(true);\n\n readonly contentContainer = viewChild.required<ElementRef>('contentContainer');\n\n isScrollable = false;\n\n ngAfterViewInit() {\n this.checkIfScrollable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // When inputs change that might affect scrollability, check again\n if ((changes['width'] || changes['height']) && this.contentContainer()) {\n setTimeout(() => this.checkIfScrollable(), 0);\n }\n }\n\n checkIfScrollable() {\n const element = this.contentContainer().nativeElement;\n this.isScrollable = element.scrollHeight > element.clientHeight;\n\n // Add a mutation observer to check when content changes\n const observer = new MutationObserver(() => {\n this.isScrollable = element.scrollHeight > element.clientHeight;\n });\n\n observer.observe(element, {\n childList: true,\n subtree: true,\n characterData: true,\n });\n }\n}\n","// scroll-area.component.ts\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, OnDestroy, viewChild } from '@angular/core';\n\n@Component({\n selector: 'sc-scroll-area3',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"h-[8.5rem] w-96 max-w-[calc(100vw-8rem)] relative\">\n <div\n class=\"h-full overflow-y-scroll overscroll-contain rounded-md outline outline-1 -outline-offset-1 outline-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-800 scrollbar-hide\"\n #viewport\n (scroll)=\"onScroll()\"\n (mouseenter)=\"isHovering = true\"\n (mouseleave)=\"isHovering = false\"\n >\n <div class=\"flex flex-col gap-4 py-3 pr-6 pl-4 text-sm leading-[1.375rem] text-gray-900\">\n <p>\n Vernacular architecture is building done outside any academic tradition, and without\n professional guidance. It is not a particular architectural movement or style, but\n rather a broad category, encompassing a wide range and variety of building types, with\n differing methods of construction, from around the world, both historical and extant and\n classical and modern. Vernacular architecture constitutes 95% of the world's built\n environment, as estimated in 1995 by Amos Rapoport, as measured against the small\n percentage of new buildings every year designed by architects and built by engineers.\n </p>\n <p>\n This type of architecture usually serves immediate, local needs, is constrained by the\n materials available in its particular region and reflects local traditions and cultural\n practices. The study of vernacular architecture does not examine formally schooled\n architects, but instead that of the design skills and tradition of local builders, who\n were rarely given any attribution for the work. More recently, vernacular architecture\n has been examined by designers and the building industry in an effort to be more energy\n conscious with contemporary design and construction—part of a broader interest in\n sustainable design.\n </p>\n </div>\n </div>\n <div\n class=\"absolute top-0 right-1 w-1 h-[calc(100%-0.5rem)] my-1 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute w-full rounded-full bg-gray-500 cursor-pointer\"\n #thumb\n [style.height.%]=\"thumbHeight\"\n [style.top.%]=\"thumbTop\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n </div>\n `,\n styles: [\n `\n /* Hide default scrollbar for Chrome, Safari and Opera */\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide default scrollbar for IE, Edge and Firefox */\n .scrollbar-hide {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `,\n ],\n})\nexport class ScrollAreaComponent implements OnDestroy, AfterViewInit {\n readonly viewportRef = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n readonly thumbRef = viewChild.required<ElementRef<HTMLDivElement>>('thumb');\n\n isScrolling = false;\n isHovering = false;\n isDragging = false;\n scrollTimeout: any;\n thumbHeight = 20;\n thumbTop = 0;\n startY = 0;\n startScrollTop = 0;\n\n constructor() {\n // Add document-level event listeners for drag operations\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngOnDestroy() {\n // Clean up event listeners\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngAfterViewInit() {\n this.updateThumb();\n }\n\n onScroll() {\n this.updateThumb();\n this.isScrolling = true;\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(() => {\n this.isScrolling = false;\n }, 300);\n }\n\n updateThumb() {\n const viewport = this.viewportRef().nativeElement;\n const scrollHeight = viewport.scrollHeight;\n const clientHeight = viewport.clientHeight;\n\n // Calculate thumb height as percentage of visible area\n this.thumbHeight = (clientHeight / scrollHeight) * 100;\n\n // Calculate thumb position\n this.thumbTop = (viewport.scrollTop / (scrollHeight - clientHeight)) * (100 - this.thumbHeight);\n }\n\n startDragging(event: MouseEvent) {\n this.isDragging = true;\n this.startY = event.clientY;\n this.startScrollTop = this.viewportRef().nativeElement.scrollTop;\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent) {\n if (!this.isDragging) return;\n\n const viewport = this.viewportRef().nativeElement;\n const deltaY = event.clientY - this.startY;\n const scrollbarHeight = viewport.clientHeight;\n const scrollContentHeight = viewport.scrollHeight;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentHeight / scrollbarHeight;\n\n // Update scroll position\n viewport.scrollTop = this.startScrollTop + deltaY * scrollRatio;\n\n event.preventDefault();\n }\n\n onMouseUp() {\n this.isDragging = false;\n }\n}\n","// horizontal-scroll-area.component.ts\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, OnDestroy, viewChild } from '@angular/core';\n\n@Component({\n selector: 'sc-horizontal-scroll-area',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"relative w-full max-w-4xl\">\n <!-- Horizontal scroll container -->\n <div\n class=\"overflow-x-scroll overflow-y-hidden overscroll-contain h-64 rounded-md outline outline-1 -outline-offset-1 outline-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-800 scrollbar-hide\"\n #viewport\n (scroll)=\"onScroll()\"\n (mouseenter)=\"isHovering = true\"\n (mouseleave)=\"isHovering = false\"\n >\n <!-- Content container -->\n <div class=\"flex flex-row gap-4 p-4 min-w-max\">\n <!-- Cards -->\n @for (item of items; track item) {\n <div\n class=\"bg-white rounded-lg shadow-md w-64 h-52 shrink-0 border border-gray-200 hover:border-blue-500 transition-colors duration-200\"\n >\n <div class=\"p-4 h-full flex flex-col\">\n <h3 class=\"text-lg font-medium text-gray-900 mb-2\">{{ item.title }}</h3>\n <p class=\"text-sm text-gray-600 grow\">{{ item.description }}</p>\n <div class=\"mt-4 text-xs text-gray-500\">{{ item.category }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- Custom scroll bar -->\n <div\n class=\"absolute bottom-0 left-0 right-4 h-1 mx-2 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute h-full rounded-full bg-gray-500 cursor-pointer\"\n #thumb\n [style.width.%]=\"thumbWidth\"\n [style.left.%]=\"thumbLeft\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n\n <!-- Arrow navigation -->\n <button\n class=\"absolute top-1/2 left-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollLeft }\"\n [disabled]=\"!canScrollLeft\"\n (click)=\"scrollLeft()\"\n aria-label=\"Scroll left\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n\n <button\n class=\"absolute top-1/2 right-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollRight }\"\n [disabled]=\"!canScrollRight\"\n (click)=\"scrollRight()\"\n aria-label=\"Scroll right\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n `,\n styles: [\n `\n /* Hide default scrollbar for Chrome, Safari and Opera */\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide default scrollbar for IE, Edge and Firefox */\n .scrollbar-hide {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `,\n ],\n})\nexport class HorizontalScrollAreaComponent implements OnDestroy, AfterViewInit {\n readonly viewportRef = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n readonly thumbRef = viewChild.required<ElementRef<HTMLDivElement>>('thumb');\n\n isScrolling = false;\n isHovering = false;\n isDragging = false;\n scrollTimeout: any;\n thumbWidth = 20;\n thumbLeft = 0;\n startX = 0;\n startScrollLeft = 0;\n canScrollLeft = false;\n canScrollRight = true;\n\n // Sample items for demonstration\n items = Array(15)\n .fill(0)\n .map((_, i) => ({\n title: `Item ${i + 1}`,\n description: `This is a description for item ${i + 1}. It contains some sample text to demonstrate the horizontal scrolling functionality.`,\n category: ['Design', 'Development', 'Marketing', 'Research'][i % 4],\n }));\n\n constructor() {\n // Add document-level event listeners for drag operations\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngOnDestroy() {\n // Clean up event listeners\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngAfterViewInit() {\n this.updateThumb();\n // Initial check for scroll buttons\n this.updateScrollButtonsState();\n }\n\n onScroll() {\n this.updateThumb();\n this.updateScrollButtonsState();\n this.isScrolling = true;\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(() => {\n this.isScrolling = false;\n }, 300);\n }\n\n updateThumb() {\n const viewport = this.viewportRef().nativeElement;\n const scrollWidth = viewport.scrollWidth;\n const clientWidth = viewport.clientWidth;\n\n // Calculate thumb width as percentage of visible area\n this.thumbWidth = (clientWidth / scrollWidth) * 100;\n\n // Calculate thumb position\n this.thumbLeft = (viewport.scrollLeft / (scrollWidth - clientWidth)) * (100 - this.thumbWidth);\n }\n\n updateScrollButtonsState() {\n const viewport = this.viewportRef().nativeElement;\n this.canScrollLeft = viewport.scrollLeft > 0;\n this.canScrollRight = viewport.scrollLeft < viewport.scrollWidth - viewport.clientWidth;\n }\n\n startDragging(event: MouseEvent) {\n this.isDragging = true;\n this.startX = event.clientX;\n this.startScrollLeft = this.viewportRef().nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent) {\n if (!this.isDragging) return;\n\n const viewport = this.viewportRef().nativeElement;\n const deltaX = event.clientX - this.startX;\n const scrollbarWidth = viewport.clientWidth;\n const scrollContentWidth = viewport.scrollWidth;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentWidth / scrollbarWidth;\n\n // Update scroll position\n viewport.scrollLeft = this.startScrollLeft + deltaX * scrollRatio;\n\n event.preventDefault();\n }\n\n onMouseUp() {\n this.isDragging = false;\n }\n\n scrollLeft() {\n const viewport = this.viewportRef().nativeElement;\n viewport.scrollBy({ left: -300, behavior: 'smooth' });\n }\n\n scrollRight() {\n const viewport = this.viewportRef().nativeElement;\n viewport.scrollBy({ left: 300, behavior: 'smooth' });\n }\n}\n","// flexible-scroll-area.component.ts\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n input,\n viewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-flexible-scroll-area',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"relative\"\n [ngClass]=\"{\n 'w-full max-w-4xl': orientation === 'horizontal',\n 'h-[8.5rem] w-96 max-w-[calc(100vw-8rem)]': orientation === 'vertical',\n }\"\n >\n <!-- Main scroll container -->\n <div\n class=\"overscroll-contain rounded-md outline -outline-offset-1 outline-gray-200 focus-visible:outline focus-visible:outline-blue-800 scrollbar-hide\"\n #viewport\n [ngClass]=\"{\n 'overflow-x-scroll overflow-y-hidden h-64': orientation === 'horizontal',\n 'overflow-y-scroll overflow-x-hidden h-full': orientation === 'vertical',\n }\"\n (scroll)=\"onScroll()\"\n (mouseenter)=\"isHovering = true\"\n (mouseleave)=\"isHovering = false\"\n >\n <!-- Content container with proper layout based on orientation -->\n <div\n [ngClass]=\"{\n 'flex flex-row gap-4 p-4 min-w-max': orientation === 'horizontal',\n 'flex flex-col gap-4 py-3 pr-6 pl-4 text-sm leading-[1.375rem] text-gray-900':\n orientation === 'vertical',\n }\"\n >\n <!-- Projected content from parent component -->\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- Custom scrollbar for vertical orientation -->\n @if (orientation === 'vertical') {\n <div\n class=\"absolute top-0 right-1 w-1 h-[calc(100%-0.5rem)] my-1 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute w-full rounded-full bg-gray-500 cursor-pointer\"\n #verticalThumb\n [style.height.%]=\"thumbSize\"\n [style.top.%]=\"thumbPosition\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n }\n\n <!-- Custom scrollbar for horizontal orientation -->\n @if (orientation === 'horizontal') {\n <div\n class=\"absolute bottom-0 left-0 right-4 h-1 mx-2 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute h-full rounded-full bg-gray-500 cursor-pointer\"\n #horizontalThumb\n [style.width.%]=\"thumbSize\"\n [style.left.%]=\"thumbPosition\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n }\n\n <!-- Navigation buttons for horizontal scrolling -->\n @if (orientation === 'horizontal' && showNavButtons()) {\n <button\n class=\"absolute top-1/2 left-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollStart }\"\n [disabled]=\"!canScrollStart\"\n (click)=\"scrollPrev()\"\n aria-label=\"Scroll left\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n <button\n class=\"absolute top-1/2 right-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollEnd }\"\n [disabled]=\"!canScrollEnd\"\n (click)=\"scrollNext()\"\n aria-label=\"Scroll right\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n }\n\n <!-- Navigation buttons for vertical scrolling -->\n @if (orientation === 'vertical' && showNavButtons()) {\n <button\n class=\"absolute top-2 left-1/2 -translate-x-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollStart }\"\n [disabled]=\"!canScrollStart\"\n (click)=\"scrollPrev()\"\n aria-label=\"Scroll up\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M5 15l7-7 7 7\"\n />\n </svg>\n </button>\n <button\n class=\"absolute bottom-2 left-1/2 -translate-x-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollEnd }\"\n [disabled]=\"!canScrollEnd\"\n (click)=\"scrollNext()\"\n aria-label=\"Scroll down\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </button>\n }\n </div>\n `,\n styles: [\n `\n /* Hide default scrollbar for Chrome, Safari and Opera */\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide default scrollbar for IE, Edge and Firefox */\n .scrollbar-hide {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `,\n ],\n})\nexport class FlexibleScrollAreaComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n readonly height = input('8.5rem');\n readonly width = input('96');\n readonly showNavButtons = input(true);\n\n readonly viewportRef = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n\n isScrolling = false;\n isHovering = false;\n isDragging = false;\n scrollTimeout: any;\n thumbSize = 20;\n thumbPosition = 0;\n startPoint = 0;\n startScrollPosition = 0;\n canScrollStart = false;\n canScrollEnd = true;\n\n constructor() {\n // Add document-level event listeners for drag operations\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngOnInit() {\n // Initial check to make sure we have a valid orientation\n if (this.orientation !== 'vertical' && this.orientation !== 'horizontal') {\n this.orientation = 'vertical';\n }\n }\n\n ngOnDestroy() {\n // Clean up event listeners\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngAfterViewInit() {\n this.updateThumb();\n this.updateScrollButtonsState();\n }\n\n onScroll() {\n this.updateThumb();\n this.updateScrollButtonsState();\n this.isScrolling = true;\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(() => {\n this.isScrolling = false;\n }, 300);\n }\n\n updateThumb() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n const scrollHeight = viewport.scrollHeight;\n const clientHeight = viewport.clientHeight;\n\n // Calculate thumb height as percentage of visible area\n this.thumbSize = (clientHeight / scrollHeight) * 100;\n\n // Calculate thumb position\n this.thumbPosition =\n (viewport.scrollTop / (scrollHeight - clientHeight)) * (100 - this.thumbSize);\n } else {\n const scrollWidth = viewport.scrollWidth;\n const clientWidth = viewport.clientWidth;\n\n // Calculate thumb width as percentage of visible area\n this.thumbSize = (clientWidth / scrollWidth) * 100;\n\n // Calculate thumb position\n this.thumbPosition =\n (viewport.scrollLeft / (scrollWidth - clientWidth)) * (100 - this.thumbSize);\n }\n }\n\n updateScrollButtonsState() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n this.canScrollStart = viewport.scrollTop > 0;\n this.canScrollEnd = viewport.scrollTop < viewport.scrollHeight - viewport.clientHeight - 1; // -1 for rounding errors\n } else {\n this.canScrollStart = viewport.scrollLeft > 0;\n this.canScrollEnd = viewport.scrollLeft < viewport.scrollWidth - viewport.clientWidth - 1; // -1 for rounding errors\n }\n }\n\n startDragging(event: MouseEvent) {\n this.isDragging = true;\n\n if (this.orientation === 'vertical') {\n this.startPoint = event.clientY;\n this.startScrollPosition = this.viewportRef().nativeElement.scrollTop;\n } else {\n this.startPoint = event.clientX;\n this.startScrollPosition = this.viewportRef().nativeElement.scrollLeft;\n }\n\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent) {\n if (!this.isDragging) return;\n\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n const deltaY = event.clientY - this.startPoint;\n const scrollbarHeight = viewport.clientHeight;\n const scrollContentHeight = viewport.scrollHeight;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentHeight / scrollbarHeight;\n\n // Update scroll position\n viewport.scrollTop = this.startScrollPosition + deltaY * scrollRatio;\n } else {\n const deltaX = event.clientX - this.startPoint;\n const scrollbarWidth = viewport.clientWidth;\n const scrollContentWidth = viewport.scrollWidth;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentWidth / scrollbarWidth;\n\n // Update scroll position\n viewport.scrollLeft = this.startScrollPosition + deltaX * scrollRatio;\n }\n\n event.preventDefault();\n }\n\n onMouseUp() {\n this.isDragging = false;\n }\n\n scrollPrev() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n viewport.scrollBy({ top: -200, behavior: 'smooth' });\n } else {\n viewport.scrollBy({ left: -300, behavior: 'smooth' });\n }\n }\n\n scrollNext() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n viewport.scrollBy({ top: 200, behavior: 'smooth' });\n } else {\n viewport.scrollBy({ left: 300, behavior: 'smooth' });\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const SC_TOAST_ID = new InjectionToken<string>('SC_TOAST_ID');\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n// Define allowed state values\nexport type ToastState = 'open' | 'closed';\n\n@Injectable()\nexport class ToastService {\n private readonly stateSource = new Subject<ToastState>();\n currentState = this.stateSource.asObservable();\n\n updateState(newState: ToastState) {\n this.stateSource.next(newState);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n TemplateRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-toast-container',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef(); injector: injector\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block md:max-w-[420px]', this.classInput()));\n\n readonly templateRef = input<TemplateRef<unknown> | null>(null);\n\n protected readonly injector = inject(Injector);\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { GlobalPositionStrategy, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, TemplateRef, inject } from '@angular/core';\n\nimport { ScToastContainer } from './toast-container';\nimport { SC_TOAST_ID } from './toast-id';\nimport { ToastService } from './toast.service';\n\ninterface ToastRef {\n id: string;\n overlayRef: OverlayRef;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Toaster {\n private readonly toastRefs: ToastRef[] = [];\n private readonly maxToasts = 3;\n\n private readonly overlay = inject(Overlay);\n\n private readonly idGenerator = inject(_IdGenerator);\n\n private readonly injector = inject(Injector);\n\n /**\n * Show a toast notification\n * @returns The ID of the created toast\n */\n show(toastTemplate: TemplateRef<unknown>): string {\n if (this.toastRefs.length >= this.maxToasts) {\n // If we've reached max, remove the oldest toast\n this.closeToast(this.toastRefs[0].id);\n }\n\n // Generate ID if not provided\n const toastId = this.idGenerator.getId('sc-toast-');\n\n // Create the toast with this ID\n this.createToast(toastTemplate, toastId);\n\n return toastId;\n }\n\n /**\n * Remove a specific toast by ID\n */\n remove(id: string): boolean {\n const index = this.toastRefs.findIndex((ref) => ref.id === id);\n if (index > -1) {\n this.closeToast(id);\n return true;\n }\n return false;\n }\n\n /**\n * Remove all currently displayed toasts\n */\n clear(): void {\n while (this.toastRefs.length > 0) {\n this.closeToast(this.toastRefs[0].id);\n }\n }\n\n private createToast(toastTemplate: TemplateRef<unknown>, id: string): void {\n // Recalculate positions for all toasts\n this.updateToastPositions();\n\n const positionStrategy = this.overlay.position().global().bottom('20px').right('20px');\n\n const overlayConfig = new OverlayConfig({\n positionStrategy,\n });\n\n const overlayRef = this.overlay.create(overlayConfig);\n const s = new ToastService();\n const toastPortal = new ComponentPortal(ScToastContainer, null, this.createInjector(id, s));\n\n const toastRef: ComponentRef<ScToastContainer> = overlayRef.attach(toastPortal);\n toastRef.setInput('templateRef', toastTemplate);\n\n // Add toast reference with ID to our array\n this.toastRefs.push({\n id: id,\n overlayRef,\n });\n\n this.updateToastPositions();\n }\n\n private closeToast(id: string): void {\n const index = this.toastRefs.findIndex((ref) => ref.id === id);\n if (index > -1) {\n const { overlayRef } = this.toastRefs[index];\n this.toastRefs.splice(index, 1);\n overlayRef.dispose();\n\n // Recalculate positions for remaining toasts\n this.updateToastPositions();\n }\n }\n\n private updateToastPositions(): void {\n // Update positions of all existing toasts\n const reversedToastRefs = this.toastRefs.slice().reverse();\n reversedToastRefs.forEach((ref, index) => {\n const position = ref.overlayRef.getConfig().positionStrategy as GlobalPositionStrategy;\n position.bottom(`${20 + index * 110}px`).right('20px');\n ref.overlayRef.updatePosition();\n });\n }\n\n private createInjector(id: string, s: ToastService): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: SC_TOAST_ID, useValue: id },\n { provide: ToastService, useValue: s },\n ],\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n afterNextRender,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { Subject, combineLatest } from 'rxjs';\n\nimport { SC_TOAST_ID } from './toast-id';\nimport { ToastService, ToastState } from './toast.service';\nimport { Toaster } from './toaster';\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-top data-[state=open]:sm:slide-in-from-bottom',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive:\n 'destructive group border-destructive bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\ntype ToastVariants = VariantProps<typeof toastVariants>;\n\n@Component({\n selector: 'div[sc-toast]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'status',\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '[attr.data-swipe]': 'swipe()',\n '(animationend)': 'animationend()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToast implements OnInit {\n private readonly toaster = inject(Toaster);\n\n private readonly toastService = inject(ToastService);\n\n private readonly toastId = inject<string>(SC_TOAST_ID);\n\n readonly variant = input<ToastVariants['variant']>('default');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(toastVariants({ variant: this.variant() }), this.classInput()),\n );\n\n protected readonly state = toSignal<ToastState>(this.toastService.currentState);\n\n //TODO make swipe works\n protected readonly swipe = signal<'start' | 'move' | 'cancel' | 'end' | undefined>(undefined);\n\n private readonly animationState = new Subject<'end'>();\n\n constructor() {\n afterNextRender(() => {\n this.toastService.updateState('open');\n });\n\n combineLatest([this.toastService.currentState, this.animationState]).subscribe(\n ([state, animationState]) => {\n if (state === 'closed' && animationState === 'end') {\n this.toaster.remove(this.toastId);\n }\n },\n );\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.toastService.updateState('closed');\n }, 3000);\n }\n\n //TODO try to use AnimationEvent: animationName property\n protected animationend() {\n if (this.state() === 'closed') {\n this.animationState.next('end');\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-toast-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid gap-1', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-toast-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm font-semibold', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-toast-description], div[sc-toast-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm opacity-90', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-toast-action]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastAction {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ToastService } from './toast.service';\n\n@Component({\n selector: 'button[sc-toast-close]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'close()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastClose {\n private readonly toastService = inject(ToastService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n this.classInput(),\n ),\n );\n\n protected close() {\n this.toastService.updateState('closed');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'input[sc-slider]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[type]': 'type()',\n '(input)': 'handleInput($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSlider {\n private readonly host = inject(ElementRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'appearance-none bg-transparent w-full rounded-full h-2',\n //track\n '[&::-webkit-slider-runnable-track]:h-2 [&::-webkit-slider-runnable-track]:rounded-full',\n //thumb\n '[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:size-5 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-primary [&::-webkit-slider-thumb]:-mt-1.5 [&::-moz-range-thumb]:border-none [&::-moz-range-thumb]:size-5 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-primary',\n this.classInput(),\n ),\n );\n\n readonly value = model<number>(0);\n readonly min = input<number>(0);\n readonly max = input<number>(100);\n\n readonly type = input<'range'>('range');\n\n constructor() {\n effect(() => {\n const progress = (this.value() / this.max()) * 100;\n this.host.nativeElement.style.background = `linear-gradient(to right, var(--primary) ${progress}%, var(--input) ${progress}%)`;\n // Add a transition for smooth updates when progress changes\n this.host.nativeElement.style.transition = 'background 0.3s ease';\n });\n\n afterNextRender(() => {\n if (this.host.nativeElement.value > 0) {\n this.value.set(this.host.nativeElement.value);\n }\n });\n }\n\n protected handleInput(event: KeyboardEvent) {\n if (!event.target) return;\n this.value.set(+(event.target as HTMLInputElement).value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n afterNextRender,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport EmblaCarousel, {\n EmblaCarouselType,\n EmblaOptionsType,\n EmblaPluginType,\n} from 'embla-carousel';\n\n@Component({\n selector: 'div[sc-carousel]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'region',\n 'aria-roledescription': 'carousel',\n '[class]': 'class()',\n '(keydown)': 'handleKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarousel implements OnDestroy {\n private readonly host = inject(ElementRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('overflow-hidden', this.classInput()));\n\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n readonly optionsInput = input<EmblaOptionsType>(\n {},\n {\n alias: 'options',\n },\n );\n\n readonly options = computed<EmblaOptionsType>(() => {\n const opts = this.optionsInput();\n\n return {\n ...opts,\n axis: this.orientation() === 'horizontal' ? 'x' : 'y',\n };\n });\n\n readonly plugins = input<EmblaPluginType[]>([]);\n\n readonly canScrollPrev = signal(false);\n\n readonly canScrollNext = signal(false);\n\n private emblaApi!: EmblaCarouselType;\n\n get api() {\n return this.emblaApi;\n }\n\n constructor() {\n afterNextRender(() => {\n this.emblaApi = EmblaCarousel(this.host.nativeElement, this.options(), this.plugins());\n\n this.emblaApi\n .on('select', this.togglePrevNextBtnsState)\n .on('init', this.togglePrevNextBtnsState)\n .on('reInit', this.togglePrevNextBtnsState);\n });\n }\n\n togglePrevNextBtnsState = (): void => {\n if (this.emblaApi.canScrollPrev()) {\n this.canScrollPrev.set(true);\n } else {\n this.canScrollPrev.set(false);\n }\n\n if (this.emblaApi.canScrollNext()) {\n this.canScrollNext.set(true);\n } else {\n this.canScrollNext.set(false);\n }\n };\n\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.scrollNext();\n }\n }\n\n private scrollPrev() {\n this.emblaApi.scrollPrev();\n }\n\n private scrollNext() {\n this.emblaApi.scrollNext();\n }\n\n ngOnDestroy() {\n this.emblaApi.destroy();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-carousel-container]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'div[sc-carousel-items]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselItems {\n private readonly scCarousel = inject(ScCarousel);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex',\n this.scCarousel.orientation() === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'div[sc-carousel-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'group',\n 'aria-roledescription': 'slide',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselItem {\n private readonly scCarousel = inject(ScCarousel);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n this.scCarousel.orientation() === 'horizontal' ? 'pl-4' : 'pt-4',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'button[sc-carousel-previous]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '(click)': 'scrollPrev()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselPrevious extends ScButtonBase {\n private readonly scCarousel = inject(ScCarousel);\n\n override readonly variantInput = input<ButtonVariants['variant']>('outline');\n\n override readonly sizeInput = input<ButtonVariants['size']>('icon');\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute h-8 w-8 rounded-full',\n this.scCarousel.orientation() === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n this.classInput(),\n ),\n );\n\n protected override readonly disabled = linkedSignal(() => {\n return !this.scCarousel.canScrollPrev();\n });\n\n protected scrollPrev() {\n this.scCarousel.api.scrollPrev();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'button[sc-carousel-next]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '(click)': 'scrollNext()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselNext extends ScButtonBase {\n private readonly scCarousel = inject(ScCarousel);\n\n override readonly variantInput = input<ButtonVariants['variant']>('outline');\n\n override readonly sizeInput = input<ButtonVariants['size']>('icon');\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute h-8 w-8 rounded-full',\n this.scCarousel.orientation() === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n this.classInput(),\n ),\n );\n\n protected override readonly disabled = linkedSignal(() => {\n return !this.scCarousel.canScrollNext();\n });\n\n protected scrollNext() {\n this.scCarousel.api.scrollNext();\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nexport interface ScCheckboxChange {\n checked: boolean;\n value: string;\n}\n\n@Component({\n selector: 'input[sc-checkbox]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[id]': 'id()',\n '[type]': 'type()',\n '[class]': 'class()',\n '[checked]': 'checked()',\n '(click)': 'handleClick($event)',\n 'data-slot': 'control',\n },\n styles: `\n :root {\n --check-svg: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E\");\n --minus-svg: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E\");\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCheckbox {\n private readonly hostRef = inject(ElementRef);\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-checkbox-'), {\n alias: 'id',\n });\n readonly id = linkedSignal(() => this.idInput());\n\n readonly type = input<'checkbox'>('checkbox');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n //Base styles\n 'peer',\n 'appearance-none', //removes default browser styling\n 'size-4', //sets width and height (16px)\n 'shrink-0',\n 'border border-primary', //adds border\n 'rounded-sm', //adds border radius\n 'shadow',\n 'cursor-pointer',\n 'outline-none',\n 'transition-all duration-200', //adds smooth transitions\n\n //Interactive states\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n\n //Checked state\n 'checked:bg-primary checked:relative',\n 'checked:after:content-[\"\"] checked:after:absolute checked:after:inset-0 checked:after:bg-primary-foreground',\n 'checked:after:mask-(image:--check-svg)',\n 'checked:after:mask-no-repeat',\n 'checked:after:mask-center',\n 'checked:after:mask-contain',\n\n //Indeterminate state\n 'indeterminate:bg-primary indeterminate:relative',\n 'indeterminate:after:content-[\"\"] indeterminate:after:absolute indeterminate:after:inset-0 indeterminate:after:bg-primary-foreground',\n 'indeterminate:after:mask-(image:--minus-svg)',\n 'indeterminate:after:mask-no-repeat',\n 'indeterminate:after:mask-center',\n 'indeterminate:after:mask-contain',\n\n //Disabled state\n 'disabled:opacity-50', //styles for disabled state\n 'disabled:cursor-not-allowed', //changes cursor\n\n this.classInput(),\n ),\n );\n\n readonly indeterminateInput = input<boolean, unknown>(false, {\n alias: 'indeterminate',\n transform: booleanAttribute,\n });\n private readonly indeterminate = linkedSignal(() => this.indeterminateInput());\n\n readonly checkedInput = input<boolean, unknown>(false, {\n alias: 'checked',\n transform: booleanAttribute,\n });\n protected readonly checked = linkedSignal(() => this.checkedInput());\n readonly checkedChange = output<boolean>();\n\n readonly value = input<string>('');\n readonly change = output<ScCheckboxChange>();\n\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n afterRenderEffect(() => {\n this.hostRef.nativeElement.indeterminate = this.indeterminate();\n });\n }\n\n protected handleClick(event: MouseEvent): void {\n if (this.indeterminate()) {\n this.indeterminate.set(false);\n }\n\n this.checked.update((checked: boolean) => !checked);\n this.checkedChange.emit(this.checked());\n this.change.emit({ checked: this.checked(), value: this.value() });\n event.preventDefault();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCheckbox, ScCheckboxChange } from '../checkbox/checkbox';\n\n@Component({\n selector: 'sc-checkbox-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScCheckboxGroup),\n multi: true,\n },\n ],\n})\nexport class ScCheckboxGroup implements AfterContentInit, ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('space-y-2', this.classInput()));\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n readonly value = model<string[]>([]);\n\n readonly checkboxes = contentChildren(ScCheckbox, { descendants: true });\n\n ngAfterContentInit() {\n this.checkboxes().forEach((checkbox) => {\n checkbox.change.subscribe((c: ScCheckboxChange) => {\n let values = this.value();\n if (c.checked) {\n values = [...values, c.value];\n } else {\n values = values.filter((v) => v !== c.value);\n }\n this.setValue(values);\n });\n });\n }\n\n private setValue(value: string[]) {\n this.value.set(value);\n\n this.onChange(value);\n this.changeDetectorRef.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange: (value: string[]) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched: () => void = () => {};\n\n writeValue(value: string[]): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'label[sc-checkbox-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCheckboxItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center gap-2', this.classInput()));\n}\n","import { CdkAccordion, CdkAccordionModule } from '@angular/cdk/accordion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-accordion',\n imports: [CdkAccordionModule],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkAccordion],\n})\nexport class ScAccordion {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block', this.classInput()));\n}\n","import { Injectable, linkedSignal, signal } from '@angular/core';\n\n@Injectable()\nexport class ScAccordionItemState {\n readonly open = signal(false);\n\n readonly state = linkedSignal(() => (this.open() ? 'open' : 'closed'));\n}\n","import { CdkAccordionItem } from '@angular/cdk/accordion';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScAccordionItemState } from './accordion-item-state';\n\n@Component({\n selector: 'sc-accordion-item',\n imports: [],\n template: `\n <ng-content select=\"sc-accordion-header\" />\n @if (open()) {\n <ng-content select=\"sc-accordion-content\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScAccordionItemState],\n hostDirectives: [CdkAccordionItem],\n})\nexport class ScAccordionItem implements OnInit {\n private readonly scAccordionItemState = inject(ScAccordionItemState);\n\n protected readonly open = computed(() => this.scAccordionItemState.open());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block border-b', this.classInput()));\n\n protected readonly cdkAccordionItem = inject(CdkAccordionItem);\n\n toggle() {\n this.cdkAccordionItem.toggle();\n }\n\n ngOnInit(): void {\n this.cdkAccordionItem.opened.subscribe(() => {\n this.scAccordionItemState.open.set(true);\n });\n\n this.cdkAccordionItem.closed.subscribe(() => {\n this.scAccordionItemState.state.set('closed');\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-accordion-header',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAccordionHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScAccordionItem } from './accordion-item';\nimport { ScAccordionItemState } from './accordion-item-state';\n\n@Component({\n selector: 'sc-accordion-toggle',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'toggle()',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAccordionToggle {\n private readonly scAccordionItem = inject(ScAccordionItem);\n\n private readonly scAccordionItemState = inject(ScAccordionItemState);\n\n protected readonly state = computed(() => this.scAccordionItemState.state());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180',\n this.classInput(),\n ),\n );\n\n protected toggle() {\n this.scAccordionItem.toggle();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScAccordionItemState } from './accordion-item-state';\n\n@Component({\n selector: 'sc-accordion-content',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '(animationend)': 'handleAnimationEnd($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAccordionContent {\n private readonly scAccordionItemState = inject(ScAccordionItemState);\n\n protected readonly state = computed(() => this.scAccordionItemState.state());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'block overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down',\n this.classInput(),\n ),\n );\n\n protected handleAnimationEnd(event: AnimationEvent): void {\n if (event.target === event.currentTarget && event.animationName === 'accordion-up') {\n this.scAccordionItemState.open.set(false);\n }\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'input[sc-switch]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[id]': 'id()',\n '[type]': 'type()',\n '[checked]': 'checked()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSwitch {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n // Base styling\n 'appearance-none',\n 'w-9 h-5',\n 'relative',\n 'cursor-pointer',\n 'inline-block',\n 'transition-colors duration-200',\n\n // Focus handling\n 'focus:outline-0',\n 'border-0',\n 'focus:ring-offset-transparent',\n 'focus:ring-transparent',\n 'focus-within:ring-0',\n 'focus:shadow-none',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n\n // Pseudo-element positioning\n '[&::after]:absolute [&::before]:absolute',\n '[&::after]:top-0 [&::before]:top-0',\n '[&::after]:block [&::before]:inline-block',\n '[&::before]:rounded-full [&::after]:rounded-full',\n\n // After element (toggle knob)\n \"[&::after]:content-['']\",\n '[&::after]:w-4 [&::after]:h-4',\n '[&::after]:mt-0.5 [&::after]:ml-0.5',\n '[&::after]:shadow-md',\n '[&::after]:duration-200',\n '[&::after]:bg-background',\n '[&::after]:transition-transform',\n\n // Before element (track)\n \"[&::before]:content-['']\",\n '[&::before]:w-9 [&::before]:h-full',\n '[&::before]:shadow-[inset_0_0_#000]',\n '[&::before]:bg-input',\n '[&::before]:transition-colors [&::before]:duration-200',\n\n // Hover state\n 'hover:[&::before]:bg-input/90',\n 'hover:checked:[&::before]:bg-primary/90',\n\n // Checked state\n 'checked:[&::before]:bg-primary',\n 'checked:[&::after]:duration-300',\n 'checked:[&::after]:translate-x-4',\n\n // Disabled state\n 'disabled:[&::after]:bg-opacity-75',\n 'disabled:cursor-not-allowed',\n 'disabled:checked:[&::before]:bg-opacity-40',\n 'disabled:[&::before]:bg-muted/50',\n\n // Custom classes\n this.classInput(),\n ),\n );\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-switch-'), {\n alias: 'id',\n });\n readonly id = linkedSignal(() => this.idInput());\n\n readonly checkedInput = input<boolean, unknown>(false, {\n alias: 'checked',\n transform: booleanAttribute,\n });\n protected readonly checked = linkedSignal(() => this.checkedInput());\n readonly checkedChange = output<boolean>();\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n protected readonly disabled = linkedSignal(() => this.disabledInput());\n\n readonly type = input<'checkbox'>('checkbox');\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-radio-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'radio-group',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScRadioGroup),\n multi: true,\n },\n ],\n})\nexport class ScRadioGroup implements ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid gap-2', this.classInput()));\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n readonly name = input<string>('');\n\n readonly value = model<string | undefined>(undefined);\n\n setValue(newValue: string) {\n this.value.set(newValue);\n this.onChange(newValue);\n this.changeDetectorRef.markForCheck();\n }\n\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScRadioGroup } from './radio-group';\n\n@Component({\n selector: 'input[sc-radio]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[id]': 'id()',\n '[name]': 'name()',\n '[disabled]': 'disabled()',\n '[value]': 'value()',\n '[checked]': 'checked()',\n '[type]': 'type()',\n '(click)': 'select()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRadio {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative',\n 'appearance-none',\n // 'size-5 rounded-full border-2 border-gray-300 cursor-pointer checked:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-300',\n\n 'aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n\n \"[&::before]:content-['']\",\n '[&::before]:absolute [&::before]:top-1/2 [&::before]:left-1/2 [&::before]:-translate-x-1/2 [&::before]:-translate-y-1/2 [&::before]:size-2.5 [&::before]:rounded-full [&::before]:bg-primary [&::before]:opacity-0 [&::before]:transform [&::before]:scale-0 [&::before]:transition-all [&::before]:duration-200',\n\n 'checked:[&::before]:opacity-100 checked:[&::before]:scale-100',\n\n this.classInput(),\n ),\n );\n\n readonly type = input<'radio'>('radio');\n\n private readonly scRadioGroup = inject(ScRadioGroup);\n\n protected readonly name = computed(() => {\n return this.scRadioGroup.name();\n });\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = computed(() => this.disabledInput() || this.scRadioGroup.disabled());\n\n readonly value = input.required<string>();\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-radio-'), {\n alias: 'id',\n });\n\n readonly id = linkedSignal(() => this.idInput());\n\n protected readonly checked = computed(() => {\n return this.value() === this.scRadioGroup.value();\n });\n\n protected select() {\n if (this.disabled()) {\n return;\n }\n\n this.scRadioGroup.setValue(this.value());\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScLabel } from '../label';\nimport { ScRadio } from './radio';\n\n@Component({\n selector: 'sc-radio-item',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'radio-item',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRadioItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center space-x-2', this.classInput()));\n\n readonly id = signal<string>(inject(_IdGenerator).getId('sc-radio-'));\n\n readonly scLabel = contentChild(ScLabel);\n\n readonly scRadio = contentChild(ScRadio);\n\n constructor() {\n afterNextRender(() => {\n this.scLabel()?.for.set(this.id());\n this.scRadio()?.id.set(this.id());\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-hover-card',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef()\" />\n }\n `,\n host: {\n '[class]': 'class()',\n // '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScHoverCard {\n readonly templateRef = input<TemplateRef<unknown> | null>(null);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'w-full rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n this.classInput(),\n ),\n );\n}\n","import { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScHoverCard } from './hover-card';\n\n@Directive({\n selector: '[scHoverCardTriggerFor]',\n host: {\n '(mouseover)': 'showCard()',\n '(focus)': 'showCard()',\n '(mouseleave)': 'hideCard()',\n '(blur)': 'hideCard()',\n },\n})\nexport class ScHoverCardTriggerFor implements OnDestroy {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly viewContainer = inject(ViewContainerRef);\n\n readonly scHoverCardTriggerFor = input.required<TemplateRef<unknown>>();\n\n private overlayRef: OverlayRef | null = null;\n\n showCard(): void {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n hideCard(): void {\n if (this.overlayRef?.hasAttached() === true) {\n this.overlayRef?.detach();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n private attachTooltip(): void {\n if (this.overlayRef === null) {\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n\n //TODO: add option to change this\n this.overlayRef.updateSize({ width: 320 });\n }\n\n const componentPortal = new ComponentPortal(ScHoverCard, this.viewContainer);\n\n const componentRef: ComponentRef<ScHoverCard> = this.overlayRef.attach(componentPortal);\n\n componentRef.setInput('templateRef', this.scHoverCardTriggerFor());\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions([\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n ]);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AvatarState {\n readonly state = signal<'loading' | 'loaded' | 'error'>('loading');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { AvatarState } from './avatar-state';\n\n@Component({\n selector: 'sc-avatar',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'avatar',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AvatarState],\n})\nexport class ScAvatar {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative size-8 inline-flex items-center justify-center overflow-hidden rounded-full',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { AvatarState } from './avatar-state';\n\n@Component({\n selector: 'img[sc-avatar-image]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(load)': 'handleLoad()',\n '(error)': 'handleError()',\n 'data-slot': 'avatar-image',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAvatarImage {\n readonly avatarState = inject(AvatarState);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute inset-0 h-full w-full object-cover transition-opacity duration-200 z-10',\n this.avatarState.state() === 'loaded' && 'opacity-100',\n this.avatarState.state() === 'loading' && 'opacity-0',\n this.avatarState.state() === 'error' && 'hidden',\n this.classInput(),\n ),\n );\n\n protected handleLoad() {\n this.avatarState.state.set('loaded');\n }\n\n protected handleError() {\n this.avatarState.state.set('error');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { AvatarState } from './avatar-state';\n\n@Component({\n selector: 'div[sc-avatar-fallback]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'avatar-fallback',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAvatarFallback {\n readonly avatarState = inject(AvatarState);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute inset-0 flex size-full items-center justify-center bg-muted uppercase',\n this.avatarState.state() === 'loaded' && 'hidden',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-aspect-ratio',\n imports: [],\n template: `\n <div class=\"absolute inset-0\">\n <ng-content />\n </div>\n `,\n host: {\n '[class]': 'class()',\n '[style.paddingBottom]': 'padding()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAspectRatio {\n readonly ratio = input<number>(1);\n\n protected readonly padding = computed(() => {\n return `${(1 / this.ratio()) * 100}%`;\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('block relative w-full overflow-hidden', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-skeleton',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSkeleton {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('block animate-pulse rounded-md bg-muted', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'table[sc-table]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTable {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('w-full caption-bottom text-sm', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-table-container]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative w-full overflow-auto', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'thead[sc-table-header-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableHeaderGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('[&_tr]:border-b', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'tbody[sc-table-body]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableBody {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('[&_tr:last-child]:border-0', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'tfoot[sc-table-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'th[sc-table-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'tr[sc-table-row]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableRow {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'td[sc-table-cell]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableCell {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'caption[sc-table-caption]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableCaption {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('mt-4 text-sm text-muted-foreground', this.classInput()),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-data-table',\n imports: [],\n template: `\n <p>data-table works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDataTable {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-popover',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef()\" />\n }\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPopover {\n templateRef = signal<TemplateRef<unknown> | null>(null);\n\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'z-50 w-full rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n this.class(),\n ),\n );\n}\n","import { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScPopover } from './popover';\n\n@Directive({\n selector: '[scPopoverTriggerFor]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class ScPopoverTriggerFor implements OnDestroy {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly viewContainer = inject(ViewContainerRef);\n\n readonly scPopoverTriggerFor = input.required<TemplateRef<unknown>>();\n\n private overlayRef: OverlayRef | null = null;\n\n open(): void {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n close(): void {\n if (this.overlayRef?.hasAttached() === true) {\n this.overlayRef?.detach();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n private attachTooltip(): void {\n if (this.overlayRef === null) {\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n //TODO make this a input\n this.overlayRef.updateSize({ width: 320 });\n\n // const injector = Injector.create({\n // providers: [\n // {\n // provide: TOOLTIP_DATA,\n // useValue: this.appTooltip,\n // },\n // ],\n // });\n const componentPortal = new ComponentPortal(ScPopover, this.viewContainer);\n\n // Attach tooltip portal to overlay\n const componentRef: ComponentRef<ScPopover> = this.overlayRef.attach(componentPortal);\n\n componentRef.instance.templateRef.set(this.scPopoverTriggerFor());\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions([\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n // panelClass: 'top',\n offsetY: -8,\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n // panelClass: 'bottom',\n offsetY: 8,\n },\n ]);\n }\n}\n","import { CdkContextMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, TemplateRef, input } from '@angular/core';\n\n@Directive({\n selector: '[scContextMenuTriggerFor]',\n hostDirectives: [\n {\n directive: CdkContextMenuTrigger,\n inputs: ['cdkContextMenuTriggerFor: scContextMenuTriggerFor'],\n },\n ],\n})\nexport class ScContextMenuTriggerFor {\n readonly scContextMenuTriggerFor = input.required<TemplateRef<unknown>>();\n}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenu],\n})\nexport class ScMenu {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'my-2 z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-menu-label',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuLabel {\n class = input<string>('');\n\n classes = computed(() =>\n cn('px-2 py-1.5 text-sm font-semibold', this._inset() && 'pl-8', this.class()),\n );\n\n readonly _inset = input<boolean, unknown>(false, {\n alias: 'inset',\n transform: booleanAttribute,\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-menu-shortcut]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuShortcut {\n class = input<string>('');\n\n classes = computed(() =>\n cn('ml-auto text-xs tracking-widest text-muted-foreground', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'hr[sc-menu-separator]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuSeparator {\n class = input<string>('');\n\n classes = computed(() => cn('-mx-1 my-1 h-px bg-muted', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-menu-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': '_class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuGroup {\n readonly class = input<string>('');\n\n protected readonly _class = computed(() => cn('', this.class()));\n}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-menu-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuItem],\n})\nexport class ScMenuItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'w-full flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n this._inset() && 'pl-8',\n this.class(),\n ),\n );\n\n readonly _inset = input<boolean, unknown>(false, {\n alias: 'inset',\n transform: booleanAttribute,\n });\n}\n","import { CdkMenuItemCheckbox } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'button[sc-menu-checkbox-item]',\n imports: [SiCheckIcon],\n template: `\n @if (scChecked()) {\n <span class=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <svg class=\"size-4\" si-check-icon></svg>\n </span>\n }\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItemCheckbox,\n inputs: ['cdkMenuItemChecked: scChecked'],\n outputs: ['cdkMenuItemTriggered: scTriggered'],\n },\n ],\n})\nexport class ScMenuCheckboxItem {\n private readonly _cdkMenuItemCheckbox = inject(CdkMenuItemCheckbox);\n\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this.class(),\n ),\n );\n\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n effect(() => {\n this._cdkMenuItemCheckbox.disabled = this.disabled();\n });\n }\n\n readonly scChecked = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n readonly scTriggered = output<void>();\n}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu-radio-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuGroup],\n})\nexport class ScMenuRadioGroup {\n class = input<string>('');\n\n classes = computed(() => cn('', this.class()));\n}\n","import { CdkMenuItemRadio } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCircleIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'button[sc-menu-radio-item]',\n imports: [SiCircleIcon],\n template: `\n <span class=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <svg class=\"size-2 fill-current\" si-circle-icon></svg>\n </span>\n\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuItemRadio],\n})\nexport class ScMenuRadioItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this.class(),\n ),\n );\n\n value = input('');\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[scMenuTriggerFor]',\n host: {\n '[attr.aria-haspopup]': 'true',\n },\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: scMenuTriggerFor'],\n },\n ],\n})\nexport class ScMenuTriggerFor {\n readonly scMenuTriggerFor = input.required();\n}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu-checkbox-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuGroup],\n})\nexport class ScMenuCheckboxGroup {\n class = input<string>('');\n\n classes = computed(() => cn('', this.class()));\n}\n","import { CdkMenuBar } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu-bar]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuBar],\n})\nexport class ScMenuBar {\n class = input<string>('');\n\n classes = computed(() =>\n cn('flex h-10 items-center space-x-1 rounded-md border bg-background p-1', this.class()),\n );\n}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-menu-bar-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuItem],\n})\nexport class ScMenuBarItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n this.class(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommand {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n this.class(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiSearchIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'sc-command-input',\n imports: [SiSearchIcon],\n template: `\n <svg class=\"mr-2 size-4 shrink-0 opacity-50\" si-search-icon></svg>\n <input\n class=\"flex h-12 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n [placeholder]=\"placeholder()\"\n />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandInput {\n class = input<string>('');\n\n classes = computed(() => cn('flex items-center border-b px-3', this.class()));\n\n placeholder = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-list',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandList {\n class = input<string>('');\n\n classes = computed(() =>\n cn('block max-h-[300px] overflow-y-auto overflow-x-hidden', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-empty',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandEmpty {\n class = input<string>('');\n\n classes = computed(() => cn('block py-6 text-center text-sm', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-group-heading',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandGroupHeading {\n class = input<string>('');\n\n classes = computed(() =>\n cn('block px-2 font-medium text-muted-foreground py-1.5 text-xs', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCommandGroupHeading } from './command-group-heading';\n\n@Component({\n selector: 'sc-command-group',\n imports: [ScCommandGroupHeading],\n template: `\n <sc-command-group-heading>{{ heading() }}</sc-command-group-heading>\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandGroup {\n class = input<string>('');\n\n classes = computed(() => cn('block overflow-hidden p-1 text-foreground px-2', this.class()));\n\n heading = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-item',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n '[attr.data-disabled]': 'disabled()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n this.class(),\n ),\n );\n\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-shortcut',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandShortcut {\n class = input<string>('');\n\n classes = computed(() =>\n cn('block ml-auto text-xs tracking-widest text-muted-foreground', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-separator',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandSeparator {\n class = input<string>('');\n\n classes = computed(() => cn('block -mx-1 h-px bg-border', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCommand } from './command';\n\n@Component({\n selector: 'sc-command-dialog',\n imports: [ScCommand],\n template: `\n <sc-command class=\"\">\n <ng-content />\n </sc-command>\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandDialog {\n class = input<string>('');\n\n classes = computed(() => cn('block overflow-hidden p-0 shadow-lg', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-error',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandError {\n class = input<string>('');\n\n classes = computed(() => cn('block py-6 text-center text-sm', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-loading',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandLoading {\n class = input<string>('');\n\n classes = computed(() => cn('block py-6 text-center text-sm', this.class()));\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class ScCollapsibleState {\n readonly open = signal(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCollapsibleState } from './collapsible-state';\n\n@Component({\n selector: 'sc-collapsible',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScCollapsibleState],\n})\nexport class ScCollapsible {\n private readonly state = inject(ScCollapsibleState);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block', this.classInput()));\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { ScCollapsibleState } from './collapsible-state';\n\n@Directive({\n selector: '[sc-collapsible-toggle]',\n host: {\n '(click)': 'toggle()',\n },\n})\nexport class ScCollapsibleToggle {\n private readonly state = inject(ScCollapsibleState);\n\n protected toggle() {\n this.state.open.update((open) => !open);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n computed,\n contentChild,\n inject,\n input,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\nimport { cn } from '@semantic-components/utils';\nimport { filter, fromEvent, map, of, switchMap } from 'rxjs';\n\nimport { ScCollapsibleState } from './collapsible-state';\n\n@Component({\n selector: 'sc-collapsible-content',\n imports: [],\n template: `\n @if (contentShown()) {\n <!-- We need to constrain the size of the child to the size of the grid row to ensure the height animation works correctly -->\n <div class=\"overflow-hidden\">\n @if (template(); as lazy) {\n <ng-container *ngTemplateOutlet=\"lazy\" />\n }\n <ng-content />\n </div>\n }\n `,\n host: {\n role: 'region',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCollapsibleContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'grid grid-rows-[0fr] opacity-0 transition-[grid-template-rows,opacity] ease-[ease-in-out] duration-(--duration,300ms)',\n this.open() && 'grid-rows-[1fr] opacity-100',\n this.classInput(),\n ),\n );\n\n private readonly el = inject(ElementRef).nativeElement;\n\n readonly template = contentChild<TemplateRef<unknown>>('collapsibleContent');\n\n private readonly state = inject(ScCollapsibleState);\n\n private readonly open = computed(() => this.state.open());\n\n protected readonly contentShown = toSignal(\n toObservable(this.open).pipe(\n switchMap((open) =>\n open\n ? of(true)\n : fromEvent<TransitionEvent>(this.el, 'transitionend').pipe(\n filter(\n (e) => e.target === e.currentTarget && e.propertyName === 'grid-template-rows',\n ),\n map(() => false),\n ),\n ),\n ),\n );\n}\n","export const SIDEBAR_WIDTH = '16rem';\nexport const SIDEBAR_WIDTH_MOBILE = '18rem';\nexport const SIDEBAR_WIDTH_ICON = '3rem';\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ScSidebarState {\n open = signal(true);\n openMobile = signal(false);\n isMobile = signal(false);\n\n // Helper to toggle the sidebar.\n toggleSidebar() {\n return this.isMobile()\n ? this.openMobile.update((open) => !open)\n : this.open.update((open) => !open);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n input,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\nimport { ScSidebarState } from './sidebar-state';\n\n@Component({\n selector: 'button[sc-sidebar-toggler]',\n imports: [],\n template: `\n <ng-content />\n <span class=\"sr-only\">Toggle Sidebar</span>\n `,\n host: {\n 'data-sidebar': 'trigger',\n '(click)': 'toggleSidebar()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarToggler extends ScButtonBase {\n private readonly sidebarState = inject(ScSidebarState);\n\n override readonly variantInput = input<ButtonVariants['variant']>('ghost');\n\n override readonly sizeInput = input<ButtonVariants['size']>('icon');\n\n protected toggleSidebar() {\n this.sidebarState.toggleSidebar();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Event, NavigationEnd, Router } from '@angular/router';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiXIcon } from '@semantic-icons/lucide-icons';\n\nimport { SIDEBAR_WIDTH_MOBILE } from './constants';\nimport { ScSidebarState } from './sidebar-state';\nimport { ScSidebarToggler } from './sidebar-toggler';\n\n@Component({\n selector: 'sc-sidebar-mobile',\n imports: [ScSidebarToggler, SiXIcon],\n template: `\n <div class=\"flex size-full flex-col\">\n <button class=\"absolute right-1 top-1 z-60\" sc-sidebar-toggler>\n <svg si-x-icon></svg>\n </button>\n\n <ng-content />\n </div>\n `,\n host: {\n '[class]': 'class()',\n '[style]': 'styles()',\n '[attr.data-sidebar]': '\"sidebar\"',\n '[attr.data-mobile]': '\"true\"',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMobile {\n private readonly router = inject(Router);\n\n private readonly sidebarState = inject(ScSidebarState);\n\n protected readonly styles = signal(`--sidebar-width: ${SIDEBAR_WIDTH_MOBILE};`);\n\n readonly side = input.required<'left' | 'right'>();\n private readonly openMobile = computed(() => this.sidebarState.openMobile());\n\n protected readonly state = computed<'open' | 'closed'>(() => {\n return this.openMobile() ? 'open' : 'closed';\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute top-0 h-full bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n this.openMobile() && 'w-(--sidebar-width)',\n !this.openMobile() && 'w-0 overflow-hidden',\n this.side() === 'left' &&\n 'left-0 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left',\n this.side() === 'right' &&\n 'right-0 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right',\n this.classInput(),\n ),\n );\n\n constructor() {\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n if (this.openMobile()) {\n this.sidebarState.toggleSidebar();\n }\n }\n });\n }\n}\n","import { BreakpointObserver, LayoutModule } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScSheetConfig, ScSheetManager } from '../sheet';\nimport { ScSidebarMobile } from './sidebar-mobile';\nimport { ScSidebarState } from './sidebar-state';\n\n@Component({\n selector: 'sc-sidebar',\n imports: [LayoutModule, NgTemplateOutlet, ScSidebarMobile],\n template: `\n <ng-template #sc_sidebar_content>\n <ng-content />\n </ng-template>\n\n @if (collapsible() === 'none') {\n <div class=\"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\">\n <ng-container *ngTemplateOutlet=\"sc_sidebar_content\" />\n </div>\n } @else if (isMobile()) {\n <ng-template #sc_sidebar_mobile_content>\n <sc-sidebar-mobile [side]=\"side()\">\n <ng-container *ngTemplateOutlet=\"sc_sidebar_content\" />\n </sc-sidebar-mobile>\n </ng-template>\n } @else {\n <div\n class=\"group peer hidden text-sidebar-foreground md:block\"\n [attr.data-state]=\"state()\"\n [attr.data-collapsible]=\"state() === 'collapsed' ? collapsible() : ''\"\n [attr.data-variant]=\"variant()\"\n [attr.data-side]=\"side()\"\n >\n <!-- This is what handles the sidebar gap on desktop -->\n <div [class]=\"classes1()\"></div>\n <div [class]=\"classes2()\">\n <div\n class=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n data-sidebar=\"sidebar\"\n >\n <ng-container *ngTemplateOutlet=\"sc_sidebar_content\" />\n </div>\n </div>\n </div>\n }\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebar {\n private readonly observer = inject(BreakpointObserver);\n\n sidebarState = inject(ScSidebarState);\n\n class = input<string>('');\n\n classes = computed(() => cn('block relative z-50', this.class()));\n\n side = input<'left' | 'right'>('left');\n variant = input<'sidebar' | 'floating' | 'inset'>('sidebar');\n collapsible = input<'offcanvas' | 'icon' | 'none'>('offcanvas');\n\n isMobile = computed(() => this.sidebarState.isMobile());\n openMobile = computed(() => this.sidebarState.openMobile());\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n state = computed(() => (this.sidebarState.open() ? 'expanded' : 'collapsed'));\n\n classes1 = signal(\n cn(\n 'duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n this.variant() === 'floating' || this.variant() === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n ),\n );\n\n classes2 = signal(\n cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear md:flex',\n this.side() === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n this.variant() === 'floating' || this.variant() === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n ),\n );\n\n constructor() {\n this.observer.observe('(max-width: 768px)').subscribe((result) => {\n this.sidebarState.isMobile.set(result.matches);\n\n if (!result.matches && this.openMobile()) {\n this.sidebarState.openMobile.set(false);\n }\n });\n\n effect(() => {\n if (this.openMobile()) {\n this.openSheet(this.side());\n }\n\n if (!this.openMobile()) {\n this.scSheetTrigger.close();\n }\n });\n }\n\n private readonly scSheetTrigger = inject(ScSheetManager);\n\n readonly sheetRef = viewChild.required<TemplateRef<unknown>>('sc_sidebar_mobile_content');\n\n openSheet(side: 'top' | 'bottom' | 'left' | 'right') {\n const config = new ScSheetConfig();\n config.side = side;\n\n if (side === 'left' || side === 'right') {\n config.width = '300';\n }\n\n if (side === 'top' || side === 'bottom') {\n config.height = '300';\n }\n\n this.scSheetTrigger.open(this.sheetRef(), config);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-content',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"content\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON } from './constants';\nimport { ScSidebarState } from './sidebar-state';\n\n@Component({\n selector: 'sc-sidebar-provider',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n '[style]': 'styles()',\n '[attr.data-state]': 'stateMobile()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [],\n})\nexport class ScSidebarProvider {\n sidebarState = inject(ScSidebarState);\n\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n this.class(),\n ),\n );\n\n styles = signal(\n `--sidebar-width: ${SIDEBAR_WIDTH}; --sidebar-width-icon: ${SIDEBAR_WIDTH_ICON};`,\n );\n\n stateMobile = computed<'open' | 'closed'>(() => {\n return this.sidebarState.openMobile() ? 'open' : 'closed';\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('relative flex w-full min-w-0 flex-col p-2', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-group-label',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group-label\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroupLabel {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-group-action',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group-action\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroupAction {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-sidebar-group-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group-content\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroupContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('w-full text-sm', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ul[sc-sidebar-menu]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"menu\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMenu {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex w-full min-w-0 flex-col gap-1', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'li[sc-sidebar-menu-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"menu-item\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMenuItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('group/menu-item relative', this.classInput()));\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype SidebarMenuButtonVariants = VariantProps<typeof sidebarMenuButtonVariants>;\n\n@Directive({\n host: {\n '[class]': 'class()',\n },\n})\nexport class ScSidebarMenuBase {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n readonly variant = input<SidebarMenuButtonVariants['variant']>('default');\n\n readonly size = input<SidebarMenuButtonVariants['size']>('default');\n\n protected readonly class = computed(() =>\n cn(\n sidebarMenuButtonVariants({ variant: this.variant(), size: this.size() }),\n this.classInput(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\n\nimport { ScSidebarMenuBase } from './sidebar-menu-base';\n\n@Component({\n selector: 'a[sc-sidebar-menu-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.data-sidebar]': '\"menu-link\"',\n '[attr.data-active]': 'routerLinkActive.isActive',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [RouterLinkActive],\n})\nexport class ScSidebarMenuLink extends ScSidebarMenuBase {\n protected readonly routerLinkActive = inject(RouterLinkActive);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { ScSidebarMenuBase } from './sidebar-menu-base';\n\n@Component({\n selector: 'button[sc-sidebar-menu-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.data-sidebar]': '\"menu-button\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMenuButton extends ScSidebarMenuBase {}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScAutocompleteModel } from './autocomplete-model';\n\n@Component({\n selector: 'sc-autocomplete-item',\n imports: [SiCheckIcon],\n template: `\n <ng-content />\n\n @if (isSelected()) {\n <svg class=\"ml-auto\" si-check-icon></svg>\n }\n `,\n host: {\n '[class]': 'classes()',\n '[attr.data-disabled]': '_disabled()',\n '[attr.data-selected]': '_isActive()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAutocompleteItem implements Highlightable {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none hover:bg-accent hover:text-accent-foreground data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n this.class(),\n ),\n );\n\n readonly _disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n item = input.required<ScAutocompleteModel>();\n\n selectedItem = input<ScAutocompleteModel | undefined>(undefined);\n\n isSelected = computed(() => {\n return this.item().id === this.selectedItem()?.id;\n });\n\n private readonly _isActive = signal(false);\n\n disabled: boolean | undefined;\n\n getLabel?(): string {\n return this.item.name;\n }\n\n setActiveStyles(): void {\n this._isActive.set(true);\n }\n\n setInactiveStyles(): void {\n this._isActive.set(false);\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { ENTER } from '@angular/cdk/keycodes';\nimport { JsonPipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\nimport { debounceTime } from 'rxjs';\n\nimport { ScInput } from '../input';\nimport { ScAutocompleteItem } from './autocomplete-item';\nimport { ScAutocompleteModel } from './autocomplete-model';\n\n@Component({\n selector: 'sc-autocomplete',\n imports: [ScInput, ScAutocompleteItem, ReactiveFormsModule, JsonPipe],\n template: `\n <!--sc-autocomplete-input /-->\n\n <input\n [formControl]=\"searchControl\"\n (keyup)=\"onKeydown($event)\"\n sc-input\n placeholder=\"Search...\"\n />\n\n @for (item of filteredItems(); track $index) {\n <sc-autocomplete-item [item]=\"item\" [selectedItem]=\"selectedItem()\">\n {{ item.label }}\n </sc-autocomplete-item>\n }\n\n <br />\n <br />\n <br />\n <br />\n\n selectedItem : {{ selectedItem() | json }}\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAutocomplete implements AfterViewInit {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n this.class(),\n ),\n );\n\n items = signal<ScAutocompleteModel[]>([\n {\n id: '5b902934d965e7501f4e1c6f',\n label: 'Caroline Hodges',\n },\n {\n id: '5b9029348f7eed8b6f5f02db',\n label: 'Delores Rivas',\n },\n {\n id: '5b9029346f48c8407c64d0d5',\n label: 'Darlene Franklin',\n },\n {\n id: '5b9029341eff315fa87f9e21',\n label: 'Alfreda Love',\n },\n {\n id: '5b9029342e8917c6ccdb9865',\n label: 'Marcy Ratliff',\n },\n {\n id: '5b9029349dbb48013460e01f',\n label: 'Beulah Nielsen',\n },\n {\n id: '5b902934f4f1586e5e72d74a',\n label: 'Morton Kerr',\n },\n {\n id: '5b9029347918bb204bf7014e',\n label: 'Autumn Tillman',\n },\n {\n id: '5b902934b86f80e1fc60c626',\n label: 'Diane Bennett',\n },\n {\n id: '5b9029348999f59215020349',\n label: 'June Eaton',\n },\n ]);\n\n searchControl = new FormControl();\n\n input = toSignal(this.searchControl.valueChanges.pipe(debounceTime(300)));\n\n filteredItems = computed(() => {\n if (!this.input()) {\n return this.items();\n }\n return this.items().filter(\n (item) => item.label.toLowerCase().indexOf(this.input().toLowerCase()) !== -1,\n );\n });\n\n selectedItem = signal<ScAutocompleteModel | undefined>(undefined);\n\n readonly viewItems = viewChildren(ScAutocompleteItem);\n\n private keyManager!: ActiveDescendantKeyManager<ScAutocompleteItem>;\n\n ngAfterViewInit() {\n this.keyManager = new ActiveDescendantKeyManager(this.viewItems()).withWrap().withTypeAhead();\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.keyCode === ENTER) {\n this.selectedItem.set(\n this.keyManager.activeItem ? this.keyManager.activeItem.item() : undefined,\n );\n } else {\n this.keyManager.onKeydown(event);\n }\n }\n}\n","import { Highlightable, _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'sc-time-option',\n imports: [SiCheckIcon],\n template: `\n @if (_selected()) {\n <svg class=\"absolute left-2 flex size-4 items-center justify-center\" si-check-icon></svg>\n }\n\n <ng-content />\n `,\n host: {\n '[id]': 'id()',\n '[class]': '_class()',\n '[attr.data-disabled]': '_disabled()',\n '(mouseover)': 'setActiveStyles()',\n '(mouseleave)': 'setInactiveStyles()',\n '(click)': 'onClick()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTimeOption implements Highlightable {\n /** The unique ID of the option. */\n id = signal<string>(inject(_IdGenerator).getId('sc-time-option-'));\n\n class = input<string>('');\n\n _class = computed(() =>\n cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this._active() && 'bg-accent text-accent-foreground',\n\n this.class(),\n ),\n );\n\n _active = signal(false);\n _selected = signal(false);\n\n readonly _disabledByInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n readonly _disabled = computed(() => this._disabledByInput() || booleanAttribute(this.disabled));\n\n value = input<string>();\n\n setActiveStyles(): void {\n this._active.set(true);\n }\n\n setInactiveStyles(): void {\n this._active.set(false);\n }\n\n disabled: boolean | undefined;\n\n getLabel?(): string {\n return this.value() ?? '';\n }\n\n private readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Gets the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n /** Selects the option. */\n select(): void {\n if (!this._selected()) {\n this._selected.set(true);\n }\n }\n\n /** Deselects the option. */\n deselect(): void {\n if (this._selected()) {\n this._selected.set(false);\n }\n }\n\n onClick() {\n if (this._selected()) {\n this._selected.set(false);\n } else {\n this.selected.emit(this.value());\n this._selected.set(true);\n }\n }\n\n selected = output<string | undefined>();\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { scInputStyles } from '../input';\n\n@Directive({\n selector: '[scTimePickerInput]',\n host: {\n '[class]': 'classes()',\n },\n})\nexport class ScTimePickerInput {\n class = input<string>('');\n classes = computed(() => cn(scInputStyles(), this.class()));\n}\n","import { ActiveDescendantKeyManager, _IdGenerator } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ENTER, ESCAPE, TAB, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterRenderRef,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n InputSignal,\n OnDestroy,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiClockIcon } from '@semantic-icons/lucide-icons';\nimport { Subscription } from 'rxjs';\n\nimport { ScSettings } from '../../utils';\nimport { ScButton } from '../button';\nimport { ScTimeOption } from './time-option';\nimport { ScTimePickerInput } from './time-picker-input';\n\n/**\n * Time selection option that can be displayed within a `mat-timepicker`.\n */\nexport interface MatTimepickerOption<D = unknown> {\n /** Date value of the option. */\n value: D;\n\n /** Label to show to the user. */\n label: string;\n}\n\n/** Event emitted when a value is selected in the timepicker. */\nexport interface MatTimepickerSelected<D> {\n value: D;\n}\n\n@Component({\n selector: 'sc-time-picker',\n imports: [SiClockIcon, ScButton, ScTimeOption, ScTimePickerInput],\n template: `\n <button class=\"absolute inset-y-0 end-0 pe-4\" (click)=\"open()\" sc-button variant=\"ghost\">\n <svg si-clock-icon></svg>\n </button>\n <input #input scTimePickerInput type=\"text\" placeholder=\"hh:mm\" />\n\n <ng-template #panelTemplate>\n <div\n class=\"relative z-50 max-h-96 w-full min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"_getAriaLabelledby()\"\n [id]=\"panelId\"\n role=\"listbox\"\n >\n @for (option of _timeOptions; track option.value) {\n <sc-time-option [value]=\"option.value\" (selected)=\"_selectValue(option.value)\">\n {{ option.label }}\n </sc-time-option>\n }\n </div>\n </ng-template>\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTimePicker implements OnDestroy {\n settings = inject(ScSettings);\n\n clock = input<'am-pm' | '24-hour' | undefined>(undefined);\n\n _clock = computed(() => {\n if (this.clock() !== undefined) {\n return this.clock();\n }\n\n return this.settings.clock();\n });\n\n class = input<string>('');\n classes = computed(() => cn('flex relative', this.class()));\n\n private readonly _overlay = inject(Overlay);\n private readonly _dir = inject(Directionality, { optional: true });\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _injector = inject(Injector);\n // private _defaultConfig = inject(MAT_TIMEPICKER_CONFIG, { optional: true });\n // private _dateAdapter = inject<DateAdapter<D>>(DateAdapter, { optional: true })!;\n // private _dateFormats = inject(MAT_DATE_FORMATS, { optional: true })!;\n\n private readonly _isOpen = signal(false);\n private readonly _activeDescendant = signal<string | null>(null);\n\n private readonly _input = viewChild.required<ElementRef<HTMLInputElement>>('input');\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal<unknown> | null = null;\n private readonly _optionsCacheKey: string | null = null;\n private readonly _localeChanges!: Subscription;\n private _onOpenRender: AfterRenderRef | null = null;\n\n protected _panelTemplate = viewChild.required<TemplateRef<unknown>>('panelTemplate');\n protected _timeOptions: readonly MatTimepickerOption<string>[] = [];\n protected _options = viewChildren(ScTimeOption);\n\n private readonly _keyManager = new ActiveDescendantKeyManager(this._options, this._injector)\n .withHomeAndEnd(true)\n .withPageUpDown(true)\n .withVerticalOrientation(true);\n\n /**\n * Interval between each option in the timepicker. The value can either be an amount of\n * seconds (e.g. 90) or a number with a unit (e.g. 45m). Supported units are `s` for seconds,\n * `m` for minutes or `h` for hours.\n */\n // readonly interval: InputSignalWithTransform<number | null, number | string | null> = input(\n // parseInterval(this._defaultConfig?.interval || null),\n // { transform: parseInterval },\n // );\n\n /**\n * Array of pre-defined options that the user can select from, as an alternative to using the\n * `interval` input. An error will be thrown if both `options` and `interval` are specified.\n */\n readonly options: InputSignal<readonly MatTimepickerOption<string>[] | null> = input<\n readonly MatTimepickerOption<string>[] | null\n >(null);\n\n /** Whether the timepicker is open. */\n readonly isOpen: Signal<boolean> = this._isOpen.asReadonly();\n\n /** Emits when the user selects a time. */\n readonly selected: OutputEmitterRef<MatTimepickerSelected<string>> = output();\n\n /** Emits when the timepicker is opened. */\n readonly opened: OutputEmitterRef<void> = output();\n\n /** Emits when the timepicker is closed. */\n readonly closed: OutputEmitterRef<void> = output();\n\n /** ID of the active descendant option. */\n readonly activeDescendant: Signal<string | null> = this._activeDescendant.asReadonly();\n\n /** Unique ID of the timepicker's panel */\n readonly panelId: string = inject(_IdGenerator).getId('sc-time-picker-panel-');\n\n /** Whether ripples within the timepicker should be disabled. */\n // readonly disableRipple: InputSignalWithTransform<boolean, unknown> = input(\n // this._defaultConfig?.disableRipple ?? false,\n // {\n // transform: booleanAttribute,\n // },\n // );\n\n /** ARIA label for the timepicker panel. */\n readonly ariaLabel: InputSignal<string | null> = input<string | null>(null, {\n alias: 'aria-label',\n });\n\n /** ID of the label element for the timepicker panel. */\n readonly ariaLabelledby: InputSignal<string | null> = input<string | null>(null, {\n alias: 'aria-labelledby',\n });\n\n /** Whether the timepicker is currently disabled. */\n readonly disabled: Signal<boolean> = computed(() => !!this._input().nativeElement?.disabled);\n\n constructor() {\n // if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // validateAdapter(this._dateAdapter, this._dateFormats);\n\n effect(() => {\n const options = this.options();\n // const interval = this.interval();\n\n // if (options !== null && interval !== null) {\n // throw new Error(\n // 'Cannot specify both the `options` and `interval` inputs at the same time',\n // );\n // } else if (options?.length === 0) {\n // throw new Error('Value of `options` input cannot be an empty array');\n // }\n });\n // }\n\n // Since the panel ID is static, we can set it once without having to maintain a host binding.\n const element = inject<ElementRef<HTMLElement>>(ElementRef);\n element.nativeElement.setAttribute('sc-time-picker-panel-id', this.panelId);\n this._handleLocaleChanges();\n this._handleInputStateChanges();\n this._keyManager.change.subscribe(() =>\n this._activeDescendant.set(this._keyManager.activeItem?.id() || null),\n );\n }\n\n /** Opens the timepicker. */\n open(): void {\n const input = this._input();\n\n if (!input) {\n return;\n }\n\n // Focus should already be on the input, but this call is in case the timepicker is opened\n // programmatically. We need to call this even if the timepicker is already open, because\n // the user might be clicking the toggle.\n input.nativeElement.focus();\n\n if (this._isOpen()) {\n return;\n }\n\n this._isOpen.set(true);\n this._generateOptions();\n const overlayRef = this._getOverlayRef();\n overlayRef.updateSize({ width: input.nativeElement.offsetWidth });\n\n this._portal ??= new TemplatePortal(this._panelTemplate(), this._viewContainerRef);\n overlayRef.attach(this._portal);\n this._onOpenRender?.destroy();\n this._onOpenRender = afterNextRender(\n () => {\n const options = this._options();\n this._syncSelectedState(input.nativeElement?.value, options, options[0]);\n this._onOpenRender = null;\n },\n { injector: this._injector },\n );\n\n this.opened.emit();\n }\n\n /** Closes the timepicker. */\n close(): void {\n if (this._isOpen()) {\n this._isOpen.set(false);\n this._overlayRef?.detach();\n this.closed.emit();\n }\n }\n\n /** Registers an input with the timepicker. */\n // registerInput(input: MatTimepickerInput<D>): void {\n // const currentInput = this._input();\n\n // if (currentInput && input !== currentInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n // throw new Error('MatTimepicker can only be registered with one input at a time');\n // }\n\n // this._input.set(input);\n // }\n\n ngOnDestroy(): void {\n this._keyManager.destroy();\n this._localeChanges.unsubscribe();\n this._onOpenRender?.destroy();\n this._overlayRef?.dispose();\n }\n\n /** Selects a specific time value. */\n protected _selectValue(value: string) {\n //TODO\n this._input().nativeElement.value = value;\n\n this.close();\n this.selected.emit({ value });\n this._input().nativeElement?.focus();\n }\n\n /** Gets the value of the `aria-labelledby` attribute. */\n protected _getAriaLabelledby(): string | null {\n if (this.ariaLabel()) {\n return null;\n }\n return this.ariaLabelledby() || null;\n }\n\n /** Creates an overlay reference for the timepicker panel. */\n private _getOverlayRef(): OverlayRef {\n if (this._overlayRef) {\n return this._overlayRef;\n }\n\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._input())\n .withFlexibleDimensions(false)\n .withPush(false)\n // .withTransformOriginOn('.mat-timepicker-panel')\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n // panelClass: 'mat-timepicker-above',\n },\n ]);\n\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n direction: this._dir || 'ltr',\n hasBackdrop: false,\n });\n\n this._overlayRef.keydownEvents().subscribe((event) => {\n this._handleKeydown(event);\n });\n\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this._input().nativeElement;\n\n if (target && origin && target !== origin && !origin.contains(target)) {\n this.close();\n }\n });\n\n return this._overlayRef;\n }\n\n /** Generates the list of options from which the user can select.. */\n private _generateOptions(): void {\n // Default the interval to 30 minutes.\n\n this._timeOptions = [\n { value: '1', label: '1' },\n { value: '2', label: '2' },\n { value: '3', label: '3' },\n { value: '4', label: '4' },\n { value: '5', label: '5' },\n { value: '6', label: '6' },\n { value: '7', label: '7' },\n { value: '8', label: '8' },\n { value: '9', label: '9' },\n\n { value: '10', label: '10' },\n { value: '20', label: '20' },\n { value: '30', label: '30' },\n { value: '40', label: '40' },\n { value: '50', label: '50' },\n { value: '60', label: '60' },\n { value: '70', label: '70' },\n { value: '80', label: '80' },\n { value: '90', label: '90' },\n\n { value: '21', label: '21' },\n { value: '31', label: '31' },\n { value: '41', label: '41' },\n { value: '51', label: '51' },\n { value: '61', label: '61' },\n { value: '71', label: '71' },\n { value: '81', label: '81' },\n { value: '91', label: '91' },\n ];\n }\n\n /**\n * Synchronizes the internal state of the component based on a specific selected date.\n * @param value Currently selected date.\n * @param options Options rendered out in the timepicker.\n * @param fallback Option to set as active if no option is selected.\n */\n private _syncSelectedState(\n value: string | null,\n options: readonly ScTimeOption[],\n fallback: ScTimeOption | null,\n ): void {\n let hasSelected = false;\n\n for (const option of options) {\n if (value && option.value() === value) {\n option.select();\n scrollOptionIntoView(option, 'center');\n untracked(() => this._keyManager.setActiveItem(option));\n hasSelected = true;\n } else {\n option.deselect();\n }\n }\n\n // If no option was selected, we need to reset the key manager since\n // it might be holding onto an option that no longer exists.\n if (!hasSelected) {\n if (fallback) {\n untracked(() => this._keyManager.setActiveItem(fallback));\n scrollOptionIntoView(fallback, 'center');\n } else {\n untracked(() => this._keyManager.setActiveItem(-1));\n }\n }\n }\n\n /** Handles keyboard events while the overlay is open. */\n private _handleKeydown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n\n if (keyCode === TAB) {\n this.close();\n } else if (keyCode === ESCAPE && !hasModifierKey(event)) {\n event.preventDefault();\n this.close();\n } else if (keyCode === ENTER) {\n event.preventDefault();\n\n if (this._keyManager.activeItem) {\n this._selectValue(this._keyManager.activeItem.value() ?? '');\n } else {\n this.close();\n }\n } else {\n const previousActive = this._keyManager.activeItem;\n this._keyManager.onKeydown(event);\n const currentActive = this._keyManager.activeItem;\n\n if (currentActive && currentActive !== previousActive) {\n scrollOptionIntoView(currentActive, 'nearest');\n }\n }\n }\n\n /** Sets up the logic that updates the timepicker when the locale changes. */\n private _handleLocaleChanges(): void {\n // Re-generate the options list if the locale changes.\n // this._localeChanges = this._dateAdapter.localeChanges.subscribe(() => {\n // this._optionsCacheKey = null;\n // if (this.isOpen()) {\n // this._generateOptions();\n // }\n // });\n }\n\n /**\n * Sets up the logic that updates the timepicker when the state of the connected input changes.\n */\n private _handleInputStateChanges(): void {\n effect(() => {\n const input = this._input();\n const options = this._options();\n\n if (this._isOpen() && input) {\n this._syncSelectedState(input.nativeElement.value, options, null);\n }\n });\n }\n}\n\n/**\n * Scrolls an option into view.\n * @param option Option to be scrolled into view.\n * @param position Position to which to align the option relative to the scrollable container.\n */\nfunction scrollOptionIntoView(option: ScTimeOption, position: ScrollLogicalPosition) {\n option._getHostElement().scrollIntoView({ block: position, inline: position });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-time-picker2',\n imports: [],\n template: `\n <div class=\"relative\">\n <!-- Time Input Field -->\n <input\n class=\"w-full cursor-pointer rounded-lg border px-4 py-2 shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500\"\n [value]=\"formatTime(selectedHour, selectedMinute, selectedPeriod)\"\n (click)=\"toggleDropdown()\"\n type=\"text\"\n readonly\n placeholder=\"Select time\"\n />\n\n <!-- Dropdown Panel -->\n @if (isOpen) {\n <div class=\"absolute z-50 mt-1 w-64 rounded-lg border bg-white shadow-lg\">\n <!-- Time Selection Grid -->\n <div class=\"p-4\">\n <!-- Hour Selection -->\n <div class=\"mb-4\">\n <span class=\"mb-2 block text-sm font-medium text-gray-700\">Hour</span>\n <div class=\"grid grid-cols-4 gap-2\">\n @for (hour of hours; track hour) {\n <button\n [class]=\"\n 'px-2 py-1 text-sm rounded-md ' +\n (selectedHour === hour ? 'bg-blue-500 text-white' : 'hover:bg-gray-100')\n \"\n (click)=\"selectHour(hour)\"\n >\n {{ hour }}\n </button>\n }\n </div>\n </div>\n <!-- Minute Selection -->\n <div class=\"mb-4\">\n <span class=\"mb-2 block text-sm font-medium text-gray-700\">Minute</span>\n <div class=\"grid grid-cols-4 gap-2\">\n @for (minute of minutes; track minute) {\n <button\n [class]=\"\n 'px-2 py-1 text-sm rounded-md ' +\n (selectedMinute === minute ? 'bg-blue-500 text-white' : 'hover:bg-gray-100')\n \"\n (click)=\"selectMinute(minute)\"\n >\n {{ minute.toString().padStart(2, '0') }}\n </button>\n }\n </div>\n </div>\n <!-- AM/PM Selection -->\n <div>\n <span class=\"mb-2 block text-sm font-medium text-gray-700\">Period</span>\n <div class=\"grid grid-cols-2 gap-2\">\n @for (period of periods; track period) {\n <button\n [class]=\"\n 'px-4 py-2 text-sm rounded-md ' +\n (selectedPeriod === period ? 'bg-blue-500 text-white' : 'hover:bg-gray-100')\n \"\n (click)=\"selectPeriod(period)\"\n >\n {{ period }}\n </button>\n }\n </div>\n </div>\n </div>\n <!-- Done Button -->\n <div class=\"border-t p-4\">\n <button\n class=\"w-full rounded-md bg-blue-500 px-4 py-2 text-white transition-colors hover:bg-blue-600\"\n (click)=\"confirmSelection()\"\n >\n Done\n </button>\n </div>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTimePicker2 implements OnInit {\n readonly initialTime = input<string>();\n readonly timeSelected = output<string>();\n\n isOpen = false;\n hours = Array.from({ length: 12 }, (_, i) => i + 1);\n minutes = Array.from({ length: 12 }, (_, i) => i * 5);\n periods = ['AM', 'PM'];\n\n selectedHour = 12;\n selectedMinute = 0;\n selectedPeriod = 'AM';\n\n ngOnInit() {\n const initialTime = this.initialTime();\n if (initialTime) {\n this.parseInitialTime(initialTime);\n }\n }\n\n parseInitialTime(time: string) {\n const [timeStr, period] = time.split(' ');\n const [hours, minutes] = timeStr.split(':').map(Number);\n\n this.selectedHour = hours % 12 || 12;\n this.selectedMinute = minutes;\n this.selectedPeriod = period;\n }\n\n toggleDropdown() {\n this.isOpen = !this.isOpen;\n }\n\n selectHour(hour: number) {\n this.selectedHour = hour;\n }\n\n selectMinute(minute: number) {\n this.selectedMinute = minute;\n }\n\n selectPeriod(period: string) {\n this.selectedPeriod = period;\n }\n\n formatTime(hour: number, minute: number, period: string): string {\n return `${hour}:${minute.toString().padStart(2, '0')} ${period}`;\n }\n\n confirmSelection() {\n const formattedTime = this.formatTime(\n this.selectedHour,\n this.selectedMinute,\n this.selectedPeriod,\n );\n this.timeSelected.emit(formattedTime);\n this.isOpen = false;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-separator',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSeparator {\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'block shrink-0 bg-border',\n this.orientation() === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n this.classInput(),\n ),\n );\n}\n","import { HttpClient, HttpEventType } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { finalize } from 'rxjs/operators';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-file-upload',\n imports: [],\n template: `\n <div class=\"w-full\">\n <!-- Drag & Drop area -->\n <div\n class=\"flex flex-col items-center justify-center p-8 text-center rounded-lg cursor-pointer transition-all duration-200\"\n [class]=\"\n isDragging\n ? 'border-2 border-dashed border-blue-500 bg-blue-50'\n : 'border-2 border-dashed border-gray-300 hover:border-blue-400'\n \"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <svg\n class=\"w-12 h-12 text-gray-400 mb-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12\"\n />\n </svg>\n\n <p class=\"mb-2 text-sm text-gray-600\">\n <span class=\"font-semibold\">Click to upload</span>\n or drag and drop\n </p>\n <p class=\"text-xs text-gray-500\">\n {{\n acceptedFileTypes\n ? 'Accepted file types: ' + acceptedFileTypes\n : 'Any file type accepted'\n }}\n (Max: {{ maxFileSize() }}MB)\n </p>\n\n <!-- Hidden file input -->\n <input\n class=\"hidden\"\n #fileInput\n [accept]=\"acceptedFileTypes\"\n [multiple]=\"multiple()\"\n (change)=\"onFileSelected($event)\"\n type=\"file\"\n />\n\n <button\n class=\"mt-4 px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"\n (click)=\"fileInput.click()\"\n type=\"button\"\n >\n Select File{{ multiple() ? 's' : '' }}\n </button>\n </div>\n\n <!-- File list -->\n @if (files.length > 0) {\n <div class=\"mt-6\">\n <h3 class=\"text-sm font-medium text-gray-700\">Selected Files</h3>\n <ul class=\"mt-3 divide-y divide-gray-200\">\n @for (file of files; track file; let i = $index) {\n <li class=\"py-3 flex justify-between items-center\">\n <div class=\"flex items-center\">\n <svg\n class=\"h-5 w-5 text-gray-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\n />\n </svg>\n <div class=\"ml-3\">\n <p class=\"text-sm font-medium text-gray-900 truncate max-w-xs\">\n {{ file.name }}\n </p>\n <p class=\"text-xs text-gray-500\">{{ formatFileSize(file.size) }}</p>\n </div>\n </div>\n <button\n class=\"ml-2 text-red-600 hover:text-red-800\"\n (click)=\"removeFile(i)\"\n type=\"button\"\n >\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\"\n />\n </svg>\n </button>\n </li>\n }\n </ul>\n <!-- Upload progress -->\n @if (isUploading) {\n <div class=\"mt-4\">\n <div class=\"flex justify-between mb-1\">\n <span class=\"text-xs font-medium text-blue-700\">Uploading...</span>\n <span class=\"text-xs font-medium text-blue-700\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"w-full bg-gray-200 rounded-full h-2\">\n <div class=\"bg-blue-600 h-2 rounded-full\" [style.width.%]=\"uploadProgress\"></div>\n </div>\n </div>\n }\n <!-- Error message -->\n @if (uploadError) {\n <div class=\"mt-4 text-sm text-red-600\">\n {{ uploadError }}\n </div>\n }\n <!-- Success message -->\n @if (uploadSuccess) {\n <div class=\"mt-4 text-sm text-green-600\">Files uploaded successfully!</div>\n }\n <!-- Action buttons -->\n <div class=\"mt-4 flex gap-2\">\n <button\n class=\"inline-flex items-center px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"\n [disabled]=\"isUploading || files.length === 0\"\n [class]=\"\n isUploading || files.length === 0\n ? 'bg-blue-300 cursor-not-allowed'\n : 'bg-blue-600 hover:bg-blue-700'\n \"\n (click)=\"uploadFiles()\"\n type=\"button\"\n >\n <svg\n class=\"h-4 w-4 mr-2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12\"\n />\n </svg>\n Upload\n </button>\n <button\n class=\"inline-flex items-center px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2\"\n [disabled]=\"isUploading || files.length === 0\"\n [class]=\"\n isUploading || files.length === 0\n ? 'bg-gray-300 cursor-not-allowed'\n : 'bg-gray-600 hover:bg-gray-700'\n \"\n (click)=\"clearFiles()\"\n type=\"button\"\n >\n Clear\n </button>\n </div>\n </div>\n }\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScFileUpload {\n private readonly http = inject(HttpClient);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n @Input() acceptedFileTypes = '';\n readonly maxFileSize = input(5); // Default max size in MB\n readonly multiple = input(false);\n readonly uploadUrl = input('/api/upload');\n @Output() uploadComplete = new EventEmitter<any>();\n\n files: File[] = [];\n isDragging = false;\n uploadProgress = 0;\n isUploading = false;\n uploadError: string | null = null;\n uploadSuccess = false;\n\n onFileSelected(event: any): void {\n this.resetStatus();\n const selectedFiles = event.target.files;\n this.processFiles(selectedFiles);\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = true;\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n this.resetStatus();\n\n if (event.dataTransfer?.files) {\n this.processFiles(event.dataTransfer.files);\n }\n }\n\n processFiles(fileList: FileList): void {\n if (!fileList.length) return;\n\n // Convert FileList to array\n const filesArray = Array.from(fileList);\n\n // Validate file types if needed\n if (this.acceptedFileTypes) {\n const allowedTypes = this.acceptedFileTypes.split(',');\n const invalidFiles = filesArray.filter(\n (file) =>\n !allowedTypes.some(\n (type) =>\n file.type.includes(type.trim()) || file.name.endsWith(type.trim().replace('*', '')),\n ),\n );\n\n if (invalidFiles.length > 0) {\n this.uploadError = `Invalid file type(s): ${invalidFiles.map((f) => f.name).join(', ')}`;\n return;\n }\n }\n\n // Validate file size\n const oversizedFiles = filesArray.filter(\n (file) => file.size > this.maxFileSize() * 1024 * 1024,\n );\n if (oversizedFiles.length > 0) {\n this.uploadError = `File(s) exceed the ${this.maxFileSize()}MB limit: ${oversizedFiles.map((f) => f.name).join(', ')}`;\n return;\n }\n\n if (this.multiple()) {\n this.files = [...this.files, ...filesArray];\n } else {\n this.files = [filesArray[0]];\n }\n }\n\n uploadFiles(): void {\n if (!this.files.length) return;\n\n this.isUploading = true;\n this.uploadProgress = 0;\n this.uploadError = null;\n\n const formData = new FormData();\n this.files.forEach((file, index) => {\n formData.append(`file${index}`, file, file.name);\n });\n\n this.http\n .post(this.uploadUrl(), formData, {\n reportProgress: true,\n observe: 'events',\n })\n .pipe(\n finalize(() => {\n this.isUploading = false;\n }),\n )\n .subscribe({\n next: (event: any) => {\n if (event.type === HttpEventType.UploadProgress) {\n this.uploadProgress = Math.round((100 * event.loaded) / event.total);\n } else if (event.type === HttpEventType.Response) {\n this.uploadSuccess = true;\n this.uploadComplete.emit(event.body);\n }\n },\n error: (error) => {\n this.uploadError = error.message || 'Upload failed';\n },\n });\n }\n\n removeFile(index: number): void {\n this.files.splice(index, 1);\n this.resetStatus();\n }\n\n resetStatus(): void {\n this.uploadProgress = 0;\n this.isUploading = false;\n this.uploadError = null;\n this.uploadSuccess = false;\n }\n\n clearFiles(): void {\n this.files = [];\n this.resetStatus();\n }\n\n // Helper methods for display\n formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h1[sc-page-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('scroll-m-20 text-3xl font-bold tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-page-subtitle]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageSubtitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'font-heading mt-12 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-tight first:mt-0',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-page-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('text-base text-muted-foreground', this.classInput()),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-section',\n imports: [],\n template: `\n <p>section works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Section {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst scHeadingVariants = cva('', {\n variants: {\n level: {\n '1': 'text-4xl lg:text-5xl font-extrabold tracking-tight',\n '2': 'text-3xl font-semibold tracking-tight',\n '3': 'text-2xl font-semibold tracking-tight',\n '4': 'text-xl font-semibold tracking-tight',\n '5': '',\n '6': '',\n },\n },\n defaultVariants: {\n level: '1',\n },\n});\n\ntype ScHeadingVariants = VariantProps<typeof scHeadingVariants>;\n\n@Component({\n selector:\n 'h1[sc-heading], h2[sc-heading], h3[sc-heading], h4[sc-heading], h5[sc-heading], h6[sc-heading]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScHeading {\n readonly level = input<ScHeadingVariants['level']>('1');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n scHeadingVariants({ level: this.level() }),\n this.underline() && 'border-b',\n this.classInput(),\n ),\n );\n\n readonly underline = input(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nexport const scArticleClasses = signal('prose prose-sm sm:prose lg:prose-lg xl:prose-2xl');\n\n@Component({\n selector: 'sc-article',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScArticle {\n class = input<string>('');\n\n classes = computed(() => cn(scArticleClasses(), this.class()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'blockquote[sc-blockquote]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBlockquote {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, signal } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCookieIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\n\n@Component({\n selector: 'sc-cookie-consent',\n imports: [SiCookieIcon, ScButton],\n template: `\n <div [class]=\"class()\">\n <div class=\"m-3 rounded-lg border border-border bg-background dark:bg-card\">\n <div class=\"flex items-center justify-between p-3\">\n <h1 class=\"text-lg font-medium\">We use cookies</h1>\n <svg class=\"size-[1.2rem]\" si-cookie-icon></svg>\n </div>\n <div class=\"-mt-2 p-3\">\n <p class=\"text-left text-sm text-muted-foreground\">\n We use cookies to ensure you get the best experience on our website. For more\n information on how we use cookies, please see our cookie policy.\n </p>\n </div>\n <div class=\"mt-2 flex items-center gap-2 border-t p-3\">\n <button class=\"h-9 w-full rounded-full\" (click)=\"accept()\" sc-button>accept</button>\n <button class=\"h-9 w-full rounded-full\" (click)=\"decline()\" sc-button variant=\"outline\">\n decline\n </button>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCookieConsent {\n open = signal(true);\n\n hidden = signal(false);\n\n class = signal(\n cn(\n 'fixed z-200 bottom-0 left-0 right-0 sm:left-4 sm:bottom-4 w-full sm:max-w-md duration-700',\n !this.open()\n ? 'transition-[opacity,transform] translate-y-8 opacity-0'\n : 'transition-[opacity,transform] translate-y-0 opacity-100',\n this.hidden() && 'hidden',\n ),\n );\n\n accept() {\n console.log('accept');\n }\n\n decline() {\n console.log('decline');\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nimport { ScCommentModel } from './comment-model';\n\n@Component({\n selector: 'sc-comment',\n imports: [DatePipe],\n template: `\n <div class=\"rounded-lg bg-white p-4 shadow-sm\">\n <!-- Comment Header -->\n <div class=\"mb-3 flex items-center gap-3\">\n <img class=\"size-8 rounded-full\" [src]=\"comment().avatar\" alt=\"Comment author avatar\" />\n <div>\n <h4 class=\"font-medium text-gray-900\">{{ comment().author }}</h4>\n <p class=\"text-sm text-gray-500\">\n {{ comment().timestamp | date: 'MMM d, y, h:mm a' }}\n </p>\n </div>\n </div>\n\n <!-- Comment Content -->\n <p class=\"mb-3 text-gray-700\">{{ comment().content }}</p>\n\n <!-- Comment Actions -->\n <div class=\"flex items-center gap-4 text-sm text-gray-500\">\n <button\n class=\"flex items-center gap-1 hover:text-blue-600\"\n (click)=\"likeComment(comment())\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5\"\n />\n </svg>\n {{ comment().likes }}\n </button>\n <button\n class=\"flex items-center gap-1 hover:text-blue-600\"\n (click)=\"toggleReplyForm(comment())\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 10h10a8 8 0 018 8v2M3 10l6 6m-6-6l6-6\"\n />\n </svg>\n Reply\n </button>\n </div>\n\n <!-- Nested Replies -->\n @if (comment().replies.length) {\n <div class=\"ml-8 mt-4 space-y-4\">\n @for (reply of comment().replies; track reply) {\n <div class=\"rounded-lg bg-gray-50 p-3\">\n <div class=\"mb-2 flex items-center gap-3\">\n <img class=\"size-6 rounded-full\" [src]=\"reply.avatar\" alt=\"Reply author avatar\" />\n <div>\n <h5 class=\"font-medium text-gray-900\">{{ reply.author }}</h5>\n <p class=\"text-xs text-gray-500\">\n {{ reply.timestamp | date: 'MMM d, y, h:mm a' }}\n </p>\n </div>\n </div>\n <p class=\"text-sm text-gray-700\">{{ reply.content }}</p>\n </div>\n }\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScComment {\n readonly comment = input.required<ScCommentModel>();\n\n likeComment(comment: ScCommentModel) {\n comment.likes++;\n }\n\n toggleReplyForm(comment: ScCommentModel) {\n // Implement reply form logic here\n console.log('Toggle reply form for comment:', comment.id);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n input,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nimport { ScComment } from './comment';\nimport { ScCommentModel, ScUserModel } from './comment-model';\n\n@Component({\n selector: 'sc-comments',\n imports: [ReactiveFormsModule, ScComment],\n template: `\n <div class=\"mx-auto max-w-3xl p-4\">\n <!-- New Comment Form -->\n <form class=\"mb-8\" [formGroup]=\"commentForm\" (ngSubmit)=\"onSubmit()\">\n <div class=\"flex gap-4\">\n <img class=\"size-10 rounded-full\" [src]=\"currentUser().avatar\" alt=\"User Avatar\" />\n <div class=\"flex-1\">\n <textarea\n class=\"h-24 w-full resize-none rounded-lg border border-gray-300 px-3 py-2 focus:border-blue-500 focus:ring-2 focus:ring-blue-500\"\n formControlName=\"content\"\n placeholder=\"Write a comment...\"\n ></textarea>\n <div class=\"mt-2 flex justify-end\">\n <button\n class=\"rounded-lg bg-blue-600 px-4 py-2 text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50\"\n [disabled]=\"!commentForm.valid\"\n type=\"submit\"\n >\n Post Comment\n </button>\n </div>\n </div>\n </div>\n </form>\n\n <!-- Comments List -->\n <div class=\"space-y-6\">\n @for (item of comments(); track $index) {\n <sc-comment [comment]=\"item\" />\n }\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScComments {\n private readonly fb = inject(FormBuilder);\n\n readonly comments = input.required<ScCommentModel[]>();\n\n readonly currentUser = input.required<ScUserModel>();\n\n protected readonly commentForm: FormGroup;\n\n constructor() {\n this.commentForm = this.fb.group({\n content: ['', [Validators.required, Validators.minLength(1)]],\n });\n }\n\n onSubmit() {\n if (this.commentForm.valid) {\n const newComment: ScCommentModel = {\n id: this.comments().length + 1,\n author: this.currentUser().name,\n avatar: this.currentUser().avatar,\n content: this.commentForm.value.content,\n timestamp: new Date(),\n likes: 0,\n replies: [],\n };\n\n this.comments().unshift(newComment);\n this.commentForm.reset();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'sc-tags',\n imports: [ReactiveFormsModule],\n template: `\n <div class=\"w-full\">\n <!-- Tags Input -->\n <div\n class=\"min-h-[45px] w-full rounded-lg border border-gray-300 p-2 focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500\"\n [class.border-red-500]=\"error\"\n >\n <div class=\"flex flex-wrap gap-2\">\n <!-- Existing Tags -->\n @for (tag of tags(); track tag) {\n <span\n class=\"inline-flex items-center gap-1 rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-800\"\n >\n {{ tag }}\n <button\n class=\"hover:text-blue-600 focus:outline-none\"\n (click)=\"removeTag(tag)\"\n type=\"button\"\n aria-label=\"Remove tag\"\n >\n <svg\n class=\"size-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n </span>\n }\n\n <!-- Input Field -->\n <input\n class=\"min-w-[120px] grow bg-transparent outline-none\"\n #tagInput\n [formControl]=\"tagControl\"\n [placeholder]=\"tags().length === 0 ? placeholder() : ''\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"addTag()\"\n />\n </div>\n </div>\n\n <!-- Error Message -->\n @if (error) {\n <div class=\"mt-1 text-sm text-red-500\">\n {{ error }}\n </div>\n }\n\n <!-- Helper Text -->\n @if (helperText()) {\n <div class=\"mt-1 text-sm text-gray-500\">\n {{ helperText() }}\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTags {\n readonly placeholder = input('Add tags...');\n readonly helperText = input('Press enter or comma to add tags');\n readonly maxTags = input(10);\n readonly minLength = input(2);\n readonly maxLength = input(20);\n\n readonly tagsInput = input<string[]>([], { alias: 'tags' });\n protected readonly tags = linkedSignal(() => this.tagsInput());\n readonly tagsChange = output<string[]>();\n\n tagControl = new FormControl('');\n error = '';\n\n onKeydown(event: KeyboardEvent): void {\n // Check for Enter key or Comma\n if (event.key === 'Enter' || event.key === ',') {\n event.preventDefault(); // Prevent the comma from being typed\n this.addTag();\n }\n }\n\n addTag(): void {\n const tag = this.tagControl.value?.trim().toLowerCase();\n\n if (!tag) {\n this.tagControl.setValue('');\n return;\n }\n\n // Remove comma if it was added\n const cleanTag = tag.replace(/,/g, '');\n\n if (!cleanTag) {\n this.tagControl.setValue('');\n return;\n }\n\n // Validation\n if (cleanTag.length < this.minLength()) {\n this.error = `Tag must be at least ${this.minLength()} characters long`;\n return;\n }\n\n if (cleanTag.length > this.maxLength()) {\n this.error = `Tag must be less than ${this.maxLength()} characters long`;\n return;\n }\n\n if (this.tags().length >= this.maxTags()) {\n this.error = `Maximum ${this.maxTags()} tags allowed`;\n return;\n }\n\n const tags = this.tags();\n if (tags.includes(cleanTag)) {\n this.error = 'Tag already exists';\n return;\n }\n\n // Add tag\n this.error = '';\n this.tags.update((tags) => [...tags, cleanTag]);\n this.tagsChange.emit(this.tags());\n this.tagControl.setValue('');\n }\n\n removeTag(tagToRemove: string): void {\n this.tags.update((tags) => tags.filter((tag) => tag !== tagToRemove));\n this.tagsChange.emit(this.tags());\n this.error = '';\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n OnInit,\n ViewEncapsulation,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n selector: 'sc-combobox',\n imports: [ReactiveFormsModule, NgTemplateOutlet],\n template: `\n <div class=\"relative w-full\" #container>\n <!-- Label -->\n @if (label()) {\n <label class=\"mb-1 block text-sm font-medium text-gray-700\" [for]=\"id()\">\n {{ label() }}\n </label>\n }\n\n <!-- Input Group -->\n <div class=\"relative\">\n <input\n class=\"w-full rounded-lg border px-4 py-2 focus:border-blue-500 focus:ring-2 focus:ring-blue-500\"\n [id]=\"id()\"\n [formControl]=\"searchControl\"\n [placeholder]=\"placeholder()\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-activedescendant]=\"activeId\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-owns]=\"listboxId\"\n [attr.aria-autocomplete]=\"'list'\"\n [attr.aria-haspopup]=\"'listbox'\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeydown($event)\"\n type=\"text\"\n role=\"combobox\"\n />\n\n <!-- Dropdown button -->\n <button\n class=\"absolute inset-y-0 right-0 flex items-center px-2\"\n [attr.aria-label]=\"isOpen ? 'Close options' : 'Open options'\"\n (keydown)=\"onButtonKeydown($event)\"\n (click)=\"handleButtonInteraction($event)\"\n type=\"button\"\n tabindex=\"0\"\n >\n <svg class=\"size-5 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n </div>\n\n <!-- Dropdown -->\n @if (isOpen) {\n <div\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white shadow-lg\"\n [id]=\"listboxId\"\n [attr.aria-label]=\"label() || 'Options'\"\n role=\"listbox\"\n >\n @if (loading()) {\n <div class=\"p-4 text-center text-gray-500\" role=\"status\">Loading...</div>\n }\n @if (!loading() && filteredOptions.length === 0) {\n <div class=\"p-4 text-center text-gray-500\" role=\"status\">No results found</div>\n }\n @if (!loading() && filteredOptions.length > 0) {\n <ul>\n @for (option of filteredOptions; track option; let i = $index) {\n <li\n class=\"cursor-pointer px-4 py-2 outline-none\"\n [id]=\"id() + '-option-' + i\"\n [attr.aria-selected]=\"i === activeIndex\"\n [class.bg-blue-100]=\"i === activeIndex\"\n (click)=\"handleOptionClick($event, option)\"\n (keydown)=\"onOptionKeydown($event, option)\"\n (mouseenter)=\"setActiveIndex(i)\"\n role=\"option\"\n tabindex=\"0\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n optionTemplate() || defaultOptionTemplate;\n context: { $implicit: option }\n \"\n ></ng-container>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n\n <!-- Default option template -->\n <ng-template #defaultOptionTemplate let-option>\n {{ getOptionLabel(option) }}\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCombobox implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n readonly id = input(`combobox-${Math.random().toString(36).substr(2, 9)}`);\n readonly label = input<string>();\n readonly placeholder = input('Select an option');\n readonly options = input<any[]>([]);\n readonly optionTemplate = input<any>();\n readonly loading = input(false);\n readonly labelKey = input('label');\n\n readonly optionSelected = output<any>();\n readonly search = output<string>();\n\n searchControl = new FormControl('');\n isOpen = false;\n activeIndex = -1;\n filteredOptions: any[] = [];\n listboxId = `${this.id()}-listbox`;\n\n private closeTimeout?: any;\n\n get activeId(): string {\n return this.activeIndex >= 0 ? `${this.id()}-option-${this.activeIndex}` : '';\n }\n\n constructor() {\n this.searchControl.valueChanges\n .pipe(debounceTime(300), distinctUntilChanged())\n .subscribe((value) => {\n this.onSearch(value ?? '');\n });\n }\n\n ngOnInit() {\n this.listboxId = `${this.id()}-listbox`;\n }\n\n // Handle button interactions\n handleButtonInteraction(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.toggleDropdown();\n }\n\n onButtonKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case ' ':\n case 'Enter':\n event.preventDefault();\n event.stopPropagation();\n this.toggleDropdown();\n break;\n }\n }\n\n // Handle option interactions\n handleOptionClick(event: MouseEvent, option: any) {\n event.preventDefault();\n event.stopPropagation();\n this.selectOption(option);\n }\n\n onOptionKeydown(event: KeyboardEvent, option: any) {\n switch (event.key) {\n case ' ':\n case 'Enter':\n event.preventDefault();\n event.stopPropagation();\n this.selectOption(option);\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.moveActiveIndex(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveActiveIndex(-1);\n break;\n case 'Home':\n event.preventDefault();\n this.setActiveIndex(0);\n break;\n case 'End':\n event.preventDefault();\n this.setActiveIndex(this.filteredOptions.length - 1);\n break;\n }\n }\n\n moveActiveIndex(delta: number) {\n const newIndex = this.activeIndex + delta;\n if (newIndex >= 0 && newIndex < this.filteredOptions.length) {\n this.setActiveIndex(newIndex);\n }\n }\n\n setActiveIndex(index: number) {\n this.activeIndex = index;\n this.scrollActiveOptionIntoView();\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: Event) {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n toggleDropdown() {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.isOpen ? this.close() : this.open();\n }\n\n open() {\n this.isOpen = true;\n this.filterOptions();\n }\n\n close() {\n this.isOpen = false;\n this.activeIndex = -1;\n }\n\n onFocus() {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n }\n }\n\n onBlur() {\n this.closeTimeout = setTimeout(() => this.close(), 200);\n }\n\n onSearch(query: string) {\n this.search.emit(query);\n this.filterOptions();\n }\n\n filterOptions() {\n const query = this.searchControl.value?.toLowerCase() ?? '';\n this.filteredOptions = this.options().filter((option) =>\n this.getOptionLabel(option).toLowerCase().includes(query),\n );\n this.activeIndex = -1;\n }\n\n selectOption(option: any) {\n this.searchControl.setValue(this.getOptionLabel(option), { emitEvent: false });\n this.optionSelected.emit(option);\n this.close();\n }\n\n getOptionLabel(option: any): string {\n return typeof option === 'object' ? option[this.labelKey()] : option.toString();\n }\n\n onKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) {\n this.open();\n }\n this.moveActiveIndex(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveActiveIndex(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (this.activeIndex >= 0) {\n this.selectOption(this.filteredOptions[this.activeIndex]);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.close();\n break;\n case 'Tab':\n this.close();\n break;\n }\n }\n\n private scrollActiveOptionIntoView() {\n if (this.activeIndex >= 0) {\n const activeOption = document.getElementById(`${this.id()}-option-${this.activeIndex}`);\n if (activeOption) {\n activeOption.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnInit,\n ViewEncapsulation,\n input,\n output,\n viewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-clock-picker',\n imports: [],\n template: `\n <div class=\"inline-block\">\n <!-- Time Display -->\n <div class=\"mb-4 text-center\">\n <span class=\"text-3xl font-bold\">\n {{ formatTime(selectedHour, selectedMinute, selectedPeriod) }}\n </span>\n </div>\n\n <!-- Clock Face -->\n <div class=\"relative size-64 rounded-full border-2 border-gray-200 bg-gray-100\" #clockFace>\n <!-- Hour Markers -->\n @for (hour of hours; track hour) {\n <div\n class=\"pointer-events-none absolute size-full\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg)'\"\n >\n <div class=\"absolute left-1/2 top-0 h-full -translate-x-1/2\">\n <span class=\"absolute top-2 -translate-x-1/2 font-medium\">\n {{ hour === 0 ? 12 : hour }}\n </span>\n </div>\n </div>\n }\n\n <!-- Clickable Areas -->\n <div\n class=\"absolute inset-0\"\n (mousedown)=\"startMinuteDrag($event)\"\n (touchstart)=\"startMinuteDrag($event)\"\n >\n <div\n class=\"absolute inset-8\"\n (mousedown)=\"startHourDrag($event)\"\n (touchstart)=\"startHourDrag($event)\"\n ></div>\n </div>\n\n <!-- Hour Hand -->\n <div\n class=\"pointer-events-none absolute left-1/2 top-1/2 h-16 w-1 origin-top rounded-full bg-blue-600\"\n [style.transform]=\"'rotate(' + getHourDegrees() + 'deg) translateX(-50%)'\"\n ></div>\n\n <!-- Minute Hand -->\n <div\n class=\"pointer-events-none absolute left-1/2 top-1/2 h-24 w-0.5 origin-top rounded-full bg-blue-400\"\n [style.transform]=\"'rotate(' + getMinuteDegrees() + 'deg) translateX(-50%)'\"\n ></div>\n\n <!-- Center Dot -->\n <div\n class=\"pointer-events-none absolute left-1/2 top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-blue-600\"\n ></div>\n </div>\n\n <!-- AM/PM Toggle -->\n <div class=\"mt-4 flex justify-center gap-2\">\n @for (period of periods; track period) {\n <button\n [class]=\"\n 'px-4 py-2 rounded-lg ' +\n (selectedPeriod === period\n ? 'bg-blue-500 text-white'\n : 'bg-gray-100 hover:bg-gray-200')\n \"\n (click)=\"selectPeriod(period)\"\n >\n {{ period }}\n </button>\n }\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScClockPicker implements OnInit {\n readonly clockFace = viewChild.required<ElementRef>('clockFace');\n readonly initialTime = input<string>();\n readonly timeSelected = output<string>();\n\n hours = Array.from({ length: 12 }, (_, i) => i);\n periods = ['AM', 'PM'];\n\n selectedHour = 12;\n selectedMinute = 0;\n selectedPeriod = 'AM';\n\n isDragging = false;\n isHourMode = true;\n\n private readonly moveHandler: (event: MouseEvent | TouchEvent) => void;\n private readonly endHandler: () => void;\n\n constructor() {\n this.moveHandler = (event: MouseEvent | TouchEvent) => this.handleMove(event);\n this.endHandler = () => this.stopDrag();\n }\n\n ngOnInit() {\n const initialTime = this.initialTime();\n if (initialTime) {\n this.parseInitialTime(initialTime);\n }\n }\n\n parseInitialTime(time: string) {\n const [timeStr, period] = time.split(' ');\n const [hours, minutes] = timeStr.split(':').map(Number);\n\n this.selectedHour = hours % 12 || 12;\n this.selectedMinute = minutes;\n this.selectedPeriod = period;\n }\n\n startHourDrag(event: MouseEvent | TouchEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isHourMode = true;\n this.startDrag(event);\n }\n\n startMinuteDrag(event: MouseEvent | TouchEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isHourMode = false;\n this.startDrag(event);\n }\n\n private startDrag(event: MouseEvent | TouchEvent) {\n this.isDragging = true;\n document.addEventListener('mousemove', this.moveHandler);\n document.addEventListener('touchmove', this.moveHandler);\n document.addEventListener('mouseup', this.endHandler);\n document.addEventListener('touchend', this.endHandler);\n this.handleMove(event);\n }\n\n private handleMove(event: MouseEvent | TouchEvent) {\n if (!this.isDragging) return;\n\n const rect = this.clockFace().nativeElement.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n let clientX: number, clientY: number;\n\n if (event instanceof MouseEvent) {\n clientX = event.clientX;\n clientY = event.clientY;\n } else {\n clientX = event.touches[0].clientX;\n clientY = event.touches[0].clientY;\n }\n\n const angle = (Math.atan2(clientY - centerY, clientX - centerX) * 180) / Math.PI + 90;\n\n if (this.isHourMode) {\n this.selectedHour = Math.round(((angle + 360) % 360) / 30) % 12 || 12;\n } else {\n this.selectedMinute = Math.round(((angle + 360) % 360) / 6) % 60;\n }\n\n this.emitTimeChange();\n }\n\n private stopDrag() {\n if (!this.isDragging) return;\n\n this.isDragging = false;\n document.removeEventListener('mousemove', this.moveHandler);\n document.removeEventListener('touchmove', this.moveHandler);\n document.removeEventListener('mouseup', this.endHandler);\n document.removeEventListener('touchend', this.endHandler);\n\n this.emitTimeChange();\n }\n\n getHourDegrees(): number {\n return (this.selectedHour % 12) * 30 + (this.selectedMinute / 60) * 30;\n }\n\n getMinuteDegrees(): number {\n return this.selectedMinute * 6;\n }\n\n selectPeriod(period: string) {\n this.selectedPeriod = period;\n this.emitTimeChange();\n }\n\n formatTime(hour: number, minute: number, period: string): string {\n return `${hour}:${minute.toString().padStart(2, '0')} ${period}`;\n }\n\n emitTimeChange() {\n const formattedTime = this.formatTime(\n this.selectedHour,\n this.selectedMinute,\n this.selectedPeriod,\n );\n this.timeSelected.emit(formattedTime);\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n signal,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-clock-picker2',\n imports: [NgClass],\n template: `\n <div class=\"w-80 rounded-lg bg-white p-5 shadow-lg\">\n <div class=\"mb-5 text-center text-2xl\">{{ formattedHour() }}:{{ formattedMinute() }}</div>\n\n <div class=\"relative mx-auto mb-5 size-52\">\n <!-- Clock face -->\n <div class=\"absolute size-full rounded-full border-2 border-gray-200 bg-gray-100\">\n <!-- Center dot -->\n <div\n class=\"absolute left-1/2 top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-gray-800\"\n ></div>\n\n <!-- Clock hand -->\n <div\n class=\"absolute left-1/2 top-5 h-20 w-0.5 origin-bottom -translate-x-1/2 bg-blue-500\"\n [style.transform]=\"getHandRotation()\"\n ></div>\n\n <!-- Numbers -->\n\n @for (item of generateClockNumbers(); track $index) {\n <button\n class=\"absolute flex size-8 items-center justify-center rounded-full text-sm\"\n [ngClass]=\"\n (isHourMode() && item.number === selectedHour()) ||\n (!isHourMode() && item.number * 5 === selectedMinute())\n ? 'bg-blue-500 text-white'\n : 'hover:bg-gray-200'\n \"\n [style]=\"item.style\"\n (click)=\"handleNumberClick(item.number)\"\n >\n {{ numToDisplay(item.number) }}\n </button>\n }\n </div>\n </div>\n\n <!-- Mode switches -->\n <div class=\"flex justify-center gap-2\">\n <button\n class=\"rounded px-4 py-2 text-white\"\n [ngClass]=\"isHourMode() ? 'bg-blue-600' : 'bg-blue-400'\"\n (click)=\"isHourMode.set(true)\"\n >\n Hours\n </button>\n\n <button\n class=\"rounded px-4 py-2 text-white\"\n [ngClass]=\"!isHourMode() ? 'bg-blue-600' : 'bg-blue-400'\"\n (click)=\"isHourMode.set(false)\"\n >\n Minutes\n </button>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScClockPicker2 {\n protected readonly isHourMode = signal(true);\n protected readonly selectedHour = signal(12);\n protected readonly selectedMinute = signal(60);\n\n protected numToDisplay(number: number) {\n if (this.isHourMode()) {\n return number;\n }\n const minutes = number * 5;\n if (minutes === 60) {\n return 0;\n }\n return minutes;\n }\n\n protected readonly formattedHour = computed(() => String(this.selectedHour()).padStart(2, '0'));\n protected readonly formattedMinute = computed(() => {\n let minutes = this.selectedMinute();\n if (minutes === 60) {\n minutes = 0;\n }\n\n return String(minutes).padStart(2, '0');\n });\n\n // Generate positions for clock numbers\n generateClockNumbers = computed(() => {\n const numbers = this.isHourMode() ? 12 : 60;\n const step = this.isHourMode() ? 1 : 5;\n const items = [];\n\n for (let i = 1; i <= numbers / step; i++) {\n const angle = i * (360 / (numbers / step)) - 90;\n const radius = 80;\n const x = Math.cos((angle * Math.PI) / 180) * radius;\n const y = Math.sin((angle * Math.PI) / 180) * radius;\n\n //86 because the width of div is 204 and the width of the button is 32\n // 86 = (204 - 32 ) / 2\n items.push({\n number: i,\n style: {\n left: `${x + 86}px`,\n top: `${y + 86}px`,\n },\n });\n }\n\n return items;\n });\n\n handleNumberClick = (num: number) => {\n if (this.isHourMode()) {\n this.selectedHour.set(num);\n } else {\n this.selectedMinute.set(num * 5);\n }\n };\n\n getHandRotation = computed(() => {\n const value = this.isHourMode() ? this.selectedHour() : this.selectedMinute() / 5;\n // Calculate angle, ensuring correct rotation and offset\n const angle = (value % 12) * (360 / 12);\n return `rotate(${angle}deg)`;\n });\n}\n","// Define your array of strings\nexport const themesArray = ['github-light', 'github-dark'] as const;\n// Create a type from the array elements\nexport type ThemeType = (typeof themesArray)[number];\n\n// Define your array of strings\nexport const langsArray = ['angular-ts', 'angular-html', 'shellscript'] as const;\n// Create a type from the array elements\nexport type LangType = (typeof langsArray)[number];\n","import { Injectable } from '@angular/core';\n\nimport { Highlighter, createHighlighter } from 'shiki';\n\nimport { LangType, ThemeType, langsArray, themesArray } from './types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ShikiService {\n private highlighter: Highlighter | null = null;\n\n async initializeHighlighter() {\n this.highlighter ??= await createHighlighter({\n themes: [...themesArray],\n langs: [...langsArray],\n });\n return this.highlighter;\n }\n\n async highlightCode(code: string, language: LangType, theme: ThemeType) {\n const highlighter = await this.initializeHighlighter();\n return highlighter.codeToHtml(code, {\n lang: language,\n theme: theme,\n });\n }\n}\n","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCopyIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\nimport { ScTheme } from '../theme-toggler';\nimport { ShikiService } from './shiki.service';\nimport { LangType, ThemeType } from './types';\n\n@Component({\n selector: 'sc-code-highlighter',\n imports: [ClipboardModule, SiCopyIcon, ScButton],\n template: `\n <div [innerHTML]=\"highlightedCode()\"></div>\n\n <button class=\"absolute top-2 right-2\" [cdkCopyToClipboard]=\"code()\" sc-button variant=\"ghost\">\n <svg class=\"h-4 w-4\" si-copy-icon></svg>\n </button>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCodeHighlighter {\n private readonly themeService = inject(ScTheme);\n private readonly shikiService = inject(ShikiService);\n private readonly sanitizer = inject(DomSanitizer);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('block relative overflow-hidden', this.classInput()),\n );\n\n readonly code = input.required<string>();\n\n readonly language = input.required<LangType>();\n\n readonly themeInput = input<ThemeType | undefined>(undefined, {\n alias: 'theme',\n });\n\n readonly theme = computed<ThemeType>(() => {\n if (this.themeInput()) {\n return this.themeInput()!;\n }\n\n if (this.themeService.isDarkMode()) {\n return 'github-dark';\n }\n\n return 'github-light';\n });\n\n protected readonly highlightedCode = signal<SafeHtml>('');\n\n constructor() {\n effect(async () => {\n const highlighted = await this.shikiService.highlightCode(\n this.code(),\n this.language(),\n this.theme(),\n );\n this.highlightedCode.set(this.sanitizer.bypassSecurityTrustHtml(highlighted));\n });\n }\n}\n","// image-placeholder.service.ts\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagePlaceholderService {\n generatePlaceholder(width: number, height: number, text?: string): string {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (ctx) {\n // Background\n ctx.fillStyle = '#E0E0E0';\n ctx.fillRect(0, 0, width, height);\n\n // Text\n ctx.fillStyle = '#888';\n ctx.font = `${Math.min(width, height) / 10}px Arial`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n const displayText = text ?? `${width}x${height}`;\n ctx.fillText(displayText, width / 2, height / 2);\n }\n\n return canvas.toDataURL();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ImagePlaceholderService } from './image-placeholder.service';\n\n@Component({\n selector: 'img[sc-image-placeholder]',\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[src]': 'placeholderSrc()',\n '[width]': 'width()',\n '[height]': 'height()',\n '[alt]': 'alt()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScImagePlaceholder {\n private readonly placeholderService = inject(ImagePlaceholderService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('object-cover', this.classInput()));\n\n readonly width = input(300);\n readonly height = input(200);\n readonly alt = input('Placeholder');\n\n //TODO use alt instead of text\n readonly text = input('');\n\n protected readonly placeholderSrc = computed(() => {\n return this.placeholderService.generatePlaceholder(this.width(), this.height(), this.text());\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'description',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-error-message',\n imports: [],\n template: `\n <p>error-message works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScErrorMessage {}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScInput } from '../input';\nimport { ScLabel } from '../label';\n\n@Component({\n selector: 'sc-field',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScField {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n '*:data-[slot=control]:mt-2 [&>[data-slot=control]+[data-slot=description]]:mt-2',\n this.classInput(),\n ),\n );\n\n readonly id = signal<string>(inject(_IdGenerator).getId('sc-field-'));\n\n readonly scLabel = contentChild(ScLabel);\n\n readonly scInput = contentChild(ScInput);\n\n constructor() {\n afterNextRender(() => {\n this.scLabel()?.for.set(this.id());\n this.scInput()?.id.set(this.id());\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'fieldset[sc-fieldset]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'fieldset',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScFieldset {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('[&>*+[data-slot=control]]:mt-6 *:data-[slot=text]:mt-1', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'legend[sc-legend]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'legend',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScLegend {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'text-base/6 font-semibold text-zinc-950 data-disabled:opacity-50 sm:text-sm/6 dark:text-white',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-touch-area]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTouchArea {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n // 'absolute top-1/2 left-1/2 -translate-1/2 pointer-fine:hidden size-[max(100%, 44px)]',\n 'absolute top-1/2 left-1/2 -translate-1/2 pointer-fine:hidden size-[44px]',\n this.classInput(),\n ),\n );\n}\n","import { Directive, ElementRef, OnInit, inject, input, output } from '@angular/core';\n\n@Directive({\n selector: '[scScrollSpy]',\n})\nexport class ScScrollSpy implements OnInit {\n private readonly el = inject(ElementRef);\n\n readonly spySections = input<string[]>([]); // Section IDs to track\n readonly sectionChange = output<string>(); // Emits active section ID\n\n private observer!: IntersectionObserver;\n\n ngOnInit() {\n this.observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.sectionChange.emit(entry.target.id); // Emit when section is visible\n }\n });\n },\n {\n root: null, // Use viewport as root\n threshold: 0.6, // Section is active when 60% is visible\n },\n );\n\n this.spySections().forEach((id) => {\n const section = document.getElementById(id);\n if (section) {\n this.observer.observe(section);\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n output,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'sc-color-picker',\n imports: [FormsModule],\n template: `\n <div class=\"max-w-md p-4 bg-white rounded-lg shadow-md\">\n <div class=\"flex items-center mb-4 space-x-4\">\n <div\n class=\"w-12 h-12 rounded border border-gray-300\"\n [style.backgroundColor]=\"selectedColor\"\n ></div>\n <input\n class=\"px-3 py-2 w-32 bg-gray-50 border border-gray-300 rounded text-sm focus:outline-none focus:ring-2 focus:ring-blue-500\"\n [value]=\"selectedColor\"\n type=\"text\"\n readonly\n />\n </div>\n\n <div class=\"space-y-6\">\n <!-- RGB Sliders -->\n <div class=\"space-y-4\">\n <!-- Red Slider -->\n <div class=\"flex items-center space-x-4\">\n <label class=\"w-16 text-sm font-medium text-gray-700\" for=\"label_12\">Red:</label>\n <input\n class=\"grow h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-red-500\"\n id=\"label_12\"\n [(ngModel)]=\"red\"\n (ngModelChange)=\"updateColor()\"\n type=\"range\"\n min=\"0\"\n max=\"255\"\n />\n <span class=\"w-12 text-right text-sm text-gray-600\">{{ red }}</span>\n </div>\n\n <!-- Green Slider -->\n <div class=\"flex items-center space-x-4\">\n <label class=\"w-16 text-sm font-medium text-gray-700\" for=\"label_121\">Green:</label>\n <input\n class=\"grow h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-green-500\"\n id=\"label_121\"\n [(ngModel)]=\"green\"\n (ngModelChange)=\"updateColor()\"\n type=\"range\"\n min=\"0\"\n max=\"255\"\n />\n <span class=\"w-12 text-right text-sm text-gray-600\">{{ green }}</span>\n </div>\n\n <!-- Blue Slider -->\n <div class=\"flex items-center space-x-4\">\n <label class=\"w-16 text-sm font-medium text-gray-700\" for=\"label_126\">Blue:</label>\n <input\n class=\"grow h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-blue-500\"\n id=\"label_126\"\n [(ngModel)]=\"blue\"\n (ngModelChange)=\"updateColor()\"\n type=\"range\"\n min=\"0\"\n max=\"255\"\n />\n <span class=\"w-12 text-right text-sm text-gray-600\">{{ blue }}</span>\n </div>\n </div>\n\n <!-- Preset Colors -->\n <div>\n <p class=\"mb-2 text-sm font-medium text-gray-700\">Preset Colors:</p>\n <div class=\"grid grid-cols-5 gap-2\">\n @for (color of presetColors; track color) {\n <button\n class=\"w-8 h-8 rounded border border-gray-300 transition-transform hover:scale-110 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\n [style.backgroundColor]=\"color\"\n (click)=\"selectPresetColor(color)\"\n >\n <span></span>\n </button>\n }\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScColorPicker implements OnInit {\n @Input() initialColor = '#ff0000';\n readonly colorChange = output<string>();\n\n red = 255;\n green = 0;\n blue = 0;\n selectedColor = '#ff0000';\n\n presetColors: string[] = [\n '#ff0000',\n '#00ff00',\n '#0000ff',\n '#ffff00',\n '#ff00ff',\n '#00ffff',\n '#000000',\n '#ffffff',\n '#808080',\n '#ffa500',\n ];\n\n ngOnInit() {\n this.setInitialColor();\n }\n\n setInitialColor() {\n const color = this.initialColor.replace('#', '');\n this.red = parseInt(color.substr(0, 2), 16);\n this.green = parseInt(color.substr(2, 2), 16);\n this.blue = parseInt(color.substr(4, 2), 16);\n this.updateColor();\n }\n\n updateColor() {\n this.selectedColor = `#${this.componentToHex(this.red)}${this.componentToHex(this.green)}${this.componentToHex(this.blue)}`;\n this.colorChange.emit(this.selectedColor);\n }\n\n componentToHex(c: number): string {\n const hex = c.toString(16);\n return hex.length == 1 ? '0' + hex : hex;\n }\n\n selectPresetColor(color: string) {\n this.initialColor = color;\n this.setInitialColor();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-toggle-switch]',\n imports: [],\n template: `\n <span\n class=\"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n data-state=\"unchecked\"\n ></span>\n `,\n host: {\n '[class]': 'class()',\n role: 'switch',\n 'aria-checked': 'false',\n 'data-state': 'unchecked',\n value: 'on',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggleSwitch {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'input[sc-range-slider]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'control',\n '[min]': 'min()',\n '[max]': 'max()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRangeSlider {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n ' w-full h-full appearance-none bg-transparent pointer-events-none [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-md [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:cursor-pointer [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-white [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:shadow-md [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:pointer-events-auto [&::-moz-range-thumb]:cursor-pointer',\n this.classInput(),\n ),\n );\n\n readonly type = input.required<'range'>();\n\n readonly min = input<number>(0);\n\n readonly max = input<number>(100);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'sc-dual-range-slider',\n imports: [FormsModule],\n template: `\n <div class=\"w-full max-w-md px-4 py-6\">\n <div class=\"relative h-2\">\n <!-- Track background -->\n <div class=\"absolute w-full h-full bg-gray-200 rounded-full\"></div>\n\n <!-- Selected range track -->\n <div\n class=\"absolute h-full bg-blue-500 rounded-full\"\n [style.left]=\"minPercentage + '%'\"\n [style.right]=\"100 - maxPercentage + '%'\"\n ></div>\n\n <!-- Min value slider -->\n <input\n class=\"absolute w-full h-full appearance-none bg-transparent pointer-events-none [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-md [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:cursor-pointer [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-white [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:shadow-md [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:pointer-events-auto [&::-moz-range-thumb]:cursor-pointer\"\n [(ngModel)]=\"minValue\"\n [min]=\"min()\"\n [max]=\"max()\"\n (input)=\"onMinChange($event)\"\n type=\"range\"\n />\n\n <!-- Max value slider -->\n <input\n class=\"absolute w-full h-full appearance-none bg-transparent pointer-events-none [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-md [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:cursor-pointer [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-white [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:shadow-md [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:pointer-events-auto [&::-moz-range-thumb]:cursor-pointer\"\n [(ngModel)]=\"maxValue\"\n [min]=\"min()\"\n [max]=\"max()\"\n (input)=\"onMaxChange($event)\"\n type=\"range\"\n />\n </div>\n\n <!-- Value display -->\n <div class=\"mt-4 flex justify-between text-sm text-gray-600\">\n <span>Min: {{ minValue }}</span>\n <span>Max: {{ maxValue }}</span>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDualRangeSlider {\n readonly min = input(0);\n readonly max = input(100);\n @Input() minValue = 20;\n @Input() maxValue = 80;\n\n readonly minValueChange = output<number>();\n readonly maxValueChange = output<number>();\n\n get minPercentage(): number {\n return ((this.minValue - this.min()) * 100) / (this.max() - this.min());\n }\n\n get maxPercentage(): number {\n return ((this.maxValue - this.min()) * 100) / (this.max() - this.min());\n }\n\n onMinChange(event: Event): void {\n const value = Number((event.target as HTMLInputElement).value);\n if (value < this.maxValue) {\n this.minValue = value;\n this.minValueChange.emit(value);\n }\n }\n\n onMaxChange(event: Event): void {\n const value = Number((event.target as HTMLInputElement).value);\n if (value > this.minValue) {\n this.maxValue = value;\n this.maxValueChange.emit(value);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n inject,\n signal,\n} from '@angular/core';\n\n// Automatically detects sections with the <section id=\"...\"> format\n// Uses IntersectionObserver to track which sections are in view\n// Highlights the active section in the TOC\n// Implements smooth scrolling when clicking TOC links\n// Updates URL hash without causing page jumps\n// Works with any content structure that uses section tags with IDs\n// Clean separation of concerns between component, template, and styles\n\nexport interface ScSection {\n id: string;\n title: string;\n element: HTMLElement;\n}\n\n@Component({\n selector: 'sc-table-of-contents',\n imports: [CommonModule],\n template: `\n <div\n class=\"sticky top-8 self-start w-64 max-h-[90vh] overflow-y-auto p-4 bg-gray-50 rounded-lg shadow-md\"\n >\n <h3 class=\"text-lg font-semibold mb-4\">Table of Contents</h3>\n <ul class=\"space-y-1\">\n @for (section of sections(); track section) {\n <li>\n <a\n class=\"block py-2 pl-4 border-l-2 transition-all duration-200 rounded-r\"\n [ngClass]=\"{\n 'border-blue-600 text-blue-600 font-medium bg-blue-50':\n activeSection() === section.id,\n 'border-transparent text-gray-600 hover:text-gray-900 hover:bg-gray-100':\n activeSection() !== section.id,\n }\"\n (click)=\"scrollToSection($event, section.id)\"\n href=\"#{{ section.id }}\"\n >\n {{ section.title }}\n </a>\n </li>\n }\n </ul>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableOfContents implements AfterViewInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n\n sections = signal<ScSection[]>([]);\n activeSection = signal('');\n private observer: IntersectionObserver | null = null;\n\n ngAfterViewInit(): void {\n // After the view is initialized, find all sections\n this.initializeToc();\n }\n\n ngOnDestroy(): void {\n // Clean up the observer when component is destroyed\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n private initializeToc(): void {\n // Get all sections from the document (with section tag and id attribute)\n const foundSections = Array.from(document.querySelectorAll('section[id]'));\n\n this.sections.set(\n foundSections.map((section) => ({\n id: section.id,\n title: section.querySelector('h2')?.textContent ?? 'Untitled Section',\n element: section as HTMLElement,\n })),\n );\n\n // Set up and start the intersection observer\n this.setupIntersectionObserver();\n }\n\n private setupIntersectionObserver(): void {\n const options = {\n rootMargin: '-100px 0px -70% 0px',\n threshold: 0,\n };\n\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.activeSection.set(entry.target.id);\n }\n });\n }, options);\n\n // Start observing each section\n this.sections().forEach((section) => {\n this.observer?.observe(section.element);\n });\n }\n\n scrollToSection(event: Event, sectionId: string): void {\n event.preventDefault();\n const section = document.getElementById(sectionId);\n\n if (section) {\n section.scrollIntoView({ behavior: 'smooth' });\n // Update URL without triggering navigation\n window.history.pushState(null, '', `#${sectionId}`);\n }\n }\n}\n","import { CdkStepper, CdkStepperModule } from '@angular/cdk/stepper';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n OnInit,\n ViewEncapsulation,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-stepper',\n imports: [CommonModule, CdkStepperModule],\n template: `\n <div class=\"w-full\">\n <!-- Step header navigation -->\n <div class=\"flex justify-between mb-8\">\n @for (step of steps; track step; let i = $index; let last = $last) {\n <div class=\"flex items-center\">\n <!-- Step circle with number -->\n <button\n class=\"flex items-center justify-center w-10 h-10 rounded-full font-medium transition-colors duration-200\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': selectedIndex >= i,\n 'bg-gray-200 text-gray-600': selectedIndex < i,\n }\"\n (click)=\"onClick(i)\"\n >\n @if (selectedIndex > i) {\n <span class=\"text-lg\">✓</span>\n }\n @if (selectedIndex <= i) {\n <span>{{ i + 1 }}</span>\n }\n </button>\n <!-- Step label -->\n <span\n class=\"ml-3 font-medium transition-colors duration-200\"\n [ngClass]=\"{\n 'text-blue-600': selectedIndex >= i,\n 'text-gray-500': selectedIndex < i,\n }\"\n >\n {{ step.label }}\n </span>\n </div>\n <!-- Connector line between steps -->\n @if (!last) {\n <div\n class=\"grow mx-4 h-0.5 mt-5\"\n [ngClass]=\"{ 'bg-blue-600': selectedIndex > i, 'bg-gray-200': selectedIndex <= i }\"\n ></div>\n }\n }\n </div>\n\n <!-- Step content -->\n <div class=\"p-6 bg-white rounded-lg shadow-sm border border-gray-200\">\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\n\n <!-- Navigation buttons -->\n <div class=\"flex justify-between mt-8\">\n @if (selectedIndex > 0) {\n <button\n class=\"px-4 py-2 text-blue-600 border border-blue-600 rounded-md hover:bg-blue-50 transition-colors duration-200\"\n (click)=\"previous()\"\n >\n Previous\n </button>\n }\n <div class=\"grow\"></div>\n @if (selectedIndex < steps.length - 1) {\n <button\n class=\"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors duration-200\"\n (click)=\"next()\"\n >\n Next\n </button>\n }\n @if (selectedIndex === steps.length - 1) {\n <button\n class=\"px-4 py-2 bg-green-600 text-white rounded-md hover:bg-green-700 transition-colors duration-200\"\n (click)=\"complete()\"\n >\n Complete\n </button>\n }\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CdkStepper, useExisting: ScStepper }],\n})\nexport class ScStepper extends CdkStepper implements OnInit {\n readonly stepCompleteEvent = input(new EventEmitter<void>());\n\n ngOnInit() {\n this.linear = false; // Allow steps to be accessed in any order\n }\n\n onClick(index: number): void {\n this.selectedIndex = index;\n }\n\n complete(): void {\n this.stepCompleteEvent().emit();\n console.log('Stepper completed!');\n }\n}\n","import { CdkStep, CdkStepperModule } from '@angular/cdk/stepper';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-step',\n imports: [CdkStepperModule],\n template: `\n <ng-template>\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CdkStep, useExisting: ScStep }],\n})\nexport class ScStep extends CdkStep {\n @Input() override label = '';\n\n @ViewChild(TemplateRef, { static: true }) override content: TemplateRef<any> = null!;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewEncapsulation,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-rating',\n imports: [],\n template: `\n <div class=\"flex items-center\">\n <div class=\"flex\">\n @for (position of positions; track position; let i = $index) {\n <button\n class=\"relative\"\n (mouseenter)=\"onHover(position)\"\n (mouseleave)=\"onHover(0)\"\n (click)=\"onRate(position)\"\n >\n <!-- Base star (gray background) -->\n <svg class=\"w-6 h-6 text-gray-300\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n />\n </svg>\n <!-- Left half star (for 0.5 increments) -->\n @if (isHalfOrFullStar(position)) {\n <div\n class=\"absolute top-0 left-0 overflow-hidden\"\n [style.width]=\"isHalfStar(position) ? '50%' : '100%'\"\n >\n <svg class=\"w-6 h-6 text-yellow-400\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n />\n </svg>\n </div>\n }\n <!-- Hover effect overlay -->\n @if (interactive() && hoverRating >= position) {\n <div\n class=\"absolute top-0 left-0\"\n [style.width]=\"\n isHalfValue(hoverRating) && Math.ceil(hoverRating) === position ? '50%' : '100%'\n \"\n >\n <svg class=\"w-6 h-6 text-yellow-500\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n />\n </svg>\n </div>\n }\n </button>\n }\n </div>\n @if (showRatingValue()) {\n <span class=\"ml-2 text-sm text-gray-600\">\n {{ rating.toFixed(1) }}\n </span>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRating implements OnInit, OnChanges {\n readonly maxRating = input(5);\n @Input() rating = 0;\n readonly interactive = input(true);\n readonly showRatingValue = input(false);\n readonly allowHalfStars = input(true);\n @Output() ratingChange = new EventEmitter<number>();\n\n positions: number[] = [];\n hoverRating = 0;\n Math = Math; // Make Math available in the template\n\n ngOnInit() {\n this.generatePositions();\n }\n\n ngOnChanges() {\n this.generatePositions();\n }\n\n generatePositions() {\n this.positions = Array.from({ length: this.maxRating() }, (_, i) => i + 1);\n }\n\n onHover(position: number) {\n if (!this.interactive()) return;\n this.hoverRating = position;\n }\n\n onRate(position: number) {\n if (!this.interactive()) return;\n if (this.rating === position && this.allowHalfStars()) {\n // If clicking the same star, toggle between whole and half star\n this.rating = position - 0.5;\n } else {\n this.rating = position;\n }\n this.ratingChange.emit(this.rating);\n }\n\n isHalfOrFullStar(position: number): boolean {\n return this.rating >= position - 0.5;\n }\n\n isHalfStar(position: number): boolean {\n return Math.ceil(this.rating) === position && this.isHalfValue(this.rating);\n }\n\n isHalfValue(value: number): boolean {\n return value % 1 !== 0;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n inject,\n linkedSignal,\n signal,\n} from '@angular/core';\n\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { Subject, fromEvent } from 'rxjs';\n\ninterface NavItem {\n id: string;\n text: string;\n level: number;\n children: NavItem[];\n}\n\n@Component({\n selector: 'sc-on-this-page',\n imports: [CommonModule],\n template: `\n <div\n class=\"sticky top-8 max-h-[calc(100vh-2rem)] overflow-y-auto p-4 border-l border-gray-200 w-64\"\n >\n <h4 class=\"text-base font-semibold mb-4 text-gray-800\">On This Page</h4>\n <nav>\n <ng-container\n *ngTemplateOutlet=\"navTemplate; context: { items: navItems(), level: 1 }\"\n ></ng-container>\n </nav>\n </div>\n\n <!-- Recursive template for nested navigation -->\n <ng-template #navTemplate let-items=\"items\" let-level=\"level\">\n <ul class=\"list-none p-0 m-0\">\n @for (item of items; track item) {\n <li class=\"text-sm\">\n <button\n [ngClass]=\"[\n item.id === activeItem()\n ? 'text-blue-600 font-medium border-l-2 border-blue-600'\n : 'text-gray-600 border-l-2 border-transparent',\n 'block py-1 transition-all duration-200 ease-in-out cursor-pointer hover:text-blue-600',\n getPaddingClass(level),\n ]\"\n (click)=\"scrollToSection(item.id)\"\n >\n {{ item.text }}\n </button>\n @if (item.children && item.children.length > 0) {\n <ng-container\n *ngTemplateOutlet=\"navTemplate; context: { items: item.children, level: level + 1 }\"\n ></ng-container>\n }\n </li>\n }\n </ul>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScOnThisPage implements OnInit, OnDestroy {\n private readonly el = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n private observer: IntersectionObserver | null = null;\n private readonly observedElements: Element[] = [];\n\n protected readonly navItems = signal<NavItem[]>([]);\n protected readonly activeItem = linkedSignal(() => {\n if (this.navItems().length > 0) {\n return this.navItems()[0].id;\n }\n\n return '';\n });\n\n private readonly destroy$ = new Subject<void>();\n private isObserving = false;\n\n ngOnInit(): void {\n this.initNavItems();\n this.initIntersectionObserver();\n this.setupScrollListener();\n }\n\n ngOnDestroy(): void {\n if (this.observer) {\n this.observer.disconnect();\n }\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initNavItems(): void {\n // Get all heading elements (h1, h2, h3, etc.) in the main content\n const headings = document.querySelectorAll(\n 'main h1, main h2, main h3, main h4, main h5, main h6',\n );\n\n // Root-level items array\n const rootItems: NavItem[] = [];\n\n // Stack to keep track of parent elements at different levels\n const stack: NavItem[][] = [rootItems];\n\n headings.forEach((heading) => {\n // Get the text content and ID of the heading\n const text = heading.textContent ?? '';\n let id = heading.getAttribute('id');\n\n // If no ID exists, create one based on the text\n if (!id) {\n id = text.toLowerCase().replace(/\\s+/g, '-');\n this.renderer.setAttribute(heading, 'id', id);\n }\n\n // Determine the level (h1 = 1, h2 = 2, etc.)\n const level = parseInt(heading.tagName.charAt(1));\n\n // Create a new nav item\n const newItem: NavItem = {\n id,\n text,\n level,\n children: [],\n };\n\n // Add to observation list\n this.observedElements.push(heading);\n\n // Ensure we have enough levels in our stack\n while (stack.length <= level) {\n stack.push([]);\n }\n\n // Add this item to the appropriate level in the stack\n stack[level].push(newItem);\n\n // If this isn't the top level, add it as a child to the last item of the previous level\n if (level > 1 && stack[level - 1].length > 0) {\n const parent = stack[level - 1][stack[level - 1].length - 1];\n parent.children.push(newItem);\n } else {\n // Otherwise, it's a top-level item\n rootItems.push(newItem);\n }\n });\n\n this.navItems.set(rootItems);\n }\n\n // Function to get padding based on level\n getPaddingClass(level: number): string {\n const padding = (level - 1) * 4; // 4 = 1rem in Tailwind (multiply by 0.25rem)\n\n if (padding === 0) {\n return 'pl-0';\n }\n\n if (padding === 4) {\n return 'pl-4';\n }\n\n if (padding === 8) {\n return 'pl-8';\n }\n\n if (padding === 12) {\n return 'pl-12';\n }\n\n if (padding === 16) {\n return 'pl-16';\n }\n\n if (padding === 20) {\n return 'pl-20';\n }\n\n return '';\n }\n\n // Function to scroll to a section when nav item is clicked\n scrollToSection(id: string): void {\n this.activeItem.set(id);\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n private initIntersectionObserver(): void {\n const options = {\n rootMargin: '-100px 0px -80% 0px',\n threshold: 0,\n };\n\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const id = entry.target.getAttribute('id');\n if (id) {\n this.activeItem.set(id);\n }\n }\n });\n }, options);\n }\n\n private setupScrollListener(): void {\n fromEvent(window, 'scroll')\n .pipe(\n debounceTime(50), // Debounce to avoid excessive calculations\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.startObserving();\n\n // Stop observing after a short period of inactivity\n setTimeout(() => {\n this.stopObserving();\n }, 200);\n });\n\n // Initial check (for cases where content is already in view without scrolling)\n setTimeout(() => {\n this.startObserving();\n setTimeout(() => this.stopObserving(), 200);\n }, 100);\n }\n\n private startObserving(): void {\n if (!this.isObserving && this.observer) {\n // Observe all heading elements\n this.observedElements.forEach((el) => {\n this.observer?.observe(el);\n });\n this.isObserving = true;\n }\n }\n\n private stopObserving(): void {\n if (this.isObserving && this.observer) {\n this.observer.disconnect();\n this.isObserving = false;\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { ScTab } from './tab';\n\nexport interface ScActiveTab {\n id: string;\n focus?: boolean;\n}\n\n@Injectable()\nexport class ScTabsService {\n readonly tabs = signal<readonly ScTab[]>([]);\n readonly activeTab = signal<ScActiveTab | null>(null);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScTabsService } from './tabs.service';\n\n@Component({\n selector: 'button[sc-tab]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'tab',\n '[attr.id]': \"'tab-' + value()\",\n '[class]': 'class()',\n '[attr.data-state]': \"isActive() ? 'active' : 'inactive'\",\n '[attr.aria-selected]': 'isActive()',\n '[attr.aria-controls]': \"'tab-panel-' + value()\",\n '[attr.tabindex]': 'isActive() ? 0 : -1',\n '(click)': 'selectTab()',\n '(keydown)': 'onKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTab {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow',\n this.classInput(),\n ),\n );\n\n readonly value = input.required<string>();\n\n private readonly scTabsService = inject(ScTabsService);\n\n protected readonly isActive = computed(() => this.value() === this.scTabsService.activeTab()?.id);\n\n private readonly host = inject(ElementRef);\n\n constructor() {\n effect(() => {\n const activeTab = this.scTabsService.activeTab();\n if (activeTab && activeTab.focus && activeTab.id === this.value()) {\n this.host.nativeElement.focus();\n }\n });\n }\n\n protected selectTab() {\n this.scTabsService.activeTab.set({ id: this.value() });\n }\n\n onKeydown(event: KeyboardEvent) {\n const currentIndex = this.scTabsService.tabs().findIndex((tab) => tab.value() === this.value());\n if (currentIndex === -1) return;\n\n let newIndex: number;\n\n switch (event.key) {\n case 'ArrowRight':\n newIndex = (currentIndex + 1) % this.scTabsService.tabs().length;\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[newIndex].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n case 'ArrowLeft':\n newIndex =\n (currentIndex - 1 + this.scTabsService.tabs().length) % this.scTabsService.tabs().length;\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[newIndex].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n case 'Home':\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[0].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n case 'End':\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[this.scTabsService.tabs().length - 1].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScTab } from './tab';\nimport { ScTabsService } from './tabs.service';\n\n@Component({\n selector: 'div[sc-tabs]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScTabsService],\n})\nexport class ScTabs {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n readonly value = input.required<string>();\n\n private readonly scTabsService = inject(ScTabsService);\n\n readonly tabs = contentChildren(ScTab, { descendants: true });\n\n constructor() {\n afterNextRender(() => {\n this.scTabsService.tabs.set(this.tabs());\n });\n\n effect(() => {\n const v = this.value();\n if (v) {\n this.scTabsService.activeTab.set({ id: v });\n } else {\n this.scTabsService.activeTab.set({ id: this.tabs()[0].value() });\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-tab-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTabList {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground',\n this.classInput(),\n ),\n );\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[scTabPanelContent]',\n})\nexport class ScTabPanelContent {\n readonly templateRef = inject<TemplateRef<any>>(TemplateRef);\n\n readonly tabId = input.required<string>({ alias: 'scTabPanelContent' });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n contentChildren,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScTabPanelContent } from './tab-panel-content';\nimport { ScTabsService } from './tabs.service';\n\n@Component({\n selector: 'div[sc-tab-panels]',\n imports: [NgTemplateOutlet],\n template: `\n @for (tabPanelContent of tabPanelContents(); track tabPanelContent.tabId()) {\n @if (tabPanelContent.tabId() === activeTabId()) {\n <div\n [attr.id]=\"'tab-panel-' + tabPanelContent.tabId()\"\n [attr.aria-labelledby]=\"'tab-' + tabPanelContent.tabId()\"\n tabindex=\"0\"\n role=\"tabpanel\"\n >\n <ng-container [ngTemplateOutlet]=\"tabPanelContent.templateRef\"></ng-container>\n </div>\n }\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTabPanels {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n this.classInput(),\n ),\n );\n\n private readonly scTabsService = inject(ScTabsService);\n\n protected readonly activeTabId = computed(() => this.scTabsService.activeTab()?.id);\n\n protected readonly tabPanelContents = contentChildren(ScTabPanelContent);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.ScPlainInput","i2","debounceTime"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"semantic-components-ui.mjs","sources":["../../../../libs/ui/src/lib/utils/settings.ts","../../../../libs/ui/src/lib/components/tooltip/tooltip-container.ts","../../../../libs/ui/src/lib/components/tooltip/tooltip.ts","../../../../libs/ui/src/lib/components/paginator/paginator.service.ts","../../../../libs/ui/src/lib/components/paginator/paginator.ts","../../../../libs/ui/src/lib/components/paginator/paginator-container.ts","../../../../libs/ui/src/lib/components/select/option.ts","../../../../libs/ui/src/lib/components/select/select.ts","../../../../libs/ui/src/lib/components/paginator/page-size-select.ts","../../../../libs/ui/src/lib/components/paginator/pagination.ts","../../../../libs/ui/src/lib/components/paginator/pagination-list.ts","../../../../libs/ui/src/lib/components/button/button-base.ts","../../../../libs/ui/src/lib/components/button/button.ts","../../../../libs/ui/src/lib/components/paginator/pagination-first.ts","../../../../libs/ui/src/lib/components/paginator/pagination-last.ts","../../../../libs/ui/src/lib/components/paginator/pagination-previous.ts","../../../../libs/ui/src/lib/components/paginator/pagination-next.ts","../../../../libs/ui/src/lib/components/paginator/pagination-link.ts","../../../../libs/ui/src/lib/components/paginator/pagination-ellipsis.ts","../../../../libs/ui/src/lib/components/card/card.ts","../../../../libs/ui/src/lib/components/card/card-header.ts","../../../../libs/ui/src/lib/components/card/card-title.ts","../../../../libs/ui/src/lib/components/card/card-description.ts","../../../../libs/ui/src/lib/components/card/card-content.ts","../../../../libs/ui/src/lib/components/card/card-footer.ts","../../../../libs/ui/src/lib/components/calendar/calendar.service.ts","../../../../libs/ui/src/lib/components/calendar/utils.ts","../../../../libs/ui/src/lib/components/calendar/calendar-header.ts","../../../../libs/ui/src/lib/components/calendar/calendar-utils.ts","../../../../libs/ui/src/lib/components/calendar/day-button.ts","../../../../libs/ui/src/lib/components/calendar/day-selector.ts","../../../../libs/ui/src/lib/components/calendar/month-selector.ts","../../../../libs/ui/src/lib/components/calendar/year-selector.ts","../../../../libs/ui/src/lib/components/calendar/calendar.ts","../../../../libs/ui/src/lib/components/range-calendar/days-selector.ts","../../../../libs/ui/src/lib/components/range-calendar/range-calendar.ts","../../../../libs/ui/src/lib/components/full-calendar/full-calendar.ts","../../../../libs/ui/src/lib/components/full-calendar/mobile-calendar.ts","../../../../libs/ui/src/lib/components/full-calendar/day-view.ts","../../../../libs/ui/src/lib/components/full-calendar/week-view.ts","../../../../libs/ui/src/lib/components/input/plain-input.ts","../../../../libs/ui/src/lib/components/input/input.ts","../../../../libs/ui/src/lib/components/input/auto-resize-input.ts","../../../../libs/ui/src/lib/components/date-picker/date-picker-toggle.ts","../../../../libs/ui/src/lib/components/date-picker/date-picker.ts","../../../../libs/ui/src/lib/components/date-range-picker/date-range-picker.ts","../../../../libs/ui/src/lib/components/nav/nav.ts","../../../../libs/ui/src/lib/components/nav/nav-list.ts","../../../../libs/ui/src/lib/components/nav/nav-button-base.ts","../../../../libs/ui/src/lib/components/nav/nav-link.ts","../../../../libs/ui/src/lib/components/nav/nav-item.ts","../../../../libs/ui/src/lib/components/nav/nav-button.ts","../../../../libs/ui/src/lib/components/nav/nav-item-dropdown.ts","../../../../libs/ui/src/lib/components/theme-toggler/theme.ts","../../../../libs/ui/src/lib/components/theme-toggler/theme-toggler.ts","../../../../libs/ui/src/lib/components/link/link.ts","../../../../libs/ui/src/lib/components/input-number/input-number.ts","../../../../libs/ui/src/lib/components/input-number/input-number-incrementer.ts","../../../../libs/ui/src/lib/components/input-number/input-number-decrementer.ts","../../../../libs/ui/src/lib/components/input-number-group/input-number-group.ts","../../../../libs/ui/src/lib/components/input-group/input-group.ts","../../../../libs/ui/src/lib/components/label/label.ts","../../../../libs/ui/src/lib/components/progress/progress.ts","../../../../libs/ui/src/lib/components/input-password/input-password.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp-slot.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp-group.ts","../../../../libs/ui/src/lib/components/input-otp/input-otp-separator.ts","../../../../libs/ui/src/lib/components/textarea/textarea.ts","../../../../libs/ui/src/lib/components/multi-select/multi-select.ts","../../../../libs/ui/src/lib/components/scroll-to-top/scroll-to-top-button2.ts","../../../../libs/ui/src/lib/components/scroll-to-top/scroll-to-top.ts","../../../../libs/ui/src/lib/components/scroll-to-top/scroll-to-top-button.ts","../../../../libs/ui/src/lib/components/circular-progress/circular-progress.ts","../../../../libs/ui/src/lib/components/sheet/sheet-container.ts","../../../../libs/ui/src/lib/components/sheet/sheet-manager.ts","../../../../libs/ui/src/lib/components/sheet/sheet.ts","../../../../libs/ui/src/lib/components/sheet/sheet-config.ts","../../../../libs/ui/src/lib/components/sheet/sheet-close.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-list.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-item.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-link.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-page.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-separator.ts","../../../../libs/ui/src/lib/components/breadcrumb/breadcrumb-ellipsis.ts","../../../../libs/ui/src/lib/components/toggle/toggle-base.ts","../../../../libs/ui/src/lib/components/toggle/toggle.ts","../../../../libs/ui/src/lib/components/toggle-group/toggle-group.ts","../../../../libs/ui/src/lib/components/toggle-group/toggle-item.ts","../../../../libs/ui/src/lib/components/dialog/dialog.ts","../../../../libs/ui/src/lib/components/dialog/dialog-header.ts","../../../../libs/ui/src/lib/components/dialog/dialog-title.ts","../../../../libs/ui/src/lib/components/dialog/dialog-description.ts","../../../../libs/ui/src/lib/components/dialog/dialog-footer.ts","../../../../libs/ui/src/lib/components/dialog/dialog-container.ts","../../../../libs/ui/src/lib/components/dialog/dialog-manager.ts","../../../../libs/ui/src/lib/components/dialog/dialog-close.ts","../../../../libs/ui/src/lib/components/dialog/dialog-content.ts","../../../../libs/ui/src/lib/components/alert/alert.ts","../../../../libs/ui/src/lib/components/alert/alert-title.ts","../../../../libs/ui/src/lib/components/alert/alert-description.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-description.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-footer.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-header.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-title.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog.ts","../../../../libs/ui/src/lib/components/alert-dialog/alert-dialog-manager.ts","../../../../libs/ui/src/lib/components/badge/badge.ts","../../../../libs/ui/src/lib/components/scroll-area/scroll-area.ts","../../../../libs/ui/src/lib/components/scroll-area/hover-scrollbar.component.ts","../../../../libs/ui/src/lib/components/scroll-area/scroll-area.component.ts","../../../../libs/ui/src/lib/components/scroll-area/horizontal-scroll-area.component.ts","../../../../libs/ui/src/lib/components/scroll-area/flexible-scroll-area.component.ts","../../../../libs/ui/src/lib/components/toast/toast-id.ts","../../../../libs/ui/src/lib/components/toast/toast.service.ts","../../../../libs/ui/src/lib/components/toast/toast-container.ts","../../../../libs/ui/src/lib/components/toast/toaster.ts","../../../../libs/ui/src/lib/components/toast/toast.ts","../../../../libs/ui/src/lib/components/toast/toast-content.ts","../../../../libs/ui/src/lib/components/toast/toast-title.ts","../../../../libs/ui/src/lib/components/toast/toast-description.ts","../../../../libs/ui/src/lib/components/toast/toast-action.ts","../../../../libs/ui/src/lib/components/toast/toast-close.ts","../../../../libs/ui/src/lib/components/slider/slider.ts","../../../../libs/ui/src/lib/components/checkbox/checkbox.ts","../../../../libs/ui/src/lib/components/checkbox-group/checkbox-group.ts","../../../../libs/ui/src/lib/components/checkbox-group/checkbox-item.ts","../../../../libs/ui/src/lib/components/accordion/accordion.ts","../../../../libs/ui/src/lib/components/accordion/accordion-item-state.ts","../../../../libs/ui/src/lib/components/accordion/accordion-item.ts","../../../../libs/ui/src/lib/components/accordion/accordion-header.ts","../../../../libs/ui/src/lib/components/accordion/accordion-toggle.ts","../../../../libs/ui/src/lib/components/accordion/accordion-content.ts","../../../../libs/ui/src/lib/components/switch/switch.ts","../../../../libs/ui/src/lib/components/radio-group/radio-group.ts","../../../../libs/ui/src/lib/components/radio-group/radio.ts","../../../../libs/ui/src/lib/components/radio-group/radio-item.ts","../../../../libs/ui/src/lib/components/hover-card/hover-card.ts","../../../../libs/ui/src/lib/components/hover-card/hover-card-trigger-for.ts","../../../../libs/ui/src/lib/components/avatar/avatar-state.ts","../../../../libs/ui/src/lib/components/avatar/avatar.ts","../../../../libs/ui/src/lib/components/avatar/avatar-image.ts","../../../../libs/ui/src/lib/components/avatar/avatar-fallback.ts","../../../../libs/ui/src/lib/components/aspect-ratio/aspect-ratio.ts","../../../../libs/ui/src/lib/components/skeleton/skeleton.ts","../../../../libs/ui/src/lib/components/table/table.ts","../../../../libs/ui/src/lib/components/table/table-container.ts","../../../../libs/ui/src/lib/components/table/table-header-group.ts","../../../../libs/ui/src/lib/components/table/table-body.ts","../../../../libs/ui/src/lib/components/table/table-footer.ts","../../../../libs/ui/src/lib/components/table/table-header.ts","../../../../libs/ui/src/lib/components/table/table-row.ts","../../../../libs/ui/src/lib/components/table/table-cell.ts","../../../../libs/ui/src/lib/components/table/table-caption.ts","../../../../libs/ui/src/lib/components/data-table/data-table.ts","../../../../libs/ui/src/lib/components/popover/popover.ts","../../../../libs/ui/src/lib/components/popover/popover-trigger-for.ts","../../../../libs/ui/src/lib/components/context-menu/context-menu-trigger-for.ts","../../../../libs/ui/src/lib/components/menu/menu.ts","../../../../libs/ui/src/lib/components/menu/menu-label.ts","../../../../libs/ui/src/lib/components/menu/menu-shortcut.ts","../../../../libs/ui/src/lib/components/menu/menu-separator.ts","../../../../libs/ui/src/lib/components/menu/menu-group.ts","../../../../libs/ui/src/lib/components/menu/menu-item.ts","../../../../libs/ui/src/lib/components/menu/menu-checkbox-item.ts","../../../../libs/ui/src/lib/components/menu/menu-radio-group.ts","../../../../libs/ui/src/lib/components/menu/menu-radio-item.ts","../../../../libs/ui/src/lib/components/menu/menu-trigger-for.ts","../../../../libs/ui/src/lib/components/menu/menu-checkbox-group.ts","../../../../libs/ui/src/lib/components/menu-bar/menu-bar.ts","../../../../libs/ui/src/lib/components/menu-bar/menu-bar-item.ts","../../../../libs/ui/src/lib/components/command/command.ts","../../../../libs/ui/src/lib/components/command/command-input.ts","../../../../libs/ui/src/lib/components/command/command-list.ts","../../../../libs/ui/src/lib/components/command/command-empty.ts","../../../../libs/ui/src/lib/components/command/command-group-heading.ts","../../../../libs/ui/src/lib/components/command/command-group.ts","../../../../libs/ui/src/lib/components/command/command-item.ts","../../../../libs/ui/src/lib/components/command/command-shortcut.ts","../../../../libs/ui/src/lib/components/command/command-separator.ts","../../../../libs/ui/src/lib/components/command/command-dialog.ts","../../../../libs/ui/src/lib/components/command/command-error.ts","../../../../libs/ui/src/lib/components/command/command-loading.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible-state.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible-toggle.ts","../../../../libs/ui/src/lib/components/collapsible/collapsible-content.ts","../../../../libs/ui/src/lib/components/sidebar/constants.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-state.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-toggler.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-mobile.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-content.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-provider.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group-label.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group-action.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-group-content.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-item.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-base.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-link.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-menu-button.ts","../../../../libs/ui/src/lib/components/autocomplete/autocomplete-item.ts","../../../../libs/ui/src/lib/components/autocomplete/autocomplete.ts","../../../../libs/ui/src/lib/components/time-picker/time-option.ts","../../../../libs/ui/src/lib/components/time-picker/time-picker-input.ts","../../../../libs/ui/src/lib/components/time-picker/time-picker.ts","../../../../libs/ui/src/lib/components/time-picker/time-picker2.ts","../../../../libs/ui/src/lib/components/separator/separator.ts","../../../../libs/ui/src/lib/components/file-upload/file-upload.ts","../../../../libs/ui/src/lib/components/page/page-title.ts","../../../../libs/ui/src/lib/components/page/page-subtitle.ts","../../../../libs/ui/src/lib/components/page/page-description.ts","../../../../libs/ui/src/lib/components/page/section.ts","../../../../libs/ui/src/lib/components/typography/heading.ts","../../../../libs/ui/src/lib/components/typography/article.ts","../../../../libs/ui/src/lib/components/typography/blockquote.ts","../../../../libs/ui/src/lib/components/cookie-consent/cookie-consent.ts","../../../../libs/ui/src/lib/components/comments/comment.ts","../../../../libs/ui/src/lib/components/comments/comments.ts","../../../../libs/ui/src/lib/components/tags/tags.ts","../../../../libs/ui/src/lib/components/combobox/combobox.ts","../../../../libs/ui/src/lib/components/clock-picker/clock-picker.ts","../../../../libs/ui/src/lib/components/clock-picker/clock-picker2.ts","../../../../libs/ui/src/lib/components/image-placeholder/image-placeholder.service.ts","../../../../libs/ui/src/lib/components/image-placeholder/image-placeholder.ts","../../../../libs/ui/src/lib/components/fieldset/description.ts","../../../../libs/ui/src/lib/components/fieldset/error-message.ts","../../../../libs/ui/src/lib/components/fieldset/field.ts","../../../../libs/ui/src/lib/components/fieldset/fieldset.ts","../../../../libs/ui/src/lib/components/fieldset/legend.ts","../../../../libs/ui/src/lib/components/touch-area/touch-area.ts","../../../../libs/ui/src/lib/components/scroll-spy/scroll-spy.ts","../../../../libs/ui/src/lib/components/color-picker/color-picker.ts","../../../../libs/ui/src/lib/components/toggle-switch/toggle-switch.ts","../../../../libs/ui/src/lib/components/range-slider/range-slider.ts","../../../../libs/ui/src/lib/components/dual-range-slider/dual-range-slider.ts","../../../../libs/ui/src/lib/components/table-of-contents/table-of-contents.ts","../../../../libs/ui/src/lib/components/stepper/stepper.ts","../../../../libs/ui/src/lib/components/stepper/step.ts","../../../../libs/ui/src/lib/components/rating/rating.ts","../../../../libs/ui/src/lib/components/on-this-page/on-this-page.ts","../../../../libs/ui/src/lib/components/tabs/tabs.service.ts","../../../../libs/ui/src/lib/components/tabs/tab.ts","../../../../libs/ui/src/lib/components/tabs/tabs.ts","../../../../libs/ui/src/lib/components/tabs/tab-list.ts","../../../../libs/ui/src/lib/components/tabs/tab-panel-content.ts","../../../../libs/ui/src/lib/components/tabs/tab-panels.ts","../../../../libs/ui/src/semantic-components-ui.ts"],"sourcesContent":["import { Injectable, LOCALE_ID, inject, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScSettings {\n clock = signal<'am-pm' | '24-hour'>('am-pm');\n\n dateFormatPattern = signal<string>('');\n\n private readonly localeId = inject(LOCALE_ID);\n\n constructor() {\n this.dateFormatPattern.set(this.getDateFormatPattern(this.localeId));\n }\n\n getDateFormatPattern(localeId: string) {\n const getPatternForPart = (part: Intl.DateTimeFormatPart) => {\n switch (part.type) {\n case 'day':\n return 'd'.repeat(part.value.length);\n case 'month':\n return 'M'.repeat(part.value.length);\n case 'year':\n return 'y'.repeat(part.value.length);\n case 'literal':\n return part.value;\n default:\n throw new Error('no default');\n }\n };\n\n return new Intl.DateTimeFormat(localeId)\n .formatToParts(new Date('2022-01-01'))\n .map(getPatternForPart)\n .join('')\n .toLowerCase();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-tooltip-container',\n imports: [],\n template: `\n {{ message() }}\n `,\n host: {\n role: 'tooltip',\n '[class]': 'class()',\n '[attr.data-position]': 'position()',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTooltipContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[position=below]:slide-in-from-top-2 data-[position=left]:slide-in-from-right-2 data-[position=right]:slide-in-from-left-2 data-[position=above]:slide-in-from-bottom-2',\n this.classInput(),\n ),\n );\n\n readonly message = input.required<string>();\n\n readonly position = input.required<'left' | 'right' | 'above' | 'below'>();\n\n readonly state = input.required<'open' | 'closed'>();\n}\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScTooltipContainer } from './tooltip-container';\n\n@Directive({\n selector: '[scTooltip]',\n host: {\n '(mouseover)': 'showTooltip()',\n '(focus)': 'showTooltip()',\n '(mouseleave)': 'hideTooltip()',\n '(blur)': 'hideTooltip()',\n },\n})\nexport class ScTooltip implements OnInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private overlayRef!: OverlayRef;\n private tooltipRef!: ComponentRef<ScTooltipContainer>;\n\n readonly message = input('', { alias: 'scTooltip' });\n readonly position = input<'left' | 'right' | 'above' | 'below'>('below');\n\n ngOnInit() {\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n protected showTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n protected hideTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\n this.tooltipRef.setInput('state', 'closed');\n this.overlayRef?.detach();\n }\n }\n\n private attachTooltip(): void {\n // Create tooltip portal\n const tooltipPortal = new ComponentPortal(ScTooltipContainer);\n\n // Attach tooltip portal to overlay\n this.tooltipRef = this.overlayRef.attach(tooltipPortal);\n\n // Pass content to tooltip component instance\n\n this.tooltipRef.setInput('message', this.message());\n this.tooltipRef.setInput('position', this.position());\n this.tooltipRef.setInput('state', 'open');\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getPositions());\n }\n\n getPositions(): ConnectedPosition[] {\n switch (this.position()) {\n case 'above': {\n return [\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -4,\n },\n ];\n }\n case 'below': {\n return [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 4,\n },\n ];\n }\n case 'left': {\n return [\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -4,\n },\n ];\n }\n case 'right': {\n return [\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 4,\n },\n ];\n }\n\n default: {\n throw new Error('Error in switch case');\n }\n }\n }\n}\n","import { Injectable, computed, signal } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { ButtonVariants } from '../button';\nimport { ScPageEvent } from './page-event';\n\n/** The default page size if there is no page size and there are no provided page size options. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n@Injectable()\nexport class PaginatorService {\n /** The one-based page index of the displayed list of items. Defaulted to 1. */\n readonly currentPage = signal<number>(1);\n\n /** The total number of items that are being paginated. */\n readonly totalSize = signal<number>(0);\n\n /** The set of provided page size options to display to the user. */\n readonly pageSizeOptions = signal<number[]>([5, DEFAULT_PAGE_SIZE, 25]);\n\n /** Number of items to display on a page. By default, set to 10. */\n readonly pageSize = signal<number>(DEFAULT_PAGE_SIZE);\n\n /** Event emitted when the paginator changes the page index. */\n readonly pageChanged = signal<ScPageEvent>({ page: 1, pageSize: DEFAULT_PAGE_SIZE });\n\n readonly pageSizeFormControl = new FormControl(this.pageSize());\n\n readonly numberOfPages = computed(() => Math.ceil(this.totalSize() / this.pageSize()));\n\n readonly firstItemPage = computed(() => {\n if (this.totalSize() === 0) {\n return 0;\n }\n return this.pageSize() * (this.currentPage() - 1) + 1;\n });\n\n readonly lastItemPage = computed(() => {\n const a = this.firstItemPage() + this.pageSize() - 1;\n\n if (a < this.totalSize()) {\n return a;\n }\n\n return this.totalSize();\n });\n\n readonly isNextPageDisabled = computed(() => {\n return this.currentPage() === this.numberOfPages();\n });\n\n readonly isPrevPageDisabled = computed(() => {\n return this.currentPage() === 1;\n });\n\n readonly paginationLinkVariant = signal<ButtonVariants['variant']>('outline');\n\n readonly paginationActiveLinkVariant = signal<ButtonVariants['variant']>('secondary');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants } from '../button';\nimport { ScPageEvent } from './page-event';\nimport { DEFAULT_PAGE_SIZE, PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'sc-paginator',\n exportAs: 'scPaginator',\n imports: [ReactiveFormsModule],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [PaginatorService],\n})\nexport class ScPaginator implements OnInit {\n protected readonly paginatorService = inject(PaginatorService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block', this.classInput()));\n\n /** The one-based page index of the displayed list of items. Defaulted to 1. */\n readonly currentPage = input<number>(1);\n\n /** The total number of items that are being paginated. */\n readonly totalSize = input.required<number>();\n\n /** The set of provided page size options to display to the user. */\n readonly pageSizeOptions = input<number[]>([5, DEFAULT_PAGE_SIZE, 25]);\n\n /** Number of items to display on a page. By default, set to 10. */\n readonly pageSize = input<number>(DEFAULT_PAGE_SIZE);\n\n readonly paginationLinkVariant = input<ButtonVariants['variant']>('outline');\n readonly paginationActiveLinkVariant = input<ButtonVariants['variant']>('secondary');\n\n /** Event emitted when the paginator changes the page index. */\n readonly pageChanged = output<ScPageEvent>();\n\n constructor() {\n effect(() => {\n this.paginatorService.currentPage.set(this.currentPage());\n });\n\n effect(() => {\n this.paginatorService.totalSize.set(this.totalSize());\n });\n\n effect(() => {\n this.paginatorService.pageSizeOptions.set(this.pageSizeOptions());\n });\n\n effect(() => {\n this.paginatorService.pageSize.set(this.pageSize());\n });\n\n effect(() => {\n this.paginatorService.paginationLinkVariant.set(this.paginationLinkVariant());\n });\n\n effect(() => {\n this.paginatorService.paginationActiveLinkVariant.set(this.paginationActiveLinkVariant());\n });\n\n effect(() => {\n this.paginatorService.pageSizeFormControl.setValue(this.pageSize());\n });\n\n effect(() => {\n this.pageChanged.emit(this.paginatorService.pageChanged());\n });\n }\n\n ngOnInit() {\n this.paginatorService.pageSizeFormControl.valueChanges.subscribe((value) => {\n if (value) {\n this.pageChanged.emit({ page: 1, pageSize: value });\n }\n });\n }\n\n readonly firstItemPage = computed(() => this.paginatorService.firstItemPage());\n\n readonly lastItemPage = computed(() => this.paginatorService.lastItemPage());\n\n private range(start: number, end: number) {\n return Array.from({ length: end - start + 1 }, (_, i) => i + start);\n }\n\n //https://gist.github.com/kottenator/9d936eb3e4e3c3e02598#gistcomment-3238804\n pages = computed<(number | '...')[]>(() => {\n const totalPages = this.paginatorService.numberOfPages();\n\n if (totalPages < 7) {\n return this.range(1, totalPages);\n }\n\n const currentPage = this.paginatorService.currentPage();\n\n const leftSiblingIndex = Math.max(currentPage - 1, 1);\n const rightSiblingIndex = Math.min(currentPage + 1, totalPages);\n\n const shouldShowLeftEllipsis = leftSiblingIndex > 2;\n const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 2;\n\n const firstPageIndex = 1;\n const lastPageIndex = totalPages;\n\n if (!shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n const leftItemCount = 3;\n const leftRange = this.range(1, leftItemCount + 2);\n\n return [...leftRange, '...', totalPages];\n }\n\n if (shouldShowLeftEllipsis && !shouldShowRightEllipsis) {\n const rightItemCount = 3;\n const rightRange = this.range(totalPages - rightItemCount - 1, totalPages);\n\n return [firstPageIndex, '...', ...rightRange];\n }\n\n if (shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n const middleRange = this.range(leftSiblingIndex, rightSiblingIndex);\n\n return [firstPageIndex, '...', ...middleRange, '...', lastPageIndex];\n }\n\n return this.range(1, totalPages);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-paginator-container',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginatorContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n}\n","import { Highlightable, _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScSelect } from './select';\n\n@Component({\n selector: 'sc-option',\n imports: [SiCheckIcon],\n template: `\n @if (isSelected()) {\n <svg class=\"absolute left-2 flex size-4 items-center justify-center\" si-check-icon></svg>\n }\n\n <span #label>\n <ng-content />\n </span>\n `,\n host: {\n '[id]': 'id()',\n '[class]': 'class()',\n '[attr.data-disabled]': '_disabled()',\n '[attr.data-active]': 'active()',\n '(mouseover)': 'setActiveStyles()',\n '(mouseleave)': 'setInactiveStyles()',\n '(click)': 'toggle()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScOption implements Highlightable {\n readonly id = signal<string>(inject(_IdGenerator).getId('sc-option-'));\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[active=true]:bg-accent data-[active=true]:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this.classInput(),\n ),\n );\n\n private readonly scSelect = inject(ScSelect);\n\n protected isSelected = computed(() => this.value() === this.scSelect.value());\n\n readonly value = input.required<unknown>();\n\n private readonly labelEl = viewChild.required<ElementRef<HTMLSpanElement>>('label');\n\n readonly label = computed(() => {\n return this.labelEl().nativeElement.textContent?.trim() ?? '';\n });\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n get nativeElement() {\n return this.element.nativeElement;\n }\n\n readonly active = signal(false);\n\n setActiveStyles(): void {\n this.active.set(true);\n }\n\n setInactiveStyles(): void {\n this.active.set(false);\n }\n\n disabled: boolean | undefined;\n\n getLabel(): string {\n return this.label();\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n protected readonly _disabled = computed(\n () => this.disabledInput() || this.disabled || this.scSelect.disabled(),\n );\n\n protected toggle() {\n if (this.isSelected()) {\n this.deselect();\n } else {\n this.select();\n }\n }\n\n private select() {\n if (this._disabled()) {\n return;\n }\n\n this.scSelect.setValue(this.value());\n }\n\n private deselect() {\n if (this._disabled()) {\n return;\n }\n\n this.scSelect.setValue(null);\n }\n}\n","import { ActiveDescendantKeyManager, _IdGenerator } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Injector,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SiChevronDownIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScOption } from './option';\n\n@Component({\n selector: 'sc-select',\n imports: [SiChevronDownIcon],\n template: `\n <button\n class=\"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\"\n #scSelectTrigger\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"isExpanded()\"\n [attr.aria-controls]=\"panelId\"\n (click)=\"open()\"\n type=\"button\"\n role=\"combobox\"\n >\n {{ label() }}\n <svg class=\"size-4 opacity-50\" si-chevron-down-icon></svg>\n </button>\n\n <ng-template #panelTemplate>\n <ul\n class=\"relative max-h-96 w-full overflow-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n [id]=\"panelId\"\n role=\"listbox\"\n >\n <ng-content />\n </ul>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScSelect),\n multi: true,\n },\n ],\n})\nexport class ScSelect implements ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly overlay = inject(Overlay);\n private readonly directionality = inject(Directionality, { optional: true });\n private readonly viewContainerRef = inject(ViewContainerRef);\n private portal: TemplatePortal<unknown> | null = null;\n readonly scSelectTrigger = viewChild.required<ElementRef<HTMLButtonElement>>('scSelectTrigger');\n\n protected readonly panelId: string = inject(_IdGenerator).getId('sc-select-panel-');\n readonly panelTemplate = viewChild.required<TemplateRef<unknown>>('panelTemplate');\n\n readonly placeholder = input<string>('');\n\n readonly isOpen = signal<boolean>(false);\n\n readonly options = contentChildren(ScOption);\n\n private readonly activeDescendant = signal<string | null>(null);\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n constructor() {\n effect(() => {\n //TODO scroll into option when the panel is open\n if (this.isOpen()) {\n this.syncSelectedState(this.value(), this.options(), this.options()[0]);\n }\n });\n\n this.keyManager.change.subscribe(() =>\n this.activeDescendant.set(this.keyManager.activeItem?.id() ?? null),\n );\n }\n\n /**\n * Scrolls an option into view.\n * @param option Option to be scrolled into view.\n * @param position Position to which to align the option relative to the scrollable container.\n */\n scrollOptionIntoView(option: ScOption, position: ScrollLogicalPosition) {\n option.nativeElement.scrollIntoView({ block: position, inline: position });\n }\n\n private readonly injector = inject(Injector);\n private readonly keyManager = new ActiveDescendantKeyManager(this.options, this.injector)\n .withHomeAndEnd(true)\n .withPageUpDown(true)\n .withVerticalOrientation(true);\n\n readonly value = model<unknown>(undefined);\n\n writeValue(value: unknown): void {\n this.value.set(value);\n }\n\n setValue(value: unknown) {\n this.value.set(value);\n this.onChange(value);\n this.changeDetectorRef.markForCheck();\n this.close();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: unknown) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n label = computed(() => {\n if (this.value()) {\n return this.options()\n .find((element) => element.value() === this.value())\n ?.label();\n }\n\n return this.placeholder();\n });\n\n isExpanded = computed(() => {\n return this.isOpen();\n });\n\n private _overlayRef: OverlayRef | null = null;\n\n private _getOverlayRef(): OverlayRef {\n if (this._overlayRef) {\n return this._overlayRef;\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.scSelectTrigger())\n .withFlexibleDimensions(false)\n .withPush(false)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ]);\n\n this._overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n direction: this.directionality || 'ltr',\n hasBackdrop: false,\n });\n\n this._overlayRef.keydownEvents().subscribe((event) => {\n this._handleKeydown(event);\n });\n\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this.scSelectTrigger().nativeElement;\n\n if (target && target !== origin && !origin.contains(target)) {\n this.close();\n }\n });\n\n return this._overlayRef;\n }\n\n open(): void {\n if (this.isOpen()) {\n return;\n }\n\n this.isOpen.set(true);\n\n const overlayRef = this._getOverlayRef();\n\n overlayRef.updateSize({ width: this.scSelectTrigger().nativeElement.offsetWidth });\n this.portal ??= new TemplatePortal(this.panelTemplate(), this.viewContainerRef);\n overlayRef.attach(this.portal);\n }\n\n close(): void {\n if (this.isOpen()) {\n this.focusOnTrigger();\n this.isOpen.set(false);\n this._overlayRef?.detach();\n }\n }\n\n focusOnTrigger() {\n this.scSelectTrigger().nativeElement.focus();\n }\n\n /**\n * Synchronizes the internal state of the component based on a specific selected date.\n * @param value Currently selected date.\n * @param options Options rendered out in the timepicker.\n * @param fallback Option to set as active if no option is selected.\n */\n private syncSelectedState(\n value: unknown,\n options: readonly ScOption[],\n fallback: ScOption | null,\n ): void {\n let hasSelected = false;\n\n for (const option of options) {\n if (value && option.value() === value) {\n this.scrollOptionIntoView(option, 'center');\n untracked(() => this.keyManager.setActiveItem(option));\n hasSelected = true;\n }\n }\n\n // If no option was selected, we need to reset the key manager since\n // it might be holding onto an option that no longer exists.\n if (!hasSelected) {\n if (fallback) {\n untracked(() => this.keyManager.setActiveItem(fallback));\n this.scrollOptionIntoView(fallback, 'center');\n } else {\n untracked(() => this.keyManager.setActiveItem(-1));\n }\n }\n }\n\n /** Handles keyboard events while the overlay is open. */\n private _handleKeydown(event: KeyboardEvent): void {\n const key = event.key;\n\n if (key === 'Tab') {\n this.close();\n } else if (key === 'Escape' && !hasModifierKey(event)) {\n event.preventDefault();\n this.close();\n } else if (key === 'Enter') {\n event.preventDefault();\n\n if (this.keyManager.activeItem) {\n this.setValue(this.keyManager.activeItem.value() ?? '');\n } else {\n this.close();\n }\n } else {\n const previousActive = this.keyManager.activeItem;\n this.keyManager.onKeydown(event);\n const currentActive = this.keyManager.activeItem;\n\n if (currentActive && currentActive !== previousActive) {\n this.scrollOptionIntoView(currentActive, 'nearest');\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { ScOption, ScSelect } from '../select';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'div[sc-page-size-select]',\n imports: [ScSelect, ScOption, ReactiveFormsModule],\n template: `\n <sc-select [formControl]=\"paginatorService.pageSizeFormControl\">\n @for (pageSizeOption of paginatorService.pageSizeOptions(); track $index) {\n <sc-option [value]=\"pageSizeOption\">{{ pageSizeOption }}</sc-option>\n }\n </sc-select>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageSizeSelect {\n protected readonly paginatorService = inject(PaginatorService);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'nav[sc-pagination]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'navigation',\n 'aria-label': 'pagination',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPagination {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('mx-auto flex w-full justify-center', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ul[sc-pagination-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationList {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-row items-center gap-1', this.classInput()),\n );\n}\n","import { Directive, booleanAttribute, computed, input, linkedSignal } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 pointer-fine:cursor-pointer',\n {\n variants: {\n variant: {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'size-10',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n },\n },\n);\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n\n@Directive({\n host: {\n '[class]': 'class()',\n '[type]': 'type()',\n '[attr.data-disabled]': 'disabled()',\n },\n})\nexport class ScButtonBase {\n readonly variantInput = input<ButtonVariants['variant']>('primary', {\n alias: 'variant',\n });\n protected readonly variant = linkedSignal<ButtonVariants['variant']>(() => this.variantInput());\n\n readonly sizeInput = input<ButtonVariants['size']>('default', {\n alias: 'size',\n });\n protected readonly size = linkedSignal<ButtonVariants['size']>(() => this.sizeInput());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(buttonVariants({ variant: this.variant(), size: this.size() }), this.classInput()),\n );\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n protected readonly disabled = linkedSignal<boolean>(() => this.disabledInput());\n\n readonly type = input<'submit' | 'reset' | 'button'>('button');\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { ScButtonBase } from './button-base';\n\n@Component({\n selector: 'button[sc-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'button',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScButton extends ScButtonBase {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-first]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to first page',\n '(click)': 'firstPage()',\n '(keydown.enter)': 'firstPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationFirst extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isPrevPageDisabled(),\n );\n\n protected readonly paginatorService = inject(PaginatorService);\n\n protected firstPage() {\n this.paginatorService.pageChanged.set({ page: 1, pageSize: this.paginatorService.pageSize() });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-last]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to last page',\n '(click)': 'lastPage()',\n '(keydown.enter)': 'lastPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationLast extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isNextPageDisabled(),\n );\n\n private readonly paginatorService = inject(PaginatorService);\n\n protected lastPage() {\n this.paginatorService.pageChanged.set({\n page: this.paginatorService.numberOfPages(),\n pageSize: this.paginatorService.pageSize(),\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-previous]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to previous page',\n '(click)': 'prevPage()',\n '(keydown.enter)': 'prevPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationPrevious extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.size() === 'default' && 'gap-1 pl-2.5',\n this.classInput(),\n ),\n );\n\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isPrevPageDisabled(),\n );\n\n protected readonly paginatorService = inject(PaginatorService);\n\n protected prevPage() {\n if (!this.paginatorService.isPrevPageDisabled()) {\n this.paginatorService.pageChanged.set({\n page: this.paginatorService.currentPage() - 1,\n pageSize: this.paginatorService.pageSize(),\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-next]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-label': 'Go to next page',\n '(click)': 'nextPage()',\n '(keydown.enter)': 'nextPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationNext extends ScButtonBase {\n override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.paginatorService.paginationLinkVariant(),\n );\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.size() === 'default' && 'gap-1 pr-2.5',\n this.classInput(),\n ),\n );\n\n override readonly disabled = linkedSignal<boolean>(() =>\n this.paginatorService.isNextPageDisabled(),\n );\n\n private readonly paginatorService = inject(PaginatorService);\n\n protected nextPage() {\n if (!this.paginatorService.isNextPageDisabled()) {\n this.paginatorService.pageChanged.set({\n page: this.paginatorService.currentPage() + 1,\n pageSize: this.paginatorService.pageSize(),\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\nimport { PaginatorService } from './paginator.service';\n\n@Component({\n selector: 'a[sc-pagination-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.aria-current]': \"isActive() ? 'page' : undefined\",\n '(click)': 'selectPage()',\n '(keydown.enter)': 'selectPage()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationLink extends ScButtonBase {\n protected readonly paginatorService = inject(PaginatorService);\n\n readonly page = input.required<number | '...'>();\n\n protected readonly isActive = computed(() => {\n return this.page() === this.paginatorService.currentPage();\n });\n\n protected override readonly variant = linkedSignal<ButtonVariants['variant']>(() =>\n this.isActive()\n ? this.paginatorService.paginationActiveLinkVariant()\n : this.paginatorService.paginationLinkVariant(),\n );\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n this.isActive() &&\n this.paginatorService.paginationActiveLinkVariant() === 'secondary' &&\n 'border border-input',\n this.classInput(),\n ),\n );\n\n protected override readonly size = linkedSignal<ButtonVariants['size']>(() => 'icon');\n\n protected selectPage() {\n const page = this.page();\n if (page !== '...' && page !== this.paginatorService.currentPage()) {\n this.paginatorService.pageChanged.set({\n page: page,\n pageSize: this.paginatorService.pageSize(),\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-pagination-ellipsis]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'aria-hidden': 'true',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginationEllipsis {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex size-9 items-center justify-center', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCard {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('rounded-lg border bg-card text-card-foreground shadow-sm', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex flex-col space-y-1.5 p-6', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-card-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('text-2xl font-semibold leading-none tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-card-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('p-6 pt-0', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-card-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCardFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center p-6 pt-0', this.classInput()));\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class CalendarService {\n readonly firstYear = signal(0);\n\n readonly lastYear = signal(0);\n}\n","import { Temporal } from '@js-temporal/polyfill';\n\nexport function getFirstDayOfWeek(localeId: string): number {\n const locale = new Intl.Locale(localeId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (locale as any).getWeekInfo().firstDay;\n}\n\n// Format date using Intl\nexport function formatDate(locale: string, date: Temporal.PlainDate): string {\n // Convert Temporal date to JavaScript Date for Intl compatibility\n const jsDate = new Date(date.year, date.month - 1, date.day);\n\n return new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }).format(jsDate);\n}\n\n// Get day names based on locale\nexport function getLocalizedDayNames(\n locale: string,\n format: 'long' | 'short' | 'narrow' = 'short',\n): string[] {\n const days = [];\n const firstDay = getFirstDayOfWeek(locale);\n\n // Create a date for a week\n const date = new Date(2023, 0, 1); // Jan 1, 2023 is a Sunday\n const formatter = new Intl.DateTimeFormat(locale, { weekday: format });\n\n // Adjust to get days in correct order for locale\n for (let i = 0; i < 7; i++) {\n const dayIndex = (firstDay + i) % 7;\n date.setDate(1 + dayIndex); // Jan 1 is a Sunday in our reference date\n days.push(formatter.format(date));\n }\n\n return days;\n}\n\n// Get month names based on locale\nexport function getLocalizedMonthNames(locale: string): string[] {\n const months = [];\n const formatter = new Intl.DateTimeFormat(locale, { month: 'long' });\n\n for (let month = 0; month < 12; month++) {\n const date = new Date(2023, month, 1);\n months.push(formatter.format(date));\n }\n\n return months;\n}\n\n// Get current month name based on locale\nexport function getMonthName(locale: string, yearMonth: Temporal.PlainYearMonth): string {\n const jsDate = new Date(yearMonth.year, yearMonth.month - 1, 1);\n\n return new Intl.DateTimeFormat(locale, { month: 'long' }).format(jsDate);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\nimport {\n SiChevronDownIcon,\n SiChevronLeftIcon,\n SiChevronRightIcon,\n SiMinusIcon,\n} from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\nimport { CalendarService } from './calendar.service';\nimport { View } from './types';\nimport { getMonthName } from './utils';\n\n@Component({\n selector: 'sc-calendar-header',\n imports: [SiChevronRightIcon, SiChevronLeftIcon, ScButton, SiChevronDownIcon, SiMinusIcon],\n template: `\n @if (view() !== 'months') {\n <button\n (click)=\"monthYearChange.emit(-1)\"\n aria-label=\"Previous month\"\n sc-button\n variant=\"outline\"\n type=\"button\"\n size=\"icon\"\n >\n <svg si-chevron-left-icon></svg>\n </button>\n }\n\n @if (view() === 'days') {\n <button (click)=\"viewToggled.emit()\" sc-button variant=\"ghost\" type=\"button\">\n {{ monthName() }} {{ currentMonth().year }}\n <svg si-chevron-down-icon></svg>\n </button>\n }\n\n @if (view() === 'months') {\n <div>{{ monthName() }} {{ currentMonth().year }}</div>\n }\n\n @if (view() === 'years') {\n <div class=\"flex items-center\">\n {{ firstYear() }}\n <svg class=\"size-4\" si-minus-icon></svg>\n {{ lastYear() }}\n </div>\n }\n\n @if (view() !== 'months') {\n <button\n (click)=\"monthYearChange.emit(1)\"\n aria-label=\"Next month\"\n sc-button\n variant=\"outline\"\n type=\"button\"\n size=\"icon\"\n type=\"button\"\n >\n <svg si-chevron-right-icon></svg>\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCalendarHeader {\n private readonly calendarService = inject(CalendarService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex',\n this.view() === 'months' && 'justify-center',\n this.view() !== 'months' && 'justify-between',\n this.classInput(),\n ),\n );\n\n readonly currentMonth = input.required<Temporal.PlainYearMonth>();\n\n readonly view = input.required<View>();\n\n protected readonly firstYear = computed(() => this.calendarService.firstYear());\n\n protected readonly lastYear = computed(() => this.calendarService.lastYear());\n\n readonly monthYearChange = output<number>();\n readonly viewToggled = output<void>();\n\n private readonly localeId = inject(LOCALE_ID);\n\n protected readonly monthName = computed(() => getMonthName(this.localeId, this.currentMonth()));\n}\n","import { Signal, computed } from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\n\nimport { CalendarDay } from './types';\nimport { getFirstDayOfWeek } from './utils';\n\nexport function isToday(date: Temporal.PlainDate): boolean {\n //TODO remove today from here\n const today = Temporal.Now.plainDateISO();\n return date.equals(today);\n}\n\nexport function isDateDisabled(\n minDate: Signal<Temporal.PlainDate>,\n maxDate: Signal<Temporal.PlainDate>,\n date: Temporal.PlainDate,\n): boolean {\n if (minDate() && Temporal.PlainDate.compare(date, minDate()) < 0) {\n return true;\n }\n if (maxDate() && Temporal.PlainDate.compare(date, maxDate()) > 0) {\n return true;\n }\n return false;\n}\n\n// minDate: Signal<Temporal.PlainDate>,\n// maxDate: Signal<Temporal.PlainDate>,\n\n//Remove minDate and maxDate\n// Generate calendar days for the current month\nexport function generateCalendarDays(\n localeId: string,\n currentMonth: Signal<Temporal.PlainYearMonth>,\n) {\n return computed(() => {\n const days: CalendarDay[] = [];\n\n // Get locale-specific week info\n const firstDayOfWeek = getFirstDayOfWeek(localeId);\n\n const firstDayOfMonth = currentMonth().toPlainDate({ day: 1 });\n\n // Calculate the day of week adjusted for locale\n // Convert from 1-7 (Monday-Sunday) to 0-6 for easier array handling\n const firstOfMonthDayOfWeek = firstDayOfMonth.dayOfWeek % 7;\n const adjustedFirstDay = (firstOfMonthDayOfWeek - firstDayOfWeek + 7) % 7;\n\n // Add days from previous month to fill the first week\n const prevMonth = currentMonth().subtract({ months: 1 });\n const daysInPrevMonth = prevMonth.daysInMonth;\n\n for (let i = 0; i < adjustedFirstDay; i++) {\n const day = daysInPrevMonth - adjustedFirstDay + i + 1;\n const date = prevMonth.toPlainDate({ day });\n days.push({\n date,\n dayOfMonth: day,\n isInCurrentMonth: false,\n // isToday: isToday(date),\n // isDisabled: isDateDisabled(minDate, maxDate, date),\n });\n }\n\n // Add days of current month\n for (let day = 1; day <= currentMonth().daysInMonth; day++) {\n const date = currentMonth().toPlainDate({ day });\n days.push({\n date,\n dayOfMonth: day,\n isInCurrentMonth: true,\n // isToday: isToday(date),\n // isDisabled: isDateDisabled(minDate, maxDate, date),\n });\n }\n\n const a = days.length % 7;\n\n if (a > 0) {\n // Add days from next month to complete the grid\n const daysNeeded = 7 - a;\n const nextMonth = currentMonth().add({ months: 1 });\n\n for (let day = 1; day <= daysNeeded; day++) {\n const date = nextMonth.toPlainDate({ day });\n days.push({\n date,\n dayOfMonth: day,\n isInCurrentMonth: false,\n // isToday: isToday(date),\n // isDisabled: isDateDisabled(minDate, maxDate, date),\n });\n }\n }\n\n return days;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScButtonBase } from '../button';\n\n@Component({\n selector: 'button[sc-day-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDayButton extends ScButtonBase {\n private readonly host = inject(ElementRef);\n\n readonly hasFocus = input.required<boolean>();\n\n constructor() {\n super();\n effect(() => {\n if (this.hasFocus()) {\n this.host.nativeElement.focus();\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { isToday } from './calendar-utils';\nimport { ScDayButton } from './day-button';\nimport { CalendarDay, ScActiveDate } from './types';\n\n@Component({\n selector: 'sc-day-selector',\n imports: [ScDayButton],\n template: `\n @for (weekday of weekdays(); track weekday) {\n <abbr class=\"size-10 text-center text-muted-foreground\">\n {{ weekday }}\n </abbr>\n }\n\n @for (day of calendarDays(); track day.date) {\n <button\n [variant]=\"getVariant(day)\"\n [hasFocus]=\"hasFocus(day.date)\"\n [tabindex]=\"isActive(day.date) ? 0 : -1\"\n (click)=\"selectDay(day)\"\n sc-day-button\n size=\"icon\"\n >\n {{ day.dayOfMonth }}\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n '(keydown)': 'handleKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDaySelector {\n readonly calendarDays = input.required<CalendarDay[]>();\n readonly weekdays = input.required<string[]>();\n\n readonly selectedDate = input<Temporal.PlainDate>();\n readonly dateSelected = output<Temporal.PlainDate>();\n\n protected readonly activeDate = linkedSignal<ScActiveDate>(() => {\n return { value: this.date(), hasFocus: true };\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid grid-cols-7 gap-px', this.classInput()));\n\n readonly date = input.required<Temporal.PlainDate>();\n readonly currentMonth = input.required<Temporal.PlainYearMonth>();\n readonly firstDayOfMonth = input.required<Temporal.PlainDate>();\n readonly lastDayOfMonth = input.required<Temporal.PlainDate>();\n\n readonly prevMonth = output<void>();\n readonly nextMonth = output<void>();\n\n protected getVariant(day: CalendarDay) {\n if (this.isSelected(day.date)) {\n return 'primary';\n }\n\n if (this.isActive(day.date)) {\n return 'secondary';\n }\n\n if (isToday(day.date)) {\n return 'outline';\n }\n\n return 'ghost';\n }\n\n protected selectDay(day: CalendarDay) {\n this.dateSelected.emit(day.date);\n }\n\n private isSelected(date: Temporal.PlainDate): boolean {\n return this.selectedDate() ? date.equals(this.selectedDate()!) : false;\n }\n\n protected isActive(date: Temporal.PlainDate): boolean {\n return date.equals(this.activeDate().value);\n }\n\n protected hasFocus(date: Temporal.PlainDate): boolean {\n return this.isActive(date) && this.activeDate().hasFocus;\n }\n\n handleKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowLeft':\n this.moveFocus(-1);\n event.preventDefault();\n break;\n case 'ArrowRight':\n this.moveFocus(1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.moveFocus(-7);\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.moveFocus(7);\n event.preventDefault();\n break;\n case 'Enter':\n case ' ':\n if (\n Temporal.PlainDate.compare(this.activeDate().value, this.calendarDays()[0].date) >= 0 &&\n Temporal.PlainDate.compare(\n this.activeDate().value,\n this.calendarDays()[this.calendarDays().length - 1].date,\n ) <= 0\n ) {\n this.dateSelected.emit(this.activeDate().value);\n event.preventDefault();\n }\n break;\n case 'Home':\n // Move to first day of the month\n\n this.activeDate.set({ value: this.firstDayOfMonth(), hasFocus: true });\n\n event.preventDefault();\n break;\n\n case 'End':\n // Move to last day of the month\n this.activeDate.set({ value: this.lastDayOfMonth(), hasFocus: true });\n event.preventDefault();\n break;\n case 'PageUp':\n // Previous month\n this.prevMonth.emit();\n\n //TOOO maybe calcute the date instead of using firstDayOfMonth\n this.activeDate.set({\n value: this.firstDayOfMonth(),\n hasFocus: true,\n });\n\n event.preventDefault();\n break;\n case 'PageDown':\n // Next month\n\n this.nextMonth.emit();\n\n //TOOO maybe calcute the date instead of using firstDayOfMonth\n this.activeDate.set({\n value: this.firstDayOfMonth(),\n hasFocus: true,\n });\n\n event.preventDefault();\n break;\n }\n }\n\n // Move focus in the calendar grid with support for month navigation\n private moveFocus(delta: number): void {\n let newDate;\n\n if (Math.sign(delta) === 1) {\n newDate = this.activeDate().value.add({ days: delta });\n }\n\n if (Math.sign(delta) === -1) {\n newDate = this.activeDate().value.subtract({ days: Math.abs(delta) });\n }\n\n if (!newDate) {\n return;\n }\n\n if (Temporal.PlainDate.compare(newDate, this.calendarDays()[0].date) < 0) {\n this.prevMonth.emit();\n }\n\n if (\n Temporal.PlainDate.compare(\n newDate,\n this.calendarDays()[this.calendarDays().length - 1].date,\n ) > 0\n ) {\n this.nextMonth.emit();\n }\n\n this.activeDate.set({ value: newDate, hasFocus: true });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButton } from '../button';\nimport { getLocalizedMonthNames } from './utils';\n\n@Component({\n selector: 'sc-month-selector',\n imports: [ScButton],\n template: `\n @for (month of months; track $index; let i = $index) {\n <button\n [variant]=\"getVariant(i)\"\n (click)=\"selectMonth(i); $event.stopPropagation()\"\n sc-button\n >\n {{ month }}\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMonthSelector {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid grid-cols-3 gap-1 w-full', this.classInput()));\n\n readonly currentMonth = input.required<Temporal.PlainYearMonth>();\n\n protected months: string[] = [];\n\n private readonly localeId = inject(LOCALE_ID);\n\n constructor() {\n this.months = getLocalizedMonthNames(this.localeId);\n }\n\n readonly monthSelected = output<Temporal.PlainYearMonth>();\n\n protected selectMonth(monthIndex: number): void {\n this.monthSelected.emit(\n Temporal.PlainYearMonth.from({ year: this.currentMonth().year, month: monthIndex + 1 }),\n );\n }\n\n protected getVariant(i: number) {\n if (i === this.currentMonth().month - 1) {\n return 'primary';\n }\n\n // if (this.isFocused(day.date)) {\n // return 'secondary';\n // }\n\n // if (isToday(day.date)) {\n // return 'outline';\n // }\n\n return 'ghost';\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButton } from '../button';\nimport { CalendarService } from './calendar.service';\n\n@Component({\n selector: 'sc-year-selector',\n imports: [ScButton],\n template: `\n @for (year of years(); track $index) {\n <button\n [variant]=\"getVariant(year)\"\n (click)=\"selectYear(year); $event.stopPropagation()\"\n sc-button\n >\n {{ year }}\n </button>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScYearSelector {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid grid-cols-4 gap-1 w-full', this.classInput()));\n\n readonly currentYear = input.required<number>();\n\n readonly previewYear = input.required<number>();\n\n private readonly firstYear = computed(() => this.calendarService.firstYear());\n\n private readonly lastYear = computed(() => this.calendarService.lastYear());\n\n protected readonly years = computed(() => {\n const years: number[] = [];\n\n for (let year = this.firstYear(); year <= this.lastYear(); year++) {\n years.push(year);\n }\n\n return years;\n });\n\n readonly yearSelected = output<number>();\n\n protected selectYear(year: number): void {\n this.yearSelected.emit(year);\n }\n\n private readonly calendarService = inject(CalendarService);\n\n constructor() {\n effect(() => {\n this.calendarService.firstYear.set(this.previewYear() - 9);\n\n this.calendarService.lastYear.set(this.previewYear() + 10);\n });\n }\n\n protected getVariant(y: number) {\n if (y === this.currentYear()) {\n return 'primary';\n }\n\n // if (this.isFocused(day.date)) {\n // return 'secondary';\n // }\n\n // if (isToday(day.date)) {\n // return 'outline';\n // }\n\n return 'ghost';\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCard, ScCardContent, ScCardHeader } from '../card';\nimport { ScCalendarHeader } from './calendar-header';\nimport { generateCalendarDays } from './calendar-utils';\nimport { CalendarService } from './calendar.service';\nimport { ScDaySelector } from './day-selector';\nimport { ScMonthSelector } from './month-selector';\nimport { View } from './types';\nimport { getLocalizedDayNames } from './utils';\nimport { ScYearSelector } from './year-selector';\n\n@Component({\n selector: 'sc-calendar',\n imports: [\n ScYearSelector,\n ScMonthSelector,\n ScDaySelector,\n ScCard,\n ScCardHeader,\n ScCardContent,\n ScCalendarHeader,\n ],\n template: `\n <div sc-card>\n <div sc-card-header>\n <sc-calendar-header\n [currentMonth]=\"currentMonth()\"\n [view]=\"view()\"\n (monthYearChange)=\"setMonthYear($event)\"\n (viewToggled)=\"toggleView()\"\n />\n </div>\n <div sc-card-content>\n @switch (view()) {\n @case ('years') {\n <sc-year-selector\n [currentYear]=\"currentYear()\"\n [previewYear]=\"previewYear()\"\n (yearSelected)=\"selectYear($event)\"\n />\n }\n @case ('months') {\n <sc-month-selector\n [currentMonth]=\"currentMonth()\"\n (monthSelected)=\"selectMonth($event)\"\n />\n }\n @default {\n <sc-day-selector\n [weekdays]=\"weekdays\"\n [selectedDate]=\"value()\"\n [calendarDays]=\"calendarDays()\"\n [date]=\"date()\"\n [currentMonth]=\"currentMonth()\"\n [firstDayOfMonth]=\"firstDayOfMonth()\"\n [lastDayOfMonth]=\"lastDayOfMonth()\"\n (dateSelected)=\"setValue($event)\"\n (nextMonth)=\"nextMonth()\"\n (prevMonth)=\"prevMonth()\"\n />\n }\n }\n </div>\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScCalendar),\n multi: true,\n },\n CalendarService,\n ],\n})\nexport class ScCalendar implements ControlValueAccessor {\n readonly value = model<Temporal.PlainDate>();\n readonly min = input<Temporal.PlainDate>();\n readonly max = input<Temporal.PlainDate>();\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block w-84', this.classInput()));\n\n private readonly today = signal(Temporal.Now.plainDateISO());\n\n protected readonly date = computed(() => {\n const v = this.value();\n if (v) {\n return v;\n } else {\n return this.today();\n }\n });\n\n protected readonly currentYear = linkedSignal(() => {\n return this.date()!.year;\n });\n\n protected readonly previewYear = linkedSignal(() => {\n return this.currentYear();\n });\n\n protected readonly currentMonth = linkedSignal(() => {\n return this.date()!.toPlainYearMonth();\n });\n\n protected readonly firstDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: 1,\n }),\n );\n\n protected readonly lastDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: this.currentMonth().daysInMonth,\n }),\n );\n\n private readonly localeId = inject(LOCALE_ID);\n\n protected readonly calendarDays = generateCalendarDays(this.localeId, this.currentMonth);\n\n // Helper methods\n isToday(date: Temporal.PlainDate): boolean {\n const today = Temporal.Now.plainDateISO();\n return date.equals(today);\n }\n\n isDateDisabled(date: Temporal.PlainDate): boolean {\n if (this.min() && Temporal.PlainDate.compare(date, this.min()!) < 0) {\n return true;\n }\n if (this.max() && Temporal.PlainDate.compare(date, this.max()!) > 0) {\n return true;\n }\n return false;\n }\n\n protected setValue(date: Temporal.PlainDate): void {\n if (this.isDateDisabled(date)) return;\n\n this.value.set(date);\n\n this.onChange(date);\n this.onTouched();\n }\n\n // Navigation methods\n protected prevMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.subtract({ months: 1 }));\n }\n }\n\n protected nextMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.add({ months: 1 }));\n }\n }\n\n protected readonly view = signal<View>('days');\n\n protected toggleView(): void {\n if (this.view() === 'days') {\n this.view.set('years');\n } else if (this.view() === 'years') {\n this.view.set('months');\n } else {\n this.view.set('days');\n }\n }\n\n weekdays: string[] = getLocalizedDayNames(this.localeId);\n\n protected setMonthYear(n: number) {\n if (this.view() === 'years') {\n this.previewYear.update((value) => value + n * 20);\n }\n\n if (this.view() === 'days') {\n if (n === 1) {\n this.nextMonth();\n }\n\n if (n === -1) {\n this.prevMonth();\n }\n }\n }\n\n protected selectYear(year: number) {\n this.currentYear.set(year);\n this.currentMonth.update((month) =>\n Temporal.PlainYearMonth.from({ year: year, month: month.month }),\n );\n this.toggleView();\n }\n\n protected selectMonth(month: Temporal.PlainYearMonth) {\n this.currentMonth.set(month);\n this.toggleView();\n }\n\n //CVA\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: Temporal.PlainDate) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n writeValue(value: Temporal.PlainDate): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: Temporal.PlainDate) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\nimport { Temporal } from '@js-temporal/polyfill';\n\nimport { isToday } from '../calendar/calendar-utils';\nimport { ScDayButton } from '../calendar/day-button';\nimport { CalendarDay } from '../calendar/types';\nimport { ScRange } from './types';\n\n@Component({\n selector: 'sc-days-selector',\n imports: [ScDayButton],\n template: `\n <div class=\"grid grid-cols-7 gap-5\">\n @for (weekday of weekdays(); track weekday) {\n <abbr class=\"size-10 text-center text-muted-foreground\">\n {{ weekday }}\n </abbr>\n }\n\n @for (day of calendarDays(); track day.date) {\n <button\n [variant]=\"getVariant(day)\"\n [hasFocus]=\"isFocused(day.date)\"\n (click)=\"selectDate(day)\"\n sc-day-button\n size=\"icon\"\n >\n {{ day.dayOfMonth }}\n </button>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDaysSelector {\n readonly calendarDays = input.required<CalendarDay[]>();\n readonly weekdays = input.required<string[]>();\n readonly rangeSelected = output<ScRange>();\n\n readonly selectedRange = input<ScRange>();\n readonly focusedDate = input<Temporal.PlainDate>();\n\n protected getVariant(day: CalendarDay) {\n if (this.isSelected(day.date)) {\n return 'primary';\n }\n\n if (this.isFocused(day.date)) {\n return 'secondary';\n }\n\n if (isToday(day.date)) {\n return 'outline';\n }\n\n return 'ghost';\n }\n\n protected selectDay(day: CalendarDay) {\n const range = {\n start: day.date,\n end: day.date,\n };\n\n this.rangeSelected.emit(range);\n }\n\n isSelected(date: Temporal.PlainDate): boolean {\n return this.selectedRange()\n ? date.equals(this.selectedRange()!.start) || date.equals(this.selectedRange()!.end)\n : false;\n }\n\n isFocused(date: Temporal.PlainDate): boolean {\n return this.focusedDate() ? date.equals(this.focusedDate()!) : false;\n }\n\n isDateInRange(date: Temporal.PlainDate): boolean {\n if (!this.selectedRange()?.start || !this.selectedRange()?.end) {\n return false;\n }\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n (Temporal.PlainDate.compare(date, this.selectedRange()?.start!) >= 0 &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n Temporal.PlainDate.compare(date, this.selectedRange()?.end!) <= 0) ||\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n (Temporal.PlainDate.compare(date, this.selectedRange()?.end!) >= 0 &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n Temporal.PlainDate.compare(date, this.selectedRange()?.start!) <= 0)\n );\n }\n\n selectDate(day: CalendarDay) {\n console.log('selectDate');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCalendarHeader } from '../calendar/calendar-header';\nimport { generateCalendarDays } from '../calendar/calendar-utils';\nimport { ScMonthSelector } from '../calendar/month-selector';\nimport { getLocalizedDayNames } from '../calendar/utils';\nimport { ScYearSelector } from '../calendar/year-selector';\nimport { ScCard, ScCardContent, ScCardHeader } from '../card';\nimport { ScDaysSelector } from './days-selector';\nimport { ScRange } from './types';\n\n@Component({\n selector: 'sc-range-calendar',\n imports: [\n ScYearSelector,\n ScMonthSelector,\n ScDaysSelector,\n ScCard,\n ScCardHeader,\n ScCardContent,\n ScCalendarHeader,\n ],\n template: `\n <div sc-card>\n <div sc-card-header>\n <sc-calendar-header\n [currentMonth]=\"currentMonth()\"\n [view]=\"view()\"\n (monthYearChange)=\"setMonthYear($event)\"\n (viewToggled)=\"toggleView()\"\n />\n </div>\n <div sc-card-content>\n @switch (view()) {\n @case ('years') {\n <sc-year-selector\n [currentYear]=\"currentYear()\"\n [previewYear]=\"previewYear()\"\n (yearSelected)=\"selectYear($event)\"\n />\n }\n @case ('months') {\n <sc-month-selector\n [currentMonth]=\"currentMonth()\"\n (monthSelected)=\"selectMonth($event)\"\n />\n }\n @default {\n <sc-days-selector\n [weekdays]=\"weekdays\"\n [selectedRange]=\"value()\"\n [calendarDays]=\"calendarDays()\"\n (rangeSelected)=\"selectRange($event)\"\n />\n }\n }\n </div>\n </div>\n `,\n host: {\n '[class]': 'class()',\n // '(keydown)': 'handleKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScRangeCalendar),\n multi: true,\n },\n ],\n})\nexport class ScRangeCalendar implements ControlValueAccessor {\n readonly value = model<ScRange>();\n\n readonly minDate = input<Temporal.PlainDate>();\n readonly maxDate = input<Temporal.PlainDate>();\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n private readonly today = signal(Temporal.Now.plainDateISO());\n\n protected readonly focusedDate = linkedSignal(() => {\n if (this.value()) {\n return this.value();\n } else {\n return this.today();\n }\n });\n\n protected readonly currentYear = linkedSignal(() => {\n if (this.value()) {\n return this.value()!.start.year;\n } else {\n return this.today().year;\n }\n });\n\n protected readonly previewYear = linkedSignal(() => {\n return this.currentYear();\n });\n\n protected readonly currentMonth = linkedSignal(() => {\n if (this.value()) {\n return this.value()!.start.toPlainYearMonth();\n } else {\n return this.today().toPlainYearMonth();\n }\n });\n\n private readonly firstDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: 1,\n }),\n );\n\n private readonly lastDayOfMonth = computed(() =>\n this.currentMonth().toPlainDate({\n day: this.currentMonth().daysInMonth,\n }),\n );\n\n private readonly localeId = inject(LOCALE_ID);\n\n protected readonly calendarDays = generateCalendarDays(this.localeId, this.currentMonth);\n\n // Helper methods\n isToday(date: Temporal.PlainDate): boolean {\n const today = Temporal.Now.plainDateISO();\n return date.equals(today);\n }\n\n isDateDisabled(date: Temporal.PlainDate): boolean {\n if (this.minDate() && Temporal.PlainDate.compare(date, this.minDate()!) < 0) {\n return true;\n }\n if (this.maxDate() && Temporal.PlainDate.compare(date, this.maxDate()!) > 0) {\n return true;\n }\n return false;\n }\n\n selectRange(range: ScRange): void {\n // if (this.isDateDisabled(date)) return;\n\n this.value.set(range);\n\n this.onChange(range);\n this.onTouched();\n }\n\n // Move focus in the calendar grid with support for month navigation\n // moveFocus(delta: number): void {\n // let newDate;\n\n // if (Math.sign(delta) === 1) {\n // newDate = this.focusedDate()?.add({ days: delta });\n // }\n\n // if (Math.sign(delta) === -1) {\n // newDate = this.focusedDate()?.subtract({ days: Math.abs(delta) });\n // }\n\n // if (!newDate) {\n // return;\n // }\n\n // if (Temporal.PlainDate.compare(newDate, this.calendarDays()[0].date) < 0) {\n // this.prevMonth();\n // }\n\n // if (\n // Temporal.PlainDate.compare(\n // newDate,\n // this.calendarDays()[this.calendarDays().length - 1].date,\n // ) > 0\n // ) {\n // this.nextMonth();\n // }\n\n // this.focusedDate.set(newDate);\n // }\n\n // handleKeydown(event: KeyboardEvent): void {\n // switch (event.key) {\n // case 'ArrowLeft':\n // this.moveFocus(-1);\n // event.preventDefault();\n // break;\n // case 'ArrowRight':\n // this.moveFocus(1);\n // event.preventDefault();\n // break;\n // case 'ArrowUp':\n // this.moveFocus(-7);\n // event.preventDefault();\n // break;\n // case 'ArrowDown':\n // this.moveFocus(7);\n // event.preventDefault();\n // break;\n // case 'Enter':\n // case ' ':\n // if (\n // Temporal.PlainDate.compare(this.focusedDate()!, this.calendarDays()[0].date) >= 0 &&\n // Temporal.PlainDate.compare(\n // this.focusedDate()!,\n // this.calendarDays()[this.calendarDays().length - 1].date,\n // ) <= 0\n // ) {\n // this.selectDate(this.focusedDate()!);\n // event.preventDefault();\n // }\n // break;\n // case 'Home':\n // // Move to first day of the month\n\n // this.focusedDate.set(this.firstDayOfMonth());\n\n // event.preventDefault();\n // break;\n\n // case 'End':\n // // Move to last day of the month\n // this.focusedDate.set(this.lastDayOfMonth());\n // event.preventDefault();\n // break;\n // case 'PageUp':\n // // Previous month\n // this.prevMonth();\n // event.preventDefault();\n // break;\n // case 'PageDown':\n // // Next month\n // this.nextMonth();\n // event.preventDefault();\n // break;\n // }\n // }\n\n // Navigation methods\n prevMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.subtract({ months: 1 }));\n }\n }\n\n nextMonth(): void {\n if (this.currentMonth()) {\n this.currentMonth.update((currentMonth) => currentMonth.add({ months: 1 }));\n }\n }\n\n protected readonly view = signal<'days' | 'years' | 'months'>('days');\n\n protected toggleView(): void {\n if (this.view() === 'days') {\n this.view.set('years');\n } else if (this.view() === 'years') {\n this.view.set('months');\n } else {\n this.view.set('days');\n }\n }\n\n weekdays: string[] = getLocalizedDayNames(this.localeId);\n\n protected setMonthYear(n: number) {\n if (this.view() === 'years') {\n this.previewYear.update((value) => value + n * 20);\n }\n\n if (this.view() === 'days') {\n if (n === 1) {\n this.nextMonth();\n }\n\n if (n === -1) {\n this.prevMonth();\n }\n }\n }\n\n protected selectYear(year: number) {\n this.currentYear.set(year);\n this.currentMonth.update((month) =>\n Temporal.PlainYearMonth.from({ year: year, month: month.month }),\n );\n this.value.set(undefined);\n this.toggleView();\n }\n\n protected selectMonth(month: Temporal.PlainYearMonth) {\n this.currentMonth.set(month);\n this.toggleView();\n }\n\n //CVA\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: ScRange) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n writeValue(value: ScRange): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: ScRange) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-full-calendar',\n imports: [CommonModule],\n template: `\n <div class=\"mx-auto flex size-full max-w-full flex-col items-center px-4\">\n <!-- Calendar Controls -->\n <div class=\"mb-4 flex w-full justify-around gap-2\">\n <button\n class=\"w-full rounded bg-gray-200 px-4 py-2 hover:bg-gray-300 sm:w-auto\"\n (click)=\"setView('month')\"\n >\n Month\n </button>\n <button\n class=\"w-full rounded bg-gray-200 px-4 py-2 hover:bg-gray-300 sm:w-auto\"\n (click)=\"setView('week')\"\n >\n Week\n </button>\n <button\n class=\"w-full rounded bg-gray-200 px-4 py-2 hover:bg-gray-300 sm:w-auto\"\n (click)=\"setView('day')\"\n >\n Day\n </button>\n </div>\n\n <!-- Calendar Header -->\n <div class=\"mb-4 flex w-full items-center justify-between\">\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToPreviousMonth()\"\n >\n <\n </button>\n <span class=\"grow text-center text-lg font-semibold\">\n {{ currentDate.toLocaleString('default', { month: 'long' }) }} {{ currentYear }}\n </span>\n <button class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\" (click)=\"goToNextMonth()\">\n >\n </button>\n </div>\n\n <!-- Weekdays -->\n <div class=\"grid w-full grid-cols-7 gap-2 text-center text-sm font-semibold sm:text-base\">\n @for (day of weekdays; track day) {\n <div class=\"text-gray-600\">{{ day }}</div>\n }\n </div>\n\n <!-- Days -->\n <div class=\"grid w-full grow grid-cols-7 gap-2 sm:grid-cols-7\">\n @for (day of daysInMonth; track day) {\n <div\n class=\"flex h-28 flex-col items-center justify-start rounded border p-2 sm:h-32 md:h-40\"\n [ngClass]=\"{\n 'bg-gray-100': day === null,\n 'bg-green-200 border-green-500': isToday(day),\n }\"\n (click)=\"day !== null && addEvent(formatDate(day))\"\n (keydown.enter)=\"day !== null && addEvent(formatDate(day))\"\n (keydown.space)=\"day !== null && addEvent(formatDate(day))\"\n tabindex=\"0\"\n role=\"button\"\n >\n @if (day !== null) {\n <span class=\"font-medium\">{{ day }}</span>\n }\n @if (day !== null) {\n <div class=\"mt-1 w-full\">\n @for (event of getEventsForDate(day); track event) {\n <div\n class=\"truncate rounded bg-blue-500 px-1 py-0.5 text-xs text-white sm:text-sm\"\n >\n {{ event.title }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScFullCalendar implements OnInit {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n currentDate = new Date();\n currentMonth = this.currentDate.getMonth();\n currentYear = this.currentDate.getFullYear();\n\n readonly currentView = signal<'month' | 'week' | 'day'>('month');\n\n daysInMonth: number[] = [];\n weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n events: { date: string; title: string }[] = [{ date: '2025-01-18', title: 'Sample Event' }];\n\n ngOnInit() {\n this.generateCalendar();\n }\n\n generateCalendar() {\n if (this.currentView() === 'month') {\n // Generate days for the entire month\n const firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1).getDay();\n const totalDays = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();\n this.daysInMonth = Array(firstDayOfMonth)\n .fill(null)\n .concat(Array.from({ length: totalDays }, (_, i) => i + 1));\n } else if (this.currentView() === 'week') {\n // Generate dates for the current week\n const today = new Date();\n const startOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));\n this.daysInMonth = Array.from({ length: 7 }, (_, i) => {\n const date = new Date(startOfWeek);\n date.setDate(startOfWeek.getDate() + i);\n return date.getDate();\n });\n } else if (this.currentView() === 'day') {\n // Show only today\n this.daysInMonth = [this.currentDate.getDate()];\n }\n }\n\n goToPreviousMonth() {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.currentYear--;\n } else {\n this.currentMonth--;\n }\n this.generateCalendar();\n }\n\n goToNextMonth() {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.currentYear++;\n } else {\n this.currentMonth++;\n }\n this.generateCalendar();\n }\n\n setView(view: 'month' | 'week' | 'day') {\n this.currentView.set(view);\n this.generateCalendar();\n }\n\n formatDate(day: number | null): string {\n if (day === null) return '';\n const month = String(this.currentMonth + 1).padStart(2, '0');\n const dayStr = String(day).padStart(2, '0');\n return `${this.currentYear}-${month}-${dayStr}`;\n }\n\n addEvent(date: string) {\n const title = prompt('Enter the event title:');\n if (title) {\n this.events.push({ date, title });\n }\n }\n\n isToday(day: number | null): boolean {\n if (day === null) return false;\n const today = new Date();\n return (\n today.getDate() === day &&\n today.getMonth() === this.currentMonth &&\n today.getFullYear() === this.currentYear\n );\n }\n\n getEventsForDate(day: number | null): { date: string; title: string }[] {\n const dateStr = this.formatDate(day);\n return this.events.filter((event) => event.date === dateStr);\n }\n}\n","import { DatePipe, NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-mobile-calendar',\n imports: [NgClass, DatePipe],\n template: `\n <div class=\"mx-auto flex size-full max-w-full flex-col items-center px-4\">\n <!-- Calendar Header: Date Navigation -->\n <div class=\"mb-4 flex w-full items-center justify-between\">\n <!-- Previous Day Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToPreviousDay()\"\n (keydown)=\"onKeydown($event, 'previous')\"\n tabindex=\"0\"\n >\n <\n </button>\n\n <span class=\"grow text-center text-lg font-semibold\">\n {{ currentDate | date: 'fullDate' }}\n </span>\n\n <!-- Next Day Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToNextDay()\"\n (keydown)=\"onKeydown($event, 'next')\"\n tabindex=\"0\"\n >\n >\n </button>\n </div>\n\n <!-- Hourly Slots: Display Hours in Mobile-friendly View -->\n <div class=\"grid w-full gap-2\">\n @for (hour of hoursInDay; track hour) {\n <div\n class=\"flex flex-col items-start justify-start rounded-lg border bg-white p-2 shadow-md hover:bg-gray-100\"\n [ngClass]=\"{\n 'bg-blue-100': isNow(hour),\n 'cursor-pointer': hour !== null,\n }\"\n (click)=\"hour !== null && addEvent(hour)\"\n (keydown.enter)=\"hour !== null && addEvent(hour)\"\n (keydown.space)=\"hour !== null && addEvent(hour)\"\n tabindex=\"0\"\n role=\"button\"\n >\n <span class=\"font-medium\">{{ hour }}:00</span>\n @for (event of getEventsForTime(hour); track event) {\n <div\n class=\"mt-1 truncate rounded bg-blue-500 px-2 py-1 text-xs text-white sm:text-sm\"\n >\n {{ event }}\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMobileCalendar implements OnInit {\n currentDate: Date;\n hoursInDay: number[];\n events: { [key: string]: string[] } = {}; // Store events by hour\n\n constructor() {\n this.currentDate = new Date();\n this.hoursInDay = Array.from({ length: 24 }, (_, index) => index); // 0 - 23 hours\n this.events = {};\n }\n\n ngOnInit(): void {\n console.log('ngOnInit');\n }\n\n // Go to the previous day\n goToPreviousDay(): void {\n const newDate = new Date(this.currentDate);\n newDate.setDate(this.currentDate.getDate() - 1);\n this.currentDate = newDate;\n }\n\n // Go to the next day\n goToNextDay(): void {\n const newDate = new Date(this.currentDate);\n newDate.setDate(this.currentDate.getDate() + 1);\n this.currentDate = newDate;\n }\n\n // Handle keyboard events for navigation (previous/next day)\n onKeydown(event: KeyboardEvent, direction: string): void {\n if (event.key === 'Enter' || event.key === ' ') {\n if (direction === 'previous') {\n this.goToPreviousDay();\n } else if (direction === 'next') {\n this.goToNextDay();\n }\n }\n }\n\n // Add event to a specific hour\n addEvent(hour: number): void {\n const eventTitle = prompt('Enter event title:');\n if (eventTitle) {\n if (!this.events[hour]) {\n this.events[hour] = [];\n }\n this.events[hour].push(eventTitle);\n }\n }\n\n // Get events for a specific hour\n getEventsForTime(hour: number): string[] {\n return this.events[hour] || [];\n }\n\n // Check if a specific hour is the current hour\n isNow(hour: number): boolean {\n const now = new Date();\n return now.getHours() === hour && now.getDate() === this.currentDate.getDate();\n }\n}\n","import { DatePipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-day-view',\n imports: [NgClass, DatePipe],\n template: `\n <div class=\"rounded-lg border bg-white p-4 shadow-md hover:bg-gray-100\">\n <div class=\"text-center font-medium\">{{ date() | date: 'fullDate' }}</div>\n\n <!-- Display hours for the day -->\n @for (hour of hoursInDay; track hour) {\n <div class=\"flex items-center justify-between p-2\">\n <span>{{ hour }}:00</span>\n <button\n class=\"rounded px-2 py-1 hover:bg-blue-400\"\n [ngClass]=\"{ 'bg-blue-500 text-white': isNow(hour) }\"\n (click)=\"addEvent(hour)\"\n (keydown)=\"onKeydown($event, hour)\"\n tabindex=\"0\"\n >\n Add Event\n </button>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDayView implements OnInit {\n readonly date = input.required<Date>(); // Receive the date for each day\n hoursInDay: number[];\n\n constructor() {\n this.hoursInDay = Array.from({ length: 24 }, (_, index) => index); // 0 - 23 hours\n }\n\n ngOnInit(): void {\n console.log('ngOnInit');\n }\n\n // Method to add events for a specific hour\n addEvent(hour: number): void {\n const eventTitle = prompt('Enter event title:');\n if (eventTitle) {\n alert(`Event \"${eventTitle}\" added to ${this.date().toDateString()} at ${hour}:00`);\n }\n }\n\n // Method to check if the current hour is now\n isNow(hour: number): boolean {\n const now = new Date();\n return now.getHours() === hour && now.getDate() === this.date().getDate();\n }\n\n // Handle keyboard events for accessibility\n onKeydown(event: KeyboardEvent, hour: number): void {\n if (event.key === 'Enter' || event.key === ' ') {\n this.addEvent(hour);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { ScDayView } from './day-view';\n\n@Component({\n selector: 'sc-week-view',\n imports: [DatePipe, ScDayView],\n template: `\n <div class=\"mb-4 flex items-center justify-between\">\n <!-- Previous Week Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToPreviousWeek()\"\n (keydown)=\"onKeydown($event, 'previous')\"\n tabindex=\"0\"\n >\n <\n </button>\n\n <span class=\"grow text-center text-lg font-semibold\">\n Week of {{ currentDate | date: 'MMMM d, yyyy' }}\n </span>\n\n <!-- Next Week Button -->\n <button\n class=\"rounded bg-gray-200 px-4 py-2 hover:bg-gray-300\"\n (click)=\"goToNextWeek()\"\n (keydown)=\"onKeydown($event, 'next')\"\n tabindex=\"0\"\n >\n >\n </button>\n </div>\n\n <!-- Week Days -->\n <div class=\"grid grid-cols-7 gap-4\">\n @for (day of weekDays; track day) {\n <div>\n <sc-day-view [date]=\"day\"></sc-day-view>\n <!-- Pass each day to Day Component -->\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScWeekView implements OnInit {\n currentDate: Date;\n weekDays: Date[];\n\n constructor() {\n this.currentDate = new Date();\n this.weekDays = this.getWeekDays(this.currentDate); // Get current week's days\n }\n\n ngOnInit(): void {\n console.log('ngOnInit');\n }\n\n // Helper method to get the dates for the week\n getWeekDays(date: Date): Date[] {\n const startOfWeek = date.getDate() - date.getDay(); // Start of the week (Sunday)\n const days: Date[] = [];\n\n for (let i = 0; i < 7; i++) {\n const day = new Date(date);\n day.setDate(startOfWeek + i);\n days.push(day);\n }\n\n return days;\n }\n\n // Go to the previous week\n goToPreviousWeek(): void {\n this.currentDate.setDate(this.currentDate.getDate() - 7);\n this.weekDays = this.getWeekDays(this.currentDate);\n }\n\n // Go to the next week\n goToNextWeek(): void {\n this.currentDate.setDate(this.currentDate.getDate() + 7);\n this.weekDays = this.getWeekDays(this.currentDate);\n }\n\n // Handle keyboard events for week navigation\n onKeydown(event: KeyboardEvent, direction: string): void {\n if (event.key === 'Enter' || event.key === ' ') {\n if (direction === 'previous') {\n this.goToPreviousWeek();\n } else if (direction === 'next') {\n this.goToNextWeek();\n }\n }\n }\n}\n","import { Directive, ElementRef, inject, model } from '@angular/core';\n\n@Directive({\n host: {\n '[value]': 'value()',\n '(input)': 'handleInput()',\n 'data-slot': 'control',\n },\n})\nexport class ScPlainInput {\n private readonly hostRef = inject(ElementRef);\n\n readonly value = model<string>('');\n\n handleInput() {\n const newValue = this.hostRef.nativeElement.value;\n this.value.set(newValue);\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScPlainInput } from './plain-input';\n\nexport const scInputStyles = signal(\n 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n);\n\n@Component({\n selector: 'input[sc-input]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'control',\n '[id]': 'id()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: ScPlainInput,\n inputs: ['value'],\n outputs: ['valueChange'],\n },\n ],\n})\nexport class ScInput {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn(scInputStyles(), this.classInput()));\n\n readonly value = model<string>('');\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-input-'), {\n alias: 'id',\n });\n\n readonly id = linkedSignal(() => this.idInput());\n\n private readonly host = inject(ElementRef);\n\n get nativeElement() {\n return this.host.nativeElement;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-auto-resize-input',\n imports: [],\n template: `\n <div class=\"inline-flex items-center\">\n <!-- Hidden span to calculate width -->\n <span class=\"invisible absolute whitespace-pre\" #sizer [style.font]=\"getFont()\">\n {{ value() || placeholder() }}\n </span>\n\n <!-- Actual input -->\n <input\n #input\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [class]=\"inputClass()\"\n [style.width.px]=\"width()\"\n [min]=\"minWidth()\"\n [max]=\"maxWidth()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n </div>\n\n <br />\n width: {{ width() }}\n <br />\n sizerWidth: {{ sizerWidth() }}\n <br />\n maxWidth: {{ maxWidth() }}\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScAutoResizeInput),\n multi: true,\n },\n ],\n})\nexport class ScAutoResizeInput implements ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative inline-block', this.classInput()));\n\n readonly input = viewChild.required<ElementRef<HTMLInputElement>>('input');\n readonly sizer = viewChild.required<ElementRef<HTMLSpanElement>>('sizer');\n\n readonly type = input('text');\n readonly placeholder = input('');\n readonly minWidth = input(60);\n readonly maxWidth = input(500);\n readonly inputClass = input(\n 'px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500',\n );\n\n readonly value = model('');\n\n protected readonly sizerWidth = signal(0);\n\n //TODO understand the meaning of 16, 24 worked better\n setSizerWidth(): void {\n this.sizerWidth.set(this.sizer().nativeElement.offsetWidth + 24);\n }\n\n // Adjust input width based on span content\n width = computed(() => {\n if (this.sizerWidth() <= this.minWidth()) {\n return this.minWidth();\n }\n\n return Math.min(this.sizerWidth(), this.maxWidth());\n });\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n protected readonly disabled = linkedSignal(() => this.disabledInput());\n\n constructor() {\n afterNextRender(() => {\n this.setSizerWidth();\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // Get computed font style of input for accurate width calculation\n getFont(): string {\n const inputValue = this.input();\n if (!inputValue?.nativeElement) return '';\n const computed = window.getComputedStyle(inputValue.nativeElement);\n return computed.font;\n }\n\n // Handle input event\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value.set(input.value);\n this.setSizerWidth();\n this.onChange(this.value());\n this.changeDetectorRef.markForCheck();\n }\n\n onBlur(): void {\n this.onTouch();\n }\n\n // ControlValueAccessor methods\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-date-picker-toggle]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '(click)': 'toggle()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDatePickerToggle extends ScButtonBase {\n override readonly variantInput = input<ButtonVariants['variant']>('ghost', {\n alias: 'variant',\n });\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute inset-y-0 end-0 pe-4',\n this.classInput(),\n ),\n );\n\n readonly toggled = output<void>();\n\n protected toggle() {\n this.toggled.emit();\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n LOCALE_ID,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCalendar } from '../calendar';\nimport { ScInput } from '../input';\nimport { ScDatePickerToggle } from './date-picker-toggle';\n\n@Component({\n selector: 'sc-date-picker',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScDatePicker),\n multi: true,\n },\n ],\n})\nexport class ScDatePicker implements ControlValueAccessor {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex relative', this.classInput()));\n\n readonly value = model<Temporal.PlainDate>();\n readonly minDate = input<Temporal.PlainDate>();\n readonly maxDate = input<Temporal.PlainDate>();\n\n private readonly localeId = inject(LOCALE_ID);\n\n private readonly host = inject(ElementRef);\n\n private readonly dir = inject(Directionality, { optional: true });\n private readonly overlay = inject(Overlay);\n\n private readonly isOpen = signal(false);\n\n private overlayRef: OverlayRef | null = null;\n private portal: ComponentPortal<unknown> | null = null;\n\n private readonly scDatePickerToggle = contentChild(ScDatePickerToggle);\n private readonly scInput = contentChild(ScInput);\n\n constructor() {\n afterNextRender(() => {\n this.scInput()?.value.subscribe((v) => {\n console.log(v);\n });\n\n this.scDatePickerToggle()?.toggled.subscribe(() => {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n });\n });\n }\n\n /** Opens the datepicker. */\n open(): void {\n if (!this.scInput()) {\n return;\n }\n\n // Focus should already be on the input, but this call is in case the datepicker is opened\n // programmatically. We need to call this even if the datepicker is already open, because\n // the user might be clicking the toggle.\n this.scInput()?.nativeElement.focus();\n\n if (this.isOpen()) {\n return;\n }\n\n this.isOpen.set(true);\n\n const overlayRef = this.getOverlayRef();\n\n //overlayRef.updateSize({ width: this._overlayOrigin()?.nativeElement.offsetWidth });\n\n overlayRef.updateSize({ width: 400 });\n\n this.portal ??= new ComponentPortal(ScCalendar);\n\n const componentRef = overlayRef.attach(this.portal);\n\n (componentRef.instance as ScCalendar).value.subscribe((v) => {\n if (v) {\n this.selectValue(v);\n }\n });\n }\n\n /** Closes the datepicker. */\n close(): void {\n if (this.isOpen()) {\n this.isOpen.set(false);\n this.overlayRef?.detach();\n }\n }\n\n /** Creates an overlay reference for the datepicker panel. */\n private getOverlayRef(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n const overlayOrigin = this.host;\n if (overlayOrigin === undefined) {\n throw new Error('_overlayOrigin is undefined');\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(overlayOrigin)\n .withFlexibleDimensions(false)\n .withPush(false)\n // .withTransformOriginOn('.mat-datepicker-panel')\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n //panelClass: 'mat-datepicker-above',\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n direction: this.dir || 'ltr',\n hasBackdrop: false,\n });\n\n this.overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n\n this.overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this.host?.nativeElement;\n\n if (target && target !== origin && !origin?.contains(target)) {\n this.close();\n }\n });\n\n return this.overlayRef;\n }\n\n /** Selects a specific date value. */\n protected selectValue(value: Temporal.PlainDate) {\n this.close();\n\n this.value.set(value);\n\n this.onChange(value);\n this.onTouched();\n\n const inputElement = this.scInput()?.nativeElement;\n if (inputElement) {\n inputElement.value = value?.toLocaleString(this.localeId) ?? '';\n inputElement.focus();\n }\n }\n\n //CVA\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: Temporal.PlainDate) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: () => void = () => {};\n\n writeValue(value: Temporal.PlainDate): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: Temporal.PlainDate) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n OnInit,\n Output,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { Temporal } from '@js-temporal/polyfill';\n\n@Component({\n selector: 'sc-date-range-picker',\n imports: [ReactiveFormsModule, CommonModule, FormsModule],\n template: `\n <!-- date-range-picker.component.html -->\n <div class=\"relative w-full max-w-md\">\n <!-- Date range display input -->\n <button\n class=\"flex justify-between items-center p-3 border border-gray-300 rounded-md bg-white cursor-pointer hover:border-blue-500 transition-colors\"\n (click)=\"toggleCalendar()\"\n type=\"button\"\n >\n <div class=\"flex items-center space-x-1\">\n <span class=\"text-gray-700\">\n {{ selectedStartDate ? formatDate(selectedStartDate) : 'Start date' }}\n </span>\n <span class=\"text-gray-500\">to</span>\n <span class=\"text-gray-700\">\n {{ selectedEndDate ? formatDate(selectedEndDate) : 'End date' }}\n </span>\n </div>\n <svg\n class=\"h-5 w-5 text-gray-500\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n </button>\n\n <!-- Calendar dropdown -->\n @if (showCalendar) {\n <div\n class=\"absolute mt-1 z-10 bg-white rounded-md shadow-lg border border-gray-200 p-3 w-full md:w-[350px]\"\n >\n <!-- Header with navigation and dropdown -->\n <div class=\"flex justify-between items-center mb-3\">\n <!-- Month/Year selectors -->\n <div class=\"flex items-center space-x-1\">\n <select\n class=\"p-1 border border-gray-300 rounded text-sm\"\n [ngModel]=\"currentMonth.month\"\n (ngModelChange)=\"setMonth($event)\"\n >\n @for (month of months; track month; let i = $index) {\n <option [value]=\"i + 1\">\n {{ month }}\n </option>\n }\n </select>\n <select\n class=\"p-1 border border-gray-300 rounded text-sm\"\n [ngModel]=\"currentMonth.year\"\n (ngModelChange)=\"setYear($event)\"\n >\n @for (year of years; track year) {\n <option [value]=\"year\">\n {{ year }}\n </option>\n }\n </select>\n </div>\n <!-- Previous/Next month buttons -->\n <div class=\"flex space-x-1\">\n <button class=\"p-1 rounded hover:bg-gray-100\" (click)=\"prevMonth()\" type=\"button\">\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n <button class=\"p-1 rounded hover:bg-gray-100\" (click)=\"nextMonth()\" type=\"button\">\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n </div>\n </div>\n <!-- Calendar grid -->\n <div class=\"mb-3\">\n <!-- Weekday headers -->\n <div class=\"grid grid-cols-7 mb-1\">\n @for (day of weekdays; track day) {\n <div class=\"text-center text-xs font-medium text-gray-500 py-1\">\n {{ day }}\n </div>\n }\n </div>\n <!-- Calendar days -->\n <div class=\"grid grid-cols-7\">\n @for (day of calendarDays; track day) {\n <button\n class=\"text-center py-1 relative\"\n [ngClass]=\"{\n 'text-gray-400': !day.isCurrentMonth,\n 'bg-blue-100': day.isInRange && !day.isSelected,\n 'cursor-pointer hover:bg-gray-100': !day.isDisabled,\n 'cursor-not-allowed opacity-50': day.isDisabled,\n }\"\n (click)=\"selectDate(day.date, day.isDisabled)\"\n type=\"button\"\n >\n <div\n class=\"w-8 h-8 flex items-center justify-center mx-auto rounded-full\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': day.isSelected,\n 'ring-2 ring-blue-600 ring-offset-1': day.isToday && !day.isSelected,\n }\"\n >\n {{ day.date.day }}\n </div>\n </button>\n }\n </div>\n </div>\n <!-- Quick selection buttons -->\n <div class=\"grid grid-cols-3 gap-2 mb-3\">\n <button\n class=\"px-2 py-1.5 text-xs bg-gray-100 hover:bg-gray-200 text-gray-800 rounded-md transition-colors border border-gray-300\"\n (click)=\"setLastWeek()\"\n type=\"button\"\n >\n Last 7 days\n </button>\n <button\n class=\"px-2 py-1.5 text-xs bg-gray-100 hover:bg-gray-200 text-gray-800 rounded-md transition-colors border border-gray-300\"\n (click)=\"setLastMonth()\"\n type=\"button\"\n >\n Last month\n </button>\n <button\n class=\"px-2 py-1.5 text-xs bg-gray-100 hover:bg-gray-200 text-gray-800 rounded-md transition-colors border border-gray-300\"\n (click)=\"setLastThreeMonths()\"\n type=\"button\"\n >\n Last 3 months\n </button>\n </div>\n <!-- Status text and buttons -->\n <div class=\"text-sm text-gray-500 mb-2\">\n @if (isSelectingEndDate && selectedStartDate) {\n <div>\n <p>Select end date</p>\n </div>\n }\n @if (!isSelectingEndDate && !selectedEndDate) {\n <div>\n <p>Select start date</p>\n </div>\n }\n @if (selectedStartDate && selectedEndDate) {\n <div>\n <p>{{ formatDate(selectedStartDate) }} to {{ formatDate(selectedEndDate) }}</p>\n </div>\n }\n </div>\n <div class=\"flex justify-end space-x-2\">\n <button\n class=\"px-3 py-1.5 text-sm border border-gray-300 text-gray-700 rounded-md hover:bg-gray-100 transition-colors\"\n (click)=\"cancelSelection()\"\n type=\"button\"\n >\n Cancel\n </button>\n <button\n class=\"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors\"\n [disabled]=\"!selectedStartDate || !selectedEndDate\"\n [ngClass]=\"{\n 'opacity-50 cursor-not-allowed': !selectedStartDate || !selectedEndDate,\n }\"\n (click)=\"applyDateRange()\"\n type=\"button\"\n >\n Apply\n </button>\n </div>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDateRangePicker implements OnInit {\n readonly startDate = input<Temporal.PlainDate>(Temporal.Now.plainDateISO());\n readonly endDate = input<Temporal.PlainDate>(Temporal.Now.plainDateISO());\n readonly minDate = input<Temporal.PlainDate | null>(null);\n readonly maxDate = input<Temporal.PlainDate | null>(null);\n @Output() dateRangeSelected = new EventEmitter<{\n startDate: Temporal.PlainDate;\n endDate: Temporal.PlainDate;\n }>();\n\n // Calendar state\n currentMonth: Temporal.PlainYearMonth;\n calendarDays: Array<{\n date: Temporal.PlainDate;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isInRange: boolean;\n isDisabled: boolean;\n }> = [];\n\n weekdays: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n months: string[] = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n\n years: number[] = [];\n\n // Selection state\n selectedStartDate: Temporal.PlainDate | null = null;\n selectedEndDate: Temporal.PlainDate | null = null;\n isSelectingEndDate = false;\n\n // UI state\n showCalendar = false;\n today: Temporal.PlainDate = Temporal.Now.plainDateISO();\n\n constructor() {\n this.currentMonth = Temporal.Now.plainDateISO().toPlainYearMonth();\n\n // Generate selectable years (10 years before and after current year)\n const currentYear = Temporal.Now.plainDateISO().year;\n for (let i = currentYear - 10; i <= currentYear + 10; i++) {\n this.years.push(i);\n }\n }\n\n ngOnInit(): void {\n this.selectedStartDate = this.startDate();\n this.selectedEndDate = this.endDate();\n this.currentMonth = this.startDate().toPlainYearMonth();\n this.generateCalendarDays();\n }\n\n toggleCalendar(): void {\n this.showCalendar = !this.showCalendar;\n if (this.showCalendar) {\n // Reset to start date's month when opening calendar\n this.currentMonth =\n this.selectedStartDate?.toPlainYearMonth() ||\n Temporal.Now.plainDateISO().toPlainYearMonth();\n this.generateCalendarDays();\n }\n }\n\n generateCalendarDays(): void {\n this.calendarDays = [];\n\n const firstOfMonth = Temporal.PlainDate.from({\n year: this.currentMonth.year,\n month: this.currentMonth.month,\n day: 1,\n });\n\n const lastOfMonth = firstOfMonth.with({ day: firstOfMonth.daysInMonth });\n\n // Get the first date to show (might be from previous month)\n let startingDate = firstOfMonth;\n const dayOfWeek = firstOfMonth.dayOfWeek % 7; // 0-indexed, Sunday = 0\n if (dayOfWeek > 0) {\n startingDate = firstOfMonth.subtract({ days: dayOfWeek });\n }\n\n // Calculate the last date to show (might be from next month)\n const endDate = lastOfMonth.add({ days: 6 - (lastOfMonth.dayOfWeek % 7) });\n\n // Generate all days for the calendar view\n let currentDate = startingDate;\n\n while (Temporal.PlainDate.compare(currentDate, endDate) <= 0) {\n const isCurrentMonth = currentDate.month === this.currentMonth.month;\n const isToday = Temporal.PlainDate.compare(currentDate, this.today) === 0;\n\n const isSelected =\n (this.selectedStartDate &&\n Temporal.PlainDate.compare(currentDate, this.selectedStartDate) === 0) ||\n (this.selectedEndDate &&\n Temporal.PlainDate.compare(currentDate, this.selectedEndDate) === 0);\n\n // Check if date is in the selected range\n const isInRange =\n this.selectedStartDate &&\n this.selectedEndDate &&\n Temporal.PlainDate.compare(currentDate, this.selectedStartDate) >= 0 &&\n Temporal.PlainDate.compare(currentDate, this.selectedEndDate) <= 0;\n\n // Check if date is disabled (before min date or after max date)\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n const isDisabled =\n (minDate && Temporal.PlainDate.compare(currentDate, minDate) < 0) ||\n (maxDate && Temporal.PlainDate.compare(currentDate, maxDate) > 0);\n\n this.calendarDays.push({\n date: currentDate,\n isCurrentMonth,\n isToday,\n isSelected: !!isSelected,\n isInRange: !!isInRange,\n isDisabled: !!isDisabled,\n });\n\n currentDate = currentDate.add({ days: 1 });\n }\n }\n\n prevMonth(): void {\n this.currentMonth = this.currentMonth.subtract({ months: 1 });\n this.generateCalendarDays();\n }\n\n nextMonth(): void {\n this.currentMonth = this.currentMonth.add({ months: 1 });\n this.generateCalendarDays();\n }\n\n setMonth(month: number): void {\n this.currentMonth = this.currentMonth.with({ month });\n this.generateCalendarDays();\n }\n\n setYear(year: number): void {\n this.currentMonth = this.currentMonth.with({ year });\n this.generateCalendarDays();\n }\n\n selectDate(date: Temporal.PlainDate, isDisabled: boolean): void {\n if (isDisabled) return;\n\n if (!this.isSelectingEndDate) {\n // Selecting start date\n this.selectedStartDate = date;\n this.selectedEndDate = null;\n this.isSelectingEndDate = true;\n } else {\n // Selecting end date\n if (Temporal.PlainDate.compare(date, this.selectedStartDate!) < 0) {\n // If end date is before start date, swap them\n this.selectedEndDate = this.selectedStartDate;\n this.selectedStartDate = date;\n } else {\n this.selectedEndDate = date;\n }\n this.isSelectingEndDate = false;\n }\n\n this.generateCalendarDays();\n }\n\n applyDateRange(): void {\n if (this.selectedStartDate && this.selectedEndDate) {\n this.dateRangeSelected.emit({\n startDate: this.selectedStartDate,\n endDate: this.selectedEndDate,\n });\n this.showCalendar = false;\n }\n }\n\n cancelSelection(): void {\n this.showCalendar = false;\n // Reset to previous selection\n this.selectedStartDate = this.startDate();\n this.selectedEndDate = this.endDate();\n this.isSelectingEndDate = false;\n this.generateCalendarDays();\n }\n\n // Predefined ranges\n setLastWeek(): void {\n const end = Temporal.Now.plainDateISO();\n const start = end.subtract({ days: 6 });\n\n this.selectedStartDate = start;\n this.selectedEndDate = end;\n this.generateCalendarDays();\n this.applyDateRange();\n }\n\n setLastMonth(): void {\n const end = Temporal.Now.plainDateISO();\n const start = end.subtract({ months: 1 });\n\n this.selectedStartDate = start;\n this.selectedEndDate = end;\n this.generateCalendarDays();\n this.applyDateRange();\n }\n\n setLastThreeMonths(): void {\n const end = Temporal.Now.plainDateISO();\n const start = end.subtract({ months: 3 });\n\n this.selectedStartDate = start;\n this.selectedEndDate = end;\n this.generateCalendarDays();\n this.applyDateRange();\n }\n\n formatDate(date: Temporal.PlainDate | null): string {\n if (!date) return '';\n return date.toLocaleString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'nav[sc-nav]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNav {\n class = input<string>('');\n\n classes = computed(() =>\n cn('relative z-10 flex max-w-max flex-1 items-center justify-center', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ul[sc-nav-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n dir: 'ltr',\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavList {\n class = input<string>('');\n\n classes = computed(() =>\n cn('flex flex-1 list-none items-center justify-center space-x-1', this.class()),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\n@Component({\n selector: 'sc-nav-button-base',\n imports: [],\n template: ``,\n host: {},\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavButtonBase {\n baseClass = input<string>(\n 'inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50',\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScNavButtonBase } from './nav-button-base';\n\n@Component({\n selector: 'a[sc-nav-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n routerLinkActive: 'active-page',\n ariaCurrentWhenActive: 'page',\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavLink extends ScNavButtonBase {\n class = input<string>('');\n\n classes = computed(() => cn(this.baseClass(), this.class()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-nav-item',\n imports: [],\n template: `\n <p>nav-item works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavItem {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScNavButtonBase } from './nav-button-base';\n\n@Component({\n selector: 'button[sc-nav-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavButton extends ScNavButtonBase {\n class = input<string>('');\n\n classes = computed(() => cn(this.baseClass(), this.class()));\n}\n","import { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nimport { ScNavButton } from './nav-button';\n\n@Component({\n selector: 'li[sc-nav-item-dropdown]',\n imports: [CdkMenuTrigger, CdkMenu, ScNavButton],\n template: `\n <button [cdkMenuTriggerFor]=\"menu\" sc-nav-button type=\"button\">{{ title() }}</button>\n <ng-template #menu>\n <div\n cdkMenu\n lass=\"origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-(--radix-navigation-menu-viewport-width)\"\n >\n <div\n class=\"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\"\n >\n <ng-content />\n </div>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavItemDropdown {\n title = input.required<string>();\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, afterNextRender, computed, inject, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScTheme {\n private readonly document = inject<Document>(DOCUMENT);\n\n private readonly isDarkModeSignal = signal<boolean>(false);\n\n readonly isDarkMode = computed(() => this.isDarkModeSignal());\n\n readonly theme = computed<'light' | 'dark'>(() => {\n return this.isDarkMode() ? 'dark' : 'light';\n });\n\n constructor() {\n afterNextRender(() => {\n // Initialize theme from localStorage or system preference\n this.initializeTheme();\n });\n }\n\n private initializeTheme(): void {\n // Check if user has a saved preference\n const savedTheme = localStorage.getItem('theme');\n\n if (savedTheme) {\n this.isDarkModeSignal.set(savedTheme === 'dark');\n } else {\n // If no saved preference, check system preference\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n this.isDarkModeSignal.set(prefersDark);\n }\n\n // Apply the theme\n this.applyTheme(this.isDarkMode());\n }\n\n toggleTheme(): void {\n this.isDarkModeSignal.update((t) => !t);\n this.applyTheme(this.isDarkMode());\n localStorage.setItem('theme', this.theme());\n }\n\n private applyTheme(isDark: boolean): void {\n // On page load or when changing themes, best to add inline in `head` to avoid FOUC\n this.document.documentElement.classList.toggle('dark', isDark);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiMoonIcon, SiSunIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\nimport { ScTheme } from './theme';\n\n@Component({\n selector: 'sc-theme-toggler',\n imports: [SiMoonIcon, SiSunIcon, ScButton],\n template: `\n <button (click)=\"toggleTheme()\" sc-button variant=\"outline\" size=\"icon\" type=\"button\">\n @if (isDarkMode()) {\n <svg si-sun-icon></svg>\n } @else {\n <svg si-moon-icon></svg>\n }\n </button>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScThemeToggler {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n private readonly themeService = inject(ScTheme);\n\n protected readonly isDarkMode = computed(() => this.themeService.isDarkMode());\n\n protected toggleTheme() {\n this.themeService.toggleTheme();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\n\n@Component({\n selector: 'a[sc-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'link',\n '[tabindex]': 'tabindex()', //make the link focusable in case don't have href\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScLink extends ScButtonBase {\n override readonly variantInput = input<ButtonVariants['variant']>('link', {\n alias: 'variant',\n });\n\n protected readonly tabindex = computed(() => {\n if (this.disabled()) {\n return -1;\n }\n\n return 0;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { scInputStyles } from '../input/input';\n\n@Component({\n selector: 'input[sc-input-number]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[value]': 'value()',\n '[type]': 'type()',\n '(input)': 'handleInput()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumber {\n private readonly hostRef = inject(ElementRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn(scInputStyles(), this.classInput()));\n\n readonly value = model<number>(0);\n readonly type = input<'number'>('number');\n\n handleInput() {\n const newValue = this.hostRef.nativeElement.value;\n this.value.set(newValue);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-input-number-incrementer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'handleClick()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumberIncrementer extends ScButtonBase {\n readonly incremented = output<void>();\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute right-1 top-1 size-8',\n this.classInput(),\n ),\n );\n\n protected handleClick() {\n this.incremented.emit();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-input-number-decrementer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'handleClick()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumberDecrementer extends ScButtonBase {\n readonly decremented = output<void>();\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute right-10 top-1 size-8',\n this.classInput(),\n ),\n );\n\n protected handleClick() {\n this.decremented.emit();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChild,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScInputNumber } from '../input-number/input-number';\nimport { ScInputNumberDecrementer } from '../input-number/input-number-decrementer';\nimport { ScInputNumberIncrementer } from '../input-number/input-number-incrementer';\n\n@Component({\n selector: 'div[sc-input-number-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputNumberGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative', this.classInput()));\n\n private readonly scInputNumberIncrementer = contentChild(ScInputNumberIncrementer);\n private readonly scInputNumberDecrementer = contentChild(ScInputNumberDecrementer);\n\n private readonly scInputNumber = contentChild(ScInputNumber);\n\n constructor() {\n afterNextRender(() => {\n this.scInputNumberIncrementer()?.incremented.subscribe(() => {\n this.scInputNumber()?.value.update((v: number) => +v + 1);\n });\n\n this.scInputNumberDecrementer()?.decremented.subscribe(() => {\n this.scInputNumber()?.value.update((v: number) => +v - 1);\n });\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-input-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'control',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'w-full',\n 'grid grid-cols-[24px_1fr_24px]',\n //[&>[data-slot=icon]]:fill-neutral-500\n '[&>[data-slot=icon]:first-child]:col-start-1 [&>[data-slot=icon]:last-child]:col-start-3 *:data-[slot=icon]:row-start-1 *:data-[slot=icon]:z-10 *:data-[slot=icon]:place-self-center *:data-[slot=icon]:size-4 ',\n '*:data-[slot=control]:col-span-3 *:data-[slot=control]:col-start-1 *:data-[slot=control]:row-start-1',\n '[&>[data-slot=icon]+[data-slot=control]]:pl-6',\n '[&:has([data-slot=control]+[data-slot=icon])>[data-slot=control]]:pr-6',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'label[sc-label]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'label',\n '[for]': 'for()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScLabel {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n this.classInput(),\n ),\n );\n\n readonly forInput = input<string>('', {\n alias: 'for',\n });\n\n readonly for = linkedSignal(() => this.forInput());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-progress',\n imports: [],\n template: `\n <div [style.transform]=\"transform()\" data-slot=\"indicator\"></div>\n `,\n host: {\n // Sets the role for this component to \"progressbar\"\n role: 'progressbar',\n // Sets the minimum and maximum values for the progressbar role.\n '[attr.aria-valuemin]': 'min()',\n '[attr.aria-valuemax]': 'max()',\n // Binding that updates the current value of the progressbar.\n '[attr.aria-valuenow]': 'value()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScProgress {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'block relative h-2 w-full overflow-hidden rounded-full bg-primary/20',\n '*:data-[slot=indicator]:size-full *:data-[slot=indicator]:flex-1 *:data-[slot=indicator]:bg-primary *:data-[slot=indicator]:transition-all',\n this.mode() === 'indeterminate' &&\n '*:data-[slot=indicator]:animate-progress *:data-[slot=indicator]:origin-left',\n this.classInput(),\n ),\n );\n\n /** Current value of the progressbar. */\n readonly value = input<number>(0);\n\n //https://github.com/shadcn-ui/ui/issues/700\n readonly mode = input<'determinate' | 'indeterminate'>('determinate');\n\n //TODO maybe name shoould be aria-valuemin\n readonly min = input<number, unknown>(0, {\n transform: numberAttribute,\n });\n\n //TODO maybe name shoould be aria-valuemax\n readonly max = input<number, unknown>(100, {\n transform: numberAttribute,\n });\n\n protected readonly transform = computed(() => {\n return `translateX(${((this.value() - this.min()) / (this.max() - this.min())) * 100 - 100}%)`;\n });\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon, SiEyeIcon, SiEyeOffIcon, SiXIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScInput } from '../input';\nimport { ScLabel } from '../label';\nimport { ScProgress } from '../progress';\n\n@Component({\n selector: 'sc-input-password',\n imports: [\n SiCheckIcon,\n SiXIcon,\n SiEyeOffIcon,\n SiEyeIcon,\n ScLabel,\n ScInput,\n ReactiveFormsModule,\n ScProgress,\n ],\n template: `\n <div class=\"space-y-2\">\n <label [for]=\"id\" sc-label>Password</label>\n <div class=\"relative\">\n <input\n class=\"pe-9\"\n [id]=\"id\"\n [value]=\"password()\"\n [type]=\"isVisible() ? 'text' : 'password'\"\n [attr.aria-invalid]=\"strengthScore() < 4\"\n [formControl]=\"control\"\n sc-input\n placeholder=\"Password\"\n aria-describedby=\"input-51-description\"\n />\n <button\n class=\"absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center text-muted-foreground/80 outline-none transition hover:text-foreground\"\n [attr.aria-label]=\"isVisible() ? 'Hide password' : 'Show password'\"\n [attr.aria-pressed]=\"isVisible()\"\n (click)=\"toggleVisibility()\"\n type=\"button\"\n >\n @if (isVisible()) {\n <svg si-eye-off-icon size=\"16\" strokeWidth=\"2\" aria-hidden=\"true\"></svg>\n } @else {\n <svg si-eye-icon size=\"16\" strokeWidth=\"2\" aria-hidden=\"true\"></svg>\n }\n </button>\n </div>\n </div>\n\n <!--Password strength indicator-->\n <sc-progress\n [class]=\"progressClass()\"\n [value]=\"strengthScore()\"\n max=\"4\"\n aria-label=\"Password strength\"\n />\n\n <!-- Password strength description -->\n <p class=\"mb-2 text-sm font-medium\" id=\"password-description\">\n {{ strengthText() }}. Must contain:\n </p>\n\n <!-- Password requirements list -->\n <ul class=\"space-y-1.5\" aria-label=\"Password requirements\">\n @for (req of strength(); track $index) {\n <li class=\"flex items-center gap-2\">\n @if (req.met) {\n <svg class=\"text-emerald-500\" si-check-icon size=\"16\" aria-hidden=\"true\"></svg>\n } @else {\n <svg class=\"text-emerald-500\" si-x-icon size=\"16\" aria-hidden=\"true\"></svg>\n }\n <span class=\"text-xs\" [class]=\"req.met ? 'text-emerald-500' : 'text-muted-foreground/80'\">\n {{ req.text }}\n </span>\n <span class=\"sr-only\">\n {{ req.met ? '- Requirement met' : '- Requirement not met' }}\n </span>\n </li>\n }\n </ul>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputPassword implements OnInit {\n protected readonly id = inject(_IdGenerator).getId('sc-input-password-');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block w-full', this.classInput()));\n\n protected control = new FormControl();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngOnInit() {\n this.control.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.password.set(value));\n }\n\n readonly password = signal<string>('');\n readonly isVisible = signal<boolean>(false);\n\n readonly requirements = [\n { regex: /.{8,}/, text: 'At least 8 characters' },\n { regex: /\\d/, text: 'At least 1 number' },\n { regex: /[a-z]/, text: 'At least 1 lowercase letter' },\n { regex: /[A-Z]/, text: 'At least 1 uppercase letter' },\n ];\n\n readonly strength = computed(() =>\n this.requirements.map((req) => ({\n met: req.regex.test(this.password()),\n text: req.text,\n })),\n );\n\n readonly strengthScore = computed(() => this.strength().filter((req) => req.met).length);\n\n protected readonly progressClass = computed(() =>\n cn(\n 'mb-4 mt-3 h-1 w-full overflow-hidden rounded-full bg-border',\n '*:data-[slot=indicator]:h-full *:data-[slot=indicator]:transition-all *:data-[slot=indicator]:duration-500 *:data-[slot=indicator]:ease-out',\n this.strengthColor(),\n ),\n );\n\n readonly strengthColor = computed(() => {\n const score = this.strengthScore();\n if (score === 0) return '*:data-[slot=indicator]:bg-border';\n if (score <= 1) return '*:data-[slot=indicator]:bg-red-500';\n if (score <= 2) return '*:data-[slot=indicator]:bg-orange-500';\n if (score === 3) return '*:data-[slot=indicator]:bg-amber-500';\n return '*:data-[slot=indicator]:bg-emerald-500';\n });\n\n readonly strengthText = computed(() => {\n const score = this.strengthScore();\n if (score === 0) return 'Enter a password';\n if (score <= 2) return 'Weak password';\n if (score === 3) return 'Medium password';\n return 'Strong password';\n });\n\n protected toggleVisibility() {\n this.isVisible.update((prev) => !prev);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nconst alphanumeric_regex = /[^a-zA-Z0-9]/g;\nconst numeric_regex = /\\D/g;\n\n@Component({\n selector: 'sc-input-otp-slot',\n imports: [],\n template: `\n <input\n class=\"size-full border-0 bg-transparent text-center shadow-none outline-none ring-0\"\n #inputRef\n [disabled]=\"disabled()\"\n [readonly]=\"!isActive()\"\n [value]=\"value()\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeydown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (paste)=\"onPaste($event)\"\n type=\"text\"\n maxlength=\"2\"\n />\n\n @if (showFakeCaret()) {\n <div class=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div class=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\"></div>\n </div>\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputOTPSlot {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative',\n 'caret-transparent',\n 'flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md',\n this.isActive() && 'ring-2 ring-ring ring-offset-background',\n this.classInput(),\n ),\n );\n\n protected readonly showFakeCaret = computed(() => this.isActive() && !this.value());\n\n protected readonly isActive = signal(false);\n\n readonly disabled = signal(false);\n\n readonly inputRef = viewChild.required<ElementRef<HTMLInputElement>>('inputRef');\n\n readonly focus = output<string>();\n readonly blur = output<void>();\n readonly backspace = output<void>();\n readonly arrowLeft = output<void>();\n readonly arrowRight = output<void>();\n readonly paste = output<string>();\n\n readonly value = model('');\n\n protected onInput(event: Event) {\n const input = event.target as HTMLInputElement;\n\n // Ensure only digits, letters, or empty values\n let sanitizedValue = input.value.replace(numeric_regex, '');\n\n if (sanitizedValue.length > 1) {\n sanitizedValue = sanitizedValue.slice(-1); // Keep only the last entered character\n }\n\n input.value = sanitizedValue;\n\n //If the value is the same, emit arrow right to move to the next input\n if (sanitizedValue === this.value()) {\n this.arrowRight.emit();\n } else {\n this.value.set(sanitizedValue);\n }\n }\n\n protected onKeydown(event: KeyboardEvent) {\n // Handle backspace key when input is empty\n if (event.key === 'Backspace' && !this.value()) {\n event.preventDefault();\n this.backspace.emit();\n }\n\n // Handle arrow keys for navigation between inputs\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.arrowLeft.emit();\n }\n\n if (event.key === 'ArrowRight' && this.value()) {\n event.preventDefault();\n this.arrowRight.emit();\n }\n }\n\n protected onPaste(event: ClipboardEvent) {\n event.preventDefault();\n\n // Get pasted content and clean it\n const clipboardData = event.clipboardData;\n if (!clipboardData) return;\n\n const pastedText = clipboardData.getData('text');\n if (!pastedText) return;\n\n // Clean the pasted text to only include alphanumeric characters\n const sanitizedText = pastedText.replace(numeric_regex, '');\n\n // Set the first character in this input\n const firstChar = sanitizedText.charAt(0);\n this.value.set(firstChar);\n this.inputRef().nativeElement.value = firstChar;\n\n // Emit the remaining characters for potential distribution to other inputs\n if (sanitizedText.length > 1) {\n this.paste.emit(sanitizedText.substring(1));\n }\n }\n\n protected onFocus(): void {\n this.focus.emit(this.value());\n }\n\n protected onBlur(): void {\n this.blur.emit();\n }\n\n // Public methods\n setActive(active = true): void {\n if (active && !this.disabled()) {\n this.inputRef().nativeElement.focus();\n this.inputRef().nativeElement.select();\n }\n\n this.isActive.set(active);\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n} from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScInputOTPSlot } from './input-otp-slot';\n\n@Component({\n selector: 'sc-input-otp',\n imports: [ReactiveFormsModule],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScInputOtp),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ScInputOtp),\n multi: true,\n },\n ],\n})\nexport class ScInputOtp implements AfterContentInit, ControlValueAccessor {\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n protected readonly disabled = linkedSignal(() => this.disabledInput());\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex items-center gap-2 has-disabled:opacity-50', this.classInput()),\n );\n\n readonly slots = contentChildren(ScInputOTPSlot, { descendants: true });\n\n readonly currentIndex = signal(-1);\n\n readonly value = model('');\n\n type = input<'numeric' | 'alphanumeric'>('numeric');\n\n constructor() {\n effect(() => {\n if (this.slots()) {\n this.slots().forEach((slot) => {\n slot.disabled.set(this.disabled());\n });\n }\n });\n }\n\n ngAfterContentInit() {\n // Wait for content children to be initialized\n setTimeout(() => {\n this.setupDigitComponents();\n });\n }\n\n private setupDigitComponents() {\n const digits = this.slots();\n\n if (!digits || digits.length === 0) {\n console.error('No OTP digit components found');\n return;\n }\n\n // Set up focus management and value change handling\n digits.forEach((digit, index) => {\n // Subscribe to value changes\n digit.value.subscribe((value: string) => {\n this.updateOtpValue();\n this.onTouched();\n\n // Auto-focus next input when a digit is entered\n if (value && index < digits.length - 1) {\n this.setCurrentPosition(index + 1);\n }\n });\n\n digit.arrowRight.subscribe(() => {\n if (index < digits.length - 1) {\n this.setCurrentPosition(index + 1);\n }\n });\n\n // Handle backspace - move focus to previous input\n digit.backspace.subscribe(() => {\n if (index > 0) {\n this.setCurrentPosition(index - 1);\n }\n });\n\n // Handle arrow keys for navigation\n digit.arrowLeft.subscribe(() => {\n if (index > 0) {\n this.setCurrentPosition(index - 1);\n }\n });\n\n // Track focus events\n digit.focus.subscribe((value: string) => {\n if (value) {\n this.setCurrentPosition(index);\n } else {\n const index = this.findFirstSlotToHighlight();\n this.setCurrentPosition(index);\n }\n });\n\n digit.blur.subscribe(() => {\n digit.setActive(false);\n });\n\n // Handle paste event - distribute characters to subsequent inputs\n digit.paste.subscribe((remainingText: string) => {\n // Process the remaining pasted text\n this.handleMultiDigitPaste(remainingText, index + 1);\n this.onTouched();\n });\n });\n\n // Set initial focus if not disabled\n if (!this.disabled()) {\n const index = this.findFirstSlotToHighlight();\n this.setCurrentPosition(index);\n }\n }\n\n setCurrentPosition(position: number) {\n if (position !== this.currentIndex()) {\n this.currentIndex.set(position);\n }\n // Add visual indication to the currently active digit\n this.slots().forEach((digit, index) => {\n digit.setActive(index === position);\n });\n }\n\n private findFirstSlotToHighlight() {\n const arr = this.slots();\n\n for (let i = 0; i < arr.length; i++) {\n if (!arr[i].value()) {\n return i;\n }\n }\n\n return arr.length - 1;\n }\n\n private handleMultiDigitPaste(text: string, startIndex: number) {\n if (!text) return;\n\n const digits = this.slots();\n const chars = text.split('');\n\n // Fill the remaining inputs with the pasted characters\n chars.forEach((char, i) => {\n const targetIndex = startIndex + i;\n if (targetIndex < digits.length) {\n digits[targetIndex].value.set(char);\n }\n });\n\n // Focus the next empty input or the last input if all are filled\n const nextEmptyIndex = digits.findIndex(\n (digit, index) => index >= startIndex + chars.length && !digit.value,\n );\n if (nextEmptyIndex !== -1) {\n this.setCurrentPosition(nextEmptyIndex);\n } else if (startIndex + chars.length < digits.length) {\n this.setCurrentPosition(startIndex + chars.length);\n } else {\n // All digits filled, focus the last one\n this.setCurrentPosition(digits.length - 1);\n }\n\n this.updateOtpValue();\n }\n\n private updateOtpValue() {\n // Check if OTP is complete\n // const isComplete = this.slots().every((digit) => digit.value);\n // if (isComplete) {\n // }\n\n const value = this.slots()\n .map((digit) => digit.value || '')\n .join('');\n\n this.value.set(value);\n\n this.onChange(value);\n }\n\n // Validator implementation\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n // Check if the OTP is complete\n if (value.length < this.slots().length) {\n return { incomplete: true };\n }\n\n return null;\n }\n\n // Public method to clear all inputs\n public clear() {\n if (this.slots()) {\n this.slots().forEach((digit) => digit.value.set(''));\n this.value.set('');\n this.onChange(this.value);\n\n if (this.slots().length > 0 && !this.disabled()) {\n this.setCurrentPosition(0);\n }\n }\n }\n\n // Public method to set OTP value programmatically\n public setValue(value: string) {\n if (!value || !this.slots()) return;\n\n const valueArray = value.split('');\n\n this.slots().forEach((digit, index) => {\n if (index < valueArray.length) {\n digit.value.set(valueArray[index]);\n } else {\n digit.value.set('');\n }\n });\n\n this.updateOtpValue();\n }\n\n writeValue(value: string): void {\n if (!value) {\n this.clear();\n return;\n }\n\n this.setValue(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\n onChange = (_: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-input-otp-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputOTPGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiDotIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'sc-input-otp-separator',\n imports: [SiDotIcon],\n template: `\n <svg si-dot-icon></svg>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInputOTPSeparator {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'textarea[sc-textarea]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTextarea {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nexport interface ScOptionModel {\n id: string | number;\n label: string;\n selected?: boolean;\n}\n\n@Component({\n selector: 'sc-multi-select',\n imports: [FormsModule],\n template: `\n <div class=\"relative w-full\">\n <!-- Label for screen readers -->\n @if (label) {\n <label class=\"block text-sm font-medium text-gray-700 mb-1\" [attr.for]=\"labelId\">\n {{ label }}\n @if (required()) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <!-- Selected items display -->\n <div\n class=\"flex flex-wrap items-center gap-1 p-2 border rounded-md bg-white cursor-pointer min-h-10\"\n #toggleButton\n [attr.id]=\"labelId\"\n [attr.aria-labelledby]=\"labelId\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-required]=\"required()\"\n [attr.aria-describedby]=\"descriptionId\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [class.ring-2]=\"isOpen()\"\n [class.ring-blue-500]=\"isOpen()\"\n [class.border-red-500]=\"showError()\"\n (click)=\"toggleDropdown()\"\n (keydown)=\"onKeydown($event)\"\n role=\"combobox\"\n tabindex=\"0\"\n >\n @for (option of selectedOptions; track option) {\n <div class=\"flex items-center bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-sm\">\n {{ option.label }}\n <button\n class=\"ml-1 text-blue-500 hover:text-blue-700\"\n [attr.aria-label]=\"f(option)\"\n (click)=\"toggleOption(option, $event)\"\n type=\"button\"\n >\n ×\n </button>\n </div>\n }\n\n @if (selectedOptions.length === 0) {\n <div class=\"text-gray-400\">\n {{ placeholder() }}\n </div>\n }\n\n <div class=\"ml-auto\">\n <svg\n class=\"h-5 w-5 text-gray-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </div>\n </div>\n\n <!-- Description for screen readers -->\n <div class=\"sr-only\" [attr.id]=\"descriptionId\">\n Press Enter to open the dropdown. Use arrow keys to navigate options. Press Space to select\n or deselect.\n </div>\n\n <!-- Error message -->\n @if (showError() && errorMessage) {\n <div class=\"text-sm text-red-500 mt-1\">\n {{ errorMessage }}\n </div>\n }\n\n <!-- Dropdown menu -->\n @if (isOpen()) {\n <div\n class=\"absolute z-10 mt-1 w-full bg-white border rounded-md shadow-lg max-h-60 overflow-auto\"\n [attr.id]=\"listboxId\"\n [attr.aria-multiselectable]=\"true\"\n role=\"listbox\"\n >\n @if (searchable()) {\n <div class=\"sticky top-0 bg-white p-2 border-b\">\n <input\n class=\"w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\"\n #searchInput\n [(ngModel)]=\"searchText\"\n (input)=\"onSearch()\"\n (click)=\"$event.stopPropagation()\"\n type=\"text\"\n placeholder=\"Search...\"\n aria-label=\"Search options\"\n />\n </div>\n }\n <div class=\"py-1\">\n @for (option of filteredOptions; track option; let i = $index) {\n <button\n class=\"flex items-center px-4 py-2 hover:bg-gray-100 cursor-pointer\"\n [attr.id]=\"'option-' + option.id\"\n [attr.aria-selected]=\"isSelected(option)\"\n [class.bg-gray-100]=\"focusedIndex === i\"\n (click)=\"toggleOption(option, $event)\"\n (mouseenter)=\"focusedIndex = i\"\n role=\"option\"\n >\n <input\n class=\"h-4 w-4 text-blue-600 rounded focus:ring-blue-500\"\n [checked]=\"isSelected(option)\"\n (click)=\"$event.stopPropagation()\"\n type=\"checkbox\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n />\n <span class=\"ml-2\">{{ option.label }}</span>\n </button>\n }\n @if (filteredOptions.length === 0) {\n <div class=\"px-4 py-2 text-gray-500\" role=\"status\">No results found</div>\n }\n </div>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMultiSelect implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n readonly options = input<ScOptionModel[]>([]);\n readonly placeholder = input('Select options');\n readonly searchable = input(true);\n @Input() label = '';\n readonly required = input(false);\n readonly showError = input(false);\n @Input() errorMessage = 'This field is required';\n\n @Output() selectionChange = new EventEmitter<ScOptionModel[]>();\n\n protected readonly isOpen = signal(false);\n searchText = '';\n filteredOptions: ScOptionModel[] = [];\n focusedIndex = -1;\n\n uniqueId: string = 'multiselect-' + Math.random().toString(36).substring(2, 9);\n labelId = `${this.uniqueId}-label`;\n listboxId = `${this.uniqueId}-listbox`;\n descriptionId = `${this.uniqueId}-description`;\n\n get activeDescendant(): string | null {\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n return 'option-' + this.filteredOptions[this.focusedIndex].id;\n }\n return null;\n }\n\n ngOnInit() {\n this.filteredOptions = [...this.options()];\n }\n\n get selectedOptions(): ScOptionModel[] {\n return this.options().filter((option) => option.selected);\n }\n\n toggleDropdown() {\n this.isOpen.update((isOpen) => !isOpen);\n if (this.isOpen()) {\n this.onSearch();\n this.focusedIndex = -1;\n\n // Focus search input if searchable\n setTimeout(() => {\n const searchInput = this.elementRef.nativeElement.querySelector('input[type=\"text\"]');\n if (searchInput && this.searchable()) {\n searchInput.focus();\n }\n });\n }\n }\n\n toggleOption(option: ScOptionModel, event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n\n option.selected = !option.selected;\n this.selectionChange.emit(this.selectedOptions);\n\n // Announce selection change for screen readers\n this.announceForScreenReader(`${option.label} ${option.selected ? 'selected' : 'unselected'}`);\n }\n\n isSelected(option: ScOptionModel): boolean {\n return option.selected === true;\n }\n\n onSearch() {\n if (!this.searchText.trim()) {\n this.filteredOptions = [...this.options()];\n return;\n }\n\n const searchLower = this.searchText.toLowerCase();\n this.filteredOptions = this.options().filter((option) =>\n option.label.toLowerCase().includes(searchLower),\n );\n\n // Reset focused index when search results change\n this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1;\n }\n\n onKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n if (!this.isOpen()) {\n this.toggleDropdown();\n } else if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.toggleOption(this.filteredOptions[this.focusedIndex]);\n }\n break;\n\n case 'Escape':\n if (this.isOpen()) {\n event.preventDefault();\n this.isOpen.set(false);\n this.elementRef.nativeElement.querySelector('[role=\"combobox\"]').focus();\n }\n break;\n\n case 'ArrowDown':\n if (this.isOpen()) {\n event.preventDefault();\n if (this.focusedIndex < this.filteredOptions.length - 1) {\n this.focusedIndex++;\n this.scrollToOption();\n }\n } else {\n this.toggleDropdown();\n }\n break;\n\n case 'ArrowUp':\n if (this.isOpen()) {\n event.preventDefault();\n if (this.focusedIndex > 0) {\n this.focusedIndex--;\n this.scrollToOption();\n }\n }\n break;\n\n case ' ': // Space\n if (this.isOpen() && this.focusedIndex >= 0) {\n event.preventDefault();\n this.toggleOption(this.filteredOptions[this.focusedIndex]);\n }\n break;\n\n case 'Tab':\n if (this.isOpen()) {\n this.isOpen.set(false);\n }\n break;\n\n case 'Home':\n if (this.isOpen()) {\n event.preventDefault();\n this.focusedIndex = 0;\n this.scrollToOption();\n }\n break;\n\n case 'End':\n if (this.isOpen()) {\n event.preventDefault();\n this.focusedIndex = this.filteredOptions.length - 1;\n this.scrollToOption();\n }\n break;\n }\n }\n\n scrollToOption() {\n setTimeout(() => {\n const optionElement = this.elementRef.nativeElement.querySelector(\n `[id=\"option-${this.filteredOptions[this.focusedIndex].id}\"]`,\n );\n if (optionElement) {\n optionElement.scrollIntoView({ block: 'nearest' });\n }\n });\n }\n\n announceForScreenReader(message: string) {\n // Create an invisible div for screen reader announcements\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'polite');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n\n document.body.appendChild(announcement);\n\n // Remove after announcement is read\n setTimeout(() => {\n document.body.removeChild(announcement);\n }, 1000);\n }\n\n @HostListener('document:click', ['$event'])\n clickOutside(event: Event) {\n if (!(event.target as HTMLElement).closest('app-multi-select')) {\n this.isOpen.set(false);\n }\n }\n\n f(option: ScOptionModel) {\n return 'Remove' + option.label;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n output,\n signal,\n} from '@angular/core';\n\nimport { SiArrowUpIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\n\nexport type ButtonState = 'initial' | 'visible' | 'hidden';\n\n@Component({\n selector: 'sc-scroll-to-top-button2',\n imports: [NgClass, ScButton, SiArrowUpIcon],\n template: `\n <button\n class=\"size-12 rounded-full shadow-lg transition-all duration-300 ease-out\"\n [ngClass]=\"{\n 'opacity-0 translate-y-5 scale-90': state() === 'initial' || state() === 'hidden',\n 'opacity-100 translate-y-0 scale-100': state() === 'visible',\n }\"\n (click)=\"onScrollToTop()\"\n (transitionend)=\"onTransitionEnd($event)\"\n sc-button\n aria-label=\"Scroll to top\"\n >\n <svg class=\"size-6\" si-arrow-up-icon></svg>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScScrollToTopButton2 {\n readonly scrollToTop = output<void>();\n readonly animationDone = output<void>();\n\n readonly state = signal<ButtonState>('initial');\n\n protected onScrollToTop() {\n this.scrollToTop.emit();\n }\n\n protected onTransitionEnd(event: TransitionEvent) {\n // Only emit when opacity transition ends to avoid multiple emissions\n if (event.propertyName === 'opacity' && this.state() === 'hidden') {\n this.animationDone.emit();\n }\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, DestroyRef, Injectable, Injector, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { distinctUntilChanged, throttleTime } from 'rxjs/operators';\n\nimport { fromEvent } from 'rxjs';\n\nimport { ScScrollToTopButton2 } from './scroll-to-top-button2';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScScrollToTop {\n private readonly overlay = inject(Overlay);\n private readonly injector = inject(Injector);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private overlayRef: OverlayRef | null = null;\n private componentRef: ComponentRef<ScScrollToTopButton2> | null = null;\n private readonly scrollThreshold = 300;\n\n init() {\n // Set up scroll listener\n fromEvent(window, 'scroll')\n .pipe(throttleTime(100), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (window.scrollY > this.scrollThreshold) {\n this.show();\n } else {\n this.hide();\n }\n });\n }\n\n private show() {\n if (!this.componentRef) {\n // Create the overlay if it doesn't exist\n if (!this.overlayRef) {\n const config = new OverlayConfig({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global().bottom('20px').right('20px'),\n });\n\n this.overlayRef = this.overlay.create(config);\n }\n\n const portal = new ComponentPortal(ScScrollToTopButton2, null, this.injector);\n this.componentRef = this.overlayRef.attach(portal);\n\n // Subscribe to the scrollToTop event\n this.componentRef.instance.scrollToTop.subscribe(() => {\n this.scrollToTop();\n });\n\n // Small delay to allow DOM to update before animation\n setTimeout(() => {\n if (this.componentRef) {\n this.componentRef.instance.state.set('visible');\n }\n }, 10);\n } else if (this.componentRef) {\n this.componentRef.instance.state.set('visible');\n }\n }\n\n private hide() {\n if (this.componentRef) {\n this.componentRef.instance.state.set('hidden');\n this.componentRef.instance.animationDone.subscribe(() => {\n if (\n this.overlayRef &&\n this.componentRef &&\n this.componentRef.instance.state() === 'hidden'\n ) {\n this.overlayRef.detach();\n this.componentRef = null;\n }\n });\n }\n }\n\n private scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiArrowUpIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButtonBase, buttonVariants } from '../button';\n\n@Component({\n selector: 'button[sc-scroll-to-top-button]',\n imports: [SiArrowUpIcon],\n template: `\n <svg class=\"size-6\" si-arrow-up-icon></svg>\n `,\n host: {\n '(click)': 'scrollToTop()',\n '(window:scroll)': 'onWindowScroll()',\n 'aria-label': 'Scroll to top',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScScrollToTopButton extends ScButtonBase {\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'fixed bottom-6 right-6 size-12 rounded-full shadow-lg transition-all duration-300 ease-out pointer-events-none',\n !this.showScrollButton() && 'opacity-0 translate-y-5 scale-90',\n this.showScrollButton() && 'opacity-100 translate-y-0 scale-100 pointer-events-auto',\n this.classInput(),\n ),\n );\n\n protected readonly showScrollButton = signal(false);\n\n protected onWindowScroll() {\n // Show button when page is scrolled down 300px\n this.showScrollButton.set(window.scrollY > 300);\n }\n\n protected scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n numberAttribute,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-circular-progress',\n imports: [],\n template: `\n <svg class=\"relative -rotate-90\" [attr.height]=\"radius() * 2\" [attr.width]=\"radius() * 2\">\n <!-- Background Circle -->\n <circle\n class=\"fill-transparent text-gray-200\"\n [attr.stroke-width]=\"stroke()\"\n [attr.r]=\"normalizedRadius()\"\n [attr.cx]=\"radius()\"\n [attr.cy]=\"radius()\"\n stroke=\"currentColor\"\n ></circle>\n\n <!-- Progress Circle -->\n <circle\n class=\"fill-transparent text-primary transition-all duration-300\"\n [attr.stroke-width]=\"stroke()\"\n [attr.r]=\"normalizedRadius()\"\n [attr.cx]=\"radius()\"\n [attr.cy]=\"radius()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"strokeDashoffset()\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n ></circle>\n </svg>\n\n <!-- Progress Text -->\n <div class=\"absolute flex items-center justify-center text-xl font-semibold text-primary\">\n {{ value() }}%\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCircularProgress {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex justify-center items-center relative h-[100px] w-[100px]', this.classInput()),\n );\n\n // Progress percentage\n readonly value = input<number, unknown>(0, {\n transform: numberAttribute,\n });\n\n protected readonly radius = signal(50); // Radius of the circle\n protected readonly stroke = signal(8); // Thickness of the stroke\n\n // Adjusted radius for the stroke width\n protected readonly normalizedRadius = computed(() => this.radius() - this.stroke() * 0.5);\n\n // Circle circumference\n protected readonly circumference = computed(() => this.normalizedRadius() * 2 * Math.PI);\n\n // Dash offset for progress\n // Calculate stroke-dashoffset based on progress\n protected readonly strokeDashoffset = computed(() => {\n return this.circumference() - (this.value() / 100) * this.circumference();\n });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sheet-container',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef()\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSheetContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block size-full', this.classInput()));\n\n readonly templateRef = signal<TemplateRef<unknown> | null>(null);\n}\n","import { Overlay, OverlayConfig, OverlayContainer, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Injectable,\n TemplateRef,\n effect,\n inject,\n linkedSignal,\n signal,\n} from '@angular/core';\n\nimport { ScSheetConfig } from './sheet-config';\nimport { ScSheetContainer } from './sheet-container';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScSheetManager {\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly overlay = inject(Overlay);\n private overlayRef!: OverlayRef;\n\n readonly isOpen = signal(false);\n\n readonly state = linkedSignal(() => (this.isOpen() ? 'open' : 'closed'));\n\n readonly side = signal<'top' | 'bottom' | 'left' | 'right'>('right');\n\n constructor() {\n effect(() => {\n const overlayDarkBackdrop = this.overlayContainer\n .getContainerElement()\n .querySelector('.cdk-overlay-dark-backdrop');\n if (overlayDarkBackdrop) {\n overlayDarkBackdrop.setAttribute('data-state', this.state());\n }\n });\n }\n\n open(templateRef: TemplateRef<unknown>, config: ScSheetConfig) {\n this.isOpen.set(true);\n this.side.set(config.side);\n\n const overlayConfig = this.getOverlayConfig(config);\n\n // Set block scroll strategy\n overlayConfig.scrollStrategy = this.overlay.scrollStrategies.block();\n\n this.overlayRef = this.overlay.create(overlayConfig);\n\n const scSheetPortal = new ComponentPortal(ScSheetContainer);\n const scSheetRef: ComponentRef<ScSheetContainer> = this.overlayRef.attach(scSheetPortal);\n\n scSheetRef.instance.templateRef.set(templateRef);\n\n this.overlayRef.backdropClick().subscribe(() => this.state.set('closed'));\n }\n\n close() {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef?.detach();\n this.isOpen.set(false);\n }\n }\n\n private getOverlayConfig(config: ScSheetConfig): OverlayConfig {\n switch (config.side) {\n case 'top': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().top(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n case 'bottom': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().bottom(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n case 'left': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().left(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n case 'right': {\n return new OverlayConfig({\n positionStrategy: this.overlay.position().global().right(),\n width: config.width,\n height: config.height,\n hasBackdrop: true,\n });\n }\n\n default: {\n throw new Error('Error in switch case');\n }\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nimport { ScSheetManager } from './sheet-manager';\n\nconst sheetVariants = cva(\n 'relative z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n {\n variants: {\n side: {\n top: 'size-full border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'size-full border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'size-full border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'size-full border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n },\n);\n\nexport type SheetVariants = VariantProps<typeof sheetVariants>;\n\n@Component({\n selector: 'div[sc-sheet]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '(animationend)': 'handleAnimationEnd($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSheet {\n private readonly scSheetManager = inject(ScSheetManager);\n\n readonly state = computed<'open' | 'closed'>(() => {\n return this.scSheetManager.state();\n });\n\n readonly side = computed<'top' | 'bottom' | 'left' | 'right'>(() => {\n return this.scSheetManager.side();\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(sheetVariants({ side: this.side() }), this.classInput()),\n );\n\n protected handleAnimationEnd(event: AnimationEvent): void {\n if (event.target === event.currentTarget && event.animationName === 'exit') {\n this.scSheetManager.close();\n }\n }\n}\n","export class ScSheetConfig {\n side: 'top' | 'bottom' | 'left' | 'right' = 'right';\n width = '100%';\n height = '100%';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScSheetManager } from './sheet-manager';\n\n@Component({\n selector: 'button[sc-sheet-close]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '(click)': 'close()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSheetClose {\n private readonly scSheetManager = inject(ScSheetManager);\n\n readonly state = computed<'open' | 'closed'>(() => {\n return this.scSheetManager.state();\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n this.classInput(),\n ),\n );\n\n protected close() {\n this.scSheetManager.state.set('closed');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'nav[sc-breadcrumb]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.aria-label]': '\"breadcrumb\"',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumb {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ol[sc-breadcrumb-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbList {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'li[sc-breadcrumb-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('inline-flex items-center gap-1.5', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'a[sc-breadcrumb-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbLink {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('transition-colors hover:text-foreground', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-breadcrumb-page]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'link',\n '[attr.aria-disabled]': 'true',\n '[attr.aria-current]': '\"page\"',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbPage {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('font-normal text-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'li[sc-breadcrumb-separator]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'presentation',\n '[attr.aria-hidden]': 'true',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbSeparator {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('[&_svg]:w-3.5 [&_svg]:h-3.5', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-breadcrumb-ellipsis], button[sc-breadcrumb-ellipsis]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'presentation',\n '[attr.aria-hidden]': 'true',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbEllipsis {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex h-9 w-9 items-center justify-center', this.classInput()),\n );\n}\n","import { Directive, computed, input, signal } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nexport const toggleVariants = cva(\n 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border border-input bg-transparent hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n default: 'h-10 min-w-10 px-3',\n sm: 'h-9 min-w-9 px-2.5',\n lg: 'h-11 min-w-11 px-5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ToggleVariants = VariantProps<typeof toggleVariants>;\n\n@Directive({\n host: {\n '[class]': 'class()',\n '(click)': 'toggle()',\n },\n})\nexport class ScToggleBase {\n readonly variant = input<ToggleVariants['variant']>('default');\n\n readonly size = input<ToggleVariants['size']>('default');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n toggleVariants({ variant: this.variant(), size: this.size() }),\n this.active() && 'bg-accent text-accent-foreground',\n this.classInput(),\n ),\n );\n\n readonly active = signal(false);\n\n protected toggle() {\n this.active.update((active) => !active);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { ScToggleBase } from './toggle-base';\n\n@Component({\n selector: 'button[sc-toggle]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {},\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggle extends ScToggleBase {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-toggle-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggleGroup {\n readonly type = input<'single' | 'multiple'>('single');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex items-center justify-center gap-1', this.classInput()),\n );\n\n readonly value = input<string[]>([]);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScToggleBase, toggleVariants } from '../toggle/toggle-base';\n\n@Component({\n selector: 'button[sc-toggle-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {},\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggleItem extends ScToggleBase {\n protected override readonly class = computed(() =>\n cn(\n toggleVariants({ variant: this.variant(), size: this.size() }),\n 'flex items-center justify-center gap-1',\n this.active() && 'bg-accent text-accent-foreground',\n this.classInput(),\n ),\n );\n\n readonly value = input<string>();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'div[sc-dialog]',\n imports: [],\n template: `\n <ng-content />\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialog {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-dialog-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(' flex flex-col space-y-1.5 text-center sm:text-left', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-dialog-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('text-lg font-semibold leading-none tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-dialog-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-dialog-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.classInput()),\n );\n}\n","import { DIALOG_DATA, DialogModule } from '@angular/cdk/dialog';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-dialog-container',\n imports: [DialogModule, NgTemplateOutlet],\n template: `\n @if (data.templateRef) {\n <ng-container *ngTemplateOutlet=\"data.templateRef\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogContainer {\n data = inject<{\n templateRef: TemplateRef<unknown>;\n }>(DIALOG_DATA);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block size-full', this.classInput()));\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { Injectable, TemplateRef, effect, inject, linkedSignal, signal } from '@angular/core';\n\nimport { ScDialogContainer } from './dialog-container';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScDialogManager {\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly dialog = inject(Dialog);\n\n readonly isOpen = signal(false);\n\n readonly state = linkedSignal(() => (this.isOpen() ? 'open' : 'closed'));\n\n constructor() {\n effect(() => {\n const overlayDarkBackdrop = this.overlayContainer\n .getContainerElement()\n .querySelector('.cdk-overlay-dark-backdrop');\n if (overlayDarkBackdrop) {\n overlayDarkBackdrop.setAttribute('data-state', this.state());\n }\n });\n }\n\n open(templateRef: TemplateRef<unknown>) {\n const dialogRef = this.dialog.open(ScDialogContainer, {\n minWidth: '300px',\n // Pass the template as data to the dialog\n data: { templateRef },\n });\n\n this.isOpen.set(true);\n\n dialogRef.closed.subscribe((result) => {\n this.isOpen.set(false);\n });\n }\n\n close() {\n console.log('close');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScDialogManager } from './dialog-manager';\n\n@Component({\n selector: 'button[sc-dialog-close]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'close()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogClose {\n private readonly scDialogManager = inject(ScDialogManager);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n this.classInput(),\n ),\n );\n\n protected close() {\n this.scDialogManager.close();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-dialog-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDialogContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7 [&_svg]:size-4',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\ntype AlertVariants = VariantProps<typeof alertVariants>;\n\n@Component({\n selector: 'div[sc-alert]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'alert',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlert {\n readonly variant = input<AlertVariants['variant']>('default');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(alertVariants({ variant: this.variant() }), this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h5[sc-alert-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('mb-1 font-medium leading-none tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-alert-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm [&_p]:leading-relaxed', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-alert-dialog-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-alert-dialog-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-alert-dialog-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex flex-col space-y-2 text-center sm:text-left', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-alert-dialog-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialogTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-lg font-semibold', this.classInput()));\n}\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScButton } from '../button';\nimport { ScAlertDialogDescription } from './alert-dialog-description';\nimport { ScAlertDialogFooter } from './alert-dialog-footer';\nimport { ScAlertDialogHeader } from './alert-dialog-header';\nimport { ScAlertDialogManager } from './alert-dialog-manager';\nimport { ScAlertDialogTitle } from './alert-dialog-title';\n\n@Component({\n selector: 'sc-alert-dialog',\n imports: [\n ScButton,\n ScAlertDialogFooter,\n ScAlertDialogHeader,\n ScAlertDialogDescription,\n ScAlertDialogTitle,\n ],\n template: `\n <div sc-alert-dialog-header>\n <h2 sc-alert-dialog-title>{{ data.title }}</h2>\n\n <p sc-alert-dialog-description>\n {{ data.description }}\n </p>\n </div>\n\n <div sc-alert-dialog-footer>\n <button class=\"mt-2 sm:mt-0\" (click)=\"close(false)\" variant=\"outline\" sc-button>\n Cancel\n </button>\n <button (click)=\"close(true)\" sc-button>{{ data.action }}</button>\n </div>\n `,\n host: {\n '[class]': 'class()',\n '(animationend)': 'handleAnimationEnd($event)',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAlertDialog {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 grid w-full max-w-[calc(100%-2rem)] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n this.classInput(),\n ),\n );\n\n private readonly dialogRef = inject(DialogRef);\n protected readonly data = inject(DIALOG_DATA);\n\n private readonly scAlertDialogManager = inject(ScAlertDialogManager);\n\n protected readonly state = computed(() => this.scAlertDialogManager.state());\n\n constructor() {\n this.dialogRef.disableClose = true;\n }\n\n private response = false;\n\n protected handleAnimationEnd(event: AnimationEvent): void {\n if (event.target === event.currentTarget && event.animationName === 'exit') {\n this.dialogRef.close(this.response);\n }\n }\n\n protected close(response: boolean) {\n this.scAlertDialogManager.state.set('closed');\n this.response = response;\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { Injectable, effect, inject, linkedSignal, signal } from '@angular/core';\n\nimport { firstValueFrom } from 'rxjs';\n\nimport { ScAlertDialog } from './alert-dialog';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScAlertDialogManager {\n private readonly overlayContainer = inject(OverlayContainer);\n private readonly dialog = inject(Dialog);\n\n readonly isOpen = signal(false);\n\n readonly state = linkedSignal(() => (this.isOpen() ? 'open' : 'closed'));\n\n constructor() {\n effect(() => {\n const overlayDarkBackdrop = this.overlayContainer\n .getContainerElement()\n .querySelector('.cdk-overlay-dark-backdrop');\n if (overlayDarkBackdrop) {\n overlayDarkBackdrop.setAttribute('data-state', this.state());\n }\n });\n }\n\n async open(title: string, description: string, action: string): Promise<boolean> {\n const dialogRef = this.dialog.open<boolean>(ScAlertDialog, {\n minWidth: '300px',\n data: { title: title, description: description, action: action },\n });\n\n this.isOpen.set(true);\n\n return firstValueFrom(dialogRef.closed).then((result) => {\n this.isOpen.set(false);\n return Promise.resolve(!!result);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n primary: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'primary',\n },\n },\n);\n\ntype BadgeVariants = VariantProps<typeof badgeVariants>;\n\n@Component({\n selector: 'div[sc-badge]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBadge {\n readonly variant = input<BadgeVariants['variant']>('primary');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(badgeVariants({ variant: this.variant() }), this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-scroll-area]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[class.scrollbar-gutter-stable-both-edges]': 'true',\n '(mouseover)': 'mouseover()',\n '(mouseout)': 'mouseout()',\n },\n styles: `\n .scrollbar-custom::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n\n .scrollbar-custom::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.05);\n border-radius: 4px;\n }\n\n .scrollbar-custom::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n }\n\n .scrollbar-custom::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.3);\n }\n\n .dark .scrollbar-custom::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.05);\n }\n\n .dark .scrollbar-custom::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2);\n }\n\n .dark .scrollbar-custom::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .scrollbar-hidden::-webkit-scrollbar {\n display: none;\n }\n\n .scrollbar-hidden {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n\n .scrollbar-gutter-stable-both-edges {\n scrollbar-gutter: stable both-edges;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScScrollArea {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative',\n 'overflow-auto scroll-smooth',\n this.state() === 'visible' && 'scrollbar-custom',\n this.state() === 'hidden' && 'scrollbar-hidden',\n this.classInput(),\n ),\n );\n\n private readonly state = signal<'visible' | 'hidden'>('hidden');\n\n protected mouseover() {\n this.state.set('visible');\n }\n\n protected mouseout() {\n this.state.set('hidden');\n }\n}\n","// hover-scrollbar.component.ts\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n OnChanges,\n SimpleChanges,\n input,\n viewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-hover-scrollbar',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"relative mx-auto\"\n [ngClass]=\"{\n 'border border-gray-300': border(),\n }\"\n [ngStyle]=\"{\n width: width() + 'px',\n height: height() + 'px',\n }\"\n >\n <div\n class=\"w-full h-full overflow-y-auto p-3 box-border\"\n #contentContainer\n [ngClass]=\"{ 'hover-scrollbar': isScrollable }\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styles: [\n `\n @reference \"tailwindcss\";\n\n /* These styles need to be included as they cannot be done with Tailwind utility classes */\n .hover-scrollbar::-webkit-scrollbar {\n width: 8px;\n }\n\n .hover-scrollbar::-webkit-scrollbar-thumb {\n @apply bg-transparent rounded-md transition-colors duration-300;\n }\n\n .hover-scrollbar:hover::-webkit-scrollbar-thumb {\n @apply bg-gray-400;\n }\n\n .hover-scrollbar:hover::-webkit-scrollbar-thumb:hover {\n @apply bg-gray-500;\n }\n\n /* Firefox */\n .hover-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n transition: scrollbar-color 0.3s ease;\n }\n\n .hover-scrollbar:hover {\n scrollbar-color: theme('colors.gray.400') transparent;\n }\n\n /* Hide scrollbar when not scrollable for WebKit */\n ::-webkit-scrollbar {\n width: 0px;\n background: transparent;\n }\n `,\n ],\n})\nexport class HoverScrollbarComponent implements AfterViewInit, OnChanges {\n readonly width = input(300);\n readonly height = input(200);\n readonly border = input(true);\n\n readonly contentContainer = viewChild.required<ElementRef>('contentContainer');\n\n isScrollable = false;\n\n ngAfterViewInit() {\n this.checkIfScrollable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // When inputs change that might affect scrollability, check again\n if ((changes['width'] || changes['height']) && this.contentContainer()) {\n setTimeout(() => this.checkIfScrollable(), 0);\n }\n }\n\n checkIfScrollable() {\n const element = this.contentContainer().nativeElement;\n this.isScrollable = element.scrollHeight > element.clientHeight;\n\n // Add a mutation observer to check when content changes\n const observer = new MutationObserver(() => {\n this.isScrollable = element.scrollHeight > element.clientHeight;\n });\n\n observer.observe(element, {\n childList: true,\n subtree: true,\n characterData: true,\n });\n }\n}\n","// scroll-area.component.ts\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, OnDestroy, viewChild } from '@angular/core';\n\n@Component({\n selector: 'sc-scroll-area3',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"h-[8.5rem] w-96 max-w-[calc(100vw-8rem)] relative\">\n <div\n class=\"h-full overflow-y-scroll overscroll-contain rounded-md outline outline-1 -outline-offset-1 outline-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-800 scrollbar-hide\"\n #viewport\n (scroll)=\"onScroll()\"\n (mouseenter)=\"isHovering = true\"\n (mouseleave)=\"isHovering = false\"\n >\n <div class=\"flex flex-col gap-4 py-3 pr-6 pl-4 text-sm leading-[1.375rem] text-gray-900\">\n <p>\n Vernacular architecture is building done outside any academic tradition, and without\n professional guidance. It is not a particular architectural movement or style, but\n rather a broad category, encompassing a wide range and variety of building types, with\n differing methods of construction, from around the world, both historical and extant and\n classical and modern. Vernacular architecture constitutes 95% of the world's built\n environment, as estimated in 1995 by Amos Rapoport, as measured against the small\n percentage of new buildings every year designed by architects and built by engineers.\n </p>\n <p>\n This type of architecture usually serves immediate, local needs, is constrained by the\n materials available in its particular region and reflects local traditions and cultural\n practices. The study of vernacular architecture does not examine formally schooled\n architects, but instead that of the design skills and tradition of local builders, who\n were rarely given any attribution for the work. More recently, vernacular architecture\n has been examined by designers and the building industry in an effort to be more energy\n conscious with contemporary design and construction—part of a broader interest in\n sustainable design.\n </p>\n </div>\n </div>\n <div\n class=\"absolute top-0 right-1 w-1 h-[calc(100%-0.5rem)] my-1 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute w-full rounded-full bg-gray-500 cursor-pointer\"\n #thumb\n [style.height.%]=\"thumbHeight\"\n [style.top.%]=\"thumbTop\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n </div>\n `,\n styles: [\n `\n /* Hide default scrollbar for Chrome, Safari and Opera */\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide default scrollbar for IE, Edge and Firefox */\n .scrollbar-hide {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `,\n ],\n})\nexport class ScrollAreaComponent implements OnDestroy, AfterViewInit {\n readonly viewportRef = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n readonly thumbRef = viewChild.required<ElementRef<HTMLDivElement>>('thumb');\n\n isScrolling = false;\n isHovering = false;\n isDragging = false;\n scrollTimeout: any;\n thumbHeight = 20;\n thumbTop = 0;\n startY = 0;\n startScrollTop = 0;\n\n constructor() {\n // Add document-level event listeners for drag operations\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngOnDestroy() {\n // Clean up event listeners\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngAfterViewInit() {\n this.updateThumb();\n }\n\n onScroll() {\n this.updateThumb();\n this.isScrolling = true;\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(() => {\n this.isScrolling = false;\n }, 300);\n }\n\n updateThumb() {\n const viewport = this.viewportRef().nativeElement;\n const scrollHeight = viewport.scrollHeight;\n const clientHeight = viewport.clientHeight;\n\n // Calculate thumb height as percentage of visible area\n this.thumbHeight = (clientHeight / scrollHeight) * 100;\n\n // Calculate thumb position\n this.thumbTop = (viewport.scrollTop / (scrollHeight - clientHeight)) * (100 - this.thumbHeight);\n }\n\n startDragging(event: MouseEvent) {\n this.isDragging = true;\n this.startY = event.clientY;\n this.startScrollTop = this.viewportRef().nativeElement.scrollTop;\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent) {\n if (!this.isDragging) return;\n\n const viewport = this.viewportRef().nativeElement;\n const deltaY = event.clientY - this.startY;\n const scrollbarHeight = viewport.clientHeight;\n const scrollContentHeight = viewport.scrollHeight;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentHeight / scrollbarHeight;\n\n // Update scroll position\n viewport.scrollTop = this.startScrollTop + deltaY * scrollRatio;\n\n event.preventDefault();\n }\n\n onMouseUp() {\n this.isDragging = false;\n }\n}\n","// horizontal-scroll-area.component.ts\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, OnDestroy, viewChild } from '@angular/core';\n\n@Component({\n selector: 'sc-horizontal-scroll-area',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"relative w-full max-w-4xl\">\n <!-- Horizontal scroll container -->\n <div\n class=\"overflow-x-scroll overflow-y-hidden overscroll-contain h-64 rounded-md outline outline-1 -outline-offset-1 outline-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-800 scrollbar-hide\"\n #viewport\n (scroll)=\"onScroll()\"\n (mouseenter)=\"isHovering = true\"\n (mouseleave)=\"isHovering = false\"\n >\n <!-- Content container -->\n <div class=\"flex flex-row gap-4 p-4 min-w-max\">\n <!-- Cards -->\n @for (item of items; track item) {\n <div\n class=\"bg-white rounded-lg shadow-md w-64 h-52 shrink-0 border border-gray-200 hover:border-blue-500 transition-colors duration-200\"\n >\n <div class=\"p-4 h-full flex flex-col\">\n <h3 class=\"text-lg font-medium text-gray-900 mb-2\">{{ item.title }}</h3>\n <p class=\"text-sm text-gray-600 grow\">{{ item.description }}</p>\n <div class=\"mt-4 text-xs text-gray-500\">{{ item.category }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- Custom scroll bar -->\n <div\n class=\"absolute bottom-0 left-0 right-4 h-1 mx-2 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute h-full rounded-full bg-gray-500 cursor-pointer\"\n #thumb\n [style.width.%]=\"thumbWidth\"\n [style.left.%]=\"thumbLeft\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n\n <!-- Arrow navigation -->\n <button\n class=\"absolute top-1/2 left-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollLeft }\"\n [disabled]=\"!canScrollLeft\"\n (click)=\"scrollLeft()\"\n aria-label=\"Scroll left\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n\n <button\n class=\"absolute top-1/2 right-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollRight }\"\n [disabled]=\"!canScrollRight\"\n (click)=\"scrollRight()\"\n aria-label=\"Scroll right\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n `,\n styles: [\n `\n /* Hide default scrollbar for Chrome, Safari and Opera */\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide default scrollbar for IE, Edge and Firefox */\n .scrollbar-hide {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `,\n ],\n})\nexport class HorizontalScrollAreaComponent implements OnDestroy, AfterViewInit {\n readonly viewportRef = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n readonly thumbRef = viewChild.required<ElementRef<HTMLDivElement>>('thumb');\n\n isScrolling = false;\n isHovering = false;\n isDragging = false;\n scrollTimeout: any;\n thumbWidth = 20;\n thumbLeft = 0;\n startX = 0;\n startScrollLeft = 0;\n canScrollLeft = false;\n canScrollRight = true;\n\n // Sample items for demonstration\n items = Array(15)\n .fill(0)\n .map((_, i) => ({\n title: `Item ${i + 1}`,\n description: `This is a description for item ${i + 1}. It contains some sample text to demonstrate the horizontal scrolling functionality.`,\n category: ['Design', 'Development', 'Marketing', 'Research'][i % 4],\n }));\n\n constructor() {\n // Add document-level event listeners for drag operations\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngOnDestroy() {\n // Clean up event listeners\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngAfterViewInit() {\n this.updateThumb();\n // Initial check for scroll buttons\n this.updateScrollButtonsState();\n }\n\n onScroll() {\n this.updateThumb();\n this.updateScrollButtonsState();\n this.isScrolling = true;\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(() => {\n this.isScrolling = false;\n }, 300);\n }\n\n updateThumb() {\n const viewport = this.viewportRef().nativeElement;\n const scrollWidth = viewport.scrollWidth;\n const clientWidth = viewport.clientWidth;\n\n // Calculate thumb width as percentage of visible area\n this.thumbWidth = (clientWidth / scrollWidth) * 100;\n\n // Calculate thumb position\n this.thumbLeft = (viewport.scrollLeft / (scrollWidth - clientWidth)) * (100 - this.thumbWidth);\n }\n\n updateScrollButtonsState() {\n const viewport = this.viewportRef().nativeElement;\n this.canScrollLeft = viewport.scrollLeft > 0;\n this.canScrollRight = viewport.scrollLeft < viewport.scrollWidth - viewport.clientWidth;\n }\n\n startDragging(event: MouseEvent) {\n this.isDragging = true;\n this.startX = event.clientX;\n this.startScrollLeft = this.viewportRef().nativeElement.scrollLeft;\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent) {\n if (!this.isDragging) return;\n\n const viewport = this.viewportRef().nativeElement;\n const deltaX = event.clientX - this.startX;\n const scrollbarWidth = viewport.clientWidth;\n const scrollContentWidth = viewport.scrollWidth;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentWidth / scrollbarWidth;\n\n // Update scroll position\n viewport.scrollLeft = this.startScrollLeft + deltaX * scrollRatio;\n\n event.preventDefault();\n }\n\n onMouseUp() {\n this.isDragging = false;\n }\n\n scrollLeft() {\n const viewport = this.viewportRef().nativeElement;\n viewport.scrollBy({ left: -300, behavior: 'smooth' });\n }\n\n scrollRight() {\n const viewport = this.viewportRef().nativeElement;\n viewport.scrollBy({ left: 300, behavior: 'smooth' });\n }\n}\n","// flexible-scroll-area.component.ts\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n input,\n viewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-flexible-scroll-area',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"relative\"\n [ngClass]=\"{\n 'w-full max-w-4xl': orientation === 'horizontal',\n 'h-[8.5rem] w-96 max-w-[calc(100vw-8rem)]': orientation === 'vertical',\n }\"\n >\n <!-- Main scroll container -->\n <div\n class=\"overscroll-contain rounded-md outline -outline-offset-1 outline-gray-200 focus-visible:outline focus-visible:outline-blue-800 scrollbar-hide\"\n #viewport\n [ngClass]=\"{\n 'overflow-x-scroll overflow-y-hidden h-64': orientation === 'horizontal',\n 'overflow-y-scroll overflow-x-hidden h-full': orientation === 'vertical',\n }\"\n (scroll)=\"onScroll()\"\n (mouseenter)=\"isHovering = true\"\n (mouseleave)=\"isHovering = false\"\n >\n <!-- Content container with proper layout based on orientation -->\n <div\n [ngClass]=\"{\n 'flex flex-row gap-4 p-4 min-w-max': orientation === 'horizontal',\n 'flex flex-col gap-4 py-3 pr-6 pl-4 text-sm leading-[1.375rem] text-gray-900':\n orientation === 'vertical',\n }\"\n >\n <!-- Projected content from parent component -->\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- Custom scrollbar for vertical orientation -->\n @if (orientation === 'vertical') {\n <div\n class=\"absolute top-0 right-1 w-1 h-[calc(100%-0.5rem)] my-1 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute w-full rounded-full bg-gray-500 cursor-pointer\"\n #verticalThumb\n [style.height.%]=\"thumbSize\"\n [style.top.%]=\"thumbPosition\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n }\n\n <!-- Custom scrollbar for horizontal orientation -->\n @if (orientation === 'horizontal') {\n <div\n class=\"absolute bottom-0 left-0 right-4 h-1 mx-2 rounded-full bg-gray-200 opacity-0 transition-opacity delay-300\"\n [ngClass]=\"{ 'opacity-100 delay-0 duration-75': isScrolling || isHovering }\"\n >\n <div\n class=\"absolute h-full rounded-full bg-gray-500 cursor-pointer\"\n #horizontalThumb\n [style.width.%]=\"thumbSize\"\n [style.left.%]=\"thumbPosition\"\n (mousedown)=\"startDragging($event)\"\n ></div>\n </div>\n }\n\n <!-- Navigation buttons for horizontal scrolling -->\n @if (orientation === 'horizontal' && showNavButtons()) {\n <button\n class=\"absolute top-1/2 left-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollStart }\"\n [disabled]=\"!canScrollStart\"\n (click)=\"scrollPrev()\"\n aria-label=\"Scroll left\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n <button\n class=\"absolute top-1/2 right-2 -translate-y-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollEnd }\"\n [disabled]=\"!canScrollEnd\"\n (click)=\"scrollNext()\"\n aria-label=\"Scroll right\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n }\n\n <!-- Navigation buttons for vertical scrolling -->\n @if (orientation === 'vertical' && showNavButtons()) {\n <button\n class=\"absolute top-2 left-1/2 -translate-x-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollStart }\"\n [disabled]=\"!canScrollStart\"\n (click)=\"scrollPrev()\"\n aria-label=\"Scroll up\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M5 15l7-7 7 7\"\n />\n </svg>\n </button>\n <button\n class=\"absolute bottom-2 left-1/2 -translate-x-1/2 bg-white/80 hover:bg-white rounded-full shadow-md p-2 opacity-0 transition-opacity duration-200\"\n [ngClass]=\"{ 'opacity-100': isHovering && canScrollEnd }\"\n [disabled]=\"!canScrollEnd\"\n (click)=\"scrollNext()\"\n aria-label=\"Scroll down\"\n >\n <svg\n class=\"h-5 w-5 text-gray-700\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n </button>\n }\n </div>\n `,\n styles: [\n `\n /* Hide default scrollbar for Chrome, Safari and Opera */\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide default scrollbar for IE, Edge and Firefox */\n .scrollbar-hide {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `,\n ],\n})\nexport class FlexibleScrollAreaComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n readonly height = input('8.5rem');\n readonly width = input('96');\n readonly showNavButtons = input(true);\n\n readonly viewportRef = viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n\n isScrolling = false;\n isHovering = false;\n isDragging = false;\n scrollTimeout: any;\n thumbSize = 20;\n thumbPosition = 0;\n startPoint = 0;\n startScrollPosition = 0;\n canScrollStart = false;\n canScrollEnd = true;\n\n constructor() {\n // Add document-level event listeners for drag operations\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngOnInit() {\n // Initial check to make sure we have a valid orientation\n if (this.orientation !== 'vertical' && this.orientation !== 'horizontal') {\n this.orientation = 'vertical';\n }\n }\n\n ngOnDestroy() {\n // Clean up event listeners\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n }\n\n ngAfterViewInit() {\n this.updateThumb();\n this.updateScrollButtonsState();\n }\n\n onScroll() {\n this.updateThumb();\n this.updateScrollButtonsState();\n this.isScrolling = true;\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(() => {\n this.isScrolling = false;\n }, 300);\n }\n\n updateThumb() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n const scrollHeight = viewport.scrollHeight;\n const clientHeight = viewport.clientHeight;\n\n // Calculate thumb height as percentage of visible area\n this.thumbSize = (clientHeight / scrollHeight) * 100;\n\n // Calculate thumb position\n this.thumbPosition =\n (viewport.scrollTop / (scrollHeight - clientHeight)) * (100 - this.thumbSize);\n } else {\n const scrollWidth = viewport.scrollWidth;\n const clientWidth = viewport.clientWidth;\n\n // Calculate thumb width as percentage of visible area\n this.thumbSize = (clientWidth / scrollWidth) * 100;\n\n // Calculate thumb position\n this.thumbPosition =\n (viewport.scrollLeft / (scrollWidth - clientWidth)) * (100 - this.thumbSize);\n }\n }\n\n updateScrollButtonsState() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n this.canScrollStart = viewport.scrollTop > 0;\n this.canScrollEnd = viewport.scrollTop < viewport.scrollHeight - viewport.clientHeight - 1; // -1 for rounding errors\n } else {\n this.canScrollStart = viewport.scrollLeft > 0;\n this.canScrollEnd = viewport.scrollLeft < viewport.scrollWidth - viewport.clientWidth - 1; // -1 for rounding errors\n }\n }\n\n startDragging(event: MouseEvent) {\n this.isDragging = true;\n\n if (this.orientation === 'vertical') {\n this.startPoint = event.clientY;\n this.startScrollPosition = this.viewportRef().nativeElement.scrollTop;\n } else {\n this.startPoint = event.clientX;\n this.startScrollPosition = this.viewportRef().nativeElement.scrollLeft;\n }\n\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent) {\n if (!this.isDragging) return;\n\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n const deltaY = event.clientY - this.startPoint;\n const scrollbarHeight = viewport.clientHeight;\n const scrollContentHeight = viewport.scrollHeight;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentHeight / scrollbarHeight;\n\n // Update scroll position\n viewport.scrollTop = this.startScrollPosition + deltaY * scrollRatio;\n } else {\n const deltaX = event.clientX - this.startPoint;\n const scrollbarWidth = viewport.clientWidth;\n const scrollContentWidth = viewport.scrollWidth;\n\n // Calculate the scroll ratio\n const scrollRatio = scrollContentWidth / scrollbarWidth;\n\n // Update scroll position\n viewport.scrollLeft = this.startScrollPosition + deltaX * scrollRatio;\n }\n\n event.preventDefault();\n }\n\n onMouseUp() {\n this.isDragging = false;\n }\n\n scrollPrev() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n viewport.scrollBy({ top: -200, behavior: 'smooth' });\n } else {\n viewport.scrollBy({ left: -300, behavior: 'smooth' });\n }\n }\n\n scrollNext() {\n const viewport = this.viewportRef().nativeElement;\n\n if (this.orientation === 'vertical') {\n viewport.scrollBy({ top: 200, behavior: 'smooth' });\n } else {\n viewport.scrollBy({ left: 300, behavior: 'smooth' });\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const SC_TOAST_ID = new InjectionToken<string>('SC_TOAST_ID');\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n// Define allowed state values\nexport type ToastState = 'open' | 'closed';\n\n@Injectable()\nexport class ToastService {\n private readonly stateSource = new Subject<ToastState>();\n currentState = this.stateSource.asObservable();\n\n updateState(newState: ToastState) {\n this.stateSource.next(newState);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n TemplateRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-toast-container',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef(); injector: injector\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block md:max-w-[420px]', this.classInput()));\n\n readonly templateRef = input<TemplateRef<unknown> | null>(null);\n\n protected readonly injector = inject(Injector);\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport { GlobalPositionStrategy, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, TemplateRef, inject } from '@angular/core';\n\nimport { ScToastContainer } from './toast-container';\nimport { SC_TOAST_ID } from './toast-id';\nimport { ToastService } from './toast.service';\n\ninterface ToastRef {\n id: string;\n overlayRef: OverlayRef;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Toaster {\n private readonly toastRefs: ToastRef[] = [];\n private readonly maxToasts = 3;\n\n private readonly overlay = inject(Overlay);\n\n private readonly idGenerator = inject(_IdGenerator);\n\n private readonly injector = inject(Injector);\n\n /**\n * Show a toast notification\n * @returns The ID of the created toast\n */\n show(toastTemplate: TemplateRef<unknown>): string {\n if (this.toastRefs.length >= this.maxToasts) {\n // If we've reached max, remove the oldest toast\n this.closeToast(this.toastRefs[0].id);\n }\n\n // Generate ID if not provided\n const toastId = this.idGenerator.getId('sc-toast-');\n\n // Create the toast with this ID\n this.createToast(toastTemplate, toastId);\n\n return toastId;\n }\n\n /**\n * Remove a specific toast by ID\n */\n remove(id: string): boolean {\n const index = this.toastRefs.findIndex((ref) => ref.id === id);\n if (index > -1) {\n this.closeToast(id);\n return true;\n }\n return false;\n }\n\n /**\n * Remove all currently displayed toasts\n */\n clear(): void {\n while (this.toastRefs.length > 0) {\n this.closeToast(this.toastRefs[0].id);\n }\n }\n\n private createToast(toastTemplate: TemplateRef<unknown>, id: string): void {\n // Recalculate positions for all toasts\n this.updateToastPositions();\n\n const positionStrategy = this.overlay.position().global().bottom('20px').right('20px');\n\n const overlayConfig = new OverlayConfig({\n positionStrategy,\n });\n\n const overlayRef = this.overlay.create(overlayConfig);\n const s = new ToastService();\n const toastPortal = new ComponentPortal(ScToastContainer, null, this.createInjector(id, s));\n\n const toastRef: ComponentRef<ScToastContainer> = overlayRef.attach(toastPortal);\n toastRef.setInput('templateRef', toastTemplate);\n\n // Add toast reference with ID to our array\n this.toastRefs.push({\n id: id,\n overlayRef,\n });\n\n this.updateToastPositions();\n }\n\n private closeToast(id: string): void {\n const index = this.toastRefs.findIndex((ref) => ref.id === id);\n if (index > -1) {\n const { overlayRef } = this.toastRefs[index];\n this.toastRefs.splice(index, 1);\n overlayRef.dispose();\n\n // Recalculate positions for remaining toasts\n this.updateToastPositions();\n }\n }\n\n private updateToastPositions(): void {\n // Update positions of all existing toasts\n const reversedToastRefs = this.toastRefs.slice().reverse();\n reversedToastRefs.forEach((ref, index) => {\n const position = ref.overlayRef.getConfig().positionStrategy as GlobalPositionStrategy;\n position.bottom(`${20 + index * 110}px`).right('20px');\n ref.overlayRef.updatePosition();\n });\n }\n\n private createInjector(id: string, s: ToastService): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: SC_TOAST_ID, useValue: id },\n { provide: ToastService, useValue: s },\n ],\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n afterNextRender,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { Subject, combineLatest } from 'rxjs';\n\nimport { SC_TOAST_ID } from './toast-id';\nimport { ToastService, ToastState } from './toast.service';\nimport { Toaster } from './toaster';\n\nconst toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-top data-[state=open]:sm:slide-in-from-bottom',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive:\n 'destructive group border-destructive bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\ntype ToastVariants = VariantProps<typeof toastVariants>;\n\n@Component({\n selector: 'div[sc-toast]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'status',\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '[attr.data-swipe]': 'swipe()',\n '(animationend)': 'animationend()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToast implements OnInit {\n private readonly toaster = inject(Toaster);\n\n private readonly toastService = inject(ToastService);\n\n private readonly toastId = inject<string>(SC_TOAST_ID);\n\n readonly variant = input<ToastVariants['variant']>('default');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(toastVariants({ variant: this.variant() }), this.classInput()),\n );\n\n protected readonly state = toSignal<ToastState>(this.toastService.currentState);\n\n //TODO make swipe works\n protected readonly swipe = signal<'start' | 'move' | 'cancel' | 'end' | undefined>(undefined);\n\n private readonly animationState = new Subject<'end'>();\n\n constructor() {\n afterNextRender(() => {\n this.toastService.updateState('open');\n });\n\n combineLatest([this.toastService.currentState, this.animationState]).subscribe(\n ([state, animationState]) => {\n if (state === 'closed' && animationState === 'end') {\n this.toaster.remove(this.toastId);\n }\n },\n );\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.toastService.updateState('closed');\n }, 3000);\n }\n\n //TODO try to use AnimationEvent: animationName property\n protected animationend() {\n if (this.state() === 'closed') {\n this.animationState.next('end');\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-toast-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid gap-1', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-toast-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm font-semibold', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-toast-description], div[sc-toast-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm opacity-90', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-toast-action]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastAction {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ToastService } from './toast.service';\n\n@Component({\n selector: 'button[sc-toast-close]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'close()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToastClose {\n private readonly toastService = inject(ToastService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n this.classInput(),\n ),\n );\n\n protected close() {\n this.toastService.updateState('closed');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'input[sc-slider]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[type]': 'type()',\n '(input)': 'handleInput($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSlider {\n private readonly host = inject(ElementRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'appearance-none bg-transparent w-full rounded-full h-2',\n //track\n '[&::-webkit-slider-runnable-track]:h-2 [&::-webkit-slider-runnable-track]:rounded-full',\n //thumb\n '[&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:size-5 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-primary [&::-webkit-slider-thumb]:-mt-1.5 [&::-moz-range-thumb]:border-none [&::-moz-range-thumb]:size-5 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-primary',\n this.classInput(),\n ),\n );\n\n readonly value = model<number>(0);\n readonly min = input<number>(0);\n readonly max = input<number>(100);\n\n readonly type = input<'range'>('range');\n\n constructor() {\n effect(() => {\n const progress = (this.value() / this.max()) * 100;\n this.host.nativeElement.style.background = `linear-gradient(to right, var(--primary) ${progress}%, var(--input) ${progress}%)`;\n // Add a transition for smooth updates when progress changes\n this.host.nativeElement.style.transition = 'background 0.3s ease';\n });\n\n afterNextRender(() => {\n if (this.host.nativeElement.value > 0) {\n this.value.set(this.host.nativeElement.value);\n }\n });\n }\n\n protected handleInput(event: KeyboardEvent) {\n if (!event.target) return;\n this.value.set(+(event.target as HTMLInputElement).value);\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nexport interface ScCheckboxChange {\n checked: boolean;\n value: string;\n}\n\n@Component({\n selector: 'input[sc-checkbox]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[id]': 'id()',\n '[type]': 'type()',\n '[class]': 'class()',\n '[checked]': 'checked()',\n '(click)': 'handleClick($event)',\n 'data-slot': 'control',\n },\n styles: `\n :root {\n --check-svg: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E\");\n --minus-svg: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E\");\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCheckbox {\n private readonly hostRef = inject(ElementRef);\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-checkbox-'), {\n alias: 'id',\n });\n readonly id = linkedSignal(() => this.idInput());\n\n readonly type = input<'checkbox'>('checkbox');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n //Base styles\n 'peer',\n 'appearance-none', //removes default browser styling\n 'size-4', //sets width and height (16px)\n 'shrink-0',\n 'border border-primary', //adds border\n 'rounded-sm', //adds border radius\n 'shadow',\n 'cursor-pointer',\n 'outline-none',\n 'transition-all duration-200', //adds smooth transitions\n\n //Interactive states\n 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring',\n\n //Checked state\n 'checked:bg-primary checked:relative',\n 'checked:after:content-[\"\"] checked:after:absolute checked:after:inset-0 checked:after:bg-primary-foreground',\n 'checked:after:mask-(image:--check-svg)',\n 'checked:after:mask-no-repeat',\n 'checked:after:mask-center',\n 'checked:after:mask-contain',\n\n //Indeterminate state\n 'indeterminate:bg-primary indeterminate:relative',\n 'indeterminate:after:content-[\"\"] indeterminate:after:absolute indeterminate:after:inset-0 indeterminate:after:bg-primary-foreground',\n 'indeterminate:after:mask-(image:--minus-svg)',\n 'indeterminate:after:mask-no-repeat',\n 'indeterminate:after:mask-center',\n 'indeterminate:after:mask-contain',\n\n //Disabled state\n 'disabled:opacity-50', //styles for disabled state\n 'disabled:cursor-not-allowed', //changes cursor\n\n this.classInput(),\n ),\n );\n\n readonly indeterminateInput = input<boolean, unknown>(false, {\n alias: 'indeterminate',\n transform: booleanAttribute,\n });\n private readonly indeterminate = linkedSignal(() => this.indeterminateInput());\n\n readonly checkedInput = input<boolean, unknown>(false, {\n alias: 'checked',\n transform: booleanAttribute,\n });\n protected readonly checked = linkedSignal(() => this.checkedInput());\n readonly checkedChange = output<boolean>();\n\n readonly value = input<string>('');\n readonly change = output<ScCheckboxChange>();\n\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n afterRenderEffect(() => {\n this.hostRef.nativeElement.indeterminate = this.indeterminate();\n });\n }\n\n protected handleClick(event: MouseEvent): void {\n if (this.indeterminate()) {\n this.indeterminate.set(false);\n }\n\n this.checked.update((checked: boolean) => !checked);\n this.checkedChange.emit(this.checked());\n this.change.emit({ checked: this.checked(), value: this.value() });\n event.preventDefault();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCheckbox, ScCheckboxChange } from '../checkbox/checkbox';\n\n@Component({\n selector: 'sc-checkbox-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScCheckboxGroup),\n multi: true,\n },\n ],\n})\nexport class ScCheckboxGroup implements AfterContentInit, ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('space-y-2', this.classInput()));\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n readonly value = model<string[]>([]);\n\n readonly checkboxes = contentChildren(ScCheckbox, { descendants: true });\n\n ngAfterContentInit() {\n this.checkboxes().forEach((checkbox) => {\n checkbox.change.subscribe((c: ScCheckboxChange) => {\n let values = this.value();\n if (c.checked) {\n values = [...values, c.value];\n } else {\n values = values.filter((v) => v !== c.value);\n }\n this.setValue(values);\n });\n });\n }\n\n private setValue(value: string[]) {\n this.value.set(value);\n\n this.onChange(value);\n this.changeDetectorRef.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange: (value: string[]) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched: () => void = () => {};\n\n writeValue(value: string[]): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'label[sc-checkbox-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCheckboxItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center gap-2', this.classInput()));\n}\n","import { CdkAccordion, CdkAccordionModule } from '@angular/cdk/accordion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-accordion',\n imports: [CdkAccordionModule],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkAccordion],\n})\nexport class ScAccordion {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block', this.classInput()));\n}\n","import { Injectable, linkedSignal, signal } from '@angular/core';\n\n@Injectable()\nexport class ScAccordionItemState {\n readonly open = signal(false);\n\n readonly state = linkedSignal(() => (this.open() ? 'open' : 'closed'));\n}\n","import { CdkAccordionItem } from '@angular/cdk/accordion';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScAccordionItemState } from './accordion-item-state';\n\n@Component({\n selector: 'sc-accordion-item',\n imports: [],\n template: `\n <ng-content select=\"sc-accordion-header\" />\n @if (open()) {\n <ng-content select=\"sc-accordion-content\" />\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScAccordionItemState],\n hostDirectives: [CdkAccordionItem],\n})\nexport class ScAccordionItem implements OnInit {\n private readonly scAccordionItemState = inject(ScAccordionItemState);\n\n protected readonly open = computed(() => this.scAccordionItemState.open());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block border-b', this.classInput()));\n\n protected readonly cdkAccordionItem = inject(CdkAccordionItem);\n\n toggle() {\n this.cdkAccordionItem.toggle();\n }\n\n ngOnInit(): void {\n this.cdkAccordionItem.opened.subscribe(() => {\n this.scAccordionItemState.open.set(true);\n });\n\n this.cdkAccordionItem.closed.subscribe(() => {\n this.scAccordionItemState.state.set('closed');\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-accordion-header',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAccordionHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScAccordionItem } from './accordion-item';\nimport { ScAccordionItemState } from './accordion-item-state';\n\n@Component({\n selector: 'sc-accordion-toggle',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(click)': 'toggle()',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAccordionToggle {\n private readonly scAccordionItem = inject(ScAccordionItem);\n\n private readonly scAccordionItemState = inject(ScAccordionItemState);\n\n protected readonly state = computed(() => this.scAccordionItemState.state());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180',\n this.classInput(),\n ),\n );\n\n protected toggle() {\n this.scAccordionItem.toggle();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScAccordionItemState } from './accordion-item-state';\n\n@Component({\n selector: 'sc-accordion-content',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-state]': 'state()',\n '(animationend)': 'handleAnimationEnd($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAccordionContent {\n private readonly scAccordionItemState = inject(ScAccordionItemState);\n\n protected readonly state = computed(() => this.scAccordionItemState.state());\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'block overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down',\n this.classInput(),\n ),\n );\n\n protected handleAnimationEnd(event: AnimationEvent): void {\n if (event.target === event.currentTarget && event.animationName === 'accordion-up') {\n this.scAccordionItemState.open.set(false);\n }\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'input[sc-switch]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[id]': 'id()',\n '[type]': 'type()',\n '[checked]': 'checked()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSwitch {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n // Base styling\n 'appearance-none',\n 'w-9 h-5',\n 'relative',\n 'cursor-pointer',\n 'inline-block',\n 'transition-colors duration-200',\n\n // Focus handling\n 'focus:outline-0',\n 'border-0',\n 'focus:ring-offset-transparent',\n 'focus:ring-transparent',\n 'focus-within:ring-0',\n 'focus:shadow-none',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n\n // Pseudo-element positioning\n '[&::after]:absolute [&::before]:absolute',\n '[&::after]:top-0 [&::before]:top-0',\n '[&::after]:block [&::before]:inline-block',\n '[&::before]:rounded-full [&::after]:rounded-full',\n\n // After element (toggle knob)\n \"[&::after]:content-['']\",\n '[&::after]:w-4 [&::after]:h-4',\n '[&::after]:mt-0.5 [&::after]:ml-0.5',\n '[&::after]:shadow-md',\n '[&::after]:duration-200',\n '[&::after]:bg-background',\n '[&::after]:transition-transform',\n\n // Before element (track)\n \"[&::before]:content-['']\",\n '[&::before]:w-9 [&::before]:h-full',\n '[&::before]:shadow-[inset_0_0_#000]',\n '[&::before]:bg-input',\n '[&::before]:transition-colors [&::before]:duration-200',\n\n // Hover state\n 'hover:[&::before]:bg-input/90',\n 'hover:checked:[&::before]:bg-primary/90',\n\n // Checked state\n 'checked:[&::before]:bg-primary',\n 'checked:[&::after]:duration-300',\n 'checked:[&::after]:translate-x-4',\n\n // Disabled state\n 'disabled:[&::after]:bg-opacity-75',\n 'disabled:cursor-not-allowed',\n 'disabled:checked:[&::before]:bg-opacity-40',\n 'disabled:[&::before]:bg-muted/50',\n\n // Custom classes\n this.classInput(),\n ),\n );\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-switch-'), {\n alias: 'id',\n });\n readonly id = linkedSignal(() => this.idInput());\n\n readonly checkedInput = input<boolean, unknown>(false, {\n alias: 'checked',\n transform: booleanAttribute,\n });\n protected readonly checked = linkedSignal(() => this.checkedInput());\n readonly checkedChange = output<boolean>();\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n protected readonly disabled = linkedSignal(() => this.disabledInput());\n\n readonly type = input<'checkbox'>('checkbox');\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-radio-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'radio-group',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScRadioGroup),\n multi: true,\n },\n ],\n})\nexport class ScRadioGroup implements ControlValueAccessor {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('grid gap-2', this.classInput()));\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = linkedSignal(() => this.disabledInput());\n\n readonly name = input<string>('');\n\n readonly value = model<string | undefined>(undefined);\n\n setValue(newValue: string) {\n this.value.set(newValue);\n this.onChange(newValue);\n this.changeDetectorRef.markForCheck();\n }\n\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScRadioGroup } from './radio-group';\n\n@Component({\n selector: 'input[sc-radio]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[id]': 'id()',\n '[name]': 'name()',\n '[disabled]': 'disabled()',\n '[value]': 'value()',\n '[checked]': 'checked()',\n '[type]': 'type()',\n '(click)': 'select()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRadio {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative',\n 'appearance-none',\n // 'size-5 rounded-full border-2 border-gray-300 cursor-pointer checked:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-300',\n\n 'aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n\n \"[&::before]:content-['']\",\n '[&::before]:absolute [&::before]:top-1/2 [&::before]:left-1/2 [&::before]:-translate-x-1/2 [&::before]:-translate-y-1/2 [&::before]:size-2.5 [&::before]:rounded-full [&::before]:bg-primary [&::before]:opacity-0 [&::before]:transform [&::before]:scale-0 [&::before]:transition-all [&::before]:duration-200',\n\n 'checked:[&::before]:opacity-100 checked:[&::before]:scale-100',\n\n this.classInput(),\n ),\n );\n\n readonly type = input<'radio'>('radio');\n\n private readonly scRadioGroup = inject(ScRadioGroup);\n\n protected readonly name = computed(() => {\n return this.scRadioGroup.name();\n });\n\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly disabled = computed(() => this.disabledInput() || this.scRadioGroup.disabled());\n\n readonly value = input.required<string>();\n\n readonly idInput = input<string>(inject(_IdGenerator).getId('sc-radio-'), {\n alias: 'id',\n });\n\n readonly id = linkedSignal(() => this.idInput());\n\n protected readonly checked = computed(() => {\n return this.value() === this.scRadioGroup.value();\n });\n\n protected select() {\n if (this.disabled()) {\n return;\n }\n\n this.scRadioGroup.setValue(this.value());\n }\n}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScLabel } from '../label';\nimport { ScRadio } from './radio';\n\n@Component({\n selector: 'sc-radio-item',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'radio-item',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRadioItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('flex items-center space-x-2', this.classInput()));\n\n readonly id = signal<string>(inject(_IdGenerator).getId('sc-radio-'));\n\n readonly scLabel = contentChild(ScLabel);\n\n readonly scRadio = contentChild(ScRadio);\n\n constructor() {\n afterNextRender(() => {\n this.scLabel()?.for.set(this.id());\n this.scRadio()?.id.set(this.id());\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-hover-card',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef()\" />\n }\n `,\n host: {\n '[class]': 'class()',\n // '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScHoverCard {\n readonly templateRef = input<TemplateRef<unknown> | null>(null);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'w-full rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n this.classInput(),\n ),\n );\n}\n","import { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScHoverCard } from './hover-card';\n\n@Directive({\n selector: '[scHoverCardTriggerFor]',\n host: {\n '(mouseover)': 'showCard()',\n '(focus)': 'showCard()',\n '(mouseleave)': 'hideCard()',\n '(blur)': 'hideCard()',\n },\n})\nexport class ScHoverCardTriggerFor implements OnDestroy {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly viewContainer = inject(ViewContainerRef);\n\n readonly scHoverCardTriggerFor = input.required<TemplateRef<unknown>>();\n\n private overlayRef: OverlayRef | null = null;\n\n showCard(): void {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n hideCard(): void {\n if (this.overlayRef?.hasAttached() === true) {\n this.overlayRef?.detach();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n private attachTooltip(): void {\n if (this.overlayRef === null) {\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n\n //TODO: add option to change this\n this.overlayRef.updateSize({ width: 320 });\n }\n\n const componentPortal = new ComponentPortal(ScHoverCard, this.viewContainer);\n\n const componentRef: ComponentRef<ScHoverCard> = this.overlayRef.attach(componentPortal);\n\n componentRef.setInput('templateRef', this.scHoverCardTriggerFor());\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions([\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n ]);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AvatarState {\n readonly state = signal<'loading' | 'loaded' | 'error'>('loading');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { AvatarState } from './avatar-state';\n\n@Component({\n selector: 'sc-avatar',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'avatar',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AvatarState],\n})\nexport class ScAvatar {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'relative size-8 inline-flex items-center justify-center overflow-hidden rounded-full',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { AvatarState } from './avatar-state';\n\n@Component({\n selector: 'img[sc-avatar-image]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '(load)': 'handleLoad()',\n '(error)': 'handleError()',\n 'data-slot': 'avatar-image',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAvatarImage {\n readonly avatarState = inject(AvatarState);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute inset-0 h-full w-full object-cover transition-opacity duration-200 z-10',\n this.avatarState.state() === 'loaded' && 'opacity-100',\n this.avatarState.state() === 'loading' && 'opacity-0',\n this.avatarState.state() === 'error' && 'hidden',\n this.classInput(),\n ),\n );\n\n protected handleLoad() {\n this.avatarState.state.set('loaded');\n }\n\n protected handleError() {\n this.avatarState.state.set('error');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { AvatarState } from './avatar-state';\n\n@Component({\n selector: 'div[sc-avatar-fallback]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n 'data-slot': 'avatar-fallback',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAvatarFallback {\n readonly avatarState = inject(AvatarState);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute inset-0 flex size-full items-center justify-center bg-muted uppercase',\n this.avatarState.state() === 'loaded' && 'hidden',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-aspect-ratio',\n imports: [],\n template: `\n <div class=\"absolute inset-0\">\n <ng-content />\n </div>\n `,\n host: {\n '[class]': 'class()',\n '[style.paddingBottom]': 'padding()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAspectRatio {\n readonly ratio = input<number>(1);\n\n protected readonly padding = computed(() => {\n return `${(1 / this.ratio()) * 100}%`;\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('block relative w-full overflow-hidden', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-skeleton',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSkeleton {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('block animate-pulse rounded-md bg-muted', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'table[sc-table]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTable {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('w-full caption-bottom text-sm', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-table-container]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative w-full overflow-auto', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'thead[sc-table-header-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableHeaderGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('[&_tr]:border-b', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'tbody[sc-table-body]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableBody {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('[&_tr:last-child]:border-0', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'tfoot[sc-table-footer]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableFooter {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'th[sc-table-header]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableHeader {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'tr[sc-table-row]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableRow {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'td[sc-table-cell]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableCell {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'caption[sc-table-caption]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableCaption {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('mt-4 text-sm text-muted-foreground', this.classInput()),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-data-table',\n imports: [],\n template: `\n <p>data-table works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDataTable {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-popover',\n imports: [NgTemplateOutlet],\n template: `\n @if (templateRef()) {\n <ng-container *ngTemplateOutlet=\"templateRef()\" />\n }\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPopover {\n templateRef = signal<TemplateRef<unknown> | null>(null);\n\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'z-50 w-full rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n this.class(),\n ),\n );\n}\n","import { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n} from '@angular/core';\n\nimport { ScPopover } from './popover';\n\n@Directive({\n selector: '[scPopoverTriggerFor]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class ScPopoverTriggerFor implements OnDestroy {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly viewContainer = inject(ViewContainerRef);\n\n readonly scPopoverTriggerFor = input.required<TemplateRef<unknown>>();\n\n private overlayRef: OverlayRef | null = null;\n\n open(): void {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n close(): void {\n if (this.overlayRef?.hasAttached() === true) {\n this.overlayRef?.detach();\n }\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n private attachTooltip(): void {\n if (this.overlayRef === null) {\n const positionStrategy = this.getPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n //TODO make this a input\n this.overlayRef.updateSize({ width: 320 });\n\n // const injector = Injector.create({\n // providers: [\n // {\n // provide: TOOLTIP_DATA,\n // useValue: this.appTooltip,\n // },\n // ],\n // });\n const componentPortal = new ComponentPortal(ScPopover, this.viewContainer);\n\n // Attach tooltip portal to overlay\n const componentRef: ComponentRef<ScPopover> = this.overlayRef.attach(componentPortal);\n\n componentRef.instance.templateRef.set(this.scPopoverTriggerFor());\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions([\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n // panelClass: 'top',\n offsetY: -8,\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n // panelClass: 'bottom',\n offsetY: 8,\n },\n ]);\n }\n}\n","import { CdkContextMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, TemplateRef, input } from '@angular/core';\n\n@Directive({\n selector: '[scContextMenuTriggerFor]',\n hostDirectives: [\n {\n directive: CdkContextMenuTrigger,\n inputs: ['cdkContextMenuTriggerFor: scContextMenuTriggerFor'],\n },\n ],\n})\nexport class ScContextMenuTriggerFor {\n readonly scContextMenuTriggerFor = input.required<TemplateRef<unknown>>();\n}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenu],\n})\nexport class ScMenu {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'my-2 z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-menu-label',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuLabel {\n class = input<string>('');\n\n classes = computed(() =>\n cn('px-2 py-1.5 text-sm font-semibold', this._inset() && 'pl-8', this.class()),\n );\n\n readonly _inset = input<boolean, unknown>(false, {\n alias: 'inset',\n transform: booleanAttribute,\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-menu-shortcut]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuShortcut {\n class = input<string>('');\n\n classes = computed(() =>\n cn('ml-auto text-xs tracking-widest text-muted-foreground', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'hr[sc-menu-separator]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuSeparator {\n class = input<string>('');\n\n classes = computed(() => cn('-mx-1 my-1 h-px bg-muted', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-menu-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': '_class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScMenuGroup {\n readonly class = input<string>('');\n\n protected readonly _class = computed(() => cn('', this.class()));\n}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-menu-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuItem],\n})\nexport class ScMenuItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'w-full flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n this._inset() && 'pl-8',\n this.class(),\n ),\n );\n\n readonly _inset = input<boolean, unknown>(false, {\n alias: 'inset',\n transform: booleanAttribute,\n });\n}\n","import { CdkMenuItemCheckbox } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'button[sc-menu-checkbox-item]',\n imports: [SiCheckIcon],\n template: `\n @if (scChecked()) {\n <span class=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <svg class=\"size-4\" si-check-icon></svg>\n </span>\n }\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItemCheckbox,\n inputs: ['cdkMenuItemChecked: scChecked'],\n outputs: ['cdkMenuItemTriggered: scTriggered'],\n },\n ],\n})\nexport class ScMenuCheckboxItem {\n private readonly _cdkMenuItemCheckbox = inject(CdkMenuItemCheckbox);\n\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this.class(),\n ),\n );\n\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n effect(() => {\n this._cdkMenuItemCheckbox.disabled = this.disabled();\n });\n }\n\n readonly scChecked = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n readonly scTriggered = output<void>();\n}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu-radio-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuGroup],\n})\nexport class ScMenuRadioGroup {\n class = input<string>('');\n\n classes = computed(() => cn('', this.class()));\n}\n","import { CdkMenuItemRadio } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCircleIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'button[sc-menu-radio-item]',\n imports: [SiCircleIcon],\n template: `\n <span class=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <svg class=\"size-2 fill-current\" si-circle-icon></svg>\n </span>\n\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuItemRadio],\n})\nexport class ScMenuRadioItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this.class(),\n ),\n );\n\n value = input('');\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[scMenuTriggerFor]',\n host: {\n '[attr.aria-haspopup]': 'true',\n },\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: scMenuTriggerFor'],\n },\n ],\n})\nexport class ScMenuTriggerFor {\n readonly scMenuTriggerFor = input.required();\n}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu-checkbox-group]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuGroup],\n})\nexport class ScMenuCheckboxGroup {\n class = input<string>('');\n\n classes = computed(() => cn('', this.class()));\n}\n","import { CdkMenuBar } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-menu-bar]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuBar],\n})\nexport class ScMenuBar {\n class = input<string>('');\n\n classes = computed(() =>\n cn('flex h-10 items-center space-x-1 rounded-md border bg-background p-1', this.class()),\n );\n}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-menu-bar-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkMenuItem],\n})\nexport class ScMenuBarItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n this.class(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommand {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n this.class(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiSearchIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'sc-command-input',\n imports: [SiSearchIcon],\n template: `\n <svg class=\"mr-2 size-4 shrink-0 opacity-50\" si-search-icon></svg>\n <input\n class=\"flex h-12 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n [placeholder]=\"placeholder()\"\n />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandInput {\n class = input<string>('');\n\n classes = computed(() => cn('flex items-center border-b px-3', this.class()));\n\n placeholder = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-list',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandList {\n class = input<string>('');\n\n classes = computed(() =>\n cn('block max-h-[300px] overflow-y-auto overflow-x-hidden', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-empty',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandEmpty {\n class = input<string>('');\n\n classes = computed(() => cn('block py-6 text-center text-sm', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-group-heading',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandGroupHeading {\n class = input<string>('');\n\n classes = computed(() =>\n cn('block px-2 font-medium text-muted-foreground py-1.5 text-xs', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCommandGroupHeading } from './command-group-heading';\n\n@Component({\n selector: 'sc-command-group',\n imports: [ScCommandGroupHeading],\n template: `\n <sc-command-group-heading>{{ heading() }}</sc-command-group-heading>\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandGroup {\n class = input<string>('');\n\n classes = computed(() => cn('block overflow-hidden p-1 text-foreground px-2', this.class()));\n\n heading = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-item',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n '[attr.data-disabled]': 'disabled()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandItem {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n this.class(),\n ),\n );\n\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-shortcut',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandShortcut {\n class = input<string>('');\n\n classes = computed(() =>\n cn('block ml-auto text-xs tracking-widest text-muted-foreground', this.class()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-separator',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandSeparator {\n class = input<string>('');\n\n classes = computed(() => cn('block -mx-1 h-px bg-border', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCommand } from './command';\n\n@Component({\n selector: 'sc-command-dialog',\n imports: [ScCommand],\n template: `\n <sc-command class=\"\">\n <ng-content />\n </sc-command>\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandDialog {\n class = input<string>('');\n\n classes = computed(() => cn('block overflow-hidden p-0 shadow-lg', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-error',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandError {\n class = input<string>('');\n\n classes = computed(() => cn('block py-6 text-center text-sm', this.class()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-command-loading',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCommandLoading {\n class = input<string>('');\n\n classes = computed(() => cn('block py-6 text-center text-sm', this.class()));\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class ScCollapsibleState {\n readonly open = signal(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCollapsibleState } from './collapsible-state';\n\n@Component({\n selector: 'sc-collapsible',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScCollapsibleState],\n})\nexport class ScCollapsible {\n private readonly state = inject(ScCollapsibleState);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('block', this.classInput()));\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { ScCollapsibleState } from './collapsible-state';\n\n@Directive({\n selector: '[sc-collapsible-toggle]',\n host: {\n '(click)': 'toggle()',\n },\n})\nexport class ScCollapsibleToggle {\n private readonly state = inject(ScCollapsibleState);\n\n protected toggle() {\n this.state.open.update((open) => !open);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n computed,\n contentChild,\n inject,\n input,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\nimport { cn } from '@semantic-components/utils';\nimport { filter, fromEvent, map, of, switchMap } from 'rxjs';\n\nimport { ScCollapsibleState } from './collapsible-state';\n\n@Component({\n selector: 'sc-collapsible-content',\n imports: [],\n template: `\n @if (contentShown()) {\n <!-- We need to constrain the size of the child to the size of the grid row to ensure the height animation works correctly -->\n <div class=\"overflow-hidden\">\n @if (template(); as lazy) {\n <ng-container *ngTemplateOutlet=\"lazy\" />\n }\n <ng-content />\n </div>\n }\n `,\n host: {\n role: 'region',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCollapsibleContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'grid grid-rows-[0fr] opacity-0 transition-[grid-template-rows,opacity] ease-[ease-in-out] duration-(--duration,300ms)',\n this.open() && 'grid-rows-[1fr] opacity-100',\n this.classInput(),\n ),\n );\n\n private readonly el = inject(ElementRef).nativeElement;\n\n readonly template = contentChild<TemplateRef<unknown>>('collapsibleContent');\n\n private readonly state = inject(ScCollapsibleState);\n\n private readonly open = computed(() => this.state.open());\n\n protected readonly contentShown = toSignal(\n toObservable(this.open).pipe(\n switchMap((open) =>\n open\n ? of(true)\n : fromEvent<TransitionEvent>(this.el, 'transitionend').pipe(\n filter(\n (e) => e.target === e.currentTarget && e.propertyName === 'grid-template-rows',\n ),\n map(() => false),\n ),\n ),\n ),\n );\n}\n","export const SIDEBAR_WIDTH = '16rem';\nexport const SIDEBAR_WIDTH_MOBILE = '18rem';\nexport const SIDEBAR_WIDTH_ICON = '3rem';\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ScSidebarState {\n open = signal(true);\n openMobile = signal(false);\n isMobile = signal(false);\n\n // Helper to toggle the sidebar.\n toggleSidebar() {\n return this.isMobile()\n ? this.openMobile.update((open) => !open)\n : this.open.update((open) => !open);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n input,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase } from '../button';\nimport { ScSidebarState } from './sidebar-state';\n\n@Component({\n selector: 'button[sc-sidebar-toggler]',\n imports: [],\n template: `\n <ng-content />\n <span class=\"sr-only\">Toggle Sidebar</span>\n `,\n host: {\n 'data-sidebar': 'trigger',\n '(click)': 'toggleSidebar()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarToggler extends ScButtonBase {\n private readonly sidebarState = inject(ScSidebarState);\n\n override readonly variantInput = input<ButtonVariants['variant']>('ghost');\n\n override readonly sizeInput = input<ButtonVariants['size']>('icon');\n\n protected toggleSidebar() {\n this.sidebarState.toggleSidebar();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Event, NavigationEnd, Router } from '@angular/router';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiXIcon } from '@semantic-icons/lucide-icons';\n\nimport { SIDEBAR_WIDTH_MOBILE } from './constants';\nimport { ScSidebarState } from './sidebar-state';\nimport { ScSidebarToggler } from './sidebar-toggler';\n\n@Component({\n selector: 'sc-sidebar-mobile',\n imports: [ScSidebarToggler, SiXIcon],\n template: `\n <div class=\"flex size-full flex-col\">\n <button class=\"absolute right-1 top-1 z-60\" sc-sidebar-toggler>\n <svg si-x-icon></svg>\n </button>\n\n <ng-content />\n </div>\n `,\n host: {\n '[class]': 'class()',\n '[style]': 'styles()',\n '[attr.data-sidebar]': '\"sidebar\"',\n '[attr.data-mobile]': '\"true\"',\n '[attr.data-state]': 'state()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMobile {\n private readonly router = inject(Router);\n\n private readonly sidebarState = inject(ScSidebarState);\n\n protected readonly styles = signal(`--sidebar-width: ${SIDEBAR_WIDTH_MOBILE};`);\n\n readonly side = input.required<'left' | 'right'>();\n private readonly openMobile = computed(() => this.sidebarState.openMobile());\n\n protected readonly state = computed<'open' | 'closed'>(() => {\n return this.openMobile() ? 'open' : 'closed';\n });\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute top-0 h-full bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n this.openMobile() && 'w-(--sidebar-width)',\n !this.openMobile() && 'w-0 overflow-hidden',\n this.side() === 'left' &&\n 'left-0 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left',\n this.side() === 'right' &&\n 'right-0 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right',\n this.classInput(),\n ),\n );\n\n constructor() {\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n if (this.openMobile()) {\n this.sidebarState.toggleSidebar();\n }\n }\n });\n }\n}\n","import { BreakpointObserver, LayoutModule } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScSheetConfig, ScSheetManager } from '../sheet';\nimport { ScSidebarMobile } from './sidebar-mobile';\nimport { ScSidebarState } from './sidebar-state';\n\n@Component({\n selector: 'sc-sidebar',\n imports: [LayoutModule, NgTemplateOutlet, ScSidebarMobile],\n template: `\n <ng-template #sc_sidebar_content>\n <ng-content />\n </ng-template>\n\n @if (collapsible() === 'none') {\n <div class=\"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\">\n <ng-container *ngTemplateOutlet=\"sc_sidebar_content\" />\n </div>\n } @else if (isMobile()) {\n <ng-template #sc_sidebar_mobile_content>\n <sc-sidebar-mobile [side]=\"side()\">\n <ng-container *ngTemplateOutlet=\"sc_sidebar_content\" />\n </sc-sidebar-mobile>\n </ng-template>\n } @else {\n <div\n class=\"group peer hidden text-sidebar-foreground md:block\"\n [attr.data-state]=\"state()\"\n [attr.data-collapsible]=\"state() === 'collapsed' ? collapsible() : ''\"\n [attr.data-variant]=\"variant()\"\n [attr.data-side]=\"side()\"\n >\n <!-- This is what handles the sidebar gap on desktop -->\n <div [class]=\"classes1()\"></div>\n <div [class]=\"classes2()\">\n <div\n class=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n data-sidebar=\"sidebar\"\n >\n <ng-container *ngTemplateOutlet=\"sc_sidebar_content\" />\n </div>\n </div>\n </div>\n }\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebar {\n private readonly observer = inject(BreakpointObserver);\n\n sidebarState = inject(ScSidebarState);\n\n class = input<string>('');\n\n classes = computed(() => cn('block relative z-50', this.class()));\n\n side = input<'left' | 'right'>('left');\n variant = input<'sidebar' | 'floating' | 'inset'>('sidebar');\n collapsible = input<'offcanvas' | 'icon' | 'none'>('offcanvas');\n\n isMobile = computed(() => this.sidebarState.isMobile());\n openMobile = computed(() => this.sidebarState.openMobile());\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n state = computed(() => (this.sidebarState.open() ? 'expanded' : 'collapsed'));\n\n classes1 = signal(\n cn(\n 'duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n this.variant() === 'floating' || this.variant() === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n ),\n );\n\n classes2 = signal(\n cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear md:flex',\n this.side() === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n this.variant() === 'floating' || this.variant() === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n ),\n );\n\n constructor() {\n this.observer.observe('(max-width: 768px)').subscribe((result) => {\n this.sidebarState.isMobile.set(result.matches);\n\n if (!result.matches && this.openMobile()) {\n this.sidebarState.openMobile.set(false);\n }\n });\n\n effect(() => {\n if (this.openMobile()) {\n this.openSheet(this.side());\n }\n\n if (!this.openMobile()) {\n this.scSheetTrigger.close();\n }\n });\n }\n\n private readonly scSheetTrigger = inject(ScSheetManager);\n\n readonly sheetRef = viewChild.required<TemplateRef<unknown>>('sc_sidebar_mobile_content');\n\n openSheet(side: 'top' | 'bottom' | 'left' | 'right') {\n const config = new ScSheetConfig();\n config.side = side;\n\n if (side === 'left' || side === 'right') {\n config.width = '300';\n }\n\n if (side === 'top' || side === 'bottom') {\n config.height = '300';\n }\n\n this.scSheetTrigger.open(this.sheetRef(), config);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-content',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"content\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON } from './constants';\nimport { ScSidebarState } from './sidebar-state';\n\n@Component({\n selector: 'sc-sidebar-provider',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n '[style]': 'styles()',\n '[attr.data-state]': 'stateMobile()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [],\n})\nexport class ScSidebarProvider {\n sidebarState = inject(ScSidebarState);\n\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n this.class(),\n ),\n );\n\n styles = signal(\n `--sidebar-width: ${SIDEBAR_WIDTH}; --sidebar-width-icon: ${SIDEBAR_WIDTH_ICON};`,\n );\n\n stateMobile = computed<'open' | 'closed'>(() => {\n return this.sidebarState.openMobile() ? 'open' : 'closed';\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-group',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroup {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('relative flex w-full min-w-0 flex-col p-2', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-group-label',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group-label\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroupLabel {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-sidebar-group-action',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group-action\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroupAction {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-sidebar-group-content]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"group-content\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarGroupContent {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('w-full text-sm', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'ul[sc-sidebar-menu]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"menu\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMenu {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('flex w-full min-w-0 flex-col gap-1', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'li[sc-sidebar-menu-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[attr.data-sidebar]': '\"menu-item\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMenuItem {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('group/menu-item relative', this.classInput()));\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype SidebarMenuButtonVariants = VariantProps<typeof sidebarMenuButtonVariants>;\n\n@Directive({\n host: {\n '[class]': 'class()',\n },\n})\nexport class ScSidebarMenuBase {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n readonly variant = input<SidebarMenuButtonVariants['variant']>('default');\n\n readonly size = input<SidebarMenuButtonVariants['size']>('default');\n\n protected readonly class = computed(() =>\n cn(\n sidebarMenuButtonVariants({ variant: this.variant(), size: this.size() }),\n this.classInput(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\n\nimport { ScSidebarMenuBase } from './sidebar-menu-base';\n\n@Component({\n selector: 'a[sc-sidebar-menu-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.data-sidebar]': '\"menu-link\"',\n '[attr.data-active]': 'routerLinkActive.isActive',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [RouterLinkActive],\n})\nexport class ScSidebarMenuLink extends ScSidebarMenuBase {\n protected readonly routerLinkActive = inject(RouterLinkActive);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { ScSidebarMenuBase } from './sidebar-menu-base';\n\n@Component({\n selector: 'button[sc-sidebar-menu-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.data-sidebar]': '\"menu-button\"',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarMenuButton extends ScSidebarMenuBase {}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScAutocompleteModel } from './autocomplete-model';\n\n@Component({\n selector: 'sc-autocomplete-item',\n imports: [SiCheckIcon],\n template: `\n <ng-content />\n\n @if (isSelected()) {\n <svg class=\"ml-auto\" si-check-icon></svg>\n }\n `,\n host: {\n '[class]': 'classes()',\n '[attr.data-disabled]': '_disabled()',\n '[attr.data-selected]': '_isActive()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAutocompleteItem implements Highlightable {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none hover:bg-accent hover:text-accent-foreground data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n this.class(),\n ),\n );\n\n readonly _disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n item = input.required<ScAutocompleteModel>();\n\n selectedItem = input<ScAutocompleteModel | undefined>(undefined);\n\n isSelected = computed(() => {\n return this.item().id === this.selectedItem()?.id;\n });\n\n private readonly _isActive = signal(false);\n\n disabled: boolean | undefined;\n\n getLabel?(): string {\n return this.item.name;\n }\n\n setActiveStyles(): void {\n this._isActive.set(true);\n }\n\n setInactiveStyles(): void {\n this._isActive.set(false);\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { ENTER } from '@angular/cdk/keycodes';\nimport { JsonPipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { cn } from '@semantic-components/utils';\nimport { debounceTime } from 'rxjs';\n\nimport { ScInput } from '../input';\nimport { ScAutocompleteItem } from './autocomplete-item';\nimport { ScAutocompleteModel } from './autocomplete-model';\n\n@Component({\n selector: 'sc-autocomplete',\n imports: [ScInput, ScAutocompleteItem, ReactiveFormsModule, JsonPipe],\n template: `\n <!--sc-autocomplete-input /-->\n\n <input\n [formControl]=\"searchControl\"\n (keyup)=\"onKeydown($event)\"\n sc-input\n placeholder=\"Search...\"\n />\n\n @for (item of filteredItems(); track $index) {\n <sc-autocomplete-item [item]=\"item\" [selectedItem]=\"selectedItem()\">\n {{ item.label }}\n </sc-autocomplete-item>\n }\n\n <br />\n <br />\n <br />\n <br />\n\n selectedItem : {{ selectedItem() | json }}\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAutocomplete implements AfterViewInit {\n class = input<string>('');\n\n classes = computed(() =>\n cn(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground',\n this.class(),\n ),\n );\n\n items = signal<ScAutocompleteModel[]>([\n {\n id: '5b902934d965e7501f4e1c6f',\n label: 'Caroline Hodges',\n },\n {\n id: '5b9029348f7eed8b6f5f02db',\n label: 'Delores Rivas',\n },\n {\n id: '5b9029346f48c8407c64d0d5',\n label: 'Darlene Franklin',\n },\n {\n id: '5b9029341eff315fa87f9e21',\n label: 'Alfreda Love',\n },\n {\n id: '5b9029342e8917c6ccdb9865',\n label: 'Marcy Ratliff',\n },\n {\n id: '5b9029349dbb48013460e01f',\n label: 'Beulah Nielsen',\n },\n {\n id: '5b902934f4f1586e5e72d74a',\n label: 'Morton Kerr',\n },\n {\n id: '5b9029347918bb204bf7014e',\n label: 'Autumn Tillman',\n },\n {\n id: '5b902934b86f80e1fc60c626',\n label: 'Diane Bennett',\n },\n {\n id: '5b9029348999f59215020349',\n label: 'June Eaton',\n },\n ]);\n\n searchControl = new FormControl();\n\n input = toSignal(this.searchControl.valueChanges.pipe(debounceTime(300)));\n\n filteredItems = computed(() => {\n if (!this.input()) {\n return this.items();\n }\n return this.items().filter(\n (item) => item.label.toLowerCase().indexOf(this.input().toLowerCase()) !== -1,\n );\n });\n\n selectedItem = signal<ScAutocompleteModel | undefined>(undefined);\n\n readonly viewItems = viewChildren(ScAutocompleteItem);\n\n private keyManager!: ActiveDescendantKeyManager<ScAutocompleteItem>;\n\n ngAfterViewInit() {\n this.keyManager = new ActiveDescendantKeyManager(this.viewItems()).withWrap().withTypeAhead();\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.keyCode === ENTER) {\n this.selectedItem.set(\n this.keyManager.activeItem ? this.keyManager.activeItem.item() : undefined,\n );\n } else {\n this.keyManager.onKeydown(event);\n }\n }\n}\n","import { Highlightable, _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCheckIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'sc-time-option',\n imports: [SiCheckIcon],\n template: `\n @if (_selected()) {\n <svg class=\"absolute left-2 flex size-4 items-center justify-center\" si-check-icon></svg>\n }\n\n <ng-content />\n `,\n host: {\n '[id]': 'id()',\n '[class]': '_class()',\n '[attr.data-disabled]': '_disabled()',\n '(mouseover)': 'setActiveStyles()',\n '(mouseleave)': 'setInactiveStyles()',\n '(click)': 'onClick()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTimeOption implements Highlightable {\n /** The unique ID of the option. */\n id = signal<string>(inject(_IdGenerator).getId('sc-time-option-'));\n\n class = input<string>('');\n\n _class = computed(() =>\n cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n this._active() && 'bg-accent text-accent-foreground',\n\n this.class(),\n ),\n );\n\n _active = signal(false);\n _selected = signal(false);\n\n readonly _disabledByInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n readonly _disabled = computed(() => this._disabledByInput() || booleanAttribute(this.disabled));\n\n value = input<string>();\n\n setActiveStyles(): void {\n this._active.set(true);\n }\n\n setInactiveStyles(): void {\n this._active.set(false);\n }\n\n disabled: boolean | undefined;\n\n getLabel?(): string {\n return this.value() ?? '';\n }\n\n private readonly _element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Gets the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n /** Selects the option. */\n select(): void {\n if (!this._selected()) {\n this._selected.set(true);\n }\n }\n\n /** Deselects the option. */\n deselect(): void {\n if (this._selected()) {\n this._selected.set(false);\n }\n }\n\n onClick() {\n if (this._selected()) {\n this._selected.set(false);\n } else {\n this.selected.emit(this.value());\n this._selected.set(true);\n }\n }\n\n selected = output<string | undefined>();\n}\n","import { Directive, computed, input } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { scInputStyles } from '../input';\n\n@Directive({\n selector: '[scTimePickerInput]',\n host: {\n '[class]': 'classes()',\n },\n})\nexport class ScTimePickerInput {\n class = input<string>('');\n classes = computed(() => cn(scInputStyles(), this.class()));\n}\n","import { ActiveDescendantKeyManager, _IdGenerator } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ENTER, ESCAPE, TAB, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterRenderRef,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n InputSignal,\n OnDestroy,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiClockIcon } from '@semantic-icons/lucide-icons';\nimport { Subscription } from 'rxjs';\n\nimport { ScSettings } from '../../utils';\nimport { ScButton } from '../button';\nimport { ScTimeOption } from './time-option';\nimport { ScTimePickerInput } from './time-picker-input';\n\n/**\n * Time selection option that can be displayed within a `mat-timepicker`.\n */\nexport interface MatTimepickerOption<D = unknown> {\n /** Date value of the option. */\n value: D;\n\n /** Label to show to the user. */\n label: string;\n}\n\n/** Event emitted when a value is selected in the timepicker. */\nexport interface MatTimepickerSelected<D> {\n value: D;\n}\n\n@Component({\n selector: 'sc-time-picker',\n imports: [SiClockIcon, ScButton, ScTimeOption, ScTimePickerInput],\n template: `\n <button class=\"absolute inset-y-0 end-0 pe-4\" (click)=\"open()\" sc-button variant=\"ghost\">\n <svg si-clock-icon></svg>\n </button>\n <input #input scTimePickerInput type=\"text\" placeholder=\"hh:mm\" />\n\n <ng-template #panelTemplate>\n <div\n class=\"relative z-50 max-h-96 w-full min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"_getAriaLabelledby()\"\n [id]=\"panelId\"\n role=\"listbox\"\n >\n @for (option of _timeOptions; track option.value) {\n <sc-time-option [value]=\"option.value\" (selected)=\"_selectValue(option.value)\">\n {{ option.label }}\n </sc-time-option>\n }\n </div>\n </ng-template>\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTimePicker implements OnDestroy {\n settings = inject(ScSettings);\n\n clock = input<'am-pm' | '24-hour' | undefined>(undefined);\n\n _clock = computed(() => {\n if (this.clock() !== undefined) {\n return this.clock();\n }\n\n return this.settings.clock();\n });\n\n class = input<string>('');\n classes = computed(() => cn('flex relative', this.class()));\n\n private readonly _overlay = inject(Overlay);\n private readonly _dir = inject(Directionality, { optional: true });\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _injector = inject(Injector);\n // private _defaultConfig = inject(MAT_TIMEPICKER_CONFIG, { optional: true });\n // private _dateAdapter = inject<DateAdapter<D>>(DateAdapter, { optional: true })!;\n // private _dateFormats = inject(MAT_DATE_FORMATS, { optional: true })!;\n\n private readonly _isOpen = signal(false);\n private readonly _activeDescendant = signal<string | null>(null);\n\n private readonly _input = viewChild.required<ElementRef<HTMLInputElement>>('input');\n\n private _overlayRef: OverlayRef | null = null;\n private _portal: TemplatePortal<unknown> | null = null;\n private readonly _optionsCacheKey: string | null = null;\n private readonly _localeChanges!: Subscription;\n private _onOpenRender: AfterRenderRef | null = null;\n\n protected _panelTemplate = viewChild.required<TemplateRef<unknown>>('panelTemplate');\n protected _timeOptions: readonly MatTimepickerOption<string>[] = [];\n protected _options = viewChildren(ScTimeOption);\n\n private readonly _keyManager = new ActiveDescendantKeyManager(this._options, this._injector)\n .withHomeAndEnd(true)\n .withPageUpDown(true)\n .withVerticalOrientation(true);\n\n /**\n * Interval between each option in the timepicker. The value can either be an amount of\n * seconds (e.g. 90) or a number with a unit (e.g. 45m). Supported units are `s` for seconds,\n * `m` for minutes or `h` for hours.\n */\n // readonly interval: InputSignalWithTransform<number | null, number | string | null> = input(\n // parseInterval(this._defaultConfig?.interval || null),\n // { transform: parseInterval },\n // );\n\n /**\n * Array of pre-defined options that the user can select from, as an alternative to using the\n * `interval` input. An error will be thrown if both `options` and `interval` are specified.\n */\n readonly options: InputSignal<readonly MatTimepickerOption<string>[] | null> = input<\n readonly MatTimepickerOption<string>[] | null\n >(null);\n\n /** Whether the timepicker is open. */\n readonly isOpen: Signal<boolean> = this._isOpen.asReadonly();\n\n /** Emits when the user selects a time. */\n readonly selected: OutputEmitterRef<MatTimepickerSelected<string>> = output();\n\n /** Emits when the timepicker is opened. */\n readonly opened: OutputEmitterRef<void> = output();\n\n /** Emits when the timepicker is closed. */\n readonly closed: OutputEmitterRef<void> = output();\n\n /** ID of the active descendant option. */\n readonly activeDescendant: Signal<string | null> = this._activeDescendant.asReadonly();\n\n /** Unique ID of the timepicker's panel */\n readonly panelId: string = inject(_IdGenerator).getId('sc-time-picker-panel-');\n\n /** Whether ripples within the timepicker should be disabled. */\n // readonly disableRipple: InputSignalWithTransform<boolean, unknown> = input(\n // this._defaultConfig?.disableRipple ?? false,\n // {\n // transform: booleanAttribute,\n // },\n // );\n\n /** ARIA label for the timepicker panel. */\n readonly ariaLabel: InputSignal<string | null> = input<string | null>(null, {\n alias: 'aria-label',\n });\n\n /** ID of the label element for the timepicker panel. */\n readonly ariaLabelledby: InputSignal<string | null> = input<string | null>(null, {\n alias: 'aria-labelledby',\n });\n\n /** Whether the timepicker is currently disabled. */\n readonly disabled: Signal<boolean> = computed(() => !!this._input().nativeElement?.disabled);\n\n constructor() {\n // if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // validateAdapter(this._dateAdapter, this._dateFormats);\n\n effect(() => {\n const options = this.options();\n // const interval = this.interval();\n\n // if (options !== null && interval !== null) {\n // throw new Error(\n // 'Cannot specify both the `options` and `interval` inputs at the same time',\n // );\n // } else if (options?.length === 0) {\n // throw new Error('Value of `options` input cannot be an empty array');\n // }\n });\n // }\n\n // Since the panel ID is static, we can set it once without having to maintain a host binding.\n const element = inject<ElementRef<HTMLElement>>(ElementRef);\n element.nativeElement.setAttribute('sc-time-picker-panel-id', this.panelId);\n this._handleLocaleChanges();\n this._handleInputStateChanges();\n this._keyManager.change.subscribe(() =>\n this._activeDescendant.set(this._keyManager.activeItem?.id() || null),\n );\n }\n\n /** Opens the timepicker. */\n open(): void {\n const input = this._input();\n\n if (!input) {\n return;\n }\n\n // Focus should already be on the input, but this call is in case the timepicker is opened\n // programmatically. We need to call this even if the timepicker is already open, because\n // the user might be clicking the toggle.\n input.nativeElement.focus();\n\n if (this._isOpen()) {\n return;\n }\n\n this._isOpen.set(true);\n this._generateOptions();\n const overlayRef = this._getOverlayRef();\n overlayRef.updateSize({ width: input.nativeElement.offsetWidth });\n\n this._portal ??= new TemplatePortal(this._panelTemplate(), this._viewContainerRef);\n overlayRef.attach(this._portal);\n this._onOpenRender?.destroy();\n this._onOpenRender = afterNextRender(\n () => {\n const options = this._options();\n this._syncSelectedState(input.nativeElement?.value, options, options[0]);\n this._onOpenRender = null;\n },\n { injector: this._injector },\n );\n\n this.opened.emit();\n }\n\n /** Closes the timepicker. */\n close(): void {\n if (this._isOpen()) {\n this._isOpen.set(false);\n this._overlayRef?.detach();\n this.closed.emit();\n }\n }\n\n /** Registers an input with the timepicker. */\n // registerInput(input: MatTimepickerInput<D>): void {\n // const currentInput = this._input();\n\n // if (currentInput && input !== currentInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n // throw new Error('MatTimepicker can only be registered with one input at a time');\n // }\n\n // this._input.set(input);\n // }\n\n ngOnDestroy(): void {\n this._keyManager.destroy();\n this._localeChanges.unsubscribe();\n this._onOpenRender?.destroy();\n this._overlayRef?.dispose();\n }\n\n /** Selects a specific time value. */\n protected _selectValue(value: string) {\n //TODO\n this._input().nativeElement.value = value;\n\n this.close();\n this.selected.emit({ value });\n this._input().nativeElement?.focus();\n }\n\n /** Gets the value of the `aria-labelledby` attribute. */\n protected _getAriaLabelledby(): string | null {\n if (this.ariaLabel()) {\n return null;\n }\n return this.ariaLabelledby() || null;\n }\n\n /** Creates an overlay reference for the timepicker panel. */\n private _getOverlayRef(): OverlayRef {\n if (this._overlayRef) {\n return this._overlayRef;\n }\n\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._input())\n .withFlexibleDimensions(false)\n .withPush(false)\n // .withTransformOriginOn('.mat-timepicker-panel')\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n // panelClass: 'mat-timepicker-above',\n },\n ]);\n\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n direction: this._dir || 'ltr',\n hasBackdrop: false,\n });\n\n this._overlayRef.keydownEvents().subscribe((event) => {\n this._handleKeydown(event);\n });\n\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this._input().nativeElement;\n\n if (target && origin && target !== origin && !origin.contains(target)) {\n this.close();\n }\n });\n\n return this._overlayRef;\n }\n\n /** Generates the list of options from which the user can select.. */\n private _generateOptions(): void {\n // Default the interval to 30 minutes.\n\n this._timeOptions = [\n { value: '1', label: '1' },\n { value: '2', label: '2' },\n { value: '3', label: '3' },\n { value: '4', label: '4' },\n { value: '5', label: '5' },\n { value: '6', label: '6' },\n { value: '7', label: '7' },\n { value: '8', label: '8' },\n { value: '9', label: '9' },\n\n { value: '10', label: '10' },\n { value: '20', label: '20' },\n { value: '30', label: '30' },\n { value: '40', label: '40' },\n { value: '50', label: '50' },\n { value: '60', label: '60' },\n { value: '70', label: '70' },\n { value: '80', label: '80' },\n { value: '90', label: '90' },\n\n { value: '21', label: '21' },\n { value: '31', label: '31' },\n { value: '41', label: '41' },\n { value: '51', label: '51' },\n { value: '61', label: '61' },\n { value: '71', label: '71' },\n { value: '81', label: '81' },\n { value: '91', label: '91' },\n ];\n }\n\n /**\n * Synchronizes the internal state of the component based on a specific selected date.\n * @param value Currently selected date.\n * @param options Options rendered out in the timepicker.\n * @param fallback Option to set as active if no option is selected.\n */\n private _syncSelectedState(\n value: string | null,\n options: readonly ScTimeOption[],\n fallback: ScTimeOption | null,\n ): void {\n let hasSelected = false;\n\n for (const option of options) {\n if (value && option.value() === value) {\n option.select();\n scrollOptionIntoView(option, 'center');\n untracked(() => this._keyManager.setActiveItem(option));\n hasSelected = true;\n } else {\n option.deselect();\n }\n }\n\n // If no option was selected, we need to reset the key manager since\n // it might be holding onto an option that no longer exists.\n if (!hasSelected) {\n if (fallback) {\n untracked(() => this._keyManager.setActiveItem(fallback));\n scrollOptionIntoView(fallback, 'center');\n } else {\n untracked(() => this._keyManager.setActiveItem(-1));\n }\n }\n }\n\n /** Handles keyboard events while the overlay is open. */\n private _handleKeydown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n\n if (keyCode === TAB) {\n this.close();\n } else if (keyCode === ESCAPE && !hasModifierKey(event)) {\n event.preventDefault();\n this.close();\n } else if (keyCode === ENTER) {\n event.preventDefault();\n\n if (this._keyManager.activeItem) {\n this._selectValue(this._keyManager.activeItem.value() ?? '');\n } else {\n this.close();\n }\n } else {\n const previousActive = this._keyManager.activeItem;\n this._keyManager.onKeydown(event);\n const currentActive = this._keyManager.activeItem;\n\n if (currentActive && currentActive !== previousActive) {\n scrollOptionIntoView(currentActive, 'nearest');\n }\n }\n }\n\n /** Sets up the logic that updates the timepicker when the locale changes. */\n private _handleLocaleChanges(): void {\n // Re-generate the options list if the locale changes.\n // this._localeChanges = this._dateAdapter.localeChanges.subscribe(() => {\n // this._optionsCacheKey = null;\n // if (this.isOpen()) {\n // this._generateOptions();\n // }\n // });\n }\n\n /**\n * Sets up the logic that updates the timepicker when the state of the connected input changes.\n */\n private _handleInputStateChanges(): void {\n effect(() => {\n const input = this._input();\n const options = this._options();\n\n if (this._isOpen() && input) {\n this._syncSelectedState(input.nativeElement.value, options, null);\n }\n });\n }\n}\n\n/**\n * Scrolls an option into view.\n * @param option Option to be scrolled into view.\n * @param position Position to which to align the option relative to the scrollable container.\n */\nfunction scrollOptionIntoView(option: ScTimeOption, position: ScrollLogicalPosition) {\n option._getHostElement().scrollIntoView({ block: position, inline: position });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-time-picker2',\n imports: [],\n template: `\n <div class=\"relative\">\n <!-- Time Input Field -->\n <input\n class=\"w-full cursor-pointer rounded-lg border px-4 py-2 shadow-sm focus:border-blue-500 focus:ring-2 focus:ring-blue-500\"\n [value]=\"formatTime(selectedHour, selectedMinute, selectedPeriod)\"\n (click)=\"toggleDropdown()\"\n type=\"text\"\n readonly\n placeholder=\"Select time\"\n />\n\n <!-- Dropdown Panel -->\n @if (isOpen) {\n <div class=\"absolute z-50 mt-1 w-64 rounded-lg border bg-white shadow-lg\">\n <!-- Time Selection Grid -->\n <div class=\"p-4\">\n <!-- Hour Selection -->\n <div class=\"mb-4\">\n <span class=\"mb-2 block text-sm font-medium text-gray-700\">Hour</span>\n <div class=\"grid grid-cols-4 gap-2\">\n @for (hour of hours; track hour) {\n <button\n [class]=\"\n 'px-2 py-1 text-sm rounded-md ' +\n (selectedHour === hour ? 'bg-blue-500 text-white' : 'hover:bg-gray-100')\n \"\n (click)=\"selectHour(hour)\"\n >\n {{ hour }}\n </button>\n }\n </div>\n </div>\n <!-- Minute Selection -->\n <div class=\"mb-4\">\n <span class=\"mb-2 block text-sm font-medium text-gray-700\">Minute</span>\n <div class=\"grid grid-cols-4 gap-2\">\n @for (minute of minutes; track minute) {\n <button\n [class]=\"\n 'px-2 py-1 text-sm rounded-md ' +\n (selectedMinute === minute ? 'bg-blue-500 text-white' : 'hover:bg-gray-100')\n \"\n (click)=\"selectMinute(minute)\"\n >\n {{ minute.toString().padStart(2, '0') }}\n </button>\n }\n </div>\n </div>\n <!-- AM/PM Selection -->\n <div>\n <span class=\"mb-2 block text-sm font-medium text-gray-700\">Period</span>\n <div class=\"grid grid-cols-2 gap-2\">\n @for (period of periods; track period) {\n <button\n [class]=\"\n 'px-4 py-2 text-sm rounded-md ' +\n (selectedPeriod === period ? 'bg-blue-500 text-white' : 'hover:bg-gray-100')\n \"\n (click)=\"selectPeriod(period)\"\n >\n {{ period }}\n </button>\n }\n </div>\n </div>\n </div>\n <!-- Done Button -->\n <div class=\"border-t p-4\">\n <button\n class=\"w-full rounded-md bg-blue-500 px-4 py-2 text-white transition-colors hover:bg-blue-600\"\n (click)=\"confirmSelection()\"\n >\n Done\n </button>\n </div>\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTimePicker2 implements OnInit {\n readonly initialTime = input<string>();\n readonly timeSelected = output<string>();\n\n isOpen = false;\n hours = Array.from({ length: 12 }, (_, i) => i + 1);\n minutes = Array.from({ length: 12 }, (_, i) => i * 5);\n periods = ['AM', 'PM'];\n\n selectedHour = 12;\n selectedMinute = 0;\n selectedPeriod = 'AM';\n\n ngOnInit() {\n const initialTime = this.initialTime();\n if (initialTime) {\n this.parseInitialTime(initialTime);\n }\n }\n\n parseInitialTime(time: string) {\n const [timeStr, period] = time.split(' ');\n const [hours, minutes] = timeStr.split(':').map(Number);\n\n this.selectedHour = hours % 12 || 12;\n this.selectedMinute = minutes;\n this.selectedPeriod = period;\n }\n\n toggleDropdown() {\n this.isOpen = !this.isOpen;\n }\n\n selectHour(hour: number) {\n this.selectedHour = hour;\n }\n\n selectMinute(minute: number) {\n this.selectedMinute = minute;\n }\n\n selectPeriod(period: string) {\n this.selectedPeriod = period;\n }\n\n formatTime(hour: number, minute: number, period: string): string {\n return `${hour}:${minute.toString().padStart(2, '0')} ${period}`;\n }\n\n confirmSelection() {\n const formattedTime = this.formatTime(\n this.selectedHour,\n this.selectedMinute,\n this.selectedPeriod,\n );\n this.timeSelected.emit(formattedTime);\n this.isOpen = false;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-separator',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSeparator {\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'block shrink-0 bg-border',\n this.orientation() === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n this.classInput(),\n ),\n );\n}\n","import { HttpClient, HttpEventType } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { finalize } from 'rxjs/operators';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'sc-file-upload',\n imports: [],\n template: `\n <div class=\"w-full\">\n <!-- Drag & Drop area -->\n <div\n class=\"flex flex-col items-center justify-center p-8 text-center rounded-lg cursor-pointer transition-all duration-200\"\n [class]=\"\n isDragging\n ? 'border-2 border-dashed border-blue-500 bg-blue-50'\n : 'border-2 border-dashed border-gray-300 hover:border-blue-400'\n \"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n >\n <svg\n class=\"w-12 h-12 text-gray-400 mb-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12\"\n />\n </svg>\n\n <p class=\"mb-2 text-sm text-gray-600\">\n <span class=\"font-semibold\">Click to upload</span>\n or drag and drop\n </p>\n <p class=\"text-xs text-gray-500\">\n {{\n acceptedFileTypes\n ? 'Accepted file types: ' + acceptedFileTypes\n : 'Any file type accepted'\n }}\n (Max: {{ maxFileSize() }}MB)\n </p>\n\n <!-- Hidden file input -->\n <input\n class=\"hidden\"\n #fileInput\n [accept]=\"acceptedFileTypes\"\n [multiple]=\"multiple()\"\n (change)=\"onFileSelected($event)\"\n type=\"file\"\n />\n\n <button\n class=\"mt-4 px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"\n (click)=\"fileInput.click()\"\n type=\"button\"\n >\n Select File{{ multiple() ? 's' : '' }}\n </button>\n </div>\n\n <!-- File list -->\n @if (files.length > 0) {\n <div class=\"mt-6\">\n <h3 class=\"text-sm font-medium text-gray-700\">Selected Files</h3>\n <ul class=\"mt-3 divide-y divide-gray-200\">\n @for (file of files; track file; let i = $index) {\n <li class=\"py-3 flex justify-between items-center\">\n <div class=\"flex items-center\">\n <svg\n class=\"h-5 w-5 text-gray-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\n />\n </svg>\n <div class=\"ml-3\">\n <p class=\"text-sm font-medium text-gray-900 truncate max-w-xs\">\n {{ file.name }}\n </p>\n <p class=\"text-xs text-gray-500\">{{ formatFileSize(file.size) }}</p>\n </div>\n </div>\n <button\n class=\"ml-2 text-red-600 hover:text-red-800\"\n (click)=\"removeFile(i)\"\n type=\"button\"\n >\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\"\n />\n </svg>\n </button>\n </li>\n }\n </ul>\n <!-- Upload progress -->\n @if (isUploading) {\n <div class=\"mt-4\">\n <div class=\"flex justify-between mb-1\">\n <span class=\"text-xs font-medium text-blue-700\">Uploading...</span>\n <span class=\"text-xs font-medium text-blue-700\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"w-full bg-gray-200 rounded-full h-2\">\n <div class=\"bg-blue-600 h-2 rounded-full\" [style.width.%]=\"uploadProgress\"></div>\n </div>\n </div>\n }\n <!-- Error message -->\n @if (uploadError) {\n <div class=\"mt-4 text-sm text-red-600\">\n {{ uploadError }}\n </div>\n }\n <!-- Success message -->\n @if (uploadSuccess) {\n <div class=\"mt-4 text-sm text-green-600\">Files uploaded successfully!</div>\n }\n <!-- Action buttons -->\n <div class=\"mt-4 flex gap-2\">\n <button\n class=\"inline-flex items-center px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"\n [disabled]=\"isUploading || files.length === 0\"\n [class]=\"\n isUploading || files.length === 0\n ? 'bg-blue-300 cursor-not-allowed'\n : 'bg-blue-600 hover:bg-blue-700'\n \"\n (click)=\"uploadFiles()\"\n type=\"button\"\n >\n <svg\n class=\"h-4 w-4 mr-2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12\"\n />\n </svg>\n Upload\n </button>\n <button\n class=\"inline-flex items-center px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2\"\n [disabled]=\"isUploading || files.length === 0\"\n [class]=\"\n isUploading || files.length === 0\n ? 'bg-gray-300 cursor-not-allowed'\n : 'bg-gray-600 hover:bg-gray-700'\n \"\n (click)=\"clearFiles()\"\n type=\"button\"\n >\n Clear\n </button>\n </div>\n </div>\n }\n </div>\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScFileUpload {\n private readonly http = inject(HttpClient);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n @Input() acceptedFileTypes = '';\n readonly maxFileSize = input(5); // Default max size in MB\n readonly multiple = input(false);\n readonly uploadUrl = input('/api/upload');\n @Output() uploadComplete = new EventEmitter<any>();\n\n files: File[] = [];\n isDragging = false;\n uploadProgress = 0;\n isUploading = false;\n uploadError: string | null = null;\n uploadSuccess = false;\n\n onFileSelected(event: any): void {\n this.resetStatus();\n const selectedFiles = event.target.files;\n this.processFiles(selectedFiles);\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = true;\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.isDragging = false;\n this.resetStatus();\n\n if (event.dataTransfer?.files) {\n this.processFiles(event.dataTransfer.files);\n }\n }\n\n processFiles(fileList: FileList): void {\n if (!fileList.length) return;\n\n // Convert FileList to array\n const filesArray = Array.from(fileList);\n\n // Validate file types if needed\n if (this.acceptedFileTypes) {\n const allowedTypes = this.acceptedFileTypes.split(',');\n const invalidFiles = filesArray.filter(\n (file) =>\n !allowedTypes.some(\n (type) =>\n file.type.includes(type.trim()) || file.name.endsWith(type.trim().replace('*', '')),\n ),\n );\n\n if (invalidFiles.length > 0) {\n this.uploadError = `Invalid file type(s): ${invalidFiles.map((f) => f.name).join(', ')}`;\n return;\n }\n }\n\n // Validate file size\n const oversizedFiles = filesArray.filter(\n (file) => file.size > this.maxFileSize() * 1024 * 1024,\n );\n if (oversizedFiles.length > 0) {\n this.uploadError = `File(s) exceed the ${this.maxFileSize()}MB limit: ${oversizedFiles.map((f) => f.name).join(', ')}`;\n return;\n }\n\n if (this.multiple()) {\n this.files = [...this.files, ...filesArray];\n } else {\n this.files = [filesArray[0]];\n }\n }\n\n uploadFiles(): void {\n if (!this.files.length) return;\n\n this.isUploading = true;\n this.uploadProgress = 0;\n this.uploadError = null;\n\n const formData = new FormData();\n this.files.forEach((file, index) => {\n formData.append(`file${index}`, file, file.name);\n });\n\n this.http\n .post(this.uploadUrl(), formData, {\n reportProgress: true,\n observe: 'events',\n })\n .pipe(\n finalize(() => {\n this.isUploading = false;\n }),\n )\n .subscribe({\n next: (event: any) => {\n if (event.type === HttpEventType.UploadProgress) {\n this.uploadProgress = Math.round((100 * event.loaded) / event.total);\n } else if (event.type === HttpEventType.Response) {\n this.uploadSuccess = true;\n this.uploadComplete.emit(event.body);\n }\n },\n error: (error) => {\n this.uploadError = error.message || 'Upload failed';\n },\n });\n }\n\n removeFile(index: number): void {\n this.files.splice(index, 1);\n this.resetStatus();\n }\n\n resetStatus(): void {\n this.uploadProgress = 0;\n this.isUploading = false;\n this.uploadError = null;\n this.uploadSuccess = false;\n }\n\n clearFiles(): void {\n this.files = [];\n this.resetStatus();\n }\n\n // Helper methods for display\n formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h1[sc-page-title]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageTitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('scroll-m-20 text-3xl font-bold tracking-tight', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'h2[sc-page-subtitle]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageSubtitle {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'font-heading mt-12 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-tight first:mt-0',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-page-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('text-base text-muted-foreground', this.classInput()),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-section',\n imports: [],\n template: `\n <p>section works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Section {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { VariantProps, cva } from 'class-variance-authority';\n\nconst scHeadingVariants = cva('', {\n variants: {\n level: {\n '1': 'text-4xl lg:text-5xl font-extrabold tracking-tight',\n '2': 'text-3xl font-semibold tracking-tight',\n '3': 'text-2xl font-semibold tracking-tight',\n '4': 'text-xl font-semibold tracking-tight',\n '5': '',\n '6': '',\n },\n },\n defaultVariants: {\n level: '1',\n },\n});\n\ntype ScHeadingVariants = VariantProps<typeof scHeadingVariants>;\n\n@Component({\n selector:\n 'h1[sc-heading], h2[sc-heading], h3[sc-heading], h4[sc-heading], h5[sc-heading], h6[sc-heading]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScHeading {\n readonly level = input<ScHeadingVariants['level']>('1');\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n scHeadingVariants({ level: this.level() }),\n this.underline() && 'border-b',\n this.classInput(),\n ),\n );\n\n readonly underline = input(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nexport const scArticleClasses = signal('prose prose-sm sm:prose lg:prose-lg xl:prose-2xl');\n\n@Component({\n selector: 'sc-article',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScArticle {\n class = input<string>('');\n\n classes = computed(() => cn(scArticleClasses(), this.class()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'blockquote[sc-blockquote]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'classes()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBlockquote {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, signal } from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport { SiCookieIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\n\n@Component({\n selector: 'sc-cookie-consent',\n imports: [SiCookieIcon, ScButton],\n template: `\n <div [class]=\"class()\">\n <div class=\"m-3 rounded-lg border border-border bg-background dark:bg-card\">\n <div class=\"flex items-center justify-between p-3\">\n <h1 class=\"text-lg font-medium\">We use cookies</h1>\n <svg class=\"size-[1.2rem]\" si-cookie-icon></svg>\n </div>\n <div class=\"-mt-2 p-3\">\n <p class=\"text-left text-sm text-muted-foreground\">\n We use cookies to ensure you get the best experience on our website. For more\n information on how we use cookies, please see our cookie policy.\n </p>\n </div>\n <div class=\"mt-2 flex items-center gap-2 border-t p-3\">\n <button class=\"h-9 w-full rounded-full\" (click)=\"accept()\" sc-button>accept</button>\n <button class=\"h-9 w-full rounded-full\" (click)=\"decline()\" sc-button variant=\"outline\">\n decline\n </button>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCookieConsent {\n open = signal(true);\n\n hidden = signal(false);\n\n class = signal(\n cn(\n 'fixed z-200 bottom-0 left-0 right-0 sm:left-4 sm:bottom-4 w-full sm:max-w-md duration-700',\n !this.open()\n ? 'transition-[opacity,transform] translate-y-8 opacity-0'\n : 'transition-[opacity,transform] translate-y-0 opacity-100',\n this.hidden() && 'hidden',\n ),\n );\n\n accept() {\n console.log('accept');\n }\n\n decline() {\n console.log('decline');\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nimport { ScCommentModel } from './comment-model';\n\n@Component({\n selector: 'sc-comment',\n imports: [DatePipe],\n template: `\n <div class=\"rounded-lg bg-white p-4 shadow-sm\">\n <!-- Comment Header -->\n <div class=\"mb-3 flex items-center gap-3\">\n <img class=\"size-8 rounded-full\" [src]=\"comment().avatar\" alt=\"Comment author avatar\" />\n <div>\n <h4 class=\"font-medium text-gray-900\">{{ comment().author }}</h4>\n <p class=\"text-sm text-gray-500\">\n {{ comment().timestamp | date: 'MMM d, y, h:mm a' }}\n </p>\n </div>\n </div>\n\n <!-- Comment Content -->\n <p class=\"mb-3 text-gray-700\">{{ comment().content }}</p>\n\n <!-- Comment Actions -->\n <div class=\"flex items-center gap-4 text-sm text-gray-500\">\n <button\n class=\"flex items-center gap-1 hover:text-blue-600\"\n (click)=\"likeComment(comment())\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5\"\n />\n </svg>\n {{ comment().likes }}\n </button>\n <button\n class=\"flex items-center gap-1 hover:text-blue-600\"\n (click)=\"toggleReplyForm(comment())\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 10h10a8 8 0 018 8v2M3 10l6 6m-6-6l6-6\"\n />\n </svg>\n Reply\n </button>\n </div>\n\n <!-- Nested Replies -->\n @if (comment().replies.length) {\n <div class=\"ml-8 mt-4 space-y-4\">\n @for (reply of comment().replies; track reply) {\n <div class=\"rounded-lg bg-gray-50 p-3\">\n <div class=\"mb-2 flex items-center gap-3\">\n <img class=\"size-6 rounded-full\" [src]=\"reply.avatar\" alt=\"Reply author avatar\" />\n <div>\n <h5 class=\"font-medium text-gray-900\">{{ reply.author }}</h5>\n <p class=\"text-xs text-gray-500\">\n {{ reply.timestamp | date: 'MMM d, y, h:mm a' }}\n </p>\n </div>\n </div>\n <p class=\"text-sm text-gray-700\">{{ reply.content }}</p>\n </div>\n }\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScComment {\n readonly comment = input.required<ScCommentModel>();\n\n likeComment(comment: ScCommentModel) {\n comment.likes++;\n }\n\n toggleReplyForm(comment: ScCommentModel) {\n // Implement reply form logic here\n console.log('Toggle reply form for comment:', comment.id);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n input,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nimport { ScComment } from './comment';\nimport { ScCommentModel, ScUserModel } from './comment-model';\n\n@Component({\n selector: 'sc-comments',\n imports: [ReactiveFormsModule, ScComment],\n template: `\n <div class=\"mx-auto max-w-3xl p-4\">\n <!-- New Comment Form -->\n <form class=\"mb-8\" [formGroup]=\"commentForm\" (ngSubmit)=\"onSubmit()\">\n <div class=\"flex gap-4\">\n <img class=\"size-10 rounded-full\" [src]=\"currentUser().avatar\" alt=\"User Avatar\" />\n <div class=\"flex-1\">\n <textarea\n class=\"h-24 w-full resize-none rounded-lg border border-gray-300 px-3 py-2 focus:border-blue-500 focus:ring-2 focus:ring-blue-500\"\n formControlName=\"content\"\n placeholder=\"Write a comment...\"\n ></textarea>\n <div class=\"mt-2 flex justify-end\">\n <button\n class=\"rounded-lg bg-blue-600 px-4 py-2 text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50\"\n [disabled]=\"!commentForm.valid\"\n type=\"submit\"\n >\n Post Comment\n </button>\n </div>\n </div>\n </div>\n </form>\n\n <!-- Comments List -->\n <div class=\"space-y-6\">\n @for (item of comments(); track $index) {\n <sc-comment [comment]=\"item\" />\n }\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScComments {\n private readonly fb = inject(FormBuilder);\n\n readonly comments = input.required<ScCommentModel[]>();\n\n readonly currentUser = input.required<ScUserModel>();\n\n protected readonly commentForm: FormGroup;\n\n constructor() {\n this.commentForm = this.fb.group({\n content: ['', [Validators.required, Validators.minLength(1)]],\n });\n }\n\n onSubmit() {\n if (this.commentForm.valid) {\n const newComment: ScCommentModel = {\n id: this.comments().length + 1,\n author: this.currentUser().name,\n avatar: this.currentUser().avatar,\n content: this.commentForm.value.content,\n timestamp: new Date(),\n likes: 0,\n replies: [],\n };\n\n this.comments().unshift(newComment);\n this.commentForm.reset();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n linkedSignal,\n output,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'sc-tags',\n imports: [ReactiveFormsModule],\n template: `\n <div class=\"w-full\">\n <!-- Tags Input -->\n <div\n class=\"min-h-[45px] w-full rounded-lg border border-gray-300 p-2 focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500\"\n [class.border-red-500]=\"error\"\n >\n <div class=\"flex flex-wrap gap-2\">\n <!-- Existing Tags -->\n @for (tag of tags(); track tag) {\n <span\n class=\"inline-flex items-center gap-1 rounded-full bg-blue-100 px-3 py-1 text-sm text-blue-800\"\n >\n {{ tag }}\n <button\n class=\"hover:text-blue-600 focus:outline-none\"\n (click)=\"removeTag(tag)\"\n type=\"button\"\n aria-label=\"Remove tag\"\n >\n <svg\n class=\"size-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </button>\n </span>\n }\n\n <!-- Input Field -->\n <input\n class=\"min-w-[120px] grow bg-transparent outline-none\"\n #tagInput\n [formControl]=\"tagControl\"\n [placeholder]=\"tags().length === 0 ? placeholder() : ''\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"addTag()\"\n />\n </div>\n </div>\n\n <!-- Error Message -->\n @if (error) {\n <div class=\"mt-1 text-sm text-red-500\">\n {{ error }}\n </div>\n }\n\n <!-- Helper Text -->\n @if (helperText()) {\n <div class=\"mt-1 text-sm text-gray-500\">\n {{ helperText() }}\n </div>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTags {\n readonly placeholder = input('Add tags...');\n readonly helperText = input('Press enter or comma to add tags');\n readonly maxTags = input(10);\n readonly minLength = input(2);\n readonly maxLength = input(20);\n\n readonly tagsInput = input<string[]>([], { alias: 'tags' });\n protected readonly tags = linkedSignal(() => this.tagsInput());\n readonly tagsChange = output<string[]>();\n\n tagControl = new FormControl('');\n error = '';\n\n onKeydown(event: KeyboardEvent): void {\n // Check for Enter key or Comma\n if (event.key === 'Enter' || event.key === ',') {\n event.preventDefault(); // Prevent the comma from being typed\n this.addTag();\n }\n }\n\n addTag(): void {\n const tag = this.tagControl.value?.trim().toLowerCase();\n\n if (!tag) {\n this.tagControl.setValue('');\n return;\n }\n\n // Remove comma if it was added\n const cleanTag = tag.replace(/,/g, '');\n\n if (!cleanTag) {\n this.tagControl.setValue('');\n return;\n }\n\n // Validation\n if (cleanTag.length < this.minLength()) {\n this.error = `Tag must be at least ${this.minLength()} characters long`;\n return;\n }\n\n if (cleanTag.length > this.maxLength()) {\n this.error = `Tag must be less than ${this.maxLength()} characters long`;\n return;\n }\n\n if (this.tags().length >= this.maxTags()) {\n this.error = `Maximum ${this.maxTags()} tags allowed`;\n return;\n }\n\n const tags = this.tags();\n if (tags.includes(cleanTag)) {\n this.error = 'Tag already exists';\n return;\n }\n\n // Add tag\n this.error = '';\n this.tags.update((tags) => [...tags, cleanTag]);\n this.tagsChange.emit(this.tags());\n this.tagControl.setValue('');\n }\n\n removeTag(tagToRemove: string): void {\n this.tags.update((tags) => tags.filter((tag) => tag !== tagToRemove));\n this.tagsChange.emit(this.tags());\n this.error = '';\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n OnInit,\n ViewEncapsulation,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n selector: 'sc-combobox',\n imports: [ReactiveFormsModule, NgTemplateOutlet],\n template: `\n <div class=\"relative w-full\" #container>\n <!-- Label -->\n @if (label()) {\n <label class=\"mb-1 block text-sm font-medium text-gray-700\" [for]=\"id()\">\n {{ label() }}\n </label>\n }\n\n <!-- Input Group -->\n <div class=\"relative\">\n <input\n class=\"w-full rounded-lg border px-4 py-2 focus:border-blue-500 focus:ring-2 focus:ring-blue-500\"\n [id]=\"id()\"\n [formControl]=\"searchControl\"\n [placeholder]=\"placeholder()\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-activedescendant]=\"activeId\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-owns]=\"listboxId\"\n [attr.aria-autocomplete]=\"'list'\"\n [attr.aria-haspopup]=\"'listbox'\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeydown($event)\"\n type=\"text\"\n role=\"combobox\"\n />\n\n <!-- Dropdown button -->\n <button\n class=\"absolute inset-y-0 right-0 flex items-center px-2\"\n [attr.aria-label]=\"isOpen ? 'Close options' : 'Open options'\"\n (keydown)=\"onButtonKeydown($event)\"\n (click)=\"handleButtonInteraction($event)\"\n type=\"button\"\n tabindex=\"0\"\n >\n <svg class=\"size-5 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n </div>\n\n <!-- Dropdown -->\n @if (isOpen) {\n <div\n class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white shadow-lg\"\n [id]=\"listboxId\"\n [attr.aria-label]=\"label() || 'Options'\"\n role=\"listbox\"\n >\n @if (loading()) {\n <div class=\"p-4 text-center text-gray-500\" role=\"status\">Loading...</div>\n }\n @if (!loading() && filteredOptions.length === 0) {\n <div class=\"p-4 text-center text-gray-500\" role=\"status\">No results found</div>\n }\n @if (!loading() && filteredOptions.length > 0) {\n <ul>\n @for (option of filteredOptions; track option; let i = $index) {\n <li\n class=\"cursor-pointer px-4 py-2 outline-none\"\n [id]=\"id() + '-option-' + i\"\n [attr.aria-selected]=\"i === activeIndex\"\n [class.bg-blue-100]=\"i === activeIndex\"\n (click)=\"handleOptionClick($event, option)\"\n (keydown)=\"onOptionKeydown($event, option)\"\n (mouseenter)=\"setActiveIndex(i)\"\n role=\"option\"\n tabindex=\"0\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n optionTemplate() || defaultOptionTemplate;\n context: { $implicit: option }\n \"\n ></ng-container>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n\n <!-- Default option template -->\n <ng-template #defaultOptionTemplate let-option>\n {{ getOptionLabel(option) }}\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCombobox implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n readonly id = input(`combobox-${Math.random().toString(36).substr(2, 9)}`);\n readonly label = input<string>();\n readonly placeholder = input('Select an option');\n readonly options = input<any[]>([]);\n readonly optionTemplate = input<any>();\n readonly loading = input(false);\n readonly labelKey = input('label');\n\n readonly optionSelected = output<any>();\n readonly search = output<string>();\n\n searchControl = new FormControl('');\n isOpen = false;\n activeIndex = -1;\n filteredOptions: any[] = [];\n listboxId = `${this.id()}-listbox`;\n\n private closeTimeout?: any;\n\n get activeId(): string {\n return this.activeIndex >= 0 ? `${this.id()}-option-${this.activeIndex}` : '';\n }\n\n constructor() {\n this.searchControl.valueChanges\n .pipe(debounceTime(300), distinctUntilChanged())\n .subscribe((value) => {\n this.onSearch(value ?? '');\n });\n }\n\n ngOnInit() {\n this.listboxId = `${this.id()}-listbox`;\n }\n\n // Handle button interactions\n handleButtonInteraction(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.toggleDropdown();\n }\n\n onButtonKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case ' ':\n case 'Enter':\n event.preventDefault();\n event.stopPropagation();\n this.toggleDropdown();\n break;\n }\n }\n\n // Handle option interactions\n handleOptionClick(event: MouseEvent, option: any) {\n event.preventDefault();\n event.stopPropagation();\n this.selectOption(option);\n }\n\n onOptionKeydown(event: KeyboardEvent, option: any) {\n switch (event.key) {\n case ' ':\n case 'Enter':\n event.preventDefault();\n event.stopPropagation();\n this.selectOption(option);\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.moveActiveIndex(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveActiveIndex(-1);\n break;\n case 'Home':\n event.preventDefault();\n this.setActiveIndex(0);\n break;\n case 'End':\n event.preventDefault();\n this.setActiveIndex(this.filteredOptions.length - 1);\n break;\n }\n }\n\n moveActiveIndex(delta: number) {\n const newIndex = this.activeIndex + delta;\n if (newIndex >= 0 && newIndex < this.filteredOptions.length) {\n this.setActiveIndex(newIndex);\n }\n }\n\n setActiveIndex(index: number) {\n this.activeIndex = index;\n this.scrollActiveOptionIntoView();\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: Event) {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n toggleDropdown() {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.isOpen ? this.close() : this.open();\n }\n\n open() {\n this.isOpen = true;\n this.filterOptions();\n }\n\n close() {\n this.isOpen = false;\n this.activeIndex = -1;\n }\n\n onFocus() {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n }\n }\n\n onBlur() {\n this.closeTimeout = setTimeout(() => this.close(), 200);\n }\n\n onSearch(query: string) {\n this.search.emit(query);\n this.filterOptions();\n }\n\n filterOptions() {\n const query = this.searchControl.value?.toLowerCase() ?? '';\n this.filteredOptions = this.options().filter((option) =>\n this.getOptionLabel(option).toLowerCase().includes(query),\n );\n this.activeIndex = -1;\n }\n\n selectOption(option: any) {\n this.searchControl.setValue(this.getOptionLabel(option), { emitEvent: false });\n this.optionSelected.emit(option);\n this.close();\n }\n\n getOptionLabel(option: any): string {\n return typeof option === 'object' ? option[this.labelKey()] : option.toString();\n }\n\n onKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) {\n this.open();\n }\n this.moveActiveIndex(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveActiveIndex(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (this.activeIndex >= 0) {\n this.selectOption(this.filteredOptions[this.activeIndex]);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.close();\n break;\n case 'Tab':\n this.close();\n break;\n }\n }\n\n private scrollActiveOptionIntoView() {\n if (this.activeIndex >= 0) {\n const activeOption = document.getElementById(`${this.id()}-option-${this.activeIndex}`);\n if (activeOption) {\n activeOption.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnInit,\n ViewEncapsulation,\n input,\n output,\n viewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-clock-picker',\n imports: [],\n template: `\n <div class=\"inline-block\">\n <!-- Time Display -->\n <div class=\"mb-4 text-center\">\n <span class=\"text-3xl font-bold\">\n {{ formatTime(selectedHour, selectedMinute, selectedPeriod) }}\n </span>\n </div>\n\n <!-- Clock Face -->\n <div class=\"relative size-64 rounded-full border-2 border-gray-200 bg-gray-100\" #clockFace>\n <!-- Hour Markers -->\n @for (hour of hours; track hour) {\n <div\n class=\"pointer-events-none absolute size-full\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg)'\"\n >\n <div class=\"absolute left-1/2 top-0 h-full -translate-x-1/2\">\n <span class=\"absolute top-2 -translate-x-1/2 font-medium\">\n {{ hour === 0 ? 12 : hour }}\n </span>\n </div>\n </div>\n }\n\n <!-- Clickable Areas -->\n <div\n class=\"absolute inset-0\"\n (mousedown)=\"startMinuteDrag($event)\"\n (touchstart)=\"startMinuteDrag($event)\"\n >\n <div\n class=\"absolute inset-8\"\n (mousedown)=\"startHourDrag($event)\"\n (touchstart)=\"startHourDrag($event)\"\n ></div>\n </div>\n\n <!-- Hour Hand -->\n <div\n class=\"pointer-events-none absolute left-1/2 top-1/2 h-16 w-1 origin-top rounded-full bg-blue-600\"\n [style.transform]=\"'rotate(' + getHourDegrees() + 'deg) translateX(-50%)'\"\n ></div>\n\n <!-- Minute Hand -->\n <div\n class=\"pointer-events-none absolute left-1/2 top-1/2 h-24 w-0.5 origin-top rounded-full bg-blue-400\"\n [style.transform]=\"'rotate(' + getMinuteDegrees() + 'deg) translateX(-50%)'\"\n ></div>\n\n <!-- Center Dot -->\n <div\n class=\"pointer-events-none absolute left-1/2 top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-blue-600\"\n ></div>\n </div>\n\n <!-- AM/PM Toggle -->\n <div class=\"mt-4 flex justify-center gap-2\">\n @for (period of periods; track period) {\n <button\n [class]=\"\n 'px-4 py-2 rounded-lg ' +\n (selectedPeriod === period\n ? 'bg-blue-500 text-white'\n : 'bg-gray-100 hover:bg-gray-200')\n \"\n (click)=\"selectPeriod(period)\"\n >\n {{ period }}\n </button>\n }\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScClockPicker implements OnInit {\n readonly clockFace = viewChild.required<ElementRef>('clockFace');\n readonly initialTime = input<string>();\n readonly timeSelected = output<string>();\n\n hours = Array.from({ length: 12 }, (_, i) => i);\n periods = ['AM', 'PM'];\n\n selectedHour = 12;\n selectedMinute = 0;\n selectedPeriod = 'AM';\n\n isDragging = false;\n isHourMode = true;\n\n private readonly moveHandler: (event: MouseEvent | TouchEvent) => void;\n private readonly endHandler: () => void;\n\n constructor() {\n this.moveHandler = (event: MouseEvent | TouchEvent) => this.handleMove(event);\n this.endHandler = () => this.stopDrag();\n }\n\n ngOnInit() {\n const initialTime = this.initialTime();\n if (initialTime) {\n this.parseInitialTime(initialTime);\n }\n }\n\n parseInitialTime(time: string) {\n const [timeStr, period] = time.split(' ');\n const [hours, minutes] = timeStr.split(':').map(Number);\n\n this.selectedHour = hours % 12 || 12;\n this.selectedMinute = minutes;\n this.selectedPeriod = period;\n }\n\n startHourDrag(event: MouseEvent | TouchEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isHourMode = true;\n this.startDrag(event);\n }\n\n startMinuteDrag(event: MouseEvent | TouchEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isHourMode = false;\n this.startDrag(event);\n }\n\n private startDrag(event: MouseEvent | TouchEvent) {\n this.isDragging = true;\n document.addEventListener('mousemove', this.moveHandler);\n document.addEventListener('touchmove', this.moveHandler);\n document.addEventListener('mouseup', this.endHandler);\n document.addEventListener('touchend', this.endHandler);\n this.handleMove(event);\n }\n\n private handleMove(event: MouseEvent | TouchEvent) {\n if (!this.isDragging) return;\n\n const rect = this.clockFace().nativeElement.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n let clientX: number, clientY: number;\n\n if (event instanceof MouseEvent) {\n clientX = event.clientX;\n clientY = event.clientY;\n } else {\n clientX = event.touches[0].clientX;\n clientY = event.touches[0].clientY;\n }\n\n const angle = (Math.atan2(clientY - centerY, clientX - centerX) * 180) / Math.PI + 90;\n\n if (this.isHourMode) {\n this.selectedHour = Math.round(((angle + 360) % 360) / 30) % 12 || 12;\n } else {\n this.selectedMinute = Math.round(((angle + 360) % 360) / 6) % 60;\n }\n\n this.emitTimeChange();\n }\n\n private stopDrag() {\n if (!this.isDragging) return;\n\n this.isDragging = false;\n document.removeEventListener('mousemove', this.moveHandler);\n document.removeEventListener('touchmove', this.moveHandler);\n document.removeEventListener('mouseup', this.endHandler);\n document.removeEventListener('touchend', this.endHandler);\n\n this.emitTimeChange();\n }\n\n getHourDegrees(): number {\n return (this.selectedHour % 12) * 30 + (this.selectedMinute / 60) * 30;\n }\n\n getMinuteDegrees(): number {\n return this.selectedMinute * 6;\n }\n\n selectPeriod(period: string) {\n this.selectedPeriod = period;\n this.emitTimeChange();\n }\n\n formatTime(hour: number, minute: number, period: string): string {\n return `${hour}:${minute.toString().padStart(2, '0')} ${period}`;\n }\n\n emitTimeChange() {\n const formattedTime = this.formatTime(\n this.selectedHour,\n this.selectedMinute,\n this.selectedPeriod,\n );\n this.timeSelected.emit(formattedTime);\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n signal,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-clock-picker2',\n imports: [NgClass],\n template: `\n <div class=\"w-80 rounded-lg bg-white p-5 shadow-lg\">\n <div class=\"mb-5 text-center text-2xl\">{{ formattedHour() }}:{{ formattedMinute() }}</div>\n\n <div class=\"relative mx-auto mb-5 size-52\">\n <!-- Clock face -->\n <div class=\"absolute size-full rounded-full border-2 border-gray-200 bg-gray-100\">\n <!-- Center dot -->\n <div\n class=\"absolute left-1/2 top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-gray-800\"\n ></div>\n\n <!-- Clock hand -->\n <div\n class=\"absolute left-1/2 top-5 h-20 w-0.5 origin-bottom -translate-x-1/2 bg-blue-500\"\n [style.transform]=\"getHandRotation()\"\n ></div>\n\n <!-- Numbers -->\n\n @for (item of generateClockNumbers(); track $index) {\n <button\n class=\"absolute flex size-8 items-center justify-center rounded-full text-sm\"\n [ngClass]=\"\n (isHourMode() && item.number === selectedHour()) ||\n (!isHourMode() && item.number * 5 === selectedMinute())\n ? 'bg-blue-500 text-white'\n : 'hover:bg-gray-200'\n \"\n [style]=\"item.style\"\n (click)=\"handleNumberClick(item.number)\"\n >\n {{ numToDisplay(item.number) }}\n </button>\n }\n </div>\n </div>\n\n <!-- Mode switches -->\n <div class=\"flex justify-center gap-2\">\n <button\n class=\"rounded px-4 py-2 text-white\"\n [ngClass]=\"isHourMode() ? 'bg-blue-600' : 'bg-blue-400'\"\n (click)=\"isHourMode.set(true)\"\n >\n Hours\n </button>\n\n <button\n class=\"rounded px-4 py-2 text-white\"\n [ngClass]=\"!isHourMode() ? 'bg-blue-600' : 'bg-blue-400'\"\n (click)=\"isHourMode.set(false)\"\n >\n Minutes\n </button>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScClockPicker2 {\n protected readonly isHourMode = signal(true);\n protected readonly selectedHour = signal(12);\n protected readonly selectedMinute = signal(60);\n\n protected numToDisplay(number: number) {\n if (this.isHourMode()) {\n return number;\n }\n const minutes = number * 5;\n if (minutes === 60) {\n return 0;\n }\n return minutes;\n }\n\n protected readonly formattedHour = computed(() => String(this.selectedHour()).padStart(2, '0'));\n protected readonly formattedMinute = computed(() => {\n let minutes = this.selectedMinute();\n if (minutes === 60) {\n minutes = 0;\n }\n\n return String(minutes).padStart(2, '0');\n });\n\n // Generate positions for clock numbers\n generateClockNumbers = computed(() => {\n const numbers = this.isHourMode() ? 12 : 60;\n const step = this.isHourMode() ? 1 : 5;\n const items = [];\n\n for (let i = 1; i <= numbers / step; i++) {\n const angle = i * (360 / (numbers / step)) - 90;\n const radius = 80;\n const x = Math.cos((angle * Math.PI) / 180) * radius;\n const y = Math.sin((angle * Math.PI) / 180) * radius;\n\n //86 because the width of div is 204 and the width of the button is 32\n // 86 = (204 - 32 ) / 2\n items.push({\n number: i,\n style: {\n left: `${x + 86}px`,\n top: `${y + 86}px`,\n },\n });\n }\n\n return items;\n });\n\n handleNumberClick = (num: number) => {\n if (this.isHourMode()) {\n this.selectedHour.set(num);\n } else {\n this.selectedMinute.set(num * 5);\n }\n };\n\n getHandRotation = computed(() => {\n const value = this.isHourMode() ? this.selectedHour() : this.selectedMinute() / 5;\n // Calculate angle, ensuring correct rotation and offset\n const angle = (value % 12) * (360 / 12);\n return `rotate(${angle}deg)`;\n });\n}\n","// image-placeholder.service.ts\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagePlaceholderService {\n generatePlaceholder(width: number, height: number, text?: string): string {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (ctx) {\n // Background\n ctx.fillStyle = '#E0E0E0';\n ctx.fillRect(0, 0, width, height);\n\n // Text\n ctx.fillStyle = '#888';\n ctx.font = `${Math.min(width, height) / 10}px Arial`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n const displayText = text ?? `${width}x${height}`;\n ctx.fillText(displayText, width / 2, height / 2);\n }\n\n return canvas.toDataURL();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ImagePlaceholderService } from './image-placeholder.service';\n\n@Component({\n selector: 'img[sc-image-placeholder]',\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n '[src]': 'placeholderSrc()',\n '[width]': 'width()',\n '[height]': 'height()',\n '[alt]': 'alt()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScImagePlaceholder {\n private readonly placeholderService = inject(ImagePlaceholderService);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('object-cover', this.classInput()));\n\n readonly width = input(300);\n readonly height = input(200);\n readonly alt = input('Placeholder');\n\n //TODO use alt instead of text\n readonly text = input('');\n\n protected readonly placeholderSrc = computed(() => {\n return this.placeholderService.generatePlaceholder(this.width(), this.height(), this.text());\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'p[sc-description]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'description',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDescription {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('text-sm text-muted-foreground', this.classInput()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-error-message',\n imports: [],\n template: `\n <p>error-message works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScErrorMessage {}\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScInput } from '../input';\nimport { ScLabel } from '../label';\n\n@Component({\n selector: 'sc-field',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScField {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n '*:data-[slot=control]:mt-2 [&>[data-slot=control]+[data-slot=description]]:mt-2',\n this.classInput(),\n ),\n );\n\n readonly id = signal<string>(inject(_IdGenerator).getId('sc-field-'));\n\n readonly scLabel = contentChild(ScLabel);\n\n readonly scInput = contentChild(ScInput);\n\n constructor() {\n afterNextRender(() => {\n this.scLabel()?.for.set(this.id());\n this.scInput()?.id.set(this.id());\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'fieldset[sc-fieldset]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'fieldset',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScFieldset {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn('[&>*+[data-slot=control]]:mt-6 *:data-[slot=text]:mt-1', this.classInput()),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'legend[sc-legend]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'legend',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScLegend {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'text-base/6 font-semibold text-zinc-950 data-disabled:opacity-50 sm:text-sm/6 dark:text-white',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'span[sc-touch-area]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTouchArea {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n // 'absolute top-1/2 left-1/2 -translate-1/2 pointer-fine:hidden size-[max(100%, 44px)]',\n 'absolute top-1/2 left-1/2 -translate-1/2 pointer-fine:hidden size-[44px]',\n this.classInput(),\n ),\n );\n}\n","import { Directive, ElementRef, OnInit, inject, input, output } from '@angular/core';\n\n@Directive({\n selector: '[scScrollSpy]',\n})\nexport class ScScrollSpy implements OnInit {\n private readonly el = inject(ElementRef);\n\n readonly spySections = input<string[]>([]); // Section IDs to track\n readonly sectionChange = output<string>(); // Emits active section ID\n\n private observer!: IntersectionObserver;\n\n ngOnInit() {\n this.observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.sectionChange.emit(entry.target.id); // Emit when section is visible\n }\n });\n },\n {\n root: null, // Use viewport as root\n threshold: 0.6, // Section is active when 60% is visible\n },\n );\n\n this.spySections().forEach((id) => {\n const section = document.getElementById(id);\n if (section) {\n this.observer.observe(section);\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n output,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'sc-color-picker',\n imports: [FormsModule],\n template: `\n <div class=\"max-w-md p-4 bg-white rounded-lg shadow-md\">\n <div class=\"flex items-center mb-4 space-x-4\">\n <div\n class=\"w-12 h-12 rounded border border-gray-300\"\n [style.backgroundColor]=\"selectedColor\"\n ></div>\n <input\n class=\"px-3 py-2 w-32 bg-gray-50 border border-gray-300 rounded text-sm focus:outline-none focus:ring-2 focus:ring-blue-500\"\n [value]=\"selectedColor\"\n type=\"text\"\n readonly\n />\n </div>\n\n <div class=\"space-y-6\">\n <!-- RGB Sliders -->\n <div class=\"space-y-4\">\n <!-- Red Slider -->\n <div class=\"flex items-center space-x-4\">\n <label class=\"w-16 text-sm font-medium text-gray-700\" for=\"label_12\">Red:</label>\n <input\n class=\"grow h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-red-500\"\n id=\"label_12\"\n [(ngModel)]=\"red\"\n (ngModelChange)=\"updateColor()\"\n type=\"range\"\n min=\"0\"\n max=\"255\"\n />\n <span class=\"w-12 text-right text-sm text-gray-600\">{{ red }}</span>\n </div>\n\n <!-- Green Slider -->\n <div class=\"flex items-center space-x-4\">\n <label class=\"w-16 text-sm font-medium text-gray-700\" for=\"label_121\">Green:</label>\n <input\n class=\"grow h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-green-500\"\n id=\"label_121\"\n [(ngModel)]=\"green\"\n (ngModelChange)=\"updateColor()\"\n type=\"range\"\n min=\"0\"\n max=\"255\"\n />\n <span class=\"w-12 text-right text-sm text-gray-600\">{{ green }}</span>\n </div>\n\n <!-- Blue Slider -->\n <div class=\"flex items-center space-x-4\">\n <label class=\"w-16 text-sm font-medium text-gray-700\" for=\"label_126\">Blue:</label>\n <input\n class=\"grow h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-blue-500\"\n id=\"label_126\"\n [(ngModel)]=\"blue\"\n (ngModelChange)=\"updateColor()\"\n type=\"range\"\n min=\"0\"\n max=\"255\"\n />\n <span class=\"w-12 text-right text-sm text-gray-600\">{{ blue }}</span>\n </div>\n </div>\n\n <!-- Preset Colors -->\n <div>\n <p class=\"mb-2 text-sm font-medium text-gray-700\">Preset Colors:</p>\n <div class=\"grid grid-cols-5 gap-2\">\n @for (color of presetColors; track color) {\n <button\n class=\"w-8 h-8 rounded border border-gray-300 transition-transform hover:scale-110 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\n [style.backgroundColor]=\"color\"\n (click)=\"selectPresetColor(color)\"\n >\n <span></span>\n </button>\n }\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScColorPicker implements OnInit {\n @Input() initialColor = '#ff0000';\n readonly colorChange = output<string>();\n\n red = 255;\n green = 0;\n blue = 0;\n selectedColor = '#ff0000';\n\n presetColors: string[] = [\n '#ff0000',\n '#00ff00',\n '#0000ff',\n '#ffff00',\n '#ff00ff',\n '#00ffff',\n '#000000',\n '#ffffff',\n '#808080',\n '#ffa500',\n ];\n\n ngOnInit() {\n this.setInitialColor();\n }\n\n setInitialColor() {\n const color = this.initialColor.replace('#', '');\n this.red = parseInt(color.substr(0, 2), 16);\n this.green = parseInt(color.substr(2, 2), 16);\n this.blue = parseInt(color.substr(4, 2), 16);\n this.updateColor();\n }\n\n updateColor() {\n this.selectedColor = `#${this.componentToHex(this.red)}${this.componentToHex(this.green)}${this.componentToHex(this.blue)}`;\n this.colorChange.emit(this.selectedColor);\n }\n\n componentToHex(c: number): string {\n const hex = c.toString(16);\n return hex.length == 1 ? '0' + hex : hex;\n }\n\n selectPresetColor(color: string) {\n this.initialColor = color;\n this.setInitialColor();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'button[sc-toggle-switch]',\n imports: [],\n template: `\n <span\n class=\"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n data-state=\"unchecked\"\n ></span>\n `,\n host: {\n '[class]': 'class()',\n role: 'switch',\n 'aria-checked': 'false',\n 'data-state': 'unchecked',\n value: 'on',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScToggleSwitch {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'input[sc-range-slider]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n 'data-slot': 'control',\n '[min]': 'min()',\n '[max]': 'max()',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRangeSlider {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n ' w-full h-full appearance-none bg-transparent pointer-events-none [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-md [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:cursor-pointer [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-white [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:shadow-md [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:pointer-events-auto [&::-moz-range-thumb]:cursor-pointer',\n this.classInput(),\n ),\n );\n\n readonly type = input.required<'range'>();\n\n readonly min = input<number>(0);\n\n readonly max = input<number>(100);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'sc-dual-range-slider',\n imports: [FormsModule],\n template: `\n <div class=\"w-full max-w-md px-4 py-6\">\n <div class=\"relative h-2\">\n <!-- Track background -->\n <div class=\"absolute w-full h-full bg-gray-200 rounded-full\"></div>\n\n <!-- Selected range track -->\n <div\n class=\"absolute h-full bg-blue-500 rounded-full\"\n [style.left]=\"minPercentage + '%'\"\n [style.right]=\"100 - maxPercentage + '%'\"\n ></div>\n\n <!-- Min value slider -->\n <input\n class=\"absolute w-full h-full appearance-none bg-transparent pointer-events-none [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-md [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:cursor-pointer [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-white [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:shadow-md [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:pointer-events-auto [&::-moz-range-thumb]:cursor-pointer\"\n [(ngModel)]=\"minValue\"\n [min]=\"min()\"\n [max]=\"max()\"\n (input)=\"onMinChange($event)\"\n type=\"range\"\n />\n\n <!-- Max value slider -->\n <input\n class=\"absolute w-full h-full appearance-none bg-transparent pointer-events-none [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-md [&::-webkit-slider-thumb]:pointer-events-auto [&::-webkit-slider-thumb]:cursor-pointer [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-white [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:shadow-md [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:pointer-events-auto [&::-moz-range-thumb]:cursor-pointer\"\n [(ngModel)]=\"maxValue\"\n [min]=\"min()\"\n [max]=\"max()\"\n (input)=\"onMaxChange($event)\"\n type=\"range\"\n />\n </div>\n\n <!-- Value display -->\n <div class=\"mt-4 flex justify-between text-sm text-gray-600\">\n <span>Min: {{ minValue }}</span>\n <span>Max: {{ maxValue }}</span>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScDualRangeSlider {\n readonly min = input(0);\n readonly max = input(100);\n @Input() minValue = 20;\n @Input() maxValue = 80;\n\n readonly minValueChange = output<number>();\n readonly maxValueChange = output<number>();\n\n get minPercentage(): number {\n return ((this.minValue - this.min()) * 100) / (this.max() - this.min());\n }\n\n get maxPercentage(): number {\n return ((this.maxValue - this.min()) * 100) / (this.max() - this.min());\n }\n\n onMinChange(event: Event): void {\n const value = Number((event.target as HTMLInputElement).value);\n if (value < this.maxValue) {\n this.minValue = value;\n this.minValueChange.emit(value);\n }\n }\n\n onMaxChange(event: Event): void {\n const value = Number((event.target as HTMLInputElement).value);\n if (value > this.minValue) {\n this.maxValue = value;\n this.maxValueChange.emit(value);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n inject,\n signal,\n} from '@angular/core';\n\n// Automatically detects sections with the <section id=\"...\"> format\n// Uses IntersectionObserver to track which sections are in view\n// Highlights the active section in the TOC\n// Implements smooth scrolling when clicking TOC links\n// Updates URL hash without causing page jumps\n// Works with any content structure that uses section tags with IDs\n// Clean separation of concerns between component, template, and styles\n\nexport interface ScSection {\n id: string;\n title: string;\n element: HTMLElement;\n}\n\n@Component({\n selector: 'sc-table-of-contents',\n imports: [CommonModule],\n template: `\n <div\n class=\"sticky top-8 self-start w-64 max-h-[90vh] overflow-y-auto p-4 bg-gray-50 rounded-lg shadow-md\"\n >\n <h3 class=\"text-lg font-semibold mb-4\">Table of Contents</h3>\n <ul class=\"space-y-1\">\n @for (section of sections(); track section) {\n <li>\n <a\n class=\"block py-2 pl-4 border-l-2 transition-all duration-200 rounded-r\"\n [ngClass]=\"{\n 'border-blue-600 text-blue-600 font-medium bg-blue-50':\n activeSection() === section.id,\n 'border-transparent text-gray-600 hover:text-gray-900 hover:bg-gray-100':\n activeSection() !== section.id,\n }\"\n (click)=\"scrollToSection($event, section.id)\"\n href=\"#{{ section.id }}\"\n >\n {{ section.title }}\n </a>\n </li>\n }\n </ul>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTableOfContents implements AfterViewInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n\n sections = signal<ScSection[]>([]);\n activeSection = signal('');\n private observer: IntersectionObserver | null = null;\n\n ngAfterViewInit(): void {\n // After the view is initialized, find all sections\n this.initializeToc();\n }\n\n ngOnDestroy(): void {\n // Clean up the observer when component is destroyed\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n private initializeToc(): void {\n // Get all sections from the document (with section tag and id attribute)\n const foundSections = Array.from(document.querySelectorAll('section[id]'));\n\n this.sections.set(\n foundSections.map((section) => ({\n id: section.id,\n title: section.querySelector('h2')?.textContent ?? 'Untitled Section',\n element: section as HTMLElement,\n })),\n );\n\n // Set up and start the intersection observer\n this.setupIntersectionObserver();\n }\n\n private setupIntersectionObserver(): void {\n const options = {\n rootMargin: '-100px 0px -70% 0px',\n threshold: 0,\n };\n\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.activeSection.set(entry.target.id);\n }\n });\n }, options);\n\n // Start observing each section\n this.sections().forEach((section) => {\n this.observer?.observe(section.element);\n });\n }\n\n scrollToSection(event: Event, sectionId: string): void {\n event.preventDefault();\n const section = document.getElementById(sectionId);\n\n if (section) {\n section.scrollIntoView({ behavior: 'smooth' });\n // Update URL without triggering navigation\n window.history.pushState(null, '', `#${sectionId}`);\n }\n }\n}\n","import { CdkStepper, CdkStepperModule } from '@angular/cdk/stepper';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n OnInit,\n ViewEncapsulation,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-stepper',\n imports: [CommonModule, CdkStepperModule],\n template: `\n <div class=\"w-full\">\n <!-- Step header navigation -->\n <div class=\"flex justify-between mb-8\">\n @for (step of steps; track step; let i = $index; let last = $last) {\n <div class=\"flex items-center\">\n <!-- Step circle with number -->\n <button\n class=\"flex items-center justify-center w-10 h-10 rounded-full font-medium transition-colors duration-200\"\n [ngClass]=\"{\n 'bg-blue-600 text-white': selectedIndex >= i,\n 'bg-gray-200 text-gray-600': selectedIndex < i,\n }\"\n (click)=\"onClick(i)\"\n >\n @if (selectedIndex > i) {\n <span class=\"text-lg\">✓</span>\n }\n @if (selectedIndex <= i) {\n <span>{{ i + 1 }}</span>\n }\n </button>\n <!-- Step label -->\n <span\n class=\"ml-3 font-medium transition-colors duration-200\"\n [ngClass]=\"{\n 'text-blue-600': selectedIndex >= i,\n 'text-gray-500': selectedIndex < i,\n }\"\n >\n {{ step.label }}\n </span>\n </div>\n <!-- Connector line between steps -->\n @if (!last) {\n <div\n class=\"grow mx-4 h-0.5 mt-5\"\n [ngClass]=\"{ 'bg-blue-600': selectedIndex > i, 'bg-gray-200': selectedIndex <= i }\"\n ></div>\n }\n }\n </div>\n\n <!-- Step content -->\n <div class=\"p-6 bg-white rounded-lg shadow-sm border border-gray-200\">\n <ng-container [ngTemplateOutlet]=\"selected ? selected.content : null\"></ng-container>\n\n <!-- Navigation buttons -->\n <div class=\"flex justify-between mt-8\">\n @if (selectedIndex > 0) {\n <button\n class=\"px-4 py-2 text-blue-600 border border-blue-600 rounded-md hover:bg-blue-50 transition-colors duration-200\"\n (click)=\"previous()\"\n >\n Previous\n </button>\n }\n <div class=\"grow\"></div>\n @if (selectedIndex < steps.length - 1) {\n <button\n class=\"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors duration-200\"\n (click)=\"next()\"\n >\n Next\n </button>\n }\n @if (selectedIndex === steps.length - 1) {\n <button\n class=\"px-4 py-2 bg-green-600 text-white rounded-md hover:bg-green-700 transition-colors duration-200\"\n (click)=\"complete()\"\n >\n Complete\n </button>\n }\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CdkStepper, useExisting: ScStepper }],\n})\nexport class ScStepper extends CdkStepper implements OnInit {\n readonly stepCompleteEvent = input(new EventEmitter<void>());\n\n ngOnInit() {\n this.linear = false; // Allow steps to be accessed in any order\n }\n\n onClick(index: number): void {\n this.selectedIndex = index;\n }\n\n complete(): void {\n this.stepCompleteEvent().emit();\n console.log('Stepper completed!');\n }\n}\n","import { CdkStep, CdkStepperModule } from '@angular/cdk/stepper';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-step',\n imports: [CdkStepperModule],\n template: `\n <ng-template>\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CdkStep, useExisting: ScStep }],\n})\nexport class ScStep extends CdkStep {\n @Input() override label = '';\n\n @ViewChild(TemplateRef, { static: true }) override content: TemplateRef<any> = null!;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewEncapsulation,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-rating',\n imports: [],\n template: `\n <div class=\"flex items-center\">\n <div class=\"flex\">\n @for (position of positions; track position; let i = $index) {\n <button\n class=\"relative\"\n (mouseenter)=\"onHover(position)\"\n (mouseleave)=\"onHover(0)\"\n (click)=\"onRate(position)\"\n >\n <!-- Base star (gray background) -->\n <svg class=\"w-6 h-6 text-gray-300\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n />\n </svg>\n <!-- Left half star (for 0.5 increments) -->\n @if (isHalfOrFullStar(position)) {\n <div\n class=\"absolute top-0 left-0 overflow-hidden\"\n [style.width]=\"isHalfStar(position) ? '50%' : '100%'\"\n >\n <svg class=\"w-6 h-6 text-yellow-400\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n />\n </svg>\n </div>\n }\n <!-- Hover effect overlay -->\n @if (interactive() && hoverRating >= position) {\n <div\n class=\"absolute top-0 left-0\"\n [style.width]=\"\n isHalfValue(hoverRating) && Math.ceil(hoverRating) === position ? '50%' : '100%'\n \"\n >\n <svg class=\"w-6 h-6 text-yellow-500\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\n />\n </svg>\n </div>\n }\n </button>\n }\n </div>\n @if (showRatingValue()) {\n <span class=\"ml-2 text-sm text-gray-600\">\n {{ rating.toFixed(1) }}\n </span>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScRating implements OnInit, OnChanges {\n readonly maxRating = input(5);\n @Input() rating = 0;\n readonly interactive = input(true);\n readonly showRatingValue = input(false);\n readonly allowHalfStars = input(true);\n @Output() ratingChange = new EventEmitter<number>();\n\n positions: number[] = [];\n hoverRating = 0;\n Math = Math; // Make Math available in the template\n\n ngOnInit() {\n this.generatePositions();\n }\n\n ngOnChanges() {\n this.generatePositions();\n }\n\n generatePositions() {\n this.positions = Array.from({ length: this.maxRating() }, (_, i) => i + 1);\n }\n\n onHover(position: number) {\n if (!this.interactive()) return;\n this.hoverRating = position;\n }\n\n onRate(position: number) {\n if (!this.interactive()) return;\n if (this.rating === position && this.allowHalfStars()) {\n // If clicking the same star, toggle between whole and half star\n this.rating = position - 0.5;\n } else {\n this.rating = position;\n }\n this.ratingChange.emit(this.rating);\n }\n\n isHalfOrFullStar(position: number): boolean {\n return this.rating >= position - 0.5;\n }\n\n isHalfStar(position: number): boolean {\n return Math.ceil(this.rating) === position && this.isHalfValue(this.rating);\n }\n\n isHalfValue(value: number): boolean {\n return value % 1 !== 0;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n inject,\n linkedSignal,\n signal,\n} from '@angular/core';\n\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { Subject, fromEvent } from 'rxjs';\n\ninterface NavItem {\n id: string;\n text: string;\n level: number;\n children: NavItem[];\n}\n\n@Component({\n selector: 'sc-on-this-page',\n imports: [CommonModule],\n template: `\n <div\n class=\"sticky top-8 max-h-[calc(100vh-2rem)] overflow-y-auto p-4 border-l border-gray-200 w-64\"\n >\n <h4 class=\"text-base font-semibold mb-4 text-gray-800\">On This Page</h4>\n <nav>\n <ng-container\n *ngTemplateOutlet=\"navTemplate; context: { items: navItems(), level: 1 }\"\n ></ng-container>\n </nav>\n </div>\n\n <!-- Recursive template for nested navigation -->\n <ng-template #navTemplate let-items=\"items\" let-level=\"level\">\n <ul class=\"list-none p-0 m-0\">\n @for (item of items; track item) {\n <li class=\"text-sm\">\n <button\n [ngClass]=\"[\n item.id === activeItem()\n ? 'text-blue-600 font-medium border-l-2 border-blue-600'\n : 'text-gray-600 border-l-2 border-transparent',\n 'block py-1 transition-all duration-200 ease-in-out cursor-pointer hover:text-blue-600',\n getPaddingClass(level),\n ]\"\n (click)=\"scrollToSection(item.id)\"\n >\n {{ item.text }}\n </button>\n @if (item.children && item.children.length > 0) {\n <ng-container\n *ngTemplateOutlet=\"navTemplate; context: { items: item.children, level: level + 1 }\"\n ></ng-container>\n }\n </li>\n }\n </ul>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScOnThisPage implements OnInit, OnDestroy {\n private readonly el = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n private observer: IntersectionObserver | null = null;\n private readonly observedElements: Element[] = [];\n\n protected readonly navItems = signal<NavItem[]>([]);\n protected readonly activeItem = linkedSignal(() => {\n if (this.navItems().length > 0) {\n return this.navItems()[0].id;\n }\n\n return '';\n });\n\n private readonly destroy$ = new Subject<void>();\n private isObserving = false;\n\n ngOnInit(): void {\n this.initNavItems();\n this.initIntersectionObserver();\n this.setupScrollListener();\n }\n\n ngOnDestroy(): void {\n if (this.observer) {\n this.observer.disconnect();\n }\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initNavItems(): void {\n // Get all heading elements (h1, h2, h3, etc.) in the main content\n const headings = document.querySelectorAll(\n 'main h1, main h2, main h3, main h4, main h5, main h6',\n );\n\n // Root-level items array\n const rootItems: NavItem[] = [];\n\n // Stack to keep track of parent elements at different levels\n const stack: NavItem[][] = [rootItems];\n\n headings.forEach((heading) => {\n // Get the text content and ID of the heading\n const text = heading.textContent ?? '';\n let id = heading.getAttribute('id');\n\n // If no ID exists, create one based on the text\n if (!id) {\n id = text.toLowerCase().replace(/\\s+/g, '-');\n this.renderer.setAttribute(heading, 'id', id);\n }\n\n // Determine the level (h1 = 1, h2 = 2, etc.)\n const level = parseInt(heading.tagName.charAt(1));\n\n // Create a new nav item\n const newItem: NavItem = {\n id,\n text,\n level,\n children: [],\n };\n\n // Add to observation list\n this.observedElements.push(heading);\n\n // Ensure we have enough levels in our stack\n while (stack.length <= level) {\n stack.push([]);\n }\n\n // Add this item to the appropriate level in the stack\n stack[level].push(newItem);\n\n // If this isn't the top level, add it as a child to the last item of the previous level\n if (level > 1 && stack[level - 1].length > 0) {\n const parent = stack[level - 1][stack[level - 1].length - 1];\n parent.children.push(newItem);\n } else {\n // Otherwise, it's a top-level item\n rootItems.push(newItem);\n }\n });\n\n this.navItems.set(rootItems);\n }\n\n // Function to get padding based on level\n getPaddingClass(level: number): string {\n const padding = (level - 1) * 4; // 4 = 1rem in Tailwind (multiply by 0.25rem)\n\n if (padding === 0) {\n return 'pl-0';\n }\n\n if (padding === 4) {\n return 'pl-4';\n }\n\n if (padding === 8) {\n return 'pl-8';\n }\n\n if (padding === 12) {\n return 'pl-12';\n }\n\n if (padding === 16) {\n return 'pl-16';\n }\n\n if (padding === 20) {\n return 'pl-20';\n }\n\n return '';\n }\n\n // Function to scroll to a section when nav item is clicked\n scrollToSection(id: string): void {\n this.activeItem.set(id);\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n private initIntersectionObserver(): void {\n const options = {\n rootMargin: '-100px 0px -80% 0px',\n threshold: 0,\n };\n\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const id = entry.target.getAttribute('id');\n if (id) {\n this.activeItem.set(id);\n }\n }\n });\n }, options);\n }\n\n private setupScrollListener(): void {\n fromEvent(window, 'scroll')\n .pipe(\n debounceTime(50), // Debounce to avoid excessive calculations\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.startObserving();\n\n // Stop observing after a short period of inactivity\n setTimeout(() => {\n this.stopObserving();\n }, 200);\n });\n\n // Initial check (for cases where content is already in view without scrolling)\n setTimeout(() => {\n this.startObserving();\n setTimeout(() => this.stopObserving(), 200);\n }, 100);\n }\n\n private startObserving(): void {\n if (!this.isObserving && this.observer) {\n // Observe all heading elements\n this.observedElements.forEach((el) => {\n this.observer?.observe(el);\n });\n this.isObserving = true;\n }\n }\n\n private stopObserving(): void {\n if (this.isObserving && this.observer) {\n this.observer.disconnect();\n this.isObserving = false;\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { ScTab } from './tab';\n\nexport interface ScActiveTab {\n id: string;\n focus?: boolean;\n}\n\n@Injectable()\nexport class ScTabsService {\n readonly tabs = signal<readonly ScTab[]>([]);\n readonly activeTab = signal<ScActiveTab | null>(null);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScTabsService } from './tabs.service';\n\n@Component({\n selector: 'button[sc-tab]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'tab',\n '[attr.id]': \"'tab-' + value()\",\n '[class]': 'class()',\n '[attr.data-state]': \"isActive() ? 'active' : 'inactive'\",\n '[attr.aria-selected]': 'isActive()',\n '[attr.aria-controls]': \"'tab-panel-' + value()\",\n '[attr.tabindex]': 'isActive() ? 0 : -1',\n '(click)': 'selectTab()',\n '(keydown)': 'onKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTab {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow',\n this.classInput(),\n ),\n );\n\n readonly value = input.required<string>();\n\n private readonly scTabsService = inject(ScTabsService);\n\n protected readonly isActive = computed(() => this.value() === this.scTabsService.activeTab()?.id);\n\n private readonly host = inject(ElementRef);\n\n constructor() {\n effect(() => {\n const activeTab = this.scTabsService.activeTab();\n if (activeTab && activeTab.focus && activeTab.id === this.value()) {\n this.host.nativeElement.focus();\n }\n });\n }\n\n protected selectTab() {\n this.scTabsService.activeTab.set({ id: this.value() });\n }\n\n onKeydown(event: KeyboardEvent) {\n const currentIndex = this.scTabsService.tabs().findIndex((tab) => tab.value() === this.value());\n if (currentIndex === -1) return;\n\n let newIndex: number;\n\n switch (event.key) {\n case 'ArrowRight':\n newIndex = (currentIndex + 1) % this.scTabsService.tabs().length;\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[newIndex].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n case 'ArrowLeft':\n newIndex =\n (currentIndex - 1 + this.scTabsService.tabs().length) % this.scTabsService.tabs().length;\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[newIndex].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n case 'Home':\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[0].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n case 'End':\n this.scTabsService.activeTab.set({\n id: this.scTabsService.tabs()[this.scTabsService.tabs().length - 1].value(),\n focus: true,\n });\n event.preventDefault();\n break;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScTab } from './tab';\nimport { ScTabsService } from './tabs.service';\n\n@Component({\n selector: 'div[sc-tabs]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScTabsService],\n})\nexport class ScTabs {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('', this.classInput()));\n\n readonly value = input.required<string>();\n\n private readonly scTabsService = inject(ScTabsService);\n\n readonly tabs = contentChildren(ScTab, { descendants: true });\n\n constructor() {\n afterNextRender(() => {\n this.scTabsService.tabs.set(this.tabs());\n });\n\n effect(() => {\n const v = this.value();\n if (v) {\n this.scTabsService.activeTab.set({ id: v });\n } else {\n this.scTabsService.activeTab.set({ id: this.tabs()[0].value() });\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-tab-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTabList {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground',\n this.classInput(),\n ),\n );\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[scTabPanelContent]',\n})\nexport class ScTabPanelContent {\n readonly templateRef = inject<TemplateRef<any>>(TemplateRef);\n\n readonly tabId = input.required<string>({ alias: 'scTabPanelContent' });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n contentChildren,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScTabPanelContent } from './tab-panel-content';\nimport { ScTabsService } from './tabs.service';\n\n@Component({\n selector: 'div[sc-tab-panels]',\n imports: [NgTemplateOutlet],\n template: `\n @for (tabPanelContent of tabPanelContents(); track tabPanelContent.tabId()) {\n @if (tabPanelContent.tabId() === activeTabId()) {\n <div\n [attr.id]=\"'tab-panel-' + tabPanelContent.tabId()\"\n [attr.aria-labelledby]=\"'tab-' + tabPanelContent.tabId()\"\n tabindex=\"0\"\n role=\"tabpanel\"\n >\n <ng-container [ngTemplateOutlet]=\"tabPanelContent.templateRef\"></ng-container>\n </div>\n }\n }\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTabPanels {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n this.classInput(),\n ),\n );\n\n private readonly scTabsService = inject(ScTabsService);\n\n protected readonly activeTabId = computed(() => this.scTabsService.activeTab()?.id);\n\n protected readonly tabPanelContents = contentChildren(ScTabPanelContent);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.ScPlainInput","i2","debounceTime"],"mappings":"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"}
|