@pajohns/flowbite-svelte 0.1.1 → 0.1.3
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
CHANGED
|
@@ -23,28 +23,74 @@
|
|
|
23
23
|
footerClass,
|
|
24
24
|
size = "md",
|
|
25
25
|
placement,
|
|
26
|
-
class:
|
|
26
|
+
class: classNameProp,
|
|
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,
|
|
31
43
|
...restProps
|
|
32
44
|
}: ModalProps = $props();
|
|
33
45
|
|
|
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
|
+
|
|
34
57
|
warnThemeDeprecation(
|
|
35
58
|
"Modal",
|
|
36
|
-
untrack(() => ({ headerClass, bodyClass, footerClass, closeBtnClass })),
|
|
59
|
+
untrack(() => ({ headerClass: resolvedHeaderClass, bodyClass: resolvedBodyClass, footerClass: resolvedFooterClass, closeBtnClass })),
|
|
37
60
|
{ bodyClass: "body", headerClass: "header", footerClass: "footer", closeBtnClass: "close" }
|
|
38
61
|
);
|
|
39
62
|
|
|
40
|
-
const styling = $derived(classes ?? { header:
|
|
63
|
+
const styling = $derived(classes ?? { header: resolvedHeaderClass, body: resolvedBodyClass, footer: resolvedFooterClass, close: closeBtnClass });
|
|
41
64
|
|
|
42
65
|
const theme = $derived(getTheme("modal"));
|
|
43
66
|
|
|
44
67
|
const paramsDefault = { duration: 100, easing: sineIn };
|
|
45
68
|
const paramsOptions = $derived(transitionParams ?? paramsDefault);
|
|
46
69
|
|
|
47
|
-
const { base, header: headerCls, footer: footerCls, body } = $derived(modalStyle({ placement, size }));
|
|
70
|
+
const { base, header: headerCls, footer: footerCls, body } = $derived(modalStyle({ placement: resolvedPlacement, size }));
|
|
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
|
+
}
|
|
48
94
|
</script>
|
|
49
95
|
|
|
50
96
|
<Dialog
|
|
@@ -54,8 +100,10 @@
|
|
|
54
100
|
transitionParams={paramsOptions}
|
|
55
101
|
{classes}
|
|
56
102
|
{permanent}
|
|
103
|
+
oncancel={toggle ? handleCancel : undefined}
|
|
57
104
|
{...restProps}
|
|
58
|
-
class={base({ fullscreen, class: clsx(theme?.base,
|
|
105
|
+
class={base({ fullscreen, class: clsx(theme?.base, resolvedClassName, classDialog) })}
|
|
106
|
+
style={zIndexStyle}
|
|
59
107
|
>
|
|
60
108
|
{#if title || header}
|
|
61
109
|
<div class={headerCls({ class: clsx(theme?.header, styling.header) })}>
|
|
@@ -103,5 +151,16 @@
|
|
|
103
151
|
@prop transitionParams
|
|
104
152
|
@prop transition = fade
|
|
105
153
|
@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
|
|
106
165
|
@prop ...restProps
|
|
107
166
|
-->
|
|
@@ -22,6 +22,17 @@ 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
|
|
25
36
|
* @prop ...restProps
|
|
26
37
|
*/
|
|
27
38
|
declare const Modal: import("svelte").Component<ModalProps, {}, "open">;
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
animate = false,
|
|
14
14
|
size = "h-2.5",
|
|
15
15
|
labelInside = false,
|
|
16
|
+
labelInsideClass,
|
|
16
17
|
labelOutside = "",
|
|
18
|
+
outsideSpanClass,
|
|
17
19
|
easing = cubicOut,
|
|
18
20
|
color = "primary",
|
|
19
21
|
class: className,
|
|
@@ -50,13 +52,13 @@
|
|
|
50
52
|
|
|
51
53
|
{#if labelOutside}
|
|
52
54
|
<div {...restProps} class={outside({ class: clsx(theme?.outside, classes?.outside) })}>
|
|
53
|
-
<span class={span({ class: clsx(theme?.span, classes?.span) })}>{labelOutside}</span>
|
|
55
|
+
<span class={span({ class: clsx(theme?.span, classes?.span, outsideSpanClass) })}>{labelOutside}</span>
|
|
54
56
|
<span class={progressCls({ class: clsx(theme?.progressCls, classes?.progressCls) })}>{progress}%</span>
|
|
55
57
|
</div>
|
|
56
58
|
{/if}
|
|
57
59
|
<div {...restProps} class={base({ class: clsx(size, theme?.base, className) })}>
|
|
58
60
|
{#if labelInside}
|
|
59
|
-
|
|
61
|
+
<div class={labelInsideCls({ class: clsx(size, theme?.label, classes?.label, labelInsideClass) })} style="width: {_progress.current}%">
|
|
60
62
|
{_progress.current.toFixed(precision)}%
|
|
61
63
|
</div>
|
|
62
64
|
{:else}
|
|
@@ -76,7 +78,9 @@
|
|
|
76
78
|
@prop animate = false
|
|
77
79
|
@prop size = "h-2.5"
|
|
78
80
|
@prop labelInside = false
|
|
81
|
+
@prop labelInsideClass - Custom classes for the label inside the progress bar
|
|
79
82
|
@prop labelOutside = ""
|
|
83
|
+
@prop outsideSpanClass - Custom classes for the outside label span
|
|
80
84
|
@prop easing = cubicOut
|
|
81
85
|
@prop color = "primary"
|
|
82
86
|
@prop class: className
|
|
@@ -10,7 +10,9 @@ import type { ProgressbarProps } from "../types";
|
|
|
10
10
|
* @prop animate = false
|
|
11
11
|
* @prop size = "h-2.5"
|
|
12
12
|
* @prop labelInside = false
|
|
13
|
+
* @prop labelInsideClass - Custom classes for the label inside the progress bar
|
|
13
14
|
* @prop labelOutside = ""
|
|
15
|
+
* @prop outsideSpanClass - Custom classes for the outside label span
|
|
14
16
|
* @prop easing = cubicOut
|
|
15
17
|
* @prop color = "primary"
|
|
16
18
|
* @prop class: className
|
package/dist/types.d.ts
CHANGED
|
@@ -975,6 +975,17 @@ 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;
|
|
978
989
|
}
|
|
979
990
|
export interface MenuProps extends SVGAttributes<SVGSVGElement> {
|
|
980
991
|
size?: string;
|
|
@@ -1103,7 +1114,9 @@ export interface ProgressbarProps extends ProgressbarVariants, Omit<HTMLAttribut
|
|
|
1103
1114
|
animate?: boolean;
|
|
1104
1115
|
size?: string;
|
|
1105
1116
|
labelInside?: boolean;
|
|
1117
|
+
labelInsideClass?: string;
|
|
1106
1118
|
labelOutside?: string;
|
|
1119
|
+
outsideSpanClass?: string;
|
|
1107
1120
|
easing?: EasingFunction;
|
|
1108
1121
|
}
|
|
1109
1122
|
export interface ProgressradialProps extends ProgressradialVariants, Omit<HTMLAttributes<HTMLDivElement>, "color"> {
|