fix: resolve svelte-check warnings (non-IDAA batch)
- Remove dead .field_editing_wrapper CSS rules from element_ae_crud_v2.svelte (template migrated to field_editing_wrapper_v2 with Tailwind) - Fix TS error: use optional chaining on person_obj key in ae_comp__person_obj_tbl.svelte - Fix state_referenced_locally: wrap data.user init with untrack() in users/[user_id]/+page.svelte - Replace misused <label> with <span> for visual section headings (a11y) in: launcher_cfg_native_os.svelte, launcher_cfg_health.svelte, launcher_cfg_local_actions.svelte, launcher_cfg_template.svelte
This commit is contained in:
@@ -368,8 +368,8 @@
|
|||||||
></textarea>
|
></textarea>
|
||||||
{:else if field_type == 'tiptap'}
|
{:else if field_type == 'tiptap'}
|
||||||
<div class="w-full min-w-96 text-left">
|
<div class="w-full min-w-96 text-left">
|
||||||
<AE_Comp_Editor_TipTap
|
<AE_Comp_Editor_TipTap
|
||||||
bind:content={new_field_value}
|
bind:content={new_field_value}
|
||||||
placeholder="Start typing..."
|
placeholder="Start typing..."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -470,92 +470,6 @@
|
|||||||
transition-timing-function: linear;
|
transition-timing-function: linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ae_crud .field_editing_wrapper {
|
|
||||||
/* outline: dashed thin pink; */
|
|
||||||
|
|
||||||
/* position: relative; */
|
|
||||||
|
|
||||||
/* contain: layout; */
|
|
||||||
/* contain: size; */
|
|
||||||
/* contain: none; */
|
|
||||||
contain: content;
|
|
||||||
|
|
||||||
box-shadow: 0.5em 0.5em 0.75em 0.75em hsla(0, 0%, 0%, 0.5);
|
|
||||||
|
|
||||||
/* color: hsla(0,0%,50%,.8); */
|
|
||||||
/* background-color: hsla(0,0%,50%,.5); */
|
|
||||||
/* border: dashed thin transparent; */
|
|
||||||
|
|
||||||
/* background-color: yellow; */
|
|
||||||
background-color: hsla(60, 50%, 80%, 0.95);
|
|
||||||
border: solid thin hsla(0, 50%, 50%, 0.5);
|
|
||||||
border-radius: 0.5em;
|
|
||||||
|
|
||||||
height: auto;
|
|
||||||
/* height: 100%; */
|
|
||||||
max-height: 100%;
|
|
||||||
|
|
||||||
min-width: fit-content;
|
|
||||||
width: auto;
|
|
||||||
max-width: 100%;
|
|
||||||
|
|
||||||
/* font-size: 1em; */
|
|
||||||
/* line-height: 1em; */
|
|
||||||
|
|
||||||
/* NOTE: transition when hover ends */
|
|
||||||
transition-property: background-color, border-color, color, height, width;
|
|
||||||
transition-delay: 0.75s; /* short delay */
|
|
||||||
transition-duration: 0.5s;
|
|
||||||
transition-timing-function: linear;
|
|
||||||
|
|
||||||
z-index: 1;
|
|
||||||
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ae_crud.show_crud.display_inline .field_editing_wrapper:hover {
|
|
||||||
background-color: hsla(60, 60%, 90%, 0.8);
|
|
||||||
z-index: 55;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ae_crud.show_crud.display_inline .field_editing_wrapper {
|
|
||||||
/* display: block; */
|
|
||||||
display: inline-block;
|
|
||||||
/* display: inline; */
|
|
||||||
|
|
||||||
box-shadow: initial;
|
|
||||||
background-color: hsla(60, 50%, 80%, 0.4);
|
|
||||||
|
|
||||||
padding: 0.25em;
|
|
||||||
|
|
||||||
position: initial;
|
|
||||||
|
|
||||||
z-index: 0;
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
gap: 0.5em;
|
|
||||||
|
|
||||||
width: 30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ae_crud.show_crud.display_inline .field_editing_wrapper.display_block_edit {
|
|
||||||
/* display: block; */
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
gap: 0.5em;
|
|
||||||
|
|
||||||
flex-grow: 1;
|
|
||||||
|
|
||||||
height: auto;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ae_crud textarea {
|
.ae_crud textarea {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each $lq_kv__person_obj_li as person_obj (person_obj.person_id_random)}
|
{#each $lq_kv__person_obj_li as person_obj (person_obj?.person_id_random)}
|
||||||
<tr class:dim={person_obj?.hide}>
|
<tr class:dim={person_obj?.hide}>
|
||||||
<td class="px-4 py-2">
|
<td class="px-4 py-2">
|
||||||
<span class="fas fa-user"></span>
|
<span class="fas fa-user"></span>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount } from 'svelte';
|
import { onMount, untrack } from 'svelte';
|
||||||
import { ae_loc, ae_api } from '$lib/stores/ae_stores';
|
import { ae_loc, ae_api } from '$lib/stores/ae_stores';
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
import { update_ae_obj__user, delete_ae_obj_id__user } from '$lib/ae_core/ae_core__user';
|
import { update_ae_obj__user, delete_ae_obj_id__user } from '$lib/ae_core/ae_core__user';
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
let { data }: Props = $props();
|
let { data }: Props = $props();
|
||||||
let user = $state(data.user);
|
let user = $state(untrack(() => data.user));
|
||||||
let saving = $state(false);
|
let saving = $state(false);
|
||||||
|
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
const meta = $ae_loc.native_device?.meta_json;
|
const meta = $ae_loc.native_device?.meta_json;
|
||||||
// loadavg is [1m, 5m, 15m] - use 1m load
|
// loadavg is [1m, 5m, 15m] - use 1m load
|
||||||
if (!meta?.loadavg || !Array.isArray(meta.loadavg)) return 15;
|
if (!meta?.loadavg || !Array.isArray(meta.loadavg)) return 15;
|
||||||
|
|
||||||
// Load average is usually 0.0 to N (cores). Normalize to 0-100 based on cores if available.
|
// Load average is usually 0.0 to N (cores). Normalize to 0-100 based on cores if available.
|
||||||
const load = meta.loadavg[0];
|
const load = meta.loadavg[0];
|
||||||
const cores = (meta.cpus || []).length || 1;
|
const cores = (meta.cpus || []).length || 1;
|
||||||
@@ -166,8 +166,8 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-2 opacity-40">
|
<div class="mt-2 opacity-40">
|
||||||
<label class="text-[8px] uppercase font-bold"
|
<span class="text-[8px] uppercase font-bold"
|
||||||
>Raw Device JSON</label
|
>Raw Device JSON</span
|
||||||
>
|
>
|
||||||
<pre
|
<pre
|
||||||
class="text-[7px] max-h-32 overflow-y-auto bg-black/20 p-1 rounded mt-1">
|
class="text-[7px] max-h-32 overflow-y-auto bg-black/20 p-1 rounded mt-1">
|
||||||
|
|||||||
@@ -72,9 +72,9 @@
|
|||||||
<div class="col-span-full flex flex-col gap-3">
|
<div class="col-span-full flex flex-col gap-3">
|
||||||
<!-- 1. Reset Actions -->
|
<!-- 1. Reset Actions -->
|
||||||
<div class="flex flex-col gap-1">
|
<div class="flex flex-col gap-1">
|
||||||
<label
|
<span
|
||||||
class="text-[9px] font-bold uppercase opacity-50 ml-1 text-error-500"
|
class="text-[9px] font-bold uppercase opacity-50 ml-1 text-error-500"
|
||||||
>Maintenance & Resets</label
|
>Maintenance & Resets</span
|
||||||
>
|
>
|
||||||
<select
|
<select
|
||||||
bind:value={selected_reset}
|
bind:value={selected_reset}
|
||||||
|
|||||||
@@ -205,9 +205,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col gap-1">
|
<div class="flex flex-col gap-1">
|
||||||
<label
|
<span
|
||||||
class="text-[9px] font-bold uppercase opacity-50 text-error-500"
|
class="text-[9px] font-bold uppercase opacity-50 text-error-500"
|
||||||
>Power</label
|
>Power</span
|
||||||
>
|
>
|
||||||
<div class="grid grid-cols-1 gap-1">
|
<div class="grid grid-cols-1 gap-1">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -159,9 +159,9 @@
|
|||||||
<!-- Dangerous Actions -->
|
<!-- Dangerous Actions -->
|
||||||
<div class="grid grid-cols-2 gap-2">
|
<div class="grid grid-cols-2 gap-2">
|
||||||
<div class="flex flex-col gap-1">
|
<div class="flex flex-col gap-1">
|
||||||
<label
|
<span
|
||||||
class="text-[9px] font-bold uppercase opacity-50 text-warning-500"
|
class="text-[9px] font-bold uppercase opacity-50 text-warning-500"
|
||||||
>System Config</label
|
>System Config</span
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@@ -173,9 +173,9 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col gap-1">
|
<div class="flex flex-col gap-1">
|
||||||
<label
|
<span
|
||||||
class="text-[9px] font-bold uppercase opacity-50 text-error-500"
|
class="text-[9px] font-bold uppercase opacity-50 text-error-500"
|
||||||
>Danger Zone</label
|
>Danger Zone</span
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@@ -189,9 +189,9 @@
|
|||||||
<!-- Form Inputs -->
|
<!-- Form Inputs -->
|
||||||
<div class="grid grid-cols-1 gap-2">
|
<div class="grid grid-cols-1 gap-2">
|
||||||
<div class="flex flex-col gap-1">
|
<div class="flex flex-col gap-1">
|
||||||
<label
|
<span
|
||||||
class="text-[9px] font-bold uppercase opacity-50 ml-1"
|
class="text-[9px] font-bold uppercase opacity-50 ml-1"
|
||||||
>Raw Settings</label
|
>Raw Settings</span
|
||||||
>
|
>
|
||||||
<div class="flex gap-1">
|
<div class="flex gap-1">
|
||||||
<input
|
<input
|
||||||
|
|||||||
Reference in New Issue
Block a user