@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.
Files changed (107) hide show
  1. package/README.md +197 -19
  2. package/dist/components/DateRangePicker.svelte +93 -57
  3. package/dist/components/DateRangePicker.svelte.d.ts +32 -15
  4. package/dist/components/ErrorDisplay.svelte +30 -16
  5. package/dist/components/ErrorDisplay.svelte.d.ts +4 -0
  6. package/dist/components/JsonView.svelte +43 -0
  7. package/dist/components/JsonView.svelte.d.ts +4 -0
  8. package/dist/components/JsonViewFrame.svelte +654 -0
  9. package/dist/components/JsonViewFrame.svelte.d.ts +31 -0
  10. package/dist/components/Paginator.svelte +34 -8
  11. package/dist/components/Paginator.svelte.d.ts +10 -0
  12. package/dist/components/RequestErrorDisplay.svelte +43 -0
  13. package/dist/components/RequestErrorDisplay.svelte.d.ts +11 -0
  14. package/dist/components/Tabs.svelte +204 -0
  15. package/dist/components/Tabs.svelte.d.ts +76 -0
  16. package/dist/components/VirtualJsonView.svelte +67 -0
  17. package/dist/components/VirtualJsonView.svelte.d.ts +4 -0
  18. package/dist/components/date-range.d.ts +82 -14
  19. package/dist/components/date-range.js +86 -5
  20. package/dist/components/index.d.ts +9 -2
  21. package/dist/components/index.js +15 -9
  22. package/dist/components/json-view.d.ts +70 -0
  23. package/dist/components/json-view.js +302 -0
  24. package/dist/components/request-error.d.ts +8 -0
  25. package/dist/components/request-error.js +55 -0
  26. package/dist/components/tabs.d.ts +5 -0
  27. package/dist/components/tabs.js +1 -0
  28. package/dist/http.d.ts +10 -5
  29. package/dist/http.js +34 -6
  30. package/dist/i18n/LocaleToggle.svelte +45 -0
  31. package/dist/i18n/LocaleToggle.svelte.d.ts +48 -0
  32. package/dist/i18n/i18n.svelte.d.ts +56 -0
  33. package/dist/i18n/i18n.svelte.js +94 -0
  34. package/dist/i18n/index.d.ts +3 -0
  35. package/dist/i18n/index.js +7 -0
  36. package/dist/i18n/translate.d.ts +30 -0
  37. package/dist/i18n/translate.js +38 -0
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.js +1 -1
  40. package/dist/redirect.d.ts +40 -0
  41. package/dist/redirect.js +59 -0
  42. package/dist/routing.svelte.d.ts +1 -0
  43. package/dist/routing.svelte.js +3 -0
  44. package/dist/shell/AppShell.svelte +265 -93
  45. package/dist/shell/AppShell.svelte.d.ts +3 -2
  46. package/dist/shell/NavigationProgress.svelte +85 -0
  47. package/dist/shell/NavigationProgress.svelte.d.ts +31 -0
  48. package/dist/shell/TopBar.svelte +191 -0
  49. package/dist/shell/TopBar.svelte.d.ts +41 -0
  50. package/dist/shell/UserAvatar.svelte +50 -0
  51. package/dist/shell/UserAvatar.svelte.d.ts +14 -0
  52. package/dist/shell/index.d.ts +2 -0
  53. package/dist/shell/index.js +7 -3
  54. package/dist/shell/initials.d.ts +6 -0
  55. package/dist/shell/initials.js +13 -0
  56. package/dist/table/DataTable.svelte +199 -9
  57. package/dist/table/DataTable.svelte.d.ts +28 -5
  58. package/dist/table/FilterBar.svelte +417 -0
  59. package/dist/table/FilterBar.svelte.d.ts +34 -0
  60. package/dist/table/FilterRuleEditor.svelte +290 -0
  61. package/dist/table/FilterRuleEditor.svelte.d.ts +33 -0
  62. package/dist/table/filter-labels.d.ts +23 -0
  63. package/dist/table/filter-labels.js +30 -0
  64. package/dist/table/filter.d.ts +27 -0
  65. package/dist/table/filter.js +279 -0
  66. package/dist/table/index.d.ts +4 -1
  67. package/dist/table/index.js +5 -2
  68. package/dist/table/types.d.ts +49 -0
  69. package/dist/toast/Toaster.svelte +7 -3
  70. package/dist/toast/index.d.ts +1 -1
  71. package/dist/toast/toast-manager.svelte.d.ts +29 -1
  72. package/dist/toast/toast-manager.svelte.js +61 -1
  73. package/dist/url-state/codec.d.ts +15 -0
  74. package/dist/url-state/codec.js +1 -0
  75. package/dist/url-state/index.d.ts +5 -0
  76. package/dist/url-state/index.js +4 -0
  77. package/dist/url-state/params-codec.d.ts +73 -0
  78. package/dist/url-state/params-codec.js +116 -0
  79. package/dist/url-state/search-params.d.ts +4 -0
  80. package/dist/url-state/search-params.js +28 -0
  81. package/dist/url-state/synced-state.svelte.d.ts +20 -0
  82. package/dist/url-state/synced-state.svelte.js +88 -0
  83. package/dist/url-state/url-store.svelte.d.ts +12 -0
  84. package/dist/url-state/url-store.svelte.js +56 -0
  85. package/dist/virtual/DataList.svelte +215 -0
  86. package/dist/virtual/DataList.svelte.d.ts +52 -0
  87. package/dist/virtual/VirtualList.svelte +150 -0
  88. package/dist/virtual/VirtualList.svelte.d.ts +42 -0
  89. package/dist/virtual/index.d.ts +7 -0
  90. package/dist/virtual/index.js +6 -0
  91. package/dist/virtual/keyed-cache.d.ts +7 -0
  92. package/dist/virtual/keyed-cache.js +20 -0
  93. package/dist/virtual/labels.d.ts +12 -0
  94. package/dist/virtual/labels.js +6 -0
  95. package/dist/virtual/paging.d.ts +5 -0
  96. package/dist/virtual/paging.js +11 -0
  97. package/dist/virtual/range.d.ts +9 -0
  98. package/dist/virtual/range.js +31 -0
  99. package/dist/virtual/size-tree.d.ts +10 -0
  100. package/dist/virtual/size-tree.js +56 -0
  101. package/dist/virtual/virtualizer.svelte.d.ts +38 -0
  102. package/dist/virtual/virtualizer.svelte.js +295 -0
  103. package/dist/virtual/windowed-data.svelte.d.ts +38 -0
  104. package/dist/virtual/windowed-data.svelte.js +139 -0
  105. package/dist/virtual/windowed-virtualizer.svelte.d.ts +9 -0
  106. package/dist/virtual/windowed-virtualizer.svelte.js +22 -0
  107. 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
- <svg
38
- class="size-12 text-base-content/40"
39
- viewBox="0 0 24 24"
40
- fill="none"
41
- stroke="currentColor"
42
- stroke-width="1.5"
43
- stroke-linecap="round"
44
- stroke-linejoin="round"
45
- aria-hidden="true"
46
- >
47
- <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" />
48
- <path d="M12 9v4" />
49
- <path d="M12 17h.01" />
50
- </svg>
51
- <p class="text-xs font-medium tracking-widest text-base-content/55 uppercase">Error</p>
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}>Try again</button>
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>
@@ -0,0 +1,4 @@
1
+ import { type JsonViewProps } from "./JsonViewFrame.svelte";
2
+ declare const JsonView: import("svelte").Component<JsonViewProps, {}, "">;
3
+ type JsonView = ReturnType<typeof JsonView>;
4
+ export default JsonView;