fix: resolve all linter errors and a11y warnings
CI / test (push) Has been cancelled
CI / docker-build (push) Has been cancelled
CI / lint-and-check (push) Has been cancelled

- Fix TS errors: editMode property order, implicit any, string|undefined
- Add $state() to bind:this element refs (IconGrid, EntityPicker, etc.)
- Fix a11y: labels, aria-labels, roles, tabindex on dialogs
- Remove unused imports (tick, svelte-i18n)
- Make AutocompleteInput/TagsInput accept optional string values
This commit is contained in:
2026-04-10 19:05:25 +03:00
parent f96cbbca56
commit 44e1849821
20 changed files with 59 additions and 33 deletions
@@ -196,6 +196,7 @@
{/if}
{:else if cardSize === 'large'}
<!-- Large: icon + name + description + sparkline + tags + links -->
<!-- svelte-ignore a11y_no_static_element_interactions -->
<div
class="card-hover group rounded-xl {cardStyleClass} p-5 transition-colors hover:border-primary/50"
data-app-widget
@@ -291,6 +292,7 @@
</div>
{:else}
<!-- Medium (default): icon + name + status + sparkline on hover + links -->
<!-- svelte-ignore a11y_no_static_element_interactions -->
<div
class="card-hover group rounded-xl {cardStyleClass} p-4 transition-colors hover:border-primary/50"
data-app-widget
@@ -363,6 +363,7 @@
<div class="mb-3 rounded-lg border border-border bg-muted/50 p-3">
<!-- Widget Type Selector (Icon Grid) -->
<div class="mb-3">
<!-- svelte-ignore a11y_label_has_associated_control -->
<label class="mb-1 block text-sm font-medium text-foreground">
Widget Type
</label>
@@ -376,6 +377,7 @@
<!-- Type-specific config forms -->
{#if selectedWidgetType === 'app'}
<div>
<!-- svelte-ignore a11y_label_has_associated_control -->
<label class="mb-1 block text-sm font-medium text-foreground">
{$t('widget.select_app')}
</label>
@@ -434,6 +436,7 @@
{:else if selectedWidgetType === 'note'}
<div class="space-y-3">
<div>
<!-- svelte-ignore a11y_label_has_associated_control -->
<label class="mb-1 block text-sm font-medium text-foreground">Format</label>
<IconGrid
items={noteFormatItems}
@@ -516,6 +519,7 @@
{:else if selectedWidgetType === 'clock'}
<div class="space-y-3">
<div>
<!-- svelte-ignore a11y_label_has_associated_control -->
<label class="mb-1 block text-sm font-medium text-foreground">Clock Style</label>
<IconGrid
items={clockStyleItems}
@@ -760,6 +764,7 @@
/>
</div>
<div>
<!-- svelte-ignore a11y_label_has_associated_control -->
<label class="mb-1 block text-sm font-medium text-foreground">Source Type</label>
<IconGrid
items={metricSourceItems}