@sprawlify/svelte 0.0.45 → 0.0.46

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 (121) hide show
  1. package/dist/components/accordion/accordion-root-provider.svelte +3 -1
  2. package/dist/components/angle-slider/angle-slider-root-provider.svelte +3 -1
  3. package/dist/components/bottom-sheet/bottom-sheet-root-provider.svelte +3 -1
  4. package/dist/components/carousel/carousel-anatomy.d.ts +1 -1
  5. package/dist/components/carousel/carousel-root-provider.svelte +3 -1
  6. package/dist/components/checkbox/checkbox-group-provider.svelte +3 -1
  7. package/dist/components/checkbox/checkbox-root-provider.svelte +3 -1
  8. package/dist/components/clipboard/clipboard-root-provider.svelte +3 -1
  9. package/dist/components/collapsible/collapsible-root-provider.svelte +3 -1
  10. package/dist/components/color-picker/color-picker-anatomy.d.ts +1 -1
  11. package/dist/components/color-picker/color-picker-root-provider.svelte +3 -1
  12. package/dist/components/combobox/combobox-anatomy.d.ts +1 -1
  13. package/dist/components/combobox/combobox-root-provider.svelte +4 -2
  14. package/dist/components/combobox/combobox-root-provider.svelte.d.ts +1 -1
  15. package/dist/components/date-picker/date-picker-root-provider.svelte +3 -1
  16. package/dist/components/date-picker/date-picker-root.svelte +1 -0
  17. package/dist/components/dialog/dialog-root-provider.svelte +3 -1
  18. package/dist/components/editable/editable-root-provider.svelte +3 -1
  19. package/dist/components/file-upload/file-upload-anatomy.d.ts +1 -0
  20. package/dist/components/file-upload/file-upload-anatomy.js +1 -0
  21. package/dist/components/file-upload/file-upload-clear-trigger.svelte +18 -0
  22. package/dist/components/file-upload/file-upload-clear-trigger.svelte.d.ts +8 -0
  23. package/dist/components/file-upload/file-upload-context.svelte +18 -0
  24. package/dist/components/file-upload/file-upload-context.svelte.d.ts +8 -0
  25. package/dist/components/file-upload/file-upload-dropzone.svelte +23 -0
  26. package/dist/components/file-upload/file-upload-dropzone.svelte.d.ts +9 -0
  27. package/dist/components/file-upload/file-upload-hidden-input.svelte +18 -0
  28. package/dist/components/file-upload/file-upload-hidden-input.svelte.d.ts +8 -0
  29. package/dist/components/file-upload/file-upload-item-delete-trigger.svelte +21 -0
  30. package/dist/components/file-upload/file-upload-item-delete-trigger.svelte.d.ts +8 -0
  31. package/dist/components/file-upload/file-upload-item-group.svelte +25 -0
  32. package/dist/components/file-upload/file-upload-item-group.svelte.d.ts +9 -0
  33. package/dist/components/file-upload/file-upload-item-name.svelte +26 -0
  34. package/dist/components/file-upload/file-upload-item-name.svelte.d.ts +8 -0
  35. package/dist/components/file-upload/file-upload-item-preview-image.svelte +32 -0
  36. package/dist/components/file-upload/file-upload-item-preview-image.svelte.d.ts +8 -0
  37. package/dist/components/file-upload/file-upload-item-preview.svelte +26 -0
  38. package/dist/components/file-upload/file-upload-item-preview.svelte.d.ts +9 -0
  39. package/dist/components/file-upload/file-upload-item-size-text.svelte +26 -0
  40. package/dist/components/file-upload/file-upload-item-size-text.svelte.d.ts +8 -0
  41. package/dist/components/file-upload/file-upload-item.svelte +32 -0
  42. package/dist/components/file-upload/file-upload-item.svelte.d.ts +10 -0
  43. package/dist/components/file-upload/file-upload-label.svelte +18 -0
  44. package/dist/components/file-upload/file-upload-label.svelte.d.ts +8 -0
  45. package/dist/components/file-upload/file-upload-root-provider.svelte +26 -0
  46. package/dist/components/file-upload/file-upload-root-provider.svelte.d.ts +12 -0
  47. package/dist/components/file-upload/file-upload-root.svelte +64 -0
  48. package/dist/components/file-upload/file-upload-root.svelte.d.ts +9 -0
  49. package/dist/components/file-upload/file-upload-trigger.svelte +18 -0
  50. package/dist/components/file-upload/file-upload-trigger.svelte.d.ts +8 -0
  51. package/dist/components/file-upload/file-upload.d.ts +16 -0
  52. package/dist/components/file-upload/file-upload.js +15 -0
  53. package/dist/components/file-upload/index.d.ts +21 -0
  54. package/dist/components/file-upload/index.js +20 -0
  55. package/dist/components/file-upload/use-file-upload-context.d.ts +4 -0
  56. package/dist/components/file-upload/use-file-upload-context.js +4 -0
  57. package/dist/components/file-upload/use-file-upload-item-group-props-context.d.ts +5 -0
  58. package/dist/components/file-upload/use-file-upload-item-group-props-context.js +6 -0
  59. package/dist/components/file-upload/use-file-upload-item-props-context.d.ts +5 -0
  60. package/dist/components/file-upload/use-file-upload-item-props-context.js +4 -0
  61. package/dist/components/file-upload/use-file-upload.svelte.d.ts +9 -0
  62. package/dist/components/file-upload/use-file-upload.svelte.js +21 -0
  63. package/dist/components/floating-panel/floating-panel-anatomy.d.ts +1 -0
  64. package/dist/components/floating-panel/floating-panel-anatomy.js +1 -0
  65. package/dist/components/floating-panel/floating-panel-body.svelte +19 -0
  66. package/dist/components/floating-panel/floating-panel-body.svelte.d.ts +8 -0
  67. package/dist/components/floating-panel/floating-panel-close-trigger.svelte +20 -0
  68. package/dist/components/floating-panel/floating-panel-close-trigger.svelte.d.ts +8 -0
  69. package/dist/components/floating-panel/floating-panel-content.svelte +28 -0
  70. package/dist/components/floating-panel/floating-panel-content.svelte.d.ts +8 -0
  71. package/dist/components/floating-panel/floating-panel-context.svelte +18 -0
  72. package/dist/components/floating-panel/floating-panel-context.svelte.d.ts +8 -0
  73. package/dist/components/floating-panel/floating-panel-control.svelte +19 -0
  74. package/dist/components/floating-panel/floating-panel-control.svelte.d.ts +8 -0
  75. package/dist/components/floating-panel/floating-panel-drag-trigger.svelte +19 -0
  76. package/dist/components/floating-panel/floating-panel-drag-trigger.svelte.d.ts +8 -0
  77. package/dist/components/floating-panel/floating-panel-header.svelte +19 -0
  78. package/dist/components/floating-panel/floating-panel-header.svelte.d.ts +8 -0
  79. package/dist/components/floating-panel/floating-panel-positioner.svelte +24 -0
  80. package/dist/components/floating-panel/floating-panel-positioner.svelte.d.ts +8 -0
  81. package/dist/components/floating-panel/floating-panel-resize-trigger.svelte +26 -0
  82. package/dist/components/floating-panel/floating-panel-resize-trigger.svelte.d.ts +9 -0
  83. package/dist/components/floating-panel/floating-panel-root-provider.svelte +30 -0
  84. package/dist/components/floating-panel/floating-panel-root-provider.svelte.d.ts +14 -0
  85. package/dist/components/floating-panel/floating-panel-root.svelte +90 -0
  86. package/dist/components/floating-panel/floating-panel-root.svelte.d.ts +12 -0
  87. package/dist/components/floating-panel/floating-panel-stage-trigger.svelte +24 -0
  88. package/dist/components/floating-panel/floating-panel-stage-trigger.svelte.d.ts +9 -0
  89. package/dist/components/floating-panel/floating-panel-title.svelte +19 -0
  90. package/dist/components/floating-panel/floating-panel-title.svelte.d.ts +8 -0
  91. package/dist/components/floating-panel/floating-panel-trigger.svelte +31 -0
  92. package/dist/components/floating-panel/floating-panel-trigger.svelte.d.ts +8 -0
  93. package/dist/components/floating-panel/floating-panel.d.ts +15 -0
  94. package/dist/components/floating-panel/floating-panel.js +14 -0
  95. package/dist/components/floating-panel/index.d.ts +19 -0
  96. package/dist/components/floating-panel/index.js +18 -0
  97. package/dist/components/floating-panel/use-floating-panel-context.d.ts +6 -0
  98. package/dist/components/floating-panel/use-floating-panel-context.js +6 -0
  99. package/dist/components/floating-panel/use-floating-panel.svelte.d.ts +9 -0
  100. package/dist/components/floating-panel/use-floating-panel.svelte.js +19 -0
  101. package/dist/components/focus-trap/focus-trap.svelte +44 -0
  102. package/dist/components/focus-trap/focus-trap.svelte.d.ts +12 -0
  103. package/dist/components/focus-trap/index.d.ts +2 -0
  104. package/dist/components/focus-trap/index.js +1 -0
  105. package/dist/components/format/format-byte.svelte +24 -0
  106. package/dist/components/format/format-byte.svelte.d.ts +9 -0
  107. package/dist/components/format/format-number.svelte +16 -0
  108. package/dist/components/format/format-number.svelte.d.ts +6 -0
  109. package/dist/components/format/format-relative-time.svelte +17 -0
  110. package/dist/components/format/format-relative-time.svelte.d.ts +6 -0
  111. package/dist/components/format/format.d.ts +3 -0
  112. package/dist/components/format/format.js +3 -0
  113. package/dist/components/format/index.d.ts +4 -0
  114. package/dist/components/format/index.js +4 -0
  115. package/dist/components/frame/frame-content.svelte +19 -0
  116. package/dist/components/frame/frame-content.svelte.d.ts +9 -0
  117. package/dist/components/frame/frame.svelte +103 -0
  118. package/dist/components/frame/frame.svelte.d.ts +15 -0
  119. package/dist/components/frame/index.d.ts +2 -0
  120. package/dist/components/frame/index.js +1 -0
  121. package/package.json +27 -2
@@ -0,0 +1,30 @@
1
+ <script lang="ts" module>
2
+ import type { UsePresenceProps } from '../presence/use-presence.svelte'
3
+ import type { UseFloatingPanelReturn } from './use-floating-panel.svelte'
4
+
5
+ interface RootProviderProps {
6
+ value: UseFloatingPanelReturn
7
+ }
8
+
9
+ export interface FloatingPanelRootProviderBaseProps extends RootProviderProps, UsePresenceProps {
10
+ children?: Snippet
11
+ }
12
+ export interface FloatingPanelRootProviderProps extends FloatingPanelRootProviderBaseProps {}
13
+ </script>
14
+
15
+ <script lang="ts">
16
+ import { mergeProps } from '../../core'
17
+ import type { Snippet } from 'svelte'
18
+ import { PresenceProvider, usePresence } from '../presence'
19
+ import { FloatingPanelProvider } from './use-floating-panel-context'
20
+
21
+ let { value, children, ...presenceProps }: FloatingPanelRootProviderProps = $props()
22
+ const presence = usePresence(() => mergeProps({ present: value().open }, presenceProps))
23
+
24
+ $effect(() => {
25
+ FloatingPanelProvider(value)
26
+ })
27
+ PresenceProvider(presence)
28
+ </script>
29
+
30
+ {@render children?.()}
@@ -0,0 +1,14 @@
1
+ import type { UsePresenceProps } from '../presence/use-presence.svelte';
2
+ import type { UseFloatingPanelReturn } from './use-floating-panel.svelte';
3
+ interface RootProviderProps {
4
+ value: UseFloatingPanelReturn;
5
+ }
6
+ export interface FloatingPanelRootProviderBaseProps extends RootProviderProps, UsePresenceProps {
7
+ children?: Snippet;
8
+ }
9
+ export interface FloatingPanelRootProviderProps extends FloatingPanelRootProviderBaseProps {
10
+ }
11
+ import type { Snippet } from 'svelte';
12
+ declare const FloatingPanelRootProvider: import("svelte").Component<FloatingPanelRootProviderProps, {}, "">;
13
+ type FloatingPanelRootProvider = ReturnType<typeof FloatingPanelRootProvider>;
14
+ export default FloatingPanelRootProvider;
@@ -0,0 +1,90 @@
1
+ <script lang="ts" module>
2
+ import type { PolymorphicProps } from '../../types'
3
+ import type { Snippet } from 'svelte'
4
+ import type { UsePresenceProps } from '../presence/use-presence.svelte'
5
+ import type { UseFloatingPanelProps } from './use-floating-panel.svelte'
6
+
7
+ export interface FloatingPanelRootBaseProps
8
+ extends UseFloatingPanelProps,
9
+ UsePresenceProps,
10
+ PolymorphicProps<'div'> {}
11
+ export interface FloatingPanelRootProps extends FloatingPanelRootBaseProps {
12
+ children?: Snippet
13
+ }
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ import { createSplitProps } from '../../utils/create-split-props.js'
18
+ import { mergeProps } from '../../core'
19
+ import { PresenceProvider, splitPresenceProps, usePresence } from '../presence'
20
+ import { FloatingPanelProvider } from './use-floating-panel-context'
21
+ import { useFloatingPanel } from './use-floating-panel.svelte'
22
+
23
+ let { open = $bindable(), position = $bindable(), size = $bindable(), ...props }: FloatingPanelRootProps = $props()
24
+ const providedId = $props.id()
25
+
26
+ const [presenceProps, otherProps] = $derived(splitPresenceProps(props))
27
+ const [floatingPanelProps, localProps] = $derived(
28
+ createSplitProps<UseFloatingPanelProps>()(otherProps, [
29
+ 'allowOverflow',
30
+ 'closeOnEscape',
31
+ 'defaultOpen',
32
+ 'defaultPosition',
33
+ 'defaultSize',
34
+ 'dir',
35
+ 'disabled',
36
+ 'draggable',
37
+ 'getAnchorPosition',
38
+ 'getBoundaryEl',
39
+ 'gridSize',
40
+ 'id',
41
+ 'ids',
42
+ 'lockAspectRatio',
43
+ 'maxSize',
44
+ 'minSize',
45
+ 'onOpenChange',
46
+ 'onPositionChange',
47
+ 'onPositionChangeEnd',
48
+ 'onSizeChange',
49
+ 'onSizeChangeEnd',
50
+ 'onStageChange',
51
+ 'open',
52
+ 'persistRect',
53
+ 'position',
54
+ 'resizable',
55
+ 'size',
56
+ 'strategy',
57
+ 'translations',
58
+ ]),
59
+ )
60
+
61
+ const resolvedProps = $derived<UseFloatingPanelProps>({
62
+ ...floatingPanelProps,
63
+ id: floatingPanelProps.id ?? providedId,
64
+ open,
65
+ onOpenChange(details) {
66
+ floatingPanelProps.onOpenChange?.(details)
67
+ if (open !== undefined) open = details.open
68
+ },
69
+ position,
70
+ onPositionChange(details) {
71
+ floatingPanelProps.onPositionChange?.(details)
72
+ if (position !== undefined) position = details.position
73
+ },
74
+ size,
75
+ onSizeChange(details) {
76
+ floatingPanelProps.onSizeChange?.(details)
77
+ if (size !== undefined) size = details.size
78
+ },
79
+ })
80
+
81
+ const floatingPanel = useFloatingPanel(() => resolvedProps)
82
+ FloatingPanelProvider(floatingPanel)
83
+
84
+ const usePresenceProps = $derived(mergeProps({ present: floatingPanel().open }, presenceProps))
85
+ const presence = usePresence(() => usePresenceProps)
86
+
87
+ PresenceProvider(presence)
88
+ </script>
89
+
90
+ {@render localProps.children?.()}
@@ -0,0 +1,12 @@
1
+ import type { PolymorphicProps } from '../../types';
2
+ import type { Snippet } from 'svelte';
3
+ import type { UsePresenceProps } from '../presence/use-presence.svelte';
4
+ import type { UseFloatingPanelProps } from './use-floating-panel.svelte';
5
+ export interface FloatingPanelRootBaseProps extends UseFloatingPanelProps, UsePresenceProps, PolymorphicProps<'div'> {
6
+ }
7
+ export interface FloatingPanelRootProps extends FloatingPanelRootBaseProps {
8
+ children?: Snippet;
9
+ }
10
+ declare const FloatingPanelRoot: import("svelte").Component<FloatingPanelRootProps, {}, "open" | "size" | "position">;
11
+ type FloatingPanelRoot = ReturnType<typeof FloatingPanelRoot>;
12
+ export default FloatingPanelRoot;
@@ -0,0 +1,24 @@
1
+ <script lang="ts" module>
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+ import type { StageTriggerProps } from '@sprawlify/primitives/machines/floating-panel'
4
+
5
+ export interface FloatingPanelStageTriggerBaseProps
6
+ extends StageTriggerProps,
7
+ PolymorphicProps<'button'>,
8
+ RefAttribute {}
9
+ export interface FloatingPanelStageTriggerProps
10
+ extends Assign<HTMLProps<'button'>, FloatingPanelStageTriggerBaseProps> {}
11
+ </script>
12
+
13
+ <script lang="ts">
14
+ import { mergeProps } from '../../core'
15
+ import { Sprawlify } from '../factory'
16
+ import { useFloatingPanelContext } from './use-floating-panel-context'
17
+
18
+ let { ref = $bindable(null), stage, ...props }: FloatingPanelStageTriggerProps = $props()
19
+
20
+ const floatingPanel = useFloatingPanelContext()
21
+ const mergedProps = $derived(mergeProps(floatingPanel().getStageTriggerProps({ stage }), props))
22
+ </script>
23
+
24
+ <Sprawlify as="button" bind:ref {...mergedProps} />
@@ -0,0 +1,9 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ import type { StageTriggerProps } from '@sprawlify/primitives/machines/floating-panel';
3
+ export interface FloatingPanelStageTriggerBaseProps extends StageTriggerProps, PolymorphicProps<'button'>, RefAttribute {
4
+ }
5
+ export interface FloatingPanelStageTriggerProps extends Assign<HTMLProps<'button'>, FloatingPanelStageTriggerBaseProps> {
6
+ }
7
+ declare const FloatingPanelStageTrigger: import("svelte").Component<FloatingPanelStageTriggerProps, {}, "ref">;
8
+ type FloatingPanelStageTrigger = ReturnType<typeof FloatingPanelStageTrigger>;
9
+ export default FloatingPanelStageTrigger;
@@ -0,0 +1,19 @@
1
+ <script lang="ts" module>
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface FloatingPanelTitleBaseProps extends PolymorphicProps<'h2'>, RefAttribute {}
5
+ export interface FloatingPanelTitleProps extends Assign<HTMLProps<'h2'>, FloatingPanelTitleBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { useFloatingPanelContext } from './use-floating-panel-context'
12
+
13
+ let { ref = $bindable(null), ...props }: FloatingPanelTitleProps = $props()
14
+
15
+ const floatingPanel = useFloatingPanelContext()
16
+ const mergedProps = $derived(mergeProps(floatingPanel().getTitleProps(), props))
17
+ </script>
18
+
19
+ <Sprawlify as="h2" bind:ref {...mergedProps} />
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface FloatingPanelTitleBaseProps extends PolymorphicProps<'h2'>, RefAttribute {
3
+ }
4
+ export interface FloatingPanelTitleProps extends Assign<HTMLProps<'h2'>, FloatingPanelTitleBaseProps> {
5
+ }
6
+ declare const FloatingPanelTitle: import("svelte").Component<FloatingPanelTitleProps, {}, "ref">;
7
+ type FloatingPanelTitle = ReturnType<typeof FloatingPanelTitle>;
8
+ export default FloatingPanelTitle;
@@ -0,0 +1,31 @@
1
+ <script lang="ts" module>
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
+
4
+ export interface FloatingPanelTriggerBaseProps extends PolymorphicProps<'button'>, RefAttribute {}
5
+ export interface FloatingPanelTriggerProps extends Assign<HTMLProps<'button'>, FloatingPanelTriggerBaseProps> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { mergeProps } from '../../core'
10
+ import { Sprawlify } from '../factory'
11
+ import { usePresenceContext } from '../presence'
12
+ import { useFloatingPanelContext } from './use-floating-panel-context'
13
+
14
+ let { ref = $bindable(null), ...props }: FloatingPanelTriggerProps = $props()
15
+
16
+ const floatingPanel = useFloatingPanelContext()
17
+ const presence = usePresenceContext()
18
+
19
+ const triggerProps = $derived(floatingPanel().getTriggerProps())
20
+ const mergedProps = $derived(
21
+ mergeProps(
22
+ {
23
+ ...triggerProps,
24
+ 'aria-controls': presence().unmounted ? undefined : triggerProps['aria-controls'],
25
+ },
26
+ props,
27
+ ),
28
+ )
29
+ </script>
30
+
31
+ <Sprawlify as="button" bind:ref {...mergedProps} />
@@ -0,0 +1,8 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
+ export interface FloatingPanelTriggerBaseProps extends PolymorphicProps<'button'>, RefAttribute {
3
+ }
4
+ export interface FloatingPanelTriggerProps extends Assign<HTMLProps<'button'>, FloatingPanelTriggerBaseProps> {
5
+ }
6
+ declare const FloatingPanelTrigger: import("svelte").Component<FloatingPanelTriggerProps, {}, "ref">;
7
+ type FloatingPanelTrigger = ReturnType<typeof FloatingPanelTrigger>;
8
+ export default FloatingPanelTrigger;
@@ -0,0 +1,15 @@
1
+ export type { OpenChangeDetails, PositionChangeDetails, SizeChangeDetails, StageChangeDetails, } from '@sprawlify/primitives/machines/floating-panel';
2
+ export { default as Body, type FloatingPanelBodyBaseProps as BodyBaseProps, type FloatingPanelBodyProps as BodyProps, } from './floating-panel-body.svelte';
3
+ export { default as CloseTrigger, type FloatingPanelCloseTriggerBaseProps as CloseTriggerBaseProps, type FloatingPanelCloseTriggerProps as CloseTriggerProps, } from './floating-panel-close-trigger.svelte';
4
+ export { default as Content, type FloatingPanelContentBaseProps as ContentBaseProps, type FloatingPanelContentProps as ContentProps, } from './floating-panel-content.svelte';
5
+ export { default as Context, type FloatingPanelContextProps as ContextProps } from './floating-panel-context.svelte';
6
+ export { default as Control, type FloatingPanelControlBaseProps as ControlBaseProps, type FloatingPanelControlProps as ControlProps, } from './floating-panel-control.svelte';
7
+ export { default as DragTrigger, type FloatingPanelDragTriggerBaseProps as DragTriggerBaseProps, type FloatingPanelDragTriggerProps as DragTriggerProps, } from './floating-panel-drag-trigger.svelte';
8
+ export { default as Header, type FloatingPanelHeaderBaseProps as HeaderBaseProps, type FloatingPanelHeaderProps as HeaderProps, } from './floating-panel-header.svelte';
9
+ export { default as Positioner, type FloatingPanelPositionerBaseProps as PositionerBaseProps, type FloatingPanelPositionerProps as PositionerProps, } from './floating-panel-positioner.svelte';
10
+ export { default as ResizeTrigger, type FloatingPanelResizeTriggerBaseProps as ResizeTriggerBaseProps, type FloatingPanelResizeTriggerProps as ResizeTriggerProps, } from './floating-panel-resize-trigger.svelte';
11
+ export { default as RootProvider, type FloatingPanelRootProviderBaseProps as RootProviderBaseProps, type FloatingPanelRootProviderProps as RootProviderProps, } from './floating-panel-root-provider.svelte';
12
+ export { default as Root, type FloatingPanelRootBaseProps as RootBaseProps, type FloatingPanelRootProps as RootProps, } from './floating-panel-root.svelte';
13
+ export { default as StageTrigger, type FloatingPanelStageTriggerBaseProps as StageTriggerBaseProps, type FloatingPanelStageTriggerProps as StageTriggerProps, } from './floating-panel-stage-trigger.svelte';
14
+ export { default as Title, type FloatingPanelTitleBaseProps as TitleBaseProps, type FloatingPanelTitleProps as TitleProps, } from './floating-panel-title.svelte';
15
+ export { default as Trigger, type FloatingPanelTriggerBaseProps as TriggerBaseProps, type FloatingPanelTriggerProps as TriggerProps, } from './floating-panel-trigger.svelte';
@@ -0,0 +1,14 @@
1
+ export { default as Body, } from './floating-panel-body.svelte';
2
+ export { default as CloseTrigger, } from './floating-panel-close-trigger.svelte';
3
+ export { default as Content, } from './floating-panel-content.svelte';
4
+ export { default as Context } from './floating-panel-context.svelte';
5
+ export { default as Control, } from './floating-panel-control.svelte';
6
+ export { default as DragTrigger, } from './floating-panel-drag-trigger.svelte';
7
+ export { default as Header, } from './floating-panel-header.svelte';
8
+ export { default as Positioner, } from './floating-panel-positioner.svelte';
9
+ export { default as ResizeTrigger, } from './floating-panel-resize-trigger.svelte';
10
+ export { default as RootProvider, } from './floating-panel-root-provider.svelte';
11
+ export { default as Root, } from './floating-panel-root.svelte';
12
+ export { default as StageTrigger, } from './floating-panel-stage-trigger.svelte';
13
+ export { default as Title, } from './floating-panel-title.svelte';
14
+ export { default as Trigger, } from './floating-panel-trigger.svelte';
@@ -0,0 +1,19 @@
1
+ export type { OpenChangeDetails as FloatingPanelOpenChangeDetails, PositionChangeDetails as FloatingPanelPositionChangeDetails, SizeChangeDetails as FloatingPanelSizeChangeDetails, StageChangeDetails as FloatingPanelStageChangeDetails, } from '@sprawlify/primitives/machines/floating-panel';
2
+ export { default as FloatingPanelBody, type FloatingPanelBodyProps, type FloatingPanelBodyBaseProps, } from './floating-panel-body.svelte';
3
+ export { default as FloatingPanelCloseTrigger, type FloatingPanelCloseTriggerProps, type FloatingPanelCloseTriggerBaseProps, } from './floating-panel-close-trigger.svelte';
4
+ export { default as FloatingPanelContent, type FloatingPanelContentProps, type FloatingPanelContentBaseProps, } from './floating-panel-content.svelte';
5
+ export { default as FloatingPanelContext, type FloatingPanelContextProps } from './floating-panel-context.svelte';
6
+ export { default as FloatingPanelDragTrigger, type FloatingPanelDragTriggerProps, type FloatingPanelDragTriggerBaseProps, } from './floating-panel-drag-trigger.svelte';
7
+ export { default as FloatingPanelHeader, type FloatingPanelHeaderProps, type FloatingPanelHeaderBaseProps, } from './floating-panel-header.svelte';
8
+ export { default as FloatingPanelPositioner, type FloatingPanelPositionerProps, type FloatingPanelPositionerBaseProps, } from './floating-panel-positioner.svelte';
9
+ export { default as FloatingPanelResizeTrigger, type FloatingPanelResizeTriggerProps, type FloatingPanelResizeTriggerBaseProps, } from './floating-panel-resize-trigger.svelte';
10
+ export { default as FloatingPanelStageTrigger, type FloatingPanelStageTriggerProps, type FloatingPanelStageTriggerBaseProps, } from './floating-panel-stage-trigger.svelte';
11
+ export { default as FloatingPanelRoot, type FloatingPanelRootProps, type FloatingPanelRootBaseProps, } from './floating-panel-root.svelte';
12
+ export { default as FloatingPanelRootProvider, type FloatingPanelRootProviderProps, type FloatingPanelRootProviderBaseProps, } from './floating-panel-root-provider.svelte';
13
+ export { default as FloatingPanelTitle, type FloatingPanelTitleProps, type FloatingPanelTitleBaseProps, } from './floating-panel-title.svelte';
14
+ export { default as FloatingPanelTrigger, type FloatingPanelTriggerProps, type FloatingPanelTriggerBaseProps, } from './floating-panel-trigger.svelte';
15
+ export { default as FloatingPanelControl, type FloatingPanelControlProps, type FloatingPanelControlBaseProps, } from './floating-panel-control.svelte';
16
+ export { useFloatingPanel, type UseFloatingPanelProps, type UseFloatingPanelReturn } from './use-floating-panel.svelte';
17
+ export { useFloatingPanelContext, type UseFloatingPanelContext } from './use-floating-panel-context';
18
+ export { floatingPanelAnatomy } from './floating-panel-anatomy';
19
+ export * as FloatingPanel from './floating-panel';
@@ -0,0 +1,18 @@
1
+ export { default as FloatingPanelBody, } from './floating-panel-body.svelte';
2
+ export { default as FloatingPanelCloseTrigger, } from './floating-panel-close-trigger.svelte';
3
+ export { default as FloatingPanelContent, } from './floating-panel-content.svelte';
4
+ export { default as FloatingPanelContext } from './floating-panel-context.svelte';
5
+ export { default as FloatingPanelDragTrigger, } from './floating-panel-drag-trigger.svelte';
6
+ export { default as FloatingPanelHeader, } from './floating-panel-header.svelte';
7
+ export { default as FloatingPanelPositioner, } from './floating-panel-positioner.svelte';
8
+ export { default as FloatingPanelResizeTrigger, } from './floating-panel-resize-trigger.svelte';
9
+ export { default as FloatingPanelStageTrigger, } from './floating-panel-stage-trigger.svelte';
10
+ export { default as FloatingPanelRoot, } from './floating-panel-root.svelte';
11
+ export { default as FloatingPanelRootProvider, } from './floating-panel-root-provider.svelte';
12
+ export { default as FloatingPanelTitle, } from './floating-panel-title.svelte';
13
+ export { default as FloatingPanelTrigger, } from './floating-panel-trigger.svelte';
14
+ export { default as FloatingPanelControl, } from './floating-panel-control.svelte';
15
+ export { useFloatingPanel } from './use-floating-panel.svelte';
16
+ export { useFloatingPanelContext } from './use-floating-panel-context';
17
+ export { floatingPanelAnatomy } from './floating-panel-anatomy';
18
+ export * as FloatingPanel from './floating-panel';
@@ -0,0 +1,6 @@
1
+ import type { Accessor } from '../../types';
2
+ import type * as floatingPanel from '@sprawlify/primitives/machines/floating-panel';
3
+ import type { PropTypes } from '../../core';
4
+ export interface UseFloatingPanelContext extends Accessor<floatingPanel.Api<PropTypes>> {
5
+ }
6
+ export declare const FloatingPanelProvider: (opts: UseFloatingPanelContext) => void, useFloatingPanelContext: (fallback?: UseFloatingPanelContext | undefined) => UseFloatingPanelContext;
@@ -0,0 +1,6 @@
1
+ import { createContext } from '../../utils/create-context.js';
2
+ export const [FloatingPanelProvider, useFloatingPanelContext] = createContext({
3
+ name: 'FloatingPanelContext',
4
+ hookName: 'useFloatingPanelContext',
5
+ providerName: '<FloatingPanelProvider />',
6
+ });
@@ -0,0 +1,9 @@
1
+ import type { Accessor, Optional } from '../../types';
2
+ import * as floatingPanel from '@sprawlify/primitives/machines/floating-panel';
3
+ import { type PropTypes } from '../../core';
4
+ import { type MaybeFunction } from '@sprawlify/primitives/utils';
5
+ export interface UseFloatingPanelProps extends Optional<Omit<floatingPanel.Props, 'getRootNode'>, 'id'> {
6
+ }
7
+ export interface UseFloatingPanelReturn extends Accessor<floatingPanel.Api<PropTypes>> {
8
+ }
9
+ export declare const useFloatingPanel: (props?: MaybeFunction<UseFloatingPanelProps>) => UseFloatingPanelReturn;
@@ -0,0 +1,19 @@
1
+ import * as floatingPanel from '@sprawlify/primitives/machines/floating-panel';
2
+ import { normalizeProps, useMachine } from '../../core';
3
+ import { runIfFn } from '@sprawlify/primitives/utils';
4
+ import { useEnvironmentContext, useLocaleContext } from '../../providers/index.js';
5
+ export const useFloatingPanel = (props = {}) => {
6
+ const env = useEnvironmentContext();
7
+ const locale = useLocaleContext();
8
+ const resolvedProps = $derived.by(() => {
9
+ const resolvedProps = runIfFn(props);
10
+ return {
11
+ dir: locale().dir,
12
+ getRootNode: env().getRootNode,
13
+ ...resolvedProps,
14
+ };
15
+ });
16
+ const service = useMachine(floatingPanel.machine, () => resolvedProps);
17
+ const api = $derived(floatingPanel.connect(service, normalizeProps));
18
+ return () => api;
19
+ };
@@ -0,0 +1,44 @@
1
+ <script lang="ts">
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types.js'
3
+ import { createSplitProps } from '../../utils/create-split-props.js'
4
+ import { type FocusTrapOptions, trapFocus } from '@sprawlify/primitives/focus-trap'
5
+ import { Sprawlify } from '../factory'
6
+
7
+ export interface TrapOptions
8
+ extends Pick<
9
+ FocusTrapOptions,
10
+ 'onActivate' | 'onDeactivate' | 'initialFocus' | 'fallbackFocus' | 'returnFocusOnDeactivate' | 'setReturnFocus'
11
+ > {
12
+ disabled?: boolean
13
+ }
14
+
15
+ export interface FocusTrapBaseProps extends PolymorphicProps<'div'>, RefAttribute, TrapOptions {}
16
+ export interface FocusTrapProps extends Assign<HTMLProps<'div'>, FocusTrapBaseProps> {}
17
+
18
+ let { ref = $bindable(null), ...props }: FocusTrapProps = $props()
19
+
20
+ const [trapProps, localProps] = $derived(
21
+ createSplitProps<TrapOptions>()(props, [
22
+ 'disabled',
23
+ 'onActivate',
24
+ 'onDeactivate',
25
+ 'initialFocus',
26
+ 'fallbackFocus',
27
+ 'returnFocusOnDeactivate',
28
+ 'setReturnFocus',
29
+ ]),
30
+ )
31
+
32
+ let localNode = $state<HTMLDivElement | null>(null)
33
+
34
+ $effect(() => {
35
+ if (!localNode || trapProps.disabled) return
36
+ return trapFocus(localNode, trapProps)
37
+ })
38
+
39
+ function setNode(node: HTMLDivElement | null) {
40
+ localNode = node
41
+ }
42
+ </script>
43
+
44
+ <Sprawlify as="div" bind:ref {@attach setNode} {...localProps} />
@@ -0,0 +1,12 @@
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types.js';
2
+ import { type FocusTrapOptions } from '@sprawlify/primitives/focus-trap';
3
+ export interface TrapOptions extends Pick<FocusTrapOptions, 'onActivate' | 'onDeactivate' | 'initialFocus' | 'fallbackFocus' | 'returnFocusOnDeactivate' | 'setReturnFocus'> {
4
+ disabled?: boolean;
5
+ }
6
+ export interface FocusTrapBaseProps extends PolymorphicProps<'div'>, RefAttribute, TrapOptions {
7
+ }
8
+ export interface FocusTrapProps extends Assign<HTMLProps<'div'>, FocusTrapBaseProps> {
9
+ }
10
+ declare const FocusTrap: import("svelte").Component<FocusTrapProps, {}, "ref">;
11
+ type FocusTrap = ReturnType<typeof FocusTrap>;
12
+ export default FocusTrap;
@@ -0,0 +1,2 @@
1
+ export { default as FocusTrap } from './focus-trap.svelte';
2
+ export type { FocusTrapBaseProps, FocusTrapProps } from './focus-trap.svelte';
@@ -0,0 +1 @@
1
+ export { default as FocusTrap } from './focus-trap.svelte';
@@ -0,0 +1,24 @@
1
+ <script module lang="ts">
2
+ export interface FormatByteProps {
3
+ unit?: 'bit' | 'byte'
4
+ unitDisplay?: 'long' | 'short' | 'narrow'
5
+ unitSystem?: 'decimal' | 'binary'
6
+ value: number
7
+ }
8
+ </script>
9
+
10
+ <script lang="ts">
11
+ import { formatBytes } from '@sprawlify/primitives/i18n-utils'
12
+ import { useLocaleContext } from '../../providers'
13
+
14
+ const props: FormatByteProps = $props()
15
+
16
+ const locale = useLocaleContext()
17
+
18
+ const text = $derived(() => {
19
+ const { value, ...intlProps } = props
20
+ return formatBytes(value, locale().locale, intlProps)
21
+ })
22
+ </script>
23
+
24
+ {text()}
@@ -0,0 +1,9 @@
1
+ export interface FormatByteProps {
2
+ unit?: 'bit' | 'byte';
3
+ unitDisplay?: 'long' | 'short' | 'narrow';
4
+ unitSystem?: 'decimal' | 'binary';
5
+ value: number;
6
+ }
7
+ declare const FormatByte: import("svelte").Component<FormatByteProps, {}, "">;
8
+ type FormatByte = ReturnType<typeof FormatByte>;
9
+ export default FormatByte;
@@ -0,0 +1,16 @@
1
+ <script module lang="ts">
2
+ export interface FormatNumberProps extends Intl.NumberFormatOptions {
3
+ value: number
4
+ }
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { formatNumber } from '@sprawlify/primitives/i18n-utils'
9
+ import { useLocaleContext } from '../../providers/locale'
10
+
11
+ const { value, ...props }: FormatNumberProps = $props()
12
+ const locale = useLocaleContext()
13
+ const text = $derived(formatNumber(value, locale().locale, props))
14
+ </script>
15
+
16
+ {text}
@@ -0,0 +1,6 @@
1
+ export interface FormatNumberProps extends Intl.NumberFormatOptions {
2
+ value: number;
3
+ }
4
+ declare const FormatNumber: import("svelte").Component<FormatNumberProps, {}, "">;
5
+ type FormatNumber = ReturnType<typeof FormatNumber>;
6
+ export default FormatNumber;
@@ -0,0 +1,17 @@
1
+ <script module lang="ts">
2
+ export interface FormatRelativeTimeProps extends Intl.RelativeTimeFormatOptions {
3
+ value: Date
4
+ }
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { formatRelativeTime } from '@sprawlify/primitives/i18n-utils'
9
+ import { useLocaleContext } from '../../providers/locale'
10
+
11
+ let { value, ...props }: FormatRelativeTimeProps = $props()
12
+
13
+ const locale = useLocaleContext()
14
+ const text = $derived(formatRelativeTime(value, locale().locale, props))
15
+ </script>
16
+
17
+ {text}
@@ -0,0 +1,6 @@
1
+ export interface FormatRelativeTimeProps extends Intl.RelativeTimeFormatOptions {
2
+ value: Date;
3
+ }
4
+ declare const FormatRelativeTime: import("svelte").Component<FormatRelativeTimeProps, {}, "">;
5
+ type FormatRelativeTime = ReturnType<typeof FormatRelativeTime>;
6
+ export default FormatRelativeTime;
@@ -0,0 +1,3 @@
1
+ export { default as Byte, type FormatByteProps as ByteBaseProps, type FormatByteProps as ByteProps, } from './format-byte.svelte';
2
+ export { default as Number, type FormatNumberProps as NumberBaseProps, type FormatNumberProps as NumberProps, } from './format-number.svelte';
3
+ export { default as RelativeTime, type FormatRelativeTimeProps as RelativeTimeBaseProps, type FormatRelativeTimeProps as RelativeTimeProps, } from './format-relative-time.svelte';
@@ -0,0 +1,3 @@
1
+ export { default as Byte, } from './format-byte.svelte';
2
+ export { default as Number, } from './format-number.svelte';
3
+ export { default as RelativeTime, } from './format-relative-time.svelte';
@@ -0,0 +1,4 @@
1
+ export { default as FormatByte, type FormatByteProps } from './format-byte.svelte';
2
+ export { default as FormatNumber, type FormatNumberProps } from './format-number.svelte';
3
+ export { default as FormatRelativeTime, type FormatRelativeTimeProps } from './format-relative-time.svelte';
4
+ export * as Format from './format';
@@ -0,0 +1,4 @@
1
+ export { default as FormatByte } from './format-byte.svelte';
2
+ export { default as FormatNumber } from './format-number.svelte';
3
+ export { default as FormatRelativeTime } from './format-relative-time.svelte';
4
+ export * as Format from './format';
@@ -0,0 +1,19 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+
4
+ interface FrameContentProps {
5
+ onMount?(): void
6
+ onUnmount?(): void
7
+ children: Snippet
8
+ }
9
+
10
+ const { onMount, onUnmount, children }: FrameContentProps = $props()
11
+
12
+ $effect(() => {
13
+ onMount?.()
14
+
15
+ return onUnmount
16
+ })
17
+ </script>
18
+
19
+ {@render children()}
@@ -0,0 +1,9 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface FrameContentProps {
3
+ onMount?(): void;
4
+ onUnmount?(): void;
5
+ children: Snippet;
6
+ }
7
+ declare const FrameContent: import("svelte").Component<FrameContentProps, {}, "">;
8
+ type FrameContent = ReturnType<typeof FrameContent>;
9
+ export default FrameContent;