@rileybathurst/paddle 0.0.22 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rileybathurst/paddle",
3
3
  "private": false,
4
- "version": "0.0.22",
4
+ "version": "0.0.24",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -1,4 +1,5 @@
1
1
  import * as React from "react"
2
+ // ! this isnt finished it wont have faker when its done
2
3
  import { faker } from '@faker-js/faker';
3
4
  // import { GatsbyImage } from "gatsby-plugin-image"
4
5
 
@@ -27,6 +28,7 @@ function TopThree({ className }: TopThreeTypes) {
27
28
  return null;
28
29
  } */
29
30
 
31
+
30
32
  interface CompositionTypes {
31
33
  sport?: string;
32
34
  }
@@ -0,0 +1,44 @@
1
+ import * as React from "react"
2
+
3
+ import FacebookIcon from "./assets/facebook-icon"
4
+ import InstagramIcon from "./assets/instagram-icon"
5
+ import TripAdvisorIcon from "./assets/tripadvisor-icon"
6
+
7
+ interface SocialsTypes {
8
+ instagram: string
9
+ facebook: string
10
+ tripadvisor: string
11
+ }
12
+ export const PaddleSocials = ({ instagram, facebook, tripadvisor }: SocialsTypes) =>
13
+ <div className="social">
14
+ {facebook ?
15
+ <a
16
+ href={facebook}
17
+ target='_blank' rel='noopener noreferrer'
18
+ aria-label='facebook link'
19
+ >
20
+ <FacebookIcon />
21
+ </a>
22
+ : null
23
+ }
24
+ {instagram ?
25
+ <a href={instagram}
26
+ target='_blank'
27
+ rel='noopener noreferrer'
28
+ aria-label='instagram link'
29
+ >
30
+ <InstagramIcon />
31
+ </a>
32
+ : null
33
+ }
34
+ {tripadvisor ?
35
+ <a href={tripadvisor}
36
+ target='_blank'
37
+ rel='noopener noreferrer'
38
+ aria-label='tripadvisor link'
39
+ >
40
+ <TripAdvisorIcon />
41
+ </a>
42
+ : null
43
+ }
44
+ </div>
@@ -1,7 +1,5 @@
1
1
  // import * as React from "react"
2
2
 
3
- import { en } from "@faker-js/faker";
4
-
5
3
  interface TimeTypes {
6
4
  start?: string | null;
7
5
  finish?: string | null;
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+
3
+ const FacebookIcon = () => {
4
+ return (
5
+ <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ viewBox="0 0 1024 1024"
8
+ className="facebook"
9
+ >
10
+ <title>facebook page</title>
11
+ <g>
12
+ <path
13
+ className="circle"
14
+ d="M1024,512C1024,229.2,794.8,0,512,0S0,229.2,0,512c0,255.6,187.2,467.4,432,505.8V660H302V512h130V399.2
15
+ C432,270.9,508.4,200,625.4,200c56,0,114.6,10,114.6,10v126h-64.6c-63.6,0-83.4,39.5-83.4,80v96h142l-22.7,148H592v357.8
16
+ C836.8,979.4,1024,767.6,1024,512z"/>
17
+ <path
18
+ className="f"
19
+ d="M711.3,660L734,512H592v-96c0-40.5,19.8-80,83.4-80H740V210c0,0-58.6-10-114.6-10
20
+ c-117,0-193.4,70.9-193.4,199.2V512H302v148h130v357.8c26.1,4.1,52.8,6.2,80,6.2s53.9-2.1,80-6.2V660H711.3z"/>
21
+ </g>
22
+ </svg>
23
+ );
24
+ };
25
+
26
+ export default FacebookIcon;
@@ -0,0 +1,27 @@
1
+ import * as React from "react";
2
+
3
+ // I got this from the instagram website rather than the brand book as that one was a mess
4
+ const InstagramIcon = () => {
5
+ return (
6
+ <svg
7
+ viewBox="0 0 80 81"
8
+ fill="url(#jsc_s_2)"
9
+ className="instagram"
10
+ >
11
+ <title>instagram logo</title>
12
+ <defs>
13
+ <linearGradient x1="69.27%" x2="128.20%" y1="129.46%" y2="29.46%" id="jsc_s_2">
14
+ <stop offset="0" stopColor="#FDD074" />
15
+ <stop offset="25%" stopColor="#F77F34" />
16
+ <stop offset="50%" stopColor="#DD326E" />
17
+ <stop offset="75%" stopColor="#D82B7E" />
18
+ <stop offset="100%" stopColor="#A432B1" />
19
+ </linearGradient>
20
+ </defs>
21
+ <path d="m43.655 0 5.21.025 3.4.055 2.74.095L56.49.24c4.26.195 7.165.87 9.71 1.86 2.63 1.025 4.86 2.39 7.085 4.615 2.225 2.225 3.595 4.46 4.615 7.09.88 2.26 1.51 4.81 1.775 8.34l.19 3.775.09 3.59.045 6.855-.03 12.835-.075 4.015-.135 3.3c-.195 4.26-.87 7.17-1.86 9.715-1.02 2.63-2.39 4.865-4.615 7.09-2.225 2.225-4.455 3.59-7.085 4.615-2.26.88-4.81 1.51-8.335 1.775l-4.3.205-3.78.085-6.13.035-12.835-.03-4.01-.075-3.3-.135c-4.26-.195-7.165-.87-9.71-1.86-2.63-1.025-4.865-2.39-7.085-4.615C4.49 71.095 3.12 68.86 2.1 66.23 1.22 63.97.59 61.42.325 57.89l-.15-2.86-.095-2.745-.055-3.395L0 42.545l.025-11.4.055-3.395.095-2.745.065-1.485c.195-4.26.87-7.17 1.86-9.715 1.02-2.63 2.39-4.865 4.615-7.09C8.935 4.49 11.17 3.125 13.8 2.1c2.26-.88 4.81-1.51 8.34-1.775l2.855-.15 2.74-.095 3.4-.055L36.345 0h7.31zm5.09 7.235h-17.49l-3.03.045-4.39.165a32.326 32.326 0 0 0-3.294.307l-.599.097a20.85 20.85 0 0 0-1.316.273l-.46.117c-.148.04-.29.08-.426.121l-.93.31-.4.15c-1.87.73-3.2 1.595-4.6 2.995-1.4 1.4-2.265 2.735-2.99 4.6l-.31.845-.136.432c-.362 1.201-.705 2.817-.874 5.133l-.09 1.7-.13 3.57-.065 6.18.015 14.255.08 4.41.13 3.25a31.47 31.47 0 0 0 .344 3.534l.098.57c.017.092.034.182.052.27l.108.511.113.474c.019.076.038.151.058.224l.117.424.12.393.06.185.31.845c.725 1.865 1.59 3.2 2.99 4.6 1.4 1.4 2.73 2.27 4.6 2.995l.845.305.378.121.2.06.423.118c.073.02.148.04.224.058l.473.113.51.108.55.102c1.044.18 2.296.32 3.822.39l4.875.175 6.515.055 14.115-.025 3.58-.07 3.245-.135c1.526-.07 2.778-.21 3.822-.39l.55-.102.51-.108.473-.113.224-.058.423-.118.393-.12.185-.061.845-.305c1.87-.725 3.2-1.595 4.6-2.995 1.4-1.4 2.265-2.735 2.995-4.6l.305-.845c.41-1.24.82-2.96 1.01-5.565l.19-4.245.08-4.285.02-6.18-.02-11.145-.08-4.285-.13-3.225a33.046 33.046 0 0 0-.262-2.977l-.093-.622c-.049-.3-.1-.582-.155-.85l-.112-.516a18.598 18.598 0 0 0-.116-.479l-.12-.442-.062-.209-.38-1.135-.075-.2c-.73-1.865-1.595-3.2-2.995-4.6-1.4-1.4-2.73-2.265-4.6-2.995l-.4-.15-.93-.31-.229-.066-.488-.13c-1.102-.279-2.505-.525-4.358-.659L54.21 7.36l-2.435-.08-3.03-.045z" />
22
+ <path d="M40 19.47c11.345 0 20.54 9.2 20.54 20.545 0 11.35-9.195 20.55-20.54 20.55-11.345 0-20.54-9.2-20.54-20.55C19.46 28.67 28.655 19.47 40 19.47zm0 7.21c-7.365 0-13.335 5.97-13.335 13.335 0 7.37 5.97 13.34 13.335 13.34 7.365 0 13.335-5.97 13.335-13.34 0-7.365-5.97-13.335-13.335-13.335zM66.15 18.65a4.801 4.801 0 1 1-9.598-.002 4.801 4.801 0 0 1 9.598.002z" />
23
+ </svg>
24
+ );
25
+ };
26
+
27
+ export default InstagramIcon;
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+
3
+ const TripadvisorIcon = () => {
4
+ return (
5
+ <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ viewBox="0 0 696.6 696.6"
8
+ className="tripadvisor"
9
+ >
10
+ <title>tripadvisor logo</title>
11
+ <circle cx="348.3" cy="348.3" r="348.3" />
12
+ <path d="M563.4,280.3l42-45.8h-93.2c-98.8-67.3-228.8-67.3-327.6,0h-93.4l42,45.8c-52.2,48-55.7,129.3-7.6,181.6,48,52.2,129.3,55.7,181.6,7.6l41.2,44.8,41.2-44.8c52.1,48.2,133.4,44.9,181.6-7.2,48.2-52.1,44.9-133.4-7.2-181.6-.2-.1-.3-.3-.5-.4ZM219.8,462.2c-48,0-87-39-87-87s39-87,87-87,87,39,87,87h0c0,48-39,87-87,87ZM348.3,372.8c0-57.2-41.6-106.3-96.5-127.3,61.8-25.7,131.2-25.7,193,0-54.8,21-96.5,70.1-96.5,127.3h0ZM476.8,462.2c-48,0-87-39-87-87s39-87,87-87,87,39,87,87h0c0,48-39,87-87,87ZM476.8,329.7c-25.2,0-45.6,20.4-45.6,45.6s20.4,45.6,45.6,45.6,45.6-20.4,45.6-45.6h0c0-25.2-20.4-45.6-45.6-45.6h0ZM265.4,375.2c0,25.2-20.4,45.6-45.5,45.6-25.2,0-45.6-20.4-45.6-45.5,0-25.2,20.4-45.6,45.5-45.6s45.6,20.4,45.6,45.5h0Z" />
13
+ </svg>
14
+ );
15
+ };
16
+
17
+ export default TripadvisorIcon;
package/src/index.tsx CHANGED
@@ -9,6 +9,7 @@ export * from "./PaddleTime";
9
9
 
10
10
  // Molecules
11
11
  export * from "./PaddleComposition";
12
+ export * from "./PaddleSocials";
12
13
 
13
14
  // Organisms
14
15
  export * from "./PaddleTestimonials";
@@ -5,6 +5,7 @@ import { faker } from '@faker-js/faker';
5
5
 
6
6
  import { Pricing } from './Pricing';
7
7
  import { LocationDeck } from './LocationDeck';
8
+ import { Socials } from './Socials';
8
9
 
9
10
  function Deal() {
10
11
 
@@ -68,26 +69,7 @@ export const Footer = ({
68
69
  >
69
70
  {faker.internet.email()}
70
71
  </a>
71
- <div className="social">
72
- {/* {useSiteMetadata().social?.facebook ?? */}
73
- <a
74
- href={faker.location.city()}
75
- target='_blank' rel='noopener noreferrer'
76
- aria-label={`${faker.location.city()} facebook`}
77
- >
78
- {/* <FacebookIcon /> */}
79
- </a>
80
- {/* } */}
81
- {/* {useSiteMetadata().social?.instagram ?? */}
82
- <a href={faker.location.city()}
83
- target='_blank'
84
- rel='noopener noreferrer'
85
- aria-label={`${faker.location.city()} instagram`}
86
- >
87
- {/* <InstagramIcon /> */}
88
- </a>
89
- {/* } */}
90
- </div>
72
+ <Socials />
91
73
  </div>
92
74
  <hr />
93
75
  <div className="footer__locations">
@@ -0,0 +1,19 @@
1
+ // this is the Name.stories.tsx file
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ import { fn } from '@storybook/test';
4
+ import { Socials } from './Socials';
5
+
6
+ const meta = {
7
+ component: Socials,
8
+ title: 'Molecules/Socials',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Socials>;
11
+
12
+ export default meta;
13
+ type Story = StoryObj<typeof meta>;
14
+
15
+ export const Primary: Story = {
16
+ args: {
17
+ primary: true,
18
+ },
19
+ };
@@ -0,0 +1,50 @@
1
+ // this is the Name.tsx file
2
+ import React from 'react';
3
+ import { faker } from '@faker-js/faker';
4
+ import FacebookIcon from '../assets/facebook-icon';
5
+ import InstagramIcon from '../assets/instagram-icon';
6
+ import TripadvisorIcon from '../assets/tripadvisor-icon';
7
+
8
+ interface SocialsProps {
9
+ primary?: boolean;
10
+ onClick?: () => void;
11
+ }
12
+
13
+ export const Socials = ({
14
+ primary = false,
15
+ ...props
16
+ }: SocialsProps) => {
17
+
18
+ return (
19
+ <main className="social">
20
+ {/* // TODO: boolean check on socials */}
21
+ {/* {useSiteMetadata().social?.facebook ?? */}
22
+ <a
23
+ href={faker.location.city()}
24
+ target='_blank' rel='noopener noreferrer'
25
+ aria-label={`${faker.location.city()} facebook`}
26
+ >
27
+ <FacebookIcon />
28
+ </a>
29
+ {/* } */}
30
+ {/* {useSiteMetadata().social?.instagram ?? */}
31
+ <a href={faker.location.city()}
32
+ target='_blank'
33
+ rel='noopener noreferrer'
34
+ aria-label={`${faker.location.city()} instagram`}
35
+ >
36
+ <InstagramIcon />
37
+ </a>
38
+ {/* } */}
39
+ {/* {useSiteMetadata().social?.instagram ?? */}
40
+ <a href={faker.location.city()}
41
+ target='_blank'
42
+ rel='noopener noreferrer'
43
+ aria-label={`${faker.location.city()} tripadvisor`}
44
+ >
45
+ <TripadvisorIcon />
46
+ </a>
47
+ {/* } */}
48
+ </main>
49
+ );
50
+ };
@@ -6,7 +6,7 @@
6
6
  @import "body";
7
7
  @import "layout";
8
8
  @import "media";
9
- /* @import "color"; */
9
+ @import "color";
10
10
  @import "typography";
11
11
  @import "links";
12
12
  @import "buttons";
@@ -2,6 +2,16 @@
2
2
  /* #COLOR */
3
3
  /*------------------------------------*/
4
4
 
5
+ body {
6
+ background-color: whitesmoke;
7
+ color: var(--black-metal);
8
+
9
+ @media (prefers-color-scheme: dark) {
10
+ background-color: var(--black-metal);
11
+ color: var(--kingly-cloud);
12
+ }
13
+ }
14
+
5
15
  /*------------------------------------*/
6
16
  /* #TOP-BAR */
7
17
  /*------------------------------------*/
@@ -2,6 +2,10 @@
2
2
  /* #LAYOUT */
3
3
  /*------------------*/
4
4
 
5
+ body {
6
+ margin: 0; /* reset */
7
+ }
8
+
5
9
  .vulture {
6
10
  max-width: var(--vulture);
7
11
  flex-basis: var(--vulture);
@@ -97,3 +101,13 @@ footer {
97
101
  margin-block-end: 0.25rem;
98
102
  }
99
103
  }
104
+
105
+ /*------------------------------------*/
106
+ /* #SOCIAL */
107
+ /*------------------------------------*/
108
+
109
+ .social {
110
+ display: flex;
111
+ gap: var(--kilimanjaro);
112
+ margin-block-end: clamp(var(--kilimanjaro), 1.667vw, var(--aconcagua));
113
+ }
@@ -1,3 +1,14 @@
1
+ /*------------------------------------*/
2
+ /* #MEDIA */
3
+ /*------------------------------------*/
4
+
5
+ svg {
6
+ width: 100%;
7
+ height: 100%;
8
+ max-width: clamp(var(--kilimanjaro), 5vw, 5rem);
9
+ max-height: clamp(var(--kilimanjaro), 5vw, 5rem);
10
+ }
11
+
1
12
  /*------------------*/
2
13
  /* #LOGO */
3
14
  /*------------------*/
@@ -38,3 +49,91 @@
38
49
  max-height: 10rem;
39
50
  }
40
51
  }
52
+
53
+ /*------------------*/
54
+ /* #SOCIAL */
55
+ /*------------------*/
56
+ .social svg {
57
+ transition: var(--slow);
58
+
59
+ * {
60
+ transition: var(--slow);
61
+ }
62
+ }
63
+
64
+ /*------------------------------------*/
65
+ /* #FACEBOOK */
66
+ /*------------------------------------*/
67
+ /* https://about.meta.com/brand/resources/facebook/logo/ */
68
+
69
+ .facebook {
70
+ .f {
71
+ fill: transparent;
72
+ }
73
+
74
+ @media (prefers-color-scheme: dark) {
75
+ .circle {
76
+ fill: white;
77
+ }
78
+ }
79
+ }
80
+
81
+ .facebook:hover {
82
+ .circle {
83
+ fill: #1877f2;
84
+ }
85
+ .f {
86
+ fill: white;
87
+ }
88
+ }
89
+
90
+ /*------------------------------------*/
91
+ /* #INSTAGRAM */
92
+ /*------------------------------------*/
93
+ /* https://about.meta.com/brand/resources/instagram/instagram-brand/ */
94
+
95
+ .instagram {
96
+ filter: grayscale(100%);
97
+ mix-blend-mode: multiply;
98
+
99
+ @media (prefers-color-scheme: dark) {
100
+ filter: grayscale(100%) brightness(300%);
101
+ mix-blend-mode: screen;
102
+ }
103
+ }
104
+
105
+ .instagram:hover {
106
+ filter: grayscale(0%);
107
+ fill: revert-layer;
108
+ mix-blend-mode: normal;
109
+
110
+ @media (prefers-color-scheme: dark) {
111
+ filter: grayscale(0%) brightness(100%);
112
+ }
113
+ }
114
+
115
+ /*------------------------------------*/
116
+ /* #TRIPADVISOR */
117
+ /*------------------------------------*/
118
+ /* https://www.tripadvisor.com/pdfs/cprc/BrandGuidelinesForPartners.pdf */
119
+ /* TODO: sizing fix */
120
+ /* I know this is smaller without the circle but for now adding a stroke to the circle wasnt right */
121
+ /* looks better in dark for now */
122
+
123
+ .tripadvisor {
124
+ circle {
125
+ fill: transparent;
126
+ }
127
+
128
+ @media (prefers-color-scheme: dark) {
129
+ circle {
130
+ fill: white;
131
+ }
132
+ }
133
+ }
134
+
135
+ .tripadvisor:hover {
136
+ circle {
137
+ fill: #34e0a1;
138
+ }
139
+ }
@@ -136,4 +136,5 @@
136
136
  /*------------------*/
137
137
  --easing: cubic-bezier(0.5, 0, 0.5, 1);
138
138
  --fade: 0.2s var(--easing);
139
+ --slow: 0.5s var(--easing);
139
140
  }
@@ -0,0 +1,11 @@
1
+ import { graphql } from "gatsby"
2
+
3
+ export const query = graphql`
4
+ fragment testimonialFragment on STRAPI_TESTIMONIAL {
5
+ id
6
+ testimonial
7
+ customer
8
+ sign
9
+ location
10
+ }
11
+ `