@semantic-components/ui 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -13
- package/fesm2022/semantic-components-ui.mjs +8738 -1137
- package/fesm2022/semantic-components-ui.mjs.map +1 -1
- package/index.d.ts +15 -6
- package/lib/components/breadcrumb/breadcrumb-elipssis.d.ts +5 -0
- package/lib/components/breadcrumb/breadcrumb-item.d.ts +5 -0
- package/lib/components/breadcrumb/breadcrumb-link.d.ts +5 -0
- package/lib/components/breadcrumb/breadcrumb-list.d.ts +5 -0
- package/lib/components/breadcrumb/breadcrumb-page.d.ts +5 -0
- package/lib/components/breadcrumb/breadcrumb-separator.d.ts +5 -0
- package/lib/components/breadcrumb/breadcrumb.d.ts +6 -0
- package/lib/components/breadcrumb/index.d.ts +7 -0
- package/lib/components/button/button.d.ts +7 -0
- package/lib/components/button/index.d.ts +1 -0
- package/lib/components/editor/editor.d.ts +25 -0
- package/lib/components/editor/extensions/extension-blockquote.d.ts +11 -0
- package/lib/components/editor/extensions/extension-bold.d.ts +11 -0
- package/lib/components/editor/extensions/extension-bullet-list.d.ts +11 -0
- package/lib/components/editor/extensions/extension-code.d.ts +11 -0
- package/lib/components/editor/extensions/extension-color.d.ts +12 -0
- package/lib/components/editor/extensions/extension-font-family.d.ts +11 -0
- package/lib/components/editor/extensions/extension-heading.d.ts +9 -0
- package/lib/components/editor/extensions/extension-highlight.d.ts +11 -0
- package/lib/components/editor/extensions/extension-history.d.ts +12 -0
- package/lib/components/editor/extensions/extension-horizontal-rule.d.ts +11 -0
- package/lib/components/editor/extensions/extension-image.d.ts +15 -0
- package/lib/components/editor/extensions/extension-italic.d.ts +11 -0
- package/lib/components/editor/extensions/extension-link.d.ts +14 -0
- package/lib/components/editor/extensions/extension-ordered-list.d.ts +11 -0
- package/lib/components/editor/extensions/extension-paragraph.d.ts +8 -0
- package/lib/components/editor/extensions/extension-strike.d.ts +11 -0
- package/lib/components/editor/extensions/extension-table.d.ts +30 -0
- package/lib/components/editor/extensions/extension-text-align.d.ts +13 -0
- package/lib/components/editor/extensions/extension-text-style.d.ts +11 -0
- package/lib/components/editor/extensions/extension-underline.d.ts +11 -0
- package/lib/components/editor/extensions/extension-youtube.d.ts +15 -0
- package/lib/components/editor/extensions/extensions.d.ts +24 -0
- package/lib/components/editor/toolbar/add-cell-attribute-dialog.d.ts +18 -0
- package/lib/components/editor/toolbar/add-image-dialog.d.ts +21 -0
- package/lib/components/editor/toolbar/add-link-dialog.d.ts +15 -0
- package/lib/components/editor/toolbar/add-video-dialog.d.ts +26 -0
- package/lib/components/editor/toolbar/extensions-group.d.ts +5 -0
- package/lib/components/editor/toolbar/extensions-separator.d.ts +5 -0
- package/lib/components/input/index.d.ts +1 -0
- package/lib/components/input/input.d.ts +5 -0
- package/lib/components/label/index.d.ts +1 -0
- package/lib/components/label/label.d.ts +5 -0
- package/lib/components/nav/index.d.ts +5 -0
- package/lib/components/nav/nav-button-base.d.ts +5 -0
- package/lib/components/nav/nav-button.d.ts +6 -0
- package/lib/components/nav/nav-item-dropdown.d.ts +6 -0
- package/lib/components/nav/nav-item.d.ts +5 -0
- package/lib/components/nav/nav-link.d.ts +6 -0
- package/lib/components/nav/nav-list.d.ts +5 -0
- package/lib/components/nav/nav.d.ts +5 -0
- package/lib/components/paginator/index.d.ts +2 -0
- package/lib/components/paginator/page-event.d.ts +10 -0
- package/lib/components/paginator/page-item.d.ts +10 -0
- package/lib/components/paginator/paginator.d.ts +37 -0
- package/lib/components/progress/index.d.ts +1 -0
- package/lib/components/progress/progress.d.ts +8 -0
- package/lib/components/select/index.d.ts +2 -0
- package/lib/components/select/option.d.ts +11 -0
- package/lib/components/select/select-state.d.ts +9 -0
- package/lib/components/select/select.d.ts +40 -0
- package/lib/components/sidebar/constants.d.ts +2 -0
- package/lib/components/sidebar/index.d.ts +1 -0
- package/lib/components/sidebar/sidebar-content.d.ts +5 -0
- package/lib/components/sidebar/sidebar-footer.d.ts +5 -0
- package/lib/components/sidebar/sidebar-header.d.ts +5 -0
- package/lib/components/sidebar/sidebar-layout.d.ts +20 -0
- package/lib/components/sidebar/sidebar.d.ts +10 -0
- package/lib/components/textarea/index.d.ts +1 -0
- package/lib/components/textarea/textarea.d.ts +5 -0
- package/lib/components/theme-toggler/index.d.ts +2 -0
- package/lib/components/theme-toggler/theme-provider-factory.d.ts +1 -0
- package/lib/components/theme-toggler/theme-toggler.d.ts +9 -0
- package/lib/components/theme-toggler/theme.d.ts +8 -0
- package/lib/components/tooltip/tooltip-container.d.ts +6 -0
- package/{components → lib/components}/tooltip/tooltip.d.ts +5 -3
- package/package.json +35 -10
- package/components/editor/editor.d.ts +0 -5
- package/components/nav/index.d.ts +0 -3
- package/components/nav/nav-item-dropdown.component.d.ts +0 -5
- package/components/nav/nav-item.component.d.ts +0 -5
- package/components/nav/nav.component.d.ts +0 -5
- package/components/select/index.d.ts +0 -2
- package/components/select/select-option.component.d.ts +0 -7
- package/components/select/select.component.d.ts +0 -55
- package/components/tooltip/tooltip-container.d.ts +0 -7
- package/esm2022/components/date-picker/date-picker.component.mjs +0 -189
- package/esm2022/components/date-picker/index.mjs +0 -3
- package/esm2022/components/date-picker/inline-date-picker.component.mjs +0 -185
- package/esm2022/components/date-picker/month-days.component.mjs +0 -69
- package/esm2022/components/date-picker/month-year-header.component.mjs +0 -124
- package/esm2022/components/date-picker/week-days-names.component.mjs +0 -37
- package/esm2022/components/dropdown/dropdown-divider.component.mjs +0 -16
- package/esm2022/components/dropdown/dropdown-item.component.mjs +0 -33
- package/esm2022/components/dropdown/dropdown.component.mjs +0 -85
- package/esm2022/components/dropdown/index.mjs +0 -4
- package/esm2022/components/editor/editor.mjs +0 -16
- package/esm2022/components/editor/index.mjs +0 -2
- package/esm2022/components/nav/index.mjs +0 -4
- package/esm2022/components/nav/nav-item-dropdown.component.mjs +0 -148
- package/esm2022/components/nav/nav-item.component.mjs +0 -16
- package/esm2022/components/nav/nav.component.mjs +0 -16
- package/esm2022/components/select/index.mjs +0 -3
- package/esm2022/components/select/select-option.component.mjs +0 -28
- package/esm2022/components/select/select.component.mjs +0 -252
- package/esm2022/components/tooltip/index.mjs +0 -2
- package/esm2022/components/tooltip/tooltip-container.mjs +0 -58
- package/esm2022/components/tooltip/tooltip.mjs +0 -79
- package/esm2022/index.mjs +0 -7
- package/esm2022/semantic-components-ui.mjs +0 -5
- /package/{components → lib/components}/date-picker/date-picker.component.d.ts +0 -0
- /package/{components → lib/components}/date-picker/index.d.ts +0 -0
- /package/{components → lib/components}/date-picker/inline-date-picker.component.d.ts +0 -0
- /package/{components → lib/components}/date-picker/month-days.component.d.ts +0 -0
- /package/{components → lib/components}/date-picker/month-year-header.component.d.ts +0 -0
- /package/{components → lib/components}/date-picker/week-days-names.component.d.ts +0 -0
- /package/{components → lib/components}/dropdown/dropdown-divider.component.d.ts +0 -0
- /package/{components → lib/components}/dropdown/dropdown-item.component.d.ts +0 -0
- /package/{components → lib/components}/dropdown/dropdown.component.d.ts +0 -0
- /package/{components → lib/components}/dropdown/index.d.ts +0 -0
- /package/{components → lib/components}/editor/index.d.ts +0 -0
- /package/{components → lib/components}/tooltip/index.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-components-ui.mjs","sources":["../../../../libs/ui/src/components/date-picker/month-days.component.ts","../../../../libs/ui/src/components/date-picker/month-year-header.component.ts","../../../../libs/ui/src/components/date-picker/week-days-names.component.ts","../../../../libs/ui/src/components/date-picker/inline-date-picker.component.ts","../../../../libs/ui/src/components/date-picker/date-picker.component.ts","../../../../libs/ui/src/components/dropdown/dropdown.component.ts","../../../../libs/ui/src/components/dropdown/dropdown-divider.component.ts","../../../../libs/ui/src/components/dropdown/dropdown-item.component.ts","../../../../libs/ui/src/components/editor/editor.ts","../../../../libs/ui/src/components/nav/nav.component.ts","../../../../libs/ui/src/components/nav/nav-item.component.ts","../../../../libs/ui/src/components/nav/nav-item-dropdown.component.ts","../../../../libs/ui/src/components/tooltip/tooltip-container.ts","../../../../libs/ui/src/components/tooltip/tooltip.ts","../../../../libs/ui/src/components/select/select-option.component.ts","../../../../libs/ui/src/components/select/select.component.ts","../../../../libs/ui/src/semantic-components-ui.ts"],"sourcesContent":["import { CommonModule, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-month-days',\n standalone: true,\n imports: [CommonModule, NgClass],\n template: `\n <div class=\"grid w-64 grid-cols-7\">\n @for (day of days(); track $index; let index = $index) {\n <button\n class=\"block flex-1 cursor-pointer rounded-lg border-0 text-center text-sm font-semibold leading-9 text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n [ngClass]=\"{\n 'col-start-1': index === 0 && firstDayMonth() === 0,\n 'col-start-2': index === 0 && firstDayMonth() === 1,\n 'col-start-3': index === 0 && firstDayMonth() === 2,\n 'col-start-4': index === 0 && firstDayMonth() === 3,\n 'col-start-5': index === 0 && firstDayMonth() === 4,\n 'col-start-6': index === 0 && firstDayMonth() === 5,\n 'col-start-7': index === 0 && firstDayMonth() === 6,\n '!bg-primary-700 dark:!bg-primary-600 !text-white': isSelected(day),\n }\"\n [attr.data-sc-day]=\"day\"\n (click)=\"setSelectedDay($event)\"\n >\n {{ day.slice(-2) }}\n </button>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MonthDaysComponent {\n days = input.required<string[]>();\n firstDayMonth = input.required<number>();\n selectedDay = input<string>('');\n\n selectedDayChange = output<string>();\n\n isSelected(day: string) {\n return day === this.selectedDay();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setSelectedDay(event: any) {\n const selectedDay = event.target.dataset.scDay;\n this.selectedDayChange.emit(selectedDay);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-month-year-header',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"mb-2 flex justify-between\">\n <button\n class=\"rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"monthYearChange.emit(-1)\"\n aria-label=\"Previous month\"\n type=\"button\"\n >\n <svg\n class=\"size-4 text-gray-800 rtl:rotate-180 dark:text-white\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 10\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13 5H1m0 0 4 4M1 5l4-4\"\n ></path>\n </svg>\n </button>\n\n <button\n class=\"rounded-lg bg-white px-5 py-2.5 text-sm font-semibold text-gray-900 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600\"\n type=\"button\"\n >\n {{ monthYear() }}\n </button>\n\n <button\n class=\"rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"monthYearChange.emit(1)\"\n type=\"button\"\n aria-label=\"Next month\"\n >\n <svg\n class=\"size-4 text-gray-800 rtl:rotate-180 dark:text-white\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 10\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M1 5h12m0 0L9 1m4 4L9 9\"\n ></path>\n </svg>\n </button>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MonthYearHeaderComponent {\n monthYear = input.required<string>();\n\n monthYearChange = output<number>();\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nexport interface WeekDayName {\n narrow: string;\n short: string;\n long: string;\n}\n\n@Component({\n selector: 'sc-week-days-names',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"mb-1 grid grid-cols-7\">\n @for (weekDayName of weekDaysNames(); track weekDayName.long) {\n <abbr\n class=\"h-6 text-center text-sm font-medium leading-6 text-gray-500 dark:text-gray-400\"\n [title]=\"weekDayName.long\"\n [attr.aria-label]=\"weekDayName.long\"\n >\n {{ weekDayName.short }}\n </abbr>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WeekDaysNamesComponent {\n weekDaysNames = input.required<WeekDayName[]>();\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n LOCALE_ID,\n OnInit,\n ViewEncapsulation,\n computed,\n signal,\n} from '@angular/core';\n\nimport { MonthDaysComponent } from './month-days.component';\nimport { MonthYearHeaderComponent } from './month-year-header.component';\nimport { WeekDayName, WeekDaysNamesComponent } from './week-days-names.component';\n\n@Component({\n selector: 'sc-inline-date-picker',\n standalone: true,\n imports: [CommonModule, WeekDaysNamesComponent, MonthYearHeaderComponent, MonthDaysComponent],\n template: `\n <div class=\"inline-block rounded-lg bg-white p-4 shadow-lg dark:bg-gray-700\">\n <div class=\"bg-white px-2 py-3 text-center font-semibold dark:bg-gray-700 dark:text-white\">\n <sc-month-year-header [monthYear]=\"monthYear()\" (monthYearChange)=\"setMonthYear($event)\" />\n </div>\n\n <sc-week-days-names [weekDaysNames]=\"weekDaysNames()\" />\n\n <sc-month-days\n [days]=\"monthDays()\"\n [firstDayMonth]=\"firstDayMonth()\"\n [selectedDay]=\"selectedDay()\"\n (selectedDayChange)=\"setSelectedDay($event)\"\n />\n\n <div class=\"mt-2 flex space-x-2 rtl:space-x-reverse\">\n <button\n class=\"bg-primary-700 hover:bg-primary-800 dark:hover:bg-primary-700 focus:ring-primary-300 dark:bg-primary-600 w-1/2 rounded-lg px-5 py-2 text-center text-sm font-medium text-white focus:ring-4\"\n type=\"button\"\n >\n Today\n </button>\n <button\n class=\"focus:ring-primary-300 w-1/2 rounded-lg border border-gray-300 bg-white px-5 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-100 focus:ring-4 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600\"\n type=\"button\"\n >\n Clear\n </button>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InlineDatePickerComponent implements OnInit {\n year = signal<number>(0);\n month = signal<number>(0);\n weekDaysNames = signal<WeekDayName[]>([]);\n\n monthYear = computed(() => {\n const options = {\n month: 'long',\n year: 'numeric',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any;\n\n const s = new Intl.DateTimeFormat(this.localeId, options).format(\n new Date(this.year(), this.month(), 1),\n );\n\n return s;\n });\n\n monthDays = computed(() => {\n // Month in JavaScript is 0-indexed (January is 0, February is 1, etc),\n // but by using 0 as the day it will give us the last day of the prior\n // month. So passing in 1 as the month number will return the last day\n // of January, not February\n const numOfDays = new Date(this.year(), this.month() + 1, 0).getDate();\n\n const days = [];\n\n for (let i = 1; i <= numOfDays; i++) {\n const date = new Date(this.year(), this.month(), i);\n\n days.push(\n `${date.getFullYear()}-${this.twoDigits(date.getMonth() + 1)}-${this.twoDigits(date.getDate())}`,\n );\n }\n\n return days;\n });\n\n firstDayMonth = computed(() => {\n const date = new Date(this.year(), this.month(), 1);\n const intlLongFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'long' });\n\n const dayName = intlLongFormatter.format(date);\n return this.weekDaysNames()\n .map((e) => e.long)\n .indexOf(dayName);\n });\n\n selectedDay = signal<string>('');\n\n constructor(@Inject(LOCALE_ID) private readonly localeId: string) {}\n\n ngOnInit() {\n this.init();\n this.setLocaleDayNames();\n }\n\n init() {\n const today = new Date();\n this.year.set(today.getFullYear());\n this.month.set(today.getMonth());\n }\n\n setSelectedDay(day: string) {\n this.selectedDay.set(day);\n }\n\n //https://github.com/angular/angular/issues/57193\n private setLocaleDayNames() {\n const weekDaysNames = [];\n const intlNarrowFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'narrow' });\n const intlShortFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'short' });\n const intlLongFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'long' });\n\n let k = 0;\n const firstDayOfWeek = this.getFirstDayOfWeek();\n if (firstDayOfWeek === 7) {\n // First day of the week is Sunday\n k = 3; // 3th January 2021 is a Sunday\n }\n if (firstDayOfWeek === 1) {\n // First day of the week is Monday\n k = 4; // 4th January 2021 is a Monday\n }\n\n for (let i = 0; i < 7; i += 1) {\n const date = new Date(Date.UTC(2021, 0, i + k));\n weekDaysNames.push({\n narrow: intlNarrowFormatter.format(date),\n short: intlShortFormatter.format(date),\n long: intlLongFormatter.format(date),\n });\n }\n\n this.weekDaysNames.set(weekDaysNames);\n }\n\n private getFirstDayOfWeek(): number {\n const locale = new Intl.Locale(this.localeId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (locale as any).getWeekInfo().firstDay;\n }\n\n setMonthYear(n: number) {\n if (n === 1) {\n if (this.month() < 11) {\n this.month.update((value) => value + 1);\n } else {\n this.month.set(0);\n this.year.update((value) => value + 1);\n }\n }\n\n if (n === -1) {\n if (this.month() > 0) {\n this.month.update((value) => value - 1);\n } else {\n this.month.set(11);\n this.year.update((value) => value - 1);\n }\n }\n }\n\n twoDigits(n: number) {\n return n.toLocaleString(this.localeId, {\n minimumIntegerDigits: 2,\n useGrouping: false,\n });\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 { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Injector,\n LOCALE_ID,\n OnInit,\n OutputEmitterRef,\n ViewEncapsulation,\n inject,\n output,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { InlineDatePickerComponent } from './inline-date-picker.component';\n\n@Component({\n selector: 'sc-date-picker',\n standalone: true,\n imports: [CommonModule, InlineDatePickerComponent],\n template: `\n <div class=\"relative max-w-sm\" #overlayOrigin>\n <button class=\"absolute inset-y-0 end-0 flex items-center pe-3.5\" (click)=\"open()\">\n <svg\n class=\"size-4 text-gray-500 dark:text-gray-400\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M20 4a2 2 0 0 0-2-2h-2V1a1 1 0 0 0-2 0v1h-3V1a1 1 0 0 0-2 0v1H6V1a1 1 0 0 0-2 0v1H2a2 2 0 0 0-2 2v2h20V4ZM0 18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8H0v10Zm5-8h10a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2Z\"\n />\n </svg>\n </button>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 pe-10 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder:text-gray-400 dark:focus:border-blue-500 dark:focus:ring-blue-500\"\n #input\n type=\"text\"\n placeholder=\"Select date\"\n />\n </div>\n {{ dateFormatPattern() }}\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DatePickerComponent implements OnInit {\n dateFormatPattern = signal<string>('');\n\n constructor(@Inject(LOCALE_ID) private readonly localeId: string) {}\n\n ngOnInit() {\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 }\n\n private readonly _injector = inject(Injector);\n\n private readonly _dir = inject(Directionality, { optional: true });\n private readonly _overlay = inject(Overlay);\n\n private readonly _isOpen = signal(false);\n private readonly _input = viewChild<ElementRef<HTMLInputElement>>('input');\n private readonly _overlayOrigin = viewChild<ElementRef<HTMLDivElement>>('overlayOrigin');\n private _overlayRef: OverlayRef | null = null;\n private _portal: ComponentPortal<unknown> | null = null;\n\n /** Emits when the datepicker is opened. */\n readonly opened: OutputEmitterRef<void> = output();\n /** Emits when the datepicker is closed. */\n readonly closed: OutputEmitterRef<void> = output();\n\n /** Emits when the user selects a date. */\n readonly selected: OutputEmitterRef<string> = output();\n\n /** Opens the datepicker. */\n open(): void {\n if (!this._input) {\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._input()?.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 this._portal ??= new ComponentPortal(InlineDatePickerComponent);\n\n overlayRef.attach(this._portal);\n\n this.opened.emit();\n }\n\n /** Closes the datepicker. */\n close(): void {\n if (this._isOpen()) {\n this._isOpen.set(false);\n this._overlayRef?.detach();\n this.closed.emit();\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._overlayOrigin();\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 console.log(event);\n });\n\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this._overlayOrigin()?.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: string) {\n this.close();\n this.selected.emit(value);\n this._input()?.nativeElement.focus();\n }\n}\n","import { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-dropdown',\n standalone: true,\n imports: [CommonModule, CdkMenuTrigger, CdkMenu],\n template: `\n <!--ng-content select=\"dropdown-toggle\" /-->\n\n <button\n class=\"inline-flex items-center rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n [cdkMenuTriggerFor]=\"menu\"\n type=\"button\"\n >\n Dropdown button\n <svg\n class=\"ms-3 size-2.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 4 4 4-4\"\n />\n </svg>\n </button>\n\n <ng-template #menu>\n <div\n class=\"z-10 w-44 divide-y divide-gray-100 rounded-lg bg-white shadow dark:bg-gray-700\"\n cdkMenu\n >\n <ul class=\"py-2 text-sm text-gray-700 dark:text-gray-200\">\n <ng-content select=\"dropdown-items\" />\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-dropdown-divider',\n standalone: true,\n imports: [CommonModule],\n template: `\n <li class=\"py-2\"><hr /></li>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownDividerComponent {}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\n//TODO try to add CdkMenuItem\n\n@Component({\n selector: 'sc-dropdown-item',\n standalone: true,\n imports: [CommonModule, CdkMenuItem],\n template: `\n <li>\n <a\n class=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white\"\n href=\"javascript:void(0)\"\n >\n {{ text() }}\n </a>\n </li>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownItemComponent {\n text = input.required<string>();\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-editor',\n standalone: true,\n imports: [CommonModule],\n template: `\n <p>editor works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScEditor {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-nav',\n standalone: true,\n imports: [CommonModule],\n template: `\n <p>nav works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavComponent {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-nav-item',\n standalone: true,\n imports: [CommonModule],\n template: `\n <p>nav-item works!</p>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavItemComponent {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-nav-item-dropdown',\n standalone: true,\n imports: [CommonModule],\n template: `\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-gray-900 hover:bg-gray-100 md:w-auto md:border-0 md:p-0 md:hover:bg-transparent md:hover:text-blue-700 dark:border-gray-700 dark:text-white dark:hover:bg-gray-700 dark:focus:text-white md:dark:hover:bg-transparent md:dark:hover:text-blue-500\"\n id=\"dropdownNavbarLink\"\n data-dropdown-toggle=\"dropdownNavbar\"\n >\n Dropdown\n <svg\n class=\"ms-2.5 size-2.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 4 4 4-4\"\n />\n </svg>\n </button>\n <!-- Dropdown menu -->\n <div\n class=\"z-10 hidden w-44 divide-y divide-gray-100 rounded-lg bg-white font-normal shadow dark:divide-gray-600 dark:bg-gray-700\"\n id=\"dropdownNavbar\"\n >\n <ul\n class=\"py-2 text-sm text-gray-700 dark:text-gray-400\"\n aria-labelledby=\"dropdownLargeButton\"\n >\n <li>\n <a\n class=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white\"\n href=\"javascript:void(0)\"\n >\n Dashboard\n </a>\n </li>\n <li>\n <a\n class=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white\"\n href=\"javascript:void(0)\"\n >\n Settings\n </a>\n </li>\n <li>\n <a\n class=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white\"\n href=\"javascript:void(0)\"\n >\n Earnings\n </a>\n </li>\n </ul>\n <div class=\"py-1\">\n <a\n class=\"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-600 dark:hover:text-white\"\n href=\"javascript:void(0)\"\n >\n Sign out\n </a>\n </div>\n </div>\n </li>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavItemDropdownComponent {}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\n@Component({\n selector: 'sc-tooltip-container',\n standalone: true,\n imports: [NgClass],\n template: `\n <div\n class=\"relative z-10 inline-block rounded-lg border-gray-900 bg-gray-900 px-3 py-2 text-sm font-medium text-white shadow-sm transition-opacity duration-300 dark:bg-gray-700\"\n [ngClass]=\"{\n 'mb-2': placement() === 'top',\n 'mt-2': placement() === 'bottom',\n 'ml-2': placement() === 'right',\n 'mr-2': placement() === 'left',\n }\"\n role=\"tooltip\"\n >\n <span\n class=\"absolute -z-10 size-2 rotate-45 rounded-sm border-gray-900 bg-gray-900\"\n [ngClass]=\"{\n '-bottom-1 left-1/2 -translate-x-1/2 border-b border-r': placement() === 'top',\n '-top-1 left-1/2 -translate-x-1/2 border-l border-t': placement() === 'bottom',\n '-left-1 top-1/2 -translate-y-1/2 border-b border-l': placement() === 'right',\n '-right-1 top-1/2 -translate-y-1/2 border-r border-t': placement() === 'left',\n }\"\n ></span>\n {{ text() }}\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTooltipContainer {\n text = input<string>('');\n\n placement = input<string>('bottom');\n}\n","import {\n Overlay,\n OverlayPositionBuilder,\n OverlayRef,\n PositionStrategy,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\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 standalone: true,\n})\nexport class ScTooltip implements OnInit, OnDestroy {\n private readonly overlayPositionBuilder = inject(OverlayPositionBuilder);\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n\n readonly text = input('', { alias: 'scTooltip' });\n private overlayRef!: OverlayRef;\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 @HostListener('mouseover')\n @HostListener('focus')\n showTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n @HostListener('mouseleave')\n @HostListener('blur')\n hideTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\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 const tooltipRef: ComponentRef<ScTooltipContainer> = this.overlayRef.attach(tooltipPortal);\n\n // Pass content to tooltip component instance\n tooltipRef.instance.text = this.text;\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\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 { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-select-option',\n standalone: true,\n imports: [CommonModule],\n template: `\n <ng-content></ng-content>\n `,\n styles: ``,\n host: {\n role: 'listbox',\n '[attr.aria-label]': 'value',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectOptionComponent {\n @Input()\n public value!: any;\n\n @HostBinding('class.disabled')\n @Input()\n public disabled = false;\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortal, PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { noop } from 'rxjs';\n\nimport { SelectOptionComponent } from './select-option.component';\n\nexport interface CustomSelectEvent {\n source: SelectComponent;\n selected: any;\n}\n\n@Component({\n selector: 'sc-select',\n standalone: true,\n imports: [CommonModule, PortalModule],\n template: `\n <div class=\"\" [class.required]=\"required\">\n @if (label.length > 0) {\n <p class=\"\" [class.error]=\"error\">{{ label }}</p>\n }\n\n <div\n #select\n [ngClass]=\"mainSelectClasses()\"\n [attr.id]=\"inputId\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-multiselectable]=\"false\"\n [innerHTML]=\"displayText\"\n (click)=\"showDropdown()\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onTouched()\"\n role=\"listbox\"\n tabindex=\"{{ this.disabled ? -1 : 0 }}\"\n ></div>\n <button class=\"\" (click)=\"onDropMenuIconClick($event)\">test</button>\n <ng-template class=\"dropdown\" #overlayTemplate=\"cdkPortal\" cdk-portal>\n <div class=\"\">\n <button class=\"\" (keydown)=\"onKeyDown($event)\">\n <ng-content />\n </button>\n </div>\n </ng-template>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: SelectComponent,\n },\n ],\n})\nexport class SelectComponent implements OnInit, ControlValueAccessor, Validator {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('id') public inputId = '';\n\n @Input() public label = '';\n @Input() public placeholder = '';\n\n @Input() public required = false;\n @Input() public disabled = false;\n @Input() public error = false;\n @Input() public multiple = false;\n @Input() public search = false;\n\n @Input('aria-label') public ariaLabel = '';\n @Input('aria-labelledby') public ariaLabelledby = '';\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly change = new EventEmitter<CustomSelectEvent>();\n\n @ViewChild('select') public select!: ElementRef;\n @ViewChild(CdkPortal) public contentTemplate!: CdkPortal;\n\n @ContentChildren(SelectOptionComponent)\n public options!: QueryList<SelectOptionComponent>;\n\n public displayText!: SafeHtml;\n public displayX = false;\n\n //private readonly selectedOption: SelectOptionComponent;\n private showing = false;\n private readonly showPlaceholder = true;\n private overlayRef!: OverlayRef;\n\n constructor(\n private readonly cd: ChangeDetectorRef,\n private readonly domSanitizer: DomSanitizer,\n private readonly overlay: Overlay,\n ) {}\n\n public onChangeFn: any = (_: any) => noop();\n\n public onTouchedFn: any = () => noop();\n\n public registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return null;\n }\n\n public ngOnInit(): void {\n if (!this.displayText) {\n this.displayText = this.domSanitizer.bypassSecurityTrustHtml(this.placeholder);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public writeValue(obj: any): void {}\n\n public onTouched(): void {\n this.onTouchedFn();\n }\n\n public mainSelectClasses(): { [key: string]: any } {\n return {\n mainSelect: true,\n error: this.error,\n disabled: this.disabled,\n placeholder: this.showPlaceholder,\n };\n }\n\n public onDropMenuIconClick(event: UIEvent): void {\n if (!this.disabled) {\n event.stopPropagation();\n this.select.nativeElement.focus();\n this.select.nativeElement.click();\n }\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n console.log('onKeyDown');\n }\n\n public showDropdown(): void {\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n this.overlayRef.attach(this.contentTemplate);\n this.syncWidth();\n this.overlayRef.backdropClick().subscribe(() => this.hide());\n this.showing = true;\n }\n\n private hide(): void {\n this.overlayRef.detach();\n this.showing = false;\n }\n\n private syncWidth(): void {\n if (!this.overlayRef) {\n return;\n }\n\n const refRectWidth = this.select.nativeElement.getBoundingClientRect().width;\n this.overlayRef.updateSize({ width: refRectWidth });\n }\n\n private getOverlayConfig(): OverlayConfig {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.select.nativeElement)\n .withPush(true)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n },\n ]);\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n return new OverlayConfig({\n positionStrategy: positionStrategy,\n scrollStrategy: scrollStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"semantic-components-ui.mjs","sources":["../../../../libs/ui/src/lib/components/button/button.ts","../../../../libs/ui/src/lib/components/tooltip/tooltip-container.ts","../../../../libs/ui/src/lib/components/tooltip/tooltip.ts","../../../../libs/ui/src/lib/components/editor/extensions/extensions.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-blockquote.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-bold.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-bullet-list.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-code.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-color.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-font-family.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-heading.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-highlight.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-history.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-horizontal-rule.ts","../../../../libs/ui/src/lib/components/editor/toolbar/add-image-dialog.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-image.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-italic.ts","../../../../libs/ui/src/lib/components/editor/toolbar/add-link-dialog.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-link.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-ordered-list.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-paragraph.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-strike.ts","../../../../libs/ui/src/lib/components/editor/toolbar/add-cell-attribute-dialog.ts","../../../../libs/ui/src/lib/components/editor/toolbar/extensions-separator.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-table.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-text-align.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-text-style.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-underline.ts","../../../../libs/ui/src/lib/components/editor/toolbar/add-video-dialog.ts","../../../../libs/ui/src/lib/components/editor/extensions/extension-youtube.ts","../../../../libs/ui/src/lib/components/editor/toolbar/extensions-group.ts","../../../../libs/ui/src/lib/components/editor/editor.ts","../../../../libs/ui/src/lib/components/paginator/page-item.ts","../../../../libs/ui/src/lib/components/paginator/paginator.ts","../../../../libs/ui/src/lib/components/dropdown/dropdown.component.ts","../../../../libs/ui/src/lib/components/dropdown/dropdown-divider.component.ts","../../../../libs/ui/src/lib/components/dropdown/dropdown-item.component.ts","../../../../libs/ui/src/lib/components/date-picker/month-days.component.ts","../../../../libs/ui/src/lib/components/date-picker/month-year-header.component.ts","../../../../libs/ui/src/lib/components/date-picker/week-days-names.component.ts","../../../../libs/ui/src/lib/components/date-picker/inline-date-picker.component.ts","../../../../libs/ui/src/lib/components/date-picker/date-picker.component.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/theme-toggler/theme-provider-factory.ts","../../../../libs/ui/src/lib/components/input/input.ts","../../../../libs/ui/src/lib/components/label/label.ts","../../../../libs/ui/src/lib/components/textarea/textarea.ts","../../../../libs/ui/src/lib/components/select/select-state.ts","../../../../libs/ui/src/lib/components/select/select.ts","../../../../libs/ui/src/lib/components/select/option.ts","../../../../libs/ui/src/lib/components/progress/progress.ts","../../../../libs/ui/src/lib/components/sidebar/constants.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-content.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-footer.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-header.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar.ts","../../../../libs/ui/src/lib/components/sidebar/sidebar-layout.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-elipssis.ts","../../../../libs/ui/src/semantic-components-ui.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\n@Component({\n selector: 'button[sc-button], a[sc-button]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-button]': 'true',\n '[class.sc-button-primary]': 'variant() === \"primary\"',\n '[class.sc-button-secondary]': 'variant() === \"secondary\"',\n '[class.sc-button-destructive]': 'variant() === \"destructive\"',\n '[class.sc-button-outline]': 'variant() === \"outline\"',\n '[class.sc-button-ghost]': 'variant() === \"ghost\"',\n '[class.sc-button-link]': 'variant() === \"link\"',\n '[class.sc-button-size-default]': 'size() === \"default\"',\n '[class.sc-button-size-sm]': 'size() === \"sm\"',\n '[class.sc-button-size-lg]': 'size() === \"lg\"',\n '[class.sc-button-size-icon]': 'size() === \"icon\"',\n },\n styles: `\n .sc-button {\n @apply 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 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0;\n }\n .sc-button-primary {\n @apply bg-primary text-primary-foreground hover:bg-primary/90;\n }\n .sc-button-secondary {\n @apply bg-secondary text-secondary-foreground hover:bg-secondary/80;\n }\n .sc-button-destructive {\n @apply bg-destructive text-destructive-foreground hover:bg-destructive/90;\n }\n .sc-button-outline {\n @apply border border-input bg-background hover:bg-accent hover:text-accent-foreground;\n }\n .sc-button-ghost {\n @apply hover:bg-accent hover:text-accent-foreground;\n }\n .sc-button-link {\n @apply text-primary underline-offset-4 hover:underline;\n }\n .sc-button-size-default {\n @apply h-10 px-4 py-2;\n }\n .sc-button-size-sm {\n @apply h-9 rounded-md px-3;\n }\n .sc-button-size-lg {\n @apply h-11 rounded-md px-8;\n }\n .sc-button-size-icon {\n @apply h-10 w-10;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScButton {\n variant = input<'primary' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link'>(\n 'primary',\n );\n\n size = input<'default' | 'sm' | 'lg' | 'icon'>('default');\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\n@Component({\n selector: 'sc-tooltip-container',\n imports: [],\n template: `\n <div\n class=\"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-[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 role=\"tooltip\"\n >\n {{ message() }}\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTooltipContainer {\n message = input.required<string>();\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 HostListener,\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})\nexport class ScTooltip implements OnInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private overlayRef!: OverlayRef;\n\n message = input('', { alias: 'scTooltip' });\n 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 @HostListener('mouseover')\n @HostListener('focus')\n showTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\n return;\n }\n\n this.attachTooltip();\n }\n\n @HostListener('mouseleave')\n @HostListener('blur')\n hideTooltip() {\n if (this.overlayRef?.hasAttached() === true) {\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 const tooltipRef: ComponentRef<ScTooltipContainer> = this.overlayRef.attach(tooltipPortal);\n\n // Pass content to tooltip component instance\n tooltipRef.instance.message = this.message;\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, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScExtensions {\n highlight = signal<boolean>(false);\n color = signal<boolean>(false);\n underline = signal<boolean>(false);\n link = signal<boolean>(false);\n textAlign = signal<boolean>(false);\n fontFamily = signal<boolean>(false);\n bold = signal<boolean>(false);\n youtube = signal<boolean>(false);\n image = signal<boolean>(false);\n code = signal<boolean>(false);\n strike = signal<boolean>(false);\n italic = signal<boolean>(false);\n blockquote = signal<boolean>(false);\n bulletList = signal<boolean>(false);\n orderedList = signal<boolean>(false);\n horizontalRule = signal<boolean>(false);\n textStyle = signal<boolean>(false);\n history = signal<boolean>(false);\n\n table = signal<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScButton } from '../../button';\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-blockquote',\n imports: [ScTooltip, ScButton],\n template: `\n <button\n (click)=\"toggleBlockquote()\"\n sc-button\n variant=\"outline\"\n size=\"icon\"\n type=\"button\"\n scTooltip=\"Toggle blockquote\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M6 6a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h3a3 3 0 0 1-3 3H5a1 1 0 1 0 0 2h1a5 5 0 0 0 5-5V8a2 2 0 0 0-2-2H6Zm9 0a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h3a3 3 0 0 1-3 3h-1a1 1 0 1 0 0 2h1a5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3Z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <span class=\"sr-only\">Toggle blockquote</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionBlockquote {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.blockquote.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleBlockquote() {\n this.editor.chain().focus().toggleBlockquote().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-bold',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleBold()\"\n type=\"button\"\n scTooltip=\"Toggle bold\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M8 5h4.5a3.5 3.5 0 1 1 0 7H8m0-7v7m0-7H6m2 7h6.5a3.5 3.5 0 1 1 0 7H8m0-7v7m0 0H6\"\n />\n </svg>\n <span class=\"sr-only\">Bold</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionBold {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.bold.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleBold() {\n this.editor.chain().focus().toggleBold().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-bullet-list',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleBulletList()\"\n type=\"button\"\n scTooltip=\"Toggle list\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-width=\"2\"\n d=\"M9 8h10M9 12h10M9 16h10M4.99 8H5m-.02 4h.01m0 4H5\"\n />\n </svg>\n <span class=\"sr-only\">Toggle list</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionBulletList {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.bulletList.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleBulletList() {\n this.editor.chain().focus().toggleBulletList().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-code',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleCode()\"\n type=\"button\"\n scTooltip=\"Format code\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m8 8-4 4 4 4m8 0 4-4-4-4m-2-3-4 14\"\n />\n </svg>\n <span class=\"sr-only\">Code</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionCode {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.code.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleCode() {\n this.editor.chain().focus().toggleCode().run();\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-color',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem, ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n [cdkMenuTriggerFor]=\"textColorDropdown\"\n type=\"button\"\n scTooltip=\"Text color\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 25 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-width=\"2\"\n d=\"m6.532 15.982 1.573-4m-1.573 4h-1.1m1.1 0h1.65m-.077-4 2.725-6.93a.11.11 0 0 1 .204 0l2.725 6.93m-5.654 0H8.1m.006 0h5.654m0 0 .617 1.569m5.11 4.453c0 1.102-.854 1.996-1.908 1.996-1.053 0-1.907-.894-1.907-1.996 0-1.103 1.907-4.128 1.907-4.128s1.909 3.025 1.909 4.128Z\"\n />\n </svg>\n <span class=\"sr-only\">Text color</span>\n </button>\n\n <ng-template #textColorDropdown>\n <div\n class=\"z-10 w-48 rounded bg-white p-2 shadow dark:bg-gray-700\"\n id=\"textColorDropdown\"\n cdkMenu\n >\n <div\n class=\"group mb-3 grid grid-cols-6 items-center gap-2 rounded-lg p-1.5 hover:bg-gray-100 dark:hover:bg-gray-600\"\n >\n <input\n class=\"col-span-3 h-8 w-full rounded-md border border-gray-200 bg-gray-50 p-px px-1 hover:bg-gray-50 group-hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-700 dark:group-hover:bg-gray-700\"\n id=\"color\"\n type=\"color\"\n value=\"#e66465\"\n />\n <label\n class=\"col-span-3 text-sm font-medium text-gray-500 group-hover:text-gray-900 dark:text-gray-400 dark:group-hover:text-white\"\n for=\"color\"\n >\n Pick a color\n </label>\n </div>\n <div class=\"mb-3 grid grid-cols-6 gap-1\">\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#1A56DB\"\n cdkMenuItem\n style=\"background-color: #1A56DB\"\n >\n <span class=\"sr-only\">Blue</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n cdkMenuItem\n type=\"button\"\n data-hex-color=\"#0E9F6E\"\n style=\"background-color: #0E9F6E\"\n >\n <span class=\"sr-only\">Green</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n cdkMenuItem\n type=\"button\"\n data-hex-color=\"#FACA15\"\n style=\"background-color: #FACA15\"\n >\n <span class=\"sr-only\">Yellow</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#F05252\"\n cdkMenuItem\n style=\"background-color: #F05252\"\n >\n <span class=\"sr-only\">Red</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#FF8A4C\"\n cdkMenuItem\n style=\"background-color: #FF8A4C\"\n >\n <span class=\"sr-only\">Orange</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#0694A2\"\n cdkMenuItem\n style=\"background-color: #0694A2\"\n >\n <span class=\"sr-only\">Teal</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#B4C6FC\"\n cdkMenuItem\n style=\"background-color: #B4C6FC\"\n >\n <span class=\"sr-only\">Light indigo</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#8DA2FB\"\n cdkMenuItem\n style=\"background-color: #8DA2FB\"\n >\n <span class=\"sr-only\">Indigo</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#5145CD\"\n cdkMenuItem\n style=\"background-color: #5145CD\"\n >\n <span class=\"sr-only\">Purple</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#771D1D\"\n cdkMenuItem\n style=\"background-color: #771D1D\"\n >\n <span class=\"sr-only\">Brown</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#FCD9BD\"\n cdkMenuItem\n style=\"background-color: #FCD9BD\"\n >\n <span class=\"sr-only\">Light orange</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#99154B\"\n cdkMenuItem\n style=\"background-color: #99154B\"\n >\n <span class=\"sr-only\">Bordo</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#7E3AF2\"\n cdkMenuItem\n style=\"background-color: #7E3AF2\"\n >\n <span class=\"sr-only\">Dark Purple</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#CABFFD\"\n cdkMenuItem\n style=\"background-color: #CABFFD\"\n >\n <span class=\"sr-only\">Light</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#D61F69\"\n cdkMenuItem\n style=\"background-color: #D61F69\"\n >\n <span class=\"sr-only\">Dark Pink</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#F8B4D9\"\n cdkMenuItem\n style=\"background-color: #F8B4D9\"\n >\n <span class=\"sr-only\">Pink</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#F6C196\"\n cdkMenuItem\n style=\"background-color: #F6C196\"\n >\n <span class=\"sr-only\">Cream</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#A4CAFE\"\n cdkMenuItem\n style=\"background-color: #A4CAFE\"\n >\n <span class=\"sr-only\">Light Blue</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#5145CD\"\n cdkMenuItem\n style=\"background-color: #5145CD\"\n >\n <span class=\"sr-only\">Dark Blue</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#B43403\"\n cdkMenuItem\n style=\"background-color: #B43403\"\n >\n <span class=\"sr-only\">Orange Brown</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#FCE96A\"\n cdkMenuItem\n style=\"background-color: #FCE96A\"\n >\n <span class=\"sr-only\">Light Yellow</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#1E429F\"\n cdkMenuItem\n style=\"background-color: #1E429F\"\n >\n <span class=\"sr-only\">Navy Blue</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#768FFD\"\n cdkMenuItem\n style=\"background-color: #768FFD\"\n >\n <span class=\"sr-only\">Light Purple</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#BCF0DA\"\n cdkMenuItem\n style=\"background-color: #BCF0DA\"\n >\n <span class=\"sr-only\">Light Green</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#EBF5FF\"\n cdkMenuItem\n style=\"background-color: #EBF5FF\"\n >\n <span class=\"sr-only\">Sky Blue</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#16BDCA\"\n cdkMenuItem\n style=\"background-color: #16BDCA\"\n >\n <span class=\"sr-only\">Cyan</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#E74694\"\n cdkMenuItem\n style=\"background-color: #E74694\"\n >\n <span class=\"sr-only\">Pink</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#83B0ED\"\n cdkMenuItem\n style=\"background-color: #83B0ED\"\n >\n <span class=\"sr-only\">Darker Sky Blue</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#03543F\"\n cdkMenuItem\n style=\"background-color: #03543F\"\n >\n <span class=\"sr-only\">Forest Green</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#111928\"\n cdkMenuItem\n style=\"background-color: #111928\"\n >\n <span class=\"sr-only\">Black</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#4B5563\"\n cdkMenuItem\n style=\"background-color: #4B5563\"\n >\n <span class=\"sr-only\">Stone</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#6B7280\"\n cdkMenuItem\n style=\"background-color: #6B7280\"\n >\n <span class=\"sr-only\">Gray</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#D1D5DB\"\n cdkMenuItem\n style=\"background-color: #D1D5DB\"\n >\n <span class=\"sr-only\">Light Gray</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#F3F4F6\"\n cdkMenuItem\n style=\"background-color: #F3F4F6\"\n >\n <span class=\"sr-only\">Cloud Gray</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#F3F4F6\"\n cdkMenuItem\n style=\"background-color: #F3F4F6\"\n >\n <span class=\"sr-only\">Cloud Gray</span>\n </button>\n <button\n class=\"size-6 rounded-md\"\n (click)=\"setHexColor($event)\"\n type=\"button\"\n data-hex-color=\"#F9FAFB\"\n cdkMenuItem\n style=\"background-color: #F9FAFB\"\n >\n <span class=\"sr-only\">Heaven Gray</span>\n </button>\n </div>\n <button\n class=\"w-full rounded-lg bg-white py-1.5 text-sm font-medium text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:z-10 focus:outline-none focus:ring-4 focus:ring-gray-100 dark:bg-gray-700 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white dark:focus:ring-gray-700\"\n id=\"reset-color\"\n (click)=\"resetColor()\"\n cdkMenuItem\n type=\"button\"\n >\n Reset color\n </button>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionColor {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.color.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n resetColor() {\n this.editor.commands.unsetColor();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setHexColor(e: any) {\n const hexColor = e.target.getAttribute('data-hex-color');\n this.editor.chain().focus().setColor(hexColor).run();\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-font-family',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem, ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n [cdkMenuTriggerFor]=\"fontFamilyDropdown\"\n type=\"button\"\n scTooltip=\"Font Family\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m10.6 19 4.298-10.93a.11.11 0 0 1 .204 0L19.4 19m-8.8 0H9.5m1.1 0h1.65m7.15 0h-1.65m1.65 0h1.1m-7.7-3.985h4.4M3.021 16l1.567-3.985m0 0L7.32 5.07a.11.11 0 0 1 .205 0l2.503 6.945h-5.44Z\"\n />\n </svg>\n <span class=\"sr-only\">Font family</span>\n </button>\n\n <ng-template #fontFamilyDropdown>\n <div\n class=\"z-10 w-48 rounded bg-white p-2 shadow dark:bg-gray-700\"\n id=\"fontFamilyDropdown\"\n cdkMenu\n >\n <ul class=\"space-y-1 text-sm font-medium\" aria-labelledby=\"toggleFontFamilyButton\">\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 font-sans text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Poppins, ui-sans-serif\"\n cdkMenuItem\n type=\"button\"\n >\n Default (Poppins)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Arial, sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Arial, sans-serif;\"\n >\n Arial\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Courier New', monospace\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Courier New', monospace;\"\n >\n Courier New\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Georgia, serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Georgia, serif;\"\n >\n Georgia\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Lucida Sans Unicode', sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Lucida Sans Unicode', sans-serif;\"\n >\n Lucida Sans Unicode\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Tahoma, sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Tahoma, sans-serif;\"\n >\n Tahoma\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Times New Roman', serif;\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Times New Roman', serif;\"\n >\n Times New Roman\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"'Trebuchet MS', sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: 'Trebuchet MS', sans-serif;\"\n >\n Trebuchet MS\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (click)=\"setFontFamily($event)\"\n data-font-family=\"Verdana, sans-serif\"\n cdkMenuItem\n type=\"button\"\n style=\"font-family: Verdana, sans-serif;\"\n >\n Verdana\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionFontFamily {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.fontFamily.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setFontFamily(e: Event) {\n const fontFamily = (e.target as HTMLButtonElement).getAttribute('data-font-family');\n\n if (fontFamily === null) {\n throw new Error('Missing data-font-family');\n }\n\n this.editor.chain().focus().setFontFamily(fontFamily).run();\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { Level } from '@tiptap/extension-heading';\n\nimport { ScEditor } from '../editor';\n\n@Component({\n selector: 'sc-extension-heading',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem],\n template: `\n <button\n class=\"flex items-center justify-center rounded-lg bg-gray-100 px-3 py-1.5 text-sm font-medium text-gray-500 hover:bg-gray-200 hover:text-gray-900 focus:z-10 focus:outline-none focus:ring-4 focus:ring-gray-50 dark:bg-gray-600 dark:text-gray-400 dark:hover:bg-gray-500 dark:hover:text-white dark:focus:ring-gray-600\"\n [cdkMenuTriggerFor]=\"typographyDropdown\"\n type=\"button\"\n >\n Heading\n <svg\n class=\"-me-0.5 ms-1.5 size-3.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m19 9-7 7-7-7\"\n />\n </svg>\n </button>\n\n <!-- Heading Dropdown -->\n <ng-template #typographyDropdown>\n <div class=\"z-10 w-72 rounded bg-white p-2 shadow dark:bg-gray-700\" cdkMenu>\n <ul class=\"space-y-1 text-sm font-medium\" aria-labelledby=\"typographyDropdownButton\">\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(1)\"\n data-heading-level=\"1\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 1\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 1\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(2)\"\n data-heading-level=\"2\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 2\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 2\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(3)\"\n data-heading-level=\"3\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 3\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 3\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(4)\"\n data-heading-level=\"4\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 4\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 4\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(5)\"\n data-heading-level=\"5\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 5\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 5\n </kbd>\n </div>\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setHeadingLevel(6)\"\n data-heading-level=\"6\"\n cdkMenuItem\n type=\"button\"\n >\n Heading 6\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 6\n </kbd>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionHeading {\n private readonly parent = inject(ScEditor, { host: true });\n\n get editor() {\n return this.parent.editor;\n }\n\n setHeadingLevel(level: Level) {\n this.editor.chain().focus().toggleHeading({ level: level }).run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-highlight',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleHighlight()\"\n scTooltip=\"Toggle highlight\"\n type=\"button\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-width=\"2\"\n d=\"M9 19.2H5.5c-.3 0-.5-.2-.5-.5V16c0-.2.2-.4.5-.4h13c.3 0 .5.2.5.4v2.7c0 .3-.2.5-.5.5H18m-6-1 1.4 1.8h.2l1.4-1.7m-7-5.4L12 4c0-.1 0-.1 0 0l4 8.8m-6-2.7h4m-7 2.7h2.5m5 0H17\"\n />\n </svg>\n <span class=\"sr-only\">Highlight</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionHighlight {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.highlight.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleHighlight() {\n this.editor.chain().focus().toggleHighlight().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScButton } from '../../button';\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-history',\n imports: [ScTooltip, ScButton],\n template: `\n <button (click)=\"undo()\" sc-button variant=\"outline\" size=\"icon\" type=\"button\" scTooltip=\"Undo\">\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 9h13a5 5 0 0 1 0 10H7M3 9l4-4M3 9l4 4\"\n />\n </svg>\n <span class=\"sr-only\">Undo</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"redo()\"\n type=\"button\"\n scTooltip=\"Redo\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M21 9H8a5 5 0 0 0 0 10h9m4-10-4-4m4 4-4 4\"\n />\n </svg>\n <span class=\"sr-only\">Redo</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionHistory {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.history.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n undo() {\n this.editor.chain().focus().undo().run();\n }\n\n redo() {\n this.editor.chain().focus().redo().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-horizontal-rule',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"setHorizontalRule()\"\n type=\"button\"\n scTooltip=\"Toggle Horizontal Rule\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"2\" d=\"M5 12h14\" />\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n d=\"M6 9.5h12m-12 9h12M6 7.5h12m-12 9h12M6 5.5h12m-12 9h12\"\n />\n </svg>\n <span class=\"sr-only\">Toggle Horizontal Rule</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionHorizontalRule {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.horizontalRule.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setHorizontalRule() {\n this.editor.chain().focus().setHorizontalRule().run();\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface ImageData {\n url: string | null | undefined;\n alt: string | null | undefined;\n title: string | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-image-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">\n Insert advanced image\n </h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"imageForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"image-url\"\n >\n Image URL\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"image-url\"\n type=\"url\"\n name=\"image-url\"\n formControlName=\"url\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"alt\"\n >\n Image alt\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"alt\"\n type=\"text\"\n formControlName=\"alt\"\n name=\"alt\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"title\"\n >\n Image title\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"title\"\n type=\"text\"\n formControlName=\"title\"\n name=\"title\"\n />\n </div>\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"\n dialogRef.close({\n url: url?.value,\n alt: alt?.value,\n title: title?.value,\n })\n \"\n >\n Add image\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddImageDialog {\n dialogRef = inject<DialogRef<ImageData>>(DialogRef<ImageData>);\n\n imageForm = new FormGroup({\n url: new FormControl('https://placehold.co/600x400', Validators.required),\n alt: new FormControl(''),\n title: new FormControl(''),\n });\n\n get url() {\n return this.imageForm.get('url');\n }\n\n get alt() {\n return this.imageForm.get('alt');\n }\n\n get title() {\n return this.imageForm.get('title');\n }\n}\n","import { Dialog, DialogModule } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ImageData, ScAddImageDialog } from '../toolbar/add-image-dialog';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-image',\n imports: [ScTooltip, DialogModule],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add image\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M13 10a1 1 0 0 1 1-1h.01a1 1 0 1 1 0 2H14a1 1 0 0 1-1-1Z\"\n clip-rule=\"evenodd\"\n />\n <path\n fill-rule=\"evenodd\"\n d=\"M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12c0 .556-.227 1.06-.593 1.422A.999.999 0 0 1 20.5 20H4a2.002 2.002 0 0 1-2-2V6Zm6.892 12 3.833-5.356-3.99-4.322a1 1 0 0 0-1.549.097L4 12.879V6h16v9.95l-3.257-3.619a1 1 0 0 0-1.557.088L11.2 18H8.892Z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <span class=\"sr-only\">Add image</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionImage {\n private readonly parent = inject(ScEditor, { host: true });\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.image.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setImage(image: ImageData | undefined) {\n if (image?.url) {\n this.editor\n .chain()\n .focus()\n .setImage({\n src: image.url,\n alt: image.alt ? image.alt : '',\n title: image.title ? image.title : '',\n })\n .run();\n }\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<ImageData>(ScAddImageDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n this.setImage(result);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-italic',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleItalic()\"\n type=\"button\"\n scTooltip=\"Toggle italic\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m8.874 19 6.143-14M6 19h6.33m-.66-14H18\"\n />\n </svg>\n <span class=\"sr-only\">Italic</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionItalic {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.italic.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleItalic() {\n this.editor.chain().focus().toggleItalic().run();\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface LinkData {\n url: string | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-link-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n tabindex=\"-1\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">Insert Url</h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"linkForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"url\"\n >\n Url\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"url\"\n type=\"url\"\n name=\"url\"\n formControlName=\"url\"\n />\n </div>\n\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"\n dialogRef.close({\n url: url?.value,\n })\n \"\n >\n Add link\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddLinkDialog {\n dialogRef = inject<DialogRef<LinkData>>(DialogRef<LinkData>);\n\n linkForm = new FormGroup({\n url: new FormControl('https://flowbite.com', Validators.required),\n });\n\n get url() {\n return this.linkForm.get('url');\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { LinkData, ScAddLinkDialog } from '../toolbar/add-link-dialog';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-link',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add link\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13.213 9.787a3.391 3.391 0 0 0-4.795 0l-3.425 3.426a3.39 3.39 0 0 0 4.795 4.794l.321-.304m-.321-4.49a3.39 3.39 0 0 0 4.795 0l3.424-3.426a3.39 3.39 0 0 0-4.794-4.795l-1.028.961\"\n />\n </svg>\n <span class=\"sr-only\">Link</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"removeLink()\"\n type=\"button\"\n scTooltip=\"Remove link\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-width=\"2\"\n d=\"M13.2 9.8a3.4 3.4 0 0 0-4.8 0L5 13.2A3.4 3.4 0 0 0 9.8 18l.3-.3m-.3-4.5a3.4 3.4 0 0 0 4.8 0L18 9.8A3.4 3.4 0 0 0 13.2 5l-1 1m7.4 14-1.8-1.8m0 0L16 16.4m1.8 1.8 1.8-1.8m-1.8 1.8L16 20\"\n />\n </svg>\n <span class=\"sr-only\">Remove link</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionLink {\n private readonly parent = inject(ScEditor, { host: true });\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.link.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<LinkData>(ScAddLinkDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n this.editor\n .chain()\n .focus()\n .toggleLink({ href: result?.url ?? '' })\n .run();\n });\n }\n\n removeLink() {\n this.editor.chain().focus().unsetLink().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-ordered-list',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleOrderedList()\"\n type=\"button\"\n scTooltip=\"Toggle ordered list\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M12 6h8m-8 6h8m-8 6h8M4 16a2 2 0 1 1 3.321 1.5L4 20h5M4 5l2-1v6m-2 0h4\"\n />\n </svg>\n <span class=\"sr-only\">Toggle ordered list</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionOrderedList {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.orderedList.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleOrderedList() {\n this.editor.chain().focus().toggleOrderedList().run();\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScEditor } from '../editor';\n\n@Component({\n selector: 'sc-extension-paragraph',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem],\n template: `\n <button\n class=\"flex items-center justify-center rounded-lg bg-gray-100 px-3 py-1.5 text-sm font-medium text-gray-500 hover:bg-gray-200 hover:text-gray-900 focus:z-10 focus:outline-none focus:ring-4 focus:ring-gray-50 dark:bg-gray-600 dark:text-gray-400 dark:hover:bg-gray-500 dark:hover:text-white dark:focus:ring-gray-600\"\n [cdkMenuTriggerFor]=\"typographyDropdown\"\n type=\"button\"\n >\n Paragraph\n <svg\n class=\"-me-0.5 ms-1.5 size-3.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m19 9-7 7-7-7\"\n />\n </svg>\n </button>\n\n <!-- Heading Dropdown -->\n <ng-template #typographyDropdown>\n <div class=\"z-10 w-72 rounded bg-white p-2 shadow dark:bg-gray-700\" cdkMenu>\n <ul class=\"space-y-1 text-sm font-medium\" aria-labelledby=\"typographyDropdownButton\">\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setParagraph()\"\n cdkMenuItem\n type=\"button\"\n >\n Paragraph\n <div class=\"space-x-1.5\">\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Cmd\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n Alt\n </kbd>\n <kbd\n class=\"rounded-lg border border-gray-200 bg-gray-100 px-2 py-1 text-xs font-semibold text-gray-500 dark:border-gray-500 dark:bg-gray-600 dark:text-gray-400\"\n >\n 0\n </kbd>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionParagraph {\n private readonly parent = inject(ScEditor, { host: true });\n\n get editor() {\n return this.parent.editor;\n }\n\n setParagraph() {\n this.editor.chain().focus().setParagraph().run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-strike',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleStrike()\"\n type=\"button\"\n scTooltip=\"Toggle strike\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M7 6.2V5h12v1.2M7 19h6m.2-14-1.677 6.523M9.6 19l1.029-4M5 5l6.523 6.523M19 19l-7.477-7.477\"\n />\n </svg>\n <span class=\"sr-only\">Strike</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionStrike {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.strike.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleStrike() {\n this.editor.chain().focus().toggleStrike().run();\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface AttributeData {\n name: string | null | undefined;\n value: string | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-cell-attribute-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"fixed inset-x-0 top-0 z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n id=\"cell-attribute-modal\"\n tabindex=\"-1\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">Add cell attribute</h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n data-modal-hide=\"cell-attribute-modal\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"attributeForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"attribute-name\"\n >\n Attribute name\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"attribute-name\"\n type=\"text\"\n formControlName=\"name\"\n placeholder=\"eg. backgroundColor\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"attribute-value\"\n >\n Attribute value\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"attribute-value\"\n type=\"text\"\n formControlName=\"value\"\n placeholder=\"#E1EFFE;\"\n />\n </div>\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"\n dialogRef.close({\n name: name?.value,\n value: value?.value,\n })\n \"\n type=\"submit\"\n >\n Set attribute\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddCellAttributeDialog {\n dialogRef = inject<DialogRef<AttributeData>>(DialogRef<AttributeData>);\n\n attributeForm = new FormGroup({\n name: new FormControl('backgroundColor', Validators.required),\n value: new FormControl('#E1EFFE;'),\n });\n\n get name() {\n return this.attributeForm.get('name');\n }\n\n get value() {\n return this.attributeForm.get('value');\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-extensions-separator',\n imports: [],\n template: `\n <span class=\"inline-block h-4 w-px bg-gray-300 dark:bg-gray-600\"></span>\n `,\n styles: `\n sc-extensions-separator {\n @apply px-1;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionsSeparator {}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { AttributeData, ScAddCellAttributeDialog } from '../toolbar/add-cell-attribute-dialog';\nimport { ScExtensionsSeparator } from '../toolbar/extensions-separator';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-table',\n imports: [ScTooltip, ScExtensionsSeparator],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"insertTable()\"\n type=\"button\"\n scTooltip=\"Add table\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15v3c0 .5523.44772 1 1 1h10.5M3 15v-4m0 4h11M3 11V6c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5M3 11h18m0 0v1M8 11v8m4-8v8m4-8v2m1 4h2m0 0h2m-2 0v2m0-2v-2\"\n />\n </svg>\n <span class=\"sr-only\">Add table</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"deleteTable()\"\n type=\"button\"\n scTooltip=\"Delete table\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h10.5M3 15.5v-4m0 4h11m-11-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5m-18 0h18m0 0v1m-13-1v8m4-8v8m4-8v2m1.8956 5.9528 1.5047-1.5047m0 0 1.5048-1.5048m-1.5048 1.5048 1.4605 1.4604m-1.4605-1.4604-1.4604-1.4605\"\n />\n </svg>\n <span class=\"sr-only\">Delete table</span>\n </button>\n\n <sc-extensions-separator />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addColumnBefore()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-column-before\"\n scTooltip=\"Add column before\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 5.5v14m-8-7h2m0 0h2m-2 0v2m0-2v-2m12 1h-6m6 4h-6m-11 4h16c.5523 0 1-.4477 1-1v-12c0-.55228-.4477-1-1-1H4c-.55228 0-1 .44772-1 1v12c0 .5523.44772 1 1 1Z\"\n />\n </svg>\n <span class=\"sr-only\">Add column before</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addColumnAfter()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-column-after\"\n scTooltip=\"Add column after\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5.5v14m8-7h-2m0 0h-2m2 0v2m0-2v-2m-12 1h6m-6 4h6m11 4H4c-.55228 0-1-.4477-1-1v-12c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v12c0 .5523-.4477 1-1 1Z\"\n />\n </svg>\n <span class=\"sr-only\">Add column after</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"deleteColumn()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-remove-column\"\n scTooltip=\"Remove column\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5.5v14m-6-8h6m-6 4h6m4.5061-1.4939L15.0123 12.5m0 0 1.5061-1.5061M15.0123 12.5l1.5061 1.5061M15.0123 12.5l-1.5062-1.5061M20 19.5H4c-.55228 0-1-.4477-1-1v-12c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v12c0 .5523-.4477 1-1 1Z\"\n />\n </svg>\n <span class=\"sr-only\">Remove column</span>\n </button>\n\n <sc-extensions-separator />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addRowBefore()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-row-before\"\n scTooltip=\"Add row before\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-6-9h2m0 0h2m-2 0v2m0-2v-2\"\n />\n </svg>\n <span class=\"sr-only\">Add row before</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"addRowAfter()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-add-row-after\"\n scTooltip=\"Add row after\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 9.5v-3c0-.55228.44772-1 1-1h16c.5523 0 1 .44771 1 1v3m-18 0v9c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-9m-18 0h18m-13 0v-4m4 4v-4m4 4v-4m-6 9h2m0 0h2m-2 0v-2m0 2v2\"\n />\n </svg>\n <span class=\"sr-only\">Add row after</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"deleteRow()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-remove-row\"\n scTooltip=\"Remove row\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-5.5061-7.4939L12 10.5m0 0 1.5061-1.50614M12 10.5l1.5061 1.5061M12 10.5l-1.5061-1.50614\"\n />\n </svg>\n <span class=\"sr-only\">Remove row</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"mergeCells()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-merge-cells\"\n scTooltip=\"Merge cells\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M10 18.5v2H4v-16h6v2m4 12v2h6v-16h-6v2m-6.49543 8.4954L10 12.5m0 0-2.49543-2.4954M10 12.5H4.05191m12.50199 2.5539L14 12.5m0 0 2.5539-2.55392M14 12.5h5.8319\"\n />\n </svg>\n <span class=\"sr-only\">Merge cells</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"splitCell()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-split-cells\"\n scTooltip=\"Split cells\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 18.5v2h6v-16H4v2m16 12v2h-6v-16h6v2M6.49545 14.9954 4.00003 12.5m0 0 2.49542-2.4954M4.00003 12.5h5.94809m7.49798 2.5539L20 12.5m0 0-2.5539-2.55392M20 12.5h-5.8319\"\n />\n </svg>\n <span class=\"sr-only\">Split cells</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"mergeOrSplit()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-merge-or-split\"\n scTooltip=\"Merge or split\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M18.5045 14.9954 21 12.5m0 0-2.4955-2.4954M21 12.5h-5.9481m-9.49798 2.5539L3 12.5m0 0 2.55392-2.55392M3 12.5h5.83192m.16807 7v-14H15v14H8.99999Z\"\n />\n </svg>\n <span class=\"sr-only\">Merge or split</span>\n </button>\n\n <sc-extensions-separator />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleHeaderColumn()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-toggle-header-column\"\n scTooltip=\"Toggle header column\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 5.5v14m6-8h-6m6 4h-6m-9-3h1.99093M4 19.5h16c.5523 0 1-.4477 1-1v-12c0-.55228-.4477-1-1-1H4c-.55228 0-1 .44772-1 1v12c0 .5523.44772 1 1 1Zm8-7c0 1.1046-.8954 2-2 2-1.10457 0-2-.8954-2-2s.89543-2 2-2c1.1046 0 2 .8954 2 2Z\"\n />\n </svg>\n <span class=\"sr-only\">Toggle header column</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleHeaderRow()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-toggle-header-row\"\n scTooltip=\"Toggle header row\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-7-9h1.9909M15 10.5c0 1.1046-.8954 2-2 2s-2-.8954-2-2c0-1.10457.8954-2 2-2s2 .89543 2 2Z\"\n />\n </svg>\n <span class=\"sr-only\">Toggle header row</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleHeaderCell()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-toggle-header-cell\"\n scTooltip=\"Toggle header cell\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h16c.5523 0 1-.4477 1-1v-3m-18 0v-9c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v9m-18 0h18m-13 0v4m4-4v4m4-4v4m-7-9h1.9909M15 10.5c0 1.1046-.8954 2-2 2s-2-.8954-2-2c0-1.10457.8954-2 2-2s2 .89543 2 2Z\"\n />\n </svg>\n <span class=\"sr-only\">Toggle header cell</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add cell attribute\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h8v-8m-9 4v-4m0 4h9m-9-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v4m-18 1h11m6.25 5c0 1.2426-1.0073 2.25-2.25 2.25m2.25-2.25c0-1.2426-1.0073-2.25-2.25-2.25m2.25 2.25H21m-3 2.25c-1.2426 0-2.25-1.0074-2.25-2.25M18 18.75v.75m-2.25-3c0-1.2426 1.0074-2.25 2.25-2.25m-2.25 2.25H15m3-2.25v-.75m-1.591 1.409-.5303-.5303m4.2426 4.2426-.5303-.5303m-3.182 0-.5303.5303m4.2426-4.2426-.5303.5303\"\n />\n </svg>\n <span class=\"sr-only\">Add cell attribute</span>\n </button>\n\n <sc-extensions-separator />\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"fixTables()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-fix-tables\"\n scTooltip=\"Fix tables\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h4v-4m-5 0v-4m0 4h5m-5-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v1.98935M3 11.5h5v4m9.4708 4.1718-.8696-1.4388-2.8164-.235-2.573-4.2573 1.4873-2.8362 1.4441 2.3893c.3865.6396 1.2183.8447 1.8579.4582.6396-.3866.8447-1.2184.4582-1.858l-1.444-2.38925h3.1353l2.6101 4.27715-1.0713 2.5847.8695 1.4388\"\n />\n </svg>\n <span class=\"sr-only\">Fix tables</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"goToPreviousCell()\"\n type=\"button\"\n scTooltip=\"Previous cell\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h9.5M3 15.5v-4m0 4h9m-9-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5H3Zm5 0v8m4-8v8m5.9001-1.0999L16 16.5m0 0 1.9001-1.9001M16 16.5h5\"\n />\n </svg>\n <span class=\"sr-only\">Previous cell</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"goToNextCell()\"\n type=\"button\"\n data-tooltip-target=\"tooltip-next-cell\"\n scTooltip=\"Next cell\"\n >\n <svg\n class=\"size-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 15.5v3c0 .5523.44772 1 1 1h9.5M3 15.5v-4m0 4h9m-9-4v-5c0-.55228.44772-1 1-1h16c.5523 0 1 .44772 1 1v5H3Zm5 0v8m4-8v8m7.0999-1.0999L21 16.5m0 0-1.9001-1.9001M21 16.5h-5\"\n />\n </svg>\n <span class=\"sr-only\">Next cell</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionTable {\n private readonly parent = inject(ScEditor, { host: true });\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.table.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n insertTable() {\n this.editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run();\n }\n\n deleteTable() {\n this.editor.chain().focus().deleteTable().run();\n }\n\n addColumnBefore() {\n this.editor.chain().focus().addColumnBefore().run();\n }\n\n addColumnAfter() {\n this.editor.chain().focus().addColumnAfter().run();\n }\n\n deleteColumn() {\n this.editor.chain().focus().deleteColumn().run();\n }\n\n addRowBefore() {\n this.editor.chain().focus().addRowBefore().run();\n }\n\n addRowAfter() {\n this.editor.chain().focus().addRowAfter().run();\n }\n\n deleteRow() {\n this.editor.chain().focus().deleteRow().run();\n }\n\n mergeCells() {\n this.editor.chain().focus().mergeCells().run();\n }\n\n splitCell() {\n this.editor.chain().focus().splitCell().run();\n }\n\n mergeOrSplit() {\n this.editor.chain().focus().mergeOrSplit().run();\n }\n\n toggleHeaderColumn() {\n this.editor.chain().focus().toggleHeaderColumn().run();\n }\n\n toggleHeaderRow() {\n this.editor.chain().focus().toggleHeaderRow().run();\n }\n\n toggleHeaderCell() {\n this.editor.chain().focus().toggleHeaderCell().run();\n }\n\n fixTables() {\n this.editor.commands.fixTables();\n }\n\n goToPreviousCell() {\n this.editor.chain().focus().goToPreviousCell().run();\n }\n\n goToNextCell() {\n this.editor.chain().focus().goToNextCell().run();\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<AttributeData>(ScAddCellAttributeDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n console.log(result);\n this.editor.commands.setCellAttribute(result?.name ?? '', result?.value ?? '');\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-text-align',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"setLeftAlign()\"\n type=\"button\"\n scTooltip=\"Align left\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 6h8m-8 4h12M6 14h8m-8 4h12\"\n />\n </svg>\n <span class=\"sr-only\">Align left</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"setCenterAlign()\"\n type=\"button\"\n scTooltip=\"Align center\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M8 6h8M6 10h12M8 14h8M6 18h12\"\n />\n </svg>\n <span class=\"sr-only\">Align center</span>\n </button>\n\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"setRightAlignButton()\"\n type=\"button\"\n scTooltip=\"Align right\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M18 6h-8m8 4H6m12 4h-8m8 4H6\"\n />\n </svg>\n <span class=\"sr-only\">Align right</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionTextAlignAction {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.textAlign.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setLeftAlign() {\n this.editor.chain().focus().setTextAlign('left').run();\n }\n\n setCenterAlign() {\n this.editor.chain().focus().setTextAlign('center').run();\n }\n\n setRightAlignButton() {\n this.editor.chain().focus().setTextAlign('right').run();\n }\n}\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-text-style',\n imports: [CdkMenuTrigger, CdkMenu, CdkMenuItem, ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n [cdkMenuTriggerFor]=\"textSizeDropdown\"\n type=\"button\"\n scTooltip=\"Text size\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M3 6.2V5h11v1.2M8 5v14m-3 0h6m2-6.8V11h8v1.2M17 11v8m-1.5 0h3\"\n />\n </svg>\n <span class=\"sr-only\">Text size</span>\n </button>\n\n <ng-template #textSizeDropdown>\n <div\n class=\"z-10 w-72 rounded bg-white p-2 shadow dark:bg-gray-700\"\n id=\"textSizeDropdown\"\n cdkMenu\n >\n <ul class=\"space-y-1 text-sm font-medium\" aria-labelledby=\"setTextSizeButton\">\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-base text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('16px')\"\n data-text-size=\"16px\"\n cdkMenuItem\n type=\"button\"\n >\n 16px (Default)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-xs text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('12px')\"\n data-text-size=\"12px\"\n cdkMenuItem\n type=\"button\"\n >\n 12px (Tiny)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-sm text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('14px')\"\n data-text-size=\"14px\"\n cdkMenuItem\n type=\"button\"\n >\n 14px (Small)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-lg text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('18px')\"\n data-text-size=\"18px\"\n cdkMenuItem\n type=\"button\"\n >\n 18px (Lead)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-2xl text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('24px')\"\n data-text-size=\"24px\"\n cdkMenuItem\n type=\"button\"\n >\n 24px (Large)\n </button>\n </li>\n <li>\n <button\n class=\"flex w-full items-center justify-between rounded px-3 py-2 text-4xl text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n (cdkMenuItemTriggered)=\"setTextSize('36px')\"\n data-text-size=\"36px\"\n cdkMenuItem\n type=\"button\"\n >\n 36px (Huge)\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionTextStyle {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.textStyle.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setTextSize(fontSize: string) {\n this.editor.chain().focus().setMark('textStyle', { fontSize }).run();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-underline',\n imports: [ScTooltip],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"toggleUnderline()\"\n type=\"button\"\n scTooltip=\"Toggle underline\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-width=\"2\"\n d=\"M6 19h12M8 5v9a4 4 0 0 0 8 0V5M6 5h4m4 0h4\"\n />\n </svg>\n <span class=\"sr-only\">Underline</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionUnderline {\n private readonly parent = inject(ScEditor, { host: true });\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.underline.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n toggleUnderline() {\n this.editor.chain().focus().toggleUnderline().run();\n }\n}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\n\nexport interface VideoData {\n url: string | null | undefined;\n width: number | null | undefined;\n height: number | null | undefined;\n}\n\n@Component({\n selector: 'sc-add-video-dialog',\n imports: [ReactiveFormsModule],\n template: `\n <div\n class=\"z-50 h-[calc(100%-1rem)] max-h-full w-full items-center justify-center overflow-y-auto overflow-x-hidden md:inset-0\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <div class=\"relative max-h-full w-full max-w-md p-4\">\n <!-- Modal content -->\n <div class=\"relative rounded-lg bg-white shadow dark:bg-gray-700\">\n <!-- Modal header -->\n <div\n class=\"flex items-center justify-between rounded-t border-b p-4 md:p-5 dark:border-gray-600\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-white\">\n Insert advanced video\n </h3>\n <button\n class=\"end-2.5 ms-auto inline-flex size-8 items-center justify-center rounded-lg bg-transparent text-sm text-gray-400 hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"dialogRef.close()\"\n type=\"button\"\n >\n <svg\n class=\"size-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n <!-- Modal body -->\n <div class=\"p-4 md:p-5\">\n <form class=\"space-y-4\" [formGroup]=\"videoForm\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"URL\"\n >\n YouTube URL\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"URL\"\n type=\"url\"\n name=\"url\"\n formControlName=\"url\"\n />\n </div>\n <div class=\"grid grid-cols-2 gap-4\">\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"width\"\n >\n Video width\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"width\"\n type=\"number\"\n name=\"width\"\n formControlName=\"width\"\n />\n </div>\n <div>\n <label\n class=\"mb-2 block text-sm font-medium text-gray-900 dark:text-white\"\n for=\"height\"\n >\n Video height\n </label>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-500 dark:bg-gray-600 dark:text-white dark:placeholder:text-gray-400\"\n id=\"height\"\n type=\"number\"\n name=\"height\"\n formControlName=\"height\"\n />\n </div>\n </div>\n <button\n class=\"w-full rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n (click)=\"dialogRef.close(getVideoInfo())\"\n >\n Add video\n </button>\n </form>\n </div>\n </div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScAddVideoDialog {\n dialogRef = inject<DialogRef<VideoData>>(DialogRef<VideoData>);\n\n videoForm = new FormGroup({\n url: new FormControl('https://www.youtube.com/watch?v=KaLxCiilHns', Validators.required),\n width: new FormControl(''),\n height: new FormControl(''),\n });\n\n get url() {\n return this.videoForm.get('url');\n }\n\n get width() {\n return this.videoForm.get('width');\n }\n\n get height() {\n return this.videoForm.get('height');\n }\n\n getVideoInfo() {\n return {\n url: this.url?.value,\n width: parseInt(this.width?.value ?? ''),\n height: parseInt(this.height?.value ?? ''),\n };\n }\n}\n","import { Dialog, DialogModule } from '@angular/cdk/dialog';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\n\nimport { ScTooltip } from '../../tooltip';\nimport { ScEditor } from '../editor';\nimport { ScAddVideoDialog, VideoData } from '../toolbar/add-video-dialog';\nimport { ScExtensions } from './extensions';\n\n@Component({\n selector: 'sc-extension-youtube',\n imports: [ScTooltip, DialogModule],\n template: `\n <button\n class=\"cursor-pointer rounded p-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"openDialog()\"\n type=\"button\"\n scTooltip=\"Add video\"\n >\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M9 7V2.221a2 2 0 0 0-.5.365L4.586 6.5a2 2 0 0 0-.365.5H9Zm2 0V2h7a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V9h5a2 2 0 0 0 2-2Zm-2 4a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2H9Zm0 2h2v2H9v-2Zm7.965-.557a1 1 0 0 0-1.692-.72l-1.268 1.218a1 1 0 0 0-.308.721v.733a1 1 0 0 0 .37.776l1.267 1.032a1 1 0 0 0 1.631-.776v-2.984Z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <span class=\"sr-only\">Add video</span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionYoutube {\n private readonly parent = inject(ScEditor, { host: true });\n dialog = inject(Dialog);\n\n extensions = inject(ScExtensions);\n\n constructor() {\n this.extensions.youtube.set(true);\n }\n\n get editor() {\n return this.parent.editor;\n }\n\n setYoutubeVideo(video: VideoData | undefined) {\n if (video?.url) {\n this.editor.commands.setYoutubeVideo({\n src: video.url,\n width: video.width ? video.width : 640,\n height: video.height ? video.height : 480,\n });\n }\n }\n\n openDialog() {\n const dialogRef = this.dialog.open<VideoData>(ScAddVideoDialog, {\n minWidth: '600px',\n });\n\n dialogRef.closed.subscribe((result) => {\n this.setYoutubeVideo(result);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-extensions-group',\n imports: [],\n template: `\n <div class=\"flex flex-wrap items-center gap-1 py-1\">\n <ng-content />\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScExtensionsGroup {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n forwardRef,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Editor } from '@tiptap/core';\nimport Document from '@tiptap/extension-document';\nimport Heading from '@tiptap/extension-heading';\nimport Paragraph from '@tiptap/extension-paragraph';\nimport Text from '@tiptap/extension-text';\n\nimport { ScExtensionBlockquote } from './extensions/extension-blockquote';\nimport { ScExtensionBold } from './extensions/extension-bold';\nimport { ScExtensionBulletList } from './extensions/extension-bullet-list';\nimport { ScExtensionCode } from './extensions/extension-code';\nimport { ScExtensionColor } from './extensions/extension-color';\nimport { ScExtensionFontFamily } from './extensions/extension-font-family';\nimport { ScExtensionHeading } from './extensions/extension-heading';\nimport { ScExtensionHighlight } from './extensions/extension-highlight';\nimport { ScExtensionHistory } from './extensions/extension-history';\nimport { ScExtensionHorizontalRule } from './extensions/extension-horizontal-rule';\nimport { ScExtensionImage } from './extensions/extension-image';\nimport { ScExtensionItalic } from './extensions/extension-italic';\nimport { ScExtensionLink } from './extensions/extension-link';\nimport { ScExtensionOrderedList } from './extensions/extension-ordered-list';\nimport { ScExtensionParagraph } from './extensions/extension-paragraph';\nimport { ScExtensionStrike } from './extensions/extension-strike';\nimport { ScExtensionTable } from './extensions/extension-table';\nimport { ScExtensionTextAlignAction } from './extensions/extension-text-align';\nimport { ScExtensionTextStyle } from './extensions/extension-text-style';\nimport { ScExtensionUnderline } from './extensions/extension-underline';\nimport { ScExtensionYoutube } from './extensions/extension-youtube';\nimport { ScExtensions } from './extensions/extensions';\nimport { ScExtensionsGroup } from './toolbar/extensions-group';\nimport { ScExtensionsSeparator } from './toolbar/extensions-separator';\n\n@Component({\n selector: 'sc-editor',\n imports: [\n ScExtensionHighlight,\n ScExtensionColor,\n ScExtensionBold,\n ScExtensionUnderline,\n ScExtensionYoutube,\n ScExtensionImage,\n ScExtensionFontFamily,\n ScExtensionLink,\n ScExtensionItalic,\n ScExtensionBlockquote,\n ScExtensionBulletList,\n ScExtensionOrderedList,\n ScExtensionTextAlignAction,\n ScExtensionTextStyle,\n ScExtensionParagraph,\n ScExtensionHistory,\n ScExtensionsSeparator,\n ScExtensionsGroup,\n ScExtensionStrike,\n ScExtensionHorizontalRule,\n ScExtensionCode,\n ScExtensionHeading,\n ScExtensionTable,\n ],\n template: `\n <div\n class=\"w-full rounded-lg border border-gray-200 bg-gray-50 dark:border-gray-600 dark:bg-gray-700\"\n >\n <div class=\"border-b px-3 py-1 dark:border-gray-600\">\n <sc-extensions-group>\n <sc-extension-history />\n <sc-extensions-separator />\n <sc-extension-bold />\n <sc-extension-italic />\n <sc-extension-underline />\n <sc-extension-highlight />\n <sc-extension-link />\n <sc-extension-text-style />\n <sc-extension-color />\n <sc-extension-font-family />\n <sc-extensions-separator />\n <sc-extension-text-align />\n </sc-extensions-group>\n\n <sc-extensions-group>\n <sc-extension-heading />\n <sc-extension-paragraph />\n <sc-extensions-separator />\n <sc-extension-image />\n <sc-extension-youtube />\n <sc-extension-bullet-list />\n <sc-extension-ordered-list />\n <sc-extension-blockquote />\n <sc-extensions-separator />\n <sc-extension-strike />\n <sc-extension-horizontal-rule />\n <sc-extension-code />\n </sc-extensions-group>\n\n <sc-extensions-group>\n <sc-extension-table />\n </sc-extensions-group>\n </div>\n\n <div class=\"rounded-b-lg bg-white px-4 py-2 dark:bg-gray-800\">\n <label class=\"sr-only\" for=\"wysiwyg-example\">Publish post</label>\n <div\n class=\"block w-full border-0 bg-white px-0 text-sm text-gray-800 focus:ring-0 dark:bg-gray-800 dark:text-white dark:placeholder:text-gray-400\"\n #editorDiv\n ></div>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScEditor),\n multi: true,\n },\n ],\n})\nexport class ScEditor implements ControlValueAccessor {\n private readonly _cdr = inject(ChangeDetectorRef);\n\n readonly editorDiv = viewChild.required<ElementRef>('editorDiv');\n\n _value = signal('');\n\n _isEditable = signal(true);\n\n class = input<string>('');\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onChange: (value: string) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched: () => void = () => {};\n\n editor!: Editor;\n\n extensions = inject(ScExtensions);\n\n constructor() {\n afterNextRender(() => {\n this.createEditor();\n });\n }\n\n async createEditor() {\n const extensions = [];\n extensions.push(Document);\n extensions.push(Heading);\n extensions.push(Paragraph);\n extensions.push(Text);\n\n if (this.extensions.highlight()) {\n const Highlight = (await import('@tiptap/extension-highlight')).Highlight;\n extensions.push(Highlight);\n }\n\n if (this.extensions.textStyle()) {\n const TextStyle = (await import('@tiptap/extension-text-style')).TextStyle;\n extensions.push(TextStyle);\n }\n\n if (this.extensions.color()) {\n const Color = (await import('@tiptap/extension-color')).Color;\n extensions.push(Color);\n }\n\n if (this.extensions.fontFamily()) {\n const FontFamily = (await import('@tiptap/extension-font-family')).FontFamily;\n extensions.push(FontFamily);\n }\n\n if (this.extensions.underline()) {\n const Underline = (await import('@tiptap/extension-underline')).Underline;\n extensions.push(Underline);\n }\n\n if (this.extensions.image()) {\n const Image = (await import('@tiptap/extension-image')).Image;\n extensions.push(Image);\n }\n\n if (this.extensions.youtube()) {\n const Youtube = (await import('@tiptap/extension-youtube')).Youtube;\n extensions.push(Youtube);\n }\n\n if (this.extensions.link()) {\n const Link = (await import('@tiptap/extension-link')).Link;\n extensions.push(Link);\n }\n\n if (this.extensions.textAlign()) {\n const TextAlign = (await import('@tiptap/extension-text-align')).TextAlign;\n extensions.push(\n TextAlign.configure({\n types: ['heading', 'paragraph'],\n }),\n );\n }\n\n if (this.extensions.bulletList() || this.extensions.orderedList()) {\n const ListItem = (await import('@tiptap/extension-list-item')).ListItem;\n extensions.push(ListItem);\n }\n\n if (this.extensions.bulletList()) {\n const BulletList = (await import('@tiptap/extension-bullet-list')).BulletList;\n extensions.push(BulletList);\n }\n\n if (this.extensions.orderedList()) {\n const OrderedList = (await import('@tiptap/extension-ordered-list')).OrderedList;\n extensions.push(OrderedList);\n }\n\n if (this.extensions.strike()) {\n const Strike = (await import('@tiptap/extension-strike')).Strike;\n extensions.push(Strike);\n }\n\n if (this.extensions.italic()) {\n const Italic = (await import('@tiptap/extension-italic')).Italic;\n extensions.push(Italic);\n }\n\n if (this.extensions.bold()) {\n const Bold = (await import('@tiptap/extension-bold')).Bold;\n extensions.push(Bold);\n }\n\n if (this.extensions.horizontalRule()) {\n const HorizontalRule = (await import('@tiptap/extension-horizontal-rule')).HorizontalRule;\n extensions.push(HorizontalRule);\n }\n\n if (this.extensions.blockquote()) {\n const Blockquote = (await import('@tiptap/extension-blockquote')).Blockquote;\n extensions.push(Blockquote);\n }\n\n if (this.extensions.code()) {\n const Code = (await import('@tiptap/extension-code')).Code;\n extensions.push(Code);\n }\n\n if (this.extensions.history()) {\n const History = (await import('@tiptap/extension-history')).History;\n extensions.push(History);\n }\n\n if (this.extensions.table()) {\n const TableHeader = (await import('@tiptap/extension-table-header')).TableHeader;\n extensions.push(TableHeader);\n\n const TableRow = (await import('@tiptap/extension-table-row')).TableRow;\n extensions.push(TableRow);\n\n const TableCell = (await import('@tiptap/extension-table-cell')).TableCell;\n extensions.push(TableCell);\n\n const Table = (await import('@tiptap/extension-table')).Table;\n\n extensions.push(\n Table.configure({\n resizable: true,\n }),\n );\n }\n\n this.editor = new Editor({\n element: this.editorDiv().nativeElement,\n extensions: extensions,\n content: this._value(),\n editable: this._isEditable(),\n editorProps: {\n attributes: {\n class: this.class(),\n },\n },\n });\n\n this.editor.on('update', ({ editor }) => {\n this.setHtmlContent(editor.getHTML());\n });\n\n this.editor.on('blur', () => {\n this._onTouched();\n });\n }\n\n writeValue(value: string): void {\n this._value.set(value);\n }\n\n registerOnChange(fn: (value: string) => 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._isEditable.set(!isDisabled);\n }\n\n setHtmlContent(htmlContent: string) {\n this._value.set(htmlContent);\n this._onChange(htmlContent);\n this._cdr.markForCheck();\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-page-item',\n imports: [NgClass],\n template: `\n <li class=\"h-full\">\n <a\n class=\"flex h-full items-center justify-center border px-3 py-2 text-sm leading-tight dark:border-gray-700\"\n [ngClass]=\"\n isActive()\n ? 'border-primary-300 bg-primary-50 text-primary-600 hover:bg-primary-100 hover:text-primary-700 dark:bg-gray-700 dark:text-white'\n : 'border-gray-300 bg-white text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white'\n \"\n (click)=\"selectPage()\"\n href=\"javascript:void(0)\"\n >\n {{ page() }}\n </a>\n </li>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPageItem {\n currentPage = input.required<number>();\n page = input.required<number | '...'>();\n\n pageChanged = output<number>();\n\n isActive = computed(() => {\n return this.page() === this.currentPage();\n });\n\n selectPage() {\n const page = this.page();\n if (page !== '...' && page !== this.currentPage()) {\n this.pageChanged.emit(page);\n }\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewEncapsulation,\n computed,\n effect,\n input,\n output,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { ScPageEvent } from './page-event';\nimport { ScPageItem } from './page-item';\n\n/** The default page size if there is no page size and there are no provided page size options. */\nconst DEFAULT_PAGE_SIZE = 10;\n\n@Component({\n selector: 'sc-paginator',\n imports: [ScPageItem, ReactiveFormsModule, NgClass],\n template: `\n <nav\n class=\"flex flex-col items-start justify-between space-y-3 p-4 md:flex-row md:items-center md:space-y-0\"\n aria-label=\"Table navigation\"\n >\n @if (!hidePageSize()) {\n <div>\n <label class=\"text-sm font-normal text-gray-500 dark:text-gray-400\" for=\"items-per-page\">\n Items per page:\n </label>\n <select\n class=\"w-14 rounded border border-gray-300 bg-gray-50 p-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder:text-gray-400 dark:focus:border-blue-500 dark:focus:ring-blue-500\"\n id=\"items-per-page\"\n [formControl]=\"pageSizeFormControl\"\n >\n @for (pageSizeOption of pageSizeOptions(); track $index) {\n <option [value]=\"pageSizeOption\">{{ pageSizeOption }}</option>\n }\n </select>\n </div>\n }\n\n <span class=\"text-sm font-normal text-gray-500 dark:text-gray-400\">\n Showing\n <span class=\"font-semibold text-gray-900 dark:text-white\">\n {{ firstItemPage() }}-{{ lastItemPage() }}\n </span>\n of\n <span class=\"font-semibold text-gray-900 dark:text-white\">{{ totalSize() }}</span>\n </span>\n <ul class=\"inline-flex items-stretch -space-x-px\">\n @if (showFirstLastButtons()) {\n <li>\n <a\n class=\"ml-0 flex h-full items-center justify-center rounded-l-lg border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\"\n [ngClass]=\"\n isPrevPageDisabled()\n ? ''\n : 'hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-gray-700 dark:hover:text-white'\n \"\n [attr.disabled]=\"isPrevPageDisabled()\"\n (click)=\"firstPage()\"\n href=\"javascript:void(0)\"\n >\n <span class=\"sr-only\">First page</span>\n <svg\n class=\"size-6 text-gray-800 dark:text-white\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m17 16-4-4 4-4m-6 8-4-4 4-4\"\n />\n </svg>\n </a>\n </li>\n }\n\n <li>\n <a\n class=\"ml-0 flex h-full items-center justify-center border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\"\n [ngClass]=\"{\n 'hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-gray-700 dark:hover:text-white':\n !isPrevPageDisabled(),\n 'rounded-l-lg': !showFirstLastButtons(),\n }\"\n [attr.disabled]=\"isPrevPageDisabled()\"\n (click)=\"prevPage()\"\n href=\"javascript:void(0)\"\n >\n <span class=\"sr-only\">Previous</span>\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewbox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </a>\n </li>\n\n @for (page of pageRanges(); track $index) {\n <sc-page-item\n [page]=\"page\"\n [currentPage]=\"currentPage()\"\n (pageChanged)=\"changePage($event)\"\n />\n }\n\n <li>\n <a\n class=\"flex h-full items-center justify-center border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\"\n [attr.disabled]=\"isNextPageDisabled()\"\n [ngClass]=\"{\n 'hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-gray-700 dark:hover:text-white':\n !isNextPageDisabled(),\n 'rounded-r-lg': !showFirstLastButtons(),\n }\"\n (click)=\"nextPage()\"\n href=\"javascript:void(0)\"\n >\n <span class=\"sr-only\">Next</span>\n <svg\n class=\"size-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewbox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </a>\n </li>\n\n @if (showFirstLastButtons()) {\n <li>\n <a\n class=\"flex h-full items-center justify-center rounded-r-lg border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\"\n [attr.disabled]=\"isNextPageDisabled()\"\n [ngClass]=\"\n isNextPageDisabled()\n ? ''\n : 'hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-gray-700 dark:hover:text-white'\n \"\n (click)=\"lastPage()\"\n href=\"javascript:void(0)\"\n >\n <span class=\"sr-only\">Last page</span>\n <svg\n class=\"size-6 text-gray-800 dark:text-white\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m7 16 4-4-4-4m6 8 4-4-4-4\"\n />\n </svg>\n </a>\n </li>\n }\n </ul>\n </nav>\n `,\n styles: ``,\n host: {\n role: 'group',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScPaginator implements OnInit {\n /** The one-based page index of the displayed list of items. Defaulted to 1. */\n currentPage = input<number>(1);\n\n /** The total number of items that are being paginated. */\n totalSize = input.required<number>();\n\n /** The set of provided page size options to display to the user. */\n pageSizeOptions = input<number[]>([5, DEFAULT_PAGE_SIZE, 25]);\n\n /** Number of items to display on a page. By default set to 10. */\n pageSize = input<number>(DEFAULT_PAGE_SIZE);\n\n /** Whether to hide the page size selection UI from the user. */\n hidePageSize = input<boolean>(false);\n\n /** Whether to show the first/last buttons UI to the user. */\n showFirstLastButtons = input<boolean>(false);\n\n /** Event emitted when the paginator changes the page index. */\n pageChanged = output<ScPageEvent>();\n\n constructor() {\n //TODO find a better way\n effect(() => {\n this.pageSizeFormControl.setValue(this.pageSize());\n });\n }\n\n ngOnInit() {\n this.pageSizeFormControl.valueChanges.subscribe((value) => {\n if (value) {\n this.pageChanged.emit({ page: 1, pageSize: value });\n }\n });\n }\n\n pageSizeFormControl = new FormControl(this.pageSize());\n\n numberOfPages = computed(() => Math.ceil(this.totalSize() / this.pageSize()));\n\n 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 pageRanges = computed<(number | '...')[]>(() => {\n const totalPages = this.numberOfPages();\n\n if (totalPages < 7) {\n return this.range(1, totalPages);\n }\n\n const currentPage = this.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 firstItemPage = computed(() => {\n if (this.totalSize() === 0) {\n return 0;\n }\n return this.pageSize() * (this.currentPage() - 1) + 1;\n });\n\n 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 firstPage() {\n this.pageChanged.emit({ page: 1, pageSize: this.pageSize() });\n }\n\n nextPage() {\n if (!this.isNextPageDisabled()) {\n this.pageChanged.emit({ page: this.currentPage() + 1, pageSize: this.pageSize() });\n }\n }\n\n isNextPageDisabled = computed(() => {\n return this.currentPage() === this.numberOfPages();\n });\n\n lastPage() {\n this.pageChanged.emit({ page: this.numberOfPages(), pageSize: this.pageSize() });\n }\n\n prevPage() {\n if (!this.isPrevPageDisabled()) {\n this.pageChanged.emit({ page: this.currentPage() - 1, pageSize: this.pageSize() });\n }\n }\n\n isPrevPageDisabled = computed(() => {\n return this.currentPage() === 1;\n });\n\n changePage(page: number) {\n this.pageChanged.emit({ page: page, pageSize: this.pageSize() });\n }\n}\n","import { CdkMenu, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-dropdown',\n imports: [CdkMenuTrigger, CdkMenu],\n template: `\n <!--ng-content select=\"dropdown-toggle\" /-->\n\n <button\n class=\"inline-flex items-center rounded-lg bg-blue-700 px-5 py-2.5 text-center text-sm font-medium text-white hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800\"\n [cdkMenuTriggerFor]=\"menu\"\n type=\"button\"\n >\n Dropdown button\n <svg\n class=\"ms-3 size-2.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"m1 1 4 4 4-4\"\n />\n </svg>\n </button>\n\n <ng-template #menu>\n <div\n class=\"z-10 w-44 divide-y divide-gray-100 rounded-lg bg-white shadow dark:bg-gray-700\"\n cdkMenu\n >\n <ul class=\"py-2 text-sm text-gray-700 dark:text-gray-200\">\n <ng-content select=\"dropdown-items\" />\n </ul>\n </div>\n </ng-template>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-dropdown-divider',\n imports: [],\n template: `\n <li class=\"py-2\"><hr /></li>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownDividerComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\n//TODO try to add CdkMenuItem\n\n@Component({\n selector: 'sc-dropdown-item',\n imports: [],\n template: `\n <li>\n <a\n class=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white\"\n href=\"javascript:void(0)\"\n >\n {{ text() }}\n </a>\n </li>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownItemComponent {\n text = input.required<string>();\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-month-days',\n imports: [NgClass],\n template: `\n <div class=\"grid w-64 grid-cols-7\">\n @for (day of days(); track $index; let index = $index) {\n <button\n class=\"block flex-1 cursor-pointer rounded-lg border-0 text-center text-sm font-semibold leading-9 text-gray-900 hover:bg-gray-100 dark:text-white dark:hover:bg-gray-600\"\n [ngClass]=\"{\n 'col-start-1': index === 0 && firstDayMonth() === 0,\n 'col-start-2': index === 0 && firstDayMonth() === 1,\n 'col-start-3': index === 0 && firstDayMonth() === 2,\n 'col-start-4': index === 0 && firstDayMonth() === 3,\n 'col-start-5': index === 0 && firstDayMonth() === 4,\n 'col-start-6': index === 0 && firstDayMonth() === 5,\n 'col-start-7': index === 0 && firstDayMonth() === 6,\n '!bg-primary-700 dark:!bg-primary-600 !text-white': isSelected(day),\n }\"\n [attr.data-sc-day]=\"day\"\n (click)=\"setSelectedDay($event)\"\n >\n {{ day.slice(-2) }}\n </button>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MonthDaysComponent {\n days = input.required<string[]>();\n firstDayMonth = input.required<number>();\n selectedDay = input<string>('');\n\n selectedDayChange = output<string>();\n\n isSelected(day: string) {\n return day === this.selectedDay();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setSelectedDay(event: any) {\n const selectedDay = event.target.dataset.scDay;\n this.selectedDayChange.emit(selectedDay);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-month-year-header',\n imports: [],\n template: `\n <div class=\"mb-2 flex justify-between\">\n <button\n class=\"rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"monthYearChange.emit(-1)\"\n aria-label=\"Previous month\"\n type=\"button\"\n >\n <svg\n class=\"size-4 text-gray-800 rtl:rotate-180 dark:text-white\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 10\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M13 5H1m0 0 4 4M1 5l4-4\"\n ></path>\n </svg>\n </button>\n\n <button\n class=\"rounded-lg bg-white px-5 py-2.5 text-sm font-semibold text-gray-900 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600\"\n type=\"button\"\n >\n {{ monthYear() }}\n </button>\n\n <button\n class=\"rounded-lg bg-white p-2.5 text-lg text-gray-500 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 dark:hover:text-white\"\n (click)=\"monthYearChange.emit(1)\"\n type=\"button\"\n aria-label=\"Next month\"\n >\n <svg\n class=\"size-4 text-gray-800 rtl:rotate-180 dark:text-white\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 10\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M1 5h12m0 0L9 1m4 4L9 9\"\n ></path>\n </svg>\n </button>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MonthYearHeaderComponent {\n monthYear = input.required<string>();\n\n monthYearChange = output<number>();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nexport interface WeekDayName {\n narrow: string;\n short: string;\n long: string;\n}\n\n@Component({\n selector: 'sc-week-days-names',\n imports: [],\n template: `\n <div class=\"mb-1 grid grid-cols-7\">\n @for (weekDayName of weekDaysNames(); track weekDayName.long) {\n <abbr\n class=\"h-6 text-center text-sm font-medium leading-6 text-gray-500 dark:text-gray-400\"\n [title]=\"weekDayName.long\"\n [attr.aria-label]=\"weekDayName.long\"\n >\n {{ weekDayName.short }}\n </abbr>\n }\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WeekDaysNamesComponent {\n weekDaysNames = input.required<WeekDayName[]>();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n LOCALE_ID,\n OnInit,\n ViewEncapsulation,\n computed,\n signal,\n} from '@angular/core';\n\nimport { MonthDaysComponent } from './month-days.component';\nimport { MonthYearHeaderComponent } from './month-year-header.component';\nimport { WeekDayName, WeekDaysNamesComponent } from './week-days-names.component';\n\n@Component({\n selector: 'sc-inline-date-picker',\n imports: [WeekDaysNamesComponent, MonthYearHeaderComponent, MonthDaysComponent],\n template: `\n <div class=\"inline-block rounded-lg bg-white p-4 shadow-lg dark:bg-gray-700\">\n <div class=\"bg-white px-2 py-3 text-center font-semibold dark:bg-gray-700 dark:text-white\">\n <sc-month-year-header [monthYear]=\"monthYear()\" (monthYearChange)=\"setMonthYear($event)\" />\n </div>\n\n <sc-week-days-names [weekDaysNames]=\"weekDaysNames()\" />\n\n <sc-month-days\n [days]=\"monthDays()\"\n [firstDayMonth]=\"firstDayMonth()\"\n [selectedDay]=\"selectedDay()\"\n (selectedDayChange)=\"setSelectedDay($event)\"\n />\n\n <div class=\"mt-2 flex space-x-2 rtl:space-x-reverse\">\n <button\n class=\"bg-primary-700 hover:bg-primary-800 dark:hover:bg-primary-700 focus:ring-primary-300 dark:bg-primary-600 w-1/2 rounded-lg px-5 py-2 text-center text-sm font-medium text-white focus:ring-4\"\n type=\"button\"\n >\n Today\n </button>\n <button\n class=\"focus:ring-primary-300 w-1/2 rounded-lg border border-gray-300 bg-white px-5 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-100 focus:ring-4 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600\"\n type=\"button\"\n >\n Clear\n </button>\n </div>\n </div>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InlineDatePickerComponent implements OnInit {\n year = signal<number>(0);\n month = signal<number>(0);\n weekDaysNames = signal<WeekDayName[]>([]);\n\n monthYear = computed(() => {\n const options = {\n month: 'long',\n year: 'numeric',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any;\n\n const s = new Intl.DateTimeFormat(this.localeId, options).format(\n new Date(this.year(), this.month(), 1),\n );\n\n return s;\n });\n\n monthDays = computed(() => {\n // Month in JavaScript is 0-indexed (January is 0, February is 1, etc),\n // but by using 0 as the day it will give us the last day of the prior\n // month. So passing in 1 as the month number will return the last day\n // of January, not February\n const numOfDays = new Date(this.year(), this.month() + 1, 0).getDate();\n\n const days = [];\n\n for (let i = 1; i <= numOfDays; i++) {\n const date = new Date(this.year(), this.month(), i);\n\n days.push(\n `${date.getFullYear()}-${this.twoDigits(date.getMonth() + 1)}-${this.twoDigits(date.getDate())}`,\n );\n }\n\n return days;\n });\n\n firstDayMonth = computed(() => {\n const date = new Date(this.year(), this.month(), 1);\n const intlLongFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'long' });\n\n const dayName = intlLongFormatter.format(date);\n return this.weekDaysNames()\n .map((e) => e.long)\n .indexOf(dayName);\n });\n\n selectedDay = signal<string>('');\n\n constructor(@Inject(LOCALE_ID) private readonly localeId: string) {}\n\n ngOnInit() {\n this.init();\n this.setLocaleDayNames();\n }\n\n init() {\n const today = new Date();\n this.year.set(today.getFullYear());\n this.month.set(today.getMonth());\n }\n\n setSelectedDay(day: string) {\n this.selectedDay.set(day);\n }\n\n //https://github.com/angular/angular/issues/57193\n private setLocaleDayNames() {\n const weekDaysNames = [];\n const intlNarrowFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'narrow' });\n const intlShortFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'short' });\n const intlLongFormatter = new Intl.DateTimeFormat(this.localeId, { weekday: 'long' });\n\n let k = 0;\n const firstDayOfWeek = this.getFirstDayOfWeek();\n if (firstDayOfWeek === 7) {\n // First day of the week is Sunday\n k = 3; // 3th January 2021 is a Sunday\n }\n if (firstDayOfWeek === 1) {\n // First day of the week is Monday\n k = 4; // 4th January 2021 is a Monday\n }\n\n for (let i = 0; i < 7; i += 1) {\n const date = new Date(Date.UTC(2021, 0, i + k));\n weekDaysNames.push({\n narrow: intlNarrowFormatter.format(date),\n short: intlShortFormatter.format(date),\n long: intlLongFormatter.format(date),\n });\n }\n\n this.weekDaysNames.set(weekDaysNames);\n }\n\n private getFirstDayOfWeek(): number {\n const locale = new Intl.Locale(this.localeId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (locale as any).getWeekInfo().firstDay;\n }\n\n setMonthYear(n: number) {\n if (n === 1) {\n if (this.month() < 11) {\n this.month.update((value) => value + 1);\n } else {\n this.month.set(0);\n this.year.update((value) => value + 1);\n }\n }\n\n if (n === -1) {\n if (this.month() > 0) {\n this.month.update((value) => value - 1);\n } else {\n this.month.set(11);\n this.year.update((value) => value - 1);\n }\n }\n }\n\n twoDigits(n: number) {\n return n.toLocaleString(this.localeId, {\n minimumIntegerDigits: 2,\n useGrouping: false,\n });\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 Inject,\n Injector,\n LOCALE_ID,\n OnInit,\n OutputEmitterRef,\n ViewEncapsulation,\n inject,\n output,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { InlineDatePickerComponent } from './inline-date-picker.component';\n\n@Component({\n selector: 'sc-date-picker',\n imports: [],\n template: `\n <div class=\"relative max-w-sm\" #overlayOrigin>\n <button class=\"absolute inset-y-0 end-0 flex items-center pe-3.5\" (click)=\"open()\">\n <svg\n class=\"size-4 text-gray-500 dark:text-gray-400\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M20 4a2 2 0 0 0-2-2h-2V1a1 1 0 0 0-2 0v1h-3V1a1 1 0 0 0-2 0v1H6V1a1 1 0 0 0-2 0v1H2a2 2 0 0 0-2 2v2h20V4ZM0 18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8H0v10Zm5-8h10a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2Z\"\n />\n </svg>\n </button>\n <input\n class=\"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2.5 pe-10 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder:text-gray-400 dark:focus:border-blue-500 dark:focus:ring-blue-500\"\n #input\n type=\"text\"\n placeholder=\"Select date\"\n />\n </div>\n {{ dateFormatPattern() }}\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DatePickerComponent implements OnInit {\n dateFormatPattern = signal<string>('');\n\n constructor(@Inject(LOCALE_ID) private readonly localeId: string) {}\n\n ngOnInit() {\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 }\n\n private readonly _injector = inject(Injector);\n\n private readonly _dir = inject(Directionality, { optional: true });\n private readonly _overlay = inject(Overlay);\n\n private readonly _isOpen = signal(false);\n private readonly _input = viewChild<ElementRef<HTMLInputElement>>('input');\n private readonly _overlayOrigin = viewChild<ElementRef<HTMLDivElement>>('overlayOrigin');\n private _overlayRef: OverlayRef | null = null;\n private _portal: ComponentPortal<unknown> | null = null;\n\n /** Emits when the datepicker is opened. */\n readonly opened: OutputEmitterRef<void> = output();\n /** Emits when the datepicker is closed. */\n readonly closed: OutputEmitterRef<void> = output();\n\n /** Emits when the user selects a date. */\n readonly selected: OutputEmitterRef<string> = output();\n\n /** Opens the datepicker. */\n open(): void {\n if (!this._input) {\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._input()?.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 this._portal ??= new ComponentPortal(InlineDatePickerComponent);\n\n overlayRef.attach(this._portal);\n\n this.opened.emit();\n }\n\n /** Closes the datepicker. */\n close(): void {\n if (this._isOpen()) {\n this._isOpen.set(false);\n this._overlayRef?.detach();\n this.closed.emit();\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._overlayOrigin();\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 console.log(event);\n });\n\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n const target = _getEventTarget(event) as HTMLElement;\n const origin = this._overlayOrigin()?.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: string) {\n this.close();\n this.selected.emit(value);\n this._input()?.nativeElement.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'nav[sc-nav]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-nav]': 'true',\n },\n styles: `\n .sc-nav {\n @apply relative z-10 flex max-w-max flex-1 items-center justify-center;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNav {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ul[sc-nav-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n dir: 'ltr',\n '[class.sc-nav-list]': 'true',\n },\n styles: `\n .sc-nav-list {\n @apply flex flex-1 list-none items-center justify-center space-x-1;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavList {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-nav-button-base',\n imports: [],\n template: ``,\n host: {\n '[class.sc-nav-button-base]': 'true',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavButtonBase {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\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 },\n styleUrl: './nav-button-base.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavLink extends ScNavButtonBase {}\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 { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\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 styleUrl: './nav-button-base.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScNavButton extends ScNavButtonBase {}\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-[var(--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-[var(--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 { Injectable, afterNextRender, effect, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScTheme {\n value = signal<'light' | 'dark' | undefined>(undefined);\n\n constructor() {\n effect(() => {\n if (this.value() !== undefined) {\n localStorage['theme'] = this.value();\n }\n\n // On page load or when changing themes, best to add inline in `head` to avoid FOUC\n document.documentElement.classList.toggle('dark', this.value() === 'dark');\n });\n }\n\n init() {\n afterNextRender(() => {\n const localStorageTheme = localStorage['theme'];\n const isDarkMode =\n localStorageTheme === 'dark' ||\n (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches);\n\n if (isDarkMode) {\n this.value.set('dark');\n } else {\n this.value.set('light');\n }\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n} from '@angular/core';\n\nimport { SvgMoonIcon, SvgSunIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\nimport { ScTooltip } from '../tooltip';\nimport { ScTheme } from './theme';\n\n@Component({\n selector: 'sc-theme-toggler',\n imports: [SvgMoonIcon, SvgSunIcon, ScTooltip, ScButton],\n template: `\n <button\n [scTooltip]=\"message()\"\n (click)=\"toggleTheme()\"\n sc-button\n variant=\"outline\"\n size=\"icon\"\n type=\"button\"\n >\n @if (theme.value() === 'light') {\n <svg-moon-icon />\n }\n\n @if (theme.value() === 'dark') {\n <svg-sun-icon />\n }\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScThemeToggler {\n theme = inject(ScTheme);\n\n message = computed(() => {\n if (this.theme.value() === 'light') {\n return 'Toggle dark mode';\n }\n\n return 'Toggle light mode';\n });\n\n toggleTheme() {\n if (this.theme.value() === 'light') {\n this.theme.value.set('dark');\n } else {\n this.theme.value.set('light');\n }\n }\n}\n","import { inject } from '@angular/core';\n\nimport { ScTheme } from './theme';\n\nexport function scThemeProviderFactory() {\n return () => inject(ScTheme).init();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'input[sc-input]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-input]': 'true',\n },\n styles: `\n .sc-input {\n @apply 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 encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScInput {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'label[sc-label]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-label]': 'true',\n },\n styles: `\n .sc-label {\n @apply text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScLabel {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'textarea[sc-textarea]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-textarea]': 'true',\n },\n styles: `\n .sc-textarea {\n @apply 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 }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScTextarea {}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class ScSelectState {\n selectedValue = signal<string>('');\n selectedLabel = signal<string>('');\n isOpen = signal<boolean>(false);\n closeOverlay = signal<boolean>(false);\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { ESCAPE, TAB, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayModule, 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 TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SvgChevronDownIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScSelectState } from './select-state';\n\n@Component({\n selector: 'sc-select',\n imports: [SvgChevronDownIcon, OverlayModule],\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]=\"isDisabled()\"\n [attr.aria-expanded]=\"_isExpanded()\"\n [attr.aria-controls]=\"_getPanelId()\"\n (click)=\"open()\"\n type=\"button\"\n role=\"combobox\"\n >\n {{ label() }}\n <svg-chevron-down-icon class=\"size-4 opacity-50\" />\n </button>\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 [id]=\"_getPanelId()\"\n >\n <ng-content />\n </div>\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 ScSelectState,\n ],\n})\nexport class ScSelect implements ControlValueAccessor {\n static nextId = 0;\n\n id = 0;\n\n _getPanelId() {\n return `panel-${this.id}`;\n }\n private readonly _cdr = inject(ChangeDetectorRef);\n\n state = inject(ScSelectState);\n\n _overlay = inject(Overlay);\n _dir = inject(Directionality, { optional: true });\n _viewContainerRef = inject(ViewContainerRef);\n\n private _portal: TemplatePortal<unknown> | null = null;\n\n scSelectTrigger = viewChild.required<ElementRef<HTMLButtonElement>>('scSelectTrigger');\n\n _panelTemplate = viewChild.required<TemplateRef<unknown>>('panelTemplate');\n\n placeholder = input<string>('');\n\n constructor() {\n this.id = ++ScSelect.nextId;\n\n effect(() => {\n const selectedValue = this.state.selectedValue();\n this.setValue(selectedValue);\n\n const closeOverlay = this.state.closeOverlay();\n\n if (closeOverlay) {\n this.close();\n\n this.state.closeOverlay.set(false);\n }\n });\n }\n\n _value = signal('');\n\n isDisabled = signal(false);\n\n writeValue(value: string): void {\n this._value.set(value);\n }\n\n setValue(value: string) {\n this._value.set(value);\n this._onChange(value);\n this._cdr.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onChange: (value: string) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched: () => void = () => {};\n\n registerOnChange(fn: (value: string) => 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.isDisabled.set(isDisabled);\n }\n\n label = computed(() => {\n if (this.state.selectedLabel()) {\n return this.state.selectedLabel();\n }\n\n return this.placeholder();\n });\n\n _isExpanded = computed(() => {\n return this.state.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._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.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.state.isOpen()) {\n return;\n }\n\n this.state.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.state.isOpen()) {\n this.state.isOpen.set(false);\n this._overlayRef?.detach();\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 }\n\n //TODO handle keyCode === ENTER and other cases\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n inject,\n input,\n viewChild,\n} from '@angular/core';\n\nimport { SvgCheckIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScSelectState } from './select-state';\n\n@Component({\n selector: 'sc-option',\n imports: [SvgCheckIcon],\n template: `\n <button\n class=\"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n (click)=\"select()\"\n type=\"button\"\n >\n @if (state.selectedValue() === value()) {\n <span class=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <svg-check-icon class=\"size-4\" />\n </span>\n }\n\n <span #label>\n <ng-content />\n </span>\n </button>\n `,\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScOption {\n state = inject(ScSelectState);\n\n value = input.required<string>();\n\n label = viewChild.required<ElementRef<HTMLSpanElement>>('label');\n\n select() {\n this.state.selectedValue.set(this.value());\n this.state.selectedLabel.set(this.label().nativeElement.textContent ?? '');\n this.state.closeOverlay.set(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'sc-progress',\n imports: [],\n template: `\n <div class=\"size-full flex-1 bg-primary transition-all\" [style.transform]=\"transform()\"></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 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n // Binding that updates the current value of the progressbar.\n '[attr.aria-valuenow]': 'value()',\n '[class.sc-progress]': 'true',\n },\n styles: `\n .sc-progress {\n @apply block relative h-4 w-full overflow-hidden rounded-full bg-secondary;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScProgress {\n /** Current value of the progressbar. */\n value = input<number>(0);\n\n transform = computed(() => {\n return `translateX(-${100 - this.value()}%)`;\n });\n}\n","export const SIDEBAR_WIDTH = 16; //\"16rem\"\nexport const SIDEBAR_WIDTH_MOBILE = 18; //\"18rem\"\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'sc-sidebar-content',\n imports: [RouterModule],\n template: `\n <div class=\"w-full pl-5\">\n <div class=\"pb-4\">\n <h4 class=\"mb-1 rounded-md px-2 py-1 text-sm font-semibold\">Getting Started</h4>\n <div class=\"grid grid-flow-row auto-rows-max gap-0.5 text-sm\">\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs\"\n >\n Introduction\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation\"\n >\n Installation\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components-json\"\n >\n components.json\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/theming\"\n >\n Theming\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/dark-mode\"\n >\n Dark mode\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/cli\"\n >\n CLI\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/react-19\"\n >\n Next.js 15 + React 19\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/typography\"\n >\n Typography\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/v0\"\n >\n Open in v0\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/figma\"\n >\n Figma\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/changelog\"\n >\n Changelog\n </a>\n </div>\n </div>\n <div class=\"pb-4\">\n <h4 class=\"mb-1 rounded-md px-2 py-1 text-sm font-semibold\">Installation</h4>\n <div class=\"grid grid-flow-row auto-rows-max gap-0.5 text-sm\">\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation/next\"\n >\n Next.js\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation/vite\"\n >\n Vite\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation/remix\"\n >\n Remix\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation/astro\"\n >\n Astro\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation/laravel\"\n >\n Laravel\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation/gatsby\"\n >\n Gatsby\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/installation/manual\"\n >\n Manual\n </a>\n </div>\n </div>\n <div class=\"pb-4\">\n <h4 class=\"mb-1 rounded-md px-2 py-1 text-sm font-semibold\">Components</h4>\n <div class=\"grid grid-flow-row auto-rows-max gap-0.5 text-sm\">\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline underline-offset-2 hover:underline\"\n routerLink=\"/editor\"\n >\n Editor\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline underline-offset-2 hover:underline\"\n routerLink=\"/theme-toggler\"\n >\n Theme toggler\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline underline-offset-2 hover:underline\"\n routerLink=\"/dropdown\"\n >\n Dropdown\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/sidebar\"\n >\n Sidebar\n <span\n class=\"ml-2 rounded-md bg-[#adfa1d] px-1.5 py-0.5 text-xs leading-none text-[#000000] no-underline group-hover:no-underline\"\n >\n New\n </span>\n </a>\n\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/accordion\"\n >\n Accordion\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/alert\"\n >\n Alert\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/alert-dialog\"\n >\n Alert Dialog\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/aspect-ratio\"\n >\n Aspect Ratio\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/avatar\"\n >\n Avatar\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/badge\"\n >\n Badge\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/breadcrumb\"\n >\n Breadcrumb\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/button\"\n >\n Button\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/date-picker\"\n >\n Calendar\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/card\"\n >\n Card\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/carousel\"\n >\n Carousel\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/chart\"\n >\n Chart\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/checkbox\"\n >\n Checkbox\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/collapsible\"\n >\n Collapsible\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/combobox\"\n >\n Combobox\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/command\"\n >\n Command\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/context-menu\"\n >\n Context Menu\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/data-table\"\n >\n Data Table\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/date-picker\"\n >\n Date Picker\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/dialog\"\n >\n Dialog\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/drawer\"\n >\n Drawer\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/dropdown-menu\"\n >\n Dropdown Menu\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/form\"\n >\n Form\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/hover-card\"\n >\n Hover Card\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/input\"\n >\n Input\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/input-otp\"\n >\n Input OTP\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/label\"\n >\n Label\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/menubar\"\n >\n Menubar\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/nav\"\n >\n Navigation Menu\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/paginator\"\n >\n Pagination\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/popover\"\n >\n Popover\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/progress\"\n >\n Progress\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/radio-group\"\n >\n Radio Group\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/resizable\"\n >\n Resizable\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/scroll-area\"\n >\n Scroll Area\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/select\"\n >\n Select\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/separator\"\n >\n Separator\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/sheet\"\n >\n Sheet\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/skeleton\"\n >\n Skeleton\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/slider\"\n >\n Slider\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/sonner\"\n >\n Sonner\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/switch\"\n >\n Switch\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/table\"\n >\n Table\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/tabs\"\n >\n Tabs\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/textarea\"\n >\n Textarea\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/toast\"\n >\n Toast\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/toggle\"\n >\n Toggle\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n target=\"\"\n rel=\"\"\n href=\"/docs/components/toggle-group\"\n >\n Toggle Group\n </a>\n <a\n class=\"group flex w-full items-center px-2 py-1 font-normal text-foreground underline-offset-2 hover:underline\"\n routerLink=\"/tooltip\"\n >\n Tooltip\n </a>\n </div>\n </div>\n </div>\n `,\n styles: `\n sc-sidebar-content {\n @apply flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarContent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-sidebar-footer',\n imports: [],\n template: `\n <p>sidebar-footer works!</p>\n `,\n styles: `\n sc-sidebar-footer {\n @apply flex flex-col gap-2 p-2;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarFooter {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sc-sidebar-header',\n imports: [],\n template: `\n <p>sidebar-header works!</p>\n `,\n host: {\n '[attr.data-sidebar]': 'header',\n },\n styles: `\n sc-sidebar-header {\n @apply flex flex-col gap-2 p-2;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarHeader {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nimport { ScSidebarContent } from './sidebar-content';\nimport { ScSidebarFooter } from './sidebar-footer';\nimport { ScSidebarHeader } from './sidebar-header';\n\n@Component({\n selector: 'sc-sidebar',\n imports: [ScSidebarHeader, ScSidebarFooter, ScSidebarContent],\n template: `\n <sc-sidebar-header />\n <sc-sidebar-content />\n <sc-sidebar-footer />\n `,\n host: {\n '[style.width.rem]': 'sidebarWidth()',\n '[class.sc-sidebar-collapsible-none]': 'collapsible() === \"none\"',\n '[class.sc-sidebar-mobile]': 'isMobile()',\n },\n styles: `\n sc-sidebar {\n @apply flex h-full w-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 }\n .sc-sidebar-collapsible-none {\n @apply flex h-full flex-col bg-sidebar text-sidebar-foreground;\n }\n .sc-sidebar-mobile {\n @apply bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebar {\n side = input.required<'left' | 'right'>();\n variant = input.required<'sidebar' | 'floating' | 'inset'>();\n collapsible = input.required<'offcanvas' | 'icon' | 'none'>();\n sidebarWidth = input.required<number>();\n isMobile = input.required<boolean>();\n}\n","import { BreakpointObserver, LayoutModule } from '@angular/cdk/layout';\nimport { DOCUMENT, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Inject,\n OnInit,\n ViewEncapsulation,\n computed,\n inject,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RouterModule } from '@angular/router';\n\nimport { SvgPanelLeftIcon } from '@semantic-icons/lucide-icons';\n\nimport { ScButton } from '../button';\nimport { SIDEBAR_WIDTH, SIDEBAR_WIDTH_MOBILE } from './constants';\nimport { ScSidebar } from './sidebar';\n\n@Component({\n selector: 'sc-sidebar-layout',\n imports: [ScSidebar, SvgPanelLeftIcon, RouterModule, ScButton, NgClass, LayoutModule],\n template: `\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\n class=\"relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180\"\n [style.width.rem]=\"sidebarWidth()\"\n [ngClass]=\"\n variant() === 'floating' || variant() === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]'\n \"\n ></div>\n\n <div\n class=\"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\"\n [style.width.rem]=\"sidebarWidth()\"\n [ngClass]=\"{\n 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]':\n side() === 'left',\n 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]':\n side() !== 'left',\n 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]':\n variant() === 'floating' || variant() === 'inset',\n 'group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l':\n variant() !== 'floating' && variant() !== 'inset',\n }\"\n >\n <sc-sidebar\n [side]=\"side()\"\n [variant]=\"variant()\"\n [collapsible]=\"collapsible()\"\n [sidebarWidth]=\"sidebarWidth()\"\n [isMobile]=\"isMobile()\"\n />\n </div>\n </div>\n\n <main class=\"z-50\">\n <button\n (click)=\"toggleSidebar()\"\n sc-button\n type=\"button\"\n size=\"icon\"\n variant=\"ghost\"\n data-sidebar=\"trigger\"\n >\n <svg-panel-left-icon />\n <span class=\"sr-only\">Toggle Sidebar</span>\n </button>\n\n <main class=\"mx-10 my-10\">\n <router-outlet></router-outlet>\n </main>\n </main>\n `,\n styles: `\n sc-sidebar-layout {\n @apply flex min-h-svh w-full;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScSidebarLayout implements OnInit {\n breakpointObserver = inject(BreakpointObserver);\n destroyRef = inject(DestroyRef);\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {}\n\n open = linkedSignal<boolean>(() => {\n if (this.isMobile()) {\n return false;\n }\n\n return true;\n });\n\n state = computed<'expanded' | 'collapsed'>(() => {\n return this.open() ? 'expanded' : 'collapsed';\n });\n\n isMobile = signal<boolean>(false);\n\n side = signal<'left' | 'right'>('left');\n variant = signal<'sidebar' | 'floating' | 'inset'>('sidebar');\n collapsible = signal<'offcanvas' | 'icon' | 'none'>('offcanvas');\n\n sidebarWidth = computed<number>(() => {\n if (this.open() && !this.isMobile()) {\n return SIDEBAR_WIDTH;\n }\n\n if (this.open() && this.isMobile()) {\n return SIDEBAR_WIDTH_MOBILE;\n }\n\n return 0;\n });\n\n ngOnInit() {\n document.documentElement.classList.add('h-full');\n this.document.body.classList.add('h-full');\n\n this.breakpointObserver\n .observe(`(min-width: 1024px)`)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((state) => {\n console.log(state);\n });\n }\n\n toggleSidebar() {\n this.open.update((value) => !value);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, signal } from '@angular/core';\n\n@Component({\n selector: 'nav[sc-breadcrumb]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[attr.aria-label]': 'ariaLabel',\n '[class.sc-breadcrumb]': 'true',\n },\n styles: `\n .sc-breadcrumb {\n @apply flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumb {\n ariaLabel = 'breadcrumb';\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ol[sc-breadcrumb-list]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-breadcrumb-list]': 'true',\n },\n styles: `\n .sc-breadcrumb-list {\n @apply flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbList {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'li[sc-breadcrumb-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-breadcrumb-item]': 'true',\n },\n styles: `\n .sc-breadcrumb-item {\n @apply inline-flex items-center gap-1.5;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbItem {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'a[sc-breadcrumb-link]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class.sc-breadcrumb-link]': 'true',\n },\n styles: `\n .sc-breadcrumb-link {\n @apply transition-colors hover:text-foreground;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbLink {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\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.sc-breadcrumb-page]': 'true',\n },\n styles: `\n .sc-breadcrumb-page {\n @apply font-normal text-foreground;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbPage {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\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.sc-breadcrumb-separator]': 'true',\n },\n styles: `\n .sc-breadcrumb-separator {\n @apply [&>svg]:w-3.5 [&>svg]:h-3.5;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbSeparator {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { SvgEllipsisIcon } from '@semantic-icons/lucide-icons';\n\n@Component({\n selector: 'span[sc-breadcrumb-elipssis]',\n imports: [SvgEllipsisIcon],\n template: `\n <svg-ellipsis-icon class=\"size-4\" />\n <span class=\"sr-only\">More</span>\n `,\n host: {\n role: 'presentation',\n '[attr.aria-hidden]': 'true',\n '[class.sc-breadcrumb-elipssis]': 'true',\n },\n styles: `\n .sc-breadcrumb-elipssis {\n @apply flex h-9 w-9 items-center justify-center;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScBreadcrumbElipssis {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Document","i1"],"mappings":"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"}
|