apex-grid 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.md +29 -0
- package/components/cell.d.ts +2 -2
- package/components/cell.js +30 -2
- package/components/cell.js.map +1 -1
- package/components/filter-row.js +65 -6
- package/components/filter-row.js.map +1 -1
- package/components/grid.d.ts +5 -0
- package/components/grid.js +34 -2
- package/components/grid.js.map +1 -1
- package/components/header.js +80 -9
- package/components/header.js.map +1 -1
- package/controllers/expansion.js +4 -4
- package/controllers/expansion.js.map +1 -1
- package/controllers/filter.js +11 -0
- package/controllers/filter.js.map +1 -1
- package/controllers/history.js +11 -4
- package/controllers/history.js.map +1 -1
- package/controllers/navigation.d.ts +34 -2
- package/controllers/navigation.js +92 -3
- package/controllers/navigation.js.map +1 -1
- package/controllers/pagination.js +1 -1
- package/controllers/pagination.js.map +1 -1
- package/controllers/row-pin.js +2 -2
- package/controllers/row-pin.js.map +1 -1
- package/controllers/row-reorder.js +6 -6
- package/controllers/row-reorder.js.map +1 -1
- package/controllers/selection.js +3 -3
- package/controllers/selection.js.map +1 -1
- package/controllers/sort.js +4 -2
- package/controllers/sort.js.map +1 -1
- package/custom-elements.json +223 -7
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/functions/localize.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +62 -1
- package/docs/interfaces/BaseApexCellContext.html +1 -1
- package/docs/interfaces/BaseApexEditorContext.html +1 -1
- package/docs/interfaces/CSVExportOptions.html +1 -1
- package/docs/interfaces/ExportOptions.html +1 -1
- package/docs/interfaces/PaginationState.html +1 -1
- package/docs/media/package.json +2 -2
- package/docs/variables/EN_LOCALE.html +2 -2
- package/i18n/en.d.ts +95 -1
- package/i18n/en.js +95 -1
- package/i18n/en.js.map +1 -1
- package/i18n/es.js +95 -1
- package/i18n/es.js.map +1 -1
- package/internal/column-types.js +1 -1
- package/internal/column-types.js.map +1 -1
- package/package.json +1 -1
- package/styles/body-cell/body-cell.css.js +1 -1
- package/styles/body-cell/body-cell.css.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/internal/column-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, svg, type TemplateResult } from 'lit';\nimport { ref } from 'lit/directives/ref.js';\nimport type ApexGridCell from '../components/cell.js';\nimport type ApexGridRow from '../components/row.js';\nimport { renderIcon } from './icons.js';\nimport type { BadgeVariant, ColumnConfiguration, StatusVariant } from './types.js';\n\nconst RATING_DEFAULT_MAX = 5;\n\nfunction getRatingMax(column: { max?: number }): number {\n const max = typeof column.max === 'number' ? Math.floor(column.max) : RATING_DEFAULT_MAX;\n return max > 0 ? max : RATING_DEFAULT_MAX;\n}\n\nfunction clampRating(value: unknown, max: number): number {\n const n = typeof value === 'number' ? value : Number(value ?? 0);\n if (!Number.isFinite(n)) return 0;\n if (n < 0) return 0;\n if (n > max) return max;\n return Math.round(n);\n}\n\n/**\n * An option entry for a `'select'` column. May be either a bare value (the\n * displayed label is `String(value)`) or an explicit `{ value, label }` pair.\n */\nexport type SelectOption<V = unknown> = V | { value: V; label?: string };\n\n/**\n * The flat, non-distributive cell context handed to a column-type renderer's\n * `display` function. Mirrors {@link ApexCellContext} but uses `unknown` for\n * `value` so renderers can author against a single shape without\n * conditional-type narrowing in generic positions.\n */\nexport interface ColumnTypeCellContext<T extends object> {\n parent: ApexGridCell<T>;\n row: ApexGridRow<T>;\n column: ColumnConfiguration<T>;\n value: unknown;\n /**\n * Commits a new value for this cell without entering edit mode. Only\n * present when the column is editable. Used by interactive display\n * widgets like the boolean checkbox.\n */\n commit?(value: unknown): Promise<boolean>;\n}\n\n/**\n * Cell context handed to a column-type renderer's `editor` function. Adds the\n * `commit` / `cancel` helpers wired through {@link EditingController}.\n */\nexport interface ColumnTypeEditorContext<T extends object> extends ColumnTypeCellContext<T> {\n commit(value: unknown): Promise<boolean>;\n cancel(): void;\n}\n\n/**\n * Built-in column-type renderer contract. A renderer can supply either a\n * display template, an editor template, or both. Cells fall back to the\n * column's `cellTemplate` / `editorTemplate` / built-in primitive editor if\n * the renderer is absent.\n */\nexport interface ColumnTypeRenderer<T extends object> {\n /**\n * Renders the display (read-only) representation of the cell.\n *\n * @remarks\n * Called when the cell is not in edit mode and the column has no\n * `cellTemplate`. Return any lit-renderable value.\n */\n display?(ctx: ColumnTypeCellContext<T>): TemplateResult | unknown;\n\n /**\n * Renders the inline editor while the cell is in edit mode.\n *\n * @remarks\n * Called when the cell is in edit mode and the column has no\n * `editorTemplate`. The returned template SHOULD include `data-apex-editor`\n * on its focusable element so the cell auto-focuses it. The editor is\n * responsible for calling `ctx.commit(value)` / `ctx.cancel()`.\n */\n editor?(ctx: ColumnTypeEditorContext<T>): TemplateResult | unknown;\n}\n\ninterface NormalizedSelectOption {\n value: unknown;\n label: string;\n}\n\n/**\n * Normalizes a column's `options` configuration into a uniform\n * `{ value, label }[]` list. Accepts both bare-value entries and explicit\n * `{ value, label }` pairs.\n */\nexport function getSelectOptions(column: { options?: SelectOption[] }): NormalizedSelectOption[] {\n const raw = column.options ?? [];\n return raw.map((entry) => {\n if (entry !== null && typeof entry === 'object' && 'value' in entry) {\n const opt = entry as { value: unknown; label?: string };\n return { value: opt.value, label: opt.label ?? String(opt.value) };\n }\n return { value: entry, label: String(entry) };\n });\n}\n\nconst selectType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const opts = getSelectOptions(ctx.column as { options?: SelectOption[] });\n const match = opts.find((o) => o.value === ctx.value);\n const label = match?.label ?? (ctx.value == null ? '' : String(ctx.value));\n // Closed-state display is intentionally plain text — the cell reads as\n // a normal value cell until the user double-clicks to edit. The\n // dropdown affordance appears only in edit mode (the listbox popover).\n return html`<span part=\"select-label\">${label}</span>`;\n },\n\n editor(ctx) {\n const opts = getSelectOptions(ctx.column as { options?: SelectOption[] });\n const current = ctx.value;\n const match = opts.find((o) => o.value === current);\n const label = match?.label ?? (current == null ? '' : String(current));\n const selectedIdx = Math.max(\n 0,\n opts.findIndex((o) => o.value === current)\n );\n\n // The popover is rendered as a `position: absolute` child of the cell\n // (the cell host is `position: relative`). That positions it relative\n // to the cell regardless of how the row is laid out — important\n // because the virtualizer applies `transform: translate` to each row,\n // which would re-anchor a `position: fixed` descendant onto the row.\n // The cell-level SCSS lifts `overflow: hidden` for select-type editing\n // cells so the popover can extend below the cell's box.\n const mountPopover = (el: Element | undefined) => {\n if (!el) return;\n const popover = el as HTMLElement;\n if (popover.dataset.apexFocused) return;\n popover.dataset.apexFocused = '1';\n const items = Array.from(popover.querySelectorAll<HTMLElement>('[part~=\"select-option\"]'));\n items[selectedIdx]?.focus();\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n const list = target.closest('[part~=\"select-popover\"]') as HTMLElement | null;\n if (!list) return;\n const items = Array.from(list.querySelectorAll<HTMLElement>('[part~=\"select-option\"]'));\n const idx = items.indexOf(target);\n if (idx < 0) return;\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n event.stopPropagation();\n items[Math.min(idx + 1, items.length - 1)]?.focus();\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n items[Math.max(idx - 1, 0)]?.focus();\n } else if (event.key === 'Home') {\n event.preventDefault();\n event.stopPropagation();\n items[0]?.focus();\n } else if (event.key === 'End') {\n event.preventDefault();\n event.stopPropagation();\n items[items.length - 1]?.focus();\n } else if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n event.stopPropagation();\n ctx.commit(opts[idx].value);\n }\n // Escape / Tab fall through to the cell-level handler which cancels /\n // exits — we don't consume them here so the standard exit flow applies.\n };\n\n return html`<span part=\"select-label\">${label}</span>\n <div\n part=\"select-popover\"\n role=\"listbox\"\n @keydown=${handleKeydown}\n ${ref(mountPopover)}\n >\n ${opts.map(\n (o, i) => html`<div\n part=${o.value === current ? 'select-option selected' : 'select-option'}\n role=\"option\"\n aria-selected=${o.value === current ? 'true' : 'false'}\n tabindex=${i === selectedIdx ? '0' : '-1'}\n data-apex-editor=${i === selectedIdx ? '' : nothing}\n @click=${() => ctx.commit(o.value)}\n >\n ${o.label}\n </div>`\n )}\n </div>`;\n },\n};\n\n/**\n * Parses a stored cell value into a `Date`, or `null` when the value can't be\n * resolved to a real date.\n *\n * @remarks\n * Accepts `Date` instances, ISO/parseable strings, and millisecond\n * timestamps. `YYYY-MM-DD` strings are interpreted as **floating dates**\n * (local midnight) rather than UTC midnight, so they render on the same\n * calendar day in every timezone.\n */\nexport function parseDate(value: unknown): Date | null {\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : value;\n }\n if (typeof value === 'number') {\n const d = new Date(value);\n return Number.isNaN(d.getTime()) ? null : d;\n }\n if (typeof value === 'string') {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(value);\n if (match) {\n const [, y, m, d] = match;\n const date = new Date(Number(y), Number(m) - 1, Number(d));\n return Number.isNaN(date.getTime()) ? null : date;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n }\n return null;\n}\n\nfunction toDateInputValue(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, '0');\n const d = String(date.getDate()).padStart(2, '0');\n return `${y}-${m}-${d}`;\n}\n\nfunction formatDateValue(value: unknown, style: string): string {\n const date = parseDate(value);\n if (!date) return '';\n return new Intl.DateTimeFormat(undefined, {\n dateStyle: style as Intl.DateTimeFormatOptions['dateStyle'],\n }).format(date);\n}\n\n/**\n * Returns a `next` value cast to the same shape as `original` (Date / number\n * timestamp / ISO string). Empty inputs commit `null` regardless of the\n * source shape, which is the simplest \"clear\" semantics.\n */\nfunction commitDateInSameShape(original: unknown, next: Date | null): unknown {\n if (next === null) return null;\n if (original instanceof Date) return next;\n if (typeof original === 'number') return next.getTime();\n return toDateInputValue(next);\n}\n\nconst dateType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const style = (ctx.column as { format?: string }).format ?? 'medium';\n return html`${formatDateValue(ctx.value, style)}`;\n },\n\n editor(ctx) {\n const initial = parseDate(ctx.value);\n const initialInput = initial ? toDateInputValue(initial) : '';\n\n const handleChange = (event: Event) => {\n const raw = (event.target as HTMLInputElement).value;\n const next = raw ? parseDate(raw) : null;\n ctx.commit(commitDateInSameShape(ctx.value, next));\n };\n // Escape / Tab / focus-out are handled at the cell level; we only need\n // Enter here to commit the typed value without waiting for `change`.\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n const raw = (event.target as HTMLInputElement).value;\n const next = raw ? parseDate(raw) : null;\n ctx.commit(commitDateInSameShape(ctx.value, next));\n }\n };\n return html`<input\n type=\"date\"\n part=\"editor\"\n data-apex-editor\n .value=${initialInput}\n @change=${handleChange}\n @keydown=${handleKeydown}\n />`;\n },\n};\n\nconst ratingType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const max = getRatingMax(ctx.column as { max?: number });\n const value = clampRating(ctx.value, max);\n const stars = Array.from({ length: max }, (_, i) => i < value);\n return html`<span part=\"rating\" role=\"img\" aria-label=\"${value} of ${max}\">\n ${stars.map(\n (filled) =>\n html`<span part=${filled ? 'rating-star filled' : 'rating-star'} aria-hidden=\"true\">\n ${renderIcon('star')}\n </span>`\n )}\n </span>`;\n },\n\n editor(ctx) {\n const max = getRatingMax(ctx.column as { max?: number });\n const current = clampRating(ctx.value, max);\n const focusRank = Math.max(current, 1);\n\n const commitTo = (next: number) => ctx.commit(clampRating(next, max));\n\n // Escape / Tab / focus-out are handled at the cell level — no per-editor\n // handlers needed here. Clicking a star is the primary commit action;\n // clicking the currently-rated star clears the rating back to 0, which\n // is the only way to get below 1 once any star is set.\n const stars = Array.from({ length: max }, (_, i) => i + 1);\n return html`<span\n part=\"rating-editor\"\n role=\"radiogroup\"\n aria-label=\"Rating\"\n >\n ${stars.map(\n (rank) => html`<button\n type=\"button\"\n part=${rank <= current ? 'rating-star filled selected' : 'rating-star'}\n role=\"radio\"\n aria-checked=${rank === current}\n aria-label=${`${rank} of ${max}`}\n data-rating-value=${rank}\n data-apex-editor=${rank === focusRank ? '' : nothing}\n @click=${() => commitTo(rank === current ? 0 : rank)}\n >\n ${renderIcon('star')}\n </button>`\n )}\n </span>`;\n },\n};\n\nconst booleanType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const truthy = ctx.value === true;\n const editable = typeof ctx.commit === 'function';\n // For editable boolean cells the display IS the interactive control —\n // a single click toggles and commits via `ctx.commit`, no edit mode\n // dance and no visual reflow. For non-editable cells the checkbox\n // reads as a state indicator (tabindex=-1, aria-readonly, pointer-\n // events disabled via SCSS).\n return html`<input\n type=\"checkbox\"\n part=${truthy ? 'boolean-mark checked' : 'boolean-mark'}\n .checked=${truthy}\n tabindex=${editable ? '0' : '-1'}\n aria-readonly=${editable ? 'false' : 'true'}\n aria-label=${truthy ? 'true' : 'false'}\n @click=${(event: Event) => {\n // Keep the click inside the cell — we don't want it to bubble into\n // the grid body-click handler twice or trigger edit-mode logic.\n event.stopPropagation();\n }}\n @change=${\n editable\n ? (event: Event) => {\n const next = (event.target as HTMLInputElement).checked;\n ctx.commit?.(next);\n }\n : undefined\n }\n />`;\n },\n // No `editor` — boolean cells never enter edit mode (the display widget\n // commits directly). Programmatic `editCell` on a boolean column is a\n // no-op as far as the user can see.\n};\n\nconst imageType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const value = ctx.value;\n if (value == null || value === '') return html``;\n const shape = (ctx.column as { shape?: 'square' | 'circle' }).shape ?? 'square';\n const colAny = ctx.column as { alt?: string; key?: unknown };\n const alt = colAny.alt ?? String(colAny.key ?? '');\n return html`<img\n part=${shape === 'circle' ? 'image circle' : 'image'}\n src=${String(value)}\n alt=${alt}\n loading=\"lazy\"\n />`;\n },\n // Editing an image URL is just text editing — fall through to the default\n // text editor for `editable: true` image columns.\n};\n\n// ── Premium presentation renderers ─────────────────────────────────────────\n// currency / avatar / badge / progress / sparkline / status. These are display\n// presentations over primitive values; for sorting / filtering they behave as\n// their underlying value type. Styling lives in `styles/body-cell/cell-renderers.scss`.\n\nfunction toFiniteNumber(value: unknown): number | null {\n const n = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(n) ? n : null;\n}\n\nfunction getPositiveMax(column: { max?: number }, fallback: number): number {\n const m = typeof column.max === 'number' ? column.max : fallback;\n return m > 0 ? m : fallback;\n}\n\n/** Stable 0–359 hue derived from a string, for per-row avatar tinting. */\nfunction hashHue(value: string): number {\n let hash = 0;\n for (let i = 0; i < value.length; i++) {\n hash = (hash * 31 + value.charCodeAt(i)) % 360;\n }\n return hash;\n}\n\n/** Heuristic fallback mapping a free-text status to a known state. */\nfunction inferStatus(value: unknown): StatusVariant {\n const s = String(value ?? '').toLowerCase();\n if (/churn|cancel|expired|inactive|lost|risk|fail|off|overdue/.test(s)) return 'churn';\n if (/trial|trialing|pending|new|invited|watch|paused/.test(s)) return 'trial';\n return 'active';\n}\n\nconst currencyType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const col = ctx.column as { currency?: string; locale?: string };\n const n = toFiniteNumber(ctx.value);\n if (n === null) return html``;\n return html`${new Intl.NumberFormat(col.locale, {\n style: 'currency',\n currency: col.currency ?? 'USD',\n }).format(n)}`;\n },\n\n editor(ctx) {\n const commit = (event: Event) => {\n const raw = (event.target as HTMLInputElement).value;\n ctx.commit(raw === '' ? null : Number(raw));\n };\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n commit(event);\n }\n };\n return html`<input\n type=\"number\"\n part=\"editor\"\n data-apex-editor\n .value=${ctx.value == null ? '' : String(ctx.value)}\n @change=${commit}\n @keydown=${handleKeydown}\n />`;\n },\n};\n\nconst avatarType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const label = ctx.value == null ? '' : String(ctx.value);\n const initial = label.trim().charAt(0).toUpperCase();\n if (!initial) return html``;\n return html`<span part=\"avatar\" role=\"img\" aria-label=${label} style=\"--ag-avatar-hue: ${hashHue(label)}\"\n >${initial}</span\n >`;\n },\n};\n\nconst badgeType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const value = ctx.value;\n if (value == null || value === '') return html``;\n const col = ctx.column as {\n badgeVariant?: BadgeVariant | ((value: unknown) => BadgeVariant);\n };\n const variant =\n typeof col.badgeVariant === 'function'\n ? col.badgeVariant(value)\n : (col.badgeVariant ?? 'neutral');\n return html`<span part=\"pill pill--${variant}\">${String(value)}</span>`;\n },\n};\n\nconst progressType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const n = toFiniteNumber(ctx.value);\n if (n === null) return html``;\n const max = getPositiveMax(ctx.column as { max?: number }, 100);\n const pct = Math.max(0, Math.min(100, (n / max) * 100));\n const tier = pct >= 80 ? 'good' : pct >= 65 ? 'watch' : 'risk';\n return html`<span part=\"progress\">\n <span part=\"progress-track\">\n <span part=\"progress-fill progress-fill--${tier}\" style=\"width: ${pct}%\"></span>\n </span>\n <span part=\"progress-label\">${Math.round(pct)}</span>\n </span>`;\n },\n};\n\nconst sparklineType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const series = Array.isArray(ctx.value)\n ? (ctx.value.filter((v) => typeof v === 'number' && Number.isFinite(v)) as number[])\n : [];\n if (series.length < 2) return html``;\n\n const width = 64;\n const height = 22;\n const pad = 2;\n const min = Math.min(...series);\n const max = Math.max(...series);\n const range = max - min || 1;\n const stepX = width / (series.length - 1);\n const points = series.map((value, i) => {\n const x = i * stepX;\n const y = pad + (height - 2 * pad) * (1 - (value - min) / range);\n return `${x.toFixed(1)} ${y.toFixed(1)}`;\n });\n const line = `M${points.join(' L')}`;\n const area = `${line} L${width} ${height} L0 ${height} Z`;\n\n const first = series[0];\n const last = series[series.length - 1];\n const trend = last > first ? 'up' : last < first ? 'down' : 'flat';\n const delta = first === 0 ? 0 : ((last - first) / Math.abs(first)) * 100;\n const showDelta = (ctx.column as { showDelta?: boolean }).showDelta !== false;\n\n return html`<span part=\"spark-cell\">\n <svg\n part=\"sparkline sparkline--${trend}\"\n viewBox=\"0 0 ${width} ${height}\"\n width=${width}\n height=${height}\n preserveAspectRatio=\"none\"\n aria-hidden=\"true\"\n >\n ${svg`<path part=\"spark-area\" d=${area} /><path part=\"spark-line\" d=${line} />`}\n </svg>\n ${\n showDelta\n ? html`<span part=\"spark-delta spark-delta--${trend}\"\n >${delta > 0 ? '+' : ''}${delta.toFixed(0)}%</span\n >`\n : nothing\n }\n </span>`;\n },\n};\n\nconst statusType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const value = ctx.value;\n if (value == null || value === '') return html``;\n const col = ctx.column as {\n statusVariant?: StatusVariant | ((value: unknown) => StatusVariant);\n };\n const variant =\n typeof col.statusVariant === 'function'\n ? col.statusVariant(value)\n : (col.statusVariant ?? inferStatus(value));\n return html`<span part=\"status status--${variant}\">\n <span part=\"status-dot\"></span>${String(value)}\n </span>`;\n },\n};\n\nconst BUILTIN_TYPES: Record<string, ColumnTypeRenderer<object>> = {\n select: selectType,\n rating: ratingType,\n date: dateType,\n boolean: booleanType,\n image: imageType,\n currency: currencyType,\n avatar: avatarType,\n badge: badgeType,\n progress: progressType,\n sparkline: sparklineType,\n status: statusType,\n};\n\n/**\n * Returns the built-in renderer for a column `type`, or `undefined` when the\n * type has no built-in display/editor (the cell falls back to plain text /\n * the primitive editor in that case).\n */\nexport function getColumnTypeRenderer<T extends object>(\n type?: string\n): ColumnTypeRenderer<T> | undefined {\n return type ? (BUILTIN_TYPES[type] as unknown as ColumnTypeRenderer<T> | undefined) : undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/internal/column-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, svg, type TemplateResult } from 'lit';\nimport { ref } from 'lit/directives/ref.js';\nimport type ApexGridCell from '../components/cell.js';\nimport type ApexGridRow from '../components/row.js';\nimport { renderIcon } from './icons.js';\nimport type { BadgeVariant, ColumnConfiguration, StatusVariant } from './types.js';\n\nconst RATING_DEFAULT_MAX = 5;\n\nfunction getRatingMax(column: { max?: number }): number {\n const max = typeof column.max === 'number' ? Math.floor(column.max) : RATING_DEFAULT_MAX;\n return max > 0 ? max : RATING_DEFAULT_MAX;\n}\n\nfunction clampRating(value: unknown, max: number): number {\n const n = typeof value === 'number' ? value : Number(value ?? 0);\n if (!Number.isFinite(n)) return 0;\n if (n < 0) return 0;\n if (n > max) return max;\n return Math.round(n);\n}\n\n/**\n * An option entry for a `'select'` column. May be either a bare value (the\n * displayed label is `String(value)`) or an explicit `{ value, label }` pair.\n */\nexport type SelectOption<V = unknown> = V | { value: V; label?: string };\n\n/**\n * The flat, non-distributive cell context handed to a column-type renderer's\n * `display` function. Mirrors {@link ApexCellContext} but uses `unknown` for\n * `value` so renderers can author against a single shape without\n * conditional-type narrowing in generic positions.\n */\nexport interface ColumnTypeCellContext<T extends object> {\n parent: ApexGridCell<T>;\n row: ApexGridRow<T>;\n column: ColumnConfiguration<T>;\n value: unknown;\n /**\n * Commits a new value for this cell without entering edit mode. Only\n * present when the column is editable. Used by interactive display\n * widgets like the boolean checkbox.\n */\n commit?(value: unknown): Promise<boolean>;\n}\n\n/**\n * Cell context handed to a column-type renderer's `editor` function. Adds the\n * `commit` / `cancel` helpers wired through {@link EditingController}.\n */\nexport interface ColumnTypeEditorContext<T extends object> extends ColumnTypeCellContext<T> {\n commit(value: unknown): Promise<boolean>;\n cancel(): void;\n}\n\n/**\n * Built-in column-type renderer contract. A renderer can supply either a\n * display template, an editor template, or both. Cells fall back to the\n * column's `cellTemplate` / `editorTemplate` / built-in primitive editor if\n * the renderer is absent.\n */\nexport interface ColumnTypeRenderer<T extends object> {\n /**\n * Renders the display (read-only) representation of the cell.\n *\n * @remarks\n * Called when the cell is not in edit mode and the column has no\n * `cellTemplate`. Return any lit-renderable value.\n */\n display?(ctx: ColumnTypeCellContext<T>): TemplateResult | unknown;\n\n /**\n * Renders the inline editor while the cell is in edit mode.\n *\n * @remarks\n * Called when the cell is in edit mode and the column has no\n * `editorTemplate`. The returned template SHOULD include `data-apex-editor`\n * on its focusable element so the cell auto-focuses it. The editor is\n * responsible for calling `ctx.commit(value)` / `ctx.cancel()`.\n */\n editor?(ctx: ColumnTypeEditorContext<T>): TemplateResult | unknown;\n}\n\ninterface NormalizedSelectOption {\n value: unknown;\n label: string;\n}\n\n/**\n * Normalizes a column's `options` configuration into a uniform\n * `{ value, label }[]` list. Accepts both bare-value entries and explicit\n * `{ value, label }` pairs.\n */\nexport function getSelectOptions(column: { options?: SelectOption[] }): NormalizedSelectOption[] {\n const raw = column.options ?? [];\n return raw.map((entry) => {\n if (entry !== null && typeof entry === 'object' && 'value' in entry) {\n const opt = entry as { value: unknown; label?: string };\n return { value: opt.value, label: opt.label ?? String(opt.value) };\n }\n return { value: entry, label: String(entry) };\n });\n}\n\nconst selectType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const opts = getSelectOptions(ctx.column as { options?: SelectOption[] });\n const match = opts.find((o) => o.value === ctx.value);\n const label = match?.label ?? (ctx.value == null ? '' : String(ctx.value));\n // Closed-state display is intentionally plain text — the cell reads as\n // a normal value cell until the user double-clicks to edit. The\n // dropdown affordance appears only in edit mode (the listbox popover).\n return html`<span part=\"select-label\">${label}</span>`;\n },\n\n editor(ctx) {\n const opts = getSelectOptions(ctx.column as { options?: SelectOption[] });\n const current = ctx.value;\n const match = opts.find((o) => o.value === current);\n const label = match?.label ?? (current == null ? '' : String(current));\n const selectedIdx = Math.max(\n 0,\n opts.findIndex((o) => o.value === current)\n );\n\n // The popover is rendered as a `position: absolute` child of the cell\n // (the cell host is `position: relative`). That positions it relative\n // to the cell regardless of how the row is laid out — important\n // because the virtualizer applies `transform: translate` to each row,\n // which would re-anchor a `position: fixed` descendant onto the row.\n // The cell-level SCSS lifts `overflow: hidden` for select-type editing\n // cells so the popover can extend below the cell's box.\n const mountPopover = (el: Element | undefined) => {\n if (!el) return;\n const popover = el as HTMLElement;\n if (popover.dataset.apexFocused) return;\n popover.dataset.apexFocused = '1';\n const items = Array.from(popover.querySelectorAll<HTMLElement>('[part~=\"select-option\"]'));\n items[selectedIdx]?.focus();\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n const list = target.closest('[part~=\"select-popover\"]') as HTMLElement | null;\n if (!list) return;\n const items = Array.from(list.querySelectorAll<HTMLElement>('[part~=\"select-option\"]'));\n const idx = items.indexOf(target);\n if (idx < 0) return;\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n event.stopPropagation();\n items[Math.min(idx + 1, items.length - 1)]?.focus();\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n items[Math.max(idx - 1, 0)]?.focus();\n } else if (event.key === 'Home') {\n event.preventDefault();\n event.stopPropagation();\n items[0]?.focus();\n } else if (event.key === 'End') {\n event.preventDefault();\n event.stopPropagation();\n items[items.length - 1]?.focus();\n } else if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n event.stopPropagation();\n ctx.commit(opts[idx].value);\n }\n // Escape / Tab fall through to the cell-level handler which cancels /\n // exits — we don't consume them here so the standard exit flow applies.\n };\n\n return html`<span part=\"select-label\">${label}</span>\n <div\n part=\"select-popover\"\n role=\"listbox\"\n @keydown=${handleKeydown}\n ${ref(mountPopover)}\n >\n ${opts.map(\n (o, i) => html`<div\n part=${o.value === current ? 'select-option selected' : 'select-option'}\n role=\"option\"\n aria-selected=${o.value === current ? 'true' : 'false'}\n tabindex=${i === selectedIdx ? '0' : '-1'}\n data-apex-editor=${i === selectedIdx ? '' : nothing}\n @click=${() => ctx.commit(o.value)}\n >\n ${o.label}\n </div>`\n )}\n </div>`;\n },\n};\n\n/**\n * Parses a stored cell value into a `Date`, or `null` when the value can't be\n * resolved to a real date.\n *\n * @remarks\n * Accepts `Date` instances, ISO/parseable strings, and millisecond\n * timestamps. `YYYY-MM-DD` strings are interpreted as **floating dates**\n * (local midnight) rather than UTC midnight, so they render on the same\n * calendar day in every timezone.\n */\nexport function parseDate(value: unknown): Date | null {\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : value;\n }\n if (typeof value === 'number') {\n const d = new Date(value);\n return Number.isNaN(d.getTime()) ? null : d;\n }\n if (typeof value === 'string') {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(value);\n if (match) {\n const [, y, m, d] = match;\n const date = new Date(Number(y), Number(m) - 1, Number(d));\n return Number.isNaN(date.getTime()) ? null : date;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n }\n return null;\n}\n\nfunction toDateInputValue(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, '0');\n const d = String(date.getDate()).padStart(2, '0');\n return `${y}-${m}-${d}`;\n}\n\nfunction formatDateValue(value: unknown, style: string): string {\n const date = parseDate(value);\n if (!date) return '';\n return new Intl.DateTimeFormat(undefined, {\n dateStyle: style as Intl.DateTimeFormatOptions['dateStyle'],\n }).format(date);\n}\n\n/**\n * Returns a `next` value cast to the same shape as `original` (Date / number\n * timestamp / ISO string). Empty inputs commit `null` regardless of the\n * source shape, which is the simplest \"clear\" semantics.\n */\nfunction commitDateInSameShape(original: unknown, next: Date | null): unknown {\n if (next === null) return null;\n if (original instanceof Date) return next;\n if (typeof original === 'number') return next.getTime();\n return toDateInputValue(next);\n}\n\nconst dateType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const style = (ctx.column as { format?: string }).format ?? 'medium';\n return html`${formatDateValue(ctx.value, style)}`;\n },\n\n editor(ctx) {\n const initial = parseDate(ctx.value);\n const initialInput = initial ? toDateInputValue(initial) : '';\n\n const handleChange = (event: Event) => {\n const raw = (event.target as HTMLInputElement).value;\n const next = raw ? parseDate(raw) : null;\n ctx.commit(commitDateInSameShape(ctx.value, next));\n };\n // Escape / Tab / focus-out are handled at the cell level; we only need\n // Enter here to commit the typed value without waiting for `change`.\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n const raw = (event.target as HTMLInputElement).value;\n const next = raw ? parseDate(raw) : null;\n ctx.commit(commitDateInSameShape(ctx.value, next));\n }\n };\n return html`<input\n type=\"date\"\n part=\"editor\"\n data-apex-editor\n .value=${initialInput}\n @change=${handleChange}\n @keydown=${handleKeydown}\n />`;\n },\n};\n\nconst ratingType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const max = getRatingMax(ctx.column as { max?: number });\n const value = clampRating(ctx.value, max);\n const stars = Array.from({ length: max }, (_, i) => i < value);\n return html`<span part=\"rating\" role=\"img\" aria-label=\"${value} of ${max}\">\n ${stars.map(\n (filled) =>\n html`<span part=${filled ? 'rating-star filled' : 'rating-star'} aria-hidden=\"true\">\n ${renderIcon('star')}\n </span>`\n )}\n </span>`;\n },\n\n editor(ctx) {\n const max = getRatingMax(ctx.column as { max?: number });\n const current = clampRating(ctx.value, max);\n const focusRank = Math.max(current, 1);\n\n const commitTo = (next: number) => ctx.commit(clampRating(next, max));\n\n // Escape / Tab / focus-out are handled at the cell level — no per-editor\n // handlers needed here. Clicking a star is the primary commit action;\n // clicking the currently-rated star clears the rating back to 0, which\n // is the only way to get below 1 once any star is set.\n const stars = Array.from({ length: max }, (_, i) => i + 1);\n return html`<span\n part=\"rating-editor\"\n role=\"radiogroup\"\n aria-label=${ctx.parent.state?.localize('editor.rating', undefined, 'Rating') ?? 'Rating'}\n >\n ${stars.map(\n (rank) => html`<button\n type=\"button\"\n part=${rank <= current ? 'rating-star filled selected' : 'rating-star'}\n role=\"radio\"\n aria-checked=${rank === current}\n aria-label=${`${rank} of ${max}`}\n data-rating-value=${rank}\n data-apex-editor=${rank === focusRank ? '' : nothing}\n @click=${() => commitTo(rank === current ? 0 : rank)}\n >\n ${renderIcon('star')}\n </button>`\n )}\n </span>`;\n },\n};\n\nconst booleanType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const truthy = ctx.value === true;\n const editable = typeof ctx.commit === 'function';\n // For editable boolean cells the display IS the interactive control —\n // a single click toggles and commits via `ctx.commit`, no edit mode\n // dance and no visual reflow. For non-editable cells the checkbox\n // reads as a state indicator (tabindex=-1, aria-readonly, pointer-\n // events disabled via SCSS).\n return html`<input\n type=\"checkbox\"\n part=${truthy ? 'boolean-mark checked' : 'boolean-mark'}\n .checked=${truthy}\n tabindex=${editable ? '0' : '-1'}\n aria-readonly=${editable ? 'false' : 'true'}\n aria-label=${truthy ? 'true' : 'false'}\n @click=${(event: Event) => {\n // Keep the click inside the cell — we don't want it to bubble into\n // the grid body-click handler twice or trigger edit-mode logic.\n event.stopPropagation();\n }}\n @change=${\n editable\n ? (event: Event) => {\n const next = (event.target as HTMLInputElement).checked;\n ctx.commit?.(next);\n }\n : undefined\n }\n />`;\n },\n // No `editor` — boolean cells never enter edit mode (the display widget\n // commits directly). Programmatic `editCell` on a boolean column is a\n // no-op as far as the user can see.\n};\n\nconst imageType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const value = ctx.value;\n if (value == null || value === '') return html``;\n const shape = (ctx.column as { shape?: 'square' | 'circle' }).shape ?? 'square';\n const colAny = ctx.column as { alt?: string; key?: unknown };\n const alt = colAny.alt ?? String(colAny.key ?? '');\n return html`<img\n part=${shape === 'circle' ? 'image circle' : 'image'}\n src=${String(value)}\n alt=${alt}\n loading=\"lazy\"\n />`;\n },\n // Editing an image URL is just text editing — fall through to the default\n // text editor for `editable: true` image columns.\n};\n\n// ── Premium presentation renderers ─────────────────────────────────────────\n// currency / avatar / badge / progress / sparkline / status. These are display\n// presentations over primitive values; for sorting / filtering they behave as\n// their underlying value type. Styling lives in `styles/body-cell/cell-renderers.scss`.\n\nfunction toFiniteNumber(value: unknown): number | null {\n const n = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(n) ? n : null;\n}\n\nfunction getPositiveMax(column: { max?: number }, fallback: number): number {\n const m = typeof column.max === 'number' ? column.max : fallback;\n return m > 0 ? m : fallback;\n}\n\n/** Stable 0–359 hue derived from a string, for per-row avatar tinting. */\nfunction hashHue(value: string): number {\n let hash = 0;\n for (let i = 0; i < value.length; i++) {\n hash = (hash * 31 + value.charCodeAt(i)) % 360;\n }\n return hash;\n}\n\n/** Heuristic fallback mapping a free-text status to a known state. */\nfunction inferStatus(value: unknown): StatusVariant {\n const s = String(value ?? '').toLowerCase();\n if (/churn|cancel|expired|inactive|lost|risk|fail|off|overdue/.test(s)) return 'churn';\n if (/trial|trialing|pending|new|invited|watch|paused/.test(s)) return 'trial';\n return 'active';\n}\n\nconst currencyType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const col = ctx.column as { currency?: string; locale?: string };\n const n = toFiniteNumber(ctx.value);\n if (n === null) return html``;\n return html`${new Intl.NumberFormat(col.locale, {\n style: 'currency',\n currency: col.currency ?? 'USD',\n }).format(n)}`;\n },\n\n editor(ctx) {\n const commit = (event: Event) => {\n const raw = (event.target as HTMLInputElement).value;\n ctx.commit(raw === '' ? null : Number(raw));\n };\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n commit(event);\n }\n };\n return html`<input\n type=\"number\"\n part=\"editor\"\n data-apex-editor\n .value=${ctx.value == null ? '' : String(ctx.value)}\n @change=${commit}\n @keydown=${handleKeydown}\n />`;\n },\n};\n\nconst avatarType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const label = ctx.value == null ? '' : String(ctx.value);\n const initial = label.trim().charAt(0).toUpperCase();\n if (!initial) return html``;\n return html`<span part=\"avatar\" role=\"img\" aria-label=${label} style=\"--ag-avatar-hue: ${hashHue(label)}\"\n >${initial}</span\n >`;\n },\n};\n\nconst badgeType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const value = ctx.value;\n if (value == null || value === '') return html``;\n const col = ctx.column as {\n badgeVariant?: BadgeVariant | ((value: unknown) => BadgeVariant);\n };\n const variant =\n typeof col.badgeVariant === 'function'\n ? col.badgeVariant(value)\n : (col.badgeVariant ?? 'neutral');\n return html`<span part=\"pill pill--${variant}\">${String(value)}</span>`;\n },\n};\n\nconst progressType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const n = toFiniteNumber(ctx.value);\n if (n === null) return html``;\n const max = getPositiveMax(ctx.column as { max?: number }, 100);\n const pct = Math.max(0, Math.min(100, (n / max) * 100));\n const tier = pct >= 80 ? 'good' : pct >= 65 ? 'watch' : 'risk';\n return html`<span part=\"progress\">\n <span part=\"progress-track\">\n <span part=\"progress-fill progress-fill--${tier}\" style=\"width: ${pct}%\"></span>\n </span>\n <span part=\"progress-label\">${Math.round(pct)}</span>\n </span>`;\n },\n};\n\nconst sparklineType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const series = Array.isArray(ctx.value)\n ? (ctx.value.filter((v) => typeof v === 'number' && Number.isFinite(v)) as number[])\n : [];\n if (series.length < 2) return html``;\n\n const width = 64;\n const height = 22;\n const pad = 2;\n const min = Math.min(...series);\n const max = Math.max(...series);\n const range = max - min || 1;\n const stepX = width / (series.length - 1);\n const points = series.map((value, i) => {\n const x = i * stepX;\n const y = pad + (height - 2 * pad) * (1 - (value - min) / range);\n return `${x.toFixed(1)} ${y.toFixed(1)}`;\n });\n const line = `M${points.join(' L')}`;\n const area = `${line} L${width} ${height} L0 ${height} Z`;\n\n const first = series[0];\n const last = series[series.length - 1];\n const trend = last > first ? 'up' : last < first ? 'down' : 'flat';\n const delta = first === 0 ? 0 : ((last - first) / Math.abs(first)) * 100;\n const showDelta = (ctx.column as { showDelta?: boolean }).showDelta !== false;\n\n return html`<span part=\"spark-cell\">\n <svg\n part=\"sparkline sparkline--${trend}\"\n viewBox=\"0 0 ${width} ${height}\"\n width=${width}\n height=${height}\n preserveAspectRatio=\"none\"\n aria-hidden=\"true\"\n >\n ${svg`<path part=\"spark-area\" d=${area} /><path part=\"spark-line\" d=${line} />`}\n </svg>\n ${\n showDelta\n ? html`<span part=\"spark-delta spark-delta--${trend}\"\n >${delta > 0 ? '+' : ''}${delta.toFixed(0)}%</span\n >`\n : nothing\n }\n </span>`;\n },\n};\n\nconst statusType: ColumnTypeRenderer<object> = {\n display(ctx) {\n const value = ctx.value;\n if (value == null || value === '') return html``;\n const col = ctx.column as {\n statusVariant?: StatusVariant | ((value: unknown) => StatusVariant);\n };\n const variant =\n typeof col.statusVariant === 'function'\n ? col.statusVariant(value)\n : (col.statusVariant ?? inferStatus(value));\n return html`<span part=\"status status--${variant}\">\n <span part=\"status-dot\"></span>${String(value)}\n </span>`;\n },\n};\n\nconst BUILTIN_TYPES: Record<string, ColumnTypeRenderer<object>> = {\n select: selectType,\n rating: ratingType,\n date: dateType,\n boolean: booleanType,\n image: imageType,\n currency: currencyType,\n avatar: avatarType,\n badge: badgeType,\n progress: progressType,\n sparkline: sparklineType,\n status: statusType,\n};\n\n/**\n * Returns the built-in renderer for a column `type`, or `undefined` when the\n * type has no built-in display/editor (the cell falls back to plain text /\n * the primitive editor in that case).\n */\nexport function getColumnTypeRenderer<T extends object>(\n type?: string\n): ColumnTypeRenderer<T> | undefined {\n return type ? (BUILTIN_TYPES[type] as unknown as ColumnTypeRenderer<T> | undefined) : undefined;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}[part~=pill]{display:inline-flex;align-items:center;block-size:20px;padding:0 8px;border-radius:var(--ag-radius-sm);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=pill--gold]{background:linear-gradient(180deg, #fff7e6 0%, var(--ag-gold) 100%);border-color:var(--ag-gold-line);color:var(--ag-gold-text)}[part~=pill--brand]{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part~=pill--neutral]{background:rgba(99,102,241,.08);border-color:rgba(99,102,241,.22);color:#4338ca}[part~=pill--muted]{background:rgba(107,114,128,.1);border-color:rgba(107,114,128,.22);color:#4b5563}[part~=avatar]{display:inline-flex;align-items:center;justify-content:center;inline-size:22px;block-size:22px;flex-shrink:0;border-radius:50%;background:hsl(var(--ag-avatar-hue, 210), 60%, 48%);color:#fff;font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-bold);line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 0 0 2px hsla(0,0%,100%,.85),0 1px 2px rgba(15,23,42,.18)}[part~=progress]{display:inline-flex;align-items:center;gap:8px;inline-size:100%}[part~=progress-track]{position:relative;flex:1;block-size:5px;min-inline-size:40px;border-radius:3px;background:rgba(15,23,42,.08);overflow:hidden}[part~=progress-fill]{display:block;block-size:100%;border-radius:3px;background:linear-gradient(90deg, #10b981 0%, #34d399 100%);transition:width var(--ag-dur-slow) var(--ag-ease)}[part~=progress-fill--good]{background:linear-gradient(90deg, #10b981 0%, #34d399 100%)}[part~=progress-fill--watch]{background:linear-gradient(90deg, #f59e0b 0%, #fbbf24 100%)}[part~=progress-fill--risk]{background:linear-gradient(90deg, #ef4444 0%, #f87171 100%)}[part~=progress-label]{min-inline-size:18px;text-align:end;font-size:11px;font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-body)}[part~=spark-cell]{display:inline-flex;align-items:center;gap:6px}[part~=sparkline]{display:block;inline-size:64px;block-size:22px;color:var(--ag-text-muted);overflow:visible}[part~=sparkline--up]{color:var(--ag-good)}[part~=sparkline--down]{color:var(--ag-risk)}[part~=spark-line]{fill:none;stroke:currentcolor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}[part~=spark-area]{fill:currentcolor;stroke:none;opacity:.18}[part~=spark-delta]{font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-muted)}[part~=spark-delta--up]{color:var(--ag-good-text)}[part~=spark-delta--down]{color:var(--ag-risk-text)}[part~=status]{display:inline-flex;align-items:center;gap:6px;block-size:20px;padding:0 10px;border-radius:var(--ag-radius-pill);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=status-dot]{inline-size:6px;block-size:6px;flex-shrink:0;border-radius:50%;background:currentcolor}[part~=status--active]{background:var(--ag-good-soft);border-color:rgba(16,185,129,.28);color:var(--ag-good-text)}[part~=status--trial]{background:var(--ag-watch-soft);border-color:rgba(245,158,11,.28);color:var(--ag-watch-text)}[part~=status--churn]{background:var(--ag-risk-soft);border-color:rgba(239,68,68,.3);color:var(--ag-risk-text)}:host{position:relative;display:inline-flex;flex:1 0 0;align-items:center;padding:0 var(--ag-cell-pad-x);color:inherit;font-size:var(--ag-fs-cell);overflow-wrap:anywhere;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([data-cell-type=number]),:host([data-cell-type=currency]){font-variant-numeric:tabular-nums;font-weight:var(--ag-fw-semibold);color:var(--ag-text)}:host([active]){outline:none;box-shadow:inset 0 0 0 1px var(--igx-cell-active-border-color, var(--cell-active-border-color, var(--ag-brand)))}:host([editing]){background:var(--igx-cell-editor-background, var(--ag-surface));z-index:calc(var(--z-index-base) + 2);overflow:hidden;cursor:text}:host([editing][data-pinned=start]),:host([editing][data-pinned=end]){background:var(--igx-cell-editor-background, var(--ag-surface))}:host([editing][data-cell-type=select]){overflow:visible}:host([data-pinned=start]),:host([data-pinned=end]){position:sticky;z-index:calc(var(--z-index-base) + 1);background:inherit}:host([data-pinned=start]){inset-inline-start:var(--apex-pin-offset, 0)}:host([data-pinned=end]){inset-inline-end:var(--apex-pin-offset, 0)}:host([data-pin-edge=start])::after,:host([data-pin-edge=end])::after{content:"";position:absolute;inset-block:0;inline-size:1px;background:var(--ag-pin-line);pointer-events:none;z-index:1}:host([data-pin-edge=start])::after{inset-inline-end:0}:host([data-pin-edge=end])::after{inset-inline-start:0}input[data-apex-editor]{box-sizing:border-box;position:absolute;inset:0;width:auto;height:auto;padding:0 var(--ag-cell-pad-x);margin:0;border:0;background:rgba(0,0,0,0);color:inherit;font:inherit;font-size:var(--ag-fs-cell);outline:none;caret-color:var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));-webkit-user-select:text;-moz-user-select:text;user-select:text}input[type=number][data-apex-editor]{font-variant-numeric:tabular-nums}input[type=checkbox][data-apex-editor]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[type=checkbox][data-apex-editor]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[type=checkbox][data-apex-editor]:active{transform:scale(0.92)}input[type=checkbox][data-apex-editor]:checked,input[type=checkbox][data-apex-editor]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[type=checkbox][data-apex-editor]:checked{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}input[type=checkbox][data-apex-editor]:indeterminate{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E")}input[type=checkbox][data-apex-editor]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[type=checkbox][data-apex-editor]{position:relative;inset:auto}input[part~=boolean-mark]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[part~=boolean-mark]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[part~=boolean-mark]:active{transform:scale(0.92)}input[part~=boolean-mark]:checked,input[part~=boolean-mark]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[part~=boolean-mark]:checked{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}input[part~=boolean-mark]:indeterminate{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E")}input[part~=boolean-mark]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[part~=boolean-mark][aria-readonly=true]{cursor:default;pointer-events:none}[part~=rating]{display:inline-flex;align-items:center;gap:0.0625rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623))}[part~=rating-star]{display:inline-flex;align-items:center;justify-content:center;color:currentcolor;opacity:.25;line-height:0}[part~=rating-star] svg{inline-size:0.875rem;block-size:0.875rem}[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor]{display:inline-flex;align-items:center;gap:0.125rem;padding:0 0.125rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623));z-index:calc(var(--z-index-base) + 2)}[part=rating-editor] button[part~=rating-star]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:0;margin:0;padding:0.125rem;cursor:pointer;color:currentcolor;opacity:.35;border-radius:var(--ag-radius-xs)}[part=rating-editor] button[part~=rating-star]:hover{opacity:.75}[part=rating-editor] button[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor] button[part~=rating-star]:focus-visible{outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.0625rem}[part~=select-label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;inline-size:100%}[part~=select-popover]{position:absolute;inset-block-start:100%;inset-inline-start:0;margin:0.125rem 0 0;padding:0.25rem 0;min-inline-size:100%;background:var(--igx-cell-editor-background, var(--ag-surface));border:0.0625rem solid var(--ag-brand-line);border-radius:var(--ag-radius-sm);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,.06),0 0.375rem 1rem rgba(0,0,0,.12);max-block-size:15rem;overflow-y:auto;outline:none;z-index:calc(var(--z-index-base) + 10);color:inherit;font:inherit}[part~=select-option]{display:block;padding:0.375rem 0.75rem;cursor:pointer;color:inherit;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[part~=select-option]:hover{background:var(--ag-brand-softer)}[part~=select-option][part~=selected]{background:var(--ag-brand-soft);color:var(--ag-brand-strong);font-weight:var(--ag-fw-semibold)}[part~=select-option]:focus-visible{background:var(--ag-brand-soft);outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.125rem}[part~=image]{block-size:calc(100% - 0.5rem);max-block-size:2.5rem;inline-size:auto;aspect-ratio:1/1;-o-object-fit:cover;object-fit:cover;border-radius:var(--ag-radius-xs);display:block;flex-shrink:0}[part~=image][part~=circle]{border-radius:50%}[part=tree-indent]{flex-shrink:0;display:inline-block}[part=tree-toggle]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem;padding:0;border:1px solid rgba(0,0,0,0);border-radius:var(--ag-radius-xs);background:rgba(0,0,0,0);color:var(--ag-text-muted);cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease)}[part=tree-toggle]:hover{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part=tree-toggle]:focus-visible{outline:0.125rem solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:0.0625rem}[part=tree-chevron]{transition:transform var(--ag-dur-med) var(--ag-ease)}:host([data-tree-expanded]) [part=tree-chevron]{transform:rotate(90deg)}[part=tree-spacer]{display:inline-block;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem}[part=tree-cell-content]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([data-invalid]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444))}:host([data-invalid][editing]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));overflow:visible}[part~=cell-error]{position:absolute;inset-block-start:100%;inset-inline-start:0;z-index:calc(var(--z-index-base) + 11);margin-block-start:0.125rem;padding:0.125rem 0.375rem;max-inline-size:13.75rem;background:var(--ag-surface, #fff);color:var(--ag-risk-text, #b91c1c);border:0.0625rem solid var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));border-radius:var(--ag-radius-xs);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-regular);line-height:1.3;white-space:normal;pointer-events:none;box-shadow:0 0.125rem 0.375rem rgba(0,0,0,.12)}:host([data-range]){background:var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 12%, transparent))}:host([data-range~=active]){background:var(--apex-range-active-fill, var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 20%, transparent)))}:host([data-range])::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;border:0 solid var(--apex-range-border, var(--ag-brand))}:host([data-range-edge~=top])::before{border-block-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=bottom])::before{border-block-end-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=left])::before{border-inline-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=right])::before{border-inline-end-width:var(--apex-range-border-width, 1px)}:host([data-range-handle])::after{content:"";position:absolute;inset-inline-end:-1px;inset-block-end:-1px;inline-size:7px;block-size:7px;background:var(--apex-range-border, var(--ag-brand));border:1px solid var(--ag-surface, #fff);z-index:4;pointer-events:none}:host([data-formula-ref]){--apex-formula-ref: var(--ag-brand);background:color-mix(in srgb, var(--apex-formula-ref) 14%, transparent);box-shadow:inset 0 0 0 1px var(--apex-formula-ref)}:host([data-formula-ref="0"]){--apex-formula-ref: var(--apex-formula-ref-0, #2563eb)}:host([data-formula-ref="1"]){--apex-formula-ref: var(--apex-formula-ref-1, #16a34a)}:host([data-formula-ref="2"]){--apex-formula-ref: var(--apex-formula-ref-2, #d97706)}:host([data-formula-ref="3"]){--apex-formula-ref: var(--apex-formula-ref-3, #db2777)}:host([data-formula-ref="4"]){--apex-formula-ref: var(--apex-formula-ref-4, #7c3aed)}:host([data-formula-ref="5"]){--apex-formula-ref: var(--apex-formula-ref-5, #0891b2)}`;
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}[part~=pill]{display:inline-flex;align-items:center;block-size:20px;padding:0 8px;border-radius:var(--ag-radius-sm);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=pill--gold]{background:linear-gradient(180deg, #fff7e6 0%, var(--ag-gold) 100%);border-color:var(--ag-gold-line);color:var(--ag-gold-text)}[part~=pill--brand]{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part~=pill--neutral]{background:rgba(99,102,241,.08);border-color:rgba(99,102,241,.22);color:#4338ca}[part~=pill--muted]{background:rgba(107,114,128,.1);border-color:rgba(107,114,128,.22);color:#4b5563}[part~=avatar]{display:inline-flex;align-items:center;justify-content:center;inline-size:22px;block-size:22px;flex-shrink:0;border-radius:50%;background:hsl(var(--ag-avatar-hue, 210), 60%, 48%);color:#fff;font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-bold);line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 0 0 2px hsla(0,0%,100%,.85),0 1px 2px rgba(15,23,42,.18)}[part~=progress]{display:inline-flex;align-items:center;gap:8px;inline-size:100%}[part~=progress-track]{position:relative;flex:1;block-size:5px;min-inline-size:40px;border-radius:3px;background:rgba(15,23,42,.08);overflow:hidden}[part~=progress-fill]{display:block;block-size:100%;border-radius:3px;background:linear-gradient(90deg, #10b981 0%, #34d399 100%);transition:width var(--ag-dur-slow) var(--ag-ease)}[part~=progress-fill--good]{background:linear-gradient(90deg, #10b981 0%, #34d399 100%)}[part~=progress-fill--watch]{background:linear-gradient(90deg, #f59e0b 0%, #fbbf24 100%)}[part~=progress-fill--risk]{background:linear-gradient(90deg, #ef4444 0%, #f87171 100%)}[part~=progress-label]{min-inline-size:18px;text-align:end;font-size:11px;font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-body)}[part~=spark-cell]{display:inline-flex;align-items:center;gap:6px}[part~=sparkline]{display:block;inline-size:64px;block-size:22px;color:var(--ag-text-muted);overflow:visible}[part~=sparkline--up]{color:var(--ag-good)}[part~=sparkline--down]{color:var(--ag-risk)}[part~=spark-line]{fill:none;stroke:currentcolor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}[part~=spark-area]{fill:currentcolor;stroke:none;opacity:.18}[part~=spark-delta]{font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-muted)}[part~=spark-delta--up]{color:var(--ag-good-text)}[part~=spark-delta--down]{color:var(--ag-risk-text)}[part~=status]{display:inline-flex;align-items:center;gap:6px;block-size:20px;padding:0 10px;border-radius:var(--ag-radius-pill);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=status-dot]{inline-size:6px;block-size:6px;flex-shrink:0;border-radius:50%;background:currentcolor}[part~=status--active]{background:var(--ag-good-soft);border-color:rgba(16,185,129,.28);color:var(--ag-good-text)}[part~=status--trial]{background:var(--ag-watch-soft);border-color:rgba(245,158,11,.28);color:var(--ag-watch-text)}[part~=status--churn]{background:var(--ag-risk-soft);border-color:rgba(239,68,68,.3);color:var(--ag-risk-text)}:host{position:relative;display:inline-flex;flex:1 0 0;align-items:center;padding:0 var(--ag-cell-pad-x);color:inherit;font-size:var(--ag-fs-cell);overflow-wrap:anywhere;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([data-cell-type=number]),:host([data-cell-type=currency]){font-variant-numeric:tabular-nums;font-weight:var(--ag-fw-semibold);color:var(--ag-text)}:host([active]){outline:none;box-shadow:inset 0 0 0 1px var(--igx-cell-active-border-color, var(--cell-active-border-color, var(--ag-brand)))}:host([editing]){background:var(--igx-cell-editor-background, var(--ag-surface));z-index:calc(var(--z-index-base) + 2);overflow:hidden;cursor:text}:host([editing][data-pinned=start]),:host([editing][data-pinned=end]){background:var(--igx-cell-editor-background, var(--ag-surface))}:host([editing][data-cell-type=select]){overflow:visible}:host([data-pinned=start]),:host([data-pinned=end]){position:sticky;z-index:calc(var(--z-index-base) + 1);background:inherit}:host([data-pinned=start]){inset-inline-start:var(--apex-pin-offset, 0)}:host([data-pinned=end]){inset-inline-end:var(--apex-pin-offset, 0)}:host([data-pin-edge=start])::after,:host([data-pin-edge=end])::after{content:"";position:absolute;inset-block:0;inline-size:1px;background:var(--ag-pin-line);pointer-events:none;z-index:1}:host([data-pin-edge=start])::after{inset-inline-end:0}:host([data-pin-edge=end])::after{inset-inline-start:0}input[data-apex-editor]{box-sizing:border-box;position:absolute;inset:0;width:auto;height:auto;padding:0 var(--ag-cell-pad-x);margin:0;border:0;background:rgba(0,0,0,0);color:inherit;font:inherit;font-size:var(--ag-fs-cell);outline:none;caret-color:var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));-webkit-user-select:text;-moz-user-select:text;user-select:text}input[type=number][data-apex-editor]{font-variant-numeric:tabular-nums}input[type=checkbox][data-apex-editor]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[type=checkbox][data-apex-editor]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[type=checkbox][data-apex-editor]:active{transform:scale(0.92)}input[type=checkbox][data-apex-editor]:checked,input[type=checkbox][data-apex-editor]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[type=checkbox][data-apex-editor]:checked{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}input[type=checkbox][data-apex-editor]:indeterminate{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E")}input[type=checkbox][data-apex-editor]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[type=checkbox][data-apex-editor]{position:relative;inset:auto}input[part~=boolean-mark]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[part~=boolean-mark]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[part~=boolean-mark]:active{transform:scale(0.92)}input[part~=boolean-mark]:checked,input[part~=boolean-mark]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[part~=boolean-mark]:checked{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}input[part~=boolean-mark]:indeterminate{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E")}input[part~=boolean-mark]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[part~=boolean-mark][aria-readonly=true]{cursor:default;pointer-events:none}[part~=rating]{display:inline-flex;align-items:center;gap:0.0625rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623))}[part~=rating-star]{display:inline-flex;align-items:center;justify-content:center;color:currentcolor;opacity:.25;line-height:0}[part~=rating-star] svg{inline-size:0.875rem;block-size:0.875rem}[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor]{display:inline-flex;align-items:center;gap:0.125rem;padding:0 0.125rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623));z-index:calc(var(--z-index-base) + 2)}[part=rating-editor] button[part~=rating-star]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:0;margin:0;padding:0.125rem;cursor:pointer;color:currentcolor;opacity:.35;border-radius:var(--ag-radius-xs)}[part=rating-editor] button[part~=rating-star]:hover{opacity:.75}[part=rating-editor] button[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor] button[part~=rating-star]:focus-visible{outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.0625rem}[part~=select-label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;inline-size:100%}[part~=select-popover]{position:absolute;inset-block-start:100%;inset-inline-start:0;margin:0.125rem 0 0;padding:0.25rem 0;min-inline-size:100%;background:var(--igx-cell-editor-background, var(--ag-surface));border:0.0625rem solid var(--ag-brand-line);border-radius:var(--ag-radius-sm);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,.06),0 0.375rem 1rem rgba(0,0,0,.12);max-block-size:15rem;overflow-y:auto;outline:none;z-index:calc(var(--z-index-base) + 10);color:inherit;font:inherit}[part~=select-option]{display:block;padding:0.375rem 0.75rem;cursor:pointer;color:inherit;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[part~=select-option]:hover{background:var(--ag-brand-softer)}[part~=select-option][part~=selected]{background:var(--ag-brand-soft);color:var(--ag-brand-strong);font-weight:var(--ag-fw-semibold)}[part~=select-option]:focus-visible{background:var(--ag-brand-soft);outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.125rem}[part~=image]{block-size:calc(100% - 0.5rem);max-block-size:2.5rem;inline-size:auto;aspect-ratio:1/1;-o-object-fit:cover;object-fit:cover;border-radius:var(--ag-radius-xs);display:block;flex-shrink:0}[part~=image][part~=circle]{border-radius:50%}[part=tree-indent]{flex-shrink:0;display:inline-block}[part=tree-toggle]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem;padding:0;border:1px solid rgba(0,0,0,0);border-radius:var(--ag-radius-xs);background:rgba(0,0,0,0);color:var(--ag-text-muted);cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease)}[part=tree-toggle]:hover{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part=tree-toggle]:focus-visible{outline:0.125rem solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:0.0625rem}[part=tree-chevron]{transition:transform var(--ag-dur-med) var(--ag-ease)}:host([data-tree-expanded]) [part=tree-chevron]{transform:rotate(90deg)}[part=tree-spacer]{display:inline-block;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem}[part=tree-cell-content]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([data-invalid]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444))}:host([data-invalid][editing]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));overflow:visible}[part~=cell-error]{position:absolute;inset-block-start:100%;inset-inline-start:0;z-index:calc(var(--z-index-base) + 11);margin-block-start:0.125rem;padding:0.125rem 0.375rem;max-inline-size:13.75rem;background:var(--ag-surface, #fff);color:var(--ag-risk-text, #b91c1c);border:0.0625rem solid var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));border-radius:var(--ag-radius-xs);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-regular);line-height:1.3;white-space:normal;pointer-events:none;box-shadow:0 0.125rem 0.375rem rgba(0,0,0,.12)}:host([data-range]){background:var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 12%, transparent))}:host([data-range~=active]){background:var(--apex-range-active-fill, var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 20%, transparent)))}:host([data-range])::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;border:0 solid var(--apex-range-border, var(--ag-brand))}:host([data-range-edge~=top])::before{border-block-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=bottom])::before{border-block-end-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=left])::before{border-inline-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=right])::before{border-inline-end-width:var(--apex-range-border-width, 1px)}:host([data-range-handle])::after{content:"";position:absolute;inset-inline-end:-1px;inset-block-end:-1px;inline-size:7px;block-size:7px;background:var(--apex-range-border, var(--ag-brand));border:1px solid var(--ag-surface, #fff);z-index:4;pointer-events:none}:host([data-formula-ref]){--apex-formula-ref: var(--ag-brand);background:color-mix(in srgb, var(--apex-formula-ref) 14%, transparent);box-shadow:inset 0 0 0 1px var(--apex-formula-ref)}:host([data-formula-ref="0"]){--apex-formula-ref: var(--apex-formula-ref-0, #2563eb)}:host([data-formula-ref="1"]){--apex-formula-ref: var(--apex-formula-ref-1, #16a34a)}:host([data-formula-ref="2"]){--apex-formula-ref: var(--apex-formula-ref-2, #d97706)}:host([data-formula-ref="3"]){--apex-formula-ref: var(--apex-formula-ref-3, #db2777)}:host([data-formula-ref="4"]){--apex-formula-ref: var(--apex-formula-ref-4, #7c3aed)}:host([data-formula-ref="5"]){--apex-formula-ref: var(--apex-formula-ref-5, #0891b2)}:host([data-formula-pointer]){--apex-formula-pointer: var(--ag-brand);background:color-mix(in srgb, var(--apex-formula-pointer) 10%, transparent)}:host([data-formula-pointer])::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;border:0 dashed var(--apex-formula-pointer, var(--ag-brand))}:host([data-formula-pointer-edge~=top])::before{border-block-start-width:var(--apex-formula-pointer-width, 1.5px)}:host([data-formula-pointer-edge~=bottom])::before{border-block-end-width:var(--apex-formula-pointer-width, 1.5px)}:host([data-formula-pointer-edge~=left])::before{border-inline-start-width:var(--apex-formula-pointer-width, 1.5px)}:host([data-formula-pointer-edge~=right])::before{border-inline-end-width:var(--apex-formula-pointer-width, 1.5px)}`;
|
|
3
3
|
//# sourceMappingURL=body-cell.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-cell.css.js","sourceRoot":"","sources":["../../../src/styles/body-cell/body-cell.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yudAAyud,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}[part~=pill]{display:inline-flex;align-items:center;block-size:20px;padding:0 8px;border-radius:var(--ag-radius-sm);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=pill--gold]{background:linear-gradient(180deg, #fff7e6 0%, var(--ag-gold) 100%);border-color:var(--ag-gold-line);color:var(--ag-gold-text)}[part~=pill--brand]{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part~=pill--neutral]{background:rgba(99,102,241,.08);border-color:rgba(99,102,241,.22);color:#4338ca}[part~=pill--muted]{background:rgba(107,114,128,.1);border-color:rgba(107,114,128,.22);color:#4b5563}[part~=avatar]{display:inline-flex;align-items:center;justify-content:center;inline-size:22px;block-size:22px;flex-shrink:0;border-radius:50%;background:hsl(var(--ag-avatar-hue, 210), 60%, 48%);color:#fff;font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-bold);line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 0 0 2px hsla(0,0%,100%,.85),0 1px 2px rgba(15,23,42,.18)}[part~=progress]{display:inline-flex;align-items:center;gap:8px;inline-size:100%}[part~=progress-track]{position:relative;flex:1;block-size:5px;min-inline-size:40px;border-radius:3px;background:rgba(15,23,42,.08);overflow:hidden}[part~=progress-fill]{display:block;block-size:100%;border-radius:3px;background:linear-gradient(90deg, #10b981 0%, #34d399 100%);transition:width var(--ag-dur-slow) var(--ag-ease)}[part~=progress-fill--good]{background:linear-gradient(90deg, #10b981 0%, #34d399 100%)}[part~=progress-fill--watch]{background:linear-gradient(90deg, #f59e0b 0%, #fbbf24 100%)}[part~=progress-fill--risk]{background:linear-gradient(90deg, #ef4444 0%, #f87171 100%)}[part~=progress-label]{min-inline-size:18px;text-align:end;font-size:11px;font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-body)}[part~=spark-cell]{display:inline-flex;align-items:center;gap:6px}[part~=sparkline]{display:block;inline-size:64px;block-size:22px;color:var(--ag-text-muted);overflow:visible}[part~=sparkline--up]{color:var(--ag-good)}[part~=sparkline--down]{color:var(--ag-risk)}[part~=spark-line]{fill:none;stroke:currentcolor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}[part~=spark-area]{fill:currentcolor;stroke:none;opacity:.18}[part~=spark-delta]{font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-muted)}[part~=spark-delta--up]{color:var(--ag-good-text)}[part~=spark-delta--down]{color:var(--ag-risk-text)}[part~=status]{display:inline-flex;align-items:center;gap:6px;block-size:20px;padding:0 10px;border-radius:var(--ag-radius-pill);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=status-dot]{inline-size:6px;block-size:6px;flex-shrink:0;border-radius:50%;background:currentcolor}[part~=status--active]{background:var(--ag-good-soft);border-color:rgba(16,185,129,.28);color:var(--ag-good-text)}[part~=status--trial]{background:var(--ag-watch-soft);border-color:rgba(245,158,11,.28);color:var(--ag-watch-text)}[part~=status--churn]{background:var(--ag-risk-soft);border-color:rgba(239,68,68,.3);color:var(--ag-risk-text)}:host{position:relative;display:inline-flex;flex:1 0 0;align-items:center;padding:0 var(--ag-cell-pad-x);color:inherit;font-size:var(--ag-fs-cell);overflow-wrap:anywhere;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([data-cell-type=number]),:host([data-cell-type=currency]){font-variant-numeric:tabular-nums;font-weight:var(--ag-fw-semibold);color:var(--ag-text)}:host([active]){outline:none;box-shadow:inset 0 0 0 1px var(--igx-cell-active-border-color, var(--cell-active-border-color, var(--ag-brand)))}:host([editing]){background:var(--igx-cell-editor-background, var(--ag-surface));z-index:calc(var(--z-index-base) + 2);overflow:hidden;cursor:text}:host([editing][data-pinned=start]),:host([editing][data-pinned=end]){background:var(--igx-cell-editor-background, var(--ag-surface))}:host([editing][data-cell-type=select]){overflow:visible}:host([data-pinned=start]),:host([data-pinned=end]){position:sticky;z-index:calc(var(--z-index-base) + 1);background:inherit}:host([data-pinned=start]){inset-inline-start:var(--apex-pin-offset, 0)}:host([data-pinned=end]){inset-inline-end:var(--apex-pin-offset, 0)}:host([data-pin-edge=start])::after,:host([data-pin-edge=end])::after{content:\"\";position:absolute;inset-block:0;inline-size:1px;background:var(--ag-pin-line);pointer-events:none;z-index:1}:host([data-pin-edge=start])::after{inset-inline-end:0}:host([data-pin-edge=end])::after{inset-inline-start:0}input[data-apex-editor]{box-sizing:border-box;position:absolute;inset:0;width:auto;height:auto;padding:0 var(--ag-cell-pad-x);margin:0;border:0;background:rgba(0,0,0,0);color:inherit;font:inherit;font-size:var(--ag-fs-cell);outline:none;caret-color:var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));-webkit-user-select:text;-moz-user-select:text;user-select:text}input[type=number][data-apex-editor]{font-variant-numeric:tabular-nums}input[type=checkbox][data-apex-editor]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[type=checkbox][data-apex-editor]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[type=checkbox][data-apex-editor]:active{transform:scale(0.92)}input[type=checkbox][data-apex-editor]:checked,input[type=checkbox][data-apex-editor]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[type=checkbox][data-apex-editor]:checked{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}input[type=checkbox][data-apex-editor]:indeterminate{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E\")}input[type=checkbox][data-apex-editor]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[type=checkbox][data-apex-editor]{position:relative;inset:auto}input[part~=boolean-mark]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[part~=boolean-mark]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[part~=boolean-mark]:active{transform:scale(0.92)}input[part~=boolean-mark]:checked,input[part~=boolean-mark]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[part~=boolean-mark]:checked{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}input[part~=boolean-mark]:indeterminate{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E\")}input[part~=boolean-mark]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[part~=boolean-mark][aria-readonly=true]{cursor:default;pointer-events:none}[part~=rating]{display:inline-flex;align-items:center;gap:0.0625rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623))}[part~=rating-star]{display:inline-flex;align-items:center;justify-content:center;color:currentcolor;opacity:.25;line-height:0}[part~=rating-star] svg{inline-size:0.875rem;block-size:0.875rem}[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor]{display:inline-flex;align-items:center;gap:0.125rem;padding:0 0.125rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623));z-index:calc(var(--z-index-base) + 2)}[part=rating-editor] button[part~=rating-star]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:0;margin:0;padding:0.125rem;cursor:pointer;color:currentcolor;opacity:.35;border-radius:var(--ag-radius-xs)}[part=rating-editor] button[part~=rating-star]:hover{opacity:.75}[part=rating-editor] button[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor] button[part~=rating-star]:focus-visible{outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.0625rem}[part~=select-label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;inline-size:100%}[part~=select-popover]{position:absolute;inset-block-start:100%;inset-inline-start:0;margin:0.125rem 0 0;padding:0.25rem 0;min-inline-size:100%;background:var(--igx-cell-editor-background, var(--ag-surface));border:0.0625rem solid var(--ag-brand-line);border-radius:var(--ag-radius-sm);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,.06),0 0.375rem 1rem rgba(0,0,0,.12);max-block-size:15rem;overflow-y:auto;outline:none;z-index:calc(var(--z-index-base) + 10);color:inherit;font:inherit}[part~=select-option]{display:block;padding:0.375rem 0.75rem;cursor:pointer;color:inherit;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[part~=select-option]:hover{background:var(--ag-brand-softer)}[part~=select-option][part~=selected]{background:var(--ag-brand-soft);color:var(--ag-brand-strong);font-weight:var(--ag-fw-semibold)}[part~=select-option]:focus-visible{background:var(--ag-brand-soft);outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.125rem}[part~=image]{block-size:calc(100% - 0.5rem);max-block-size:2.5rem;inline-size:auto;aspect-ratio:1/1;-o-object-fit:cover;object-fit:cover;border-radius:var(--ag-radius-xs);display:block;flex-shrink:0}[part~=image][part~=circle]{border-radius:50%}[part=tree-indent]{flex-shrink:0;display:inline-block}[part=tree-toggle]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem;padding:0;border:1px solid rgba(0,0,0,0);border-radius:var(--ag-radius-xs);background:rgba(0,0,0,0);color:var(--ag-text-muted);cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease)}[part=tree-toggle]:hover{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part=tree-toggle]:focus-visible{outline:0.125rem solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:0.0625rem}[part=tree-chevron]{transition:transform var(--ag-dur-med) var(--ag-ease)}:host([data-tree-expanded]) [part=tree-chevron]{transform:rotate(90deg)}[part=tree-spacer]{display:inline-block;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem}[part=tree-cell-content]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([data-invalid]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444))}:host([data-invalid][editing]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));overflow:visible}[part~=cell-error]{position:absolute;inset-block-start:100%;inset-inline-start:0;z-index:calc(var(--z-index-base) + 11);margin-block-start:0.125rem;padding:0.125rem 0.375rem;max-inline-size:13.75rem;background:var(--ag-surface, #fff);color:var(--ag-risk-text, #b91c1c);border:0.0625rem solid var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));border-radius:var(--ag-radius-xs);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-regular);line-height:1.3;white-space:normal;pointer-events:none;box-shadow:0 0.125rem 0.375rem rgba(0,0,0,.12)}:host([data-range]){background:var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 12%, transparent))}:host([data-range~=active]){background:var(--apex-range-active-fill, var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 20%, transparent)))}:host([data-range])::before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;border:0 solid var(--apex-range-border, var(--ag-brand))}:host([data-range-edge~=top])::before{border-block-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=bottom])::before{border-block-end-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=left])::before{border-inline-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=right])::before{border-inline-end-width:var(--apex-range-border-width, 1px)}:host([data-range-handle])::after{content:\"\";position:absolute;inset-inline-end:-1px;inset-block-end:-1px;inline-size:7px;block-size:7px;background:var(--apex-range-border, var(--ag-brand));border:1px solid var(--ag-surface, #fff);z-index:4;pointer-events:none}:host([data-formula-ref]){--apex-formula-ref: var(--ag-brand);background:color-mix(in srgb, var(--apex-formula-ref) 14%, transparent);box-shadow:inset 0 0 0 1px var(--apex-formula-ref)}:host([data-formula-ref=\"0\"]){--apex-formula-ref: var(--apex-formula-ref-0, #2563eb)}:host([data-formula-ref=\"1\"]){--apex-formula-ref: var(--apex-formula-ref-1, #16a34a)}:host([data-formula-ref=\"2\"]){--apex-formula-ref: var(--apex-formula-ref-2, #d97706)}:host([data-formula-ref=\"3\"]){--apex-formula-ref: var(--apex-formula-ref-3, #db2777)}:host([data-formula-ref=\"4\"]){--apex-formula-ref: var(--apex-formula-ref-4, #7c3aed)}:host([data-formula-ref=\"5\"]){--apex-formula-ref: var(--apex-formula-ref-5, #0891b2)}`;"]}
|
|
1
|
+
{"version":3,"file":"body-cell.css.js","sourceRoot":"","sources":["../../../src/styles/body-cell/body-cell.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,6+eAA6+e,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}[part~=pill]{display:inline-flex;align-items:center;block-size:20px;padding:0 8px;border-radius:var(--ag-radius-sm);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=pill--gold]{background:linear-gradient(180deg, #fff7e6 0%, var(--ag-gold) 100%);border-color:var(--ag-gold-line);color:var(--ag-gold-text)}[part~=pill--brand]{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part~=pill--neutral]{background:rgba(99,102,241,.08);border-color:rgba(99,102,241,.22);color:#4338ca}[part~=pill--muted]{background:rgba(107,114,128,.1);border-color:rgba(107,114,128,.22);color:#4b5563}[part~=avatar]{display:inline-flex;align-items:center;justify-content:center;inline-size:22px;block-size:22px;flex-shrink:0;border-radius:50%;background:hsl(var(--ag-avatar-hue, 210), 60%, 48%);color:#fff;font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-bold);line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 0 0 2px hsla(0,0%,100%,.85),0 1px 2px rgba(15,23,42,.18)}[part~=progress]{display:inline-flex;align-items:center;gap:8px;inline-size:100%}[part~=progress-track]{position:relative;flex:1;block-size:5px;min-inline-size:40px;border-radius:3px;background:rgba(15,23,42,.08);overflow:hidden}[part~=progress-fill]{display:block;block-size:100%;border-radius:3px;background:linear-gradient(90deg, #10b981 0%, #34d399 100%);transition:width var(--ag-dur-slow) var(--ag-ease)}[part~=progress-fill--good]{background:linear-gradient(90deg, #10b981 0%, #34d399 100%)}[part~=progress-fill--watch]{background:linear-gradient(90deg, #f59e0b 0%, #fbbf24 100%)}[part~=progress-fill--risk]{background:linear-gradient(90deg, #ef4444 0%, #f87171 100%)}[part~=progress-label]{min-inline-size:18px;text-align:end;font-size:11px;font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-body)}[part~=spark-cell]{display:inline-flex;align-items:center;gap:6px}[part~=sparkline]{display:block;inline-size:64px;block-size:22px;color:var(--ag-text-muted);overflow:visible}[part~=sparkline--up]{color:var(--ag-good)}[part~=sparkline--down]{color:var(--ag-risk)}[part~=spark-line]{fill:none;stroke:currentcolor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}[part~=spark-area]{fill:currentcolor;stroke:none;opacity:.18}[part~=spark-delta]{font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);font-variant-numeric:tabular-nums;color:var(--ag-text-muted)}[part~=spark-delta--up]{color:var(--ag-good-text)}[part~=spark-delta--down]{color:var(--ag-risk-text)}[part~=status]{display:inline-flex;align-items:center;gap:6px;block-size:20px;padding:0 10px;border-radius:var(--ag-radius-pill);border:1px solid rgba(0,0,0,0);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-semibold);line-height:1;white-space:nowrap}[part~=status-dot]{inline-size:6px;block-size:6px;flex-shrink:0;border-radius:50%;background:currentcolor}[part~=status--active]{background:var(--ag-good-soft);border-color:rgba(16,185,129,.28);color:var(--ag-good-text)}[part~=status--trial]{background:var(--ag-watch-soft);border-color:rgba(245,158,11,.28);color:var(--ag-watch-text)}[part~=status--churn]{background:var(--ag-risk-soft);border-color:rgba(239,68,68,.3);color:var(--ag-risk-text)}:host{position:relative;display:inline-flex;flex:1 0 0;align-items:center;padding:0 var(--ag-cell-pad-x);color:inherit;font-size:var(--ag-fs-cell);overflow-wrap:anywhere;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([data-cell-type=number]),:host([data-cell-type=currency]){font-variant-numeric:tabular-nums;font-weight:var(--ag-fw-semibold);color:var(--ag-text)}:host([active]){outline:none;box-shadow:inset 0 0 0 1px var(--igx-cell-active-border-color, var(--cell-active-border-color, var(--ag-brand)))}:host([editing]){background:var(--igx-cell-editor-background, var(--ag-surface));z-index:calc(var(--z-index-base) + 2);overflow:hidden;cursor:text}:host([editing][data-pinned=start]),:host([editing][data-pinned=end]){background:var(--igx-cell-editor-background, var(--ag-surface))}:host([editing][data-cell-type=select]){overflow:visible}:host([data-pinned=start]),:host([data-pinned=end]){position:sticky;z-index:calc(var(--z-index-base) + 1);background:inherit}:host([data-pinned=start]){inset-inline-start:var(--apex-pin-offset, 0)}:host([data-pinned=end]){inset-inline-end:var(--apex-pin-offset, 0)}:host([data-pin-edge=start])::after,:host([data-pin-edge=end])::after{content:\"\";position:absolute;inset-block:0;inline-size:1px;background:var(--ag-pin-line);pointer-events:none;z-index:1}:host([data-pin-edge=start])::after{inset-inline-end:0}:host([data-pin-edge=end])::after{inset-inline-start:0}input[data-apex-editor]{box-sizing:border-box;position:absolute;inset:0;width:auto;height:auto;padding:0 var(--ag-cell-pad-x);margin:0;border:0;background:rgba(0,0,0,0);color:inherit;font:inherit;font-size:var(--ag-fs-cell);outline:none;caret-color:var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));-webkit-user-select:text;-moz-user-select:text;user-select:text}input[type=number][data-apex-editor]{font-variant-numeric:tabular-nums}input[type=checkbox][data-apex-editor]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[type=checkbox][data-apex-editor]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[type=checkbox][data-apex-editor]:active{transform:scale(0.92)}input[type=checkbox][data-apex-editor]:checked,input[type=checkbox][data-apex-editor]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[type=checkbox][data-apex-editor]:checked{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}input[type=checkbox][data-apex-editor]:indeterminate{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E\")}input[type=checkbox][data-apex-editor]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[type=checkbox][data-apex-editor]{position:relative;inset:auto}input[part~=boolean-mark]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:14px;block-size:14px;margin:0;flex-shrink:0;box-sizing:border-box;border:1.4px solid color-mix(in srgb, var(--ag-brand) 30%, transparent);border-radius:var(--ag-radius-xs);background-color:var(--ag-surface);background-repeat:no-repeat;background-position:center;cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),transform var(--ag-dur-fast) var(--ag-ease)}input[part~=boolean-mark]:hover{border-color:color-mix(in srgb, var(--ag-brand) 55%, transparent)}input[part~=boolean-mark]:active{transform:scale(0.92)}input[part~=boolean-mark]:checked,input[part~=boolean-mark]:indeterminate{background-color:var(--ag-brand);border-color:var(--ag-brand)}input[part~=boolean-mark]:checked{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.4 5.8 10.2 11 4.2' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}input[part~=boolean-mark]:indeterminate{background-image:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='3.5' y='6.2' width='7' height='1.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E\")}input[part~=boolean-mark]:focus-visible{outline:2px solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:2px}input[part~=boolean-mark][aria-readonly=true]{cursor:default;pointer-events:none}[part~=rating]{display:inline-flex;align-items:center;gap:0.0625rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623))}[part~=rating-star]{display:inline-flex;align-items:center;justify-content:center;color:currentcolor;opacity:.25;line-height:0}[part~=rating-star] svg{inline-size:0.875rem;block-size:0.875rem}[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor]{display:inline-flex;align-items:center;gap:0.125rem;padding:0 0.125rem;color:var(--igx-rating-color, var(--ag-watch, #f5a623));z-index:calc(var(--z-index-base) + 2)}[part=rating-editor] button[part~=rating-star]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:0;margin:0;padding:0.125rem;cursor:pointer;color:currentcolor;opacity:.35;border-radius:var(--ag-radius-xs)}[part=rating-editor] button[part~=rating-star]:hover{opacity:.75}[part=rating-editor] button[part~=rating-star][part~=filled]{opacity:1}[part=rating-editor] button[part~=rating-star]:focus-visible{outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.0625rem}[part~=select-label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;inline-size:100%}[part~=select-popover]{position:absolute;inset-block-start:100%;inset-inline-start:0;margin:0.125rem 0 0;padding:0.25rem 0;min-inline-size:100%;background:var(--igx-cell-editor-background, var(--ag-surface));border:0.0625rem solid var(--ag-brand-line);border-radius:var(--ag-radius-sm);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,.06),0 0.375rem 1rem rgba(0,0,0,.12);max-block-size:15rem;overflow-y:auto;outline:none;z-index:calc(var(--z-index-base) + 10);color:inherit;font:inherit}[part~=select-option]{display:block;padding:0.375rem 0.75rem;cursor:pointer;color:inherit;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[part~=select-option]:hover{background:var(--ag-brand-softer)}[part~=select-option][part~=selected]{background:var(--ag-brand-soft);color:var(--ag-brand-strong);font-weight:var(--ag-fw-semibold)}[part~=select-option]:focus-visible{background:var(--ag-brand-soft);outline:0.125rem solid var(--igx-cell-editor-accent-color, var(--cell-active-border-color, var(--ag-brand)));outline-offset:-0.125rem}[part~=image]{block-size:calc(100% - 0.5rem);max-block-size:2.5rem;inline-size:auto;aspect-ratio:1/1;-o-object-fit:cover;object-fit:cover;border-radius:var(--ag-radius-xs);display:block;flex-shrink:0}[part~=image][part~=circle]{border-radius:50%}[part=tree-indent]{flex-shrink:0;display:inline-block}[part=tree-toggle]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem;padding:0;border:1px solid rgba(0,0,0,0);border-radius:var(--ag-radius-xs);background:rgba(0,0,0,0);color:var(--ag-text-muted);cursor:pointer;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease)}[part=tree-toggle]:hover{background:var(--ag-brand-soft);border-color:var(--ag-brand-line);color:var(--ag-brand-strong)}[part=tree-toggle]:focus-visible{outline:0.125rem solid color-mix(in srgb, var(--ag-brand) 50%, transparent);outline-offset:0.0625rem}[part=tree-chevron]{transition:transform var(--ag-dur-med) var(--ag-ease)}:host([data-tree-expanded]) [part=tree-chevron]{transform:rotate(90deg)}[part=tree-spacer]{display:inline-block;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-inline-end:0.25rem}[part=tree-cell-content]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([data-invalid]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444))}:host([data-invalid][editing]){box-shadow:inset 0 0 0 1px var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));overflow:visible}[part~=cell-error]{position:absolute;inset-block-start:100%;inset-inline-start:0;z-index:calc(var(--z-index-base) + 11);margin-block-start:0.125rem;padding:0.125rem 0.375rem;max-inline-size:13.75rem;background:var(--ag-surface, #fff);color:var(--ag-risk-text, #b91c1c);border:0.0625rem solid var(--igx-cell-invalid-border-color, var(--ag-risk, #ef4444));border-radius:var(--ag-radius-xs);font-size:var(--ag-fs-cell-secondary);font-weight:var(--ag-fw-regular);line-height:1.3;white-space:normal;pointer-events:none;box-shadow:0 0.125rem 0.375rem rgba(0,0,0,.12)}:host([data-range]){background:var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 12%, transparent))}:host([data-range~=active]){background:var(--apex-range-active-fill, var(--apex-range-fill, color-mix(in srgb, var(--ag-brand) 20%, transparent)))}:host([data-range])::before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;border:0 solid var(--apex-range-border, var(--ag-brand))}:host([data-range-edge~=top])::before{border-block-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=bottom])::before{border-block-end-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=left])::before{border-inline-start-width:var(--apex-range-border-width, 1px)}:host([data-range-edge~=right])::before{border-inline-end-width:var(--apex-range-border-width, 1px)}:host([data-range-handle])::after{content:\"\";position:absolute;inset-inline-end:-1px;inset-block-end:-1px;inline-size:7px;block-size:7px;background:var(--apex-range-border, var(--ag-brand));border:1px solid var(--ag-surface, #fff);z-index:4;pointer-events:none}:host([data-formula-ref]){--apex-formula-ref: var(--ag-brand);background:color-mix(in srgb, var(--apex-formula-ref) 14%, transparent);box-shadow:inset 0 0 0 1px var(--apex-formula-ref)}:host([data-formula-ref=\"0\"]){--apex-formula-ref: var(--apex-formula-ref-0, #2563eb)}:host([data-formula-ref=\"1\"]){--apex-formula-ref: var(--apex-formula-ref-1, #16a34a)}:host([data-formula-ref=\"2\"]){--apex-formula-ref: var(--apex-formula-ref-2, #d97706)}:host([data-formula-ref=\"3\"]){--apex-formula-ref: var(--apex-formula-ref-3, #db2777)}:host([data-formula-ref=\"4\"]){--apex-formula-ref: var(--apex-formula-ref-4, #7c3aed)}:host([data-formula-ref=\"5\"]){--apex-formula-ref: var(--apex-formula-ref-5, #0891b2)}:host([data-formula-pointer]){--apex-formula-pointer: var(--ag-brand);background:color-mix(in srgb, var(--apex-formula-pointer) 10%, transparent)}:host([data-formula-pointer])::before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:2;border:0 dashed var(--apex-formula-pointer, var(--ag-brand))}:host([data-formula-pointer-edge~=top])::before{border-block-start-width:var(--apex-formula-pointer-width, 1.5px)}:host([data-formula-pointer-edge~=bottom])::before{border-block-end-width:var(--apex-formula-pointer-width, 1.5px)}:host([data-formula-pointer-edge~=left])::before{border-inline-start-width:var(--apex-formula-pointer-width, 1.5px)}:host([data-formula-pointer-edge~=right])::before{border-inline-end-width:var(--apex-formula-pointer-width, 1.5px)}`;"]}
|