rimecms 0.27.6 → 0.28.1

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 (206) hide show
  1. package/dist/adapter-sqlite/{area.js → area.server.js} +2 -2
  2. package/dist/adapter-sqlite/{blocks.d.ts → blocks.server.d.ts} +1 -1
  3. package/dist/adapter-sqlite/{blocks.js → blocks.server.js} +1 -1
  4. package/dist/adapter-sqlite/{collection.js → collection.server.js} +17 -8
  5. package/dist/adapter-sqlite/generate-schema/write.server.js +2 -2
  6. package/dist/adapter-sqlite/index.server.d.ts +8 -8
  7. package/dist/adapter-sqlite/index.server.js +7 -7
  8. package/dist/adapter-sqlite/{orderBy.js → orderBy.server.js} +1 -1
  9. package/dist/adapter-sqlite/{relations.d.ts → relations.server.d.ts} +1 -1
  10. package/dist/adapter-sqlite/{relations.js → relations.server.js} +1 -1
  11. package/dist/adapter-sqlite/{transform.js → transform.server.js} +2 -3
  12. package/dist/adapter-sqlite/{tree.d.ts → tree.server.d.ts} +1 -1
  13. package/dist/adapter-sqlite/{tree.js → tree.server.js} +1 -1
  14. package/dist/adapter-sqlite/url.server.d.ts +1 -1
  15. package/dist/core/areas/local-api.server.d.ts +1 -1
  16. package/dist/core/areas/local-api.server.js +1 -0
  17. package/dist/core/collections/api/delete.server.js +1 -1
  18. package/dist/core/collections/api/get.server.js +1 -1
  19. package/dist/core/collections/api/getById.server.js +3 -1
  20. package/dist/core/collections/config/augment-panel.d.ts +13 -0
  21. package/dist/core/collections/config/augment-panel.js +19 -0
  22. package/dist/core/collections/config/augment-upload.server.d.ts +1 -0
  23. package/dist/core/collections/config/augment-upload.server.js +1 -0
  24. package/dist/core/collections/config/builder.js +3 -1
  25. package/dist/core/collections/config/builder.server.js +3 -1
  26. package/dist/core/collections/local-api.server.js +3 -1
  27. package/dist/core/collections/operations/findById.js +3 -1
  28. package/dist/core/collections/upload/hooks/convert-base64.server.js +1 -1
  29. package/dist/core/config/auth/better-auth.server.d.ts +3 -3
  30. package/dist/core/config/auth/better-auth.server.js +1 -1
  31. package/dist/core/config/client/augment-panel.d.ts +4 -4
  32. package/dist/core/config/client/build-config.d.ts +5 -5
  33. package/dist/core/config/server/augment-directories.server.js +3 -3
  34. package/dist/core/config/server/augment-staff.server.d.ts +1 -1
  35. package/dist/core/config/server/augment-staff.server.js +1 -1
  36. package/dist/core/config/server/build-config.server.d.ts +12 -12
  37. package/dist/core/config/server/build-config.server.js +1 -1
  38. package/dist/core/config/server/{validate.js → validate.server.js} +61 -29
  39. package/dist/core/config/server/{write.js → write.server.js} +1 -1
  40. package/dist/core/config/shared/augment-icons.d.ts +1 -2
  41. package/dist/core/config/shared/get-staff-collection.d.ts +1 -1
  42. package/dist/core/config/shared/upload-directories.js +1 -1
  43. package/dist/core/config/types.d.ts +20 -8
  44. package/dist/core/dev/cli/build/templates.d.ts +1 -1
  45. package/dist/core/dev/cli/build/templates.js +5 -2
  46. package/dist/core/dev/cli/generate/{index.js → index.server.js} +13 -9
  47. package/dist/core/dev/cli/index.js +11 -6
  48. package/dist/core/dev/cli/init/{index.js → index.server.js} +68 -25
  49. package/dist/core/dev/cli/init/{packageManagerUtil.js → package-manager-util.server.js} +5 -5
  50. package/dist/core/dev/generate/routes/{area.d.ts → area.server.d.ts} +1 -1
  51. package/dist/core/dev/generate/routes/{area.js → area.server.js} +1 -1
  52. package/dist/core/dev/generate/routes/{collection.d.ts → collection.server.d.ts} +1 -1
  53. package/dist/core/dev/generate/routes/{collection.js → collection.server.js} +1 -1
  54. package/dist/core/dev/generate/routes/{common.d.ts → common.server.d.ts} +1 -1
  55. package/dist/core/dev/generate/routes/{common.js → common.server.js} +3 -3
  56. package/dist/core/dev/generate/routes/{index.js → index.server.js} +5 -5
  57. package/dist/core/dev/generate/routes/{util.js → util.server.js} +1 -1
  58. package/dist/core/dev/generate/types/{index.js → index.server.js} +1 -1
  59. package/dist/core/dev/vite/{index.js → index.server.js} +8 -4
  60. package/dist/core/fields/util.d.ts +13 -0
  61. package/dist/core/fields/util.js +77 -4
  62. package/dist/core/i18n/en/common.d.ts +1 -0
  63. package/dist/core/i18n/en/common.js +1 -0
  64. package/dist/core/i18n/fr/common.d.ts +1 -0
  65. package/dist/core/i18n/fr/common.js +1 -0
  66. package/dist/core/operations/hooks/before-read/populate-url.server.js +10 -2
  67. package/dist/core/operations/hooks/before-upsert/handle-new-version.server.js +2 -2
  68. package/dist/core/operations/relations/diff.server.d.ts +1 -1
  69. package/dist/core/operations/relations/extract.server.d.ts +1 -1
  70. package/dist/core/rime.server.d.ts +6 -6
  71. package/dist/core/rime.server.js +15 -14
  72. package/dist/fields/blocks/component/Block.svelte +13 -19
  73. package/dist/fields/blocks/component/Blocks.svelte +6 -13
  74. package/dist/fields/group/component/Group.svelte +6 -13
  75. package/dist/fields/number/component/number.css +2 -0
  76. package/dist/fields/relation/component/default/Default.svelte +1 -7
  77. package/dist/fields/relation/component/upload/upload.css +1 -10
  78. package/dist/fields/relation/index.d.ts +21 -6
  79. package/dist/fields/relation/index.js +41 -11
  80. package/dist/fields/rich-text/component/RichText.svelte +4 -4
  81. package/dist/fields/rich-text/component/bubble-menu/bubble-menu.svelte +6 -6
  82. package/dist/fields/rich-text/component/bubble-menu/bubble-menu.svelte.d.ts +2 -0
  83. package/dist/fields/rich-text/component/drag-handle/drag-handle.css +1 -0
  84. package/dist/fields/rich-text/component/styles/rich-text.css +0 -7
  85. package/dist/fields/rich-text/core/features/resource/resource.svelte +2 -9
  86. package/dist/fields/rich-text/core/features/upload/upload.svelte +5 -12
  87. package/dist/fields/rich-text/core/render-rich-text.svelte +5 -3
  88. package/dist/fields/rich-text/index.d.ts +1 -1
  89. package/dist/fields/select/component/Select.svelte +5 -11
  90. package/dist/fields/tabs/index.d.ts +1 -0
  91. package/dist/fields/tabs/index.js +3 -0
  92. package/dist/fields/textarea/component/TextArea.svelte +5 -13
  93. package/dist/fields/tree/component/TreeBlock.svelte +12 -18
  94. package/dist/fields/types.d.ts +3 -2
  95. package/dist/live.d.ts +2 -1
  96. package/dist/live.js +2 -1
  97. package/dist/panel/components/fields/Error.svelte +1 -7
  98. package/dist/panel/components/sections/collection/Empty.svelte +1 -0
  99. package/dist/panel/components/sections/collection/folder/Folder.svelte +7 -16
  100. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +1 -1
  101. package/dist/panel/components/sections/collection/grid/CollectionGrid.svelte +22 -12
  102. package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +4 -5
  103. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +41 -33
  104. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte.d.ts +4 -0
  105. package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +14 -16
  106. package/dist/panel/components/sections/collection/header/ButtonCreate.svelte.d.ts +2 -0
  107. package/dist/panel/components/sections/collection/header/DisplayMode.svelte +10 -10
  108. package/dist/panel/components/sections/collection/header/SearchInput.svelte +2 -8
  109. package/dist/panel/components/sections/collection/list/CollectionList.svelte +32 -3
  110. package/dist/panel/components/sections/collection/list/header/Header.svelte +3 -9
  111. package/dist/panel/components/sections/collection/list/row/Row.svelte +34 -24
  112. package/dist/panel/components/sections/collection/list/row/Row.svelte.d.ts +9 -0
  113. package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +11 -1
  114. package/dist/panel/components/sections/document/ButtonStatus.svelte +3 -11
  115. package/dist/panel/components/sections/document/Document.svelte +22 -41
  116. package/dist/panel/components/sections/document/Document.svelte.d.ts +0 -1
  117. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +11 -21
  118. package/dist/panel/components/sections/live/LiveEdit.svelte +114 -0
  119. package/dist/panel/components/sections/live/LiveEdit.svelte.d.ts +32 -0
  120. package/dist/panel/components/sections/live/LiveEditPanel.svelte +53 -0
  121. package/dist/panel/components/sections/live/LiveEditPanel.svelte.d.ts +11 -0
  122. package/dist/panel/components/sections/live/LiveFloatingUI.svelte +106 -0
  123. package/dist/panel/components/sections/live/LiveFloatingUI.svelte.d.ts +12 -0
  124. package/dist/panel/components/sections/live/Provider.svelte +4 -4
  125. package/dist/panel/components/sections/live/Provider.svelte.d.ts +5 -3
  126. package/dist/panel/components/sections/live/live-edit-panel.css +12 -0
  127. package/dist/panel/components/ui/breadcrumb/BreadCrumb.svelte +2 -9
  128. package/dist/panel/components/ui/button/button.svelte +35 -54
  129. package/dist/panel/components/ui/calendar/calendar.css +11 -0
  130. package/dist/panel/components/ui/card-document/card-document.svelte +21 -14
  131. package/dist/panel/components/ui/card-resource/card-resource.svelte +8 -14
  132. package/dist/panel/components/ui/checkbox/checkbox.svelte +1 -1
  133. package/dist/panel/components/ui/command/command-group.css +1 -0
  134. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +1 -7
  135. package/dist/panel/components/ui/input/input.svelte +13 -23
  136. package/dist/panel/components/ui/label/label.css +0 -1
  137. package/dist/panel/components/ui/nav/NavItemButton.svelte +2 -8
  138. package/dist/panel/components/ui/page-header/PageHeader.svelte +6 -13
  139. package/dist/panel/components/ui/radio-group/radio-group.css +2 -0
  140. package/dist/panel/components/ui/scroll-area/scroll-area.css +0 -4
  141. package/dist/panel/components/ui/sheet/sheet.css +0 -16
  142. package/dist/panel/components/ui/tabs/tabs.css +7 -0
  143. package/dist/panel/context/collection.svelte.d.ts +0 -4
  144. package/dist/panel/context/collection.svelte.js +0 -3
  145. package/dist/panel/context/documentForm.svelte.js +1 -0
  146. package/dist/panel/context/live.svelte.d.ts +8 -20
  147. package/dist/panel/context/live.svelte.js +65 -35
  148. package/dist/panel/context/livePanel.svelte.d.ts +11 -0
  149. package/dist/panel/context/livePanel.svelte.js +8 -0
  150. package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +1 -7
  151. package/dist/panel/pages/collection/Collection.svelte +3 -1
  152. package/dist/panel/pages/dashboard/Dashboard.svelte +52 -28
  153. package/dist/panel/pages/dashboard/DashboardCollection.svelte +91 -0
  154. package/dist/panel/pages/dashboard/DashboardCollection.svelte.d.ts +9 -0
  155. package/dist/panel/pages/dashboard/load.server.js +30 -14
  156. package/dist/panel/pages/dashboard/types.d.ts +1 -0
  157. package/dist/panel/pages/live/Live.svelte +244 -67
  158. package/dist/panel/pages/live/Live.svelte.d.ts +9 -1
  159. package/dist/panel/pages/live/load.server.js +14 -1
  160. package/dist/panel/style/index.css +562 -8
  161. package/dist/panel/style/mixins/index.css +1 -3
  162. package/dist/panel/util/upload.d.ts +1 -1
  163. package/dist/util/object.js +3 -0
  164. package/package.json +12 -10
  165. package/dist/panel/components/sections/document/FloatingUI.svelte +0 -81
  166. package/dist/panel/components/sections/document/FloatingUI.svelte.d.ts +0 -8
  167. package/dist/panel/components/sections/live/SidePanel.svelte +0 -61
  168. package/dist/panel/components/sections/live/SidePanel.svelte.d.ts +0 -14
  169. package/dist/panel/components/sections/live/side-panel.css +0 -15
  170. /package/dist/adapter-sqlite/{area.d.ts → area.server.d.ts} +0 -0
  171. /package/dist/adapter-sqlite/{collection.d.ts → collection.server.d.ts} +0 -0
  172. /package/dist/adapter-sqlite/{orderBy.d.ts → orderBy.server.d.ts} +0 -0
  173. /package/dist/adapter-sqlite/{transform.d.ts → transform.server.d.ts} +0 -0
  174. /package/dist/adapter-sqlite/{types.d.ts → types.server.d.ts} +0 -0
  175. /package/dist/adapter-sqlite/{types.js → types.server.js} +0 -0
  176. /package/dist/adapter-sqlite/{util.d.ts → util.server.d.ts} +0 -0
  177. /package/dist/adapter-sqlite/{util.js → util.server.js} +0 -0
  178. /package/dist/adapter-sqlite/{where.d.ts → where.server.d.ts} +0 -0
  179. /package/dist/adapter-sqlite/{where.js → where.server.js} +0 -0
  180. /package/dist/adapter-sqlite/{with.d.ts → with.server.d.ts} +0 -0
  181. /package/dist/adapter-sqlite/{with.js → with.server.js} +0 -0
  182. /package/dist/core/collections/upload/util/{converter.d.ts → converter.server.d.ts} +0 -0
  183. /package/dist/core/collections/upload/util/{converter.js → converter.server.js} +0 -0
  184. /package/dist/core/config/auth/{better-auth-hooks.d.ts → better-auth-hooks.server.d.ts} +0 -0
  185. /package/dist/core/config/auth/{better-auth-hooks.js → better-auth-hooks.server.js} +0 -0
  186. /package/dist/core/config/server/{augment-cors.d.ts → augment-cors.server.d.ts} +0 -0
  187. /package/dist/core/config/server/{augment-cors.js → augment-cors.server.js} +0 -0
  188. /package/dist/core/config/server/{validate.d.ts → validate.server.d.ts} +0 -0
  189. /package/dist/core/config/server/{write.d.ts → write.server.d.ts} +0 -0
  190. /package/dist/core/dev/cache/{index.d.ts → index.server.d.ts} +0 -0
  191. /package/dist/core/dev/cache/{index.js → index.server.js} +0 -0
  192. /package/dist/core/dev/cli/clear/{index.d.ts → index.server.d.ts} +0 -0
  193. /package/dist/core/dev/cli/clear/{index.js → index.server.js} +0 -0
  194. /package/dist/core/dev/cli/generate/{index.d.ts → index.server.d.ts} +0 -0
  195. /package/dist/core/dev/cli/init/{getPackageName.d.ts → get-package-info.server.d.ts} +0 -0
  196. /package/dist/core/dev/cli/init/{getPackageName.js → get-package-info.server.js} +0 -0
  197. /package/dist/core/dev/cli/init/{index.d.ts → index.server.d.ts} +0 -0
  198. /package/dist/core/dev/cli/init/{packageManagerUtil.d.ts → package-manager-util.server.d.ts} +0 -0
  199. /package/dist/core/dev/generate/routes/{custom-css.d.ts → custom-css.server.d.ts} +0 -0
  200. /package/dist/core/dev/generate/routes/{custom-css.js → custom-css.server.js} +0 -0
  201. /package/dist/core/dev/generate/routes/{index.d.ts → index.server.d.ts} +0 -0
  202. /package/dist/core/dev/generate/routes/{util.d.ts → util.server.d.ts} +0 -0
  203. /package/dist/core/dev/generate/sanitize/{index.d.ts → index.server.d.ts} +0 -0
  204. /package/dist/core/dev/generate/sanitize/{index.js → index.server.js} +0 -0
  205. /package/dist/core/dev/generate/types/{index.d.ts → index.server.d.ts} +0 -0
  206. /package/dist/core/dev/vite/{index.d.ts → index.server.d.ts} +0 -0
@@ -0,0 +1,106 @@
1
+ <script lang="ts">
2
+ import { t__ } from '../../../../core/i18n/index.js';
3
+ import type { DocumentFormContext } from '../../../context/documentForm.svelte.js';
4
+ import type { ActivePanel } from '../../../context/livePanel.svelte';
5
+ import { ChevronLeft, Form, Laptop, Save, Smartphone, X } from '@lucide/svelte';
6
+ import Button from '../../ui/button/button.svelte';
7
+ import SpinLoader from '../../ui/spin-loader/SpinLoader.svelte';
8
+
9
+ type Props = {
10
+ forms: Record<string, DocumentFormContext>;
11
+ onClose: () => void;
12
+ toggleRootPanel: (() => void) | null;
13
+ activePanel: ActivePanel | null;
14
+ currentDevice: 'desktop' | 'mobile';
15
+ };
16
+ let {
17
+ forms,
18
+ onClose,
19
+ toggleRootPanel,
20
+ activePanel,
21
+ currentDevice = $bindable('desktop')
22
+ }: Props = $props();
23
+
24
+ const formsWithChanges = $derived(Object.values(forms).filter((form) => form.canSubmit));
25
+ const isProcessing = $derived(Object.values(forms).some((form) => form.processing));
26
+
27
+ function saveAll() {
28
+ for (const form of formsWithChanges) {
29
+ try {
30
+ form.element.requestSubmit();
31
+ } catch {
32
+ // form element not yet mounted — skip
33
+ }
34
+ }
35
+ }
36
+
37
+ function handleKeyDown(event: KeyboardEvent) {
38
+ if ((event.ctrlKey || event.metaKey) && event.key === 's') {
39
+ event.preventDefault();
40
+ saveAll();
41
+ }
42
+ }
43
+ </script>
44
+
45
+ <div class="rz-live-floating-ui">
46
+ <Button icon={activePanel ? ChevronLeft : X} onclick={onClose} variant="secondary" size="icon" />
47
+
48
+ {#if toggleRootPanel}
49
+ <Button
50
+ onclick={toggleRootPanel}
51
+ variant={activePanel && activePanel.fieldPath === '' ? 'secondary' : 'ghost'}
52
+ size="icon"
53
+ icon={Form}
54
+ />
55
+ {/if}
56
+
57
+ <Button
58
+ onclick={() => (currentDevice = 'mobile')}
59
+ variant={currentDevice === 'mobile' ? 'secondary' : 'ghost'}
60
+ size="icon"
61
+ icon={Smartphone}
62
+ />
63
+ <Button
64
+ onclick={() => (currentDevice = 'desktop')}
65
+ variant={currentDevice === 'desktop' ? 'secondary' : 'ghost'}
66
+ size="icon"
67
+ icon={Laptop}
68
+ />
69
+
70
+ <Button
71
+ onclick={saveAll}
72
+ disabled={formsWithChanges.length === 0}
73
+ class="rz-live-floating-ui__save"
74
+ >
75
+ {#if isProcessing}
76
+ <SpinLoader />
77
+ {:else}
78
+ <Save size="13" />
79
+ {/if}
80
+ {t__('common.save')}
81
+ </Button>
82
+ </div>
83
+
84
+ <svelte:window onkeydown={handleKeyDown} />
85
+
86
+ <style>
87
+ .rz-live-floating-ui {
88
+ position: fixed;
89
+ bottom: var(--rz-size-2);
90
+ left: var(--rz-size-2);
91
+ margin-left: var(--rz-size-2);
92
+ margin-right: var(--rz-size-2);
93
+ height: var(--rz-size-14);
94
+ background-color: hsl(var(--rz-color-bg));
95
+ padding: var(--rz-size-2);
96
+ border-radius: var(--rz-radius-md);
97
+ z-index: 1000;
98
+ display: flex;
99
+ gap: var(--rz-size-2);
100
+ box-shadow: var(--rz-shadow-xl);
101
+ border: var(--rz-border);
102
+ :global(.rz-live-floating-ui__save) {
103
+ flex: 1;
104
+ }
105
+ }
106
+ </style>
@@ -0,0 +1,12 @@
1
+ import type { DocumentFormContext } from '../../../context/documentForm.svelte.js';
2
+ import type { ActivePanel } from '../../../context/livePanel.svelte';
3
+ type Props = {
4
+ forms: Record<string, DocumentFormContext>;
5
+ onClose: () => void;
6
+ toggleRootPanel: (() => void) | null;
7
+ activePanel: ActivePanel | null;
8
+ currentDevice: 'desktop' | 'mobile';
9
+ };
10
+ declare const LiveFloatingUi: import("svelte").Component<Props, {}, "currentDevice">;
11
+ type LiveFloatingUi = ReturnType<typeof LiveFloatingUi>;
12
+ export default LiveFloatingUi;
@@ -1,14 +1,14 @@
1
1
  <script lang="ts">
2
+ import { beforeNavigate } from '$app/navigation';
2
3
  import { page } from '$app/state';
3
4
  import { setLiveContext } from '../../../context/live.svelte.js';
4
- import { beforeNavigate } from '$app/navigation';
5
- import { onMount } from 'svelte';
5
+ import { onMount, type Snippet } from 'svelte';
6
+
7
+ const { children }: { children: Snippet } = $props();
6
8
 
7
9
  let live = setLiveContext(page.url.href);
8
10
  beforeNavigate(live.beforeNavigate);
9
11
 
10
- const { children } = $props();
11
-
12
12
  onMount(() => {
13
13
  window.addEventListener('message', live.onMessage);
14
14
  });
@@ -1,5 +1,7 @@
1
- declare const Provider: import("svelte").Component<{
2
- children: any;
3
- }, {}, "">;
1
+ import { type Snippet } from 'svelte';
2
+ type $$ComponentProps = {
3
+ children: Snippet;
4
+ };
5
+ declare const Provider: import("svelte").Component<$$ComponentProps, {}, "">;
4
6
  type Provider = ReturnType<typeof Provider>;
5
7
  export default Provider;
@@ -0,0 +1,12 @@
1
+ .rz-live-edit-panel {
2
+ --rz-page-gutter: var(--rz-size-4);
3
+ --rz-tabs-list-top: 0;
4
+ height: 100vh;
5
+ background-color: hsl(var(--rz-color-bg));
6
+ }
7
+ .rz-live-edit-panel__fields {
8
+ height: 100vh;
9
+ padding: var(--rz-size-4);
10
+ padding-bottom: var(--rz-size-20);
11
+ border-right: var(--rz-border);
12
+ }
@@ -25,13 +25,7 @@
25
25
  {/each}
26
26
  </div>
27
27
 
28
- <style>/**************************************/
29
-
30
- /* Font */
31
-
32
- /**************************************/
33
-
34
- .rz-aria {
28
+ <style>.rz-aria {
35
29
  display: flex;
36
30
  align-items: center;
37
31
  gap: var(--rz-size-3);
@@ -45,8 +39,7 @@
45
39
  opacity: 1;
46
40
  }
47
41
  }
48
-
49
- .rz-aria__last {
42
+ .rz-aria__last {
50
43
  overflow: hidden;
51
44
  display: -webkit-box;
52
45
  -webkit-box-orient: vertical;
@@ -51,13 +51,7 @@
51
51
  </button>
52
52
  {/if}
53
53
 
54
- <style>/**************************************/
55
-
56
- /* Font */
57
-
58
- /**************************************/
59
-
60
- :root {
54
+ <style>:root {
61
55
  --rz-button-tl-radius: var(--rz-radius-md);
62
56
  --rz-button-tr-radius: var(--rz-radius-md);
63
57
  --rz-button-br-radius: var(--rz-radius-md);
@@ -111,7 +105,7 @@
111
105
  --rz-button-text-fg-disabled: hsl(var(--rz-color-fg) / 0.4);
112
106
  }
113
107
 
114
- .rz-button {
108
+ .rz-button {
115
109
  flex-shrink: var(--rz-flex-shrink, unset);
116
110
  display: inline-flex;
117
111
  align-items: center;
@@ -128,7 +122,7 @@
128
122
  fill: currentColor;
129
123
  }
130
124
 
131
- .rz-button:focus-visible {
125
+ .rz-button:focus-visible {
132
126
  /* --rz-ring-offset: 1px; */
133
127
  outline: none;
134
128
  box-shadow:
@@ -136,73 +130,68 @@
136
130
  0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-ring) / var(--rz-ring-opacity, 1));
137
131
  }
138
132
 
139
- .rz-button:disabled,
133
+ .rz-button:disabled,
140
134
  .rz-button[disabled='true'] {
141
135
  opacity: 0.5;
142
136
  cursor: no-drop !important;
143
137
  }
144
138
 
145
- /**************************************/
146
-
147
- /* Sizes */
139
+ /**************************************/
140
+ /* Sizes */
141
+ /**************************************/
148
142
 
149
- /**************************************/
150
-
151
- .rz-button--size-default {
143
+ .rz-button--size-default {
152
144
  font-size: var(--rz-text-md);
153
145
  height: var(--rz-size-9);
154
146
  padding: var(--rz-size-2) var(--rz-size-4);
155
147
  }
156
148
 
157
- .rz-button--size-xs {
149
+ .rz-button--size-xs {
158
150
  height: var(--rz-size-6);
159
151
  padding: var(--rz-size-1) var(--rz-size-2);
160
152
  font-size: var(--rz-text-2xs);
161
153
  border-radius: var(--rz-radius-md);
162
154
  }
163
155
 
164
- .rz-button--size-sm {
156
+ .rz-button--size-sm {
165
157
  font-size: var(--rz-text-md);
166
158
  height: var(--rz-size-8);
167
159
  padding: var(--rz-size-2) var(--rz-size-3);
168
160
  border-radius: var(--rz-radius-md);
169
161
  }
170
162
 
171
- .rz-button--size-lg {
163
+ .rz-button--size-lg {
172
164
  font-size: var(--rz-text-md);
173
165
  height: var(--rz-size-12);
174
166
  padding: var(--rz-size-2) var(--rz-size-8);
175
167
  border-radius: var(--rz-radius-md);
176
168
  }
177
169
 
178
- .rz-button--size-xl {
170
+ .rz-button--size-xl {
179
171
  height: var(--rz-size-14);
180
172
  font-size: var(--rz-text-md);
181
173
  padding: var(--rz-size-2) var(--rz-size-8);
182
174
  border-radius: var(--rz-radius-md);
183
175
  }
184
176
 
185
- .rz-button--size-icon {
177
+ .rz-button--size-icon {
186
178
  border-radius: var(--rz-radius-lg);
187
179
  height: var(--rz-size-9);
188
180
  width: var(--rz-size-9);
189
181
  padding: var(--rz-size-1);
190
182
  }
191
183
 
192
- .rz-button--size-icon-sm {
184
+ .rz-button--size-icon-sm {
193
185
  height: var(--rz-size-8);
194
186
  width: var(--rz-size-8);
195
187
  }
196
188
 
197
- /**************************************/
198
-
199
- /* Variants */
200
-
201
- /**************************************/
202
-
203
- /** Default */
189
+ /**************************************/
190
+ /* Variants */
191
+ /**************************************/
204
192
 
205
- .rz-button--default {
193
+ /** Default */
194
+ .rz-button--default {
206
195
  background-color: var(--rz-button-default-bg);
207
196
  color: var(--rz-button-default-fg);
208
197
  &:hover:not(:disabled) {
@@ -213,9 +202,8 @@
213
202
  }
214
203
  }
215
204
 
216
- /** Success */
217
-
218
- .rz-button--success {
205
+ /** Success */
206
+ .rz-button--success {
219
207
  background-color: var(--rz-button-success-bg);
220
208
  color: var(--rz-button-success-fg);
221
209
  &:hover {
@@ -226,9 +214,8 @@
226
214
  }
227
215
  }
228
216
 
229
- /** Outline */
230
-
231
- .rz-button--outline {
217
+ /** Outline */
218
+ .rz-button--outline {
232
219
  border-style: solid;
233
220
  border-color: var(--rz-button-outline-border);
234
221
 
@@ -246,9 +233,8 @@
246
233
  }
247
234
  }
248
235
 
249
- /** Ghost */
250
-
251
- .rz-button--ghost {
236
+ /** Ghost */
237
+ .rz-button--ghost {
252
238
  background-color: var(--rz-button-ghost-bg);
253
239
  color: var(--rz-button-ghost-fg);
254
240
 
@@ -257,9 +243,8 @@
257
243
  }
258
244
  }
259
245
 
260
- /** Secondary */
261
-
262
- .rz-button--secondary {
246
+ /** Secondary */
247
+ .rz-button--secondary {
263
248
  background-color: var(--rz-button-secondary-bg);
264
249
  color: var(--rz-button-secondary-fg);
265
250
 
@@ -268,9 +253,8 @@
268
253
  }
269
254
  }
270
255
 
271
- /** Link */
272
-
273
- .rz-button--link {
256
+ /** Link */
257
+ .rz-button--link {
274
258
  background: var(--rz-button-link-bg);
275
259
  color: var(--rz-button-link-fg);
276
260
  text-underline-offset: 4px;
@@ -281,9 +265,8 @@
281
265
  }
282
266
  }
283
267
 
284
- /** Text */
285
-
286
- .rz-button--text {
268
+ /** Text */
269
+ .rz-button--text {
287
270
  padding-left: 0;
288
271
  padding-right: 0;
289
272
  background-color: var(--rz-button-text-bg);
@@ -301,13 +284,11 @@
301
284
  }
302
285
  }
303
286
 
304
- /**************************************/
305
-
306
- /* With Icon */
307
-
308
- /**************************************/
287
+ /**************************************/
288
+ /* With Icon */
289
+ /**************************************/
309
290
 
310
- .rz-button__icon,
291
+ .rz-button__icon,
311
292
  .rz-button--text__icon {
312
293
  display: grid;
313
294
  place-content: center;
@@ -7,7 +7,9 @@
7
7
  .rz-date__popover-content {
8
8
  border-radius: var(--rz-radius-md);
9
9
  }
10
+
10
11
  /**************************************/
12
+
11
13
  /* Cell
12
14
  /**************************************/
13
15
 
@@ -31,6 +33,7 @@
31
33
  }
32
34
 
33
35
  /**************************************/
36
+
34
37
  /* Day
35
38
  /**************************************/
36
39
 
@@ -101,6 +104,7 @@
101
104
  }
102
105
 
103
106
  /**************************************/
107
+
104
108
  /* Grid
105
109
  /**************************************/
106
110
 
@@ -110,6 +114,7 @@
110
114
  }
111
115
 
112
116
  /**************************************/
117
+
113
118
  /* Grid-row
114
119
  /**************************************/
115
120
 
@@ -121,6 +126,7 @@
121
126
  }
122
127
 
123
128
  /**************************************/
129
+
124
130
  /* Head
125
131
  /**************************************/
126
132
 
@@ -134,6 +140,7 @@
134
140
  }
135
141
 
136
142
  /**************************************/
143
+
137
144
  /* Head-cell
138
145
  /**************************************/
139
146
 
@@ -146,6 +153,7 @@
146
153
  }
147
154
 
148
155
  /**************************************/
156
+
149
157
  /* Heading
150
158
  /**************************************/
151
159
 
@@ -156,10 +164,12 @@
156
164
  }
157
165
 
158
166
  /**************************************/
167
+
159
168
  /* Next / Prev
160
169
  /**************************************/
161
170
 
162
171
  /** Next */
172
+
163
173
  .rz-calendar-next-button {
164
174
  height: var(--rz-size-7);
165
175
  width: var(--rz-size-7);
@@ -174,6 +184,7 @@
174
184
  }
175
185
 
176
186
  /** Prev */
187
+
177
188
  .rz-calendar-prev-button {
178
189
  height: var(--rz-size-7);
179
190
  width: var(--rz-size-7);
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
2
  import type { GenericDoc } from '../../../../types';
3
+ import StatusDot from '../../sections/collection/StatusDot.svelte';
3
4
  import UploadThumbCell from '../../sections/collection/upload-thumb-cell/UploadThumbCell.svelte';
4
5
 
5
6
  type Props = { doc: GenericDoc };
@@ -15,7 +16,7 @@
15
16
 
16
17
  <div class="rz-document-card">
17
18
  <div class="rz-document-card__preview">
18
- <UploadThumbCell mimeType={doc.mimeType} url={thumbnailUrl} />
19
+ <UploadThumbCell mimeType={doc.mimeType} url={thumbnailUrl || doc._thumbnail} />
19
20
  </div>
20
21
 
21
22
  <div class="rz-document-card__body">
@@ -23,22 +24,27 @@
23
24
  {doc.title}
24
25
  </p>
25
26
 
26
- <div class="rz-document-card__metadata">
27
- {#each ['filesize', 'mimeType'] as key, index (index)}
28
- <p>{doc[key]}</p>
29
- {/each}
30
- </div>
27
+ {#if doc.filesize || doc.mimeType}
28
+ <div class="rz-document-card__metadata">
29
+ {#each ['filesize', 'mimeType'] as key, index (index)}
30
+ <p>{doc[key]}</p>
31
+ {/each}
32
+ </div>
33
+ {/if}
34
+
35
+ {#if doc.status}
36
+ <StatusDot status={doc.status} />
37
+ {/if}
31
38
  </div>
32
39
  </div>
33
40
 
34
- <style>
35
- /** */
36
- :root {
37
- --rz-card-hover-bg: light-dark(hsl(var(--rz-gray-18)), hsl(var(--rz-gray-4)));
38
- --rz-card-bg: light-dark(hsl(var(--rz-gray-17)), hsl(var(--rz-gray-3)));
41
+ <style>:root {
42
+ --rz-card-hover-bg: light-dark(hsl(var(--rz-gray-19)), hsl(var(--rz-gray-4)));
43
+ --rz-card-bg: light-dark(hsl(var(--rz-gray-18)), hsl(var(--rz-gray-3)));
39
44
  }
40
45
 
41
46
  .rz-document-card {
47
+ --rz-dot-size: var(--rz-size-2);
42
48
  border: var(--rz-border);
43
49
  background-color: var(--rz-card-bg);
44
50
  border-radius: var(--rz-radius-lg);
@@ -72,9 +78,10 @@
72
78
  overflow: hidden;
73
79
  word-break: break-all;
74
80
  text-align: left;
75
- font-size: var(--rz-text-xs);
76
- font-variation-settings: 'wght' 700;
77
- font-weight: 700;
81
+
82
+ font-variation-settings: 'wght' 600;
83
+
84
+ font-weight: 600;
78
85
  }
79
86
 
80
87
  .rz-document-card__body {
@@ -53,19 +53,13 @@
53
53
  </button>
54
54
  </div>
55
55
 
56
- <style>/**************************************/
57
-
58
- /* Font */
59
-
60
- /**************************************/
61
-
62
- :root {
56
+ <style>:root {
63
57
  --rz-ressource-card-bg: light-dark(hsl(var(--rz-gray-18)), hsl(var(--rz-gray-4)));
64
58
  --rz-ressource-card-thumbnail-bg: light-dark(hsl(var(--rz-gray-15)), hsl(var(--rz-gray-2)));
65
59
  --rz-border-radius: var(--rz-radius-md);
66
60
  }
67
61
 
68
- .rz-card-resource {
62
+ .rz-card-resource {
69
63
  --padding: var(--rz-card-padding, var(--rz-size-2));
70
64
  --rz-size: var(--rz-thumbnail-size, var(--rz-size-20));
71
65
  background-color: var(--rz-ressource-card-bg);
@@ -78,7 +72,7 @@
78
72
  max-width: 400px;
79
73
  }
80
74
 
81
- .rz-card-resource__thumbnail {
75
+ .rz-card-resource__thumbnail {
82
76
  width: var(--rz-size);
83
77
  height: var(--rz-size);
84
78
  flex-shrink: 0;
@@ -90,19 +84,19 @@
90
84
  border-radius: var(--rz-radius-md);
91
85
  }
92
86
 
93
- .rz-card-resource__image {
87
+ .rz-card-resource__image {
94
88
  height: 100%;
95
89
  width: 100%;
96
90
  -o-object-fit: cover;
97
91
  object-fit: cover;
98
92
  }
99
93
 
100
- .rz-card-resource__info {
94
+ .rz-card-resource__info {
101
95
  margin-top: var(--rz-size-3);
102
96
  padding-right: 2rem;
103
97
  }
104
98
 
105
- .rz-card-resource__title {
99
+ .rz-card-resource__title {
106
100
  font-variation-settings: 'wght' 600;
107
101
  font-weight: 600;
108
102
  display: flex;
@@ -116,11 +110,11 @@
116
110
  }
117
111
  }
118
112
 
119
- .rz-card-resource__info-text {
113
+ .rz-card-resource__info-text {
120
114
  font-size: var(--rz-text-sm);
121
115
  }
122
116
 
123
- .rz-card-resource__remove {
117
+ .rz-card-resource__remove {
124
118
  position: absolute;
125
119
  color: hsl(var(--rz-color-fg));
126
120
  right: var(--rz-size-2);
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
- import { Checkbox as CheckboxPrimitive, type WithoutChildrenOrChild } from 'bits-ui';
3
2
  import { Check } from '@lucide/svelte';
3
+ import { Checkbox as CheckboxPrimitive, type WithoutChildrenOrChild } from 'bits-ui';
4
4
  import './checkbox.css';
5
5
 
6
6
  let {
@@ -15,6 +15,7 @@
15
15
  font-variation-settings: 'wght' 500;
16
16
  font-weight: 500;
17
17
  }
18
+
18
19
  .rz-command-group__heading {
19
20
  color: hsl(var(--rz-color-fg) / 0.7);
20
21
  padding-left: var(--rz-size-2);
@@ -35,13 +35,7 @@
35
35
  {/snippet}
36
36
  </DropdownMenuPrimitive.CheckboxItem>
37
37
 
38
- <style>/**************************************/
39
-
40
- /* Font */
41
-
42
- /**************************************/
43
-
44
- :global {
38
+ <style>:global {
45
39
  .rz-dropdown-checkbox {
46
40
  position: relative;
47
41
  display: flex;