@a-type/ui 3.0.26 → 3.0.29
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/cjs/colors.stories.js +1 -8
- package/dist/cjs/colors.stories.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.js +30 -5
- package/dist/cjs/components/dialog/Dialog.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.stories.js +1 -1
- package/dist/cjs/components/dialog/Dialog.stories.js.map +1 -1
- package/dist/cjs/components/icon/Icon.js +1 -1
- package/dist/cjs/components/icon/Icon.js.map +1 -1
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.js +2 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/lightbox/Lightbox.d.ts +25 -0
- package/dist/cjs/components/lightbox/Lightbox.js +71 -0
- package/dist/cjs/components/lightbox/Lightbox.js.map +1 -0
- package/dist/cjs/components/lightbox/Lightbox.stories.d.ts +24 -0
- package/dist/cjs/components/lightbox/Lightbox.stories.js +21 -0
- package/dist/cjs/components/lightbox/Lightbox.stories.js.map +1 -0
- package/dist/cjs/components/lists/lists.d.ts +6 -0
- package/dist/cjs/components/lists/lists.js +16 -0
- package/dist/cjs/components/lists/lists.js.map +1 -0
- package/dist/cjs/components/lists/lists.stories.d.ts +14 -0
- package/dist/cjs/components/lists/lists.stories.js +25 -0
- package/dist/cjs/components/lists/lists.stories.js.map +1 -0
- package/dist/cjs/components/provider/Provider.d.ts +1 -4
- package/dist/cjs/components/provider/Provider.js +3 -3
- package/dist/cjs/components/provider/Provider.js.map +1 -1
- package/dist/cjs/components/pwaInstall/PlatformIcons.d.ts +5 -0
- package/dist/cjs/components/pwaInstall/PlatformIcons.js +25 -0
- package/dist/cjs/components/pwaInstall/PlatformIcons.js.map +1 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.d.ts +5 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.js +74 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.js.map +1 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.d.ts +15 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js +23 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -0
- package/dist/cjs/components/pwaInstall/index.d.ts +3 -0
- package/dist/cjs/components/pwaInstall/index.js +21 -0
- package/dist/cjs/components/pwaInstall/index.js.map +1 -0
- package/dist/cjs/components/pwaInstall/useIsInstallReady.d.ts +3 -0
- package/dist/cjs/components/pwaInstall/useIsInstallReady.js +58 -0
- package/dist/cjs/components/pwaInstall/useIsInstallReady.js.map +1 -0
- package/dist/cjs/components/pwaInstall/useWebManifest.d.ts +2 -0
- package/dist/cjs/components/pwaInstall/useWebManifest.js +45 -0
- package/dist/cjs/components/pwaInstall/useWebManifest.js.map +1 -0
- package/dist/cjs/components/slider/Slider.js +4 -4
- package/dist/cjs/components/slider/Slider.js.map +1 -1
- package/dist/cjs/components/slider/Slider.stories.d.ts +2 -0
- package/dist/cjs/components/slider/Slider.stories.js +32 -1
- package/dist/cjs/components/slider/Slider.stories.js.map +1 -1
- package/dist/cjs/components/toasts/toasts.d.ts +4 -1
- package/dist/cjs/components/toasts/toasts.js +35 -1
- package/dist/cjs/components/toasts/toasts.js.map +1 -1
- package/dist/cjs/components/toasts/toasts.stories.d.ts +13 -0
- package/dist/cjs/components/toasts/toasts.stories.js +47 -0
- package/dist/cjs/components/toasts/toasts.stories.js.map +1 -0
- package/dist/cjs/platform.d.ts +11 -0
- package/dist/cjs/platform.js +95 -0
- package/dist/cjs/platform.js.map +1 -0
- package/dist/cjs/uno/logic/color.d.ts +0 -12
- package/dist/cjs/uno/logic/color.js +0 -35
- package/dist/cjs/uno/logic/color.js.map +1 -1
- package/dist/cjs/uno/logic/color.test.js +0 -12
- package/dist/cjs/uno/logic/color.test.js.map +1 -1
- package/dist/cjs/uno/theme/index.js +8 -0
- package/dist/cjs/uno/theme/index.js.map +1 -1
- package/dist/css/main.css +6 -5
- package/dist/esm/colors.stories.js +1 -8
- package/dist/esm/colors.stories.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.js +30 -5
- package/dist/esm/components/dialog/Dialog.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.stories.js +1 -1
- package/dist/esm/components/dialog/Dialog.stories.js.map +1 -1
- package/dist/esm/components/icon/Icon.js +1 -1
- package/dist/esm/components/icon/Icon.js.map +1 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/lightbox/Lightbox.d.ts +25 -0
- package/dist/esm/components/lightbox/Lightbox.js +32 -0
- package/dist/esm/components/lightbox/Lightbox.js.map +1 -0
- package/dist/esm/components/lightbox/Lightbox.stories.d.ts +24 -0
- package/dist/esm/components/lightbox/Lightbox.stories.js +18 -0
- package/dist/esm/components/lightbox/Lightbox.stories.js.map +1 -0
- package/dist/esm/components/lists/lists.d.ts +6 -0
- package/dist/esm/components/lists/lists.js +13 -0
- package/dist/esm/components/lists/lists.js.map +1 -0
- package/dist/esm/components/lists/lists.stories.d.ts +14 -0
- package/dist/esm/components/lists/lists.stories.js +22 -0
- package/dist/esm/components/lists/lists.stories.js.map +1 -0
- package/dist/esm/components/provider/Provider.d.ts +1 -4
- package/dist/esm/components/provider/Provider.js +3 -3
- package/dist/esm/components/provider/Provider.js.map +1 -1
- package/dist/esm/components/pwaInstall/PlatformIcons.d.ts +5 -0
- package/dist/esm/components/pwaInstall/PlatformIcons.js +18 -0
- package/dist/esm/components/pwaInstall/PlatformIcons.js.map +1 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.d.ts +5 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.js +71 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.js.map +1 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.d.ts +15 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js +20 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -0
- package/dist/esm/components/pwaInstall/index.d.ts +3 -0
- package/dist/esm/components/pwaInstall/index.js +5 -0
- package/dist/esm/components/pwaInstall/index.js.map +1 -0
- package/dist/esm/components/pwaInstall/useIsInstallReady.d.ts +3 -0
- package/dist/esm/components/pwaInstall/useIsInstallReady.js +53 -0
- package/dist/esm/components/pwaInstall/useIsInstallReady.js.map +1 -0
- package/dist/esm/components/pwaInstall/useWebManifest.d.ts +2 -0
- package/dist/esm/components/pwaInstall/useWebManifest.js +42 -0
- package/dist/esm/components/pwaInstall/useWebManifest.js.map +1 -0
- package/dist/esm/components/slider/Slider.js +4 -4
- package/dist/esm/components/slider/Slider.js.map +1 -1
- package/dist/esm/components/slider/Slider.stories.d.ts +2 -0
- package/dist/esm/components/slider/Slider.stories.js +28 -0
- package/dist/esm/components/slider/Slider.stories.js.map +1 -1
- package/dist/esm/components/toasts/toasts.d.ts +4 -1
- package/dist/esm/components/toasts/toasts.js +32 -1
- package/dist/esm/components/toasts/toasts.js.map +1 -1
- package/dist/esm/components/toasts/toasts.stories.d.ts +13 -0
- package/dist/esm/components/toasts/toasts.stories.js +44 -0
- package/dist/esm/components/toasts/toasts.stories.js.map +1 -0
- package/dist/esm/platform.d.ts +11 -0
- package/dist/esm/platform.js +84 -0
- package/dist/esm/platform.js.map +1 -0
- package/dist/esm/uno/logic/color.d.ts +0 -12
- package/dist/esm/uno/logic/color.js +0 -35
- package/dist/esm/uno/logic/color.js.map +1 -1
- package/dist/esm/uno/logic/color.test.js +0 -12
- package/dist/esm/uno/logic/color.test.js.map +1 -1
- package/dist/esm/uno/theme/index.js +8 -0
- package/dist/esm/uno/theme/index.js.map +1 -1
- package/package.json +5 -7
- package/src/colors.stories.tsx +0 -12
- package/src/components/dialog/Dialog.stories.tsx +20 -6
- package/src/components/dialog/Dialog.tsx +49 -4
- package/src/components/icon/Icon.tsx +6 -1
- package/src/components/index.ts +2 -0
- package/src/components/lightbox/Lightbox.stories.tsx +28 -0
- package/src/components/lightbox/Lightbox.tsx +87 -0
- package/src/components/lists/lists.stories.tsx +38 -0
- package/src/components/lists/lists.tsx +21 -0
- package/src/components/provider/Provider.tsx +2 -9
- package/src/components/pwaInstall/PlatformIcons.tsx +75 -0
- package/src/components/pwaInstall/PwaInstallTrigger.stories.tsx +29 -0
- package/src/components/pwaInstall/PwaInstallTrigger.tsx +227 -0
- package/src/components/pwaInstall/index.ts +3 -0
- package/src/components/pwaInstall/useIsInstallReady.ts +56 -0
- package/src/components/pwaInstall/useWebManifest.ts +55 -0
- package/src/components/slider/Slider.stories.tsx +40 -0
- package/src/components/slider/Slider.tsx +6 -3
- package/src/components/toasts/toasts.stories.tsx +83 -0
- package/src/components/toasts/toasts.tsx +72 -1
- package/src/platform.ts +103 -0
- package/src/uno/logic/color.test.ts +0 -27
- package/src/uno/logic/color.ts +0 -56
- package/src/uno/theme/index.ts +8 -0
- package/dist/cjs/uno/logic/oklch.d.ts +0 -3
- package/dist/cjs/uno/logic/oklch.js +0 -96
- package/dist/cjs/uno/logic/oklch.js.map +0 -1
- package/dist/esm/uno/logic/oklch.d.ts +0 -3
- package/dist/esm/uno/logic/oklch.js +0 -90
- package/dist/esm/uno/logic/oklch.js.map +0 -1
- package/src/uno/logic/oklch.ts +0 -120
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DialogTriggerProps } from '@radix-ui/react-dialog';
|
|
2
|
+
export interface PwaInstallTriggerProps extends DialogTriggerProps {
|
|
3
|
+
manifestPath?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function PwaInstallTrigger({ children, manifestPath, asChild: _, ...rest }: PwaInstallTriggerProps): import("react/jsx-runtime.js").JSX.Element | null;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// @unocss-include
|
|
2
|
+
"use strict";
|
|
3
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
4
|
+
var t = {};
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
8
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
9
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
10
|
+
t[p[i]] = s[p[i]];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PwaInstallTrigger = PwaInstallTrigger;
|
|
16
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
17
|
+
const react_1 = require("react");
|
|
18
|
+
const platform_js_1 = require("../../platform.js");
|
|
19
|
+
const Box_js_1 = require("../box/Box.js");
|
|
20
|
+
const Button_js_1 = require("../button/Button.js");
|
|
21
|
+
const Dialog_js_1 = require("../dialog/Dialog.js");
|
|
22
|
+
const Icon_js_1 = require("../icon/Icon.js");
|
|
23
|
+
const Lightbox_js_1 = require("../lightbox/Lightbox.js");
|
|
24
|
+
const lists_js_1 = require("../lists/lists.js");
|
|
25
|
+
const typography_js_1 = require("../typography/typography.js");
|
|
26
|
+
const PlatformIcons_js_1 = require("./PlatformIcons.js");
|
|
27
|
+
const useIsInstallReady_js_1 = require("./useIsInstallReady.js");
|
|
28
|
+
const useWebManifest_js_1 = require("./useWebManifest.js");
|
|
29
|
+
function PwaInstallTrigger(_a) {
|
|
30
|
+
var _b, _c, _d, _e, _f, _g;
|
|
31
|
+
var { children, manifestPath, asChild: _ } = _a, rest = __rest(_a, ["children", "manifestPath", "asChild"]);
|
|
32
|
+
const installed = (0, useIsInstallReady_js_1.useIsInstalled)();
|
|
33
|
+
const manifest = (0, useWebManifest_js_1.useWebManifest)(manifestPath);
|
|
34
|
+
const [showInstructions, setShowInstructions] = (0, react_1.useState)(false);
|
|
35
|
+
if (installed) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const primaryIcon = (_b = manifest === null || manifest === void 0 ? void 0 : manifest.icons) === null || _b === void 0 ? void 0 : _b[0];
|
|
39
|
+
return ((0, jsx_runtime_1.jsxs)(Dialog_js_1.Dialog, { children: [(0, jsx_runtime_1.jsx)(Dialog_js_1.Dialog.Trigger, Object.assign({}, rest, { asChild: true, children: children !== null && children !== void 0 ? children : ((0, jsx_runtime_1.jsxs)(Button_js_1.Button, { color: "primary", emphasis: "light", children: [(0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "star" }), " Install"] })) })), (0, jsx_runtime_1.jsxs)(Dialog_js_1.Dialog.Content, { className: "flex flex-col gap-xs", children: [(0, jsx_runtime_1.jsxs)(Dialog_js_1.Dialog.Title, { className: "flex flex-row gap-md items-center", children: [primaryIcon && ((0, jsx_runtime_1.jsx)("img", { src: primaryIcon.src, alt: (_e = (_d = (_c = primaryIcon.label) !== null && _c !== void 0 ? _c : manifest === null || manifest === void 0 ? void 0 : manifest.short_name) !== null && _d !== void 0 ? _d : manifest === null || manifest === void 0 ? void 0 : manifest.name) !== null && _e !== void 0 ? _e : 'App Icon', className: "inline-block w-1em h-1em rounded" })), "Install ", (_g = (_f = manifest === null || manifest === void 0 ? void 0 : manifest.short_name) !== null && _f !== void 0 ? _f : manifest === null || manifest === void 0 ? void 0 : manifest.name) !== null && _g !== void 0 ? _g : 'App'] }), showInstructions ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Dialog_js_1.Dialog.Description, { children: "Follow the instructions below to install this app on your device." }), (0, jsx_runtime_1.jsx)(InstallInstructions, {}), (0, jsx_runtime_1.jsxs)(Dialog_js_1.Dialog.Actions, { children: [(0, jsx_runtime_1.jsx)(Dialog_js_1.Dialog.Close, { asChild: true, children: (0, jsx_runtime_1.jsx)(Button_js_1.Button, { emphasis: "ghost", children: "Close" }) }), (0, jsx_runtime_1.jsxs)(Button_js_1.Button, { onClick: () => setShowInstructions(false), children: [(0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "arrowLeft" }), " Back"] })] })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Dialog_js_1.Dialog.Description, { children: "This site is also an app. You can install it right now for easier access and more features." }), (manifest === null || manifest === void 0 ? void 0 : manifest.description) && ((0, jsx_runtime_1.jsx)(typography_js_1.P, { className: "mb-sm", children: manifest.description })), (0, jsx_runtime_1.jsx)(ManifestImageGallery, { manifestPath: manifestPath }), (0, jsx_runtime_1.jsxs)(Dialog_js_1.Dialog.Actions, { children: [(0, jsx_runtime_1.jsx)(Dialog_js_1.Dialog.Close, { asChild: true, children: (0, jsx_runtime_1.jsx)(Button_js_1.Button, { emphasis: "ghost", children: "Close" }) }), (0, jsx_runtime_1.jsx)(InstallDeviceActions, { showInstructions: () => setShowInstructions(true) })] })] }))] })] }));
|
|
40
|
+
}
|
|
41
|
+
const supportsDirectInstall = (0, platform_js_1.getSupportsPWAInstallPrompt)();
|
|
42
|
+
function InstallInstructions() {
|
|
43
|
+
const os = (0, platform_js_1.getOS)();
|
|
44
|
+
if (os === 'iOS' || os === 'Mac OS') {
|
|
45
|
+
if ((0, platform_js_1.getIsSafari)()) {
|
|
46
|
+
if (os === 'iOS') {
|
|
47
|
+
return ((0, jsx_runtime_1.jsxs)(lists_js_1.Ol, { children: [(0, jsx_runtime_1.jsxs)(lists_js_1.Ol.Item, { children: [(0, jsx_runtime_1.jsx)(PlatformIcons_js_1.SafariShareIcon, {}), " Tap the Share button in the toolbar."] }), (0, jsx_runtime_1.jsxs)(lists_js_1.Ol.Item, { children: [(0, jsx_runtime_1.jsx)(PlatformIcons_js_1.SafariPlusSquareIcon, {}), " Scroll down and tap \"Add to Home Screen\"."] })] }));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return ((0, jsx_runtime_1.jsxs)(lists_js_1.Ol, { children: [(0, jsx_runtime_1.jsxs)(lists_js_1.Ol.Item, { children: [(0, jsx_runtime_1.jsx)(PlatformIcons_js_1.SafariShareIcon, {}), " Tap the Share button in the toolbar."] }), (0, jsx_runtime_1.jsxs)(lists_js_1.Ol.Item, { children: [(0, jsx_runtime_1.jsx)(PlatformIcons_js_1.SafariAddToDockIcon, {}), " Tap \"Add to Dock\"."] })] }));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(lists_js_1.Ol, { children: (0, jsx_runtime_1.jsxs)(lists_js_1.Ol.Item, { children: [(0, jsx_runtime_1.jsx)(PlatformIcons_js_1.SafariIcon, {}), " Open this site in Safari to continue."] }) }), (0, jsx_runtime_1.jsx)(Box_js_1.Box, { surface: true, p: true, children: "Apple does not allow non-Safari browsers to install web apps." })] }));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return ((0, jsx_runtime_1.jsxs)(lists_js_1.Ol, { children: [(0, jsx_runtime_1.jsxs)(lists_js_1.Ol.Item, { children: [(0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "dots", className: "rotate-90" }), " Tap the menu button in the toolbar."] }), (0, jsx_runtime_1.jsxs)(lists_js_1.Ol.Item, { children: [(0, jsx_runtime_1.jsx)(PlatformIcons_js_1.AndroidAddToHomeIcon, {}), " Tap \"Add to Home Screen.\""] })] }));
|
|
58
|
+
}
|
|
59
|
+
function ManifestImageGallery({ manifestPath }) {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
const manifest = (0, useWebManifest_js_1.useWebManifest)(manifestPath);
|
|
62
|
+
if (!((_a = manifest === null || manifest === void 0 ? void 0 : manifest.screenshots) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return ((0, jsx_runtime_1.jsx)(Box_js_1.Box, { overflow: "auto-x", p: "sm", gap: true, className: "h-240px", children: (_b = manifest.screenshots) === null || _b === void 0 ? void 0 : _b.map((screenshot, index) => ((0, jsx_runtime_1.jsxs)(Lightbox_js_1.Lightbox.Root, { children: [(0, jsx_runtime_1.jsx)(Lightbox_js_1.Lightbox.Trigger, { asChild: true, children: (0, jsx_runtime_1.jsx)(Lightbox_js_1.Lightbox.Image, { tabIndex: 0, src: screenshot.src, alt: screenshot.label || `Screenshot ${index + 1}`, className: "border border-default rounded-xs" }, index) }), (0, jsx_runtime_1.jsxs)(Lightbox_js_1.Lightbox.Portal, { children: [(0, jsx_runtime_1.jsx)(Lightbox_js_1.Lightbox.Overlay, { className: "z-10000" }), (0, jsx_runtime_1.jsx)(Lightbox_js_1.Lightbox.Content, { className: "z-10001", children: (0, jsx_runtime_1.jsx)(Lightbox_js_1.Lightbox.Image, { src: screenshot.src, alt: screenshot.label || `Screenshot ${index + 1}` }) })] })] }, screenshot.src))) }));
|
|
66
|
+
}
|
|
67
|
+
function InstallDeviceActions({ showInstructions, }) {
|
|
68
|
+
const ready = (0, useIsInstallReady_js_1.useIsInstallReady)();
|
|
69
|
+
if (supportsDirectInstall && ready) {
|
|
70
|
+
return ((0, jsx_runtime_1.jsxs)(Button_js_1.Button, { onClick: () => (0, useIsInstallReady_js_1.triggerDeferredInstall)(), emphasis: "primary", children: [(0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "download" }), " Install now"] }));
|
|
71
|
+
}
|
|
72
|
+
return ((0, jsx_runtime_1.jsxs)(Button_js_1.Button, { onClick: () => showInstructions(), emphasis: "primary", children: [(0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "arrowRight" }), " Add to Home"] }));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=PwaInstallTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PwaInstallTrigger.js","sourceRoot":"","sources":["../../../../src/components/pwaInstall/PwaInstallTrigger.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
import { PwaInstallTrigger } from './PwaInstallTrigger.js';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof PwaInstallTrigger;
|
|
6
|
+
argTypes: {};
|
|
7
|
+
parameters: {
|
|
8
|
+
controls: {
|
|
9
|
+
expanded: boolean;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export default meta;
|
|
14
|
+
type Story = StoryObj<typeof PwaInstallTrigger>;
|
|
15
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// @unocss-include
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Default = void 0;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const Button_js_1 = require("../button/Button.js");
|
|
7
|
+
const Icon_js_1 = require("../icon/Icon.js");
|
|
8
|
+
const PwaInstallTrigger_js_1 = require("./PwaInstallTrigger.js");
|
|
9
|
+
const meta = {
|
|
10
|
+
title: 'Components/PwaInstallTrigger',
|
|
11
|
+
component: PwaInstallTrigger_js_1.PwaInstallTrigger,
|
|
12
|
+
argTypes: {},
|
|
13
|
+
parameters: {
|
|
14
|
+
controls: { expanded: true },
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
exports.default = meta;
|
|
18
|
+
exports.Default = {
|
|
19
|
+
render(args) {
|
|
20
|
+
return ((0, jsx_runtime_1.jsx)(PwaInstallTrigger_js_1.PwaInstallTrigger, Object.assign({}, args, { asChild: true, children: (0, jsx_runtime_1.jsxs)(Button_js_1.Button, { color: "primary", emphasis: "light", children: [(0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { name: "star" }), " Install"] }) })));
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=PwaInstallTrigger.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PwaInstallTrigger.stories.js","sourceRoot":"","sources":["../../../../src/components/pwaInstall/PwaInstallTrigger.stories.tsx"],"names":[],"mappings":";;;;AACA,mDAA6C;AAC7C,6CAAuC;AACvC,iEAA2D;AAE3D,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,8BAA8B;IACrC,SAAS,EAAE,wCAAiB;IAC5B,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CACwC,CAAC;AAE3C,kBAAe,IAAI,CAAC;AAIP,QAAA,OAAO,GAAU;IAC7B,MAAM,CAAC,IAAI;QACV,OAAO,CACN,uBAAC,wCAAiB,oBAAK,IAAI,IAAE,OAAO,kBACnC,wBAAC,kBAAM,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,aACvC,uBAAC,cAAI,IAAC,IAAI,EAAC,MAAM,GAAG,gBACZ,IACU,CACpB,CAAC;IACH,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// @unocss-include
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
__exportStar(require("./PwaInstallTrigger.js"), exports);
|
|
19
|
+
__exportStar(require("./useIsInstallReady.js"), exports);
|
|
20
|
+
__exportStar(require("./useWebManifest.js"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/pwaInstall/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,yDAAuC;AACvC,sDAAoC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// @unocss-include
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useIsInstallReady = useIsInstallReady;
|
|
5
|
+
exports.useIsInstalled = useIsInstalled;
|
|
6
|
+
exports.triggerDeferredInstall = triggerDeferredInstall;
|
|
7
|
+
const valtio_1 = require("valtio");
|
|
8
|
+
const platform_js_1 = require("../../platform.js");
|
|
9
|
+
let deferredPrompt = null;
|
|
10
|
+
const installState = (0, valtio_1.proxy)({
|
|
11
|
+
installReady: false,
|
|
12
|
+
installed: (0, platform_js_1.getIsPWAInstalled)(),
|
|
13
|
+
});
|
|
14
|
+
if (typeof window !== 'undefined') {
|
|
15
|
+
window.addEventListener('beforeinstallprompt', (e) => {
|
|
16
|
+
// Prevent the mini-infobar from appearing on mobile
|
|
17
|
+
e.preventDefault();
|
|
18
|
+
e.stopImmediatePropagation();
|
|
19
|
+
e.stopPropagation();
|
|
20
|
+
// Stash the event so it can be triggered later.
|
|
21
|
+
deferredPrompt = e;
|
|
22
|
+
// Update UI notify the user they can install the PWA
|
|
23
|
+
installState.installReady = true;
|
|
24
|
+
// Optionally, send analytics event that PWA install promo was shown.
|
|
25
|
+
console.log(`Ready to show custom install prompt`);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (platform_js_1.PRETEND_INSTALLABLE) {
|
|
29
|
+
installState.installReady = true;
|
|
30
|
+
}
|
|
31
|
+
function useIsInstallReady() {
|
|
32
|
+
return (0, valtio_1.useSnapshot)(installState).installReady;
|
|
33
|
+
}
|
|
34
|
+
function useIsInstalled() {
|
|
35
|
+
return (0, valtio_1.useSnapshot)(installState).installed;
|
|
36
|
+
}
|
|
37
|
+
function triggerDeferredInstall() {
|
|
38
|
+
if (!deferredPrompt) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
// Show the install prompt
|
|
42
|
+
deferredPrompt.prompt();
|
|
43
|
+
// Wait for the user to respond to the prompt
|
|
44
|
+
deferredPrompt.userChoice.then((choiceResult) => {
|
|
45
|
+
if (choiceResult.outcome === 'accepted') {
|
|
46
|
+
console.log('User accepted the install prompt');
|
|
47
|
+
installState.installed = true;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.log('User dismissed the install prompt');
|
|
51
|
+
}
|
|
52
|
+
// Clear the deferredPrompt so it can only be used once.
|
|
53
|
+
deferredPrompt = null;
|
|
54
|
+
installState.installReady = false;
|
|
55
|
+
});
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=useIsInstallReady.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsInstallReady.js","sourceRoot":"","sources":["../../../../src/components/pwaInstall/useIsInstallReady.ts"],"names":[],"mappings":";;AA4BA,8CAEC;AAED,wCAEC;AAED,wDAmBC;AAvDD,mCAA4C;AAC5C,mDAA2E;AAE3E,IAAI,cAAc,GAAoC,IAAI,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAA,cAAK,EAAC;IAC1B,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,IAAA,+BAAiB,GAAE;CAC9B,CAAC,CAAC;AAEH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACnC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;QACpD,oDAAoD;QACpD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC7B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gDAAgD;QAChD,cAAc,GAAG,CAAC,CAAC;QACnB,qDAAqD;QACrD,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;QACjC,qEAAqE;QACrE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,iCAAmB,EAAE,CAAC;IACzB,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,SAAgB,iBAAiB;IAChC,OAAO,IAAA,oBAAW,EAAC,YAAY,CAAC,CAAC,YAAY,CAAC;AAC/C,CAAC;AAED,SAAgB,cAAc;IAC7B,OAAO,IAAA,oBAAW,EAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAgB,sBAAsB;IACrC,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,0BAA0B;IAC1B,cAAc,CAAC,MAAM,EAAE,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QAC/C,IAAI,YAAY,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAClD,CAAC;QACD,wDAAwD;QACxD,cAAc,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// @unocss-include
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useWebManifest = useWebManifest;
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const valtio_1 = require("valtio");
|
|
7
|
+
async function fetchManifest(manifestPath = '/manifest.json', controller) {
|
|
8
|
+
const response = await fetch(manifestPath, {
|
|
9
|
+
signal: controller === null || controller === void 0 ? void 0 : controller.signal,
|
|
10
|
+
});
|
|
11
|
+
if (!response.ok) {
|
|
12
|
+
console.error(`Failed to fetch web manifest: ${response.status} ${response.statusText}`);
|
|
13
|
+
return {};
|
|
14
|
+
}
|
|
15
|
+
const manifest = await response.json();
|
|
16
|
+
return manifest;
|
|
17
|
+
}
|
|
18
|
+
function abortableManifestSync(manifestPath) {
|
|
19
|
+
const controller = new AbortController();
|
|
20
|
+
fetchManifest(manifestPath, controller).then((manifest) => {
|
|
21
|
+
if (manifest) {
|
|
22
|
+
manifestState.value = manifest;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return controller;
|
|
26
|
+
}
|
|
27
|
+
const manifestState = (0, valtio_1.proxy)({
|
|
28
|
+
value: {},
|
|
29
|
+
});
|
|
30
|
+
let abortController = null;
|
|
31
|
+
function useWebManifest(manifestPath = '/manifest.json') {
|
|
32
|
+
(0, react_1.useEffect)(() => {
|
|
33
|
+
if (abortController) {
|
|
34
|
+
abortController.abort();
|
|
35
|
+
}
|
|
36
|
+
abortController = abortableManifestSync(manifestPath);
|
|
37
|
+
return () => {
|
|
38
|
+
if (abortController) {
|
|
39
|
+
abortController.abort();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}, [manifestPath]);
|
|
43
|
+
return (0, valtio_1.useSnapshot)(manifestState).value;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=useWebManifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWebManifest.js","sourceRoot":"","sources":["../../../../src/components/pwaInstall/useWebManifest.ts"],"names":[],"mappings":";;AAqCA,wCAiBC;AAtDD,iCAAkC;AAClC,mCAA4C;AAG5C,KAAK,UAAU,aAAa,CAC3B,eAAuB,gBAAgB,EACvC,UAA4B;IAE5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;QAC1C,MAAM,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM;KAC1B,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CACZ,iCAAiC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACzE,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,YAAoB;IAClD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACzD,IAAI,QAAQ,EAAE,CAAC;YACd,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC;QAChC,CAAC;IACF,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,MAAM,aAAa,GAAG,IAAA,cAAK,EAAC;IAC3B,KAAK,EAAE,EAAoB;CAC3B,CAAC,CAAC;AACH,IAAI,eAAe,GAA2B,IAAI,CAAC;AAEnD,SAAgB,cAAc,CAC7B,YAAY,GAAG,gBAAgB;IAE/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,IAAI,eAAe,EAAE,CAAC;YACrB,eAAe,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,eAAe,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAEtD,OAAO,GAAG,EAAE;YACX,IAAI,eAAe,EAAE,CAAC;gBACrB,eAAe,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;QACF,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,IAAA,oBAAW,EAAC,aAAa,CAAC,CAAC,KAAuB,CAAC;AAC3D,CAAC"}
|
|
@@ -53,10 +53,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
53
53
|
const SliderPrimitive = __importStar(require("@radix-ui/react-slider"));
|
|
54
54
|
const clsx_1 = __importDefault(require("clsx"));
|
|
55
55
|
const hooks_js_1 = require("../../hooks.js");
|
|
56
|
-
exports.SliderRoot = (0, hooks_js_1.withClassName)(SliderPrimitive.Root, 'layer-components:relative layer-components:flex layer-components:items-center layer-components:select-none layer-components:touch-none layer-components:w-full layer-components:h-30px layer-components:translate-z-0');
|
|
57
|
-
exports.SliderTrack = (0, hooks_js_1.withClassName)(SliderPrimitive.Track, 'layer-components:bg-transparent layer-components:relative layer-components:grow layer-components:rounded-lg layer-components:h-9px layer-components:border layer-components:border-1 layer-components:border-solid layer-components:border-black');
|
|
58
|
-
exports.SliderRange = (0, hooks_js_1.withClassName)(SliderPrimitive.Range, 'layer-components:absolute layer-components:bg-main layer-components:rounded-lg layer-components:h-full');
|
|
59
|
-
exports.SliderThumb = (0, hooks_js_1.withClassName)(SliderPrimitive.Thumb, 'layer-components:
|
|
56
|
+
exports.SliderRoot = (0, hooks_js_1.withClassName)(SliderPrimitive.Root, 'layer-components:relative layer-components:flex layer-components:items-center layer-components:select-none layer-components:touch-none layer-components:w-full layer-components:h-30px layer-components:translate-z-0', 'layer-variants:[&[data-orientation=vertical]]:flex-col layer-variants:[&[data-orientation=vertical]]:h-full layer-variants:[&[data-orientation=vertical]]:w-30px');
|
|
57
|
+
exports.SliderTrack = (0, hooks_js_1.withClassName)(SliderPrimitive.Track, 'layer-components:bg-transparent layer-components:relative layer-components:grow layer-components:rounded-lg layer-components:h-9px layer-components:border layer-components:border-1 layer-components:border-solid layer-components:border-black layer-components:transition-colors', 'layer-variants:[&[data-orientation=vertical]]:w-9px layer-variants:[&[data-orientation=vertical]]:h-full layer-variants:[&[data-orientation=vertical]]:flex-1');
|
|
58
|
+
exports.SliderRange = (0, hooks_js_1.withClassName)(SliderPrimitive.Range, 'layer-components:absolute layer-components:bg-main layer-components:rounded-lg layer-components:h-full layer-components:transition-colors', 'layer-variants:[&[data-orientation=vertical]]:w-full layer-variants:[&[data-orientation=vertical]]:h-auto');
|
|
59
|
+
exports.SliderThumb = (0, hooks_js_1.withClassName)(SliderPrimitive.Thumb, 'layer-components:flex layer-components:items-center layer-components:justify-center layer-components:leading-none layer-components:cursor-pointer layer-components:w-5 layer-components:h-5 layer-components:bg-white layer-components:shadow-sm layer-components:rounded-lg layer-components:ring-2 layer-components:ring-black layer-components:touch-none layer-components:transition-all', 'layer-components:hover:shadow-md', 'layer-components:active:shadow-lg layer-components:active:ring-4 layer-components:active:ring-main-dark layer-components:active:ring-opacity-50 layer-components:active:bg-main-light', 'layer-components:focus-visible:shadow-lg layer-components:focus-visible:ring-4 layer-components:focus-visible:ring-accent layer-components:focus-visible:ring-opacity-50 layer-components:focus-visible:outline-none layer-components:focus-visible:bg-main-light', 'layer-components:focus:outline-none', 'layer-components:disabled:opacity-50');
|
|
60
60
|
exports.Slider = Object.assign(function Slider(_a) {
|
|
61
61
|
var { ref, label, color, className } = _a, props = __rest(_a, ["ref", "label", "color", "className"]);
|
|
62
62
|
return ((0, jsx_runtime_1.jsxs)(exports.SliderRoot, Object.assign({ ref: ref, className: (0, clsx_1.default)(color && `palette-${color}`, className) }, props, { children: [(0, jsx_runtime_1.jsx)(exports.SliderTrack, { children: (0, jsx_runtime_1.jsx)(exports.SliderRange, { "data-color": color }) }), (0, jsx_runtime_1.jsx)(exports.SliderThumb, { "aria-label": label, "data-color": color })] })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAA0D;AAC1D,gDAAwB;AACxB,6CAA+C;AAGlC,QAAA,UAAU,GAAG,IAAA,wBAAa,EACtC,eAAe,CAAC,IAAI,EACpB,kGAAkG,
|
|
1
|
+
{"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAA0D;AAC1D,gDAAwB;AACxB,6CAA+C;AAGlC,QAAA,UAAU,GAAG,IAAA,wBAAa,EACtC,eAAe,CAAC,IAAI,EACpB,kGAAkG,EAClG,wEAAwE,CACxE,CAAC;AACW,QAAA,WAAW,GAAG,IAAA,wBAAa,EACvC,eAAe,CAAC,KAAK,EACrB,8HAA8H,EAC9H,qEAAqE,CACrE,CAAC;AACW,QAAA,WAAW,GAAG,IAAA,wBAAa,EACvC,eAAe,CAAC,KAAK,EACrB,yEAAyE,EACzE,+DAA+D,CAC/D,CAAC;AACW,QAAA,WAAW,GAAG,IAAA,wBAAa,EACvC,eAAe,CAAC,KAAK,EACrB,mKAAmK,EACnK,oCAAoC,EACpC,yFAAyF,EACzF,0GAA0G,EAC1G,uCAAuC,EACvC,wCAAwC,CACxC,CAAC;AAOW,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAClC,SAAS,MAAM,CAAC,EAQf;QARe,EACf,GAAG,EACH,KAAK,EACL,KAAK,EACL,SAAS,OAIT,EAHG,KAAK,cALO,sCAMf,CADQ;IAIR,OAAO,CACN,wBAAC,kBAAU,kBACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,cAAI,EAAC,KAAK,IAAI,WAAW,KAAK,EAAE,EAAE,SAAS,CAAC,IACnD,KAAK,eAET,uBAAC,mBAAW,cACX,uBAAC,mBAAW,kBAAa,KAAK,GAAI,GACrB,EACd,uBAAC,mBAAW,kBAAa,KAAK,gBAAc,KAAK,GAAI,KACzC,CACb,CAAC;AACH,CAAC,EACD;IACC,IAAI,EAAE,kBAAU;IAChB,KAAK,EAAE,mBAAW;IAClB,KAAK,EAAE,mBAAW;IAClB,KAAK,EAAE,mBAAW;CAClB,CACD,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
// @unocss-include
|
|
2
2
|
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.Default = void 0;
|
|
7
|
+
exports.CustomStyles = exports.Vertical = exports.Default = void 0;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
10
|
+
const react_1 = require("react");
|
|
5
11
|
const Slider_js_1 = require("./Slider.js");
|
|
6
12
|
const meta = {
|
|
7
13
|
title: 'Components/Slider',
|
|
@@ -13,4 +19,29 @@ const meta = {
|
|
|
13
19
|
};
|
|
14
20
|
exports.default = meta;
|
|
15
21
|
exports.Default = {};
|
|
22
|
+
exports.Vertical = {
|
|
23
|
+
args: {
|
|
24
|
+
orientation: 'vertical',
|
|
25
|
+
style: { height: '200px' },
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
exports.CustomStyles = {
|
|
29
|
+
args: {
|
|
30
|
+
orientation: 'vertical',
|
|
31
|
+
style: { height: '200px' },
|
|
32
|
+
min: -2,
|
|
33
|
+
max: 2,
|
|
34
|
+
defaultValue: [0],
|
|
35
|
+
},
|
|
36
|
+
render: (args) => {
|
|
37
|
+
const [value, setValue] = (0, react_1.useState)([0]);
|
|
38
|
+
return ((0, jsx_runtime_1.jsxs)(Slider_js_1.Slider.Root, Object.assign({ value: value, onValueChange: setValue }, args, { children: [(0, jsx_runtime_1.jsx)(Slider_js_1.Slider.Track, { className: (0, clsx_1.default)({
|
|
39
|
+
'bg-attention': value[0] === -2,
|
|
40
|
+
'bg-attention-light': value[0] === -1,
|
|
41
|
+
'bg-main': value[0] === 0,
|
|
42
|
+
'bg-success-light': value[0] === 1,
|
|
43
|
+
'bg-success': value[0] === 2,
|
|
44
|
+
}) }), (0, jsx_runtime_1.jsx)(Slider_js_1.Slider.Thumb, { className: "w-24px h-24px", children: (0, jsx_runtime_1.jsx)("div", { className: "text-lg", children: ['😭', '😔', '😐', '😊', '😃'][value[0] + 2] }) })] })));
|
|
45
|
+
},
|
|
46
|
+
};
|
|
16
47
|
//# sourceMappingURL=Slider.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.stories.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Slider.stories.js","sourceRoot":"","sources":["../../../../src/components/slider/Slider.stories.tsx"],"names":[],"mappings":";;;;;;;AACA,gDAAwB;AACxB,iCAAiC;AACjC,2CAAqC;AAErC,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,kBAAM;IACjB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CAC6B,CAAC;AAEhC,kBAAe,IAAI,CAAC;AAIP,QAAA,OAAO,GAAU,EAAE,CAAC;AAEpB,QAAA,QAAQ,GAAU;IAC9B,IAAI,EAAE;QACL,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;KAC1B;CACD,CAAC;AAEW,QAAA,YAAY,GAAU;IAClC,IAAI,EAAE;QACL,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QAC1B,GAAG,EAAE,CAAC,CAAC;QACP,GAAG,EAAE,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,CAAC;KACjB;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CACN,wBAAC,kBAAM,CAAC,IAAI,kBAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,IAAM,IAAI,eAC3D,uBAAC,kBAAM,CAAC,KAAK,IACZ,SAAS,EAAE,IAAA,cAAI,EAAC;wBACf,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC/B,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACrC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;wBACzB,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;wBAClC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;qBAC5B,CAAC,GACD,EACF,uBAAC,kBAAM,CAAC,KAAK,IAAC,SAAS,EAAC,eAAe,YACtC,gCAAK,SAAS,EAAC,SAAS,YACtB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GACxC,GACQ,KACF,CACd,CAAC;IACH,CAAC;CACD,CAAC"}
|
|
@@ -1,8 +1,42 @@
|
|
|
1
1
|
// @unocss-include
|
|
2
2
|
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
7
|
exports.Toaster = exports.toast = void 0;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
9
|
var react_hot_toast_1 = require("react-hot-toast");
|
|
6
10
|
Object.defineProperty(exports, "toast", { enumerable: true, get: function () { return react_hot_toast_1.toast; } });
|
|
7
|
-
|
|
11
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
12
|
+
const react_1 = require("motion/react");
|
|
13
|
+
const react_hot_toast_2 = require("react-hot-toast");
|
|
14
|
+
const colorMode_js_1 = require("../../colorMode.js");
|
|
15
|
+
const Icon_js_1 = require("../icon/Icon.js");
|
|
16
|
+
const toastOptions = {};
|
|
17
|
+
const Toaster = (props) => {
|
|
18
|
+
const mode = (0, colorMode_js_1.useResolvedColorMode)();
|
|
19
|
+
const { toasts, handlers } = (0, react_hot_toast_2.useToaster)(toastOptions);
|
|
20
|
+
const { startPause, endPause } = handlers;
|
|
21
|
+
const visibleToasts = toasts.filter((t) => t.visible);
|
|
22
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('fixed z-toast flex flex-col items-center gap-xs left-1/2 center-x top-sm max-w-400px', mode === 'dark' ? 'override-light' : 'override-dark', props.className), onMouseEnter: startPause, onMouseLeave: endPause, children: (0, jsx_runtime_1.jsx)(react_1.AnimatePresence, { children: visibleToasts.map((toast) => {
|
|
23
|
+
const message = typeof toast.message === 'function'
|
|
24
|
+
? toast.message(toast)
|
|
25
|
+
: toast.message;
|
|
26
|
+
return ((0, jsx_runtime_1.jsxs)(react_1.motion.div, Object.assign({ className: (0, clsx_1.default)({
|
|
27
|
+
'palette-success': toast.type === 'success',
|
|
28
|
+
'palette-attention': toast.type === 'error',
|
|
29
|
+
'palette-info': toast.type === 'blank',
|
|
30
|
+
}, 'bg-main-wash color-black rounded-md shadow-md px-md py-sm', 'flex flex-row gap-sm') }, toast.ariaProps, { initial: { scale: 0.8, opacity: 0, y: -20 }, exit: { scale: 0.8, opacity: 0, y: -20 }, animate: {
|
|
31
|
+
scale: 1,
|
|
32
|
+
opacity: 1,
|
|
33
|
+
y: 0,
|
|
34
|
+
}, layout: true, children: [(0, jsx_runtime_1.jsx)(Icon_js_1.Icon, { className: "mt-2px", loading: toast.type === 'loading', name: toast.type === 'success'
|
|
35
|
+
? 'check'
|
|
36
|
+
: toast.type === 'error'
|
|
37
|
+
? 'warning'
|
|
38
|
+
: 'info' }), message] }), toast.id));
|
|
39
|
+
}) }) }));
|
|
40
|
+
};
|
|
41
|
+
exports.Toaster = Toaster;
|
|
8
42
|
//# sourceMappingURL=toasts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toasts.js","sourceRoot":"","sources":["../../../../src/components/toasts/toasts.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toasts.js","sourceRoot":"","sources":["../../../../src/components/toasts/toasts.tsx"],"names":[],"mappings":";;;;;;;AACA,mDAAwC;AAA/B,wGAAA,KAAK,OAAA;AACd,gDAAwB;AACxB,wCAAuD;AACvD,qDAAkE;AAClE,qDAA0D;AAC1D,6CAAuC;AAEvC,MAAM,YAAY,GAAwB,EAAE,CAAC;AAEtC,MAAM,OAAO,GAAG,CAAC,KAA6B,EAAE,EAAE;IACxD,MAAM,IAAI,GAAG,IAAA,mCAAoB,GAAE,CAAC;IACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,4BAAU,EAAC,YAAY,CAAC,CAAC;IACtD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEtD,OAAO,CACN,gCACC,SAAS,EAAE,IAAA,cAAI,EACd,sFAAsF,EACtF,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,EACpD,KAAK,CAAC,SAAS,CACf,EACD,YAAY,EAAE,UAAU,EACxB,YAAY,EAAE,QAAQ,YAEtB,uBAAC,uBAAe,cACd,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,OAAO,GACZ,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;oBAClC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClB,OAAO,CACN,wBAAC,cAAM,CAAC,GAAG,kBAEV,SAAS,EAAE,IAAA,cAAI,EACd;wBACC,iBAAiB,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS;wBAC3C,mBAAmB,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO;wBAC3C,cAAc,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO;qBACtC,EACD,2DAA2D,EAC3D,sBAAsB,CACtB,IACG,KAAK,CAAC,SAAS,IACnB,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EACxC,OAAO,EAAE;wBACR,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,CAAC;wBACV,CAAC,EAAE,CAAC;qBACJ,EACD,MAAM,mBAEN,uBAAC,cAAI,IACJ,SAAS,EAAC,QAAQ,EAClB,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,EACjC,IAAI,EACH,KAAK,CAAC,IAAI,KAAK,SAAS;gCACvB,CAAC,CAAC,OAAO;gCACT,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;oCACxB,CAAC,CAAC,SAAS;oCACX,CAAC,CAAC,MAAM,GAET,EACD,OAAO,MA/BH,KAAK,CAAC,EAAE,CAgCD,CACb,CAAC;YACH,CAAC,CAAC,GACe,GACb,CACN,CAAC;AACH,CAAC,CAAC;AA9DW,QAAA,OAAO,WA8DlB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
argTypes: {};
|
|
5
|
+
parameters: {
|
|
6
|
+
controls: {
|
|
7
|
+
expanded: boolean;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj;
|
|
13
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// @unocss-include
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Default = void 0;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_hot_toast_1 = require("react-hot-toast");
|
|
7
|
+
const Box_js_1 = require("../box/Box.js");
|
|
8
|
+
const Button_js_1 = require("../button/Button.js");
|
|
9
|
+
const meta = {
|
|
10
|
+
title: 'Components/toasts',
|
|
11
|
+
argTypes: {},
|
|
12
|
+
parameters: {
|
|
13
|
+
controls: { expanded: true },
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
exports.default = meta;
|
|
17
|
+
exports.Default = {
|
|
18
|
+
render(args) {
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)(Box_js_1.Box, { col: true, gap: true, children: [(0, jsx_runtime_1.jsx)(Button_js_1.Button, { onClick: () => {
|
|
20
|
+
(0, react_hot_toast_1.toast)('This is a default toast! With a lot of text. Enough to wrap around.', {
|
|
21
|
+
duration: 10000,
|
|
22
|
+
});
|
|
23
|
+
}, children: "Show Default Toast" }), (0, jsx_runtime_1.jsx)(Button_js_1.Button, { color: "success", onClick: () => {
|
|
24
|
+
react_hot_toast_1.toast.success('This is a success toast!', {
|
|
25
|
+
duration: 10000,
|
|
26
|
+
});
|
|
27
|
+
}, children: "Show Success Toast" }), (0, jsx_runtime_1.jsx)(Button_js_1.Button, { color: "attention", onClick: () => {
|
|
28
|
+
react_hot_toast_1.toast.error('This is an error toast!', {
|
|
29
|
+
duration: 10000,
|
|
30
|
+
});
|
|
31
|
+
}, children: "Show Error Toast" }), (0, jsx_runtime_1.jsx)(Button_js_1.Button, { onClick: () => {
|
|
32
|
+
const id = react_hot_toast_1.toast.loading('This is a loading toast!');
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
react_hot_toast_1.toast.success('Loading complete!', { id, duration: 5000 });
|
|
35
|
+
}, 3000);
|
|
36
|
+
}, children: "Show Loading Toast" }), (0, jsx_runtime_1.jsx)(Button_js_1.Button, { onClick: () => {
|
|
37
|
+
react_hot_toast_1.toast.promise((async () => {
|
|
38
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
39
|
+
})(), {
|
|
40
|
+
loading: 'Promise is loading...',
|
|
41
|
+
success: 'Promise resolved!',
|
|
42
|
+
error: 'Promise rejected.',
|
|
43
|
+
});
|
|
44
|
+
}, children: "Show Promise Toast" })] }));
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=toasts.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toasts.stories.js","sourceRoot":"","sources":["../../../../src/components/toasts/toasts.stories.tsx"],"names":[],"mappings":";;;;AACA,qDAAwC;AACxC,0CAAoC;AACpC,mDAA6C;AAE7C,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,mBAAmB;IAC1B,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B;CACc,CAAC;AAEjB,kBAAe,IAAI,CAAC;AAIP,QAAA,OAAO,GAAU;IAC7B,MAAM,CAAC,IAAI;QACV,OAAO,CACN,wBAAC,YAAG,IAAC,GAAG,QAAC,GAAG,mBACX,uBAAC,kBAAM,IACN,OAAO,EAAE,GAAG,EAAE;wBACb,IAAA,uBAAK,EACJ,qEAAqE,EACrE;4BACC,QAAQ,EAAE,KAAM;yBAChB,CACD,CAAC;oBACH,CAAC,mCAGO,EACT,uBAAC,kBAAM,IACN,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;wBACb,uBAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE;4BACzC,QAAQ,EAAE,KAAM;yBAChB,CAAC,CAAC;oBACJ,CAAC,mCAGO,EACT,uBAAC,kBAAM,IACN,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,GAAG,EAAE;wBACb,uBAAK,CAAC,KAAK,CAAC,yBAAyB,EAAE;4BACtC,QAAQ,EAAE,KAAM;yBAChB,CAAC,CAAC;oBACJ,CAAC,iCAGO,EACT,uBAAC,kBAAM,IACN,OAAO,EAAE,GAAG,EAAE;wBACb,MAAM,EAAE,GAAG,uBAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;wBACrD,UAAU,CAAC,GAAG,EAAE;4BACf,uBAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5D,CAAC,EAAE,IAAI,CAAC,CAAC;oBACV,CAAC,mCAGO,EACT,uBAAC,kBAAM,IACN,OAAO,EAAE,GAAG,EAAE;wBACb,uBAAK,CAAC,OAAO,CACZ,CAAC,KAAK,IAAI,EAAE;4BACX,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC3D,CAAC,CAAC,EAAE,EACJ;4BACC,OAAO,EAAE,uBAAuB;4BAChC,OAAO,EAAE,mBAAmB;4BAC5B,KAAK,EAAE,mBAAmB;yBAC1B,CACD,CAAC;oBACH,CAAC,mCAGO,IACJ,CACN,CAAC;IACH,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const PRETEND_PWA: boolean;
|
|
2
|
+
export declare const PRETEND_INSTALLABLE: boolean;
|
|
3
|
+
export declare const PRETEND_OS: string | null;
|
|
4
|
+
export declare function getIsPWAInstalled(): boolean;
|
|
5
|
+
export declare function getOS(): string;
|
|
6
|
+
export declare function getIsSafari(): boolean;
|
|
7
|
+
export declare function getIsFirefox(): boolean;
|
|
8
|
+
export declare function getIsEdge(): boolean;
|
|
9
|
+
export declare function getIsMobile(): boolean;
|
|
10
|
+
export declare function getSupportsPWAInstallPrompt(): boolean;
|
|
11
|
+
export declare function getIsTouch(): boolean;
|