Compare commits

...
2 Commits
Author SHA1 Message Date
artem ash 0c53c7c7a1 @0.5.3 tailwind config streamlining, improved SpaceBlock, etc
tailwind/tailwind.config.base now lives HERE and gets imported
  import { config } from '@luxdefi/ui/tailwind' --> goes in config.presets[]

tailwind/spacing.tailwind.js: (new) fills in missing values
 in tw config.spacing through 40rem

BulletCardBlockComp: card layout improvements
ScreenfulBlockComp: shifted from lit units to tw units for header calcs
  (breaking: requires the expanded config.spacing values)
SpaceBlock: major improvement and new prefered usage:
 sizes?: { xs: 4, sm: 6, etc...} (tw units) w useful default
2024-02-13 18:20:36 -08:00
artem ash e52d39e70c @0.5.3 tailwind config streamlining, better spacing and SpaceBlock
tailwind/tailwind.config.base now lives HERE and gets imported
  import { config } from '@luxdefi/ui/tailwind' --> goes in config.presets[]

tailwind/spacing.tailwind.js: (new) fills in missing values in tw through 40rem
 (breaking: MUST be included in theme if using ScreenfulBlock)

BulletCardBlockComp: card layout improvements
ScreenfulBlockComp: shifted from lit units to tw units for header calcs
  (breaking: requires the expanded config.spacing values)
SpaceBlock: major addition of sizing field in tw units by breakpoints
2024-02-13 18:15:18 -08:00
14 changed files with 1121 additions and 155 deletions
@@ -28,12 +28,12 @@ const BulletCardsBlockComponent: React.FC<BlockComponentProps> = ({
return (
<GridBlockComponent block={{blockType: 'grid', grid: b.grid} as Block} className={className} agent={agent}>
{b.cards.map((card, index) => (
<div key={index} className={cn('md:border rounded px-6 py-1 md:py-4 ' +
<div key={index} className={cn('px-0 sm:px-4 py-1 md:py-4 md:border rounded ' +
'flex flex-row justify-start items-center not-typography text-foreground',
borderclx
)}>
<InlineIcon icon={card.icon} size={b.iconSize ?? 28} agent={agent} className='mr-2 md:mr-4'/>
<p className='m-0'>{card.text}</p>
<InlineIcon icon={card.icon} size={b.iconSize ?? 28} agent={agent} className='shrink-0 mr-2 w-6 md:mr-4 md:w-7 '/>
<p className='m-0 text-sm sm:text-base'>{card.text}</p>
</div>
))}
</GridBlockComponent>
@@ -41,18 +41,16 @@ const ScreenfulComponent: React.FC<{
// p&m,
// p&m-modifiers
// ]
// desktop header: 80, desktop pt: 32
// mobile header: 44, mobile pt: 24
const cwclx = [
'z-10 absolute left-0 right-0 top-0 bottom-0 xl:mx-auto max-w-screen-xl ',
'z-10 absolute left-0 right-0 top-0 bottom-0 xl:mx-auto max-w-screen-xl overflow-y-hidden ',
// desktop header: 80px / pt-20
// mobile header: 44px / pt-11
narrowGutters ?
'px-6 lg:px-8 2xl:px-2 pb-6 pt-[68px] md:pt-[104px] lg:pt-[112px] '
'px-6 lg:px-8 2xl:px-2 pb-6 pt-15 md:pt-26 lg:pt-28 '
:
'px-[8vw] xl:px-[1vw] pb-[8vh] pt-[calc(44px+4vh)] md:pt-[calc(80px+6vh)] ',
(agent && agent !== 'desktop') ? 'pt-[64px] pb-0 px-4 sm:px-8' : ''
(agent && agent !== 'desktop') ? 'pt-15 sm:pt-17 pb-0 px-3 sm:px-8' : ''
]
return (
@@ -1,9 +1,24 @@
import React from 'react'
import type { Block, SpaceBlock } from '../def'
import merge from 'lodash.merge'
import type { Breakpoint } from '../../types'
import { SPACE_DEFAULTS , type TWSpaceUnit, type HeadingLevel} from '../def/space-block'
import type SpaceBlock from '../def/space-block'
import { ApplyTypography } from '../../primitives'
import type BlockComponentProps from './block-component-props'
const TAGS = [
'div',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
] satisfies React.ElementType[]
const SpaceBlockComponent: React.FC<BlockComponentProps> = ({
block,
className=''
@@ -13,34 +28,37 @@ const SpaceBlockComponent: React.FC<BlockComponentProps> = ({
return <>space block required</>
}
const size = (block as SpaceBlock).level ?? 3
const b = block as SpaceBlock
let Tag: React.ElementType = 'div' // corresponds to 0
// This code path should handle a undefined or empty sizes field.
if (!b.level) {
if (typeof b.sizes == 'number') {
return <div className={`invisible w-[1px] h-${b.sizes}` } />
}
const _sizes: {
[key in (Breakpoint)]?: TWSpaceUnit
} = {}
merge(_sizes, SPACE_DEFAULTS, b.sizes)
switch(size) {
case 1:
Tag = 'h1'
break
case 2:
Tag = 'h2'
break
case 3:
Tag = 'h3'
break
case 4:
Tag = 'h4'
break
case 5:
Tag = 'h5'
break
case 6:
Tag = 'h6'
break
let clx = ''
for (const [key, value] of Object.entries(_sizes)) {
// ts brain fart!
clx += `${key}:h-${value as TWSpaceUnit} `
}
if (b.test) {
console.log(clx)
}
return <div className={'invisible w-[1px] ' + clx} />
}
const Tag = TAGS[b.level]
const heightClx = (b.level === (0 satisfies HeadingLevel as HeadingLevel)) ? 'h-4' : ''
return (
<ApplyTypography>
<Tag className={`invisible m-0 ${Tag === 'div' ? 'h-4' : ''} ${className}`} >&nbsp;</Tag>
<Tag className={'invisible m-0 ' + heightClx} >&nbsp;</Tag>
</ApplyTypography>
)
}
+2
View File
@@ -12,6 +12,7 @@ import type HeadingBlock from './heading-block'
import type ImageBlock from './image-block'
import type VideoBlock from './video-block'
import type SpaceBlock from './space-block'
import { SPACE_DEFAULTS } from './space-block'
import type ScreenfulBlock from './screenful-block'
export {
@@ -30,4 +31,5 @@ export {
type VideoBlock,
type SpaceBlock,
type ScreenfulBlock,
SPACE_DEFAULTS
}
+56 -2
View File
@@ -1,10 +1,64 @@
import type { Breakpoint } from '../../types'
import type Block from './block'
type TWSpaceUnit = number // TODO, pull from tw conf
type HeadingLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6
const SPACE_DEFAULTS = {
xs: 2,
sm: 4,
md: 5,
lg: 6,
xl: 8
} satisfies {
[key in (Breakpoint)]?: TWSpaceUnit
}
interface SpaceBlock extends Block {
blockType: 'space'
level?: number // default:0 = 1px div (plus any gap-y * 2), 1 = <h1>&nbsp;<h1> (plus any gap-y * 2), etc.
/**
* TW units of vertical space, applied at Breakpoints
* or
* if just a number, that number at all Breakpoints
*
* default {
* xs: 2,
* sm: 4,
* md: 5,
* lg: 6,
* xl: 8
* }
*
* Any provided values will be merge w the defaults
* And applied as if they were tw classes in ascending
* order.
*
* impl: <div className='invisible w-[1px] xs:h-<xsval> sm:h-<smval> etc...' />
*/
sizes?: {
[key in (Breakpoint)]?: TWSpaceUnit
} | TWSpaceUnit
/**
* Heading levels. Gives the vertical space that the corresponding
* h tag would give.
* default: 3 (height of <h3>)
* 0 = 1rem (plus any gaps),
* For example, 1 = <h1 style={visibility: hidden}>&nbsp;</h1>
* As <ApplyTypography> would render it, plus any gap.
*/
level?: HeadingLevel
test?: boolean
}
export {
type SpaceBlock as default
type SpaceBlock as default,
type TWSpaceUnit,
type HeadingLevel,
SPACE_DEFAULTS
}
+1 -1
View File
@@ -41,7 +41,7 @@ const Header: React.FC<{
<Logo size='sm' />
<DrawerMenu
className='p-0 text-primary' // ui has 'text-inherit', so need this for close buttons to appear.
trigger={<Icons.burger className='h-7 w-7 text-inherit'/>}
trigger={<Icons.burger className='h-7 w-7'/>}
>
<MobileNav
siteDef={siteDef}
+7 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@luxdefi/ui",
"version": "0.5.2",
"version": "0.5.3",
"description": "Library that contains shared UI primitives, common design system components, and boilerplate.",
"publishConfig": {
"registry": "https://registry.npmjs.org/",
@@ -73,6 +73,8 @@
"react-hook-form": "^7.47.0",
"react-intersection-observer": "^9.7.0",
"react-social-icons": "^6.4.0",
"tailwind-merge": "^2.2.0",
"tailwindcss-interaction-media": "^0.1.0",
"validator": "^13.11.0",
"zod": "3.21.4"
},
@@ -81,16 +83,13 @@
"next": "^14.1.0",
"next-themes": "^0.2.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"tailwind-merge": "^2.2.0",
"tailwindcss": "^3.4.1",
"tailwindcss-animate": "^1.0.6",
"tailwindcss-interaction-media": "^0.1.0"
"react-dom": "^18.2.0"
},
"devDependencies": {
"@mdx-js/esbuild": "^3.0.0",
"@mdx-js/loader": "^3.0.0",
"@mdx-js/react": "^3.0.0",
"@types/lodash.merge": "^4.6.9",
"@types/mdx": "^2.0.9",
"@types/react": "^18.2.48",
"@types/react-dom": "^18.2.18",
@@ -98,6 +97,8 @@
"path": "^0.12.7",
"postcss": "^8.4.33",
"postcss-import": "^16.0.0",
"tailwindcss": "^3.4.1",
"tailwindcss-animate": "^1.0.6",
"typescript": "^5.3.3"
}
}
+7 -1
View File
@@ -4,13 +4,19 @@ import Image from 'next/image'
import type { Icon } from '../types'
const InlineIcon: React.FC<{
/**
* If a ReactNode is passed in, it should be set to 'w-full h-auto' so that it can be sized
* according to width of parent.
*/
icon: Icon | string
/** default should be handled by calling code. */
size?: number
agent?: string,
className?: string
}> = ({
icon,
size, // default should be handled by calling code.
size,
agent,
className=''
}) => {
+4
View File
@@ -2,13 +2,17 @@ import colors from './colors.tailwind'
import { fontFamily, fontSize } from './fonts.tailwind'
import safelist from './safelist.tailwind'
import screens from './screens.tailwind'
import spacing from './spacing.tailwind'
import typographyPlugin from './typo-plugin'
import config from './tailwind.config.base'
export {
colors,
config,
fontFamily,
fontSize,
safelist,
screens,
spacing,
typographyPlugin
}
+15 -73
View File
@@ -1,84 +1,26 @@
// https://tailwindcss.com/docs/content-configuration#dynamic-class-names
// https://tailwindcss.com/docs/content-configuration#safelisting-classes
export default [
'grid-cols-1',
'grid-cols-2',
'grid-cols-3',
'grid-cols-4',
'grid-cols-5',
'grid-cols-6',
'xs:grid-cols-1',
'xs:grid-cols-2',
'xs:grid-cols-3',
'xs:grid-cols-4',
'xs:grid-cols-5',
'xs:grid-cols-6',
'sm:grid-cols-1',
'sm:grid-cols-2',
'sm:grid-cols-3',
'sm:grid-cols-4',
'sm:grid-cols-5',
'sm:grid-cols-6',
'md:grid-cols-1',
'md:grid-cols-2',
'md:grid-cols-3',
'md:grid-cols-4',
'md:grid-cols-5',
'md:grid-cols-6',
'lg:grid-cols-1',
'lg:grid-cols-2',
'lg:grid-cols-3',
'lg:grid-cols-4',
'lg:grid-cols-5',
'lg:grid-cols-6',
'xl:grid-cols-1',
'xl:grid-cols-2',
'xl:grid-cols-3',
'xl:grid-cols-4',
'xl:grid-cols-5',
'xl:grid-cols-6',
'2xl:grid-cols-1',
'2xl:grid-cols-2',
'2xl:grid-cols-3',
'2xl:grid-cols-4',
'2xl:grid-cols-5',
'2xl:grid-cols-6',
'font-sans',
// for headling block spacing
'h-1',
'h-2',
'h-3',
'h-4',
'h-5',
'h-6',
'h-7',
'h-9',
'h-10',
'h-11',
'h-12',
'order-0',
'order-1',
'order-2',
'order-3',
'order-4',
'order-5',
'order-6',
'mb-1', // EnhHeadingBlock
'mb-2',
'mb-3',
'mb-4',
'mb-5',
'mb-6',
'mb-7',
'mb-9',
'mb-10',
'mb-11',
'mb-12',
{
pattern: /grid-cols-[1-6]/,
variants: [ 'xs', 'sm', 'md', 'lg', 'xl', '2xl' ]
},
{ // SpaceBlock
pattern: /h-([0-9]|[1-3][0-9]|40)/,
variants: [ 'xs', 'sm', 'md', 'lg', 'xl', '2xl' ]
},
{
pattern: /order-[0-6]/
},
{ // EnhHeadingBlock
pattern: /mb-([1-9]|1[0-2])/
},
'md:text-left', // EnhHeadingBlock
'md:text-center',
'md:text-right',
'md:self-start',
'md:self-center',
'md:self-end',
]
@@ -0,0 +1,57 @@
export default {
px: '1px',
0: '0px',
0.5: '0.125rem',
1: '0.25rem',
1.5: '0.375rem',
2: '0.5rem',
2.5: '0.625rem',
3: '0.75rem',
3.5: '0.875rem',
4: '1rem',
5: '1.25rem',
6: '1.5rem',
7: '1.75rem',
8: '2rem',
9: '2.25rem',
10: '2.5rem',
11: '2.75rem',
12: '3rem',
13: '3.25rem',
14: '3.5rem',
15: '3.75rem',
16: '4rem',
17: '4.25rem',
18: '4.5rem',
19: '4.75rem',
20: '5rem',
21: '5.25rem',
22: '5.5rem',
23: '5.75rem',
24: '6rem',
25: '5.25rem',
26: '5.5rem',
27: '5.75rem',
28: '7rem',
29: '7.25rem',
30: '7.5rem',
31: '7.75rem',
32: '8rem',
33: '8.25rem',
34: '8.5rem',
35: '8.75rem',
36: '9rem',
37: '9.25rem',
38: '9.5rem',
39: '9.75rem',
40: '10rem',
44: '11rem',
48: '12rem',
52: '13rem',
56: '14rem',
60: '15rem',
64: '16rem',
72: '18rem',
80: '20rem',
96: '24rem',
}
@@ -0,0 +1,905 @@
import animatePlugin from 'tailwindcss-animate'
import containerQueriesPlugin from '@tailwindcss/container-queries'
import tailwindInteractionMediaPlugin from 'tailwindcss-interaction-media'
import colors from './colors.tailwind'
import safelist from './safelist.tailwind'
import screens from './screens.tailwind'
import spacing from './spacing.tailwind'
import { fontFamily, fontSize} from './fonts.tailwind'
import typographyPlugin from './typo-plugin'
export default {
presets: [],
darkMode: ["class"],
safelist,
plugins: [
animatePlugin,
typographyPlugin({ className: 'typography', base: 16 }),
containerQueriesPlugin,
tailwindInteractionMediaPlugin,
],
theme: {
accentColor: ({ theme }) => ({
...theme('colors'),
auto: 'auto',
}),
animation: {
none: 'none',
spin: 'spin 1s linear infinite',
ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',
pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
bounce: 'bounce 1s infinite',
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
},
aria: {
checked: 'checked="true"',
disabled: 'disabled="true"',
expanded: 'expanded="true"',
hidden: 'hidden="true"',
pressed: 'pressed="true"',
readonly: 'readonly="true"',
required: 'required="true"',
selected: 'selected="true"',
},
aspectRatio: {
auto: 'auto',
square: '1 / 1',
video: '16 / 9',
},
backdropBlur: ({ theme }) => theme('blur'),
backdropBrightness: ({ theme }) => theme('brightness'),
backdropContrast: ({ theme }) => theme('contrast'),
backdropGrayscale: ({ theme }) => theme('grayscale'),
backdropHueRotate: ({ theme }) => theme('hueRotate'),
backdropInvert: ({ theme }) => theme('invert'),
backdropOpacity: ({ theme }) => theme('opacity'),
backdropSaturate: ({ theme }) => theme('saturate'),
backdropSepia: ({ theme }) => theme('sepia'),
backgroundColor: ({ theme }) => theme('colors'),
backgroundImage: {
none: 'none',
'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',
'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',
'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',
'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',
'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',
'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',
'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',
'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',
},
backgroundOpacity: ({ theme }) => theme('opacity'),
backgroundPosition: {
bottom: 'bottom',
center: 'center',
left: 'left',
'left-bottom': 'left bottom',
'left-top': 'left top',
right: 'right',
'right-bottom': 'right bottom',
'right-top': 'right top',
top: 'top',
},
backgroundSize: {
auto: 'auto',
cover: 'cover',
contain: 'contain',
},
blur: {
0: '0',
none: '0',
sm: '4px',
DEFAULT: '8px',
md: '12px',
lg: '16px',
xl: '24px',
'2xl': '40px',
'3xl': '64px',
},
borderColor: ({ theme }) => ({
...theme('colors'),
DEFAULT: theme('colors.gray.200', 'currentColor'),
}),
borderOpacity: ({ theme }) => theme('opacity'),
borderRadius: {
/* shadcn's:
lg: `var(--radius)`,
md: `calc(var(--radius) - 2px)`,
sm: "calc(var(--radius) - 4px)",
*/
none: '0px',
sm: '0.125rem',
DEFAULT: '0.25rem',
md: '0.375rem',
lg: '0.5rem',
xl: '0.75rem',
'2xl': '1rem',
'3xl': '1.5rem',
full: '9999px',
},
borderSpacing: spacing,
borderWidth: {
DEFAULT: '1px',
0: '0px',
2: '2px',
4: '4px',
8: '8px',
},
boxShadow: {
sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',
DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',
xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',
'2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',
inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',
none: 'none',
},
boxShadowColor: ({ theme }) => theme('colors'),
brightness: {
0: '0',
50: '.5',
75: '.75',
90: '.9',
95: '.95',
100: '1',
105: '1.05',
110: '1.1',
125: '1.25',
150: '1.5',
200: '2',
},
caretColor: ({ theme }) => theme('colors'),
colors,
columns: {
auto: 'auto',
1: '1',
2: '2',
3: '3',
4: '4',
5: '5',
6: '6',
7: '7',
8: '8',
9: '9',
10: '10',
11: '11',
12: '12',
'3xs': '16rem',
'2xs': '18rem',
xs: '20rem',
sm: '24rem',
md: '28rem',
lg: '32rem',
xl: '36rem',
'2xl': '42rem',
'3xl': '48rem',
'4xl': '56rem',
'5xl': '64rem',
'6xl': '72rem',
'7xl': '80rem',
},
container: {
center: true,
padding: "2rem",
},
content: {
none: 'none',
},
contrast: {
0: '0',
50: '.5',
75: '.75',
100: '1',
125: '1.25',
150: '1.5',
200: '2',
},
cursor: {
auto: 'auto',
default: 'default',
pointer: 'pointer',
wait: 'wait',
text: 'text',
move: 'move',
help: 'help',
'not-allowed': 'not-allowed',
none: 'none',
'context-menu': 'context-menu',
progress: 'progress',
cell: 'cell',
crosshair: 'crosshair',
'vertical-text': 'vertical-text',
alias: 'alias',
copy: 'copy',
'no-drop': 'no-drop',
grab: 'grab',
grabbing: 'grabbing',
'all-scroll': 'all-scroll',
'col-resize': 'col-resize',
'row-resize': 'row-resize',
'n-resize': 'n-resize',
'e-resize': 'e-resize',
's-resize': 's-resize',
'w-resize': 'w-resize',
'ne-resize': 'ne-resize',
'nw-resize': 'nw-resize',
'se-resize': 'se-resize',
'sw-resize': 'sw-resize',
'ew-resize': 'ew-resize',
'ns-resize': 'ns-resize',
'nesw-resize': 'nesw-resize',
'nwse-resize': 'nwse-resize',
'zoom-in': 'zoom-in',
'zoom-out': 'zoom-out',
},
divideColor: ({ theme }) => theme('borderColor'),
divideOpacity: ({ theme }) => theme('borderOpacity'),
divideWidth: ({ theme }) => theme('borderWidth'),
dropShadow: {
sm: '0 1px 1px rgb(0 0 0 / 0.05)',
DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],
md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],
lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],
xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],
'2xl': '0 25px 25px rgb(0 0 0 / 0.15)',
none: '0 0 #0000',
},
fill: ({ theme }) => ({
none: 'none',
...theme('colors'),
}),
flex: {
1: '1 1 0%',
auto: '1 1 auto',
initial: '0 1 auto',
none: 'none',
},
flexBasis: {
auto: 'auto',
...spacing,
'1/2': '50%',
'1/3': '33.333333%',
'2/3': '66.666667%',
'1/4': '25%',
'2/4': '50%',
'3/4': '75%',
'1/5': '20%',
'2/5': '40%',
'3/5': '60%',
'4/5': '80%',
'1/6': '16.666667%',
'2/6': '33.333333%',
'3/6': '50%',
'4/6': '66.666667%',
'5/6': '83.333333%',
'1/12': '8.333333%',
'2/12': '16.666667%',
'3/12': '25%',
'4/12': '33.333333%',
'5/12': '41.666667%',
'6/12': '50%',
'7/12': '58.333333%',
'8/12': '66.666667%',
'9/12': '75%',
'10/12': '83.333333%',
'11/12': '91.666667%',
full: '100%',
},
flexGrow: {
0: '0',
DEFAULT: '1',
},
flexShrink: {
0: '0',
DEFAULT: '1',
},
fontFamily,
fontSize,
fontWeight: {
thin: '100',
extralight: '200',
light: '300',
normal: '400',
medium: '500',
semibold: '600',
bold: '700',
extrabold: '800',
black: '900',
},
gap: spacing,
gradientColorStops: ({ theme }) => theme('colors'),
gradientColorStopPositions: {
'0%': '0%',
'5%': '5%',
'10%': '10%',
'15%': '15%',
'20%': '20%',
'25%': '25%',
'30%': '30%',
'35%': '35%',
'40%': '40%',
'45%': '45%',
'50%': '50%',
'55%': '55%',
'60%': '60%',
'65%': '65%',
'70%': '70%',
'75%': '75%',
'80%': '80%',
'85%': '85%',
'90%': '90%',
'95%': '95%',
'100%': '100%',
},
grayscale: {
0: '0',
DEFAULT: '100%',
},
gridAutoColumns: {
auto: 'auto',
min: 'min-content',
max: 'max-content',
fr: 'minmax(0, 1fr)',
},
gridAutoRows: {
auto: 'auto',
min: 'min-content',
max: 'max-content',
fr: 'minmax(0, 1fr)',
},
gridColumn: {
auto: 'auto',
'span-1': 'span 1 / span 1',
'span-2': 'span 2 / span 2',
'span-3': 'span 3 / span 3',
'span-4': 'span 4 / span 4',
'span-5': 'span 5 / span 5',
'span-6': 'span 6 / span 6',
'span-7': 'span 7 / span 7',
'span-8': 'span 8 / span 8',
'span-9': 'span 9 / span 9',
'span-10': 'span 10 / span 10',
'span-11': 'span 11 / span 11',
'span-12': 'span 12 / span 12',
'span-full': '1 / -1',
},
gridColumnEnd: {
auto: 'auto',
1: '1',
2: '2',
3: '3',
4: '4',
5: '5',
6: '6',
7: '7',
8: '8',
9: '9',
10: '10',
11: '11',
12: '12',
13: '13',
},
gridColumnStart: {
auto: 'auto',
1: '1',
2: '2',
3: '3',
4: '4',
5: '5',
6: '6',
7: '7',
8: '8',
9: '9',
10: '10',
11: '11',
12: '12',
13: '13',
},
gridRow: {
auto: 'auto',
'span-1': 'span 1 / span 1',
'span-2': 'span 2 / span 2',
'span-3': 'span 3 / span 3',
'span-4': 'span 4 / span 4',
'span-5': 'span 5 / span 5',
'span-6': 'span 6 / span 6',
'span-full': '1 / -1',
},
gridRowEnd: {
auto: 'auto',
1: '1',
2: '2',
3: '3',
4: '4',
5: '5',
6: '6',
7: '7',
},
gridRowStart: {
auto: 'auto',
1: '1',
2: '2',
3: '3',
4: '4',
5: '5',
6: '6',
7: '7',
},
gridTemplateColumns: {
none: 'none',
1: 'repeat(1, minmax(0, 1fr))',
2: 'repeat(2, minmax(0, 1fr))',
3: 'repeat(3, minmax(0, 1fr))',
4: 'repeat(4, minmax(0, 1fr))',
5: 'repeat(5, minmax(0, 1fr))',
6: 'repeat(6, minmax(0, 1fr))',
7: 'repeat(7, minmax(0, 1fr))',
8: 'repeat(8, minmax(0, 1fr))',
9: 'repeat(9, minmax(0, 1fr))',
10: 'repeat(10, minmax(0, 1fr))',
11: 'repeat(11, minmax(0, 1fr))',
12: 'repeat(12, minmax(0, 1fr))',
},
gridTemplateRows: {
none: 'none',
1: 'repeat(1, minmax(0, 1fr))',
2: 'repeat(2, minmax(0, 1fr))',
3: 'repeat(3, minmax(0, 1fr))',
4: 'repeat(4, minmax(0, 1fr))',
5: 'repeat(5, minmax(0, 1fr))',
6: 'repeat(6, minmax(0, 1fr))',
},
height: {
auto: 'auto',
...spacing,
'1/2': '50%',
'1/3': '33.333333%',
'2/3': '66.666667%',
'1/4': '25%',
'2/4': '50%',
'3/4': '75%',
'1/5': '20%',
'2/5': '40%',
'3/5': '60%',
'4/5': '80%',
'1/6': '16.666667%',
'2/6': '33.333333%',
'3/6': '50%',
'4/6': '66.666667%',
'5/6': '83.333333%',
full: '100%',
screen: '100vh',
min: 'min-content',
max: 'max-content',
fit: 'fit-content',
},
hueRotate: {
0: '0deg',
15: '15deg',
30: '30deg',
60: '60deg',
90: '90deg',
180: '180deg',
},
inset: {
auto: 'auto',
...spacing,
'1/2': '50%',
'1/3': '33.333333%',
'2/3': '66.666667%',
'1/4': '25%',
'2/4': '50%',
'3/4': '75%',
full: '100%',
},
invert: {
0: '0',
DEFAULT: '100%',
},
keyframes: {
spin: {
to: {
transform: 'rotate(360deg)',
},
},
ping: {
'75%, 100%': {
transform: 'scale(2)',
opacity: '0',
},
},
pulse: {
'50%': {
opacity: '.5',
},
},
bounce: {
'0%, 100%': {
transform: 'translateY(-25%)',
animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',
},
'50%': {
transform: 'none',
animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',
},
},
"accordion-down": {
from: { height: 0 },
to: { height: "var(--radix-accordion-content-height)" },
},
"accordion-up": {
from: { height: "var(--radix-accordion-content-height)" },
to: { height: 0 },
},
},
letterSpacing: {
tighter: '-0.05em',
tight: '-0.025em',
normal: '0em',
wide: '0.025em',
wider: '0.05em',
widest: '0.1em',
},
lineHeight: {
none: '1',
tight: '1.25',
snug: '1.375',
normal: '1.5',
relaxed: '1.625',
loose: '2',
3: '.75rem',
4: '1rem',
5: '1.25rem',
6: '1.5rem',
7: '1.75rem',
8: '2rem',
9: '2.25rem',
10: '2.5rem',
},
listStyleType: {
none: 'none',
disc: 'disc',
decimal: 'decimal',
},
listStyleImage: {
none: 'none',
},
margin: {
auto: 'auto',
...spacing,
},
lineClamp: {
1: '1',
2: '2',
3: '3',
4: '4',
5: '5',
6: '6',
},
maxHeight: {
...spacing,
none: 'none',
full: '100%',
screen: '100vh',
min: 'min-content',
max: 'max-content',
fit: 'fit-content',
},
maxWidth: ({ theme, breakpoints }) => ({
none: 'none',
0: '0rem',
xs: '20rem',
sm: '24rem',
md: '28rem',
lg: '32rem',
xl: '36rem',
'2xl': '42rem',
'3xl': '48rem',
'4xl': '56rem',
'5xl': '64rem',
'6xl': '72rem',
'7xl': '80rem',
full: '100%',
min: 'min-content',
max: 'max-content',
fit: 'fit-content',
prose: '65ch',
...breakpoints(theme('screens')),
}),
minHeight: {
0: '0px',
full: '100%',
screen: '100vh',
min: 'min-content',
max: 'max-content',
fit: 'fit-content',
},
minWidth: {
0: '0px',
full: '100%',
min: 'min-content',
max: 'max-content',
fit: 'fit-content',
},
objectPosition: {
bottom: 'bottom',
center: 'center',
left: 'left',
'left-bottom': 'left bottom',
'left-top': 'left top',
right: 'right',
'right-bottom': 'right bottom',
'right-top': 'right top',
top: 'top',
},
opacity: {
0: '0',
5: '0.05',
10: '0.1',
20: '0.2',
25: '0.25',
30: '0.3',
40: '0.4',
50: '0.5',
60: '0.6',
70: '0.7',
75: '0.75',
80: '0.8',
90: '0.9',
95: '0.95',
100: '1',
},
order: {
first: '-9999',
last: '9999',
none: '0',
1: '1',
2: '2',
3: '3',
4: '4',
5: '5',
6: '6',
7: '7',
8: '8',
9: '9',
10: '10',
11: '11',
12: '12',
},
outlineColor: ({ theme }) => theme('colors'),
outlineOffset: {
0: '0px',
1: '1px',
2: '2px',
4: '4px',
8: '8px',
},
outlineWidth: {
0: '0px',
1: '1px',
2: '2px',
4: '4px',
8: '8px',
},
padding: spacing,
placeholderColor: ({ theme }) => theme('colors'),
placeholderOpacity: ({ theme }) => theme('opacity'),
ringColor: ({ theme }) => ({
DEFAULT: theme('colors.blue.500', '#3b82f6'),
...theme('colors'),
}),
ringOffsetColor: ({ theme }) => theme('colors'),
ringOffsetWidth: {
0: '0px',
1: '1px',
2: '2px',
4: '4px',
8: '8px',
},
ringOpacity: ({ theme }) => ({
DEFAULT: '0.5',
...theme('opacity'),
}),
ringWidth: {
DEFAULT: '3px',
0: '0px',
1: '1px',
2: '2px',
4: '4px',
8: '8px',
},
rotate: {
0: '0deg',
1: '1deg',
2: '2deg',
3: '3deg',
6: '6deg',
12: '12deg',
45: '45deg',
90: '90deg',
180: '180deg',
},
saturate: {
0: '0',
50: '.5',
100: '1',
150: '1.5',
200: '2',
},
scale: {
0: '0',
50: '.5',
75: '.75',
90: '.9',
95: '.95',
100: '1',
105: '1.05',
110: '1.1',
125: '1.25',
150: '1.5',
},
screens,
scrollMargin: spacing,
scrollPadding: spacing,
sepia: {
0: '0',
DEFAULT: '100%',
},
skew: {
0: '0deg',
1: '1deg',
2: '2deg',
3: '3deg',
6: '6deg',
12: '12deg',
},
space: spacing,
spacing,
stroke: ({ theme }) => ({
none: 'none',
...theme('colors'),
}),
strokeWidth: {
0: '0',
1: '1',
2: '2',
},
supports: {},
data: {},
textColor: ({ theme }) => theme('colors'),
textDecorationColor: ({ theme }) => theme('colors'),
textDecorationThickness: {
auto: 'auto',
'from-font': 'from-font',
0: '0px',
1: '1px',
2: '2px',
4: '4px',
8: '8px',
},
textIndent: spacing,
textOpacity: ({ theme }) => theme('opacity'),
textUnderlineOffset: {
auto: 'auto',
0: '0px',
1: '1px',
2: '2px',
4: '4px',
8: '8px',
},
transformOrigin: {
center: 'center',
top: 'top',
'top-right': 'top right',
right: 'right',
'bottom-right': 'bottom right',
bottom: 'bottom',
'bottom-left': 'bottom left',
left: 'left',
'top-left': 'top left',
},
transitionDelay: {
0: '0s',
75: '75ms',
100: '100ms',
150: '150ms',
200: '200ms',
300: '300ms',
500: '500ms',
700: '700ms',
1000: '1000ms',
},
transitionDuration: {
DEFAULT: '150ms',
0: '0s',
75: '75ms',
100: '100ms',
150: '150ms',
200: '200ms',
300: '300ms',
500: '500ms',
700: '700ms',
1000: '1000ms',
},
transitionProperty: {
none: 'none',
all: 'all',
DEFAULT:
'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',
colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',
opacity: 'opacity',
shadow: 'box-shadow',
transform: 'transform',
},
transitionTimingFunction: {
DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',
linear: 'linear',
in: 'cubic-bezier(0.4, 0, 1, 1)',
out: 'cubic-bezier(0, 0, 0.2, 1)',
'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
},
translate: {
...spacing,
'1/2': '50%',
'1/3': '33.333333%',
'2/3': '66.666667%',
'1/4': '25%',
'2/4': '50%',
'3/4': '75%',
full: '100%',
},
width: {
auto: 'auto',
...spacing,
'1/2': '50%',
'1/3': '33.333333%',
'2/3': '66.666667%',
'1/4': '25%',
'2/4': '50%',
'3/4': '75%',
'1/5': '20%',
'2/5': '40%',
'3/5': '60%',
'4/5': '80%',
'1/6': '16.666667%',
'2/6': '33.333333%',
'3/6': '50%',
'4/6': '66.666667%',
'5/6': '83.333333%',
'1/12': '8.333333%',
'2/12': '16.666667%',
'3/12': '25%',
'4/12': '33.333333%',
'5/12': '41.666667%',
'6/12': '50%',
'7/12': '58.333333%',
'8/12': '66.666667%',
'9/12': '75%',
'10/12': '83.333333%',
'11/12': '91.666667%',
full: '100%',
screen: '100vw',
min: 'min-content',
max: 'max-content',
fit: 'fit-content',
},
willChange: {
auto: 'auto',
scroll: 'scroll-position',
contents: 'contents',
transform: 'transform',
},
zIndex: {
auto: 'auto',
0: '0',
10: '10',
20: '20',
30: '30',
40: '40',
50: '50',
},
},
}
+2 -2
View File
@@ -1,9 +1,9 @@
import type { Breakpoint } from '.'
import type { Breakpoint } from './breakpoints'
type GridColumnSpec = number | { columns: number, gap: number}
interface GridDef {
// Please define in ACCENDING order.
/** Must define in ACCENDING order. */
at: {
[key in (Breakpoint)]?: GridColumnSpec
},
+16 -37
View File
@@ -388,12 +388,6 @@ importers:
tailwind-merge:
specifier: ^2.2.0
version: 2.2.0
tailwindcss:
specifier: ^3.4.1
version: 3.4.1(ts-node@10.9.2)
tailwindcss-animate:
specifier: ^1.0.6
version: 1.0.6(tailwindcss@3.4.1)
tailwindcss-interaction-media:
specifier: ^0.1.0
version: 0.1.0
@@ -413,6 +407,9 @@ importers:
'@mdx-js/react':
specifier: ^3.0.0
version: 3.0.0(@types/react@18.2.48)(react@18.2.0)
'@types/lodash.merge':
specifier: ^4.6.9
version: 4.6.9
'@types/mdx':
specifier: ^2.0.9
version: 2.0.10
@@ -434,6 +431,12 @@ importers:
postcss-import:
specifier: ^16.0.0
version: 16.0.0(postcss@8.4.33)
tailwindcss:
specifier: ^3.4.1
version: 3.4.1(ts-node@10.9.2)
tailwindcss-animate:
specifier: ^1.0.6
version: 1.0.6(tailwindcss@3.4.1)
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -1306,7 +1309,6 @@ packages:
strip-ansi-cjs: /strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: /wrap-ansi@7.0.0
dev: false
/@jridgewell/gen-mapping@0.3.3:
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
@@ -1942,7 +1944,6 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
requiresBuild: true
dev: false
optional: true
/@protobufjs/aspromise@1.1.2:
@@ -4423,6 +4424,12 @@ packages:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
dev: true
/@types/lodash.merge@4.6.9:
resolution: {integrity: sha512-23sHDPmzd59kUgWyKGiOMO2Qb9YtqRO/x4IhkgNUiPQ1+5MUVqi6bCZeq9nBJ17msjIMbEIO5u+XW4Kz6aGUhQ==}
dependencies:
'@types/lodash': 4.14.195
dev: true
/@types/lodash.template@4.5.1:
resolution: {integrity: sha512-0y71S2dGgmwdkSsyW95JBp8HSZchgKCsjr6F0lsT3eSMtaT3Nn9rcMHU1U4UKu6XjQT3YC6/PNwgFI7k9f+ltw==}
dependencies:
@@ -4774,7 +4781,6 @@ packages:
/ansi-regex@6.0.1:
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
engines: {node: '>=12'}
dev: false
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
@@ -4791,7 +4797,6 @@ packages:
/ansi-styles@6.2.1:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
dev: false
/any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@@ -4976,7 +4981,6 @@ packages:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
dev: false
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
@@ -5563,7 +5567,6 @@ packages:
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: false
/electron-to-chromium@1.4.450:
resolution: {integrity: sha512-BLG5HxSELlrMx7dJ2s+8SFlsCtJp37Zpk2VAxyC6CZtbc+9AJeZHfYHbrlSgdXp6saQ8StMqOTEDaBKgA7u1sw==}
@@ -5607,7 +5610,6 @@ packages:
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: false
/emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
@@ -6327,7 +6329,6 @@ packages:
dependencies:
cross-spawn: 7.0.3
signal-exit: 4.1.0
dev: false
/format@0.2.2:
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
@@ -6468,7 +6469,6 @@ packages:
minimatch: 9.0.3
minipass: 7.0.4
path-scurry: 1.10.1
dev: false
/glob@7.1.6:
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
@@ -6966,7 +6966,6 @@ packages:
/is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: false
/is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
@@ -7102,7 +7101,6 @@ packages:
'@isaacs/cliui': 8.0.2
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
dev: false
/javascript-natural-sort@0.7.1:
resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==}
@@ -7240,7 +7238,6 @@ packages:
/lilconfig@3.0.0:
resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==}
engines: {node: '>=14'}
dev: false
/lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@@ -7326,7 +7323,6 @@ packages:
/lru-cache@10.1.0:
resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==}
engines: {node: 14 || >=16.14}
dev: false
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -8524,7 +8520,6 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
brace-expansion: 2.0.1
dev: false
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
@@ -8532,7 +8527,6 @@ packages:
/minipass@7.0.4:
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
engines: {node: '>=16 || 14 >=14.17'}
dev: false
/mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
@@ -8986,7 +8980,6 @@ packages:
dependencies:
lru-cache: 10.1.0
minipass: 7.0.4
dev: false
/path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
@@ -9025,7 +9018,6 @@ packages:
/pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
dev: false
/postcss-import@15.1.0(postcss@8.4.24):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
@@ -9048,7 +9040,6 @@ packages:
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.2
dev: false
/postcss-import@16.0.0(postcss@8.4.33):
resolution: {integrity: sha512-e77lhVvrD1I2y7dYmBv0k9ULTdArgEYZt97T4w6sFIU5uxIHvDFQlKgUUyY7v7Barj0Yf/zm5A4OquZN7jKm5Q==}
@@ -9079,7 +9070,6 @@ packages:
dependencies:
camelcase-css: 2.0.1
postcss: 8.4.33
dev: false
/postcss-load-config@4.0.1(postcss@8.4.24)(ts-node@10.9.2):
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
@@ -9114,7 +9104,6 @@ packages:
postcss: 8.4.33
ts-node: 10.9.2(@types/node@17.0.45)(typescript@5.3.3)
yaml: 2.3.4
dev: false
/postcss-nested@6.0.1(postcss@8.4.24):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
@@ -9133,7 +9122,6 @@ packages:
dependencies:
postcss: 8.4.33
postcss-selector-parser: 6.0.15
dev: false
/postcss-selector-parser@6.0.15:
resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
@@ -9924,7 +9912,6 @@ packages:
/signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
dev: false
/simple-concat@1.0.1:
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
@@ -10010,7 +9997,6 @@ packages:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
dev: false
/string-width@5.1.2:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
@@ -10019,7 +10005,6 @@ packages:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
strip-ansi: 7.1.0
dev: false
/string.prototype.codepointat@0.2.1:
resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==}
@@ -10086,7 +10071,6 @@ packages:
engines: {node: '>=12'}
dependencies:
ansi-regex: 6.0.1
dev: false
/strip-bom-string@1.0.0:
resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
@@ -10168,7 +10152,6 @@ packages:
mz: 2.7.0
pirates: 4.0.6
ts-interface-checker: 0.1.13
dev: false
/supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
@@ -10221,7 +10204,7 @@ packages:
tailwindcss: '>=3.0.0 || insiders'
dependencies:
tailwindcss: 3.4.1(ts-node@10.9.2)
dev: false
dev: true
/tailwindcss-interaction-media@0.1.0:
resolution: {integrity: sha512-3/o9Gc8sXqrUHp/7w4T+Zt46GubrO7BRmxJpB6BogJt0B33K5G1lOVe2q0Ro43Zkk51Tp2ED0zQ/wL5weO+yUw==}
@@ -10318,7 +10301,6 @@ packages:
sucrase: 3.35.0
transitivePeerDependencies:
- ts-node
dev: false
/tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
@@ -10968,7 +10950,6 @@ packages:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
dev: false
/wrap-ansi@8.1.0:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
@@ -10977,7 +10958,6 @@ packages:
ansi-styles: 6.2.1
string-width: 5.1.2
strip-ansi: 7.1.0
dev: false
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -11000,7 +10980,6 @@ packages:
/yaml@2.3.4:
resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
engines: {node: '>= 14'}
dev: false
/yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}