From 6bb9dc4bbe2abc47960d5f7a3623b346fe6481e6 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 20 Jun 2025 20:36:25 -0400 Subject: [PATCH] add package for model list --- frontend/libs/build-env/src/index.ts | 3 +- frontend/libs/build-env/vite.config.ts | 56 +++++++++---------- .../model-selector/src/lib/model-lists.tsx | 11 ++-- .../components/model-selector/tsconfig.json | 3 + .../model-selector/tsconfig.lib.json | 3 + .../components/popover/src/lib/popover.tsx | 2 + .../libs/components/popover/tsconfig.json | 3 + .../libs/components/popover/tsconfig.lib.json | 3 + .../promptbox/src/lib/PromptBoxImage.tsx | 2 + frontend/package-lock.json | 8 +++ frontend/tsconfig.json | 3 + 11 files changed, 61 insertions(+), 36 deletions(-) diff --git a/frontend/libs/build-env/src/index.ts b/frontend/libs/build-env/src/index.ts index 383df5f16d..191d65d2e4 100644 --- a/frontend/libs/build-env/src/index.ts +++ b/frontend/libs/build-env/src/index.ts @@ -1,3 +1,2 @@ -export * from './lib/BuildEnv'; -export * from './lib/BuildEnvType'; +export * from './lib/build-env'; diff --git a/frontend/libs/build-env/vite.config.ts b/frontend/libs/build-env/vite.config.ts index 577c9d15f1..09b818d3af 100644 --- a/frontend/libs/build-env/vite.config.ts +++ b/frontend/libs/build-env/vite.config.ts @@ -1,4 +1,4 @@ -/// + import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import dts from 'vite-plugin-dts'; @@ -7,7 +7,7 @@ import * as path from 'path'; export default defineConfig(() => ({ root: __dirname, cacheDir: '../../node_modules/.vite/libs/build-env', - plugins: [react(), dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })], + plugins: [react(), dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') }), ], // Uncomment this if you are using workers. // worker: { // plugins: [ nxViteTsPaths() ], @@ -15,35 +15,33 @@ export default defineConfig(() => ({ // Configuration for building your library. // See: https://vitejs.dev/guide/build.html#library-mode build: { - outDir: './dist', - emptyOutDir: true, - reportCompressedSize: true, - commonjsOptions: { - transformMixedEsModules: true, - }, - lib: { - // Could also be a dictionary or array of multiple entry points. - entry: 'src/index.ts', - name: '@frontend/build-env', - fileName: 'index', - // Change this to the formats you want to support. - // Don't forget to update your package.json as well. - formats: ['es' as const] - }, - rollupOptions: { - // External packages that should not be bundled into your library. - external: ['react','react-dom','react/jsx-runtime'] + 'emptyOutDir': true, + 'transformMixedEsModules': true, + 'entry': 'src/index.ts', + 'name': '@frontend/build-env', + 'fileName': 'index', + 'formats': ['es' as const], + 'external': ['react','react-dom','react/jsx-runtime'], + 'lib': { + 'entry': "src/index.ts", + 'name': "@frontend/build-env", + 'fileName': "index", + 'formats': ['es' as const], }, + 'rollupOptions': {"external":["'react'","'react-dom'","'react/jsx-runtime'"]}, + 'outDir': "./dist", + 'reportCompressedSize': true, + 'commonjsOptions': {"transformMixedEsModules":true}, }, test: { - watch: false, - globals: true, - environment: 'jsdom', - include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - reporters: ['default'], - coverage: { - reportsDirectory: './test-output/vitest/coverage', - provider: 'v8' as const, - } + 'watch': false, + 'globals': true, + 'environment': "jsdom", + 'include': ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], + 'reporters': ["default"], + 'coverage': { + 'reportsDirectory': './test-output/vitest/coverage', + 'provider': 'v8' as const, +} }, })); diff --git a/frontend/libs/components/model-selector/src/lib/model-lists.tsx b/frontend/libs/components/model-selector/src/lib/model-lists.tsx index f3310144f4..c39dbe2510 100644 --- a/frontend/libs/components/model-selector/src/lib/model-lists.tsx +++ b/frontend/libs/components/model-selector/src/lib/model-lists.tsx @@ -1,6 +1,7 @@ import type { PopoverItem } from "@storyteller/ui-popover"; import { faClock, faFilm, faImage } from "@fortawesome/pro-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { IMAGE_MODELS } from "@storyteller/model-list"; export type ModelList = Omit[]; @@ -44,39 +45,39 @@ export const allModels = { ], image: [ { - id: "todo", label: "Flux Pro 1.1 Ultra", icon: , description: "High quality model", badges: [{ label: "15 sec.", icon: }], + modelInfo: IMAGE_MODELS.flux_pro_1_1_ultra, }, { - id: "todo", label: "Flux Pro 1.1", icon: , description: "High quality model", badges: [{ label: "15 sec.", icon: }], + modelInfo: IMAGE_MODELS.flux_pro_1_1, }, { - id: "todo", label: "Flux 1 Dev", icon: , description: "High quality model", badges: [{ label: "15 sec.", icon: }], + modelInfo: IMAGE_MODELS.flux_1_dev, }, { - id: "todo", label: "Flux 1 Schnell", icon: , description: "High quality model", badges: [{ label: "15 sec.", icon: }], + modelInfo: IMAGE_MODELS.flux_1_schnell, }, { - id: "todo", label: "GPT Image 1 (GPT-4o)", icon: , description: "Slow, ultra instructive model", badges: [{ label: "45 sec.", icon: }], + modelInfo: IMAGE_MODELS.gpt_image_1, }, //{ // id: "todo", diff --git a/frontend/libs/components/model-selector/tsconfig.json b/frontend/libs/components/model-selector/tsconfig.json index 8a5b74e22f..968eb5a863 100644 --- a/frontend/libs/components/model-selector/tsconfig.json +++ b/frontend/libs/components/model-selector/tsconfig.json @@ -5,6 +5,9 @@ { "path": "../popover" }, + { + "path": "../../model-list" + }, { "path": "./tsconfig.lib.json" }, diff --git a/frontend/libs/components/model-selector/tsconfig.lib.json b/frontend/libs/components/model-selector/tsconfig.lib.json index 887f1806e6..deb5e9832c 100644 --- a/frontend/libs/components/model-selector/tsconfig.lib.json +++ b/frontend/libs/components/model-selector/tsconfig.lib.json @@ -45,6 +45,9 @@ "references": [ { "path": "../popover/tsconfig.lib.json" + }, + { + "path": "../../model-list/tsconfig.lib.json" } ] } diff --git a/frontend/libs/components/popover/src/lib/popover.tsx b/frontend/libs/components/popover/src/lib/popover.tsx index 0d8c7cc090..af7f9725dc 100644 --- a/frontend/libs/components/popover/src/lib/popover.tsx +++ b/frontend/libs/components/popover/src/lib/popover.tsx @@ -13,6 +13,7 @@ import { faChevronUp, faCircleCheck, } from "@fortawesome/pro-solid-svg-icons"; +import { ModelInfo } from "@storyteller/model-list"; export interface PopoverItem { label: string; @@ -25,6 +26,7 @@ export interface PopoverItem { label: string; icon?: ReactNode; }>; + modelInfo?: ModelInfo; } interface PopoverMenuProps { diff --git a/frontend/libs/components/popover/tsconfig.json b/frontend/libs/components/popover/tsconfig.json index 345d003284..af65f9cad2 100644 --- a/frontend/libs/components/popover/tsconfig.json +++ b/frontend/libs/components/popover/tsconfig.json @@ -5,6 +5,9 @@ { "path": "../button" }, + { + "path": "../../model-list" + }, { "path": "./tsconfig.lib.json" }, diff --git a/frontend/libs/components/popover/tsconfig.lib.json b/frontend/libs/components/popover/tsconfig.lib.json index 329f403c18..40d656c7f2 100644 --- a/frontend/libs/components/popover/tsconfig.lib.json +++ b/frontend/libs/components/popover/tsconfig.lib.json @@ -45,6 +45,9 @@ "references": [ { "path": "../button/tsconfig.lib.json" + }, + { + "path": "../../model-list/tsconfig.lib.json" } ] } diff --git a/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx b/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx index 876c0996ff..075a3db7db 100644 --- a/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx +++ b/frontend/libs/components/promptbox/src/lib/PromptBoxImage.tsx @@ -52,6 +52,8 @@ export const PromptBoxImage = ({ }: PromptBoxImageProps) => { useSignals(); + console.log("PromptBoxImage - model", model); + // for the image media id and url, we need to set the reference image gallery panel. useEffect(() => { if (imageMediaId && url) { diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 592df2538e..0addc91f98 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1522,6 +1522,10 @@ "name": "@frontend/login", "version": "0.0.1" }, + "libs/model-list": { + "name": "@storyteller/model-list", + "version": "0.0.1" + }, "libs/soundboard": { "name": "@storyteller/soundboard", "version": "0.0.1", @@ -9649,6 +9653,10 @@ "resolved": "libs/common", "link": true }, + "node_modules/@storyteller/model-list": { + "resolved": "libs/model-list", + "link": true + }, "node_modules/@storyteller/soundboard": { "resolved": "libs/soundboard", "link": true diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 702005be65..c1f236edce 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -143,6 +143,9 @@ }, { "path": "./libs/components/pricing-modal" + }, + { + "path": "./libs/model-list" } ] }