firstly 0.2.1 → 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 (210) hide show
  1. package/CHANGELOG.md +65 -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 -10
  5. package/esm/{internals → core}/BaseEnum.d.ts +1 -1
  6. package/esm/core/FF_Entity.js +5 -0
  7. package/esm/core/helper.d.ts +2 -0
  8. package/esm/core/helper.js +3 -0
  9. package/esm/core/index.d.ts +0 -0
  10. package/esm/core/index.js +5 -0
  11. package/esm/core/tailwind.d.ts +21 -0
  12. package/esm/core/tailwind.js +22 -0
  13. package/esm/core/tryCatch.d.ts +44 -0
  14. package/esm/core/tryCatch.js +34 -0
  15. package/esm/cron/server/index.js +1 -1
  16. package/esm/feedback/FeedbackController.js +3 -2
  17. package/esm/feedback/index.d.ts +7 -2
  18. package/esm/feedback/index.js +1 -2
  19. package/esm/feedback/server/index.d.ts +0 -5
  20. package/esm/feedback/server/index.js +1 -1
  21. package/esm/formats/strings.js +2 -2
  22. package/esm/index.d.ts +16 -0
  23. package/esm/index.js +13 -0
  24. package/esm/svelte/FF_Repo.svelte.d.ts +9 -2
  25. package/esm/svelte/FF_Repo.svelte.js +40 -17
  26. package/esm/svelte/class/SP.svelte.js +14 -2
  27. package/esm/svelte/helpers/debounce.js +1 -1
  28. package/esm/svelte/index.d.ts +2 -24
  29. package/esm/svelte/index.js +2 -22
  30. package/esm/{ui → svelte/ui}/Icon.svelte +1 -1
  31. package/esm/virtual/StateDemoEnum.d.ts +3 -3
  32. package/esm/virtual/StateDemoEnum.js +3 -3
  33. package/esm/virtual/UIEntity.js +1 -2
  34. package/package.json +8 -39
  35. package/esm/auth/AuthController.d.ts +0 -58
  36. package/esm/auth/AuthController.js +0 -114
  37. package/esm/auth/Entities.d.ts +0 -47
  38. package/esm/auth/Entities.js +0 -182
  39. package/esm/auth/README.md +0 -3
  40. package/esm/auth/index.d.ts +0 -5
  41. package/esm/auth/index.js +0 -5
  42. package/esm/auth/server/AuthController.server.d.ts +0 -58
  43. package/esm/auth/server/AuthController.server.js +0 -518
  44. package/esm/auth/server/handleAuth.d.ts +0 -4
  45. package/esm/auth/server/handleAuth.js +0 -142
  46. package/esm/auth/server/handleGuard.d.ts +0 -22
  47. package/esm/auth/server/handleGuard.js +0 -34
  48. package/esm/auth/server/helperDb.d.ts +0 -10
  49. package/esm/auth/server/helperDb.js +0 -56
  50. package/esm/auth/server/helperFirstly.d.ts +0 -1
  51. package/esm/auth/server/helperFirstly.js +0 -9
  52. package/esm/auth/server/helperOslo.d.ts +0 -7
  53. package/esm/auth/server/helperOslo.js +0 -24
  54. package/esm/auth/server/helperRemultServer.d.ts +0 -5
  55. package/esm/auth/server/helperRemultServer.js +0 -44
  56. package/esm/auth/server/helperRole.d.ts +0 -19
  57. package/esm/auth/server/helperRole.js +0 -57
  58. package/esm/auth/server/index.d.ts +0 -8
  59. package/esm/auth/server/index.js +0 -8
  60. package/esm/auth/server/module.d.ts +0 -300
  61. package/esm/auth/server/module.js +0 -230
  62. package/esm/auth/server/providers/github.d.ts +0 -33
  63. package/esm/auth/server/providers/github.js +0 -87
  64. package/esm/auth/server/providers/helperProvider.d.ts +0 -1
  65. package/esm/auth/server/providers/helperProvider.js +0 -25
  66. package/esm/auth/static/assets/Page-BHW08QWz.css +0 -1
  67. package/esm/auth/static/assets/Page-BRNWcY5Z.d.ts +0 -2
  68. package/esm/auth/static/assets/Page-BRNWcY5Z.js +0 -1
  69. package/esm/auth/static/assets/Page-CFcEsGK8.d.ts +0 -2
  70. package/esm/auth/static/assets/Page-CFcEsGK8.js +0 -7
  71. package/esm/auth/static/assets/Page-tLVs5slF.d.ts +0 -2
  72. package/esm/auth/static/assets/Page-tLVs5slF.js +0 -1
  73. package/esm/auth/static/assets/index-D38rqu4x.d.ts +0 -201
  74. package/esm/auth/static/assets/index-D38rqu4x.js +0 -2
  75. package/esm/auth/static/assets/index-DKWpA6v7.css +0 -4
  76. package/esm/auth/static/favicon.svg +0 -79
  77. package/esm/auth/static/index.html +0 -13
  78. package/esm/auth/types.d.ts +0 -73
  79. package/esm/bin/cmd.d.ts +0 -1
  80. package/esm/bin/cmd.js +0 -793
  81. package/esm/feedback/ui/DialogIssue.svelte +0 -149
  82. package/esm/feedback/ui/DialogIssue.svelte.d.ts +0 -22
  83. package/esm/feedback/ui/DialogIssues.svelte +0 -114
  84. package/esm/feedback/ui/DialogIssues.svelte.d.ts +0 -22
  85. package/esm/feedback/ui/DialogMilestones.svelte +0 -43
  86. package/esm/feedback/ui/DialogMilestones.svelte.d.ts +0 -20
  87. package/esm/feedback/ui/Feedback.svelte +0 -16
  88. package/esm/feedback/ui/Feedback.svelte.d.ts +0 -18
  89. package/esm/internals/FF_Entity.d.ts +0 -2
  90. package/esm/internals/FF_Entity.js +0 -21
  91. package/esm/internals/FF_Fields.d.ts +0 -11
  92. package/esm/internals/FF_Fields.js +0 -144
  93. package/esm/internals/cellsBuildor.d.ts +0 -47
  94. package/esm/internals/cellsBuildor.js +0 -140
  95. package/esm/internals/helper.d.ts +0 -49
  96. package/esm/internals/helper.js +0 -162
  97. package/esm/internals/index.d.ts +0 -82
  98. package/esm/internals/index.js +0 -45
  99. package/esm/internals/storeItem.d.ts +0 -28
  100. package/esm/internals/storeItem.js +0 -176
  101. package/esm/internals/storeList.d.ts +0 -34
  102. package/esm/internals/storeList.js +0 -108
  103. package/esm/internals/theme.d.ts +0 -4
  104. package/esm/internals/theme.js +0 -4
  105. package/esm/server/index.d.ts +0 -52
  106. package/esm/server/index.js +0 -87
  107. package/esm/svelte/FF_Cell.svelte +0 -103
  108. package/esm/svelte/FF_Cell.svelte.d.ts +0 -33
  109. package/esm/svelte/FF_Cell_Caption.svelte +0 -20
  110. package/esm/svelte/FF_Cell_Caption.svelte.d.ts +0 -31
  111. package/esm/svelte/FF_Cell_Display.svelte +0 -61
  112. package/esm/svelte/FF_Cell_Display.svelte.d.ts +0 -29
  113. package/esm/svelte/FF_Cell_Edit.svelte +0 -104
  114. package/esm/svelte/FF_Cell_Edit.svelte.d.ts +0 -32
  115. package/esm/svelte/FF_Cell_Error.svelte +0 -20
  116. package/esm/svelte/FF_Cell_Error.svelte.d.ts +0 -31
  117. package/esm/svelte/FF_Cell_Hint.svelte +0 -20
  118. package/esm/svelte/FF_Cell_Hint.svelte.d.ts +0 -31
  119. package/esm/svelte/FF_Config.svelte +0 -29
  120. package/esm/svelte/FF_Config.svelte.d.ts +0 -9
  121. package/esm/svelte/FF_Form.svelte +0 -155
  122. package/esm/svelte/FF_Form.svelte.d.ts +0 -37
  123. package/esm/svelte/FF_Grid.svelte +0 -257
  124. package/esm/svelte/FF_Grid.svelte.d.ts +0 -37
  125. package/esm/svelte/FF_Layout.svelte +0 -62
  126. package/esm/svelte/FF_Layout.svelte.d.ts +0 -31
  127. package/esm/svelte/actions/intersection.d.ts +0 -6
  128. package/esm/svelte/actions/intersection.js +0 -17
  129. package/esm/svelte/customField.d.ts +0 -69
  130. package/esm/svelte/customField.js +0 -4
  131. package/esm/svelte/dialog/DialogManagement.svelte +0 -98
  132. package/esm/svelte/dialog/DialogManagement.svelte.d.ts +0 -18
  133. package/esm/svelte/dialog/DialogPrimitive.svelte +0 -156
  134. package/esm/svelte/dialog/DialogPrimitive.svelte.d.ts +0 -38
  135. package/esm/svelte/dialog/dialog.d.ts +0 -58
  136. package/esm/svelte/dialog/dialog.js +0 -130
  137. package/esm/svelte/ff_Config.svelte.d.ts +0 -91
  138. package/esm/svelte/ff_Config.svelte.js +0 -111
  139. package/esm/svelte/firstly.css +0 -14
  140. package/esm/svelte/helpers.d.ts +0 -30
  141. package/esm/svelte/helpers.js +0 -38
  142. package/esm/svelte/tryCatch.d.ts +0 -12
  143. package/esm/svelte/tryCatch.js +0 -18
  144. package/esm/sveltekit/server/index.d.ts +0 -5
  145. package/esm/sveltekit/server/index.js +0 -24
  146. package/esm/ui/Button.svelte +0 -138
  147. package/esm/ui/Button.svelte.d.ts +0 -13
  148. package/esm/ui/Clipboardable.svelte +0 -25
  149. package/esm/ui/Clipboardable.svelte.d.ts +0 -12
  150. package/esm/ui/Field.svelte +0 -382
  151. package/esm/ui/Field.svelte.d.ts +0 -40
  152. package/esm/ui/FieldGroup.svelte +0 -117
  153. package/esm/ui/FieldGroup.svelte.d.ts +0 -44
  154. package/esm/ui/Grid.svelte +0 -265
  155. package/esm/ui/Grid.svelte.d.ts +0 -57
  156. package/esm/ui/Grid2.svelte +0 -293
  157. package/esm/ui/Grid2.svelte.d.ts +0 -57
  158. package/esm/ui/GridLoading.svelte +0 -58
  159. package/esm/ui/GridLoading.svelte.d.ts +0 -23
  160. package/esm/ui/GridPaginate.svelte +0 -69
  161. package/esm/ui/GridPaginate.svelte.d.ts +0 -23
  162. package/esm/ui/GridPaginate2.svelte +0 -25
  163. package/esm/ui/GridPaginate2.svelte.d.ts +0 -7
  164. package/esm/ui/Loading.svelte +0 -16
  165. package/esm/ui/Loading.svelte.d.ts +0 -31
  166. package/esm/ui/Tooltip.svelte +0 -45
  167. package/esm/ui/Tooltip.svelte.d.ts +0 -32
  168. package/esm/ui/dialog/DialogForm.svelte +0 -76
  169. package/esm/ui/dialog/DialogForm.svelte.d.ts +0 -21
  170. package/esm/ui/dialog/DialogManagement.svelte +0 -96
  171. package/esm/ui/dialog/DialogManagement.svelte.d.ts +0 -26
  172. package/esm/ui/dialog/DialogPrimitive.svelte +0 -90
  173. package/esm/ui/dialog/DialogPrimitive.svelte.d.ts +0 -38
  174. package/esm/ui/dialog/FormEditAction.svelte +0 -62
  175. package/esm/ui/dialog/FormEditAction.svelte.d.ts +0 -31
  176. package/esm/ui/dialog/dialog.d.ts +0 -60
  177. package/esm/ui/dialog/dialog.js +0 -100
  178. package/esm/ui/index.d.ts +0 -6
  179. package/esm/ui/index.js +0 -20
  180. package/esm/ui/internals/FieldContainer.svelte +0 -39
  181. package/esm/ui/internals/FieldContainer.svelte.d.ts +0 -18
  182. package/esm/ui/internals/Input.svelte +0 -143
  183. package/esm/ui/internals/Input.svelte.d.ts +0 -37
  184. package/esm/ui/internals/Textarea.svelte +0 -66
  185. package/esm/ui/internals/Textarea.svelte.d.ts +0 -33
  186. package/esm/ui/internals/select/MultiSelectMelt.svelte +0 -260
  187. package/esm/ui/internals/select/MultiSelectMelt.svelte.d.ts +0 -32
  188. package/esm/ui/internals/select/Select2.svelte +0 -88
  189. package/esm/ui/internals/select/Select2.svelte.d.ts +0 -12
  190. package/esm/ui/internals/select/SelectMelt.svelte +0 -280
  191. package/esm/ui/internals/select/SelectMelt.svelte.d.ts +0 -40
  192. package/esm/ui/internals/select/SelectRadio.svelte +0 -43
  193. package/esm/ui/internals/select/SelectRadio.svelte.d.ts +0 -27
  194. package/esm/ui/link/Link.svelte +0 -33
  195. package/esm/ui/link/Link.svelte.d.ts +0 -33
  196. package/esm/ui/link/LinkPlus.svelte +0 -63
  197. package/esm/ui/link/LinkPlus.svelte.d.ts +0 -9
  198. package/esm/utils/tailwind.d.ts +0 -2
  199. package/esm/utils/tailwind.js +0 -3
  200. package/esm/utils/transition.d.ts +0 -9
  201. package/esm/utils/transition.js +0 -33
  202. package/esm/utils/types.js +0 -1
  203. /package/esm/{internals → core}/BaseEnum.js +0 -0
  204. /package/esm/{internals → core}/common.d.ts +0 -0
  205. /package/esm/{internals → core}/common.js +0 -0
  206. /package/esm/{utils → core}/types.d.ts +0 -0
  207. /package/esm/{auth → core}/types.js +0 -0
  208. /package/esm/{ui → svelte/ui}/Icon.svelte.d.ts +0 -0
  209. /package/esm/{ui → svelte/ui}/LibIcon.d.ts +0 -0
  210. /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>