- Add DataTable.svelte: declarative columns, built-in sorting, sticky headers, text truncation, column alignment, configurable widths, optional pagination/search - 12 built-in renderers: BadgeRenderer, StatusBadgeRenderer (unified risk/severity/ execution/state/type variant mapping), HealthDotRenderer, RelativeTimeRenderer, DateRenderer, DurationRenderer, StatusDotRenderer, SignalActions, ApprovalActions, ActivityAction, ActivityCancel - Migrate Overview (task board), Signals, Ops (3 tables) to DataTable - Refactor EntityTable treegrid to use shared SortHeader, EmptyState, HealthDotRenderer - Create shared components: EmptyState, StatusBadge, FilterTabs - Clean up Knowledge.svelte: replace inline relTime() and typeVariant() with shared utils - Add width, align, truncate column props; table-fixed layout; rounded-xl borders - Bump version to 0.11.0
15 lines
325 B
Svelte
15 lines
325 B
Svelte
<script lang="ts">
|
|
let { value }: { value: unknown } = $props()
|
|
|
|
function format(val: unknown): string {
|
|
if (!val) return '—'
|
|
try {
|
|
return new Date(String(val)).toLocaleString()
|
|
} catch {
|
|
return String(val)
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<span class="text-xs text-muted-foreground">{format(value)}</span>
|