@brightlocal/icons 2.1.1 → 2.2.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/dynamic.cjs +1 -1
- package/dist/dynamic.d.ts +2 -0
- package/dist/dynamic.d.ts.map +1 -1
- package/dist/dynamic.js +8 -6
- package/dist/flag/flag-icon.cjs +1 -0
- package/dist/flag/flag-icon.d.ts +13 -0
- package/dist/flag/flag-icon.d.ts.map +1 -0
- package/dist/flag/flag-icon.js +56 -0
- package/dist/icons/dynamic-icon.cjs +1 -1
- package/dist/icons/dynamic-icon.d.ts +5 -1
- package/dist/icons/dynamic-icon.d.ts.map +1 -1
- package/dist/icons/dynamic-icon.js +32 -21
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +790 -788
- package/package.json +1 -1
- package/src/dynamic.ts +4 -0
- package/src/flag/flag-icon.tsx +70 -0
- package/src/icons/dynamic-icon.tsx +22 -3
- package/src/index.ts +4 -0
package/dist/dynamic.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./icons/dynamic-icon.cjs"),o=require("./icons/dynamic-icon-imports.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./icons/dynamic-icon.cjs"),o=require("./icons/dynamic-icon-imports.cjs"),n=require("./flag/dynamic-imports.cjs"),e=require("./social-media/dynamic-imports.cjs"),a=require("./flag/flag-icon.cjs");exports.DynamicIcon=c.DynamicIcon;exports.iconImports=o.iconImports;exports.strokeIconNames=o.strokeIconNames;exports.flagIconNames=n.flagIconNames;exports.socialMediaIconNames=e.socialMediaIconNames;exports.DynamicFlagIcon=a.DynamicFlagIcon;
|
package/dist/dynamic.d.ts
CHANGED
|
@@ -20,4 +20,6 @@ export { flagIconNames } from './flag/dynamic-imports.js';
|
|
|
20
20
|
export type { FlagIconName } from './flag/dynamic-imports.js';
|
|
21
21
|
export { socialMediaIconNames } from './social-media/dynamic-imports.js';
|
|
22
22
|
export type { SocialMediaIconName } from './social-media/dynamic-imports.js';
|
|
23
|
+
export { DynamicFlagIcon } from './flag/flag-icon.js';
|
|
24
|
+
export type { DynamicFlagIconProps } from './flag/flag-icon.js';
|
|
23
25
|
//# sourceMappingURL=dynamic.d.ts.map
|
package/dist/dynamic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC/E,YAAY,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC/E,YAAY,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/dynamic.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { DynamicIcon as
|
|
1
|
+
import { DynamicIcon as m } from "./icons/dynamic-icon.js";
|
|
2
2
|
import { iconImports as a, strokeIconNames as c } from "./icons/dynamic-icon-imports.js";
|
|
3
|
-
import { flagIconNames as
|
|
4
|
-
import { socialMediaIconNames as
|
|
3
|
+
import { flagIconNames as t } from "./flag/dynamic-imports.js";
|
|
4
|
+
import { socialMediaIconNames as p } from "./social-media/dynamic-imports.js";
|
|
5
|
+
import { DynamicFlagIcon as I } from "./flag/flag-icon.js";
|
|
5
6
|
export {
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
I as DynamicFlagIcon,
|
|
8
|
+
m as DynamicIcon,
|
|
9
|
+
t as flagIconNames,
|
|
8
10
|
a as iconImports,
|
|
9
|
-
|
|
11
|
+
p as socialMediaIconNames,
|
|
10
12
|
c as strokeIconNames
|
|
11
13
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),s=require("react"),d=require("../icons/dynamic-icon.cjs"),u=require("./dynamic-imports.cjs"),f=require("../icons/lucide-exports.cjs");function m(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,o.get?o:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const g=m(s),y=new Set(u.flagIconNames),a=g.forwardRef(({country:t,size:e=20,className:n,style:o,...c},i)=>{const l=y.has(t);return r.jsx("span",{ref:i,"aria-hidden":"true",className:n,"data-slot":"flag-icon",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:e,height:e,...o},...c,children:l?r.jsx(d.DynamicIcon,{name:t,size:e}):r.jsx("span",{"data-slot":"flag-icon-fallback",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:e,height:e,borderRadius:"9999px",backgroundColor:"var(--color-muted, #f3f4f6)",color:"var(--color-muted-foreground, #6b7280)"},children:r.jsx(f.Globe,{size:Math.round(e*.65)})})})});a.displayName="DynamicFlagIcon";exports.DynamicFlagIcon=a;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface DynamicFlagIconProps extends React.ComponentProps<"span"> {
|
|
3
|
+
/** ISO 3166-1 alpha-3 country code (e.g. "USA", "GBR") */
|
|
4
|
+
country: string;
|
|
5
|
+
/**
|
|
6
|
+
* Icon size in pixels (width and height)
|
|
7
|
+
* @default 20
|
|
8
|
+
*/
|
|
9
|
+
size?: number;
|
|
10
|
+
}
|
|
11
|
+
declare const DynamicFlagIcon: React.ForwardRefExoticComponent<Omit<DynamicFlagIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
12
|
+
export { DynamicFlagIcon };
|
|
13
|
+
//# sourceMappingURL=flag-icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag-icon.d.ts","sourceRoot":"","sources":["../../src/flag/flag-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,oBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;IACpC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,QAAA,MAAM,eAAe,2GA8CpB,CAAC;AAIF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import * as c from "react";
|
|
3
|
+
import { DynamicIcon as f } from "../icons/dynamic-icon.js";
|
|
4
|
+
import { flagIconNames as m } from "./dynamic-imports.js";
|
|
5
|
+
import { Globe as d } from "../icons/lucide-exports.js";
|
|
6
|
+
const s = new Set(m), g = c.forwardRef(
|
|
7
|
+
({ country: t, size: n = 20, className: a, style: e, ...r }, l) => {
|
|
8
|
+
const i = s.has(t);
|
|
9
|
+
return /* @__PURE__ */ o(
|
|
10
|
+
"span",
|
|
11
|
+
{
|
|
12
|
+
ref: l,
|
|
13
|
+
"aria-hidden": "true",
|
|
14
|
+
className: a,
|
|
15
|
+
"data-slot": "flag-icon",
|
|
16
|
+
style: {
|
|
17
|
+
display: "inline-flex",
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
justifyContent: "center",
|
|
20
|
+
flexShrink: 0,
|
|
21
|
+
width: n,
|
|
22
|
+
height: n,
|
|
23
|
+
...e
|
|
24
|
+
},
|
|
25
|
+
...r,
|
|
26
|
+
children: i ? /* @__PURE__ */ o(
|
|
27
|
+
f,
|
|
28
|
+
{
|
|
29
|
+
name: t,
|
|
30
|
+
size: n
|
|
31
|
+
}
|
|
32
|
+
) : /* @__PURE__ */ o(
|
|
33
|
+
"span",
|
|
34
|
+
{
|
|
35
|
+
"data-slot": "flag-icon-fallback",
|
|
36
|
+
style: {
|
|
37
|
+
display: "inline-flex",
|
|
38
|
+
alignItems: "center",
|
|
39
|
+
justifyContent: "center",
|
|
40
|
+
width: n,
|
|
41
|
+
height: n,
|
|
42
|
+
borderRadius: "9999px",
|
|
43
|
+
backgroundColor: "var(--color-muted, #f3f4f6)",
|
|
44
|
+
color: "var(--color-muted-foreground, #6b7280)"
|
|
45
|
+
},
|
|
46
|
+
children: /* @__PURE__ */ o(d, { size: Math.round(n * 0.65) })
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
g.displayName = "DynamicFlagIcon";
|
|
54
|
+
export {
|
|
55
|
+
g as DynamicFlagIcon
|
|
56
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),p=require("react"),u=require("./dynamic-icon-imports.cjs");function b(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const r=b(p),d={};for(const[e,n]of Object.entries(u.iconImports))n&&(d[e]=r.lazy(n));const f=r.forwardRef(({name:e,size:n=16,strokeWidth:t=1.33,absoluteStrokeWidth:o=!0,fallback:i,...s},a)=>{const l=d[e];if(!l)return console.warn(`Icon "${e}" not found in icon registry`),null;const y=u.strokeIconNames.has(e)?{ref:a,size:n,strokeWidth:t,absoluteStrokeWidth:o,...s}:{ref:a,size:n,...s},m=i!==void 0?i:c.jsx("span",{"aria-hidden":"true",style:{display:"inline-block",width:n,height:n,flexShrink:0}});return c.jsx(r.Suspense,{fallback:m,children:c.jsx(l,{...y})})});f.displayName="DynamicIcon";exports.DynamicIcon=f;
|
|
@@ -31,7 +31,7 @@ export interface DynamicIconProps extends React.ComponentProps<"svg"> {
|
|
|
31
31
|
absoluteStrokeWidth?: boolean;
|
|
32
32
|
/**
|
|
33
33
|
* Fallback content displayed while the icon is loading.
|
|
34
|
-
*
|
|
34
|
+
* Defaults to an invisible placeholder that matches the icon's dimensions to prevent layout shift.
|
|
35
35
|
*/
|
|
36
36
|
fallback?: React.ReactNode;
|
|
37
37
|
}
|
|
@@ -58,6 +58,10 @@ export interface DynamicIconProps extends React.ComponentProps<"svg"> {
|
|
|
58
58
|
* <DynamicIcon name="camera" size={24} fallback={<Skeleton />} />
|
|
59
59
|
*
|
|
60
60
|
* @example
|
|
61
|
+
* // Opt out of default placeholder
|
|
62
|
+
* <DynamicIcon name="camera" size={24} fallback={null} />
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
61
65
|
* // Database-driven
|
|
62
66
|
* <DynamicIcon name={country.iso} size={16} />
|
|
63
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-icon.d.ts","sourceRoot":"","sources":["../../src/icons/dynamic-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACnE;;;;;;OAMG;IACH,IAAI,EAAE,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAsBD
|
|
1
|
+
{"version":3,"file":"dynamic-icon.d.ts","sourceRoot":"","sources":["../../src/icons/dynamic-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACnE;;;;;;OAMG;IACH,IAAI,EAAE,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,WAAW,qGA+CvB,CAAC"}
|
|
@@ -1,28 +1,39 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import * as
|
|
3
|
-
import { strokeIconNames as
|
|
4
|
-
const
|
|
5
|
-
for (const [
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import * as t from "react";
|
|
3
|
+
import { strokeIconNames as p, iconImports as h } from "./dynamic-icon-imports.js";
|
|
4
|
+
const a = {};
|
|
5
|
+
for (const [n, o] of Object.entries(h))
|
|
6
|
+
o && (a[n] = t.lazy(
|
|
7
|
+
o
|
|
8
8
|
));
|
|
9
|
-
const
|
|
9
|
+
const y = t.forwardRef(
|
|
10
10
|
({
|
|
11
|
-
name:
|
|
12
|
-
size:
|
|
13
|
-
strokeWidth:
|
|
14
|
-
absoluteStrokeWidth:
|
|
15
|
-
fallback:
|
|
16
|
-
...
|
|
17
|
-
},
|
|
18
|
-
const s =
|
|
11
|
+
name: n,
|
|
12
|
+
size: o = 16,
|
|
13
|
+
strokeWidth: l = 1.33,
|
|
14
|
+
absoluteStrokeWidth: d = !0,
|
|
15
|
+
fallback: c,
|
|
16
|
+
...e
|
|
17
|
+
}, i) => {
|
|
18
|
+
const s = a[n];
|
|
19
19
|
if (!s)
|
|
20
|
-
return console.warn(`Icon "${
|
|
21
|
-
const f =
|
|
22
|
-
|
|
20
|
+
return console.warn(`Icon "${n}" not found in icon registry`), null;
|
|
21
|
+
const f = p.has(n) ? { ref: i, size: o, strokeWidth: l, absoluteStrokeWidth: d, ...e } : { ref: i, size: o, ...e }, m = c !== void 0 ? c : /* @__PURE__ */ r(
|
|
22
|
+
"span",
|
|
23
|
+
{
|
|
24
|
+
"aria-hidden": "true",
|
|
25
|
+
style: {
|
|
26
|
+
display: "inline-block",
|
|
27
|
+
width: o,
|
|
28
|
+
height: o,
|
|
29
|
+
flexShrink: 0
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
return /* @__PURE__ */ r(t.Suspense, { fallback: m, children: /* @__PURE__ */ r(s, { ...f }) });
|
|
23
34
|
}
|
|
24
35
|
);
|
|
25
|
-
|
|
36
|
+
y.displayName = "DynamicIcon";
|
|
26
37
|
export {
|
|
27
|
-
|
|
38
|
+
y as DynamicIcon
|
|
28
39
|
};
|