@ably/ui 17.4.0 → 17.4.1-dev.2288b868

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/core/.DS_Store ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,2 +1,2 @@
1
- import*as OutlineIcons from"@heroicons/react/24/outline";import*as SolidIcons from"@heroicons/react/24/solid";import*as MiniIcons from"@heroicons/react/20/solid";import*as MicroIcons from"@heroicons/react/16/solid";export const defaultIconSecondaryColor=name=>{const colorLookup={"icon-gui-check-circled-fill":"text-white"};return colorLookup[name]};export const toPascalCase=str=>{return str.split("-").map(word=>word.charAt(0).toUpperCase()+word.slice(1)).join("")};export const getHeroicon=(iconName,variant)=>{const componentName=`${toPascalCase(iconName)}Icon`;try{let iconModule;switch(variant){case"outline":iconModule=OutlineIcons;break;case"solid":iconModule=SolidIcons;break;case"mini":iconModule=MiniIcons;break;case"micro":iconModule=MicroIcons;break;default:return null}const component=iconModule[componentName];return component||null}catch(error){console.error("Error getting heroicon:",error,componentName);return null}};export const setUniqueIds=(el,uniqueId)=>{if(el){const defsElements=el.querySelectorAll("defs [id]");const elementsWithUrls=el.querySelectorAll('[fill*="url("], [stroke*="url("], [filter*="url("], [clip-path*="url("], [mask*="url("]');defsElements.forEach(def=>{const oldId=def.id;if(oldId.includes(uniqueId)){return}const newId=`${oldId}-${uniqueId}`;def.id=newId;const regex=new RegExp(`url\\(#${oldId}\\)`,"g");elementsWithUrls.forEach(element=>{["fill","stroke","filter","clip-path","mask"].forEach(attr=>{const value=element.getAttribute(attr);if(value&&value.includes(`url(#${oldId})`)){element.setAttribute(attr,value.replace(regex,`url(#${newId})`))}})})})}};
1
+ import*as OutlineIcons from"@heroicons/react/24/outline";import*as SolidIcons from"@heroicons/react/24/solid";import*as MiniIcons from"@heroicons/react/20/solid";import*as MicroIcons from"@heroicons/react/16/solid";export const defaultIconSecondaryColor=name=>{const colorLookup={"icon-gui-check-circled-fill":"text-white"};return colorLookup[name]};export const toPascalCase=str=>{return str.split("-").map(word=>word.charAt(0).toUpperCase()+word.slice(1)).join("")};export const getHeroicon=(iconName,variant)=>{const componentName=`${toPascalCase(iconName)}Icon`;try{let iconModule;switch(variant){case"outline":iconModule=OutlineIcons;break;case"solid":iconModule=SolidIcons;break;case"mini":iconModule=MiniIcons;break;case"micro":iconModule=MicroIcons;break;default:return null}const component=iconModule[componentName];return component||null}catch(error){console.error("Error getting heroicon:",error,componentName);return null}};export const setUniqueIds=(el,uniqueId)=>{if(el){const defsElements=el.querySelectorAll("defs [id]");const elementsWithUrls=el.querySelectorAll('[fill*="url("], [stroke*="url("], [filter*="url("], [clip-path*="url("], [mask*="url("]');defsElements.forEach(def=>{const oldId=def.id;if(oldId.includes(uniqueId)){return}const newId=`${oldId}_${uniqueId}`;def.id=newId;const regex=new RegExp(`url\\(#${oldId}\\)`,"g");elementsWithUrls.forEach(element=>{["fill","stroke","filter","clip-path","mask"].forEach(attr=>{const value=element.getAttribute(attr);if(value&&value.includes(`url(#${oldId})`)){element.setAttribute(attr,value.replace(regex,`url(#${newId})`))}})})})}};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Icon/utils.ts"],"sourcesContent":["import { ColorClass } from \"../styles/colors/types\";\nimport { IconName } from \"./types\";\n\n// Import entire heroicon category modules\nimport * as OutlineIcons from \"@heroicons/react/24/outline\";\nimport * as SolidIcons from \"@heroicons/react/24/solid\";\nimport * as MiniIcons from \"@heroicons/react/20/solid\";\nimport * as MicroIcons from \"@heroicons/react/16/solid\";\n\ntype HeroiconComponent = React.ComponentType<React.SVGProps<SVGSVGElement>>;\n\nexport const defaultIconSecondaryColor = (name: IconName) => {\n const colorLookup = {\n \"icon-gui-check-circled-fill\": \"text-white\",\n } as Record<string, ColorClass>;\n\n return colorLookup[name];\n};\n\n// Helper function to convert kebab-case to PascalCase for heroicons\nexport const toPascalCase = (str: string): string => {\n return str\n .split(\"-\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\"\");\n};\n\n// Helper function to get a heroicon component by name and variant\nexport const getHeroicon = (\n iconName: string,\n variant: string,\n): HeroiconComponent | null => {\n const componentName = `${toPascalCase(iconName)}Icon`;\n\n try {\n let iconModule: Record<string, HeroiconComponent>;\n\n switch (variant) {\n case \"outline\":\n iconModule = OutlineIcons as Record<string, HeroiconComponent>;\n break;\n case \"solid\":\n iconModule = SolidIcons as Record<string, HeroiconComponent>;\n break;\n case \"mini\":\n iconModule = MiniIcons as Record<string, HeroiconComponent>;\n break;\n case \"micro\":\n iconModule = MicroIcons as Record<string, HeroiconComponent>;\n break;\n default:\n return null;\n }\n\n // Access the component from the module\n const component = iconModule[componentName];\n return component || null;\n } catch (error) {\n console.error(\"Error getting heroicon:\", error, componentName);\n return null;\n }\n};\n\nexport const setUniqueIds = (el: SVGSVGElement | null, uniqueId: string) => {\n if (el) {\n // Find all elements with IDs in defs and their URL references\n const defsElements = el.querySelectorAll(\"defs [id]\");\n const elementsWithUrls = el.querySelectorAll(\n '[fill*=\"url(\"], [stroke*=\"url(\"], [filter*=\"url(\"], [clip-path*=\"url(\"], [mask*=\"url(\"]',\n );\n\n defsElements.forEach((def) => {\n const oldId = def.id;\n\n // Prevent re-aliasing of processed ids\n if (oldId.includes(uniqueId)) {\n return;\n }\n\n const newId = `${oldId}-${uniqueId}`;\n\n def.id = newId;\n\n // Update all URL references to this ID\n const regex = new RegExp(`url\\\\(#${oldId}\\\\)`, \"g\");\n elementsWithUrls.forEach((element) => {\n [\"fill\", \"stroke\", \"filter\", \"clip-path\", \"mask\"].forEach((attr) => {\n const value = element.getAttribute(attr);\n if (value && value.includes(`url(#${oldId})`)) {\n element.setAttribute(attr, value.replace(regex, `url(#${newId})`));\n }\n });\n });\n });\n }\n};\n"],"names":["OutlineIcons","SolidIcons","MiniIcons","MicroIcons","defaultIconSecondaryColor","name","colorLookup","toPascalCase","str","split","map","word","charAt","toUpperCase","slice","join","getHeroicon","iconName","variant","componentName","iconModule","component","error","console","setUniqueIds","el","uniqueId","defsElements","querySelectorAll","elementsWithUrls","forEach","def","oldId","id","includes","newId","regex","RegExp","element","attr","value","getAttribute","setAttribute","replace"],"mappings":"AAIA,UAAYA,iBAAkB,6BAA8B,AAC5D,WAAYC,eAAgB,2BAA4B,AACxD,WAAYC,cAAe,2BAA4B,AACvD,WAAYC,eAAgB,2BAA4B,AAIxD,QAAO,MAAMC,0BAA4B,AAACC,OACxC,MAAMC,YAAc,CAClB,8BAA+B,YACjC,EAEA,OAAOA,WAAW,CAACD,KAAK,AAC1B,CAAE,AAGF,QAAO,MAAME,aAAe,AAACC,MAC3B,OAAOA,IACJC,KAAK,CAAC,KACNC,GAAG,CAAC,AAACC,MAASA,KAAKC,MAAM,CAAC,GAAGC,WAAW,GAAKF,KAAKG,KAAK,CAAC,IACxDC,IAAI,CAAC,GACV,CAAE,AAGF,QAAO,MAAMC,YAAc,CACzBC,SACAC,WAEA,MAAMC,cAAgB,CAAC,EAAEZ,aAAaU,UAAU,IAAI,CAAC,CAErD,GAAI,CACF,IAAIG,WAEJ,OAAQF,SACN,IAAK,UACHE,WAAapB,aACb,KACF,KAAK,QACHoB,WAAanB,WACb,KACF,KAAK,OACHmB,WAAalB,UACb,KACF,KAAK,QACHkB,WAAajB,WACb,KACF,SACE,OAAO,IACX,CAGA,MAAMkB,UAAYD,UAAU,CAACD,cAAc,CAC3C,OAAOE,WAAa,IACtB,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAAC,0BAA2BA,MAAOH,eAChD,OAAO,IACT,CACF,CAAE,AAEF,QAAO,MAAMK,aAAe,CAACC,GAA0BC,YACrD,GAAID,GAAI,CAEN,MAAME,aAAeF,GAAGG,gBAAgB,CAAC,aACzC,MAAMC,iBAAmBJ,GAAGG,gBAAgB,CAC1C,2FAGFD,aAAaG,OAAO,CAAC,AAACC,MACpB,MAAMC,MAAQD,IAAIE,EAAE,CAGpB,GAAID,MAAME,QAAQ,CAACR,UAAW,CAC5B,MACF,CAEA,MAAMS,MAAQ,CAAC,EAAEH,MAAM,CAAC,EAAEN,SAAS,CAAC,AAEpCK,CAAAA,IAAIE,EAAE,CAAGE,MAGT,MAAMC,MAAQ,IAAIC,OAAO,CAAC,OAAO,EAAEL,MAAM,GAAG,CAAC,CAAE,KAC/CH,iBAAiBC,OAAO,CAAC,AAACQ,UACxB,CAAC,OAAQ,SAAU,SAAU,YAAa,OAAO,CAACR,OAAO,CAAC,AAACS,OACzD,MAAMC,MAAQF,QAAQG,YAAY,CAACF,MACnC,GAAIC,OAASA,MAAMN,QAAQ,CAAC,CAAC,KAAK,EAAEF,MAAM,CAAC,CAAC,EAAG,CAC7CM,QAAQI,YAAY,CAACH,KAAMC,MAAMG,OAAO,CAACP,MAAO,CAAC,KAAK,EAAED,MAAM,CAAC,CAAC,EAClE,CACF,EACF,EACF,EACF,CACF,CAAE"}
1
+ {"version":3,"sources":["../../../src/core/Icon/utils.ts"],"sourcesContent":["import { ColorClass } from \"../styles/colors/types\";\nimport { IconName } from \"./types\";\n\n// Import entire heroicon category modules\nimport * as OutlineIcons from \"@heroicons/react/24/outline\";\nimport * as SolidIcons from \"@heroicons/react/24/solid\";\nimport * as MiniIcons from \"@heroicons/react/20/solid\";\nimport * as MicroIcons from \"@heroicons/react/16/solid\";\n\ntype HeroiconComponent = React.ComponentType<React.SVGProps<SVGSVGElement>>;\n\nexport const defaultIconSecondaryColor = (name: IconName) => {\n const colorLookup = {\n \"icon-gui-check-circled-fill\": \"text-white\",\n } as Record<string, ColorClass>;\n\n return colorLookup[name];\n};\n\n// Helper function to convert kebab-case to PascalCase for heroicons\nexport const toPascalCase = (str: string): string => {\n return str\n .split(\"-\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\"\");\n};\n\n// Helper function to get a heroicon component by name and variant\nexport const getHeroicon = (\n iconName: string,\n variant: string,\n): HeroiconComponent | null => {\n const componentName = `${toPascalCase(iconName)}Icon`;\n\n try {\n let iconModule: Record<string, HeroiconComponent>;\n\n switch (variant) {\n case \"outline\":\n iconModule = OutlineIcons as Record<string, HeroiconComponent>;\n break;\n case \"solid\":\n iconModule = SolidIcons as Record<string, HeroiconComponent>;\n break;\n case \"mini\":\n iconModule = MiniIcons as Record<string, HeroiconComponent>;\n break;\n case \"micro\":\n iconModule = MicroIcons as Record<string, HeroiconComponent>;\n break;\n default:\n return null;\n }\n\n // Access the component from the module\n const component = iconModule[componentName];\n return component || null;\n } catch (error) {\n console.error(\"Error getting heroicon:\", error, componentName);\n return null;\n }\n};\n\nexport const setUniqueIds = (el: SVGSVGElement | null, uniqueId: string) => {\n if (el) {\n // Find all elements with IDs in defs and their URL references\n const defsElements = el.querySelectorAll(\"defs [id]\");\n const elementsWithUrls = el.querySelectorAll(\n '[fill*=\"url(\"], [stroke*=\"url(\"], [filter*=\"url(\"], [clip-path*=\"url(\"], [mask*=\"url(\"]',\n );\n\n defsElements.forEach((def) => {\n const oldId = def.id;\n\n // Prevent re-aliasing of processed ids\n if (oldId.includes(uniqueId)) {\n return;\n }\n\n const newId = `${oldId}_${uniqueId}`;\n\n def.id = newId;\n\n // Update all URL references to this ID\n const regex = new RegExp(`url\\\\(#${oldId}\\\\)`, \"g\");\n elementsWithUrls.forEach((element) => {\n [\"fill\", \"stroke\", \"filter\", \"clip-path\", \"mask\"].forEach((attr) => {\n const value = element.getAttribute(attr);\n if (value && value.includes(`url(#${oldId})`)) {\n element.setAttribute(attr, value.replace(regex, `url(#${newId})`));\n }\n });\n });\n });\n }\n};\n"],"names":["OutlineIcons","SolidIcons","MiniIcons","MicroIcons","defaultIconSecondaryColor","name","colorLookup","toPascalCase","str","split","map","word","charAt","toUpperCase","slice","join","getHeroicon","iconName","variant","componentName","iconModule","component","error","console","setUniqueIds","el","uniqueId","defsElements","querySelectorAll","elementsWithUrls","forEach","def","oldId","id","includes","newId","regex","RegExp","element","attr","value","getAttribute","setAttribute","replace"],"mappings":"AAIA,UAAYA,iBAAkB,6BAA8B,AAC5D,WAAYC,eAAgB,2BAA4B,AACxD,WAAYC,cAAe,2BAA4B,AACvD,WAAYC,eAAgB,2BAA4B,AAIxD,QAAO,MAAMC,0BAA4B,AAACC,OACxC,MAAMC,YAAc,CAClB,8BAA+B,YACjC,EAEA,OAAOA,WAAW,CAACD,KAAK,AAC1B,CAAE,AAGF,QAAO,MAAME,aAAe,AAACC,MAC3B,OAAOA,IACJC,KAAK,CAAC,KACNC,GAAG,CAAC,AAACC,MAASA,KAAKC,MAAM,CAAC,GAAGC,WAAW,GAAKF,KAAKG,KAAK,CAAC,IACxDC,IAAI,CAAC,GACV,CAAE,AAGF,QAAO,MAAMC,YAAc,CACzBC,SACAC,WAEA,MAAMC,cAAgB,CAAC,EAAEZ,aAAaU,UAAU,IAAI,CAAC,CAErD,GAAI,CACF,IAAIG,WAEJ,OAAQF,SACN,IAAK,UACHE,WAAapB,aACb,KACF,KAAK,QACHoB,WAAanB,WACb,KACF,KAAK,OACHmB,WAAalB,UACb,KACF,KAAK,QACHkB,WAAajB,WACb,KACF,SACE,OAAO,IACX,CAGA,MAAMkB,UAAYD,UAAU,CAACD,cAAc,CAC3C,OAAOE,WAAa,IACtB,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAAC,0BAA2BA,MAAOH,eAChD,OAAO,IACT,CACF,CAAE,AAEF,QAAO,MAAMK,aAAe,CAACC,GAA0BC,YACrD,GAAID,GAAI,CAEN,MAAME,aAAeF,GAAGG,gBAAgB,CAAC,aACzC,MAAMC,iBAAmBJ,GAAGG,gBAAgB,CAC1C,2FAGFD,aAAaG,OAAO,CAAC,AAACC,MACpB,MAAMC,MAAQD,IAAIE,EAAE,CAGpB,GAAID,MAAME,QAAQ,CAACR,UAAW,CAC5B,MACF,CAEA,MAAMS,MAAQ,CAAC,EAAEH,MAAM,CAAC,EAAEN,SAAS,CAAC,AAEpCK,CAAAA,IAAIE,EAAE,CAAGE,MAGT,MAAMC,MAAQ,IAAIC,OAAO,CAAC,OAAO,EAAEL,MAAM,GAAG,CAAC,CAAE,KAC/CH,iBAAiBC,OAAO,CAAC,AAACQ,UACxB,CAAC,OAAQ,SAAU,SAAU,YAAa,OAAO,CAACR,OAAO,CAAC,AAACS,OACzD,MAAMC,MAAQF,QAAQG,YAAY,CAACF,MACnC,GAAIC,OAASA,MAAMN,QAAQ,CAAC,CAAC,KAAK,EAAEF,MAAM,CAAC,CAAC,EAAG,CAC7CM,QAAQI,YAAY,CAACH,KAAMC,MAAMG,OAAO,CAACP,MAAO,CAAC,KAAK,EAAED,MAAM,CAAC,CAAC,EAClE,CACF,EACF,EACF,EACF,CACF,CAAE"}
package/core/Icon.js CHANGED
@@ -1,2 +1,2 @@
1
- import React,{useCallback,useId,useMemo}from"react";import{defaultIconSecondaryColor,getHeroicon,setUniqueIds,toPascalCase}from"./Icon/utils";import*as IconComponents from"./Icon/components";import{convertTailwindClassToVar}from"./styles/colors/utils";import cn from"./utils/cn";const getHeroiconComponent=iconName=>{const match=iconName.match(/^icon-gui-(.+)-(outline|solid|mini|micro)$/);if(!match){return null}const[,heroiconName,variant]=match;const component=getHeroicon(heroiconName,variant);return component};const Icon=({name,size="0.75rem",color,secondaryColor,additionalCSS="",variant,...additionalAttributes})=>{const uniqueId=useId();const[lightSecondaryColor,darkSecondaryColor]=(secondaryColor??"").split(" dark:");const iconName=variant&&!name.endsWith(`-${variant}`)?`${name}-${variant}`:name;const LocalIconComponent=useMemo(()=>{return IconComponents[toPascalCase(iconName)]},[iconName]);const HeroiconComponent=useMemo(()=>{return LocalIconComponent?null:getHeroiconComponent(iconName)},[LocalIconComponent,iconName]);const setUniqueIdsRef=useCallback(el=>{setUniqueIds(el,uniqueId)},[uniqueId]);const iconSvg=useCallback((secondaryColor,isDark,isThemed)=>{if(LocalIconComponent){let secondaryColorValue;if(secondaryColor){secondaryColorValue=convertTailwindClassToVar(secondaryColor)}else if(defaultIconSecondaryColor(name)){secondaryColorValue=convertTailwindClassToVar(defaultIconSecondaryColor(name))}return React.createElement(LocalIconComponent,{className:cn({[`${color}`]:color},{[`${additionalCSS}`]:additionalCSS},{"hidden dark:block":secondaryColor&&!isDark&&isThemed},{"dark:hidden":secondaryColor&&isDark&&isThemed}),style:{width:size,height:size,...secondaryColorValue&&{"--ui-icon-secondary-color":secondaryColorValue}},...additionalAttributes,ref:setUniqueIdsRef})}if(HeroiconComponent){return React.createElement(HeroiconComponent,{className:cn({[`${color}`]:color},{[`${additionalCSS}`]:additionalCSS}),style:{width:size,height:size},...additionalAttributes})}},[LocalIconComponent,HeroiconComponent,iconName,size,color,additionalCSS,lightSecondaryColor,darkSecondaryColor,name]);if(lightSecondaryColor&&darkSecondaryColor){return React.createElement(React.Fragment,null,iconSvg(lightSecondaryColor,false,!!darkSecondaryColor),iconSvg(darkSecondaryColor,true,true))}else if(lightSecondaryColor){return iconSvg(lightSecondaryColor,false,!!darkSecondaryColor)}else{return iconSvg()}};export default Icon;
1
+ import React,{useCallback,useMemo}from"react";import{defaultIconSecondaryColor,getHeroicon,setUniqueIds,toPascalCase}from"./Icon/utils";import*as IconComponents from"./Icon/components";import{convertTailwindClassToVar}from"./styles/colors/utils";import cn from"./utils/cn";const getHeroiconComponent=iconName=>{const match=iconName.match(/^icon-gui-(.+)-(outline|solid|mini|micro)$/);if(!match){return null}const[,heroiconName,variant]=match;const component=getHeroicon(heroiconName,variant);return component};const Icon=({name,size="0.75rem",color,secondaryColor,additionalCSS="",variant,...additionalAttributes})=>{const[lightSecondaryColor,darkSecondaryColor]=(secondaryColor??"").split(" dark:");const iconName=variant&&!name.endsWith(`-${variant}`)?`${name}-${variant}`:name;const LocalIconComponent=useMemo(()=>{return IconComponents[toPascalCase(iconName)]},[iconName]);const HeroiconComponent=useMemo(()=>{return LocalIconComponent?null:getHeroiconComponent(iconName)},[LocalIconComponent,iconName]);const setUniqueIdsRef=useCallback(el=>{const uniqueId=Math.random().toString(36).substring(2,9);setUniqueIds(el,uniqueId)},[]);const iconSvg=useCallback((secondaryColor,isDark,isThemed)=>{if(LocalIconComponent){let secondaryColorValue;if(secondaryColor){secondaryColorValue=convertTailwindClassToVar(secondaryColor)}else if(defaultIconSecondaryColor(name)){secondaryColorValue=convertTailwindClassToVar(defaultIconSecondaryColor(name))}return React.createElement(LocalIconComponent,{className:cn({[`${color}`]:color},{[`${additionalCSS}`]:additionalCSS},{"hidden dark:block":secondaryColor&&!isDark&&isThemed},{"dark:hidden":secondaryColor&&isDark&&isThemed}),style:{width:size,height:size,...secondaryColorValue&&{"--ui-icon-secondary-color":secondaryColorValue}},...additionalAttributes,ref:setUniqueIdsRef})}if(HeroiconComponent){return React.createElement(HeroiconComponent,{className:cn({[`${color}`]:color},{[`${additionalCSS}`]:additionalCSS}),style:{width:size,height:size},...additionalAttributes})}},[LocalIconComponent,HeroiconComponent,iconName,size,color,additionalCSS,lightSecondaryColor,darkSecondaryColor,name]);if(lightSecondaryColor&&darkSecondaryColor){return React.createElement(React.Fragment,null,iconSvg(lightSecondaryColor,false,!!darkSecondaryColor),iconSvg(darkSecondaryColor,true,true))}else if(lightSecondaryColor){return iconSvg(lightSecondaryColor,false,!!darkSecondaryColor)}else{return iconSvg()}};export default Icon;
2
2
  //# sourceMappingURL=Icon.js.map
package/core/Icon.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/Icon.tsx"],"sourcesContent":["import React, { CSSProperties, useCallback, useId, useMemo } from \"react\";\n\nimport {\n defaultIconSecondaryColor,\n getHeroicon,\n setUniqueIds,\n toPascalCase,\n} from \"./Icon/utils\";\nimport * as IconComponents from \"./Icon/components\";\nimport { IconName, IconSize } from \"./Icon/types\";\nimport { ColorClass, ColorThemeSet } from \"./styles/colors/types\";\nimport { convertTailwindClassToVar } from \"./styles/colors/utils\";\nimport cn from \"./utils/cn\";\n\nexport type IconProps = {\n name: IconName;\n size?: IconSize;\n color?: ColorClass | ColorThemeSet;\n secondaryColor?: ColorClass | ColorThemeSet;\n additionalCSS?: string;\n variant?: \"outline\" | \"solid\" | \"micro\" | \"mini\";\n};\n\n// Helper function to get a heroicon component from the static map\nconst getHeroiconComponent = (\n iconName: string,\n): React.ComponentType<React.SVGProps<SVGSVGElement>> | null => {\n // Parse the icon name to extract heroicon name and variant\n // Expected format: icon-gui-{heroicon-name}-{variant}\n const match = iconName.match(/^icon-gui-(.+)-(outline|solid|mini|micro)$/);\n if (!match) {\n return null;\n }\n\n const [, heroiconName, variant] = match;\n const component = getHeroicon(heroiconName, variant);\n return component;\n};\n\nconst Icon = ({\n name,\n size = \"0.75rem\",\n color,\n secondaryColor,\n additionalCSS = \"\",\n variant,\n ...additionalAttributes\n}: IconProps) => {\n const uniqueId = useId();\n\n const [lightSecondaryColor, darkSecondaryColor] = (\n secondaryColor ?? \"\"\n ).split(\" dark:\") as [ColorClass, ColorClass | undefined];\n\n const iconName =\n variant && !name.endsWith(`-${variant}`) ? `${name}-${variant}` : name;\n\n // Get the local icon component (memoized)\n const LocalIconComponent = useMemo(():\n | React.ComponentType<React.SVGProps<SVGSVGElement>>\n | undefined => {\n return IconComponents[\n toPascalCase(iconName) as keyof typeof IconComponents\n ];\n }, [iconName]);\n\n // Get the heroicon component only if no local component is found (memoized)\n const HeroiconComponent = useMemo(() => {\n return LocalIconComponent ? null : getHeroiconComponent(iconName);\n }, [LocalIconComponent, iconName]);\n\n const setUniqueIdsRef = useCallback(\n (el: SVGSVGElement | null) => {\n setUniqueIds(el, uniqueId);\n },\n [uniqueId],\n );\n\n const iconSvg = useCallback(\n (secondaryColor?: ColorClass, isDark?: boolean, isThemed?: boolean) => {\n if (LocalIconComponent) {\n let secondaryColorValue;\n if (secondaryColor) {\n secondaryColorValue = convertTailwindClassToVar(secondaryColor);\n } else if (defaultIconSecondaryColor(name)) {\n secondaryColorValue = convertTailwindClassToVar(\n defaultIconSecondaryColor(name),\n );\n }\n\n return (\n <LocalIconComponent\n className={cn(\n { [`${color}`]: color },\n { [`${additionalCSS}`]: additionalCSS },\n {\n \"hidden dark:block\": secondaryColor && !isDark && isThemed,\n },\n {\n \"dark:hidden\": secondaryColor && isDark && isThemed,\n },\n )}\n style={\n {\n width: size,\n height: size,\n ...(secondaryColorValue && {\n \"--ui-icon-secondary-color\": secondaryColorValue,\n }),\n } as CSSProperties\n }\n {...additionalAttributes}\n ref={setUniqueIdsRef}\n />\n );\n }\n\n if (HeroiconComponent) {\n return (\n <HeroiconComponent\n className={cn(\n { [`${color}`]: color },\n { [`${additionalCSS}`]: additionalCSS },\n )}\n style={{\n width: size,\n height: size,\n }}\n {...additionalAttributes}\n />\n );\n }\n },\n [\n LocalIconComponent,\n HeroiconComponent,\n iconName,\n size,\n color,\n additionalCSS,\n lightSecondaryColor,\n darkSecondaryColor,\n name,\n ],\n );\n\n if (lightSecondaryColor && darkSecondaryColor) {\n return (\n <>\n {iconSvg(lightSecondaryColor, false, !!darkSecondaryColor)}\n {iconSvg(darkSecondaryColor, true, true)}\n </>\n );\n } else if (lightSecondaryColor) {\n return iconSvg(lightSecondaryColor, false, !!darkSecondaryColor);\n } else {\n return iconSvg();\n }\n};\n\nexport default Icon;\n"],"names":["React","useCallback","useId","useMemo","defaultIconSecondaryColor","getHeroicon","setUniqueIds","toPascalCase","IconComponents","convertTailwindClassToVar","cn","getHeroiconComponent","iconName","match","heroiconName","variant","component","Icon","name","size","color","secondaryColor","additionalCSS","additionalAttributes","uniqueId","lightSecondaryColor","darkSecondaryColor","split","endsWith","LocalIconComponent","HeroiconComponent","setUniqueIdsRef","el","iconSvg","isDark","isThemed","secondaryColorValue","className","style","width","height","ref"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/core/Icon.tsx"],"sourcesContent":["import React, { CSSProperties, useCallback, useMemo } from \"react\";\n\nimport {\n defaultIconSecondaryColor,\n getHeroicon,\n setUniqueIds,\n toPascalCase,\n} from \"./Icon/utils\";\nimport * as IconComponents from \"./Icon/components\";\nimport { IconName, IconSize } from \"./Icon/types\";\nimport { ColorClass, ColorThemeSet } from \"./styles/colors/types\";\nimport { convertTailwindClassToVar } from \"./styles/colors/utils\";\nimport cn from \"./utils/cn\";\n\nexport type IconProps = {\n name: IconName;\n size?: IconSize;\n color?: ColorClass | ColorThemeSet;\n secondaryColor?: ColorClass | ColorThemeSet;\n additionalCSS?: string;\n variant?: \"outline\" | \"solid\" | \"micro\" | \"mini\";\n};\n\n// Helper function to get a heroicon component from the static map\nconst getHeroiconComponent = (\n iconName: string,\n): React.ComponentType<React.SVGProps<SVGSVGElement>> | null => {\n // Parse the icon name to extract heroicon name and variant\n // Expected format: icon-gui-{heroicon-name}-{variant}\n const match = iconName.match(/^icon-gui-(.+)-(outline|solid|mini|micro)$/);\n if (!match) {\n return null;\n }\n\n const [, heroiconName, variant] = match;\n const component = getHeroicon(heroiconName, variant);\n return component;\n};\n\nconst Icon = ({\n name,\n size = \"0.75rem\",\n color,\n secondaryColor,\n additionalCSS = \"\",\n variant,\n ...additionalAttributes\n}: IconProps) => {\n const [lightSecondaryColor, darkSecondaryColor] = (\n secondaryColor ?? \"\"\n ).split(\" dark:\") as [ColorClass, ColorClass | undefined];\n\n const iconName =\n variant && !name.endsWith(`-${variant}`) ? `${name}-${variant}` : name;\n\n // Get the local icon component (memoized)\n const LocalIconComponent = useMemo(():\n | React.ComponentType<React.SVGProps<SVGSVGElement>>\n | undefined => {\n return IconComponents[\n toPascalCase(iconName) as keyof typeof IconComponents\n ];\n }, [iconName]);\n\n // Get the heroicon component only if no local component is found (memoized)\n const HeroiconComponent = useMemo(() => {\n return LocalIconComponent ? null : getHeroiconComponent(iconName);\n }, [LocalIconComponent, iconName]);\n\n const setUniqueIdsRef = useCallback((el: SVGSVGElement | null) => {\n const uniqueId = Math.random().toString(36).substring(2, 9);\n setUniqueIds(el, uniqueId);\n }, []);\n\n const iconSvg = useCallback(\n (secondaryColor?: ColorClass, isDark?: boolean, isThemed?: boolean) => {\n if (LocalIconComponent) {\n let secondaryColorValue;\n if (secondaryColor) {\n secondaryColorValue = convertTailwindClassToVar(secondaryColor);\n } else if (defaultIconSecondaryColor(name)) {\n secondaryColorValue = convertTailwindClassToVar(\n defaultIconSecondaryColor(name),\n );\n }\n\n return (\n <LocalIconComponent\n className={cn(\n { [`${color}`]: color },\n { [`${additionalCSS}`]: additionalCSS },\n {\n \"hidden dark:block\": secondaryColor && !isDark && isThemed,\n },\n {\n \"dark:hidden\": secondaryColor && isDark && isThemed,\n },\n )}\n style={\n {\n width: size,\n height: size,\n ...(secondaryColorValue && {\n \"--ui-icon-secondary-color\": secondaryColorValue,\n }),\n } as CSSProperties\n }\n {...additionalAttributes}\n ref={setUniqueIdsRef}\n />\n );\n }\n\n if (HeroiconComponent) {\n return (\n <HeroiconComponent\n className={cn(\n { [`${color}`]: color },\n { [`${additionalCSS}`]: additionalCSS },\n )}\n style={{\n width: size,\n height: size,\n }}\n {...additionalAttributes}\n />\n );\n }\n },\n [\n LocalIconComponent,\n HeroiconComponent,\n iconName,\n size,\n color,\n additionalCSS,\n lightSecondaryColor,\n darkSecondaryColor,\n name,\n ],\n );\n\n if (lightSecondaryColor && darkSecondaryColor) {\n return (\n <>\n {iconSvg(lightSecondaryColor, false, !!darkSecondaryColor)}\n {iconSvg(darkSecondaryColor, true, true)}\n </>\n );\n } else if (lightSecondaryColor) {\n return iconSvg(lightSecondaryColor, false, !!darkSecondaryColor);\n } else {\n return iconSvg();\n }\n};\n\nexport default Icon;\n"],"names":["React","useCallback","useMemo","defaultIconSecondaryColor","getHeroicon","setUniqueIds","toPascalCase","IconComponents","convertTailwindClassToVar","cn","getHeroiconComponent","iconName","match","heroiconName","variant","component","Icon","name","size","color","secondaryColor","additionalCSS","additionalAttributes","lightSecondaryColor","darkSecondaryColor","split","endsWith","LocalIconComponent","HeroiconComponent","setUniqueIdsRef","el","uniqueId","Math","random","toString","substring","iconSvg","isDark","isThemed","secondaryColorValue","className","style","width","height","ref"],"mappings":"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"}
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/remote-session-data.js"],"sourcesContent":["/* global __ENABLE_FETCH_WITH_CREDENTIALS__ */\n\n// Fetches current users session data\n// Assumes an authenticated session, so will only work when used on ably.com/ably.io\n\nimport { isJsonResponse } from \"./remote-data-util\";\n\nconst NOT_FOUND_ERROR_CODE = \"not-found\";\n\nconst fetchSessionData = async (store, sessionUrl) => {\n const sessionLoaded = (payload = {}) =>\n store.dispatch({ type: \"session/loaded\", payload });\n\n try {\n if (!sessionUrl) {\n console.log(\n `Skipping fetching session, invalid sessionUrl: \"${sessionUrl}\"`,\n );\n sessionLoaded();\n return;\n }\n\n const options = {\n headers: {\n accept: \"application/json\",\n },\n cache: \"no-cache\",\n };\n\n if (__ENABLE_FETCH_WITH_CREDENTIALS__) {\n options.credentials = \"include\";\n }\n\n const res = await fetch(sessionUrl, options);\n const jsonResponse = isJsonResponse(res.headers.get(\"content-type\"));\n\n if (!jsonResponse) {\n throw new Error(\"Session endpoint is not serving json\");\n }\n\n const payload = await res.json();\n\n if (payload.error === NOT_FOUND_ERROR_CODE) {\n sessionLoaded();\n } else {\n sessionLoaded(payload);\n }\n } catch (e) {\n sessionLoaded();\n console.warn(\"Could not fetch session data due to error:\", e);\n }\n};\n\nconst initialState = { data: null };\n\nconst REDUCER_KEY = \"session\";\n\nconst reducerSessionData = {\n [REDUCER_KEY]: (state = initialState, action) => {\n switch (action.type) {\n case \"session/loaded\":\n return { ...state, data: action.payload };\n default:\n return state;\n }\n },\n};\n\nconst selectSessionData = (store) => store.getState()[REDUCER_KEY]?.data;\n\nexport { fetchSessionData, reducerSessionData, selectSessionData };\n"],"names":["isJsonResponse","NOT_FOUND_ERROR_CODE","fetchSessionData","store","sessionUrl","sessionLoaded","payload","dispatch","type","console","log","options","headers","accept","cache","credentials","res","fetch","jsonResponse","get","Error","json","error","e","warn","initialState","data","REDUCER_KEY","reducerSessionData","state","action","selectSessionData","getState"],"mappings":"AAKA,OAASA,cAAc,KAAQ,oBAAqB,CAEpD,MAAMC,qBAAuB,YAE7B,MAAMC,iBAAmB,MAAOC,MAAOC,cACrC,MAAMC,cAAgB,CAACC,QAAU,CAAC,CAAC,GACjCH,MAAMI,QAAQ,CAAC,CAAEC,KAAM,iBAAkBF,OAAQ,GAEnD,GAAI,CACF,GAAI,CAACF,WAAY,CACfK,QAAQC,GAAG,CACT,CAAC,gDAAgD,EAAEN,WAAW,CAAC,CAAC,EAElEC,gBACA,MACF,CAEA,MAAMM,QAAU,CACdC,QAAS,CACPC,OAAQ,kBACV,EACAC,MAAO,UACT,EAEA,SAAuC,CACrCH,QAAQI,WAAW,CAAG,SACxB,CAEA,MAAMC,IAAM,MAAMC,MAAMb,WAAYO,SACpC,MAAMO,aAAelB,eAAegB,IAAIJ,OAAO,CAACO,GAAG,CAAC,iBAEpD,GAAI,CAACD,aAAc,CACjB,MAAM,IAAIE,MAAM,uCAClB,CAEA,MAAMd,QAAU,MAAMU,IAAIK,IAAI,GAE9B,GAAIf,QAAQgB,KAAK,GAAKrB,qBAAsB,CAC1CI,eACF,KAAO,CACLA,cAAcC,QAChB,CACF,CAAE,MAAOiB,EAAG,CACVlB,gBACAI,QAAQe,IAAI,CAAC,6CAA8CD,EAC7D,CACF,EAEA,MAAME,aAAe,CAAEC,KAAM,IAAK,EAElC,MAAMC,YAAc,UAEpB,MAAMC,mBAAqB,CACzB,CAACD,YAAY,CAAE,CAACE,MAAQJ,YAAY,CAAEK,UACpC,OAAQA,OAAOtB,IAAI,EACjB,IAAK,iBACH,MAAO,CAAE,GAAGqB,KAAK,CAAEH,KAAMI,OAAOxB,OAAO,AAAC,CAC1C,SACE,OAAOuB,KACX,CACF,CACF,EAEA,MAAME,kBAAoB,AAAC5B,OAAUA,MAAM6B,QAAQ,EAAE,CAACL,YAAY,EAAED,IAEpE,QAASxB,gBAAgB,CAAE0B,kBAAkB,CAAEG,iBAAiB,CAAG"}
1
+ {"version":3,"sources":["../../src/core/remote-session-data.js"],"sourcesContent":["/* global __ENABLE_FETCH_WITH_CREDENTIALS__ */\n\n// Fetches current users session data\n// Assumes an authenticated session, so will only work when used on ably.com/ably.io\n\nimport { isJsonResponse } from \"./remote-data-util\";\n\nconst NOT_FOUND_ERROR_CODE = \"not-found\";\n\nconst fetchSessionData = async (store, sessionUrl) => {\n const sessionLoaded = (payload = {}) =>\n store.dispatch({ type: \"session/loaded\", payload });\n\n try {\n if (!sessionUrl) {\n console.log(\n `Skipping fetching session, invalid sessionUrl: \"${sessionUrl}\"`,\n );\n sessionLoaded();\n return;\n }\n\n const options = {\n headers: {\n accept: \"application/json\",\n },\n cache: \"no-cache\",\n };\n\n if (__ENABLE_FETCH_WITH_CREDENTIALS__) {\n options.credentials = \"include\";\n }\n\n const res = await fetch(sessionUrl, options);\n const jsonResponse = isJsonResponse(res.headers.get(\"content-type\"));\n\n if (!jsonResponse) {\n throw new Error(\"Session endpoint is not serving json\");\n }\n\n const payload = await res.json();\n\n if (payload.error === NOT_FOUND_ERROR_CODE) {\n sessionLoaded();\n } else {\n sessionLoaded(payload);\n }\n } catch (e) {\n sessionLoaded();\n console.warn(\"Could not fetch session data due to error:\", e);\n }\n};\n\nconst initialState = { data: null };\n\nconst REDUCER_KEY = \"session\";\n\nconst reducerSessionData = {\n [REDUCER_KEY]: (state = initialState, action) => {\n switch (action.type) {\n case \"session/loaded\":\n return { ...state, data: action.payload };\n default:\n return state;\n }\n },\n};\n\nconst selectSessionData = (store) => store.getState()[REDUCER_KEY]?.data;\n\nexport { fetchSessionData, reducerSessionData, selectSessionData };\n"],"names":["isJsonResponse","NOT_FOUND_ERROR_CODE","fetchSessionData","store","sessionUrl","sessionLoaded","payload","dispatch","type","console","log","options","headers","accept","cache","credentials","res","fetch","jsonResponse","get","Error","json","error","e","warn","initialState","data","REDUCER_KEY","reducerSessionData","state","action","selectSessionData","getState"],"mappings":"AAKA,OAASA,cAAc,KAAQ,oBAAqB,CAEpD,MAAMC,qBAAuB,YAE7B,MAAMC,iBAAmB,MAAOC,MAAOC,cACrC,MAAMC,cAAgB,CAACC,QAAU,CAAC,CAAC,GACjCH,MAAMI,QAAQ,CAAC,CAAEC,KAAM,iBAAkBF,OAAQ,GAEnD,GAAI,CACF,GAAI,CAACF,WAAY,CACfK,QAAQC,GAAG,CACT,CAAC,gDAAgD,EAAEN,WAAW,CAAC,CAAC,EAElEC,gBACA,MACF,CAEA,MAAMM,QAAU,CACdC,QAAS,CACPC,OAAQ,kBACV,EACAC,MAAO,UACT,EAEA,GAuC6D,MAvCtB,CACrCH,QAAQI,WAAW,CAAG,SACxB,CAEA,MAAMC,IAAM,MAAMC,MAAMb,WAAYO,SACpC,MAAMO,aAAelB,eAAegB,IAAIJ,OAAO,CAACO,GAAG,CAAC,iBAEpD,GAAI,CAACD,aAAc,CACjB,MAAM,IAAIE,MAAM,uCAClB,CAEA,MAAMd,QAAU,MAAMU,IAAIK,IAAI,GAE9B,GAAIf,QAAQgB,KAAK,GAAKrB,qBAAsB,CAC1CI,eACF,KAAO,CACLA,cAAcC,QAChB,CACF,CAAE,MAAOiB,EAAG,CACVlB,gBACAI,QAAQe,IAAI,CAAC,6CAA8CD,EAC7D,CACF,EAEA,MAAME,aAAe,CAAEC,KAAM,IAAK,EAElC,MAAMC,YAAc,UAEpB,MAAMC,mBAAqB,CACzB,CAACD,YAAY,CAAE,CAACE,MAAQJ,YAAY,CAAEK,UACpC,OAAQA,OAAOtB,IAAI,EACjB,IAAK,iBACH,MAAO,CAAE,GAAGqB,KAAK,CAAEH,KAAMI,OAAOxB,OAAO,AAAC,CAC1C,SACE,OAAOuB,KACX,CACF,CACF,EAEA,MAAME,kBAAoB,AAAC5B,OAAUA,MAAM6B,QAAQ,EAAE,CAACL,YAAY,EAAED,IAEpE,QAASxB,gBAAgB,CAAE0B,kBAAkB,CAAEG,iBAAiB,CAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ably/ui",
3
- "version": "17.4.0",
3
+ "version": "17.4.1-dev.2288b868",
4
4
  "description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
5
5
  "repository": {
6
6
  "type": "git",