@nice2dev/icons-life 1.0.10

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.
Files changed (66) hide show
  1. package/README.md +182 -0
  2. package/dist/createLifeIcon-BAJdO67Z.cjs +134 -0
  3. package/dist/createLifeIcon-BAJdO67Z.cjs.map +1 -0
  4. package/dist/createLifeIcon-BjwgNM6z.js +135 -0
  5. package/dist/createLifeIcon-BjwgNM6z.js.map +1 -0
  6. package/dist/createLifeIcon.d.ts +11 -0
  7. package/dist/createLifeIcon.d.ts.map +1 -0
  8. package/dist/family.d.ts +53 -0
  9. package/dist/family.d.ts.map +1 -0
  10. package/dist/finance-CY9lsJ72.cjs +496 -0
  11. package/dist/finance-CY9lsJ72.cjs.map +1 -0
  12. package/dist/finance-CeKDD16o.js +497 -0
  13. package/dist/finance-CeKDD16o.js.map +1 -0
  14. package/dist/finance.cjs +21 -0
  15. package/dist/finance.cjs.map +1 -0
  16. package/dist/finance.d.ts +18 -0
  17. package/dist/finance.d.ts.map +1 -0
  18. package/dist/finance.js +21 -0
  19. package/dist/finance.js.map +1 -0
  20. package/dist/health-C45FWWY6.cjs +531 -0
  21. package/dist/health-C45FWWY6.cjs.map +1 -0
  22. package/dist/health-DslCiA58.js +532 -0
  23. package/dist/health-DslCiA58.js.map +1 -0
  24. package/dist/health.cjs +21 -0
  25. package/dist/health.cjs.map +1 -0
  26. package/dist/health.d.ts +18 -0
  27. package/dist/health.d.ts.map +1 -0
  28. package/dist/health.js +21 -0
  29. package/dist/health.js.map +1 -0
  30. package/dist/hobbies.d.ts +49 -0
  31. package/dist/hobbies.d.ts.map +1 -0
  32. package/dist/home-DIQE0xSu.js +541 -0
  33. package/dist/home-DIQE0xSu.js.map +1 -0
  34. package/dist/home-M8Wx9F25.cjs +540 -0
  35. package/dist/home-M8Wx9F25.cjs.map +1 -0
  36. package/dist/home.cjs +21 -0
  37. package/dist/home.cjs.map +1 -0
  38. package/dist/home.d.ts +18 -0
  39. package/dist/home.d.ts.map +1 -0
  40. package/dist/home.js +21 -0
  41. package/dist/home.js.map +1 -0
  42. package/dist/index.cjs +7223 -0
  43. package/dist/index.cjs.map +1 -0
  44. package/dist/index.d.ts +640 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +7227 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/productivity-BK198AbT.js +512 -0
  49. package/dist/productivity-BK198AbT.js.map +1 -0
  50. package/dist/productivity-DhUOR9P4.cjs +511 -0
  51. package/dist/productivity-DhUOR9P4.cjs.map +1 -0
  52. package/dist/productivity.cjs +21 -0
  53. package/dist/productivity.cjs.map +1 -0
  54. package/dist/productivity.d.ts +18 -0
  55. package/dist/productivity.d.ts.map +1 -0
  56. package/dist/productivity.js +21 -0
  57. package/dist/productivity.js.map +1 -0
  58. package/dist/relationships.d.ts +38 -0
  59. package/dist/relationships.d.ts.map +1 -0
  60. package/dist/selfcare.d.ts +45 -0
  61. package/dist/selfcare.d.ts.map +1 -0
  62. package/dist/travel.d.ts +46 -0
  63. package/dist/travel.d.ts.map +1 -0
  64. package/dist/types.d.ts +33 -0
  65. package/dist/types.d.ts.map +1 -0
  66. package/package.json +84 -0
package/README.md ADDED
@@ -0,0 +1,182 @@
1
+ # @nice2dev/icons-life
2
+
3
+ Personal life icons (health, finance, home, productivity) for Nice2Dev UI library.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @nice2dev/icons-life
9
+ ```
10
+
11
+ ## Features
12
+
13
+ - 🎨 **60 Life Icons** - Comprehensive set of personal life icons
14
+ - 🎭 **3 Variants** - Filled, outlined, and duotone rendering modes
15
+ - ✨ **9 Animations** - Built-in SMIL animations (pulse, grow, shake, spin, bounce, fade, flip, slide, glow)
16
+ - 📦 **Tree-shakeable** - Import only what you need
17
+ - 🔷 **TypeScript** - Full type safety with comprehensive types
18
+
19
+ ## Icon Categories
20
+
21
+ ### Health Icons (15)
22
+
23
+ Medical, fitness and wellness icons:
24
+
25
+ `HeartIcon`, `HeartbeatIcon`, `StethoscopeIcon`, `PillsIcon`, `SyringeIcon`, `BandageIcon`, `HospitalIcon`, `AmbulanceIcon`, `DoctorIcon`, `DnaIcon`, `BrainIcon`, `LungsIcon`, `DumbbellIcon`, `YogaIcon`, `RunningIcon`
26
+
27
+ ### Finance Icons (15)
28
+
29
+ Money, banking and investment icons:
30
+
31
+ `WalletIcon`, `CreditCardIcon`, `BankNoteIcon`, `CoinsIcon`, `PiggyBankIcon`, `BankIcon`, `ChartIcon`, `TrendingUpIcon`, `TrendingDownIcon`, `CalculatorIcon`, `ReceiptIcon`, `InvoiceIcon`, `SafeIcon`, `BitcoinIcon`, `ExchangeIcon`
32
+
33
+ ### Home Icons (15)
34
+
35
+ House, building and interior icons:
36
+
37
+ `HouseIcon`, `BuildingIcon`, `DoorIcon`, `KeyIcon`, `BedIcon`, `SofaIcon`, `LampIcon`, `KitchenIcon`, `BathtubIcon`, `GarageIcon`, `GardenIcon`, `FenceIcon`, `AirConditionerIcon`, `HeaterIcon`, `WifiIcon`
38
+
39
+ ### Productivity Icons (15)
40
+
41
+ Time management and planning icons:
42
+
43
+ `CalendarIcon`, `ClockIcon`, `AlarmIcon`, `TimerIcon`, `ChecklistIcon`, `TargetIcon`, `TrophyIcon`, `FlagIcon`, `RocketIcon`, `LightbulbIcon`, `BookmarkIcon`, `ClipboardIcon`, `KanbanIcon`, `GanttIcon`, `PomodoroIcon`
44
+
45
+ ## Usage
46
+
47
+ ### Basic Usage
48
+
49
+ ```tsx
50
+ import { HeartIcon, WalletIcon, HouseIcon, CalendarIcon } from '@nice2dev/icons-life';
51
+
52
+ // Health icon with pulse animation
53
+ <HeartIcon animation="pulse" />
54
+
55
+ // Finance icon
56
+ <WalletIcon size={32} />
57
+
58
+ // Home icon
59
+ <HouseIcon variant="outlined" />
60
+
61
+ // Productivity icon
62
+ <CalendarIcon size={24} color="#333" />
63
+ ```
64
+
65
+ ### Icon Variants
66
+
67
+ ```tsx
68
+ import { TrophyIcon } from '@nice2dev/icons-life';
69
+
70
+ // Filled (default)
71
+ <TrophyIcon variant="filled" />
72
+
73
+ // Outlined
74
+ <TrophyIcon variant="outlined" />
75
+
76
+ // Duotone
77
+ <TrophyIcon variant="duotone" accentColor="#fcd34d" />
78
+ ```
79
+
80
+ ### Animations
81
+
82
+ ```tsx
83
+ import { RocketIcon } from '@nice2dev/icons-life';
84
+
85
+ <RocketIcon animation="pulse" /> // Pulsing effect
86
+ <RocketIcon animation="grow" /> // Size growth
87
+ <RocketIcon animation="shake" /> // Shake/wiggle
88
+ <RocketIcon animation="spin" /> // 360° rotation
89
+ <RocketIcon animation="bounce" /> // Bouncing effect
90
+ <RocketIcon animation="fade" /> // Fade in/out
91
+ <RocketIcon animation="flip" /> // 3D flip
92
+ <RocketIcon animation="slide" /> // Slide motion
93
+ <RocketIcon animation="glow" /> // Glowing effect
94
+ ```
95
+
96
+ ### Grouped Imports
97
+
98
+ ```tsx
99
+ import { healthIcons, financeIcons, homeIcons, productivityIcons } from '@nice2dev/icons-life';
100
+
101
+ // Access all health icons
102
+ const { HeartIcon, DumbbellIcon } = healthIcons;
103
+
104
+ // Use in icon picker
105
+ const allFinanceIcons = Object.values(financeIcons);
106
+ ```
107
+
108
+ ### Custom Colors
109
+
110
+ ```tsx
111
+ import { HeartIcon } from '@nice2dev/icons-life';
112
+
113
+ // Override default colors
114
+ <HeartIcon color="#333333" accentColor="#ef4444" />;
115
+ ```
116
+
117
+ ## Props
118
+
119
+ | Prop | Type | Default | Description |
120
+ | ------------- | ------------------------------------- | ---------------- | ---------------------------------- |
121
+ | `size` | `number` | `24` | Icon size in pixels |
122
+ | `color` | `string` | `'currentColor'` | Primary icon color |
123
+ | `accentColor` | `string` | - | Secondary/accent color for duotone |
124
+ | `variant` | `'filled' \| 'outlined' \| 'duotone'` | `'filled'` | Icon style variant |
125
+ | `animation` | `LifeIconAnimation` | - | Animation type |
126
+ | `className` | `string` | - | Additional CSS class |
127
+ | `style` | `CSSProperties` | - | Inline styles |
128
+
129
+ ## TypeScript
130
+
131
+ ```tsx
132
+ import type {
133
+ LifeIconProps,
134
+ LifeIconAnimation,
135
+ HealthIconName,
136
+ FinanceIconName,
137
+ HomeIconName,
138
+ ProductivityIconName,
139
+ } from '@nice2dev/icons-life';
140
+
141
+ // Type-safe icon selection
142
+ const iconName: HealthIconName = 'Heart';
143
+ const animation: LifeIconAnimation = 'pulse';
144
+ ```
145
+
146
+ ## Use Cases
147
+
148
+ ### Health App Dashboard
149
+
150
+ ```tsx
151
+ <HeartbeatIcon animation="pulse" color="#ef4444" />
152
+ <DumbbellIcon size={32} />
153
+ <RunningIcon variant="outlined" />
154
+ ```
155
+
156
+ ### Finance Tracker
157
+
158
+ ```tsx
159
+ <TrendingUpIcon color="#22c55e" />
160
+ <TrendingDownIcon color="#ef4444" />
161
+ <PiggyBankIcon animation="bounce" />
162
+ ```
163
+
164
+ ### Smart Home Control
165
+
166
+ ```tsx
167
+ <HouseIcon size={40} />
168
+ <LampIcon variant="duotone" accentColor="#fcd34d" />
169
+ <WifiIcon animation="pulse" />
170
+ ```
171
+
172
+ ### Productivity App
173
+
174
+ ```tsx
175
+ <CalendarIcon />
176
+ <ChecklistIcon color="#22c55e" />
177
+ <PomodoroIcon animation="pulse" accentColor="#ef4444" />
178
+ ```
179
+
180
+ ## License
181
+
182
+ MIT © Nice2Dev
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ const jsxRuntime = require("react/jsx-runtime");
3
+ const react = require("react");
4
+ const iconDefaults = {
5
+ size: 24,
6
+ color: "currentColor",
7
+ variant: "filled"
8
+ };
9
+ function getLifeAnimation(animation) {
10
+ switch (animation) {
11
+ case "pulse":
12
+ return /* @__PURE__ */ jsxRuntime.jsx("animate", { attributeName: "opacity", values: "1;0.5;1", dur: "1.5s", repeatCount: "indefinite" });
13
+ case "grow":
14
+ return /* @__PURE__ */ jsxRuntime.jsx(
15
+ "animateTransform",
16
+ {
17
+ attributeName: "transform",
18
+ type: "scale",
19
+ values: "1;1.1;1",
20
+ dur: "0.6s",
21
+ repeatCount: "indefinite"
22
+ }
23
+ );
24
+ case "shake":
25
+ return /* @__PURE__ */ jsxRuntime.jsx(
26
+ "animateTransform",
27
+ {
28
+ attributeName: "transform",
29
+ type: "rotate",
30
+ values: "-5 12 12;5 12 12;-5 12 12",
31
+ dur: "0.3s",
32
+ repeatCount: "indefinite"
33
+ }
34
+ );
35
+ case "spin":
36
+ return /* @__PURE__ */ jsxRuntime.jsx(
37
+ "animateTransform",
38
+ {
39
+ attributeName: "transform",
40
+ type: "rotate",
41
+ from: "0 12 12",
42
+ to: "360 12 12",
43
+ dur: "1s",
44
+ repeatCount: "indefinite"
45
+ }
46
+ );
47
+ case "bounce":
48
+ return /* @__PURE__ */ jsxRuntime.jsx(
49
+ "animateTransform",
50
+ {
51
+ attributeName: "transform",
52
+ type: "translate",
53
+ values: "0,0;0,-3;0,0",
54
+ dur: "0.5s",
55
+ repeatCount: "indefinite"
56
+ }
57
+ );
58
+ case "fade":
59
+ return /* @__PURE__ */ jsxRuntime.jsx("animate", { attributeName: "opacity", values: "0;1;0", dur: "2s", repeatCount: "indefinite" });
60
+ case "flip":
61
+ return /* @__PURE__ */ jsxRuntime.jsx(
62
+ "animateTransform",
63
+ {
64
+ attributeName: "transform",
65
+ type: "scale",
66
+ values: "1,1;-1,1;1,1",
67
+ dur: "1s",
68
+ repeatCount: "indefinite"
69
+ }
70
+ );
71
+ case "slide":
72
+ return /* @__PURE__ */ jsxRuntime.jsx(
73
+ "animateTransform",
74
+ {
75
+ attributeName: "transform",
76
+ type: "translate",
77
+ values: "-3,0;3,0;-3,0",
78
+ dur: "1s",
79
+ repeatCount: "indefinite"
80
+ }
81
+ );
82
+ case "glow":
83
+ return /* @__PURE__ */ jsxRuntime.jsx(
84
+ "animate",
85
+ {
86
+ attributeName: "filter",
87
+ values: "drop-shadow(0 0 0px currentColor);drop-shadow(0 0 4px currentColor);drop-shadow(0 0 0px currentColor)",
88
+ dur: "1.5s",
89
+ repeatCount: "indefinite"
90
+ }
91
+ );
92
+ default:
93
+ return null;
94
+ }
95
+ }
96
+ function createLifeIcon(renderContent, options) {
97
+ const IconComponent = react.forwardRef((props, ref) => {
98
+ const {
99
+ size = iconDefaults.size,
100
+ color = iconDefaults.color,
101
+ accentColor,
102
+ variant = iconDefaults.variant,
103
+ animation,
104
+ className,
105
+ style,
106
+ "aria-label": ariaLabel,
107
+ ...rest
108
+ } = props;
109
+ return /* @__PURE__ */ jsxRuntime.jsxs(
110
+ "svg",
111
+ {
112
+ ref,
113
+ xmlns: "http://www.w3.org/2000/svg",
114
+ width: size,
115
+ height: size,
116
+ viewBox: "0 0 24 24",
117
+ fill: "none",
118
+ className,
119
+ style,
120
+ "aria-label": ariaLabel,
121
+ role: ariaLabel ? "img" : "presentation",
122
+ ...rest,
123
+ children: [
124
+ animation && /* @__PURE__ */ jsxRuntime.jsx("g", { children: getLifeAnimation(animation) }),
125
+ renderContent({ size, color, accentColor, variant })
126
+ ]
127
+ }
128
+ );
129
+ });
130
+ IconComponent.displayName = (options == null ? void 0 : options.displayName) ?? "LifeIcon";
131
+ return IconComponent;
132
+ }
133
+ exports.createLifeIcon = createLifeIcon;
134
+ //# sourceMappingURL=createLifeIcon-BAJdO67Z.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLifeIcon-BAJdO67Z.cjs","sources":["../src/createLifeIcon.tsx"],"sourcesContent":["/**\r\n * @file createLifeIcon.tsx\r\n * @description Factory function for creating animated life icons\r\n */\r\n\r\nimport React, { forwardRef } from 'react';\r\n\r\nimport type { LifeIconProps, LifeIconAnimation } from './types';\r\n\r\n/** Default icon props */\r\nexport const iconDefaults: Required<Pick<LifeIconProps, 'size' | 'color' | 'variant'>> = {\r\n size: 24,\r\n color: 'currentColor',\r\n variant: 'filled',\r\n};\r\n\r\n/** Get SMIL animation element for the specified animation type */\r\nexport function getLifeAnimation(animation: LifeIconAnimation): React.ReactNode {\r\n switch (animation) {\r\n case 'pulse':\r\n return (\r\n <animate attributeName=\"opacity\" values=\"1;0.5;1\" dur=\"1.5s\" repeatCount=\"indefinite\" />\r\n );\r\n case 'grow':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"scale\"\r\n values=\"1;1.1;1\"\r\n dur=\"0.6s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'shake':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n values=\"-5 12 12;5 12 12;-5 12 12\"\r\n dur=\"0.3s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'spin':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 12 12\"\r\n to=\"360 12 12\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'bounce':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0,0;0,-3;0,0\"\r\n dur=\"0.5s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'fade':\r\n return <animate attributeName=\"opacity\" values=\"0;1;0\" dur=\"2s\" repeatCount=\"indefinite\" />;\r\n case 'flip':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"scale\"\r\n values=\"1,1;-1,1;1,1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'slide':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"-3,0;3,0;-3,0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'glow':\r\n return (\r\n <animate\r\n attributeName=\"filter\"\r\n values=\"drop-shadow(0 0 0px currentColor);drop-shadow(0 0 4px currentColor);drop-shadow(0 0 0px currentColor)\"\r\n dur=\"1.5s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\n/** Factory function for creating life icons */\r\nexport function createLifeIcon(\r\n renderContent: (props: LifeIconProps) => React.ReactNode,\r\n options?: { displayName?: string },\r\n) {\r\n const IconComponent = forwardRef<SVGSVGElement, LifeIconProps>((props, ref) => {\r\n const {\r\n size = iconDefaults.size,\r\n color = iconDefaults.color,\r\n accentColor,\r\n variant = iconDefaults.variant,\r\n animation,\r\n className,\r\n style,\r\n 'aria-label': ariaLabel,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n <svg\r\n ref={ref}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n className={className}\r\n style={style}\r\n aria-label={ariaLabel}\r\n role={ariaLabel ? 'img' : 'presentation'}\r\n {...rest}\r\n >\r\n {animation && <g>{getLifeAnimation(animation)}</g>}\r\n {renderContent({ size, color, accentColor, variant })}\r\n </svg>\r\n );\r\n });\r\n\r\n IconComponent.displayName = options?.displayName ?? 'LifeIcon';\r\n return IconComponent;\r\n}\r\n"],"names":["jsx","forwardRef","jsxs"],"mappings":";;;AAUO,MAAM,eAA4E;AAAA,EACvF,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AACX;AAGO,SAAS,iBAAiB,WAA+C;AAC9E,UAAQ,WAAA;AAAA,IACN,KAAK;AACH,aACEA,+BAAC,aAAQ,eAAc,WAAU,QAAO,WAAU,KAAI,QAAO,aAAY,aAAA,CAAa;AAAA,IAE1F,KAAK;AACH,aACEA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACEA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACEA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,MAAK;AAAA,UACL,IAAG;AAAA,UACH,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACEA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aAAOA,+BAAC,aAAQ,eAAc,WAAU,QAAO,SAAQ,KAAI,MAAK,aAAY,aAAA,CAAa;AAAA,IAC3F,KAAK;AACH,aACEA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACEA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACEA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB;AACE,aAAO;AAAA,EAAA;AAEb;AAGO,SAAS,eACd,eACA,SACA;AACA,QAAM,gBAAgBC,MAAAA,WAAyC,CAAC,OAAO,QAAQ;AAC7E,UAAM;AAAA,MACJ,OAAO,aAAa;AAAA,MACpB,QAAQ,aAAa;AAAA,MACrB;AAAA,MACA,UAAU,aAAa;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,GAAG;AAAA,IAAA,IACD;AAEJ,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,OAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAQ;AAAA,QACR,MAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,MAAM,YAAY,QAAQ;AAAA,QACzB,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA,aAAaF,2BAAAA,IAAC,KAAA,EAAG,UAAA,iBAAiB,SAAS,GAAE;AAAA,UAC7C,cAAc,EAAE,MAAM,OAAO,aAAa,SAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAG1D,CAAC;AAED,gBAAc,eAAc,mCAAS,gBAAe;AACpD,SAAO;AACT;;"}
@@ -0,0 +1,135 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ const iconDefaults = {
4
+ size: 24,
5
+ color: "currentColor",
6
+ variant: "filled"
7
+ };
8
+ function getLifeAnimation(animation) {
9
+ switch (animation) {
10
+ case "pulse":
11
+ return /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "1;0.5;1", dur: "1.5s", repeatCount: "indefinite" });
12
+ case "grow":
13
+ return /* @__PURE__ */ jsx(
14
+ "animateTransform",
15
+ {
16
+ attributeName: "transform",
17
+ type: "scale",
18
+ values: "1;1.1;1",
19
+ dur: "0.6s",
20
+ repeatCount: "indefinite"
21
+ }
22
+ );
23
+ case "shake":
24
+ return /* @__PURE__ */ jsx(
25
+ "animateTransform",
26
+ {
27
+ attributeName: "transform",
28
+ type: "rotate",
29
+ values: "-5 12 12;5 12 12;-5 12 12",
30
+ dur: "0.3s",
31
+ repeatCount: "indefinite"
32
+ }
33
+ );
34
+ case "spin":
35
+ return /* @__PURE__ */ jsx(
36
+ "animateTransform",
37
+ {
38
+ attributeName: "transform",
39
+ type: "rotate",
40
+ from: "0 12 12",
41
+ to: "360 12 12",
42
+ dur: "1s",
43
+ repeatCount: "indefinite"
44
+ }
45
+ );
46
+ case "bounce":
47
+ return /* @__PURE__ */ jsx(
48
+ "animateTransform",
49
+ {
50
+ attributeName: "transform",
51
+ type: "translate",
52
+ values: "0,0;0,-3;0,0",
53
+ dur: "0.5s",
54
+ repeatCount: "indefinite"
55
+ }
56
+ );
57
+ case "fade":
58
+ return /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0;1;0", dur: "2s", repeatCount: "indefinite" });
59
+ case "flip":
60
+ return /* @__PURE__ */ jsx(
61
+ "animateTransform",
62
+ {
63
+ attributeName: "transform",
64
+ type: "scale",
65
+ values: "1,1;-1,1;1,1",
66
+ dur: "1s",
67
+ repeatCount: "indefinite"
68
+ }
69
+ );
70
+ case "slide":
71
+ return /* @__PURE__ */ jsx(
72
+ "animateTransform",
73
+ {
74
+ attributeName: "transform",
75
+ type: "translate",
76
+ values: "-3,0;3,0;-3,0",
77
+ dur: "1s",
78
+ repeatCount: "indefinite"
79
+ }
80
+ );
81
+ case "glow":
82
+ return /* @__PURE__ */ jsx(
83
+ "animate",
84
+ {
85
+ attributeName: "filter",
86
+ values: "drop-shadow(0 0 0px currentColor);drop-shadow(0 0 4px currentColor);drop-shadow(0 0 0px currentColor)",
87
+ dur: "1.5s",
88
+ repeatCount: "indefinite"
89
+ }
90
+ );
91
+ default:
92
+ return null;
93
+ }
94
+ }
95
+ function createLifeIcon(renderContent, options) {
96
+ const IconComponent = forwardRef((props, ref) => {
97
+ const {
98
+ size = iconDefaults.size,
99
+ color = iconDefaults.color,
100
+ accentColor,
101
+ variant = iconDefaults.variant,
102
+ animation,
103
+ className,
104
+ style,
105
+ "aria-label": ariaLabel,
106
+ ...rest
107
+ } = props;
108
+ return /* @__PURE__ */ jsxs(
109
+ "svg",
110
+ {
111
+ ref,
112
+ xmlns: "http://www.w3.org/2000/svg",
113
+ width: size,
114
+ height: size,
115
+ viewBox: "0 0 24 24",
116
+ fill: "none",
117
+ className,
118
+ style,
119
+ "aria-label": ariaLabel,
120
+ role: ariaLabel ? "img" : "presentation",
121
+ ...rest,
122
+ children: [
123
+ animation && /* @__PURE__ */ jsx("g", { children: getLifeAnimation(animation) }),
124
+ renderContent({ size, color, accentColor, variant })
125
+ ]
126
+ }
127
+ );
128
+ });
129
+ IconComponent.displayName = (options == null ? void 0 : options.displayName) ?? "LifeIcon";
130
+ return IconComponent;
131
+ }
132
+ export {
133
+ createLifeIcon as c
134
+ };
135
+ //# sourceMappingURL=createLifeIcon-BjwgNM6z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLifeIcon-BjwgNM6z.js","sources":["../src/createLifeIcon.tsx"],"sourcesContent":["/**\r\n * @file createLifeIcon.tsx\r\n * @description Factory function for creating animated life icons\r\n */\r\n\r\nimport React, { forwardRef } from 'react';\r\n\r\nimport type { LifeIconProps, LifeIconAnimation } from './types';\r\n\r\n/** Default icon props */\r\nexport const iconDefaults: Required<Pick<LifeIconProps, 'size' | 'color' | 'variant'>> = {\r\n size: 24,\r\n color: 'currentColor',\r\n variant: 'filled',\r\n};\r\n\r\n/** Get SMIL animation element for the specified animation type */\r\nexport function getLifeAnimation(animation: LifeIconAnimation): React.ReactNode {\r\n switch (animation) {\r\n case 'pulse':\r\n return (\r\n <animate attributeName=\"opacity\" values=\"1;0.5;1\" dur=\"1.5s\" repeatCount=\"indefinite\" />\r\n );\r\n case 'grow':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"scale\"\r\n values=\"1;1.1;1\"\r\n dur=\"0.6s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'shake':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n values=\"-5 12 12;5 12 12;-5 12 12\"\r\n dur=\"0.3s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'spin':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 12 12\"\r\n to=\"360 12 12\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'bounce':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0,0;0,-3;0,0\"\r\n dur=\"0.5s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'fade':\r\n return <animate attributeName=\"opacity\" values=\"0;1;0\" dur=\"2s\" repeatCount=\"indefinite\" />;\r\n case 'flip':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"scale\"\r\n values=\"1,1;-1,1;1,1\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'slide':\r\n return (\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"-3,0;3,0;-3,0\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n case 'glow':\r\n return (\r\n <animate\r\n attributeName=\"filter\"\r\n values=\"drop-shadow(0 0 0px currentColor);drop-shadow(0 0 4px currentColor);drop-shadow(0 0 0px currentColor)\"\r\n dur=\"1.5s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n );\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\n/** Factory function for creating life icons */\r\nexport function createLifeIcon(\r\n renderContent: (props: LifeIconProps) => React.ReactNode,\r\n options?: { displayName?: string },\r\n) {\r\n const IconComponent = forwardRef<SVGSVGElement, LifeIconProps>((props, ref) => {\r\n const {\r\n size = iconDefaults.size,\r\n color = iconDefaults.color,\r\n accentColor,\r\n variant = iconDefaults.variant,\r\n animation,\r\n className,\r\n style,\r\n 'aria-label': ariaLabel,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n <svg\r\n ref={ref}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n className={className}\r\n style={style}\r\n aria-label={ariaLabel}\r\n role={ariaLabel ? 'img' : 'presentation'}\r\n {...rest}\r\n >\r\n {animation && <g>{getLifeAnimation(animation)}</g>}\r\n {renderContent({ size, color, accentColor, variant })}\r\n </svg>\r\n );\r\n });\r\n\r\n IconComponent.displayName = options?.displayName ?? 'LifeIcon';\r\n return IconComponent;\r\n}\r\n"],"names":[],"mappings":";;AAUO,MAAM,eAA4E;AAAA,EACvF,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AACX;AAGO,SAAS,iBAAiB,WAA+C;AAC9E,UAAQ,WAAA;AAAA,IACN,KAAK;AACH,aACE,oBAAC,aAAQ,eAAc,WAAU,QAAO,WAAU,KAAI,QAAO,aAAY,aAAA,CAAa;AAAA,IAE1F,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,MAAK;AAAA,UACL,IAAG;AAAA,UACH,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aAAO,oBAAC,aAAQ,eAAc,WAAU,QAAO,SAAQ,KAAI,MAAK,aAAY,aAAA,CAAa;AAAA,IAC3F,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,MAAK;AAAA,UACL,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AACH,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB;AACE,aAAO;AAAA,EAAA;AAEb;AAGO,SAAS,eACd,eACA,SACA;AACA,QAAM,gBAAgB,WAAyC,CAAC,OAAO,QAAQ;AAC7E,UAAM;AAAA,MACJ,OAAO,aAAa;AAAA,MACpB,QAAQ,aAAa;AAAA,MACrB;AAAA,MACA,UAAU,aAAa;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,GAAG;AAAA,IAAA,IACD;AAEJ,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,OAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAQ;AAAA,QACR,MAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,MAAM,YAAY,QAAQ;AAAA,QACzB,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA,aAAa,oBAAC,KAAA,EAAG,UAAA,iBAAiB,SAAS,GAAE;AAAA,UAC7C,cAAc,EAAE,MAAM,OAAO,aAAa,SAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAG1D,CAAC;AAED,gBAAc,eAAc,mCAAS,gBAAe;AACpD,SAAO;AACT;"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { LifeIconProps, LifeIconAnimation } from './types';
3
+ /** Default icon props */
4
+ export declare const iconDefaults: Required<Pick<LifeIconProps, 'size' | 'color' | 'variant'>>;
5
+ /** Get SMIL animation element for the specified animation type */
6
+ export declare function getLifeAnimation(animation: LifeIconAnimation): React.ReactNode;
7
+ /** Factory function for creating life icons */
8
+ export declare function createLifeIcon(renderContent: (props: LifeIconProps) => React.ReactNode, options?: {
9
+ displayName?: string;
10
+ }): React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
11
+ //# sourceMappingURL=createLifeIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLifeIcon.d.ts","sourceRoot":"","sources":["../src/createLifeIcon.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEhE,yBAAyB;AACzB,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAIpF,CAAC;AAEF,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAiF9E;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAC5B,aAAa,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,EACxD,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,uFAqCnC"}
@@ -0,0 +1,53 @@
1
+ import { default as React } from 'react';
2
+ import { LifeIconProps } from './types';
3
+ export declare const FatherIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
4
+ export declare const MotherIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
5
+ export declare const ParentsIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
6
+ export declare const BabyIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
7
+ export declare const ToddlerIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
8
+ export declare const ChildIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
9
+ export declare const TeenagerIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
10
+ export declare const SiblingsIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
11
+ export declare const TwinsIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
12
+ export declare const FamilyIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
13
+ export declare const GrandparentsIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
14
+ export declare const FamilyTreeIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
15
+ export declare const DogIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
16
+ export declare const CatIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
17
+ export declare const BirdIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
18
+ export declare const FishIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
19
+ export declare const HamsterIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
20
+ export declare const RabbitIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
21
+ export declare const PetBowlIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
22
+ export declare const PetCollarIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
23
+ export declare const PetHouseIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
24
+ export declare const LeashIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
25
+ export declare const BirthdayIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
26
+ export declare const WeddingIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
27
+ export declare const AnniversaryIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
28
+ export declare const GraduationIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
29
+ export declare const PartyIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
30
+ export declare const BalloonIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
31
+ export declare const ConfettiIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
32
+ export declare const GiftIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
33
+ export declare const GiftBoxIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
34
+ export declare const GiftCardIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
35
+ export declare const WrappingPaperIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
36
+ export declare const RibbonIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
37
+ export declare const BroomIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
38
+ export declare const MopIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
39
+ export declare const VacuumIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
40
+ export declare const LaundryIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
41
+ export declare const IronIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
42
+ export declare const DishesIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
43
+ export declare const TrashIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
44
+ export declare const GroceryIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
45
+ export declare const StrollerIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
46
+ export declare const CribIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
47
+ export declare const BottleIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
48
+ export declare const PacifierIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
49
+ export declare const DiaperIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
50
+ export declare const ToyIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
51
+ export declare const BlocksIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
52
+ export declare const RattleIcon: React.ForwardRefExoticComponent<LifeIconProps & React.RefAttributes<SVGSVGElement>>;
53
+ //# sourceMappingURL=family.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"family.d.ts","sourceRoot":"","sources":["../src/family.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,eAAO,MAAM,UAAU,qFAqBtB,CAAC;AAEF,eAAO,MAAM,UAAU,qFAqBtB,CAAC;AAEF,eAAO,MAAM,WAAW,qFA4BvB,CAAC;AAGF,eAAO,MAAM,QAAQ,qFAuBpB,CAAC;AAEF,eAAO,MAAM,WAAW,qFAqBvB,CAAC;AAEF,eAAO,MAAM,SAAS,qFA8BrB,CAAC;AAEF,eAAO,MAAM,YAAY,qFA8BxB,CAAC;AAEF,eAAO,MAAM,YAAY,qFA6BxB,CAAC;AAEF,eAAO,MAAM,SAAS,qFA6BrB,CAAC;AAGF,eAAO,MAAM,UAAU,qFAgCtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,qFA6B5B,CAAC;AAEF,eAAO,MAAM,cAAc,qFA4D1B,CAAC;AAGF,eAAO,MAAM,OAAO,qFA2BnB,CAAC;AAEF,eAAO,MAAM,OAAO,qFAiCnB,CAAC;AAEF,eAAO,MAAM,QAAQ,qFAmBpB,CAAC;AAEF,eAAO,MAAM,QAAQ,qFAmBpB,CAAC;AAEF,eAAO,MAAM,WAAW,qFAwCvB,CAAC;AAEF,eAAO,MAAM,UAAU,qFAuBtB,CAAC;AAEF,eAAO,MAAM,WAAW,qFAsBvB,CAAC;AAEF,eAAO,MAAM,aAAa,qFA+BzB,CAAC;AAEF,eAAO,MAAM,YAAY,qFA0BxB,CAAC;AAEF,eAAO,MAAM,SAAS,qFA6BrB,CAAC;AAGF,eAAO,MAAM,YAAY,qFAoBxB,CAAC;AAEF,eAAO,MAAM,WAAW,qFAkCvB,CAAC;AAEF,eAAO,MAAM,eAAe,qFAuB3B,CAAC;AAEF,eAAO,MAAM,cAAc,qFAoB1B,CAAC;AAEF,eAAO,MAAM,SAAS,qFA6BrB,CAAC;AAEF,eAAO,MAAM,WAAW,qFA6BvB,CAAC;AAEF,eAAO,MAAM,YAAY,qFAuCxB,CAAC;AAGF,eAAO,MAAM,QAAQ,qFAqCpB,CAAC;AAEF,eAAO,MAAM,WAAW,qFA2BvB,CAAC;AAEF,eAAO,MAAM,YAAY,qFAwBxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,qFAyB7B,CAAC;AAEF,eAAO,MAAM,UAAU,qFAmBtB,CAAC;AAGF,eAAO,MAAM,SAAS,qFAkBrB,CAAC;AAEF,eAAO,MAAM,OAAO,qFAuBnB,CAAC;AAEF,eAAO,MAAM,UAAU,qFA0BtB,CAAC;AAEF,eAAO,MAAM,WAAW,qFAgCvB,CAAC;AAEF,eAAO,MAAM,QAAQ,qFAwBpB,CAAC;AAEF,eAAO,MAAM,UAAU,qFAkCtB,CAAC;AAEF,eAAO,MAAM,SAAS,qFAyBrB,CAAC;AAEF,eAAO,MAAM,WAAW,qFA8BvB,CAAC;AAGF,eAAO,MAAM,YAAY,qFA6BxB,CAAC;AAEF,eAAO,MAAM,QAAQ,qFAuBpB,CAAC;AAEF,eAAO,MAAM,UAAU,qFAuBtB,CAAC;AAEF,eAAO,MAAM,YAAY,qFA6BxB,CAAC;AAEF,eAAO,MAAM,UAAU,qFA6BtB,CAAC;AAEF,eAAO,MAAM,OAAO,qFA8BnB,CAAC;AAEF,eAAO,MAAM,UAAU,qFAoCtB,CAAC;AAEF,eAAO,MAAM,UAAU,qFAyBtB,CAAC"}