@shipfox/react-ui 0.9.0 → 0.10.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.
@@ -1,12 +1,12 @@
1
1
   WARN  Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
2
2
 
3
- > @shipfox/react-ui@0.9.0 build /runner/_work/tooling/tooling/libs/react/ui
3
+ > @shipfox/react-ui@0.10.0 build /runner/_work/tooling/tooling/libs/react/ui
4
4
  > swc && pnpm run build:css
5
5
 
6
- Successfully compiled: 119 files with swc (333.36ms)
6
+ Successfully compiled: 120 files with swc (300.11ms)
7
7
   WARN  Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
8
8
 
9
- > @shipfox/react-ui@0.9.0 build:css /runner/_work/tooling/tooling/libs/react/ui
9
+ > @shipfox/react-ui@0.10.0 build:css /runner/_work/tooling/tooling/libs/react/ui
10
10
  > vite build --config vite.css.config.ts && rm -f dist/css-entry.js dist/css-entry.js.map
11
11
 
12
12
  vite v7.2.4 building client environment for production...
@@ -16,4 +16,4 @@ rendering chunks...
16
16
  computing gzip size...
17
17
  dist/styles.css 85.04 kB │ gzip: 13.51 kB
18
18
  dist/css-entry.js  0.00 kB │ gzip: 0.02 kB
19
- ✓ built in 505ms
19
+ ✓ built in 551ms
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
2
2
 
3
- > @shipfox/react-ui@0.9.0 check /runner/_work/tooling/tooling/libs/react/ui
3
+ > @shipfox/react-ui@0.10.0 check /runner/_work/tooling/tooling/libs/react/ui
4
4
  > biome-check --fix
5
5
 
6
- Checked 138 files in 244ms. No fixes applied.
6
+ Checked 139 files in 247ms. No fixes applied.
@@ -1,5 +1,5 @@
1
1
   WARN  Issue while reading "/runner/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
2
2
 
3
- > @shipfox/react-ui@0.9.0 type /runner/_work/tooling/tooling/libs/react/ui
3
+ > @shipfox/react-ui@0.10.0 type /runner/_work/tooling/tooling/libs/react/ui
4
4
  > tsc-emit
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @shipfox/react-ui
2
2
 
3
+ ## 0.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 43f0699: Enhance Icon Component
8
+
3
9
  ## 0.9.0
4
10
 
5
11
  ### Minor Changes
@@ -1,11 +1,7 @@
1
1
  import type { RemixiconComponentType } from '@remixicon/react';
2
- import { RiGoogleFill } from '@remixicon/react';
3
2
  import type { ComponentProps } from 'react';
4
3
  import { BadgeIcon, CheckCircleSolidIcon, CircleDottedLineIcon, ComponentFillIcon, ComponentLineIcon, EllipseMiniSolidIcon, InfoTooltipFillIcon, ResizeIcon, ShipfoxLogo, SlackLogo, SpinnerIcon, StripeLogo, ThunderIcon, XCircleSolidIcon } from './custom';
5
- declare const iconsMap: {
6
- readonly google: RemixiconComponentType;
7
- readonly microsoft: RemixiconComponentType;
8
- readonly github: RemixiconComponentType;
4
+ declare const customIconsMap: {
9
5
  readonly shipfox: typeof ShipfoxLogo;
10
6
  readonly slack: typeof SlackLogo;
11
7
  readonly stripe: typeof StripeLogo;
@@ -20,21 +16,11 @@ declare const iconsMap: {
20
16
  readonly spinner: typeof SpinnerIcon;
21
17
  readonly thunder: typeof ThunderIcon;
22
18
  readonly xCircleSolid: typeof XCircleSolidIcon;
23
- readonly addLine: RemixiconComponentType;
24
- readonly bookOpen: RemixiconComponentType;
25
- readonly check: RemixiconComponentType;
26
- readonly chevronRight: RemixiconComponentType;
27
- readonly close: RemixiconComponentType;
28
- readonly copy: RemixiconComponentType;
29
- readonly homeSmile: RemixiconComponentType;
30
- readonly imageAdd: RemixiconComponentType;
31
- readonly info: RemixiconComponentType;
32
- readonly money: RemixiconComponentType;
33
- readonly subtractLine: RemixiconComponentType;
34
19
  };
20
+ declare const iconsMap: Record<string, RemixiconComponentType> & typeof customIconsMap;
35
21
  export type IconName = keyof typeof iconsMap;
36
22
  export declare const iconNames: IconName[];
37
- type BaseIconProps = ComponentProps<typeof RiGoogleFill>;
23
+ type BaseIconProps = ComponentProps<RemixiconComponentType>;
38
24
  type IconProps = {
39
25
  name: IconName;
40
26
  } & Omit<BaseIconProps, 'name'>;
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAQL,YAAY,EAOb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B6C,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC7C,eAAO,MAAM,SAAS,EAA4B,QAAQ,EAAE,CAAC;AAE7D,KAAK,aAAa,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACzD,KAAK,SAAS,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,2CAG/C"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAiB7D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAoBlB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;CAeuC,CAAC;AAE5D,QAAA,MAAM,QAAQ,EAIT,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,OAAO,cAAc,CAAC;AAEpE,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC7C,eAAO,MAAM,SAAS,EAA4B,QAAQ,EAAE,CAAC;AAE7D,KAAK,aAAa,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;AAC5D,KAAK,SAAS,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,2CAG/C"}
@@ -1,10 +1,24 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { RiAddLine, RiArrowRightSLine, RiBookOpenFill, RiCheckLine, RiCloseLine, RiFileCopyLine, RiGithubFill, RiGoogleFill, RiHomeSmileFill, RiImageAddFill, RiInformationFill, RiMicrosoftFill, RiMoneyDollarCircleLine, RiSubtractLine } from '@remixicon/react';
3
3
  import { BadgeIcon, CheckCircleSolidIcon, CircleDottedLineIcon, ComponentFillIcon, ComponentLineIcon, EllipseMiniSolidIcon, InfoTooltipFillIcon, ResizeIcon, ShipfoxLogo, SlackLogo, SpinnerIcon, StripeLogo, ThunderIcon, XCircleSolidIcon } from './custom/index.js';
4
- const iconsMap = {
4
+ import { remixiconMap } from './remixicon-registry.js';
5
+ const commonRemixicons = {
6
+ addLine: RiAddLine,
7
+ close: RiCloseLine,
8
+ check: RiCheckLine,
9
+ copy: RiFileCopyLine,
10
+ info: RiInformationFill,
11
+ imageAdd: RiImageAddFill,
12
+ chevronRight: RiArrowRightSLine,
13
+ homeSmile: RiHomeSmileFill,
14
+ money: RiMoneyDollarCircleLine,
5
15
  google: RiGoogleFill,
6
16
  microsoft: RiMicrosoftFill,
7
17
  github: RiGithubFill,
18
+ subtractLine: RiSubtractLine,
19
+ bookOpen: RiBookOpenFill
20
+ };
21
+ const customIconsMap = {
8
22
  shipfox: ShipfoxLogo,
9
23
  slack: SlackLogo,
10
24
  stripe: StripeLogo,
@@ -18,18 +32,12 @@ const iconsMap = {
18
32
  resize: ResizeIcon,
19
33
  spinner: SpinnerIcon,
20
34
  thunder: ThunderIcon,
21
- xCircleSolid: XCircleSolidIcon,
22
- addLine: RiAddLine,
23
- bookOpen: RiBookOpenFill,
24
- check: RiCheckLine,
25
- chevronRight: RiArrowRightSLine,
26
- close: RiCloseLine,
27
- copy: RiFileCopyLine,
28
- homeSmile: RiHomeSmileFill,
29
- imageAdd: RiImageAddFill,
30
- info: RiInformationFill,
31
- money: RiMoneyDollarCircleLine,
32
- subtractLine: RiSubtractLine
35
+ xCircleSolid: XCircleSolidIcon
36
+ };
37
+ const iconsMap = {
38
+ ...remixiconMap,
39
+ ...commonRemixicons,
40
+ ...customIconsMap
33
41
  };
34
42
  export const iconNames = Object.keys(iconsMap);
35
43
  export function Icon({ name, ...props }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/icon/icon.tsx"],"sourcesContent":["import type {RemixiconComponentType} from '@remixicon/react';\nimport {\n RiAddLine,\n RiArrowRightSLine,\n RiBookOpenFill,\n RiCheckLine,\n RiCloseLine,\n RiFileCopyLine,\n RiGithubFill,\n RiGoogleFill,\n RiHomeSmileFill,\n RiImageAddFill,\n RiInformationFill,\n RiMicrosoftFill,\n RiMoneyDollarCircleLine,\n RiSubtractLine,\n} from '@remixicon/react';\nimport type {ComponentProps} from 'react';\nimport {\n BadgeIcon,\n CheckCircleSolidIcon,\n CircleDottedLineIcon,\n ComponentFillIcon,\n ComponentLineIcon,\n EllipseMiniSolidIcon,\n InfoTooltipFillIcon,\n ResizeIcon,\n ShipfoxLogo,\n SlackLogo,\n SpinnerIcon,\n StripeLogo,\n ThunderIcon,\n XCircleSolidIcon,\n} from './custom';\n\nconst iconsMap = {\n google: RiGoogleFill,\n microsoft: RiMicrosoftFill,\n github: RiGithubFill,\n shipfox: ShipfoxLogo,\n slack: SlackLogo,\n stripe: StripeLogo,\n badge: BadgeIcon,\n checkCircleSolid: CheckCircleSolidIcon,\n circleDottedLine: CircleDottedLineIcon,\n componentFill: ComponentFillIcon,\n componentLine: ComponentLineIcon,\n ellipseMiniSolid: EllipseMiniSolidIcon,\n infoTooltipFill: InfoTooltipFillIcon,\n resize: ResizeIcon,\n spinner: SpinnerIcon,\n thunder: ThunderIcon,\n xCircleSolid: XCircleSolidIcon,\n addLine: RiAddLine,\n bookOpen: RiBookOpenFill,\n check: RiCheckLine,\n chevronRight: RiArrowRightSLine,\n close: RiCloseLine,\n copy: RiFileCopyLine,\n homeSmile: RiHomeSmileFill,\n imageAdd: RiImageAddFill,\n info: RiInformationFill,\n money: RiMoneyDollarCircleLine,\n subtractLine: RiSubtractLine,\n} as const satisfies Record<string, RemixiconComponentType>;\n\nexport type IconName = keyof typeof iconsMap;\nexport const iconNames = Object.keys(iconsMap) as IconName[];\n\ntype BaseIconProps = ComponentProps<typeof RiGoogleFill>;\ntype IconProps = {name: IconName} & Omit<BaseIconProps, 'name'>;\n\nexport function Icon({name, ...props}: IconProps) {\n const IconComponent = iconsMap[name];\n return <IconComponent {...props} />;\n}\n"],"names":["RiAddLine","RiArrowRightSLine","RiBookOpenFill","RiCheckLine","RiCloseLine","RiFileCopyLine","RiGithubFill","RiGoogleFill","RiHomeSmileFill","RiImageAddFill","RiInformationFill","RiMicrosoftFill","RiMoneyDollarCircleLine","RiSubtractLine","BadgeIcon","CheckCircleSolidIcon","CircleDottedLineIcon","ComponentFillIcon","ComponentLineIcon","EllipseMiniSolidIcon","InfoTooltipFillIcon","ResizeIcon","ShipfoxLogo","SlackLogo","SpinnerIcon","StripeLogo","ThunderIcon","XCircleSolidIcon","iconsMap","google","microsoft","github","shipfox","slack","stripe","badge","checkCircleSolid","circleDottedLine","componentFill","componentLine","ellipseMiniSolid","infoTooltipFill","resize","spinner","thunder","xCircleSolid","addLine","bookOpen","check","chevronRight","close","copy","homeSmile","imageAdd","info","money","subtractLine","iconNames","Object","keys","Icon","name","props","IconComponent"],"mappings":";AACA,SACEA,SAAS,EACTC,iBAAiB,EACjBC,cAAc,EACdC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,QACT,mBAAmB;AAE1B,SACEC,SAAS,EACTC,oBAAoB,EACpBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,UAAU,EACVC,WAAW,EACXC,gBAAgB,QACX,WAAW;AAElB,MAAMC,WAAW;IACfC,QAAQtB;IACRuB,WAAWnB;IACXoB,QAAQzB;IACR0B,SAASV;IACTW,OAAOV;IACPW,QAAQT;IACRU,OAAOrB;IACPsB,kBAAkBrB;IAClBsB,kBAAkBrB;IAClBsB,eAAerB;IACfsB,eAAerB;IACfsB,kBAAkBrB;IAClBsB,iBAAiBrB;IACjBsB,QAAQrB;IACRsB,SAASnB;IACToB,SAASlB;IACTmB,cAAclB;IACdmB,SAAS9C;IACT+C,UAAU7C;IACV8C,OAAO7C;IACP8C,cAAchD;IACdiD,OAAO9C;IACP+C,MAAM9C;IACN+C,WAAW5C;IACX6C,UAAU5C;IACV6C,MAAM5C;IACN6C,OAAO3C;IACP4C,cAAc3C;AAChB;AAGA,OAAO,MAAM4C,YAAYC,OAAOC,IAAI,CAAC/B,UAAwB;AAK7D,OAAO,SAASgC,KAAK,EAACC,IAAI,EAAE,GAAGC,OAAiB;IAC9C,MAAMC,gBAAgBnC,QAAQ,CAACiC,KAAK;IACpC,qBAAO,KAACE;QAAe,GAAGD,KAAK;;AACjC"}
1
+ {"version":3,"sources":["../../../src/components/icon/icon.tsx"],"sourcesContent":["import type {RemixiconComponentType} from '@remixicon/react';\nimport {\n RiAddLine,\n RiArrowRightSLine,\n RiBookOpenFill,\n RiCheckLine,\n RiCloseLine,\n RiFileCopyLine,\n RiGithubFill,\n RiGoogleFill,\n RiHomeSmileFill,\n RiImageAddFill,\n RiInformationFill,\n RiMicrosoftFill,\n RiMoneyDollarCircleLine,\n RiSubtractLine,\n} from '@remixicon/react';\nimport type {ComponentProps} from 'react';\nimport {\n BadgeIcon,\n CheckCircleSolidIcon,\n CircleDottedLineIcon,\n ComponentFillIcon,\n ComponentLineIcon,\n EllipseMiniSolidIcon,\n InfoTooltipFillIcon,\n ResizeIcon,\n ShipfoxLogo,\n SlackLogo,\n SpinnerIcon,\n StripeLogo,\n ThunderIcon,\n XCircleSolidIcon,\n} from './custom';\nimport {remixiconMap} from './remixicon-registry';\n\nconst commonRemixicons = {\n addLine: RiAddLine,\n close: RiCloseLine,\n check: RiCheckLine,\n copy: RiFileCopyLine,\n info: RiInformationFill,\n imageAdd: RiImageAddFill,\n chevronRight: RiArrowRightSLine,\n homeSmile: RiHomeSmileFill,\n money: RiMoneyDollarCircleLine,\n google: RiGoogleFill,\n microsoft: RiMicrosoftFill,\n github: RiGithubFill,\n subtractLine: RiSubtractLine,\n bookOpen: RiBookOpenFill,\n} as const satisfies Record<string, RemixiconComponentType>;\n\nconst customIconsMap = {\n shipfox: ShipfoxLogo,\n slack: SlackLogo,\n stripe: StripeLogo,\n badge: BadgeIcon,\n checkCircleSolid: CheckCircleSolidIcon,\n circleDottedLine: CircleDottedLineIcon,\n componentFill: ComponentFillIcon,\n componentLine: ComponentLineIcon,\n ellipseMiniSolid: EllipseMiniSolidIcon,\n infoTooltipFill: InfoTooltipFillIcon,\n resize: ResizeIcon,\n spinner: SpinnerIcon,\n thunder: ThunderIcon,\n xCircleSolid: XCircleSolidIcon,\n} as const satisfies Record<string, RemixiconComponentType>;\n\nconst iconsMap = {\n ...remixiconMap,\n ...commonRemixicons,\n ...customIconsMap,\n} as Record<string, RemixiconComponentType> & typeof customIconsMap;\n\nexport type IconName = keyof typeof iconsMap;\nexport const iconNames = Object.keys(iconsMap) as IconName[];\n\ntype BaseIconProps = ComponentProps<RemixiconComponentType>;\ntype IconProps = {name: IconName} & Omit<BaseIconProps, 'name'>;\n\nexport function Icon({name, ...props}: IconProps) {\n const IconComponent = iconsMap[name];\n return <IconComponent {...props} />;\n}\n"],"names":["RiAddLine","RiArrowRightSLine","RiBookOpenFill","RiCheckLine","RiCloseLine","RiFileCopyLine","RiGithubFill","RiGoogleFill","RiHomeSmileFill","RiImageAddFill","RiInformationFill","RiMicrosoftFill","RiMoneyDollarCircleLine","RiSubtractLine","BadgeIcon","CheckCircleSolidIcon","CircleDottedLineIcon","ComponentFillIcon","ComponentLineIcon","EllipseMiniSolidIcon","InfoTooltipFillIcon","ResizeIcon","ShipfoxLogo","SlackLogo","SpinnerIcon","StripeLogo","ThunderIcon","XCircleSolidIcon","remixiconMap","commonRemixicons","addLine","close","check","copy","info","imageAdd","chevronRight","homeSmile","money","google","microsoft","github","subtractLine","bookOpen","customIconsMap","shipfox","slack","stripe","badge","checkCircleSolid","circleDottedLine","componentFill","componentLine","ellipseMiniSolid","infoTooltipFill","resize","spinner","thunder","xCircleSolid","iconsMap","iconNames","Object","keys","Icon","name","props","IconComponent"],"mappings":";AACA,SACEA,SAAS,EACTC,iBAAiB,EACjBC,cAAc,EACdC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,QACT,mBAAmB;AAE1B,SACEC,SAAS,EACTC,oBAAoB,EACpBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,UAAU,EACVC,WAAW,EACXC,gBAAgB,QACX,WAAW;AAClB,SAAQC,YAAY,QAAO,uBAAuB;AAElD,MAAMC,mBAAmB;IACvBC,SAAS9B;IACT+B,OAAO3B;IACP4B,OAAO7B;IACP8B,MAAM5B;IACN6B,MAAMxB;IACNyB,UAAU1B;IACV2B,cAAcnC;IACdoC,WAAW7B;IACX8B,OAAO1B;IACP2B,QAAQhC;IACRiC,WAAW7B;IACX8B,QAAQnC;IACRoC,cAAc7B;IACd8B,UAAUzC;AACZ;AAEA,MAAM0C,iBAAiB;IACrBC,SAASvB;IACTwB,OAAOvB;IACPwB,QAAQtB;IACRuB,OAAOlC;IACPmC,kBAAkBlC;IAClBmC,kBAAkBlC;IAClBmC,eAAelC;IACfmC,eAAelC;IACfmC,kBAAkBlC;IAClBmC,iBAAiBlC;IACjBmC,QAAQlC;IACRmC,SAAShC;IACTiC,SAAS/B;IACTgC,cAAc/B;AAChB;AAEA,MAAMgC,WAAW;IACf,GAAG/B,YAAY;IACf,GAAGC,gBAAgB;IACnB,GAAGe,cAAc;AACnB;AAGA,OAAO,MAAMgB,YAAYC,OAAOC,IAAI,CAACH,UAAwB;AAK7D,OAAO,SAASI,KAAK,EAACC,IAAI,EAAE,GAAGC,OAAiB;IAC9C,MAAMC,gBAAgBP,QAAQ,CAACK,KAAK;IACpC,qBAAO,KAACE;QAAe,GAAGD,KAAK;;AACjC"}
@@ -0,0 +1,5 @@
1
+ import type { RemixiconComponentType } from '@remixicon/react';
2
+ export declare const remixiconMap: Record<string, RemixiconComponentType>;
3
+ export type RemixIconName = keyof typeof remixiconMap;
4
+ export declare const remixiconNames: RemixIconName[];
5
+ //# sourceMappingURL=remixicon-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remixicon-registry.d.ts","sourceRoot":"","sources":["../../../src/components/icon/remixicon-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAiB7D,eAAO,MAAM,YAAY,EAA8C,MAAM,CAC3E,MAAM,EACN,sBAAsB,CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAC;AACtD,eAAO,MAAM,cAAc,EAAgC,aAAa,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as RemixIcons from '@remixicon/react';
2
+ const remixiconEntries = Object.entries(RemixIcons).filter(([key, value])=>key.startsWith('Ri') && typeof value === 'function');
3
+ function iconNameToKey(iconName) {
4
+ const withoutPrefix = iconName.slice(2);
5
+ return withoutPrefix.charAt(0).toLowerCase() + withoutPrefix.slice(1);
6
+ }
7
+ const remixiconMapEntries = remixiconEntries.map(([name, component])=>[
8
+ iconNameToKey(name),
9
+ component
10
+ ]);
11
+ export const remixiconMap = Object.fromEntries(remixiconMapEntries);
12
+ export const remixiconNames = Object.keys(remixiconMap);
13
+
14
+ //# sourceMappingURL=remixicon-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/icon/remixicon-registry.ts"],"sourcesContent":["import type {RemixiconComponentType} from '@remixicon/react';\nimport * as RemixIcons from '@remixicon/react';\n\nconst remixiconEntries = Object.entries(RemixIcons).filter(\n ([key, value]) => key.startsWith('Ri') && typeof value === 'function',\n) as Array<[string, RemixiconComponentType]>;\n\nfunction iconNameToKey(iconName: string): string {\n const withoutPrefix = iconName.slice(2);\n return withoutPrefix.charAt(0).toLowerCase() + withoutPrefix.slice(1);\n}\n\nconst remixiconMapEntries = remixiconEntries.map(([name, component]) => [\n iconNameToKey(name),\n component,\n]) as Array<[string, RemixiconComponentType]>;\n\nexport const remixiconMap = Object.fromEntries(remixiconMapEntries) as Record<\n string,\n RemixiconComponentType\n>;\n\nexport type RemixIconName = keyof typeof remixiconMap;\nexport const remixiconNames = Object.keys(remixiconMap) as RemixIconName[];\n"],"names":["RemixIcons","remixiconEntries","Object","entries","filter","key","value","startsWith","iconNameToKey","iconName","withoutPrefix","slice","charAt","toLowerCase","remixiconMapEntries","map","name","component","remixiconMap","fromEntries","remixiconNames","keys"],"mappings":"AACA,YAAYA,gBAAgB,mBAAmB;AAE/C,MAAMC,mBAAmBC,OAAOC,OAAO,CAACH,YAAYI,MAAM,CACxD,CAAC,CAACC,KAAKC,MAAM,GAAKD,IAAIE,UAAU,CAAC,SAAS,OAAOD,UAAU;AAG7D,SAASE,cAAcC,QAAgB;IACrC,MAAMC,gBAAgBD,SAASE,KAAK,CAAC;IACrC,OAAOD,cAAcE,MAAM,CAAC,GAAGC,WAAW,KAAKH,cAAcC,KAAK,CAAC;AACrE;AAEA,MAAMG,sBAAsBb,iBAAiBc,GAAG,CAAC,CAAC,CAACC,MAAMC,UAAU,GAAK;QACtET,cAAcQ;QACdC;KACD;AAED,OAAO,MAAMC,eAAehB,OAAOiB,WAAW,CAACL,qBAG7C;AAGF,OAAO,MAAMM,iBAAiBlB,OAAOmB,IAAI,CAACH,cAAiC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shipfox/react-ui",
3
3
  "license": "MIT",
4
- "version": "0.9.0",
4
+ "version": "0.10.0",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -32,11 +32,26 @@ import {
32
32
  ThunderIcon,
33
33
  XCircleSolidIcon,
34
34
  } from './custom';
35
+ import {remixiconMap} from './remixicon-registry';
35
36
 
36
- const iconsMap = {
37
+ const commonRemixicons = {
38
+ addLine: RiAddLine,
39
+ close: RiCloseLine,
40
+ check: RiCheckLine,
41
+ copy: RiFileCopyLine,
42
+ info: RiInformationFill,
43
+ imageAdd: RiImageAddFill,
44
+ chevronRight: RiArrowRightSLine,
45
+ homeSmile: RiHomeSmileFill,
46
+ money: RiMoneyDollarCircleLine,
37
47
  google: RiGoogleFill,
38
48
  microsoft: RiMicrosoftFill,
39
49
  github: RiGithubFill,
50
+ subtractLine: RiSubtractLine,
51
+ bookOpen: RiBookOpenFill,
52
+ } as const satisfies Record<string, RemixiconComponentType>;
53
+
54
+ const customIconsMap = {
40
55
  shipfox: ShipfoxLogo,
41
56
  slack: SlackLogo,
42
57
  stripe: StripeLogo,
@@ -51,23 +66,18 @@ const iconsMap = {
51
66
  spinner: SpinnerIcon,
52
67
  thunder: ThunderIcon,
53
68
  xCircleSolid: XCircleSolidIcon,
54
- addLine: RiAddLine,
55
- bookOpen: RiBookOpenFill,
56
- check: RiCheckLine,
57
- chevronRight: RiArrowRightSLine,
58
- close: RiCloseLine,
59
- copy: RiFileCopyLine,
60
- homeSmile: RiHomeSmileFill,
61
- imageAdd: RiImageAddFill,
62
- info: RiInformationFill,
63
- money: RiMoneyDollarCircleLine,
64
- subtractLine: RiSubtractLine,
65
69
  } as const satisfies Record<string, RemixiconComponentType>;
66
70
 
71
+ const iconsMap = {
72
+ ...remixiconMap,
73
+ ...commonRemixicons,
74
+ ...customIconsMap,
75
+ } as Record<string, RemixiconComponentType> & typeof customIconsMap;
76
+
67
77
  export type IconName = keyof typeof iconsMap;
68
78
  export const iconNames = Object.keys(iconsMap) as IconName[];
69
79
 
70
- type BaseIconProps = ComponentProps<typeof RiGoogleFill>;
80
+ type BaseIconProps = ComponentProps<RemixiconComponentType>;
71
81
  type IconProps = {name: IconName} & Omit<BaseIconProps, 'name'>;
72
82
 
73
83
  export function Icon({name, ...props}: IconProps) {
@@ -0,0 +1,24 @@
1
+ import type {RemixiconComponentType} from '@remixicon/react';
2
+ import * as RemixIcons from '@remixicon/react';
3
+
4
+ const remixiconEntries = Object.entries(RemixIcons).filter(
5
+ ([key, value]) => key.startsWith('Ri') && typeof value === 'function',
6
+ ) as Array<[string, RemixiconComponentType]>;
7
+
8
+ function iconNameToKey(iconName: string): string {
9
+ const withoutPrefix = iconName.slice(2);
10
+ return withoutPrefix.charAt(0).toLowerCase() + withoutPrefix.slice(1);
11
+ }
12
+
13
+ const remixiconMapEntries = remixiconEntries.map(([name, component]) => [
14
+ iconNameToKey(name),
15
+ component,
16
+ ]) as Array<[string, RemixiconComponentType]>;
17
+
18
+ export const remixiconMap = Object.fromEntries(remixiconMapEntries) as Record<
19
+ string,
20
+ RemixiconComponentType
21
+ >;
22
+
23
+ export type RemixIconName = keyof typeof remixiconMap;
24
+ export const remixiconNames = Object.keys(remixiconMap) as RemixIconName[];