diff --git a/src/app.css b/src/app.css
index 57f9aae..68114ee 100644
--- a/src/app.css
+++ b/src/app.css
@@ -4,33 +4,17 @@
@tailwind components;
@tailwind utilities;
-@layer utilities {
- .brutal {
- @apply border-2 border-black rounded-md;
- }
-
- .hovers-static {
- box-shadow: 2px 2px 0 #000000;
- -webkit-box-shadow: 2px 2px 0px 0px #000000;
- }
-
- .hovers {
- box-shadow: 2px 2px 0 #000000;
- -webkit-box-shadow: 2px 2px 0px 0px #000000;
- }
-
- .hovers-above,
- .hovers:focus,
- .hovers:hover {
- box-shadow: 3px 3px 0 #000000;
- -webkit-box-shadow: 3px 3px 0px 0px #000000;
- }
-}
-
:root {
font-family: 'Roboto Mono', monospace;
}
body {
@apply font-body;
+}
+
+@supports(padding:max(0px)) {
+ body, header, footer {
+ padding-left: min(0vmin, env(safe-area-inset-left));
+ padding-right: min(0vmin, env(safe-area-inset-right));
+ }
}
\ No newline at end of file
diff --git a/src/lib/components/AppBar.svelte b/src/lib/components/AppBar.svelte
new file mode 100644
index 0000000..658c8b2
--- /dev/null
+++ b/src/lib/components/AppBar.svelte
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/src/lib/components/things/BorrowModal/BorrowModal.svelte b/src/lib/components/BorrowModal/BorrowModal.svelte
similarity index 100%
rename from src/lib/components/things/BorrowModal/BorrowModal.svelte
rename to src/lib/components/BorrowModal/BorrowModal.svelte
diff --git a/src/lib/components/things/BorrowModal/index.ts b/src/lib/components/BorrowModal/index.ts
similarity index 100%
rename from src/lib/components/things/BorrowModal/index.ts
rename to src/lib/components/BorrowModal/index.ts
diff --git a/src/lib/components/things/BorrowModal/stores.ts b/src/lib/components/BorrowModal/stores.ts
similarity index 100%
rename from src/lib/components/things/BorrowModal/stores.ts
rename to src/lib/components/BorrowModal/stores.ts
diff --git a/src/lib/components/Button/Button.svelte b/src/lib/components/Button/Button.svelte
index b1e2512..5db65c9 100644
--- a/src/lib/components/Button/Button.svelte
+++ b/src/lib/components/Button/Button.svelte
@@ -8,7 +8,6 @@
export let selected: boolean = false;
export let theme: ButtonTheme = ButtonTheme.default;
export let size: ButtonSize = ButtonSize.normal;
- export let flat: boolean = false;
const padding = size === ButtonSize.normal ? 'px-3 py-1' : 'px-2';
@@ -27,7 +26,7 @@
class:defaultToggled={isToggled(ButtonTheme.default)}
class:primary={theme === ButtonTheme.primary}
class:primaryToggled={isToggled(ButtonTheme.primary)}
- class="{padding} rounded brutal {!flat && 'hovers'} font-bold font-display outline-none">
+ class="{padding} rounded-md border border-gray-500 font-semibold font-display outline-none">
{#if icon && !selected}
{/if}
@@ -38,8 +37,12 @@
\ No newline at end of file
diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts
index 1a9fd88..9dcf982 100644
--- a/src/lib/components/index.ts
+++ b/src/lib/components/index.ts
@@ -4,5 +4,4 @@ export { default as Column } from "./Column.svelte";
export { default as Head } from "./Head.svelte";
export { default as LoadingIndicator } from "./LoadingIndicator.svelte";
export { default as Row } from "./Row.svelte";
-export { default as TextInput } from "./TextInput.svelte";
-export { default as Title } from "./Title.svelte";
\ No newline at end of file
+export { default as TextInput } from "./TextInput.svelte";
\ No newline at end of file
diff --git a/src/lib/components/layout/Footer.svelte b/src/lib/components/layout/Footer.svelte
deleted file mode 100644
index 9f0006c..0000000
--- a/src/lib/components/layout/Footer.svelte
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/src/lib/components/layout/Header.svelte b/src/lib/components/layout/Header.svelte
deleted file mode 100644
index bffde2e..0000000
--- a/src/lib/components/layout/Header.svelte
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/src/lib/components/layout/Layout.svelte b/src/lib/components/layout/Layout.svelte
deleted file mode 100644
index 3a5768e..0000000
--- a/src/lib/components/layout/Layout.svelte
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/lib/components/things/BookmarkIcon.svelte b/src/lib/components/things/BookmarkIcon.svelte
new file mode 100644
index 0000000..153ce12
--- /dev/null
+++ b/src/lib/components/things/BookmarkIcon.svelte
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/src/lib/components/things/Thing.svelte b/src/lib/components/things/Thing.svelte
index d50d96e..69e5e7c 100644
--- a/src/lib/components/things/Thing.svelte
+++ b/src/lib/components/things/Thing.svelte
@@ -1,15 +1,18 @@
+
+
+
($activeScreen = Screen.catalog)}
+ >
+
+
+
($activeScreen = Screen.myList)}
+ >
+
+ {#if $thingsLength}
+
+ {$thingsLength}
+
+ {/if}
+
+
+
+
($activeScreen = Screen.info)}
+ >
+
+
+
+
+
diff --git a/src/lib/views/CatalogView.svelte b/src/lib/views/CatalogView.svelte
new file mode 100644
index 0000000..6b6da53
--- /dev/null
+++ b/src/lib/views/CatalogView.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+
+{#if $filteredThings.length > 0}
+
+{:else}
+ {$t('No Results')}
+{/if}
diff --git a/src/lib/views/InfoView/InfoView.svelte b/src/lib/views/InfoView/InfoView.svelte
new file mode 100644
index 0000000..de001e6
--- /dev/null
+++ b/src/lib/views/InfoView/InfoView.svelte
@@ -0,0 +1,33 @@
+
+
+
+
+
{$t('How to Borrow')}
+
+ {$t('How to Borrow.Step1')}
+ {$t('How to Borrow.Step2')}
+
+
+ window.open("https://www.pvdthings.coop/membership", '_blank').focus()}>
+ {$t('Learn More')}
+
+
+
+
+
+
{$t('Hours')}
+
+ {$t('Wednesday')} 6PM - 8PM
+ {$t('Saturday')} 11AM - 2PM
+
+
+
+
+
\ No newline at end of file
diff --git a/src/lib/views/InfoView/index.ts b/src/lib/views/InfoView/index.ts
new file mode 100644
index 0000000..78e106f
--- /dev/null
+++ b/src/lib/views/InfoView/index.ts
@@ -0,0 +1,3 @@
+import InfoView from "./InfoView.svelte";
+
+export default InfoView;
\ No newline at end of file
diff --git a/src/lib/views/LanguageToggleView.svelte b/src/lib/views/LanguageToggleView.svelte
new file mode 100644
index 0000000..f271bd0
--- /dev/null
+++ b/src/lib/views/LanguageToggleView.svelte
@@ -0,0 +1,13 @@
+
+
+ $locale = otherLocale}
+ class="btn btn-ghost btn-circle font-sans text-lg lg:text-xl"
+ aria-label="Language"
+>
+ {otherLocale.toUpperCase()}
+
diff --git a/src/lib/views/MyListView/MyListTableRow.svelte b/src/lib/views/MyListView/MyListTableRow.svelte
new file mode 100644
index 0000000..a48645c
--- /dev/null
+++ b/src/lib/views/MyListView/MyListTableRow.svelte
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
{thingName}
+
{available} {$t('Available')}
+
+
+
+
+ {$t(category)}
+
+
+ dispatch('remove')}>
+
+
+
+
\ No newline at end of file
diff --git a/src/lib/views/MyListView/MyListView.svelte b/src/lib/views/MyListView/MyListView.svelte
new file mode 100644
index 0000000..947d889
--- /dev/null
+++ b/src/lib/views/MyListView/MyListView.svelte
@@ -0,0 +1,37 @@
+
+
+{#if $things.length > 0}
+
+
+
+ {$t('Name')}
+ {$t('Category')}
+
+
+
+
+ {#each $things as thing}
+ {@const thingName = isSpanish ? thing.spanishName : thing.name}
+ removeThing(thing.id)}
+ {thingName}
+ category={thing.categories[0]}
+ available={thing.available}
+ imgSrc={thing.image}
+ />
+ {/each}
+
+
+{:else}
+ {$t('No Bookmarks')}
+{/if}
\ No newline at end of file
diff --git a/src/lib/views/MyListView/index.ts b/src/lib/views/MyListView/index.ts
new file mode 100644
index 0000000..c8e9a3b
--- /dev/null
+++ b/src/lib/views/MyListView/index.ts
@@ -0,0 +1,3 @@
+import MyListView from './MyListView.svelte';
+
+export default MyListView;
\ No newline at end of file
diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte
new file mode 100644
index 0000000..7944207
--- /dev/null
+++ b/src/routes/+error.svelte
@@ -0,0 +1,11 @@
+
+
+
+
+
{$t("It's not loading!")}
+ {$page.status} {$page.error.message}
+
+
\ No newline at end of file
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 5a6d8bb..42b4f2d 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -1,17 +1,27 @@
-