`, like so:
+ * ```html
+ *
+ * ```
+ *
+ * For additional details on autocomplete popups, see `DelAutocomplete.svelte`.
+ */
+
+import type { PopupSettings } from "@skeletonlabs/skeleton";
+
+/**
+ * Default Tailwind classes for popup cards.
+ */
+export const POPUP_CARD_CLASSES = "card overflow-hidden p-4";
+
+/**
+ * Defaults for a popup whose contents are meant to be interacted with
+ * and not dismissed when interacted with.
+ *
+ * @param target popup ID
+ * @returns the settings
+ */
+export function interactivePopup(target: string): PopupSettings {
+ return {
+ event: 'focus-click',
+ target,
+ closeQuery: ''
+ }
+}
+
+/**
+ * Defaults for a popup which holds an autocomplete module.
+ * @param target popup ID
+ * @returns the settings
+ */
+export function autocompletePopup(target: string): PopupSettings {
+ return {
+ event: 'focus-click',
+ target,
+ placement: 'bottom',
+ middleware: {
+ size: {
+ apply({availableHeight, elements}: any) {
+ Object.assign(elements.floating.style, {
+ maxHeight: `${availableHeight}px`,
+ });
+ },
+ }
+ }
+ };
+}
diff --git a/src/lib/util/time.ts b/src/lib/util/time.ts
index 6355388..0139020 100644
--- a/src/lib/util/time.ts
+++ b/src/lib/util/time.ts
@@ -1,3 +1,10 @@
+/**
+ * This module holds helpers that are useful for managing time strings.
+ *
+ * In particular, this module has helpers used for converting time stored in seconds
+ * to and from time strings (e.g., mm:ss).
+ */
+
const UNITS = [60, 60, 24, 365, Infinity];
const PADDING = [2, 2, 2, 3, undefined];
const MIN_SEGMENTS = 2;
@@ -52,6 +59,8 @@ export function parseTime(timeStr: string): number | undefined {
/**
* Converts the current number of seconds to a formatted string of the form mm:ss.
* @param secs the number of seconds
+ * @param roundingMode if a fractional number of seconds is provided, it must be rounded to the nearest integer.
+ * This parameter decides whether it is floored, rounded, or ceil'd.
* @returns the time string, or undefined if negative or non-finite or non-integral
*/
export function stringifyTime(secs: number, roundingMode: "floor" | "round" | "ceil" = "ceil"): string | undefined {
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 8dc1a50..970fb91 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -1,3 +1,10 @@
+
+
@@ -20,7 +23,7 @@
{:else if $selectedMotion.kind === "other"}
- {:else if isExhaustive($selectedMotion)}
+ {:else if $selectedMotion satisfies never}
{/if}
{:else}
diff --git a/src/routes/dashboard/points-motions/+page.svelte b/src/routes/dashboard/points-motions/+page.svelte
index 0a55752..d3ca431 100644
--- a/src/routes/dashboard/points-motions/+page.svelte
+++ b/src/routes/dashboard/points-motions/+page.svelte
@@ -1,4 +1,11 @@
+