Skip to content

Commit

Permalink
✨ NICE-43 revamp Next RSC, Notion API, & Tailwind [b]
Browse files Browse the repository at this point in the history
BREAKING CHANGE: New Notion Implementation through Next 13 RSC (App)

Since this got the **squash** treatment all relevant information is #1621

👷  (github) NICE-43 turn off `e2e` at the moment

👷  (vercel) NICE-43 vercel.json; + required env next-config

👷  (github) NICE-43 put e2e back w/ env populated

👷  (github) NICE-43 pass env to actions

♿️  (radix-ui) NICE-43 color-contrast for tags (gray)

🔧  (lhci) NICE-43 slight tweaks for a11y

Radix-UI contrast is passing locally but not on LHCI
  • Loading branch information
JeromeFitz committed Jul 2, 2023
1 parent 2513ef8 commit 55f7203
Show file tree
Hide file tree
Showing 438 changed files with 29,617 additions and 7,556 deletions.
20 changes: 17 additions & 3 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,28 @@ module.exports = {
}, // ⚙️ sites/jeromefitzgerald.com
{
extends: ['@jeromefitz/eslint-config/tailwind.cjs'],
files: 'sites/jeromefitzgerald.com/**',
files: 'sites/**',
rules: nextOverrides.rules,
settings: {
tailwindcss: {
config: `${fullCwd}/sites/jeromefitzgerald.com/tailwind.config.js`,
callees: ['cx', 'tw'],
// @todo(eslint-plugin-tailwindcss) submit pr for allowlist
whitelist: ['afc', 'afc2', 'icon-custom', 'trap'],
/**
* @todo(eslint-plugin-tailwindcss) submit pr for allowlist
* @note(radix) dynamic variables need to be identified one-by-one here
*/
whitelist: [
'_background',
'-button',
'-radix-',
'afc',
'afc2',
'bg-radix-',
'icon-custom',
'notion-',
'text-radix-',
'trap',
],
},
},
},
Expand Down
22 changes: 20 additions & 2 deletions .github/workflows/pull.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,21 @@ env:
GH_TOKEN: ${{ secrets.GH_DEPLOY_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }}
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN: ${{ secrets.NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN }}
NEXT_PUBLIC__FATHOM_SITE_ID: ${{ secrets.NEXT_PUBLIC__FATHOM_SITE_ID }}
NEXT_PUBLIC__SITE: ${{ vars.NEXT_PUBLIC__SITE }}
NEXT_TELEMETRY_DISABLED: ${{ vars.NEXT_TELEMETRY_DISABLED }}
NOTION__DATABASE__BLOG: ${{ secrets.NOTION__DATABASE__BLOG }}
NOTION__DATABASE__BOOKS: ${{ secrets.NOTION__DATABASE__BOOKS }}
NOTION__DATABASE__EPISODES: ${{ secrets.NOTION__DATABASE__EPISODES }}
NOTION__DATABASE__EVENTS: ${{ secrets.NOTION__DATABASE__EVENTS }}
NOTION__DATABASE__PAGES: ${{ secrets.NOTION__DATABASE__PAGES }}
NOTION__DATABASE__PEOPLE: ${{ secrets.NOTION__DATABASE__PEOPLE }}
NOTION__DATABASE__PODCASTS: ${{ secrets.NOTION__DATABASE__PODCASTS }}
NOTION__DATABASE__SHOWS: ${{ secrets.NOTION__DATABASE__SHOWS }}
NOTION__DATABASE__VENUES: ${{ secrets.NOTION__DATABASE__VENUES }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
OCTOKIT_TOKEN: ${{ secrets.OCTOKIT_TOKEN }}
OG_API_KEY: ${{ secrets.OG_API_KEY }}
PREVIEW_TOKEN: ${{ secrets.PREVIEW_TOKEN }}
Expand Down Expand Up @@ -59,12 +68,21 @@ jobs:
GH_TOKEN: ${{ secrets.GH_DEPLOY_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }}
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN: ${{ secrets.NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN }}
NEXT_PUBLIC__FATHOM_SITE_ID: ${{ secrets.NEXT_PUBLIC__FATHOM_SITE_ID }}
NEXT_PUBLIC__SITE: ${{ vars.NEXT_PUBLIC__SITE }}
NEXT_TELEMETRY_DISABLED: ${{ vars.NEXT_TELEMETRY_DISABLED }}
NOTION__DATABASE__BLOG: ${{ secrets.NOTION__DATABASE__BLOG }}
NOTION__DATABASE__BOOKS: ${{ secrets.NOTION__DATABASE__BOOKS }}
NOTION__DATABASE__EPISODES: ${{ secrets.NOTION__DATABASE__EPISODES }}
NOTION__DATABASE__EVENTS: ${{ secrets.NOTION__DATABASE__EVENTS }}
NOTION__DATABASE__PAGES: ${{ secrets.NOTION__DATABASE__PAGES }}
NOTION__DATABASE__PEOPLE: ${{ secrets.NOTION__DATABASE__PEOPLE }}
NOTION__DATABASE__PODCASTS: ${{ secrets.NOTION__DATABASE__PODCASTS }}
NOTION__DATABASE__SHOWS: ${{ secrets.NOTION__DATABASE__SHOWS }}
NOTION__DATABASE__VENUES: ${{ secrets.NOTION__DATABASE__VENUES }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
OCTOKIT_TOKEN: ${{ secrets.OCTOKIT_TOKEN }}
OG_API_KEY: ${{ secrets.OG_API_KEY }}
PREVIEW_TOKEN: ${{ secrets.PREVIEW_TOKEN }}
Expand Down
22 changes: 20 additions & 2 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,21 @@ env:
GH_TOKEN: ${{ secrets.GH_DEPLOY_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }}
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN: ${{ secrets.NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN }}
NEXT_PUBLIC__FATHOM_SITE_ID: ${{ secrets.NEXT_PUBLIC__FATHOM_SITE_ID }}
NEXT_PUBLIC__SITE: ${{ vars.NEXT_PUBLIC__SITE }}
NEXT_TELEMETRY_DISABLED: ${{ vars.NEXT_TELEMETRY_DISABLED }}
NOTION__DATABASE__BLOG: ${{ secrets.NOTION__DATABASE__BLOG }}
NOTION__DATABASE__BOOKS: ${{ secrets.NOTION__DATABASE__BOOKS }}
NOTION__DATABASE__EPISODES: ${{ secrets.NOTION__DATABASE__EPISODES }}
NOTION__DATABASE__EVENTS: ${{ secrets.NOTION__DATABASE__EVENTS }}
NOTION__DATABASE__PAGES: ${{ secrets.NOTION__DATABASE__PAGES }}
NOTION__DATABASE__PEOPLE: ${{ secrets.NOTION__DATABASE__PEOPLE }}
NOTION__DATABASE__PODCASTS: ${{ secrets.NOTION__DATABASE__PODCASTS }}
NOTION__DATABASE__SHOWS: ${{ secrets.NOTION__DATABASE__SHOWS }}
NOTION__DATABASE__VENUES: ${{ secrets.NOTION__DATABASE__VENUES }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
OCTOKIT_TOKEN: ${{ secrets.OCTOKIT_TOKEN }}
OG_API_KEY: ${{ secrets.OG_API_KEY }}
PREVIEW_TOKEN: ${{ secrets.PREVIEW_TOKEN }}
Expand Down Expand Up @@ -58,12 +67,21 @@ jobs:
GH_TOKEN: ${{ secrets.GH_DEPLOY_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GH_BOT_TOKEN }}
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN: ${{ secrets.NEXT_PUBLIC__FATHOM_CUSTOM_DOMAIN }}
NEXT_PUBLIC__FATHOM_SITE_ID: ${{ secrets.NEXT_PUBLIC__FATHOM_SITE_ID }}
NEXT_PUBLIC__SITE: ${{ vars.NEXT_PUBLIC__SITE }}
NEXT_TELEMETRY_DISABLED: ${{ vars.NEXT_TELEMETRY_DISABLED }}
NOTION__DATABASE__BLOG: ${{ secrets.NOTION__DATABASE__BLOG }}
NOTION__DATABASE__BOOKS: ${{ secrets.NOTION__DATABASE__BOOKS }}
NOTION__DATABASE__EPISODES: ${{ secrets.NOTION__DATABASE__EPISODES }}
NOTION__DATABASE__EVENTS: ${{ secrets.NOTION__DATABASE__EVENTS }}
NOTION__DATABASE__PAGES: ${{ secrets.NOTION__DATABASE__PAGES }}
NOTION__DATABASE__PEOPLE: ${{ secrets.NOTION__DATABASE__PEOPLE }}
NOTION__DATABASE__PODCASTS: ${{ secrets.NOTION__DATABASE__PODCASTS }}
NOTION__DATABASE__SHOWS: ${{ secrets.NOTION__DATABASE__SHOWS }}
NOTION__DATABASE__VENUES: ${{ secrets.NOTION__DATABASE__VENUES }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
OCTOKIT_TOKEN: ${{ secrets.OCTOKIT_TOKEN }}
OG_API_KEY: ${{ secrets.OG_API_KEY }}
PREVIEW_TOKEN: ${{ secrets.PREVIEW_TOKEN }}
Expand Down
4 changes: 1 addition & 3 deletions .prettierrc.cjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
const config = require('@jeromefitz/prettier-config/index.cjs')
const config = require('@jeromefitz/prettier-config/tailwind.cjs')

module.exports = {
...config,
plugins: [...config.plugins, require('prettier-plugin-nativewind')],
tailwindCustomFunctions: ['cx'],
}
22 changes: 11 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
},
"license": "MIT",
"private": true,
"packageManager": "^pnpm@7.26.1",
"packageManager": "^pnpm@8.6.2",
"engines": {
"node": ">=18"
},
Expand All @@ -32,27 +32,27 @@
"@jeromefitz/conventional-gitmoji": "3.3.6",
"@jeromefitz/eslint-config--custom": "workspace:*",
"@jeromefitz/lint-staged-config": "workspace:*",
"@jeromefitz/prettier-config--custom": "workspace:*",
"@jeromefitz/release-notes-generator": "1.2.12",
"@jeromefitz/prettier-config": "1.2.0",
"@jeromefitz/release-notes-generator": "1.2.13",
"@jeromefitz/semantic": "9.2.6",
"@jeromefitz/tsconfig": "1.1.3",
"@manypkg/cli": "0.20.0",
"@manypkg/cli": "0.21.0",
"@types/is-ci": "3.0.0",
"@types/lodash": "4.14.194",
"@types/node": "18.16.13",
"@types/lodash": "4.14.195",
"@types/node": "20.3.3",
"ccommit": "1.1.3",
"concurrently": "8.0.1",
"dotenv": "16.0.3",
"concurrently": "8.2.0",
"dotenv": "16.3.1",
"husky": "8.0.3",
"is-ci": "3.0.1",
"lodash": "4.17.21",
"semantic-release": "19.0.5",
"semantic-release-monorepo": "7.0.5",
"syncpack": "9.8.6",
"ts-node": "10.9.1",
"tsup": "6.7.0",
"turbo": "1.9.8",
"typescript": "5.0.4"
"tsup": "7.1.0",
"turbo": "1.10.7",
"typescript": "5.1.6"
},
"pnpm": {
"overrides": {}
Expand Down
113 changes: 57 additions & 56 deletions packages/design-system/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,71 +16,72 @@
},
"dependencies": {
"@heroicons/react": "2.0.18",
"@radix-ui/primitive": "1.0.0",
"@radix-ui/react-accessible-icon": "1.0.2",
"@radix-ui/react-accordion": "1.1.1",
"@radix-ui/react-alert-dialog": "1.0.3",
"@radix-ui/react-announce": "0.1.7",
"@radix-ui/react-arrow": "1.0.2",
"@radix-ui/react-aspect-ratio": "1.0.2",
"@radix-ui/react-avatar": "1.0.2",
"@radix-ui/react-checkbox": "1.0.3",
"@radix-ui/react-collapsible": "1.0.2",
"@radix-ui/react-collection": "1.0.2",
"@radix-ui/react-compose-refs": "1.0.0",
"@radix-ui/react-context": "1.0.0",
"@radix-ui/react-context-menu": "2.1.3",
"@radix-ui/react-dialog": "1.0.3",
"@radix-ui/react-direction": "1.0.0",
"@radix-ui/react-dismissable-layer": "1.0.3",
"@radix-ui/react-dropdown-menu": "2.0.4",
"@radix-ui/react-focus-guards": "1.0.0",
"@radix-ui/react-focus-scope": "1.0.2",
"@radix-ui/react-hover-card": "1.0.5",
"@jeromefitz/shared": "workspace:*",
"@radix-ui/primitive": "1.0.1",
"@radix-ui/react-accessible-icon": "1.0.3",
"@radix-ui/react-accordion": "1.1.2",
"@radix-ui/react-alert-dialog": "1.0.4",
"@radix-ui/react-announce": "0.1.8",
"@radix-ui/react-arrow": "1.0.3",
"@radix-ui/react-aspect-ratio": "1.0.3",
"@radix-ui/react-avatar": "1.0.3",
"@radix-ui/react-checkbox": "1.0.4",
"@radix-ui/react-collapsible": "1.0.3",
"@radix-ui/react-collection": "1.0.3",
"@radix-ui/react-compose-refs": "1.0.1",
"@radix-ui/react-context": "1.0.1",
"@radix-ui/react-context-menu": "2.1.4",
"@radix-ui/react-dialog": "1.0.4",
"@radix-ui/react-direction": "1.0.1",
"@radix-ui/react-dismissable-layer": "1.0.4",
"@radix-ui/react-dropdown-menu": "2.0.5",
"@radix-ui/react-focus-guards": "1.0.1",
"@radix-ui/react-focus-scope": "1.0.3",
"@radix-ui/react-hover-card": "1.0.6",
"@radix-ui/react-icons": "1.3.0",
"@radix-ui/react-id": "1.0.0",
"@radix-ui/react-label": "2.0.1",
"@radix-ui/react-menu": "2.0.4",
"@radix-ui/react-navigation-menu": "1.1.2",
"@radix-ui/react-popover": "1.0.5",
"@radix-ui/react-popper": "1.1.1",
"@radix-ui/react-portal": "1.0.2",
"@radix-ui/react-presence": "1.0.0",
"@radix-ui/react-primitive": "1.0.2",
"@radix-ui/react-progress": "1.0.2",
"@radix-ui/react-radio-group": "1.1.2",
"@radix-ui/react-roving-focus": "1.0.3",
"@radix-ui/react-scroll-area": "1.0.3",
"@radix-ui/react-select": "1.2.1",
"@radix-ui/react-separator": "1.0.2",
"@radix-ui/react-slider": "1.1.1",
"@radix-ui/react-slot": "1.0.1",
"@radix-ui/react-switch": "1.0.2",
"@radix-ui/react-tabs": "1.0.3",
"@radix-ui/react-toast": "1.1.3",
"@radix-ui/react-toggle": "1.0.2",
"@radix-ui/react-toggle-group": "1.0.3",
"@radix-ui/react-toolbar": "1.0.3",
"@radix-ui/react-tooltip": "1.0.5",
"@radix-ui/react-use-callback-ref": "1.0.0",
"@radix-ui/react-use-controllable-state": "1.0.0",
"@radix-ui/react-use-escape-keydown": "1.0.2",
"@radix-ui/react-use-layout-effect": "1.0.0",
"@radix-ui/react-use-previous": "1.0.0",
"@radix-ui/react-use-rect": "1.0.0",
"@radix-ui/react-use-size": "1.0.0",
"@radix-ui/react-visually-hidden": "1.0.2",
"@radix-ui/react-id": "1.0.1",
"@radix-ui/react-label": "2.0.2",
"@radix-ui/react-menu": "2.0.5",
"@radix-ui/react-navigation-menu": "1.1.3",
"@radix-ui/react-popover": "1.0.6",
"@radix-ui/react-popper": "1.1.2",
"@radix-ui/react-portal": "1.0.3",
"@radix-ui/react-presence": "1.0.1",
"@radix-ui/react-primitive": "1.0.3",
"@radix-ui/react-progress": "1.0.3",
"@radix-ui/react-radio-group": "1.1.3",
"@radix-ui/react-roving-focus": "1.0.4",
"@radix-ui/react-scroll-area": "1.0.4",
"@radix-ui/react-select": "1.2.2",
"@radix-ui/react-separator": "1.0.3",
"@radix-ui/react-slider": "1.1.2",
"@radix-ui/react-slot": "1.0.2",
"@radix-ui/react-switch": "1.0.3",
"@radix-ui/react-tabs": "1.0.4",
"@radix-ui/react-toast": "1.1.4",
"@radix-ui/react-toggle": "1.0.3",
"@radix-ui/react-toggle-group": "1.0.4",
"@radix-ui/react-toolbar": "1.0.4",
"@radix-ui/react-tooltip": "1.0.6",
"@radix-ui/react-use-callback-ref": "1.0.1",
"@radix-ui/react-use-controllable-state": "1.0.1",
"@radix-ui/react-use-escape-keydown": "1.0.3",
"@radix-ui/react-use-layout-effect": "1.0.1",
"@radix-ui/react-use-previous": "1.0.1",
"@radix-ui/react-use-rect": "1.0.1",
"@radix-ui/react-use-size": "1.0.1",
"@radix-ui/react-visually-hidden": "1.0.3",
"clsx": "1.2.1",
"cmdk": "0.2.0",
"tailwind-merge": "1.12.0"
"tailwind-merge": "1.13.2"
},
"devDependencies": {
"@jeromefitz/jest-config": "workspace:*",
"@jeromefitz/next-config": "workspace:*",
"@jeromefitz/storybook-config": "workspace:*",
"@jeromefitz/tailwind-config": "workspace:*",
"@mantine/hooks": "6.0.11",
"next": "13.4.3",
"@mantine/hooks": "6.0.15",
"next": "13.4.8-canary.14",
"react": "18.2.0",
"react-dom": "18.2.0"
}
Expand Down
48 changes: 48 additions & 0 deletions packages/design-system/src/components/Anchor/Anchor.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/* eslint-disable no-restricted-imports */
import { cx } from '@jeromefitz/shared/src/utils'
import NextLink from 'next/link'

import { ExternalLinkIcon } from '../Icon'

const nextSeo = { url: `https://${process.env.NEXT_PUBLIC__SITE}` }
const domain = new URL(nextSeo.url)

const Anchor = ({ className = '', href, children }) => {
const isExternal =
!href.includes(domain.hostname.replace('www.', '')) || href.includes('bsky.app')
const isNotion = !href.includes('http')

const styles = cx(
'inline-flex flex-row items-center gap-1',
'underline-offset-4',
'underline',
// 'decoration-radix-slate4 hover:decoration-radix-slate5',
'text-radix-pink11 hover:text-radix-pink12',
'transition-all duration-200 ease-in',
'',
// 'hover:bg-breeze hover:dark:bg-breeze-r hover:bg-clip-text hover:text-transparent',
'',
className
)

if (isExternal && !isNotion) {
return (
<a href={href} rel="noreferrer" target={'_blank'} className={styles}>
<>{children}</>
<ExternalLinkIcon />
</a>
)
}

if (!href) return null

const _href = href.replace(nextSeo.url, '')
const props = {
className: styles,
href: _href === '' ? '/' : _href,
}

return <NextLink {...props}>{children}</NextLink>
}

export { Anchor }
1 change: 1 addition & 0 deletions packages/design-system/src/components/Anchor/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { Anchor } from './Anchor'
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import { cx } from '@jeromefitz/shared/src/utils'
import type { Meta, StoryObj } from '@storybook/react'

import { cx } from '../../utils/cx'

import { Button } from './Button'
import { VARIANTS } from './Button.vars'
import { VARIANTS } from './Button.constants'

const meta = {
// eslint-disable-next-line storybook/no-title-property-in-meta
Expand Down
6 changes: 3 additions & 3 deletions packages/design-system/src/components/Button/Button.styles.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { cx } from '../../utils/cx'
import { cx } from '@jeromefitz/shared/src/utils'

import type { Variant } from './Button.types'

Expand All @@ -13,8 +13,8 @@ export const commonStyles = cx(
)

export const variantStyles = {
default: cx('tomato-button'),
empty: cx(),
default: cx(),
empty: cx(''),
ghost: cx(),
primary: cx('tomato-button-cta'),
secondary: cx('tomato-button-outline'),
Expand Down
Loading

0 comments on commit 55f7203

Please sign in to comment.