@baseplate-dev/project-builder-web 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{-constants-BYERQCO8.js → -constants-CBBXnsgS.js} +2 -2
- package/dist/assets/{-constants-BYERQCO8.js.map → -constants-CBBXnsgS.js.map} +1 -1
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-Db9HEBw5.js.map +1 -1
- package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-fZlnH9Ds.js.map +1 -1
- package/dist/assets/__federation_shared_@baseplate-dev/ui-components-CoxJjxbV.js.map +1 -1
- package/dist/assets/__federation_shared_@baseplate-dev/utils-Bhl1WBIT.js.map +1 -1
- package/dist/assets/__federation_shared_@tanstack/react-router-JHHIpdEJ.js.map +1 -1
- package/dist/assets/__federation_shared_react-WURrSs1p.js.map +1 -1
- package/dist/assets/__federation_shared_react-dom-CWagDEjd.js.map +1 -1
- package/dist/assets/__federation_shared_zod-CBKZOTZP.js.map +1 -1
- package/dist/assets/_virtual___federation_fn_import-D3sI42Ph.js.map +1 -1
- package/dist/assets/{admin-Dy1xMuLp.js → admin-BmEAbqDf.js} +2 -2
- package/dist/assets/{admin-Dy1xMuLp.js.map → admin-BmEAbqDf.js.map} +1 -1
- package/dist/assets/{backend-SevlkhOM.js → backend-3ZlC6POv.js} +2 -2
- package/dist/assets/{backend-SevlkhOM.js.map → backend-3ZlC6POv.js.map} +1 -1
- package/dist/assets/badge-with-type-label-CThmzNSh.js.map +1 -1
- package/dist/assets/capitalize-gOJXDbsR.js.map +1 -1
- package/dist/assets/{edit._key-BgnflZIL.js → edit._key-D-7xw9rv.js} +2 -2
- package/dist/assets/{edit._key-BgnflZIL.js.map → edit._key-D-7xw9rv.js.map} +1 -1
- package/dist/assets/{edit._sectionKey-D4mTSUhO.js → edit._sectionKey-CZgof0ob.js} +3 -3
- package/dist/assets/edit._sectionKey-CZgof0ob.js.map +1 -0
- package/dist/assets/enum-info-form-3ykREN-o.js.map +1 -1
- package/dist/assets/{graphql-C37jbnTG.js → graphql-DFecTG83.js} +2 -2
- package/dist/assets/{graphql-C37jbnTG.js.map → graphql-DFecTG83.js.map} +1 -1
- package/dist/assets/{hierarchy-CNBHjTAJ.js → hierarchy-jFN5DTrv.js} +2 -2
- package/dist/assets/{hierarchy-CNBHjTAJ.js.map → hierarchy-jFN5DTrv.js.map} +1 -1
- package/dist/assets/immer-B7fdkLVi.js.map +1 -1
- package/dist/assets/{index-CFlVUowS.js → index-B4AqRYYd.js} +2 -2
- package/dist/assets/{index-CFlVUowS.js.map → index-B4AqRYYd.js.map} +1 -1
- package/dist/assets/{index-B3A5IWAQ.js → index-BJlq0bmu.js} +2 -2
- package/dist/assets/{index-B3A5IWAQ.js.map → index-BJlq0bmu.js.map} +1 -1
- package/dist/assets/{index-CDx3IfgN.js → index-BPRSO52F.js} +2 -2
- package/dist/assets/{index-CDx3IfgN.js.map → index-BPRSO52F.js.map} +1 -1
- package/dist/assets/{index-CAFf3K5-.js → index-BWWBFiT1.js} +2 -2
- package/dist/assets/{index-CAFf3K5-.js.map → index-BWWBFiT1.js.map} +1 -1
- package/dist/assets/{index-Ckh17o1U.js → index-BZ4uW6kN.js} +2 -2
- package/dist/assets/{index-Ckh17o1U.js.map → index-BZ4uW6kN.js.map} +1 -1
- package/dist/assets/{index-D48MR3bL.js → index-BpFwTs3X.js} +2 -2
- package/dist/assets/{index-D48MR3bL.js.map → index-BpFwTs3X.js.map} +1 -1
- package/dist/assets/{index-mFxKl9yz.js → index-CbnCfDth.js} +2 -2
- package/dist/assets/{index-mFxKl9yz.js.map → index-CbnCfDth.js.map} +1 -1
- package/dist/assets/{index-DEKFCy0H.js → index-Cd_baD6T.js} +4 -4
- package/dist/assets/index-Cd_baD6T.js.map +1 -0
- package/dist/assets/index-D5UX5AHP.js.map +1 -1
- package/dist/assets/index-DRRJXHq_.js.map +1 -1
- package/dist/assets/{index-2EwzbJik.js → index-DhfdQsvQ.js} +2 -2
- package/dist/assets/{index-2EwzbJik.js.map → index-DhfdQsvQ.js.map} +1 -1
- package/dist/assets/index-DqHVrEeL.js.map +1 -1
- package/dist/assets/index-Dqph-b0R.css +1 -0
- package/dist/assets/{index-B2l1e3vi.js → index-UtPzkFI2.js} +2 -2
- package/dist/assets/{index-B2l1e3vi.js.map → index-UtPzkFI2.js.map} +1 -1
- package/dist/assets/index-c0qeY2gs.js.map +1 -1
- package/dist/assets/index-tHURiz2C.js.map +1 -1
- package/dist/assets/index-tflukq04.js.map +1 -1
- package/dist/assets/index.esm-CdP29Ssb.js.map +1 -1
- package/dist/assets/inflection-C1nKqrJS.js.map +1 -1
- package/dist/assets/isEqual-C420KeG-.js.map +1 -1
- package/dist/assets/jsx-runtime-D_zvdyIk.js.map +1 -1
- package/dist/assets/model-info-form-koY65NLs.js.map +1 -1
- package/dist/assets/model-merger-D1L5cIAo.js.map +1 -1
- package/dist/assets/{new-admin-section-dialog-4X2fxo7a.js → new-admin-section-dialog-DFpUuP_Z.js} +2 -2
- package/dist/assets/{new-admin-section-dialog-4X2fxo7a.js.map → new-admin-section-dialog-DFpUuP_Z.js.map} +1 -1
- package/dist/assets/{new-app-dialog-CCI4q4Mt.js → new-app-dialog-Cnp9A5Cx.js} +2 -2
- package/dist/assets/{new-app-dialog-CCI4q4Mt.js.map → new-app-dialog-Cnp9A5Cx.js.map} +1 -1
- package/dist/assets/{new-enum-dialog-B5zvBxhT.js → new-enum-dialog-CE3pNVPW.js} +2 -2
- package/dist/assets/{new-enum-dialog-B5zvBxhT.js.map → new-enum-dialog-CE3pNVPW.js.map} +1 -1
- package/dist/assets/{new-model-dialog-CiwTpKcZ.js → new-model-dialog-BUqUnu3F.js} +2 -2
- package/dist/assets/{new-model-dialog-CiwTpKcZ.js.map → new-model-dialog-BUqUnu3F.js.map} +1 -1
- package/dist/assets/{route-PmxQsBVj.js → route-BMREAhaC.js} +2 -2
- package/dist/assets/{route-PmxQsBVj.js.map → route-BMREAhaC.js.map} +1 -1
- package/dist/assets/{route-CZgTuGeJ.js → route-B_y_fjG1.js} +2 -2
- package/dist/assets/{route-CZgTuGeJ.js.map → route-B_y_fjG1.js.map} +1 -1
- package/dist/assets/{route-DluQ5e3_.js → route-CM78Qts_.js} +2 -2
- package/dist/assets/{route-DluQ5e3_.js.map → route-CM78Qts_.js.map} +1 -1
- package/dist/assets/{route-6ErXC2Qt.js → route-D-8r4X0U.js} +2 -2
- package/dist/assets/{route-6ErXC2Qt.js.map → route-D-8r4X0U.js.map} +1 -1
- package/dist/assets/{route-gzD4oiAl.js → route-D7DRL965.js} +2 -2
- package/dist/assets/{route-gzD4oiAl.js.map → route-D7DRL965.js.map} +1 -1
- package/dist/assets/{route-C6wCPwVj.js → route-DGnyRZBc.js} +2 -2
- package/dist/assets/{route-C6wCPwVj.js.map → route-DGnyRZBc.js.map} +1 -1
- package/dist/assets/route-Dm8VYkZY.js +2 -0
- package/dist/assets/{route-DLz_DL5S.js.map → route-Dm8VYkZY.js.map} +1 -1
- package/dist/assets/{route-C3eBLQEr.js → route-Dpt-JNZC.js} +2 -2
- package/dist/assets/{route-C3eBLQEr.js.map → route-Dpt-JNZC.js.map} +1 -1
- package/dist/assets/{route-DzYT3FNA.js → route-pfSpaHo3.js} +2 -2
- package/dist/assets/{route-DzYT3FNA.js.map → route-pfSpaHo3.js.map} +1 -1
- package/dist/assets/{route-gYB7kkkm.js → route-x978fCyu.js} +2 -2
- package/dist/assets/{route-gYB7kkkm.js.map → route-x978fCyu.js.map} +1 -1
- package/dist/assets/{service--2LVz4Ht.js → service-BSH0RhEL.js} +2 -2
- package/dist/assets/{service--2LVz4Ht.js.map → service-BSH0RhEL.js.map} +1 -1
- package/dist/assets/sortBy-C9bvycg5.js.map +1 -1
- package/dist/assets/{template-extractor-D33LuEZ8.js → template-extractor-Dzitw66S.js} +2 -2
- package/dist/assets/{template-extractor-D33LuEZ8.js.map → template-extractor-Dzitw66S.js.map} +1 -1
- package/dist/assets/{theme-builder-CWetoMuo.js → theme-builder-00-pJhvO.js} +2 -2
- package/dist/assets/{theme-builder-CWetoMuo.js.map → theme-builder-00-pJhvO.js.map} +1 -1
- package/dist/assets/use-definition-schema-BuO4pbji.js.map +1 -1
- package/dist/assets/{use-enum-form-BRBAlWJc.js → use-enum-form-CiJfrBqR.js} +2 -2
- package/dist/assets/{use-enum-form-BRBAlWJc.js.map → use-enum-form-CiJfrBqR.js.map} +1 -1
- package/dist/assets/{use-model-form-psj-JlE9.js → use-model-form-AKI1Wi68.js} +2 -2
- package/dist/assets/{use-model-form-psj-JlE9.js.map → use-model-form-AKI1Wi68.js.map} +1 -1
- package/dist/index.html +2 -2
- package/package.json +11 -11
- package/dist/assets/edit._sectionKey-D4mTSUhO.js.map +0 -1
- package/dist/assets/index-DEKFCy0H.js.map +0 -1
- package/dist/assets/index-DPK1IfNZ.css +0 -1
- package/dist/assets/route-DLz_DL5S.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-builder-CWetoMuo.js","sources":["../../src/routes/settings/-components/theme-colors-css-display.tsx","../../src/routes/settings/-components/theme-colors-editor.tsx","../../src/routes/settings/-components/theme-colors-preview.tsx","../../src/routes/settings/-theme-utils/palette-neural-net.ts","../../src/routes/settings/-theme-utils/palette-generator.ts","../../src/routes/settings/-components/theme-palette-editor.tsx","../../src/routes/settings/theme-builder.tsx?tsr-split=component"],"sourcesContent":["import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type { Control } from 'react-hook-form';\n\nimport { generateCssFromThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport { TextareaField } from '@baseplate-dev/ui-components';\nimport { clsx } from 'clsx';\nimport { useMemo } from 'react';\nimport { useWatch } from 'react-hook-form';\n\ninterface ThemeColorsCssDisplayProps {\n className?: string;\n control: Control<ThemeConfig>;\n}\n\nfunction convertRecordToCss(record: Record<string, string>): string {\n return Object.entries(record)\n .map(([key, value]) => ` ${key}: ${value};`)\n .join('\\n');\n}\n\nexport function ThemeColorsCssDisplay({\n className,\n control,\n}: ThemeColorsCssDisplayProps): React.JSX.Element {\n const colors = useWatch({ control, name: `colors` });\n\n const cssValue = useMemo(\n () =>\n `\n:root {\n${convertRecordToCss(generateCssFromThemeConfig(colors.light))}\n}\n\n.dark, html[data-theme='dark'] {\n${convertRecordToCss(generateCssFromThemeConfig(colors.dark))}\n}\n `.trim(),\n [colors],\n );\n\n return (\n <div className={clsx('', className)}>\n <TextareaField className=\"h-60\" readOnly value={cssValue} />\n </div>\n );\n}\n","import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type { Control, UseFormSetValue } from 'react-hook-form';\n\nimport {\n convertHexToOklch,\n convertOklchToColorName,\n convertOklchToHex,\n getDefaultThemeColorFromShade,\n THEME_COLORS,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n Button,\n ColorPickerFieldController,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@baseplate-dev/ui-components';\nimport { clsx } from 'clsx';\nimport { useWatch } from 'react-hook-form';\nimport { MdInfo, MdRestartAlt } from 'react-icons/md';\n\ninterface ThemeColorEditorProps {\n className?: string;\n control: Control<ThemeConfig>;\n mode: 'light' | 'dark';\n setValue: UseFormSetValue<ThemeConfig>;\n}\n\nexport function ThemeColorsEditor({\n className,\n control,\n mode,\n setValue,\n}: ThemeColorEditorProps): React.JSX.Element {\n const themeColorEntries = Object.entries(THEME_COLORS);\n const palettes = useWatch({ control, name: 'palettes' });\n const themeColors = useWatch({ control, name: `colors.${mode}` });\n return (\n <div className={clsx('flex w-full max-w-xl gap-4', className)}>\n <div className=\"grid flex-1 grid-cols-1 gap-4 sm:grid-cols-2\">\n {themeColorEntries.map(([key, config], idx) => {\n const themeKey = key as keyof typeof THEME_COLORS;\n const lastCategoryKey =\n idx > 0 ? themeColorEntries[idx - 1][1].groupKey : undefined;\n const shouldStartNewColumn = lastCategoryKey !== config.groupKey;\n const currentColor = themeColors[themeKey];\n const defaultValue = getDefaultThemeColorFromShade(\n palettes,\n mode,\n themeKey,\n );\n return (\n <div\n className={clsx(\n shouldStartNewColumn ? 'col-start-1' : undefined,\n 'relative',\n )}\n key={key}\n >\n <ColorPickerFieldController\n control={control}\n className=\"w-full\"\n wrapperClassName=\"flex-col items-start\"\n label={\n <div className=\"flex h-6 w-full items-center gap-1\">\n <div>{config.name}</div>\n <Tooltip delayDuration={500}>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Color Info\"\n className=\"opacity-30\"\n >\n <MdInfo />\n </Button>\n </TooltipTrigger>\n <TooltipContent\n align=\"start\"\n side=\"bottom\"\n className=\"max-w-[400px]\"\n >\n <div className=\"font-normal\">{config.description}</div>\n </TooltipContent>\n </Tooltip>\n </div>\n }\n parseColor={convertOklchToHex}\n serializeColor={convertHexToOklch}\n formatColorName={(color) => {\n const baseShade = Object.entries(palettes.base.shades).find(\n ([, shadeColor]) => shadeColor === color,\n )?.[0];\n if (baseShade) {\n return `base-${baseShade}`;\n }\n const primaryShade = Object.entries(\n palettes.primary.shades,\n ).find(([, shadeColor]) => shadeColor === color)?.[0];\n if (primaryShade) {\n return `primary-${primaryShade}`;\n }\n return convertOklchToColorName(color);\n }}\n name={`colors.${mode}.${themeKey}`}\n />\n {currentColor !== defaultValue && (\n <Button\n className=\"absolute right-2 bottom-1\"\n onClick={() => {\n setValue(`colors.${mode}.${themeKey}`, defaultValue);\n }}\n size=\"icon\"\n variant=\"ghost\"\n aria-label=\"Reset Color\"\n >\n <MdRestartAlt />\n </Button>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type { Control } from 'react-hook-form';\n\nimport { generateCssFromThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Combobox,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n} from '@baseplate-dev/ui-components';\nimport { clsx } from 'clsx';\nimport { useWatch } from 'react-hook-form';\n\ninterface ThemeColorsPreviewProps {\n className?: string;\n control: Control<ThemeConfig>;\n mode: 'light' | 'dark';\n}\n\nexport function ThemeColorsPreview({\n className,\n control,\n mode,\n}: ThemeColorsPreviewProps): React.JSX.Element {\n const colors = useWatch({\n control,\n name: `colors.${mode}`,\n });\n const colorCss = generateCssFromThemeConfig(colors);\n return (\n <div\n className={clsx(\n 'size-full rounded-xl border border-border bg-background p-4',\n className,\n )}\n style={colorCss}\n >\n <Card>\n <CardHeader>\n <CardTitle>Color Preview</CardTitle>\n <CardDescription>\n This is a preview of how your theme colors will be applied on\n various elements\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div>\n <PreviewSectionTitle>Paragraph Text</PreviewSectionTitle>\n <p className=\"text-base\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin\n faucibus.\n </p>\n </div>\n <div>\n <PreviewSectionTitle>Combobox</PreviewSectionTitle>\n <Combobox>\n <ComboboxInput placeholder={'Select an option'} />\n <ComboboxContent style={colorCss}>\n <ComboboxItem value=\"opt1\" label=\"Option 1\">\n Option 1\n </ComboboxItem>\n <ComboboxItem value=\"green\" label=\"Option 2\">\n Option 2\n </ComboboxItem>\n <ComboboxItem value=\"blue\" label=\"Option 3\">\n Option 3\n </ComboboxItem>\n <ComboboxEmpty>No results found</ComboboxEmpty>\n </ComboboxContent>\n </Combobox>\n </div>\n <div>\n <PreviewSectionTitle>Badges</PreviewSectionTitle>\n <div className=\"flex flex-wrap gap-1\">\n <Badge variant=\"default\">Default</Badge>\n <Badge variant=\"destructive\">Destructive</Badge>\n <Badge variant=\"secondary\">Secondary</Badge>\n <Badge variant=\"outline\">Outline</Badge>\n </div>\n </div>\n <div>\n <PreviewSectionTitle>Buttons</PreviewSectionTitle>\n <div className=\"flex flex-wrap gap-2 rounded-lg border border-border p-1\">\n <Button type=\"button\">Primary</Button>\n <Button variant=\"destructive\" type=\"button\">\n Destructive\n </Button>\n <Button variant=\"ghost\" type=\"button\">\n Ghost\n </Button>\n <Button variant=\"link\" type=\"button\">\n Link\n </Button>\n <Button variant=\"secondary\" type=\"button\">\n Secondary\n </Button>\n <Button variant=\"outline\" type=\"button\">\n Outline\n </Button>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n\nfunction PreviewSectionTitle({\n children,\n}: {\n children: React.ReactNode;\n}): React.JSX.Element {\n return <h4 className=\"text-lg font-semibold\">{children}</h4>;\n}\n","/* eslint-disable unicorn/numeric-separators-style */\nexport function generatePaletteNN(color: {\n r: number;\n g: number;\n b: number;\n}): Record<string, number> {\n const input = new Float32Array([color.r, color.g, color.b]);\n return {\n '50-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.8661608695983887 +\n (1.969373345375061 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.4601062536239624 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.7962396740913391 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '50-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.9256014823913574 +\n (1.231925129890442 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.3603883981704712 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.8378368616104126 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '50-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.5751663446426392 +\n (0.6084778904914856 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.0512851476669312 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (1.9236465692520142 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '100-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.6104178428649902 +\n (2.411083698272705 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.4946855306625366 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.5684743523597717 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '100-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.6873022317886353 +\n (0.7176924347877502 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.6131407022476196 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.15697577595710754 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '100-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.0808522701263428 -\n (0.09388591349124908 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.5177313685417175 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.6253278255462646 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '200-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.3480290174484253 +\n (2.2088170051574707 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (1.1226733922958374 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.41870957612991333 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '200-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.3919278383255005 +\n (0.2666841745376587 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.5987523794174194 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.23637670278549194 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '200-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.6176453232765198 -\n (0.6029531359672546 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.21029342710971832 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.906541109085083 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '300-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.9194338321685791 +\n (2.3936944007873535 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (1.68363356590271 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.36374539136886597 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '300-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.1811708211898804 -\n (0.08378893882036209 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.4275716543197632 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.6511568427085876 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '300-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.04160493612289429 -\n (1.0422184467315674 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.1739543229341507 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (3.306165933609009 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '400-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.5908379554748535 +\n (2.6282155513763428 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.483553886413574 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.16029347479343414 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '400-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.9054368138313293 -\n (0.38720616698265076 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.231947422027588 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.0837976932525635 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '400-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.6404189467430115 -\n (1.6898466348648071 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.029696132987737656 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (3.7177767753601074 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '500-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.3420727550983429 +\n (2.987776756286621 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (3.3403704166412354 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.07194828987121582 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '500-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.5289734601974487 -\n (0.5567987561225891 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.3352314233779907 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.4835448265075684 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '500-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.2478309869766235 -\n (2.2976744174957275 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.30013492703437805 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (4.339084625244141 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '600-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.18572008609771729 +\n (2.5128233432769775 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (3.407212495803833 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.20814435184001923 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '600-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.15741883218288422 -\n (0.7273809909820557 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.2500137090682983 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.6501106023788452 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '600-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.3073996305465698 -\n (2.5112154483795166 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.7157139182090759 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (4.086366176605225 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '700-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.25121745467185974 +\n (1.7795124053955078 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.7557551860809326 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.0411522202193737 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '700-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.43503373861312866 -\n (0.6766132712364197 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.150789737701416 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.3406033515930176 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '700-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.1124053001403809 -\n (2.359389305114746 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.943118691444397 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (3.267453908920288 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '800-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.42729225754737854 +\n (1.2738885879516602 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.573699474334717 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.11818580329418182 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '800-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.6730203628540039 -\n (0.770199716091156 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.9060920476913452 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.2600882053375244 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '800-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.32567298412323 -\n (1.9301948547363281 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.8552113175392151 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.6513888835906982 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '900-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.6309270858764648 +\n (1.0235852003097534 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.4659388065338135 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.15058130025863647 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '900-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.9010928273200989 -\n (0.7559532523155212 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.7665435075759888 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.1884112358093262 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '900-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.5088001489639282 -\n (1.5986618995666504 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.7353832125663757 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.180158853530884 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '950-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.166185975074768 +\n (0.5363732576370239 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.587523937225342 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.061746854335069656 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '950-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.2907893657684326 -\n (1.3924223184585571 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.5465696454048157 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.2647709846496582 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '950-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.8633685111999512 -\n (1.8034374713897705 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.8856748938560486 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (1.8510282039642334 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n };\n}\n","import type { ColorPalette } from '@baseplate-dev/project-builder-lib';\nimport type { Rgb } from 'culori';\n\nimport { PALETTE_SHADES } from '@baseplate-dev/project-builder-lib';\nimport { converter, formatHex } from 'culori';\n\nimport { generatePaletteNN } from './palette-neural-net.js';\n\nfunction getPaletteKey(shade: string, component: string): string {\n return `${shade}-${component}`;\n}\n\nexport function generatePalette(baseColor: string): ColorPalette {\n const convertToRgb = converter('rgb');\n\n const rgb = convertToRgb(baseColor);\n\n if (!rgb) {\n throw new Error(`Invalid color: ${baseColor}`);\n }\n\n const newPalette = generatePaletteNN(rgb);\n\n return Object.fromEntries(\n PALETTE_SHADES.map((shade) => {\n const shadeRgb: Rgb = {\n mode: 'rgb',\n r: newPalette[getPaletteKey(shade, 'r')],\n g: newPalette[getPaletteKey(shade, 'g')],\n b: newPalette[getPaletteKey(shade, 'b')],\n };\n return [shade, formatHex(shadeRgb)];\n }),\n ) as ColorPalette;\n}\n","import type {\n ColorPaletteName,\n PaletteShades,\n ThemeConfig,\n} from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type {\n Control,\n UseFormGetValues,\n UseFormSetValue,\n} from 'react-hook-form';\n\nimport {\n COLOR_PALETTES,\n convertHexToOklch,\n convertOklchToHex,\n PALETTE_SHADES,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n Button,\n ColorPickerFieldController,\n ComboboxFieldController,\n} from '@baseplate-dev/ui-components';\nimport { capitalize } from 'inflection';\nimport { useCallback } from 'react';\nimport { useWatch } from 'react-hook-form';\n\nimport { generatePalette } from '../-theme-utils/palette-generator.js';\n\ninterface ThemePaletteEditorProps {\n control: Control<ThemeConfig>;\n getValues: UseFormGetValues<ThemeConfig>;\n setValue: UseFormSetValue<ThemeConfig>;\n onShadesChange?: (shades: Partial<PaletteShades>) => void;\n type: 'base' | 'primary';\n}\n\nexport function ThemePaletteEditor({\n control,\n getValues,\n setValue,\n onShadesChange,\n type,\n}: ThemePaletteEditorProps): React.JSX.Element {\n const paletteOptions = [\n { value: 'custom', label: 'Custom Base' },\n ...Object.keys(COLOR_PALETTES).map((key) => ({\n value: key,\n label: capitalize(key),\n })),\n ];\n\n const paletteName = useWatch({\n control,\n name: `palettes.${type}.paletteName`,\n });\n\n const handlePaletteNameChange = useCallback(\n (name: string | null) => {\n if (!name || !Object.prototype.hasOwnProperty.call(COLOR_PALETTES, name))\n return;\n const palette = COLOR_PALETTES[name as ColorPaletteName];\n setValue(`palettes.${type}.shades`, palette);\n onShadesChange?.(palette);\n },\n [setValue, onShadesChange, type],\n );\n\n const handleCustomPaletteGenerate = (): void => {\n const baseColor = getValues(`palettes.${type}.customBase`);\n if (!baseColor) return;\n const newPalette = generatePalette(baseColor);\n setValue(`palettes.${type}.shades`, newPalette);\n onShadesChange?.(newPalette);\n };\n\n return (\n <div className=\"flex max-w-fit flex-col gap-4\">\n <ComboboxFieldController\n name={`palettes.${type}.paletteName`}\n control={control}\n options={paletteOptions}\n placeholder=\"Choose a base palette\"\n onChange={handlePaletteNameChange}\n />\n {paletteName === 'custom' && (\n <div className=\"flex max-w-xl items-center justify-between\">\n <ColorPickerFieldController\n className=\"flex-1 space-x-1\"\n wrapperClassName=\"items-center\"\n control={control}\n name={`palettes.${type}.customBase`}\n label=\"Custom Base Color\"\n placeholder=\"Choose a color\"\n parseColor={convertOklchToHex}\n serializeColor={convertHexToOklch}\n />\n <Button\n variant=\"secondary\"\n onClick={handleCustomPaletteGenerate}\n size=\"sm\"\n >\n Generate\n </Button>\n </div>\n )}\n <div className=\"flex gap-3\">\n {PALETTE_SHADES.map((shade) => (\n <ColorPickerFieldController\n key={shade}\n wrapperClassName=\"flex flex-col items-center\"\n hideText\n control={control}\n name={`palettes.${type}.shades.${shade}`}\n label={shade}\n parseColor={convertOklchToHex}\n serializeColor={convertHexToOklch}\n onChange={() =>\n onShadesChange?.(getValues(`palettes.${type}.shades`))\n }\n />\n ))}\n </div>\n </div>\n );\n}\n","import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\n\nimport {\n createThemeSchema,\n generateDefaultTheme,\n generateThemeColorsFromShade,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n useBlockUnsavedChangesNavigate,\n useDefinitionSchema,\n useProjectDefinition,\n useResettableForm,\n} from '@baseplate-dev/project-builder-lib/web';\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n Button,\n FormActionBar,\n SectionList,\n SectionListSection,\n SectionListSectionContent,\n SectionListSectionDescription,\n SectionListSectionHeader,\n SectionListSectionTitle,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from '@baseplate-dev/ui-components';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { createFileRoute } from '@tanstack/react-router';\nimport { useCallback, useMemo, useState } from 'react';\nimport { MdConstruction } from 'react-icons/md';\n\nimport { ThemeColorsCssDisplay } from './-components/theme-colors-css-display.js';\nimport { ThemeColorsEditor } from './-components/theme-colors-editor.js';\nimport { ThemeColorsPreview } from './-components/theme-colors-preview.js';\nimport { ThemePaletteEditor } from './-components/theme-palette-editor.js';\n\nexport const Route = createFileRoute('/settings/theme-builder')({\n component: ThemeBuilderPage,\n beforeLoad: () => ({\n getTitle: () => 'Theme Builder',\n }),\n});\n\nfunction ThemeBuilderPage(): React.JSX.Element {\n const { definition, saveDefinitionWithFeedback } = useProjectDefinition();\n const themeSchema = useDefinitionSchema(createThemeSchema);\n const values = useMemo(\n () => definition.settings.theme ?? generateDefaultTheme(),\n [definition.settings.theme],\n );\n\n const form = useResettableForm<ThemeConfig>({\n resolver: zodResolver(themeSchema),\n values,\n });\n const { control, handleSubmit, setValue, getValues, reset } = form;\n\n const onSubmit = handleSubmit((data) =>\n saveDefinitionWithFeedback((draftConfig) => {\n draftConfig.settings.theme = data;\n }),\n );\n\n useBlockUnsavedChangesNavigate({ control, reset, onSubmit });\n\n const generateNewThemeColors = useCallback(\n (resetColors?: boolean) => {\n const palettes = getValues('palettes');\n setValue('colors', {\n light: generateThemeColorsFromShade(\n palettes,\n 'light',\n resetColors\n ? undefined\n : {\n palettes: values.palettes,\n config: values.colors.light,\n },\n ),\n dark: generateThemeColorsFromShade(\n palettes,\n 'dark',\n resetColors\n ? undefined\n : {\n palettes: values.palettes,\n config: values.colors.dark,\n },\n ),\n });\n },\n [getValues, setValue, values],\n );\n\n const handleShadesChange = useCallback(() => {\n generateNewThemeColors();\n }, [generateNewThemeColors]);\n\n const [themeMode, setThemeMode] = useState<string>('light');\n\n return (\n <form\n className=\"relative h-full max-h-full pb-(--action-bar-height)\"\n onSubmit={onSubmit}\n >\n <div className=\"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6\">\n <div className=\"sticky top-0 z-10 space-y-2 border-b bg-background py-6\">\n <h1>Theme Builder</h1>\n <p className=\"max-w-3xl text-muted-foreground\">\n The theme of the UI is based off color variables used with{' '}\n <a\n href=\"https://ui.shadcn.com/docs/theming\"\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"underline\"\n >\n the Shadn UI component library\n </a>\n . We generate the color variables based off the Tailwind color\n palette structure but you can customize them as you wish.\n </p>\n </div>\n <div className=\"pt-4\">\n {/* TODO: check if this should be removed */}\n <Alert className=\"max-w-fit\">\n <MdConstruction />\n <AlertTitle>Work in Progress</AlertTitle>\n <AlertDescription>\n This page is still a work in progress. It is not being used for\n generation at the moment.\n </AlertDescription>\n </Alert>\n <SectionList>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>\n Theme Palettes\n </SectionListSectionTitle>\n <SectionListSectionDescription>\n Pick the colors for your theme\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"max-w-3xl\">\n <Tabs defaultValue=\"base\">\n <TabsList>\n <TabsTrigger value=\"base\">Base</TabsTrigger>\n <TabsTrigger value=\"primary\">Primary</TabsTrigger>\n </TabsList>\n <TabsContent value=\"base\">\n <ThemePaletteEditor\n control={control}\n getValues={getValues}\n setValue={setValue}\n type=\"base\"\n onShadesChange={handleShadesChange}\n />\n </TabsContent>\n <TabsContent value=\"primary\">\n <ThemePaletteEditor\n control={control}\n getValues={getValues}\n setValue={setValue}\n type=\"primary\"\n onShadesChange={handleShadesChange}\n />\n </TabsContent>\n </Tabs>\n </SectionListSectionContent>\n </SectionListSection>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>Theme Colors</SectionListSectionTitle>\n <SectionListSectionDescription>\n Pick the colors for your theme\n </SectionListSectionDescription>\n <div className=\"sticky top-44\">\n <ThemeColorsPreview\n key={themeMode} // force rerender\n control={control}\n mode={themeMode as 'light' | 'dark'}\n />\n </div>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"flex flex-col gap-4\">\n <Tabs value={themeMode} onValueChange={setThemeMode}>\n <TabsList>\n <TabsTrigger value=\"light\">Light</TabsTrigger>\n <TabsTrigger value=\"dark\">Dark</TabsTrigger>\n </TabsList>\n <TabsContent value=\"light\">\n <ThemeColorsEditor\n control={control}\n setValue={setValue}\n mode=\"light\"\n />\n </TabsContent>\n <TabsContent value=\"dark\">\n <ThemeColorsEditor\n control={control}\n setValue={setValue}\n mode=\"dark\"\n />\n </TabsContent>\n </Tabs>\n <Button\n onClick={() => {\n generateNewThemeColors(true);\n }}\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n className=\"w-fit\"\n >\n Reset Colors\n </Button>\n </SectionListSectionContent>\n </SectionListSection>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>CSS Preview</SectionListSectionTitle>\n <SectionListSectionDescription>\n Preview the CSS for your theme\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"flex flex-col gap-4\">\n <ThemeColorsCssDisplay control={control} />\n </SectionListSectionContent>\n </SectionListSection>\n </SectionList>\n </div>\n </div>\n <FormActionBar form={form} />\n </form>\n );\n}\n"],"names":["generateCssFromThemeConfig","importShared","TextareaField","useMemo","convertRecordToCss","record","key","value","ThemeColorsCssDisplay","className","control","colors","useWatch","cssValue","jsx","clsx","convertHexToOklch","convertOklchToColorName","convertOklchToHex","getDefaultThemeColorFromShade","THEME_COLORS","Button","ColorPickerFieldController","Tooltip","TooltipContent","TooltipTrigger","ThemeColorsEditor","mode","setValue","themeColorEntries","palettes","themeColors","config","idx","themeKey","shouldStartNewColumn","currentColor","defaultValue","jsxs","MdInfo","color","baseShade","shadeColor","primaryShade","MdRestartAlt","Badge","Card","CardContent","CardDescription","CardHeader","CardTitle","Combobox","ComboboxContent","ComboboxEmpty","ComboboxInput","ComboboxItem","ThemeColorsPreview","colorCss","PreviewSectionTitle","children","generatePaletteNN","input","PALETTE_SHADES","getPaletteKey","shade","component","generatePalette","baseColor","rgb","converter","newPalette","shadeRgb","formatHex","COLOR_PALETTES","ComboboxFieldController","useCallback","ThemePaletteEditor","getValues","onShadesChange","type","paletteOptions","capitalize","paletteName","handlePaletteNameChange","name","palette","handleCustomPaletteGenerate","createThemeSchema","generateDefaultTheme","generateThemeColorsFromShade","useBlockUnsavedChangesNavigate","useDefinitionSchema","useProjectDefinition","useResettableForm","Alert","AlertDescription","AlertTitle","FormActionBar","SectionList","SectionListSection","SectionListSectionContent","SectionListSectionDescription","SectionListSectionHeader","SectionListSectionTitle","Tabs","TabsContent","TabsList","TabsTrigger","useState","SplitComponent","definition","saveDefinitionWithFeedback","themeSchema","values","settings","theme","form","resolver","zodResolver","handleSubmit","reset","onSubmit","draftConfig","data","generateNewThemeColors","resetColors","light","undefined","dark","handleShadesChange","themeMode","setThemeMode","MdConstruction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme-builder-00-pJhvO.js","sources":["../../src/routes/settings/-components/theme-colors-css-display.tsx","../../src/routes/settings/-components/theme-colors-editor.tsx","../../src/routes/settings/-components/theme-colors-preview.tsx","../../src/routes/settings/-theme-utils/palette-neural-net.ts","../../src/routes/settings/-theme-utils/palette-generator.ts","../../src/routes/settings/-components/theme-palette-editor.tsx","../../src/routes/settings/theme-builder.tsx?tsr-split=component"],"sourcesContent":["import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type { Control } from 'react-hook-form';\n\nimport { generateCssFromThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport { TextareaField } from '@baseplate-dev/ui-components';\nimport { clsx } from 'clsx';\nimport { useMemo } from 'react';\nimport { useWatch } from 'react-hook-form';\n\ninterface ThemeColorsCssDisplayProps {\n className?: string;\n control: Control<ThemeConfig>;\n}\n\nfunction convertRecordToCss(record: Record<string, string>): string {\n return Object.entries(record)\n .map(([key, value]) => ` ${key}: ${value};`)\n .join('\\n');\n}\n\nexport function ThemeColorsCssDisplay({\n className,\n control,\n}: ThemeColorsCssDisplayProps): React.JSX.Element {\n const colors = useWatch({ control, name: `colors` });\n\n const cssValue = useMemo(\n () =>\n `\n:root {\n${convertRecordToCss(generateCssFromThemeConfig(colors.light))}\n}\n\n.dark, html[data-theme='dark'] {\n${convertRecordToCss(generateCssFromThemeConfig(colors.dark))}\n}\n `.trim(),\n [colors],\n );\n\n return (\n <div className={clsx('', className)}>\n <TextareaField className=\"h-60\" readOnly value={cssValue} />\n </div>\n );\n}\n","import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type { Control, UseFormSetValue } from 'react-hook-form';\n\nimport {\n convertHexToOklch,\n convertOklchToColorName,\n convertOklchToHex,\n getDefaultThemeColorFromShade,\n THEME_COLORS,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n Button,\n ColorPickerFieldController,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@baseplate-dev/ui-components';\nimport { clsx } from 'clsx';\nimport { useWatch } from 'react-hook-form';\nimport { MdInfo, MdRestartAlt } from 'react-icons/md';\n\ninterface ThemeColorEditorProps {\n className?: string;\n control: Control<ThemeConfig>;\n mode: 'light' | 'dark';\n setValue: UseFormSetValue<ThemeConfig>;\n}\n\nexport function ThemeColorsEditor({\n className,\n control,\n mode,\n setValue,\n}: ThemeColorEditorProps): React.JSX.Element {\n const themeColorEntries = Object.entries(THEME_COLORS);\n const palettes = useWatch({ control, name: 'palettes' });\n const themeColors = useWatch({ control, name: `colors.${mode}` });\n return (\n <div className={clsx('flex w-full max-w-xl gap-4', className)}>\n <div className=\"grid flex-1 grid-cols-1 gap-4 sm:grid-cols-2\">\n {themeColorEntries.map(([key, config], idx) => {\n const themeKey = key as keyof typeof THEME_COLORS;\n const lastCategoryKey =\n idx > 0 ? themeColorEntries[idx - 1][1].groupKey : undefined;\n const shouldStartNewColumn = lastCategoryKey !== config.groupKey;\n const currentColor = themeColors[themeKey];\n const defaultValue = getDefaultThemeColorFromShade(\n palettes,\n mode,\n themeKey,\n );\n return (\n <div\n className={clsx(\n shouldStartNewColumn ? 'col-start-1' : undefined,\n 'relative',\n )}\n key={key}\n >\n <ColorPickerFieldController\n control={control}\n className=\"w-full\"\n wrapperClassName=\"flex-col items-start\"\n label={\n <div className=\"flex h-6 w-full items-center gap-1\">\n <div>{config.name}</div>\n <Tooltip delayDuration={500}>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Color Info\"\n className=\"opacity-30\"\n >\n <MdInfo />\n </Button>\n </TooltipTrigger>\n <TooltipContent\n align=\"start\"\n side=\"bottom\"\n className=\"max-w-[400px]\"\n >\n <div className=\"font-normal\">{config.description}</div>\n </TooltipContent>\n </Tooltip>\n </div>\n }\n parseColor={convertOklchToHex}\n serializeColor={convertHexToOklch}\n formatColorName={(color) => {\n const baseShade = Object.entries(palettes.base.shades).find(\n ([, shadeColor]) => shadeColor === color,\n )?.[0];\n if (baseShade) {\n return `base-${baseShade}`;\n }\n const primaryShade = Object.entries(\n palettes.primary.shades,\n ).find(([, shadeColor]) => shadeColor === color)?.[0];\n if (primaryShade) {\n return `primary-${primaryShade}`;\n }\n return convertOklchToColorName(color);\n }}\n name={`colors.${mode}.${themeKey}`}\n />\n {currentColor !== defaultValue && (\n <Button\n className=\"absolute right-2 bottom-1\"\n onClick={() => {\n setValue(`colors.${mode}.${themeKey}`, defaultValue);\n }}\n size=\"icon\"\n variant=\"ghost\"\n aria-label=\"Reset Color\"\n >\n <MdRestartAlt />\n </Button>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type { Control } from 'react-hook-form';\n\nimport { generateCssFromThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Combobox,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n} from '@baseplate-dev/ui-components';\nimport { clsx } from 'clsx';\nimport { useWatch } from 'react-hook-form';\n\ninterface ThemeColorsPreviewProps {\n className?: string;\n control: Control<ThemeConfig>;\n mode: 'light' | 'dark';\n}\n\nexport function ThemeColorsPreview({\n className,\n control,\n mode,\n}: ThemeColorsPreviewProps): React.JSX.Element {\n const colors = useWatch({\n control,\n name: `colors.${mode}`,\n });\n const colorCss = generateCssFromThemeConfig(colors);\n return (\n <div\n className={clsx(\n 'size-full rounded-xl border border-border bg-background p-4',\n className,\n )}\n style={colorCss}\n >\n <Card>\n <CardHeader>\n <CardTitle>Color Preview</CardTitle>\n <CardDescription>\n This is a preview of how your theme colors will be applied on\n various elements\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div>\n <PreviewSectionTitle>Paragraph Text</PreviewSectionTitle>\n <p className=\"text-base\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin\n faucibus.\n </p>\n </div>\n <div>\n <PreviewSectionTitle>Combobox</PreviewSectionTitle>\n <Combobox>\n <ComboboxInput placeholder={'Select an option'} />\n <ComboboxContent style={colorCss}>\n <ComboboxItem value=\"opt1\" label=\"Option 1\">\n Option 1\n </ComboboxItem>\n <ComboboxItem value=\"green\" label=\"Option 2\">\n Option 2\n </ComboboxItem>\n <ComboboxItem value=\"blue\" label=\"Option 3\">\n Option 3\n </ComboboxItem>\n <ComboboxEmpty>No results found</ComboboxEmpty>\n </ComboboxContent>\n </Combobox>\n </div>\n <div>\n <PreviewSectionTitle>Badges</PreviewSectionTitle>\n <div className=\"flex flex-wrap gap-1\">\n <Badge variant=\"default\">Default</Badge>\n <Badge variant=\"destructive\">Destructive</Badge>\n <Badge variant=\"secondary\">Secondary</Badge>\n <Badge variant=\"outline\">Outline</Badge>\n </div>\n </div>\n <div>\n <PreviewSectionTitle>Buttons</PreviewSectionTitle>\n <div className=\"flex flex-wrap gap-2 rounded-lg border border-border p-1\">\n <Button type=\"button\">Primary</Button>\n <Button variant=\"destructive\" type=\"button\">\n Destructive\n </Button>\n <Button variant=\"ghost\" type=\"button\">\n Ghost\n </Button>\n <Button variant=\"link\" type=\"button\">\n Link\n </Button>\n <Button variant=\"secondary\" type=\"button\">\n Secondary\n </Button>\n <Button variant=\"outline\" type=\"button\">\n Outline\n </Button>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n\nfunction PreviewSectionTitle({\n children,\n}: {\n children: React.ReactNode;\n}): React.JSX.Element {\n return <h4 className=\"text-lg font-semibold\">{children}</h4>;\n}\n","/* eslint-disable unicorn/numeric-separators-style */\nexport function generatePaletteNN(color: {\n r: number;\n g: number;\n b: number;\n}): Record<string, number> {\n const input = new Float32Array([color.r, color.g, color.b]);\n return {\n '50-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.8661608695983887 +\n (1.969373345375061 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.4601062536239624 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.7962396740913391 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '50-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.9256014823913574 +\n (1.231925129890442 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.3603883981704712 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.8378368616104126 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '50-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.5751663446426392 +\n (0.6084778904914856 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.0512851476669312 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (1.9236465692520142 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '100-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.6104178428649902 +\n (2.411083698272705 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.4946855306625366 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.5684743523597717 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '100-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.6873022317886353 +\n (0.7176924347877502 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.6131407022476196 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.15697577595710754 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '100-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.0808522701263428 -\n (0.09388591349124908 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.5177313685417175 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.6253278255462646 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '200-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.3480290174484253 +\n (2.2088170051574707 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (1.1226733922958374 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.41870957612991333 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '200-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.3919278383255005 +\n (0.2666841745376587 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.5987523794174194 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.23637670278549194 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '200-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.6176453232765198 -\n (0.6029531359672546 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.21029342710971832 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.906541109085083 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '300-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.9194338321685791 +\n (2.3936944007873535 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (1.68363356590271 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.36374539136886597 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '300-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 1.1811708211898804 -\n (0.08378893882036209 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.4275716543197632 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.6511568427085876 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '300-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.04160493612289429 -\n (1.0422184467315674 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.1739543229341507 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (3.306165933609009 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '400-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.5908379554748535 +\n (2.6282155513763428 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.483553886413574 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (0.16029347479343414 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '400-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.9054368138313293 -\n (0.38720616698265076 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.231947422027588 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.0837976932525635 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '400-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.6404189467430115 -\n (1.6898466348648071 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.029696132987737656 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (3.7177767753601074 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '500-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.3420727550983429 +\n (2.987776756286621 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (3.3403704166412354 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.07194828987121582 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '500-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.5289734601974487 -\n (0.5567987561225891 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.3352314233779907 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.4835448265075684 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '500-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.2478309869766235 -\n (2.2976744174957275 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.30013492703437805 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (4.339084625244141 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '600-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.18572008609771729 +\n (2.5128233432769775 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (3.407212495803833 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.20814435184001923 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '600-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n 0.15741883218288422 -\n (0.7273809909820557 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.2500137090682983 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.6501106023788452 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '600-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.3073996305465698 -\n (2.5112154483795166 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.7157139182090759 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (4.086366176605225 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '700-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.25121745467185974 +\n (1.7795124053955078 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.7557551860809326 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.0411522202193737 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '700-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.43503373861312866 -\n (0.6766132712364197 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (1.150789737701416 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.3406033515930176 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '700-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.1124053001403809 -\n (2.359389305114746 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.943118691444397 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (3.267453908920288 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '800-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.42729225754737854 +\n (1.2738885879516602 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.573699474334717 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.11818580329418182 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '800-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.6730203628540039 -\n (0.770199716091156 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.9060920476913452 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.2600882053375244 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '800-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.32567298412323 -\n (1.9301948547363281 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.8552113175392151 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.6513888835906982 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '900-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.6309270858764648 +\n (1.0235852003097534 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.4659388065338135 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.15058130025863647 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '900-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -0.9010928273200989 -\n (0.7559532523155212 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.7665435075759888 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.1884112358093262 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '900-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.5088001489639282 -\n (1.5986618995666504 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.7353832125663757 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (2.180158853530884 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '950-r':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.166185975074768 +\n (0.5363732576370239 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (2.587523937225342 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (0.061746854335069656 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '950-g':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.2907893657684326 -\n (1.3924223184585571 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) +\n (0.5465696454048157 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) -\n (1.2647709846496582 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n '950-b':\n 1 /\n (1 +\n 1 /\n Math.exp(\n -1.8633685111999512 -\n (1.8034374713897705 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.5648569464683533 +\n 8.592248916625977 * (input[0] || 0) -\n 2.0615885257720947 * (input[1] || 0) -\n 7.465658187866211 * (input[2] || 0),\n )) -\n (0.8856748938560486 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.6313956379890442 -\n 7.673094272613525 * (input[0] || 0) +\n 8.008654594421387 * (input[1] || 0) -\n 1.6121777296066284 * (input[2] || 0),\n )) +\n (1.8510282039642334 * 1) /\n (1 +\n 1 /\n Math.exp(\n 0.08400232344865799 -\n 0.9345706105232239 * (input[0] || 0) -\n 7.6551032066345215 * (input[1] || 0) +\n 8.717894554138184 * (input[2] || 0),\n )),\n )),\n };\n}\n","import type { ColorPalette } from '@baseplate-dev/project-builder-lib';\nimport type { Rgb } from 'culori';\n\nimport { PALETTE_SHADES } from '@baseplate-dev/project-builder-lib';\nimport { converter, formatHex } from 'culori';\n\nimport { generatePaletteNN } from './palette-neural-net.js';\n\nfunction getPaletteKey(shade: string, component: string): string {\n return `${shade}-${component}`;\n}\n\nexport function generatePalette(baseColor: string): ColorPalette {\n const convertToRgb = converter('rgb');\n\n const rgb = convertToRgb(baseColor);\n\n if (!rgb) {\n throw new Error(`Invalid color: ${baseColor}`);\n }\n\n const newPalette = generatePaletteNN(rgb);\n\n return Object.fromEntries(\n PALETTE_SHADES.map((shade) => {\n const shadeRgb: Rgb = {\n mode: 'rgb',\n r: newPalette[getPaletteKey(shade, 'r')],\n g: newPalette[getPaletteKey(shade, 'g')],\n b: newPalette[getPaletteKey(shade, 'b')],\n };\n return [shade, formatHex(shadeRgb)];\n }),\n ) as ColorPalette;\n}\n","import type {\n ColorPaletteName,\n PaletteShades,\n ThemeConfig,\n} from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\nimport type {\n Control,\n UseFormGetValues,\n UseFormSetValue,\n} from 'react-hook-form';\n\nimport {\n COLOR_PALETTES,\n convertHexToOklch,\n convertOklchToHex,\n PALETTE_SHADES,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n Button,\n ColorPickerFieldController,\n ComboboxFieldController,\n} from '@baseplate-dev/ui-components';\nimport { capitalize } from 'inflection';\nimport { useCallback } from 'react';\nimport { useWatch } from 'react-hook-form';\n\nimport { generatePalette } from '../-theme-utils/palette-generator.js';\n\ninterface ThemePaletteEditorProps {\n control: Control<ThemeConfig>;\n getValues: UseFormGetValues<ThemeConfig>;\n setValue: UseFormSetValue<ThemeConfig>;\n onShadesChange?: (shades: Partial<PaletteShades>) => void;\n type: 'base' | 'primary';\n}\n\nexport function ThemePaletteEditor({\n control,\n getValues,\n setValue,\n onShadesChange,\n type,\n}: ThemePaletteEditorProps): React.JSX.Element {\n const paletteOptions = [\n { value: 'custom', label: 'Custom Base' },\n ...Object.keys(COLOR_PALETTES).map((key) => ({\n value: key,\n label: capitalize(key),\n })),\n ];\n\n const paletteName = useWatch({\n control,\n name: `palettes.${type}.paletteName`,\n });\n\n const handlePaletteNameChange = useCallback(\n (name: string | null) => {\n if (!name || !Object.prototype.hasOwnProperty.call(COLOR_PALETTES, name))\n return;\n const palette = COLOR_PALETTES[name as ColorPaletteName];\n setValue(`palettes.${type}.shades`, palette);\n onShadesChange?.(palette);\n },\n [setValue, onShadesChange, type],\n );\n\n const handleCustomPaletteGenerate = (): void => {\n const baseColor = getValues(`palettes.${type}.customBase`);\n if (!baseColor) return;\n const newPalette = generatePalette(baseColor);\n setValue(`palettes.${type}.shades`, newPalette);\n onShadesChange?.(newPalette);\n };\n\n return (\n <div className=\"flex max-w-fit flex-col gap-4\">\n <ComboboxFieldController\n name={`palettes.${type}.paletteName`}\n control={control}\n options={paletteOptions}\n placeholder=\"Choose a base palette\"\n onChange={handlePaletteNameChange}\n />\n {paletteName === 'custom' && (\n <div className=\"flex max-w-xl items-center justify-between\">\n <ColorPickerFieldController\n className=\"flex-1 space-x-1\"\n wrapperClassName=\"items-center\"\n control={control}\n name={`palettes.${type}.customBase`}\n label=\"Custom Base Color\"\n placeholder=\"Choose a color\"\n parseColor={convertOklchToHex}\n serializeColor={convertHexToOklch}\n />\n <Button\n variant=\"secondary\"\n onClick={handleCustomPaletteGenerate}\n size=\"sm\"\n >\n Generate\n </Button>\n </div>\n )}\n <div className=\"flex gap-3\">\n {PALETTE_SHADES.map((shade) => (\n <ColorPickerFieldController\n key={shade}\n wrapperClassName=\"flex flex-col items-center\"\n hideText\n control={control}\n name={`palettes.${type}.shades.${shade}`}\n label={shade}\n parseColor={convertOklchToHex}\n serializeColor={convertHexToOklch}\n onChange={() =>\n onShadesChange?.(getValues(`palettes.${type}.shades`))\n }\n />\n ))}\n </div>\n </div>\n );\n}\n","import type { ThemeConfig } from '@baseplate-dev/project-builder-lib';\nimport type React from 'react';\n\nimport {\n createThemeSchema,\n generateDefaultTheme,\n generateThemeColorsFromShade,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n useBlockUnsavedChangesNavigate,\n useDefinitionSchema,\n useProjectDefinition,\n useResettableForm,\n} from '@baseplate-dev/project-builder-lib/web';\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n Button,\n FormActionBar,\n SectionList,\n SectionListSection,\n SectionListSectionContent,\n SectionListSectionDescription,\n SectionListSectionHeader,\n SectionListSectionTitle,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from '@baseplate-dev/ui-components';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { createFileRoute } from '@tanstack/react-router';\nimport { useCallback, useMemo, useState } from 'react';\nimport { MdConstruction } from 'react-icons/md';\n\nimport { ThemeColorsCssDisplay } from './-components/theme-colors-css-display.js';\nimport { ThemeColorsEditor } from './-components/theme-colors-editor.js';\nimport { ThemeColorsPreview } from './-components/theme-colors-preview.js';\nimport { ThemePaletteEditor } from './-components/theme-palette-editor.js';\n\nexport const Route = createFileRoute('/settings/theme-builder')({\n component: ThemeBuilderPage,\n beforeLoad: () => ({\n getTitle: () => 'Theme Builder',\n }),\n});\n\nfunction ThemeBuilderPage(): React.JSX.Element {\n const { definition, saveDefinitionWithFeedback } = useProjectDefinition();\n const themeSchema = useDefinitionSchema(createThemeSchema);\n const values = useMemo(\n () => definition.settings.theme ?? generateDefaultTheme(),\n [definition.settings.theme],\n );\n\n const form = useResettableForm<ThemeConfig>({\n resolver: zodResolver(themeSchema),\n values,\n });\n const { control, handleSubmit, setValue, getValues, reset } = form;\n\n const onSubmit = handleSubmit((data) =>\n saveDefinitionWithFeedback((draftConfig) => {\n draftConfig.settings.theme = data;\n }),\n );\n\n useBlockUnsavedChangesNavigate({ control, reset, onSubmit });\n\n const generateNewThemeColors = useCallback(\n (resetColors?: boolean) => {\n const palettes = getValues('palettes');\n setValue('colors', {\n light: generateThemeColorsFromShade(\n palettes,\n 'light',\n resetColors\n ? undefined\n : {\n palettes: values.palettes,\n config: values.colors.light,\n },\n ),\n dark: generateThemeColorsFromShade(\n palettes,\n 'dark',\n resetColors\n ? undefined\n : {\n palettes: values.palettes,\n config: values.colors.dark,\n },\n ),\n });\n },\n [getValues, setValue, values],\n );\n\n const handleShadesChange = useCallback(() => {\n generateNewThemeColors();\n }, [generateNewThemeColors]);\n\n const [themeMode, setThemeMode] = useState<string>('light');\n\n return (\n <form\n className=\"relative h-full max-h-full pb-(--action-bar-height)\"\n onSubmit={onSubmit}\n >\n <div className=\"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6\">\n <div className=\"sticky top-0 z-10 space-y-2 border-b bg-background py-6\">\n <h1>Theme Builder</h1>\n <p className=\"max-w-3xl text-muted-foreground\">\n The theme of the UI is based off color variables used with{' '}\n <a\n href=\"https://ui.shadcn.com/docs/theming\"\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"underline\"\n >\n the Shadn UI component library\n </a>\n . We generate the color variables based off the Tailwind color\n palette structure but you can customize them as you wish.\n </p>\n </div>\n <div className=\"pt-4\">\n {/* TODO: check if this should be removed */}\n <Alert className=\"max-w-fit\">\n <MdConstruction />\n <AlertTitle>Work in Progress</AlertTitle>\n <AlertDescription>\n This page is still a work in progress. It is not being used for\n generation at the moment.\n </AlertDescription>\n </Alert>\n <SectionList>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>\n Theme Palettes\n </SectionListSectionTitle>\n <SectionListSectionDescription>\n Pick the colors for your theme\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"max-w-3xl\">\n <Tabs defaultValue=\"base\">\n <TabsList>\n <TabsTrigger value=\"base\">Base</TabsTrigger>\n <TabsTrigger value=\"primary\">Primary</TabsTrigger>\n </TabsList>\n <TabsContent value=\"base\">\n <ThemePaletteEditor\n control={control}\n getValues={getValues}\n setValue={setValue}\n type=\"base\"\n onShadesChange={handleShadesChange}\n />\n </TabsContent>\n <TabsContent value=\"primary\">\n <ThemePaletteEditor\n control={control}\n getValues={getValues}\n setValue={setValue}\n type=\"primary\"\n onShadesChange={handleShadesChange}\n />\n </TabsContent>\n </Tabs>\n </SectionListSectionContent>\n </SectionListSection>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>Theme Colors</SectionListSectionTitle>\n <SectionListSectionDescription>\n Pick the colors for your theme\n </SectionListSectionDescription>\n <div className=\"sticky top-44\">\n <ThemeColorsPreview\n key={themeMode} // force rerender\n control={control}\n mode={themeMode as 'light' | 'dark'}\n />\n </div>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"flex flex-col gap-4\">\n <Tabs value={themeMode} onValueChange={setThemeMode}>\n <TabsList>\n <TabsTrigger value=\"light\">Light</TabsTrigger>\n <TabsTrigger value=\"dark\">Dark</TabsTrigger>\n </TabsList>\n <TabsContent value=\"light\">\n <ThemeColorsEditor\n control={control}\n setValue={setValue}\n mode=\"light\"\n />\n </TabsContent>\n <TabsContent value=\"dark\">\n <ThemeColorsEditor\n control={control}\n setValue={setValue}\n mode=\"dark\"\n />\n </TabsContent>\n </Tabs>\n <Button\n onClick={() => {\n generateNewThemeColors(true);\n }}\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n className=\"w-fit\"\n >\n Reset Colors\n </Button>\n </SectionListSectionContent>\n </SectionListSection>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>CSS Preview</SectionListSectionTitle>\n <SectionListSectionDescription>\n Preview the CSS for your theme\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"flex flex-col gap-4\">\n <ThemeColorsCssDisplay control={control} />\n </SectionListSectionContent>\n </SectionListSection>\n </SectionList>\n </div>\n </div>\n <FormActionBar form={form} />\n </form>\n );\n}\n"],"names":["generateCssFromThemeConfig","importShared","TextareaField","useMemo","convertRecordToCss","record","key","value","ThemeColorsCssDisplay","className","control","colors","useWatch","cssValue","jsx","clsx","convertHexToOklch","convertOklchToColorName","convertOklchToHex","getDefaultThemeColorFromShade","THEME_COLORS","Button","ColorPickerFieldController","Tooltip","TooltipContent","TooltipTrigger","ThemeColorsEditor","mode","setValue","themeColorEntries","palettes","themeColors","config","idx","themeKey","shouldStartNewColumn","currentColor","defaultValue","jsxs","MdInfo","color","baseShade","shadeColor","primaryShade","MdRestartAlt","Badge","Card","CardContent","CardDescription","CardHeader","CardTitle","Combobox","ComboboxContent","ComboboxEmpty","ComboboxInput","ComboboxItem","ThemeColorsPreview","colorCss","PreviewSectionTitle","children","generatePaletteNN","input","PALETTE_SHADES","getPaletteKey","shade","component","generatePalette","baseColor","rgb","converter","newPalette","shadeRgb","formatHex","COLOR_PALETTES","ComboboxFieldController","useCallback","ThemePaletteEditor","getValues","onShadesChange","type","paletteOptions","capitalize","paletteName","handlePaletteNameChange","name","palette","handleCustomPaletteGenerate","createThemeSchema","generateDefaultTheme","generateThemeColorsFromShade","useBlockUnsavedChangesNavigate","useDefinitionSchema","useProjectDefinition","useResettableForm","Alert","AlertDescription","AlertTitle","FormActionBar","SectionList","SectionListSection","SectionListSectionContent","SectionListSectionDescription","SectionListSectionHeader","SectionListSectionTitle","Tabs","TabsContent","TabsList","TabsTrigger","useState","SplitComponent","definition","saveDefinitionWithFeedback","themeSchema","values","settings","theme","form","resolver","zodResolver","handleSubmit","reset","onSubmit","data","draftConfig","generateNewThemeColors","resetColors","light","undefined","dark","handleShadesChange","themeMode","setThemeMode","MdConstruction"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-definition-schema-BuO4pbji.js","sources":["../../src/hooks/use-definition-schema.ts"],"sourcesContent":["import type {\n def,\n DefinitionSchemaCreator,\n} from '@baseplate-dev/project-builder-lib';\n\nimport { useProjectDefinition } from '@baseplate-dev/project-builder-lib/web';\nimport { useMemo } from 'react';\n\nexport function useDefinitionSchema<T extends DefinitionSchemaCreator>(\n schemaCreator: T,\n): def.InferSchema<T> {\n const { definitionSchemaParserContext } = useProjectDefinition();\n return useMemo(\n () => schemaCreator(definitionSchemaParserContext),\n [definitionSchemaParserContext, schemaCreator],\n ) as def.InferSchema<T>;\n}\n"],"names":["useProjectDefinition","importShared","useMemo","useDefinitionSchema","schemaCreator","definitionSchemaParserContext"],"mappings":"6DAKA,KAAA,CAAA,qBAAAA,CAAA,EAAA,MAAAC,EAAA,wCAAA,EACA,CAAA,QAAAC,CAAA,EAAA,MAAAD,EAAA,OAAA,EAEO,SAASE,EACdC,EACoB,
|
|
1
|
+
{"version":3,"file":"use-definition-schema-BuO4pbji.js","sources":["../../src/hooks/use-definition-schema.ts"],"sourcesContent":["import type {\n def,\n DefinitionSchemaCreator,\n} from '@baseplate-dev/project-builder-lib';\n\nimport { useProjectDefinition } from '@baseplate-dev/project-builder-lib/web';\nimport { useMemo } from 'react';\n\nexport function useDefinitionSchema<T extends DefinitionSchemaCreator>(\n schemaCreator: T,\n): def.InferSchema<T> {\n const { definitionSchemaParserContext } = useProjectDefinition();\n return useMemo(\n () => schemaCreator(definitionSchemaParserContext),\n [definitionSchemaParserContext, schemaCreator],\n ) as def.InferSchema<T>;\n}\n"],"names":["useProjectDefinition","importShared","useMemo","useDefinitionSchema","schemaCreator","definitionSchemaParserContext"],"mappings":"6DAKA,KAAA,CAAA,qBAAAA,CAAA,EAAA,MAAAC,EAAA,wCAAA,EACA,CAAA,QAAAC,CAAA,EAAA,MAAAD,EAAA,OAAA,EAEO,SAASE,EACdC,EACoB,CACpB,KAAM,CAAE,8BAAAC,CAAA,EAAkCL,EAAA,EAC1C,OAAOE,EACL,IAAME,EAAcC,CAA6B,EACjD,CAACA,EAA+BD,CAAa,CAAA,CAEjD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as o}from"./_virtual___federation_fn_import-D3sI42Ph.js";import{n as x,s as I,l as j}from"./index-
|
|
2
|
-
//# sourceMappingURL=use-enum-form-
|
|
1
|
+
import{i as o}from"./_virtual___federation_fn_import-D3sI42Ph.js";import{n as x,s as I,l as j}from"./index-Cd_baD6T.js";import{s as B}from"./sortBy-C9bvycg5.js";const{createEnumBaseSchema:T,EnumUtils:U,FeatureUtils:L,modelEnumEntityType:u}=await o("@baseplate-dev/project-builder-lib"),{useDefinitionSchema:M,useProjectDefinition:O,useResettableForm:$}=await o("@baseplate-dev/project-builder-lib/web"),{useEventCallback:A}=await o("@baseplate-dev/ui-components"),{useNavigate:K}=await o("@tanstack/react-router"),{useMemo:r,useRef:P}=await o("react");function V(){return{id:u.generateNewId(),name:"",featureRef:"",isExposed:!1,values:[]}}function H({enumKey:g,omit:D,onSubmitSuccess:k,isCreate:i}={}){const{definition:m,saveDefinitionWithFeedback:b,isSavingDefinition:N}=O(),p=K(),w=i?void 0:u.idFromKey(g),n=w?U.byId(m,w):void 0;if(!i&&!n)throw new x("Enum not found");const a=r(()=>V(),[]),c=M(T),d=P(D),l=r(()=>d.current?c.omit(Object.fromEntries(d.current.map(t=>[t,!0]))):c,[c]),v=r(()=>{const t=n??a;return d.current?l.parse(t):t},[n,a,l]),y=$({resolver:I(l),defaultValues:v}),{reset:f,handleSubmit:S,setError:h}=y,F=A(k),R=r(()=>S(t=>{const e={...n,...t,id:n?.id??u.generateNewId()};if(m.enums?.find(s=>s.id!==e.id&&s.name.toLowerCase()===e.name.toLowerCase())){h("name",{message:`Enum with name ${e.name} already exists.`});return}return b(s=>{e.featureRef=L.ensureFeatureByNameRecursively(s,e.featureRef),s.enums=B([...s.enums?.filter(E=>E.id!==e.id)??[],e],[E=>E.name])},{successMessage:i?"Successfully created enum!":"Successfully saved enum!",onSuccess:()=>{i?(p({to:"/data/enums/edit/$key",params:{key:u.keyFromId(e.id)}}).catch(j),f(a)):f(t),F?.()}})}),[p,f,b,h,S,m,i,n,a,F]);return{form:y,onSubmit:R,defaultValues:v,isSavingDefinition:N}}export{H as u};
|
|
2
|
+
//# sourceMappingURL=use-enum-form-CiJfrBqR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-enum-form-
|
|
1
|
+
{"version":3,"file":"use-enum-form-CiJfrBqR.js","sources":["../../src/routes/data/enums/-hooks/use-enum-form.tsx"],"sourcesContent":["import type {\n EnumConfig,\n EnumConfigInput,\n} from '@baseplate-dev/project-builder-lib';\nimport type { UseFormReturn } from 'react-hook-form';\n\nimport {\n createEnumBaseSchema,\n EnumUtils,\n FeatureUtils,\n modelEnumEntityType,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n useDefinitionSchema,\n useProjectDefinition,\n useResettableForm,\n} from '@baseplate-dev/project-builder-lib/web';\nimport { useEventCallback } from '@baseplate-dev/ui-components';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useNavigate } from '@tanstack/react-router';\nimport { sortBy } from 'es-toolkit';\nimport { useMemo, useRef } from 'react';\n\nimport { logAndFormatError } from '#src/services/error-formatter.js';\nimport { NotFoundError } from '#src/utils/error.js';\n\ninterface UseEnumFormOptions {\n enumKey?: string;\n omit?: string[];\n onSubmitSuccess?: () => void;\n isCreate?: boolean;\n}\n\nfunction createNewEnum(): EnumConfig {\n return {\n id: modelEnumEntityType.generateNewId(),\n name: '',\n featureRef: '',\n isExposed: false,\n values: [],\n };\n}\n\nexport function useEnumForm({\n enumKey,\n omit,\n onSubmitSuccess,\n isCreate,\n}: UseEnumFormOptions = {}): {\n form: UseFormReturn<EnumConfigInput>;\n onSubmit: () => Promise<void>;\n defaultValues: EnumConfigInput;\n isSavingDefinition: boolean;\n} {\n const { definition, saveDefinitionWithFeedback, isSavingDefinition } =\n useProjectDefinition();\n const navigate = useNavigate();\n\n const urlEnumId = isCreate\n ? undefined\n : modelEnumEntityType.idFromKey(enumKey);\n const enumDefinition = urlEnumId\n ? EnumUtils.byId(definition, urlEnumId)\n : undefined;\n\n if (!isCreate && !enumDefinition) {\n throw new NotFoundError('Enum not found');\n }\n\n // memoize it to keep the same key when resetting\n const newEnumDefinition = useMemo(() => createNewEnum(), []);\n\n const baseEnumSchema = useDefinitionSchema(createEnumBaseSchema);\n\n const fieldsToOmit = useRef(omit);\n\n const finalSchema = useMemo(() => {\n if (fieldsToOmit.current) {\n return baseEnumSchema.omit(\n Object.fromEntries(\n fieldsToOmit.current.map((field) => [field, true]),\n ) as Record<string | number, never>,\n ) as typeof baseEnumSchema;\n }\n\n return baseEnumSchema;\n }, [baseEnumSchema]);\n\n const defaultValues = useMemo(() => {\n const enumToUse = enumDefinition ?? newEnumDefinition;\n return fieldsToOmit.current\n ? (finalSchema.parse(enumToUse) as EnumConfigInput)\n : enumToUse;\n }, [enumDefinition, newEnumDefinition, finalSchema]);\n\n const form = useResettableForm<EnumConfigInput>({\n resolver: zodResolver(finalSchema),\n defaultValues,\n });\n\n const { reset, handleSubmit, setError } = form;\n\n const handleSubmitSuccess = useEventCallback(onSubmitSuccess);\n\n const onSubmit = useMemo(\n () =>\n handleSubmit((data) => {\n const updatedDefinition = {\n ...enumDefinition,\n ...data,\n // generate new ID if new\n id: enumDefinition?.id ?? modelEnumEntityType.generateNewId(),\n };\n // check for enums with the same name\n const existingEnum = definition.enums?.find(\n (e) =>\n e.id !== updatedDefinition.id &&\n e.name.toLowerCase() === updatedDefinition.name.toLowerCase(),\n );\n if (existingEnum) {\n setError('name', {\n message: `Enum with name ${updatedDefinition.name} already exists.`,\n });\n return;\n }\n\n return saveDefinitionWithFeedback(\n (draftConfig) => {\n // create feature if a new feature exists\n updatedDefinition.featureRef =\n FeatureUtils.ensureFeatureByNameRecursively(\n draftConfig,\n updatedDefinition.featureRef,\n );\n draftConfig.enums = sortBy(\n [\n ...(draftConfig.enums?.filter(\n (e) => e.id !== updatedDefinition.id,\n ) ?? []),\n updatedDefinition,\n ],\n [(e) => e.name],\n );\n },\n {\n successMessage: isCreate\n ? 'Successfully created enum!'\n : 'Successfully saved enum!',\n onSuccess: () => {\n if (isCreate) {\n navigate({\n to: '/data/enums/edit/$key',\n params: {\n key: modelEnumEntityType.keyFromId(updatedDefinition.id),\n },\n }).catch(logAndFormatError);\n reset(newEnumDefinition);\n } else {\n reset(data);\n }\n handleSubmitSuccess?.();\n },\n },\n );\n }),\n [\n navigate,\n reset,\n saveDefinitionWithFeedback,\n setError,\n handleSubmit,\n definition,\n isCreate,\n enumDefinition,\n newEnumDefinition,\n handleSubmitSuccess,\n ],\n );\n\n return { form, onSubmit, defaultValues, isSavingDefinition };\n}\n"],"names":["createEnumBaseSchema","EnumUtils","FeatureUtils","modelEnumEntityType","importShared","useDefinitionSchema","useProjectDefinition","useResettableForm","useEventCallback","useNavigate","useMemo","useRef","createNewEnum","useEnumForm","enumKey","omit","onSubmitSuccess","isCreate","definition","saveDefinitionWithFeedback","isSavingDefinition","navigate","urlEnumId","enumDefinition","NotFoundError","newEnumDefinition","baseEnumSchema","fieldsToOmit","finalSchema","field","defaultValues","enumToUse","form","zodResolver","reset","handleSubmit","setError","handleSubmitSuccess","onSubmit","data","updatedDefinition","e","draftConfig","sortBy","logAndFormatError"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as l}from"./_virtual___federation_fn_import-D3sI42Ph.js";import{s as j}from"./index-
|
|
2
|
-
//# sourceMappingURL=use-model-form-
|
|
1
|
+
import{i as l}from"./_virtual___federation_fn_import-D3sI42Ph.js";import{s as j}from"./index-Cd_baD6T.js";import{s as x}from"./sortBy-C9bvycg5.js";const{createModelBaseSchema:E,FeatureUtils:k,modelEntityType:B,ModelUtils:D}=await l("@baseplate-dev/project-builder-lib"),{useDefinitionSchema:N,useProjectDefinition:O,useResettableForm:T}=await l("@baseplate-dev/project-builder-lib/web"),{toast:o,useEventCallback:U}=await l("@baseplate-dev/ui-components"),{useMemo:c,useRef:C}=await l("react");function V({onSubmitSuccess:S,omit:g,modelKey:w}){const{definition:n,saveDefinitionWithFeedback:f}=O(),F=B.idFromKey(w),r=D.byIdOrThrow(n,F),i=N(E),d=C(g),m=c(()=>d.current?i.omit(Object.fromEntries(d.current.map(s=>[s,!0]))):i,[i]),b=c(()=>d.current?m.parse(r):r,[r,m]),p=T({resolver:j(m),defaultValues:b}),{reset:h,handleSubmit:v,setError:M}=p,y=U(S),R=c(()=>v(s=>{const t={...r,...s};if(t.model.fields.length===0){o.error("Model must have at least one field.");return}if(t.model.primaryKeyFieldRefs.length===0){o.error("Model must have at least one primary key field.");return}if(n.models.find(a=>a.id!==s.id&&a.name.toLowerCase()===t.name.toLowerCase())){M("name",{message:`Model with name ${t.name} already exists.`});return}const{service:e}=t;if(e.create.enabled){if(!e.create.fields?.length&&!e.create.transformerNames?.length){o.error("Create method must have at least one field or transformer.");return}}else e.create={enabled:!1};if(e.update.enabled){if(!e.update.fields?.length&&!e.update.transformerNames?.length){o.error("Update method must have at least one field or transformer.");return}}else e.update={enabled:!1};return e.delete.enabled||(e.delete={enabled:!1}),!e.create.enabled&&!e.update.enabled&&!e.delete.enabled&&e.transformers.length===0&&(t.service={create:{enabled:!1},update:{enabled:!1},delete:{enabled:!1},transformers:[]}),f(a=>{t.featureRef=k.ensureFeatureByNameRecursively(a,t.featureRef),a.models=x([...a.models.filter(u=>u.id!==t.id),t],[u=>u.name])},{successMessage:"Successfully saved model!",onSuccess:()=>{h(s),y?.()}})}),[h,M,v,f,y,n,r]);return{form:p,onSubmit:R,originalModel:r,defaultValues:b}}export{V as u};
|
|
2
|
+
//# sourceMappingURL=use-model-form-AKI1Wi68.js.map
|