@hex-core/themes 0.1.1 → 0.2.1
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/README.md +5 -1
- package/dist/chunk-2LU3ENLP.js +68 -0
- package/dist/chunk-2LU3ENLP.js.map +1 -0
- package/dist/chunk-2OH25A4J.js +68 -0
- package/dist/chunk-2OH25A4J.js.map +1 -0
- package/dist/chunk-2SI7O4FQ.js +68 -0
- package/dist/chunk-2SI7O4FQ.js.map +1 -0
- package/dist/chunk-4LQ3BH7F.js +68 -0
- package/dist/chunk-4LQ3BH7F.js.map +1 -0
- package/dist/chunk-4QXKFLEQ.js +68 -0
- package/dist/chunk-4QXKFLEQ.js.map +1 -0
- package/dist/chunk-5BH5ZMDH.js +68 -0
- package/dist/chunk-5BH5ZMDH.js.map +1 -0
- package/dist/chunk-5O65TVZP.js +68 -0
- package/dist/chunk-5O65TVZP.js.map +1 -0
- package/dist/chunk-5TDK4XMA.js +68 -0
- package/dist/chunk-5TDK4XMA.js.map +1 -0
- package/dist/chunk-72IPJZ6V.js +68 -0
- package/dist/chunk-72IPJZ6V.js.map +1 -0
- package/dist/chunk-73N7YFTY.js +68 -0
- package/dist/chunk-73N7YFTY.js.map +1 -0
- package/dist/chunk-7MPAMAFC.js +68 -0
- package/dist/chunk-7MPAMAFC.js.map +1 -0
- package/dist/chunk-7OAKNGRU.js +68 -0
- package/dist/chunk-7OAKNGRU.js.map +1 -0
- package/dist/chunk-7YP2HHHV.js +68 -0
- package/dist/chunk-7YP2HHHV.js.map +1 -0
- package/dist/chunk-7YPET3HT.js +68 -0
- package/dist/chunk-7YPET3HT.js.map +1 -0
- package/dist/chunk-7ZAFN5WE.js +68 -0
- package/dist/chunk-7ZAFN5WE.js.map +1 -0
- package/dist/chunk-ATBX7KXM.js +68 -0
- package/dist/chunk-ATBX7KXM.js.map +1 -0
- package/dist/chunk-BCLCH6JZ.js +68 -0
- package/dist/chunk-BCLCH6JZ.js.map +1 -0
- package/dist/chunk-BH7IPZBT.js +68 -0
- package/dist/chunk-BH7IPZBT.js.map +1 -0
- package/dist/chunk-BK432RWC.js +68 -0
- package/dist/chunk-BK432RWC.js.map +1 -0
- package/dist/chunk-BMLLM5GC.js +68 -0
- package/dist/chunk-BMLLM5GC.js.map +1 -0
- package/dist/chunk-CEQN6EQY.js +68 -0
- package/dist/chunk-CEQN6EQY.js.map +1 -0
- package/dist/chunk-CFLNGBY5.js +68 -0
- package/dist/chunk-CFLNGBY5.js.map +1 -0
- package/dist/chunk-CTI3W357.js +68 -0
- package/dist/chunk-CTI3W357.js.map +1 -0
- package/dist/chunk-CUO2HNBR.js +68 -0
- package/dist/chunk-CUO2HNBR.js.map +1 -0
- package/dist/chunk-D5JFUYFN.js +68 -0
- package/dist/chunk-D5JFUYFN.js.map +1 -0
- package/dist/chunk-DE2NWOEB.js +68 -0
- package/dist/chunk-DE2NWOEB.js.map +1 -0
- package/dist/chunk-DLLP5KXF.js +68 -0
- package/dist/chunk-DLLP5KXF.js.map +1 -0
- package/dist/chunk-E26YKJRK.js +68 -0
- package/dist/chunk-E26YKJRK.js.map +1 -0
- package/dist/chunk-EV4APPVD.js +528 -0
- package/dist/chunk-EV4APPVD.js.map +1 -0
- package/dist/chunk-EZFP45CP.js +68 -0
- package/dist/chunk-EZFP45CP.js.map +1 -0
- package/dist/chunk-FE2IENES.js +68 -0
- package/dist/chunk-FE2IENES.js.map +1 -0
- package/dist/chunk-FK5WSFAA.js +68 -0
- package/dist/chunk-FK5WSFAA.js.map +1 -0
- package/dist/chunk-G2V6XAJ7.js +68 -0
- package/dist/chunk-G2V6XAJ7.js.map +1 -0
- package/dist/chunk-GAOOBTSH.js +68 -0
- package/dist/chunk-GAOOBTSH.js.map +1 -0
- package/dist/chunk-GAQ6LS55.js +68 -0
- package/dist/chunk-GAQ6LS55.js.map +1 -0
- package/dist/chunk-GSTGBWQZ.js +68 -0
- package/dist/chunk-GSTGBWQZ.js.map +1 -0
- package/dist/chunk-I267MA2D.js +68 -0
- package/dist/chunk-I267MA2D.js.map +1 -0
- package/dist/chunk-I4Z7DY3Z.js +68 -0
- package/dist/chunk-I4Z7DY3Z.js.map +1 -0
- package/dist/chunk-I6H6W42Y.js +68 -0
- package/dist/chunk-I6H6W42Y.js.map +1 -0
- package/dist/chunk-IJBNLZQH.js +68 -0
- package/dist/chunk-IJBNLZQH.js.map +1 -0
- package/dist/chunk-IRDDULX7.js +68 -0
- package/dist/chunk-IRDDULX7.js.map +1 -0
- package/dist/chunk-IXKXYUXQ.js +68 -0
- package/dist/chunk-IXKXYUXQ.js.map +1 -0
- package/dist/chunk-JZEZHM5N.js +68 -0
- package/dist/chunk-JZEZHM5N.js.map +1 -0
- package/dist/chunk-KCI73LIZ.js +68 -0
- package/dist/chunk-KCI73LIZ.js.map +1 -0
- package/dist/chunk-KDS62BXD.js +68 -0
- package/dist/chunk-KDS62BXD.js.map +1 -0
- package/dist/chunk-KLNZW4GO.js +68 -0
- package/dist/chunk-KLNZW4GO.js.map +1 -0
- package/dist/chunk-KXBE5FQ7.js +68 -0
- package/dist/chunk-KXBE5FQ7.js.map +1 -0
- package/dist/chunk-KZDIZ2FL.js +68 -0
- package/dist/chunk-KZDIZ2FL.js.map +1 -0
- package/dist/chunk-LDZC2QYF.js +68 -0
- package/dist/chunk-LDZC2QYF.js.map +1 -0
- package/dist/chunk-LNKOIFH4.js +68 -0
- package/dist/chunk-LNKOIFH4.js.map +1 -0
- package/dist/chunk-MVMZS3PQ.js +68 -0
- package/dist/chunk-MVMZS3PQ.js.map +1 -0
- package/dist/chunk-NIED6GXO.js +68 -0
- package/dist/chunk-NIED6GXO.js.map +1 -0
- package/dist/chunk-NKTZOR54.js +68 -0
- package/dist/chunk-NKTZOR54.js.map +1 -0
- package/dist/chunk-OCQYO6PW.js +68 -0
- package/dist/chunk-OCQYO6PW.js.map +1 -0
- package/dist/chunk-PJAJD5VJ.js +68 -0
- package/dist/chunk-PJAJD5VJ.js.map +1 -0
- package/dist/chunk-PN567MCL.js +68 -0
- package/dist/chunk-PN567MCL.js.map +1 -0
- package/dist/chunk-QEBXRSTH.js +68 -0
- package/dist/chunk-QEBXRSTH.js.map +1 -0
- package/dist/chunk-QTKMLEEM.js +68 -0
- package/dist/chunk-QTKMLEEM.js.map +1 -0
- package/dist/chunk-RN4ZII2I.js +68 -0
- package/dist/chunk-RN4ZII2I.js.map +1 -0
- package/dist/chunk-RTCJ5B7S.js +68 -0
- package/dist/chunk-RTCJ5B7S.js.map +1 -0
- package/dist/chunk-SG2ACM7O.js +68 -0
- package/dist/chunk-SG2ACM7O.js.map +1 -0
- package/dist/chunk-SORTCBSJ.js +68 -0
- package/dist/chunk-SORTCBSJ.js.map +1 -0
- package/dist/chunk-TXY7LBYM.js +68 -0
- package/dist/chunk-TXY7LBYM.js.map +1 -0
- package/dist/chunk-UIS6TMM5.js +68 -0
- package/dist/chunk-UIS6TMM5.js.map +1 -0
- package/dist/chunk-VOXUB4AT.js +68 -0
- package/dist/chunk-VOXUB4AT.js.map +1 -0
- package/dist/chunk-VUSSQAEI.js +68 -0
- package/dist/chunk-VUSSQAEI.js.map +1 -0
- package/dist/chunk-WAU2FYDY.js +68 -0
- package/dist/chunk-WAU2FYDY.js.map +1 -0
- package/dist/chunk-YRGKMQP4.js +68 -0
- package/dist/chunk-YRGKMQP4.js.map +1 -0
- package/dist/chunk-Z3XCYZN4.js +68 -0
- package/dist/chunk-Z3XCYZN4.js.map +1 -0
- package/dist/chunk-Z6XLNVF3.js +68 -0
- package/dist/chunk-Z6XLNVF3.js.map +1 -0
- package/dist/chunk-ZQJDUTSK.js +68 -0
- package/dist/chunk-ZQJDUTSK.js.map +1 -0
- package/dist/chunk-ZTYINGDT.js +68 -0
- package/dist/chunk-ZTYINGDT.js.map +1 -0
- package/dist/index.d.ts +185 -23
- package/dist/index.js +359 -3
- package/dist/index.js.map +1 -1
- package/dist/presets/_briefs/airbnb.d.ts +3 -0
- package/dist/presets/_briefs/airbnb.js +551 -0
- package/dist/presets/_briefs/airbnb.js.map +1 -0
- package/dist/presets/_briefs/airtable.d.ts +3 -0
- package/dist/presets/_briefs/airtable.js +560 -0
- package/dist/presets/_briefs/airtable.js.map +1 -0
- package/dist/presets/_briefs/apple.d.ts +3 -0
- package/dist/presets/_briefs/apple.js +568 -0
- package/dist/presets/_briefs/apple.js.map +1 -0
- package/dist/presets/_briefs/binance.d.ts +3 -0
- package/dist/presets/_briefs/binance.js +640 -0
- package/dist/presets/_briefs/binance.js.map +1 -0
- package/dist/presets/_briefs/bmw-m.d.ts +3 -0
- package/dist/presets/_briefs/bmw-m.js +509 -0
- package/dist/presets/_briefs/bmw-m.js.map +1 -0
- package/dist/presets/_briefs/bmw.d.ts +3 -0
- package/dist/presets/_briefs/bmw.js +550 -0
- package/dist/presets/_briefs/bmw.js.map +1 -0
- package/dist/presets/_briefs/bugatti.d.ts +3 -0
- package/dist/presets/_briefs/bugatti.js +460 -0
- package/dist/presets/_briefs/bugatti.js.map +1 -0
- package/dist/presets/_briefs/cal.d.ts +3 -0
- package/dist/presets/_briefs/cal.js +548 -0
- package/dist/presets/_briefs/cal.js.map +1 -0
- package/dist/presets/_briefs/claude.d.ts +3 -0
- package/dist/presets/_briefs/claude.js +595 -0
- package/dist/presets/_briefs/claude.js.map +1 -0
- package/dist/presets/_briefs/clay.d.ts +3 -0
- package/dist/presets/_briefs/clay.js +547 -0
- package/dist/presets/_briefs/clay.js.map +1 -0
- package/dist/presets/_briefs/clickhouse.d.ts +3 -0
- package/dist/presets/_briefs/clickhouse.js +550 -0
- package/dist/presets/_briefs/clickhouse.js.map +1 -0
- package/dist/presets/_briefs/cohere.d.ts +3 -0
- package/dist/presets/_briefs/cohere.js +457 -0
- package/dist/presets/_briefs/cohere.js.map +1 -0
- package/dist/presets/_briefs/coinbase.d.ts +3 -0
- package/dist/presets/_briefs/coinbase.js +576 -0
- package/dist/presets/_briefs/coinbase.js.map +1 -0
- package/dist/presets/_briefs/composio.d.ts +3 -0
- package/dist/presets/_briefs/composio.js +512 -0
- package/dist/presets/_briefs/composio.js.map +1 -0
- package/dist/presets/_briefs/cursor.d.ts +3 -0
- package/dist/presets/_briefs/cursor.js +543 -0
- package/dist/presets/_briefs/cursor.js.map +1 -0
- package/dist/presets/_briefs/elevenlabs.d.ts +3 -0
- package/dist/presets/_briefs/elevenlabs.js +510 -0
- package/dist/presets/_briefs/elevenlabs.js.map +1 -0
- package/dist/presets/_briefs/expo.d.ts +3 -0
- package/dist/presets/_briefs/expo.js +532 -0
- package/dist/presets/_briefs/expo.js.map +1 -0
- package/dist/presets/_briefs/ferrari.d.ts +3 -0
- package/dist/presets/_briefs/ferrari.js +537 -0
- package/dist/presets/_briefs/ferrari.js.map +1 -0
- package/dist/presets/_briefs/figma.d.ts +3 -0
- package/dist/presets/_briefs/figma.js +226 -0
- package/dist/presets/_briefs/figma.js.map +1 -0
- package/dist/presets/_briefs/framer.d.ts +3 -0
- package/dist/presets/_briefs/framer.js +252 -0
- package/dist/presets/_briefs/framer.js.map +1 -0
- package/dist/presets/_briefs/hashicorp.d.ts +3 -0
- package/dist/presets/_briefs/hashicorp.js +284 -0
- package/dist/presets/_briefs/hashicorp.js.map +1 -0
- package/dist/presets/_briefs/ibm.d.ts +3 -0
- package/dist/presets/_briefs/ibm.js +338 -0
- package/dist/presets/_briefs/ibm.js.map +1 -0
- package/dist/presets/_briefs/intercom.d.ts +3 -0
- package/dist/presets/_briefs/intercom.js +152 -0
- package/dist/presets/_briefs/intercom.js.map +1 -0
- package/dist/presets/_briefs/kraken.d.ts +3 -0
- package/dist/presets/_briefs/kraken.js +131 -0
- package/dist/presets/_briefs/kraken.js.map +1 -0
- package/dist/presets/_briefs/lamborghini.d.ts +3 -0
- package/dist/presets/_briefs/lamborghini.js +294 -0
- package/dist/presets/_briefs/lamborghini.js.map +1 -0
- package/dist/presets/_briefs/linear.d.ts +3 -0
- package/dist/presets/_briefs/linear.js +373 -0
- package/dist/presets/_briefs/linear.js.map +1 -0
- package/dist/presets/_briefs/lovable.d.ts +3 -0
- package/dist/presets/_briefs/lovable.js +304 -0
- package/dist/presets/_briefs/lovable.js.map +1 -0
- package/dist/presets/_briefs/mastercard.d.ts +3 -0
- package/dist/presets/_briefs/mastercard.js +371 -0
- package/dist/presets/_briefs/mastercard.js.map +1 -0
- package/dist/presets/_briefs/meta.d.ts +3 -0
- package/dist/presets/_briefs/meta.js +372 -0
- package/dist/presets/_briefs/meta.js.map +1 -0
- package/dist/presets/_briefs/minimax.d.ts +3 -0
- package/dist/presets/_briefs/minimax.js +263 -0
- package/dist/presets/_briefs/minimax.js.map +1 -0
- package/dist/presets/_briefs/mintlify.d.ts +3 -0
- package/dist/presets/_briefs/mintlify.js +332 -0
- package/dist/presets/_briefs/mintlify.js.map +1 -0
- package/dist/presets/_briefs/miro.d.ts +3 -0
- package/dist/presets/_briefs/miro.js +114 -0
- package/dist/presets/_briefs/miro.js.map +1 -0
- package/dist/presets/_briefs/mistral.d.ts +3 -0
- package/dist/presets/_briefs/mistral.js +267 -0
- package/dist/presets/_briefs/mistral.js.map +1 -0
- package/dist/presets/_briefs/mongodb.d.ts +3 -0
- package/dist/presets/_briefs/mongodb.js +272 -0
- package/dist/presets/_briefs/mongodb.js.map +1 -0
- package/dist/presets/_briefs/nike.d.ts +3 -0
- package/dist/presets/_briefs/nike.js +369 -0
- package/dist/presets/_briefs/nike.js.map +1 -0
- package/dist/presets/_briefs/notion.d.ts +3 -0
- package/dist/presets/_briefs/notion.js +315 -0
- package/dist/presets/_briefs/notion.js.map +1 -0
- package/dist/presets/_briefs/nvidia.d.ts +3 -0
- package/dist/presets/_briefs/nvidia.js +299 -0
- package/dist/presets/_briefs/nvidia.js.map +1 -0
- package/dist/presets/_briefs/ollama.d.ts +3 -0
- package/dist/presets/_briefs/ollama.js +273 -0
- package/dist/presets/_briefs/ollama.js.map +1 -0
- package/dist/presets/_briefs/opencode.d.ts +3 -0
- package/dist/presets/_briefs/opencode.js +287 -0
- package/dist/presets/_briefs/opencode.js.map +1 -0
- package/dist/presets/_briefs/pinterest.d.ts +3 -0
- package/dist/presets/_briefs/pinterest.js +236 -0
- package/dist/presets/_briefs/pinterest.js.map +1 -0
- package/dist/presets/_briefs/playstation.d.ts +3 -0
- package/dist/presets/_briefs/playstation.js +370 -0
- package/dist/presets/_briefs/playstation.js.map +1 -0
- package/dist/presets/_briefs/posthog.d.ts +3 -0
- package/dist/presets/_briefs/posthog.js +262 -0
- package/dist/presets/_briefs/posthog.js.map +1 -0
- package/dist/presets/_briefs/raycast.d.ts +3 -0
- package/dist/presets/_briefs/raycast.js +274 -0
- package/dist/presets/_briefs/raycast.js.map +1 -0
- package/dist/presets/_briefs/renault.d.ts +3 -0
- package/dist/presets/_briefs/renault.js +317 -0
- package/dist/presets/_briefs/renault.js.map +1 -0
- package/dist/presets/_briefs/replicate.d.ts +3 -0
- package/dist/presets/_briefs/replicate.js +267 -0
- package/dist/presets/_briefs/replicate.js.map +1 -0
- package/dist/presets/_briefs/resend.d.ts +3 -0
- package/dist/presets/_briefs/resend.js +309 -0
- package/dist/presets/_briefs/resend.js.map +1 -0
- package/dist/presets/_briefs/revolut.d.ts +3 -0
- package/dist/presets/_briefs/revolut.js +191 -0
- package/dist/presets/_briefs/revolut.js.map +1 -0
- package/dist/presets/_briefs/runwayml.d.ts +3 -0
- package/dist/presets/_briefs/runwayml.js +250 -0
- package/dist/presets/_briefs/runwayml.js.map +1 -0
- package/dist/presets/_briefs/sanity.d.ts +3 -0
- package/dist/presets/_briefs/sanity.js +363 -0
- package/dist/presets/_briefs/sanity.js.map +1 -0
- package/dist/presets/_briefs/sentry.d.ts +3 -0
- package/dist/presets/_briefs/sentry.js +268 -0
- package/dist/presets/_briefs/sentry.js.map +1 -0
- package/dist/presets/_briefs/shopify.d.ts +3 -0
- package/dist/presets/_briefs/shopify.js +356 -0
- package/dist/presets/_briefs/shopify.js.map +1 -0
- package/dist/presets/_briefs/slack.d.ts +3 -0
- package/dist/presets/_briefs/slack.js +221 -0
- package/dist/presets/_briefs/slack.js.map +1 -0
- package/dist/presets/_briefs/spacex.d.ts +3 -0
- package/dist/presets/_briefs/spacex.js +200 -0
- package/dist/presets/_briefs/spacex.js.map +1 -0
- package/dist/presets/_briefs/spotify.d.ts +3 -0
- package/dist/presets/_briefs/spotify.js +252 -0
- package/dist/presets/_briefs/spotify.js.map +1 -0
- package/dist/presets/_briefs/starbucks.d.ts +3 -0
- package/dist/presets/_briefs/starbucks.js +586 -0
- package/dist/presets/_briefs/starbucks.js.map +1 -0
- package/dist/presets/_briefs/stripe.d.ts +3 -0
- package/dist/presets/_briefs/stripe.js +328 -0
- package/dist/presets/_briefs/stripe.js.map +1 -0
- package/dist/presets/_briefs/supabase.d.ts +3 -0
- package/dist/presets/_briefs/supabase.js +261 -0
- package/dist/presets/_briefs/supabase.js.map +1 -0
- package/dist/presets/_briefs/superhuman.d.ts +3 -0
- package/dist/presets/_briefs/superhuman.js +258 -0
- package/dist/presets/_briefs/superhuman.js.map +1 -0
- package/dist/presets/_briefs/tesla.d.ts +3 -0
- package/dist/presets/_briefs/tesla.js +292 -0
- package/dist/presets/_briefs/tesla.js.map +1 -0
- package/dist/presets/_briefs/theverge.d.ts +3 -0
- package/dist/presets/_briefs/theverge.js +345 -0
- package/dist/presets/_briefs/theverge.js.map +1 -0
- package/dist/presets/_briefs/together.d.ts +3 -0
- package/dist/presets/_briefs/together.js +269 -0
- package/dist/presets/_briefs/together.js.map +1 -0
- package/dist/presets/_briefs/uber.d.ts +3 -0
- package/dist/presets/_briefs/uber.js +301 -0
- package/dist/presets/_briefs/uber.js.map +1 -0
- package/dist/presets/_briefs/vercel.d.ts +3 -0
- package/dist/presets/_briefs/vercel.js +316 -0
- package/dist/presets/_briefs/vercel.js.map +1 -0
- package/dist/presets/_briefs/vodafone.d.ts +3 -0
- package/dist/presets/_briefs/vodafone.js +429 -0
- package/dist/presets/_briefs/vodafone.js.map +1 -0
- package/dist/presets/_briefs/voltagent.d.ts +3 -0
- package/dist/presets/_briefs/voltagent.js +329 -0
- package/dist/presets/_briefs/voltagent.js.map +1 -0
- package/dist/presets/_briefs/warp.d.ts +3 -0
- package/dist/presets/_briefs/warp.js +259 -0
- package/dist/presets/_briefs/warp.js.map +1 -0
- package/dist/presets/_briefs/webflow.d.ts +3 -0
- package/dist/presets/_briefs/webflow.js +98 -0
- package/dist/presets/_briefs/webflow.js.map +1 -0
- package/dist/presets/_briefs/wired.d.ts +3 -0
- package/dist/presets/_briefs/wired.js +284 -0
- package/dist/presets/_briefs/wired.js.map +1 -0
- package/dist/presets/_briefs/wise.d.ts +3 -0
- package/dist/presets/_briefs/wise.js +179 -0
- package/dist/presets/_briefs/wise.js.map +1 -0
- package/dist/presets/_briefs/x.d.ts +3 -0
- package/dist/presets/_briefs/x.js +263 -0
- package/dist/presets/_briefs/x.js.map +1 -0
- package/dist/presets/_briefs/zapier.d.ts +3 -0
- package/dist/presets/_briefs/zapier.js +334 -0
- package/dist/presets/_briefs/zapier.js.map +1 -0
- package/dist/presets/airbnb.d.ts +5 -0
- package/dist/presets/airbnb.js +7 -0
- package/dist/presets/airbnb.js.map +1 -0
- package/dist/presets/airtable.d.ts +5 -0
- package/dist/presets/airtable.js +7 -0
- package/dist/presets/airtable.js.map +1 -0
- package/dist/presets/apple.d.ts +5 -0
- package/dist/presets/apple.js +7 -0
- package/dist/presets/apple.js.map +1 -0
- package/dist/presets/binance.d.ts +5 -0
- package/dist/presets/binance.js +7 -0
- package/dist/presets/binance.js.map +1 -0
- package/dist/presets/bmw-m.d.ts +5 -0
- package/dist/presets/bmw-m.js +7 -0
- package/dist/presets/bmw-m.js.map +1 -0
- package/dist/presets/bmw.d.ts +5 -0
- package/dist/presets/bmw.js +7 -0
- package/dist/presets/bmw.js.map +1 -0
- package/dist/presets/bugatti.d.ts +5 -0
- package/dist/presets/bugatti.js +7 -0
- package/dist/presets/bugatti.js.map +1 -0
- package/dist/presets/cal.d.ts +5 -0
- package/dist/presets/cal.js +7 -0
- package/dist/presets/cal.js.map +1 -0
- package/dist/presets/claude.d.ts +5 -0
- package/dist/presets/claude.js +7 -0
- package/dist/presets/claude.js.map +1 -0
- package/dist/presets/clay.d.ts +5 -0
- package/dist/presets/clay.js +7 -0
- package/dist/presets/clay.js.map +1 -0
- package/dist/presets/clickhouse.d.ts +5 -0
- package/dist/presets/clickhouse.js +7 -0
- package/dist/presets/clickhouse.js.map +1 -0
- package/dist/presets/cohere.d.ts +5 -0
- package/dist/presets/cohere.js +7 -0
- package/dist/presets/cohere.js.map +1 -0
- package/dist/presets/coinbase.d.ts +5 -0
- package/dist/presets/coinbase.js +7 -0
- package/dist/presets/coinbase.js.map +1 -0
- package/dist/presets/composio.d.ts +5 -0
- package/dist/presets/composio.js +7 -0
- package/dist/presets/composio.js.map +1 -0
- package/dist/presets/cursor.d.ts +5 -0
- package/dist/presets/cursor.js +7 -0
- package/dist/presets/cursor.js.map +1 -0
- package/dist/presets/elevenlabs.d.ts +5 -0
- package/dist/presets/elevenlabs.js +7 -0
- package/dist/presets/elevenlabs.js.map +1 -0
- package/dist/presets/expo.d.ts +5 -0
- package/dist/presets/expo.js +7 -0
- package/dist/presets/expo.js.map +1 -0
- package/dist/presets/ferrari.d.ts +5 -0
- package/dist/presets/ferrari.js +7 -0
- package/dist/presets/ferrari.js.map +1 -0
- package/dist/presets/figma.d.ts +5 -0
- package/dist/presets/figma.js +7 -0
- package/dist/presets/figma.js.map +1 -0
- package/dist/presets/framer.d.ts +5 -0
- package/dist/presets/framer.js +7 -0
- package/dist/presets/framer.js.map +1 -0
- package/dist/presets/hashicorp.d.ts +5 -0
- package/dist/presets/hashicorp.js +7 -0
- package/dist/presets/hashicorp.js.map +1 -0
- package/dist/presets/ibm.d.ts +5 -0
- package/dist/presets/ibm.js +7 -0
- package/dist/presets/ibm.js.map +1 -0
- package/dist/presets/index.d.ts +94 -0
- package/dist/presets/index.js +297 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/intercom.d.ts +5 -0
- package/dist/presets/intercom.js +7 -0
- package/dist/presets/intercom.js.map +1 -0
- package/dist/presets/kraken.d.ts +5 -0
- package/dist/presets/kraken.js +7 -0
- package/dist/presets/kraken.js.map +1 -0
- package/dist/presets/lamborghini.d.ts +5 -0
- package/dist/presets/lamborghini.js +7 -0
- package/dist/presets/lamborghini.js.map +1 -0
- package/dist/presets/linear.d.ts +5 -0
- package/dist/presets/linear.js +7 -0
- package/dist/presets/linear.js.map +1 -0
- package/dist/presets/lovable.d.ts +5 -0
- package/dist/presets/lovable.js +7 -0
- package/dist/presets/lovable.js.map +1 -0
- package/dist/presets/mastercard.d.ts +5 -0
- package/dist/presets/mastercard.js +7 -0
- package/dist/presets/mastercard.js.map +1 -0
- package/dist/presets/meta.d.ts +5 -0
- package/dist/presets/meta.js +7 -0
- package/dist/presets/meta.js.map +1 -0
- package/dist/presets/minimax.d.ts +5 -0
- package/dist/presets/minimax.js +7 -0
- package/dist/presets/minimax.js.map +1 -0
- package/dist/presets/mintlify.d.ts +5 -0
- package/dist/presets/mintlify.js +7 -0
- package/dist/presets/mintlify.js.map +1 -0
- package/dist/presets/miro.d.ts +5 -0
- package/dist/presets/miro.js +7 -0
- package/dist/presets/miro.js.map +1 -0
- package/dist/presets/mistral.d.ts +5 -0
- package/dist/presets/mistral.js +7 -0
- package/dist/presets/mistral.js.map +1 -0
- package/dist/presets/mongodb.d.ts +5 -0
- package/dist/presets/mongodb.js +7 -0
- package/dist/presets/mongodb.js.map +1 -0
- package/dist/presets/nike.d.ts +5 -0
- package/dist/presets/nike.js +7 -0
- package/dist/presets/nike.js.map +1 -0
- package/dist/presets/notion.d.ts +5 -0
- package/dist/presets/notion.js +7 -0
- package/dist/presets/notion.js.map +1 -0
- package/dist/presets/nvidia.d.ts +5 -0
- package/dist/presets/nvidia.js +7 -0
- package/dist/presets/nvidia.js.map +1 -0
- package/dist/presets/ollama.d.ts +5 -0
- package/dist/presets/ollama.js +7 -0
- package/dist/presets/ollama.js.map +1 -0
- package/dist/presets/opencode.d.ts +5 -0
- package/dist/presets/opencode.js +7 -0
- package/dist/presets/opencode.js.map +1 -0
- package/dist/presets/pinterest.d.ts +5 -0
- package/dist/presets/pinterest.js +7 -0
- package/dist/presets/pinterest.js.map +1 -0
- package/dist/presets/playstation.d.ts +5 -0
- package/dist/presets/playstation.js +7 -0
- package/dist/presets/playstation.js.map +1 -0
- package/dist/presets/posthog.d.ts +5 -0
- package/dist/presets/posthog.js +7 -0
- package/dist/presets/posthog.js.map +1 -0
- package/dist/presets/raycast.d.ts +5 -0
- package/dist/presets/raycast.js +7 -0
- package/dist/presets/raycast.js.map +1 -0
- package/dist/presets/renault.d.ts +5 -0
- package/dist/presets/renault.js +7 -0
- package/dist/presets/renault.js.map +1 -0
- package/dist/presets/replicate.d.ts +5 -0
- package/dist/presets/replicate.js +7 -0
- package/dist/presets/replicate.js.map +1 -0
- package/dist/presets/resend.d.ts +5 -0
- package/dist/presets/resend.js +7 -0
- package/dist/presets/resend.js.map +1 -0
- package/dist/presets/revolut.d.ts +5 -0
- package/dist/presets/revolut.js +7 -0
- package/dist/presets/revolut.js.map +1 -0
- package/dist/presets/runwayml.d.ts +5 -0
- package/dist/presets/runwayml.js +7 -0
- package/dist/presets/runwayml.js.map +1 -0
- package/dist/presets/sanity.d.ts +5 -0
- package/dist/presets/sanity.js +7 -0
- package/dist/presets/sanity.js.map +1 -0
- package/dist/presets/sentry.d.ts +5 -0
- package/dist/presets/sentry.js +7 -0
- package/dist/presets/sentry.js.map +1 -0
- package/dist/presets/shopify.d.ts +5 -0
- package/dist/presets/shopify.js +7 -0
- package/dist/presets/shopify.js.map +1 -0
- package/dist/presets/slack.d.ts +5 -0
- package/dist/presets/slack.js +7 -0
- package/dist/presets/slack.js.map +1 -0
- package/dist/presets/spacex.d.ts +5 -0
- package/dist/presets/spacex.js +7 -0
- package/dist/presets/spacex.js.map +1 -0
- package/dist/presets/spotify.d.ts +5 -0
- package/dist/presets/spotify.js +7 -0
- package/dist/presets/spotify.js.map +1 -0
- package/dist/presets/starbucks.d.ts +5 -0
- package/dist/presets/starbucks.js +7 -0
- package/dist/presets/starbucks.js.map +1 -0
- package/dist/presets/stripe.d.ts +5 -0
- package/dist/presets/stripe.js +7 -0
- package/dist/presets/stripe.js.map +1 -0
- package/dist/presets/supabase.d.ts +5 -0
- package/dist/presets/supabase.js +7 -0
- package/dist/presets/supabase.js.map +1 -0
- package/dist/presets/superhuman.d.ts +5 -0
- package/dist/presets/superhuman.js +7 -0
- package/dist/presets/superhuman.js.map +1 -0
- package/dist/presets/tesla.d.ts +5 -0
- package/dist/presets/tesla.js +7 -0
- package/dist/presets/tesla.js.map +1 -0
- package/dist/presets/theverge.d.ts +5 -0
- package/dist/presets/theverge.js +7 -0
- package/dist/presets/theverge.js.map +1 -0
- package/dist/presets/together.d.ts +5 -0
- package/dist/presets/together.js +7 -0
- package/dist/presets/together.js.map +1 -0
- package/dist/presets/uber.d.ts +5 -0
- package/dist/presets/uber.js +7 -0
- package/dist/presets/uber.js.map +1 -0
- package/dist/presets/vercel.d.ts +5 -0
- package/dist/presets/vercel.js +7 -0
- package/dist/presets/vercel.js.map +1 -0
- package/dist/presets/vodafone.d.ts +5 -0
- package/dist/presets/vodafone.js +7 -0
- package/dist/presets/vodafone.js.map +1 -0
- package/dist/presets/voltagent.d.ts +5 -0
- package/dist/presets/voltagent.js +7 -0
- package/dist/presets/voltagent.js.map +1 -0
- package/dist/presets/warp.d.ts +5 -0
- package/dist/presets/warp.js +7 -0
- package/dist/presets/warp.js.map +1 -0
- package/dist/presets/webflow.d.ts +5 -0
- package/dist/presets/webflow.js +7 -0
- package/dist/presets/webflow.js.map +1 -0
- package/dist/presets/wired.d.ts +5 -0
- package/dist/presets/wired.js +7 -0
- package/dist/presets/wired.js.map +1 -0
- package/dist/presets/wise.d.ts +5 -0
- package/dist/presets/wise.js +7 -0
- package/dist/presets/wise.js.map +1 -0
- package/dist/presets/x.d.ts +5 -0
- package/dist/presets/x.js +7 -0
- package/dist/presets/x.js.map +1 -0
- package/dist/presets/zapier.d.ts +5 -0
- package/dist/presets/zapier.js +7 -0
- package/dist/presets/zapier.js.map +1 -0
- package/package.json +17 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,59 +1,221 @@
|
|
|
1
|
-
import { Theme } from '@hex-core/registry';
|
|
1
|
+
import { ThemeCategory, Theme } from '@hex-core/registry';
|
|
2
2
|
export { emberTheme, midnightTheme } from '@hex-core/tokens';
|
|
3
|
+
export { loadThemeBrief, presetSlugs, presetsByCategory, voltagentPresets } from './presets/index.js';
|
|
4
|
+
export { airbnbTheme } from './presets/airbnb.js';
|
|
5
|
+
export { airtableTheme } from './presets/airtable.js';
|
|
6
|
+
export { appleTheme } from './presets/apple.js';
|
|
7
|
+
export { binanceTheme } from './presets/binance.js';
|
|
8
|
+
export { bmwMTheme } from './presets/bmw-m.js';
|
|
9
|
+
export { bmwTheme } from './presets/bmw.js';
|
|
10
|
+
export { bugattiTheme } from './presets/bugatti.js';
|
|
11
|
+
export { calTheme } from './presets/cal.js';
|
|
12
|
+
export { claudeTheme } from './presets/claude.js';
|
|
13
|
+
export { clayTheme } from './presets/clay.js';
|
|
14
|
+
export { clickhouseTheme } from './presets/clickhouse.js';
|
|
15
|
+
export { cohereTheme } from './presets/cohere.js';
|
|
16
|
+
export { coinbaseTheme } from './presets/coinbase.js';
|
|
17
|
+
export { composioTheme } from './presets/composio.js';
|
|
18
|
+
export { cursorTheme } from './presets/cursor.js';
|
|
19
|
+
export { elevenlabsTheme } from './presets/elevenlabs.js';
|
|
20
|
+
export { expoTheme } from './presets/expo.js';
|
|
21
|
+
export { ferrariTheme } from './presets/ferrari.js';
|
|
22
|
+
export { figmaTheme } from './presets/figma.js';
|
|
23
|
+
export { framerTheme } from './presets/framer.js';
|
|
24
|
+
export { hashicorpTheme } from './presets/hashicorp.js';
|
|
25
|
+
export { ibmTheme } from './presets/ibm.js';
|
|
26
|
+
export { intercomTheme } from './presets/intercom.js';
|
|
27
|
+
export { krakenTheme } from './presets/kraken.js';
|
|
28
|
+
export { lamborghiniTheme } from './presets/lamborghini.js';
|
|
29
|
+
export { linearTheme } from './presets/linear.js';
|
|
30
|
+
export { lovableTheme } from './presets/lovable.js';
|
|
31
|
+
export { mastercardTheme } from './presets/mastercard.js';
|
|
32
|
+
export { metaTheme } from './presets/meta.js';
|
|
33
|
+
export { minimaxTheme } from './presets/minimax.js';
|
|
34
|
+
export { mintlifyTheme } from './presets/mintlify.js';
|
|
35
|
+
export { miroTheme } from './presets/miro.js';
|
|
36
|
+
export { mistralTheme } from './presets/mistral.js';
|
|
37
|
+
export { mongodbTheme } from './presets/mongodb.js';
|
|
38
|
+
export { nikeTheme } from './presets/nike.js';
|
|
39
|
+
export { notionTheme } from './presets/notion.js';
|
|
40
|
+
export { nvidiaTheme } from './presets/nvidia.js';
|
|
41
|
+
export { ollamaTheme } from './presets/ollama.js';
|
|
42
|
+
export { opencodeTheme } from './presets/opencode.js';
|
|
43
|
+
export { pinterestTheme } from './presets/pinterest.js';
|
|
44
|
+
export { playstationTheme } from './presets/playstation.js';
|
|
45
|
+
export { posthogTheme } from './presets/posthog.js';
|
|
46
|
+
export { raycastTheme } from './presets/raycast.js';
|
|
47
|
+
export { renaultTheme } from './presets/renault.js';
|
|
48
|
+
export { replicateTheme } from './presets/replicate.js';
|
|
49
|
+
export { resendTheme } from './presets/resend.js';
|
|
50
|
+
export { revolutTheme } from './presets/revolut.js';
|
|
51
|
+
export { runwaymlTheme } from './presets/runwayml.js';
|
|
52
|
+
export { sanityTheme } from './presets/sanity.js';
|
|
53
|
+
export { sentryTheme } from './presets/sentry.js';
|
|
54
|
+
export { shopifyTheme } from './presets/shopify.js';
|
|
55
|
+
export { slackTheme } from './presets/slack.js';
|
|
56
|
+
export { spacexTheme } from './presets/spacex.js';
|
|
57
|
+
export { spotifyTheme } from './presets/spotify.js';
|
|
58
|
+
export { starbucksTheme } from './presets/starbucks.js';
|
|
59
|
+
export { stripeTheme } from './presets/stripe.js';
|
|
60
|
+
export { supabaseTheme } from './presets/supabase.js';
|
|
61
|
+
export { superhumanTheme } from './presets/superhuman.js';
|
|
62
|
+
export { teslaTheme } from './presets/tesla.js';
|
|
63
|
+
export { thevergeTheme } from './presets/theverge.js';
|
|
64
|
+
export { togetherTheme } from './presets/together.js';
|
|
65
|
+
export { uberTheme } from './presets/uber.js';
|
|
66
|
+
export { vercelTheme } from './presets/vercel.js';
|
|
67
|
+
export { vodafoneTheme } from './presets/vodafone.js';
|
|
68
|
+
export { voltagentTheme } from './presets/voltagent.js';
|
|
69
|
+
export { warpTheme } from './presets/warp.js';
|
|
70
|
+
export { webflowTheme } from './presets/webflow.js';
|
|
71
|
+
export { wiredTheme } from './presets/wired.js';
|
|
72
|
+
export { wiseTheme } from './presets/wise.js';
|
|
73
|
+
export { xTheme } from './presets/x.js';
|
|
74
|
+
export { zapierTheme } from './presets/zapier.js';
|
|
3
75
|
|
|
4
76
|
/**
|
|
5
|
-
* @hex-core/themes — premium theme catalog and
|
|
77
|
+
* @hex-core/themes — premium theme catalog and brand-derived presets.
|
|
6
78
|
*
|
|
7
79
|
* This package establishes a separate publish/version surface for theme
|
|
8
80
|
* presets so the bundled `@hex-core/tokens` package can stay focused on the
|
|
9
81
|
* single canonical default theme + the transformer functions.
|
|
10
82
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* `monochrome-strict`) will land here directly without bumping `tokens`.
|
|
16
|
-
*
|
|
17
|
-
* The default theme remains in `@hex-core/tokens` since it is the canonical
|
|
18
|
-
* baseline that the transformers (themeToCss, themeToScopedRuntimeCss,
|
|
19
|
-
* themeToFlatJson, themeToTailwindConfig, generateGlobalsCss) operate on.
|
|
83
|
+
* Catalog:
|
|
84
|
+
* - `midnight`, `ember` — first-party premium themes (re-exports from `@hex-core/tokens`)
|
|
85
|
+
* - `voltagent` brand presets — 71 brand-inspired themes (Tesla, Stripe, Linear, …)
|
|
86
|
+
* auto-generated from the MIT-licensed voltagent/awesome-design-md briefs
|
|
20
87
|
*
|
|
21
88
|
* @example
|
|
22
89
|
* ```ts
|
|
23
|
-
* import {
|
|
90
|
+
* import { teslaTheme, listPremiumThemes, extendTheme, searchThemes } from "@hex-core/themes";
|
|
24
91
|
* import { themeToScopedRuntimeCss } from "@hex-core/tokens";
|
|
25
92
|
*
|
|
26
|
-
* const css = themeToScopedRuntimeCss(
|
|
27
|
-
*
|
|
93
|
+
* const css = themeToScopedRuntimeCss(teslaTheme, { mode: "dark" });
|
|
94
|
+
*
|
|
95
|
+
* const myTesla = extendTheme(teslaTheme, {
|
|
96
|
+
* name: "my-tesla",
|
|
97
|
+
* tokens: { light: { primary: { value: "0 100% 50%", type: "color" } } },
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* const fintech = searchThemes({ category: "fintech" });
|
|
28
101
|
* ```
|
|
29
102
|
*/
|
|
30
103
|
|
|
31
104
|
/**
|
|
32
|
-
* The full set of
|
|
33
|
-
*
|
|
34
|
-
*
|
|
105
|
+
* The full set of themes shipped by this package, keyed by slug. Includes:
|
|
106
|
+
* - First-party premium themes: `midnight`, `ember`
|
|
107
|
+
* - 71 voltagent brand-derived presets (e.g. `tesla`, `stripe`, `linear`)
|
|
108
|
+
*
|
|
109
|
+
* Studio's theme picker iterates this map directly, so every entry shows up
|
|
110
|
+
* automatically without barrel-side wiring.
|
|
35
111
|
*/
|
|
36
112
|
declare const premiumThemes: Record<string, Theme>;
|
|
37
113
|
/**
|
|
38
|
-
* Retrieve a premium theme by
|
|
114
|
+
* Retrieve a premium theme by slug.
|
|
39
115
|
*
|
|
40
|
-
* @param name -
|
|
41
|
-
* @returns The matching Theme object, or `undefined` if the
|
|
116
|
+
* @param name - Theme slug (e.g. `"midnight"`, `"tesla"`, `"stripe"`).
|
|
117
|
+
* @returns The matching Theme object, or `undefined` if the slug is unknown.
|
|
42
118
|
*/
|
|
43
119
|
declare function getPremiumTheme(name: string): Theme | undefined;
|
|
44
120
|
/**
|
|
45
|
-
* List metadata for every
|
|
121
|
+
* List metadata for every theme in the catalog.
|
|
46
122
|
*
|
|
47
123
|
* Mirrors the shape of `listThemes()` from `@hex-core/tokens` so studios and
|
|
48
124
|
* theme switchers can drive both catalogs through the same UI without
|
|
49
125
|
* adapter code.
|
|
50
126
|
*
|
|
51
|
-
* @returns Array of `{ name, displayName, description }` summaries.
|
|
127
|
+
* @returns Array of `{ name, displayName, description, category?, tags?, brand? }` summaries.
|
|
52
128
|
*/
|
|
53
129
|
declare function listPremiumThemes(): Array<{
|
|
54
130
|
name: string;
|
|
55
131
|
displayName: string;
|
|
56
132
|
description: string;
|
|
133
|
+
category?: ThemeCategory;
|
|
134
|
+
tags?: string[];
|
|
135
|
+
brand?: string;
|
|
57
136
|
}>;
|
|
137
|
+
/** Filter input for {@link searchThemes}. */
|
|
138
|
+
interface SearchThemesInput {
|
|
139
|
+
/** Case-insensitive substring match against `name` / `displayName` / `description`. */
|
|
140
|
+
query?: string;
|
|
141
|
+
/** Restrict to a single category. */
|
|
142
|
+
category?: ThemeCategory;
|
|
143
|
+
/** All listed tags must be present (intersection match). */
|
|
144
|
+
tags?: string[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Search the full preset catalog by category, tags, or free-text query.
|
|
148
|
+
* The 71 voltagent presets each carry `category` and `tags`; the
|
|
149
|
+
* first-party `midnight` / `ember` themes don't (they pre-date the
|
|
150
|
+
* metadata extension), so they only match via the `query` filter.
|
|
151
|
+
*
|
|
152
|
+
* @param input - Filter criteria; combine for AND semantics.
|
|
153
|
+
* @returns Matching themes, in catalog order.
|
|
154
|
+
*/
|
|
155
|
+
declare function searchThemes(input?: SearchThemesInput): Theme[];
|
|
156
|
+
/**
|
|
157
|
+
* Override input for {@link extendTheme}. Token sets accept partial
|
|
158
|
+
* objects (token slots merge); scalar fields replace the base value
|
|
159
|
+
* when present. `attribution` is full-replacement (not merged) — a
|
|
160
|
+
* consumer rebranding a preset under their own license / URL almost
|
|
161
|
+
* always wants their attribution to fully replace the upstream's.
|
|
162
|
+
* Pass `attribution: undefined` to remove attribution entirely.
|
|
163
|
+
*/
|
|
164
|
+
interface ThemeOverrides {
|
|
165
|
+
name?: string;
|
|
166
|
+
displayName?: string;
|
|
167
|
+
description?: string;
|
|
168
|
+
brand?: string;
|
|
169
|
+
category?: Theme["category"];
|
|
170
|
+
tags?: string[];
|
|
171
|
+
designBrief?: string;
|
|
172
|
+
attribution?: Theme["attribution"];
|
|
173
|
+
/**
|
|
174
|
+
* Per-mode token overrides — token slot keys are an open record
|
|
175
|
+
* (the schema's `tokenSetSchema` uses a catchall), so any subset
|
|
176
|
+
* of slots is valid. Slots not listed fall through from the base.
|
|
177
|
+
*/
|
|
178
|
+
tokens?: {
|
|
179
|
+
light?: Theme["tokens"]["light"];
|
|
180
|
+
dark?: Theme["tokens"]["dark"];
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Compose a custom theme by overlaying overrides on a base preset.
|
|
185
|
+
*
|
|
186
|
+
* Token sets are merged at the slot level: missing slots fall through
|
|
187
|
+
* from the base; overridden slots replace the entire `{ value, type }`
|
|
188
|
+
* record. Scalar fields replace the base when present (including
|
|
189
|
+
* `tags: []` which clears the inherited tag list — explicit empty is
|
|
190
|
+
* intentional, not surprising).
|
|
191
|
+
*
|
|
192
|
+
* `attribution` is FULL-REPLACEMENT (not deep-merged) — a consumer
|
|
193
|
+
* republishing a preset under their own license / brand wants their
|
|
194
|
+
* attribution to land cleanly without the upstream's `brand` /
|
|
195
|
+
* `source` / `url` leaking through. Spread base.attribution yourself
|
|
196
|
+
* if you actually want partial merge.
|
|
197
|
+
*
|
|
198
|
+
* The composed theme is re-validated via `strictThemeSchema` before
|
|
199
|
+
* return, so consumers can't accidentally produce an under-spec'd
|
|
200
|
+
* Theme.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```ts
|
|
204
|
+
* const myTesla = extendTheme(teslaTheme, {
|
|
205
|
+
* name: "my-tesla",
|
|
206
|
+
* displayName: "My Tesla",
|
|
207
|
+
* tokens: {
|
|
208
|
+
* light: { primary: { value: "0 100% 50%", type: "color" } },
|
|
209
|
+
* },
|
|
210
|
+
* });
|
|
211
|
+
* ```
|
|
212
|
+
*
|
|
213
|
+
* @param base - The starting theme (any preset or first-party theme)
|
|
214
|
+
* @param overrides - Partial theme; only specified fields override
|
|
215
|
+
* @returns A new validated Theme that's safe to feed to any transformer
|
|
216
|
+
*/
|
|
217
|
+
declare function extendTheme(base: Theme, overrides?: ThemeOverrides): Theme;
|
|
218
|
+
/** All preset slugs known to this package, including first-party themes. */
|
|
219
|
+
declare const allThemeSlugs: readonly string[];
|
|
58
220
|
|
|
59
|
-
export { getPremiumTheme, listPremiumThemes, premiumThemes };
|
|
221
|
+
export { type SearchThemesInput, type ThemeOverrides, allThemeSlugs, extendTheme, getPremiumTheme, listPremiumThemes, premiumThemes, searchThemes };
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,230 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loadThemeBrief,
|
|
3
|
+
presetSlugs,
|
|
4
|
+
presetsByCategory,
|
|
5
|
+
voltagentPresets
|
|
6
|
+
} from "./chunk-EV4APPVD.js";
|
|
7
|
+
import {
|
|
8
|
+
vodafoneTheme
|
|
9
|
+
} from "./chunk-EZFP45CP.js";
|
|
10
|
+
import {
|
|
11
|
+
voltagentTheme
|
|
12
|
+
} from "./chunk-4QXKFLEQ.js";
|
|
13
|
+
import {
|
|
14
|
+
warpTheme
|
|
15
|
+
} from "./chunk-GAQ6LS55.js";
|
|
16
|
+
import {
|
|
17
|
+
webflowTheme
|
|
18
|
+
} from "./chunk-DLLP5KXF.js";
|
|
19
|
+
import {
|
|
20
|
+
wiredTheme
|
|
21
|
+
} from "./chunk-2LU3ENLP.js";
|
|
22
|
+
import {
|
|
23
|
+
wiseTheme
|
|
24
|
+
} from "./chunk-GSTGBWQZ.js";
|
|
25
|
+
import {
|
|
26
|
+
xTheme
|
|
27
|
+
} from "./chunk-7MPAMAFC.js";
|
|
28
|
+
import {
|
|
29
|
+
zapierTheme
|
|
30
|
+
} from "./chunk-7ZAFN5WE.js";
|
|
31
|
+
import {
|
|
32
|
+
stripeTheme
|
|
33
|
+
} from "./chunk-I267MA2D.js";
|
|
34
|
+
import {
|
|
35
|
+
supabaseTheme
|
|
36
|
+
} from "./chunk-IXKXYUXQ.js";
|
|
37
|
+
import {
|
|
38
|
+
superhumanTheme
|
|
39
|
+
} from "./chunk-5BH5ZMDH.js";
|
|
40
|
+
import {
|
|
41
|
+
teslaTheme
|
|
42
|
+
} from "./chunk-Z3XCYZN4.js";
|
|
43
|
+
import {
|
|
44
|
+
thevergeTheme
|
|
45
|
+
} from "./chunk-IRDDULX7.js";
|
|
46
|
+
import {
|
|
47
|
+
togetherTheme
|
|
48
|
+
} from "./chunk-MVMZS3PQ.js";
|
|
49
|
+
import {
|
|
50
|
+
uberTheme
|
|
51
|
+
} from "./chunk-7OAKNGRU.js";
|
|
52
|
+
import {
|
|
53
|
+
vercelTheme
|
|
54
|
+
} from "./chunk-KCI73LIZ.js";
|
|
55
|
+
import {
|
|
56
|
+
runwaymlTheme
|
|
57
|
+
} from "./chunk-GAOOBTSH.js";
|
|
58
|
+
import {
|
|
59
|
+
sanityTheme
|
|
60
|
+
} from "./chunk-NKTZOR54.js";
|
|
61
|
+
import {
|
|
62
|
+
sentryTheme
|
|
63
|
+
} from "./chunk-YRGKMQP4.js";
|
|
64
|
+
import {
|
|
65
|
+
shopifyTheme
|
|
66
|
+
} from "./chunk-PN567MCL.js";
|
|
67
|
+
import {
|
|
68
|
+
slackTheme
|
|
69
|
+
} from "./chunk-5O65TVZP.js";
|
|
70
|
+
import {
|
|
71
|
+
spacexTheme
|
|
72
|
+
} from "./chunk-TXY7LBYM.js";
|
|
73
|
+
import {
|
|
74
|
+
spotifyTheme
|
|
75
|
+
} from "./chunk-BH7IPZBT.js";
|
|
76
|
+
import {
|
|
77
|
+
starbucksTheme
|
|
78
|
+
} from "./chunk-WAU2FYDY.js";
|
|
79
|
+
import {
|
|
80
|
+
pinterestTheme
|
|
81
|
+
} from "./chunk-72IPJZ6V.js";
|
|
82
|
+
import {
|
|
83
|
+
playstationTheme
|
|
84
|
+
} from "./chunk-SG2ACM7O.js";
|
|
85
|
+
import {
|
|
86
|
+
posthogTheme
|
|
87
|
+
} from "./chunk-CFLNGBY5.js";
|
|
88
|
+
import {
|
|
89
|
+
raycastTheme
|
|
90
|
+
} from "./chunk-KDS62BXD.js";
|
|
91
|
+
import {
|
|
92
|
+
renaultTheme
|
|
93
|
+
} from "./chunk-IJBNLZQH.js";
|
|
94
|
+
import {
|
|
95
|
+
replicateTheme
|
|
96
|
+
} from "./chunk-CUO2HNBR.js";
|
|
97
|
+
import {
|
|
98
|
+
resendTheme
|
|
99
|
+
} from "./chunk-RTCJ5B7S.js";
|
|
100
|
+
import {
|
|
101
|
+
revolutTheme
|
|
102
|
+
} from "./chunk-7YP2HHHV.js";
|
|
103
|
+
import {
|
|
104
|
+
miroTheme
|
|
105
|
+
} from "./chunk-Z6XLNVF3.js";
|
|
106
|
+
import {
|
|
107
|
+
mistralTheme
|
|
108
|
+
} from "./chunk-5TDK4XMA.js";
|
|
109
|
+
import {
|
|
110
|
+
mongodbTheme
|
|
111
|
+
} from "./chunk-LDZC2QYF.js";
|
|
112
|
+
import {
|
|
113
|
+
nikeTheme
|
|
114
|
+
} from "./chunk-LNKOIFH4.js";
|
|
115
|
+
import {
|
|
116
|
+
notionTheme
|
|
117
|
+
} from "./chunk-VUSSQAEI.js";
|
|
118
|
+
import {
|
|
119
|
+
nvidiaTheme
|
|
120
|
+
} from "./chunk-QTKMLEEM.js";
|
|
121
|
+
import {
|
|
122
|
+
ollamaTheme
|
|
123
|
+
} from "./chunk-VOXUB4AT.js";
|
|
124
|
+
import {
|
|
125
|
+
opencodeTheme
|
|
126
|
+
} from "./chunk-D5JFUYFN.js";
|
|
127
|
+
import {
|
|
128
|
+
krakenTheme
|
|
129
|
+
} from "./chunk-4LQ3BH7F.js";
|
|
130
|
+
import {
|
|
131
|
+
lamborghiniTheme
|
|
132
|
+
} from "./chunk-73N7YFTY.js";
|
|
133
|
+
import {
|
|
134
|
+
linearTheme
|
|
135
|
+
} from "./chunk-ATBX7KXM.js";
|
|
136
|
+
import {
|
|
137
|
+
lovableTheme
|
|
138
|
+
} from "./chunk-I6H6W42Y.js";
|
|
139
|
+
import {
|
|
140
|
+
mastercardTheme
|
|
141
|
+
} from "./chunk-BK432RWC.js";
|
|
142
|
+
import {
|
|
143
|
+
metaTheme
|
|
144
|
+
} from "./chunk-RN4ZII2I.js";
|
|
145
|
+
import {
|
|
146
|
+
minimaxTheme
|
|
147
|
+
} from "./chunk-OCQYO6PW.js";
|
|
148
|
+
import {
|
|
149
|
+
mintlifyTheme
|
|
150
|
+
} from "./chunk-ZQJDUTSK.js";
|
|
151
|
+
import {
|
|
152
|
+
elevenlabsTheme
|
|
153
|
+
} from "./chunk-NIED6GXO.js";
|
|
154
|
+
import {
|
|
155
|
+
expoTheme
|
|
156
|
+
} from "./chunk-CTI3W357.js";
|
|
157
|
+
import {
|
|
158
|
+
ferrariTheme
|
|
159
|
+
} from "./chunk-2OH25A4J.js";
|
|
160
|
+
import {
|
|
161
|
+
figmaTheme
|
|
162
|
+
} from "./chunk-FE2IENES.js";
|
|
163
|
+
import {
|
|
164
|
+
framerTheme
|
|
165
|
+
} from "./chunk-JZEZHM5N.js";
|
|
166
|
+
import {
|
|
167
|
+
hashicorpTheme
|
|
168
|
+
} from "./chunk-FK5WSFAA.js";
|
|
169
|
+
import {
|
|
170
|
+
ibmTheme
|
|
171
|
+
} from "./chunk-KZDIZ2FL.js";
|
|
172
|
+
import {
|
|
173
|
+
intercomTheme
|
|
174
|
+
} from "./chunk-KXBE5FQ7.js";
|
|
175
|
+
import {
|
|
176
|
+
calTheme
|
|
177
|
+
} from "./chunk-2SI7O4FQ.js";
|
|
178
|
+
import {
|
|
179
|
+
claudeTheme
|
|
180
|
+
} from "./chunk-E26YKJRK.js";
|
|
181
|
+
import {
|
|
182
|
+
clayTheme
|
|
183
|
+
} from "./chunk-I4Z7DY3Z.js";
|
|
184
|
+
import {
|
|
185
|
+
clickhouseTheme
|
|
186
|
+
} from "./chunk-QEBXRSTH.js";
|
|
187
|
+
import {
|
|
188
|
+
cohereTheme
|
|
189
|
+
} from "./chunk-SORTCBSJ.js";
|
|
190
|
+
import {
|
|
191
|
+
coinbaseTheme
|
|
192
|
+
} from "./chunk-PJAJD5VJ.js";
|
|
193
|
+
import {
|
|
194
|
+
composioTheme
|
|
195
|
+
} from "./chunk-7YPET3HT.js";
|
|
196
|
+
import {
|
|
197
|
+
cursorTheme
|
|
198
|
+
} from "./chunk-UIS6TMM5.js";
|
|
199
|
+
import {
|
|
200
|
+
airbnbTheme
|
|
201
|
+
} from "./chunk-BCLCH6JZ.js";
|
|
202
|
+
import {
|
|
203
|
+
airtableTheme
|
|
204
|
+
} from "./chunk-G2V6XAJ7.js";
|
|
205
|
+
import {
|
|
206
|
+
appleTheme
|
|
207
|
+
} from "./chunk-CEQN6EQY.js";
|
|
208
|
+
import {
|
|
209
|
+
binanceTheme
|
|
210
|
+
} from "./chunk-BMLLM5GC.js";
|
|
211
|
+
import {
|
|
212
|
+
bmwMTheme
|
|
213
|
+
} from "./chunk-DE2NWOEB.js";
|
|
214
|
+
import {
|
|
215
|
+
bmwTheme
|
|
216
|
+
} from "./chunk-ZTYINGDT.js";
|
|
217
|
+
import {
|
|
218
|
+
bugattiTheme
|
|
219
|
+
} from "./chunk-KLNZW4GO.js";
|
|
220
|
+
|
|
1
221
|
// src/index.ts
|
|
222
|
+
import { strictThemeSchema, themeSchema } from "@hex-core/registry";
|
|
2
223
|
import { emberTheme, midnightTheme } from "@hex-core/tokens";
|
|
3
224
|
var premiumThemes = {
|
|
4
225
|
midnight: midnightTheme,
|
|
5
|
-
ember: emberTheme
|
|
226
|
+
ember: emberTheme,
|
|
227
|
+
...voltagentPresets
|
|
6
228
|
};
|
|
7
229
|
function getPremiumTheme(name) {
|
|
8
230
|
return premiumThemes[name];
|
|
@@ -11,14 +233,148 @@ function listPremiumThemes() {
|
|
|
11
233
|
return Object.values(premiumThemes).map((t) => ({
|
|
12
234
|
name: t.name,
|
|
13
235
|
displayName: t.displayName,
|
|
14
|
-
description: t.description
|
|
236
|
+
description: t.description,
|
|
237
|
+
category: t.category,
|
|
238
|
+
tags: t.tags,
|
|
239
|
+
// `brand` falls back to `attribution.brand` (the trademark notice
|
|
240
|
+
// for voltagent-derived presets) — single source of truth on the
|
|
241
|
+
// theme object, no duplicated top-level `brand` field.
|
|
242
|
+
brand: t.brand ?? t.attribution?.brand
|
|
15
243
|
}));
|
|
16
244
|
}
|
|
245
|
+
function searchThemes(input = {}) {
|
|
246
|
+
const { query, category, tags } = input;
|
|
247
|
+
const q = query?.toLowerCase().trim();
|
|
248
|
+
const requiredTags = tags?.map((t) => t.toLowerCase());
|
|
249
|
+
const out = [];
|
|
250
|
+
for (const theme of Object.values(premiumThemes)) {
|
|
251
|
+
if (category && theme.category !== category) continue;
|
|
252
|
+
if (requiredTags && requiredTags.length > 0) {
|
|
253
|
+
const themeTags = (theme.tags ?? []).map((t) => t.toLowerCase());
|
|
254
|
+
if (!requiredTags.every((t) => themeTags.includes(t))) continue;
|
|
255
|
+
}
|
|
256
|
+
if (q) {
|
|
257
|
+
const haystack = [
|
|
258
|
+
theme.name,
|
|
259
|
+
theme.displayName,
|
|
260
|
+
theme.description,
|
|
261
|
+
theme.brand,
|
|
262
|
+
theme.attribution?.brand
|
|
263
|
+
].filter(Boolean).join(" ").toLowerCase();
|
|
264
|
+
if (!haystack.includes(q)) continue;
|
|
265
|
+
}
|
|
266
|
+
out.push(theme);
|
|
267
|
+
}
|
|
268
|
+
return out;
|
|
269
|
+
}
|
|
270
|
+
function extendTheme(base, overrides = {}) {
|
|
271
|
+
const merged = {
|
|
272
|
+
name: overrides.name ?? base.name,
|
|
273
|
+
displayName: overrides.displayName ?? base.displayName,
|
|
274
|
+
description: overrides.description ?? base.description,
|
|
275
|
+
tokens: {
|
|
276
|
+
light: { ...base.tokens.light, ...overrides.tokens?.light ?? {} },
|
|
277
|
+
dark: { ...base.tokens.dark, ...overrides.tokens?.dark ?? {} }
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
if ("brand" in overrides) merged.brand = overrides.brand;
|
|
281
|
+
else if (base.brand !== void 0) merged.brand = base.brand;
|
|
282
|
+
if ("category" in overrides) merged.category = overrides.category;
|
|
283
|
+
else if (base.category !== void 0) merged.category = base.category;
|
|
284
|
+
if ("tags" in overrides) merged.tags = overrides.tags;
|
|
285
|
+
else if (base.tags !== void 0) merged.tags = base.tags;
|
|
286
|
+
if ("designBrief" in overrides) merged.designBrief = overrides.designBrief;
|
|
287
|
+
else if (base.designBrief !== void 0) merged.designBrief = base.designBrief;
|
|
288
|
+
if ("attribution" in overrides) merged.attribution = overrides.attribution;
|
|
289
|
+
else if (base.attribution !== void 0) merged.attribution = base.attribution;
|
|
290
|
+
themeSchema.parse(merged);
|
|
291
|
+
strictThemeSchema.parse(merged);
|
|
292
|
+
return merged;
|
|
293
|
+
}
|
|
294
|
+
var allThemeSlugs = [...Object.keys(premiumThemes)];
|
|
17
295
|
export {
|
|
296
|
+
airbnbTheme,
|
|
297
|
+
airtableTheme,
|
|
298
|
+
allThemeSlugs,
|
|
299
|
+
appleTheme,
|
|
300
|
+
binanceTheme,
|
|
301
|
+
bmwMTheme,
|
|
302
|
+
bmwTheme,
|
|
303
|
+
bugattiTheme,
|
|
304
|
+
calTheme,
|
|
305
|
+
claudeTheme,
|
|
306
|
+
clayTheme,
|
|
307
|
+
clickhouseTheme,
|
|
308
|
+
cohereTheme,
|
|
309
|
+
coinbaseTheme,
|
|
310
|
+
composioTheme,
|
|
311
|
+
cursorTheme,
|
|
312
|
+
elevenlabsTheme,
|
|
18
313
|
emberTheme,
|
|
314
|
+
expoTheme,
|
|
315
|
+
extendTheme,
|
|
316
|
+
ferrariTheme,
|
|
317
|
+
figmaTheme,
|
|
318
|
+
framerTheme,
|
|
19
319
|
getPremiumTheme,
|
|
320
|
+
hashicorpTheme,
|
|
321
|
+
ibmTheme,
|
|
322
|
+
intercomTheme,
|
|
323
|
+
krakenTheme,
|
|
324
|
+
lamborghiniTheme,
|
|
325
|
+
linearTheme,
|
|
20
326
|
listPremiumThemes,
|
|
327
|
+
loadThemeBrief,
|
|
328
|
+
lovableTheme,
|
|
329
|
+
mastercardTheme,
|
|
330
|
+
metaTheme,
|
|
21
331
|
midnightTheme,
|
|
22
|
-
|
|
332
|
+
minimaxTheme,
|
|
333
|
+
mintlifyTheme,
|
|
334
|
+
miroTheme,
|
|
335
|
+
mistralTheme,
|
|
336
|
+
mongodbTheme,
|
|
337
|
+
nikeTheme,
|
|
338
|
+
notionTheme,
|
|
339
|
+
nvidiaTheme,
|
|
340
|
+
ollamaTheme,
|
|
341
|
+
opencodeTheme,
|
|
342
|
+
pinterestTheme,
|
|
343
|
+
playstationTheme,
|
|
344
|
+
posthogTheme,
|
|
345
|
+
premiumThemes,
|
|
346
|
+
presetSlugs,
|
|
347
|
+
presetsByCategory,
|
|
348
|
+
raycastTheme,
|
|
349
|
+
renaultTheme,
|
|
350
|
+
replicateTheme,
|
|
351
|
+
resendTheme,
|
|
352
|
+
revolutTheme,
|
|
353
|
+
runwaymlTheme,
|
|
354
|
+
sanityTheme,
|
|
355
|
+
searchThemes,
|
|
356
|
+
sentryTheme,
|
|
357
|
+
shopifyTheme,
|
|
358
|
+
slackTheme,
|
|
359
|
+
spacexTheme,
|
|
360
|
+
spotifyTheme,
|
|
361
|
+
starbucksTheme,
|
|
362
|
+
stripeTheme,
|
|
363
|
+
supabaseTheme,
|
|
364
|
+
superhumanTheme,
|
|
365
|
+
teslaTheme,
|
|
366
|
+
thevergeTheme,
|
|
367
|
+
togetherTheme,
|
|
368
|
+
uberTheme,
|
|
369
|
+
vercelTheme,
|
|
370
|
+
vodafoneTheme,
|
|
371
|
+
voltagentPresets,
|
|
372
|
+
voltagentTheme,
|
|
373
|
+
warpTheme,
|
|
374
|
+
webflowTheme,
|
|
375
|
+
wiredTheme,
|
|
376
|
+
wiseTheme,
|
|
377
|
+
xTheme,
|
|
378
|
+
zapierTheme
|
|
23
379
|
};
|
|
24
380
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @hex-core/themes — premium theme catalog and convenience re-exports.\n *\n * This package establishes a separate publish/version surface for theme\n * presets so the bundled `@hex-core/tokens` package can stay focused on the\n * single canonical default theme + the transformer functions.\n *\n * Today: re-exports `midnightTheme` and `emberTheme` from `@hex-core/tokens`\n * so consumers have a single import location for \"the catalog of themes\",\n * and adds a `listPremiumThemes()` helper. Future premium themes\n * (`fintech-dark`, `editorial-warm`, `data-dense`, `pastel-soft`,\n * `monochrome-strict`) will land here directly without bumping `tokens`.\n *\n * The default theme remains in `@hex-core/tokens` since it is the canonical\n * baseline that the transformers (themeToCss, themeToScopedRuntimeCss,\n * themeToFlatJson, themeToTailwindConfig, generateGlobalsCss) operate on.\n *\n * @example\n * ```ts\n * import { midnightTheme, emberTheme, listPremiumThemes } from \"@hex-core/themes\";\n * import { themeToScopedRuntimeCss } from \"@hex-core/tokens\";\n *\n * const css = themeToScopedRuntimeCss(midnightTheme, { mode: \"dark\" });\n * console.log(listPremiumThemes().map(t => t.name));\n * ```\n */\nimport type { Theme } from \"@hex-core/registry\";\nimport { emberTheme, midnightTheme } from \"@hex-core/tokens\";\n\nexport { emberTheme, midnightTheme };\n\n/**\n * The full set of premium themes shipped by this package, keyed by name.\n * Future premium themes added here are picked up automatically by\n * {@link listPremiumThemes} and {@link getPremiumTheme}.\n */\nexport const premiumThemes: Record<string, Theme> = {\n\tmidnight: midnightTheme,\n\tember: emberTheme,\n};\n\n/**\n * Retrieve a premium theme by name.\n *\n * @param name - The theme identifier (e.g. `\"midnight\"`, `\"ember\"`).\n * @returns The matching Theme object, or `undefined` if the name is unknown.\n */\nexport function getPremiumTheme(name: string): Theme | undefined {\n\treturn premiumThemes[name];\n}\n\n/**\n * List metadata for every premium theme in the catalog.\n *\n * Mirrors the shape of `listThemes()` from `@hex-core/tokens` so studios and\n * theme switchers can drive both catalogs through the same UI without\n * adapter code.\n *\n * @returns Array of `{ name, displayName, description }` summaries.\n */\nexport function listPremiumThemes(): Array<{\n\tname: string;\n\tdisplayName: string;\n\tdescription: string;\n}> {\n\treturn Object.values(premiumThemes).map((t) => ({\n\t\tname: t.name,\n\t\tdisplayName: t.displayName,\n\t\tdescription: t.description,\n\t}));\n}\n"],"mappings":";AA2BA,SAAS,YAAY,qBAAqB;AASnC,IAAM,gBAAuC;AAAA,EACnD,UAAU;AAAA,EACV,OAAO;AACR;AAQO,SAAS,gBAAgB,MAAiC;AAChE,SAAO,cAAc,IAAI;AAC1B;AAWO,SAAS,oBAIb;AACF,SAAO,OAAO,OAAO,aAAa,EAAE,IAAI,CAAC,OAAO;AAAA,IAC/C,MAAM,EAAE;AAAA,IACR,aAAa,EAAE;AAAA,IACf,aAAa,EAAE;AAAA,EAChB,EAAE;AACH;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @hex-core/themes — premium theme catalog and brand-derived presets.\n *\n * This package establishes a separate publish/version surface for theme\n * presets so the bundled `@hex-core/tokens` package can stay focused on the\n * single canonical default theme + the transformer functions.\n *\n * Catalog:\n * - `midnight`, `ember` — first-party premium themes (re-exports from `@hex-core/tokens`)\n * - `voltagent` brand presets — 71 brand-inspired themes (Tesla, Stripe, Linear, …)\n * auto-generated from the MIT-licensed voltagent/awesome-design-md briefs\n *\n * @example\n * ```ts\n * import { teslaTheme, listPremiumThemes, extendTheme, searchThemes } from \"@hex-core/themes\";\n * import { themeToScopedRuntimeCss } from \"@hex-core/tokens\";\n *\n * const css = themeToScopedRuntimeCss(teslaTheme, { mode: \"dark\" });\n *\n * const myTesla = extendTheme(teslaTheme, {\n * name: \"my-tesla\",\n * tokens: { light: { primary: { value: \"0 100% 50%\", type: \"color\" } } },\n * });\n *\n * const fintech = searchThemes({ category: \"fintech\" });\n * ```\n */\nimport type { Theme, ThemeCategory } from \"@hex-core/registry\";\nimport { strictThemeSchema, themeSchema } from \"@hex-core/registry\";\nimport { emberTheme, midnightTheme } from \"@hex-core/tokens\";\nimport { presetSlugs, presetsByCategory, voltagentPresets } from \"./presets/index.js\";\n\nexport { emberTheme, midnightTheme };\nexport * from \"./presets/index.js\";\n\n/**\n * The full set of themes shipped by this package, keyed by slug. Includes:\n * - First-party premium themes: `midnight`, `ember`\n * - 71 voltagent brand-derived presets (e.g. `tesla`, `stripe`, `linear`)\n *\n * Studio's theme picker iterates this map directly, so every entry shows up\n * automatically without barrel-side wiring.\n */\nexport const premiumThemes: Record<string, Theme> = {\n\tmidnight: midnightTheme,\n\tember: emberTheme,\n\t...voltagentPresets,\n};\n\n/**\n * Retrieve a premium theme by slug.\n *\n * @param name - Theme slug (e.g. `\"midnight\"`, `\"tesla\"`, `\"stripe\"`).\n * @returns The matching Theme object, or `undefined` if the slug is unknown.\n */\nexport function getPremiumTheme(name: string): Theme | undefined {\n\treturn premiumThemes[name];\n}\n\n/**\n * List metadata for every theme in the catalog.\n *\n * Mirrors the shape of `listThemes()` from `@hex-core/tokens` so studios and\n * theme switchers can drive both catalogs through the same UI without\n * adapter code.\n *\n * @returns Array of `{ name, displayName, description, category?, tags?, brand? }` summaries.\n */\nexport function listPremiumThemes(): Array<{\n\tname: string;\n\tdisplayName: string;\n\tdescription: string;\n\tcategory?: ThemeCategory;\n\ttags?: string[];\n\tbrand?: string;\n}> {\n\treturn Object.values(premiumThemes).map((t) => ({\n\t\tname: t.name,\n\t\tdisplayName: t.displayName,\n\t\tdescription: t.description,\n\t\tcategory: t.category,\n\t\ttags: t.tags,\n\t\t// `brand` falls back to `attribution.brand` (the trademark notice\n\t\t// for voltagent-derived presets) — single source of truth on the\n\t\t// theme object, no duplicated top-level `brand` field.\n\t\tbrand: t.brand ?? t.attribution?.brand,\n\t}));\n}\n\n/** Filter input for {@link searchThemes}. */\nexport interface SearchThemesInput {\n\t/** Case-insensitive substring match against `name` / `displayName` / `description`. */\n\tquery?: string;\n\t/** Restrict to a single category. */\n\tcategory?: ThemeCategory;\n\t/** All listed tags must be present (intersection match). */\n\ttags?: string[];\n}\n\n/**\n * Search the full preset catalog by category, tags, or free-text query.\n * The 71 voltagent presets each carry `category` and `tags`; the\n * first-party `midnight` / `ember` themes don't (they pre-date the\n * metadata extension), so they only match via the `query` filter.\n *\n * @param input - Filter criteria; combine for AND semantics.\n * @returns Matching themes, in catalog order.\n */\nexport function searchThemes(input: SearchThemesInput = {}): Theme[] {\n\tconst { query, category, tags } = input;\n\tconst q = query?.toLowerCase().trim();\n\tconst requiredTags = tags?.map((t) => t.toLowerCase());\n\tconst out: Theme[] = [];\n\tfor (const theme of Object.values(premiumThemes)) {\n\t\tif (category && theme.category !== category) continue;\n\t\tif (requiredTags && requiredTags.length > 0) {\n\t\t\tconst themeTags = (theme.tags ?? []).map((t) => t.toLowerCase());\n\t\t\tif (!requiredTags.every((t) => themeTags.includes(t))) continue;\n\t\t}\n\t\tif (q) {\n\t\t\tconst haystack = [\n\t\t\t\ttheme.name,\n\t\t\t\ttheme.displayName,\n\t\t\t\ttheme.description,\n\t\t\t\ttheme.brand,\n\t\t\t\ttheme.attribution?.brand,\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \")\n\t\t\t\t.toLowerCase();\n\t\t\tif (!haystack.includes(q)) continue;\n\t\t}\n\t\tout.push(theme);\n\t}\n\treturn out;\n}\n\n/**\n * Override input for {@link extendTheme}. Token sets accept partial\n * objects (token slots merge); scalar fields replace the base value\n * when present. `attribution` is full-replacement (not merged) — a\n * consumer rebranding a preset under their own license / URL almost\n * always wants their attribution to fully replace the upstream's.\n * Pass `attribution: undefined` to remove attribution entirely.\n */\nexport interface ThemeOverrides {\n\tname?: string;\n\tdisplayName?: string;\n\tdescription?: string;\n\tbrand?: string;\n\tcategory?: Theme[\"category\"];\n\ttags?: string[];\n\tdesignBrief?: string;\n\tattribution?: Theme[\"attribution\"];\n\t/**\n\t * Per-mode token overrides — token slot keys are an open record\n\t * (the schema's `tokenSetSchema` uses a catchall), so any subset\n\t * of slots is valid. Slots not listed fall through from the base.\n\t */\n\ttokens?: {\n\t\tlight?: Theme[\"tokens\"][\"light\"];\n\t\tdark?: Theme[\"tokens\"][\"dark\"];\n\t};\n}\n\n/**\n * Compose a custom theme by overlaying overrides on a base preset.\n *\n * Token sets are merged at the slot level: missing slots fall through\n * from the base; overridden slots replace the entire `{ value, type }`\n * record. Scalar fields replace the base when present (including\n * `tags: []` which clears the inherited tag list — explicit empty is\n * intentional, not surprising).\n *\n * `attribution` is FULL-REPLACEMENT (not deep-merged) — a consumer\n * republishing a preset under their own license / brand wants their\n * attribution to land cleanly without the upstream's `brand` /\n * `source` / `url` leaking through. Spread base.attribution yourself\n * if you actually want partial merge.\n *\n * The composed theme is re-validated via `strictThemeSchema` before\n * return, so consumers can't accidentally produce an under-spec'd\n * Theme.\n *\n * @example\n * ```ts\n * const myTesla = extendTheme(teslaTheme, {\n * name: \"my-tesla\",\n * displayName: \"My Tesla\",\n * tokens: {\n * light: { primary: { value: \"0 100% 50%\", type: \"color\" } },\n * },\n * });\n * ```\n *\n * @param base - The starting theme (any preset or first-party theme)\n * @param overrides - Partial theme; only specified fields override\n * @returns A new validated Theme that's safe to feed to any transformer\n */\nexport function extendTheme(base: Theme, overrides: ThemeOverrides = {}): Theme {\n\t// Build a fresh theme so we never mutate `base` (consumers can call\n\t// extendTheme repeatedly against the same shared preset).\n\tconst merged: Theme = {\n\t\tname: overrides.name ?? base.name,\n\t\tdisplayName: overrides.displayName ?? base.displayName,\n\t\tdescription: overrides.description ?? base.description,\n\t\ttokens: {\n\t\t\tlight: { ...base.tokens.light, ...(overrides.tokens?.light ?? {}) },\n\t\t\tdark: { ...base.tokens.dark, ...(overrides.tokens?.dark ?? {}) },\n\t\t},\n\t};\n\n\t// Optional metadata: caller-supplied value wins (including explicit\n\t// empty arrays / undefined). `in` checks distinguish \"not specified\"\n\t// from \"specified as undefined\" so consumers can clear inherited\n\t// fields when they want to.\n\tif (\"brand\" in overrides) merged.brand = overrides.brand;\n\telse if (base.brand !== undefined) merged.brand = base.brand;\n\n\tif (\"category\" in overrides) merged.category = overrides.category;\n\telse if (base.category !== undefined) merged.category = base.category;\n\n\tif (\"tags\" in overrides) merged.tags = overrides.tags;\n\telse if (base.tags !== undefined) merged.tags = base.tags;\n\n\tif (\"designBrief\" in overrides) merged.designBrief = overrides.designBrief;\n\telse if (base.designBrief !== undefined) merged.designBrief = base.designBrief;\n\n\t// Full-replacement semantics for attribution (see JSDoc).\n\tif (\"attribution\" in overrides) merged.attribution = overrides.attribution;\n\telse if (base.attribution !== undefined) merged.attribution = base.attribution;\n\n\t// Permissive parse first so consumer overrides like `tags: []` pass.\n\t// Strict parse catches any token-slot regression.\n\tthemeSchema.parse(merged);\n\tstrictThemeSchema.parse(merged);\n\n\treturn merged;\n}\n\n/** All preset slugs known to this package, including first-party themes. */\nexport const allThemeSlugs: readonly string[] = [...Object.keys(premiumThemes)];\n\nexport { presetSlugs, presetsByCategory };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAS,mBAAmB,mBAAmB;AAC/C,SAAS,YAAY,qBAAqB;AAcnC,IAAM,gBAAuC;AAAA,EACnD,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACJ;AAQO,SAAS,gBAAgB,MAAiC;AAChE,SAAO,cAAc,IAAI;AAC1B;AAWO,SAAS,oBAOb;AACF,SAAO,OAAO,OAAO,aAAa,EAAE,IAAI,CAAC,OAAO;AAAA,IAC/C,MAAM,EAAE;AAAA,IACR,aAAa,EAAE;AAAA,IACf,aAAa,EAAE;AAAA,IACf,UAAU,EAAE;AAAA,IACZ,MAAM,EAAE;AAAA;AAAA;AAAA;AAAA,IAIR,OAAO,EAAE,SAAS,EAAE,aAAa;AAAA,EAClC,EAAE;AACH;AAqBO,SAAS,aAAa,QAA2B,CAAC,GAAY;AACpE,QAAM,EAAE,OAAO,UAAU,KAAK,IAAI;AAClC,QAAM,IAAI,OAAO,YAAY,EAAE,KAAK;AACpC,QAAM,eAAe,MAAM,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AACrD,QAAM,MAAe,CAAC;AACtB,aAAW,SAAS,OAAO,OAAO,aAAa,GAAG;AACjD,QAAI,YAAY,MAAM,aAAa,SAAU;AAC7C,QAAI,gBAAgB,aAAa,SAAS,GAAG;AAC5C,YAAM,aAAa,MAAM,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AAC/D,UAAI,CAAC,aAAa,MAAM,CAAC,MAAM,UAAU,SAAS,CAAC,CAAC,EAAG;AAAA,IACxD;AACA,QAAI,GAAG;AACN,YAAM,WAAW;AAAA,QAChB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM,aAAa;AAAA,MACpB,EACE,OAAO,OAAO,EACd,KAAK,GAAG,EACR,YAAY;AACd,UAAI,CAAC,SAAS,SAAS,CAAC,EAAG;AAAA,IAC5B;AACA,QAAI,KAAK,KAAK;AAAA,EACf;AACA,SAAO;AACR;AAgEO,SAAS,YAAY,MAAa,YAA4B,CAAC,GAAU;AAG/E,QAAM,SAAgB;AAAA,IACrB,MAAM,UAAU,QAAQ,KAAK;AAAA,IAC7B,aAAa,UAAU,eAAe,KAAK;AAAA,IAC3C,aAAa,UAAU,eAAe,KAAK;AAAA,IAC3C,QAAQ;AAAA,MACP,OAAO,EAAE,GAAG,KAAK,OAAO,OAAO,GAAI,UAAU,QAAQ,SAAS,CAAC,EAAG;AAAA,MAClE,MAAM,EAAE,GAAG,KAAK,OAAO,MAAM,GAAI,UAAU,QAAQ,QAAQ,CAAC,EAAG;AAAA,IAChE;AAAA,EACD;AAMA,MAAI,WAAW,UAAW,QAAO,QAAQ,UAAU;AAAA,WAC1C,KAAK,UAAU,OAAW,QAAO,QAAQ,KAAK;AAEvD,MAAI,cAAc,UAAW,QAAO,WAAW,UAAU;AAAA,WAChD,KAAK,aAAa,OAAW,QAAO,WAAW,KAAK;AAE7D,MAAI,UAAU,UAAW,QAAO,OAAO,UAAU;AAAA,WACxC,KAAK,SAAS,OAAW,QAAO,OAAO,KAAK;AAErD,MAAI,iBAAiB,UAAW,QAAO,cAAc,UAAU;AAAA,WACtD,KAAK,gBAAgB,OAAW,QAAO,cAAc,KAAK;AAGnE,MAAI,iBAAiB,UAAW,QAAO,cAAc,UAAU;AAAA,WACtD,KAAK,gBAAgB,OAAW,QAAO,cAAc,KAAK;AAInE,cAAY,MAAM,MAAM;AACxB,oBAAkB,MAAM,MAAM;AAE9B,SAAO;AACR;AAGO,IAAM,gBAAmC,CAAC,GAAG,OAAO,KAAK,aAAa,CAAC;","names":[]}
|