@pathscale/ui 0.0.107 → 0.0.108
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/README.md +22 -53
- package/dist/components/toastcontainer/ToastStack.d.ts +17 -0
- package/dist/components/toastcontainer/index.d.ts +2 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +494 -328
- package/dist/stores/toastStore.d.ts +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,68 +3,37 @@
|
|
|
3
3
|
Highly opinionated SolidJS component library — batteries and kitchen sink
|
|
4
4
|
included, but optimized and shiny.
|
|
5
5
|
|
|
6
|
-
##
|
|
7
|
-
|
|
8
|
-
To build this package, use the following command
|
|
6
|
+
## Install
|
|
9
7
|
|
|
10
8
|
```sh
|
|
11
|
-
bun
|
|
9
|
+
bun add @pathscale/ui
|
|
12
10
|
```
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Actions
|
|
17
|
-
|
|
18
|
-
- [x] Button
|
|
19
|
-
- [x] Dropdown
|
|
20
|
-
- [x] Modal
|
|
21
|
-
- [x] Swap
|
|
12
|
+
## Usage
|
|
22
13
|
|
|
23
|
-
|
|
14
|
+
```tsx
|
|
15
|
+
import { Button, Flex } from "@pathscale/ui";
|
|
24
16
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- [x] Collapse
|
|
32
|
-
- [x] Countdown
|
|
33
|
-
- [x] Diff
|
|
34
|
-
- [x] Kbd
|
|
35
|
-
- [x] Stats
|
|
36
|
-
- [x] Table
|
|
37
|
-
- [x] Timeline
|
|
17
|
+
export const Example = () => (
|
|
18
|
+
<Flex direction="col" gap="sm">
|
|
19
|
+
<Button color="primary">Primary</Button>
|
|
20
|
+
</Flex>
|
|
21
|
+
);
|
|
22
|
+
```
|
|
38
23
|
|
|
39
|
-
##
|
|
24
|
+
## Motion
|
|
40
25
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
- [x] Link
|
|
44
|
-
- [x] Menu
|
|
45
|
-
- [x] Navbar
|
|
46
|
-
- [x] Pagination
|
|
47
|
-
- [x] Steps
|
|
48
|
-
- [ ] Tabs
|
|
26
|
+
Shared animation primitives live in `@pathscale/ui/motion`. For setup,
|
|
27
|
+
Popmotion driver enablement, and migration notes, see `docs/motion.md`.
|
|
49
28
|
|
|
50
|
-
##
|
|
29
|
+
## Development
|
|
51
30
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- [x] Radial Progress
|
|
56
|
-
- [x] Skeleton
|
|
57
|
-
- [x] Tooltip
|
|
58
|
-
- [x] Toast
|
|
31
|
+
```sh
|
|
32
|
+
bun run build
|
|
33
|
+
```
|
|
59
34
|
|
|
60
|
-
|
|
35
|
+
Other useful scripts:
|
|
61
36
|
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
- [x] Radio
|
|
66
|
-
- [x] Range
|
|
67
|
-
- [x] Rating
|
|
68
|
-
- [x] Select
|
|
69
|
-
- [x] Textarea
|
|
70
|
-
- [x] Toggle
|
|
37
|
+
- `bun run dev`
|
|
38
|
+
- `bun run lint`
|
|
39
|
+
- `bun run format`
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Component, type JSX } from "solid-js";
|
|
2
|
+
import type { ToastProps } from "../toast/Toast";
|
|
3
|
+
import type { MotionPreset } from "../../motion";
|
|
4
|
+
import { type ToastItem } from "../../stores/toastStore";
|
|
5
|
+
export type ToastRenderer = (toast: ToastItem, dismiss: () => void) => JSX.Element;
|
|
6
|
+
export type ToastStackProps = ToastProps & {
|
|
7
|
+
motionPreset?: MotionPreset;
|
|
8
|
+
motionPresetName?: string;
|
|
9
|
+
reduceMotion?: boolean;
|
|
10
|
+
renderToast?: ToastRenderer;
|
|
11
|
+
expandOnClick?: boolean;
|
|
12
|
+
collapsedCount?: number;
|
|
13
|
+
collapsedOffset?: number;
|
|
14
|
+
collapsedScale?: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const ToastStack: Component<ToastStackProps>;
|
|
17
|
+
export default ToastStack;
|
package/dist/index.d.ts
CHANGED
|
@@ -85,7 +85,8 @@ export type { RadioTabProps, TabProps, TabsProps } from "./components/tabs";
|
|
|
85
85
|
export { default as Textarea } from "./components/textarea";
|
|
86
86
|
export { Timeline, TimelineEnd, TimelineItem, TimelineMiddle, TimelineStart, } from "./components/timeline";
|
|
87
87
|
export { default as Toast } from "./components/toast";
|
|
88
|
-
export { ToastContainer } from "./components/toastcontainer";
|
|
88
|
+
export { ToastContainer, ToastStack } from "./components/toastcontainer";
|
|
89
|
+
export type { ToastRenderer, ToastStackProps, } from "./components/toastcontainer";
|
|
89
90
|
export { default as Toggle } from "./components/toggle";
|
|
90
91
|
export { default as Tooltip } from "./components/tooltip";
|
|
91
92
|
export { default as WindowMockup, type WindowMockupProps, } from "./components/windowmockup";
|
package/dist/index.js
CHANGED
|
@@ -12707,333 +12707,6 @@ const Toast = (props)=>{
|
|
|
12707
12707
|
})();
|
|
12708
12708
|
};
|
|
12709
12709
|
const toast_Toast = Toast;
|
|
12710
|
-
const [toasts, setToasts] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)([]);
|
|
12711
|
-
let toastCounter = 0;
|
|
12712
|
-
const toastStore = {
|
|
12713
|
-
toasts,
|
|
12714
|
-
addToast: (message, type = "info", duration = 8000)=>{
|
|
12715
|
-
const id = `toast-${++toastCounter}`;
|
|
12716
|
-
const toast = {
|
|
12717
|
-
id,
|
|
12718
|
-
message,
|
|
12719
|
-
type,
|
|
12720
|
-
timestamp: Date.now()
|
|
12721
|
-
};
|
|
12722
|
-
setToasts((prev)=>[
|
|
12723
|
-
...prev,
|
|
12724
|
-
toast
|
|
12725
|
-
]);
|
|
12726
|
-
setTimeout(()=>{
|
|
12727
|
-
toastStore.removeToast(id);
|
|
12728
|
-
}, duration);
|
|
12729
|
-
return id;
|
|
12730
|
-
},
|
|
12731
|
-
removeToast: (id)=>{
|
|
12732
|
-
setToasts((prev)=>prev.filter((toast)=>toast.id !== id));
|
|
12733
|
-
},
|
|
12734
|
-
clearAll: ()=>{
|
|
12735
|
-
setToasts([]);
|
|
12736
|
-
},
|
|
12737
|
-
showError: (message)=>toastStore.addToast(message, "error", 10000),
|
|
12738
|
-
showSuccess: (message)=>toastStore.addToast(message, "success", 6000),
|
|
12739
|
-
showWarning: (message)=>toastStore.addToast(message, "warning", 8000),
|
|
12740
|
-
showInfo: (message)=>toastStore.addToast(message, "info", 6000)
|
|
12741
|
-
};
|
|
12742
|
-
var ToastContainer_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span class=flex-1>");
|
|
12743
|
-
const ToastContainer = ()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(toast_Toast, {
|
|
12744
|
-
get children () {
|
|
12745
|
-
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.For, {
|
|
12746
|
-
get each () {
|
|
12747
|
-
return toastStore.toasts();
|
|
12748
|
-
},
|
|
12749
|
-
children: (toast)=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(alert_Alert, {
|
|
12750
|
-
get status () {
|
|
12751
|
-
return toast.type;
|
|
12752
|
-
},
|
|
12753
|
-
class: "flex justify-between items-center gap-4",
|
|
12754
|
-
style: {
|
|
12755
|
-
"min-width": "20rem",
|
|
12756
|
-
"max-width": "32rem"
|
|
12757
|
-
},
|
|
12758
|
-
get children () {
|
|
12759
|
-
return [
|
|
12760
|
-
(()=>{
|
|
12761
|
-
var _el$ = ToastContainer_tmpl$();
|
|
12762
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, ()=>toast.message);
|
|
12763
|
-
return _el$;
|
|
12764
|
-
})(),
|
|
12765
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(button_Button, {
|
|
12766
|
-
size: "sm",
|
|
12767
|
-
color: "ghost",
|
|
12768
|
-
onClick: ()=>toastStore.removeToast(toast.id),
|
|
12769
|
-
class: "ml-2 opacity-70 hover:opacity-100",
|
|
12770
|
-
children: "x"
|
|
12771
|
-
})
|
|
12772
|
-
];
|
|
12773
|
-
}
|
|
12774
|
-
})
|
|
12775
|
-
});
|
|
12776
|
-
}
|
|
12777
|
-
});
|
|
12778
|
-
var Toggle_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<input>");
|
|
12779
|
-
const Toggle = (props)=>{
|
|
12780
|
-
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
12781
|
-
"color",
|
|
12782
|
-
"size",
|
|
12783
|
-
"dataTheme",
|
|
12784
|
-
"class",
|
|
12785
|
-
"className",
|
|
12786
|
-
"style",
|
|
12787
|
-
"aria-label",
|
|
12788
|
-
"aria-describedby",
|
|
12789
|
-
"aria-invalid",
|
|
12790
|
-
"aria-required",
|
|
12791
|
-
"aria-labelledby",
|
|
12792
|
-
"aria-checked"
|
|
12793
|
-
]);
|
|
12794
|
-
const classes = ()=>twMerge("toggle", local.class, local.className, clsx({
|
|
12795
|
-
"toggle-xl": "xl" === local.size,
|
|
12796
|
-
"toggle-lg": "lg" === local.size,
|
|
12797
|
-
"toggle-md": "md" === local.size,
|
|
12798
|
-
"toggle-sm": "sm" === local.size,
|
|
12799
|
-
"toggle-xs": "xs" === local.size,
|
|
12800
|
-
"toggle-neutral": "neutral" === local.color,
|
|
12801
|
-
"toggle-primary": "primary" === local.color,
|
|
12802
|
-
"toggle-secondary": "secondary" === local.color,
|
|
12803
|
-
"toggle-accent": "accent" === local.color,
|
|
12804
|
-
"toggle-info": "info" === local.color,
|
|
12805
|
-
"toggle-success": "success" === local.color,
|
|
12806
|
-
"toggle-warning": "warning" === local.color,
|
|
12807
|
-
"toggle-error": "error" === local.color
|
|
12808
|
-
}));
|
|
12809
|
-
return (()=>{
|
|
12810
|
-
var _el$ = Toggle_tmpl$();
|
|
12811
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
12812
|
-
type: "checkbox",
|
|
12813
|
-
role: "switch",
|
|
12814
|
-
get ["data-theme"] () {
|
|
12815
|
-
return local.dataTheme;
|
|
12816
|
-
},
|
|
12817
|
-
get ["class"] () {
|
|
12818
|
-
return classes();
|
|
12819
|
-
},
|
|
12820
|
-
get style () {
|
|
12821
|
-
return local.style;
|
|
12822
|
-
},
|
|
12823
|
-
get ["aria-label"] () {
|
|
12824
|
-
return local["aria-label"];
|
|
12825
|
-
},
|
|
12826
|
-
get ["aria-describedby"] () {
|
|
12827
|
-
return local["aria-describedby"];
|
|
12828
|
-
},
|
|
12829
|
-
get ["aria-invalid"] () {
|
|
12830
|
-
return local["aria-invalid"];
|
|
12831
|
-
},
|
|
12832
|
-
get ["aria-required"] () {
|
|
12833
|
-
return local["aria-required"];
|
|
12834
|
-
},
|
|
12835
|
-
get ["aria-labelledby"] () {
|
|
12836
|
-
return local["aria-labelledby"];
|
|
12837
|
-
},
|
|
12838
|
-
get ["aria-checked"] () {
|
|
12839
|
-
return local["aria-checked"];
|
|
12840
|
-
}
|
|
12841
|
-
}), false, false);
|
|
12842
|
-
return _el$;
|
|
12843
|
-
})();
|
|
12844
|
-
};
|
|
12845
|
-
const toggle_Toggle = Toggle;
|
|
12846
|
-
var WindowMockup_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>"), WindowMockup_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div aria-label="Window mockup">');
|
|
12847
|
-
const WindowMockup = (props)=>{
|
|
12848
|
-
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
12849
|
-
"children",
|
|
12850
|
-
"class",
|
|
12851
|
-
"className",
|
|
12852
|
-
"dataTheme",
|
|
12853
|
-
"border",
|
|
12854
|
-
"borderColor",
|
|
12855
|
-
"backgroundColor",
|
|
12856
|
-
"frameColor"
|
|
12857
|
-
]);
|
|
12858
|
-
const resolvedChildren = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.children)(()=>local.children);
|
|
12859
|
-
const borderColorValue = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>local.borderColor || local.frameColor || "neutral");
|
|
12860
|
-
const classes = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>twMerge("mockup-window", local.class, local.className, local.border && `border border-${borderColorValue()}`, dist_clsx({
|
|
12861
|
-
"border-neutral": "neutral" === borderColorValue(),
|
|
12862
|
-
"border-primary": "primary" === borderColorValue(),
|
|
12863
|
-
"border-secondary": "secondary" === borderColorValue(),
|
|
12864
|
-
"border-accent": "accent" === borderColorValue(),
|
|
12865
|
-
"border-info": "info" === borderColorValue(),
|
|
12866
|
-
"border-success": "success" === borderColorValue(),
|
|
12867
|
-
"border-warning": "warning" === borderColorValue(),
|
|
12868
|
-
"border-error": "error" === borderColorValue(),
|
|
12869
|
-
"bg-neutral": "neutral" === local.frameColor,
|
|
12870
|
-
"bg-primary": "primary" === local.frameColor,
|
|
12871
|
-
"bg-secondary": "secondary" === local.frameColor,
|
|
12872
|
-
"bg-accent": "accent" === local.frameColor,
|
|
12873
|
-
"bg-info": "info" === local.frameColor,
|
|
12874
|
-
"bg-success": "success" === local.frameColor,
|
|
12875
|
-
"bg-warning": "warning" === local.frameColor,
|
|
12876
|
-
"bg-error": "error" === local.frameColor
|
|
12877
|
-
})));
|
|
12878
|
-
const innerClasses = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>twMerge("p-4", local.backgroundColor && `bg-${local.backgroundColor}`, local.border && `border-t border-${borderColorValue()}`, dist_clsx({
|
|
12879
|
-
"bg-neutral": "neutral" === local.backgroundColor,
|
|
12880
|
-
"bg-primary": "primary" === local.backgroundColor,
|
|
12881
|
-
"bg-secondary": "secondary" === local.backgroundColor,
|
|
12882
|
-
"bg-accent": "accent" === local.backgroundColor,
|
|
12883
|
-
"bg-info": "info" === local.backgroundColor,
|
|
12884
|
-
"bg-success": "success" === local.backgroundColor,
|
|
12885
|
-
"bg-warning": "warning" === local.backgroundColor,
|
|
12886
|
-
"bg-error": "error" === local.backgroundColor
|
|
12887
|
-
})));
|
|
12888
|
-
const innerElement = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
12889
|
-
const childrenArray = Array.isArray(resolvedChildren()) ? resolvedChildren() : [
|
|
12890
|
-
resolvedChildren()
|
|
12891
|
-
];
|
|
12892
|
-
const firstChild = childrenArray[0];
|
|
12893
|
-
if (1 === childrenArray.length && "object" == typeof firstChild && null != firstChild && "type" in firstChild) {
|
|
12894
|
-
const existingClass = firstChild.props?.class || firstChild.props?.className || "";
|
|
12895
|
-
const mergedClass = twMerge(innerClasses(), existingClass);
|
|
12896
|
-
return {
|
|
12897
|
-
...firstChild,
|
|
12898
|
-
props: {
|
|
12899
|
-
...firstChild.props,
|
|
12900
|
-
class: mergedClass
|
|
12901
|
-
}
|
|
12902
|
-
};
|
|
12903
|
-
}
|
|
12904
|
-
return (()=>{
|
|
12905
|
-
var _el$ = WindowMockup_tmpl$();
|
|
12906
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, resolvedChildren);
|
|
12907
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)(()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$, innerClasses()));
|
|
12908
|
-
return _el$;
|
|
12909
|
-
})();
|
|
12910
|
-
});
|
|
12911
|
-
return (()=>{
|
|
12912
|
-
var _el$2 = WindowMockup_tmpl$2();
|
|
12913
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
12914
|
-
get ["data-theme"] () {
|
|
12915
|
-
return local.dataTheme;
|
|
12916
|
-
},
|
|
12917
|
-
get ["class"] () {
|
|
12918
|
-
return classes();
|
|
12919
|
-
}
|
|
12920
|
-
}), false, true);
|
|
12921
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, innerElement);
|
|
12922
|
-
return _el$2;
|
|
12923
|
-
})();
|
|
12924
|
-
};
|
|
12925
|
-
const windowmockup_WindowMockup = WindowMockup;
|
|
12926
|
-
const easeOutCubic = (t)=>1 - Math.pow(1 - t, 3);
|
|
12927
|
-
const easeInCubic = (t)=>t * t * t;
|
|
12928
|
-
const easeInOutCubic = (t)=>t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
|
|
12929
|
-
const resolveEase = (easing)=>{
|
|
12930
|
-
if ("function" == typeof easing) return easing;
|
|
12931
|
-
switch(easing){
|
|
12932
|
-
case "ease-in":
|
|
12933
|
-
return easeInCubic;
|
|
12934
|
-
case "ease-in-out":
|
|
12935
|
-
return easeInOutCubic;
|
|
12936
|
-
case "linear":
|
|
12937
|
-
return (t)=>t;
|
|
12938
|
-
case "ease-out":
|
|
12939
|
-
default:
|
|
12940
|
-
return easeOutCubic;
|
|
12941
|
-
}
|
|
12942
|
-
};
|
|
12943
|
-
const immediateDriver = ({ to, onUpdate, onComplete })=>{
|
|
12944
|
-
onUpdate(to);
|
|
12945
|
-
onComplete?.();
|
|
12946
|
-
return {
|
|
12947
|
-
stop: ()=>{}
|
|
12948
|
-
};
|
|
12949
|
-
};
|
|
12950
|
-
let activeDriver = immediateDriver;
|
|
12951
|
-
const setMotionDriver = (driver)=>{
|
|
12952
|
-
activeDriver = driver;
|
|
12953
|
-
};
|
|
12954
|
-
const getMotionDriver = ()=>activeDriver;
|
|
12955
|
-
const resolveDuration = (transition)=>Math.max(0, (transition?.duration ?? 0) * 1000);
|
|
12956
|
-
const resolveDelay = (transition)=>Math.max(0, (transition?.delay ?? 0) * 1000);
|
|
12957
|
-
const readOpacity = (el)=>{
|
|
12958
|
-
const value = Number.parseFloat(getComputedStyle(el).opacity);
|
|
12959
|
-
return Number.isFinite(value) ? value : 1;
|
|
12960
|
-
};
|
|
12961
|
-
const runMotion = (el, from, to, transition, onComplete)=>{
|
|
12962
|
-
const duration = resolveDuration(transition);
|
|
12963
|
-
const delay = resolveDelay(transition);
|
|
12964
|
-
const ease = resolveEase(transition?.easing);
|
|
12965
|
-
const driver = getMotionDriver();
|
|
12966
|
-
const controls = [];
|
|
12967
|
-
const shouldTransform = void 0 !== from.x || void 0 !== from.y || void 0 !== from.scale || void 0 !== to.x || void 0 !== to.y || void 0 !== to.scale;
|
|
12968
|
-
const transformState = {
|
|
12969
|
-
x: from.x ?? 0,
|
|
12970
|
-
y: from.y ?? 0,
|
|
12971
|
-
scale: from.scale ?? 1
|
|
12972
|
-
};
|
|
12973
|
-
const applyTransform = ()=>{
|
|
12974
|
-
if (!shouldTransform) return;
|
|
12975
|
-
el.style.transform = `translate3d(${transformState.x}px, ${transformState.y}px, 0) scale(${transformState.scale})`;
|
|
12976
|
-
};
|
|
12977
|
-
if (void 0 !== from.opacity) el.style.opacity = String(from.opacity);
|
|
12978
|
-
applyTransform();
|
|
12979
|
-
const animationTargets = Object.keys(to);
|
|
12980
|
-
if (0 === animationTargets.length) {
|
|
12981
|
-
onComplete?.();
|
|
12982
|
-
return {
|
|
12983
|
-
stop: ()=>{}
|
|
12984
|
-
};
|
|
12985
|
-
}
|
|
12986
|
-
let remaining = animationTargets.length;
|
|
12987
|
-
const handleComplete = ()=>{
|
|
12988
|
-
remaining -= 1;
|
|
12989
|
-
if (remaining <= 0) onComplete?.();
|
|
12990
|
-
};
|
|
12991
|
-
const start = ()=>{
|
|
12992
|
-
animationTargets.forEach((key)=>{
|
|
12993
|
-
if ("opacity" === key) {
|
|
12994
|
-
const fromValue = from.opacity ?? (void 0 !== to.opacity ? readOpacity(el) : 1);
|
|
12995
|
-
const control = driver({
|
|
12996
|
-
from: fromValue,
|
|
12997
|
-
to: to.opacity ?? fromValue,
|
|
12998
|
-
duration,
|
|
12999
|
-
ease,
|
|
13000
|
-
onUpdate: (latest)=>{
|
|
13001
|
-
el.style.opacity = String(latest);
|
|
13002
|
-
},
|
|
13003
|
-
onComplete: handleComplete
|
|
13004
|
-
});
|
|
13005
|
-
controls.push(control);
|
|
13006
|
-
return;
|
|
13007
|
-
}
|
|
13008
|
-
const fromValue = "scale" === key ? from.scale ?? 1 : "x" === key ? from.x ?? 0 : from.y ?? 0;
|
|
13009
|
-
const toValue = to[key] ?? fromValue;
|
|
13010
|
-
const control = driver({
|
|
13011
|
-
from: fromValue,
|
|
13012
|
-
to: toValue,
|
|
13013
|
-
duration,
|
|
13014
|
-
ease,
|
|
13015
|
-
onUpdate: (latest)=>{
|
|
13016
|
-
if (!shouldTransform) return;
|
|
13017
|
-
if ("x" === key) transformState.x = latest;
|
|
13018
|
-
if ("y" === key) transformState.y = latest;
|
|
13019
|
-
if ("scale" === key) transformState.scale = latest;
|
|
13020
|
-
applyTransform();
|
|
13021
|
-
},
|
|
13022
|
-
onComplete: handleComplete
|
|
13023
|
-
});
|
|
13024
|
-
controls.push(control);
|
|
13025
|
-
});
|
|
13026
|
-
};
|
|
13027
|
-
let timeoutId = null;
|
|
13028
|
-
if (delay > 0) timeoutId = window.setTimeout(start, delay);
|
|
13029
|
-
else start();
|
|
13030
|
-
return {
|
|
13031
|
-
stop: ()=>{
|
|
13032
|
-
if (null !== timeoutId) clearTimeout(timeoutId);
|
|
13033
|
-
controls.forEach((control)=>control.stop());
|
|
13034
|
-
}
|
|
13035
|
-
};
|
|
13036
|
-
};
|
|
13037
12710
|
const prefersReducedMotion = ()=>globalThis.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches ?? false;
|
|
13038
12711
|
const motionDurations = {
|
|
13039
12712
|
route: 0.18,
|
|
@@ -13201,6 +12874,24 @@ const createMotionPresets = (tokens)=>{
|
|
|
13201
12874
|
delay: 0.08
|
|
13202
12875
|
}
|
|
13203
12876
|
},
|
|
12877
|
+
toast: {
|
|
12878
|
+
initial: {
|
|
12879
|
+
opacity: 0,
|
|
12880
|
+
y: distances.sm
|
|
12881
|
+
},
|
|
12882
|
+
animate: {
|
|
12883
|
+
opacity: 1,
|
|
12884
|
+
y: 0
|
|
12885
|
+
},
|
|
12886
|
+
exit: {
|
|
12887
|
+
opacity: 0,
|
|
12888
|
+
y: -distances.sm
|
|
12889
|
+
},
|
|
12890
|
+
transition: {
|
|
12891
|
+
duration: durations.fast,
|
|
12892
|
+
easing: easings.out
|
|
12893
|
+
}
|
|
12894
|
+
},
|
|
13204
12895
|
routeDashboard: {
|
|
13205
12896
|
initial: {
|
|
13206
12897
|
opacity: 0,
|
|
@@ -13258,6 +12949,117 @@ const presets_resolvePreset = (name, options)=>{
|
|
|
13258
12949
|
if (reduce) return noMotion;
|
|
13259
12950
|
return motionPresets[name] ?? noMotion;
|
|
13260
12951
|
};
|
|
12952
|
+
const immediateDriver = ({ to, onUpdate, onComplete })=>{
|
|
12953
|
+
onUpdate(to);
|
|
12954
|
+
onComplete?.();
|
|
12955
|
+
return {
|
|
12956
|
+
stop: ()=>{}
|
|
12957
|
+
};
|
|
12958
|
+
};
|
|
12959
|
+
let activeDriver = immediateDriver;
|
|
12960
|
+
const setMotionDriver = (driver)=>{
|
|
12961
|
+
activeDriver = driver;
|
|
12962
|
+
};
|
|
12963
|
+
const getMotionDriver = ()=>activeDriver;
|
|
12964
|
+
const easeOutCubic = (t)=>1 - Math.pow(1 - t, 3);
|
|
12965
|
+
const easeInCubic = (t)=>t * t * t;
|
|
12966
|
+
const easeInOutCubic = (t)=>t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
|
|
12967
|
+
const resolveEase = (easing)=>{
|
|
12968
|
+
if ("function" == typeof easing) return easing;
|
|
12969
|
+
switch(easing){
|
|
12970
|
+
case "ease-in":
|
|
12971
|
+
return easeInCubic;
|
|
12972
|
+
case "ease-in-out":
|
|
12973
|
+
return easeInOutCubic;
|
|
12974
|
+
case "linear":
|
|
12975
|
+
return (t)=>t;
|
|
12976
|
+
case "ease-out":
|
|
12977
|
+
default:
|
|
12978
|
+
return easeOutCubic;
|
|
12979
|
+
}
|
|
12980
|
+
};
|
|
12981
|
+
const resolveDuration = (transition)=>Math.max(0, (transition?.duration ?? 0) * 1000);
|
|
12982
|
+
const resolveDelay = (transition)=>Math.max(0, (transition?.delay ?? 0) * 1000);
|
|
12983
|
+
const readOpacity = (el)=>{
|
|
12984
|
+
const value = Number.parseFloat(getComputedStyle(el).opacity);
|
|
12985
|
+
return Number.isFinite(value) ? value : 1;
|
|
12986
|
+
};
|
|
12987
|
+
const runMotion = (el, from, to, transition, onComplete)=>{
|
|
12988
|
+
const duration = resolveDuration(transition);
|
|
12989
|
+
const delay = resolveDelay(transition);
|
|
12990
|
+
const ease = resolveEase(transition?.easing);
|
|
12991
|
+
const driver = getMotionDriver();
|
|
12992
|
+
const controls = [];
|
|
12993
|
+
const shouldTransform = void 0 !== from.x || void 0 !== from.y || void 0 !== from.scale || void 0 !== to.x || void 0 !== to.y || void 0 !== to.scale;
|
|
12994
|
+
const transformState = {
|
|
12995
|
+
x: from.x ?? 0,
|
|
12996
|
+
y: from.y ?? 0,
|
|
12997
|
+
scale: from.scale ?? 1
|
|
12998
|
+
};
|
|
12999
|
+
const applyTransform = ()=>{
|
|
13000
|
+
if (!shouldTransform) return;
|
|
13001
|
+
el.style.transform = `translate3d(${transformState.x}px, ${transformState.y}px, 0) scale(${transformState.scale})`;
|
|
13002
|
+
};
|
|
13003
|
+
if (void 0 !== from.opacity) el.style.opacity = String(from.opacity);
|
|
13004
|
+
applyTransform();
|
|
13005
|
+
const animationTargets = Object.keys(to);
|
|
13006
|
+
if (0 === animationTargets.length) {
|
|
13007
|
+
onComplete?.();
|
|
13008
|
+
return {
|
|
13009
|
+
stop: ()=>{}
|
|
13010
|
+
};
|
|
13011
|
+
}
|
|
13012
|
+
let remaining = animationTargets.length;
|
|
13013
|
+
const handleComplete = ()=>{
|
|
13014
|
+
remaining -= 1;
|
|
13015
|
+
if (remaining <= 0) onComplete?.();
|
|
13016
|
+
};
|
|
13017
|
+
const start = ()=>{
|
|
13018
|
+
animationTargets.forEach((key)=>{
|
|
13019
|
+
if ("opacity" === key) {
|
|
13020
|
+
const fromValue = from.opacity ?? (void 0 !== to.opacity ? readOpacity(el) : 1);
|
|
13021
|
+
const control = driver({
|
|
13022
|
+
from: fromValue,
|
|
13023
|
+
to: to.opacity ?? fromValue,
|
|
13024
|
+
duration,
|
|
13025
|
+
ease,
|
|
13026
|
+
onUpdate: (latest)=>{
|
|
13027
|
+
el.style.opacity = String(latest);
|
|
13028
|
+
},
|
|
13029
|
+
onComplete: handleComplete
|
|
13030
|
+
});
|
|
13031
|
+
controls.push(control);
|
|
13032
|
+
return;
|
|
13033
|
+
}
|
|
13034
|
+
const fromValue = "scale" === key ? from.scale ?? 1 : "x" === key ? from.x ?? 0 : from.y ?? 0;
|
|
13035
|
+
const toValue = to[key] ?? fromValue;
|
|
13036
|
+
const control = driver({
|
|
13037
|
+
from: fromValue,
|
|
13038
|
+
to: toValue,
|
|
13039
|
+
duration,
|
|
13040
|
+
ease,
|
|
13041
|
+
onUpdate: (latest)=>{
|
|
13042
|
+
if (!shouldTransform) return;
|
|
13043
|
+
if ("x" === key) transformState.x = latest;
|
|
13044
|
+
if ("y" === key) transformState.y = latest;
|
|
13045
|
+
if ("scale" === key) transformState.scale = latest;
|
|
13046
|
+
applyTransform();
|
|
13047
|
+
},
|
|
13048
|
+
onComplete: handleComplete
|
|
13049
|
+
});
|
|
13050
|
+
controls.push(control);
|
|
13051
|
+
});
|
|
13052
|
+
};
|
|
13053
|
+
let timeoutId = null;
|
|
13054
|
+
if (delay > 0) timeoutId = window.setTimeout(start, delay);
|
|
13055
|
+
else start();
|
|
13056
|
+
return {
|
|
13057
|
+
stop: ()=>{
|
|
13058
|
+
if (null !== timeoutId) clearTimeout(timeoutId);
|
|
13059
|
+
controls.forEach((control)=>control.stop());
|
|
13060
|
+
}
|
|
13061
|
+
};
|
|
13062
|
+
};
|
|
13261
13063
|
var MotionDiv_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>");
|
|
13262
13064
|
const MotionDiv_MotionDiv = (props)=>{
|
|
13263
13065
|
const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
@@ -13330,6 +13132,370 @@ const MotionDiv_MotionDiv = (props)=>{
|
|
|
13330
13132
|
})();
|
|
13331
13133
|
};
|
|
13332
13134
|
const MotionDiv = MotionDiv_MotionDiv;
|
|
13135
|
+
const [toasts, setToasts] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)([]);
|
|
13136
|
+
let toastCounter = 0;
|
|
13137
|
+
const toastTimers = new Map();
|
|
13138
|
+
const clearToastTimer = (id)=>{
|
|
13139
|
+
const timer = toastTimers.get(id);
|
|
13140
|
+
if (!timer) return;
|
|
13141
|
+
clearTimeout(timer);
|
|
13142
|
+
toastTimers.delete(id);
|
|
13143
|
+
};
|
|
13144
|
+
const scheduleDismiss = (id, duration)=>{
|
|
13145
|
+
if (duration <= 0) return;
|
|
13146
|
+
clearToastTimer(id);
|
|
13147
|
+
const timer = setTimeout(()=>{
|
|
13148
|
+
toastStore.dismissToast(id);
|
|
13149
|
+
}, duration);
|
|
13150
|
+
toastTimers.set(id, timer);
|
|
13151
|
+
};
|
|
13152
|
+
const toastStore = {
|
|
13153
|
+
toasts,
|
|
13154
|
+
addToast: (message, type = "info", duration = 8000)=>{
|
|
13155
|
+
const id = `toast-${++toastCounter}`;
|
|
13156
|
+
const toast = {
|
|
13157
|
+
id,
|
|
13158
|
+
message,
|
|
13159
|
+
type,
|
|
13160
|
+
timestamp: Date.now(),
|
|
13161
|
+
duration
|
|
13162
|
+
};
|
|
13163
|
+
setToasts((prev)=>[
|
|
13164
|
+
...prev,
|
|
13165
|
+
toast
|
|
13166
|
+
]);
|
|
13167
|
+
scheduleDismiss(id, duration);
|
|
13168
|
+
return id;
|
|
13169
|
+
},
|
|
13170
|
+
dismissToast: (id)=>{
|
|
13171
|
+
clearToastTimer(id);
|
|
13172
|
+
setToasts((prev)=>prev.map((toast)=>toast.id !== id || toast.isExiting ? toast : {
|
|
13173
|
+
...toast,
|
|
13174
|
+
isExiting: true
|
|
13175
|
+
}));
|
|
13176
|
+
},
|
|
13177
|
+
removeToast: (id)=>{
|
|
13178
|
+
clearToastTimer(id);
|
|
13179
|
+
setToasts((prev)=>prev.filter((toast)=>toast.id !== id));
|
|
13180
|
+
},
|
|
13181
|
+
clearAll: ()=>{
|
|
13182
|
+
toastTimers.forEach((timer)=>clearTimeout(timer));
|
|
13183
|
+
toastTimers.clear();
|
|
13184
|
+
setToasts([]);
|
|
13185
|
+
},
|
|
13186
|
+
showError: (message)=>toastStore.addToast(message, "error", 10000),
|
|
13187
|
+
showSuccess: (message)=>toastStore.addToast(message, "success", 6000),
|
|
13188
|
+
showWarning: (message)=>toastStore.addToast(message, "warning", 8000),
|
|
13189
|
+
showInfo: (message)=>toastStore.addToast(message, "info", 6000)
|
|
13190
|
+
};
|
|
13191
|
+
var ToastStack_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span class=flex-1>"), ToastStack_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>");
|
|
13192
|
+
const defaultRenderToast = (toast, dismiss)=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(alert_Alert, {
|
|
13193
|
+
get status () {
|
|
13194
|
+
return toast.type;
|
|
13195
|
+
},
|
|
13196
|
+
class: "flex justify-between items-center gap-4",
|
|
13197
|
+
style: {
|
|
13198
|
+
"min-width": "20rem",
|
|
13199
|
+
"max-width": "32rem"
|
|
13200
|
+
},
|
|
13201
|
+
get children () {
|
|
13202
|
+
return [
|
|
13203
|
+
(()=>{
|
|
13204
|
+
var _el$ = ToastStack_tmpl$();
|
|
13205
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, ()=>toast.message);
|
|
13206
|
+
return _el$;
|
|
13207
|
+
})(),
|
|
13208
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(button_Button, {
|
|
13209
|
+
size: "sm",
|
|
13210
|
+
color: "ghost",
|
|
13211
|
+
onClick: (event)=>{
|
|
13212
|
+
event.stopPropagation();
|
|
13213
|
+
dismiss();
|
|
13214
|
+
},
|
|
13215
|
+
class: "ml-2 opacity-70 hover:opacity-100",
|
|
13216
|
+
"aria-label": "Dismiss notification",
|
|
13217
|
+
children: "x"
|
|
13218
|
+
})
|
|
13219
|
+
];
|
|
13220
|
+
}
|
|
13221
|
+
});
|
|
13222
|
+
const ToastStack_ToastStack = (props)=>{
|
|
13223
|
+
const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
13224
|
+
"motionPreset",
|
|
13225
|
+
"motionPresetName",
|
|
13226
|
+
"reduceMotion",
|
|
13227
|
+
"renderToast",
|
|
13228
|
+
"max",
|
|
13229
|
+
"expandOnClick",
|
|
13230
|
+
"collapsedCount",
|
|
13231
|
+
"collapsedOffset",
|
|
13232
|
+
"collapsedScale"
|
|
13233
|
+
]);
|
|
13234
|
+
const [expanded, setExpanded] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
|
|
13235
|
+
const resolvedPreset = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
13236
|
+
if (local.motionPreset) return local.motionPreset;
|
|
13237
|
+
const name = local.motionPresetName ?? "toast";
|
|
13238
|
+
return presets_resolvePreset(name, {
|
|
13239
|
+
reduceMotion: local.reduceMotion
|
|
13240
|
+
});
|
|
13241
|
+
});
|
|
13242
|
+
const visibleToasts = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
13243
|
+
const list = toastStore.toasts();
|
|
13244
|
+
if (local.max && local.max > 0) return list.slice(-local.max);
|
|
13245
|
+
return list;
|
|
13246
|
+
});
|
|
13247
|
+
const allowCollapse = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
13248
|
+
if (false === local.expandOnClick) return false;
|
|
13249
|
+
return visibleToasts().length > 1;
|
|
13250
|
+
});
|
|
13251
|
+
const isExpanded = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
13252
|
+
if (!allowCollapse()) return true;
|
|
13253
|
+
return expanded();
|
|
13254
|
+
});
|
|
13255
|
+
const collapsedCount = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>local.collapsedCount ?? 3);
|
|
13256
|
+
const collapsedOffset = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>local.collapsedOffset ?? 10);
|
|
13257
|
+
const collapsedScale = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>local.collapsedScale ?? 0.02);
|
|
13258
|
+
const stackToasts = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
13259
|
+
const list = visibleToasts();
|
|
13260
|
+
if (isExpanded()) return list;
|
|
13261
|
+
const count = collapsedCount();
|
|
13262
|
+
if (count <= 0) return list;
|
|
13263
|
+
return list.slice(-count);
|
|
13264
|
+
});
|
|
13265
|
+
const renderToast = ()=>local.renderToast ?? defaultRenderToast;
|
|
13266
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(toast_Toast, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(rest, {
|
|
13267
|
+
get children () {
|
|
13268
|
+
var _el$2 = ToastStack_tmpl$2();
|
|
13269
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.For, {
|
|
13270
|
+
get each () {
|
|
13271
|
+
return stackToasts();
|
|
13272
|
+
},
|
|
13273
|
+
children: (toast, index)=>{
|
|
13274
|
+
const isTop = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>index() === stackToasts().length - 1);
|
|
13275
|
+
const stackIndex = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>stackToasts().length - 1 - index());
|
|
13276
|
+
const onToggle = ()=>{
|
|
13277
|
+
if (!allowCollapse() || !isTop()) return;
|
|
13278
|
+
setExpanded((prev)=>!prev);
|
|
13279
|
+
};
|
|
13280
|
+
const stackStyle = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
13281
|
+
if (isExpanded()) return {};
|
|
13282
|
+
const offset = stackIndex() * collapsedOffset();
|
|
13283
|
+
const scale = 1 - stackIndex() * collapsedScale();
|
|
13284
|
+
return {
|
|
13285
|
+
position: "absolute",
|
|
13286
|
+
right: "0",
|
|
13287
|
+
bottom: `${offset}px`,
|
|
13288
|
+
transform: `scale(${scale})`,
|
|
13289
|
+
"transform-origin": "right bottom",
|
|
13290
|
+
"z-index": String(100 + index()),
|
|
13291
|
+
transition: "transform 160ms ease-out"
|
|
13292
|
+
};
|
|
13293
|
+
});
|
|
13294
|
+
return (()=>{
|
|
13295
|
+
var _el$3 = ToastStack_tmpl$2();
|
|
13296
|
+
_el$3.$$click = onToggle;
|
|
13297
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$3, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(MotionDiv, {
|
|
13298
|
+
get initial () {
|
|
13299
|
+
return resolvedPreset().initial;
|
|
13300
|
+
},
|
|
13301
|
+
get animate () {
|
|
13302
|
+
return resolvedPreset().animate;
|
|
13303
|
+
},
|
|
13304
|
+
get exit () {
|
|
13305
|
+
return resolvedPreset().exit;
|
|
13306
|
+
},
|
|
13307
|
+
get transition () {
|
|
13308
|
+
return resolvedPreset().transition;
|
|
13309
|
+
},
|
|
13310
|
+
get isExiting () {
|
|
13311
|
+
return toast.isExiting;
|
|
13312
|
+
},
|
|
13313
|
+
onExitComplete: ()=>toastStore.removeToast(toast.id),
|
|
13314
|
+
get children () {
|
|
13315
|
+
return renderToast()(toast, ()=>toastStore.dismissToast(toast.id));
|
|
13316
|
+
}
|
|
13317
|
+
}));
|
|
13318
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)((_p$)=>{
|
|
13319
|
+
var _v$3 = isTop() && !isExpanded() ? "cursor-pointer" : void 0, _v$4 = stackStyle();
|
|
13320
|
+
_v$3 !== _p$.e && (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$3, _p$.e = _v$3);
|
|
13321
|
+
_p$.t = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.style)(_el$3, _v$4, _p$.t);
|
|
13322
|
+
return _p$;
|
|
13323
|
+
}, {
|
|
13324
|
+
e: void 0,
|
|
13325
|
+
t: void 0
|
|
13326
|
+
});
|
|
13327
|
+
return _el$3;
|
|
13328
|
+
})();
|
|
13329
|
+
}
|
|
13330
|
+
}));
|
|
13331
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)((_p$)=>{
|
|
13332
|
+
var _v$ = isExpanded() ? "flex flex-col gap-2" : "relative", _v$2 = isExpanded() ? void 0 : {
|
|
13333
|
+
"min-height": "3rem"
|
|
13334
|
+
};
|
|
13335
|
+
_v$ !== _p$.e && (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$2, _p$.e = _v$);
|
|
13336
|
+
_p$.t = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.style)(_el$2, _v$2, _p$.t);
|
|
13337
|
+
return _p$;
|
|
13338
|
+
}, {
|
|
13339
|
+
e: void 0,
|
|
13340
|
+
t: void 0
|
|
13341
|
+
});
|
|
13342
|
+
return _el$2;
|
|
13343
|
+
}
|
|
13344
|
+
}));
|
|
13345
|
+
};
|
|
13346
|
+
const ToastStack = ToastStack_ToastStack;
|
|
13347
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.delegateEvents)([
|
|
13348
|
+
"click"
|
|
13349
|
+
]);
|
|
13350
|
+
const ToastContainer = ()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(ToastStack, {});
|
|
13351
|
+
var Toggle_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<input>");
|
|
13352
|
+
const Toggle = (props)=>{
|
|
13353
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
13354
|
+
"color",
|
|
13355
|
+
"size",
|
|
13356
|
+
"dataTheme",
|
|
13357
|
+
"class",
|
|
13358
|
+
"className",
|
|
13359
|
+
"style",
|
|
13360
|
+
"aria-label",
|
|
13361
|
+
"aria-describedby",
|
|
13362
|
+
"aria-invalid",
|
|
13363
|
+
"aria-required",
|
|
13364
|
+
"aria-labelledby",
|
|
13365
|
+
"aria-checked"
|
|
13366
|
+
]);
|
|
13367
|
+
const classes = ()=>twMerge("toggle", local.class, local.className, clsx({
|
|
13368
|
+
"toggle-xl": "xl" === local.size,
|
|
13369
|
+
"toggle-lg": "lg" === local.size,
|
|
13370
|
+
"toggle-md": "md" === local.size,
|
|
13371
|
+
"toggle-sm": "sm" === local.size,
|
|
13372
|
+
"toggle-xs": "xs" === local.size,
|
|
13373
|
+
"toggle-neutral": "neutral" === local.color,
|
|
13374
|
+
"toggle-primary": "primary" === local.color,
|
|
13375
|
+
"toggle-secondary": "secondary" === local.color,
|
|
13376
|
+
"toggle-accent": "accent" === local.color,
|
|
13377
|
+
"toggle-info": "info" === local.color,
|
|
13378
|
+
"toggle-success": "success" === local.color,
|
|
13379
|
+
"toggle-warning": "warning" === local.color,
|
|
13380
|
+
"toggle-error": "error" === local.color
|
|
13381
|
+
}));
|
|
13382
|
+
return (()=>{
|
|
13383
|
+
var _el$ = Toggle_tmpl$();
|
|
13384
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
13385
|
+
type: "checkbox",
|
|
13386
|
+
role: "switch",
|
|
13387
|
+
get ["data-theme"] () {
|
|
13388
|
+
return local.dataTheme;
|
|
13389
|
+
},
|
|
13390
|
+
get ["class"] () {
|
|
13391
|
+
return classes();
|
|
13392
|
+
},
|
|
13393
|
+
get style () {
|
|
13394
|
+
return local.style;
|
|
13395
|
+
},
|
|
13396
|
+
get ["aria-label"] () {
|
|
13397
|
+
return local["aria-label"];
|
|
13398
|
+
},
|
|
13399
|
+
get ["aria-describedby"] () {
|
|
13400
|
+
return local["aria-describedby"];
|
|
13401
|
+
},
|
|
13402
|
+
get ["aria-invalid"] () {
|
|
13403
|
+
return local["aria-invalid"];
|
|
13404
|
+
},
|
|
13405
|
+
get ["aria-required"] () {
|
|
13406
|
+
return local["aria-required"];
|
|
13407
|
+
},
|
|
13408
|
+
get ["aria-labelledby"] () {
|
|
13409
|
+
return local["aria-labelledby"];
|
|
13410
|
+
},
|
|
13411
|
+
get ["aria-checked"] () {
|
|
13412
|
+
return local["aria-checked"];
|
|
13413
|
+
}
|
|
13414
|
+
}), false, false);
|
|
13415
|
+
return _el$;
|
|
13416
|
+
})();
|
|
13417
|
+
};
|
|
13418
|
+
const toggle_Toggle = Toggle;
|
|
13419
|
+
var WindowMockup_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>"), WindowMockup_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div aria-label="Window mockup">');
|
|
13420
|
+
const WindowMockup = (props)=>{
|
|
13421
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
13422
|
+
"children",
|
|
13423
|
+
"class",
|
|
13424
|
+
"className",
|
|
13425
|
+
"dataTheme",
|
|
13426
|
+
"border",
|
|
13427
|
+
"borderColor",
|
|
13428
|
+
"backgroundColor",
|
|
13429
|
+
"frameColor"
|
|
13430
|
+
]);
|
|
13431
|
+
const resolvedChildren = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.children)(()=>local.children);
|
|
13432
|
+
const borderColorValue = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>local.borderColor || local.frameColor || "neutral");
|
|
13433
|
+
const classes = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>twMerge("mockup-window", local.class, local.className, local.border && `border border-${borderColorValue()}`, dist_clsx({
|
|
13434
|
+
"border-neutral": "neutral" === borderColorValue(),
|
|
13435
|
+
"border-primary": "primary" === borderColorValue(),
|
|
13436
|
+
"border-secondary": "secondary" === borderColorValue(),
|
|
13437
|
+
"border-accent": "accent" === borderColorValue(),
|
|
13438
|
+
"border-info": "info" === borderColorValue(),
|
|
13439
|
+
"border-success": "success" === borderColorValue(),
|
|
13440
|
+
"border-warning": "warning" === borderColorValue(),
|
|
13441
|
+
"border-error": "error" === borderColorValue(),
|
|
13442
|
+
"bg-neutral": "neutral" === local.frameColor,
|
|
13443
|
+
"bg-primary": "primary" === local.frameColor,
|
|
13444
|
+
"bg-secondary": "secondary" === local.frameColor,
|
|
13445
|
+
"bg-accent": "accent" === local.frameColor,
|
|
13446
|
+
"bg-info": "info" === local.frameColor,
|
|
13447
|
+
"bg-success": "success" === local.frameColor,
|
|
13448
|
+
"bg-warning": "warning" === local.frameColor,
|
|
13449
|
+
"bg-error": "error" === local.frameColor
|
|
13450
|
+
})));
|
|
13451
|
+
const innerClasses = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>twMerge("p-4", local.backgroundColor && `bg-${local.backgroundColor}`, local.border && `border-t border-${borderColorValue()}`, dist_clsx({
|
|
13452
|
+
"bg-neutral": "neutral" === local.backgroundColor,
|
|
13453
|
+
"bg-primary": "primary" === local.backgroundColor,
|
|
13454
|
+
"bg-secondary": "secondary" === local.backgroundColor,
|
|
13455
|
+
"bg-accent": "accent" === local.backgroundColor,
|
|
13456
|
+
"bg-info": "info" === local.backgroundColor,
|
|
13457
|
+
"bg-success": "success" === local.backgroundColor,
|
|
13458
|
+
"bg-warning": "warning" === local.backgroundColor,
|
|
13459
|
+
"bg-error": "error" === local.backgroundColor
|
|
13460
|
+
})));
|
|
13461
|
+
const innerElement = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
13462
|
+
const childrenArray = Array.isArray(resolvedChildren()) ? resolvedChildren() : [
|
|
13463
|
+
resolvedChildren()
|
|
13464
|
+
];
|
|
13465
|
+
const firstChild = childrenArray[0];
|
|
13466
|
+
if (1 === childrenArray.length && "object" == typeof firstChild && null != firstChild && "type" in firstChild) {
|
|
13467
|
+
const existingClass = firstChild.props?.class || firstChild.props?.className || "";
|
|
13468
|
+
const mergedClass = twMerge(innerClasses(), existingClass);
|
|
13469
|
+
return {
|
|
13470
|
+
...firstChild,
|
|
13471
|
+
props: {
|
|
13472
|
+
...firstChild.props,
|
|
13473
|
+
class: mergedClass
|
|
13474
|
+
}
|
|
13475
|
+
};
|
|
13476
|
+
}
|
|
13477
|
+
return (()=>{
|
|
13478
|
+
var _el$ = WindowMockup_tmpl$();
|
|
13479
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, resolvedChildren);
|
|
13480
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)(()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$, innerClasses()));
|
|
13481
|
+
return _el$;
|
|
13482
|
+
})();
|
|
13483
|
+
});
|
|
13484
|
+
return (()=>{
|
|
13485
|
+
var _el$2 = WindowMockup_tmpl$2();
|
|
13486
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
13487
|
+
get ["data-theme"] () {
|
|
13488
|
+
return local.dataTheme;
|
|
13489
|
+
},
|
|
13490
|
+
get ["class"] () {
|
|
13491
|
+
return classes();
|
|
13492
|
+
}
|
|
13493
|
+
}), false, true);
|
|
13494
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, innerElement);
|
|
13495
|
+
return _el$2;
|
|
13496
|
+
})();
|
|
13497
|
+
};
|
|
13498
|
+
const windowmockup_WindowMockup = WindowMockup;
|
|
13333
13499
|
const createPopmotionDriver = (animate)=>(options)=>animate(options);
|
|
13334
13500
|
const enablePopmotion = (animate)=>{
|
|
13335
13501
|
setMotionDriver(createPopmotionDriver(animate));
|
|
@@ -13410,4 +13576,4 @@ const createRouteTransitionResolver = (options)=>{
|
|
|
13410
13576
|
return fallback ?? noMotion;
|
|
13411
13577
|
};
|
|
13412
13578
|
};
|
|
13413
|
-
export { accordion_Accordion as Accordion, alert_Alert as Alert, artboard_Artboard as Artboard, avatar as Avatar, background_Background as Background, Badge, bottom_sheet_BottomSheet as BottomSheet, Breadcrumbs, breadcrumbs_BreadcrumbsItem as BreadcrumbsItem, browsermockup_BrowserMockup as BrowserMockup, button_Button as Button, Calendar, card_Card as Card, carousel_Carousel as Carousel, chatbubble_ChatBubble as ChatBubble, checkbox_Checkbox as Checkbox, codemockup_CodeMockup as CodeMockup, CodeMockupLine, collapse_Collapse as Collapse, CollapseContent, CollapseDetails, CollapseTitle, connectionstatus_ConnectionStatus as ConnectionStatus, CopyButton, countdown_Countdown as Countdown, diff_Diff as Diff, divider as Divider, dock as Dock, Drawer, dropdown as Dropdown, EnhancedTable, FileInput, flex_Flex as Flex, footer_Footer as Footer, form_Form as Form, Grid, hero_Hero as Hero, icon_Icon as Icon, indicator_Indicator as Indicator, input as Input, join_Join as Join, kbd_Kbd as Kbd, link_Link as Link, loading_Loading as Loading, mask as Mask, menu_Menu as Menu, modal_Modal as Modal, MotionDiv, navbar_Navbar as Navbar, pagination_Pagination as Pagination, phonemockup_PhoneMockup as PhoneMockup, Progress, props_table_PropsTable as PropsTable, radialprogress_RadialProgress as RadialProgress, radio_Radio as Radio, range_Range as Range, Rating, select_Select as Select, showcase_ShowcaseBlock as ShowcaseBlock, showcase_section_ShowcaseSection as ShowcaseSection, sidenav_Sidenav as Sidenav, sidenav_SidenavButton as SidenavButton, sidenav_SidenavGroup as SidenavGroup, sidenav_SidenavItem as SidenavItem, sidenav_SidenavLink as SidenavLink, sidenav_SidenavMenu as SidenavMenu, skeleton_Skeleton as Skeleton, Stack, stat_card_StatCard as StatCard, stats_Stats as Stats, status_Status as Status, steps as Steps, streaming_table_StreamingTable as StreamingTable, Summary, SvgBackground, Swap, table_Table as Table, tabs_Tabs as Tabs, textarea_Textarea as Textarea, Timeline, timeline_TimelineEnd as TimelineEnd, timeline_TimelineItem as TimelineItem, timeline_TimelineMiddle as TimelineMiddle, timeline_TimelineStart as TimelineStart, toast_Toast as Toast, ToastContainer, toggle_Toggle as Toggle, tooltip_Tooltip as Tooltip, windowmockup_WindowMockup as WindowMockup, createMotionPresets, createMotionSystem, createPopmotionDriver, createRouteTransitionResolver, createStreamingTableStore, connectionstatus_ConnectionStatus as default, defaultMotionTokens, enablePopmotion, getMotionDriver, presets_getPreset as getPreset, immediateDriver, mergeMotionTokens, motionDistances, motionDurations, motionEasings, motionPresets, noMotion, prefersReducedMotion, presets_registerPreset as registerPreset, resolveEase, presets_resolvePreset as resolvePreset, routeTransition, runMotion, setMotionDriver, toastStore, useDesktop, useFormValidation };
|
|
13579
|
+
export { accordion_Accordion as Accordion, alert_Alert as Alert, artboard_Artboard as Artboard, avatar as Avatar, background_Background as Background, Badge, bottom_sheet_BottomSheet as BottomSheet, Breadcrumbs, breadcrumbs_BreadcrumbsItem as BreadcrumbsItem, browsermockup_BrowserMockup as BrowserMockup, button_Button as Button, Calendar, card_Card as Card, carousel_Carousel as Carousel, chatbubble_ChatBubble as ChatBubble, checkbox_Checkbox as Checkbox, codemockup_CodeMockup as CodeMockup, CodeMockupLine, collapse_Collapse as Collapse, CollapseContent, CollapseDetails, CollapseTitle, connectionstatus_ConnectionStatus as ConnectionStatus, CopyButton, countdown_Countdown as Countdown, diff_Diff as Diff, divider as Divider, dock as Dock, Drawer, dropdown as Dropdown, EnhancedTable, FileInput, flex_Flex as Flex, footer_Footer as Footer, form_Form as Form, Grid, hero_Hero as Hero, icon_Icon as Icon, indicator_Indicator as Indicator, input as Input, join_Join as Join, kbd_Kbd as Kbd, link_Link as Link, loading_Loading as Loading, mask as Mask, menu_Menu as Menu, modal_Modal as Modal, MotionDiv, navbar_Navbar as Navbar, pagination_Pagination as Pagination, phonemockup_PhoneMockup as PhoneMockup, Progress, props_table_PropsTable as PropsTable, radialprogress_RadialProgress as RadialProgress, radio_Radio as Radio, range_Range as Range, Rating, select_Select as Select, showcase_ShowcaseBlock as ShowcaseBlock, showcase_section_ShowcaseSection as ShowcaseSection, sidenav_Sidenav as Sidenav, sidenav_SidenavButton as SidenavButton, sidenav_SidenavGroup as SidenavGroup, sidenav_SidenavItem as SidenavItem, sidenav_SidenavLink as SidenavLink, sidenav_SidenavMenu as SidenavMenu, skeleton_Skeleton as Skeleton, Stack, stat_card_StatCard as StatCard, stats_Stats as Stats, status_Status as Status, steps as Steps, streaming_table_StreamingTable as StreamingTable, Summary, SvgBackground, Swap, table_Table as Table, tabs_Tabs as Tabs, textarea_Textarea as Textarea, Timeline, timeline_TimelineEnd as TimelineEnd, timeline_TimelineItem as TimelineItem, timeline_TimelineMiddle as TimelineMiddle, timeline_TimelineStart as TimelineStart, toast_Toast as Toast, ToastContainer, ToastStack_ToastStack as ToastStack, toggle_Toggle as Toggle, tooltip_Tooltip as Tooltip, windowmockup_WindowMockup as WindowMockup, createMotionPresets, createMotionSystem, createPopmotionDriver, createRouteTransitionResolver, createStreamingTableStore, connectionstatus_ConnectionStatus as default, defaultMotionTokens, enablePopmotion, getMotionDriver, presets_getPreset as getPreset, immediateDriver, mergeMotionTokens, motionDistances, motionDurations, motionEasings, motionPresets, noMotion, prefersReducedMotion, presets_registerPreset as registerPreset, resolveEase, presets_resolvePreset as resolvePreset, routeTransition, runMotion, setMotionDriver, toastStore, useDesktop, useFormValidation };
|
|
@@ -4,10 +4,13 @@ export interface ToastItem {
|
|
|
4
4
|
message: string;
|
|
5
5
|
type: ToastType;
|
|
6
6
|
timestamp: number;
|
|
7
|
+
duration: number;
|
|
8
|
+
isExiting?: boolean;
|
|
7
9
|
}
|
|
8
10
|
export declare const toastStore: {
|
|
9
11
|
toasts: import("solid-js").Accessor<ToastItem[]>;
|
|
10
12
|
addToast: (message: string, type?: ToastType, duration?: number) => string;
|
|
13
|
+
dismissToast: (id: string) => void;
|
|
11
14
|
removeToast: (id: string) => void;
|
|
12
15
|
clearAll: () => void;
|
|
13
16
|
showError: (message: string) => string;
|