@viniaraujo68/plinth 0.3.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +197 -19
- package/dist/components/DateRangePicker.svelte +93 -57
- package/dist/components/DateRangePicker.svelte.d.ts +32 -15
- package/dist/components/ErrorDisplay.svelte +30 -16
- package/dist/components/ErrorDisplay.svelte.d.ts +4 -0
- package/dist/components/JsonView.svelte +43 -0
- package/dist/components/JsonView.svelte.d.ts +4 -0
- package/dist/components/JsonViewFrame.svelte +654 -0
- package/dist/components/JsonViewFrame.svelte.d.ts +31 -0
- package/dist/components/Paginator.svelte +34 -8
- package/dist/components/Paginator.svelte.d.ts +10 -0
- package/dist/components/RequestErrorDisplay.svelte +43 -0
- package/dist/components/RequestErrorDisplay.svelte.d.ts +11 -0
- package/dist/components/Tabs.svelte +204 -0
- package/dist/components/Tabs.svelte.d.ts +76 -0
- package/dist/components/VirtualJsonView.svelte +67 -0
- package/dist/components/VirtualJsonView.svelte.d.ts +4 -0
- package/dist/components/date-range.d.ts +82 -14
- package/dist/components/date-range.js +86 -5
- package/dist/components/index.d.ts +9 -2
- package/dist/components/index.js +15 -9
- package/dist/components/json-view.d.ts +70 -0
- package/dist/components/json-view.js +302 -0
- package/dist/components/request-error.d.ts +8 -0
- package/dist/components/request-error.js +55 -0
- package/dist/components/tabs.d.ts +5 -0
- package/dist/components/tabs.js +1 -0
- package/dist/http.d.ts +10 -5
- package/dist/http.js +34 -6
- package/dist/i18n/LocaleToggle.svelte +45 -0
- package/dist/i18n/LocaleToggle.svelte.d.ts +48 -0
- package/dist/i18n/i18n.svelte.d.ts +56 -0
- package/dist/i18n/i18n.svelte.js +94 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.js +7 -0
- package/dist/i18n/translate.d.ts +30 -0
- package/dist/i18n/translate.js +38 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/redirect.d.ts +40 -0
- package/dist/redirect.js +59 -0
- package/dist/routing.svelte.d.ts +1 -0
- package/dist/routing.svelte.js +3 -0
- package/dist/shell/AppShell.svelte +265 -93
- package/dist/shell/AppShell.svelte.d.ts +3 -2
- package/dist/shell/NavigationProgress.svelte +85 -0
- package/dist/shell/NavigationProgress.svelte.d.ts +31 -0
- package/dist/shell/TopBar.svelte +191 -0
- package/dist/shell/TopBar.svelte.d.ts +41 -0
- package/dist/shell/UserAvatar.svelte +50 -0
- package/dist/shell/UserAvatar.svelte.d.ts +14 -0
- package/dist/shell/index.d.ts +2 -0
- package/dist/shell/index.js +7 -3
- package/dist/shell/initials.d.ts +6 -0
- package/dist/shell/initials.js +13 -0
- package/dist/table/DataTable.svelte +199 -9
- package/dist/table/DataTable.svelte.d.ts +28 -5
- package/dist/table/FilterBar.svelte +417 -0
- package/dist/table/FilterBar.svelte.d.ts +34 -0
- package/dist/table/FilterRuleEditor.svelte +290 -0
- package/dist/table/FilterRuleEditor.svelte.d.ts +33 -0
- package/dist/table/filter-labels.d.ts +23 -0
- package/dist/table/filter-labels.js +30 -0
- package/dist/table/filter.d.ts +27 -0
- package/dist/table/filter.js +279 -0
- package/dist/table/index.d.ts +4 -1
- package/dist/table/index.js +5 -2
- package/dist/table/types.d.ts +49 -0
- package/dist/toast/Toaster.svelte +7 -3
- package/dist/toast/index.d.ts +1 -1
- package/dist/toast/toast-manager.svelte.d.ts +29 -1
- package/dist/toast/toast-manager.svelte.js +61 -1
- package/dist/url-state/codec.d.ts +15 -0
- package/dist/url-state/codec.js +1 -0
- package/dist/url-state/index.d.ts +5 -0
- package/dist/url-state/index.js +4 -0
- package/dist/url-state/params-codec.d.ts +73 -0
- package/dist/url-state/params-codec.js +116 -0
- package/dist/url-state/search-params.d.ts +4 -0
- package/dist/url-state/search-params.js +28 -0
- package/dist/url-state/synced-state.svelte.d.ts +20 -0
- package/dist/url-state/synced-state.svelte.js +88 -0
- package/dist/url-state/url-store.svelte.d.ts +12 -0
- package/dist/url-state/url-store.svelte.js +56 -0
- package/dist/virtual/DataList.svelte +215 -0
- package/dist/virtual/DataList.svelte.d.ts +52 -0
- package/dist/virtual/VirtualList.svelte +150 -0
- package/dist/virtual/VirtualList.svelte.d.ts +42 -0
- package/dist/virtual/index.d.ts +7 -0
- package/dist/virtual/index.js +6 -0
- package/dist/virtual/keyed-cache.d.ts +7 -0
- package/dist/virtual/keyed-cache.js +20 -0
- package/dist/virtual/labels.d.ts +12 -0
- package/dist/virtual/labels.js +6 -0
- package/dist/virtual/paging.d.ts +5 -0
- package/dist/virtual/paging.js +11 -0
- package/dist/virtual/range.d.ts +9 -0
- package/dist/virtual/range.js +31 -0
- package/dist/virtual/size-tree.d.ts +10 -0
- package/dist/virtual/size-tree.js +56 -0
- package/dist/virtual/virtualizer.svelte.d.ts +38 -0
- package/dist/virtual/virtualizer.svelte.js +295 -0
- package/dist/virtual/windowed-data.svelte.d.ts +38 -0
- package/dist/virtual/windowed-data.svelte.js +139 -0
- package/dist/virtual/windowed-virtualizer.svelte.d.ts +9 -0
- package/dist/virtual/windowed-virtualizer.svelte.js +22 -0
- package/package.json +13 -1
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
|
|
2
4
|
interface Props {
|
|
3
5
|
/** Wire the `reset` a `svelte:boundary` hands to its `failed` snippet. Omitted, no button. */
|
|
4
6
|
reset?: () => void;
|
|
5
7
|
title?: string;
|
|
6
8
|
message?: string;
|
|
9
|
+
eyebrow?: string;
|
|
10
|
+
retryLabel?: string;
|
|
11
|
+
icon?: Snippet;
|
|
7
12
|
}
|
|
8
13
|
|
|
9
14
|
let {
|
|
10
15
|
reset,
|
|
11
16
|
title = "Something went wrong",
|
|
12
17
|
message = "The application ran into an unexpected problem.",
|
|
18
|
+
eyebrow = "Error",
|
|
19
|
+
retryLabel = "Try again",
|
|
20
|
+
icon,
|
|
13
21
|
}: Props = $props();
|
|
14
22
|
</script>
|
|
15
23
|
|
|
@@ -34,26 +42,32 @@ counted once per render. Wire `reportError` on the boundary's `onerror` instead.
|
|
|
34
42
|
class="flex h-full w-full flex-col items-center justify-center gap-2 p-8 text-center"
|
|
35
43
|
role="alert"
|
|
36
44
|
>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
{#if icon}
|
|
46
|
+
{@render icon()}
|
|
47
|
+
{:else}
|
|
48
|
+
<svg
|
|
49
|
+
class="size-12 text-base-content/40"
|
|
50
|
+
viewBox="0 0 24 24"
|
|
51
|
+
fill="none"
|
|
52
|
+
stroke="currentColor"
|
|
53
|
+
stroke-width="1.5"
|
|
54
|
+
stroke-linecap="round"
|
|
55
|
+
stroke-linejoin="round"
|
|
56
|
+
aria-hidden="true"
|
|
57
|
+
>
|
|
58
|
+
<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" />
|
|
59
|
+
<path d="M12 9v4" />
|
|
60
|
+
<path d="M12 17h.01" />
|
|
61
|
+
</svg>
|
|
62
|
+
{/if}
|
|
63
|
+
{#if eyebrow}
|
|
64
|
+
<p class="text-xs font-medium tracking-widest text-base-content/55 uppercase">{eyebrow}</p>
|
|
65
|
+
{/if}
|
|
52
66
|
<p class="text-xl font-semibold">{title}</p>
|
|
53
67
|
<p class="max-w-md text-sm text-base-content/60">{message}</p>
|
|
54
68
|
{#if reset}
|
|
55
69
|
<div class="mt-4">
|
|
56
|
-
<button type="button" class="btn btn-primary" onclick={reset}>
|
|
70
|
+
<button type="button" class="btn btn-primary" onclick={reset}>{retryLabel}</button>
|
|
57
71
|
</div>
|
|
58
72
|
{/if}
|
|
59
73
|
</div>
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
1
2
|
interface Props {
|
|
2
3
|
/** Wire the `reset` a `svelte:boundary` hands to its `failed` snippet. Omitted, no button. */
|
|
3
4
|
reset?: () => void;
|
|
4
5
|
title?: string;
|
|
5
6
|
message?: string;
|
|
7
|
+
eyebrow?: string;
|
|
8
|
+
retryLabel?: string;
|
|
9
|
+
icon?: Snippet;
|
|
6
10
|
}
|
|
7
11
|
/**
|
|
8
12
|
* Calm in-place fallback for a crashed subtree: it says what happened and offers the way out.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import JsonViewFrame, {
|
|
3
|
+
type JsonViewProps,
|
|
4
|
+
type JsonViewRevealTarget,
|
|
5
|
+
} from "./JsonViewFrame.svelte";
|
|
6
|
+
|
|
7
|
+
const props: JsonViewProps = $props();
|
|
8
|
+
|
|
9
|
+
let scroller = $state<HTMLDivElement>();
|
|
10
|
+
|
|
11
|
+
const reveal = ({ line }: JsonViewRevealTarget) => {
|
|
12
|
+
const row = scroller?.querySelector<HTMLElement>(`[data-line="${line}"]`);
|
|
13
|
+
const target = row?.querySelector<HTMLElement>("[data-active]") ?? row;
|
|
14
|
+
target?.scrollIntoView({ block: "nearest", inline: "nearest" });
|
|
15
|
+
};
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<JsonViewFrame {...props} {reveal}>
|
|
19
|
+
{#snippet viewport({ visible, line, rowId, widthCh })}
|
|
20
|
+
<div bind:this={scroller} class="plinth-json-scroller">
|
|
21
|
+
<div class="plinth-json-lines" style:min-width="max(100%, {widthCh}ch)">
|
|
22
|
+
{#each visible as index (rowId(index))}
|
|
23
|
+
{@render line(index)}
|
|
24
|
+
{/each}
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
{/snippet}
|
|
28
|
+
</JsonViewFrame>
|
|
29
|
+
|
|
30
|
+
<style>
|
|
31
|
+
.plinth-json-scroller {
|
|
32
|
+
flex: 1;
|
|
33
|
+
min-height: 0;
|
|
34
|
+
overflow: auto;
|
|
35
|
+
padding-block: 0.25rem;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.plinth-json-lines {
|
|
39
|
+
width: max-content;
|
|
40
|
+
min-width: 100%;
|
|
41
|
+
padding-inline-end: 1ch;
|
|
42
|
+
}
|
|
43
|
+
</style>
|