@stylix/core 4.1.1 → 5.1.0
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 +4 -4
- package/dist/index.d.ts +317 -0
- package/dist/index.js +1241 -728
- package/dist/index.js.map +1 -1
- package/package.json +37 -45
- package/tsconfig.json +15 -0
- package/dist/module.mjs +0 -866
- package/dist/module.mjs.map +0 -1
- package/dist/types.d.ts +0 -213
- package/dist/types.d.ts.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["core/src/index.ts","core/src/StylixProvider.tsx","core/src/classifyProps.ts","core/src/css-props.json","core/src/plugins/index.ts","core/src/plugins/cleanStyles.ts","core/src/util/isPlainObject.ts","core/src/plugins/defaultUnits.ts","core/src/util/mapObjectRecursive.ts","core/src/plugins/flattenNestedStyles.ts","core/src/plugins/mediaArrays.ts","core/src/plugins/merge$css.ts","core/src/util/flatten.ts","core/src/plugins/propCasing.ts","core/src/plugins/replace$$class.ts","core/src/plugins/themeFunctions.ts","core/src/plugins/customProps.ts","core/src/util/walkRecursive.ts","core/src/util/cloneDeep.ts","core/src/styleCollector.tsx","core/src/util/merge.ts","core/src/util/useIsoLayoutEffect.ts","core/src/useStyles.ts","core/src/applyRules.ts","core/src/getParentComponentName.ts","core/src/stylesToRuleArray.ts","core/src/util/hashString.ts","core/src/styled.tsx","core/src/Stylix.tsx","core/src/elements.ts","core/src/html-tags.json"],"sourcesContent":["export {\n type StylixProps,\n type StylixPropsExtensions,\n type Stylix$Component,\n type Stylix$elProp,\n type Stylix$elPropOptional,\n type Extends,\n type StylixStyleProps,\n} from './types';\nexport { useStylixContext, useStylixTheme, StylixProvider, StylixTheme } from './StylixProvider';\nimport { StylixPublicContext } from './StylixProvider';\nexport type StylixContext = StylixPublicContext;\nexport { useStyles, useKeyframes, useGlobalStyles } from './useStyles';\nexport {\n defaultPlugins,\n customProps,\n type StylixPlugin,\n type StylixPluginFunctionContext,\n} from './plugins';\nexport { mapObjectRecursive } from './util/mapObjectRecursive';\nexport { walkRecursive } from './util/walkRecursive';\nexport { createStyleCollector, styleCollectorContext, type StyleCollector } from './styleCollector';\nexport { classifyProps, useClassifyProps } from './classifyProps';\nexport { styled, type StylixStyledComponentWithProps, type StylixStyledComponent } from './styled';\nimport './elements';\nexport { default } from './Stylix';\n","import React, { createContext, useContext, useRef, useState } from 'react';\n\nimport { simplifyStylePropName } from './classifyProps';\nimport cssProps from './css-props.json';\nimport { applyPlugins, defaultPlugins, StylixPlugin } from './plugins';\nimport { styleCollectorContext } from './styleCollector';\nimport { flatten } from './util/flatten';\nimport { merge } from './util/merge';\nimport useIsoLayoutEffect from './util/useIsoLayoutEffect';\n\n/**\n * Stylix context\n *\n * The <StylixProvider> wrapper represents an \"instance\" of Stylix - a configuration, set of plugins, and reference to\n * the <style> element where css is output. All nodes contained within a <StylixProvider> element will share this\n * Stylix instance's configuration.\n *\n * A StylixProvider internally contains a <StylixTheme>, so you can conveniently provide a theme object and media query\n * array with a single element.\n *\n * See the README for more details.\n */\n\n// StylixProvider component props\ntype StylixProviderProps<Theme = any> = StylixThemeProps<Theme> & {\n id?: string;\n devMode?: boolean;\n plugins?: StylixPlugin[] | StylixPlugin[][];\n styleElement?: HTMLStyleElement;\n children: any;\n};\n\ntype StylixThemeProps<Theme = any> = {\n theme?: Theme;\n media?: string[];\n children: any;\n};\n\n// StylixContext object interface\nexport type StylixContext<Theme = any> = {\n id: string;\n devMode: boolean;\n theme: Theme;\n media: string[];\n plugins: StylixPlugin[];\n stylesheet: CSSStyleSheet;\n styleElement: HTMLStyleElement;\n styleCollector?: string[];\n rules: {\n [key: string]: {\n hash: string;\n rules: string[];\n refs: number;\n };\n };\n styleProps: Record<string, string>;\n cleanupRequest?: number;\n requestApply: boolean;\n};\n\nexport type StylixPublicContext = Pick<\n StylixContext,\n 'id' | 'devMode' | 'theme' | 'media' | 'stylesheet' | 'styleElement' | 'styleProps'\n>;\n\nconst defaultStyleProps: Record<string, string> = {};\nfor (const value of cssProps) {\n defaultStyleProps[simplifyStylePropName(value)] = value;\n}\n\nfunction createStylixContext(userValues = {} as Partial<StylixProviderProps>) {\n const ctx = {\n id: userValues.id || Math.round(Math.random() * 10000).toString(10),\n devMode: userValues.devMode,\n styleProps: defaultStyleProps,\n theme: userValues.theme || null,\n media: userValues.media || null,\n styleElement: userValues.styleElement,\n plugins: flatten<StylixPlugin>(Object.values(defaultPlugins)),\n rules: {},\n cleanupRequest: undefined,\n } as StylixContext;\n\n if (!ctx.styleElement && typeof document !== 'undefined') {\n if (!ctx.devMode && 'adoptedStyleSheets' in document) {\n ctx.stylesheet = new CSSStyleSheet();\n document.adoptedStyleSheets.push(ctx.stylesheet);\n } else {\n // Legacy/devMode method\n // TS assumes window.document is 'never', so we need to explicitly cast it to Document\n const doc = document as Document;\n ctx.styleElement = doc.createElement('style');\n ctx.styleElement.className = 'stylix';\n if (ctx.id) ctx.styleElement.id = 'stylix-' + ctx.id;\n doc.head.appendChild(ctx.styleElement);\n }\n }\n\n if (ctx.styleElement) ctx.stylesheet = ctx.styleElement.sheet as CSSStyleSheet;\n\n if (userValues.plugins?.length) {\n const flatPlugins = flatten<StylixPlugin>(userValues.plugins);\n for (const i in flatPlugins) {\n const plugin = flatPlugins[i];\n let pluginIndex = -1;\n if (plugin.before && ctx.plugins.includes(plugin.before))\n pluginIndex = ctx.plugins.indexOf(plugin.before);\n if (plugin.after && ctx.plugins.includes(plugin.after))\n pluginIndex = ctx.plugins.indexOf(plugin.after) + 1;\n if (plugin.atIndex !== undefined) pluginIndex = plugin.atIndex;\n if (pluginIndex === -1) ctx.plugins.push(plugin);\n else ctx.plugins.splice(pluginIndex, 0, plugin);\n }\n }\n applyPlugins('initialize', null, null, ctx);\n\n return ctx;\n}\n\n// The React context object\nconst stylixContext = createContext(createStylixContext());\n\n// Convenience wrapper hook that returns the current Stylix context\nexport function useStylixContext<Theme = any>(): StylixContext<Theme> {\n return useContext(stylixContext);\n}\n\n// Convenience wrapper hook that returns just the current Stylix theme\nexport function useStylixTheme<Theme = any>(): Theme {\n return useContext(stylixContext).theme;\n}\n\nexport function StylixProvider({\n id,\n devMode,\n plugins,\n styleElement,\n children,\n ...themeProps\n}: StylixProviderProps): React.ReactElement {\n const ctx = useRef<StylixContext>();\n if (!ctx.current) ctx.current = createStylixContext({ id, devMode, plugins, styleElement });\n\n ctx.current.styleCollector = useContext(styleCollectorContext);\n\n return (\n <stylixContext.Provider value={ctx.current}>\n <StylixTheme {...themeProps}>{children}</StylixTheme>\n </stylixContext.Provider>\n );\n}\n\nfunction mergeContexts(contextA: any, contextB: any) {\n const obj = { ...contextA };\n const themeB = contextB.theme;\n if (contextB) {\n for (const key in contextB) {\n const value = contextB[key];\n if (typeof value !== 'undefined') obj[key] = value;\n }\n }\n obj.theme = merge(contextA.theme || {}, themeB);\n return obj;\n}\n\nexport function StylixTheme({ children, media, theme }: StylixThemeProps) {\n const parentCtx = useContext(stylixContext);\n const [contextValue, setContextValue] = useState(() =>\n mergeContexts(parentCtx, { media, theme }),\n );\n\n // contextValue should only update (and cause re-renders) when relevant properties change.\n // `media` is treated as special because providing an array of strings is easier to do inline,\n // but we don't want to cause descendent re-renders if the values don't change.\n\n useIsoLayoutEffect(\n () => {\n setContextValue(mergeContexts(parentCtx, { media, theme }));\n },\n [parentCtx, media?.join('|') || '', theme],\n false,\n );\n\n return <stylixContext.Provider value={contextValue}>{children}</stylixContext.Provider>;\n}\n","import { useStylixContext } from './StylixProvider';\n\nexport function classifyProps(props: any, knownProps: Record<string, string>): [any, any] {\n const styles = {} as any;\n const other = {} as any;\n\n for (const prop in props) {\n // If prop is not a valid JSX prop, it must be a CSS selector\n if (!isValidJSXProp(prop) || (isStyleProp(prop, knownProps) && isStyleValue(props[prop]))) {\n styles[prop] = props[prop];\n } else {\n other[prop] = props[prop];\n }\n }\n\n return [styles, other];\n}\n\nexport function useClassifyProps(props: any) {\n const ctx = useStylixContext();\n const [styles, other] = classifyProps(props, ctx.styleProps);\n return [styles, other];\n}\n\n/**\n * Determines if `value` is a recognized CSS property (can be standard CSS or custom Stylix prop).\n */\nexport function isStyleProp(prop: string, knownProps: Record<string, string>): boolean {\n return isValidJSXProp(prop) && simplifyStylePropName(prop) in knownProps;\n}\n\nexport function isValidJSXProp(value: string): boolean {\n // Not an exact check, but mostly rules out complex css selectors\n return /^[a-z$][a-z0-9_-]*$/i.test(value);\n}\n\nexport function simplifyStylePropName(value: string) {\n return value.toLowerCase().replace(/[^a-z]/gi, '');\n}\n\n/**\n * Tries to determine if `value` is likely to be a valid CSS property value.\n * We can't be 100% sure, but this should catch most cases.\n * There is a check here to make sure React elements do not pass the test, as this\n * has turned out to be a common case where a property like 'content' means something\n * to a component, but is also a valid CSS property.\n */\nexport function isStyleValue(value: any): boolean {\n return (\n typeof value === 'function' ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'undefined' ||\n Array.isArray(value) ||\n value === null ||\n // Check for plain objects, and make sure it doesn't have the $$typeof property (react elements are never valid as style values)\n (typeof value === 'object' && value.constructor === Object && !('$$typeof' in value))\n );\n}\n","[\n \"align-content\",\n \"align-items\",\n \"align-self\",\n \"align-tracks\",\n \"all\",\n \"animation\",\n \"animation-delay\",\n \"animation-direction\",\n \"animation-duration\",\n \"animation-fill-mode\",\n \"animation-iteration-count\",\n \"animation-name\",\n \"animation-play-state\",\n \"animation-timing-function\",\n \"appearance\",\n \"aspect-ratio\",\n \"azimuth\",\n \"backdrop-filter\",\n \"backface-visibility\",\n \"background\",\n \"background-attachment\",\n \"background-blend-mode\",\n \"background-clip\",\n \"background-color\",\n \"background-image\",\n \"background-origin\",\n \"background-position\",\n \"background-position-x\",\n \"background-position-y\",\n \"background-repeat\",\n \"background-size\",\n \"block-overflow\",\n \"block-size\",\n \"border\",\n \"border-block\",\n \"border-block-color\",\n \"border-block-style\",\n \"border-block-width\",\n \"border-block-end\",\n \"border-block-end-color\",\n \"border-block-end-style\",\n \"border-block-end-width\",\n \"border-block-start\",\n \"border-block-start-color\",\n \"border-block-start-style\",\n \"border-block-start-width\",\n \"border-bottom\",\n \"border-bottom-color\",\n \"border-bottom-left-radius\",\n \"border-bottom-right-radius\",\n \"border-bottom-style\",\n \"border-bottom-width\",\n \"border-collapse\",\n \"border-color\",\n \"border-end-end-radius\",\n \"border-end-start-radius\",\n \"border-image\",\n \"border-image-outset\",\n \"border-image-repeat\",\n \"border-image-slice\",\n \"border-image-source\",\n \"border-image-width\",\n \"border-inline\",\n \"border-inline-end\",\n \"border-inline-color\",\n \"border-inline-style\",\n \"border-inline-width\",\n \"border-inline-end-color\",\n \"border-inline-end-style\",\n \"border-inline-end-width\",\n \"border-inline-start\",\n \"border-inline-start-color\",\n \"border-inline-start-style\",\n \"border-inline-start-width\",\n \"border-left\",\n \"border-left-color\",\n \"border-left-style\",\n \"border-left-width\",\n \"border-radius\",\n \"border-right\",\n \"border-right-color\",\n \"border-right-style\",\n \"border-right-width\",\n \"border-spacing\",\n \"border-start-end-radius\",\n \"border-start-start-radius\",\n \"border-style\",\n \"border-top\",\n \"border-top-color\",\n \"border-top-left-radius\",\n \"border-top-right-radius\",\n \"border-top-style\",\n \"border-top-width\",\n \"border-width\",\n \"bottom\",\n \"box-align\",\n \"box-decoration-break\",\n \"box-direction\",\n \"box-flex\",\n \"box-flex-group\",\n \"box-lines\",\n \"box-ordinal-group\",\n \"box-orient\",\n \"box-pack\",\n \"box-shadow\",\n \"box-sizing\",\n \"break-after\",\n \"break-before\",\n \"break-inside\",\n \"caption-side\",\n \"caret-color\",\n \"clear\",\n \"clip\",\n \"clip-path\",\n \"color\",\n \"color-adjust\",\n \"color-scheme\",\n \"column-count\",\n \"column-fill\",\n \"column-gap\",\n \"column-rule\",\n \"column-rule-color\",\n \"column-rule-style\",\n \"column-rule-width\",\n \"column-span\",\n \"column-width\",\n \"columns\",\n \"contain\",\n \"content\",\n \"content-visibility\",\n \"counter-increment\",\n \"counter-reset\",\n \"counter-set\",\n \"cursor\",\n \"direction\",\n \"display\",\n \"empty-cells\",\n \"filter\",\n \"flex\",\n \"flex-basis\",\n \"flex-direction\",\n \"flex-flow\",\n \"flex-grow\",\n \"flex-shrink\",\n \"flex-wrap\",\n \"float\",\n \"font\",\n \"font-family\",\n \"font-feature-settings\",\n \"font-kerning\",\n \"font-language-override\",\n \"font-optical-sizing\",\n \"font-variation-settings\",\n \"font-size\",\n \"font-size-adjust\",\n \"font-smooth\",\n \"font-stretch\",\n \"font-style\",\n \"font-synthesis\",\n \"font-variant\",\n \"font-variant-alternates\",\n \"font-variant-caps\",\n \"font-variant-east-asian\",\n \"font-variant-ligatures\",\n \"font-variant-numeric\",\n \"font-variant-position\",\n \"font-weight\",\n \"forced-color-adjust\",\n \"gap\",\n \"grid\",\n \"grid-area\",\n \"grid-auto-columns\",\n \"grid-auto-flow\",\n \"grid-auto-rows\",\n \"grid-column\",\n \"grid-column-end\",\n \"grid-column-gap\",\n \"grid-column-start\",\n \"grid-gap\",\n \"grid-row\",\n \"grid-row-end\",\n \"grid-row-gap\",\n \"grid-row-start\",\n \"grid-template\",\n \"grid-template-areas\",\n \"grid-template-columns\",\n \"grid-template-rows\",\n \"hanging-punctuation\",\n \"height\",\n \"hyphens\",\n \"image-orientation\",\n \"image-rendering\",\n \"image-resolution\",\n \"ime-mode\",\n \"initial-letter\",\n \"initial-letter-align\",\n \"inline-size\",\n \"inset\",\n \"inset-block\",\n \"inset-block-end\",\n \"inset-block-start\",\n \"inset-inline\",\n \"inset-inline-end\",\n \"inset-inline-start\",\n \"isolation\",\n \"justify-content\",\n \"justify-items\",\n \"justify-self\",\n \"justify-tracks\",\n \"left\",\n \"letter-spacing\",\n \"line-break\",\n \"line-clamp\",\n \"line-height\",\n \"line-height-step\",\n \"list-style\",\n \"list-style-image\",\n \"list-style-position\",\n \"list-style-type\",\n \"margin\",\n \"margin-block\",\n \"margin-block-end\",\n \"margin-block-start\",\n \"margin-bottom\",\n \"margin-inline\",\n \"margin-inline-end\",\n \"margin-inline-start\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"margin-trim\",\n \"mask\",\n \"mask-border\",\n \"mask-border-mode\",\n \"mask-border-outset\",\n \"mask-border-repeat\",\n \"mask-border-slice\",\n \"mask-border-source\",\n \"mask-border-width\",\n \"mask-clip\",\n \"mask-composite\",\n \"mask-image\",\n \"mask-mode\",\n \"mask-origin\",\n \"mask-position\",\n \"mask-repeat\",\n \"mask-size\",\n \"mask-type\",\n \"masonry-auto-flow\",\n \"math-style\",\n \"max-block-size\",\n \"max-height\",\n \"max-inline-size\",\n \"max-lines\",\n \"max-width\",\n \"min-block-size\",\n \"min-height\",\n \"min-inline-size\",\n \"min-width\",\n \"mix-blend-mode\",\n \"object-fit\",\n \"object-position\",\n \"offset\",\n \"offset-anchor\",\n \"offset-distance\",\n \"offset-path\",\n \"offset-position\",\n \"offset-rotate\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"outline\",\n \"outline-color\",\n \"outline-offset\",\n \"outline-style\",\n \"outline-width\",\n \"overflow\",\n \"overflow-anchor\",\n \"overflow-block\",\n \"overflow-clip-box\",\n \"overflow-clip-margin\",\n \"overflow-inline\",\n \"overflow-wrap\",\n \"overflow-x\",\n \"overflow-y\",\n \"overscroll-behavior\",\n \"overscroll-behavior-block\",\n \"overscroll-behavior-inline\",\n \"overscroll-behavior-x\",\n \"overscroll-behavior-y\",\n \"padding\",\n \"padding-block\",\n \"padding-block-end\",\n \"padding-block-start\",\n \"padding-bottom\",\n \"padding-inline\",\n \"padding-inline-end\",\n \"padding-inline-start\",\n \"padding-left\",\n \"padding-right\",\n \"padding-top\",\n \"page-break-after\",\n \"page-break-before\",\n \"page-break-inside\",\n \"paint-order\",\n \"perspective\",\n \"perspective-origin\",\n \"place-content\",\n \"place-items\",\n \"place-self\",\n \"pointer-events\",\n \"position\",\n \"quotes\",\n \"resize\",\n \"right\",\n \"rotate\",\n \"row-gap\",\n \"ruby-align\",\n \"ruby-merge\",\n \"ruby-position\",\n \"scale\",\n \"scrollbar-color\",\n \"scrollbar-gutter\",\n \"scrollbar-width\",\n \"scroll-behavior\",\n \"scroll-margin\",\n \"scroll-margin-block\",\n \"scroll-margin-block-start\",\n \"scroll-margin-block-end\",\n \"scroll-margin-bottom\",\n \"scroll-margin-inline\",\n \"scroll-margin-inline-start\",\n \"scroll-margin-inline-end\",\n \"scroll-margin-left\",\n \"scroll-margin-right\",\n \"scroll-margin-top\",\n \"scroll-padding\",\n \"scroll-padding-block\",\n \"scroll-padding-block-start\",\n \"scroll-padding-block-end\",\n \"scroll-padding-bottom\",\n \"scroll-padding-inline\",\n \"scroll-padding-inline-start\",\n \"scroll-padding-inline-end\",\n \"scroll-padding-left\",\n \"scroll-padding-right\",\n \"scroll-padding-top\",\n \"scroll-snap-align\",\n \"scroll-snap-coordinate\",\n \"scroll-snap-destination\",\n \"scroll-snap-points-x\",\n \"scroll-snap-points-y\",\n \"scroll-snap-stop\",\n \"scroll-snap-type\",\n \"scroll-snap-type-x\",\n \"scroll-snap-type-y\",\n \"shape-image-threshold\",\n \"shape-margin\",\n \"shape-outside\",\n \"tab-size\",\n \"table-layout\",\n \"text-align\",\n \"text-align-last\",\n \"text-combine-upright\",\n \"text-decoration\",\n \"text-decoration-color\",\n \"text-decoration-line\",\n \"text-decoration-skip\",\n \"text-decoration-skip-ink\",\n \"text-decoration-style\",\n \"text-decoration-thickness\",\n \"text-emphasis\",\n \"text-emphasis-color\",\n \"text-emphasis-position\",\n \"text-emphasis-style\",\n \"text-indent\",\n \"text-justify\",\n \"text-orientation\",\n \"text-overflow\",\n \"text-rendering\",\n \"text-shadow\",\n \"text-size-adjust\",\n \"text-transform\",\n \"text-underline-offset\",\n \"text-underline-position\",\n \"top\",\n \"touch-action\",\n \"transform\",\n \"transform-box\",\n \"transform-origin\",\n \"transform-style\",\n \"transition\",\n \"transition-delay\",\n \"transition-duration\",\n \"transition-property\",\n \"transition-timing-function\",\n \"translate\",\n \"unicode-bidi\",\n \"user-select\",\n \"vertical-align\",\n \"visibility\",\n \"white-space\",\n \"widows\",\n \"width\",\n \"will-change\",\n \"word-break\",\n \"word-spacing\",\n \"word-wrap\",\n \"writing-mode\",\n \"z-index\",\n \"zoom\"\n]\n","import { StylixContext, StylixPublicContext } from '../StylixProvider';\nimport { cleanStyles } from './cleanStyles';\nimport { defaultPixelUnits } from './defaultUnits';\nimport { flattenNestedStyles } from './flattenNestedStyles';\nimport { mediaArrays } from './mediaArrays';\nimport { merge$css } from './merge$css';\nimport { propCasing } from './propCasing';\nimport { replace$$class } from './replace$$class';\nimport { themeFunctions } from './themeFunctions';\n\n/**\n * Stylix plugin function context object\n */\nexport type StylixPluginFunctionContext = StylixPublicContext & { hash: string | null };\n\n/**\n * Stylix plugin interface\n */\nexport interface StylixPlugin {\n name: string;\n type: 'initialize' | 'processStyles' | 'preprocessStyles';\n plugin(ctx: StylixPluginFunctionContext, styles: any): any;\n before?: StylixPlugin;\n after?: StylixPlugin;\n atIndex?: number;\n}\n\nexport function applyPlugins(\n type: StylixPlugin['type'],\n styles: any,\n hash: string | null,\n context: StylixContext,\n) {\n const pluginContext = {\n id: context.id,\n devMode: context.devMode,\n theme: context.theme,\n media: context.media,\n stylesheet: context.stylesheet,\n styleElement: context.styleElement,\n styleProps: context.styleProps,\n hash,\n };\n\n let processedStyles = styles;\n for (const i in context.plugins) {\n const plugin = context.plugins[i];\n if (plugin.type === type) processedStyles = plugin.plugin(pluginContext, processedStyles);\n }\n return processedStyles;\n}\n\nexport { customProps } from './customProps';\n\nexport const defaultPlugins = {\n themeFunctions,\n merge$css,\n mediaArrays,\n propCasing,\n flattenNestedStyles,\n replace$$class,\n defaultPixelUnits,\n cleanStyles,\n};\n","import { isPlainObject } from '../util/isPlainObject';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\n\nfunction cleanObject(object: any): any {\n for (const key in object) {\n const value = object[key];\n if (value === null || value === undefined || value === '') delete object[key];\n else if (isPlainObject(value) || Array.isArray(value)) {\n cleanObject(value);\n if (!Object.keys(value).length) delete object[key];\n }\n }\n return object;\n}\n\n/**\n * Fixes casing and hyphenation on known style props\n */\nexport const cleanStyles: StylixPlugin = {\n name: 'cleanStyles',\n type: 'processStyles',\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n return cleanObject(styles);\n },\n};\n","/**\n * Indicates that an object is most likely just an object literal.\n */\nexport function isPlainObject(obj: any): obj is Record<string, any> {\n return typeof obj === 'object' && obj?.constructor === Object;\n}\n","import { mapObjectRecursive } from '../util/mapObjectRecursive';\nimport { StylixPlugin } from './index';\n\nexport const defaultIgnoreUnits = [\n 'columns',\n 'column-count',\n 'fill-opacity',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'font-weight',\n 'line-height',\n 'opacity',\n 'orphans',\n 'stroke-opacity',\n 'widows',\n 'z-index',\n 'zoom',\n 'order',\n];\n\n/**\n * Adds unit (px, em, etc) to numeric values for any style properties not included in `ignoreProps`..\n */\nexport const defaultUnits = (unit = 'px', ignoreProps = defaultIgnoreUnits): StylixPlugin => {\n return {\n name: 'defaultUnits',\n type: 'processStyles',\n plugin(ctx, styles: any) {\n return mapObjectRecursive(styles, defaultUnitsMap, { unit, ignoreProps });\n },\n };\n};\n\nconst defaultUnitsMap = (key: string | number, value: any, object :any, ctx:any) => {\n if (typeof value === 'number' && !ctx.ignoreProps.includes(key as string)) {\n return { [key]: String(value) + ctx.unit };\n }\n};\n\nexport const defaultPixelUnits = defaultUnits();\n","import { isPlainObject } from './isPlainObject';\n\n/**\n * Invokes `map` on each key/value pair in `object`. The key/value pair is deleted from the object and replaced by\n * merging in the object returned from `map`. Recursively descends into all object and array values.\n * The `map` function will receive the key, the value, the current object being mapped, and a context object.\n * The context object is a plain object that you can modify as needed. The value will persist to subsequent calls to\n * `map` on child properties of `value`.\n */\nexport function mapObjectRecursive(\n object: any,\n map: (\n key: string | number,\n value: any,\n object: any,\n context: any,\n ) => Record<string | number, any> | undefined,\n context: any = {},\n) {\n const clone: any = Array.isArray(object) ? [] : {};\n\n for (const k of Object.keys(object)) {\n let key: string | number = k;\n const value = object[key];\n\n if (Array.isArray(object)) key = +key;\n const contextClone = { ...context };\n let result = map(key, value, object, contextClone);\n if (typeof result !== 'undefined' && typeof result !== 'object' && !Array.isArray(result))\n throw new Error(\n 'mapObjectRecursive: return value of map function must be undefined, object, or array!',\n );\n if (typeof result === 'undefined') {\n result = { [key]: value };\n }\n for (const kk in result) {\n let value = result[kk];\n if (isPlainObject(value) || Array.isArray(value))\n value = mapObjectRecursive(value, map, contextClone);\n if (typeof value !== 'undefined') clone[kk] = value;\n }\n }\n\n return clone;\n}\n","import { isPlainObject } from '../util/isPlainObject';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\n\nfunction flatten(styles: any, parent: any, selector: string, root: any, mediaRoot: any) {\n for (let key in styles) {\n const value = styles[key];\n if (key.startsWith('@media')) {\n // Flatten media queries, but nest them under the root object\n root[key] = root[key] || {};\n flatten(value, root[key], selector, root, root[key]);\n } else if (key.startsWith('@keyframes')) {\n // Add keyframe rules as-is directly to mediaRoot object\n mediaRoot[key] = value;\n } else if (isPlainObject(styles[key])) {\n // Concatenate or replace & in selectors and then continue flattening styles\n if (key.includes('&')) {\n key = key.replace(/&/g, selector);\n } else {\n key = (selector + ' ' + key).trim();\n }\n parent[key] = parent[key] || {};\n flatten(value, parent, key, root, mediaRoot);\n } else {\n // Selector is just a css property\n parent[selector] = parent[selector] || {};\n parent[selector][key] = styles[key];\n }\n }\n}\n\n/**\n * Flattens nested style objects that use `&` to reference parent class.\n */\nexport const flattenNestedStyles: StylixPlugin = {\n name: 'flattenNestedStyles',\n type: 'processStyles',\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n const flattened = {};\n flatten(styles, flattened, '', flattened, flattened);\n return flattened;\n },\n};\n","import { isPlainObject } from '../util/isPlainObject';\nimport { mapObjectRecursive } from '../util/mapObjectRecursive';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\n\n/**\n * Expands arrays as media queries.\n */\nexport const mediaArrays: StylixPlugin = {\n name: 'mediaArrays',\n type: 'processStyles',\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n // Fill out ditto values\n styles = mapObjectRecursive(styles, mapDittoValues);\n const mediaStyles: any = {};\n let nonMediaStyles = styles;\n for (const i in ctx.media) {\n const mediaQuery = ctx.media[i];\n if (!mediaQuery) {\n nonMediaStyles = mapObjectRecursive(styles, mapNonMedia, { i });\n } else {\n mediaStyles[`@media ${mediaQuery}`] = mapObjectRecursive(styles, mapMediaStyles, { i });\n }\n }\n return { ...nonMediaStyles, ...mediaStyles };\n },\n};\n\nfunction mapDittoValues(key: string | number, value: any) {\n if (Array.isArray(value)) {\n for (const i in value) {\n const v = value[i];\n if (v === '@') value[i] = value[+i - 1];\n }\n return { [key]: value };\n }\n}\n\nfunction mapNonMedia(key: string| number, value: any, object: any, context: any) {\n if (Array.isArray(value)) {\n return { [key]: value[context.i] };\n }\n}\n\nfunction mapMediaStyles(key: string | number, value: any, object: any, context: any) {\n if (typeof key === 'number') return; // Not possible, but here for TS\n if (key.startsWith('@keyframes')) context.keyframes = true;\n if (Array.isArray(value)) {\n return { [key]: value[context.i] };\n }\n if (isPlainObject(value) || context.keyframes) {\n return;\n }\n // delete key/value pair if primitive\n return { [key]: undefined };\n}\n","import { flatten } from '../util/flatten';\nimport { isPlainObject } from '../util/isPlainObject';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\n\n/**\n * Merges $css property into parent styles\n */\nexport const merge$css: StylixPlugin = {\n name: 'merge$css',\n type: 'processStyles',\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n const result = {};\n _merge$css(styles, result);\n return result;\n },\n};\n\nexport function _merge$css(obj: any, ctx: any) {\n if (!isPlainObject(obj)) return;\n for (const key in obj) {\n if (key === '$css') {\n const $css = obj[key];\n if (Array.isArray($css)) {\n const flat$css = flatten($css);\n for (const val of flat$css) {\n _merge$css(val, ctx);\n }\n } else {\n _merge$css($css, ctx);\n }\n } else {\n let value = obj[key];\n if (isPlainObject(value)) {\n value = ctx[key] || {};\n _merge$css(obj[key], value);\n }\n ctx[key] = value;\n }\n }\n}\n","/**\n * Flatten an array recursively.\n */\nexport function flatten<TEntryType>(array: unknown[]): TEntryType[] {\n const result: unknown[] = [];\n _flatten(array, result);\n return result as TEntryType[];\n}\n\nfunction _flatten(array: unknown[], result: unknown[]): void {\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n Array.isArray(value) ? _flatten(value as any, result) : result.push(value);\n }\n}\n","import { simplifyStylePropName } from '../classifyProps';\nimport { mapObjectRecursive } from '../util/mapObjectRecursive';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\n\n/**\n * Fixes casing and hyphenation on known style props\n */\nexport const propCasing: StylixPlugin = {\n name: 'propCasing',\n type: 'processStyles',\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n return mapObjectRecursive(styles, propCasingMap, { ctx });\n },\n};\n\nfunction propCasingMap(key: string | number, value: any, object: any, context: any) {\n if (typeof key !== 'string') return;\n const simpleKey = simplifyStylePropName(key);\n if (simpleKey in context.ctx.styleProps) {\n return { [context.ctx.styleProps[simpleKey]]: value };\n }\n}\n","import { mapObjectRecursive } from '../util/mapObjectRecursive';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\n\n/**\n * Replaces $$class with hash in string values\n */\nexport const replace$$class: StylixPlugin = {\n name: 'replace$$class',\n type: 'processStyles',\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n return mapObjectRecursive(styles, replace$$classMap, { ctx });\n },\n};\n\nfunction replace$$classMap(key: string | number, value: any, object: any, context: any) {\n value = typeof value === 'string' ? value.replace('$$class', context.ctx.hash) : value;\n key = typeof key === 'string' ? key.replace('$$class', context.ctx.hash) : key;\n return { [key]: value };\n}\n","import { mapObjectRecursive } from '../util/mapObjectRecursive';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\n\n/**\n * Evaluates functions in style objects, providing the theme and media from the current Stylix context.\n */\nexport const themeFunctions: StylixPlugin = {\n name: 'themeFunctions',\n type: 'preprocessStyles',\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n return mapObjectRecursive(styles, themeFunctionsMap, { ctx });\n },\n};\n\nfunction themeFunctionsMap(key: string | number, value: any, object: any, context: any) {\n if (typeof value === 'function') {\n return { [key]: value(context.ctx.theme, context.ctx) };\n }\n}\n","import { isValidJSXProp, simplifyStylePropName } from '../classifyProps';\nimport { isPlainObject } from '../util/isPlainObject';\nimport { walkRecursive } from '../util/walkRecursive';\nimport { StylixPlugin, StylixPluginFunctionContext } from './index';\nimport { mediaArrays } from './mediaArrays';\n\nexport const customProps = (customProps: Record<string, any>): StylixPlugin[] => {\n for (const key in customProps) {\n customProps[simplifyStylePropName(key)] = customProps[key];\n }\n\n return [\n {\n name: 'customPropsInit',\n type: 'initialize',\n plugin(ctx: StylixPluginFunctionContext) {\n for (const key in customProps) {\n ctx.styleProps[simplifyStylePropName(key)] = key;\n }\n },\n },\n {\n name: 'customPropsProcess',\n type: 'processStyles',\n before: mediaArrays,\n plugin(ctx: StylixPluginFunctionContext, styles: any) {\n return walkRecursive(styles, (key, value, object) => {\n if (!isValidJSXProp(key) || isPlainObject(value)) return;\n\n const simpleKey = simplifyStylePropName(key);\n const propValue = customProps[simpleKey];\n if (!propValue) return;\n\n const objectClone = { ...object };\n const keys = Object.keys(object);\n const afterKeys = keys.slice(keys.indexOf(key) + 1);\n\n const newStyles: any = {};\n if (typeof propValue === 'object') {\n if (value) Object.assign(newStyles, propValue);\n } else if (typeof propValue === 'string') {\n newStyles[propValue] = value;\n } else if (typeof propValue === 'function') {\n Object.assign(newStyles, propValue(value));\n }\n delete object[key];\n Object.assign(object, newStyles);\n for (const k of afterKeys) {\n const val = objectClone[k];\n delete object[k];\n object[k] = val;\n }\n });\n },\n },\n ];\n};\n","import { cloneDeep } from './cloneDeep';\nimport { isPlainObject } from './isPlainObject';\n\n/**\n * Invokes a callback for each key/value pair in `object`, and continues recursively on each value that is an array or a\n * plain object. Returns `object`.\n * The `cb` function will receive the key, the value, the current object being mapped, and a context object.\n * The context object is a plain object that you can modify as needed. The value will persist to subsequent calls to\n * `map` on child properties of `value`.\n */\nexport function walkRecursive<T extends Record<string, any> = any>(\n object: T,\n cb: (key: string, value: any, currentObject: any, context: any) => void,\n context?: any,\n): T {\n const keys = Object.keys(object);\n for (const key of keys) {\n const value = object[key];\n cb(key, value, object, context);\n if (Array.isArray(value) || isPlainObject(value)) {\n const contextClone = cloneDeep(context);\n walkRecursive(value, cb, contextClone);\n }\n }\n return object;\n}\n","import { isPlainObject } from './isPlainObject';\n\n/**\n * Deeply clones a value.\n */\nexport function cloneDeep<T>(value: T): T {\n if (!value || typeof value !== 'object') return value;\n if (Array.isArray(value)) {\n const clone: any = [];\n for (let index = 0; index < value.length; ++index) {\n clone.push(cloneDeep(value[index]));\n }\n return clone;\n }\n if (isPlainObject(value)) {\n const clone: any = {};\n for (const key in value) {\n clone[key] = cloneDeep(value[key]);\n }\n return clone;\n }\n return value;\n}\n","import React, { createContext } from 'react';\n\nexport interface StyleCollector {\n collect: (element: React.ReactElement) => React.ReactElement;\n render: React.FC<React.ComponentProps<'style'>>;\n styles: string[];\n}\n\nexport const styleCollectorContext = createContext<string[]>(null);\n\nexport function createStyleCollector() {\n const styles: string[] = [];\n const collector: StyleCollector = {\n collect: (element) => (\n <styleCollectorContext.Provider value={styles}>{element}</styleCollectorContext.Provider>\n ),\n render: (props: React.ComponentProps<'style'>) => (\n <style\n type=\"text/css\"\n key={props.id || 'stylix'}\n {...props}\n dangerouslySetInnerHTML={{ __html: collector.styles.join(' ') }}\n />\n ),\n styles,\n };\n collector.render.displayName = 'StylixStyleCollectorRenderer';\n return collector;\n}\n","import { isPlainObject } from './isPlainObject';\n\nexport function merge<A>(a?: A): A;\nexport function merge<A, B>(a: A, b: B): A & B;\nexport function merge<A, B, C>(a: A, b: B, c: C): A & B & C;\nexport function merge<A, B, C, D>(a: A, b: B, c: C, d: D): A & B & C & D;\nexport function merge<A, B, C, D, E>(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E;\n\nexport function merge(...items: unknown[]) {\n items = items.filter((item) => typeof item !== 'undefined' && item !== null);\n if (!items?.length) return undefined;\n\n if (items.length === 1) return items[0];\n\n // If items are not all objects/arrays, return the last object/array if possible, otherwise last non-undefined value\n if (!items.every((item) => Array.isArray(item) || isPlainObject(item))) {\n items.reverse();\n return (\n items.find((item) => Array.isArray(item) || isPlainObject(item)) ||\n items.find((item) => typeof item !== 'undefined')\n );\n }\n\n const merged: any = Array.isArray(items[0]) ? [] : {};\n for (const item of items) {\n if (!Array.isArray(item) && !isPlainObject(item)) return merged;\n\n const keys: any[] = [...Object.keys(item), ...Object.getOwnPropertySymbols(item)];\n for (const key of keys) {\n const result = merge(merged[key], item[key]);\n if (typeof result !== 'undefined') merged[key] = result;\n }\n }\n return merged;\n}\n","import { useLayoutEffect } from 'react';\n\nconst useIsoLayoutEffect =\n typeof window !== 'undefined' && 'document' in window\n ? (fn: () => void | (() => void), deps?: unknown[], _runOnSsr?: boolean) => useLayoutEffect(fn, deps)\n : (fn: () => void | (() => void), _deps?: unknown[], runOnSsr?: boolean) => (runOnSsr ? fn() : null);\n\nexport default useIsoLayoutEffect;\n","import { useRef } from 'react';\n\nimport applyRules from './applyRules';\nimport { getParentComponentName } from './getParentComponentName';\nimport { applyPlugins } from './plugins';\nimport stylesToRuleArray from './stylesToRuleArray';\nimport { StylixContext, useStylixContext } from './StylixProvider';\nimport { StylixStyles } from './types';\nimport { hashString } from './util/hashString';\nimport useIsoLayoutEffect from './util/useIsoLayoutEffect';\n\nfunction cleanup(ctx: StylixContext): void {\n if (typeof ctx.cleanupRequest !== 'undefined') return;\n\n ctx.cleanupRequest = setTimeout(() => {\n let deleted = false;\n\n for (const i in ctx.rules) {\n const rule = ctx.rules[i];\n if (!rule.refs) {\n delete ctx.rules[rule.hash];\n deleted = true;\n }\n }\n deleted && applyRules(ctx);\n\n delete ctx.cleanupRequest;\n }, 100) as any;\n}\n\nfunction compare(a: any, b: any): any {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (typeof a === 'object') {\n if (Array.isArray(a) && Array.isArray(b) && a.length !== b.length) return false;\n else if (Object.keys(a).length !== Object.keys(b).length) return false;\n for (const key in b) {\n if (!compare(a[key], b[key])) return false;\n }\n }\n return a === b;\n}\n\n/**\n * Accepts a Stylix CSS object and returns a unique className based on the styles' hash.\n * The styles are registered with the Stylix context and will be applied to the document.\n * If `global` is false, provided styles will be nested within the generated classname.\n * Returns the className hash if enabled, or an empty string.\n */\nexport function useStyles(\n styles: Record<string, any> | undefined,\n options: { global?: boolean; disabled?: boolean; debugLabel?: string } = {\n global: false,\n disabled: false,\n },\n): string {\n const stylixCtx = useStylixContext();\n\n const prevRef = useRef({ styles: {}, hash: '' } as any);\n\n const changed = !compare(styles, prevRef.current.styles);\n\n options.debugLabel ||= !!stylixCtx.devMode && getParentComponentName();\n prevRef.current.styles = styles;\n\n if (changed) {\n // Preprocess styles with plugins\n if (!options.disabled && styles)\n styles = applyPlugins('preprocessStyles', styles, null, stylixCtx);\n\n // Serialize value and generate hash\n const json = !options.disabled && styles && JSON.stringify(styles);\n prevRef.current.hash =\n json && json !== '{}' && json !== '[]'\n ? hashString(JSON.stringify(stylixCtx.media || []) + json) +\n (options.debugLabel ? '-' + options.debugLabel : '')\n : '';\n }\n\n const { hash } = prevRef.current;\n\n if (hash && changed && !stylixCtx.rules[hash]) {\n // If not global styles, wrap original styles with classname\n if (!options.global) styles = { ['.' + hash]: styles };\n stylixCtx.rules[hash] = {\n hash,\n rules: stylesToRuleArray(styles, hash, stylixCtx),\n refs: 1,\n };\n stylixCtx.requestApply = true;\n }\n\n // Apply styles if requested.\n // This runs on every render. We utilize useLayoutEffect so that it runs *after* all the other\n // renders have completed. stylixCtx.requestApply guards against multiple runs. This reduces the number of calls\n // to applyRules(), but prevents styles potentially being added to the DOM after other components force the\n // browser to compute styles.\n useIsoLayoutEffect(\n () => {\n if (!stylixCtx.requestApply) return;\n stylixCtx.requestApply = false;\n applyRules(stylixCtx);\n },\n undefined,\n true,\n );\n\n // When hash changes, add/remove ref count\n useIsoLayoutEffect(\n () => {\n if (!hash || !changed) return;\n\n if (stylixCtx.rules[hash]) {\n stylixCtx.rules[hash].refs++;\n }\n\n return () => {\n stylixCtx.rules[hash].refs--;\n cleanup(stylixCtx);\n };\n },\n [hash],\n false,\n );\n\n return hash;\n}\n\nexport function useKeyframes(\n keyframes: any,\n options: { disabled?: boolean } = { disabled: false },\n) {\n return useStyles({ '@keyframes $$class': keyframes }, { global: true, ...options });\n}\n\nexport function useGlobalStyles(\n styles: StylixStyles,\n options: { disabled?: boolean } = { disabled: false },\n) {\n return useStyles(styles, { ...options, global: true });\n}\n","import { StylixContext } from './StylixProvider';\n\n/**\n * Applies rules from given StylixContext to the <style> element.\n */\nexport default function applyRules(ctx: StylixContext): void {\n const flattenedRules: string[] = [];\n\n for (const key in ctx.rules) {\n const val = ctx.rules[key];\n flattenedRules.push(...val.rules);\n }\n\n if (ctx.styleCollector) {\n ctx.styleCollector.length = 0;\n ctx.styleCollector.push(...flattenedRules);\n return;\n }\n\n if (ctx.devMode) {\n ctx.styleElement.innerHTML = flattenedRules.join('\\n');\n } else {\n const stylesheet = ctx.stylesheet;\n if (stylesheet.cssRules) {\n try {\n stylesheet.replaceSync(flattenedRules.join('\\n'));\n } catch (e) {\n // Errors are ignored, this just means that a browser doesn't support a certain CSS feature.\n console.warn(e);\n }\n } else {\n // Legacy method\n while (stylesheet.rules.length) {\n stylesheet.deleteRule(0);\n }\n for (const i in flattenedRules)\n try {\n stylesheet.insertRule(flattenedRules[i], +i);\n } catch (e) {\n // Errors are ignored, this just means that a browser doesn't support a certain CSS feature.\n console.warn(e);\n }\n }\n }\n}\n","import React from 'react';\n\nexport function getParentComponentName() {\n return React[\n '__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED'\n ]?.ReactDebugCurrentFrame?.getStackAddendum?.()\n ?.split('\\n')\n ?.map((line) => {\n // Look for a component name like \"Component$123\", either at the start of the line (Firefox) or after \"at \" (Safari/Chrome)\n const m = line.match(/^([A-Z][A-Za-z0-9$]*)|^\\s*at ([A-Z][A-Za-z0-9$]*)/);\n return m?.[1] || m?.[2];\n })\n .filter(Boolean)\n .reverse()\n .slice(-1)[0];\n}\n","import { applyPlugins } from './plugins';\nimport { StylixContext } from './StylixProvider';\nimport { StylixObject } from './types';\nimport { isPlainObject } from './util/isPlainObject';\n\n/**\n * Converts a Stylix CSS object to an array of rules, suitable for passing to StyleSheet#insertRule.\n */\nexport default function stylesToRuleArray(\n styles: StylixObject,\n hash: string,\n context: StylixContext,\n): string[] {\n try {\n const processedStyles = applyPlugins('processStyles', styles, hash, context);\n\n // serialize to css rules array\n const serialize = function serialize(selector: string, styles: StylixObject) {\n const lines: string[] = [];\n for (const key in styles) {\n const value = styles[key];\n if (isPlainObject(value)) lines.push(serialize(key, value));\n else lines.push(` ${key}: ${value};`);\n }\n return `${selector} {\\n${lines.join('\\n')} }`;\n };\n\n const result: string[] = [];\n for (const key in processedStyles) {\n const value = processedStyles[key];\n result.push(serialize(key, value));\n }\n return result;\n } catch (e) {\n if (e.name && e.reason) {\n console.error(\n `${e.name}: ${e.reason}\\n`,\n e.source.replace('\\n', ' ').substr(Math.max(0, e.column - 20), 100) + '\\n',\n ' '.repeat(20) + '^',\n );\n } else {\n console.error(e);\n }\n return [];\n }\n}\n","/**\n * Cheap string hashing, suitable for generating css class names\n */\nexport function hashString(str: string): string {\n let hash = 5381;\n let i = str.length;\n while (i) hash = (hash * 33) ^ str.charCodeAt(--i);\n return 'stylix-' + (hash >>> 0).toString(36);\n}\n","import React from 'react';\n\nimport { _Stylix } from './Stylix';\nimport { Extends, StylixComponentMeta, StylixStyleProps } from './types';\n\nexport type StylixStyledComponentWithProps<TProps> = React.FC<Extends<TProps, StylixStyleProps>> &\n StylixComponentMeta;\n\nexport type StylixStyledComponent<TComponent extends HtmlOrComponent> =\n StylixStyledComponentWithProps<HtmlOrComponentProps<TComponent>>;\n\nexport type HtmlOrComponent =\n | keyof JSX.IntrinsicElements\n | React.ForwardRefRenderFunction<any, any>;\n\nexport type HtmlOrComponentProps<TComponent extends HtmlOrComponent> =\n TComponent extends keyof JSX.IntrinsicElements\n ? React.ComponentPropsWithRef<TComponent>\n : TComponent extends React.ForwardRefRenderFunction<infer R, infer P>\n ? P & React.RefAttributes<R>\n : never;\n\nexport function styled<\n TComponent extends HtmlOrComponent,\n TPropMap extends Record<string, string> = Record<string, never>,\n>(\n $el: TComponent,\n addProps?: Extends<StylixStyleProps, Partial<HtmlOrComponentProps<TComponent>>>,\n conflictingPropMapping?: TPropMap,\n): StylixStyledComponent<TComponent> {\n const Element: any = typeof $el === 'string' ? ($el as any) : React.forwardRef($el);\n const r: any = React.forwardRef((props: Record<string, any>, ref: React.Ref<unknown>) => {\n if (conflictingPropMapping) {\n for (const k in conflictingPropMapping) {\n props[conflictingPropMapping[k]] = (props as any)[k];\n delete props[k];\n }\n }\n return _Stylix(\n {\n $el: Element,\n ...addProps,\n ...props,\n ...(addProps?.$css || props?.$css\n ? { $css: [addProps?.$css, props?.$css].filter(Boolean) }\n : {}),\n },\n ref as any,\n );\n });\n r.displayName = `$.${\n ($el as React.FC).displayName ||\n ($el as React.FC).name ||\n ($el as string).toString?.() ||\n 'Unnamed'\n }`;\n r.__isStylix = true;\n return r;\n}\n","import React from 'react';\n\nimport { classifyProps } from './classifyProps';\nimport { useStylixContext } from './StylixProvider';\nimport { Stylix$Component, Stylix$Props } from './types';\nimport { useStyles } from './useStyles';\n\nexport function _Stylix<ElType extends React.ElementType>(\n props: Stylix$Props<ElType>,\n ref: React.Ref<ElType>,\n) {\n const { $el, $css, $disabled, className, children, ...rest } = props as any;\n\n const ctx = useStylixContext();\n const [styleProps, otherProps] = classifyProps(rest, ctx.styleProps);\n if ($css) styleProps.$css = $css;\n const hash = useStyles(styleProps, { disabled: $disabled });\n\n const allProps = {\n className: `${hash} ${className || ''}`.trim(),\n ref: ref,\n ...otherProps, // All other non-style props passed to <$> element\n };\n\n if (React.isValidElement($el)) {\n const $elProps = {\n ...($el.props as any),\n /**\n * `allProps` must override `$el.props` because the latter may contain default prop values provided by defaultProps.\n * The expectation is that for <$ $el={<SomeComponent />} someComponentProp=\"my value\" />,\n * the `someComponentProp` prop would override any default value specified by SomeComponent.defaultProps.\n */\n ...allProps,\n className: ((($el.props as any).className || '') + ' ' + allProps.className).trim(),\n };\n return React.cloneElement($el, $elProps, ...(React.Children.toArray(children) || []));\n }\n\n return <$el {...allProps}>{children}</$el>;\n}\n\nconst Stylix = React.forwardRef(_Stylix) as unknown as Stylix$Component;\nStylix.displayName = 'Stylix';\nStylix.__isStylix = true;\n\nexport default Stylix;\n","import htmlTags from './html-tags.json';\nimport { styled } from './styled';\nimport Stylix from './Stylix';\n\nfor (const i in htmlTags) {\n // Types are specified in ./types.ts, so we don't care what they type of htmlTags[i] is.\n // JSX.IntrinsicElements is a union of all HTML tags, so it is too complex for TypeScript to infer.\n const tag = htmlTags[i] as any;\n Stylix[tag] = styled(tag);\n}\n","[\n \"a\",\n \"abbr\",\n \"address\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"base\",\n \"bdi\",\n \"bdo\",\n \"blockquote\",\n \"body\",\n \"br\",\n \"button\",\n \"canvas\",\n \"caption\",\n \"cite\",\n \"code\",\n \"col\",\n \"colgroup\",\n \"data\",\n \"datalist\",\n \"dd\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"embed\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"html\",\n \"i\",\n \"iframe\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"label\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"map\",\n \"mark\",\n \"math\",\n \"menu\",\n \"menuitem\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"noscript\",\n \"object\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"output\",\n \"p\",\n \"param\",\n \"picture\",\n \"pre\",\n \"progress\",\n \"q\",\n \"rb\",\n \"rp\",\n \"rt\",\n \"rtc\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"section\",\n \"select\",\n \"slot\",\n \"small\",\n \"source\",\n \"span\",\n \"strong\",\n \"style\",\n \"sub\",\n \"summary\",\n \"sup\",\n \"svg\",\n \"table\",\n \"tbody\",\n \"td\",\n \"template\",\n \"textarea\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"time\",\n \"title\",\n \"tr\",\n \"track\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\"\n]\n"],"names":[],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/classifyProps.ts","../src/util/isEmpty.ts","../src/util/isPlainObject.ts","../src/plugins/cleanStyles.ts","../src/util/mapObject.ts","../src/plugins/defaultUnits.ts","../src/plugins/hoistKeyframes.ts","../src/plugins/mediaObjects.ts","../src/plugins/mergeArrays.ts","../src/plugins/prepareStyles.ts","../src/plugins/propCasing.ts","../src/plugins/replace$$class.ts","../src/plugins/customProps.ts","../src/plugins/index.ts","../src/StyleElement.tsx","../src/styleCollector.tsx","../src/util/useIsoLayoutEffect.ts","../src/StylixProvider.tsx","../src/applyRules.ts","../src/getParentComponentName.ts","../src/stylesToRuleArray.ts","../src/useStyles.ts","../src/Stylix.tsx","../src/elements.tsx","../src/RenderServerStyles.tsx"],"sourcesContent":["export function classifyProps(props: any, knownProps: Record<string, string>): [any, any] {\n const styles = {} as any;\n const other = {} as any;\n\n for (const prop in props) {\n // If prop is not a valid JSX prop, it must be a CSS selector.\n // If prop has a style prop name and the value is likely a style value, it's a style prop.\n if (!isValidJSXProp(prop) || isStyleProp(prop, knownProps)) {\n styles[prop] = props[prop];\n } else {\n other[prop] = props[prop];\n }\n }\n\n return [styles, other];\n}\n\n/**\n * Determines if `value` is a recognized CSS property (can be standard CSS or custom Stylix prop).\n */\nexport function isStyleProp(prop: unknown, knownProps: Record<string, string>): prop is string {\n return isValidJSXProp(prop) && simplifyStylePropName(prop) in knownProps;\n}\n\nexport function isValidJSXProp(value: unknown): value is string {\n // Not an exact check, but mostly rules out complex css selectors\n return typeof value === 'string' && /^[a-z$][a-z0-9_-]*$/i.test(value);\n}\n\nexport function simplifyStylePropName(value: string) {\n return value.toLowerCase().replace(/[^a-z]/g, '');\n}\n","export function isEmpty(obj: unknown) {\n if (!obj) return true;\n if (Array.isArray(obj)) return obj.length === 0;\n for (const _ in obj) return false;\n if (typeof obj === 'object') return true;\n return false;\n}\n","/**\n * Indicates that an object is most likely just an object literal.\n */\nexport function isPlainObject(value: any): value is Record<string, any> {\n if (!value || typeof value !== 'object') return false;\n return Object.getPrototypeOf(value) === Object.prototype;\n}\n","import { isEmpty } from '../util/isEmpty';\nimport { isPlainObject } from '../util/isPlainObject';\nimport type { StylixPlugin } from './index';\n\nexport function _cleanStyles(object: any): void {\n for (const key in object) {\n const value = object[key];\n if (value === null || value === undefined || value === '' || value === false)\n delete object[key];\n else if (isPlainObject(value) || Array.isArray(value)) {\n _cleanStyles(value);\n if (isEmpty(value)) delete object[key];\n }\n }\n}\n\n/**\n * Removes null, undefined, and empty string values from style objects.\n */\nexport const cleanStyles: StylixPlugin = {\n name: 'cleanStyles',\n type: 'processStyles',\n plugin(_ctx, styles) {\n _cleanStyles(styles);\n return styles;\n },\n};\n","export type MapObjectFunction = (\n key: string | number,\n value: any,\n source: unknown,\n context: any,\n mapRecursive: (value: unknown) => unknown,\n) => unknown;\n\n/**\n * Returns a new object or array, generated by invoking `map` on each key-value pair in `source` and merging the returned value into\n * the result. The return value should be an object or array (to match `source`), or undefined to omit the key-value pair from the result.\n *\n * If `source` is an object, Object.assign() will be used to merge the response into the result object.\n *\n * If `source` is an array, the returned array entries will be pushed onto the result array (i.e. it will be flattened, one level deep).\n *\n * The `map` function will receive the following arguments:\n * - The current key or index\n * - The current value\n * - The current object/array being mapped\n * - A context object. This is a plain object that you can modify as needed. The value will be shallow cloned for each key, and the clone\n * will be passed into the `mapRecursive` method in order to persist it in recursive mapping.\n * - A `mapRecursive` function that can be used to recursively map nested objects or arrays. You can call this by passing the current value,\n * which will run the same mapping function on the value and return the result. If the value is not an object or array, it will just\n * return the value. The mapping function will receive the context object for the current key, and any modifications made to the context\n * object will be persisted into the recursive call. This could be used, for example, to keep track of the current depth of the recursion\n * or the full path of the current value.\n *\n * Example:\n *\n * ```ts\n * const value = {\n * ignoreMe: null,\n * string: 'value',\n * object: {\n * a: 1,\n * b: 2,\n * },\n * array: [1, 2, 3, 4],\n * }\n * const result = mapObjectRecursive(value, (key, value, source, context) => {\n * if (key === 'ignoreMe')\n * return undefined; // will omit key from result\n * if (typeof key === 'string' && typeof value === 'string')\n * return { [key]: value + '-mapped' }; // will append '-mapped' to string values\n * if (typeof key === 'string' && typeof value === 'number')\n * return { [key]: value, [`${key}-mapped`]: value * 2 }; // will add a new key with the value doubled\n * if (typeof value === 'object')\n * return { [key]: value }; // will leave object unchanged\n * if (Array.isArray(source) && typeof value === 'number')\n * return [value, value * 2]; // will add the value and the value doubled to the array\n * });\n * // result:\n * // {\n * // string: 'value-mapped',\n * // object: {\n * // a: 1,\n * // 'a-mapped': 2,\n * // b: 2,\n * // 'b-mapped': 4,\n * // },\n * // array: [1, 2, 2, 4, 3, 6, 4, 8],\n * // }\n * ```\n */\nexport function mapObject<TSource>(\n source: TSource,\n map: MapObjectFunction,\n context: any = {},\n): TSource {\n if (typeof source !== 'object') return source;\n const result = Array.isArray(source) ? ([] as unknown[]) : ({} as Record<string, unknown>);\n for (const _key in source) {\n const key = Array.isArray(source) ? +_key : _key;\n const value = (source as any)[key];\n\n const contextClone = { ...context };\n const mapResult = map(key, value, source, contextClone, (value) =>\n mapObject(value, map, contextClone),\n );\n\n if (typeof mapResult === 'undefined') continue;\n\n if (Array.isArray(mapResult) && Array.isArray(source)) {\n (result as unknown[]).push(...mapResult);\n continue;\n }\n\n if (\n typeof mapResult === 'object' &&\n !Array.isArray(mapResult) &&\n typeof source === 'object' &&\n !Array.isArray(source)\n ) {\n Object.assign(result as object, mapResult);\n continue;\n }\n\n throw new Error(\n `mapObjectRecursive: return value of map function must be an object, array, or undefined, and must match the type of the source value. Type of source value was ${typeof source}, and type of returned value was ${typeof mapResult}.`,\n );\n }\n\n return result as TSource;\n}\n","import { type MapObjectFunction, mapObject } from '../util/mapObject';\nimport type { StylixPlugin } from './index';\n\nexport const defaultIgnoreUnits = [\n 'aspect-ratio',\n 'columns',\n 'column-count',\n 'fill-opacity',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'font-weight',\n 'line-height',\n 'opacity',\n 'orphans',\n 'stroke-opacity',\n 'widows',\n 'z-index',\n 'zoom',\n 'order',\n];\n\n/**\n * Adds unit (px, em, etc) to numeric values for any style properties not included in `ignoreProps`..\n */\nexport const defaultUnits = (unit = 'px', ignoreProps = defaultIgnoreUnits): StylixPlugin => {\n return {\n name: 'defaultUnits',\n type: 'processStyles',\n plugin(ctx, styles) {\n return mapObject(styles, defaultUnitsMap, { unit, ignoreProps });\n },\n };\n};\n\nconst defaultUnitsMap: MapObjectFunction = (key, value, object, ctx, mapRecursive) => {\n if (typeof value === 'number' && !ctx.ignoreProps.includes(key as string)) {\n return { [key]: String(value) + ctx.unit };\n }\n return { [key]: mapRecursive(value) };\n};\n\nexport const defaultPixelUnits = defaultUnits();\n","import { isPlainObject } from '../util/isPlainObject';\nimport type { StylixPlugin } from './index';\n\nfunction _hoistKeyframes(styles: any, root: any) {\n for (const key in styles) {\n const value = styles[key];\n if (key.startsWith('@keyframes')) {\n // Add keyframe rules as-is directly to root object\n root[key] = value;\n if (styles !== root) delete styles[key];\n } else if (isPlainObject(value)) {\n // Recursively flatten nested styles\n _hoistKeyframes(value, root);\n }\n }\n return styles;\n}\n\n/**\n * Hoists @keyframe declarations to root of styles object.\n */\nexport const hoistKeyframes: StylixPlugin = {\n name: 'hoistKeyframes',\n type: 'processStyles',\n plugin(ctx, styles) {\n return _hoistKeyframes(styles, styles);\n },\n};\n","import { simplifyStylePropName } from '../classifyProps';\nimport type { StylixObject, StylixStyles } from '../index';\nimport type { StylixPlugin, StylixPluginFunctionContext } from './index';\n\ntype OpaqueMediaStyles = { __opaqueMediaStyles: true };\n\nexport type StylixMediaValue = {\n [key: string]: OpaqueMediaStyles | StylixMediaValue;\n};\n\ntype StylixMediaFunc = (styles: OpaqueMediaStyles) => StylixMediaValue;\n\nexport type StylixMediaDefinition = Record<string, StylixMediaFunc>;\n\n/**\n * Expands media objects using the media definitions from the Stylix context.\n */\nexport const mediaObjects: StylixPlugin = {\n name: 'mediaObjects',\n type: 'processStyles',\n plugin: mediaObjectsPlugin,\n};\n\nfunction mediaObjectsPlugin(ctx: StylixPluginFunctionContext, styles: StylixStyles): StylixObject {\n if (!ctx.media) return styles as StylixObject;\n return processMediaStyles(ctx.media, ctx.styleProps, styles);\n}\n\nexport function processMediaStyles(\n mediaDef: StylixMediaDefinition,\n styleProps: Record<string, string>,\n styles: any,\n): any {\n if (!styles || typeof styles !== 'object') return styles;\n\n // If styles is an array, just recursively map it\n if (Array.isArray(styles)) {\n return styles.map((style: any) => processMediaStyles(mediaDef, styleProps, style));\n }\n\n mediaDef.default ||= (styles: any) => styles;\n\n const result = { default: [] } as Record<string, any[]>;\n\n for (const styleKey in styles) {\n const styleValue = styles[styleKey];\n\n if (styleProps[simplifyStylePropName(styleKey)]) {\n if (typeof styleValue !== 'object') {\n // Regular style prop\n result.default.push({ [styleKey]: styleValue });\n continue;\n }\n\n // An object for a style prop is definitely a media object\n for (const mediaKey in styleValue) {\n result[mediaKey] ||= [];\n result[mediaKey].push(\n mediaDef[mediaKey]({\n // process recursively\n [styleKey]: processMediaStyles(mediaDef, styleProps, styleValue[mediaKey]),\n } as OpaqueMediaStyles),\n );\n }\n continue;\n }\n\n if (styleKey in mediaDef) {\n result[styleKey] ||= [];\n result[styleKey].push(\n mediaDef[styleKey](\n // process recursively\n processMediaStyles(mediaDef, styleProps, styleValue),\n ),\n );\n continue;\n }\n\n // Key is a selector, just process recursively and add to plain styles\n result.default.push({ [styleKey]: processMediaStyles(mediaDef, styleProps, styleValue) });\n }\n\n const results = Object.values(result);\n return results.length === 1 ? results[0] : results.length === 0 ? null : results;\n}\n","import type { StylixObject, StylixStyles } from '../types';\nimport { isEmpty } from '../util/isEmpty';\nimport type { StylixPlugin } from './index';\n\n/**\n * Merges arrays into flat objects, recursively throughout the styles object.\n */\nexport const mergeArrays: StylixPlugin = {\n name: 'mergeArrays',\n type: 'processStyles',\n plugin: (_ctx, styles) => _mergeArrays(styles),\n};\n\nexport function _mergeArrays(obj: StylixStyles) {\n if (Array.isArray(obj)) return reduceArray(obj);\n return reduceObjectProperties(obj);\n}\n\nfunction reduceArray(arr: StylixStyles[]): StylixObject | undefined {\n arr = arr.flat();\n let target = arr[0] as StylixObject;\n\n for (let i = 1; i < arr.length; i++) {\n let source = arr[i] as StylixObject | undefined;\n\n if (Array.isArray(source)) {\n source = reduceArray(source);\n }\n\n // ignore falsy values\n if (typeof source === 'undefined') continue;\n\n // if both values are primitives, the source value takes precedence\n if (typeof target !== 'object' && typeof source !== 'object') {\n target = source;\n continue;\n }\n\n // if target is primitive but source is object, replace target with source\n if (typeof target !== 'object') {\n target = source;\n continue;\n }\n\n for (const key in source) {\n const value = source[key] as StylixStyles;\n // if the key does not exist in target, just add it\n if (!(key in target)) target[key] = value;\n // else, if the target value is an object or array:\n else if (typeof target[key] === 'object') {\n // if the source value is an object or array, convert target to array if necessary and push source value\n if (typeof value === 'object') {\n if (!Array.isArray(target[key])) target[key] = [target[key]];\n (target[key] as StylixStyles[]).push(value);\n }\n // else, ignore the source value (it's primitive; object values take precedence)\n }\n // else, target value is primitive, overwrite target value\n else {\n target[key] = value;\n }\n }\n }\n\n return reduceObjectProperties(target);\n}\n\nconst _reduced = Symbol('reduced');\n\nfunction reduceObjectProperties(\n obj: Exclude<StylixStyles, StylixStyles[]>,\n): StylixObject | undefined {\n if (!obj || isEmpty(obj)) return undefined;\n if (typeof obj !== 'object') return obj;\n if (obj?.[_reduced as any]) {\n return obj;\n }\n\n for (const k in obj) {\n if (!obj[k] || typeof obj[k] !== 'object') continue;\n obj[k] = _mergeArrays(obj[k] as StylixStyles);\n }\n\n Object.defineProperty(obj, _reduced as any, { value: true, enumerable: false });\n return obj;\n}\n","import { isPlainObject } from '../util/isPlainObject';\nimport type { StylixPlugin } from './index';\n\n/**\n * Removes null, undefined, and empty string values from style objects.\n */\nexport const prepareStyles: StylixPlugin = {\n name: 'prepareStyles',\n type: 'preprocessStyles',\n plugin(ctx, styles) {\n while (Array.isArray(styles) && styles.length === 1) styles = styles[0];\n if (Array.isArray(styles) && !styles.length) return null;\n if (isPlainObject(styles) && Object.values(styles).every((v) => v === undefined)) return null;\n return styles;\n },\n};\n","import type { StylixContext } from '../StylixProvider';\nimport { simplifyStylePropName } from '../classifyProps';\nimport { type MapObjectFunction, mapObject } from '../util/mapObject';\nimport type { StylixPlugin } from './index';\n\n/**\n * Fixes casing and hyphenation on known style props\n */\nexport const propCasing: StylixPlugin = {\n name: 'propCasing',\n type: 'processStyles',\n plugin(ctx, styles) {\n return mapObject(styles, propCasingMap, { ctx });\n },\n};\n\nconst propCasingMap: MapObjectFunction = (\n key,\n value,\n object,\n context: { ctx: StylixContext },\n mapRecursive,\n) => {\n if (typeof key !== 'string' || key === '&') return { [key]: mapRecursive(value) };\n const simpleKey = simplifyStylePropName(key);\n if (simpleKey && simpleKey in context.ctx.styleProps) {\n return { [context.ctx.styleProps[simpleKey]]: mapRecursive(value) };\n }\n return { [key]: mapRecursive(value) };\n};\n","import { type MapObjectFunction, mapObject } from '../util/mapObject';\nimport type { StylixPlugin, StylixPluginFunctionContext } from './index';\n\n/**\n * Replaces $$class with class name in string values\n */\nexport const replace$$class: StylixPlugin = {\n name: 'replace$$class',\n type: 'processStyles',\n plugin(ctx, styles) {\n return mapObject(styles, replace$$classMap, { ctx });\n },\n};\n\nconst replace$$classMap: MapObjectFunction = (\n key,\n value,\n object,\n context: { ctx: StylixPluginFunctionContext },\n mapRecursive,\n) => {\n value =\n typeof value === 'string'\n ? value.replace('$$class', context.ctx.className || '')\n : mapRecursive(value);\n key = typeof key === 'string' ? key.replace('$$class', context.ctx.className || '') : key;\n return { [key]: value };\n};\n","import { isValidJSXProp, simplifyStylePropName } from '../classifyProps';\nimport type { StylixStyles } from '../types';\nimport { isPlainObject } from '../util/isPlainObject';\nimport { mapObject } from '../util/mapObject';\nimport type { StylixPlugin } from './index';\nimport { mergeArrays } from './mergeArrays';\n\nexport function _customPropsProcess(styles: StylixStyles, customProps: Record<string, any>): any {\n return mapObject(styles, (key, value, source, _ctx, mapRecursive) => {\n if (!isValidJSXProp(key) || isPlainObject(value))\n return Array.isArray(source) ? [mapRecursive(value)] : { [key]: mapRecursive(value) };\n\n const simpleKey = simplifyStylePropName(key);\n const propValue = customProps[simpleKey];\n if (!propValue) return { [key]: mapRecursive(value) };\n\n if (typeof propValue === 'object') {\n if (value) return mapRecursive(propValue);\n return undefined;\n }\n if (typeof propValue === 'string') {\n return { [propValue]: mapRecursive(value) };\n }\n if (typeof propValue === 'function') {\n return mapRecursive(propValue(value));\n }\n\n return { [key]: mapRecursive(value) };\n });\n}\n\nexport const customProps = (customProps: Record<string, any>): StylixPlugin[] => {\n for (const key in customProps) {\n customProps[simplifyStylePropName(key)] = customProps[key];\n }\n\n return [\n {\n name: 'customPropsInit',\n type: 'initialize',\n plugin(ctx) {\n for (const key in customProps) {\n ctx.styleProps[simplifyStylePropName(key)] = key;\n }\n },\n },\n {\n name: 'customPropsProcess',\n type: 'processStyles',\n before: mergeArrays,\n plugin(_ctx, styles) {\n return _customPropsProcess(styles, customProps);\n },\n },\n ];\n};\n","import type { StylixContext, StylixPublicContext } from '../StylixProvider';\nimport type { StylixStyles } from '../types';\nimport { cleanStyles } from './cleanStyles';\nimport { defaultPixelUnits } from './defaultUnits';\nimport { hoistKeyframes } from './hoistKeyframes';\nimport { mediaObjects } from './mediaObjects';\nimport { mergeArrays } from './mergeArrays';\nimport { prepareStyles } from './prepareStyles';\nimport { propCasing } from './propCasing';\nimport { replace$$class } from './replace$$class';\n\n/**\n * Stylix plugin function context object\n */\nexport type StylixPluginFunctionContext = StylixPublicContext & { className: string | null };\n\n/**\n * Stylix plugin interface\n */\nexport type StylixPlugin = {\n name: string;\n before?: StylixPlugin;\n after?: StylixPlugin;\n atIndex?: number;\n} & (\n | {\n name: string;\n type: 'initialize';\n plugin(ctx: StylixPluginFunctionContext): void;\n }\n | {\n type: 'processStyles' | 'preprocessStyles';\n plugin(ctx: StylixPluginFunctionContext, styles: StylixStyles): StylixStyles;\n }\n);\n\nexport function applyPlugins(\n type: 'initialize',\n styles: null,\n className: null,\n context: StylixContext,\n): void;\n\nexport function applyPlugins(\n type: 'processStyles' | 'preprocessStyles',\n styles: StylixStyles,\n className: string | null,\n context: StylixContext,\n): StylixStyles;\n\nexport function applyPlugins(\n type: StylixPlugin['type'],\n styles: StylixStyles | null,\n className: string | null,\n context: StylixContext,\n): StylixStyles {\n const pluginContext: StylixPluginFunctionContext = {\n id: context.id,\n devMode: context.devMode,\n media: context.media,\n stylesheet: context.stylesheet,\n styleElement: context.styleElement,\n styleProps: context.styleProps,\n className,\n };\n\n let processedStyles: StylixStyles = styles || {};\n for (const i in context.plugins) {\n const plugin = context.plugins[i];\n if (plugin.type === type)\n processedStyles = plugin.plugin(pluginContext, processedStyles) as StylixStyles;\n }\n return processedStyles;\n}\n\nexport { customProps } from './customProps';\n\nexport const defaultPlugins: StylixPlugin[] = [\n prepareStyles,\n mediaObjects,\n mergeArrays,\n propCasing,\n hoistKeyframes,\n replace$$class,\n defaultPixelUnits,\n cleanStyles,\n];\n","import type { HTMLProps } from './elements';\n\nexport function StyleElement(props: { styles: string[] } & Partial<HTMLProps<'style'>>) {\n const { styles, ...other } = props;\n return (\n <style type=\"text/css\" {...other} dangerouslySetInnerHTML={{ __html: styles.join('\\n') }} />\n );\n}\n","import type React from 'react';\nimport { createContext } from 'react';\n\nimport { StyleElement } from './StyleElement';\n\nexport interface StyleCollector {\n collect: (element: React.ReactElement) => React.ReactElement;\n render: React.FC<React.ComponentProps<'style'>>;\n styles: string[];\n}\n\nexport const styleCollectorContext = createContext<string[] | undefined>(undefined);\n\nexport function createStyleCollector() {\n const styles: string[] = [];\n const collector: StyleCollector = {\n collect: (element) => (\n <styleCollectorContext.Provider value={styles}>{element}</styleCollectorContext.Provider>\n ),\n render: (props: React.ComponentProps<'style'>) => (\n <StyleElement key={props.id || 'stylix'} styles={collector.styles} />\n ),\n styles,\n };\n collector.render.displayName = 'StylixStyleCollectorRenderer';\n return collector;\n}\n\n// Collect your styles:\n// const styles = [];\n// ReactDOM.renderToString(\n// <StylixSSR.StyleCollector styles={styles}>\n// <App />\n// </StylixSSR.StyleCollector>\n// );\n//\n// // Then render your styles:\n// <RenderServerStyles styles={styles} />\n","import { useLayoutEffect } from 'react';\n\nexport const detectSSR = () =>\n !(typeof window !== 'undefined' && window.document?.head?.appendChild);\n\nexport default function useIsoLayoutEffect(\n fn: () => void | (() => void),\n deps?: unknown[],\n runOnSsr?: boolean,\n isSsr = detectSSR(),\n) {\n if (isSsr) {\n if (runOnSsr) return fn();\n } else {\n useLayoutEffect(fn, deps);\n }\n}\n","import type React from 'react';\nimport { createContext, useContext, useEffect, useRef } from 'react';\n\nimport { classifyProps, simplifyStylePropName } from './classifyProps';\nimport cssProps from './css-props.json';\nimport { type StylixPlugin, applyPlugins, defaultPlugins } from './plugins';\nimport type { StylixMediaDefinition } from './plugins/mediaObjects';\nimport { styleCollectorContext } from './styleCollector';\nimport { detectSSR } from './util/useIsoLayoutEffect';\n\n/**\n * Stylix context\n *\n * The <StylixProvider> wrapper represents an \"instance\" of Stylix - a configuration, set of plugins, and reference to\n * the <style> element where css is output. All nodes contained within a <StylixProvider> element will share this\n * Stylix instance's configuration.\n *\n * See the README for more details.\n */\n\n// StylixProvider component props\ntype StylixProviderProps = {\n id?: string;\n devMode?: boolean;\n plugins?: StylixPlugin[] | StylixPlugin[][];\n styleElement?: HTMLStyleElement;\n media?: StylixMediaDefinition;\n ssr?: boolean;\n children: any;\n};\n\n// StylixContext object interface\nexport type StylixContext = {\n id: string;\n devMode: boolean;\n media: StylixMediaDefinition | undefined;\n plugins: StylixPlugin[];\n stylesheet?: CSSStyleSheet;\n styleElement?: HTMLStyleElement;\n styleCollector?: string[];\n styleCounter: number;\n rules: {\n [key: string]:\n | undefined\n | {\n className: string;\n rules: string[];\n refs: number;\n };\n };\n styleProps: Record<string, string>;\n ssr?: boolean;\n cleanupRequest?: number;\n requestApply: boolean;\n\n classifyProps(props: Record<string, unknown>): [Record<string, unknown>, Record<string, unknown>];\n};\n\nexport type StylixPublicContext = Pick<\n StylixContext,\n 'id' | 'devMode' | 'media' | 'stylesheet' | 'styleElement' | 'styleProps'\n>;\n\nlet defaultStyleProps: Record<string, string> | undefined = undefined;\n\nexport function createStylixContext(userValues = {} as Partial<StylixProviderProps>) {\n if (!defaultStyleProps) {\n defaultStyleProps = {};\n for (const value of cssProps) {\n defaultStyleProps[simplifyStylePropName(value)] = value;\n }\n }\n\n const ctx = {\n id: userValues.id || '$default',\n devMode: !!userValues.devMode,\n styleProps: defaultStyleProps,\n media: userValues.media,\n styleElement: userValues.styleElement,\n plugins: defaultPlugins.flat(),\n styleCounter: 0,\n rules: {},\n ssr: userValues.ssr ?? detectSSR(),\n cleanupRequest: undefined,\n requestApply: false,\n\n classifyProps(props: Record<string, unknown>) {\n const [styles, other] = classifyProps(props, this.styleProps);\n return [styles, other];\n },\n } as StylixContext;\n\n if (userValues.plugins?.length) {\n const flatPlugins = userValues.plugins.flat();\n for (const i in flatPlugins) {\n const plugin = flatPlugins[i];\n let pluginIndex = -1;\n if (plugin.before && ctx.plugins.includes(plugin.before))\n pluginIndex = ctx.plugins.indexOf(plugin.before);\n else if (plugin.after && ctx.plugins.includes(plugin.after))\n pluginIndex = ctx.plugins.indexOf(plugin.after) + 1;\n else if (plugin.atIndex !== undefined) pluginIndex = plugin.atIndex;\n\n if (pluginIndex === -1) ctx.plugins.push(plugin);\n else ctx.plugins.splice(pluginIndex, 0, plugin);\n }\n }\n applyPlugins('initialize', null, null, ctx);\n\n return ctx;\n}\n\n// The React context object\nconst stylixContext = createContext<StylixContext | undefined>(undefined);\n\nlet defaultStylixContext: StylixContext | undefined = undefined;\n\n/**\n * Gets the current Stylix context.\n */\nexport function useStylixContext(): StylixContext {\n const ctx = useContext(stylixContext);\n if (!ctx) {\n if (!defaultStylixContext) defaultStylixContext = createStylixContext();\n return defaultStylixContext;\n }\n return ctx;\n}\n\nexport function StylixProvider({\n id,\n devMode,\n plugins,\n media,\n styleElement,\n children,\n ssr,\n}: StylixProviderProps): React.ReactElement {\n const ctx = useRef<StylixContext | null>(null);\n if (!ctx.current)\n ctx.current = createStylixContext({ id, devMode, plugins, media, styleElement, ssr });\n\n ctx.current.styleCollector = useContext(styleCollectorContext);\n\n // When the component is unmounted, remove the style element, if any\n useEffect(() => {\n return () => {\n ctx.current?.styleElement?.remove();\n };\n }, []);\n\n return <stylixContext.Provider value={ctx.current}>{children}</stylixContext.Provider>;\n}\n","import type { StylixContext } from './StylixProvider';\n\nexport function flattenRules(ctx: StylixContext): string[] {\n return Object.values(ctx.rules)\n .flatMap((val) => (val && val.refs > 0 ? val.rules : []))\n .filter(Boolean);\n}\n\n/**\n * Applies rules from given StylixContext to the <style> element.\n */\nexport default function applyRules(ctx: StylixContext): void {\n if (ctx.styleCollector) {\n const flattenedRules = flattenRules(ctx);\n ctx.styleCollector.length = 0;\n ctx.styleCollector.push(...flattenedRules);\n return;\n }\n\n if (ctx.ssr) return;\n\n const supportsAdoptedStylesheets = 'adoptedStyleSheets' in document;\n\n // If there's no style element, and we're in dev mode or legacy browser, create one\n if (!ctx.styleElement && (ctx.devMode || !supportsAdoptedStylesheets)) {\n ctx.styleElement = document.createElement('style');\n ctx.styleElement.className = 'stylix';\n if (ctx.id) ctx.styleElement.id = `stylix-${ctx.id}`;\n document.head.appendChild(ctx.styleElement);\n }\n\n if (ctx.devMode && ctx.styleElement) {\n const flattenedRules = flattenRules(ctx);\n ctx.styleElement.innerHTML = flattenedRules.join('\\n');\n } else {\n // If there's a style element, use its stylesheet\n if (ctx.styleElement) ctx.stylesheet = ctx.styleElement.sheet as CSSStyleSheet;\n\n // Still no stylesheet yet, create one\n if (!ctx.stylesheet) {\n ctx.stylesheet = new CSSStyleSheet();\n if (supportsAdoptedStylesheets) {\n document.adoptedStyleSheets.push(ctx.stylesheet);\n } else if (ctx.stylesheet.ownerNode) {\n document.head.appendChild(ctx.stylesheet.ownerNode);\n }\n }\n\n const stylesheet = ctx.stylesheet;\n\n const flattenedRules = flattenRules(ctx);\n if (stylesheet.replaceSync) {\n try {\n stylesheet.replaceSync(flattenedRules.join('\\n'));\n } catch (e) {\n // Errors are ignored, this just means that a browser doesn't support a certain CSS feature.\n console.warn(e);\n }\n } else {\n // Legacy method\n while (stylesheet.rules?.length || stylesheet.cssRules?.length) {\n stylesheet.deleteRule(0);\n }\n for (const i in flattenedRules)\n try {\n stylesheet.insertRule(flattenedRules[i], +i);\n } catch (e) {\n // Errors are ignored, this just means that a browser doesn't support a certain CSS feature.\n console.warn(e);\n }\n }\n }\n}\n","import React from 'react';\n\nexport function getParentComponentName(): string | undefined {\n const internals = (React as any).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n const stack = internals?.ReactDebugCurrentFrame?.getStackAddendum?.()?.split('\\n') || [];\n for (const line of stack) {\n // Look for a component name like \"Component$123\", either at the start of the line (Firefox) or after \"at \" (Safari/Chrome)\n const m = line.trim().match(/^(?:at )?([A-Z][A-Za-z0-9$\\.]*)/);\n const res = m?.[1] && m[1] !== 'Stylix' ? m[1] : undefined;\n if (res) return res;\n }\n}\n","import type { StylixContext } from './StylixProvider';\nimport { applyPlugins } from './plugins';\nimport type { StylixObject } from './types';\nimport { isEmpty } from './util/isEmpty';\nimport { isPlainObject } from './util/isPlainObject';\n\n/**\n * Serialize selector and styles to css rule string\n */\nfunction serialize(selector: string, styles: StylixObject) {\n const lines: string[] = [];\n for (const key in styles) {\n const value = styles[key];\n if (isPlainObject(value)) lines.push(serialize(key, value));\n else lines.push(` ${key}: ${value};`);\n }\n return `${selector} {\\n${lines.join('\\n')} }`;\n}\n\n/**\n * Converts a Stylix CSS object to an array of rules, suitable for passing to StyleSheet#insertRule.\n */\nexport default function stylesToRuleArray(\n styles: StylixObject,\n className: string,\n context: StylixContext,\n): string[] {\n if (isEmpty(styles)) return [];\n try {\n const processedStyles = applyPlugins(\n 'processStyles',\n styles,\n className,\n context,\n ) as StylixObject;\n\n const result: string[] = [];\n for (const key in processedStyles) {\n const value = processedStyles[key] as StylixObject;\n result.push(serialize(key, value));\n }\n return result;\n } catch (e: any) {\n if (e.name && e.reason) {\n console.error(\n `${e.name}: ${e.reason}\\n`,\n `${e.source.replace('\\n', ' ').substring(Math.max(0, e.column - 20), Math.max(0, e.column - 20) + 100)}\\n`,\n `${' '.repeat(20)}^`,\n );\n } else {\n console.error(e);\n }\n return [];\n }\n}\n","import { useRef } from 'react';\n\nimport { type StylixContext, useStylixContext } from './StylixProvider';\nimport applyRules from './applyRules';\nimport { getParentComponentName } from './getParentComponentName';\nimport { applyPlugins } from './plugins';\nimport stylesToRuleArray from './stylesToRuleArray';\nimport type { StylixObject, StylixStyles } from './types';\nimport { isEmpty } from './util/isEmpty';\nimport useIsoLayoutEffect from './util/useIsoLayoutEffect';\n\nfunction cleanup(ctx: StylixContext): void {\n if (typeof ctx.cleanupRequest !== 'undefined') return;\n\n const doCleanup = () => {\n for (const i in ctx.rules) {\n const rule = ctx.rules[i];\n if (!rule || rule.refs <= 0) {\n delete ctx.rules[i];\n }\n }\n ctx.cleanupRequest = undefined;\n };\n\n if (ctx.devMode) {\n doCleanup();\n } else {\n ctx.cleanupRequest = setTimeout(doCleanup, 100) as any;\n }\n}\n\n/**\n * Accepts a Stylix CSS object and returns a unique className.\n * The styles are registered with the Stylix context and will be applied to the document.\n * If `global` is false, provided styles will be nested within the generated classname.\n * Returns the className if enabled, or an empty string.\n */\nexport function useStyles(\n styles: StylixStyles,\n options: { global?: boolean; debugLabel?: string } = { global: false },\n): string {\n const stylixCtx = useStylixContext();\n\n const prevStylesJson = useRef('');\n\n // Preprocess styles with plugins\n if (styles && !isEmpty(styles))\n styles = applyPlugins('preprocessStyles', styles, null, stylixCtx);\n\n let stylesJson = styles && !isEmpty(styles) ? JSON.stringify(styles) : '';\n if (stylesJson && options.global) stylesJson = `global:${stylesJson}`;\n\n const changed = stylesJson !== prevStylesJson.current;\n prevStylesJson.current = stylesJson;\n\n options.debugLabel ||= stylixCtx.devMode ? getParentComponentName() : '';\n\n if (stylesJson && !stylixCtx.rules[stylesJson]) {\n stylixCtx.styleCounter++;\n const className = `stylix-${(stylixCtx.styleCounter).toString(36)}${options.debugLabel ? `-${options.debugLabel}` : ''}`;\n // If not global styles, wrap original styles with classname\n if (!options.global) styles = { [`.${className}`]: styles };\n stylixCtx.rules[stylesJson] = {\n className,\n rules: stylesToRuleArray(styles as StylixObject, className, stylixCtx),\n refs: 0,\n };\n }\n\n if (changed) stylixCtx.requestApply = true;\n\n // When json changes, add/remove ref count\n const ruleSet = stylixCtx.rules[stylesJson];\n if (stylesJson && changed && ruleSet) {\n ruleSet.refs++;\n }\n\n // Apply styles if requested.\n // This runs on every render. We utilize useLayoutEffect so that it runs *after* all the other\n // renders have completed. stylixCtx.requestApply guards against multiple runs. This reduces the number of calls\n // to applyRules(), but prevents styles potentially being added to the DOM after other components force the\n // browser to compute styles.\n useIsoLayoutEffect(\n () => {\n if (!stylixCtx.requestApply) return;\n stylixCtx.requestApply = false;\n applyRules(stylixCtx);\n },\n undefined,\n true,\n stylixCtx.ssr,\n );\n\n useIsoLayoutEffect(\n () => {\n if (!stylesJson || !changed) return;\n\n return () => {\n const ruleSet = stylixCtx.rules[stylesJson];\n if (!ruleSet) return;\n ruleSet.refs--;\n if (ruleSet.refs <= 0) stylixCtx.rules[stylesJson] = undefined;\n cleanup(stylixCtx);\n };\n },\n [stylesJson],\n false,\n stylixCtx.ssr,\n );\n\n return stylixCtx.rules[stylesJson]?.className || '';\n}\n\nexport function useKeyframes(keyframes: any) {\n return useStyles({ '@keyframes $$class': keyframes }, { global: true });\n}\n\nexport function useGlobalStyles(\n styles: StylixStyles,\n options: { disabled?: boolean } = { disabled: false },\n) {\n return useStyles(styles, { ...options, global: true });\n}\n","import React from 'react';\nimport { useStylixContext } from './StylixProvider';\nimport type { StylixProps } from './types';\nimport { useStyles } from './useStyles';\nimport { isEmpty } from './util/isEmpty';\n\n/**\n * Additional properties on the Stylix ($) component and its html component properties (`<$.div>`, etc).\n */\nexport type StylixComponentMeta = {\n displayName?: string;\n __isStylix: true;\n};\n\n/**\n * Defines the static meta properties and the HTML elements on the `$` object ($.div, $.span, etc).\n */\ntype Stylix$ComponentExtras = StylixComponentMeta & {\n [key in keyof React.JSX.IntrinsicElements]: React.FC<\n StylixProps<unknown, React.JSX.IntrinsicElements[key]> & {\n htmlContent?: string;\n htmlTranslate?: 'yes' | 'no';\n }\n >;\n};\n\nexport type StylixRenderFn<TProps = any> = (\n className: string | undefined,\n props: TProps,\n) => React.ReactNode;\n\n/**\n * The props for the Stylix ($) component when using the $render prop.\n */\ntype Stylix$renderProp = StylixProps &\n Record<string, unknown> & {\n $el?: never;\n $render: StylixRenderFn;\n children?: React.ReactNode | React.ReactNode[];\n };\n\n/**\n * The props for the Stylix ($) component when using the children render function.\n */\ntype Stylix$childrenProp = StylixProps &\n Record<string, unknown> & {\n $el?: never;\n $render?: never;\n children: StylixRenderFn;\n };\n\n/**\n * The props for the Stylix ($) component when using the $el prop as a component.\n */\ntype Stylix$elAsComponentProp<TComponent extends React.ElementType> =\n (TComponent extends React.ElementType<infer P> ? StylixProps<object, P> : never) & {\n $el: TComponent;\n $render?: never;\n children?: React.ReactNode | React.ReactNode[];\n };\n\n/**\n * The props for the Stylix ($) component when using the $el prop.\n */\ntype Stylix$elAsElementProp = StylixProps &\n Record<string, unknown> & {\n $render?: never;\n $el: React.ReactElement;\n children?: React.ReactNode | React.ReactNode[];\n };\n\n/**\n * Props for the Stylix ($) component\n */\nexport type Stylix$Props<TComponent extends React.ElementType> =\n | Stylix$elAsComponentProp<TComponent>\n | Stylix$elAsElementProp\n | Stylix$renderProp\n | Stylix$childrenProp;\n\n/**\n * Type of main Stylix component ($).\n */\nexport interface Stylix$Component extends Stylix$ComponentExtras {\n <TComponent extends React.ElementType>(props: Stylix$Props<TComponent>): React.ReactNode;\n}\n\nexport function _Stylix<TElement extends React.ElementType>(\n props: Stylix$Props<TElement>,\n ref: React.Ref<TElement>,\n) {\n const { $el, $render, $css, className: outerClassName, children, ...rest } = props;\n\n const ctx = useStylixContext();\n const [styleProps, otherProps] = ctx.classifyProps(rest);\n\n let styles = [];\n if (!isEmpty(styleProps)) styles.push(styleProps);\n if (!isEmpty($css)) styles.push($css);\n if (styles.length === 1) styles = styles[0];\n const stylixClassName = useStyles(styles);\n\n const className = `${stylixClassName} ${outerClassName || ''}`.trim() || undefined;\n\n if (React.isValidElement($el)) {\n const $elProps = {\n ...($el.props as any),\n ref,\n /**\n * `allProps` must override `$el.props` because the latter may contain default prop values provided by defaultProps.\n * The expectation is that for <$ $el={<SomeComponent />} someComponentProp=\"my value\" />,\n * the `someComponentProp` prop would override any default value specified by SomeComponent.defaultProps.\n */\n ...otherProps,\n className: `${($el.props as any).className || ''} ${className || ''}`.trim() || undefined,\n };\n return React.cloneElement(\n $el,\n $elProps,\n ...(React.Children.toArray(children as React.ReactNode) || []),\n );\n }\n\n if ($el) {\n const Component = $el as React.FC<any>;\n return (\n <Component className={className} ref={ref} {...otherProps}>\n {children}\n </Component>\n );\n }\n\n if ($render) {\n return $render(className || undefined, { children, ...otherProps, ...(ref ? { ref } : null) });\n }\n\n if (children) {\n if (typeof children !== 'function') {\n throw new Error('Stylix: invalid component usage: children must be a function');\n }\n return (children as StylixRenderFn)(className || undefined, {\n ...otherProps,\n ...(ref ? { ref } : null),\n });\n }\n\n throw new Error('Stylix: invalid stylix component usage: must provide $el, $render, or children');\n}\n\nexport const Stylix: Stylix$Component = React.forwardRef(\n _Stylix as any,\n) as unknown as Stylix$Component;\nStylix.displayName = 'Stylix';\nStylix.__isStylix = true;\n","import React from 'react';\nimport { Stylix } from './Stylix';\n\nconst htmlTags = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'slot',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n];\n\n/**\n * Gets the props of a given HTML tag.\n */\nexport type HTMLProps<TTag extends keyof React.JSX.IntrinsicElements> =\n React.JSX.IntrinsicElements[TTag];\n\nfor (const i in htmlTags) {\n const Tag = htmlTags[i];\n (Stylix as any)[Tag] = React.forwardRef(({ htmlContent, htmlTranslate, ...props }: any, ref) => (\n <Stylix\n $render={(className, props) => (\n <Tag\n className={className}\n content={htmlContent}\n translate={htmlTranslate}\n ref={ref}\n {...props}\n />\n )}\n {...props}\n />\n ));\n (Stylix as any)[Tag].__isStylix = true;\n (Stylix as any)[Tag].displayName = `$.${Tag}`;\n}\n","import { StyleElement } from './StyleElement';\nimport { useStylixContext } from './StylixProvider';\nimport { flattenRules } from './applyRules';\nimport type { HTMLProps } from './elements';\n\nexport function RenderServerStyles(props: Partial<HTMLProps<'style'>>) {\n const ctx = useStylixContext();\n return <StyleElement styles={ctx.ssr ? flattenRules(ctx) : []} {...props} />;\n}\n"],"names":["_jsx"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,62 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stylix/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "React, with style. Add styles to your React apps with props: the easy, natural, and low learning curve approach.",
|
|
5
|
-
"keywords": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"css-in-js",
|
|
10
|
-
"emotion",
|
|
11
|
-
"styled-components"
|
|
12
|
-
],
|
|
13
|
-
"source": "./src/index.ts",
|
|
14
|
-
"main": "./dist/index.js",
|
|
15
|
-
"module": "./dist/module.mjs",
|
|
16
|
-
"types": "./dist/types.d.ts",
|
|
5
|
+
"keywords": ["react", "styles", "css", "css-in-js", "emotion", "styled-components"],
|
|
6
|
+
"type": "module",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
17
9
|
"exports": {
|
|
18
10
|
".": {
|
|
19
|
-
"import": "./dist/
|
|
20
|
-
"
|
|
21
|
-
"types": "./dist/types.d.ts"
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
22
13
|
}
|
|
23
14
|
},
|
|
24
15
|
"scripts": {
|
|
25
|
-
"build": "npm run clean &&
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
16
|
+
"build": "npm run clean && rollup -c",
|
|
17
|
+
"test": "jest --coverage",
|
|
18
|
+
"clean": "rm -rf dist",
|
|
19
|
+
"lint": "biome check --write ./src",
|
|
20
|
+
"prepare": "husky",
|
|
21
|
+
"update-css-props": "tsx scripts/updateCssProps.ts"
|
|
29
22
|
},
|
|
30
23
|
"author": "Alex Brombal",
|
|
31
24
|
"license": "MIT",
|
|
32
25
|
"homepage": "https://stylix.dev/",
|
|
33
26
|
"bugs": "https://github.com/brombal/stylix/issues",
|
|
34
27
|
"repository": "https://github.com/brombal/stylix",
|
|
35
|
-
"devDependencies": {
|
|
36
|
-
"@types/jest": "^29.5.0",
|
|
37
|
-
"@types/node": "^18.15.3",
|
|
38
|
-
"@types/react": "^18.0.28",
|
|
39
|
-
"@types/react-dom": "^18.0.11",
|
|
40
|
-
"jest": "^29.5.0",
|
|
41
|
-
"jest-environment-jsdom": "^29.5.0",
|
|
42
|
-
"parcel": "^2.8.3",
|
|
43
|
-
"ts-jest": "^29.0.5",
|
|
44
|
-
"typescript": "^5.0.2"
|
|
45
|
-
},
|
|
46
28
|
"peerDependencies": {
|
|
47
|
-
"react": ">=
|
|
48
|
-
"react-dom": ">=
|
|
29
|
+
"react": ">=18.0.0",
|
|
30
|
+
"react-dom": ">=18.0.0"
|
|
49
31
|
},
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@biomejs/biome": "^1.9.4",
|
|
34
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
35
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
36
|
+
"@testing-library/dom": "^10.4.0",
|
|
37
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
38
|
+
"@testing-library/react": "^16.1.0",
|
|
39
|
+
"@types/jest": "^29.5.14",
|
|
40
|
+
"@types/node": "^22.10.2",
|
|
41
|
+
"@types/react": "^19.0.2",
|
|
42
|
+
"@types/react-dom": "^19.0.2",
|
|
43
|
+
"csstype": "^3.1.3",
|
|
44
|
+
"husky": "^9.1.7",
|
|
45
|
+
"jest": "^29.7.0",
|
|
46
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
47
|
+
"mdn-data": "^2.14.0",
|
|
48
|
+
"rollup": "^4.29.1",
|
|
49
|
+
"rollup-plugin-dts": "^6.1.1",
|
|
50
|
+
"ts-jest": "^29.2.5",
|
|
51
|
+
"tsx": "^4.19.2",
|
|
52
|
+
"typescript": "^5.7.2"
|
|
53
|
+
}
|
|
62
54
|
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "esnext",
|
|
4
|
+
"module": "esnext",
|
|
5
|
+
"strict": true,
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"declaration": false,
|
|
8
|
+
"resolveJsonModule": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"isolatedModules": true,
|
|
11
|
+
"baseUrl": "./src",
|
|
12
|
+
"moduleResolution": "node",
|
|
13
|
+
"lib": ["dom", "esnext"]
|
|
14
|
+
}
|
|
15
|
+
}
|