Removes Font Awesome entirely
### Changes
- All ~1,000 icon call sites now import Lucide components directly from
`lucide-react` (`<PlayIcon className="..." />`); no FA packages, tokens,
or `fa*` identifiers remain anywhere.
- New `@storyteller/icons` lib holds the pieces Lucide doesn't ship:
`DynamicIcon` for runtime-chosen icons (`icon={loading ?
LoaderCircleIcon : SaveIcon}`), 11 brand logos (Discord, TikTok, ...) as
inlined CC BY 4.0 paths, and HD/SD quality badges drawn in Lucide's
stroke style.
- Global `.lucide { display: inline-block; width/height: 1.2em }` rule
in each app stylesheet: keeps icons font-relative like FA (1.2em
compensates Lucide's 24px-viewBox/20px-grid padding) and undoes Tailwind
preflight's `svg { display: block }`. Explicit `w-*`/`size-*` utilities
still win.
- FA-only props migrated: `spin` → `animate-spin`, FA size strings → em
values.
- Dropped `@fortawesome/*` + `@awesome.me` kit deps, both `.npmrc`
files, and
the FA rule in `shared-vite-config.ts` (now externalizes
`lucide-react`).
174 lines
3.4 KiB
JSON
174 lines
3.4 KiB
JSON
{
|
|
"extends": "../../tsconfig.base.json",
|
|
"include": [
|
|
"env.d.ts",
|
|
"app/**/*.js",
|
|
"app/**/*.ts",
|
|
"app/**/*.tsx",
|
|
"netlify-edge-plugin.ts"
|
|
],
|
|
"compilerOptions": {
|
|
"lib": [
|
|
"DOM",
|
|
"DOM.Iterable",
|
|
"ESNext"
|
|
],
|
|
"isolatedModules": true,
|
|
"esModuleInterop": true,
|
|
"jsx": "react-jsx",
|
|
"module": "ESNext",
|
|
"moduleResolution": "bundler",
|
|
"resolveJsonModule": true,
|
|
"target": "ESNext",
|
|
"strict": true,
|
|
"allowJs": true,
|
|
"skipLibCheck": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
// Vite takes care of building everything, not tsc.
|
|
"noEmit": true
|
|
},
|
|
"references": [
|
|
{
|
|
"path": "../../libs/components/video-editor"
|
|
},
|
|
{
|
|
"path": "../../libs/components/moodboard"
|
|
},
|
|
{
|
|
"path": "../../libs/components/vfx"
|
|
},
|
|
{
|
|
"path": "../../libs/omni-gen"
|
|
},
|
|
{
|
|
"path": "../../libs/components/slider-v2"
|
|
},
|
|
{
|
|
"path": "../../libs/components/loading-spinner"
|
|
},
|
|
{
|
|
"path": "../../libs/components/login-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/soundboard"
|
|
},
|
|
{
|
|
"path": "../../libs/components/pagedraw"
|
|
},
|
|
{
|
|
"path": "../../libs/components/settings-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/components/menu-icon-selector"
|
|
},
|
|
{
|
|
"path": "../../libs/state/subscription"
|
|
},
|
|
{
|
|
"path": "../../libs/components/provider-setup-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/components/provider-billing-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/analytics/google-analytics"
|
|
},
|
|
{
|
|
"path": "../../libs/state/credits"
|
|
},
|
|
{
|
|
"path": "../../libs/api-enums"
|
|
},
|
|
{
|
|
"path": "../../libs/components/action-reminder-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/components/close-button"
|
|
},
|
|
{
|
|
"path": "../../libs/components/popover"
|
|
},
|
|
{
|
|
"path": "../../libs/components/gravatar"
|
|
},
|
|
{
|
|
"path": "../../libs/components/modal"
|
|
},
|
|
{
|
|
"path": "../../libs/components/loading"
|
|
},
|
|
{
|
|
"path": "../../libs/components/file-uploader"
|
|
},
|
|
{
|
|
"path": "../../libs/components/input"
|
|
},
|
|
{
|
|
"path": "../../libs/components/select"
|
|
},
|
|
{
|
|
"path": "../../libs/components/checkbox"
|
|
},
|
|
{
|
|
"path": "../../libs/common"
|
|
},
|
|
{
|
|
"path": "../../libs/tauri-events"
|
|
},
|
|
{
|
|
"path": "../../libs/components/generation-list"
|
|
},
|
|
{
|
|
"path": "../../libs/components/toaster"
|
|
},
|
|
{
|
|
"path": "../../libs/components/help-menu"
|
|
},
|
|
{
|
|
"path": "../../libs/components/pricing-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/components/model-selector"
|
|
},
|
|
{
|
|
"path": "../../libs/model-list"
|
|
},
|
|
{
|
|
"path": "../../libs/components/gallery-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/components/viewer-3d"
|
|
},
|
|
{
|
|
"path": "../../libs/components/tooltip"
|
|
},
|
|
{
|
|
"path": "../../libs/components/tab-selector"
|
|
},
|
|
{
|
|
"path": "../../libs/components/button"
|
|
},
|
|
{
|
|
"path": "../../libs/components/promptbox"
|
|
},
|
|
{
|
|
"path": "../../libs/components/upload-modal"
|
|
},
|
|
{
|
|
"path": "../../libs/icons"
|
|
},
|
|
{
|
|
"path": "../../libs/tauri-api"
|
|
},
|
|
{
|
|
"path": "../../libs/components/pagescene"
|
|
},
|
|
{
|
|
"path": "../../libs/tauri-utils"
|
|
},
|
|
{
|
|
"path": "../../libs/api"
|
|
}
|
|
]
|
|
}
|