@pajohns/flowbite-svelte 0.1.3 → 0.1.4
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.
- package/dist/modal/Modal.svelte +9 -68
- package/dist/modal/Modal.svelte.d.ts +0 -11
- package/dist/types.d.ts +0 -11
- package/package.json +1 -1
package/dist/modal/Modal.svelte
CHANGED
|
@@ -23,98 +23,50 @@
|
|
|
23
23
|
footerClass,
|
|
24
24
|
size = "md",
|
|
25
25
|
placement,
|
|
26
|
-
class:
|
|
26
|
+
class: className,
|
|
27
27
|
classes,
|
|
28
28
|
transitionParams,
|
|
29
29
|
transition = fade,
|
|
30
30
|
fullscreen = false,
|
|
31
|
-
// Custom passm8 props
|
|
32
|
-
zIndexLayer,
|
|
33
|
-
toggle,
|
|
34
|
-
classDialog,
|
|
35
|
-
classBody,
|
|
36
|
-
classHeader,
|
|
37
|
-
classFooter,
|
|
38
|
-
className,
|
|
39
|
-
centered = false,
|
|
40
|
-
returnFocusAfterClose = true,
|
|
41
|
-
onclose,
|
|
42
|
-
onopen,
|
|
43
31
|
...restProps
|
|
44
32
|
}: ModalProps = $props();
|
|
45
33
|
|
|
46
|
-
// Handle className alias for class
|
|
47
|
-
const resolvedClassName = $derived(classNameProp ?? className);
|
|
48
|
-
|
|
49
|
-
// Handle centered as alias for placement="center"
|
|
50
|
-
const resolvedPlacement = $derived(centered ? "center" : placement);
|
|
51
|
-
|
|
52
|
-
// Handle class aliases (classBody -> bodyClass, etc.)
|
|
53
|
-
const resolvedBodyClass = $derived(bodyClass ?? classBody);
|
|
54
|
-
const resolvedHeaderClass = $derived(headerClass ?? classHeader);
|
|
55
|
-
const resolvedFooterClass = $derived(footerClass ?? classFooter);
|
|
56
|
-
|
|
57
34
|
warnThemeDeprecation(
|
|
58
35
|
"Modal",
|
|
59
|
-
untrack(() => ({ headerClass
|
|
36
|
+
untrack(() => ({ headerClass, bodyClass, footerClass, closeBtnClass })),
|
|
60
37
|
{ bodyClass: "body", headerClass: "header", footerClass: "footer", closeBtnClass: "close" }
|
|
61
38
|
);
|
|
62
39
|
|
|
63
|
-
const styling = $derived(classes ?? { header:
|
|
40
|
+
const styling = $derived(classes ?? { header: headerClass, body: bodyClass, footer: footerClass, close: closeBtnClass });
|
|
64
41
|
|
|
65
42
|
const theme = $derived(getTheme("modal"));
|
|
66
43
|
|
|
67
44
|
const paramsDefault = { duration: 100, easing: sineIn };
|
|
68
45
|
const paramsOptions = $derived(transitionParams ?? paramsDefault);
|
|
69
46
|
|
|
70
|
-
const { base, header: headerCls, footer: footerCls, body } = $derived(modalStyle({ placement
|
|
71
|
-
|
|
72
|
-
// Z-index layer styling
|
|
73
|
-
const zIndexStyle = $derived(zIndexLayer ? `z-index: ${zIndexLayer * 10};` : undefined);
|
|
74
|
-
|
|
75
|
-
// Track open state changes for callbacks
|
|
76
|
-
let prevOpen = $state(open);
|
|
77
|
-
$effect(() => {
|
|
78
|
-
if (open !== prevOpen) {
|
|
79
|
-
if (open) {
|
|
80
|
-
onopen?.();
|
|
81
|
-
} else {
|
|
82
|
-
onclose?.();
|
|
83
|
-
}
|
|
84
|
-
prevOpen = open;
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
// Handle toggle prop - if provided, use it to close the modal
|
|
89
|
-
function handleCancel() {
|
|
90
|
-
if (toggle) {
|
|
91
|
-
toggle();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
47
|
+
const { base, header: headerCls, footer: footerCls, body } = $derived(modalStyle({ placement, size }));
|
|
94
48
|
</script>
|
|
95
49
|
|
|
96
50
|
<Dialog
|
|
97
51
|
bind:open
|
|
98
52
|
{transition}
|
|
99
|
-
dismissable={dismissable && !title && !permanent}
|
|
53
|
+
dismissable={dismissable && !title && !header && !permanent}
|
|
100
54
|
transitionParams={paramsOptions}
|
|
101
55
|
{classes}
|
|
102
56
|
{permanent}
|
|
103
|
-
oncancel={toggle ? handleCancel : undefined}
|
|
104
57
|
{...restProps}
|
|
105
|
-
class={base({ fullscreen, class: clsx(theme?.base,
|
|
106
|
-
style={zIndexStyle}
|
|
58
|
+
class={base({ fullscreen, class: clsx(theme?.base, className) })}
|
|
107
59
|
>
|
|
108
60
|
{#if title || header}
|
|
109
61
|
<div class={headerCls({ class: clsx(theme?.header, styling.header) })}>
|
|
110
62
|
{#if title}
|
|
111
63
|
<h3>{title}</h3>
|
|
112
|
-
{#if dismissable && !permanent}
|
|
113
|
-
<CloseButton type="submit" formnovalidate class={clsx(styling.close)} />
|
|
114
|
-
{/if}
|
|
115
64
|
{:else if header}
|
|
116
65
|
{@render header()}
|
|
117
66
|
{/if}
|
|
67
|
+
{#if dismissable && !permanent}
|
|
68
|
+
<CloseButton type="submit" formnovalidate class={clsx(styling.close)} />
|
|
69
|
+
{/if}
|
|
118
70
|
</div>
|
|
119
71
|
{/if}
|
|
120
72
|
<div class={body({ class: clsx(theme?.body, styling.body) })}>
|
|
@@ -151,16 +103,5 @@
|
|
|
151
103
|
@prop transitionParams
|
|
152
104
|
@prop transition = fade
|
|
153
105
|
@prop fullscreen = false
|
|
154
|
-
@prop zIndexLayer - Controls z-index layering (multiplied by 10)
|
|
155
|
-
@prop toggle - Function to toggle modal open/close state
|
|
156
|
-
@prop classDialog - Additional class for the dialog element
|
|
157
|
-
@prop classBody - Alias for bodyClass
|
|
158
|
-
@prop classHeader - Alias for headerClass
|
|
159
|
-
@prop classFooter - Alias for footerClass
|
|
160
|
-
@prop className - Alias for class
|
|
161
|
-
@prop centered - Shorthand for placement="center"
|
|
162
|
-
@prop returnFocusAfterClose - Whether to return focus after close (default: true)
|
|
163
|
-
@prop onclose - Callback when modal closes
|
|
164
|
-
@prop onopen - Callback when modal opens
|
|
165
106
|
@prop ...restProps
|
|
166
107
|
-->
|
|
@@ -22,17 +22,6 @@ import type { ModalProps } from "..";
|
|
|
22
22
|
* @prop transitionParams
|
|
23
23
|
* @prop transition = fade
|
|
24
24
|
* @prop fullscreen = false
|
|
25
|
-
* @prop zIndexLayer - Controls z-index layering (multiplied by 10)
|
|
26
|
-
* @prop toggle - Function to toggle modal open/close state
|
|
27
|
-
* @prop classDialog - Additional class for the dialog element
|
|
28
|
-
* @prop classBody - Alias for bodyClass
|
|
29
|
-
* @prop classHeader - Alias for headerClass
|
|
30
|
-
* @prop classFooter - Alias for footerClass
|
|
31
|
-
* @prop className - Alias for class
|
|
32
|
-
* @prop centered - Shorthand for placement="center"
|
|
33
|
-
* @prop returnFocusAfterClose - Whether to return focus after close (default: true)
|
|
34
|
-
* @prop onclose - Callback when modal closes
|
|
35
|
-
* @prop onopen - Callback when modal opens
|
|
36
25
|
* @prop ...restProps
|
|
37
26
|
*/
|
|
38
27
|
declare const Modal: import("svelte").Component<ModalProps, {}, "open">;
|
package/dist/types.d.ts
CHANGED
|
@@ -975,17 +975,6 @@ export interface ModalProps extends ModalVariants, Omit<DialogProps, "classes">
|
|
|
975
975
|
footerClass?: ClassValue;
|
|
976
976
|
closeBtnClass?: ClassValue;
|
|
977
977
|
fullscreen?: boolean;
|
|
978
|
-
zIndexLayer?: number;
|
|
979
|
-
toggle?: () => void;
|
|
980
|
-
classDialog?: ClassValue;
|
|
981
|
-
classBody?: ClassValue;
|
|
982
|
-
classHeader?: ClassValue;
|
|
983
|
-
classFooter?: ClassValue;
|
|
984
|
-
className?: ClassValue;
|
|
985
|
-
centered?: boolean;
|
|
986
|
-
returnFocusAfterClose?: boolean;
|
|
987
|
-
onclose?: () => void;
|
|
988
|
-
onopen?: () => void;
|
|
989
978
|
}
|
|
990
979
|
export interface MenuProps extends SVGAttributes<SVGSVGElement> {
|
|
991
980
|
size?: string;
|