@stylix/core 4.0.4 → 4.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/dist/index.js CHANGED
@@ -295,7 +295,7 @@ function $bf0e5f2ae2622b0c$export$f9e25e3471fd9b77(obj, ctx) {
295
295
 
296
296
 
297
297
  const $2244b5cf9ed91939$export$d85214c343312efe = {
298
- name: "normalizeStyleProps",
298
+ name: "propCasing",
299
299
  type: "processStyles",
300
300
  plugin (ctx, styles) {
301
301
  return (0, $1ae3b31df309d474$export$72ae87c5302f282e)(styles, $2244b5cf9ed91939$var$propCasingMap, {
@@ -304,8 +304,10 @@ const $2244b5cf9ed91939$export$d85214c343312efe = {
304
304
  }
305
305
  };
306
306
  function $2244b5cf9ed91939$var$propCasingMap(key, value, object, context) {
307
- if (typeof key === "string" && context.ctx.styleProps[(0, $d4abddb46f405b94$export$2eda63d9f5a68c09)(key)]) return {
308
- [context.ctx.styleProps[(0, $d4abddb46f405b94$export$2eda63d9f5a68c09)(key)]]: value
307
+ if (typeof key !== "string") return;
308
+ const simpleKey = (0, $d4abddb46f405b94$export$2eda63d9f5a68c09)(key);
309
+ if (simpleKey in context.ctx.styleProps) return {
310
+ [context.ctx.styleProps[simpleKey]]: value
309
311
  };
310
312
  }
311
313
 
@@ -525,11 +527,11 @@ function $918367b4cbc7189f$var$createStylixContext(userValues = {}) {
525
527
  cleanupRequest: undefined
526
528
  };
527
529
  if (!ctx.styleElement && typeof document !== "undefined") {
528
- if ("adoptedStyleSheets" in document) {
530
+ if (!ctx.devMode && "adoptedStyleSheets" in document) {
529
531
  ctx.stylesheet = new CSSStyleSheet();
530
532
  document.adoptedStyleSheets.push(ctx.stylesheet);
531
533
  } else {
532
- // Legacy method
534
+ // Legacy/devMode method
533
535
  // TS assumes window.document is 'never', so we need to explicitly cast it to Document
534
536
  const doc = document;
535
537
  ctx.styleElement = doc.createElement("style");
@@ -648,6 +650,16 @@ function $3cb141540b096e82$export$2e2bcd8739ae039(ctx) {
648
650
 
649
651
 
650
652
 
653
+ function $c9948cbb03d86ace$export$e2d100a3f83db87c() {
654
+ return (0, ($parcel$interopDefault($cPdmE$react)))["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]?.ReactDebugCurrentFrame?.getStackAddendum?.()?.split("\n")?.map((line)=>{
655
+ // Look for a component name like "Component$123", either at the start of the line (Firefox) or after "at " (Safari/Chrome)
656
+ const m = line.match(/^([A-Z][A-Za-z0-9$]*)|^\s*at ([A-Z][A-Za-z0-9$]*)/);
657
+ return m?.[1] || m?.[2];
658
+ }).filter(Boolean).reverse().slice(-1)[0];
659
+ }
660
+
661
+
662
+
651
663
 
652
664
 
653
665
  function $d7b71dffbc028505$export$2e2bcd8739ae039(styles, hash, context) {
@@ -726,13 +738,14 @@ function $b7bb7699b24ef4bd$export$28e6b9b82ee883c(styles, options = {
726
738
  hash: ""
727
739
  });
728
740
  const changed = !$b7bb7699b24ef4bd$var$compare(styles, prevRef.current.styles);
741
+ options.debugLabel ||= !!stylixCtx.devMode && (0, $c9948cbb03d86ace$export$e2d100a3f83db87c)();
729
742
  prevRef.current.styles = styles;
730
743
  if (changed) {
731
744
  // Preprocess styles with plugins
732
745
  if (!options.disabled && styles) styles = (0, $cb46c37cd304d3d0$export$dd20d84ec8823bbf)("preprocessStyles", styles, null, stylixCtx);
733
746
  // Serialize value and generate hash
734
747
  const json = !options.disabled && styles && JSON.stringify(styles);
735
- prevRef.current.hash = json && json !== "{}" && json !== "[]" ? (0, $472b80d0b3855b37$export$9169be2e06c9c165)(JSON.stringify(stylixCtx.media || []) + json) : "";
748
+ prevRef.current.hash = json && json !== "{}" && json !== "[]" ? (0, $472b80d0b3855b37$export$9169be2e06c9c165)(JSON.stringify(stylixCtx.media || []) + json) + (options.debugLabel ? "-" + options.debugLabel : "") : "";
736
749
  }
737
750
  const { hash: hash } = prevRef.current;
738
751
  if (hash && changed && !stylixCtx.rules[hash]) {
@@ -844,10 +857,12 @@ function $f7963c5fb85d4dcf$export$3817b7a54a07cec7($el, addProps, conflictingPro
844
857
  $el: Element,
845
858
  ...addProps,
846
859
  ...props,
847
- $css: [
848
- addProps?.$css,
849
- props?.$css
850
- ]
860
+ ...addProps?.$css || props?.$css ? {
861
+ $css: [
862
+ addProps?.$css,
863
+ props?.$css
864
+ ].filter(Boolean)
865
+ } : {}
851
866
  }, ref);
852
867
  });
853
868
  r.displayName = `$.${$el.displayName || $el.name || $el.toString?.() || "Unnamed"}`;
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/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 ('adoptedStyleSheets' in document) {\n ctx.stylesheet = new CSSStyleSheet();\n document.adoptedStyleSheets.push(ctx.stylesheet);\n } else {\n // Legacy 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 // 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: 'normalizeStyleProps',\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' && context.ctx.styleProps[simplifyStylePropName(key)]) {\n return { [context.ctx.styleProps[simplifyStylePropName(key)]]: 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 { 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 } = { global: false, disabled: false },\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 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 : '';\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 { 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 $css: [addProps?.$css, props?.$css],\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
+ {"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 // 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"}
package/dist/module.mjs CHANGED
@@ -269,7 +269,7 @@ function $3eb676b5e9eeeb72$export$f9e25e3471fd9b77(obj, ctx) {
269
269
 
270
270
 
271
271
  const $c4f1751057a2356d$export$d85214c343312efe = {
272
- name: "normalizeStyleProps",
272
+ name: "propCasing",
273
273
  type: "processStyles",
274
274
  plugin (ctx, styles) {
275
275
  return (0, $aaadd42d89c94302$export$72ae87c5302f282e)(styles, $c4f1751057a2356d$var$propCasingMap, {
@@ -278,8 +278,10 @@ const $c4f1751057a2356d$export$d85214c343312efe = {
278
278
  }
279
279
  };
280
280
  function $c4f1751057a2356d$var$propCasingMap(key, value, object, context) {
281
- if (typeof key === "string" && context.ctx.styleProps[(0, $3ff9dea9e2b78201$export$2eda63d9f5a68c09)(key)]) return {
282
- [context.ctx.styleProps[(0, $3ff9dea9e2b78201$export$2eda63d9f5a68c09)(key)]]: value
281
+ if (typeof key !== "string") return;
282
+ const simpleKey = (0, $3ff9dea9e2b78201$export$2eda63d9f5a68c09)(key);
283
+ if (simpleKey in context.ctx.styleProps) return {
284
+ [context.ctx.styleProps[simpleKey]]: value
283
285
  };
284
286
  }
285
287
 
@@ -499,11 +501,11 @@ function $ce69b86a5144edcd$var$createStylixContext(userValues = {}) {
499
501
  cleanupRequest: undefined
500
502
  };
501
503
  if (!ctx.styleElement && typeof document !== "undefined") {
502
- if ("adoptedStyleSheets" in document) {
504
+ if (!ctx.devMode && "adoptedStyleSheets" in document) {
503
505
  ctx.stylesheet = new CSSStyleSheet();
504
506
  document.adoptedStyleSheets.push(ctx.stylesheet);
505
507
  } else {
506
- // Legacy method
508
+ // Legacy/devMode method
507
509
  // TS assumes window.document is 'never', so we need to explicitly cast it to Document
508
510
  const doc = document;
509
511
  ctx.styleElement = doc.createElement("style");
@@ -622,6 +624,16 @@ function $f12bad835e77a044$export$2e2bcd8739ae039(ctx) {
622
624
 
623
625
 
624
626
 
627
+ function $4df078ca2e797a9a$export$e2d100a3f83db87c() {
628
+ return (0, $10ngl$react)["__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"]?.ReactDebugCurrentFrame?.getStackAddendum?.()?.split("\n")?.map((line)=>{
629
+ // Look for a component name like "Component$123", either at the start of the line (Firefox) or after "at " (Safari/Chrome)
630
+ const m = line.match(/^([A-Z][A-Za-z0-9$]*)|^\s*at ([A-Z][A-Za-z0-9$]*)/);
631
+ return m?.[1] || m?.[2];
632
+ }).filter(Boolean).reverse().slice(-1)[0];
633
+ }
634
+
635
+
636
+
625
637
 
626
638
 
627
639
  function $2ae4ecd42d011bb3$export$2e2bcd8739ae039(styles, hash, context) {
@@ -700,13 +712,14 @@ function $785bd247a0dbd828$export$28e6b9b82ee883c(styles, options = {
700
712
  hash: ""
701
713
  });
702
714
  const changed = !$785bd247a0dbd828$var$compare(styles, prevRef.current.styles);
715
+ options.debugLabel ||= !!stylixCtx.devMode && (0, $4df078ca2e797a9a$export$e2d100a3f83db87c)();
703
716
  prevRef.current.styles = styles;
704
717
  if (changed) {
705
718
  // Preprocess styles with plugins
706
719
  if (!options.disabled && styles) styles = (0, $79720bf00c08b491$export$dd20d84ec8823bbf)("preprocessStyles", styles, null, stylixCtx);
707
720
  // Serialize value and generate hash
708
721
  const json = !options.disabled && styles && JSON.stringify(styles);
709
- prevRef.current.hash = json && json !== "{}" && json !== "[]" ? (0, $7173dd470a409f87$export$9169be2e06c9c165)(JSON.stringify(stylixCtx.media || []) + json) : "";
722
+ prevRef.current.hash = json && json !== "{}" && json !== "[]" ? (0, $7173dd470a409f87$export$9169be2e06c9c165)(JSON.stringify(stylixCtx.media || []) + json) + (options.debugLabel ? "-" + options.debugLabel : "") : "";
710
723
  }
711
724
  const { hash: hash } = prevRef.current;
712
725
  if (hash && changed && !stylixCtx.rules[hash]) {
@@ -818,10 +831,12 @@ function $16478fb0e7f34cc6$export$3817b7a54a07cec7($el, addProps, conflictingPro
818
831
  $el: Element,
819
832
  ...addProps,
820
833
  ...props,
821
- $css: [
822
- addProps?.$css,
823
- props?.$css
824
- ]
834
+ ...addProps?.$css || props?.$css ? {
835
+ $css: [
836
+ addProps?.$css,
837
+ props?.$css
838
+ ].filter(Boolean)
839
+ } : {}
825
840
  }, ref);
826
841
  });
827
842
  r.displayName = `$.${$el.displayName || $el.name || $el.toString?.() || "Unnamed"}`;
@@ -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/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 ('adoptedStyleSheets' in document) {\n ctx.stylesheet = new CSSStyleSheet();\n document.adoptedStyleSheets.push(ctx.stylesheet);\n } else {\n // Legacy 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 // 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: 'normalizeStyleProps',\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' && context.ctx.styleProps[simplifyStylePropName(key)]) {\n return { [context.ctx.styleProps[simplifyStylePropName(key)]]: 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 { 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 } = { global: false, disabled: false },\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 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 : '';\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 { 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 $css: [addProps?.$css, props?.$css],\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":"module.mjs.map"}
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 // 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":"module.mjs.map"}
package/dist/types.d.ts CHANGED
@@ -193,6 +193,7 @@ export function StylixTheme({ children, media, theme }: StylixThemeProps): JSX.E
193
193
  export function useStyles(styles: Record<string, any> | undefined, options?: {
194
194
  global?: boolean;
195
195
  disabled?: boolean;
196
+ debugLabel?: string;
196
197
  }): string;
197
198
  export function useKeyframes(keyframes: any, options?: {
198
199
  disabled?: boolean;
@@ -1 +1 @@
1
- {"mappings":";;AAIA,qBAAqB,IAAI,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC,GAC1D,IAAI,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAExC;;GAEG;AACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAEjD,oBAA2B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,oBAA2B,YAAY,GAAG,YAAY,EAAE,CAAC;AAEzD,iBAAwB,CAAC,IACrB,CAAC,GACD,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GACd,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,+BAA+B;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IACX;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG;KACD,GAAG,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,YAAY,aAAa,CAAC,GAAG,CAAC,CAAC;CAC/D,GAAG;KACD,GAAG,IAAI,MAAM,qBAAqB,CAAC,CAAC,EAAE,YACrC,GAAG,SAAS,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,KAAK,CAC7E;CACF,CAAC;AAEF;;;;;;;;GAQG;AACH;CAAyC;AAEzC;;;;;;;;;;GAUG;AACH,wBACE,UAAU,SAAS,MAAM,WAAW,GAAG,GAAG,EAC1C,QAAQ,GAAG,MAAM,EACjB,YAAY,SAAS,MAAM,aAAa,GAAG,KAAK,IAC9C,QACF,QAAQ,gBAAgB,EAAE,IAAI,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC,EACtF,QAAQ,CACT,CAAC;AAEF;;GAEG;AACH,2BAAkC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,0BAA0B,UAAU,SAAS,MAAM,WAAW,GAAG,MAAM,YAAY,IAAI;IACrF;;OAEG;IACH,GAAG,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF,kCAAkC,UAAU,SAAS,MAAM,WAAW,GAAG,MAAM,YAAY,IACzF,OAAO,CAAC,cAAc,UAAU,CAAC,CAAC,CAAC;AAErC;;;;GAIG;AACH,kBAAyB,UAAU,SAAS,MAAM,WAAW,GAAG,MAAM,YAAY,IAChF,cAAc,UAAU,CAAC,GACvB,CAAC,UAAU,SAAS,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,GAC1C,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAC5B,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhD,8BAA8B,mBAAmB,GAAG;KAIjD,GAAG,IAAI,MAAM,IAAI,iBAAiB,GAAG,MAAM,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC;CACjE,CAAC;AAEF;;GAEG;AACH,iCAAkC,SAAQ,sBAAsB;IAC9D;;;;OAIG;IACH,CAAC,UAAU,SAAS,MAAM,WAAW,GAAG,MAAM,YAAY,EACxD,KAAK,EAAE,aAAa,UAAU,CAAC,EAC/B,OAAO,CAAC,EAAE,GAAG,GACZ,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CACxC;ACtHD,8BAA8B,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAcxF;AAED,iCAAiC,KAAK,EAAE,GAAG,SAI1C;AGpBD;;;;;;GAMG;AACH,mCACE,MAAM,EAAE,GAAG,EACX,GAAG,EAAE,CACH,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,GAAG,KACT,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAC7C,OAAO,GAAE,GAAQ,OA2BlB;AUzCD;;;;;;GAMG;AACH,8BAA8B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAC/D,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,EACvE,OAAO,CAAC,EAAE,GAAG,GACZ,CAAC,CAWH;ACnBD,OAAO,MAAM,2BAA4B,OAAO,MAAM,EAAE,GAAG,CAAC,KAAG,YAAY,EAkD1E,CAAC;AC9CF;;GAEG;AACH,0CAA0C,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAExF;;GAEG;AACH;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,kBAAkB,CAAC;IAC1D,MAAM,CAAC,GAAG,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6BD,OAAO,MAAM;;;;;;;;;CASZ,CAAC;AC7DF;IACE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,YAAY,KAAK,MAAM,YAAY,CAAC;IAC7D,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,OAAO,MAAM,8CAAqD,CAAC;AAEnE,uDAkBC;AGlBD;;;;;;;;;;;GAWG;AAGH,yBAAyB,KAAK,GAAG,GAAG,IAAI,iBAAiB,KAAK,CAAC,GAAG;IAChE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,EAAE,CAAC;IAC5C,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,QAAQ,EAAE,GAAG,CAAC;CACf,CAAC;AAEF,sBAAsB,KAAK,GAAG,GAAG,IAAI;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC;CACf,CAAC;AAGF,qBAA0B,KAAK,GAAG,GAAG,IAAI;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,aAAa,CAAC;IAC1B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE;QACL,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,2BAAkC,IAAI,CACpC,eAAa,EACb,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,CACpF,CAAC;AA4DF,iCAAiC,KAAK,GAAG,GAAG,KAAK,gBAAc,KAAK,CAAC,CAEpE;AAGD,+BAA+B,KAAK,GAAG,GAAG,KAAK,KAAK,CAEnD;AAED,+BAA+B,EAC7B,EAAE,EACF,OAAO,EACP,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,GAAG,UAAU,EACd,EAAE,mBAAmB,GAAG,MAAM,YAAY,CAW1C;AAeD,4BAA4B,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,eAmBvE;AI9ID;;;;;GAKG;AACH,0BACE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACvC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAuC,GACrF,MAAM,CAqER;AAED,6BACE,SAAS,EAAE,GAAG,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAwB,UAGtD;AAED,gCACE,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAwB,UAGtD;AC7FD,QAAA,MAAM,MAAM,kBAA2D,CAAC;AAIxE,eAAe,MAAM,CAAC;ACxCtB,2CAA2C,MAAM,IAAI,MAAM,EAAE,CAAC,QAAQ,MAAM,EAAE,gBAAgB,CAAC,CAAC,GAC9F,mBAAmB,CAAC;AAEtB,kCAAkC,UAAU,SAAS,eAAe,IAClE,+BAA+B,qBAAqB,UAAU,CAAC,CAAC,CAAC;AAEnE,uBACI,MAAM,IAAI,iBAAiB,GAC3B,MAAM,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7C,0BAAiC,UAAU,SAAS,eAAe,IACjE,UAAU,SAAS,MAAM,IAAI,iBAAiB,GAC1C,MAAM,qBAAqB,CAAC,UAAU,CAAC,GACvC,UAAU,SAAS,MAAM,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACnE,CAAC,GAAG,MAAM,aAAa,CAAC,CAAC,CAAC,GAC1B,KAAK,CAAC;AAEZ,uBACE,UAAU,SAAS,eAAe,EAClC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE/D,GAAG,EAAE,UAAU,EACf,QAAQ,CAAC,EAAE,QAAQ,gBAAgB,EAAE,OAAO,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,EAC/E,sBAAsB,CAAC,EAAE,QAAQ,GAChC,sBAAsB,UAAU,CAAC,CA2BnC;AE7CD,4BAA4B,mBAAmB,CAAC","sources":["core/src/src/types.ts","core/src/src/classifyProps.ts","core/src/src/util/isPlainObject.ts","core/src/src/plugins/cleanStyles.ts","core/src/src/util/mapObjectRecursive.ts","core/src/src/plugins/defaultUnits.ts","core/src/src/plugins/flattenNestedStyles.ts","core/src/src/plugins/mediaArrays.ts","core/src/src/util/flatten.ts","core/src/src/plugins/merge$css.ts","core/src/src/plugins/propCasing.ts","core/src/src/plugins/replace$$class.ts","core/src/src/plugins/themeFunctions.ts","core/src/src/util/cloneDeep.ts","core/src/src/util/walkRecursive.ts","core/src/src/plugins/customProps.ts","core/src/src/plugins/index.ts","core/src/src/styleCollector.tsx","core/src/src/util/merge.ts","core/src/src/util/useIsoLayoutEffect.ts","core/src/src/StylixProvider.tsx","core/src/src/applyRules.ts","core/src/src/stylesToRuleArray.ts","core/src/src/util/hashString.ts","core/src/src/useStyles.ts","core/src/src/Stylix.tsx","core/src/src/styled.tsx","core/src/src/elements.ts","core/src/src/index.ts","core/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"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"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":"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","sources":["core/src/src/types.ts","core/src/src/classifyProps.ts","core/src/src/util/isPlainObject.ts","core/src/src/plugins/cleanStyles.ts","core/src/src/util/mapObjectRecursive.ts","core/src/src/plugins/defaultUnits.ts","core/src/src/plugins/flattenNestedStyles.ts","core/src/src/plugins/mediaArrays.ts","core/src/src/util/flatten.ts","core/src/src/plugins/merge$css.ts","core/src/src/plugins/propCasing.ts","core/src/src/plugins/replace$$class.ts","core/src/src/plugins/themeFunctions.ts","core/src/src/util/cloneDeep.ts","core/src/src/util/walkRecursive.ts","core/src/src/plugins/customProps.ts","core/src/src/plugins/index.ts","core/src/src/styleCollector.tsx","core/src/src/util/merge.ts","core/src/src/util/useIsoLayoutEffect.ts","core/src/src/StylixProvider.tsx","core/src/src/applyRules.ts","core/src/src/getParentComponentName.ts","core/src/src/stylesToRuleArray.ts","core/src/src/util/hashString.ts","core/src/src/useStyles.ts","core/src/src/Stylix.tsx","core/src/src/styled.tsx","core/src/src/elements.ts","core/src/src/index.ts","core/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"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"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stylix/core",
3
- "version": "4.0.4",
3
+ "version": "4.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
5
  "keywords": [
6
6
  "react",