@jenesei-software/jenesei-kit-react 1.3.15 → 1.3.16

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 (216) hide show
  1. package/build/area-Bopd6mWj.cjs +2 -0
  2. package/build/area-Bopd6mWj.cjs.map +1 -0
  3. package/build/{area-DEwj0-O3.js → area-Cvp3eBBo.js} +4 -4
  4. package/build/area-Cvp3eBBo.js.map +1 -0
  5. package/build/{area-DphBWq86.cjs → area-DqLK4RX5.cjs} +4 -4
  6. package/build/{area-DphBWq86.cjs.map → area-DqLK4RX5.cjs.map} +1 -1
  7. package/build/area-preview.cjs.js +1 -1
  8. package/build/area-preview.es.js +1 -1
  9. package/build/area-skeleton.cjs.js +1 -1
  10. package/build/build-info.txt +3 -3
  11. package/build/{component-DkEqMT7w.cjs → component-5o60aes-.cjs} +2 -2
  12. package/build/{component-DkEqMT7w.cjs.map → component-5o60aes-.cjs.map} +1 -1
  13. package/build/{component-CLqcB5mM.cjs → component-6hRanOkU.cjs} +2 -2
  14. package/build/{component-CLqcB5mM.cjs.map → component-6hRanOkU.cjs.map} +1 -1
  15. package/build/{component-CPzlyKwR.js → component-B80It4vM.js} +3 -3
  16. package/build/{component-CPzlyKwR.js.map → component-B80It4vM.js.map} +1 -1
  17. package/build/component-BfppCwz9.cjs +88 -0
  18. package/build/component-BfppCwz9.cjs.map +1 -0
  19. package/build/{component--jGdo2yq.cjs → component-Bj7sLW9s.cjs} +2 -2
  20. package/build/{component--jGdo2yq.cjs.map → component-Bj7sLW9s.cjs.map} +1 -1
  21. package/build/{component-BkYIZFlr.cjs → component-BxetIWe6.cjs} +6 -6
  22. package/build/{component-BkYIZFlr.cjs.map → component-BxetIWe6.cjs.map} +1 -1
  23. package/build/{component-DaXKDHnc.js → component-CKBpm4U4.js} +3 -3
  24. package/build/{component-DaXKDHnc.js.map → component-CKBpm4U4.js.map} +1 -1
  25. package/build/{component-CFKFLOAw.js → component-ClnOIQaN.js} +2 -2
  26. package/build/{component-CFKFLOAw.js.map → component-ClnOIQaN.js.map} +1 -1
  27. package/build/component-accordion.cjs.js +1 -1
  28. package/build/component-accordion.d.ts +5 -19
  29. package/build/component-accordion.es.js +1 -1
  30. package/build/{component-B9dFCQcm.cjs → component-b4tMFkpE.cjs} +2 -2
  31. package/build/{component-B9dFCQcm.cjs.map → component-b4tMFkpE.cjs.map} +1 -1
  32. package/build/component-button-group.cjs.js +1 -1
  33. package/build/component-button-group.d.ts +23 -186
  34. package/build/component-button-group.es.js +1 -1
  35. package/build/component-button.cjs.js +1 -1
  36. package/build/component-button.d.ts +26 -206
  37. package/build/component-button.es.js +4 -6
  38. package/build/component-checkbox-group.cjs.js +1 -1
  39. package/build/component-checkbox-group.d.ts +26 -170
  40. package/build/component-checkbox-group.es.js +1 -1
  41. package/build/component-checkbox.cjs.js +1 -1
  42. package/build/component-checkbox.d.ts +26 -193
  43. package/build/component-checkbox.es.js +2 -3
  44. package/build/component-date-picker.cjs.js +1 -1
  45. package/build/component-date-picker.d.ts +23 -186
  46. package/build/component-date-picker.es.js +1 -1
  47. package/build/{component-BFOHa1GY.js → component-eqTj4VVc.js} +2 -2
  48. package/build/{component-BFOHa1GY.js.map → component-eqTj4VVc.js.map} +1 -1
  49. package/build/component-icon.cjs.js +1 -1
  50. package/build/component-icon.d.ts +45 -166
  51. package/build/component-icon.es.js +5 -9
  52. package/build/component-icon.es.js.map +1 -1
  53. package/build/component-image-button.cjs.js +1 -1
  54. package/build/component-image-button.d.ts +23 -186
  55. package/build/component-image-button.es.js +1 -1
  56. package/build/component-image-select.cjs.js +1 -1
  57. package/build/component-image-select.d.ts +23 -186
  58. package/build/component-image-select.es.js +1 -1
  59. package/build/component-image-slider.cjs.js +1 -1
  60. package/build/component-image-slider.es.js +1 -1
  61. package/build/component-image.cjs.js +1 -1
  62. package/build/component-input-otp.cjs.js +1 -1
  63. package/build/component-input-otp.es.js +1 -1
  64. package/build/component-input.cjs.js +1 -1
  65. package/build/component-input.d.ts +1 -1
  66. package/build/component-input.es.js +2 -2
  67. package/build/{component-CeuA5Ry0.js → component-jPLOz52P.js} +51 -126
  68. package/build/component-jPLOz52P.js.map +1 -0
  69. package/build/component-map.cjs.js +1 -1
  70. package/build/component-map.es.js +1 -1
  71. package/build/component-pagination.cjs.js +1 -1
  72. package/build/component-pagination.d.ts +23 -186
  73. package/build/component-pagination.es.js +1 -1
  74. package/build/component-range.cjs.js +1 -1
  75. package/build/component-range.es.js +1 -1
  76. package/build/component-ripple.cjs.js +1 -1
  77. package/build/component-select.cjs.js +1 -1
  78. package/build/component-select.d.ts +2 -17
  79. package/build/component-select.es.js +1 -1
  80. package/build/component-textarea.cjs.js +1 -1
  81. package/build/component-textarea.es.js +1 -1
  82. package/build/component-toggle.cjs.js +1 -1
  83. package/build/component-toggle.es.js +1 -1
  84. package/build/component-tooltip.cjs.js +1 -1
  85. package/build/component-tooltip.es.js +1 -1
  86. package/build/component-typography.cjs.js +1 -1
  87. package/build/component-typography.es.js +1 -1
  88. package/build/{component.components-JtwTIPAB.cjs → component.components-BZX00SGG.cjs} +2 -2
  89. package/build/{component.components-JtwTIPAB.cjs.map → component.components-BZX00SGG.cjs.map} +1 -1
  90. package/build/{component.components-B2-Gqe0K.js → component.components-C9TkSqTp.js} +5 -5
  91. package/build/{component.components-B2-Gqe0K.js.map → component.components-C9TkSqTp.js.map} +1 -1
  92. package/build/{component.constants-DxcsPL8D.cjs → component.constants-B-ZMDpFv.cjs} +2 -2
  93. package/build/{component.constants-DxcsPL8D.cjs.map → component.constants-B-ZMDpFv.cjs.map} +1 -1
  94. package/build/{component.constants-CpnBclql.js → component.constants-C8li5_tq.js} +2 -2
  95. package/build/{component.constants-CpnBclql.js.map → component.constants-C8li5_tq.js.map} +1 -1
  96. package/build/{component.constants-Cwl6tQFq.js → component.constants-CnMky3Ym.js} +8 -8
  97. package/build/component.constants-CnMky3Ym.js.map +1 -0
  98. package/build/component.constants-Dg6JcWmd.cjs +22 -0
  99. package/build/component.constants-Dg6JcWmd.cjs.map +1 -0
  100. package/build/{component.styles-Dz33wmri.js → component.styles-0apMzB81.js} +9 -31
  101. package/build/component.styles-0apMzB81.js.map +1 -0
  102. package/build/{component.styles-BDKsgd6y.js → component.styles-AEJ_tw7Y.js} +5 -5
  103. package/build/{component.styles-BDKsgd6y.js.map → component.styles-AEJ_tw7Y.js.map} +1 -1
  104. package/build/{component.styles-BELwxHxh.cjs → component.styles-BO8xaSCQ.cjs} +2 -2
  105. package/build/{component.styles-BELwxHxh.cjs.map → component.styles-BO8xaSCQ.cjs.map} +1 -1
  106. package/build/component.styles-BVQQkX5c.cjs +57 -0
  107. package/build/component.styles-BVQQkX5c.cjs.map +1 -0
  108. package/build/component.styles-BYG4iVCR.cjs +10 -0
  109. package/build/{component.styles-CUCjXD3k.cjs.map → component.styles-BYG4iVCR.cjs.map} +1 -1
  110. package/build/{component.styles-B4ZjkzIF.cjs → component.styles-BZ9QLlOU.cjs} +2 -2
  111. package/build/{component.styles-B4ZjkzIF.cjs.map → component.styles-BZ9QLlOU.cjs.map} +1 -1
  112. package/build/component.styles-BviHtzJH.cjs +22 -0
  113. package/build/component.styles-BviHtzJH.cjs.map +1 -0
  114. package/build/{component.styles-ZU_GyVub.cjs → component.styles-C8ONgWei.cjs} +2 -2
  115. package/build/{component.styles-ZU_GyVub.cjs.map → component.styles-C8ONgWei.cjs.map} +1 -1
  116. package/build/{component.styles-CJC0h3Ed.js → component.styles-CHqowxsZ.js} +5 -5
  117. package/build/component.styles-CHqowxsZ.js.map +1 -0
  118. package/build/component.styles-CXyyc0xg.cjs +32 -0
  119. package/build/{component.styles-Py-IeQ2q.cjs.map → component.styles-CXyyc0xg.cjs.map} +1 -1
  120. package/build/component.styles-CtZeOnGH.js +120 -0
  121. package/build/component.styles-CtZeOnGH.js.map +1 -0
  122. package/build/{component.styles-B9jJFDUk.js → component.styles-CwTYpBx_.js} +6 -6
  123. package/build/{component.styles-B9jJFDUk.js.map → component.styles-CwTYpBx_.js.map} +1 -1
  124. package/build/{component.styles-CEDSDKXy.cjs → component.styles-CxlbZwr4.cjs} +2 -2
  125. package/build/{component.styles-CEDSDKXy.cjs.map → component.styles-CxlbZwr4.cjs.map} +1 -1
  126. package/build/{component.styles-COwP0J6t.cjs → component.styles-CyCy2ymw.cjs} +2 -2
  127. package/build/{component.styles-COwP0J6t.cjs.map → component.styles-CyCy2ymw.cjs.map} +1 -1
  128. package/build/{component.styles-B0FFHGeN.js → component.styles-DWDGLfbF.js} +3 -3
  129. package/build/{component.styles-B0FFHGeN.js.map → component.styles-DWDGLfbF.js.map} +1 -1
  130. package/build/{component.styles-BbwS_Ekx.js → component.styles-DqJURuJl.js} +3 -3
  131. package/build/{component.styles-BbwS_Ekx.js.map → component.styles-DqJURuJl.js.map} +1 -1
  132. package/build/{component.styles-CsB9986a.cjs → component.styles-FMHm5NHm.cjs} +2 -2
  133. package/build/{component.styles-CsB9986a.cjs.map → component.styles-FMHm5NHm.cjs.map} +1 -1
  134. package/build/{component.styles-BeRVOt5T.cjs → component.styles-Hx-MJSWX.cjs} +2 -2
  135. package/build/{component.styles-BeRVOt5T.cjs.map → component.styles-Hx-MJSWX.cjs.map} +1 -1
  136. package/build/{component.styles-BGYbrzvh.js → component.styles-KBaixm0o.js} +2 -2
  137. package/build/{component.styles-BGYbrzvh.js.map → component.styles-KBaixm0o.js.map} +1 -1
  138. package/build/{component.styles-Czdj4SAF.js → component.styles-SZTM0cRW.js} +7 -7
  139. package/build/{component.styles-Czdj4SAF.js.map → component.styles-SZTM0cRW.js.map} +1 -1
  140. package/build/{component.styles-gZHy-64x.cjs → component.styles-_keFf_Qj.cjs} +2 -2
  141. package/build/{component.styles-gZHy-64x.cjs.map → component.styles-_keFf_Qj.cjs.map} +1 -1
  142. package/build/{component.styles-VrNFgg1_.js → component.styles-cMafDDpP.js} +3 -3
  143. package/build/{component.styles-VrNFgg1_.js.map → component.styles-cMafDDpP.js.map} +1 -1
  144. package/build/{component.styles-CxPmtiIy.js → component.styles-euSUJAiA.js} +3 -3
  145. package/build/{component.styles-CxPmtiIy.js.map → component.styles-euSUJAiA.js.map} +1 -1
  146. package/build/{component.types-B2YOqKzt.js → component.types-BTJPUAzF.js} +9 -8
  147. package/build/component.types-BTJPUAzF.js.map +1 -0
  148. package/build/{component.types-DaiIANRt.cjs → component.types-lbEwteRa.cjs} +6 -6
  149. package/build/component.types-lbEwteRa.cjs.map +1 -0
  150. package/build/context-app.cjs.js +1 -1
  151. package/build/context-app.es.js +1 -1
  152. package/build/context-sonner.cjs.js +1 -1
  153. package/build/context-sonner.d.ts +71 -100
  154. package/build/context-sonner.es.js +1 -1
  155. package/build/{context.constants-C4xdihsb.js → context.constants-Cio0nsYA.js} +7 -6
  156. package/build/context.constants-Cio0nsYA.js.map +1 -0
  157. package/build/{context.constants-D0P7bVk9.cjs → context.constants-y9s5VGN2.cjs} +4 -3
  158. package/build/context.constants-y9s5VGN2.cjs.map +1 -0
  159. package/build/{context.hooks-Cmgo0uqV.js → context.hooks-BIIK-2HN.js} +3 -3
  160. package/build/{context.hooks-Cmgo0uqV.js.map → context.hooks-BIIK-2HN.js.map} +1 -1
  161. package/build/{context.hooks-XBiTuVyt.cjs → context.hooks-DNnrgKb0.cjs} +3 -3
  162. package/build/{context.hooks-XBiTuVyt.cjs.map → context.hooks-DNnrgKb0.cjs.map} +1 -1
  163. package/build/{floating-ui.react--v70Xky9.cjs → floating-ui.react-DZzvtpim.cjs} +2 -2
  164. package/build/{floating-ui.react--v70Xky9.cjs.map → floating-ui.react-DZzvtpim.cjs.map} +1 -1
  165. package/build/index.cjs.js +1 -1
  166. package/build/index.d.ts +93 -252
  167. package/build/index.es.js +140 -141
  168. package/build/index.es.js.map +1 -1
  169. package/build/{style-uVTmdhsH.js → style-BzxSHZDV.js} +2 -2
  170. package/build/{style-uVTmdhsH.js.map → style-BzxSHZDV.js.map} +1 -1
  171. package/build/{style-D3Lbn1EL.cjs → style-D8DUzG0C.cjs} +2 -2
  172. package/build/{style-D3Lbn1EL.cjs.map → style-D8DUzG0C.cjs.map} +1 -1
  173. package/build/style-error.cjs.js +1 -1
  174. package/build/style-error.es.js +1 -1
  175. package/build/style-theme.cjs.js +1 -1
  176. package/build/style-theme.d.ts +29 -0
  177. package/build/style-theme.es.js +8 -2
  178. package/build/{theme.global-BgERDJ4e.js → theme.global-BzunMIsv.js} +132 -2
  179. package/build/theme.global-BzunMIsv.js.map +1 -0
  180. package/build/theme.global-D67h5YeA.cjs +173 -0
  181. package/build/theme.global-D67h5YeA.cjs.map +1 -0
  182. package/build/{use-DWNgOa9w.cjs → use-BLwltPMc.cjs} +2 -2
  183. package/build/{use-DWNgOa9w.cjs.map → use-BLwltPMc.cjs.map} +1 -1
  184. package/build/{use-CuHzkWqv.js → use-CnGHh8iL.js} +5 -5
  185. package/build/{use-CuHzkWqv.js.map → use-CnGHh8iL.js.map} +1 -1
  186. package/package.json +1 -1
  187. package/build/area-CZkDIeGx.cjs +0 -2
  188. package/build/area-CZkDIeGx.cjs.map +0 -1
  189. package/build/area-DEwj0-O3.js.map +0 -1
  190. package/build/component-BLWcOf3A.cjs +0 -90
  191. package/build/component-BLWcOf3A.cjs.map +0 -1
  192. package/build/component-CeuA5Ry0.js.map +0 -1
  193. package/build/component.constants-Cwl6tQFq.js.map +0 -1
  194. package/build/component.constants-D15Kt1bW.cjs +0 -22
  195. package/build/component.constants-D15Kt1bW.cjs.map +0 -1
  196. package/build/component.styles-BKnUDWqO.cjs +0 -22
  197. package/build/component.styles-BKnUDWqO.cjs.map +0 -1
  198. package/build/component.styles-CJC0h3Ed.js.map +0 -1
  199. package/build/component.styles-CUCjXD3k.cjs +0 -10
  200. package/build/component.styles-DS0ofW1Y.js +0 -2193
  201. package/build/component.styles-DS0ofW1Y.js.map +0 -1
  202. package/build/component.styles-DhXp_cmE.cjs +0 -73
  203. package/build/component.styles-DhXp_cmE.cjs.map +0 -1
  204. package/build/component.styles-Dz33wmri.js.map +0 -1
  205. package/build/component.styles-Py-IeQ2q.cjs +0 -32
  206. package/build/component.types-B2YOqKzt.js.map +0 -1
  207. package/build/component.types-BBQ18Npa.js +0 -143
  208. package/build/component.types-BBQ18Npa.js.map +0 -1
  209. package/build/component.types-DaiIANRt.cjs.map +0 -1
  210. package/build/component.types-DraGq1j_.cjs +0 -2
  211. package/build/component.types-DraGq1j_.cjs.map +0 -1
  212. package/build/context.constants-C4xdihsb.js.map +0 -1
  213. package/build/context.constants-D0P7bVk9.cjs.map +0 -1
  214. package/build/theme.global-BgERDJ4e.js.map +0 -1
  215. package/build/theme.global-CcoD5bPP.cjs +0 -173
  216. package/build/theme.global-CcoD5bPP.cjs.map +0 -1
@@ -1,6 +1,9 @@
1
1
  import { AddDollarSign as AddDollarSign_2 } from '../..';
2
2
  import { Context } from 'react';
3
+ import { CSSObject } from 'styled-components';
3
4
  import { CSSProperties } from 'react';
5
+ import { default as default_2 } from 'react';
6
+ import { DefaultTheme } from 'styled-components';
4
7
  import { DetailedHTMLProps } from 'react';
5
8
  import { FastOmit } from 'styled-components';
6
9
  import { FC } from 'react';
@@ -20,6 +23,19 @@ declare type addFontProps = {
20
23
  font?: FontSizeStylesProps;
21
24
  };
22
25
 
26
+ declare type addIconProps = {
27
+ [T in keyof DefaultTheme['icon']['map']]: Omit<IconItemProps, 'size'> & {
28
+ type: T;
29
+ name: DefaultTheme['icon']['map'][T][number];
30
+ isHidden?: boolean;
31
+ size?: IconItemProps['size'];
32
+ };
33
+ }[keyof DefaultTheme['icon']['map']];
34
+
35
+ declare interface addSXProps {
36
+ sx?: SXProps;
37
+ }
38
+
23
39
  export declare const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'];
24
40
 
25
41
  export declare const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;
@@ -34,104 +50,6 @@ export declare const DEFAULT_PROVIDER_SONNER_Y = 100;
34
50
 
35
51
  export declare const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;
36
52
 
37
- declare enum ENUM_ICON_ID {
38
- Close = 0,
39
- Biometry = 1,
40
- QR = 2,
41
- Search = 3,
42
- Folder = 4,
43
- Wallet = 5,
44
- Graph = 6,
45
- Bookmark = 7,
46
- Category = 8,
47
- Home = 9,
48
- Notification = 10,
49
- Chat = 11,
50
- Heart = 12,
51
- Paper = 13,
52
- Plus = 14,
53
- Minus = 15,
54
- PaperPlus = 16,
55
- PaperNegative = 17,
56
- PaperFail = 18,
57
- PaperDownload = 19,
58
- PaperUpload = 20,
59
- Send = 21,
60
- PasswordMini = 22,
61
- Swap = 23,
62
- Work = 24,
63
- Arrow1 = 25,
64
- Arrow2 = 26,
65
- Arrow3 = 27,
66
- Arrow4 = 28,
67
- ArrowMini1 = 29,
68
- ArrowMini2 = 30,
69
- Scan = 31,
70
- Activity = 32,
71
- Calendar = 33,
72
- Message = 34,
73
- PlusMini = 35,
74
- ChartMini = 36,
75
- Game = 37,
76
- Bag1 = 38,
77
- Bag2 = 39,
78
- TicketStar = 40,
79
- MoreCircle = 41,
80
- MoreSquare = 42,
81
- Discount = 43,
82
- Buy = 44,
83
- Web = 45,
84
- InfoMini = 46,
85
- DangerMini = 47,
86
- DangerTriangle = 48,
87
- CloseMini = 49,
88
- TickMini = 50,
89
- Video = 51,
90
- Discovery = 52,
91
- Location = 53,
92
- Document = 54,
93
- Setting = 55,
94
- TimeSquare = 56,
95
- TimeCircle = 57,
96
- VolumeUp = 58,
97
- VolumeDown = 59,
98
- VolumeOff = 60,
99
- Star = 61,
100
- Select = 62,
101
- Ticket = 63,
102
- Camera = 64,
103
- Profile = 65,
104
- AddUser = 66,
105
- TwoUser = 67,
106
- ThreeUser = 68,
107
- Login = 69,
108
- Logout = 70,
109
- Download = 71,
110
- Upload = 72,
111
- Voice = 73,
112
- Voice2 = 74,
113
- Delete = 75,
114
- Edit = 76,
115
- EditSquare = 77,
116
- PlayMini = 78,
117
- ShieldDone = 79,
118
- ShieldFail = 80,
119
- Show = 81,
120
- Hide = 82,
121
- Filter = 83,
122
- Filter2 = 84,
123
- Image = 85,
124
- Image2 = 86,
125
- Call = 87,
126
- Calling = 88,
127
- CallMissed = 89,
128
- CallSilent = 90,
129
- Lock = 91,
130
- Unlock = 92,
131
- Resources = 93,
132
- Language = 94
133
- }
134
-
135
53
  declare type FontSizeStylesProps = {
136
54
  size?: TypographyDataProps['size'];
137
55
  weight?: TypographyDataProps['weight'];
@@ -139,7 +57,38 @@ declare type FontSizeStylesProps = {
139
57
  height?: TypographyDataProps['height'];
140
58
  };
141
59
 
60
+ declare type IconItemProps = {
61
+ [K in keyof DefaultTheme['icon']['map']]: {
62
+ type: K;
63
+ name: DefaultTheme['icon']['map'][K][number];
64
+ className?: string;
65
+ onClick?: (event: default_2.MouseEvent<SVGSVGElement>) => void;
66
+ size: IThemeSize | '100%';
67
+ color?: IThemePaletteKeys;
68
+ turn?: number;
69
+ order?: number;
70
+ tabIndex?: number;
71
+ } & addSXProps;
72
+ }[keyof DefaultTheme['icon']['map']];
73
+
142
74
  declare interface ITheme {
75
+ icon: {
76
+ map: {
77
+ id: typeof ThemeMapId;
78
+ checkbox: typeof ThemeMapCheckbox;
79
+ loading: typeof ThemeMapLoading;
80
+ realebail: typeof ThemeMapRealebail;
81
+ logo: typeof ThemeMapLogo;
82
+ bustmarket: typeof ThemeMapBustmarket;
83
+ };
84
+ getIconId: <T extends keyof ITheme['icon']['map']>(props: {
85
+ type: T;
86
+ name: ITheme['icon']['map'][T][number];
87
+ }) => string;
88
+ getSpriteUrl: (props: {
89
+ type: keyof ITheme['icon']['map'];
90
+ }) => string;
91
+ };
143
92
  states: {
144
93
  focus: string;
145
94
  danger: string;
@@ -364,6 +313,8 @@ declare type IThemeScreen = Record<IThemeDevice, {
364
313
  width: number;
365
314
  }>;
366
315
 
316
+ declare type IThemeSize = 'large' | 'largeMedium' | 'medium' | 'mediumSmall' | 'small';
317
+
367
318
  declare type IThemeTypographyHeading = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'h7' | 'h8' | 'h9';
368
319
 
369
320
  declare type IThemeTypographyWeight = 100 | 300 | 400 | 500 | 700 | 900;
@@ -389,7 +340,7 @@ declare type SonnerContentContentProps = SonnerContentDefaultProps & {
389
340
  declare type SonnerContentDefaultProps = {
390
341
  hidingMode?: 'clickOnSonner' | 'clickOnButton';
391
342
  hidingTime?: number;
392
- icon?: TIconIdNameString;
343
+ icon?: addIconProps;
393
344
  id?: string;
394
345
  genre?: keyof ITheme['colors']['sonner'];
395
346
  isLoading?: boolean;
@@ -455,7 +406,27 @@ export declare const SonnerLayout: IStyledComponentBase<"web", Substitute<Detail
455
406
 
456
407
  export declare type SonnerLayoutProps = Required<AddDollarSign<Pick<ProviderSonnerProps, 'position' | 'gap' | 'zIndex'>>>;
457
408
 
458
- declare type TIconIdNameString = keyof typeof ENUM_ICON_ID;
409
+ declare type SXProps = ({
410
+ default: CSSObject;
411
+ } & {
412
+ [K in IThemeDevice]?: CSSObject;
413
+ }) | ((theme: DefaultTheme) => {
414
+ default: CSSObject;
415
+ } & {
416
+ [K in IThemeDevice]?: CSSObject;
417
+ });
418
+
419
+ declare const ThemeMapBustmarket: readonly ["Card", "Delivery", "Heart", "Reviews", "Search", "Menu"];
420
+
421
+ declare const ThemeMapCheckbox: readonly ["Radio-true", "Radio-false", "Square-true", "Square-false", "Heart-true", "Heart-false", "Arrow"];
422
+
423
+ declare const ThemeMapId: readonly ["Close", "Biometry", "Qr", "Search", "Folder", "Wallet", "Graph", "Bookmark", "Browser", "Category", "Home", "Notification", "Chat", "Heart", "Paper", "Plus", "Minus", "PaperPlus", "PaperNegative", "PaperFail", "PaperDownload", "PaperUpload", "Send", "Password", "Swap", "Work", "Arrow1", "Arrow2", "Arrow3", "Arrow4", "ArrowMini1", "ArrowMini2", "Scan", "Activity", "Calendar", "Message", "PlusMini", "ChartMini", "Game", "Bag1", "Bag2", "TicketStar", "MoreCircle", "MoreSquare", "Discount", "Buy", "Web", "InfoMini", "DangerMini", "CloseMini", "TickMini", "Video", "Discovery", "Location", "Document", "Setting", "Time", "VolumeUp", "VolumeDown", "VolumeOff", "Star", "Select", "Ticket", "Camera", "Profile", "AddUser", "TwoUser", "ThreeUser", "Login", "Logout", "Download", "Upload", "Voice1", "Voice2", "Delete", "Edit", "PlayMini", "ShieldDone", "ShieldFail", "Show", "Hide", "Filter1", "Filter2", "Image", "Call", "Calling", "CallMissed", "CallSilent", "Lock", "Unlock", "Resources", "Language"];
424
+
425
+ declare const ThemeMapLoading: readonly ["Line", "Circle", "Blocks", "Balls"];
426
+
427
+ declare const ThemeMapLogo: readonly ["Jenesei", "BustMarket"];
428
+
429
+ declare const ThemeMapRealebail: readonly ["MapCluster", "HomeLikes", "HomeManagement", "UserSettings", "User"];
459
430
 
460
431
  declare type TypographyDataProps = TypographyDefaultProps & {
461
432
  size?: number;
@@ -1,4 +1,4 @@
1
- import { m, j, k, l, h, i, D, P, g, c, f, e, S, b, d, a, u } from "./context.constants-C4xdihsb.js";
1
+ import { m, j, k, l, h, i, D, P, g, c, f, e, S, b, d, a, u } from "./context.constants-Cio0nsYA.js";
2
2
  export {
3
3
  m as DEFAULT_PROVIDER_SONNER_BUTTON,
4
4
  j as DEFAULT_PROVIDER_SONNER_DURATION,
@@ -1,11 +1,11 @@
1
1
  import { createContext, memo, useMemo, useState, useCallback, useContext } from "react";
2
2
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
3
- import { c as Button } from "./component-CeuA5Ry0.js";
4
- import { I as Icon } from "./component.styles-DS0ofW1Y.js";
3
+ import { B as Button } from "./component-jPLOz52P.js";
4
+ import { I as Icon } from "./component.styles-CtZeOnGH.js";
5
5
  import { motion, AnimatePresence } from "framer-motion";
6
6
  import styled, { useTheme, css } from "styled-components";
7
7
  import { v4 } from "uuid";
8
- import { b as addTransition, a as addRemoveScrollbar } from "./style-RL73t3JD.js";
8
+ import { b as addTransition, c as addFont, a as addRemoveScrollbar } from "./style-RL73t3JD.js";
9
9
  const SonnerContext = createContext(null);
10
10
  const ProviderSonner = (props) => {
11
11
  var _a, _b, _c, _d, _e, _f;
@@ -140,7 +140,7 @@ const ProviderSonner = (props) => {
140
140
  const index = content.index;
141
141
  const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;
142
142
  const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;
143
- const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false;
143
+ const isLastViewIndex = memoVisibleToasts ? index === memoVisibleToasts - 1 : false;
144
144
  const localGenre = content.genre ?? memoDefaultGenre;
145
145
  const buttonGenre = theme.colors.sonner[localGenre].button.genre;
146
146
  const hidingMode = content.hidingMode ?? memoDefaultHidingMode;
@@ -207,7 +207,7 @@ const SonnerElement = (props) => {
207
207
  $genre: props.genre,
208
208
  onClick: () => props.hidingMode === "clickOnSonner" && props.handleOnClick(props.id, "clickOnSonner"),
209
209
  children: [
210
- (props.isLoading || props.icon) && /* @__PURE__ */ jsxRuntimeExports.jsx(SonnerIcon, { children: props.isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: "medium", type: "loading", name: "Line" }) : props.icon && /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { name: props.icon, type: "id", size: "medium" }) }),
210
+ (props.isLoading || props.icon) && /* @__PURE__ */ jsxRuntimeExports.jsx(SonnerIcon, { children: props.isLoading ? /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: "medium", type: "loading", name: "Line" }) : props.icon && /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { ...props.icon, size: props.icon.size ?? "medium" }) }),
211
211
  /* @__PURE__ */ jsxRuntimeExports.jsx(SonnerContent, { children: props.content ? props.content : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
212
212
  props.title && /* @__PURE__ */ jsxRuntimeExports.jsx(
213
213
  SonnerContentTitle,
@@ -357,6 +357,7 @@ const SonnerContentDescription = styled.div`
357
357
  display: flex;
358
358
  align-items: center;
359
359
  justify-content: flex-start;
360
+ ${addFont};
360
361
  `;
361
362
  const SonnerButtonWrapper = styled.div``;
362
363
  const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;
@@ -389,4 +390,4 @@ export {
389
390
  DEFAULT_PROVIDER_SONNER_BUTTON as m,
390
391
  useSonner as u
391
392
  };
392
- //# sourceMappingURL=context.constants-C4xdihsb.js.map
393
+ //# sourceMappingURL=context.constants-Cio0nsYA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.constants-Cio0nsYA.js","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.hooks.ts","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout,\n} from '.';\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null);\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = (props) => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts],\n );\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: SonnerContextProps['remove'] = useCallback(\n (id) => {\n setContentHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index,\n }));\n\n if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: SonnerContextProps['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id);\n },\n [remove],\n );\n const theme = useTheme();\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index === memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = theme.colors.sonner[localGenre].button.genre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon {...props.icon} size={props.icon.size ?? 'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && (\n <SonnerContentTitle\n $genre={props.genre}\n $font={{\n size: 14,\n weight: 700,\n }}\n >\n {props.title}\n </SonnerContentTitle>\n )}\n {props.description && (\n <SonnerContentDescription\n $font={{\n size: 12,\n weight: 400,\n }}\n $genre={props.genre}\n >\n {props.description}\n </SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { useContext } from 'react';\n\nimport { SonnerContext, SonnerContextProps } from '.';\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext);\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n","import { addFont, addRemoveScrollbar, addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport {\n SonnerContentDescriptionProps,\n SonnerContentTitleProps,\n SonnerElementWrapperProps,\n SonnerLayoutProps,\n} from '.';\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${(props) => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${(props) => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${(props) =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`;\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`;\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`;\nexport const SonnerIcon = styled.div`\n display: contents;\n`;\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n color:${(props) => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n ${addFont};\n`;\nexport const SonnerButtonWrapper = styled.div``;\n","import { ITheme } from '@local/theme';\n\nimport { ProviderSonnerProps } from '.';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n"],"names":["_a","uuidv4","promise","jsxs","jsx","Fragment"],"mappings":";;;;;;;;AA8BO,MAAM,gBAAgB,cAAyC,IAAI;AAEnE,MAAM,iBAA0C,CAAC,UAAU;;AAChE,QAAM,oBAA0D;AAAA,IAC9D,MAAM,MAAM;AAAA,IACZ,CAAC,MAAM,aAAa;AAAA,EAAA;AAEtB,QAAM,yBAAwE;AAAA,IAC5E,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,WAAW;AAAA,EAAA;AAE9B,QAAM,mBAA4D;AAAA,IAChE,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,KAAK;AAAA,EAAA;AAExB,QAAM,oBAA8D;AAAA,IAClE,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,MAAM;AAAA,EAAA;AAEzB,QAAM,wBAAsE;AAAA,IAC1E,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,UAAU;AAAA,EAAA;AAE7B,QAAM,wBAAsE;AAAA,IAC1E;;AAAM,eAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB,eAAc;AAAA;AAAA,IACpC,EAAC,oCAAO,YAAP,mBAAgB,UAAU;AAAA,EAAA;AAE7B,QAAM,mBAAmB;AAAA,IACvB;;AAAM,eAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB,UAAS;AAAA;AAAA,IAC/B,EAAC,oCAAO,YAAP,mBAAgB,KAAK;AAAA,EAAA;AAGxB,QAAM,QAAQ,QAAQ,MAAM,MAAM,SAAS,SAAS,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC;AAE5E,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAA+B,CAAA,CAAE;AAE7E,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,mBAAmB,YAAY,MAAM;AACzC,iBAAa,IAAI;AAAA,EAAA,GAChB,EAAE;AAEL,QAAM,mBAAmB,YAAY,MAAM;AACzC,iBAAa,KAAK;AAAA,EAAA,GACjB,EAAE;AAEL,QAAM,SAAuC;AAAA,IAC3C,CAAC,OAAO;AACN,wBAAkB,CAAC,SAAS;AAC1B,cAAM,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE;AAEvD,YAAI,CAAC,aAAc,QAAO;AAE1B,cAAM,gBAAgB,aAAa;AAEnC,cAAM,iBAAiB,KACpB,OAAO,CAAC,SAAS,KAAK,OAAO,EAAE,EAC/B,IAAI,CAAC,UAAU;AAAA,UACd,GAAG;AAAA,UACH,OAAO,KAAK,QAAQ,gBAAgB,KAAK,QAAQ,IAAI,KAAK;AAAA,QAAA,EAC1D;AAEJ,YAAI,eAAe,WAAW,EAAG,kBAAA;AAEjC,eAAO;AAAA,MAAA,CACR;AAAA,IAAA;AAAA,IAEH,CAAC,gBAAgB;AAAA,EAAA;AAGnB,QAAM,QAAqC;AAAA,IACzC,CAAC,YAAY;AACX,YAAM,KAAK,QAAQ,MAAMC,GAAA;AAEzB,YAAM,aAAa,QAAQ,cAAc;AAEzC,wBAAkB,CAAC,SAAS;AAC1B,cAAM,gBAAgB,KAAK,UAAU,CAAC,SAAS,KAAK,OAAO,EAAE;AAE7D,YAAI;AACJ,YAAI,kBAAkB,IAAI;AAExB,2BAAiB,CAAC,GAAG,IAAI;AACzB,yBAAe,aAAa,IAAI,EAAE,GAAG,SAAS,IAAI,OAAO,KAAK,aAAa,EAAE,MAAA;AAAA,QAAM,OAC9E;AAEL,2BAAiB,KAAK,IAAI,CAAC,UAAU;AAAA,YACnC,GAAG;AAAA,YACH,OAAO,KAAK,QAAQ;AAAA,UAAA,EACpB;AACF,gBAAM,aAAa,EAAE,GAAG,SAAS,IAAI,OAAO,EAAA;AAC5C,yBAAe,QAAQ,UAAU;AAAA,QAAA;AAGnC,eAAO;AAAA,MAAA,CACR;AAED,UAAI,eAAe,QAAW;AAC5B,mBAAW,MAAM;AACf,iBAAO,EAAE;AAAA,QAAA,GACR,UAAU;AAAA,MAAA;AAAA,IACf;AAAA,IAEF,CAAC,uBAAuB,MAAM;AAAA,EAAA;AAEhC,QAAM,UAAyC;AAAA,IAC7C,CACEC,UACA,aACA,eACG;AACH,YAAM,KAAKD,GAAA;AACX,YAAM,EAAE,GAAG,aAAa,IAAI,WAAW,MAAM;AAE7C,aAAOC,SACJ,KAAK,CAAC,WAAW;AAChB,cAAM,EAAE,GAAG,WAAW,QAAQ,MAAS,GAAG,IAAI;AAAA,MAAA,CAC/C,EACA,MAAM,CAAC,UAAU;AAChB,cAAM,EAAE,GAAG,WAAW,QAAW,KAAK,GAAG,IAAI;AAAA,MAAA,CAC9C;AAAA,IAAA;AAAA,IAEL,CAAC,KAAK;AAAA,EAAA;AAER,QAAM,gBAAgB;AAAA,IACpB,CAAC,OAAyC;AACxC,aAAO,EAAE;AAAA,IAAA;AAAA,IAEX,CAAC,MAAM;AAAA,EAAA;AAET,QAAM,QAAQ,SAAA;AACd,SACEC,uCAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,OAAO,SAAS,QAAQ,eAAA,GACvD,UAAA;AAAA,IAAAC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAM,UAAU;AAAA,QACzB,WAAW,MAAM;AAAA,QACjB,MAAM,MAAM;AAAA,QACZ,cAAc;AAAA,QACd,cAAc;AAAA,QAEd,UAAAA,kCAAAA,IAAC,iBAAA,EACE,UAAA,eAAe,IAAI,CAAC,YAAY;AAC/B,gBAAM,QAAQ,QAAQ;AACtB,gBAAM,iCAAiC,oBAAoB,QAAQ,oBAAoB;AACvF,gBAAM,0BAA0B,oBAAoB,QAAQ,oBAAoB,IAAI;AACpF,gBAAM,kBAAkB,oBAAoB,UAAU,oBAAoB,IAAI;AAC9E,gBAAM,aAAa,QAAQ,SAAS;AACpC,gBAAM,cAAc,MAAM,OAAO,OAAO,UAAU,EAAE,OAAO;AAC3D,gBAAM,aAAa,QAAQ,cAAc;AAEzC,gBAAM,eAAe,aAAa,UAAU,QAAQ,UAAU;AAC9D,gBAAM,aAAa,WAAW,UAAU,QAAQ,QAAQ;AACxD,gBAAM,mBAAmB,iBAAiB,UAAU,QAAQ,cAAc;AAC1E,iBACEA,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cAEA,IAAI,QAAQ;AAAA,cACZ,MAAM,QAAQ;AAAA,cACd,WAAW,QAAQ;AAAA,cACnB;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,OAAO;AAAA,cACP,SAAS;AAAA,cACT,OAAO,cAAc;AAAA,cACrB,aAAa,oBAAoB;AAAA,cACjC,QAAQ,QAAQ,UAAU,qBAAqB;AAAA,cAC/C;AAAA,YAAA;AAAA,YAbK,QAAQ;AAAA,UAAA;AAAA,QAcf,CAEH,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAED,MAAM;AAAA,EAAA,GACT;AAEJ;AAEA,MAAM,gBAAgB,CAAC,UAA8B;AACnD,SACEA,kCAAAA;AAAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MAEC,QAAM;AAAA,MACN,SAAS;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,QACP,GAAG,MAAM,kBACL,CAAC,MAAM,QACL,CAAC,4BACD,4BACF,CAAC,MAAM,QACL,4BACA,CAAC;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,GAAG;AAAA,QACH,SAAS,MAAM,0BAA0B,IAAI;AAAA,QAC7C,eAAe,MAAM,0BAA0B,SAAS;AAAA,QACxD,SAAS,MAAM,0BAA0B,SAAS;AAAA,QAClD,OAAO,CAAC,MAAM,YAAY,IAAI,MAAM,QAAQ,gCAAgC;AAAA,QAC5E,WAAW,MAAM,QACb,MAAM,aAAa,MAAM,UAAU,IACjC,QACA,IAAI,qCAAqC,OAC3C;AAAA,QACJ,cAAc,CAAC,MAAM,QACjB,MAAM,aAAa,MAAM,UAAU,IACjC,QACA,IAAI,qCAAqC,OAC3C;AAAA,MAAA;AAAA,MAEN,OAAO;AAAA,QACL,QAAQ,CAAC,MAAM;AAAA,MAAA;AAAA,MAEjB,aAAa,EAAE,SAAS,MAAM,0BAA0B,IAAI,EAAA;AAAA,MAC5D,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,QAAQ,4BAA4B,CAAC,0BAAA;AAAA,MACnE,YAAY,EAAE,MAAM,UAAU,UAAU,iCAAA;AAAA,MAExC,UAAAD,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,QAAQ,MAAM;AAAA,UACd,SAAS,MAAM,MAAM,eAAe,mBAAmB,MAAM,cAAc,MAAM,IAAI,eAAe;AAAA,UAElG,UAAA;AAAA,aAAA,MAAM,aAAa,MAAM,SACzBC,kCAAAA,IAAC,YAAA,EACE,UAAA,MAAM,YACLA,kCAAAA,IAAC,MAAA,EAAK,MAAK,UAAS,MAAK,WAAU,MAAK,OAAA,CAAO,IAE/C,MAAM,QAAQA,kCAAAA,IAAC,MAAA,EAAM,GAAG,MAAM,MAAM,MAAM,MAAM,KAAK,QAAQ,SAAA,CAAU,GAE3E;AAAA,kDAED,eAAA,EACE,UAAA,MAAM,UACL,MAAM,UAEND,kCAAAA,KAAAE,kBAAAA,UAAA,EACG,UAAA;AAAA,cAAA,MAAM,SACLD,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,QAAQ,MAAM;AAAA,kBACd,OAAO;AAAA,oBACL,MAAM;AAAA,oBACN,QAAQ;AAAA,kBAAA;AAAA,kBAGT,UAAA,MAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGV,MAAM,eACLA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,MAAM;AAAA,oBACN,QAAQ;AAAA,kBAAA;AAAA,kBAEV,QAAQ,MAAM;AAAA,kBAEb,UAAA,MAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,YACT,EAAA,CAEJ,EAAA,CAEJ;AAAA,YAEC,MAAM,UAAU,MAAM,OAAO,iDAC3B,qBAAA,EACC,UAAAA,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO,MAAM;AAAA,gBACb,MAAK;AAAA,gBACL,SAAS,MAAM,MAAM,eAAe,mBAAmB,MAAM,cAAc,MAAM,IAAI,eAAe;AAAA,gBAEnG,gBAAM,OAAO;AAAA,cAAA;AAAA,YAAA,EAChB,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,IA5FK,MAAM;AAAA,EAAA;AA+FjB;AACA,MAAM,wBAAwB,KAAK,aAAa;ACpTzC,MAAM,YAAY,MAA0B;AACjD,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iDAAiD;AAAA,EAAA;AAEnE,SAAO;AACT;ACCO,MAAM,eAAe,OAAO;AAAA;AAAA,aAEtB,CAAC,UAAU,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,SAK5B,CAAC,UAAU,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA,IAI1B,kBAAkB;AAAA,IAClB,CAAC,UACD,MAAM,cAAc,kBAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOA,MAAM,cAAc,gBAClB;AAAA;AAAA;AAAA;AAAA;AAAA,cAMA,MAAM,cAAc,iBAClB;AAAA;AAAA;AAAA;AAAA;AAAA,gBAMA,MAAM,cAAc,cAClB;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMA,MAAM,cAAc,aAClB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMA,MAAM,cAAc,eAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOA,KAAK;AAAA;AAGhB,MAAM,uBAAuB,OAAO;AAAA,gBAC3B,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,UAAU;AAAA,WAC1E,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,KAAK,KAAK;AAAA;AAAA;AAAA,kBAGtD,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAcxE,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,SAAS;AAAA;AAAA;AAAA,kBAGlE,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,cAAc;AAAA;AAAA,IAEvF,aAAa;AAAA;AAEV,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY7B,MAAM,aAAa,OAAO;AAAA;AAAA;AAG1B,MAAM,qBAAqB,OAAO;AAAA,YAC7B,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMnE,MAAM,2BAA2B,OAAO;AAAA,UACrC,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM1E,OAAO;AAAA;AAEJ,MAAM,sBAAsB,OAAO;AC5HnC,MAAM,kCAAkC;AACxC,MAAM,gCAAgC;AACtC,MAAM,4BAA4B;AAClC,MAAM,mCAAmC;AACzC,MAAM,gCAAkE;AACxE,MAAM,wCAAwC;AAC9C,MAAM,iCAA2E;AAAA,EACtF,SAAS;AAAA,EACT,SAAS,MAAM;AAAA,EAAA;AACjB;"}
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./component-BLWcOf3A.cjs"),i=require("./component.styles-BKnUDWqO.cjs"),o=require("framer-motion"),r=require("styled-components"),s=require("uuid"),l=require("./style-Df37KnoJ.cjs"),d=e.createContext(null),x=e.memo(e=>n.jsxRuntimeExports.jsx(o.motion.div,{layout:!0,initial:{opacity:0,scale:1,y:e.isLastViewIndex?e.isTop?j:-j:e.isTop?-j:j},animate:{y:0,opacity:e.isMoreThanLastViewIndex?0:1,pointerEvents:e.isMoreThanLastViewIndex?"none":"auto",display:e.isMoreThanLastViewIndex?"none":"flex",scale:e.isHovered?1:1-e.index*g,marginTop:e.isTop?e.isHovered||0===e.index?"0px":`-${R}px`:"0px",marginBottom:e.isTop||e.isHovered||0===e.index?"0px":`-${R}px`},style:{zIndex:-e.index},whileInView:{opacity:e.isMoreThanLastViewIndex?0:1},exit:{opacity:0,y:e.isTop?-j:j},transition:{type:"spring",duration:E},children:n.jsxRuntimeExports.jsxs(a,{$genre:e.genre,onClick:()=>"clickOnSonner"===e.hidingMode&&e.handleOnClick(e.id,"clickOnSonner"),children:[(e.isLoading||e.icon)&&n.jsxRuntimeExports.jsx(p,{children:e.isLoading?n.jsxRuntimeExports.jsx(i.Icon,{size:"medium",type:"loading",name:"Line"}):e.icon&&n.jsxRuntimeExports.jsx(i.Icon,{name:e.icon,type:"id",size:"medium"})}),n.jsxRuntimeExports.jsx(u,{children:e.content?e.content:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.title&&n.jsxRuntimeExports.jsx(m,{$genre:e.genre,$font:{size:14,weight:700},children:e.title}),e.description&&n.jsxRuntimeExports.jsx(f,{$font:{size:12,weight:400},$genre:e.genre,children:e.description})]})}),e.button&&e.button.content&&n.jsxRuntimeExports.jsx(v,{children:n.jsxRuntimeExports.jsx(t.Button,{genre:e.buttonGenre,size:"small",onClick:()=>"clickOnButton"===e.hidingMode&&e.handleOnClick(e.id,"clickOnButton"),children:e.button.content})})]})},e.id)),c=r.div`
1
+ "use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./component-BfppCwz9.cjs"),i=require("./component.styles-BviHtzJH.cjs"),o=require("framer-motion"),r=require("styled-components"),s=require("uuid"),l=require("./style-Df37KnoJ.cjs"),d=e.createContext(null),x=e.memo(e=>n.jsxRuntimeExports.jsx(o.motion.div,{layout:!0,initial:{opacity:0,scale:1,y:e.isLastViewIndex?e.isTop?j:-j:e.isTop?-j:j},animate:{y:0,opacity:e.isMoreThanLastViewIndex?0:1,pointerEvents:e.isMoreThanLastViewIndex?"none":"auto",display:e.isMoreThanLastViewIndex?"none":"flex",scale:e.isHovered?1:1-e.index*g,marginTop:e.isTop?e.isHovered||0===e.index?"0px":`-${R}px`:"0px",marginBottom:e.isTop||e.isHovered||0===e.index?"0px":`-${R}px`},style:{zIndex:-e.index},whileInView:{opacity:e.isMoreThanLastViewIndex?0:1},exit:{opacity:0,y:e.isTop?-j:j},transition:{type:"spring",duration:E},children:n.jsxRuntimeExports.jsxs(a,{$genre:e.genre,onClick:()=>"clickOnSonner"===e.hidingMode&&e.handleOnClick(e.id,"clickOnSonner"),children:[(e.isLoading||e.icon)&&n.jsxRuntimeExports.jsx(p,{children:e.isLoading?n.jsxRuntimeExports.jsx(i.Icon,{size:"medium",type:"loading",name:"Line"}):e.icon&&n.jsxRuntimeExports.jsx(i.Icon,{...e.icon,size:e.icon.size??"medium"})}),n.jsxRuntimeExports.jsx(u,{children:e.content?e.content:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.title&&n.jsxRuntimeExports.jsx(m,{$genre:e.genre,$font:{size:14,weight:700},children:e.title}),e.description&&n.jsxRuntimeExports.jsx(f,{$font:{size:12,weight:400},$genre:e.genre,children:e.description})]})}),e.button&&e.button.content&&n.jsxRuntimeExports.jsx(v,{children:n.jsxRuntimeExports.jsx(t.Button,{genre:e.buttonGenre,size:"small",onClick:()=>"clickOnButton"===e.hidingMode&&e.handleOnClick(e.id,"clickOnButton"),children:e.button.content})})]})},e.id)),c=r.div`
2
2
  position: fixed;
3
3
  z-index: ${e=>e.$zIndex};
4
4
  max-height: calc(100dvh - 20px);
@@ -94,5 +94,6 @@
94
94
  display: flex;
95
95
  align-items: center;
96
96
  justify-content: flex-start;
97
- `,v=r.div``,h=100,g=.04,j=100,E=.3,b="black",R=60,$={content:"Undo",onClick:()=>{}};exports.DEFAULT_PROVIDER_SONNER_BUTTON=$,exports.DEFAULT_PROVIDER_SONNER_DURATION=E,exports.DEFAULT_PROVIDER_SONNER_GENRE=b,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=R,exports.DEFAULT_PROVIDER_SONNER_SCALE=g,exports.DEFAULT_PROVIDER_SONNER_Y=j,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=h,exports.ProviderSonner=t=>{var i,l,a,u,p,m;const f=e.useMemo(()=>t.visibleToasts,[t.visibleToasts]),v=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.description},[null==(i=null==t?void 0:t.default)?void 0:i.description]),g=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.title},[null==(l=null==t?void 0:t.default)?void 0:l.title]),j=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.button},[null==(a=null==t?void 0:t.default)?void 0:a.button]),E=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.hidingTime},[null==(u=null==t?void 0:t.default)?void 0:u.hidingTime]),R=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.hidingMode)??"clickOnButton"},[null==(p=null==t?void 0:t.default)?void 0:p.hidingMode]),y=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.genre)??b},[null==(m=null==t?void 0:t.default)?void 0:m.genre]),T=e.useMemo(()=>t.position.includes("top"),[t.position]),[w,O]=e.useState([]),[I,S]=e.useState(!1),L=e.useCallback(()=>{S(!0)},[]),M=e.useCallback(()=>{S(!1)},[]),k=e.useCallback(e=>{O(n=>{const t=n.find(n=>n.id===e);if(!t)return n;const i=t.index,o=n.filter(n=>n.id!==e).map(e=>({...e,index:e.index>i?e.index-1:e.index}));return 0===o.length&&M(),o})},[M]),_=e.useCallback(e=>{const n=e.id??s.v4(),t=e.hidingTime??E;O(t=>{const i=t.findIndex(e=>e.id===n);let o;if(-1!==i)o=[...t],o[i]={...e,id:n,index:t[i].index};else{o=t.map(e=>({...e,index:e.index+1}));const i={...e,id:n,index:0};o.unshift(i)}return o}),void 0!==t&&setTimeout(()=>{k(n)},t)},[E,k]),C=e.useCallback((e,n,t)=>{const i=s.v4();return _({...n,id:i,isLoading:!0}),e.then(e=>{_({...t(e,void 0),id:i})}).catch(e=>{_({...t(void 0,e),id:i})})},[_]),N=e.useCallback(e=>{k(e)},[k]),D=r.useTheme();return n.jsxRuntimeExports.jsxs(d.Provider,{value:{toast:_,promise:C,remove:k,contentHistory:w},children:[n.jsxRuntimeExports.jsx(c,{$zIndex:t.zIndex??h,$position:t.position,$gap:t.gap,onMouseEnter:L,onMouseLeave:M,children:n.jsxRuntimeExports.jsx(o.AnimatePresence,{children:w.map(e=>{const t=e.index,i=!!f&&t>f,o=!!f&&t>f-1,r=!!f&&t==f-1,s=e.genre??y,l=D.colors.sonner[s].button.genre,d=e.hidingMode??R,c="content"in e&&e.content,a="title"in e&&e.title,u="description"in e&&e.description;return n.jsxRuntimeExports.jsx(x,{isMoreThanLastViewIndexPlusOne:i,isMoreThanLastViewIndex:o,isLastViewIndex:r,isTop:T,id:e.id,icon:e.icon,isLoading:e.isLoading,index:t,buttonGenre:l,hidingMode:d,isHovered:I,genre:s,content:c,title:a||g,description:u||v,button:e.button??j??$,handleOnClick:N},e.id)})})}),t.children]})},exports.SonnerButtonWrapper=v,exports.SonnerContent=u,exports.SonnerContentDescription=f,exports.SonnerContentTitle=m,exports.SonnerContext=d,exports.SonnerElementWrapper=a,exports.SonnerIcon=p,exports.SonnerLayout=c,exports.useSonner=()=>{const n=e.useContext(d);if(!n)throw new Error("useSonner must be used within an ProviderSonner");return n};
98
- //# sourceMappingURL=context.constants-D0P7bVk9.cjs.map
97
+ ${l.addFont};
98
+ `,v=r.div``,h=100,g=.04,j=100,E=.3,b="black",R=60,$={content:"Undo",onClick:()=>{}};exports.DEFAULT_PROVIDER_SONNER_BUTTON=$,exports.DEFAULT_PROVIDER_SONNER_DURATION=E,exports.DEFAULT_PROVIDER_SONNER_GENRE=b,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=R,exports.DEFAULT_PROVIDER_SONNER_SCALE=g,exports.DEFAULT_PROVIDER_SONNER_Y=j,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=h,exports.ProviderSonner=t=>{var i,l,a,u,p,m;const f=e.useMemo(()=>t.visibleToasts,[t.visibleToasts]),v=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.description},[null==(i=null==t?void 0:t.default)?void 0:i.description]),g=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.title},[null==(l=null==t?void 0:t.default)?void 0:l.title]),j=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.button},[null==(a=null==t?void 0:t.default)?void 0:a.button]),E=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.hidingTime},[null==(u=null==t?void 0:t.default)?void 0:u.hidingTime]),R=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.hidingMode)??"clickOnButton"},[null==(p=null==t?void 0:t.default)?void 0:p.hidingMode]),y=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.genre)??b},[null==(m=null==t?void 0:t.default)?void 0:m.genre]),T=e.useMemo(()=>t.position.includes("top"),[t.position]),[w,I]=e.useState([]),[O,S]=e.useState(!1),L=e.useCallback(()=>{S(!0)},[]),M=e.useCallback(()=>{S(!1)},[]),k=e.useCallback(e=>{I(n=>{const t=n.find(n=>n.id===e);if(!t)return n;const i=t.index,o=n.filter(n=>n.id!==e).map(e=>({...e,index:e.index>i?e.index-1:e.index}));return 0===o.length&&M(),o})},[M]),_=e.useCallback(e=>{const n=e.id??s.v4(),t=e.hidingTime??E;I(t=>{const i=t.findIndex(e=>e.id===n);let o;if(-1!==i)o=[...t],o[i]={...e,id:n,index:t[i].index};else{o=t.map(e=>({...e,index:e.index+1}));const i={...e,id:n,index:0};o.unshift(i)}return o}),void 0!==t&&setTimeout(()=>{k(n)},t)},[E,k]),C=e.useCallback((e,n,t)=>{const i=s.v4();return _({...n,id:i,isLoading:!0}),e.then(e=>{_({...t(e,void 0),id:i})}).catch(e=>{_({...t(void 0,e),id:i})})},[_]),N=e.useCallback(e=>{k(e)},[k]),D=r.useTheme();return n.jsxRuntimeExports.jsxs(d.Provider,{value:{toast:_,promise:C,remove:k,contentHistory:w},children:[n.jsxRuntimeExports.jsx(c,{$zIndex:t.zIndex??h,$position:t.position,$gap:t.gap,onMouseEnter:L,onMouseLeave:M,children:n.jsxRuntimeExports.jsx(o.AnimatePresence,{children:w.map(e=>{const t=e.index,i=!!f&&t>f,o=!!f&&t>f-1,r=!!f&&t===f-1,s=e.genre??y,l=D.colors.sonner[s].button.genre,d=e.hidingMode??R,c="content"in e&&e.content,a="title"in e&&e.title,u="description"in e&&e.description;return n.jsxRuntimeExports.jsx(x,{isMoreThanLastViewIndexPlusOne:i,isMoreThanLastViewIndex:o,isLastViewIndex:r,isTop:T,id:e.id,icon:e.icon,isLoading:e.isLoading,index:t,buttonGenre:l,hidingMode:d,isHovered:O,genre:s,content:c,title:a||g,description:u||v,button:e.button??j??$,handleOnClick:N},e.id)})})}),t.children]})},exports.SonnerButtonWrapper=v,exports.SonnerContent=u,exports.SonnerContentDescription=f,exports.SonnerContentTitle=m,exports.SonnerContext=d,exports.SonnerElementWrapper=a,exports.SonnerIcon=p,exports.SonnerLayout=c,exports.useSonner=()=>{const n=e.useContext(d);if(!n)throw new Error("useSonner must be used within an ProviderSonner");return n};
99
+ //# sourceMappingURL=context.constants-y9s5VGN2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.constants-y9s5VGN2.cjs","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts","../src/contexts/context-sonner/context.hooks.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout,\n} from '.';\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null);\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = (props) => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts],\n );\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: SonnerContextProps['remove'] = useCallback(\n (id) => {\n setContentHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index,\n }));\n\n if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: SonnerContextProps['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id);\n },\n [remove],\n );\n const theme = useTheme();\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index === memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = theme.colors.sonner[localGenre].button.genre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon {...props.icon} size={props.icon.size ?? 'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && (\n <SonnerContentTitle\n $genre={props.genre}\n $font={{\n size: 14,\n weight: 700,\n }}\n >\n {props.title}\n </SonnerContentTitle>\n )}\n {props.description && (\n <SonnerContentDescription\n $font={{\n size: 12,\n weight: 400,\n }}\n $genre={props.genre}\n >\n {props.description}\n </SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { addFont, addRemoveScrollbar, addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport {\n SonnerContentDescriptionProps,\n SonnerContentTitleProps,\n SonnerElementWrapperProps,\n SonnerLayoutProps,\n} from '.';\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${(props) => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${(props) => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${(props) =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`;\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`;\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`;\nexport const SonnerIcon = styled.div`\n display: contents;\n`;\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n color:${(props) => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n ${addFont};\n`;\nexport const SonnerButtonWrapper = styled.div``;\n","import { ITheme } from '@local/theme';\n\nimport { ProviderSonnerProps } from '.';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n","import { useContext } from 'react';\n\nimport { SonnerContext, SonnerContextProps } from '.';\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext);\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n"],"names":["SonnerContext","createContext","MemoizedSonnerElement","memo","props","jsx","motion","div","layout","initial","opacity","scale","y","isLastViewIndex","isTop","DEFAULT_PROVIDER_SONNER_Y","animate","isMoreThanLastViewIndex","pointerEvents","display","isHovered","index","DEFAULT_PROVIDER_SONNER_SCALE","marginTop","DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM","marginBottom","style","zIndex","whileInView","exit","transition","type","duration","DEFAULT_PROVIDER_SONNER_DURATION","children","jsxs","SonnerElementWrapper","$genre","genre","onClick","hidingMode","handleOnClick","id","isLoading","icon","SonnerIcon","Icon","size","name","SonnerContent","content","Fragment","title","SonnerContentTitle","$font","weight","description","SonnerContentDescription","button","SonnerButtonWrapper","Button","buttonGenre","SonnerLayout","styled","$zIndex","$gap","addRemoveScrollbar","$position","css","theme","colors","sonner","wrapper","background","color","borderColor","boxShadow","boxShadowHover","addTransition","addFont","DEFAULT_PROVIDER_SONNER_Z_INDEX","DEFAULT_PROVIDER_SONNER_GENRE","DEFAULT_PROVIDER_SONNER_BUTTON","memoVisibleToasts","useMemo","visibleToasts","memoDefaultDescription","_a","default","memoDefaultTitle","_b","memoDefaultButton","_c","memoDefaultHidingTime","hidingTime","_d","memoDefaultHidingMode","_e","memoDefaultGenre","_f","position","includes","contentHistory","setContentHistory","useState","setIsHovered","handleMouseEnter","useCallback","handleMouseLeave","remove","prev","itemToRemove","find","item","indexToRemove","updatedHistory","filter","map","length","toast","uuidv4","existingIndex","findIndex","newContent","unshift","setTimeout","promise","expectation","localToast","then","result","catch","error","useTheme","Provider","value","gap","onMouseEnter","onMouseLeave","AnimatePresence","isMoreThanLastViewIndexPlusOne","localGenre","localContent","localTitle","localDescription","context","useContext","Error"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createContext, useState, useCallback, useEffect, useContext } from "react";
2
2
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
3
- import { P as Preview } from "./area-DEwj0-O3.js";
4
- import { J as JeneseiPalette } from "./theme.global-BgERDJ4e.js";
3
+ import { P as Preview } from "./area-Cvp3eBBo.js";
4
+ import { J as JeneseiPalette } from "./theme.global-BzunMIsv.js";
5
5
  import { u as useScreenWidth } from "./context.hooks-BmwyZ1p3.js";
6
6
  import { e as addGridTransition } from "./style-RL73t3JD.js";
7
7
  import { styled, css } from "styled-components";
@@ -524,4 +524,4 @@ export {
524
524
  useApp as m,
525
525
  useBgColor as u
526
526
  };
527
- //# sourceMappingURL=context.hooks-Cmgo0uqV.js.map
527
+ //# sourceMappingURL=context.hooks-BIIK-2HN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.hooks-Cmgo0uqV.js","sources":["../src/contexts/context-app/context.tsx","../src/contexts/context-app/context.styles.ts","../src/contexts/context-app/context.hooks.ts"],"sourcesContent":["import { Preview, PreviewAdditionalProps } from '@local/areas/preview';\nimport { IThemePaletteKeys, JeneseiPalette } from '@local/theme';\n\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { useScreenWidth } from '../context-screen-width';\nimport {\n AppContextProps,\n ProviderAppOutlet,\n ProviderAppOutletChildren,\n ProviderAppOutletFooter,\n ProviderAppOutletHeader,\n ProviderAppOutletLeftAside,\n ProviderAppOutletNav,\n ProviderAppOutletNotification,\n ProviderAppOutletRightAside,\n ProviderAppProps,\n ProviderAppWrapper,\n} from '.';\n\nexport const AppContext = createContext<AppContextProps | null>(null);\n\n/**\n * ProviderApp component is a context context that manages various application-level states\n * such as background color, status bar color, background image, title, and description.\n * It uses several custom hooks to handle these states and provides them via the AppContext.\n *\n * @component\n *\n * @param {ProviderAppProps} props - The properties passed to the ProviderApp component.\n * @param {string} props.defaultBgColor - The default background color.\n * @param {string} props.defaultStatusBarColor - The default status bar color.\n * @param {string} [props.defaultBgImage] - The default background image.\n * @param {string} [props.defaultTitle] - The default title.\n * @param {string} [props.defaultDescription] - The default description.\n * @param {boolean} [props.isScrollOutlet] - Determines if the outlet should be scrollable.\n * @param {object} [props.footer] - The footer component and its properties.\n * @param {object} [props.notification] - The notification component and its properties.\n * @param {object} [props.header] - The header component and its properties.\n * @param {object} [props.nav] - The navigation component and its properties.\n * @param {object} [props.leftAside] - The left aside component and its properties.\n * @param {object} [props.rightAside] - The right aside component and its properties.\n * @param {React.ReactNode} props.children - The children components to be rendered inside the ProviderApp.\n *\n * @returns {JSX.Element} The rendered ProviderApp component.\n */\nexport const ProviderApp: FC<ProviderAppProps> = (props) => {\n const { bgColor, changeBgColor, historyBgColor, setDefaultBgColor } = useBgColor(props.defaultBgColor);\n const { statusBarColor, changeStatusBarColor, historyStatusBarColor, setDefaultStatusBarColor } = useStatusBarColor(\n props.defaultStatusBarColor,\n );\n const { bgImage, changeBgImage, historyBgImage, setDefaultBgImage } = useBgImage(props.defaultBgImage || null);\n const { title, changeTitle, setHistoryTitle, setDefaultTitle } = useTitle(props.defaultTitle || null);\n const { description, changeDescription, historyDescription, setDefaultDescription } = useDescription(\n props.defaultDescription,\n );\n const { changePreview, previewProps } = usePreview(props.defaultPreview);\n const { screenActual } = useScreenWidth();\n\n return (\n <AppContext.Provider\n value={{\n changePreview,\n changeStatusBarColor,\n changeBgColor,\n changeBgImage,\n changeTitle,\n changeDescription,\n historyStatusBarColor,\n historyBgColor,\n historyBgImage,\n setHistoryTitle,\n historyDescription,\n setDefaultStatusBarColor,\n setDefaultBgColor,\n setDefaultBgImage,\n setDefaultTitle,\n setDefaultDescription,\n }}\n >\n <title>{title}</title>\n <meta name='description' content={description} />\n <meta name='theme-color' content={JeneseiPalette[statusBarColor]} />\n <meta name='apple-mobile-web-app-status-bar-style' content='default' />\n <meta name='mobile-web-app-capable' content='yes' />\n <Preview {...previewProps}>\n <ProviderAppWrapper $bgColor={bgColor} $bgImage={bgImage}>\n <ProviderAppOutlet\n $isScrollOutlet={props.isScrollOutlet}\n $footer={props.footer}\n $notification={props.notification}\n $header={props.header}\n $nav={props.nav}\n $leftAside={props.leftAside}\n $rightAside={props.rightAside}\n >\n {props.notification?.length && props.notification?.length?.[screenActual] ? (\n <ProviderAppOutletNotification $notification={props.notification}>\n {props.notification?.component || null}\n </ProviderAppOutletNotification>\n ) : null}\n\n {props.header?.length && props.header?.length?.[screenActual] ? (\n <ProviderAppOutletHeader $header={props.header}>\n {props.header?.component || null}\n </ProviderAppOutletHeader>\n ) : null}\n\n {props.nav?.length && props.nav?.length?.[screenActual] ? (\n <ProviderAppOutletNav $nav={props.nav}>{props.nav?.component || null}</ProviderAppOutletNav>\n ) : null}\n\n {props.leftAside?.length && props.leftAside?.length?.[screenActual] ? (\n <ProviderAppOutletLeftAside $leftAside={props.leftAside}>\n {props.leftAside?.component || null}\n </ProviderAppOutletLeftAside>\n ) : null}\n\n <ProviderAppOutletChildren $isScrollOutlet={props.isScrollOutlet} $main={props.main}>\n {props.children}\n </ProviderAppOutletChildren>\n\n {props.rightAside?.length && props.rightAside?.length?.[screenActual] ? (\n <ProviderAppOutletRightAside $rightAside={props.rightAside}>\n {props.rightAside?.component || null}\n </ProviderAppOutletRightAside>\n ) : null}\n\n {props.footer?.length && props.footer?.length?.[screenActual] ? (\n <ProviderAppOutletFooter $footer={props.footer}>\n {props.footer?.component || null}\n </ProviderAppOutletFooter>\n ) : null}\n </ProviderAppOutlet>\n </ProviderAppWrapper>\n </Preview>\n </AppContext.Provider>\n );\n};\n\n/**\n * Custom hook to manage preview properties.\n */\nconst usePreview = (defaultPreview: ProviderAppProps['defaultPreview']) => {\n const [previewProps, setPreviewProps] = useState(defaultPreview || { visible: true, defaultVisible: true });\n\n const changePreview = useCallback((newPreviewProps: PreviewAdditionalProps) => {\n setPreviewProps(newPreviewProps);\n }, []);\n\n useEffect(() => {\n if (defaultPreview) setPreviewProps(defaultPreview);\n }, [defaultPreview]);\n\n return { previewProps, changePreview };\n};\n\n/**\n * Custom hook to manage background color state with history tracking.\n */\ntype BgColorState = {\n bgColor: IThemePaletteKeys;\n bgColorHistory: IThemePaletteKeys[];\n bgColorIndex: number;\n};\n\nexport const useBgColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<BgColorState>({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n\n const changeBgColor = useCallback((color: IThemePaletteKeys) => {\n setState((prev) => {\n const newHistory = [...prev.bgColorHistory.slice(0, prev.bgColorIndex + 1), color];\n return {\n bgColor: color,\n bgColorHistory: newHistory,\n bgColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgColorHistory.length) {\n return {\n ...prev,\n bgColor: prev.bgColorHistory[newIndex],\n bgColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgColor = useCallback(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n bgColor: state.bgColor,\n changeBgColor,\n historyBgColor,\n setDefaultBgColor,\n bgColorIndex: state.bgColorIndex,\n };\n};\n\n/**\n * Custom hook to manage the status bar color with history tracking.\n */\ntype StatusBarColorState = {\n statusBarColor: IThemePaletteKeys;\n statusBarColorHistory: IThemePaletteKeys[];\n statusBarColorIndex: number;\n};\n\nexport const useStatusBarColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<StatusBarColorState>({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n\n const changeStatusBarColor = useCallback((color: IThemePaletteKeys) => {\n setState((prev) => {\n const newHistory = [...prev.statusBarColorHistory.slice(0, prev.statusBarColorIndex + 1), color];\n return {\n statusBarColor: color,\n statusBarColorHistory: newHistory,\n statusBarColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyStatusBarColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.statusBarColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.statusBarColorHistory.length) {\n return {\n ...prev,\n statusBarColor: prev.statusBarColorHistory[newIndex],\n statusBarColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultStatusBarColor = useCallback(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n statusBarColor: state.statusBarColor,\n changeStatusBarColor,\n historyStatusBarColor,\n setDefaultStatusBarColor,\n statusBarColorIndex: state.statusBarColorIndex,\n };\n};\n\n/**\n * Custom hook to manage background images with history.\n */\ntype BgImageState = {\n bgImage: string | null;\n bgImageHistory: (string | null)[];\n bgImageIndex: number;\n};\n\nexport const useBgImage = (defaultImage: string | null) => {\n const [state, setState] = useState<BgImageState>({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n\n const changeBgImage = useCallback((image: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.bgImageHistory.slice(0, prev.bgImageIndex + 1), image];\n return {\n bgImage: image,\n bgImageHistory: newHistory,\n bgImageIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgImage = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgImageIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgImageHistory.length) {\n return {\n ...prev,\n bgImage: prev.bgImageHistory[newIndex],\n bgImageIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgImage = useCallback(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n useEffect(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n return {\n bgImage: state.bgImage,\n changeBgImage,\n historyBgImage,\n setDefaultBgImage,\n bgImageIndex: state.bgImageIndex,\n };\n};\n\ntype TitleState = {\n title: string | null;\n titleHistory: (string | null)[];\n titleIndex: number;\n};\n/**\n * Custom hook to manage the document title with history tracking.\n */\nconst useTitle = (defaultTitle: string | null) => {\n const [state, setState] = useState<TitleState>({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n\n const changeTitle = useCallback((newTitle: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.titleHistory.slice(0, prev.titleIndex + 1), newTitle];\n return {\n title: newTitle,\n titleHistory: newHistory,\n titleIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const setHistoryTitle = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.titleIndex + steps;\n if (newIndex >= 0 && newIndex < prev.titleHistory.length) {\n return {\n ...prev,\n title: prev.titleHistory[newIndex],\n titleIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultTitle = useCallback(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n useEffect(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n return {\n title: state.title,\n titleIndex: state.titleIndex,\n titleHistory: state.titleHistory,\n changeTitle,\n setHistoryTitle,\n setDefaultTitle,\n };\n};\n\n/**\n * Custom hook to manage a description with history tracking.\n */\ntype DescriptionState = {\n description: string;\n descriptionHistory: string[];\n descriptionIndex: number;\n};\n\nexport const useDescription = (defaultDescription: string) => {\n const [state, setState] = useState<DescriptionState>({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n\n const changeDescription = useCallback((newDescription: string) => {\n setState((prev) => {\n const newHistory = [...prev.descriptionHistory.slice(0, prev.descriptionIndex + 1), newDescription];\n return {\n description: newDescription,\n descriptionHistory: newHistory,\n descriptionIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyDescription = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.descriptionIndex + steps;\n if (newIndex >= 0 && newIndex < prev.descriptionHistory.length) {\n return {\n ...prev,\n description: prev.descriptionHistory[newIndex],\n descriptionIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultDescription = useCallback(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n useEffect(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n return {\n description: state.description,\n changeDescription,\n historyDescription,\n setDefaultDescription,\n descriptionIndex: state.descriptionIndex,\n };\n};\n","import { addGridTransition } from '@local/styles/add';\nimport { JeneseiPalette } from '@local/theme';\n\nimport { css, styled } from 'styled-components';\n\nimport { ScreenWidthProps } from '../context-screen-width';\nimport { ProviderAppOutletChildrenProps, ProviderAppOutletProps, ProviderAppWrapperProps } from '.';\n\nexport const ProviderAppWrapper = styled.div<ProviderAppWrapperProps>`\n display: flex;\n flex-direction: column;\n max-width: 100dvw;\n min-height: 100dvh;\n width: 100%;\n overflow: hidden;\n position: relative;\n\n background-color: ${(props) => JeneseiPalette[props.$bgColor]};\n background-image: url(${(props) => props.$bgImage});\n`;\n\nconst generateGridTemplateAreas = (props: ProviderAppOutletProps) => {\n let templateAreas = `\n \"notification notification notification\"\n \"header header header\"\n \"nav nav nav\"\n \"leftAside children rightAside\"\n \"footer footer footer\"\n `;\n\n templateAreas = `\n \"notification notification notification\"\n \"${props.$leftAside?.isTopHeader ? 'leftAside' : 'header'} header ${props.$rightAside?.isTopHeader ? 'rightAside' : 'header'}\"\n \"${props.$leftAside?.isTopHeader ? 'leftAside' : props.$leftAside?.isTopNav ? 'leftAside' : 'nav'} nav ${props.$rightAside?.isTopHeader ? 'rightAside' : props.$rightAside?.isTopNav ? 'rightAside' : 'nav'}\"\n \"leftAside children rightAside\"\n \"${props.$leftAside?.isTopFooter ? 'leftAside' : 'footer'} footer ${props.$rightAside?.isTopFooter ? 'rightAside' : 'footer'}\"\n `;\n\n return templateAreas;\n};\n\nfunction toStyledAppOutletCSS(props: {\n leftAsideWidth: string;\n rightAsideWidth: string;\n notificationHeight: string;\n headerHeight: string;\n navHeight: string;\n footerHeight: string;\n}) {\n return css`\n grid-template-columns: ${() => `${props.leftAsideWidth} 1fr ${props.rightAsideWidth}`};\n grid-template-rows: ${() =>\n `${props.notificationHeight} ${props.headerHeight} ${props.navHeight} 1fr ${props.footerHeight}`};\n `;\n}\nconst addSXAppOutlet = css<ProviderAppOutletProps>`\n ${(props) => {\n const leftAsideWidth = props.$leftAside?.length?.default;\n const rightAsideWidth = props.$rightAside?.length?.default;\n const notificationHeight = props.$notification?.length?.default;\n const headerHeight = props.$header?.length?.default;\n const navHeight = props.$nav?.length?.default;\n const footerHeight = props.$footer?.length?.default;\n return toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth ?? '0px',\n rightAsideWidth: rightAsideWidth ?? '0px',\n notificationHeight: notificationHeight ?? '0px',\n headerHeight: headerHeight ?? '0px',\n navHeight: navHeight ?? '0px',\n footerHeight: footerHeight ?? '0px',\n });\n }}\n ${(props) => {\n const leftAsideWidth = props.$leftAside?.length;\n const rightAsideWidth = props.$rightAside?.length;\n const notificationHeight = props.$notification?.length;\n const headerHeight = props.$header?.length;\n const navHeight = props.$nav?.length;\n const footerHeight = props.$footer?.length;\n\n return Object.entries(props.theme.screens)\n .filter(([key]) => key !== 'default')\n .map(([key]) => {\n const deviceKey = key as keyof ScreenWidthProps<string | null>;\n const screenWidth = props.theme.screens[deviceKey]?.width;\n if (!screenWidth) return null;\n return css`\n @media (max-width: ${screenWidth}px) {\n ${toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth && leftAsideWidth[deviceKey] ? leftAsideWidth[deviceKey] : '0px',\n rightAsideWidth: rightAsideWidth && rightAsideWidth[deviceKey] ? rightAsideWidth[deviceKey] : '0px',\n notificationHeight:\n notificationHeight && notificationHeight[deviceKey] ? notificationHeight[deviceKey] : '0px',\n headerHeight: headerHeight && headerHeight[deviceKey] ? headerHeight[deviceKey] : '0px',\n navHeight: navHeight && navHeight[deviceKey] ? navHeight[deviceKey] : '0px',\n footerHeight: footerHeight && footerHeight[deviceKey] ? footerHeight[deviceKey] : '0px',\n })}\n }\n `;\n });\n }}\n`;\nexport const ProviderAppOutlet = styled.div<ProviderAppOutletProps>`\n display: grid;\n width: 100%;\n height: 100%;\n\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-gutter: stable;\n \n min-height: 100dvh;\n max-height: 100dvh;\n \n ${addGridTransition};\n\n ${(props) => `\n grid-template-areas: ${generateGridTemplateAreas(props)};\n `}\n\n ${addSXAppOutlet};\n`;\n\nexport const ProviderAppOutletChildren = styled.main<ProviderAppOutletChildrenProps>`\n z-index: ${(props) => props?.$main?.zIndex ?? 'auto'};\n display: flex;\n grid-area: children;\n max-width: 100%;\n max-height: 100%;\n overflow: ${(props) => (props.$isScrollOutlet ? 'auto' : 'visible')};\n scrollbar-gutter: stable;\n`;\n\nexport const ProviderAppOutletNotification = styled.section<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$notification?.zIndex ?? 'auto'};\n grid-area: notification;\n display: flex;\n`;\n\nexport const ProviderAppOutletHeader = styled.header<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$header?.zIndex ?? 'auto'};\n grid-area: header;\n display: flex;\n`;\n\nexport const ProviderAppOutletFooter = styled.footer<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$footer?.zIndex ?? 'auto'};\n grid-area: footer;\n display: flex;\n`;\n\nexport const ProviderAppOutletNav = styled.nav<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$nav?.zIndex ?? 'auto'};\n grid-area: nav;\n display: flex;\n`;\n\nexport const ProviderAppOutletLeftAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$leftAside?.zIndex ?? 'auto'};\n grid-area: leftAside;\n display: flex;\n`;\n\nexport const ProviderAppOutletRightAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$rightAside?.zIndex ?? 'auto'};\n grid-area: rightAside;\n display: flex;\n`;\n","import { useContext } from 'react';\n\nimport { AppContext } from '.';\n\n/**\n * Custom hook to access the AppContext.\n */\nexport const useApp = () => {\n const context = useContext(AppContext);\n if (!context) {\n throw new Error('useApp must be used within an ProviderApp');\n }\n return context;\n};\n"],"names":["jsxs","jsx","_a"],"mappings":"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"}
1
+ {"version":3,"file":"context.hooks-BIIK-2HN.js","sources":["../src/contexts/context-app/context.tsx","../src/contexts/context-app/context.styles.ts","../src/contexts/context-app/context.hooks.ts"],"sourcesContent":["import { Preview, PreviewAdditionalProps } from '@local/areas/preview';\nimport { IThemePaletteKeys, JeneseiPalette } from '@local/theme';\n\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { useScreenWidth } from '../context-screen-width';\nimport {\n AppContextProps,\n ProviderAppOutlet,\n ProviderAppOutletChildren,\n ProviderAppOutletFooter,\n ProviderAppOutletHeader,\n ProviderAppOutletLeftAside,\n ProviderAppOutletNav,\n ProviderAppOutletNotification,\n ProviderAppOutletRightAside,\n ProviderAppProps,\n ProviderAppWrapper,\n} from '.';\n\nexport const AppContext = createContext<AppContextProps | null>(null);\n\n/**\n * ProviderApp component is a context context that manages various application-level states\n * such as background color, status bar color, background image, title, and description.\n * It uses several custom hooks to handle these states and provides them via the AppContext.\n *\n * @component\n *\n * @param {ProviderAppProps} props - The properties passed to the ProviderApp component.\n * @param {string} props.defaultBgColor - The default background color.\n * @param {string} props.defaultStatusBarColor - The default status bar color.\n * @param {string} [props.defaultBgImage] - The default background image.\n * @param {string} [props.defaultTitle] - The default title.\n * @param {string} [props.defaultDescription] - The default description.\n * @param {boolean} [props.isScrollOutlet] - Determines if the outlet should be scrollable.\n * @param {object} [props.footer] - The footer component and its properties.\n * @param {object} [props.notification] - The notification component and its properties.\n * @param {object} [props.header] - The header component and its properties.\n * @param {object} [props.nav] - The navigation component and its properties.\n * @param {object} [props.leftAside] - The left aside component and its properties.\n * @param {object} [props.rightAside] - The right aside component and its properties.\n * @param {React.ReactNode} props.children - The children components to be rendered inside the ProviderApp.\n *\n * @returns {JSX.Element} The rendered ProviderApp component.\n */\nexport const ProviderApp: FC<ProviderAppProps> = (props) => {\n const { bgColor, changeBgColor, historyBgColor, setDefaultBgColor } = useBgColor(props.defaultBgColor);\n const { statusBarColor, changeStatusBarColor, historyStatusBarColor, setDefaultStatusBarColor } = useStatusBarColor(\n props.defaultStatusBarColor,\n );\n const { bgImage, changeBgImage, historyBgImage, setDefaultBgImage } = useBgImage(props.defaultBgImage || null);\n const { title, changeTitle, setHistoryTitle, setDefaultTitle } = useTitle(props.defaultTitle || null);\n const { description, changeDescription, historyDescription, setDefaultDescription } = useDescription(\n props.defaultDescription,\n );\n const { changePreview, previewProps } = usePreview(props.defaultPreview);\n const { screenActual } = useScreenWidth();\n\n return (\n <AppContext.Provider\n value={{\n changePreview,\n changeStatusBarColor,\n changeBgColor,\n changeBgImage,\n changeTitle,\n changeDescription,\n historyStatusBarColor,\n historyBgColor,\n historyBgImage,\n setHistoryTitle,\n historyDescription,\n setDefaultStatusBarColor,\n setDefaultBgColor,\n setDefaultBgImage,\n setDefaultTitle,\n setDefaultDescription,\n }}\n >\n <title>{title}</title>\n <meta name='description' content={description} />\n <meta name='theme-color' content={JeneseiPalette[statusBarColor]} />\n <meta name='apple-mobile-web-app-status-bar-style' content='default' />\n <meta name='mobile-web-app-capable' content='yes' />\n <Preview {...previewProps}>\n <ProviderAppWrapper $bgColor={bgColor} $bgImage={bgImage}>\n <ProviderAppOutlet\n $isScrollOutlet={props.isScrollOutlet}\n $footer={props.footer}\n $notification={props.notification}\n $header={props.header}\n $nav={props.nav}\n $leftAside={props.leftAside}\n $rightAside={props.rightAside}\n >\n {props.notification?.length && props.notification?.length?.[screenActual] ? (\n <ProviderAppOutletNotification $notification={props.notification}>\n {props.notification?.component || null}\n </ProviderAppOutletNotification>\n ) : null}\n\n {props.header?.length && props.header?.length?.[screenActual] ? (\n <ProviderAppOutletHeader $header={props.header}>\n {props.header?.component || null}\n </ProviderAppOutletHeader>\n ) : null}\n\n {props.nav?.length && props.nav?.length?.[screenActual] ? (\n <ProviderAppOutletNav $nav={props.nav}>{props.nav?.component || null}</ProviderAppOutletNav>\n ) : null}\n\n {props.leftAside?.length && props.leftAside?.length?.[screenActual] ? (\n <ProviderAppOutletLeftAside $leftAside={props.leftAside}>\n {props.leftAside?.component || null}\n </ProviderAppOutletLeftAside>\n ) : null}\n\n <ProviderAppOutletChildren $isScrollOutlet={props.isScrollOutlet} $main={props.main}>\n {props.children}\n </ProviderAppOutletChildren>\n\n {props.rightAside?.length && props.rightAside?.length?.[screenActual] ? (\n <ProviderAppOutletRightAside $rightAside={props.rightAside}>\n {props.rightAside?.component || null}\n </ProviderAppOutletRightAside>\n ) : null}\n\n {props.footer?.length && props.footer?.length?.[screenActual] ? (\n <ProviderAppOutletFooter $footer={props.footer}>\n {props.footer?.component || null}\n </ProviderAppOutletFooter>\n ) : null}\n </ProviderAppOutlet>\n </ProviderAppWrapper>\n </Preview>\n </AppContext.Provider>\n );\n};\n\n/**\n * Custom hook to manage preview properties.\n */\nconst usePreview = (defaultPreview: ProviderAppProps['defaultPreview']) => {\n const [previewProps, setPreviewProps] = useState(defaultPreview || { visible: true, defaultVisible: true });\n\n const changePreview = useCallback((newPreviewProps: PreviewAdditionalProps) => {\n setPreviewProps(newPreviewProps);\n }, []);\n\n useEffect(() => {\n if (defaultPreview) setPreviewProps(defaultPreview);\n }, [defaultPreview]);\n\n return { previewProps, changePreview };\n};\n\n/**\n * Custom hook to manage background color state with history tracking.\n */\ntype BgColorState = {\n bgColor: IThemePaletteKeys;\n bgColorHistory: IThemePaletteKeys[];\n bgColorIndex: number;\n};\n\nexport const useBgColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<BgColorState>({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n\n const changeBgColor = useCallback((color: IThemePaletteKeys) => {\n setState((prev) => {\n const newHistory = [...prev.bgColorHistory.slice(0, prev.bgColorIndex + 1), color];\n return {\n bgColor: color,\n bgColorHistory: newHistory,\n bgColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgColorHistory.length) {\n return {\n ...prev,\n bgColor: prev.bgColorHistory[newIndex],\n bgColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgColor = useCallback(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n bgColor: state.bgColor,\n changeBgColor,\n historyBgColor,\n setDefaultBgColor,\n bgColorIndex: state.bgColorIndex,\n };\n};\n\n/**\n * Custom hook to manage the status bar color with history tracking.\n */\ntype StatusBarColorState = {\n statusBarColor: IThemePaletteKeys;\n statusBarColorHistory: IThemePaletteKeys[];\n statusBarColorIndex: number;\n};\n\nexport const useStatusBarColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<StatusBarColorState>({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n\n const changeStatusBarColor = useCallback((color: IThemePaletteKeys) => {\n setState((prev) => {\n const newHistory = [...prev.statusBarColorHistory.slice(0, prev.statusBarColorIndex + 1), color];\n return {\n statusBarColor: color,\n statusBarColorHistory: newHistory,\n statusBarColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyStatusBarColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.statusBarColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.statusBarColorHistory.length) {\n return {\n ...prev,\n statusBarColor: prev.statusBarColorHistory[newIndex],\n statusBarColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultStatusBarColor = useCallback(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n statusBarColor: state.statusBarColor,\n changeStatusBarColor,\n historyStatusBarColor,\n setDefaultStatusBarColor,\n statusBarColorIndex: state.statusBarColorIndex,\n };\n};\n\n/**\n * Custom hook to manage background images with history.\n */\ntype BgImageState = {\n bgImage: string | null;\n bgImageHistory: (string | null)[];\n bgImageIndex: number;\n};\n\nexport const useBgImage = (defaultImage: string | null) => {\n const [state, setState] = useState<BgImageState>({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n\n const changeBgImage = useCallback((image: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.bgImageHistory.slice(0, prev.bgImageIndex + 1), image];\n return {\n bgImage: image,\n bgImageHistory: newHistory,\n bgImageIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgImage = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgImageIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgImageHistory.length) {\n return {\n ...prev,\n bgImage: prev.bgImageHistory[newIndex],\n bgImageIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgImage = useCallback(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n useEffect(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n return {\n bgImage: state.bgImage,\n changeBgImage,\n historyBgImage,\n setDefaultBgImage,\n bgImageIndex: state.bgImageIndex,\n };\n};\n\ntype TitleState = {\n title: string | null;\n titleHistory: (string | null)[];\n titleIndex: number;\n};\n/**\n * Custom hook to manage the document title with history tracking.\n */\nconst useTitle = (defaultTitle: string | null) => {\n const [state, setState] = useState<TitleState>({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n\n const changeTitle = useCallback((newTitle: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.titleHistory.slice(0, prev.titleIndex + 1), newTitle];\n return {\n title: newTitle,\n titleHistory: newHistory,\n titleIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const setHistoryTitle = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.titleIndex + steps;\n if (newIndex >= 0 && newIndex < prev.titleHistory.length) {\n return {\n ...prev,\n title: prev.titleHistory[newIndex],\n titleIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultTitle = useCallback(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n useEffect(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n return {\n title: state.title,\n titleIndex: state.titleIndex,\n titleHistory: state.titleHistory,\n changeTitle,\n setHistoryTitle,\n setDefaultTitle,\n };\n};\n\n/**\n * Custom hook to manage a description with history tracking.\n */\ntype DescriptionState = {\n description: string;\n descriptionHistory: string[];\n descriptionIndex: number;\n};\n\nexport const useDescription = (defaultDescription: string) => {\n const [state, setState] = useState<DescriptionState>({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n\n const changeDescription = useCallback((newDescription: string) => {\n setState((prev) => {\n const newHistory = [...prev.descriptionHistory.slice(0, prev.descriptionIndex + 1), newDescription];\n return {\n description: newDescription,\n descriptionHistory: newHistory,\n descriptionIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyDescription = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.descriptionIndex + steps;\n if (newIndex >= 0 && newIndex < prev.descriptionHistory.length) {\n return {\n ...prev,\n description: prev.descriptionHistory[newIndex],\n descriptionIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultDescription = useCallback(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n useEffect(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n return {\n description: state.description,\n changeDescription,\n historyDescription,\n setDefaultDescription,\n descriptionIndex: state.descriptionIndex,\n };\n};\n","import { addGridTransition } from '@local/styles/add';\nimport { JeneseiPalette } from '@local/theme';\n\nimport { css, styled } from 'styled-components';\n\nimport { ScreenWidthProps } from '../context-screen-width';\nimport { ProviderAppOutletChildrenProps, ProviderAppOutletProps, ProviderAppWrapperProps } from '.';\n\nexport const ProviderAppWrapper = styled.div<ProviderAppWrapperProps>`\n display: flex;\n flex-direction: column;\n max-width: 100dvw;\n min-height: 100dvh;\n width: 100%;\n overflow: hidden;\n position: relative;\n\n background-color: ${(props) => JeneseiPalette[props.$bgColor]};\n background-image: url(${(props) => props.$bgImage});\n`;\n\nconst generateGridTemplateAreas = (props: ProviderAppOutletProps) => {\n let templateAreas = `\n \"notification notification notification\"\n \"header header header\"\n \"nav nav nav\"\n \"leftAside children rightAside\"\n \"footer footer footer\"\n `;\n\n templateAreas = `\n \"notification notification notification\"\n \"${props.$leftAside?.isTopHeader ? 'leftAside' : 'header'} header ${props.$rightAside?.isTopHeader ? 'rightAside' : 'header'}\"\n \"${props.$leftAside?.isTopHeader ? 'leftAside' : props.$leftAside?.isTopNav ? 'leftAside' : 'nav'} nav ${props.$rightAside?.isTopHeader ? 'rightAside' : props.$rightAside?.isTopNav ? 'rightAside' : 'nav'}\"\n \"leftAside children rightAside\"\n \"${props.$leftAside?.isTopFooter ? 'leftAside' : 'footer'} footer ${props.$rightAside?.isTopFooter ? 'rightAside' : 'footer'}\"\n `;\n\n return templateAreas;\n};\n\nfunction toStyledAppOutletCSS(props: {\n leftAsideWidth: string;\n rightAsideWidth: string;\n notificationHeight: string;\n headerHeight: string;\n navHeight: string;\n footerHeight: string;\n}) {\n return css`\n grid-template-columns: ${() => `${props.leftAsideWidth} 1fr ${props.rightAsideWidth}`};\n grid-template-rows: ${() =>\n `${props.notificationHeight} ${props.headerHeight} ${props.navHeight} 1fr ${props.footerHeight}`};\n `;\n}\nconst addSXAppOutlet = css<ProviderAppOutletProps>`\n ${(props) => {\n const leftAsideWidth = props.$leftAside?.length?.default;\n const rightAsideWidth = props.$rightAside?.length?.default;\n const notificationHeight = props.$notification?.length?.default;\n const headerHeight = props.$header?.length?.default;\n const navHeight = props.$nav?.length?.default;\n const footerHeight = props.$footer?.length?.default;\n return toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth ?? '0px',\n rightAsideWidth: rightAsideWidth ?? '0px',\n notificationHeight: notificationHeight ?? '0px',\n headerHeight: headerHeight ?? '0px',\n navHeight: navHeight ?? '0px',\n footerHeight: footerHeight ?? '0px',\n });\n }}\n ${(props) => {\n const leftAsideWidth = props.$leftAside?.length;\n const rightAsideWidth = props.$rightAside?.length;\n const notificationHeight = props.$notification?.length;\n const headerHeight = props.$header?.length;\n const navHeight = props.$nav?.length;\n const footerHeight = props.$footer?.length;\n\n return Object.entries(props.theme.screens)\n .filter(([key]) => key !== 'default')\n .map(([key]) => {\n const deviceKey = key as keyof ScreenWidthProps<string | null>;\n const screenWidth = props.theme.screens[deviceKey]?.width;\n if (!screenWidth) return null;\n return css`\n @media (max-width: ${screenWidth}px) {\n ${toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth && leftAsideWidth[deviceKey] ? leftAsideWidth[deviceKey] : '0px',\n rightAsideWidth: rightAsideWidth && rightAsideWidth[deviceKey] ? rightAsideWidth[deviceKey] : '0px',\n notificationHeight:\n notificationHeight && notificationHeight[deviceKey] ? notificationHeight[deviceKey] : '0px',\n headerHeight: headerHeight && headerHeight[deviceKey] ? headerHeight[deviceKey] : '0px',\n navHeight: navHeight && navHeight[deviceKey] ? navHeight[deviceKey] : '0px',\n footerHeight: footerHeight && footerHeight[deviceKey] ? footerHeight[deviceKey] : '0px',\n })}\n }\n `;\n });\n }}\n`;\nexport const ProviderAppOutlet = styled.div<ProviderAppOutletProps>`\n display: grid;\n width: 100%;\n height: 100%;\n\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-gutter: stable;\n \n min-height: 100dvh;\n max-height: 100dvh;\n \n ${addGridTransition};\n\n ${(props) => `\n grid-template-areas: ${generateGridTemplateAreas(props)};\n `}\n\n ${addSXAppOutlet};\n`;\n\nexport const ProviderAppOutletChildren = styled.main<ProviderAppOutletChildrenProps>`\n z-index: ${(props) => props?.$main?.zIndex ?? 'auto'};\n display: flex;\n grid-area: children;\n max-width: 100%;\n max-height: 100%;\n overflow: ${(props) => (props.$isScrollOutlet ? 'auto' : 'visible')};\n scrollbar-gutter: stable;\n`;\n\nexport const ProviderAppOutletNotification = styled.section<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$notification?.zIndex ?? 'auto'};\n grid-area: notification;\n display: flex;\n`;\n\nexport const ProviderAppOutletHeader = styled.header<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$header?.zIndex ?? 'auto'};\n grid-area: header;\n display: flex;\n`;\n\nexport const ProviderAppOutletFooter = styled.footer<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$footer?.zIndex ?? 'auto'};\n grid-area: footer;\n display: flex;\n`;\n\nexport const ProviderAppOutletNav = styled.nav<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$nav?.zIndex ?? 'auto'};\n grid-area: nav;\n display: flex;\n`;\n\nexport const ProviderAppOutletLeftAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$leftAside?.zIndex ?? 'auto'};\n grid-area: leftAside;\n display: flex;\n`;\n\nexport const ProviderAppOutletRightAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${(props) => props?.$rightAside?.zIndex ?? 'auto'};\n grid-area: rightAside;\n display: flex;\n`;\n","import { useContext } from 'react';\n\nimport { AppContext } from '.';\n\n/**\n * Custom hook to access the AppContext.\n */\nexport const useApp = () => {\n const context = useContext(AppContext);\n if (!context) {\n throw new Error('useApp must be used within an ProviderApp');\n }\n return context;\n};\n"],"names":["jsxs","jsx","_a"],"mappings":";;;;;;;AAoBO,MAAM,aAAa,cAAsC,IAAI;AA0B7D,MAAM,cAAoC,CAAC,UAAU;;AAC1D,QAAM,EAAE,SAAS,eAAe,gBAAgB,sBAAsB,WAAW,MAAM,cAAc;AACrG,QAAM,EAAE,gBAAgB,sBAAsB,uBAAuB,6BAA6B;AAAA,IAChG,MAAM;AAAA,EAAA;AAER,QAAM,EAAE,SAAS,eAAe,gBAAgB,sBAAsB,WAAW,MAAM,kBAAkB,IAAI;AAC7G,QAAM,EAAE,OAAO,aAAa,iBAAiB,oBAAoB,SAAS,MAAM,gBAAgB,IAAI;AACpG,QAAM,EAAE,aAAa,mBAAmB,oBAAoB,0BAA0B;AAAA,IACpF,MAAM;AAAA,EAAA;AAER,QAAM,EAAE,eAAe,aAAA,IAAiB,WAAW,MAAM,cAAc;AACvE,QAAM,EAAE,aAAA,IAAiB,eAAA;AAEzB,SACEA,kCAAAA;AAAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAAC,kCAAAA,IAAC,WAAO,UAAA,MAAA,CAAM;AAAA,QACdA,kCAAAA,IAAC,QAAA,EAAK,MAAK,eAAc,SAAS,aAAa;AAAA,8CAC9C,QAAA,EAAK,MAAK,eAAc,SAAS,eAAe,cAAc,GAAG;AAAA,QAClEA,kCAAAA,IAAC,QAAA,EAAK,MAAK,yCAAwC,SAAQ,WAAU;AAAA,QACrEA,kCAAAA,IAAC,QAAA,EAAK,MAAK,0BAAyB,SAAQ,OAAM;AAAA,QAClDA,kCAAAA,IAAC,WAAS,GAAG,cACX,gDAAC,oBAAA,EAAmB,UAAU,SAAS,UAAU,SAC/C,UAAAD,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,iBAAiB,MAAM;AAAA,YACvB,SAAS,MAAM;AAAA,YACf,eAAe,MAAM;AAAA,YACrB,SAAS,MAAM;AAAA,YACf,MAAM,MAAM;AAAA,YACZ,YAAY,MAAM;AAAA,YAClB,aAAa,MAAM;AAAA,YAElB,UAAA;AAAA,gBAAA,WAAM,iBAAN,mBAAoB,aAAU,iBAAM,iBAAN,mBAAoB,WAApB,mBAA6B,iBAC1DC,kCAAAA,IAAC,+BAAA,EAA8B,eAAe,MAAM,cACjD,YAAA,WAAM,iBAAN,mBAAoB,cAAa,MACpC,IACE;AAAA,gBAEH,WAAM,WAAN,mBAAc,aAAU,iBAAM,WAAN,mBAAc,WAAd,mBAAuB,iBAC9CA,kCAAAA,IAAC,yBAAA,EAAwB,SAAS,MAAM,QACrC,uBAAM,8BAAQ,cAAa,MAC9B,IACE;AAAA,gBAEH,WAAM,QAAN,mBAAW,aAAU,iBAAM,QAAN,mBAAW,WAAX,mBAAoB,iBACxCA,kCAAAA,IAAC,sBAAA,EAAqB,MAAM,MAAM,KAAM,uBAAM,2BAAK,cAAa,MAAK,IACnE;AAAA,gBAEH,WAAM,cAAN,mBAAiB,aAAU,iBAAM,cAAN,mBAAiB,WAAjB,mBAA0B,iBACpDA,kCAAAA,IAAC,4BAAA,EAA2B,YAAY,MAAM,WAC3C,uBAAM,iCAAW,cAAa,MACjC,IACE;AAAA,cAEJA,kCAAAA,IAAC,6BAA0B,iBAAiB,MAAM,gBAAgB,OAAO,MAAM,MAC5E,UAAA,MAAM,SAAA,CACT;AAAA,gBAEC,WAAM,eAAN,mBAAkB,aAAU,iBAAM,eAAN,mBAAkB,WAAlB,mBAA2B,iBACtDA,kCAAAA,IAAC,6BAAA,EAA4B,aAAa,MAAM,YAC7C,uBAAM,kCAAY,cAAa,MAClC,IACE;AAAA,gBAEH,WAAM,WAAN,mBAAc,aAAU,iBAAM,WAAN,mBAAc,WAAd,mBAAuB,iBAC9CA,sCAAC,yBAAA,EAAwB,SAAS,MAAM,QACrC,uBAAM,8BAAQ,cAAa,MAC9B,IACE;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAER,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAKA,MAAM,aAAa,CAAC,mBAAuD;AACzE,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,kBAAkB,EAAE,SAAS,MAAM,gBAAgB,MAAM;AAE1G,QAAM,gBAAgB,YAAY,CAAC,oBAA4C;AAC7E,oBAAgB,eAAe;AAAA,EAAA,GAC9B,EAAE;AAEL,YAAU,MAAM;AACd,QAAI,gCAAgC,cAAc;AAAA,EAAA,GACjD,CAAC,cAAc,CAAC;AAEnB,SAAO,EAAE,cAAc,cAAA;AACzB;AAWO,MAAM,aAAa,CAAC,iBAAoC;AAC7D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAuB;AAAA,IAC/C,SAAS;AAAA,IACT,gBAAgB,CAAC,YAAY;AAAA,IAC7B,cAAc;AAAA,EAAA,CACf;AAED,QAAM,gBAAgB,YAAY,CAAC,UAA6B;AAC9D,aAAS,CAAC,SAAS;AACjB,YAAM,aAAa,CAAC,GAAG,KAAK,eAAe,MAAM,GAAG,KAAK,eAAe,CAAC,GAAG,KAAK;AACjF,aAAO;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,cAAc,WAAW,SAAS;AAAA,MAAA;AAAA,IACpC,CACD;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,iBAAiB,YAAY,CAAC,UAAkB;AACpD,aAAS,CAAC,SAAS;AACjB,YAAM,WAAW,KAAK,eAAe;AACrC,UAAI,YAAY,KAAK,WAAW,KAAK,eAAe,QAAQ;AAC1D,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS,KAAK,eAAe,QAAQ;AAAA,UACrC,cAAc;AAAA,QAAA;AAAA,MAChB;AAEF,aAAO;AAAA,IAAA,CACR;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,oBAAoB,YAAY,MAAM;AAC1C,aAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc;AAAA,IAAA,CACf;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc;AAAA,IAAA,CACf;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,SAAO;AAAA,IACL,SAAS,MAAM;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc,MAAM;AAAA,EAAA;AAExB;AAWO,MAAM,oBAAoB,CAAC,iBAAoC;AACpE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA8B;AAAA,IACtD,gBAAgB;AAAA,IAChB,uBAAuB,CAAC,YAAY;AAAA,IACpC,qBAAqB;AAAA,EAAA,CACtB;AAED,QAAM,uBAAuB,YAAY,CAAC,UAA6B;AACrE,aAAS,CAAC,SAAS;AACjB,YAAM,aAAa,CAAC,GAAG,KAAK,sBAAsB,MAAM,GAAG,KAAK,sBAAsB,CAAC,GAAG,KAAK;AAC/F,aAAO;AAAA,QACL,gBAAgB;AAAA,QAChB,uBAAuB;AAAA,QACvB,qBAAqB,WAAW,SAAS;AAAA,MAAA;AAAA,IAC3C,CACD;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,wBAAwB,YAAY,CAAC,UAAkB;AAC3D,aAAS,CAAC,SAAS;AACjB,YAAM,WAAW,KAAK,sBAAsB;AAC5C,UAAI,YAAY,KAAK,WAAW,KAAK,sBAAsB,QAAQ;AACjE,eAAO;AAAA,UACL,GAAG;AAAA,UACH,gBAAgB,KAAK,sBAAsB,QAAQ;AAAA,UACnD,qBAAqB;AAAA,QAAA;AAAA,MACvB;AAEF,aAAO;AAAA,IAAA,CACR;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,2BAA2B,YAAY,MAAM;AACjD,aAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,uBAAuB,CAAC,YAAY;AAAA,MACpC,qBAAqB;AAAA,IAAA,CACtB;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,uBAAuB,CAAC,YAAY;AAAA,MACpC,qBAAqB;AAAA,IAAA,CACtB;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,SAAO;AAAA,IACL,gBAAgB,MAAM;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA,qBAAqB,MAAM;AAAA,EAAA;AAE/B;AAWO,MAAM,aAAa,CAAC,iBAAgC;AACzD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAuB;AAAA,IAC/C,SAAS;AAAA,IACT,gBAAgB,CAAC,YAAY;AAAA,IAC7B,cAAc;AAAA,EAAA,CACf;AAED,QAAM,gBAAgB,YAAY,CAAC,UAAyB;AAC1D,aAAS,CAAC,SAAS;AACjB,YAAM,aAAa,CAAC,GAAG,KAAK,eAAe,MAAM,GAAG,KAAK,eAAe,CAAC,GAAG,KAAK;AACjF,aAAO;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,cAAc,WAAW,SAAS;AAAA,MAAA;AAAA,IACpC,CACD;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,iBAAiB,YAAY,CAAC,UAAkB;AACpD,aAAS,CAAC,SAAS;AACjB,YAAM,WAAW,KAAK,eAAe;AACrC,UAAI,YAAY,KAAK,WAAW,KAAK,eAAe,QAAQ;AAC1D,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS,KAAK,eAAe,QAAQ;AAAA,UACrC,cAAc;AAAA,QAAA;AAAA,MAChB;AAEF,aAAO;AAAA,IAAA,CACR;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,oBAAoB,YAAY,MAAM;AAC1C,aAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc;AAAA,IAAA,CACf;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc;AAAA,IAAA,CACf;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,SAAO;AAAA,IACL,SAAS,MAAM;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc,MAAM;AAAA,EAAA;AAExB;AAUA,MAAM,WAAW,CAAC,iBAAgC;AAChD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAqB;AAAA,IAC7C,OAAO;AAAA,IACP,cAAc,CAAC,YAAY;AAAA,IAC3B,YAAY;AAAA,EAAA,CACb;AAED,QAAM,cAAc,YAAY,CAAC,aAA4B;AAC3D,aAAS,CAAC,SAAS;AACjB,YAAM,aAAa,CAAC,GAAG,KAAK,aAAa,MAAM,GAAG,KAAK,aAAa,CAAC,GAAG,QAAQ;AAChF,aAAO;AAAA,QACL,OAAO;AAAA,QACP,cAAc;AAAA,QACd,YAAY,WAAW,SAAS;AAAA,MAAA;AAAA,IAClC,CACD;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,kBAAkB,YAAY,CAAC,UAAkB;AACrD,aAAS,CAAC,SAAS;AACjB,YAAM,WAAW,KAAK,aAAa;AACnC,UAAI,YAAY,KAAK,WAAW,KAAK,aAAa,QAAQ;AACxD,eAAO;AAAA,UACL,GAAG;AAAA,UACH,OAAO,KAAK,aAAa,QAAQ;AAAA,UACjC,YAAY;AAAA,QAAA;AAAA,MACd;AAEF,aAAO;AAAA,IAAA,CACR;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,kBAAkB,YAAY,MAAM;AACxC,aAAS;AAAA,MACP,OAAO;AAAA,MACP,cAAc,CAAC,YAAY;AAAA,MAC3B,YAAY;AAAA,IAAA,CACb;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,OAAO;AAAA,MACP,cAAc,CAAC,YAAY;AAAA,MAC3B,YAAY;AAAA,IAAA,CACb;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,SAAO;AAAA,IACL,OAAO,MAAM;AAAA,IACb,YAAY,MAAM;AAAA,IAClB,cAAc,MAAM;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAWO,MAAM,iBAAiB,CAAC,uBAA+B;AAC5D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA2B;AAAA,IACnD,aAAa;AAAA,IACb,oBAAoB,CAAC,kBAAkB;AAAA,IACvC,kBAAkB;AAAA,EAAA,CACnB;AAED,QAAM,oBAAoB,YAAY,CAAC,mBAA2B;AAChE,aAAS,CAAC,SAAS;AACjB,YAAM,aAAa,CAAC,GAAG,KAAK,mBAAmB,MAAM,GAAG,KAAK,mBAAmB,CAAC,GAAG,cAAc;AAClG,aAAO;AAAA,QACL,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,kBAAkB,WAAW,SAAS;AAAA,MAAA;AAAA,IACxC,CACD;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,qBAAqB,YAAY,CAAC,UAAkB;AACxD,aAAS,CAAC,SAAS;AACjB,YAAM,WAAW,KAAK,mBAAmB;AACzC,UAAI,YAAY,KAAK,WAAW,KAAK,mBAAmB,QAAQ;AAC9D,eAAO;AAAA,UACL,GAAG;AAAA,UACH,aAAa,KAAK,mBAAmB,QAAQ;AAAA,UAC7C,kBAAkB;AAAA,QAAA;AAAA,MACpB;AAEF,aAAO;AAAA,IAAA,CACR;AAAA,EAAA,GACA,EAAE;AAEL,QAAM,wBAAwB,YAAY,MAAM;AAC9C,aAAS;AAAA,MACP,aAAa;AAAA,MACb,oBAAoB,CAAC,kBAAkB;AAAA,MACvC,kBAAkB;AAAA,IAAA,CACnB;AAAA,EAAA,GACA,CAAC,kBAAkB,CAAC;AAEvB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,aAAa;AAAA,MACb,oBAAoB,CAAC,kBAAkB;AAAA,MACvC,kBAAkB;AAAA,IAAA,CACnB;AAAA,EAAA,GACA,CAAC,kBAAkB,CAAC;AAEvB,SAAO;AAAA,IACL,aAAa,MAAM;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB,MAAM;AAAA,EAAA;AAE5B;AC7dO,MAAM,qBAAqB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBASnB,CAAC,UAAU,eAAe,MAAM,QAAQ,CAAC;AAAA,0BACrC,CAAC,UAAU,MAAM,QAAQ;AAAA;AAGnD,MAAM,4BAA4B,CAAC,UAAkC;;AACnE,MAAI,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQpB,kBAAgB;AAAA;AAAA,WAET,WAAM,eAAN,mBAAkB,eAAc,cAAc,QAAQ,aAAW,WAAM,gBAAN,mBAAmB,eAAc,eAAe,QAAQ;AAAA,WACzH,WAAM,eAAN,mBAAkB,eAAc,gBAAc,WAAM,eAAN,mBAAkB,YAAW,cAAc,KAAK,UAAQ,WAAM,gBAAN,mBAAmB,eAAc,iBAAe,WAAM,gBAAN,mBAAmB,YAAW,eAAe,KAAK;AAAA;AAAA,WAExM,WAAM,eAAN,mBAAkB,eAAc,cAAc,QAAQ,aAAW,WAAM,gBAAN,mBAAmB,eAAc,eAAe,QAAQ;AAAA;AAGhI,SAAO;AACT;AAEA,SAAS,qBAAqB,OAO3B;AACD,SAAO;AAAA,6BACoB,MAAM,GAAG,MAAM,cAAc,QAAQ,MAAM,eAAe,EAAE;AAAA,0BAC/D,MACpB,GAAG,MAAM,kBAAkB,IAAI,MAAM,YAAY,IAAI,MAAM,SAAS,QAAQ,MAAM,YAAY,EAAE;AAAA;AAEtG;AACA,MAAM,iBAAiB;AAAA,IACnB,CAAC,UAAU;;AACX,QAAM,kBAAiB,iBAAM,eAAN,mBAAkB,WAAlB,mBAA0B;AACjD,QAAM,mBAAkB,iBAAM,gBAAN,mBAAmB,WAAnB,mBAA2B;AACnD,QAAM,sBAAqB,iBAAM,kBAAN,mBAAqB,WAArB,mBAA6B;AACxD,QAAM,gBAAe,iBAAM,YAAN,mBAAe,WAAf,mBAAuB;AAC5C,QAAM,aAAY,iBAAM,SAAN,mBAAY,WAAZ,mBAAoB;AACtC,QAAM,gBAAe,iBAAM,YAAN,mBAAe,WAAf,mBAAuB;AAC5C,SAAO,qBAAqB;AAAA,IAC1B,gBAAgB,kBAAkB;AAAA,IAClC,iBAAiB,mBAAmB;AAAA,IACpC,oBAAoB,sBAAsB;AAAA,IAC1C,cAAc,gBAAgB;AAAA,IAC9B,WAAW,aAAa;AAAA,IACxB,cAAc,gBAAgB;AAAA,EAAA,CAC/B;AACH,CAAC;AAAA,IACC,CAAC,UAAU;;AACX,QAAM,kBAAiB,WAAM,eAAN,mBAAkB;AACzC,QAAM,mBAAkB,WAAM,gBAAN,mBAAmB;AAC3C,QAAM,sBAAqB,WAAM,kBAAN,mBAAqB;AAChD,QAAM,gBAAe,WAAM,YAAN,mBAAe;AACpC,QAAM,aAAY,WAAM,SAAN,mBAAY;AAC9B,QAAM,gBAAe,WAAM,YAAN,mBAAe;AAEpC,SAAO,OAAO,QAAQ,MAAM,MAAM,OAAO,EACtC,OAAO,CAAC,CAAC,GAAG,MAAM,QAAQ,SAAS,EACnC,IAAI,CAAC,CAAC,GAAG,MAAM;;AACd,UAAM,YAAY;AAClB,UAAM,eAAcC,MAAA,MAAM,MAAM,QAAQ,SAAS,MAA7B,gBAAAA,IAAgC;AACpD,QAAI,CAAC,YAAa,QAAO;AACzB,WAAO;AAAA,+BACgB,WAAW;AAAA,cAC5B,qBAAqB;AAAA,MACrB,gBAAgB,kBAAkB,eAAe,SAAS,IAAI,eAAe,SAAS,IAAI;AAAA,MAC1F,iBAAiB,mBAAmB,gBAAgB,SAAS,IAAI,gBAAgB,SAAS,IAAI;AAAA,MAC9F,oBACE,sBAAsB,mBAAmB,SAAS,IAAI,mBAAmB,SAAS,IAAI;AAAA,MACxF,cAAc,gBAAgB,aAAa,SAAS,IAAI,aAAa,SAAS,IAAI;AAAA,MAClF,WAAW,aAAa,UAAU,SAAS,IAAI,UAAU,SAAS,IAAI;AAAA,MACtE,cAAc,gBAAgB,aAAa,SAAS,IAAI,aAAa,SAAS,IAAI;AAAA,IAAA,CACnF,CAAC;AAAA;AAAA;AAAA,EAAA,CAGP;AACL,CAAC;AAAA;AAEI,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYpC,iBAAiB;AAAA;AAAA,IAEjB,CAAC,UAAU;AAAA,2BACY,0BAA0B,KAAK,CAAC;AAAA,GACxD;AAAA;AAAA,IAEC,cAAc;AAAA;AAGX,MAAM,4BAA4B,OAAO;AAAA,aACnC,CAAC,UAAA;;AAAU,+CAAO,UAAP,mBAAc,WAAU;AAAA,CAAM;AAAA;AAAA;AAAA;AAAA;AAAA,cAKxC,CAAC,UAAW,MAAM,kBAAkB,SAAS,SAAU;AAAA;AAAA;AAI9D,MAAM,gCAAgC,OAAO;AAAA,aACvC,CAAC,UAAA;;AAAU,+CAAO,kBAAP,mBAAsB,WAAU;AAAA,CAAM;AAAA;AAAA;AAAA;AAKvD,MAAM,0BAA0B,OAAO;AAAA,aACjC,CAAC,UAAA;;AAAU,+CAAO,YAAP,mBAAgB,WAAU;AAAA,CAAM;AAAA;AAAA;AAAA;AAKjD,MAAM,0BAA0B,OAAO;AAAA,aACjC,CAAC,UAAA;;AAAU,+CAAO,YAAP,mBAAgB,WAAU;AAAA,CAAM;AAAA;AAAA;AAAA;AAKjD,MAAM,uBAAuB,OAAO;AAAA,aAC9B,CAAC,UAAA;;AAAU,+CAAO,SAAP,mBAAa,WAAU;AAAA,CAAM;AAAA;AAAA;AAAA;AAK9C,MAAM,6BAA6B,OAAO;AAAA,aACpC,CAAC,UAAA;;AAAU,+CAAO,eAAP,mBAAmB,WAAU;AAAA,CAAM;AAAA;AAAA;AAAA;AAKpD,MAAM,8BAA8B,OAAO;AAAA,aACrC,CAAC,UAAA;;AAAU,+CAAO,gBAAP,mBAAoB,WAAU;AAAA,CAAM;AAAA;AAAA;AAAA;AC7JrD,MAAM,SAAS,MAAM;AAC1B,QAAM,UAAU,WAAW,UAAU;AACrC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAAA;AAE7D,SAAO;AACT;"}