firstly 0.3.0 → 0.4.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 (163) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/esm/SqlDatabase/FF_LogToConsole.js +9 -14
  3. package/esm/carbone/CarboneController.js +2 -1
  4. package/esm/changeLog/index.d.ts +0 -5
  5. package/esm/core/helper.d.ts +2 -0
  6. package/esm/core/helper.js +3 -0
  7. package/esm/core/index.d.ts +0 -0
  8. package/esm/core/index.js +5 -0
  9. package/esm/core/tailwind.d.ts +21 -0
  10. package/esm/core/tailwind.js +22 -0
  11. package/esm/core/tryCatch.d.ts +44 -0
  12. package/esm/core/tryCatch.js +34 -0
  13. package/esm/cron/server/index.js +1 -1
  14. package/esm/feedback/FeedbackController.js +3 -2
  15. package/esm/feedback/index.d.ts +7 -2
  16. package/esm/feedback/index.js +1 -2
  17. package/esm/feedback/server/index.d.ts +0 -5
  18. package/esm/feedback/server/index.js +1 -1
  19. package/esm/formats/strings.js +2 -2
  20. package/esm/index.d.ts +16 -0
  21. package/esm/index.js +13 -0
  22. package/esm/svelte/FF_Repo.svelte.d.ts +0 -2
  23. package/esm/svelte/FF_Repo.svelte.js +1 -17
  24. package/esm/svelte/helpers/debounce.js +1 -1
  25. package/esm/svelte/index.d.ts +2 -24
  26. package/esm/svelte/index.js +2 -22
  27. package/esm/{ui → svelte/ui}/Icon.svelte +1 -1
  28. package/esm/virtual/StateDemoEnum.d.ts +3 -3
  29. package/esm/virtual/StateDemoEnum.js +3 -3
  30. package/esm/virtual/UIEntity.js +1 -2
  31. package/package.json +6 -24
  32. package/esm/bin/cmd.d.ts +0 -1
  33. package/esm/bin/cmd.js +0 -638
  34. package/esm/feedback/ui/DialogIssue.svelte +0 -149
  35. package/esm/feedback/ui/DialogIssue.svelte.d.ts +0 -22
  36. package/esm/feedback/ui/DialogIssues.svelte +0 -114
  37. package/esm/feedback/ui/DialogIssues.svelte.d.ts +0 -22
  38. package/esm/feedback/ui/DialogMilestones.svelte +0 -43
  39. package/esm/feedback/ui/DialogMilestones.svelte.d.ts +0 -20
  40. package/esm/feedback/ui/Feedback.svelte +0 -16
  41. package/esm/feedback/ui/Feedback.svelte.d.ts +0 -18
  42. package/esm/internals/FF_Entity.d.ts +0 -2
  43. package/esm/internals/FF_Fields.d.ts +0 -11
  44. package/esm/internals/FF_Fields.js +0 -144
  45. package/esm/internals/cellsBuildor.d.ts +0 -47
  46. package/esm/internals/cellsBuildor.js +0 -141
  47. package/esm/internals/helper.d.ts +0 -49
  48. package/esm/internals/helper.js +0 -162
  49. package/esm/internals/index.d.ts +0 -78
  50. package/esm/internals/index.js +0 -45
  51. package/esm/internals/storeItem.d.ts +0 -19
  52. package/esm/internals/storeItem.js +0 -190
  53. package/esm/internals/storeList.d.ts +0 -34
  54. package/esm/internals/storeList.js +0 -108
  55. package/esm/internals/theme.d.ts +0 -4
  56. package/esm/internals/theme.js +0 -4
  57. package/esm/server/index.d.ts +0 -52
  58. package/esm/server/index.js +0 -87
  59. package/esm/svelte/FF_Cell.svelte +0 -103
  60. package/esm/svelte/FF_Cell.svelte.d.ts +0 -33
  61. package/esm/svelte/FF_Cell_Caption.svelte +0 -20
  62. package/esm/svelte/FF_Cell_Caption.svelte.d.ts +0 -31
  63. package/esm/svelte/FF_Cell_Display.svelte +0 -61
  64. package/esm/svelte/FF_Cell_Display.svelte.d.ts +0 -29
  65. package/esm/svelte/FF_Cell_Edit.svelte +0 -104
  66. package/esm/svelte/FF_Cell_Edit.svelte.d.ts +0 -32
  67. package/esm/svelte/FF_Cell_Error.svelte +0 -20
  68. package/esm/svelte/FF_Cell_Error.svelte.d.ts +0 -31
  69. package/esm/svelte/FF_Cell_Hint.svelte +0 -20
  70. package/esm/svelte/FF_Cell_Hint.svelte.d.ts +0 -31
  71. package/esm/svelte/FF_Config.svelte +0 -29
  72. package/esm/svelte/FF_Config.svelte.d.ts +0 -9
  73. package/esm/svelte/FF_Form.svelte +0 -155
  74. package/esm/svelte/FF_Form.svelte.d.ts +0 -37
  75. package/esm/svelte/FF_Grid.svelte +0 -257
  76. package/esm/svelte/FF_Grid.svelte.d.ts +0 -37
  77. package/esm/svelte/FF_Layout.svelte +0 -62
  78. package/esm/svelte/FF_Layout.svelte.d.ts +0 -31
  79. package/esm/svelte/actions/intersection.d.ts +0 -6
  80. package/esm/svelte/actions/intersection.js +0 -17
  81. package/esm/svelte/customField.d.ts +0 -69
  82. package/esm/svelte/customField.js +0 -4
  83. package/esm/svelte/dialog/DialogManagement.svelte +0 -98
  84. package/esm/svelte/dialog/DialogManagement.svelte.d.ts +0 -18
  85. package/esm/svelte/dialog/DialogPrimitive.svelte +0 -156
  86. package/esm/svelte/dialog/DialogPrimitive.svelte.d.ts +0 -38
  87. package/esm/svelte/dialog/dialog.d.ts +0 -58
  88. package/esm/svelte/dialog/dialog.js +0 -130
  89. package/esm/svelte/ff_Config.svelte.d.ts +0 -91
  90. package/esm/svelte/ff_Config.svelte.js +0 -111
  91. package/esm/svelte/firstly.css +0 -14
  92. package/esm/svelte/helpers.d.ts +0 -30
  93. package/esm/svelte/helpers.js +0 -38
  94. package/esm/svelte/tryCatch.d.ts +0 -12
  95. package/esm/svelte/tryCatch.js +0 -18
  96. package/esm/sveltekit/server/index.d.ts +0 -5
  97. package/esm/sveltekit/server/index.js +0 -24
  98. package/esm/ui/Button.svelte +0 -90
  99. package/esm/ui/Button.svelte.d.ts +0 -11
  100. package/esm/ui/Clipboardable.svelte +0 -25
  101. package/esm/ui/Clipboardable.svelte.d.ts +0 -12
  102. package/esm/ui/Field.svelte +0 -391
  103. package/esm/ui/Field.svelte.d.ts +0 -40
  104. package/esm/ui/FieldGroup.svelte +0 -117
  105. package/esm/ui/FieldGroup.svelte.d.ts +0 -44
  106. package/esm/ui/Grid.svelte +0 -262
  107. package/esm/ui/Grid.svelte.d.ts +0 -57
  108. package/esm/ui/Grid2.svelte +0 -290
  109. package/esm/ui/Grid2.svelte.d.ts +0 -57
  110. package/esm/ui/GridLoading.svelte +0 -58
  111. package/esm/ui/GridLoading.svelte.d.ts +0 -23
  112. package/esm/ui/GridPaginate.svelte +0 -69
  113. package/esm/ui/GridPaginate.svelte.d.ts +0 -23
  114. package/esm/ui/GridPaginate2.svelte +0 -25
  115. package/esm/ui/GridPaginate2.svelte.d.ts +0 -7
  116. package/esm/ui/Loading.svelte +0 -16
  117. package/esm/ui/Loading.svelte.d.ts +0 -31
  118. package/esm/ui/Tooltip.svelte +0 -45
  119. package/esm/ui/Tooltip.svelte.d.ts +0 -32
  120. package/esm/ui/dialog/DialogForm.svelte +0 -76
  121. package/esm/ui/dialog/DialogForm.svelte.d.ts +0 -21
  122. package/esm/ui/dialog/DialogManagement.svelte +0 -96
  123. package/esm/ui/dialog/DialogManagement.svelte.d.ts +0 -26
  124. package/esm/ui/dialog/DialogPrimitive.svelte +0 -90
  125. package/esm/ui/dialog/DialogPrimitive.svelte.d.ts +0 -38
  126. package/esm/ui/dialog/FormEditAction.svelte +0 -62
  127. package/esm/ui/dialog/FormEditAction.svelte.d.ts +0 -31
  128. package/esm/ui/dialog/dialog.d.ts +0 -60
  129. package/esm/ui/dialog/dialog.js +0 -100
  130. package/esm/ui/index.d.ts +0 -6
  131. package/esm/ui/index.js +0 -20
  132. package/esm/ui/internals/FieldContainer.svelte +0 -39
  133. package/esm/ui/internals/FieldContainer.svelte.d.ts +0 -18
  134. package/esm/ui/internals/Input.svelte +0 -143
  135. package/esm/ui/internals/Input.svelte.d.ts +0 -37
  136. package/esm/ui/internals/Textarea.svelte +0 -66
  137. package/esm/ui/internals/Textarea.svelte.d.ts +0 -33
  138. package/esm/ui/internals/select/MultiSelectMelt.svelte +0 -260
  139. package/esm/ui/internals/select/MultiSelectMelt.svelte.d.ts +0 -32
  140. package/esm/ui/internals/select/Select2.svelte +0 -88
  141. package/esm/ui/internals/select/Select2.svelte.d.ts +0 -12
  142. package/esm/ui/internals/select/SelectMelt.svelte +0 -289
  143. package/esm/ui/internals/select/SelectMelt.svelte.d.ts +0 -40
  144. package/esm/ui/internals/select/SelectRadio.svelte +0 -43
  145. package/esm/ui/internals/select/SelectRadio.svelte.d.ts +0 -27
  146. package/esm/ui/link/Link.svelte +0 -33
  147. package/esm/ui/link/Link.svelte.d.ts +0 -33
  148. package/esm/ui/link/LinkPlus.svelte +0 -63
  149. package/esm/ui/link/LinkPlus.svelte.d.ts +0 -9
  150. package/esm/utils/tailwind.d.ts +0 -2
  151. package/esm/utils/tailwind.js +0 -3
  152. package/esm/utils/transition.d.ts +0 -9
  153. package/esm/utils/transition.js +0 -33
  154. /package/esm/{internals → core}/BaseEnum.d.ts +0 -0
  155. /package/esm/{internals → core}/BaseEnum.js +0 -0
  156. /package/esm/{internals → core}/FF_Entity.js +0 -0
  157. /package/esm/{internals → core}/common.d.ts +0 -0
  158. /package/esm/{internals → core}/common.js +0 -0
  159. /package/esm/{utils → core}/types.d.ts +0 -0
  160. /package/esm/{utils → core}/types.js +0 -0
  161. /package/esm/{ui → svelte/ui}/Icon.svelte.d.ts +0 -0
  162. /package/esm/{ui → svelte/ui}/LibIcon.d.ts +0 -0
  163. /package/esm/{ui → svelte/ui}/LibIcon.js +0 -0
@@ -1,58 +0,0 @@
1
- <script lang="ts">
2
- import { tw } from '../utils/tailwind'
3
- import type { Align } from './index.js'
4
- import Loading from './Loading.svelte'
5
-
6
- export let columns: Align[]
7
- export let loadingRows = 5
8
- export let withDoubleLoading = true
9
-
10
- // Random with different size
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
- ]
25
- </script>
26
-
27
- <!-- Do 10 rows -->
28
- {#each new Array(loadingRows) as _row, r}
29
- <tr>
30
- {#each columns as column, c}
31
- {@const sizeIndex = parseInt(
32
- (((r + 1) * (c + 1) * Math.random() * size.length) % size.length).toString(),
33
- )}
34
- <td class={column}>
35
- <div class={tw('flex justify-between', column === 'text-right' && 'flex-row-reverse')}>
36
- {#if column === 'text-center'}
37
- <div></div>
38
- {/if}
39
- <Loading class={tw(`h-4`, size[sizeIndex])} />
40
- <div></div>
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}
55
- </td>
56
- {/each}
57
- </tr>
58
- {/each}
@@ -1,23 +0,0 @@
1
- import type { Align } from './index.js';
2
- 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
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const GridLoading: $$__sveltets_2_IsomorphicComponent<{
16
- columns: Align[];
17
- loadingRows?: number;
18
- withDoubleLoading?: boolean;
19
- }, {
20
- [evt: string]: CustomEvent<any>;
21
- }, {}, {}, string>;
22
- type GridLoading = InstanceType<typeof GridLoading>;
23
- export default GridLoading;
@@ -1,69 +0,0 @@
1
- <script lang="ts">
2
- import Icon from './Icon.svelte'
3
- import FieldContainer from './internals/FieldContainer.svelte'
4
- import { LibIcon_ChevronLeft, LibIcon_ChevronRight } from './LibIcon'
5
- import Loading from './Loading.svelte'
6
-
7
- export let label = 'Pagination'
8
- export let pageDisplayed: number
9
- export let totalCount: number | undefined | null = undefined
10
- export let pageSize: number = 25
11
-
12
- const update = (op: '+' | '-') => {
13
- if (op === '+') {
14
- if (canGoNext) {
15
- pageDisplayed = pageDisplayed + 1
16
- }
17
- } else {
18
- if (pageDisplayed > 1) {
19
- pageDisplayed = pageDisplayed - 1
20
- }
21
- }
22
- }
23
-
24
- $: isValidValue = totalCount !== undefined && totalCount !== null
25
- $: needPaginate = isValidValue && (totalCount ?? 0) > pageSize
26
- $: canGoNext =
27
- isValidValue && needPaginate && pageDisplayed < Math.ceil((totalCount ?? 0) / pageSize)
28
- </script>
29
-
30
- <FieldContainer {label} forId="paginate" classes={{ label: 'justify-end' }}>
31
- <div class="flex w-36 items-center justify-end">
32
- {#if totalCount === undefined}
33
- <Loading class="mr-2 ml-6 h-3 w-1/6"></Loading>
34
- <Loading class="mx-2 h-4 w-1/2"></Loading>
35
- <Loading class="mx-2 h-3 w-1/6"></Loading>
36
- {:else if !needPaginate}
37
- <span class="justify-end px-2 font-bold text-primary">
38
- {totalCount}
39
- </span>
40
- {:else}
41
- <div class="join">
42
- <button
43
- aria-label="left"
44
- on:click={() => update('-')}
45
- class="btn join-item p-1 {pageDisplayed === 1 ? 'btn-disabled' : ''}"
46
- >
47
- <Icon data={LibIcon_ChevronLeft} />
48
- </button>
49
- {#if isValidValue}
50
- <button aria-label="current" class="btn join-item px-0">
51
- <span class="font-bold text-primary">{totalCount}</span>
52
- <span class="text-[0.55rem] italic"
53
- >({pageDisplayed} / {Math.ceil((totalCount ?? 0) / pageSize)})</span
54
- >
55
- </button>
56
- {:else}
57
- <button aria-label="loading" class="btn join-item animate-pulse">.....</button>
58
- {/if}
59
- <button
60
- aria-label="right"
61
- on:click={() => update('+')}
62
- class="btn join-item p-1 {!canGoNext ? 'btn-disabled' : ''}"
63
- >
64
- <Icon data={LibIcon_ChevronRight} />
65
- </button>
66
- </div>
67
- {/if}
68
- </div>
69
- </FieldContainer>
@@ -1,23 +0,0 @@
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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const GridPaginate: $$__sveltets_2_IsomorphicComponent<{
15
- label?: string;
16
- pageDisplayed: number;
17
- totalCount?: number | undefined | null;
18
- pageSize?: number;
19
- }, {
20
- [evt: string]: CustomEvent<any>;
21
- }, {}, {}, string>;
22
- type GridPaginate = InstanceType<typeof GridPaginate>;
23
- export default GridPaginate;
@@ -1,25 +0,0 @@
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="mr-2 ml-6 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="mb-2 justify-end px-2 text-lg font-bold text-primary">
21
- {totalCount}
22
- </span>
23
- {/if}
24
- </div>
25
- </FieldContainer>
@@ -1,7 +0,0 @@
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,16 +0,0 @@
1
- <script lang="ts">
2
- import { tw } from '../utils/tailwind'
3
-
4
- export { extraClass as class }
5
- let extraClass = ''
6
- </script>
7
-
8
- <!-- To fix one capa & cadb are on the same css -->
9
- <div
10
- class={tw(
11
- 'flex h-4 skeleton items-center justify-center rounded-lg bg-base-content/20',
12
- extraClass,
13
- )}
14
- >
15
- <slot />
16
- </div>
@@ -1,31 +0,0 @@
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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
15
- default: any;
16
- } ? Props extends Record<string, never> ? any : {
17
- children?: any;
18
- } : {});
19
- declare const Loading: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
20
- class?: string;
21
- }, {
22
- default: {};
23
- }>, {
24
- [evt: string]: CustomEvent<any>;
25
- }, {
26
- default: {};
27
- }, {
28
- class: string;
29
- }, string>;
30
- type Loading = InstanceType<typeof Loading>;
31
- export default Loading;
@@ -1,45 +0,0 @@
1
- <script lang="ts">
2
- import { createTooltip } from '@melt-ui/svelte'
3
- import { fade } from 'svelte/transition'
4
-
5
- export let text = ''
6
- export let hideTooltip = false
7
-
8
- const {
9
- elements: { trigger, content, arrow },
10
- states: { open },
11
- } = createTooltip({
12
- positioning: {
13
- placement: 'top',
14
- },
15
- openDelay: 0,
16
- closeDelay: 0,
17
- closeOnPointerDown: false,
18
- forceVisible: true,
19
- escapeBehavior: 'close',
20
- group: true,
21
- // disableHoverableContent: true,
22
- })
23
- </script>
24
-
25
- <button type="button" class="trigger" {...$trigger} use:trigger aria-label="Add">
26
- <slot />
27
- </button>
28
- <!-- {hideTooltip} -->
29
- {#if $open && !hideTooltip && (text || $$slots.tooltip)}
30
- <div
31
- {...$content}
32
- use:content
33
- transition:fade={{ duration: 100 }}
34
- class="z-30 rounded-lg bg-base-300 ring-1 ring-black"
35
- >
36
- <div {...$arrow} use:arrow></div>
37
- <div class="px-4 py-1">
38
- {#if $$slots.tooltip}
39
- <slot name="tooltip" />
40
- {:else}
41
- {@html text}
42
- {/if}
43
- </div>
44
- </div>
45
- {/if}
@@ -1,32 +0,0 @@
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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
15
- default: any;
16
- } ? Props extends Record<string, never> ? any : {
17
- children?: any;
18
- } : {});
19
- declare const Tooltip: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
20
- text?: string;
21
- hideTooltip?: boolean;
22
- }, {
23
- default: {};
24
- tooltip: {};
25
- }>, {
26
- [evt: string]: CustomEvent<any>;
27
- }, {
28
- default: {};
29
- tooltip: {};
30
- }, {}, string>;
31
- type Tooltip = InstanceType<typeof Tooltip>;
32
- export default Tooltip;
@@ -1,76 +0,0 @@
1
- <script lang="ts">
2
- import { FieldGroup, storeItem } from '../../internals'
3
- import { cellsBuildor } from '../../internals/cellsBuildor'
4
- import { dialog, type DialogMetaDataInternal } from './dialog'
5
- import DialogPrimitive from './DialogPrimitive.svelte'
6
- import FormEditAction from './FormEditAction.svelte'
7
-
8
- export let toShow: DialogMetaDataInternal
9
-
10
- $: cells = cellsBuildor(toShow.repo!, toShow.cells!)
11
- $: store = toShow.store ?? storeItem(toShow.repo!)
12
-
13
- $: {
14
- if (toShow.type === 'update' || toShow.type === 'view') {
15
- store.set({ item: toShow.defaults, errors: {}, loading: false, globalError: undefined })
16
- } else {
17
- store.create(toShow.defaults ?? {})
18
- }
19
- }
20
-
21
- const onCreate = (args: { input: string; id: string }) => {
22
- dialog.close(toShow.id, { success: true, item: args.input })
23
- }
24
-
25
- let isLoading = false
26
- const onInsert = async () => {
27
- isLoading = true
28
- try {
29
- const result = await store.save()
30
- if (result) {
31
- dialog.close(toShow.id, { success: true, item: result })
32
- }
33
- } catch (e) {
34
- if (toShow.reThrow) {
35
- throw e
36
- }
37
- } finally {
38
- isLoading = false
39
- }
40
- }
41
-
42
- const onDelete = async () => {
43
- const res = await dialog.confirmDelete('')
44
- if (res.success) {
45
- await store.delete()
46
- dialog.close(toShow.id, { success: true, item: $store.item })
47
- }
48
- }
49
- </script>
50
-
51
- <DialogPrimitive
52
- detail={toShow.detail}
53
- open
54
- classes={{ root: toShow.classes?.root }}
55
- on:change={() => dialog.close(toShow.id, { success: false })}
56
- >
57
- <form on:submit|preventDefault={onInsert}>
58
- <div class="grid {toShow.classes?.formGrid ?? ''} gap-4 pb-4">
59
- <FieldGroup
60
- focusKey={toShow.focusKey}
61
- {cells}
62
- {store}
63
- mode={toShow.type === 'view' ? 'view' : 'edit'}
64
- createRequest={onCreate}
65
- />
66
- </div>
67
-
68
- <FormEditAction
69
- type={toShow.type}
70
- wDelete={toShow.wDelete}
71
- {store}
72
- on:delete={onDelete}
73
- textCreate={toShow.topicPrefixText}
74
- ></FormEditAction>
75
- </form>
76
- </DialogPrimitive>
@@ -1,21 +0,0 @@
1
- import { type DialogMetaDataInternal } from './dialog';
2
- 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
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- declare const DialogForm: $$__sveltets_2_IsomorphicComponent<{
16
- toShow: DialogMetaDataInternal;
17
- }, {
18
- [evt: string]: CustomEvent<any>;
19
- }, {}, {}, string>;
20
- type DialogForm = InstanceType<typeof DialogForm>;
21
- export default DialogForm;
@@ -1,96 +0,0 @@
1
- <script>
2
- import Button from '../Button.svelte'
3
- import { dialog } from './dialog'
4
- import DialogForm from './DialogForm.svelte'
5
- import DialogPrimitive from './DialogPrimitive.svelte'
6
-
7
- $: dialogSorted = $dialog.sort((a, b) => a.id - b.id)
8
- </script>
9
-
10
- {#each dialogSorted as toShow}
11
- {#if toShow.type === 'confirm'}
12
- <DialogPrimitive
13
- detail={toShow.detail}
14
- open
15
- on:change={() => dialog.close(toShow.id, { success: false })}
16
- >
17
- {@html toShow.children}
18
- <svelte:fragment slot="actions">
19
- <Button class="btn-primary" onclick={() => dialog.close(toShow.id, { success: true })}
20
- >Confirmer</Button
21
- >
22
- </svelte:fragment>
23
- </DialogPrimitive>
24
- {:else if toShow.type === 'confirmDelete'}
25
- <DialogPrimitive
26
- detail={toShow.detail}
27
- open
28
- on:change={() => dialog.close(toShow.id, { success: false })}
29
- >
30
- {@html toShow.children}
31
- <svelte:fragment slot="actions">
32
- <Button class="btn-error" onclick={() => dialog.close(toShow.id, { success: true })}>
33
- Confirmer
34
- </Button>
35
- </svelte:fragment>
36
- </DialogPrimitive>
37
- {:else if toShow.type === 'insert' || toShow.type === 'update' || toShow.type === 'view'}
38
- <DialogForm {toShow}></DialogForm>
39
- {:else if toShow.component && toShow.children}
40
- <DialogPrimitive
41
- detail={toShow.detail}
42
- open
43
- on:change={() => dialog.close(toShow.id, { success: false })}
44
- >
45
- <svelte:component this={toShow.component} {...toShow.props} dialogId={toShow.id}>
46
- {#if toShow.children}
47
- {@html toShow.children}
48
- {/if}
49
- </svelte:component>
50
- </DialogPrimitive>
51
- {:else if toShow.componentS5}
52
- <DialogPrimitive
53
- detail={toShow.detail}
54
- open
55
- on:change={() => dialog.close(toShow.id, { success: false })}
56
- >
57
- <svelte:component this={toShow.componentS5} {...toShow.props} dialogId={toShow.id}>
58
- {#if toShow.children}
59
- {@html toShow.children}
60
- {/if}
61
- </svelte:component>
62
- </DialogPrimitive>
63
- {:else if toShow.component}
64
- <DialogPrimitive
65
- detail={toShow.detail}
66
- open
67
- classes={{ root: toShow.classes?.root }}
68
- on:change={() => dialog.close(toShow.id, { success: false })}
69
- >
70
- <svelte:component this={toShow.component} {...toShow.props} dialogId={toShow.id}
71
- ></svelte:component>
72
- </DialogPrimitive>
73
- {:else}
74
- <DialogPrimitive
75
- detail={toShow.detail}
76
- open
77
- on:change={() => dialog.close(toShow.id, { success: false })}
78
- >
79
- <div class="grid gap-2">
80
- <p>Hey 🫵 developer, you are missing a few things 🤡!</p>
81
- <p>Or use use one of the custom built in dialog like</p>
82
-
83
- <pre class="mt-2 bg-base-300 p-2 text-xs">await dialog.confirmDelete('The Car')</pre>
84
-
85
- <p>Or pass you own component</p>
86
- <pre class="mt-2 bg-base-300 p-2 text-xs">{`await dialog.show({
87
- detail: { caption: 'Interlocuteur' },
88
- component: CreateCarForm,
89
- props: { isEdit: false },
90
- })`}</pre>
91
-
92
- <p>Good luck 🚀</p>
93
- </div>
94
- </DialogPrimitive>
95
- {/if}
96
- {/each}
@@ -1,26 +0,0 @@
1
- export default DialogManagement;
2
- type DialogManagement = SvelteComponent<{
3
- [x: string]: never;
4
- }, {
5
- [evt: string]: CustomEvent<any>;
6
- }, {}> & {
7
- $$bindings?: string | undefined;
8
- };
9
- declare const DialogManagement: $$__sveltets_2_IsomorphicComponent<{
10
- [x: string]: never;
11
- }, {
12
- [evt: string]: CustomEvent<any>;
13
- }, {}, {}, string>;
14
- 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> {
15
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
- $$bindings?: Bindings;
17
- } & Exports;
18
- (internal: unknown, props: {
19
- $$events?: Events;
20
- $$slots?: Slots;
21
- }): Exports & {
22
- $set?: any;
23
- $on?: any;
24
- };
25
- z_$$bindings?: Bindings;
26
- }
@@ -1,90 +0,0 @@
1
- <script lang="ts">
2
- import { createDialog } from '@melt-ui/svelte'
3
- import { createEventDispatcher } from 'svelte'
4
- import { fade } from 'svelte/transition'
5
-
6
- import { LibIcon_Cross, tw, type BaseItemLight } from '../../internals'
7
- import { flyAndScale } from '../../utils/transition'
8
- import Icon from '../Icon.svelte'
9
- import LinkPlus from '../link/LinkPlus.svelte'
10
-
11
- export let detail: BaseItemLight | undefined = undefined
12
- export let open: boolean = false
13
- export let classes: { root?: string } = {}
14
-
15
- const {
16
- elements: { trigger, overlay, content, title: localTitle, description, close, portalled },
17
- states: { open: localOpen },
18
- } = createDialog({
19
- forceVisible: true,
20
- defaultOpen: open,
21
- closeOnOutsideClick: false,
22
- onOpenChange: (open) => {
23
- dispatchChange('yop there')
24
- return open.next
25
- },
26
- })
27
-
28
- const dispatch = createEventDispatcher()
29
-
30
- function dispatchChange(_data: any) {
31
- dispatch('change', _data)
32
- }
33
- </script>
34
-
35
- <div
36
- {...$portalled}
37
- use:$portalled.action
38
- class="fixed top-0 z-40 flex h-full w-full items-center justify-center"
39
- >
40
- {#if $localOpen}
41
- <div
42
- {...$overlay}
43
- use:$overlay.action
44
- class="fixed inset-0 z-40 bg-base-300/80 blur-sm"
45
- transition:fade={{ duration: 150 }}
46
- ></div>
47
- <div
48
- class={tw(
49
- `relative z-40 max-h-[90vh] overflow-auto rounded-xl border border-base-content/60 bg-base-100 p-6 shadow-lg`,
50
- classes.root,
51
- )}
52
- transition:flyAndScale={{
53
- duration: 150,
54
- y: 8,
55
- start: 0.96,
56
- }}
57
- {...$content}
58
- use:$content.action
59
- >
60
- <div class="top-0 left-0 mb-4 w-full">
61
- <h2 {...$localTitle} use:$localTitle.action class="m-0 text-lg font-medium">
62
- <div class="flex items-center justify-between gap-4">
63
- <LinkPlus item={detail}></LinkPlus>
64
- <button
65
- {...$close}
66
- use:$close.action
67
- aria-label="close"
68
- class="btn btn-circle h-max min-h-0
69
- w-max border-none btn-outline btn-lg"
70
- >
71
- <Icon data={LibIcon_Cross}></Icon>
72
- </button>
73
- </div>
74
- </h2>
75
- </div>
76
-
77
- <div class="flex h-full min-w-[25rem] flex-col gap-4">
78
- <!-- <div class="overflow-y-auto"> -->
79
- <slot />
80
-
81
- {#if $$slots.actions}
82
- <div class="mt-2 flex items-end justify-end">
83
- <slot name="actions" />
84
- </div>
85
- {/if}
86
- <!-- </div> -->
87
- </div>
88
- </div>
89
- {/if}
90
- </div>