@rileybathurst/paddle 0.0.34 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +1 -1
  2. package/package.json +13 -4
  3. package/src/App.tsx +0 -1
  4. package/src/Button.tsx +15 -0
  5. package/src/PaddleBookNow.tsx +15 -0
  6. package/src/PaddleComposition.tsx +56 -0
  7. package/src/PaddleLocationCard.tsx +146 -0
  8. package/src/PaddleLocationDeck.tsx +21 -0
  9. package/src/PaddleSocials.tsx +44 -0
  10. package/src/PaddleTestimonials.tsx +24 -0
  11. package/src/PaddleTicket.tsx +53 -0
  12. package/src/PaddleTime.tsx +75 -0
  13. package/src/Test.tsx +3 -0
  14. package/src/assets/facebook-icon.tsx +26 -0
  15. package/src/assets/instagram-icon.tsx +27 -0
  16. package/src/assets/tripadvisor-icon.tsx +17 -0
  17. package/src/index.tsx +31 -1
  18. package/src/stories/BookNow.stories.tsx +19 -0
  19. package/src/stories/BookNow.tsx +29 -0
  20. package/src/stories/BrandList.stories.tsx +19 -0
  21. package/src/stories/BrandList.tsx +19 -0
  22. package/src/stories/Button.stories.tsx +19 -0
  23. package/src/stories/Button.tsx +15 -35
  24. package/src/stories/Card.stories.tsx +19 -0
  25. package/src/stories/Card.tsx +43 -0
  26. package/src/stories/Colors.mdx +71 -0
  27. package/src/stories/Composition.stories.tsx +19 -0
  28. package/src/stories/Composition.tsx +21 -0
  29. package/src/stories/Deal.tsx +31 -0
  30. package/src/stories/Deck.stories.tsx +19 -0
  31. package/src/stories/Deck.tsx +22 -0
  32. package/src/stories/Eyebrow.stories.tsx +19 -0
  33. package/src/stories/Eyebrow.tsx +21 -0
  34. package/src/stories/Footer.stories.tsx +19 -0
  35. package/src/stories/Footer.tsx +94 -0
  36. package/src/stories/Header.stories.ts +7 -7
  37. package/src/stories/Header.tsx +23 -51
  38. package/src/stories/Language.stories.tsx +19 -0
  39. package/src/stories/Language.tsx +22 -0
  40. package/src/stories/Links.stories.tsx +19 -0
  41. package/src/stories/Links.tsx +25 -0
  42. package/src/stories/Location.stories.tsx +19 -0
  43. package/src/stories/Location.tsx +55 -0
  44. package/src/stories/LocationDeck.stories.tsx +19 -0
  45. package/src/stories/LocationDeck.tsx +42 -0
  46. package/src/stories/Logo.stories.tsx +19 -0
  47. package/src/stories/Logo.tsx +60 -0
  48. package/src/stories/Page.stories.ts +6 -15
  49. package/src/stories/Page.tsx +116 -63
  50. package/src/stories/Pricing.stories.tsx +19 -0
  51. package/src/stories/Pricing.tsx +74 -0
  52. package/src/stories/Socials.stories.tsx +19 -0
  53. package/src/stories/Socials.tsx +50 -0
  54. package/src/stories/Spec.stories.tsx +19 -0
  55. package/src/stories/Spec.tsx +99 -0
  56. package/src/stories/Svg.stories.tsx +19 -0
  57. package/src/stories/Svg.tsx +23 -0
  58. package/src/stories/Testimonial.stories.tsx +19 -0
  59. package/src/stories/Testimonial.tsx +24 -0
  60. package/src/stories/Testimonials.stories.tsx +19 -0
  61. package/src/stories/Testimonials.tsx +42 -0
  62. package/src/stories/Ticket.stories.tsx +19 -0
  63. package/src/stories/Ticket.tsx +47 -0
  64. package/src/stories/TopBar.stories.tsx +19 -0
  65. package/src/stories/TopBar.tsx +19 -0
  66. package/src/stories/Typography.mdx +51 -0
  67. package/src/stories/Typography.stories.tsx +19 -0
  68. package/src/stories/Typography.tsx +39 -0
  69. package/src/stories/Widths.stories.tsx +19 -0
  70. package/src/stories/Widths.tsx +151 -0
  71. package/src/styles/a11y.css +10 -0
  72. package/src/styles/app.css +9 -1
  73. package/src/styles/body.css +0 -9
  74. package/src/styles/buttons.css +41 -0
  75. package/src/styles/color.css +21 -0
  76. package/src/styles/layout.css +156 -0
  77. package/src/styles/links.css +23 -0
  78. package/src/styles/lists.css +17 -0
  79. package/src/styles/media.css +139 -0
  80. package/src/styles/typography.css +229 -0
  81. package/src/styles/variables.css +140 -0
  82. package/src/testimonial-fragment.tsx +11 -0
  83. package/src/types/location-card-types.ts +24 -0
  84. package/src/types/ticket-types.ts +19 -0
  85. package/.eslintrc.cjs +0 -14
  86. package/.storybook/main.ts +0 -20
  87. package/.storybook/preview.ts +0 -16
  88. package/index.html +0 -13
  89. package/public/vite.svg +0 -1
  90. package/src/App.css +0 -42
  91. package/src/stories/Button.stories.ts +0 -52
  92. package/src/stories/button.css +0 -30
  93. package/src/test.tsx +0 -11
  94. package/tsconfig.json +0 -25
  95. package/tsconfig.node.json +0 -11
  96. package/vite.config.ts +0 -7
@@ -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 { BrandList } from './BrandList';
5
+
6
+ const meta = {
7
+ component: BrandList,
8
+ title: 'Molecules/BrandList',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof BrandList>;
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,19 @@
1
+ // this is the Name.tsx file
2
+ import React from 'react';
3
+ import { Link } from 'react-aria-components';
4
+ import { faker } from '@faker-js/faker';
5
+
6
+ export const BrandList = () => {
7
+
8
+ return (
9
+ // <ul className='brand_list'>
10
+ <li key='kayak test brand'>
11
+ {/* // ? why test */}
12
+ <Link href={faker.location.city()}>
13
+ <svg viewBox="0 0 201.9 202.6" xmlns="http://www.w3.org/2000/svg"><title>boardworks </title><path d="m201.9 96.5c-67.3 0-134 0-200.6 0 4.6-5.2 7.5-11.6 16.6-11.5 23.7.3 47.3-1.6 70.3-8 8.6-2.4 16.8-6.2 24.7-10.4 5.6-3 10.4-7.8 9.7-15.1-.7-7.4-6.2-11.2-12.4-13.7-16.7-6.6-33-4.3-48.9 2.8-3.1 1.4-6.1 3.1-9.1 4.6-.3-.4-.6-.8-1-1.1 3.5-3.2 7.1-6.3 10.4-9.6 9.7-9.6 19.3-19.3 29-29 7.2-7.1 13.7-7.4 20.8-.3 29.9 29.7 59.6 59.6 89.4 89.5.4.3.5.7 1.1 1.8z" /><path d="m0 106.4h17.2c12.5 0 25 .2 37.5-.1 7.3-.2 13.3 2.4 17.3 8.1 4.1 5.9 7.5 12.5 10.7 19 3.9 8.1 6.9 16.6 11.1 24.5 6.6 12.6 15.4 23.4 29.3 28.5-4.1 4.3-7.9 8.7-12.2 12.5-5.1 4.5-11.2 4.9-17.1 1.1-3.4-2.2-6.5-5.1-9.5-8.1-26.9-27-53.8-54.1-80.7-81.1-1-1.2-2-2.5-3.6-4.4z" /><path d="m81.8 106.5h49.2c-6.6 10.2-8.8 20.8-4.1 31.9 4.8 11.3 13.8 17.1 27 18.2-7 6.9-13.4 13.4-19.9 19.6-.8.8-3 1.1-4.1.6-5.4-2.8-11.8-4.8-15.5-9.1-6.3-7.4-11.4-15.9-15.8-24.6-6.2-11.9-11.2-24.3-16.8-36.6z" /><path d="m202.5 106.4c-1.6 1.9-2.4 3-3.4 4.1-8.4 8.5-16.5 17.4-25.5 25.4-4.3 3.8-9.9 6.7-15.4 8.7-6.8 2.5-13.3.3-18.1-5.2-4.7-5.3-6.2-11.7-4.1-18.6 2.8-9 10.1-14.3 19.4-14.3 15.3-.1 30.6-.1 47.1-.1z" /></svg>
14
+ {faker.location.city()}
15
+ </Link>
16
+ </li>
17
+ // </ul>
18
+ );
19
+ };
@@ -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 { Button } from './Button';
5
+
6
+ const meta = {
7
+ component: Button,
8
+ title: 'Atoms/Button',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Button>;
11
+
12
+ export default meta;
13
+ type Story = StoryObj<typeof meta>;
14
+
15
+ export const Primary: Story = {
16
+ args: {
17
+ primary: true,
18
+ },
19
+ };
@@ -1,49 +1,29 @@
1
- // import React from 'react';
2
-
3
- import './button.css';
1
+ // this is the Name.tsx file
2
+ import React from 'react';
4
3
 
5
4
  interface ButtonProps {
6
- /**
7
- * Is this the principal call to action on the page?
8
- */
9
5
  primary?: boolean;
10
- /**
11
- * What background color to use
12
- */
13
- backgroundColor?: string;
14
- /**
15
- * How large should the button be?
16
- */
17
- size?: 'small' | 'medium' | 'large';
18
- /**
19
- * Button contents
20
- */
21
- label: string;
22
- /**
23
- * Optional click handler
24
- */
25
6
  onClick?: () => void;
26
7
  }
27
8
 
28
- /**
29
- * Primary UI component for user interaction
30
- */
31
9
  export const Button = ({
32
10
  primary = false,
33
- size = 'medium',
34
- backgroundColor,
35
- label,
36
11
  ...props
37
12
  }: ButtonProps) => {
38
- const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
13
+
39
14
  return (
40
- <button
41
- type="button"
42
- className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
43
- style={{ backgroundColor }}
15
+ <main
44
16
  {...props}
45
17
  >
46
- {label}
47
- </button>
18
+ {primary ? 'primary' : 'secondary'}
19
+ <button type='button'>Button</button>
20
+ <button className='button__hover' type='button'>Hover</button>
21
+ <button className='button__active' type='button'>Active</button>
22
+ <hr />
23
+ <button className='button__mullen' type='button'>Button Mullen</button>
24
+ <button className='button__mullen--hover' type='button'>Mullen Hover</button>
25
+ <button className='button__mullen--active' type='button'>Mullen Active</button>
26
+ <p>// TODO: I have some problems with this I dont like the pink</p>
27
+ </main>
48
28
  );
49
- };
29
+ };
@@ -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 { Card } from './Card';
5
+
6
+ const meta = {
7
+ component: Card,
8
+ title: 'Molecules/Card',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Card>;
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,43 @@
1
+ // TODO: faker with an internet connection
2
+ // this is the Name.tsx file
3
+ import React from 'react';
4
+ import { Link } from 'react-aria-components';
5
+ import { faker } from '@faker-js/faker';
6
+ import { BookNow } from './BookNow';
7
+
8
+ export const Card = () => {
9
+
10
+ return (
11
+ <div className='deck'>
12
+ <Link href="#" className="card">
13
+ {/* <img
14
+ src='https://tahoe-city-kayak.s3.us-west-1.amazonaws.com/textures/jason-leung-Oc81QL8Crtg-unsplash-hd.webp'
15
+ alt=""
16
+ className='card__placeholder'
17
+ /> */}
18
+ <h4 className="card__title">
19
+ {faker.location.city()}
20
+ </h4>
21
+
22
+ <div className="card__specs">
23
+ <h4>
24
+ {/* <time>
25
+ 18:30 - 20:30
26
+ </time> */}
27
+ </h4>
28
+ <h4>
29
+ {/* // ? does this need capitalization */}
30
+ {faker.helpers.arrayElement(['easy', 'medium', 'hard'])} <span className="card__span">Fitness</span>
31
+ </h4>
32
+ </div>
33
+ <hr />
34
+ <p>{faker.lorem.lines(2)}</p>
35
+ <hr />
36
+ <div className="card__details">
37
+ <h5>${faker.number.int(100)}</h5>
38
+ <BookNow />
39
+ </div>
40
+ </Link>
41
+ </div>
42
+ );
43
+ };
@@ -0,0 +1,71 @@
1
+ import { Meta, ColorPalette, ColorItem } from "@storybook/blocks";
2
+
3
+ <Meta title="Colors" />
4
+
5
+ <ColorPalette>
6
+ <ColorItem
7
+ title="Mullen"
8
+ subtitle="base 100 - Tahoe City"
9
+ colors={{
10
+ mullen100: "hsl(0, 50%, 50%)",
11
+ mullen200: "hsl(0, 50%, 37.5%)",
12
+ mullen300: "hsl(0, 50%, 25%)",
13
+ }}
14
+ />
15
+ <ColorItem
16
+ title="Sand"
17
+ subtitle="base 100 - Tahoe City"
18
+ colors={{
19
+ sand100: "hsl(25, 37%, 95%)",
20
+ sand150: "hsl(25, 37%, 92.5%)",
21
+ sand200: "hsl(25, 37%, 87.5%)",
22
+ sand300: "hsl(25, 37%, 75%)",
23
+ }}
24
+ />
25
+
26
+ <ColorItem
27
+ title="Ink"
28
+ subtitle="base 100 - Tahoe City"
29
+ colors={{
30
+ ink100: "hsl(210, 50%, 12.5%)",
31
+ ink200: "hsl(210, 50%, 7.5%)",
32
+ ink300: "hsl(210, 50%, 5%)",
33
+ }}
34
+ />
35
+ <ColorItem
36
+ title="Navy"
37
+ subtitle="base 400 - South Lake"
38
+ colors={{
39
+ navy200: "oklch(75% 0.12 230)",
40
+ navy300: "oklch(62.5% 0.14 230)",
41
+ navy400: "oklch(50% 0.14 230)",
42
+ navy500: "oklch(37.5% 0.14 230)",
43
+ navy600: "oklch(25% 0.12 230)"
44
+ }}
45
+ />
46
+ <ColorItem
47
+ title="Sunshine"
48
+ subtitle="base 500 - South Lake"
49
+ colors={{
50
+ navy100: "oklch(97.5% 0.025 95)",
51
+ navy200: "oklch(95% 0.05 95)",
52
+ navy300: "oklch(92.5% 0.1 95)",
53
+ navy400: "oklch(90% 0.15 95)",
54
+ navy500: "oklch(87.5% 0.2 95)"
55
+ }}
56
+ />
57
+ <ColorItem
58
+ title="Neutrals"
59
+ colors={{
60
+ blackmetal: "hsl(210, 25%, 2.5%)",
61
+ blackout: "hsl(210, 25%, 12.5%)",
62
+ raven: "hsl(210, 25%, 25%)",
63
+ industrial: "hsl(210, 7.5%, 37.5%)",
64
+ grey: "hsl(210, 7.5%, 50%)",
65
+ cold: "hsl(210, 7.5%, 62.5%)",
66
+ tin: "hsl(210, 12.5%, 75%)",
67
+ cloud: "hsl(210, 18.75%, 87.5%)",
68
+ brilliance: "hsl(210, 25%, 97.5%)",
69
+ }}
70
+ />
71
+ </ColorPalette>
@@ -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 { Composition } from './Composition';
5
+
6
+ const meta = {
7
+ component: Composition,
8
+ title: 'Molecules/Composition',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Composition>;
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,21 @@
1
+ // this is the Name.tsx file
2
+ import React from 'react';
3
+
4
+ interface CompositionProps {
5
+ primary?: boolean;
6
+ onClick?: () => void;
7
+ }
8
+
9
+ export const Composition = ({
10
+ primary = false,
11
+ ...props
12
+ }: CompositionProps) => {
13
+
14
+ return (
15
+ <div className="composition">
16
+ {/* <WaterTexture className="texture-1" /> */}
17
+ {/* <TopThree className="texture-2 img__wrapped" /> */}
18
+ {/* {sport === 'paddleboard' ? <Supper className="paddler" /> : <Kayaker className="paddler" />} */}
19
+ </div>
20
+ );
21
+ };
@@ -0,0 +1,31 @@
1
+ // havent figured out how to get this in yet
2
+
3
+ import React from 'react';
4
+ import { faker } from '@faker-js/faker';
5
+
6
+ export const Deal = () => {
7
+ const roll = faker.number.int(10);
8
+ if (roll < 1) {
9
+ return (
10
+ <h1>There are no cards available</h1>
11
+ );
12
+ }
13
+
14
+ // <Ticket key={i} />
15
+ const content = [];
16
+ for (let i = 0; i < roll; i++) {
17
+ content.push(
18
+ { i }
19
+ );
20
+ }
21
+
22
+ console.log(content);
23
+
24
+ return (
25
+ <>
26
+ {content.map((piece) => (
27
+ piece.i
28
+ ))}
29
+ </>
30
+ );
31
+ }
@@ -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 { Deck } from './Deck';
5
+
6
+ const meta = {
7
+ component: Deck,
8
+ title: 'Organisms/Deck',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Deck>;
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,22 @@
1
+ // this is the Name.tsx file
2
+ import React from 'react';
3
+ import { Ticket } from './Ticket';
4
+
5
+ interface DeckProps {
6
+ primary?: boolean;
7
+ onClick?: () => void;
8
+ }
9
+
10
+ export const Deck = ({
11
+ primary = false,
12
+ ...props
13
+ }: DeckProps) => {
14
+
15
+ return (
16
+ <div className='deck'>
17
+ {/* // TODO: deal */}
18
+ <Ticket />
19
+ <Ticket />
20
+ </div>
21
+ );
22
+ };
@@ -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 { Eyebrow } from './Eyebrow';
5
+
6
+ const meta = {
7
+ component: Eyebrow,
8
+ title: 'Atoms/Eyebrow',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Eyebrow>;
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,21 @@
1
+ // this is the Name.tsx file
2
+ import React from 'react';
3
+
4
+ interface EyebrowProps {
5
+ primary?: boolean;
6
+ onClick?: () => void;
7
+ }
8
+
9
+ export const Eyebrow = ({
10
+ primary = false,
11
+ ...props
12
+ }: EyebrowProps) => {
13
+
14
+ return (
15
+ <hgroup className='eyebrow crest'>
16
+ {/* // TODO: fix the metaphor */}
17
+ <p className='eyebrow brow'>Eyebrow</p>
18
+ <h3 className='supra'>Supra</h3>
19
+ </hgroup>
20
+ );
21
+ };
@@ -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 { Footer } from './Footer';
5
+
6
+ const meta = {
7
+ component: Footer,
8
+ title: 'Organisms/Footer',
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Footer>;
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,94 @@
1
+ // this is the Name.tsx file
2
+ import React from 'react';
3
+ import { Link } from 'react-aria-components';
4
+ import { faker } from '@faker-js/faker';
5
+
6
+ import { Pricing } from './Pricing';
7
+ import { LocationDeck } from './LocationDeck';
8
+ import { Socials } from './Socials';
9
+
10
+ function Deal() {
11
+
12
+ const roll = faker.number.int(10);
13
+
14
+ if (roll < 1) {
15
+ return (
16
+ <h1>double zero</h1>
17
+ );
18
+ }
19
+
20
+ const content = [];
21
+ for (let i = 0; i < roll; i++) {
22
+ content.push(
23
+ <li key={faker.location.city()}>
24
+ <a href={faker.location.city()}
25
+ target="_blank"
26
+ rel='noopener noreferrer'
27
+ >
28
+ {faker.location.city()} Kayak &amp; Paddleboard
29
+ </a>
30
+ </li>
31
+ );
32
+ }
33
+
34
+ return content;
35
+ }
36
+
37
+ interface FooterProps {
38
+ primary?: boolean;
39
+ onClick?: () => void;
40
+ }
41
+
42
+ export const Footer = ({
43
+ primary = false,
44
+ ...props
45
+ }: FooterProps) => {
46
+
47
+ return (
48
+ <footer>
49
+ <section>
50
+ <h3 className='sr-only'>
51
+ <Link href="/">{faker.company.name()}</Link>
52
+ </h3>
53
+ <Link href="/" className="logo-link">
54
+ {/* // TODO: */}
55
+ {/* <Logo /> */}
56
+ </Link>
57
+ <p>&copy; {new Date().getFullYear()}</p>
58
+ <hr />
59
+ <nav>
60
+ {/* <MenuList /> */}
61
+ </nav>
62
+ <hr />
63
+ <div className="footer__contact">
64
+ {/* <Phone /> */}
65
+ <a
66
+ href={`mailto:${faker.internet.email()}`}
67
+ rel="norel norefferer"
68
+ className="button"
69
+ >
70
+ {faker.internet.email()}
71
+ </a>
72
+ <Socials />
73
+ </div>
74
+ <hr />
75
+ <div className="footer__locations">
76
+ <h3>Our Partner Locations</h3>
77
+ <ul>
78
+ <Deal />
79
+ </ul>
80
+ </div>
81
+ </section>
82
+ <section>
83
+ <Pricing book={false} />
84
+ <hr />
85
+
86
+ <LocationDeck
87
+ // locations={data.allStrapiLocation}
88
+ background={false}
89
+ />
90
+ </section>
91
+
92
+ </footer >
93
+ );
94
+ };
@@ -1,16 +1,16 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { fn } from '@storybook/test';
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { fn } from "@storybook/test";
3
3
 
4
- import { Header } from './Header';
4
+ import { Header } from "./Header";
5
5
 
6
6
  const meta = {
7
- title: 'Example/Header',
7
+ title: "Organisms/Header",
8
8
  component: Header,
9
9
  // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
10
- tags: ['autodocs'],
10
+ tags: ["autodocs"],
11
11
  parameters: {
12
12
  // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
13
- layout: 'fullscreen',
13
+ layout: "fullscreen",
14
14
  },
15
15
  args: {
16
16
  onLogin: fn(),
@@ -25,7 +25,7 @@ type Story = StoryObj<typeof meta>;
25
25
  export const LoggedIn: Story = {
26
26
  args: {
27
27
  user: {
28
- name: 'Jane Doe',
28
+ name: "Jane Doe",
29
29
  },
30
30
  },
31
31
  };
@@ -1,56 +1,28 @@
1
- // import React from 'react';
1
+ import React from 'react';
2
+ import { faker } from '@faker-js/faker';
3
+ import { Link } from 'react-aria-components';
4
+ import { TopBar } from './TopBar';
5
+ import { Logo } from './Logo';
2
6
 
3
- import { Button } from './Button';
4
- import './header.css';
5
-
6
- type User = {
7
- name: string;
8
- };
9
-
10
- interface HeaderProps {
11
- user?: User;
12
- onLogin?: () => void;
13
- onLogout?: () => void;
14
- onCreateAccount?: () => void;
15
- }
16
-
17
- export const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => (
7
+ export const Header = () => (
18
8
  <header>
19
- <div className="storybook-header">
20
- <div>
21
- <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
22
- <g fill="none" fillRule="evenodd">
23
- <path
24
- d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
25
- fill="#FFF"
26
- />
27
- <path
28
- d="M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z"
29
- fill="#555AB9"
30
- />
31
- <path
32
- d="M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z"
33
- fill="#91BAF8"
34
- />
35
- </g>
36
- </svg>
37
- <h1>Acme</h1>
38
- </div>
39
- <div>
40
- {user ? (
41
- <>
42
- <span className="welcome">
43
- Welcome, <b>{user.name}</b>!
44
- </span>
45
- <Button size="small" onClick={onLogout} label="Log out" />
46
- </>
47
- ) : (
48
- <>
49
- <Button size="small" onClick={onLogin} label="Log in" />
50
- <Button primary size="small" onClick={onCreateAccount} label="Sign up" />
51
- </>
52
- )}
53
- </div>
9
+ <TopBar />
10
+ <div className="logo-container" >
11
+ <Link
12
+ href="/"
13
+ className="link__subtle"
14
+ >
15
+ <Logo />
16
+ </Link>
17
+ <h1 className='sr-only'>
18
+ <Link
19
+ href="/"
20
+ className="link__subtle"
21
+ >
22
+ {faker.location.city()} kayak &amp; Paddleboard
23
+ </Link>
24
+ </h1>
54
25
  </div>
26
+ {/* // TODO: <p>small nav is going to be a pain to build here I bet</p> */}
55
27
  </header>
56
28
  );
@@ -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 { Language } from './Language';
5
+
6
+ const meta = {
7
+ title: 'Atoms/Language',
8
+ component: Language,
9
+ args: { onClick: fn() },
10
+ } satisfies Meta<typeof Language>;
11
+
12
+ export default meta;
13
+ type Story = StoryObj<typeof meta>;
14
+
15
+ export const Primary: Story = {
16
+ args: {
17
+ primary: true,
18
+ },
19
+ };