@xsolla/xui-icons 0.216.1 → 0.217.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -113,6 +113,7 @@ For a wider palette, use the family-specific packages:
113
113
  - `@xsolla/xui-icons-payment` — payment-method logos.
114
114
  - `@xsolla/xui-icons-currency` — Xsolla virtual-currency icons.
115
115
  - `@xsolla/xui-icons-product` — Xsolla product icons.
116
+ - `@xsolla/xui-icons-tag-label` — Tag/label glyphs (entity, rarity, status, merch).
116
117
 
117
118
  ## Accessibility
118
119
 
@@ -35,5 +35,6 @@ declare const Image: (props: IconProps) => react_jsx_runtime.JSX.Element;
35
35
  declare const Upload: (props: IconProps) => react_jsx_runtime.JSX.Element;
36
36
  declare const File: (props: IconProps) => react_jsx_runtime.JSX.Element;
37
37
  declare const Info: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
+ declare const Play: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
39
 
39
- export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
40
+ export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Play, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
package/native/index.d.ts CHANGED
@@ -35,5 +35,6 @@ declare const Image: (props: IconProps) => react_jsx_runtime.JSX.Element;
35
35
  declare const Upload: (props: IconProps) => react_jsx_runtime.JSX.Element;
36
36
  declare const File: (props: IconProps) => react_jsx_runtime.JSX.Element;
37
37
  declare const Info: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
+ declare const Play: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
39
 
39
- export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
40
+ export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Play, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
package/native/index.js CHANGED
@@ -54,6 +54,7 @@ __export(index_exports, {
54
54
  Menu: () => Menu,
55
55
  Minus: () => Minus,
56
56
  Plane: () => Plane,
57
+ Play: () => Play,
57
58
  Plus: () => Plus,
58
59
  Search: () => Search,
59
60
  Settings: () => Settings,
@@ -134,6 +135,7 @@ var Image = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...p
134
135
  var Upload = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.Upload, { size: "100%" }) });
135
136
  var File = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.File, { size: "100%" }) });
136
137
  var Info = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.Info, { size: "100%" }) });
138
+ var Play = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.Play, { size: "100%" }) });
137
139
  // Annotate the CommonJS export names for ESM import in node:
138
140
  0 && (module.exports = {
139
141
  AlertCircle,
@@ -160,6 +162,7 @@ var Info = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...pr
160
162
  Menu,
161
163
  Minus,
162
164
  Plane,
165
+ Play,
163
166
  Plus,
164
167
  Search,
165
168
  Settings,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx","../../../primitives-native/src/Icon.tsx"],"sourcesContent":["// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n","import React from \"react\";\nimport { View, ViewStyle } from \"react-native\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n color,\n size,\n testID,\n \"data-testid\": dataTestId,\n}) => {\n const style: ViewStyle = {\n width: typeof size === \"number\" ? size : undefined,\n height: typeof size === \"number\" ? size : undefined,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n // On native, we try to pass the color down to children (like Text primitives)\n // to mimic the CSS inheritance behavior of the web version.\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n color: child.props.color || color,\n // Also pass size if child seems to be an icon that needs it\n size: child.props.size || size,\n });\n }\n return child;\n });\n\n return (\n <View style={style} testID={dataTestId || testID}>\n {childrenWithProps}\n </View>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAkB;AAClB,0BAAgC;AA+B5B;AA5BG,IAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AACjB,MAAM;AACJ,QAAM,QAAmB;AAAA,IACvB,OAAO,OAAO,SAAS,WAAW,OAAO;AAAA,IACzC,QAAQ,OAAO,SAAS,WAAW,OAAO;AAAA,IAC1C,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAClB;AAIA,QAAM,oBAAoB,aAAAA,QAAM,SAAS,IAAI,UAAU,CAAC,UAAU;AAChE,QAAI,aAAAA,QAAM,eAAe,KAAK,GAAG;AAC/B,aAAO,aAAAA,QAAM,aAAa,OAAO;AAAA,QAC/B,OAAO,MAAM,MAAM,SAAS;AAAA;AAAA,QAE5B,MAAM,MAAM,MAAM,QAAQ;AAAA,MAC5B,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT,CAAC;AAED,SACE,4CAAC,4BAAK,OAAc,QAAQ,cAAc,QACvC,6BACH;AAEJ;;;ADjCA,kCAmCO;AAKH,IAAAC,sBAAA;AAFG,IAAM,QAAQ,CAAC,UACpB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,OAAA,EAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,IAAI,CAAC,UAChB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,GAAA,EAAQ,MAAK,QAAO,GACvB;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,MAAM,CAAC,UAClB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,KAAA,EAAU,MAAK,QAAO,GACzB;AAGK,IAAM,SAAS,CAAC,UACrB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,QAAA,EAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,YAAY,CAAC,UACxB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,WAAA,EAAgB,MAAK,QAAO,GAC/B;AAGK,IAAM,aAAa,CAAC,UACzB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,YAAA,EAAiB,MAAK,QAAO,GAChC;AAGK,IAAM,WAAW,CAAC,UACvB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,UAAA,EAAe,MAAK,QAAO,GAC9B;AAGK,IAAM,QAAQ,CAAC,UACpB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,OAAA,EAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,cAAc,CAAC,UAC1B,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,aAAA,EAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,aAAa,CAAC,UACzB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,YAAA,EAAiB,MAAK,QAAO,GAChC;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,cAAc,CAAC,UAC1B,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,aAAA,EAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,MAAM,CAAC,UAClB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,KAAA,EAAU,MAAK,QAAO,GACzB;AAGK,IAAM,QAAQ,CAAC,UACpB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,OAAA,EAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,cAAc,CAAC,UAC1B,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,aAAA,EAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,eAAe,CAAC,UAC3B,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,cAAA,EAAmB,MAAK,QAAO,GAClC;AAGK,IAAM,QAAQ,CAAC,UACpB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,OAAA,EAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,SAAS,CAAC,UACrB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,QAAA,EAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,eAAe,CAAC,UAC3B,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,cAAA,EAAmB,MAAK,QAAO,GAClC;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,SAAS,CAAC,UACrB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,QAAA,EAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,WAAW,CAAC,UACvB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,UAAA,EAAe,MAAK,QAAO,GAC9B;AAGK,IAAM,UAAU,CAAC,UACtB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,SAAA,EAAc,MAAK,QAAO,GAC7B;AAGK,IAAM,cAAc,CAAC,UAC1B,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,aAAA,EAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,QAAQ,CAAC,UACpB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,OAAA,EAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,SAAS,CAAC,UACrB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,QAAA,EAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,6CAAC,QAAM,GAAG,OACR,uDAAC,4BAAAC,MAAA,EAAW,MAAK,QAAO,GAC1B;","names":["React","import_jsx_runtime","LucideCheck","LucideX","LucideCopy","LucideEye","LucideEyeOff","LucideArrowLeft","LucideArrowRight","LucideSettings","LucideMinus","LucideAlertCircle","LucideCreditCard","LucideFlag","LucideCheckCircle","LucideZap","LucideClock","LucideChevronLeft","LucideChevronRight","LucidePlane","LucideMenu","LucideBell","LucideUser","LucideSearch","LucideHome","LucideShoppingCart","LucideGift","LucideTrophy","LucideBackpack","LucideHeadset","LucideShoppingBag","LucidePlus","LucideImage","LucideUpload","LucideFile","LucideInfo"]}
1
+ {"version":3,"sources":["../../src/index.tsx","../../../primitives-native/src/Icon.tsx"],"sourcesContent":["// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n Play as LucidePlay,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n\nexport const Play = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlay size=\"100%\" />\n </Icon>\n);\n","import React from \"react\";\nimport { View, ViewStyle } from \"react-native\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n color,\n size,\n testID,\n \"data-testid\": dataTestId,\n}) => {\n const style: ViewStyle = {\n width: typeof size === \"number\" ? size : undefined,\n height: typeof size === \"number\" ? size : undefined,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n // On native, we try to pass the color down to children (like Text primitives)\n // to mimic the CSS inheritance behavior of the web version.\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n color: child.props.color || color,\n // Also pass size if child seems to be an icon that needs it\n size: child.props.size || size,\n });\n }\n return child;\n });\n\n return (\n <View style={style} testID={dataTestId || testID}>\n {childrenWithProps}\n </View>\n );\n};\n"],"mappings":"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","names":["React","import_jsx_runtime","LucideCheck","LucideX","LucideCopy","LucideEye","LucideEyeOff","LucideArrowLeft","LucideArrowRight","LucideSettings","LucideMinus","LucideAlertCircle","LucideCreditCard","LucideFlag","LucideCheckCircle","LucideZap","LucideClock","LucideChevronLeft","LucideChevronRight","LucidePlane","LucideMenu","LucideBell","LucideUser","LucideSearch","LucideHome","LucideShoppingCart","LucideGift","LucideTrophy","LucideBackpack","LucideHeadset","LucideShoppingBag","LucidePlus","LucideImage","LucideUpload","LucideFile","LucideInfo","LucidePlay"]}
package/native/index.mjs CHANGED
@@ -63,7 +63,8 @@ import {
63
63
  Image as LucideImage,
64
64
  Upload as LucideUpload,
65
65
  File as LucideFile,
66
- Info as LucideInfo
66
+ Info as LucideInfo,
67
+ Play as LucidePlay
67
68
  } from "lucide-react-native";
68
69
  import { jsx as jsx2 } from "react/jsx-runtime";
69
70
  var Check = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideCheck, { size: "100%" }) });
@@ -100,6 +101,7 @@ var Image = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PU
100
101
  var Upload = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideUpload, { size: "100%" }) });
101
102
  var File = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideFile, { size: "100%" }) });
102
103
  var Info = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideInfo, { size: "100%" }) });
104
+ var Play = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucidePlay, { size: "100%" }) });
103
105
  export {
104
106
  AlertCircle,
105
107
  ArrowLeft,
@@ -125,6 +127,7 @@ export {
125
127
  Menu,
126
128
  Minus,
127
129
  Plane,
130
+ Play,
128
131
  Plus,
129
132
  Search,
130
133
  Settings,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../primitives-native/src/Icon.tsx","../../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { View, ViewStyle } from \"react-native\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n color,\n size,\n testID,\n \"data-testid\": dataTestId,\n}) => {\n const style: ViewStyle = {\n width: typeof size === \"number\" ? size : undefined,\n height: typeof size === \"number\" ? size : undefined,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n // On native, we try to pass the color down to children (like Text primitives)\n // to mimic the CSS inheritance behavior of the web version.\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n color: child.props.color || color,\n // Also pass size if child seems to be an icon that needs it\n size: child.props.size || size,\n });\n }\n return child;\n });\n\n return (\n <View style={style} testID={dataTestId || testID}>\n {childrenWithProps}\n </View>\n );\n};\n","// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,YAAuB;AA+B5B;AA5BG,IAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AACjB,MAAM;AACJ,QAAM,QAAmB;AAAA,IACvB,OAAO,OAAO,SAAS,WAAW,OAAO;AAAA,IACzC,QAAQ,OAAO,SAAS,WAAW,OAAO;AAAA,IAC1C,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAClB;AAIA,QAAM,oBAAoB,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU;AAChE,QAAI,MAAM,eAAe,KAAK,GAAG;AAC/B,aAAO,MAAM,aAAa,OAAO;AAAA,QAC/B,OAAO,MAAM,MAAM,SAAS;AAAA;AAAA,QAE5B,MAAM,MAAM,MAAM,QAAQ;AAAA,MAC5B,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT,CAAC;AAED,SACE,oBAAC,QAAK,OAAc,QAAQ,cAAc,QACvC,6BACH;AAEJ;;;ACjCA;AAAA,EACE,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe;AAAA,EACf,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,OAAO;AAAA,EACP,SAAS;AAAA,EACT,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,OACH;AAKH,gBAAAA,YAAA;AAFG,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,IAAI,CAAC,UAChB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,WAAQ,MAAK,QAAO,GACvB;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,MAAM,CAAC,UAClB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,aAAU,MAAK,QAAO,GACzB;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,YAAY,CAAC,UACxB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,mBAAgB,MAAK,QAAO,GAC/B;AAGK,IAAM,aAAa,CAAC,UACzB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,oBAAiB,MAAK,QAAO,GAChC;AAGK,IAAM,WAAW,CAAC,UACvB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,kBAAe,MAAK,QAAO,GAC9B;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,aAAa,CAAC,UACzB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,oBAAiB,MAAK,QAAO,GAChC;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,MAAM,CAAC,UAClB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,aAAU,MAAK,QAAO,GACzB;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,eAAe,CAAC,UAC3B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,sBAAmB,MAAK,QAAO,GAClC;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,eAAe,CAAC,UAC3B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,sBAAmB,MAAK,QAAO,GAClC;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,WAAW,CAAC,UACvB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,kBAAe,MAAK,QAAO,GAC9B;AAGK,IAAM,UAAU,CAAC,UACtB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,iBAAc,MAAK,QAAO,GAC7B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;","names":["jsx"]}
1
+ {"version":3,"sources":["../../../primitives-native/src/Icon.tsx","../../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { View, ViewStyle } from \"react-native\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n color,\n size,\n testID,\n \"data-testid\": dataTestId,\n}) => {\n const style: ViewStyle = {\n width: typeof size === \"number\" ? size : undefined,\n height: typeof size === \"number\" ? size : undefined,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n // On native, we try to pass the color down to children (like Text primitives)\n // to mimic the CSS inheritance behavior of the web version.\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n color: child.props.color || color,\n // Also pass size if child seems to be an icon that needs it\n size: child.props.size || size,\n });\n }\n return child;\n });\n\n return (\n <View style={style} testID={dataTestId || testID}>\n {childrenWithProps}\n </View>\n );\n};\n","// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n Play as LucidePlay,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n\nexport const Play = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlay size=\"100%\" />\n </Icon>\n);\n"],"mappings":"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","names":["jsx"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsolla/xui-icons",
3
- "version": "0.216.1",
3
+ "version": "0.217.0",
4
4
  "main": "./web/index.js",
5
5
  "types": "./web/index.d.ts",
6
6
  "scripts": {
@@ -9,7 +9,7 @@
9
9
  "build:native": "PLATFORM=native tsup"
10
10
  },
11
11
  "dependencies": {
12
- "@xsolla/xui-primitives-core": "0.216.1",
12
+ "@xsolla/xui-primitives-core": "0.217.0",
13
13
  "lucide-react": "^0.470.0"
14
14
  },
15
15
  "peerDependencies": {
package/web/index.d.mts CHANGED
@@ -35,5 +35,6 @@ declare const Image: (props: IconProps) => react_jsx_runtime.JSX.Element;
35
35
  declare const Upload: (props: IconProps) => react_jsx_runtime.JSX.Element;
36
36
  declare const File: (props: IconProps) => react_jsx_runtime.JSX.Element;
37
37
  declare const Info: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
+ declare const Play: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
39
 
39
- export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
40
+ export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Play, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
package/web/index.d.ts CHANGED
@@ -35,5 +35,6 @@ declare const Image: (props: IconProps) => react_jsx_runtime.JSX.Element;
35
35
  declare const Upload: (props: IconProps) => react_jsx_runtime.JSX.Element;
36
36
  declare const File: (props: IconProps) => react_jsx_runtime.JSX.Element;
37
37
  declare const Info: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
+ declare const Play: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
39
 
39
- export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
40
+ export { AlertCircle, ArrowLeft, ArrowRight, Backpack, Bell, Check, CheckCircle, ChevronLeft, ChevronRight, Clock, Copy, CreditCard, Eye, EyeOff, File, Flag, Gift, Headset, Home, Image, Info, Menu, Minus, Plane, Play, Plus, Search, Settings, ShoppingBag, ShoppingCart, Trophy, Upload, User, X, Zap };
package/web/index.js CHANGED
@@ -54,6 +54,7 @@ __export(index_exports, {
54
54
  Menu: () => Menu,
55
55
  Minus: () => Minus,
56
56
  Plane: () => Plane,
57
+ Play: () => Play,
57
58
  Plus: () => Plus,
58
59
  Search: () => Search,
59
60
  Settings: () => Settings,
@@ -208,6 +209,7 @@ var Image = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...p
208
209
  var Upload = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.Upload, { size: "100%" }) });
209
210
  var File = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.File, { size: "100%" }) });
210
211
  var Info = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.Info, { size: "100%" }) });
212
+ var Play = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_icon_platform.Play, { size: "100%" }) });
211
213
  // Annotate the CommonJS export names for ESM import in node:
212
214
  0 && (module.exports = {
213
215
  AlertCircle,
@@ -234,6 +236,7 @@ var Info = (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { ...pr
234
236
  Menu,
235
237
  Minus,
236
238
  Plane,
239
+ Play,
237
240
  Plus,
238
241
  Search,
239
242
  Settings,
package/web/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx","../../../primitives-web/src/filterDOMProps.ts","../../../../../node_modules/@emotion/memoize/dist/memoize.esm.js","../../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js","../../../primitives-web/src/Icon.tsx"],"sourcesContent":["// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n","import React from \"react\";\nimport isPropValid from \"@emotion/is-prop-valid\";\n\n// Props that @emotion/is-prop-valid incorrectly treats as valid HTML.\n// These are React Native or component-specific props that match\n// valid HTML patterns (on* event handlers, SVG attributes).\nexport const ADDITIONAL_BLOCKED_PROPS = new Set([\n // RN-only event handlers (pass isPropValid's on* pattern)\n \"onPress\",\n \"onChangeText\",\n \"onLayout\",\n \"onMoveShouldSetResponder\",\n \"onResponderGrant\",\n \"onResponderMove\",\n \"onResponderRelease\",\n \"onResponderTerminate\",\n // SVG attributes that pass isPropValid\n \"strokeWidth\",\n // CSS properties that pass isPropValid but are used as component props\n \"overflow\",\n \"opacity\",\n \"cursor\",\n \"fontSize\",\n \"fontWeight\",\n \"fontFamily\",\n \"textDecoration\",\n // Cross-platform layout prop that Text consumes as CSS, never as an\n // attribute. Pinned explicitly because it is now spread into the styled\n // component rather than destructured away before it can reach the DOM.\n \"numberOfLines\",\n]);\n\nfunction shouldForwardProp(key: string): boolean {\n if (ADDITIONAL_BLOCKED_PROPS.has(key)) return false;\n return isPropValid(key);\n}\n\n/**\n * Creates a React component that renders the given HTML tag\n * but filters out non-HTML props before they reach the DOM.\n *\n * Uses @emotion/is-prop-valid (same library styled-components v4\n * uses internally) to automatically block invalid HTML attributes,\n * plus a small blocklist for false positives (RN on* handlers, SVG attrs).\n *\n * Usage: `const FilteredDiv = createFilteredElement(\"div\");`\n * Then: `const StyledBox = styled(FilteredDiv)<BoxProps>\\`...\\`;`\n *\n * styled-components can still read ALL props for CSS interpolation,\n * but only valid HTML attributes are forwarded to the DOM element.\n */\nexport function createFilteredElement(defaultTag: string) {\n const Component = React.forwardRef<HTMLElement, Record<string, unknown>>(\n ({ children, elementType, ...props }, ref) => {\n const Tag = (elementType as string) || defaultTag;\n const htmlProps: Record<string, unknown> = {};\n for (const key of Object.keys(props)) {\n if (shouldForwardProp(key)) {\n htmlProps[key] = props[key];\n }\n }\n return React.createElement(\n Tag,\n { ref, ...htmlProps },\n children as React.ReactNode\n );\n }\n );\n Component.displayName = `Filtered(${defaultTag})`;\n return Component;\n}\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\nimport { createFilteredElement } from \"./filterDOMProps\";\n\nconst FilteredDiv = createFilteredElement(\"div\");\n\nconst StyledIcon = styled(FilteredDiv)<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n /* Icons paint themselves — each icon's own SVG sets its fill/stroke\n (icons-base via inline \"fill: currentColor\", Lucide via \"fill\"/\"stroke\"\n attributes). Do not add fill/stroke here: it re-strokes fill-based icons\n and thickens the glyph. See FEP-877. */\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n testID,\n \"data-testid\": dataTestId,\n ...props\n}) => {\n return (\n <StyledIcon data-testid={dataTestId || testID} {...props}>\n {children}\n </StyledIcon>\n );\n};\n"],"mappings":"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","names":["React","styled","import_jsx_runtime","LucideCheck","LucideX","LucideCopy","LucideEye","LucideEyeOff","LucideArrowLeft","LucideArrowRight","LucideSettings","LucideMinus","LucideAlertCircle","LucideCreditCard","LucideFlag","LucideCheckCircle","LucideZap","LucideClock","LucideChevronLeft","LucideChevronRight","LucidePlane","LucideMenu","LucideBell","LucideUser","LucideSearch","LucideHome","LucideShoppingCart","LucideGift","LucideTrophy","LucideBackpack","LucideHeadset","LucideShoppingBag","LucidePlus","LucideImage","LucideUpload","LucideFile","LucideInfo"]}
1
+ {"version":3,"sources":["../../src/index.tsx","../../../primitives-web/src/filterDOMProps.ts","../../../../../node_modules/@emotion/memoize/dist/memoize.esm.js","../../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js","../../../primitives-web/src/Icon.tsx"],"sourcesContent":["// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n Play as LucidePlay,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n\nexport const Play = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlay size=\"100%\" />\n </Icon>\n);\n","import React from \"react\";\nimport isPropValid from \"@emotion/is-prop-valid\";\n\n// Props that @emotion/is-prop-valid incorrectly treats as valid HTML.\n// These are React Native or component-specific props that match\n// valid HTML patterns (on* event handlers, SVG attributes).\nexport const ADDITIONAL_BLOCKED_PROPS = new Set([\n // RN-only event handlers (pass isPropValid's on* pattern)\n \"onPress\",\n \"onChangeText\",\n \"onLayout\",\n \"onMoveShouldSetResponder\",\n \"onResponderGrant\",\n \"onResponderMove\",\n \"onResponderRelease\",\n \"onResponderTerminate\",\n // SVG attributes that pass isPropValid\n \"strokeWidth\",\n // CSS properties that pass isPropValid but are used as component props\n \"overflow\",\n \"opacity\",\n \"cursor\",\n \"fontSize\",\n \"fontWeight\",\n \"fontFamily\",\n \"textDecoration\",\n // Cross-platform layout prop that Text consumes as CSS, never as an\n // attribute. Pinned explicitly because it is now spread into the styled\n // component rather than destructured away before it can reach the DOM.\n \"numberOfLines\",\n]);\n\nfunction shouldForwardProp(key: string): boolean {\n if (ADDITIONAL_BLOCKED_PROPS.has(key)) return false;\n return isPropValid(key);\n}\n\n/**\n * Creates a React component that renders the given HTML tag\n * but filters out non-HTML props before they reach the DOM.\n *\n * Uses @emotion/is-prop-valid (same library styled-components v4\n * uses internally) to automatically block invalid HTML attributes,\n * plus a small blocklist for false positives (RN on* handlers, SVG attrs).\n *\n * Usage: `const FilteredDiv = createFilteredElement(\"div\");`\n * Then: `const StyledBox = styled(FilteredDiv)<BoxProps>\\`...\\`;`\n *\n * styled-components can still read ALL props for CSS interpolation,\n * but only valid HTML attributes are forwarded to the DOM element.\n */\nexport function createFilteredElement(defaultTag: string) {\n const Component = React.forwardRef<HTMLElement, Record<string, unknown>>(\n ({ children, elementType, ...props }, ref) => {\n const Tag = (elementType as string) || defaultTag;\n const htmlProps: Record<string, unknown> = {};\n for (const key of Object.keys(props)) {\n if (shouldForwardProp(key)) {\n htmlProps[key] = props[key];\n }\n }\n return React.createElement(\n Tag,\n { ref, ...htmlProps },\n children as React.ReactNode\n );\n }\n );\n Component.displayName = `Filtered(${defaultTag})`;\n return Component;\n}\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\nimport { createFilteredElement } from \"./filterDOMProps\";\n\nconst FilteredDiv = createFilteredElement(\"div\");\n\nconst StyledIcon = styled(FilteredDiv)<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n /* Icons paint themselves — each icon's own SVG sets its fill/stroke\n (icons-base via inline \"fill: currentColor\", Lucide via \"fill\"/\"stroke\"\n attributes). Do not add fill/stroke here: it re-strokes fill-based icons\n and thickens the glyph. See FEP-877. */\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n testID,\n \"data-testid\": dataTestId,\n ...props\n}) => {\n return (\n <StyledIcon data-testid={dataTestId || testID} {...props}>\n {children}\n </StyledIcon>\n );\n};\n"],"mappings":"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","names":["React","styled","import_jsx_runtime","LucideCheck","LucideX","LucideCopy","LucideEye","LucideEyeOff","LucideArrowLeft","LucideArrowRight","LucideSettings","LucideMinus","LucideAlertCircle","LucideCreditCard","LucideFlag","LucideCheckCircle","LucideZap","LucideClock","LucideChevronLeft","LucideChevronRight","LucidePlane","LucideMenu","LucideBell","LucideUser","LucideSearch","LucideHome","LucideShoppingCart","LucideGift","LucideTrophy","LucideBackpack","LucideHeadset","LucideShoppingBag","LucidePlus","LucideImage","LucideUpload","LucideFile","LucideInfo","LucidePlay"]}
package/web/index.mjs CHANGED
@@ -137,7 +137,8 @@ import {
137
137
  Image as LucideImage,
138
138
  Upload as LucideUpload,
139
139
  File as LucideFile,
140
- Info as LucideInfo
140
+ Info as LucideInfo,
141
+ Play as LucidePlay
141
142
  } from "lucide-react";
142
143
  import { jsx as jsx2 } from "react/jsx-runtime";
143
144
  var Check = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideCheck, { size: "100%" }) });
@@ -174,6 +175,7 @@ var Image = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PU
174
175
  var Upload = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideUpload, { size: "100%" }) });
175
176
  var File = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideFile, { size: "100%" }) });
176
177
  var Info = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucideInfo, { size: "100%" }) });
178
+ var Play = (props) => /* @__PURE__ */ jsx2(Icon, { ...props, children: /* @__PURE__ */ jsx2(LucidePlay, { size: "100%" }) });
177
179
  export {
178
180
  AlertCircle,
179
181
  ArrowLeft,
@@ -199,6 +201,7 @@ export {
199
201
  Menu,
200
202
  Minus,
201
203
  Plane,
204
+ Play,
202
205
  Plus,
203
206
  Search,
204
207
  Settings,
package/web/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../primitives-web/src/filterDOMProps.ts","../../../../../node_modules/@emotion/memoize/dist/memoize.esm.js","../../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js","../../../primitives-web/src/Icon.tsx","../../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport isPropValid from \"@emotion/is-prop-valid\";\n\n// Props that @emotion/is-prop-valid incorrectly treats as valid HTML.\n// These are React Native or component-specific props that match\n// valid HTML patterns (on* event handlers, SVG attributes).\nexport const ADDITIONAL_BLOCKED_PROPS = new Set([\n // RN-only event handlers (pass isPropValid's on* pattern)\n \"onPress\",\n \"onChangeText\",\n \"onLayout\",\n \"onMoveShouldSetResponder\",\n \"onResponderGrant\",\n \"onResponderMove\",\n \"onResponderRelease\",\n \"onResponderTerminate\",\n // SVG attributes that pass isPropValid\n \"strokeWidth\",\n // CSS properties that pass isPropValid but are used as component props\n \"overflow\",\n \"opacity\",\n \"cursor\",\n \"fontSize\",\n \"fontWeight\",\n \"fontFamily\",\n \"textDecoration\",\n // Cross-platform layout prop that Text consumes as CSS, never as an\n // attribute. Pinned explicitly because it is now spread into the styled\n // component rather than destructured away before it can reach the DOM.\n \"numberOfLines\",\n]);\n\nfunction shouldForwardProp(key: string): boolean {\n if (ADDITIONAL_BLOCKED_PROPS.has(key)) return false;\n return isPropValid(key);\n}\n\n/**\n * Creates a React component that renders the given HTML tag\n * but filters out non-HTML props before they reach the DOM.\n *\n * Uses @emotion/is-prop-valid (same library styled-components v4\n * uses internally) to automatically block invalid HTML attributes,\n * plus a small blocklist for false positives (RN on* handlers, SVG attrs).\n *\n * Usage: `const FilteredDiv = createFilteredElement(\"div\");`\n * Then: `const StyledBox = styled(FilteredDiv)<BoxProps>\\`...\\`;`\n *\n * styled-components can still read ALL props for CSS interpolation,\n * but only valid HTML attributes are forwarded to the DOM element.\n */\nexport function createFilteredElement(defaultTag: string) {\n const Component = React.forwardRef<HTMLElement, Record<string, unknown>>(\n ({ children, elementType, ...props }, ref) => {\n const Tag = (elementType as string) || defaultTag;\n const htmlProps: Record<string, unknown> = {};\n for (const key of Object.keys(props)) {\n if (shouldForwardProp(key)) {\n htmlProps[key] = props[key];\n }\n }\n return React.createElement(\n Tag,\n { ref, ...htmlProps },\n children as React.ReactNode\n );\n }\n );\n Component.displayName = `Filtered(${defaultTag})`;\n return Component;\n}\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\nimport { createFilteredElement } from \"./filterDOMProps\";\n\nconst FilteredDiv = createFilteredElement(\"div\");\n\nconst StyledIcon = styled(FilteredDiv)<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n /* Icons paint themselves — each icon's own SVG sets its fill/stroke\n (icons-base via inline \"fill: currentColor\", Lucide via \"fill\"/\"stroke\"\n attributes). Do not add fill/stroke here: it re-strokes fill-based icons\n and thickens the glyph. See FEP-877. */\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n testID,\n \"data-testid\": dataTestId,\n ...props\n}) => {\n return (\n <StyledIcon data-testid={dataTestId || testID} {...props}>\n {children}\n </StyledIcon>\n );\n};\n","// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n"],"mappings":"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","names":["jsx"]}
1
+ {"version":3,"sources":["../../../primitives-web/src/filterDOMProps.ts","../../../../../node_modules/@emotion/memoize/dist/memoize.esm.js","../../../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js","../../../primitives-web/src/Icon.tsx","../../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport isPropValid from \"@emotion/is-prop-valid\";\n\n// Props that @emotion/is-prop-valid incorrectly treats as valid HTML.\n// These are React Native or component-specific props that match\n// valid HTML patterns (on* event handlers, SVG attributes).\nexport const ADDITIONAL_BLOCKED_PROPS = new Set([\n // RN-only event handlers (pass isPropValid's on* pattern)\n \"onPress\",\n \"onChangeText\",\n \"onLayout\",\n \"onMoveShouldSetResponder\",\n \"onResponderGrant\",\n \"onResponderMove\",\n \"onResponderRelease\",\n \"onResponderTerminate\",\n // SVG attributes that pass isPropValid\n \"strokeWidth\",\n // CSS properties that pass isPropValid but are used as component props\n \"overflow\",\n \"opacity\",\n \"cursor\",\n \"fontSize\",\n \"fontWeight\",\n \"fontFamily\",\n \"textDecoration\",\n // Cross-platform layout prop that Text consumes as CSS, never as an\n // attribute. Pinned explicitly because it is now spread into the styled\n // component rather than destructured away before it can reach the DOM.\n \"numberOfLines\",\n]);\n\nfunction shouldForwardProp(key: string): boolean {\n if (ADDITIONAL_BLOCKED_PROPS.has(key)) return false;\n return isPropValid(key);\n}\n\n/**\n * Creates a React component that renders the given HTML tag\n * but filters out non-HTML props before they reach the DOM.\n *\n * Uses @emotion/is-prop-valid (same library styled-components v4\n * uses internally) to automatically block invalid HTML attributes,\n * plus a small blocklist for false positives (RN on* handlers, SVG attrs).\n *\n * Usage: `const FilteredDiv = createFilteredElement(\"div\");`\n * Then: `const StyledBox = styled(FilteredDiv)<BoxProps>\\`...\\`;`\n *\n * styled-components can still read ALL props for CSS interpolation,\n * but only valid HTML attributes are forwarded to the DOM element.\n */\nexport function createFilteredElement(defaultTag: string) {\n const Component = React.forwardRef<HTMLElement, Record<string, unknown>>(\n ({ children, elementType, ...props }, ref) => {\n const Tag = (elementType as string) || defaultTag;\n const htmlProps: Record<string, unknown> = {};\n for (const key of Object.keys(props)) {\n if (shouldForwardProp(key)) {\n htmlProps[key] = props[key];\n }\n }\n return React.createElement(\n Tag,\n { ref, ...htmlProps },\n children as React.ReactNode\n );\n }\n );\n Component.displayName = `Filtered(${defaultTag})`;\n return Component;\n}\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\nimport { createFilteredElement } from \"./filterDOMProps\";\n\nconst FilteredDiv = createFilteredElement(\"div\");\n\nconst StyledIcon = styled(FilteredDiv)<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n /* Icons paint themselves — each icon's own SVG sets its fill/stroke\n (icons-base via inline \"fill: currentColor\", Lucide via \"fill\"/\"stroke\"\n attributes). Do not add fill/stroke here: it re-strokes fill-based icons\n and thickens the glyph. See FEP-877. */\n svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({\n children,\n testID,\n \"data-testid\": dataTestId,\n ...props\n}) => {\n return (\n <StyledIcon data-testid={dataTestId || testID} {...props}>\n {children}\n </StyledIcon>\n );\n};\n","// @ts-expect-error - this will be resolved at build time\nimport { Icon } from \"@xsolla/xui-primitives\";\nimport type { IconProps } from \"@xsolla/xui-primitives-core\";\nimport {\n Check as LucideCheck,\n X as LucideX,\n Copy as LucideCopy,\n Eye as LucideEye,\n EyeOff as LucideEyeOff,\n ArrowLeft as LucideArrowLeft,\n ArrowRight as LucideArrowRight,\n Settings as LucideSettings,\n Minus as LucideMinus,\n AlertCircle as LucideAlertCircle,\n CreditCard as LucideCreditCard,\n Flag as LucideFlag,\n CircleCheck as LucideCheckCircle,\n Zap as LucideZap,\n Clock as LucideClock,\n ChevronLeft as LucideChevronLeft,\n ChevronRight as LucideChevronRight,\n Plane as LucidePlane,\n Menu as LucideMenu,\n Bell as LucideBell,\n User as LucideUser,\n Search as LucideSearch,\n Home as LucideHome,\n ShoppingCart as LucideShoppingCart,\n Gift as LucideGift,\n Trophy as LucideTrophy,\n Backpack as LucideBackpack,\n Headset as LucideHeadset,\n ShoppingBag as LucideShoppingBag,\n Plus as LucidePlus,\n Image as LucideImage,\n Upload as LucideUpload,\n File as LucideFile,\n Info as LucideInfo,\n Play as LucidePlay,\n} from \"lucide-icon-platform\";\n\n// Icons use \"100%\" size to scale with the Icon container wrapper\nexport const Check = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheck size=\"100%\" />\n </Icon>\n);\n\nexport const X = (props: IconProps) => (\n <Icon {...props}>\n <LucideX size=\"100%\" />\n </Icon>\n);\n\nexport const Copy = (props: IconProps) => (\n <Icon {...props}>\n <LucideCopy size=\"100%\" />\n </Icon>\n);\n\nexport const Eye = (props: IconProps) => (\n <Icon {...props}>\n <LucideEye size=\"100%\" />\n </Icon>\n);\n\nexport const EyeOff = (props: IconProps) => (\n <Icon {...props}>\n <LucideEyeOff size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ArrowRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideArrowRight size=\"100%\" />\n </Icon>\n);\n\nexport const Settings = (props: IconProps) => (\n <Icon {...props}>\n <LucideSettings size=\"100%\" />\n </Icon>\n);\n\nexport const Minus = (props: IconProps) => (\n <Icon {...props}>\n <LucideMinus size=\"100%\" />\n </Icon>\n);\n\nexport const AlertCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideAlertCircle size=\"100%\" />\n </Icon>\n);\n\nexport const CreditCard = (props: IconProps) => (\n <Icon {...props}>\n <LucideCreditCard size=\"100%\" />\n </Icon>\n);\n\nexport const Flag = (props: IconProps) => (\n <Icon {...props}>\n <LucideFlag size=\"100%\" />\n </Icon>\n);\n\nexport const CheckCircle = (props: IconProps) => (\n <Icon {...props}>\n <LucideCheckCircle size=\"100%\" />\n </Icon>\n);\n\nexport const Zap = (props: IconProps) => (\n <Icon {...props}>\n <LucideZap size=\"100%\" />\n </Icon>\n);\n\nexport const Clock = (props: IconProps) => (\n <Icon {...props}>\n <LucideClock size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronLeft = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronLeft size=\"100%\" />\n </Icon>\n);\n\nexport const ChevronRight = (props: IconProps) => (\n <Icon {...props}>\n <LucideChevronRight size=\"100%\" />\n </Icon>\n);\n\nexport const Plane = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlane size=\"100%\" />\n </Icon>\n);\n\nexport const Menu = (props: IconProps) => (\n <Icon {...props}>\n <LucideMenu size=\"100%\" />\n </Icon>\n);\n\nexport const Bell = (props: IconProps) => (\n <Icon {...props}>\n <LucideBell size=\"100%\" />\n </Icon>\n);\n\nexport const User = (props: IconProps) => (\n <Icon {...props}>\n <LucideUser size=\"100%\" />\n </Icon>\n);\n\nexport const Search = (props: IconProps) => (\n <Icon {...props}>\n <LucideSearch size=\"100%\" />\n </Icon>\n);\n\nexport const Home = (props: IconProps) => (\n <Icon {...props}>\n <LucideHome size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingCart = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingCart size=\"100%\" />\n </Icon>\n);\n\nexport const Gift = (props: IconProps) => (\n <Icon {...props}>\n <LucideGift size=\"100%\" />\n </Icon>\n);\n\nexport const Trophy = (props: IconProps) => (\n <Icon {...props}>\n <LucideTrophy size=\"100%\" />\n </Icon>\n);\n\nexport const Backpack = (props: IconProps) => (\n <Icon {...props}>\n <LucideBackpack size=\"100%\" />\n </Icon>\n);\n\nexport const Headset = (props: IconProps) => (\n <Icon {...props}>\n <LucideHeadset size=\"100%\" />\n </Icon>\n);\n\nexport const ShoppingBag = (props: IconProps) => (\n <Icon {...props}>\n <LucideShoppingBag size=\"100%\" />\n </Icon>\n);\n\nexport const Plus = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlus size=\"100%\" />\n </Icon>\n);\n\nexport const Image = (props: IconProps) => (\n <Icon {...props}>\n <LucideImage size=\"100%\" />\n </Icon>\n);\n\nexport const Upload = (props: IconProps) => (\n <Icon {...props}>\n <LucideUpload size=\"100%\" />\n </Icon>\n);\n\nexport const File = (props: IconProps) => (\n <Icon {...props}>\n <LucideFile size=\"100%\" />\n </Icon>\n);\n\nexport const Info = (props: IconProps) => (\n <Icon {...props}>\n <LucideInfo size=\"100%\" />\n </Icon>\n);\n\nexport const Play = (props: IconProps) => (\n <Icon {...props}>\n <LucidePlay size=\"100%\" />\n </Icon>\n);\n"],"mappings":";AAAA,OAAO,WAAW;;;ACAlB,SAAS,QAAQ,IAAI;AACnB,MAAI,QAAQ,CAAC;AACb,SAAO,SAAU,KAAK;AACpB,QAAI,MAAM,GAAG,MAAM,OAAW,OAAM,GAAG,IAAI,GAAG,GAAG;AACjD,WAAO,MAAM,GAAG;AAAA,EAClB;AACF;AAEA,IAAO,sBAAQ;;;ACNf,IAAI,kBAAkB;AAEtB,IAAI,QAAQ;AAAA,EAAQ,SAAU,MAAM;AAClC,WAAO,gBAAgB,KAAK,IAAI,KAAK,KAAK,WAAW,CAAC,MAAM,OAEzD,KAAK,WAAW,CAAC,MAAM,OAEvB,KAAK,WAAW,CAAC,IAAI;AAAA,EAC1B;AAAA;AAEA;AAEA,IAAO,4BAAQ;;;AFRR,IAAM,2BAA2B,oBAAI,IAAI;AAAA;AAAA,EAE9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAIA;AACF,CAAC;AAED,SAAS,kBAAkB,KAAsB;AAC/C,MAAI,yBAAyB,IAAI,GAAG,EAAG,QAAO;AAC9C,SAAO,0BAAY,GAAG;AACxB;AAgBO,SAAS,sBAAsB,YAAoB;AACxD,QAAM,YAAY,MAAM;AAAA,IACtB,CAAC,EAAE,UAAU,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC5C,YAAM,MAAO,eAA0B;AACvC,YAAM,YAAqC,CAAC;AAC5C,iBAAW,OAAO,OAAO,KAAK,KAAK,GAAG;AACpC,YAAI,kBAAkB,GAAG,GAAG;AAC1B,oBAAU,GAAG,IAAI,MAAM,GAAG;AAAA,QAC5B;AAAA,MACF;AACA,aAAO,MAAM;AAAA,QACX;AAAA,QACA,EAAE,KAAK,GAAG,UAAU;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,YAAU,cAAc,YAAY,UAAU;AAC9C,SAAO;AACT;;;AGrEA,OAAO,YAAY;AAiCf;AA7BJ,IAAM,cAAc,sBAAsB,KAAK;AAE/C,IAAM,aAAa,OAAO,WAAW;AAAA;AAAA;AAAA;AAAA,WAI1B,CAAC,UACR,OAAO,MAAM,SAAS,WAAW,GAAG,MAAM,IAAI,OAAO,MAAM,QAAQ,MAAM;AAAA,YACjE,CAAC,UACT,OAAO,MAAM,SAAS,WAAW,GAAG,MAAM,IAAI,OAAO,MAAM,QAAQ,MAAM;AAAA,WAClE,CAAC,UAAU,MAAM,SAAS,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY5C,IAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,GAAG;AACL,MAAM;AACJ,SACE,oBAAC,cAAW,eAAa,cAAc,QAAS,GAAG,OAChD,UACH;AAEJ;;;ACnCA;AAAA,EACE,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe;AAAA,EACf,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,OAAO;AAAA,EACP,SAAS;AAAA,EACT,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,OACH;AAKH,gBAAAA,YAAA;AAFG,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,IAAI,CAAC,UAChB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,WAAQ,MAAK,QAAO,GACvB;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,MAAM,CAAC,UAClB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,aAAU,MAAK,QAAO,GACzB;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,YAAY,CAAC,UACxB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,mBAAgB,MAAK,QAAO,GAC/B;AAGK,IAAM,aAAa,CAAC,UACzB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,oBAAiB,MAAK,QAAO,GAChC;AAGK,IAAM,WAAW,CAAC,UACvB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,kBAAe,MAAK,QAAO,GAC9B;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,aAAa,CAAC,UACzB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,oBAAiB,MAAK,QAAO,GAChC;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,MAAM,CAAC,UAClB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,aAAU,MAAK,QAAO,GACzB;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,eAAe,CAAC,UAC3B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,sBAAmB,MAAK,QAAO,GAClC;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,eAAe,CAAC,UAC3B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,sBAAmB,MAAK,QAAO,GAClC;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,WAAW,CAAC,UACvB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,kBAAe,MAAK,QAAO,GAC9B;AAGK,IAAM,UAAU,CAAC,UACtB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,iBAAc,MAAK,QAAO,GAC7B;AAGK,IAAM,cAAc,CAAC,UAC1B,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,qBAAkB,MAAK,QAAO,GACjC;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,QAAQ,CAAC,UACpB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,eAAY,MAAK,QAAO,GAC3B;AAGK,IAAM,SAAS,CAAC,UACrB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,gBAAa,MAAK,QAAO,GAC5B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;AAGK,IAAM,OAAO,CAAC,UACnB,gBAAAA,KAAC,QAAM,GAAG,OACR,0BAAAA,KAAC,cAAW,MAAK,QAAO,GAC1B;","names":["jsx"]}