web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

commit a9cfe61e53baac595ce39942b79abb512f4b9044
parent 36308e8d2d0866d2be9b8e94a3e80305d0b0aa5a
Author: triesap <triesap@radroots.dev>
Date:   Fri, 21 Nov 2025 01:12:30 +0000

apps-lib-pwa: refactor map defaults with improved geocode zoom, remove farm contact input from farm details, add circle loading indicator

Diffstat:
Mapps-lib-pwa/src/lib/components/farm/farms-add-detail.svelte | 16+++-------------
Mapps-lib-pwa/src/lib/components/farm/farms-add-map.svelte | 1+
Mapps-lib-pwa/src/lib/components/form/entry-line.svelte | 4++--
Aapps-lib-pwa/src/lib/components/lib/load-circle.svelte | 30++++++++++++++++++++++++++++++
Mapps-lib-pwa/src/lib/components/map/map.svelte | 4++--
Mapps-lib-pwa/src/lib/index.ts | 1+
Mapps-lib-pwa/src/lib/types/components/lib.ts | 7++++++-
7 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/apps-lib-pwa/src/lib/components/farm/farms-add-detail.svelte b/apps-lib-pwa/src/lib/components/farm/farms-add-detail.svelte @@ -88,21 +88,11 @@ input: { placeholder: `${`${$ls(`icu.enter_*`, { value: `${$ls(`common.farm_size`)}`.toLowerCase(), - })}`} ${`${$ls(`units.area.${val_farmarea_unit}_pl`)}`.toLowerCase()}`, + })}`} ${`${$ls( + `units.area.${val_farmarea_unit}_pl`, + )}`.toLowerCase()}`, field: form_fields.farm_size, }, }} /> - <FormLineLedger - bind:value={val_farmcontact} - basis={{ - id: `farm_contact`, - label: `${$ls(`common.farm_contact`)}`, - input: { - placeholder: `${$ls(`icu.enter_*`, { - value: `${$ls(`common.contact_name`)}`.toLowerCase(), - })}`, - }, - }} - /> </div> diff --git a/apps-lib-pwa/src/lib/components/farm/farms-add-map.svelte b/apps-lib-pwa/src/lib/components/farm/farms-add-map.svelte @@ -39,6 +39,7 @@ if (!geoc) return; map_geoc = geoc; if (map && map_geop) map.setCenter([map_geop.lng, map_geop.lat]); + map?.setZoom(13); focus_map_marker(); } catch (e) { handle_err(e, `on_mount`); diff --git a/apps-lib-pwa/src/lib/components/form/entry-line.svelte b/apps-lib-pwa/src/lib/components/form/entry-line.svelte @@ -6,7 +6,7 @@ type LoadingDimension, } from "@radroots/apps-lib"; import InputValue from "../lib/input-value.svelte"; - import LoadSymbol from "../lib/load-symbol.svelte"; + import LoadCircle from "../lib/load-circle.svelte"; import EntryWrap from "./entry-wrap.svelte"; let { @@ -44,7 +44,7 @@ <div class={`z-5 absolute right-0 top-0 flex flex-row h-full pr-4 justify-end items-center fade-in el-re`} > - <LoadSymbol + <LoadCircle basis={{ dim: loading_dim, }} diff --git a/apps-lib-pwa/src/lib/components/lib/load-circle.svelte b/apps-lib-pwa/src/lib/components/lib/load-circle.svelte @@ -0,0 +1,30 @@ +<script lang="ts"> + import type { ILoadCircle } from "$lib/types/components/lib"; + import { loading_style_map } from "$lib/utils/styles"; + import { fmt_cl, Glyph } from "@radroots/apps-lib"; + + let { + basis = undefined, + }: { + basis?: ILoadCircle; + } = $props(); + + const styles = $derived( + basis?.dim + ? loading_style_map.get(basis?.dim) + : loading_style_map.get("sm"), + ); +</script> + +<div + class={`relative flex flex-row justify-center items-center h-[${styles?.dim_1}px] w-[${styles?.dim_1}px] fade-in el-re`} +> + <Glyph + basis={{ + classes: `${fmt_cl( + basis?.classes, + )} text-base text-ly0-gl-a animate-spin-slow`, + key: "circle-notch", + }} + /> +</div> diff --git a/apps-lib-pwa/src/lib/components/map/map.svelte b/apps-lib-pwa/src/lib/components/map/map.svelte @@ -33,9 +33,9 @@ bind:map class="{fmt_cl(basis?.classes)} relative h-full w-full" zoom={10} - style={cfg_map.styles.base[$theme_mode || "light"]} + style={cfg_map.styles.base[$theme_mode ?? "light"]} attributionControl={false} - {interactive} + interactive={!!interactive} {zoomOnDoubleClick} > {@render children()} diff --git a/apps-lib-pwa/src/lib/index.ts b/apps-lib-pwa/src/lib/index.ts @@ -20,6 +20,7 @@ export { default as CarouselItem } from "./components/lib/carousel-item.svelte"; export { default as Css } from "./components/lib/css.svelte"; export { default as InputPwa } from "./components/lib/input-pwa.svelte"; export { default as InputValue } from "./components/lib/input-value.svelte"; +export { default as LoadCircle } from "./components/lib/load-circle.svelte"; export { default as LoadSymbol } from "./components/lib/load-symbol.svelte"; export { default as LogoCircleSm } from "./components/lib/logo-circle-sm.svelte"; export { default as LogoCircle } from "./components/lib/logo-circle.svelte"; diff --git a/apps-lib-pwa/src/lib/types/components/lib.ts b/apps-lib-pwa/src/lib/types/components/lib.ts @@ -1,4 +1,4 @@ -import type { CallbackRoute, GeometryScreenPositionHorizontal, ICb, ICbOpt, IClOpt, IDisabledOpt, IGlyph, IGlyphKey, ILoadingOpt, ILyOpt } from "@radroots/apps-lib"; +import type { CallbackRoute, GeometryScreenPositionHorizontal, ICb, ICbOpt, IClOpt, IDisabledOpt, IGlyph, IGlyphKey, ILoadingOpt, ILyOpt, LoadingDimension } from "@radroots/apps-lib"; import type { CallbackPromise, CallbackPromiseGeneric } from "@radroots/utils"; export type IButtonSimple = ILyOpt & { @@ -51,3 +51,7 @@ export type ICarouselItem<T extends string> = IClOpt & { callback_click?: CallbackPromiseGeneric<CarouselMouseEvent>; callback_keydown?: CallbackPromiseGeneric<CarouselKeyboardEvent>; }; + +export type ILoadCircle = IClOpt & { + dim?: LoadingDimension; +}; +\ No newline at end of file