, B>} styles - The styles to apply to the component
- * @param {MergeFn} [mergeFn] - Optional function to merge props
+ * @param {RecastConfig} [config] - Optional configuration for recast
* @returns {RecastComponent
} A new component with theming capabilities
*/
export function recast<
@@ -31,10 +48,12 @@ export function recast<
V extends { [K in keyof V]: { [S in keyof V[K]]: string | string[] } },
M extends { [K in keyof M]: string | string[] },
B extends keyof RecastBreakpoints | never = never,
->(Component: React.ComponentType
, styles: RecastStyles, B>, mergeFn?: MergeFn) {
- type Props = Omit | keyof ExtractModifierProps> &
- ExtractVariantProps &
- ExtractModifierProps & { className?: string };
+>(Component: React.ComponentType, styles: RecastStyles, B>, config: RecastConfig = {}) {
+ type BaseProps = Omit | keyof ExtractModifierProps>;
+ type VariantProps = ExtractVariantProps;
+ type ModifierProps = ExtractModifierProps;
+
+ type Props = BaseProps & VariantProps & ModifierProps & { className?: string };
const processModifiers = (props: Record): RelaxedModifierProps => {
const modifierKeys = Object.keys(styles.modifiers || {});
@@ -76,13 +95,29 @@ export function recast<
breakpoints: styles.breakpoints,
});
- const mergedClassName = mergeFn
- ? mergeFn(recastClassesClassName, className)
+ const mergedClassName = config?.mergeFn
+ ? config.mergeFn(recastClassesClassName, className)
: `${recastClassesClassName} ${className || ""}`.trim();
+ type PassThroughProp = keyof V | keyof M | keyof P;
+
+ function getPassThroughValue(prop: PassThroughProp): unknown {
+ return props[prop];
+ }
+
+ const passThroughProps = config.passThroughProps
+ ? Object.fromEntries(
+ config.passThroughProps
+ .filter((prop) => prop in props)
+ .map((prop) => [prop, getPassThroughValue(prop)])
+ .filter(([, value]) => value !== undefined),
+ )
+ : {};
+
return (
& {
asChild?: boolean;
+ block?: boolean;
+ george?: string;
+ size?: string;
};
const Component = forwardRef(
- ({ asChild = false, ...props }, ref) => {
+ ({ block, size, george, asChild = false, ...props }, ref) => {
const Comp = asChild ? Slot : "button";
+ console.log(block);
+ console.log(george);
+ console.log(size);
+
return ;
}
);
Component.displayName = "ButtonPrimitive";
-export const Button = recast(Component, {
- defaults: {
- variants: { variant: "primary", size: "md" },
- },
- base: ["flex", "items-center", "justify-center", "p-8"],
- variants: {
- variant: {
- primary: "bg-blue-500 text-white",
- secondary: ["bg-red-500", "text-white"],
- tertiary: ["bg-green-500", "text-white"],
+export const Button = recast(
+ Component,
+ {
+ defaults: {
+ variants: { variant: "primary", size: "md" },
+ },
+ base: ["flex", "items-center", "justify-center", "p-8"],
+ variants: {
+ /**
+ * Defines the intent of the button.
+ */
+ variant: {
+ primary: "bg-blue-500 text-white",
+ secondary: [
+ "bg-red-500",
+ "text-white",
+ "text-sm",
+ "flex",
+ "items-center",
+ "justify-center",
+ "p-8",
+ ],
+ tertiary: ["bg-green-500", "text-white"],
+ },
+ /**
+ * Defines the size of the button.
+ */
+ size: {
+ /** Small size - typically used for compact layouts */
+ tiny: "text-sm",
+ /** Medium size - the default size for most contexts */
+ md: "text-base",
+ /** Large size - used for emphasis or calls to action */
+ huge: "text-2xl",
+ },
+ george: {
+ /** Button A */
+ sms: "max-w-4xl",
+ /** B */
+ md: "max-w-6xl",
+ /** C */
+ lg: "max-w-7xl",
+ },
},
- size: {
- sm: "text-sm",
- md: "text-md",
- lg: "text-2xl",
+ modifiers: {
+ /** Large size - used for emphasis or calls to action */
+ block: "w-full",
},
+ conditionals: [
+ /** This condional is really cool. */
+ {
+ variants: { size: "tiny", variant: ["primary", "secondary"] },
+ modifiers: ["block"],
+ className: "border-4 border-blue-500 text-white",
+ },
+ ],
+ breakpoints: ["sm", "md", "lg"],
},
- breakpoints: ["sm", "md", "lg"],
-});
+ {
+ passThroughProps: ["size", "george"],
+ }
+);
diff --git a/packages/sandbox/app/components/section-wrapper/index.ts b/packages/sandbox/app/components/section-wrapper/index.ts
new file mode 100644
index 0000000..319bbe0
--- /dev/null
+++ b/packages/sandbox/app/components/section-wrapper/index.ts
@@ -0,0 +1 @@
+export * from "./section-wrapper";
diff --git a/packages/sandbox/app/components/section-wrapper/section-wrapper.ts b/packages/sandbox/app/components/section-wrapper/section-wrapper.ts
new file mode 100644
index 0000000..9c3a6b5
--- /dev/null
+++ b/packages/sandbox/app/components/section-wrapper/section-wrapper.ts
@@ -0,0 +1,36 @@
+"use client";
+
+import { SectionWrapperPrimitive } from "@rpxl/recast-primitives";
+import { recast } from "@rpxl/recast";
+
+export const SectionWrapperNew = recast(SectionWrapperPrimitive, {
+ defaults: { variants: { george: "md" } },
+ base: {
+ root: "flex w-full justify-center overflow-hidden",
+ inner: "relative w-full px-4",
+ },
+ variants: {
+ kevin: {
+ /** E */
+ arnold: { root: ["bg-red-500 text-sm"], inner: "max-w-4xl" },
+ /** F */
+ baxter: { root: ["bg-red-500 text-sm"], inner: "max-w-6xl" },
+ /** G */
+ smith: { root: ["bg-red-500 text-sm"], inner: "max-w-7xl" },
+ },
+ george: {
+ /** SectionWrapper A */
+ sms: { inner: "max-w-4xl" },
+ /** B */
+ md: { inner: "max-w-6xl" },
+ /** C */
+ lg: { inner: "max-w-7xl" },
+ },
+ },
+ modifiers: {
+ /** Slim container override (672px) */
+ slim: {
+ inner: "!max-w-2xl",
+ },
+ },
+});
diff --git a/packages/sandbox/app/components/stack/index.ts b/packages/sandbox/app/components/stack/index.ts
new file mode 100644
index 0000000..dc9eefd
--- /dev/null
+++ b/packages/sandbox/app/components/stack/index.ts
@@ -0,0 +1 @@
+export * from "./stack";
diff --git a/packages/sandbox/app/components/stack/stack.ts b/packages/sandbox/app/components/stack/stack.ts
new file mode 100644
index 0000000..200a60d
--- /dev/null
+++ b/packages/sandbox/app/components/stack/stack.ts
@@ -0,0 +1,45 @@
+import { StackPrimitive } from "@rpxl/recast-primitives";
+import { recast } from "@rpxl/recast";
+
+/**
+ * Stack Component
+ *
+ * This component is created using the recast function, which enhances the StackPrimitive
+ * with additional styling and variant options.
+ *
+ * @component
+ */
+export const Stack = recast(StackPrimitive, {
+ /**
+ * Default variant settings
+ * @property {Object} defaults - The default variant settings
+ * @property {Object} defaults.variants - The default variants
+ * @property {string} defaults.variants.size - The default size variant (set to "md")
+ */
+ defaults: { variants: { size: "md" } },
+
+ /**
+ * Base styles applied to all instances of the Stack component
+ * @property {string} base - The base CSS classes
+ */
+ base: "flex flex-col",
+
+ /**
+ * Variant styles that can be applied to the Stack component
+ * @property {Object} variants - The available variants
+ * @property {Object} variants.size - Size variants affecting the gap between stack items
+ */
+ variants: {
+ size: {
+ /** No gap between items */
+ none: "gap-0", // No gap between items
+ /** Extra small gap (0.25rem or 4px in Tailwind's default scale) */
+ xs: "gap-1", //
+ sm: "gap-2", // Small gap (0.5rem or 8px)
+ md: "gap-2", // Medium gap (0.5rem or 8px, same as sm in this case)
+ lg: "gap-8", // Large gap (2rem or 32px)
+ xl: "gap-16", // Extra large gap (4rem or 64px)
+ xxl: "gap-24", // Extra extra large gap (6rem or 96px)
+ },
+ },
+});
diff --git a/packages/sandbox/app/page.tsx b/packages/sandbox/app/page.tsx
index a05371c..45b1357 100644
--- a/packages/sandbox/app/page.tsx
+++ b/packages/sandbox/app/page.tsx
@@ -1,18 +1,25 @@
import { Button } from "./components/button";
+import { SectionWrapperNew } from "./components/section-wrapper";
export default function Page() {
return (
- {/*
+
+ Content
+
+
+
Sandbox
- */}
+
+
Yo
- {/* Kevin */}
);
}
diff --git a/packages/theme/components/ui/switch/switch.ts b/packages/theme/components/ui/switch/switch.ts
index 56b7db5..174cc8a 100644
--- a/packages/theme/components/ui/switch/switch.ts
+++ b/packages/theme/components/ui/switch/switch.ts
@@ -10,7 +10,7 @@ export const Switch = recast(SwitchPrimitive, {
"transition-all",
"backdrop-blur",
"bg-primary-300/5",
- "data-[state=checked]:bg-primary-500/10",
+ // "data-[state=checked]:bg-primary-500/10",
"cursor-pointer",
"disabled:cursor-not-allowed",
"disabled:opacity-50",
@@ -28,7 +28,7 @@ export const Switch = recast(SwitchPrimitive, {
thumb: [
"bg-primary-300/5",
"transition-all",
- "data-[state=checked]:bg-primary-300/20",
+ // "data-[state=checked]:bg-primary-300/20",
"block",
"data-[state=checked]:translate-x-full",
"data-[state=unchecked]:translate-x-0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 46d57e6..0641a52 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -361,6 +361,18 @@ importers:
specifier: ^0.34.0
version: 0.34.6(jsdom@25.0.0)
+ packages/recast-vscode-plugin:
+ devDependencies:
+ '@types/node':
+ specifier: ^20
+ version: 20.16.5
+ '@types/vscode':
+ specifier: ^1.93.0
+ version: 1.93.0
+ typescript:
+ specifier: ^5.6.2
+ version: 5.6.2
+
packages/sandbox:
dependencies:
'@radix-ui/react-slot':
@@ -1668,8 +1680,8 @@ packages:
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
- react: 18.3.1
- react-dom: 18.3.1
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
@@ -1790,7 +1802,7 @@ packages:
'@radix-ui/react-use-controllable-state@1.1.0':
resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
peerDependencies:
- '@types/react': npm:types-react@19.0.0-rc.0
+ '@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@@ -2103,6 +2115,9 @@ packages:
'@types/unist@3.0.2':
resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==}
+ '@types/vscode@1.93.0':
+ resolution: {integrity: sha512-kUK6jAHSR5zY8ps42xuW89NLcBpw1kOabah7yv38J8MyiYuOHxLQBi0e7zeXbQgVefDy/mZZetqEFC+Fl5eIEQ==}
+
'@typescript-eslint/eslint-plugin@6.21.0':
resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==}
engines: {node: ^16.0.0 || >=18.0.0}
@@ -7482,6 +7497,8 @@ snapshots:
'@types/unist@3.0.2': {}
+ '@types/vscode@1.93.0': {}
+
'@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)':
dependencies:
'@eslint-community/regexpp': 4.10.0
@@ -8634,7 +8651,7 @@ snapshots:
eslint-compat-utils@0.5.0(eslint@8.57.0):
dependencies:
eslint: 8.57.0
- semver: 7.6.0
+ semver: 7.6.3
eslint-config-next@14.1.0(eslint@8.57.0)(typescript@5.6.2):
dependencies:
@@ -8663,8 +8680,8 @@ snapshots:
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.6.2)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
- eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0)
+ eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0)
eslint-plugin-react: 7.36.1(eslint@8.57.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
@@ -8687,13 +8704,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0):
+ eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.3.7
enhanced-resolve: 5.16.0
eslint: 8.57.0
- eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
+ eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
fast-glob: 3.3.2
get-tsconfig: 4.8.1
is-bun-module: 1.2.1
@@ -8706,13 +8723,13 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0):
+ eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.3.7
enhanced-resolve: 5.16.0
eslint: 8.57.0
- eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
+ eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0)
fast-glob: 3.3.2
get-tsconfig: 4.8.1
is-bun-module: 1.2.1
@@ -8744,17 +8761,6 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-module-utils@2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
- dependencies:
- debug: 3.2.7
- optionalDependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.6.2)
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
- transitivePeerDependencies:
- - supports-color
-
eslint-module-utils@2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7
@@ -8766,25 +8772,25 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
+ eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.6.2)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
+ eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.6.2)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
+ eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
@@ -8833,34 +8839,6 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0):
- dependencies:
- '@rtsao/scc': 1.1.0
- array-includes: 3.1.8
- array.prototype.findlastindex: 1.2.5
- array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
- debug: 3.2.7
- doctrine: 2.1.0
- eslint: 8.57.0
- eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.11.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
- hasown: 2.0.2
- is-core-module: 2.15.1
- is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.8
- object.groupby: 1.0.3
- object.values: 1.2.0
- semver: 6.3.1
- tsconfig-paths: 3.15.0
- optionalDependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.6.2)
- transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- - supports-color
-
eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
dependencies:
'@babel/runtime': 7.24.1