@a-type/ui 3.0.26 → 3.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/cjs/colors.stories.js +1 -8
  2. package/dist/cjs/colors.stories.js.map +1 -1
  3. package/dist/cjs/components/dialog/Dialog.js +30 -5
  4. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  5. package/dist/cjs/components/dialog/Dialog.stories.js +1 -1
  6. package/dist/cjs/components/dialog/Dialog.stories.js.map +1 -1
  7. package/dist/cjs/components/icon/Icon.js +1 -1
  8. package/dist/cjs/components/icon/Icon.js.map +1 -1
  9. package/dist/cjs/components/index.d.ts +2 -0
  10. package/dist/cjs/components/index.js +2 -0
  11. package/dist/cjs/components/index.js.map +1 -1
  12. package/dist/cjs/components/lightbox/Lightbox.d.ts +25 -0
  13. package/dist/cjs/components/lightbox/Lightbox.js +71 -0
  14. package/dist/cjs/components/lightbox/Lightbox.js.map +1 -0
  15. package/dist/cjs/components/lightbox/Lightbox.stories.d.ts +24 -0
  16. package/dist/cjs/components/lightbox/Lightbox.stories.js +21 -0
  17. package/dist/cjs/components/lightbox/Lightbox.stories.js.map +1 -0
  18. package/dist/cjs/components/lists/lists.d.ts +6 -0
  19. package/dist/cjs/components/lists/lists.js +16 -0
  20. package/dist/cjs/components/lists/lists.js.map +1 -0
  21. package/dist/cjs/components/lists/lists.stories.d.ts +14 -0
  22. package/dist/cjs/components/lists/lists.stories.js +25 -0
  23. package/dist/cjs/components/lists/lists.stories.js.map +1 -0
  24. package/dist/cjs/components/provider/Provider.d.ts +1 -4
  25. package/dist/cjs/components/provider/Provider.js +3 -3
  26. package/dist/cjs/components/provider/Provider.js.map +1 -1
  27. package/dist/cjs/components/pwaInstall/PlatformIcons.d.ts +5 -0
  28. package/dist/cjs/components/pwaInstall/PlatformIcons.js +25 -0
  29. package/dist/cjs/components/pwaInstall/PlatformIcons.js.map +1 -0
  30. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.d.ts +5 -0
  31. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.js +74 -0
  32. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.js.map +1 -0
  33. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.d.ts +15 -0
  34. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js +23 -0
  35. package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -0
  36. package/dist/cjs/components/pwaInstall/index.d.ts +3 -0
  37. package/dist/cjs/components/pwaInstall/index.js +21 -0
  38. package/dist/cjs/components/pwaInstall/index.js.map +1 -0
  39. package/dist/cjs/components/pwaInstall/useIsInstallReady.d.ts +3 -0
  40. package/dist/cjs/components/pwaInstall/useIsInstallReady.js +58 -0
  41. package/dist/cjs/components/pwaInstall/useIsInstallReady.js.map +1 -0
  42. package/dist/cjs/components/pwaInstall/useWebManifest.d.ts +2 -0
  43. package/dist/cjs/components/pwaInstall/useWebManifest.js +45 -0
  44. package/dist/cjs/components/pwaInstall/useWebManifest.js.map +1 -0
  45. package/dist/cjs/components/toasts/toasts.d.ts +4 -1
  46. package/dist/cjs/components/toasts/toasts.js +35 -1
  47. package/dist/cjs/components/toasts/toasts.js.map +1 -1
  48. package/dist/cjs/components/toasts/toasts.stories.d.ts +13 -0
  49. package/dist/cjs/components/toasts/toasts.stories.js +47 -0
  50. package/dist/cjs/components/toasts/toasts.stories.js.map +1 -0
  51. package/dist/cjs/platform.d.ts +11 -0
  52. package/dist/cjs/platform.js +95 -0
  53. package/dist/cjs/platform.js.map +1 -0
  54. package/dist/cjs/uno/logic/color.d.ts +0 -12
  55. package/dist/cjs/uno/logic/color.js +0 -35
  56. package/dist/cjs/uno/logic/color.js.map +1 -1
  57. package/dist/cjs/uno/logic/color.test.js +0 -12
  58. package/dist/cjs/uno/logic/color.test.js.map +1 -1
  59. package/dist/cjs/uno/theme/index.js +8 -0
  60. package/dist/cjs/uno/theme/index.js.map +1 -1
  61. package/dist/css/main.css +6 -5
  62. package/dist/esm/colors.stories.js +1 -8
  63. package/dist/esm/colors.stories.js.map +1 -1
  64. package/dist/esm/components/dialog/Dialog.js +30 -5
  65. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  66. package/dist/esm/components/dialog/Dialog.stories.js +1 -1
  67. package/dist/esm/components/dialog/Dialog.stories.js.map +1 -1
  68. package/dist/esm/components/icon/Icon.js +1 -1
  69. package/dist/esm/components/icon/Icon.js.map +1 -1
  70. package/dist/esm/components/index.d.ts +2 -0
  71. package/dist/esm/components/index.js +2 -0
  72. package/dist/esm/components/index.js.map +1 -1
  73. package/dist/esm/components/lightbox/Lightbox.d.ts +25 -0
  74. package/dist/esm/components/lightbox/Lightbox.js +32 -0
  75. package/dist/esm/components/lightbox/Lightbox.js.map +1 -0
  76. package/dist/esm/components/lightbox/Lightbox.stories.d.ts +24 -0
  77. package/dist/esm/components/lightbox/Lightbox.stories.js +18 -0
  78. package/dist/esm/components/lightbox/Lightbox.stories.js.map +1 -0
  79. package/dist/esm/components/lists/lists.d.ts +6 -0
  80. package/dist/esm/components/lists/lists.js +13 -0
  81. package/dist/esm/components/lists/lists.js.map +1 -0
  82. package/dist/esm/components/lists/lists.stories.d.ts +14 -0
  83. package/dist/esm/components/lists/lists.stories.js +22 -0
  84. package/dist/esm/components/lists/lists.stories.js.map +1 -0
  85. package/dist/esm/components/provider/Provider.d.ts +1 -4
  86. package/dist/esm/components/provider/Provider.js +3 -3
  87. package/dist/esm/components/provider/Provider.js.map +1 -1
  88. package/dist/esm/components/pwaInstall/PlatformIcons.d.ts +5 -0
  89. package/dist/esm/components/pwaInstall/PlatformIcons.js +18 -0
  90. package/dist/esm/components/pwaInstall/PlatformIcons.js.map +1 -0
  91. package/dist/esm/components/pwaInstall/PwaInstallTrigger.d.ts +5 -0
  92. package/dist/esm/components/pwaInstall/PwaInstallTrigger.js +71 -0
  93. package/dist/esm/components/pwaInstall/PwaInstallTrigger.js.map +1 -0
  94. package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.d.ts +15 -0
  95. package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js +20 -0
  96. package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -0
  97. package/dist/esm/components/pwaInstall/index.d.ts +3 -0
  98. package/dist/esm/components/pwaInstall/index.js +5 -0
  99. package/dist/esm/components/pwaInstall/index.js.map +1 -0
  100. package/dist/esm/components/pwaInstall/useIsInstallReady.d.ts +3 -0
  101. package/dist/esm/components/pwaInstall/useIsInstallReady.js +53 -0
  102. package/dist/esm/components/pwaInstall/useIsInstallReady.js.map +1 -0
  103. package/dist/esm/components/pwaInstall/useWebManifest.d.ts +2 -0
  104. package/dist/esm/components/pwaInstall/useWebManifest.js +42 -0
  105. package/dist/esm/components/pwaInstall/useWebManifest.js.map +1 -0
  106. package/dist/esm/components/toasts/toasts.d.ts +4 -1
  107. package/dist/esm/components/toasts/toasts.js +32 -1
  108. package/dist/esm/components/toasts/toasts.js.map +1 -1
  109. package/dist/esm/components/toasts/toasts.stories.d.ts +13 -0
  110. package/dist/esm/components/toasts/toasts.stories.js +44 -0
  111. package/dist/esm/components/toasts/toasts.stories.js.map +1 -0
  112. package/dist/esm/platform.d.ts +11 -0
  113. package/dist/esm/platform.js +84 -0
  114. package/dist/esm/platform.js.map +1 -0
  115. package/dist/esm/uno/logic/color.d.ts +0 -12
  116. package/dist/esm/uno/logic/color.js +0 -35
  117. package/dist/esm/uno/logic/color.js.map +1 -1
  118. package/dist/esm/uno/logic/color.test.js +0 -12
  119. package/dist/esm/uno/logic/color.test.js.map +1 -1
  120. package/dist/esm/uno/theme/index.js +8 -0
  121. package/dist/esm/uno/theme/index.js.map +1 -1
  122. package/package.json +5 -7
  123. package/src/colors.stories.tsx +0 -12
  124. package/src/components/dialog/Dialog.stories.tsx +20 -6
  125. package/src/components/dialog/Dialog.tsx +49 -4
  126. package/src/components/icon/Icon.tsx +6 -1
  127. package/src/components/index.ts +2 -0
  128. package/src/components/lightbox/Lightbox.stories.tsx +28 -0
  129. package/src/components/lightbox/Lightbox.tsx +87 -0
  130. package/src/components/lists/lists.stories.tsx +38 -0
  131. package/src/components/lists/lists.tsx +21 -0
  132. package/src/components/provider/Provider.tsx +2 -9
  133. package/src/components/pwaInstall/PlatformIcons.tsx +75 -0
  134. package/src/components/pwaInstall/PwaInstallTrigger.stories.tsx +29 -0
  135. package/src/components/pwaInstall/PwaInstallTrigger.tsx +227 -0
  136. package/src/components/pwaInstall/index.ts +3 -0
  137. package/src/components/pwaInstall/useIsInstallReady.ts +56 -0
  138. package/src/components/pwaInstall/useWebManifest.ts +55 -0
  139. package/src/components/toasts/toasts.stories.tsx +83 -0
  140. package/src/components/toasts/toasts.tsx +72 -1
  141. package/src/platform.ts +103 -0
  142. package/src/uno/logic/color.test.ts +0 -27
  143. package/src/uno/logic/color.ts +0 -56
  144. package/src/uno/theme/index.ts +8 -0
  145. package/dist/cjs/uno/logic/oklch.d.ts +0 -3
  146. package/dist/cjs/uno/logic/oklch.js +0 -96
  147. package/dist/cjs/uno/logic/oklch.js.map +0 -1
  148. package/dist/esm/uno/logic/oklch.d.ts +0 -3
  149. package/dist/esm/uno/logic/oklch.js +0 -90
  150. package/dist/esm/uno/logic/oklch.js.map +0 -1
  151. 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,3 @@
1
+ export * from './PwaInstallTrigger.js';
2
+ export * from './useIsInstallReady.js';
3
+ export * from './useWebManifest.js';
@@ -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,3 @@
1
+ export declare function useIsInstallReady(): boolean;
2
+ export declare function useIsInstalled(): boolean;
3
+ export declare function triggerDeferredInstall(): boolean;
@@ -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,2 @@
1
+ import { WebAppManifest } from 'web-app-manifest';
2
+ export declare function useWebManifest(manifestPath?: string): WebAppManifest;
@@ -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"}
@@ -1,2 +1,5 @@
1
1
  export type * from 'react-hot-toast';
2
- export { toast, Toaster } from 'react-hot-toast';
2
+ export { toast } from 'react-hot-toast';
3
+ export declare const Toaster: (props: {
4
+ className?: string;
5
+ }) => import("react/jsx-runtime.js").JSX.Element;
@@ -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
- Object.defineProperty(exports, "Toaster", { enumerable: true, get: function () { return react_hot_toast_1.Toaster; } });
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":";;;AACA,mDAAiD;AAAxC,wGAAA,KAAK,OAAA;AAAE,0GAAA,OAAO,OAAA"}
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;
@@ -0,0 +1,95 @@
1
+ // @unocss-include
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PRETEND_OS = exports.PRETEND_INSTALLABLE = exports.PRETEND_PWA = void 0;
5
+ exports.getIsPWAInstalled = getIsPWAInstalled;
6
+ exports.getOS = getOS;
7
+ exports.getIsSafari = getIsSafari;
8
+ exports.getIsFirefox = getIsFirefox;
9
+ exports.getIsEdge = getIsEdge;
10
+ exports.getIsMobile = getIsMobile;
11
+ exports.getSupportsPWAInstallPrompt = getSupportsPWAInstallPrompt;
12
+ exports.getIsTouch = getIsTouch;
13
+ exports.PRETEND_PWA = (typeof localStorage !== 'undefined' &&
14
+ localStorage.getItem('pretendPWA')) === 'true';
15
+ exports.PRETEND_INSTALLABLE = typeof localStorage !== 'undefined' &&
16
+ localStorage.getItem('pretendInstallable') === 'true';
17
+ exports.PRETEND_OS = (typeof localStorage !== 'undefined' && localStorage.getItem('pretendOS')) ||
18
+ null;
19
+ function getIsPWAInstalled() {
20
+ return ((typeof window !== 'undefined' && exports.PRETEND_PWA) ||
21
+ window.matchMedia('(display-mode: standalone)').matches);
22
+ }
23
+ function getOS() {
24
+ if (exports.PRETEND_OS) {
25
+ return exports.PRETEND_OS;
26
+ }
27
+ if (typeof window === 'undefined') {
28
+ return 'Server';
29
+ }
30
+ const userAgent = window.navigator.userAgent;
31
+ const platform = window.navigator.platform;
32
+ const macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'];
33
+ const windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];
34
+ const iosPlatforms = ['iPhone', 'iPad', 'iPod'];
35
+ if (macosPlatforms.indexOf(platform) !== -1) {
36
+ return 'Mac OS';
37
+ }
38
+ else if (iosPlatforms.indexOf(platform) !== -1) {
39
+ return 'iOS';
40
+ }
41
+ else if (windowsPlatforms.indexOf(platform) !== -1) {
42
+ return 'Windows';
43
+ }
44
+ else if (/Android/.test(userAgent)) {
45
+ return 'Android';
46
+ }
47
+ else if (!platform && /Linux/.test(userAgent)) {
48
+ return 'Linux';
49
+ }
50
+ return 'Other';
51
+ }
52
+ function getIsSafari() {
53
+ if (typeof window === 'undefined') {
54
+ return false;
55
+ }
56
+ const ua = navigator.userAgent.toLowerCase();
57
+ return !!ua.match(/WebKit/i) && !ua.match(/CriOS/i);
58
+ }
59
+ function getIsFirefox() {
60
+ if (typeof window === 'undefined') {
61
+ return false;
62
+ }
63
+ const ua = navigator.userAgent.toLowerCase();
64
+ return !!ua.match(/Firefox/i);
65
+ }
66
+ function getIsEdge() {
67
+ if (typeof window === 'undefined') {
68
+ return false;
69
+ }
70
+ const ua = navigator.userAgent.toLowerCase();
71
+ return !!ua.match(/Edge/i);
72
+ }
73
+ function getIsMobile() {
74
+ return (typeof window !== 'undefined' &&
75
+ (/Mobi/.test(navigator.userAgent) ||
76
+ /Android/i.test(navigator.userAgent) ||
77
+ /iPhone/i.test(navigator.userAgent) ||
78
+ /iPad/i.test(navigator.userAgent)));
79
+ }
80
+ function getSupportsPWAInstallPrompt() {
81
+ if (exports.PRETEND_INSTALLABLE) {
82
+ return true;
83
+ }
84
+ return typeof window !== 'undefined' && 'BeforeInstallPromptEvent' in window;
85
+ }
86
+ let isUsingTouch = false;
87
+ if (typeof window !== 'undefined') {
88
+ window.addEventListener('touchstart', () => {
89
+ isUsingTouch = true;
90
+ });
91
+ }
92
+ function getIsTouch() {
93
+ return isUsingTouch;
94
+ }
95
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"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"}
@@ -39,18 +39,6 @@ export interface OklchColorEquation {
39
39
  * OKLCH color string with calculations and references resolved.
40
40
  */
41
41
  computeOklch(context: ColorEvaluationContext): string;
42
- /**
43
- * Uses the equation and provided context to compute a static
44
- * sRGB color string with calculations and references resolved.
45
- * This is not as accurate as computeOklch, as it converts to sRGB gamut.
46
- */
47
- computeSrgb(context: ColorEvaluationContext): string;
48
- /**
49
- * Uses the equation and provided context to compute a static
50
- * HEX color string with calculations and references resolved.
51
- * This is not as accurate as computeOklch, as it converts to sRGB gamut.
52
- */
53
- computeHex(context: ColorEvaluationContext): string;
54
42
  /**
55
43
  * Returns the raw computed L, C, H values as numbers with units.
56
44
  */
@@ -6,9 +6,6 @@ exports.darken = darken;
6
6
  exports.livePropertyColorContext = livePropertyColorContext;
7
7
  exports.snapshotColorContext = snapshotColorContext;
8
8
  exports.oklchBuilder = oklchBuilder;
9
- const fn_1 = require("colorjs.io/fn");
10
- fn_1.ColorSpace.register(fn_1.sRGB);
11
- fn_1.ColorSpace.register(fn_1.OKLCH);
12
9
  function lighten(base, level) {
13
10
  return mod(base, level, 1);
14
11
  }
@@ -230,38 +227,6 @@ function oklchBuilder(impl) {
230
227
  const h = printEquation(equations.h, context);
231
228
  return `oklch(calc(${l}) calc(${c}) calc(${h}))`;
232
229
  },
233
- computeSrgb(context) {
234
- const l = computeEquation(equations.l, context);
235
- const c = computeEquation(equations.c, context);
236
- const h = computeEquation(equations.h, context);
237
- const asColor = {
238
- space: fn_1.OKLCH,
239
- alpha: 1,
240
- coords: [
241
- resolveComputationResult(l, [0, 1]),
242
- resolveComputationResult(c, [0, 0.4]),
243
- resolveComputationResult(h, [0, 360]),
244
- ],
245
- };
246
- return (0, fn_1.serialize)((0, fn_1.toGamut)((0, fn_1.to)(asColor, 'srgb'), {}));
247
- },
248
- computeHex(context) {
249
- const l = computeEquation(equations.l, context);
250
- const c = computeEquation(equations.c, context);
251
- const h = computeEquation(equations.h, context);
252
- const asColor = {
253
- space: fn_1.OKLCH,
254
- alpha: 1,
255
- coords: [
256
- resolveComputationResult(l, [0, 1]),
257
- resolveComputationResult(c, [0, 0.4]),
258
- resolveComputationResult(h, [0, 360]),
259
- ],
260
- };
261
- return (0, fn_1.serialize)((0, fn_1.toGamut)((0, fn_1.to)(asColor, 'srgb')), {
262
- format: 'hex',
263
- });
264
- },
265
230
  computeOklch(context) {
266
231
  const l = computeEquation(equations.l, context);
267
232
  const c = computeEquation(equations.c, context);