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,40 +0,0 @@
1
- import { type BaseItem } from '../../../internals';
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 SelectMelt: $$__sveltets_2_IsomorphicComponent<{
16
- id: string;
17
- disabled?: boolean;
18
- placeholder?: string;
19
- items?: BaseItem[];
20
- focus?: boolean;
21
- loadOptions?: ((str: string) => Promise<{
22
- items: BaseItem[];
23
- totalCount: number;
24
- }>) | undefined;
25
- value?: string | undefined;
26
- clearable?: boolean;
27
- createOptionWhenNoResult?: boolean;
28
- default_select_if_one_item?: boolean;
29
- createRequest?: ((args: {
30
- input: string;
31
- id: string;
32
- }) => void) | undefined;
33
- }, {
34
- selected: CustomEvent<any>;
35
- issue: CustomEvent<any>;
36
- } & {
37
- [evt: string]: CustomEvent<any>;
38
- }, {}, {}, string>;
39
- type SelectMelt = InstanceType<typeof SelectMelt>;
40
- export default SelectMelt;
@@ -1,43 +0,0 @@
1
- <script lang="ts">
2
- import { createEventDispatcher } from 'svelte'
3
-
4
- import type { BaseItem } from '../../../internals'
5
- import Icon from '../../../ui/Icon.svelte'
6
-
7
- export let id: string
8
- export let disabled: boolean = false
9
- export let placeholder: string = ''
10
- export let items: BaseItem[] = []
11
- export let value: string | number | undefined = undefined
12
-
13
- const dispatch = createEventDispatcher()
14
-
15
- function dispatchSelected(_data: BaseItem | undefined) {
16
- dispatch('selected', _data)
17
- }
18
- </script>
19
-
20
- <div {id} class="input flex w-fit min-w-0 items-center">
21
- <div class="-mx-2 flex gap-2" title={placeholder}>
22
- {#each items as item}
23
- <button
24
- {disabled}
25
- on:click={() => {
26
- value = item.id
27
- dispatchSelected(items.find((i) => i.id === item.id))
28
- }}
29
- type="button"
30
- class="min-w-0 cursor-pointer rounded-md px-1.5 py-1 {value === item.id
31
- ? 'bg-primary text-primary-content'
32
- : ''}"
33
- >
34
- <div class="flex gap-2">
35
- {#if item.icon}
36
- <Icon {...item.icon} />
37
- {/if}
38
- {item.caption}
39
- </div>
40
- </button>
41
- {/each}
42
- </div>
43
- </div>
@@ -1,27 +0,0 @@
1
- import type { BaseItem } from '../../../internals';
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 SelectRadio: $$__sveltets_2_IsomorphicComponent<{
16
- id: string;
17
- disabled?: boolean;
18
- placeholder?: string;
19
- items?: BaseItem[];
20
- value?: string | number | undefined;
21
- }, {
22
- selected: CustomEvent<any>;
23
- } & {
24
- [evt: string]: CustomEvent<any>;
25
- }, {}, {}, string>;
26
- type SelectRadio = InstanceType<typeof SelectRadio>;
27
- export default SelectRadio;
@@ -1,33 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAnchorAttributes } from 'svelte/elements'
3
-
4
- export let href: string
5
- export let target: HTMLAnchorAttributes['target'] = undefined
6
-
7
- export let kind: 'info' | 'ghost' = 'info'
8
- const daisy = { info: 'link-info', ghost: '' }
9
-
10
- let className: string | undefined | null = undefined
11
- export { className as class }
12
- </script>
13
-
14
- <a
15
- class={`${daisy[kind]} inline-block link text-left no-underline hover:underline ${className ?? ''}`}
16
- {href}
17
- rel="noopener"
18
- {target}
19
- {...$$restProps}
20
- >
21
- <slot />
22
- </a>
23
-
24
- <style>
25
- a[target='_blank']::after {
26
- display: inline-block;
27
- content: '⇱';
28
- position: relative;
29
- top: -3px;
30
- margin-left: 3px;
31
- transform: rotate(90deg);
32
- }
33
- </style>
@@ -1,33 +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 Link: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
20
- [x: string]: any;
21
- href: string;
22
- target?: import("svelte/elements").HTMLAttributeAnchorTarget | null | undefined;
23
- kind?: "info" | "ghost" | undefined;
24
- class?: string | undefined | null | undefined;
25
- }, {
26
- default: {};
27
- }>, {
28
- [evt: string]: CustomEvent<any>;
29
- }, {
30
- default: {};
31
- }, {}, string>;
32
- type Link = InstanceType<typeof Link>;
33
- export default Link;
@@ -1,63 +0,0 @@
1
- <script lang="ts">
2
- import { type BaseItemLight } from '../../internals'
3
- import Icon from '../Icon.svelte'
4
- import Tooltip from '../Tooltip.svelte'
5
- import Link from './Link.svelte'
6
-
7
- interface Props {
8
- item: BaseItemLight | undefined
9
- noIcon?: boolean
10
- captionSubStyle?: 'under' | 'inline' | 'none'
11
- }
12
-
13
- let { item, noIcon = false, captionSubStyle = 'under' }: Props = $props()
14
-
15
- const hasSomethingToDisplay = (item: BaseItemLight) => {
16
- if (item.href) {
17
- return true
18
- }
19
- if (item.caption) {
20
- return true
21
- }
22
- return false
23
- }
24
- </script>
25
-
26
- <div class="flex items-center gap-4">
27
- {#if item}
28
- {#if item.icon?.data && !noIcon}
29
- <div>
30
- {#if item.icon.caption}
31
- <Tooltip text={item.icon.caption}>
32
- <Icon {...item.icon} />
33
- </Tooltip>
34
- {:else}
35
- <Icon {...item.icon} />
36
- {/if}
37
- </div>
38
- {/if}
39
-
40
- {#if hasSomethingToDisplay(item)}
41
- <div class="flex flex-col items-start">
42
- {#if item.href}
43
- <div>
44
- <Link href={item.href}>{item.caption}</Link>
45
- {#if item.captionSub && captionSubStyle === 'inline'}
46
- <span class="text-xs text-base-content/70 italic">{item.captionSub}</span>
47
- {/if}
48
- </div>
49
- {:else}
50
- <!-- 20 is a cool value ! -->
51
- <span
52
- class="text-base-content {item.class} {(item.caption ?? '').length < 20 ? 'text-nowrap' : ''}"
53
- >
54
- {item.caption ?? '-'}
55
- </span>
56
- {/if}
57
- {#if item.captionSub && captionSubStyle === 'under'}
58
- <span class="text-xs text-base-content/70 italic">{item.captionSub}</span>
59
- {/if}
60
- </div>
61
- {/if}
62
- {/if}
63
- </div>
@@ -1,9 +0,0 @@
1
- import { type BaseItemLight } from '../../internals';
2
- interface Props {
3
- item: BaseItemLight | undefined;
4
- noIcon?: boolean;
5
- captionSubStyle?: 'under' | 'inline' | 'none';
6
- }
7
- declare const LinkPlus: import("svelte").Component<Props, {}, "">;
8
- type LinkPlus = ReturnType<typeof LinkPlus>;
9
- export default LinkPlus;
@@ -1,2 +0,0 @@
1
- import { type ClassValue } from 'clsx';
2
- export declare const tw: (...inputs: ClassValue[]) => string;
@@ -1,3 +0,0 @@
1
- import { clsx } from 'clsx';
2
- import { twMerge } from 'tailwind-merge';
3
- export const tw = (...inputs) => twMerge(clsx(...inputs));
@@ -1,9 +0,0 @@
1
- import type { TransitionConfig } from 'svelte/transition';
2
- type FlyAndScaleOptions = {
3
- y: number;
4
- start: number;
5
- duration?: number;
6
- };
7
- export declare const flyAndScale: (node: HTMLElement, options: FlyAndScaleOptions) => TransitionConfig;
8
- export type StyleObject = Record<string, number | string | undefined>;
9
- export {};
@@ -1,33 +0,0 @@
1
- // From https://github.com/melt-ui/melt-ui/blob/develop/src/docs/utils/transition.ts
2
- import { cubicOut } from 'svelte/easing';
3
- const scaleConversion = (valueA, scaleA, scaleB) => {
4
- const [minA, maxA] = scaleA;
5
- const [minB, maxB] = scaleB;
6
- const percentage = (valueA - minA) / (maxA - minA);
7
- const valueB = percentage * (maxB - minB) + minB;
8
- return valueB;
9
- };
10
- export const flyAndScale = (node, options) => {
11
- const style = getComputedStyle(node);
12
- const transform = style.transform === 'none' ? '' : style.transform;
13
- return {
14
- duration: options.duration ?? 150,
15
- delay: 0,
16
- css: (t) => {
17
- const y = scaleConversion(t, [0, 1], [options.y, 0]);
18
- const scale = scaleConversion(t, [0, 1], [options.start, 1]);
19
- return styleToString({
20
- transform: `${transform} translate3d(0, ${y}px, 0) scale(${scale})`,
21
- opacity: t,
22
- });
23
- },
24
- easing: cubicOut,
25
- };
26
- };
27
- function styleToString(style) {
28
- return Object.keys(style).reduce((str, key) => {
29
- if (style[key] === undefined)
30
- return str;
31
- return str + `${key}:${style[key]};`;
32
- }, '');
33
- }
@@ -1 +0,0 @@
1
- export {};
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes