{"version":3,"file":"sixbell-telco-sdk-components-table.mjs","sources":["../../../projects/sdk/components/table/table-header-checkbox/table-header-checkbox.component.ts","../../../projects/sdk/components/table/table-header-checkbox/table-header-checkbox.component.html","../../../projects/sdk/components/table/table-row-checkbox/table-row-checkbox.component.ts","../../../projects/sdk/components/table/table-row-checkbox/table-row-checkbox.component.html","../../../projects/sdk/components/table/src/table.component.ts","../../../projects/sdk/components/table/src/table.component.html","../../../projects/sdk/components/table/table-action/table-action.component.ts","../../../projects/sdk/components/table/table-action/table-action.component.html","../../../projects/sdk/components/table/table-actions/table-actions.component.ts","../../../projects/sdk/components/table/table-actions/table-actions.component.html","../../../projects/sdk/components/table/table-empty-actions/table-empty-actions.component.ts","../../../projects/sdk/components/table/table-empty-actions/table-empty-actions.component.html","../../../projects/sdk/components/table/sixbell-telco-sdk-components-table.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';\nimport { CheckboxComponent, CheckboxVariantProps } from '@sixbell-telco/sdk/components/forms/checkbox';\nimport { TableComponent } from '../src/table.component';\n\n/**\n * Header checkbox component for the table.\n *\n * This component renders a checkbox within a table header row,\n * allowing users to select or deselect all rows in the table.\n *\n * @remarks\n * Utilizes Angular's dependency injection to access the parent {@link TableComponent}\n * and propagate the checkbox state changes.\n *\n * @example\n * ```html\n * <tr header-checkbox></tr>\n * ```\n */\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'tr[header-checkbox]',\n\timports: [CheckboxComponent],\n\ttemplateUrl: './table-header-checkbox.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableHeaderCheckboxComponent {\n\t/**\n\t * Defines the variant styling of the checkbox.\n\t *\n\t * @defaultValue 'primary'\n\t */\n\tcheckboxVariant = input<CheckboxVariantProps>('primary');\n\n\t/**\n\t * Signal that tracks the checked state of the header checkbox.\n\t *\n\t * @defaultValue false\n\t */\n\tchecked = signal<boolean>(false);\n\n\t/**\n\t * Creates an instance of TableHeaderCheckboxComponent.\n\t *\n\t * @param table - Reference to the parent {@link TableComponent} to access table-level operations.\n\t */\n\treadonly table = inject(TableComponent, { host: true });\n\n\treadonly checkboxSize = computed(() => {\n\t\tswitch (this.table.size()) {\n\t\t\tcase 'xs':\n\t\t\t\treturn 'xs';\n\t\t\tcase 'sm':\n\t\t\t\treturn 'sm';\n\t\t\tcase 'md':\n\t\t\t\treturn 'md';\n\t\t\tcase 'lg':\n\t\t\t\treturn 'lg';\n\t\t\tcase 'xl':\n\t\t\t\treturn 'lg';\n\t\t\tdefault:\n\t\t\t\treturn 'sm';\n\t\t}\n\t});\n\n\t/**\n\t * Handles the event when the header checkbox is toggled.\n\t *\n\t * This method notifies the parent table component to either select or deselect all rows.\n\t *\n\t * @param value - The new checked state (true to select all rows, false to deselect all).\n\t */\n\thandleSelectAll(value: boolean) {\n\t\tthis.table.handleToggleAll(value);\n\t}\n}\n","<th class=\"w-6\">\n\t<st-checkbox [(value)]=\"checked\" (valueUpdated)=\"handleSelectAll($event)\" [variant]=\"checkboxVariant()\" [size]=\"checkboxSize()\" />\n</th>\n<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';\nimport { CheckboxComponent, CheckboxVariantProps } from '@sixbell-telco/sdk/components/forms/checkbox';\nimport { TableComponent } from '../src/table.component';\n\n/**\n * Row checkbox component for table row selection.\n *\n * This component renders a checkbox within a table row,\n * enabling individual row selection. It interacts with the parent\n * {@link TableComponent} to update the selection state.\n *\n * @example\n * ```html\n * <tr row-checkbox [identifier]=\"rowId\"></tr>\n * ```\n */\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'tr[row-checkbox]',\n\timports: [CheckboxComponent],\n\ttemplateUrl: './table-row-checkbox.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableRowCheckboxComponent {\n\t/**\n\t * Defines the variant styling of the checkbox.\n\t *\n\t * @defaultValue 'primary'\n\t */\n\tcheckboxVariant = input<CheckboxVariantProps>('primary');\n\n\t/**\n\t * Unique identifier for the table row.\n\t *\n\t * This input is required to track the specific row in the table.\n\t */\n\tidentifier = input.required();\n\n\t/**\n\t * Signal that tracks the checked state of the row checkbox.\n\t *\n\t * @defaultValue false\n\t */\n\tchecked = signal<boolean>(false);\n\n\t/**\n\t * Creates an instance of TableRowCheckboxComponent.\n\t *\n\t * @param table - Reference to the parent {@link TableComponent} to access\n\t * table-level operations for row selection.\n\t */\n\treadonly table = inject(TableComponent, { host: true });\n\n\treadonly checkboxSize = computed(() => {\n\t\tswitch (this.table.size()) {\n\t\t\tcase 'xs':\n\t\t\t\treturn 'xs';\n\t\t\tcase 'sm':\n\t\t\t\treturn 'sm';\n\t\t\tcase 'md':\n\t\t\t\treturn 'md';\n\t\t\tcase 'lg':\n\t\t\t\treturn 'lg';\n\t\t\tcase 'xl':\n\t\t\t\treturn 'lg';\n\t\t\tdefault:\n\t\t\t\treturn 'sm';\n\t\t}\n\t});\n\n\t/**\n\t * Handles the selection event of the row checkbox.\n\t *\n\t * This method notifies the parent table component to update the selection state\n\t * for the corresponding row, based on the checkbox's new value.\n\t *\n\t * @param value - The new checked state (true for selected, false for deselected).\n\t */\n\thandleSelect(value: boolean) {\n\t\tthis.table.handleToggleCheckbox(value, this.identifier());\n\t}\n}\n","<td>\n\t<st-checkbox [(value)]=\"checked\" (valueUpdated)=\"handleSelect($event)\" [variant]=\"checkboxVariant()\" [size]=\"checkboxSize()\"></st-checkbox>\n</td>\n<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, contentChildren, effect, inject, input, output, signal } from '@angular/core';\nimport { heroDocumentText, heroMagnifyingGlass } from '@ng-icons/heroicons/outline';\nimport { ButtonSizeProps } from '@sixbell-telco/sdk/components/button';\nimport { CheckboxSizeProps } from '@sixbell-telco/sdk/components/forms/checkbox';\nimport { SelectComponent, SelectSizeProps } from '@sixbell-telco/sdk/components/forms/select';\nimport { IconComponent, IconSizeProps } from '@sixbell-telco/sdk/components/icon';\nimport { Pagination, PaginationType, PaginatorComponent, PaginatorSizeProps } from '@sixbell-telco/sdk/components/paginator';\nimport { TextDirective, TextPreset } from '@sixbell-telco/sdk/directives/text';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { TranslatePipe, TranslateService } from '@sixbell-telco/sdk/utils/translation';\nimport { cva } from 'class-variance-authority';\nimport { TableActionsSizeProps } from '../table-actions/table-actions.types';\nimport { TableHeaderCheckboxComponent } from '../table-header-checkbox/table-header-checkbox.component';\nimport { TableRowCheckboxComponent } from '../table-row-checkbox/table-row-checkbox.component';\n\nexport type TableResolvedSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ntype TableTablePreset = Extract<TextPreset, '6' | '7' | '8' | '9' | '10'>;\n\nexport interface TableSizeTokens {\n\theaderPreset: TextPreset;\n\tbodyPreset: TextPreset;\n\tfooterPreset: TextPreset;\n\tselectSize: SelectSizeProps;\n\tpaginatorSize: PaginatorSizeProps;\n\tcheckboxSize: CheckboxSizeProps;\n\tactionSize: TableActionsSizeProps;\n\tsortableButtonSize: ButtonSizeProps;\n\tsortableIconSize: IconSizeProps;\n}\n\nexport interface TableFooterLayoutTokens {\n\twrapper: string[];\n\tdivider: string[];\n\tcontent: string[];\n}\n\nconst TABLE_HEADER_TYPOGRAPHY_CLASS_BY_PRESET: Record<TableTablePreset, string[]> = {\n\t'6': [\n\t\t'[&_thead_th]:text-[15.75px]',\n\t\t'[&_thead_th]:leading-normal',\n\t\t'[&_thead_th]:tracking-normal',\n\t\t'[&_thead_th]:font-heading',\n\t\t'[&_thead_th]:font-semibold',\n\t\t'[&_thead_th]:align-middle',\n\t\t'[&_thead_td]:text-[15.75px]',\n\t\t'[&_thead_td]:leading-normal',\n\t\t'[&_thead_td]:tracking-normal',\n\t\t'[&_thead_td]:font-heading',\n\t\t'[&_thead_td]:font-semibold',\n\t\t'[&_thead_td]:align-middle',\n\t],\n\t'7': [\n\t\t'[&_thead_th]:text-[14px]',\n\t\t'[&_thead_th]:leading-normal',\n\t\t'[&_thead_th]:tracking-tight',\n\t\t'[&_thead_th]:font-heading',\n\t\t'[&_thead_th]:font-semibold',\n\t\t'[&_thead_th]:align-middle',\n\t\t'[&_thead_td]:text-[14px]',\n\t\t'[&_thead_td]:leading-normal',\n\t\t'[&_thead_td]:tracking-tight',\n\t\t'[&_thead_td]:font-heading',\n\t\t'[&_thead_td]:font-semibold',\n\t\t'[&_thead_td]:align-middle',\n\t],\n\t'8': [\n\t\t'[&_thead_th]:text-[12.44px]',\n\t\t'[&_thead_th]:leading-normal',\n\t\t'[&_thead_th]:tracking-tight',\n\t\t'[&_thead_th]:font-heading',\n\t\t'[&_thead_th]:font-semibold',\n\t\t'[&_thead_th]:align-middle',\n\t\t'[&_thead_td]:text-[12.44px]',\n\t\t'[&_thead_td]:leading-normal',\n\t\t'[&_thead_td]:tracking-tight',\n\t\t'[&_thead_td]:font-heading',\n\t\t'[&_thead_td]:font-semibold',\n\t\t'[&_thead_td]:align-middle',\n\t],\n\t'9': [\n\t\t'[&_thead_th]:text-[11.06px]',\n\t\t'[&_thead_th]:leading-normal',\n\t\t'[&_thead_th]:tracking-tight',\n\t\t'[&_thead_th]:font-heading',\n\t\t'[&_thead_th]:font-semibold',\n\t\t'[&_thead_th]:align-middle',\n\t\t'[&_thead_td]:text-[11.06px]',\n\t\t'[&_thead_td]:leading-normal',\n\t\t'[&_thead_td]:tracking-tight',\n\t\t'[&_thead_td]:font-heading',\n\t\t'[&_thead_td]:font-semibold',\n\t\t'[&_thead_td]:align-middle',\n\t],\n\t'10': [\n\t\t'[&_thead_th]:text-[9.83px]',\n\t\t'[&_thead_th]:leading-normal',\n\t\t'[&_thead_th]:tracking-normal',\n\t\t'[&_thead_th]:font-heading',\n\t\t'[&_thead_th]:font-semibold',\n\t\t'[&_thead_th]:align-middle',\n\t\t'[&_thead_td]:text-[9.83px]',\n\t\t'[&_thead_td]:leading-normal',\n\t\t'[&_thead_td]:tracking-normal',\n\t\t'[&_thead_td]:font-heading',\n\t\t'[&_thead_td]:font-semibold',\n\t\t'[&_thead_td]:align-middle',\n\t],\n};\n\nconst TABLE_BODY_TYPOGRAPHY_CLASS_BY_PRESET: Record<TableTablePreset, string[]> = {\n\t'6': [\n\t\t'[&_tbody_td]:text-[15.75px]',\n\t\t'[&_tbody_td]:leading-normal',\n\t\t'[&_tbody_td]:tracking-normal',\n\t\t'[&_tbody_td]:font-body',\n\t\t'[&_tbody_td]:font-normal',\n\t\t'[&_tbody_td]:align-middle',\n\t\t'[&_tbody_th]:text-[15.75px]',\n\t\t'[&_tbody_th]:leading-normal',\n\t\t'[&_tbody_th]:tracking-normal',\n\t\t'[&_tbody_th]:font-body',\n\t\t'[&_tbody_th]:font-normal',\n\t\t'[&_tbody_th]:align-middle',\n\t],\n\t'7': [\n\t\t'[&_tbody_td]:text-[14px]',\n\t\t'[&_tbody_td]:leading-normal',\n\t\t'[&_tbody_td]:tracking-tight',\n\t\t'[&_tbody_td]:font-body',\n\t\t'[&_tbody_td]:font-normal',\n\t\t'[&_tbody_td]:align-middle',\n\t\t'[&_tbody_th]:text-[14px]',\n\t\t'[&_tbody_th]:leading-normal',\n\t\t'[&_tbody_th]:tracking-tight',\n\t\t'[&_tbody_th]:font-body',\n\t\t'[&_tbody_th]:font-normal',\n\t\t'[&_tbody_th]:align-middle',\n\t],\n\t'8': [\n\t\t'[&_tbody_td]:text-[12.44px]',\n\t\t'[&_tbody_td]:leading-normal',\n\t\t'[&_tbody_td]:tracking-tight',\n\t\t'[&_tbody_td]:font-body',\n\t\t'[&_tbody_td]:font-normal',\n\t\t'[&_tbody_td]:align-middle',\n\t\t'[&_tbody_th]:text-[12.44px]',\n\t\t'[&_tbody_th]:leading-normal',\n\t\t'[&_tbody_th]:tracking-tight',\n\t\t'[&_tbody_th]:font-body',\n\t\t'[&_tbody_th]:font-normal',\n\t\t'[&_tbody_th]:align-middle',\n\t],\n\t'9': [\n\t\t'[&_tbody_td]:text-[11.06px]',\n\t\t'[&_tbody_td]:leading-normal',\n\t\t'[&_tbody_td]:tracking-tight',\n\t\t'[&_tbody_td]:font-body',\n\t\t'[&_tbody_td]:font-normal',\n\t\t'[&_tbody_td]:align-middle',\n\t\t'[&_tbody_th]:text-[11.06px]',\n\t\t'[&_tbody_th]:leading-normal',\n\t\t'[&_tbody_th]:tracking-tight',\n\t\t'[&_tbody_th]:font-body',\n\t\t'[&_tbody_th]:font-normal',\n\t\t'[&_tbody_th]:align-middle',\n\t],\n\t'10': [\n\t\t'[&_tbody_td]:text-[9.83px]',\n\t\t'[&_tbody_td]:leading-normal',\n\t\t'[&_tbody_td]:tracking-normal',\n\t\t'[&_tbody_td]:font-body',\n\t\t'[&_tbody_td]:font-normal',\n\t\t'[&_tbody_td]:align-middle',\n\t\t'[&_tbody_th]:text-[9.83px]',\n\t\t'[&_tbody_th]:leading-normal',\n\t\t'[&_tbody_th]:tracking-normal',\n\t\t'[&_tbody_th]:font-body',\n\t\t'[&_tbody_th]:font-normal',\n\t\t'[&_tbody_th]:align-middle',\n\t],\n};\n\nconst TABLE_FOOTER_TYPOGRAPHY_CLASS_BY_PRESET: Record<TableTablePreset, string[]> = {\n\t'6': [\n\t\t'[&_tfoot_td]:text-[15.75px]',\n\t\t'[&_tfoot_td]:leading-normal',\n\t\t'[&_tfoot_td]:tracking-normal',\n\t\t'[&_tfoot_td]:font-body',\n\t\t'[&_tfoot_td]:font-normal',\n\t\t'[&_tfoot_td]:align-middle',\n\t\t'[&_tfoot_th]:text-[15.75px]',\n\t\t'[&_tfoot_th]:leading-normal',\n\t\t'[&_tfoot_th]:tracking-normal',\n\t\t'[&_tfoot_th]:font-body',\n\t\t'[&_tfoot_th]:font-normal',\n\t\t'[&_tfoot_th]:align-middle',\n\t],\n\t'7': [\n\t\t'[&_tfoot_td]:text-[14px]',\n\t\t'[&_tfoot_td]:leading-normal',\n\t\t'[&_tfoot_td]:tracking-tight',\n\t\t'[&_tfoot_td]:font-body',\n\t\t'[&_tfoot_td]:font-normal',\n\t\t'[&_tfoot_td]:align-middle',\n\t\t'[&_tfoot_th]:text-[14px]',\n\t\t'[&_tfoot_th]:leading-normal',\n\t\t'[&_tfoot_th]:tracking-tight',\n\t\t'[&_tfoot_th]:font-body',\n\t\t'[&_tfoot_th]:font-normal',\n\t\t'[&_tfoot_th]:align-middle',\n\t],\n\t'8': [\n\t\t'[&_tfoot_td]:text-[12.44px]',\n\t\t'[&_tfoot_td]:leading-normal',\n\t\t'[&_tfoot_td]:tracking-tight',\n\t\t'[&_tfoot_td]:font-body',\n\t\t'[&_tfoot_td]:font-normal',\n\t\t'[&_tfoot_td]:align-middle',\n\t\t'[&_tfoot_th]:text-[12.44px]',\n\t\t'[&_tfoot_th]:leading-normal',\n\t\t'[&_tfoot_th]:tracking-tight',\n\t\t'[&_tfoot_th]:font-body',\n\t\t'[&_tfoot_th]:font-normal',\n\t\t'[&_tfoot_th]:align-middle',\n\t],\n\t'9': [\n\t\t'[&_tfoot_td]:text-[11.06px]',\n\t\t'[&_tfoot_td]:leading-normal',\n\t\t'[&_tfoot_td]:tracking-tight',\n\t\t'[&_tfoot_td]:font-body',\n\t\t'[&_tfoot_td]:font-normal',\n\t\t'[&_tfoot_td]:align-middle',\n\t\t'[&_tfoot_th]:text-[11.06px]',\n\t\t'[&_tfoot_th]:leading-normal',\n\t\t'[&_tfoot_th]:tracking-tight',\n\t\t'[&_tfoot_th]:font-body',\n\t\t'[&_tfoot_th]:font-normal',\n\t\t'[&_tfoot_th]:align-middle',\n\t],\n\t'10': [\n\t\t'[&_tfoot_td]:text-[9.83px]',\n\t\t'[&_tfoot_td]:leading-normal',\n\t\t'[&_tfoot_td]:tracking-normal',\n\t\t'[&_tfoot_td]:font-body',\n\t\t'[&_tfoot_td]:font-normal',\n\t\t'[&_tfoot_td]:align-middle',\n\t\t'[&_tfoot_th]:text-[9.83px]',\n\t\t'[&_tfoot_th]:leading-normal',\n\t\t'[&_tfoot_th]:tracking-normal',\n\t\t'[&_tfoot_th]:font-body',\n\t\t'[&_tfoot_th]:font-normal',\n\t\t'[&_tfoot_th]:align-middle',\n\t],\n};\n\nconst TABLE_SIZE_TOKENS: Record<TableResolvedSize, TableSizeTokens> = {\n\txs: {\n\t\theaderPreset: '9',\n\t\tbodyPreset: '9',\n\t\tfooterPreset: '10',\n\t\tselectSize: 'xs',\n\t\tpaginatorSize: 'xs',\n\t\tcheckboxSize: 'xs',\n\t\tactionSize: 'xs',\n\t\tsortableButtonSize: 'xs',\n\t\tsortableIconSize: 'xs',\n\t},\n\tsm: {\n\t\theaderPreset: '8',\n\t\tbodyPreset: '8',\n\t\tfooterPreset: '9',\n\t\tselectSize: 'sm',\n\t\tpaginatorSize: 'sm',\n\t\tcheckboxSize: 'sm',\n\t\tactionSize: 'xs',\n\t\tsortableButtonSize: 'xs',\n\t\tsortableIconSize: 'xs',\n\t},\n\tmd: {\n\t\theaderPreset: '7',\n\t\tbodyPreset: '7',\n\t\tfooterPreset: '8',\n\t\tselectSize: 'sm',\n\t\tpaginatorSize: 'sm',\n\t\tcheckboxSize: 'md',\n\t\tactionSize: 'sm',\n\t\tsortableButtonSize: 'sm',\n\t\tsortableIconSize: 'sm',\n\t},\n\tlg: {\n\t\theaderPreset: '7',\n\t\tbodyPreset: '7',\n\t\tfooterPreset: '8',\n\t\tselectSize: 'md',\n\t\tpaginatorSize: 'md',\n\t\tcheckboxSize: 'lg',\n\t\tactionSize: 'md',\n\t\tsortableButtonSize: 'md',\n\t\tsortableIconSize: 'sm',\n\t},\n\txl: {\n\t\theaderPreset: '6',\n\t\tbodyPreset: '6',\n\t\tfooterPreset: '7',\n\t\tselectSize: 'lg',\n\t\tpaginatorSize: 'lg',\n\t\tcheckboxSize: 'lg',\n\t\tactionSize: 'lg',\n\t\tsortableButtonSize: 'lg',\n\t\tsortableIconSize: 'md',\n\t},\n};\n\nconst TABLE_FOOTER_LAYOUT_BY_SIZE: Record<TableResolvedSize, TableFooterLayoutTokens> = {\n\txs: {\n\t\twrapper: ['gap-2', 'pb-1'],\n\t\tdivider: ['px-3'],\n\t\tcontent: ['gap-2', 'px-3', '@2xl:gap-2'],\n\t},\n\tsm: {\n\t\twrapper: ['gap-3', 'pb-2'],\n\t\tdivider: ['px-3'],\n\t\tcontent: ['gap-2', 'px-3', '@2xl:gap-2'],\n\t},\n\tmd: {\n\t\twrapper: ['gap-4', 'pb-3'],\n\t\tdivider: ['px-4'],\n\t\tcontent: ['gap-4', 'px-4', '@2xl:gap-2'],\n\t},\n\tlg: {\n\t\twrapper: ['gap-4', 'pb-3'],\n\t\tdivider: ['px-4'],\n\t\tcontent: ['gap-4', 'px-4', '@2xl:gap-2'],\n\t},\n\txl: {\n\t\twrapper: ['gap-4', 'pb-3'],\n\t\tdivider: ['px-4'],\n\t\tcontent: ['gap-4', 'px-4', '@2xl:gap-2'],\n\t},\n};\n\nexport function resolveTableSize(size: TableContentSizeProps): TableResolvedSize {\n\tswitch (size) {\n\t\tcase 'xs':\n\t\tcase 'sm':\n\t\tcase 'md':\n\t\tcase 'lg':\n\t\tcase 'xl':\n\t\t\treturn size;\n\t\tdefault:\n\t\t\treturn 'sm';\n\t}\n}\n\nexport function getTableSizeTokens(size: TableContentSizeProps): TableSizeTokens {\n\treturn TABLE_SIZE_TOKENS[resolveTableSize(size)];\n}\n\nexport function getTableFooterLayoutTokens(size: TableContentSizeProps): TableFooterLayoutTokens {\n\treturn TABLE_FOOTER_LAYOUT_BY_SIZE[resolveTableSize(size)];\n}\n\nexport function getTableHierarchyTypographyClasses(size: TableResolvedSize): string[] {\n\tconst tokens = TABLE_SIZE_TOKENS[size];\n\tconst headerPreset = tokens.headerPreset as TableTablePreset;\n\tconst bodyPreset = tokens.bodyPreset as TableTablePreset;\n\tconst footerPreset = tokens.footerPreset as TableTablePreset;\n\n\treturn [\n\t\t...TABLE_HEADER_TYPOGRAPHY_CLASS_BY_PRESET[headerPreset],\n\t\t...TABLE_BODY_TYPOGRAPHY_CLASS_BY_PRESET[bodyPreset],\n\t\t...TABLE_FOOTER_TYPOGRAPHY_CLASS_BY_PRESET[footerPreset],\n\t\t'[&_thead_th]:align-middle',\n\t];\n}\n\n/** Type definition for pagination display variants */\n/**\n * @internal\n * Generates base table classes with size variants\n */\nexport const tableContent = cva(\n\t[\n\t\t'table',\n\t\t'relative',\n\t\t'border-separate',\n\t\t'border-spacing-0',\n\t\t'text-pretty',\n\t\t'[&_th]:bg-neutral [&_th]:text-neutral-content',\n\t\t'[&_th]:px-4',\n\t\t'[&_td]:px-4',\n\t],\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\txs: ['table-xs', ...getTableHierarchyTypographyClasses('xs')],\n\t\t\t\tsm: ['table-sm', ...getTableHierarchyTypographyClasses('sm')],\n\t\t\t\tmd: ['table-md', ...getTableHierarchyTypographyClasses('md')],\n\t\t\t\tlg: ['table-lg', ...getTableHierarchyTypographyClasses('lg')],\n\t\t\t\txl: ['table-xl', ...getTableHierarchyTypographyClasses('xl')],\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [],\n\t\tdefaultVariants: {\n\t\t\tsize: 'sm',\n\t\t},\n\t},\n);\n\n/** Possible table size variants */\nexport type TableContentSizeProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined;\n\n/**\n * @internal\n * Generates table container classes with height variants\n */\nexport const tableContainer = cva(['rounded-t-box', 'overflow-y-clip'], {\n\tvariants: {\n\t\tcontainerHeight: {\n\t\t\tauto: ['h-auto'],\n\t\t\tfull: ['h-full'],\n\t\t\tsm: ['h-72 min-h-72 overflow-y-auto overscroll-contain'],\n\t\t\tmd: ['h-80 min-h-80 overflow-y-auto overscroll-contain'],\n\t\t\tlg: ['h-lg min-h-96 overflow-y-auto overscroll-contain'],\n\t\t\txl: ['h-[36rem] min-h-[36rem] overflow-y-auto overscroll-contain'],\n\t\t},\n\t},\n\tcompoundVariants: [],\n\tdefaultVariants: {\n\t\tcontainerHeight: 'auto',\n\t},\n});\n\n/** Possible table container height values */\nexport type TableContainerHeightProps = 'auto' | 'full' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined;\n\n/** Configuration object for table styling variants */\nexport type TableVariantProps = {\n\tsize?: TableContentSizeProps;\n\tcontainerHeight?: TableContainerHeightProps;\n};\n\n/**\n * @internal\n * Combines table content and container classes\n */\nexport const tableComponent = ({ size, containerHeight }: TableVariantProps = {}) => cn(tableContent({ size }), tableContainer({ containerHeight }));\n\n/** Pagination configuration structure */\nexport interface TablePagination extends Pagination {\n\tid: string;\n\tsearch: string;\n}\n\n/**\n * A feature-rich data table component with sorting, pagination, and row selection\n *\n * @remarks\n * Integrates with Tailwind CSS for styling and supports responsive layouts.\n * Includes built-in pagination controls and checkbox selection functionality.\n *\n * @example\n * ```html\n * <st-table\n *   [data]=\"users\"\n *   [totalItems]=\"100\"\n *   [pagination]=\"{ currentPage: 1, itemsPerPage: 10 }\"\n *   (pageChanged)=\"handlePageChange($event)\"\n *   size=\"md\"\n *   height=\"lg\"\n *   zebra\n * >\n *   <!-- Table columns and content -->\n * </st-table>\n * ```\n */\n@Component({\n\tselector: 'st-table',\n\timports: [CommonModule, PaginatorComponent, TextDirective, SelectComponent, IconComponent, TranslatePipe],\n\ttemplateUrl: './table.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableComponent {\n\treadonly translationService = inject(TranslateService);\n\n\t/**\n\t * Table size variant\n\t * @defaultValue 'sm'\n\t */\n\tsize = input<TableContentSizeProps>();\n\n\t/**\n\t * Table container height preset\n\t * @defaultValue 'auto'\n\t */\n\theight = input<TableContainerHeightProps>('auto');\n\n\t/**\n\t * Enable sticky header row\n\t * @defaultValue false\n\t */\n\tpinRows = input<boolean>(false);\n\n\t/**\n\t * Enable sticky first column\n\t * @defaultValue false\n\t */\n\tpinColumns = input<boolean>(false);\n\n\t/**\n\t * Apply zebra-striping to rows\n\t * @defaultValue false\n\t */\n\tzebra = input<boolean>(false);\n\n\t/**\n\t * Show row dividers (borders) between rows\n\t * @defaultValue false\n\t */\n\tbordered = input<boolean>(false);\n\n\t/**\n\t * Pagination control display variant\n\t * @defaultValue 'default'\n\t */\n\tpaginatorType = input<PaginationType>('default');\n\n\t/**\n\t * Empty state icon for no data state\n\t * @defaultValue heroDocumentText\n\t */\n\tnoDataIcon = input<string>(heroDocumentText);\n\n\t/**\n\t * Empty state icon for no results state\n\t * @defaultValue heroMagnifyingGlass\n\t */\n\tnoResultsIcon = input<string>(heroMagnifyingGlass);\n\n\t/**\n\t * Array of data items to display\n\t * @defaultValue []\n\t */\n\tdata = input<unknown[]>([]);\n\n\t/**\n\t * Total number of items across all pages\n\t * @defaultValue 0\n\t */\n\ttotalItems = input<number>(0);\n\n\t/**\n\t * Pagination configuration\n\t * @defaultValue { id: 'paginator', currentPage: 1, itemsPerPage: 10, search: '' }\n\t */\n\tpagination = input<TablePagination>({\n\t\tid: 'paginator',\n\t\tcurrentPage: 1,\n\t\titemsPerPage: 10,\n\t\tsearch: '',\n\t});\n\n\t/**\n\t * Maximum number of pagination buttons to display\n\t * @defaultValue 4\n\t */\n\tmaxSize = input<number>(4);\n\n\t/** Event emitted when page changes */\n\tpageChanged = output<number>();\n\n\t/** Event emitted when page size changes */\n\tpageSizeChanged = output<number>();\n\n\treadonly ENTRIES = [5, 10, 20, 50, 100] as const;\n\n\treadonly entriesPerPageOptions = computed(() => {\n\t\treturn this.ENTRIES.map((n) => {\n\t\t\tconst translatedText = this.translationService.instant('sdk.table.perPage', { count: n });\n\t\t\tconst fallbackText = `${n} / page`;\n\t\t\treturn {\n\t\t\t\tvalue: n,\n\t\t\t\ttext: translatedText && translatedText !== 'sdk.table.perPage' ? translatedText : fallbackText,\n\t\t\t};\n\t\t});\n\t});\n\n\t/**\n\t * Show items per page selector\n\t * @defaultValue true\n\t */\n\tshowItemsPerPage = input<boolean>(true);\n\n\t/**\n\t * Show entries count display\n\t * @defaultValue true\n\t */\n\tshowEntries = input<boolean>(true);\n\n\t/**\n\t * Show pagination controls\n\t * @defaultValue true\n\t */\n\tshowPagination = input<boolean>(true);\n\n\t/**\n\t * Show footer with additional information\n\t * @defaultValue true\n\t */\n\tshowFooter = input<boolean>(true);\n\n\t/**\n\t * Function to determine if any filters are currently active\n\t * This allows the parent component to define what constitutes an \"active filter\"\n\t */\n\thasActiveFiltersCallback = input<(() => boolean) | undefined>();\n\t/**\n\t * Controls whether table headers should overflow with horizontal scrolling (true)\n\t * or wrap text normally (false)\n\t * @defaultValue false\n\t */\n\tallowHeaderOverflow = input<boolean>(false);\n\n\t/**\n\t * Computed total number of pages for the internal paginator.\n\t * Calculated from totalItems and itemsPerPage.\n\t */\n\treadonly totalPages = computed(() => {\n\t\tconst itemsPerPage = this.pagination().itemsPerPage || 1;\n\t\tconst totalItems = this.totalItems();\n\t\treturn Math.ceil(totalItems / itemsPerPage);\n\t});\n\n\t/**\n\t * Computed boolean indicating if any filters are currently active\n\t */\n\treadonly hasActiveFilters = computed(() => {\n\t\tconst callback = this.hasActiveFiltersCallback();\n\t\tif (callback) {\n\t\t\treturn callback();\n\t\t}\n\t\tconst pagination = this.pagination();\n\t\treturn !!pagination.search?.trim();\n\t});\n\n\t/**\n\t * Computed boolean indicating if we should show \"no results\" vs \"no data\"\n\t */\n\treadonly hasNoResults = computed(() => {\n\t\tconst hasItems = this.totalItems() > 0 || this.data().length > 0;\n\t\treturn !hasItems && this.hasActiveFilters();\n\t});\n\n\t/**\n\t * Computed boolean indicating if we should show \"no data\" state\n\t */\n\treadonly hasNoData = computed(() => {\n\t\tconst hasItems = this.totalItems() > 0 || this.data().length > 0;\n\t\treturn !hasItems && !this.hasActiveFilters();\n\t});\n\n\t/**\n\t * Computed display range for current page entries\n\t * @example \"1-10\" of 100 entries\n\t */\n\tpaginationRange = computed(() => {\n\t\tconst start = this.pagination().currentPage * this.pagination().itemsPerPage - this.pagination().itemsPerPage + 1;\n\t\tconst end = Math.min(this.pagination().currentPage * this.pagination().itemsPerPage, this.totalItems());\n\t\treturn `${start}-${end}`;\n\t});\n\n\t/**\n\t * Handles page navigation events\n\t * @param page - New page number\n\t */\n\thandlePageChange(page: number) {\n\t\tthis.handleToggleAll(false);\n\t\tthis.pageChanged.emit(page);\n\t}\n\n\t/**\n\t * Handles page size changes\n\t * @param size - New items per page value\n\t */\n\thandlePageSizeChange(size: unknown) {\n\t\tthis.handleToggleAll(false);\n\t\tlet resolved: number | undefined;\n\t\tif (typeof size === 'number') {\n\t\t\tresolved = size;\n\t\t} else if (size && typeof size === 'object' && 'value' in (size as Record<string, unknown>)) {\n\t\t\tconst v = (size as Record<string, unknown>)['value'];\n\t\t\tconst safeStringify = (x: unknown) => (['string', 'number', 'boolean'].includes(typeof x) ? String(x) : '0');\n\t\t\tresolved = typeof v === 'number' ? v : Number(safeStringify(v));\n\t\t} else {\n\t\t\tconst safeStringify = (x: unknown) => (['string', 'number', 'boolean'].includes(typeof x) ? String(x) : '0');\n\t\t\tresolved = Number(safeStringify(size)) || undefined;\n\t\t}\n\t\tconst pageSize = Number(resolved || 1);\n\t\tthis.pageSizeChanged.emit(pageSize);\n\t}\n\n\t/**\n\t * @internal\n\t * Computes table element classes based on current configuration\n\t */\n\ttableClass = computed(() =>\n\t\tcn(\n\t\t\ttableContent({\n\t\t\t\tsize: this.size(),\n\t\t\t}),\n\t\t\t{\n\t\t\t\t'table-pin-rows': this.pinRows(),\n\t\t\t\t'table-pin-cols': this.pinColumns(),\n\t\t\t\t'table-zebra': this.zebra(),\n\t\t\t\t'table-bordered': this.bordered(),\n\t\t\t},\n\t\t),\n\t);\n\n\t/**\n\t * @internal\n\t * Computes table container classes based on height input\n\t */\n\ttableContainerClass = computed(() =>\n\t\tcn(\n\t\t\ttableContainer({\n\t\t\t\tcontainerHeight: this.height(),\n\t\t\t}),\n\t\t\t{ 'overflow-x-auto': this.allowHeaderOverflow(), '[&_thead]:whitespace-normal': !this.allowHeaderOverflow() },\n\t\t\t'w-full flex-grow',\n\t\t),\n\t);\n\n\t/**\n\t * @internal\n\t * Computes outer container classes based on size\n\t */\n\tcontainerClass = computed(() =>\n\t\tcn('rounded-box border-neutral @container flex min-w-0 flex-col gap-3 overflow-x-auto border border-solid', {\n\t\t\t'gap-3 pb-3': this.size() === 'xs' || this.size() === 'sm' || this.size() === 'md',\n\t\t\t'gap-4 pb-4': this.size() === 'lg',\n\t\t\t'gap-5 pb-5': this.size() === 'xl',\n\t\t}),\n\t);\n\n\treadonly sizeTokens = computed(() => getTableSizeTokens(this.size()));\n\n\treadonly footerLayoutTokens = computed(() => getTableFooterLayoutTokens(this.size()));\n\n\t/**\n\t * @internal\n\t * Computes typography variant for paginator text based on table size\n\t */\n\tpaginatorTextSize = computed<TextPreset>(() => {\n\t\treturn this.size() === 'sm' ? '8' : this.sizeTokens().footerPreset;\n\t});\n\n\tfooterSelectSize = computed<SelectSizeProps>(() => this.sizeTokens().selectSize);\n\n\tfooterPaginatorSize = computed<PaginatorSizeProps>(() => this.sizeTokens().paginatorSize);\n\n\tfooterWrapperClass = computed(() => cn('@container flex w-full flex-col overflow-x-auto', this.footerLayoutTokens().wrapper));\n\n\tfooterDividerClass = computed(() =>\n\t\tcn('divider divider-neutral my-0 h-[0.0625rem] before:h-[0.0625rem] after:h-[0.0625rem]', this.footerLayoutTokens().divider),\n\t);\n\n\tfooterContentClass = computed(() =>\n\t\tcn(\n\t\t\t'flex flex-col items-center @2xl:flex-row @2xl:justify-between @4xl:grid @4xl:grid-cols-[auto_1fr_auto] @4xl:items-center',\n\t\t\tthis.footerLayoutTokens().content,\n\t\t),\n\t);\n\n\t/** @internal Reference to header checkbox component */\n\theader = contentChild(TableHeaderCheckboxComponent, { descendants: true });\n\n\t/** @internal List of row checkbox components */\n\trows = contentChildren(TableRowCheckboxComponent, { descendants: true });\n\n\t/** @internal Track selected row identifiers */\n\tidentifiers = signal<Set<unknown>>(new Set());\n\n\t/** Event emitted with array of selected item identifiers */\n\tcheckedItems = output<unknown[]>();\n\n\t/** @internal Sync checkbox state with output */\n\tcheckEffect = effect(() => {\n\t\tthis.checkedItems.emit(Array.from(this.identifiers()));\n\t});\n\n\t/**\n\t * Toggle all row checkboxes\n\t * @param value - Whether to check or uncheck all rows\n\t */\n\thandleToggleAll(value: boolean) {\n\t\tif (!value) {\n\t\t\tthis.clearList();\n\t\t}\n\n\t\tthis.rows().forEach((row) => {\n\t\t\trow.checked.set(value);\n\t\t\tif (value) {\n\t\t\t\tthis.identifiers.update((items) => new Set(items).add(row.identifier()));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Handle individual checkbox toggle\n\t * @param value - Checkbox state\n\t * @param identifier - Unique row identifier\n\t */\n\thandleToggleCheckbox(value: boolean, identifier: unknown) {\n\t\tif (value) {\n\t\t\tthis.identifiers.update((items) => new Set(items).add(identifier));\n\t\t} else {\n\t\t\tthis.header()?.checked.set(false);\n\t\t\tthis.identifiers.update((items) => {\n\t\t\t\titems.delete(identifier);\n\t\t\t\treturn new Set(items);\n\t\t\t});\n\t\t}\n\t}\n\n\t/** @internal Clear all selections */\n\tprivate clearList() {\n\t\tthis.identifiers.set(new Set());\n\t\tthis.header()?.checked.set(false);\n\t}\n}\n","@let total = totalItems();\n@let containerClassVar = containerClass();\n@let tableContainerClassVar = tableContainerClass();\n@let tableClassVar = tableClass();\n@let paginatorTextSizeVar = paginatorTextSize();\n@let footerSelectSizeVar = footerSelectSize();\n@let footerPaginatorSizeVar = footerPaginatorSize();\n@let footerWrapperClassVar = footerWrapperClass();\n@let footerDividerClassVar = footerDividerClass();\n@let footerContentClassVar = footerContentClass();\n@let showItemsPerPageVar = showItemsPerPage();\n@let paginationVar = pagination();\n@let showPaginationVar = showPagination();\n@let paginatorTypeVar = paginatorType();\n@let maxSizeVar = maxSize();\n@let showEntriesVar = showEntries();\n@let showFooterVar = showFooter();\n@let totalPagesVar = totalPages();\n\n<div [class]=\"containerClassVar\">\n\t<div [class]=\"tableContainerClassVar\">\n\t\t<div class=\"w-full flex-grow overflow-x-auto\">\n\t\t\t@if (hasNoData()) {\n\t\t\t\t<div class=\"flex flex-col items-center justify-center gap-1.5 py-12 text-center\">\n\t\t\t\t\t<div class=\"text-base-content/40\">\n\t\t\t\t\t\t<st-icon [icon]=\"noDataIcon()\" size=\"lg\" color=\"base-content\" class=\"mx-auto opacity-40\"></st-icon>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex flex-col items-center justify-center gap-0.5\">\n\t\t\t\t\t\t<h3 stText=\"6\" class=\"text-base-content/60\">{{ 'sdk.table.noData.title' | translate }}</h3>\n\t\t\t\t\t\t<p stText=\"8\" class=\"text-base-content/40\">{{ 'sdk.table.noData.message' | translate }}</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t} @else if (hasNoResults()) {\n\t\t\t\t<div class=\"flex flex-col items-center justify-center gap-1.5 py-12 text-center\">\n\t\t\t\t\t<div class=\"text-base-content/40\">\n\t\t\t\t\t\t<st-icon [icon]=\"noResultsIcon()\" size=\"xl\" color=\"base-content\" class=\"mx-auto opacity-40\"></st-icon>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex flex-col items-center justify-center gap-0.5\">\n\t\t\t\t\t\t<h3 stText=\"6\" class=\"text-base-content/60\">{{ 'sdk.table.noResults.title' | translate }}</h3>\n\t\t\t\t\t\t<p stText=\"8\" class=\"text-base-content/40\">{{ 'sdk.table.noResults.message' | translate }}</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"mt-3\">\n\t\t\t\t\t\t<ng-content select=\"st-table-empty-actions\"></ng-content>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t} @else {\n\t\t\t\t<table [class]=\"tableClassVar\">\n\t\t\t\t\t<ng-content select=\"thead\"></ng-content>\n\t\t\t\t\t<ng-content select=\"tbody\"></ng-content>\n\t\t\t\t\t<ng-content select=\"tfoot\"></ng-content>\n\t\t\t\t</table>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t@if (total > 0) {\n\t\t@if (showFooterVar) {\n\t\t\t<div [class]=\"footerWrapperClassVar\">\n\t\t\t\t<div [class]=\"footerDividerClassVar\"></div>\n\t\t\t\t<div [class]=\"footerContentClassVar\">\n\t\t\t\t\t<div class=\"flex items-center justify-end\">\n\t\t\t\t\t\t@if (showEntriesVar) {\n\t\t\t\t\t\t\t@if (!showItemsPerPageVar && !showPaginationVar) {\n\t\t\t\t\t\t\t\t<span [stText]=\"paginatorTextSizeVar\">\n\t\t\t\t\t\t\t\t\t{{ 'sdk.table.totalEntries' | translate: { total: total } }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<span [stText]=\"paginatorTextSizeVar\">\n\t\t\t\t\t\t\t\t\t{{ 'sdk.table.entriesRange' | translate: { range: paginationRange(), total: total } }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex justify-center\">\n\t\t\t\t\t\t@if (showPaginationVar) {\n\t\t\t\t\t\t\t@if (paginatorTypeVar === 'default') {\n\t\t\t\t\t\t\t\t<st-paginator\n\t\t\t\t\t\t\t\t\t[paginatorId]=\"paginationVar.id\"\n\t\t\t\t\t\t\t\t\t[pages]=\"totalPagesVar\"\n\t\t\t\t\t\t\t\t\t[currentPage]=\"paginationVar.currentPage\"\n\t\t\t\t\t\t\t\t\t[size]=\"footerPaginatorSizeVar\"\n\t\t\t\t\t\t\t\t\t[maxSize]=\"maxSizeVar\"\n\t\t\t\t\t\t\t\t\t(pageChanged)=\"handlePageChange($event)\"\n\t\t\t\t\t\t\t\t></st-paginator>\n\t\t\t\t\t\t\t} @else if (paginatorTypeVar === 'dots') {\n\t\t\t\t\t\t\t\t<st-paginator\n\t\t\t\t\t\t\t\t\t[paginatorId]=\"paginationVar.id\"\n\t\t\t\t\t\t\t\t\t[pages]=\"totalPagesVar\"\n\t\t\t\t\t\t\t\t\t[currentPage]=\"paginationVar.currentPage\"\n\t\t\t\t\t\t\t\t\t[size]=\"footerPaginatorSizeVar\"\n\t\t\t\t\t\t\t\t\t(pageChanged)=\"handlePageChange($event)\"\n\t\t\t\t\t\t\t\t\ttype=\"dots\"\n\t\t\t\t\t\t\t\t></st-paginator>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex items-center justify-end\">\n\t\t\t\t\t\t@if (showItemsPerPageVar) {\n\t\t\t\t\t\t\t<span class=\"sr-only\">{{ 'sdk.table.entriesByPage' | translate }}</span>\n\t\t\t\t\t\t\t<st-select\n\t\t\t\t\t\t\t\t[options]=\"entriesPerPageOptions()\"\n\t\t\t\t\t\t\t\t[value]=\"paginationVar.itemsPerPage\"\n\t\t\t\t\t\t\t\tvalueKey=\"value\"\n\t\t\t\t\t\t\t\tdisplayKey=\"text\"\n\t\t\t\t\t\t\t\t[size]=\"footerSelectSizeVar\"\n\t\t\t\t\t\t\t\t(valueUpdated)=\"handlePageSizeChange($event)\"\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t[allowClear]=\"false\"\n\t\t\t\t\t\t\t></st-select>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t}\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ButtonComponent, ButtonSizeProps, ButtonVariantProps } from '@sixbell-telco/sdk/components/button';\nimport { TooltipComponent } from '@sixbell-telco/sdk/components/tooltip';\nimport { TextDirective, TextPreset } from '@sixbell-telco/sdk/directives/text';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\nexport type ModalActionsAligmentProps = 'left' | 'right' | 'center';\n\n/**\n * Component to render a table action, typically a button with optional tooltip.\n *\n * @remarks\n * This component encapsulates a button within a table, allowing for consistent styling\n * and easy integration with tooltips.\n *\n * @example\n * ```html\n * <st-table-action tooltip=\"Delete\" icon=\"delete\">\n *   Delete\n * </st-table-action>\n * ```\n */\n@Component({\n\tselector: 'st-table-action',\n\timports: [CommonModule, TooltipComponent, ButtonComponent, TranslatePipe, TextDirective],\n\ttemplateUrl: './table-action.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableActionComponent {\n\t/**\n\t * Button style variant.\n\t * @defaultValue 'primary'\n\t */\n\tvariant = input<ButtonVariantProps>('primary');\n\t/**\n\t * Tooltip text (optional).\n\t */\n\ttooltip = input<string | undefined>();\n\t/**\n\t * Icon name (optional).\n\t */\n\ticon = input<string | undefined>();\n\t/**\n\t * Button size.\n\t * @defaultValue 'md'\n\t */\n\tsize = input<ButtonSizeProps>('md');\n\n\t/**\n\t * Computes CSS classes for the table action text size based on the current size setting.\n\t */\n\ttableActionClass = computed(() => {\n\t\treturn cn({\n\t\t\t'text-[9.83px] leading-normal tracking-normal': this.size() === 'xs',\n\t\t\t'text-[11.06px] leading-normal tracking-tight': this.size() === 'sm',\n\t\t\t'text-[12.44px] leading-normal tracking-tight': this.size() === 'md',\n\t\t\t'text-[14px] leading-normal tracking-tight': this.size() === 'lg',\n\t\t\t'text-[15.75px] leading-normal tracking-normal': this.size() === 'xl',\n\t\t});\n\t});\n\n\ttextPreset = computed<TextPreset>(() => {\n\t\tswitch (this.size()) {\n\t\t\tcase 'xs':\n\t\t\t\treturn '10';\n\t\t\tcase 'sm':\n\t\t\t\treturn '9';\n\t\t\tcase 'md':\n\t\t\t\treturn '8';\n\t\t\tcase 'lg':\n\t\t\t\treturn '7';\n\t\t\tcase 'xl':\n\t\t\t\treturn '6';\n\t\t\tdefault:\n\t\t\t\treturn '8';\n\t\t}\n\t});\n}\n","@let tooltipVar = tooltip();\n@let variantVar = variant();\n@let iconVar = icon();\n@let sizeVar = size();\n@let textPresetVar = textPreset();\n\n<!-- Define the button template with content projection -->\n<ng-template #buttonTemplate>\n\t<st-button [class]=\"tableActionClass()\" [variant]=\"variantVar\" [icon]=\"iconVar\" [link]=\"true\" [size]=\"sizeVar\">\n\t\t<span [stText]=\"textPresetVar\">\n\t\t\t<ng-content></ng-content>\n\t\t</span>\n\t</st-button>\n</ng-template>\n\n<!-- Conditional rendering -->\n@if (tooltipVar) {\n\t<st-tooltip variant=\"secondary\" [label]=\"tooltipVar | translate\" position=\"top\">\n\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t</st-tooltip>\n} @else {\n\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ButtonComponent } from '@sixbell-telco/sdk/components/button';\nimport {\n\tDropdownMenuComponent,\n\tDropdownMenuContentComponent,\n\tDropdownMenuItemComponent,\n\tDropdownMenuTriggerComponent,\n} from '@sixbell-telco/sdk/components/dropdown-menu';\nimport { IconComponent } from '@sixbell-telco/sdk/components/icon';\nimport { matMoreVert } from '@sixbell-telco/sdk/components/icon/material/baseline';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { TableActionComponent } from '../table-action/table-action.component';\nimport { TableActionConfig, TableActionsMode, TableActionsSizeProps } from './table-actions.types';\n\n/**\n * Component to render a container for table actions.\n *\n * @remarks\n * Supports three modes of operation:\n * 1. **ng-content (backward compatible)**: When no `actions` input is provided, renders projected content.\n * 2. **Inline mode**: When `actions` is provided and `mode` is `'inline'`, renders action buttons in a row.\n * 3. **Dropdown mode**: When `actions` is provided and `mode` is `'dropdown'`, renders a kebab menu.\n *\n * @example\n * ```html\n * <!-- ng-content mode (backward compatible) -->\n * <st-table-actions>\n *   <st-table-action [icon]=\"editIcon\" tooltip=\"Edit\" />\n * </st-table-actions>\n *\n * <!-- Data-driven inline mode -->\n * <st-table-actions [actions]=\"myActions\" (actionTriggered)=\"onAction($event)\" />\n *\n * <!-- Data-driven dropdown mode -->\n * <st-table-actions [actions]=\"myActions\" mode=\"dropdown\" (actionTriggered)=\"onAction($event)\" />\n * ```\n */\n@Component({\n\tselector: 'st-table-actions',\n\timports: [\n\t\tCommonModule,\n\t\tTranslatePipe,\n\t\tTableActionComponent,\n\t\tButtonComponent,\n\t\tIconComponent,\n\t\tDropdownMenuComponent,\n\t\tDropdownMenuTriggerComponent,\n\t\tDropdownMenuContentComponent,\n\t\tDropdownMenuItemComponent,\n\t],\n\ttemplateUrl: './table-actions.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableActionsComponent {\n\t/**\n\t * Array of action configurations. When provided, renders actions data-driven.\n\t * When empty or not provided, falls back to ng-content projection.\n\t */\n\tactions = input<TableActionConfig[]>([]);\n\n\t/**\n\t * Rendering mode for the actions.\n\t * - `'inline'`: Renders action buttons in a row (default).\n\t * - `'dropdown'`: Renders a kebab menu that opens a dropdown with action items.\n\t * @defaultValue 'inline'\n\t */\n\tmode = input<TableActionsMode>('inline');\n\n\t/**\n\t * Size for action buttons and the dropdown trigger.\n\t * @defaultValue 'md'\n\t */\n\tsize = input<TableActionsSizeProps>('md');\n\n\t/**\n\t * Icon for the dropdown trigger button.\n\t * @defaultValue matMoreVert (Material vertical dots icon)\n\t */\n\ttriggerIcon = input<string>(matMoreVert);\n\n\t/**\n\t * Emitted when a data-driven action is triggered/clicked.\n\t * Emits the full `TableActionConfig` of the triggered action.\n\t */\n\tactionTriggered = output<TableActionConfig>();\n\n\t/**\n\t * @internal\n\t * Computed class string for the table actions container (inline mode and ng-content fallback).\n\t */\n\tcomponentClass = computed(() => cn('inline-flex grow-0 items-center justify-center gap-2 align-top'));\n\n\t/**\n\t * @internal\n\t * Whether the component should use data-driven rendering.\n\t */\n\thasActions = computed(() => (this.actions()?.length ?? 0) > 0);\n\n\t/**\n\t * @internal\n\t * Handle action click for data-driven mode.\n\t */\n\tonActionClick(action: TableActionConfig): void {\n\t\tif (!action.disabled) {\n\t\t\tthis.actionTriggered.emit(action);\n\t\t}\n\t}\n}\n","@if (hasActions()) {\n\t@if (mode() === 'inline') {\n\t\t<div [class]=\"componentClass()\">\n\t\t\t@for (action of actions(); track action.id) {\n\t\t\t\t<st-table-action\n\t\t\t\t\t[variant]=\"action.variant ?? 'primary'\"\n\t\t\t\t\t[icon]=\"action.icon\"\n\t\t\t\t\t[tooltip]=\"action.tooltip\"\n\t\t\t\t\t[size]=\"size()\"\n\t\t\t\t\t(click)=\"onActionClick(action)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</div>\n\t} @else {\n\t\t<st-dropdown-menu>\n\t\t\t<st-dropdown-menu-trigger [menuTriggerFor]=\"content.template\">\n\t\t\t\t<st-button [icon]=\"triggerIcon()\" [ghost]=\"true\" [size]=\"size()\" variant=\"base\" />\n\t\t\t</st-dropdown-menu-trigger>\n\t\t\t<st-dropdown-menu-content #content [size]=\"size()\">\n\t\t\t\t@for (action of actions(); track action.id) {\n\t\t\t\t\t<st-dropdown-menu-item [disabled]=\"action.disabled ?? false\" (triggered)=\"onActionClick(action)\">\n\t\t\t\t\t\t<span class=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t@if (action.icon) {\n\t\t\t\t\t\t\t\t<st-icon [icon]=\"action.icon\" size=\"auto\" />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (action.label) {\n\t\t\t\t\t\t\t\t{{ action.label | translate }}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</st-dropdown-menu-item>\n\t\t\t\t}\n\t\t\t</st-dropdown-menu-content>\n\t\t</st-dropdown-menu>\n\t}\n} @else {\n\t<div [class]=\"componentClass()\">\n\t\t<ng-content></ng-content>\n\t</div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n\tselector: 'st-table-empty-actions',\n\tstandalone: true,\n\timports: [CommonModule],\n\ttemplateUrl: './table-empty-actions.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableEmptyActionsComponent {}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TranslatePipe"],"mappings":"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"}