Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
5a7f907
fix(sideEffects): unblock tree-shaking on variance, gamut-styles, gam…
dreamwasp Sep 16, 2026
f891914
build(tsdown): migrate variance, gamut-styles, gamut to the hybrid build
dreamwasp Sep 16, 2026
e18c7fa
build(tsdown): migrate gamut-icons, gamut-patterns, gamut-illustratio…
dreamwasp Sep 16, 2026
45a9f16
build(tsdown): add packaging verification (publint, attw, exports res…
dreamwasp Sep 16, 2026
37e28f5
build(tsdown): replace Babel with tsdown across all gamut packages
dreamwasp Sep 17, 2026
a41e396
Merge branch 'main' into cass-gmt-1741
dreamwasp Sep 17, 2026
501ac4d
less words
dreamwasp Sep 17, 2026
fdea41b
more changes
dreamwasp Sep 17, 2026
1010384
Merge branch 'cass-gmt-1741' of github.com:Codecademy/skillsoft-gamut…
dreamwasp Sep 17, 2026
30bf346
video
dreamwasp Sep 18, 2026
7c5df2c
fix(tsconfig): fix TS5097 in editors on tsdown.config.ts files
dreamwasp Sep 18, 2026
8cdda2e
Merge branch 'main' into cass-gmt-1741
dreamwasp Sep 18, 2026
862eb02
build(babel): DRY up per-package babel configs, drop dead styleguide …
dreamwasp Sep 18, 2026
c410e14
merged in main + dedupd
dreamwasp Sep 18, 2026
cca5dad
build(storybook): swap Emotion's Babel transform for @swc/plugin-emotion
dreamwasp Sep 18, 2026
7a9912b
comment format
dreamwasp Sep 21, 2026
a0318bf
fix node versions
dreamwasp Sep 21, 2026
c8828b5
Merge branch 'cass-gmt-1741' into cass-gmt-1795
dreamwasp Sep 21, 2026
402fa61
start swapping out babel;
dreamwasp Sep 21, 2026
8878514
Merge branch 'cass-gmt-1795' of github.com:Codecademy/skillsoft-gamut…
dreamwasp Sep 21, 2026
092bf53
resolution needed
dreamwasp Sep 21, 2026
eb61930
remove cirucular deps
dreamwasp Sep 21, 2026
e413ae1
Merge origin/main into cass-gmt-1795
dreamwasp Sep 22, 2026
1b18917
yarned
dreamwasp Sep 22, 2026
e56a6e7
prettier
dreamwasp Sep 22, 2026
3afabd1
Merge branch 'main' into cass-gmt-1795
dreamwasp Sep 23, 2026
e3c1513
make type exports explicit
dreamwasp Sep 23, 2026
bc15e63
Merge branch 'cass-gmt-1795' of github.com:Codecademy/skillsoft-gamut…
dreamwasp Sep 23, 2026
8bcd341
Merge remote-tracking branch 'origin/main' into cass-gmt-1795
dreamwasp Sep 23, 2026
5c278d5
formatting
dreamwasp Sep 24, 2026
ece8df7
Merge branch 'main' into cass-gmt-1795
dreamwasp Oct 5, 2026
aaa5505
dedupe
dreamwasp Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,19 @@ module.exports = {
// being applied to subsequent plugin imports/extensions. Wild.
files: ['*.tsx', '*.ts'],
rules: {
// Bundlers (esbuild/Vite dev, tsdown/rolldown) elide type-only
// imports based on per-file usage heuristics, not full type info.
// A value-imported type re-exported via `export type {}` can look
// used to the heuristic, get preserved as a runtime import, and
// crash at runtime since the source has no matching runtime export.
'@typescript-eslint/consistent-type-imports': [
'error',
{
prefer: 'type-imports',
fixStyle: 'separate-type-imports',
disallowTypeAnnotations: false,
},
],
'@typescript-eslint/no-empty-object-type': [
'error',
{
Expand Down
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@
"@storybook/react-vite": "10.3.3",
"@svgr/cli": "5.5.0",
"@swc-node/register": "^1.11.1",
"@swc/core": "^1.15.18",
"@swc/core": "1.15.43",
"@swc/plugin-emotion": "14.15.0",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.0.0",
Expand All @@ -61,6 +62,7 @@
"@typescript-eslint/eslint-plugin": "^8.57.0",
"@typescript-eslint/parser": "^8.57.0",
"@vitejs/plugin-react": "^5.0.0",
"@vitejs/plugin-react-swc": "4.3.0",
"@vitest/browser": "^3.2.4",
"babel-jest": "30.4.1",
"babel-plugin-macros": "^3.0.1",
Expand Down Expand Up @@ -112,6 +114,7 @@
"repository": "git@github.com:Codecademy/skillsoft-gamut.git",
"resolutions": {
"@react-aria/interactions": "3.25.0",
"@swc/core": "1.15.43",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0",
"@types/react-test-renderer": "^18.2.0",
Expand Down
1 change: 0 additions & 1 deletion packages/eslint-plugin-gamut/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
],
"license": "MIT",
"main": "./dist/index.js",
"module": "dist/index.js",
"publishConfig": {
"access": "public"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-gamut/src/gamut-import-paths.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { TSESTree } from '@typescript-eslint/utils';
import type { TSESTree } from '@typescript-eslint/utils';

import { createRule } from './createRule';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils';
import type { TSESTree } from '@typescript-eslint/utils';
import { AST_NODE_TYPES } from '@typescript-eslint/utils';

import { createRule } from './createRule';

Expand Down
3 changes: 2 additions & 1 deletion packages/eslint-plugin-gamut/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils';
import type { TSESTree } from '@typescript-eslint/utils';
import { AST_NODE_TYPES } from '@typescript-eslint/utils';

export const isNamedVariableTheme = (
arrowExpression: TSESTree.ArrowFunctionExpression
Expand Down
3 changes: 2 additions & 1 deletion packages/gamut-icons/icon-template.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ function iconTemplate(api, opts, { jsx }) {

return template.ast`
import * as React from 'react';
import { Svg, GamutIconProps } from '../../props';
import { Svg } from '../../props';
import type { GamutIconProps } from '../../props';
import { useIconId } from '../../useIconId';

export const ${exportName} = React.forwardRef<SVGSVGElement, GamutIconProps>(({
Expand Down
3 changes: 2 additions & 1 deletion packages/gamut-icons/src/props.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import styled from '@emotion/styled';
import { styledOptions, system } from '@skillsoft/gamut-styles';
import { StyleProps, variance } from '@skillsoft/variance';
import type { StyleProps } from '@skillsoft/variance';
import { variance } from '@skillsoft/variance';

export interface IconStyleProps extends StyleProps<typeof iconProps> {
/**
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/AIBuilder.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const AIBuilder: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/AIBuilderLanding.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const AIBuilderLanding: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Achievement.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Achievement: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Announcement.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Announcement: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Bee.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Bee: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Bell.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Bell: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/BinaryBlocks.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const BinaryBlocks: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/BinaryStairs.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const BinaryStairs: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Blocks.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from '.';
import type { IllustrationProps } from '.';

export const Blocks: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Blueprint.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Blueprint: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/BlueprintWhite.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const BlueprintWhite: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/BookAndNotepad.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const BookAndNotepad: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Browser.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Browser: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/BrowserLock.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const BrowserLock: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/BrowserPuzzle.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const BrowserPuzzle: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/ChatBox.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const ChatBox: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/CodeCelebration.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const CodeCelebration: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Coffee.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Coffee: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Confetti.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Confetti: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Conversation.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Conversation: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/CubeIllustration.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const CubeIllustration: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/CustomProject.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const CustomProject: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/EmailAt.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const EmailAt: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Envelope.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Envelope: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/ErrorWindow.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const ErrorWindow: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Events.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Events: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/ExplodedCube.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const ExplodedCube: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/ExplodedCubeLight.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const ExplodedCubeLight: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Heart.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Heart: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Hills.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Hills: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/HomeOffice.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const HomeOffice: React.FC<IllustrationProps> = ({
className,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import type * as React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const InnovationBuildingBlocks: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Interest.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import type React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Interest: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
4 changes: 2 additions & 2 deletions packages/gamut-illustrations/src/Interview.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import type React from 'react';

import { IllustrationProps } from './types';
import type { IllustrationProps } from './types';

export const Interview: React.FC<IllustrationProps> = ({
'aria-hidden': ariaHidden,
Expand Down
Loading
Loading