Lots of work on upgrading to Tailwind CSS 4. Still more to go. Need to fix Modals everywhere.

This commit is contained in:
Scott Idem
2025-06-18 20:36:09 -04:00
parent 13912fd145
commit 376837950e
15 changed files with 319 additions and 111 deletions

View File

@@ -689,8 +689,8 @@ $: {
<span
class="*:hover:inline px-1 rounded-md"
class:preset-tonal-warning border border-warning-500={!$events_loc.launcher.ws_connect}
class:preset-tonal-success border border-success-500={$events_loc.launcher.ws_connect}
class:preset-tonal-warning={!$events_loc.launcher.ws_connect}
class:preset-tonal-success={$events_loc.launcher.ws_connect}
>
{#if $events_sess.launcher.ws_connect_status == 'connected'}
<span class="fas fa-wifi mx-1"></span>
@@ -708,8 +708,8 @@ $: {
<span
class:hidden={$events_loc.launcher.app_mode != 'native'}
class="*:hover:inline px-1 rounded-md"
class:preset-tonal-warning border border-warning-500={!$events_sess.launcher?.av_recording_status}
class:preset-tonal-success border border-success-500={$events_sess.launcher?.av_recording_status}
class:preset-tonal-warning={!$events_sess.launcher?.av_recording_status}
class:preset-tonal-success={$events_sess.launcher?.av_recording_status}
>
{#if $events_sess.launcher?.av_recording_status}
<span class="fas fa-video mx-1"></span>
@@ -745,6 +745,7 @@ $: {
class:hover:opacity-75={!$ae_loc.trusted_access}
>
<span class="fas fa-biohazard"></span>
<span class="hidden">Launcher Config</span>
</button>
</div>
@@ -824,8 +825,12 @@ $: {
>
Debug
</h2>
<button on:click={() => ($events_loc.launcher.hide_drawer__debug = true)} class="mb-4 dark:text-white">
<button
on:click={() => ($events_loc.launcher.hide_drawer__debug = true)}
class="mb-4 dark:text-white"
>
<span class="fas fa-times"></span>
<span class="hidden">Close Debug Drawer</span>
</button>
</div>

View File

@@ -149,8 +149,8 @@ export let lq__event_obj: any;
$events_loc.pres_mgmt.save_search_text = !$events_loc.pres_mgmt.save_search_text;
}}
class="btn btn-sm"
class:preset-tonal-success border border-success-500={$events_loc.pres_mgmt.save_search_text}
class:preset-tonal-warning border border-warning-500={!$events_loc.pres_mgmt.save_search_text}
class:preset-tonal-success={$events_loc.pres_mgmt.save_search_text}
class:preset-tonal-warning={!$events_loc.pres_mgmt.save_search_text}
title="Save the search text for this session search?"
>
{#if $events_loc.pres_mgmt.save_search_text}

View File

@@ -113,7 +113,7 @@ export let lq__event_obj: any;
}}
class="btn btn-sm"
class:preset-tonal-success border border-success-500={$events_loc.pres_mgmt?.show_content__location_devices_sessions== 'sessions'}
class:preset-tonal-warning border border-warning-500={$events_loc.pres_mgmt?.show_content__location_devices_sessions== 'devices'}
class:preset-tonal-warning border-warning-500={$events_loc.pres_mgmt?.show_content__location_devices_sessions== 'devices'}
title="Show the session list or device list."
>
{#if $events_loc.pres_mgmt.show_content__location_devices_sessions == 'sessions'}

View File

@@ -224,7 +224,7 @@ let ae_triggers: key_val = {};
}}
class="btn btn-sm m-1 transition-all hover:transition-all *:hover:inline"
class:preset-outlined-surface-500={!$lq__event_presenter_obj?.priority}
class:preset-tonal-success border border-success-500={$lq__event_presenter_obj?.priority}
class:preset-tonal-success={$lq__event_presenter_obj?.priority}
>
{#if $lq__event_presenter_obj?.priority}
<span class="fas fa-star m-1"></span>
@@ -277,7 +277,7 @@ let ae_triggers: key_val = {};
ae_triggers.hide = true;
}}
class="btn btn-sm m-1 transition-all hover:transition-all *:hover:inline"
class:preset-tonal-success border border-success-500={!$lq__event_presenter_obj?.hide}
class:preset-tonal-success={!$lq__event_presenter_obj?.hide}
class:preset-outlined-warning-500={$lq__event_presenter_obj?.hide}
disabled={!$ae_loc.trusted_access}
>
@@ -333,7 +333,7 @@ let ae_triggers: key_val = {};
ae_triggers.enable = true;
}}
class="btn btn-sm"
class:preset-tonal-success border border-success-500={$lq__event_presenter_obj?.enable}
class:preset-tonal-success={$lq__event_presenter_obj?.enable}
class:preset-outlined-warning-500={!$lq__event_presenter_obj?.enable}
disabled={!$ae_loc.manager_access}
>

View File

@@ -193,7 +193,7 @@ onMount(() => {
}
}}
class="btn btn-md hover:preset-filled-primary-500"
class:preset-tonal-tertiary border border-tertiary-500={$events_loc.pres_mgmt.show_content__session_view == 'manage_files'}
class:preset-tonal-tertiary={$events_loc.pres_mgmt.show_content__session_view == 'manage_files'}
class:preset-filled-tertiary-500={$events_loc.pres_mgmt.show_content__session_view != 'manage_files'}
class:hidden={!$ae_loc.public_access}
title="View session information or manage files for the session"
@@ -389,7 +389,7 @@ onMount(() => {
lq__event_presenter_obj={lq__event_presenter_obj}
/>
<svelte:fragment slot="footer">
<footer class="flex justify-end gap-4">
<div class="text-center w-full">
<button
@@ -402,10 +402,6 @@ onMount(() => {
Close
</button>
</div>
</svelte:fragment>
</footer>
</Modal>
<style lang="postcss">
</style>

View File

@@ -1,9 +1,11 @@
<script lang="ts">
export let log_lvl: number = 0;
import { run } from 'svelte/legacy';
// Imports (external and then internal)
import { browser } from '$app/environment';
// import { liveQuery } from "dexie";
import { Clipboard } from "flowbite-svelte";
import { ae_util } from '$lib/ae_utils/ae_utils';
@@ -20,16 +22,23 @@ import { events_func } from '$lib/ae_events_functions';
// import { db_events } from "$lib/db_events";
// Exports
export let class_li: string = 'outline';
// export let event_session_id: string;
// export let lq__event_obj: any;
export let lq__event_session_obj: any;
interface Props {
log_lvl?: number;
// Exports
class_li?: string;
// export let lq__event_obj: any;
lq__event_session_obj: any;
}
let { log_lvl = 0, class_li = 'outline', lq__event_session_obj }: Props = $props();
// export let event_session_obj_poc_profile: any|key_val;
// Local Variables
let ae_promises: key_val = {};
let ae_tmp: key_val = {};
let ae_promises: key_val = $state({});
let ae_tmp: key_val = $state({});
// let ae_triggers: key_val = {};
ae_tmp.biography = null;
@@ -37,15 +46,19 @@ ae_tmp.biography = null;
let poc_type = $events_loc.pres_mgmt.label__session_poc_type;
let poc_name = $events_loc.pres_mgmt.label__session_poc_name;
$: if (browser && ae_tmp.biography === null && $lq__event_session_obj?.poc_kv_json && $lq__event_session_obj?.poc_kv_json[poc_type]?.biography) {
run(() => {
if (browser && ae_tmp.biography === null && $lq__event_session_obj?.poc_kv_json && $lq__event_session_obj?.poc_kv_json[poc_type]?.biography) {
ae_tmp.biography = $lq__event_session_obj?.poc_kv_json[poc_type].biography;
console.log(`ae_tmp.biography:`, ae_tmp.biography);
}
});
// $: if ($lq__event_session_obj?.poc_kv_json) {
// lq__event_session_obj.poc_kv_json = JSON.parse(lq__event_session_obj.poc_kv_json);
// }
let clipboard_success = $state(false);
</script>
@@ -57,7 +70,7 @@ $: if (browser && ae_tmp.biography === null && $lq__event_session_obj?.poc_kv_js
<span class="float-right">
<!-- A button to copy the access link to the clipboard. -->
<!-- Example: /events/CHs3F44Xq76/session/Wh8UnJlbIA0?person_id=fV1dl_IJ0yY&person_pass=abc123 -->
<button
<!-- <button
type="button"
use:clipboard={encodeURI(`${$ae_loc.url_origin}/events/${$events_slct.event_id}/session/${$events_slct.event_session_id}?person_id=${$lq__event_session_obj.poc_person_id_random}&person_pass=${$lq__event_session_obj.poc_person_passcode}&session_id=${$lq__event_session_obj.event_session_id_random}`)}
class="btn btn-sm preset-tonal-warning border border-warning-500 m-1"
@@ -65,7 +78,17 @@ $: if (browser && ae_tmp.biography === null && $lq__event_session_obj?.poc_kv_js
>
<span class="fas fa-copy mx-1"></span>
Copy Access Link
</button>
</button> -->
<Clipboard
value={encodeURI(`${$ae_loc.url_origin}/events/${$lq__event_session_obj.event_id}/session/${$events_slct.event_session_id}?person_id=${$lq__event_session_obj.poc_person_id}&person_pass=${$lq__event_session_obj.poc_person_passcode}&session_id=${$lq__event_session_obj.event_session_id}`)}
bind:success={clipboard_success}
class="btn btn-sm preset-tonal-warning text-warning-500 m-1"
title="Copy the POC (moderator/champion) access link to the clipboard."
>
{#if clipboard_success}Copied!{:else}Copy Access Link{/if}
</Clipboard>
</span>
{/if}
@@ -85,7 +108,7 @@ $: if (browser && ae_tmp.biography === null && $lq__event_session_obj?.poc_kv_js
>
<div class="label event_session__biography required space-y-4">
<button
<!-- <button
type="button"
use:clipboard={ae_tmp.biography?.trim()}
class="btn btn-sm preset-tonal-warning border border-warning-500 float-right m-1"
@@ -94,7 +117,16 @@ $: if (browser && ae_tmp.biography === null && $lq__event_session_obj?.poc_kv_js
>
<span class="fas fa-copy mx-1"></span>
Copy Biography Text
</button>
</button> -->
<Clipboard
value={ae_tmp.biography?.trim()}
bind:success={clipboard_success}
class="btn btn-sm preset-tonal-warning text-warning-500 float-right m-1"
title="Copy the session POC biography text to the clipboard."
>
{#if clipboard_success}Copied!{:else}Copy Biography Text{/if}
</Clipboard>
<label for="session_poc__biography" class="label">
<span class="fas fa-book"></span>
@@ -127,7 +159,7 @@ $: if (browser && ae_tmp.biography === null && $lq__event_session_obj?.poc_kv_js
type="button"
class="btn btn-md preset-tonal-primary hover:preset-filled-primary-500"
disabled={(ae_tmp.biography == $lq__event_session_obj.biography)}
on:click={() => {
onclick={() => {
console.log('*** Save button clicked ***');
let event_session_data = {poc_kv_json: $lq__event_session_obj.poc_kv_json};

View File

@@ -1,5 +1,24 @@
<script lang="ts">
export let log_lvl: number = 0;
import { run } from 'svelte/legacy';
interface Props {
log_lvl?: number;
// export let lq__event_obj: any;
lq__event_presenter_obj: any; // This is the currently selected presenter.
lq__event_session_obj: any;
// );
lq__auth__event_presenter_obj: any;
lq__event_presentation_obj_li: any;
}
let {
log_lvl = 0,
lq__event_presenter_obj,
lq__event_session_obj,
lq__auth__event_presenter_obj,
lq__event_presentation_obj_li
}: Props = $props();
if (log_lvl) {
console.log(`ae_events_pres_mgmt session_view.svelte`);
}
@@ -7,6 +26,7 @@ if (log_lvl) {
// Imports (external and then internal)
import { liveQuery } from "dexie";
import { Modal } from 'flowbite-svelte';
import { Clipboard } from "flowbite-svelte";
// const dispatch = createEventDispatcher();
@@ -14,9 +34,10 @@ import type { key_val } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils/ae_utils';
import Element_ae_crud from '$lib/element_ae_crud.svelte';
// import Element_data_store from '$lib/element_data_store_v2.svelte';
import MyClipboard from '$lib/e_app_clipboard.svelte';
let ae_promises: key_val = {};
let ae_tmp: key_val = {};
let ae_promises: key_val = $state({});
let ae_tmp: key_val = $state({});
let ae_triggers: key_val = {};
import { core_func } from '$lib/ae_core/ae_core_functions';
@@ -48,17 +69,14 @@ $events_sess.pres_mgmt.show_content__presenter_start = false;
// let poc_type = $events_loc.pres_mgmt.label__session_poc_type;
// export let lq__event_obj: any;
export let lq__event_presenter_obj: any; // This is the currently selected presenter.
export let lq__event_session_obj: any;
// let lq__event_session_obj = liveQuery(
// () => db_events.sessions.get(event_session_id)
// );
export let lq__auth__event_presenter_obj: any;
export let lq__event_presentation_obj_li: any;
// let lq__event_presentation_obj_li = liveQuery(
// () => db_events.presentations
@@ -86,7 +104,8 @@ $slct.person_obj_kv = {}; // This is intended for the person POC lookup list whe
// Functions and Logic
$events_sess.pres_mgmt.session__updated_on = null;
$: if ($lq__event_session_obj) {
run(() => {
if ($lq__event_session_obj) {
if (log_lvl > 1) {
console.log(`$lq__event_session_obj:`, $lq__event_session_obj);
}
@@ -124,6 +143,9 @@ $: if ($lq__event_session_obj) {
$events_sess.pres_mgmt.session__updated_on = null;
}
}
});
let clipboard_success = $state(false);
</script>
@@ -231,7 +253,7 @@ $: if ($lq__event_session_obj) {
&
<button
type="button"
on:click={() => {
onclick={() => {
if ($events_loc.pres_mgmt.time_hours == 12) {
$events_loc.pres_mgmt.time_hours = 24;
$events_loc.pres_mgmt.datetime_format = 'datetime_long';
@@ -384,7 +406,7 @@ $: if ($lq__event_session_obj) {
<button
type="button"
on:click={() => {
onclick={() => {
console.log('Cancel editing the location for the session.');
ae_tmp.event_location_id = null;
@@ -399,7 +421,7 @@ $: if ($lq__event_session_obj) {
{:else}
<button
type="button"
on:click={() => {
onclick={() => {
console.log('Edit the location for the session.');
let params = {
@@ -474,7 +496,7 @@ $: if ($lq__event_session_obj) {
<!-- Modal toggle -->
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
on:click={() => ($events_sess.pres_mgmt.show__session_poc_profile = true)}>
onclick={() => ($events_sess.pres_mgmt.show__session_poc_profile = true)}>
<span class="fas fa-id-card m-1"></span>
<!-- {$events_loc.pres_mgmt?.label__session_poc_name}'s -->
{$lq__event_session_obj?.poc_person_full_name}'s Profile
@@ -493,21 +515,23 @@ $: if ($lq__event_session_obj) {
lq__event_session_obj={lq__event_session_obj}
/>
<svelte:fragment slot="footer">
{#snippet footer()}
<div class="text-center w-full">
<button
type="button"
on:click={() => {
console.log('Close modal session poc profile.');
$events_sess.pres_mgmt.show__session_poc_profile = !$events_sess.pres_mgmt.show__session_poc_profile;
}}
onclick={() => {
console.log('Close modal session poc profile.');
$events_sess.pres_mgmt.show__session_poc_profile = !$events_sess.pres_mgmt.show__session_poc_profile;
}}
class="btn btn-sm preset-tonal-warning hover:preset-tonal-warning border border-warning-500"
>
<span class="fas fa-times mx-1"></span>
Close
</button>
</div>
</svelte:fragment>
{/snippet}
</Modal>
@@ -519,8 +543,8 @@ $: if ($lq__event_session_obj) {
!$events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id] === true}
class="btn btn-sm hover:preset-filled-success-500"
class:preset-tonal-success={$lq__event_session_obj?.poc_agree}
class:preset-tonal-warning border border-warning-500={!$lq__event_session_obj?.poc_agree}
on:click={() => ($events_sess.pres_mgmt.show_modal__session_poc_agree = true)}>
class:preset-tonal-warning={!$lq__event_session_obj?.poc_agree}
onclick={() => ($events_sess.pres_mgmt.show_modal__session_poc_agree = true)}>
{#if !$lq__event_session_obj?.poc_agree}
<span class="fas fa-times bg-red-500 text-white px-1 mx-1" title="Not agreed to terms and conditions"></span>
Not yet agreed
@@ -541,20 +565,22 @@ $: if ($lq__event_session_obj) {
lq__event_session_obj={lq__event_session_obj}
/>
<svelte:fragment slot="footer">
{#snippet footer()}
<div class="text-center w-full">
<button
on:click={() => {
$events_sess.pres_mgmt.show_modal__session_poc_agree = false;
}}
onclick={() => {
$events_sess.pres_mgmt.show_modal__session_poc_agree = false;
}}
class="btn btn-sm preset-tonal-warning hover:preset-tonal-warning border border-warning-500"
>
<span class="fas fa-times m-1"></span>
Close
</button>
</div>
</svelte:fragment>
{/snippet}
</Modal>
{/if}
@@ -658,7 +684,7 @@ $: if ($lq__event_session_obj) {
{#if ae_tmp.show__edit_poc_person}
<button
type="button"
on:click={() => {
onclick={() => {
console.log('Cancel the POC person for the session.');
ae_tmp.poc_person_id = null;
@@ -672,7 +698,7 @@ $: if ($lq__event_session_obj) {
{:else}
<button
type="button"
on:click={async () => {
onclick={async () => {
console.log('Edit the POC person for the session.');
// let params = {
@@ -728,12 +754,11 @@ $: if ($lq__event_session_obj) {
{#if $events_loc.pres_mgmt?.require__session_agree
&& $events_loc?.pres_mgmt?.show__email_access_link
&& $lq__event_session_obj?.poc_person_primary_email
&& ($ae_loc.trusted_access || !$events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id])
}
&& ($ae_loc.trusted_access || !$events_loc.auth__kv.session[$lq__event_session_obj?.event_session_id])}
<button
type="button"
on:click={() => {
onclick={() => {
console.log('Email the access link');
if (!$lq__event_session_obj.poc_person_primary_email) {
alert('No email address found for this point of contact (moderator/champion).');
@@ -773,7 +798,7 @@ $: if ($lq__event_session_obj) {
&& $ae_loc.trusted_access && $lq__event_session_obj.poc_person_id}
<!-- A button to copy the access link to the clipboard. -->
<!-- Example: /events/CHs3F44Xq76/session/Wh8UnJlbIA0?person_id=fV1dl_IJ0yY&person_pass=abc123 -->
<button
<!-- <button
type="button"
use:clipboard={encodeURI(`${$ae_loc.url_origin}/events/${$lq__event_session_obj.event_id}/session/${$events_slct.event_session_id}?person_id=${$lq__event_session_obj.poc_person_id}&person_pass=${$lq__event_session_obj.poc_person_passcode}&session_id=${$lq__event_session_obj.event_session_id}`)}
class="btn btn-sm preset-tonal-warning border border-warning-500 m-1"
@@ -781,7 +806,26 @@ $: if ($lq__event_session_obj) {
>
<span class="fas fa-copy mx-1"></span>
Copy Access Link
</button>
</button> -->
<!-- <Clipboard
value={encodeURI(`${$ae_loc.url_origin}/events/${$lq__event_session_obj.event_id}/session/${$events_slct.event_session_id}?person_id=${$lq__event_session_obj.poc_person_id}&person_pass=${$lq__event_session_obj.poc_person_passcode}&session_id=${$lq__event_session_obj.event_session_id}`)}
bind:success={clipboard_success}
class="text-xs btn btn-sm preset-tonal-warning text-warning-500 border border-transparent hover:border hover:border-warning-500 hover:preset-filled-warning-500"
>
{#if clipboard_success}Copied!{:else}Copy Access Link{/if}
</Clipboard> -->
<MyClipboard
value={encodeURI(`${$ae_loc.url_origin}/events/${$lq__event_session_obj.event_id}/session/${$events_slct.event_session_id}?person_id=${$lq__event_session_obj.poc_person_id}&person_pass=${$lq__event_session_obj.poc_person_passcode}&session_id=${$lq__event_session_obj.event_session_id}`)}
bind:success={clipboard_success}
btn_text="Copy Access Link"
btn_title="Copy the POC (moderator/champion) access link to the clipboard."
btn_class="btn btn-sm preset-tonal-warning hover:preset-filled-warning-500"
>
</MyClipboard>
{/if}
</span>
@@ -856,7 +900,7 @@ $: if ($lq__event_session_obj) {
{#if $lq__event_session_obj.description}
<button
type="button"
on:click={() => {
onclick={() => {
console.log('Show/Hide Description');
$events_loc.pres_mgmt.show_content__session_description = !$events_loc.pres_mgmt.show_content__session_description;
}}