Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions platforms/metagram/src/app.css
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,6 +27,14 @@
.subtext {
@apply font-geist text-xs/[1] font-normal;
}
.hide-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
display: none;
}
}

@theme {
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,84 @@
<script module>
export {DrawerContent};
export {DrawerContent};
</script>

{#snippet DrawerContent()}
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam.
Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur.
Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto.
Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel?
Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate.
Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa?
Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque.
Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit.
Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque?
Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus.
Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus.
Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae!
Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis!
Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in.
Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates.
Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia.
Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe.
Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda.
Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt!
Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident!
Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus!
Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis?
Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio!
Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus.
Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia!
Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi?
Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore.
Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!</p>
{/snippet}
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam
expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea
exercitationem iusto velit incidunt quibusdam. Incidunt maiores sed, voluptas magnam magni
reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea
excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque
repellat, alias consequatur. Inventore deleniti aliquam sapiente, vel ipsam tempore
veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus
eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. Repellendus
unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat
quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem
ipsum sequi non vel? Nemo aspernatur incidunt veniam quia animi vel asperiores quidem,
expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus
similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. Facilis aliquid
nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque
perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni
consequatur. Praesentium, dolor ipsa? Et, veritatis saepe animi harum eligendi fugit
accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium
necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur,
reprehenderit! Mollitia, neque. Optio nam eius voluptatem. Facilis hic cum non est quod modi
sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam
deleniti et adipisci maxime in velit. Praesentium doloribus earum sunt quasi voluptas quo
expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse
molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? Animi
recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora
alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat
provident necessitatibus. Consequatur iusto est sint doloribus quis porro quibusdam
inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus
recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore.
Delectus. Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam!
Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis
nulla ipsa tempora eos commodi beatae! Atque vel vitae perspiciatis quam soluta eaque sed
illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse.
Vel nihil expedita reprehenderit culpa facilis omnis! Non eum minima eius sapiente quo nulla
culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur
nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. Magni
ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo,
dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam
possimus eos officia voluptates. Deleniti quas amet corporis enim possimus nostrum
laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui
minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. Quod unde id
ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui
numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil
natus rerum saepe. Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit
adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit,
libero exercitationem dolore sequi odio assumenda. Cum nostrum iusto ratione excepturi
mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt
temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem!
Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id
cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis
placeat amet rerum inventore nesciunt! Qui voluptas dolor similique id ratione magnam quas
dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi
fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident.
Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia?
Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos
nemo ex provident! Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet
dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero
cum. Impedit, esse. Voluptates tempora saepe repellendus! Quaerat quod animi suscipit error.
Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque
repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non
blanditiis? Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum
eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis
perspiciatis! Debitis perferendis pariatur cum odio! Est eveniet commodi dolorem numquam
voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae,
quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore
praesentium consectetur libero at voluptatibus. Consequatur repudiandae magnam sit
blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos
excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit,
dignissimos mollitia! Adipisci voluptatem molestiae doloribus alias quisquam neque commodi
incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam
facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? Alias
harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis
laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam
dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. Suscipit dolorum
nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui
perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore!
Explicabo quaerat doloremque labore harum vitae!
</p>
{/snippet}
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,6 @@ export default {

export const Main = {
args: {
children: DrawerContent
}
children: DrawerContent
}
};
46 changes: 30 additions & 16 deletions platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,9 +2,9 @@
import { onMount, type Snippet } from 'svelte';
import { CupertinoPane } from 'cupertino-pane';
import type { HTMLAttributes } from 'svelte/elements';
import { clickOutside, cn } from '$lib/utils';
import { cn } from '$lib/utils';
import { swipe } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';
import type { SwipeCustomEvent } from 'svelte-gestures';

interface IDrawerProps extends HTMLAttributes<HTMLDivElement> {
isPaneOpen?: boolean;
Expand All@@ -22,18 +22,17 @@
let drawerElement: HTMLElement;
let drawer: CupertinoPane;

const handleClickOutside = () => {
drawer?.destroy({ animate: true });
isPaneOpen = false;
};
function dismiss() {
if (drawer) drawer.destroy({ animate: true });
}

const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === 'down' as string) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};
const handleDrawerSwipe = (event: SwipeCustomEvent) => {
if (event.detail.direction === ('down' as string)) {
handleSwipe?.(false);
drawer?.destroy({ animate: true });
isPaneOpen = false;
}
};

onMount(() => {
if (!drawerElement) return;
Expand All@@ -47,7 +46,10 @@
bottomClose: true,
buttonDestroy: false,
cssClass: '',
initialBreak: 'middle'
initialBreak: 'middle',
events: {
onBackdropTap: () => dismiss()
}
});
if (isPaneOpen) {
drawer.present({ animate: true });
Expand All@@ -67,8 +69,20 @@
minSwipeDistance: 60
})}
onswipe={handleDrawerSwipe}
use:clickOutside={handleClickOutside}
class={cn(restProps.class)}
>
{@render children?.()}
{@render children?.()}
</div>

<style>
:global(.pane) {
border-top-left-radius: 32px !important;
border-top-right-radius: 32px !important;
padding: 20px !important;
scrollbar-width: none !important;
-ms-overflow-style: none !important;
::-webkit-scrollbar {
display: none !important;
}
}
</style>
Comment thread
This conversation was marked as resolved.
65 changes: 31 additions & 34 deletions platforms/metagram/src/lib/fragments/Header/Header.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
import type { ComponentProps } from "svelte";
import Header from "./Header.svelte";
import type { ComponentProps } from 'svelte';
import Header from './Header.svelte';

export default {
title: "Fragments/Header",
component: Header,
tags: ["autodocs"],
render: (args: {
Component: Header;
props: ComponentProps<typeof Header>;
}) => ({
Component: Header,
props: args,
}),
title: 'UI/Header',
component: Header,
tags: ['autodocs'],
render: (args: { Component: Header; props: ComponentProps<typeof Header> }) => ({
Component: Header,
props: args
})
};

export const Primary = {
args: {
variant: "primary",
heading: "metagram",
callback: () => alert("clicked"),
},
args: {
variant: 'primary',
heading: 'metagram',
callback: () => alert('clicked')
}
};

export const PrimaryWithNoFlash = {
args: {
variant: "primary",
heading: "messages",
},
args: {
variant: 'primary',
heading: 'messages'
}
};

export const Secondary = {
args: {
variant: "secondary",
heading: "Account",
},
args: {
variant: 'secondary',
heading: 'Account'
}
};

export const SecondaryWithMenu = {
args: {
variant: "secondary",
heading: "Account",
callback: () => alert("menu clicked"),
},
args: {
variant: 'secondary',
heading: 'Account',
callback: () => alert('menu clicked')
}
};

export const Tertiary = {
args: {
variant: "tertiary",
callback: () => alert("clicked"),
},
args: {
variant: 'tertiary',
callback: () => alert('clicked')
}
};
49 changes: 23 additions & 26 deletions platforms/metagram/src/lib/fragments/Message/Message.stories.ts
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
import type { ComponentProps } from "svelte";
import Message from "./Message.svelte";
import type { ComponentProps } from 'svelte';
import Message from './Message.svelte';

export default {
title: "UI/Message",
component: Message,
tags: ["autodocs"],
render: (args: {
Component: Message;
props: ComponentProps<typeof Message>;
}) => ({
Component: Message,
props: args,
}),
title: 'UI/Message',
component: Message,
tags: ['autodocs'],
render: (args: { Component: Message; props: ComponentProps<typeof Message> }) => ({
Component: Message,
props: args
})
};

export const Primary = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: false,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: false,
callback: () => alert('Message clicked')
}
};

export const Unread = {
args: {
avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
username: "donaldthefirstt",
text: "i was thinking of making it to the conference so we could take some more fire pictures like last time",
unread: true,
callback: () => alert("Message clicked"),
},
args: {
avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250',
username: 'donaldthefirstt',
text: 'i was thinking of making it to the conference so we could take some more fire pictures like last time',
unread: true,
callback: () => alert('Message clicked')
}
};
Loading