firstly 0.0.15 → 0.0.16-next.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 (95) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/esm/ROUTES.d.ts +10 -2
  3. package/esm/ROUTES.js +5 -1
  4. package/esm/auth/Entities.js +1 -0
  5. package/esm/auth/server/handleAuth.js +2 -1
  6. package/esm/auth/server/handleGuard.d.ts +10 -4
  7. package/esm/auth/server/handleGuard.js +8 -41
  8. package/esm/auth/server/module.d.ts +28 -0
  9. package/esm/auth/server/module.js +3 -0
  10. package/esm/auth/static/assets/{Page-B1GE_oYi.d.ts → Page-BgIgl-Te.d.ts} +2 -2
  11. package/esm/auth/static/assets/{Page-CDHFtYuN.js → Page-BgIgl-Te.js} +1 -1
  12. package/esm/auth/static/assets/{Page-Dh8pvAo6.d.ts → Page-HDnoBhpE.d.ts} +2 -2
  13. package/esm/auth/static/assets/{Page-Dh8pvAo6.js → Page-HDnoBhpE.js} +2 -2
  14. package/esm/auth/static/assets/{Page-CDHFtYuN.d.ts → Page-f5pC21Yg.d.ts} +2 -2
  15. package/esm/auth/static/assets/{Page-B1GE_oYi.js → Page-f5pC21Yg.js} +1 -1
  16. package/esm/auth/static/assets/{index-7Nh2ct-y.js → index-DAjei0Ie.js} +2 -2
  17. package/esm/auth/static/index.html +4 -4
  18. package/esm/auth/types.d.ts +1 -0
  19. package/esm/helper.d.ts +1 -1
  20. package/esm/helper.js +4 -3
  21. package/esm/index.d.ts +5 -3
  22. package/esm/index.js +5 -3
  23. package/esm/mail/server/index.js +2 -1
  24. package/esm/svelte/FF_Cell.svelte +104 -0
  25. package/esm/svelte/FF_Cell.svelte.d.ts +24 -0
  26. package/esm/svelte/FF_Cell_Caption.svelte +20 -0
  27. package/esm/svelte/FF_Cell_Caption.svelte.d.ts +24 -0
  28. package/esm/svelte/FF_Cell_Display.svelte +61 -0
  29. package/esm/svelte/FF_Cell_Display.svelte.d.ts +22 -0
  30. package/esm/svelte/FF_Cell_Edit.svelte +104 -0
  31. package/esm/svelte/FF_Cell_Edit.svelte.d.ts +25 -0
  32. package/esm/svelte/FF_Cell_Error.svelte +20 -0
  33. package/esm/svelte/FF_Cell_Error.svelte.d.ts +24 -0
  34. package/esm/svelte/FF_Cell_Hint.svelte +20 -0
  35. package/esm/svelte/FF_Cell_Hint.svelte.d.ts +24 -0
  36. package/esm/svelte/FF_Config.svelte +29 -0
  37. package/esm/svelte/FF_Config.svelte.d.ts +9 -0
  38. package/esm/svelte/FF_Display.svelte +51 -0
  39. package/esm/svelte/FF_Display.svelte.d.ts +22 -0
  40. package/esm/svelte/FF_Edit.svelte +104 -0
  41. package/esm/svelte/FF_Edit.svelte.d.ts +25 -0
  42. package/esm/svelte/FF_Error.svelte +23 -0
  43. package/esm/svelte/FF_Error.svelte.d.ts +22 -0
  44. package/esm/svelte/FF_Field.svelte +62 -0
  45. package/esm/svelte/FF_Field.svelte.d.ts +22 -0
  46. package/esm/svelte/FF_Form.svelte +156 -0
  47. package/esm/svelte/FF_Form.svelte.d.ts +30 -0
  48. package/esm/svelte/FF_Grid.svelte +257 -0
  49. package/esm/svelte/FF_Grid.svelte.d.ts +31 -0
  50. package/esm/svelte/FF_Hint.svelte +21 -0
  51. package/esm/svelte/FF_Hint.svelte.d.ts +22 -0
  52. package/esm/svelte/FF_Label.svelte +23 -0
  53. package/esm/svelte/FF_Label.svelte.d.ts +22 -0
  54. package/esm/svelte/FF_Layout.svelte +62 -0
  55. package/esm/svelte/FF_Layout.svelte.d.ts +24 -0
  56. package/esm/svelte/FF_Repo.svelte.d.ts +69 -0
  57. package/esm/svelte/FF_Repo.svelte.js +170 -0
  58. package/esm/svelte/actions/intersection.d.ts +6 -0
  59. package/esm/svelte/actions/intersection.js +17 -0
  60. package/esm/svelte/class/SP.svelte.d.ts +61 -0
  61. package/esm/svelte/class/SP.svelte.js +412 -0
  62. package/esm/svelte/customField.d.ts +69 -0
  63. package/esm/svelte/customField.js +4 -0
  64. package/esm/svelte/dialog/DialogManagement.svelte +101 -0
  65. package/esm/svelte/dialog/DialogManagement.svelte.d.ts +18 -0
  66. package/esm/svelte/dialog/DialogPrimitive.svelte +157 -0
  67. package/esm/svelte/dialog/DialogPrimitive.svelte.d.ts +38 -0
  68. package/esm/svelte/dialog/dialog.d.ts +58 -0
  69. package/esm/svelte/dialog/dialog.js +130 -0
  70. package/esm/svelte/ff_Config.svelte.d.ts +91 -0
  71. package/esm/svelte/ff_Config.svelte.js +111 -0
  72. package/esm/svelte/firstly.css +14 -0
  73. package/esm/svelte/helpers/debounce.d.ts +1 -0
  74. package/esm/svelte/helpers/debounce.js +7 -0
  75. package/esm/svelte/helpers.d.ts +29 -0
  76. package/esm/svelte/helpers.js +38 -0
  77. package/esm/svelte/index.d.ts +32 -0
  78. package/esm/svelte/index.js +29 -0
  79. package/esm/svelte/tryCatch.d.ts +12 -0
  80. package/esm/svelte/tryCatch.js +18 -0
  81. package/esm/ui/Field.svelte +1 -1
  82. package/esm/ui/Grid.svelte +8 -2
  83. package/esm/ui/Grid2.svelte +354 -0
  84. package/esm/ui/Grid2.svelte.d.ts +58 -0
  85. package/esm/ui/GridLoading.svelte +33 -8
  86. package/esm/ui/GridLoading.svelte.d.ts +1 -0
  87. package/esm/ui/GridPaginate.svelte +0 -3
  88. package/esm/ui/GridPaginate.svelte.d.ts +0 -1
  89. package/esm/ui/GridPaginate2.svelte +25 -0
  90. package/esm/ui/GridPaginate2.svelte.d.ts +7 -0
  91. package/esm/ui/dialog/dialog.d.ts +3 -1
  92. package/esm/ui/dialog/dialog.js +2 -0
  93. package/esm/ui/link/LinkPlus.svelte +8 -6
  94. package/package.json +17 -2
  95. /package/esm/auth/static/assets/{index-7Nh2ct-y.d.ts → index-DAjei0Ie.d.ts} +0 -0
@@ -0,0 +1,58 @@
1
+ import type { EntityOrderBy } from 'remult';
2
+ import type { Cell } from '../cellsBuildor.js';
3
+ import type { FF_Repo } from '../svelte/FF_Repo.svelte.js';
4
+ declare class __sveltets_Render<T extends Record<any, any>> {
5
+ props(): {
6
+ cells: Cell<T>[];
7
+ r: FF_Repo<any>;
8
+ withAdd?: boolean;
9
+ withEdit?: boolean;
10
+ withDelete?: boolean;
11
+ loadingRows?: number;
12
+ classes?: {
13
+ table: string;
14
+ } | undefined;
15
+ orderBy?: EntityOrderBy<T> | undefined;
16
+ orderByCols?: true | (keyof T)[] | undefined;
17
+ settingsLeft?: boolean;
18
+ dicoNoResult?: string;
19
+ };
20
+ events(): {
21
+ refresh: any;
22
+ add: CustomEvent<any>;
23
+ rowclick: CustomEvent<any>;
24
+ edit: CustomEvent<any>;
25
+ delete: CustomEvent<any>;
26
+ } & {
27
+ [evt: string]: CustomEvent<any>;
28
+ };
29
+ slots(): {
30
+ header: {
31
+ field: import("remult").FieldMetadata<any, T> | undefined;
32
+ };
33
+ cell: {
34
+ row: any;
35
+ field: import("remult").FieldMetadata<any, T> | undefined;
36
+ cell: Cell<T>;
37
+ };
38
+ extra: {};
39
+ };
40
+ bindings(): string;
41
+ exports(): {};
42
+ }
43
+ interface $$IsomorphicComponent {
44
+ new <T extends Record<any, any>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']> & {
45
+ children?: any;
46
+ }>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
47
+ $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
48
+ } & ReturnType<__sveltets_Render<T>['exports']>;
49
+ <T extends Record<any, any>>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {
50
+ $$events?: ReturnType<__sveltets_Render<T>['events']>;
51
+ $$slots?: ReturnType<__sveltets_Render<T>['slots']>;
52
+ children?: any;
53
+ }): ReturnType<__sveltets_Render<T>['exports']>;
54
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
55
+ }
56
+ declare const Grid2: $$IsomorphicComponent;
57
+ type Grid2<T extends Record<any, any>> = InstanceType<typeof Grid2<T>>;
58
+ export default Grid2;
@@ -5,28 +5,53 @@
5
5
 
6
6
  export let columns: Align[]
7
7
  export let loadingRows = 5
8
+ export let withDoubleLoading = true
8
9
 
9
10
  // Random with different size
10
- let size = ['', 'w-1/2', 'w-1/3', 'w-1/4', 'w-1/5', 'w-1/6']
11
+ let size = [
12
+ // 'w-1/12',
13
+ 'w-2/12',
14
+ 'w-3/12',
15
+ 'w-4/12',
16
+ 'w-5/12',
17
+ // 'w-6/12',
18
+ 'w-7/12',
19
+ // 'w-8/12',
20
+ 'w-9/12',
21
+ 'w-10/12',
22
+ 'w-11/12',
23
+ 'w-full',
24
+ ]
11
25
  </script>
12
26
 
13
27
  <!-- Do 10 rows -->
14
28
  {#each new Array(loadingRows) as _row, r}
15
29
  <tr>
16
30
  {#each columns as column, c}
17
- <td class="{column} ">
31
+ {@const sizeIndex = parseInt(
32
+ (((r + 1) * (c + 1) * Math.random() * size.length) % size.length).toString(),
33
+ )}
34
+ <td class={column}>
18
35
  <div class={tw('flex justify-between', column === 'text-right' && 'flex-row-reverse')}>
19
36
  {#if column === 'text-center'}
20
37
  <div></div>
21
38
  {/if}
22
- <Loading
23
- class={tw(
24
- `h-4`,
25
- size[parseInt((((r + 1) * (c + 1) * Math.random() * size.length) % size.length).toString())],
26
- )}
27
- />
39
+ <Loading class={tw(`h-4`, size[sizeIndex])} />
28
40
  <div></div>
29
41
  </div>
42
+
43
+ {#if withDoubleLoading}
44
+ {@const sizeIndex2 = parseInt(
45
+ (((r + 1) * (c + 1) * Math.random() * sizeIndex) % sizeIndex).toString(),
46
+ )}
47
+ <div class={tw('mt-2 flex justify-between', column === 'text-right' && 'flex-row-reverse')}>
48
+ {#if column === 'text-center'}
49
+ <div></div>
50
+ {/if}
51
+ <Loading class={tw(`h-3`, size[sizeIndex2])} />
52
+ <div></div>
53
+ </div>
54
+ {/if}
30
55
  </td>
31
56
  {/each}
32
57
  </tr>
@@ -15,6 +15,7 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
15
15
  declare const GridLoading: $$__sveltets_2_IsomorphicComponent<{
16
16
  columns: Align[];
17
17
  loadingRows?: number;
18
+ withDoubleLoading?: boolean;
18
19
  }, {
19
20
  [evt: string]: CustomEvent<any>;
20
21
  }, {}, {}, string>;
@@ -1,9 +1,6 @@
1
1
  <script lang="ts">
2
2
  import Icon from './Icon.svelte'
3
3
  import FieldContainer from './internals/FieldContainer.svelte'
4
-
5
- import './LibIcon'
6
-
7
4
  import { LibIcon_ChevronLeft, LibIcon_ChevronRight } from './LibIcon'
8
5
  import Loading from './Loading.svelte'
9
6
 
@@ -1,4 +1,3 @@
1
- import './LibIcon';
2
1
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
2
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
3
  $$bindings?: Bindings;
@@ -0,0 +1,25 @@
1
+ <script lang="ts">
2
+ import FieldContainer from './internals/FieldContainer.svelte'
3
+ import Loading from './Loading.svelte'
4
+
5
+ interface Props {
6
+ label?: string
7
+ totalCount?: number | undefined | null
8
+ }
9
+
10
+ let { label = 'Stats', totalCount = undefined }: Props = $props()
11
+ </script>
12
+
13
+ <FieldContainer {label} forId="paginate" classes={{ label: 'justify-end' }}>
14
+ <div class="flex w-14 items-center justify-end">
15
+ {#if totalCount === undefined}
16
+ <Loading class="ml-6 mr-2 h-3 w-1/6"></Loading>
17
+ <Loading class="mx-2 h-4 w-1/2"></Loading>
18
+ <Loading class="mx-2 h-3 w-1/6"></Loading>
19
+ {:else}
20
+ <span class="text-primary justify-end px-2 font-bold">
21
+ {totalCount}
22
+ </span>
23
+ {/if}
24
+ </div>
25
+ </FieldContainer>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ label?: string;
3
+ totalCount?: number | undefined | null;
4
+ }
5
+ declare const GridPaginate2: import("svelte").Component<Props, {}, "">;
6
+ type GridPaginate2 = ReturnType<typeof GridPaginate2>;
7
+ export default GridPaginate2;
@@ -1,6 +1,7 @@
1
1
  import type { SvelteComponent } from 'svelte';
2
- import type { Repository } from 'remult';
2
+ import { type Repository } from 'remult';
3
3
  import { type BaseItemLight, type CellsInput, type StoreItem } from '../../';
4
+ import type { FF_Repo } from '../../svelte';
4
5
  export type DialogClasses = {
5
6
  /**
6
7
  * for example `overflow-auto` to have a scrollbar in the dialog
@@ -23,6 +24,7 @@ export type DialogMetaData<entityType = any> = {
23
24
  wDelete?: boolean;
24
25
  focusKey?: string;
25
26
  topicPrefixText?: string;
27
+ r?: FF_Repo<entityType>;
26
28
  };
27
29
  type ResultClose<entityType = any> = {
28
30
  success: boolean;
@@ -1,4 +1,5 @@
1
1
  import { writable } from 'svelte/store';
2
+ import {} from 'remult';
2
3
  import { LibIcon_Add, LibIcon_Delete, LibIcon_Edit, LibIcon_Search, } from '../../';
3
4
  const createDialogManagement = () => {
4
5
  const { subscribe, update } = writable([]);
@@ -67,6 +68,7 @@ const createDialogManagement = () => {
67
68
  focusKey: settings?.focusKey,
68
69
  topicPrefixText,
69
70
  };
71
+ // @ts-ignore
70
72
  return show(detail, type);
71
73
  },
72
74
  show: (dialog) => {
@@ -22,13 +22,15 @@
22
22
  <div class="flex items-center gap-4">
23
23
  {#if item}
24
24
  {#if item.icon?.data && !noIcon}
25
- {#if item.icon.caption}
26
- <Tooltip text={item.icon.caption}>
25
+ <div>
26
+ {#if item.icon.caption}
27
+ <Tooltip text={item.icon.caption}>
28
+ <Icon {...item.icon} />
29
+ </Tooltip>
30
+ {:else}
27
31
  <Icon {...item.icon} />
28
- </Tooltip>
29
- {:else}
30
- <Icon {...item.icon} />
31
- {/if}
32
+ {/if}
33
+ </div>
32
34
  {/if}
33
35
 
34
36
  {#if hasSomethingToDisplay(item)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firstly",
3
- "version": "0.0.15",
3
+ "version": "0.0.16-next.1",
4
4
  "type": "module",
5
5
  "description": "Firstly, an opinionated Remult setup!",
6
6
  "funding": "https://github.com/sponsors/jycouet",
@@ -19,16 +19,26 @@
19
19
  "remult": ">=2.7.32",
20
20
  "svelte": ">=5"
21
21
  },
22
+ "peerDependenciesMeta": {
23
+ "@sveltejs/kit": {
24
+ "optional": true
25
+ },
26
+ "svelte": {
27
+ "optional": true
28
+ }
29
+ },
22
30
  "dependencies": {
23
31
  "@clack/prompts": "0.10.0",
24
32
  "@kitql/internals": "0.10.4",
33
+ "@layerstack/svelte-actions": "1.0.0",
34
+ "@layerstack/utils": "1.0.0",
25
35
  "@mdi/js": "7.4.47",
26
36
  "@melt-ui/svelte": "0.86.3",
27
37
  "@oslojs/crypto": "1.0.1",
28
38
  "@oslojs/encoding": "1.1.0",
29
39
  "@oslojs/otp": "1.1.0",
30
40
  "@types/nodemailer": "6.4.14",
31
- "arctic": "3.5.0",
41
+ "arctic": "3.6.0",
32
42
  "bcryptjs": "3.0.2",
33
43
  "clsx": "2.1.1",
34
44
  "cron": "4.1.0",
@@ -54,6 +64,11 @@
54
64
  "types": "./esm/server/index.d.ts",
55
65
  "default": "./esm/server/index.js"
56
66
  },
67
+ "./svelte": {
68
+ "types": "./esm/svelte/index.d.ts",
69
+ "svelte": "./esm/svelte/index.js",
70
+ "default": "./esm/svelte/index.js"
71
+ },
57
72
  "./vite": {
58
73
  "types": "./esm/vite/index.d.ts",
59
74
  "default": "./esm/vite/index.js"