nucleus-core-ts 0.8.7 → 0.8.8

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 (203) hide show
  1. package/dist/client.js +1 -1
  2. package/dist/fe/components/AbstractAnimatedBackground/index.js +437 -0
  3. package/dist/fe/components/AuthorizationPage/components/AuthorizationPage.js +841 -0
  4. package/dist/fe/components/AuthorizationPage/components/ClaimList.js +100 -0
  5. package/dist/fe/components/AuthorizationPage/components/RoleClaimEditor.js +232 -0
  6. package/dist/fe/components/AuthorizationPage/components/RoleList.js +115 -0
  7. package/dist/fe/components/AuthorizationPage/index.js +6 -0
  8. package/dist/fe/components/AuthorizationPage/store/index.js +117 -0
  9. package/dist/fe/components/AuthorizationPage/theme/index.js +137 -0
  10. package/dist/fe/components/AuthorizationPage/types/index.js +1 -0
  11. package/dist/fe/components/Button/components/Button.js +158 -0
  12. package/dist/fe/components/Button/components/ButtonSpinner.js +52 -0
  13. package/dist/fe/components/Button/index.js +3 -0
  14. package/dist/fe/components/Button/theme/index.js +186 -0
  15. package/dist/fe/components/Button/types/index.js +1 -0
  16. package/dist/fe/components/Button/utils/cn.js +5 -0
  17. package/dist/fe/components/Captcha/components/Captcha.js +311 -0
  18. package/dist/fe/components/Captcha/index.js +2 -0
  19. package/dist/fe/components/Captcha/theme.js +52 -0
  20. package/dist/fe/components/Captcha/types.js +1 -0
  21. package/dist/fe/components/ChangePasswordPage/components/ChangePasswordForm.js +242 -0
  22. package/dist/fe/components/ChangePasswordPage/components/ChangePasswordHeader.js +39 -0
  23. package/dist/fe/components/ChangePasswordPage/components/ChangePasswordPage.js +60 -0
  24. package/dist/fe/components/ChangePasswordPage/index.js +5 -0
  25. package/dist/fe/components/ChangePasswordPage/store/index.js +44 -0
  26. package/dist/fe/components/ChangePasswordPage/theme/index.js +87 -0
  27. package/dist/fe/components/ChangePasswordPage/types/index.js +1 -0
  28. package/dist/fe/components/Checkbox/components/Checkbox.js +115 -0
  29. package/dist/fe/components/Checkbox/components/CheckboxIcon.js +119 -0
  30. package/dist/fe/components/Checkbox/components/SwitchTrack.js +178 -0
  31. package/dist/fe/components/Checkbox/index.js +4 -0
  32. package/dist/fe/components/Checkbox/theme/index.js +221 -0
  33. package/dist/fe/components/Checkbox/types/index.js +1 -0
  34. package/dist/fe/components/Checkbox/utils/cn.js +5 -0
  35. package/dist/fe/components/DataTable/DataTable.js +225 -0
  36. package/dist/fe/components/DataTable/components/ActionCell.js +26 -0
  37. package/dist/fe/components/DataTable/components/DataCell.js +76 -0
  38. package/dist/fe/components/DataTable/components/EditableCell.js +221 -0
  39. package/dist/fe/components/DataTable/components/EmptyState.js +29 -0
  40. package/dist/fe/components/DataTable/components/HeaderCell.js +64 -0
  41. package/dist/fe/components/DataTable/components/InfiniteScrollTrigger.js +66 -0
  42. package/dist/fe/components/DataTable/components/LoadingSpinner.js +19 -0
  43. package/dist/fe/components/DataTable/components/ResizeHandle.js +41 -0
  44. package/dist/fe/components/DataTable/components/SelectionCell.js +105 -0
  45. package/dist/fe/components/DataTable/components/SkeletonRow.js +56 -0
  46. package/dist/fe/components/DataTable/components/SkeletonTable.js +83 -0
  47. package/dist/fe/components/DataTable/components/SortIcon.js +39 -0
  48. package/dist/fe/components/DataTable/components/TableHeader.js +49 -0
  49. package/dist/fe/components/DataTable/components/TableRow.js +118 -0
  50. package/dist/fe/components/DataTable/components/index.js +14 -0
  51. package/dist/fe/components/DataTable/hooks/index.js +2 -0
  52. package/dist/fe/components/DataTable/hooks/useAutoFitColumn.js +23 -0
  53. package/dist/fe/components/DataTable/hooks/useResizeColumn.js +122 -0
  54. package/dist/fe/components/DataTable/index.js +3 -0
  55. package/dist/fe/components/DataTable/store/index.js +97 -0
  56. package/dist/fe/components/DataTable/theme/index.js +144 -0
  57. package/dist/fe/components/DataTable/types/index.js +1 -0
  58. package/dist/fe/components/DataTable/utils/cn.js +5 -0
  59. package/dist/fe/components/DatePicker/components/CalendarGrid.js +95 -0
  60. package/dist/fe/components/DatePicker/components/CalendarHeader.js +152 -0
  61. package/dist/fe/components/DatePicker/components/DatePicker.js +381 -0
  62. package/dist/fe/components/DatePicker/components/MonthYearSelector.js +93 -0
  63. package/dist/fe/components/DatePicker/index.js +7 -0
  64. package/dist/fe/components/DatePicker/locales/index.js +1113 -0
  65. package/dist/fe/components/DatePicker/theme/index.js +315 -0
  66. package/dist/fe/components/DatePicker/types/index.js +1 -0
  67. package/dist/fe/components/DatePicker/utils/cn.js +5 -0
  68. package/dist/fe/components/DatePicker/utils/date.js +132 -0
  69. package/dist/fe/components/DevicesPage/components/DeviceCard.js +251 -0
  70. package/dist/fe/components/DevicesPage/components/DevicesHeader.js +42 -0
  71. package/dist/fe/components/DevicesPage/components/DevicesPage.js +450 -0
  72. package/dist/fe/components/DevicesPage/index.js +5 -0
  73. package/dist/fe/components/DevicesPage/store/index.js +55 -0
  74. package/dist/fe/components/DevicesPage/theme/index.js +131 -0
  75. package/dist/fe/components/DevicesPage/types/index.js +1 -0
  76. package/dist/fe/components/ForgotPasswordPage/components/ForgotPasswordForm.js +214 -0
  77. package/dist/fe/components/ForgotPasswordPage/components/ForgotPasswordHeader.js +42 -0
  78. package/dist/fe/components/ForgotPasswordPage/components/ForgotPasswordPage.js +59 -0
  79. package/dist/fe/components/ForgotPasswordPage/index.js +5 -0
  80. package/dist/fe/components/ForgotPasswordPage/store/index.js +28 -0
  81. package/dist/fe/components/ForgotPasswordPage/theme/index.js +87 -0
  82. package/dist/fe/components/ForgotPasswordPage/types/index.js +1 -0
  83. package/dist/fe/components/FormBuilder/components/FormBuilder.js +156 -0
  84. package/dist/fe/components/FormBuilder/components/FormField.js +218 -0
  85. package/dist/fe/components/FormBuilder/hooks/useFormBuilder.js +152 -0
  86. package/dist/fe/components/FormBuilder/index.js +4 -0
  87. package/dist/fe/components/FormBuilder/theme/index.js +134 -0
  88. package/dist/fe/components/FormBuilder/types/index.js +1 -0
  89. package/dist/fe/components/FormBuilder/utils/cn.js +5 -0
  90. package/dist/fe/components/FormBuilder/utils/fieldMapping.js +216 -0
  91. package/dist/fe/components/FormBuilder/utils/validation.js +78 -0
  92. package/dist/fe/components/LoginPage/components/LoginForm.js +214 -0
  93. package/dist/fe/components/LoginPage/components/LoginHeader.js +24 -0
  94. package/dist/fe/components/LoginPage/components/LoginPage.js +138 -0
  95. package/dist/fe/components/LoginPage/index.js +5 -0
  96. package/dist/fe/components/LoginPage/store/index.js +59 -0
  97. package/dist/fe/components/LoginPage/theme/index.js +98 -0
  98. package/dist/fe/components/LoginPage/types/index.js +1 -0
  99. package/dist/fe/components/MagicLinkVerifyPage/components/MagicLinkVerifyPage.js +200 -0
  100. package/dist/fe/components/MagicLinkVerifyPage/index.js +3 -0
  101. package/dist/fe/components/MagicLinkVerifyPage/store.js +20 -0
  102. package/dist/fe/components/MagicLinkVerifyPage/theme.js +36 -0
  103. package/dist/fe/components/MagicLinkVerifyPage/types.js +1 -0
  104. package/dist/fe/components/NucleusEntityShowcase.js +1409 -0
  105. package/dist/fe/components/NucleusTextInput/components/FloatingLabel.js +56 -0
  106. package/dist/fe/components/NucleusTextInput/components/InputIcons.js +258 -0
  107. package/dist/fe/components/NucleusTextInput/components/NucleusTextInput.js +321 -0
  108. package/dist/fe/components/NucleusTextInput/components/PasswordStrengthIndicator.js +104 -0
  109. package/dist/fe/components/NucleusTextInput/components/TypewriterText.js +56 -0
  110. package/dist/fe/components/NucleusTextInput/index.js +7 -0
  111. package/dist/fe/components/NucleusTextInput/theme/index.js +121 -0
  112. package/dist/fe/components/NucleusTextInput/types/index.js +1 -0
  113. package/dist/fe/components/NucleusTextInput/utils/cn.js +5 -0
  114. package/dist/fe/components/NucleusTextInput/utils/format.js +62 -0
  115. package/dist/fe/components/NucleusTextInput/utils/validation.js +191 -0
  116. package/dist/fe/components/ProfilePage/components/AddressCard.js +196 -0
  117. package/dist/fe/components/ProfilePage/components/PhoneCard.js +206 -0
  118. package/dist/fe/components/ProfilePage/components/ProfileHeader.js +150 -0
  119. package/dist/fe/components/ProfilePage/components/ProfilePage.js +1336 -0
  120. package/dist/fe/components/ProfilePage/index.js +6 -0
  121. package/dist/fe/components/ProfilePage/store/index.js +115 -0
  122. package/dist/fe/components/ProfilePage/theme/index.js +168 -0
  123. package/dist/fe/components/ProfilePage/types/index.js +1 -0
  124. package/dist/fe/components/RangePicker/components/RangePicker.js +338 -0
  125. package/dist/fe/components/RangePicker/components/RangeThumb.js +68 -0
  126. package/dist/fe/components/RangePicker/components/RangeTooltip.js +45 -0
  127. package/dist/fe/components/RangePicker/components/RangeTrack.js +32 -0
  128. package/dist/fe/components/RangePicker/index.js +5 -0
  129. package/dist/fe/components/RangePicker/theme/index.js +88 -0
  130. package/dist/fe/components/RangePicker/types/index.js +1 -0
  131. package/dist/fe/components/RangePicker/utils/cn.js +3 -0
  132. package/dist/fe/components/RegisterPage/components/PasswordStrengthIndicator.js +107 -0
  133. package/dist/fe/components/RegisterPage/components/RegisterForm.js +322 -0
  134. package/dist/fe/components/RegisterPage/components/RegisterHeader.js +23 -0
  135. package/dist/fe/components/RegisterPage/components/RegisterPage.js +85 -0
  136. package/dist/fe/components/RegisterPage/index.js +6 -0
  137. package/dist/fe/components/RegisterPage/store/index.js +106 -0
  138. package/dist/fe/components/RegisterPage/theme/index.js +128 -0
  139. package/dist/fe/components/RegisterPage/types/index.js +1 -0
  140. package/dist/fe/components/ResetPasswordPage/components/ResetPasswordForm.js +347 -0
  141. package/dist/fe/components/ResetPasswordPage/components/ResetPasswordHeader.js +42 -0
  142. package/dist/fe/components/ResetPasswordPage/components/ResetPasswordPage.js +61 -0
  143. package/dist/fe/components/ResetPasswordPage/index.js +5 -0
  144. package/dist/fe/components/ResetPasswordPage/store/index.js +36 -0
  145. package/dist/fe/components/ResetPasswordPage/theme/index.js +99 -0
  146. package/dist/fe/components/ResetPasswordPage/types/index.js +1 -0
  147. package/dist/fe/components/SearchBox/components/SearchBox.js +271 -0
  148. package/dist/fe/components/SearchBox/components/SearchBoxDropdown.js +87 -0
  149. package/dist/fe/components/SearchBox/index.js +5 -0
  150. package/dist/fe/components/SearchBox/theme/index.js +184 -0
  151. package/dist/fe/components/SearchBox/types/index.js +1 -0
  152. package/dist/fe/components/SearchBox/utils/cn.js +5 -0
  153. package/dist/fe/components/SearchBox/utils/debounce.js +22 -0
  154. package/dist/fe/components/SearchBox/utils/sanitize.js +48 -0
  155. package/dist/fe/components/SelectBox/components/SelectBox.js +364 -0
  156. package/dist/fe/components/SelectBox/components/SelectDropdown.js +92 -0
  157. package/dist/fe/components/SelectBox/components/SelectOptionItem.js +43 -0
  158. package/dist/fe/components/SelectBox/components/SelectTrigger.js +22 -0
  159. package/dist/fe/components/SelectBox/index.js +5 -0
  160. package/dist/fe/components/SelectBox/theme/index.js +98 -0
  161. package/dist/fe/components/SelectBox/types/index.js +1 -0
  162. package/dist/fe/components/SelectBox/utils/cn.js +3 -0
  163. package/dist/fe/components/SetPasswordPage/components/PasswordStrengthIndicator.js +107 -0
  164. package/dist/fe/components/SetPasswordPage/components/SetPasswordForm.js +142 -0
  165. package/dist/fe/components/SetPasswordPage/components/SetPasswordHeader.js +23 -0
  166. package/dist/fe/components/SetPasswordPage/components/SetPasswordPage.js +263 -0
  167. package/dist/fe/components/SetPasswordPage/index.js +7 -0
  168. package/dist/fe/components/SetPasswordPage/store/index.js +79 -0
  169. package/dist/fe/components/SetPasswordPage/theme/index.js +98 -0
  170. package/dist/fe/components/SetPasswordPage/types/index.js +12 -0
  171. package/dist/fe/components/UsersPage/components/InviteUserModal.js +262 -0
  172. package/dist/fe/components/UsersPage/components/Pagination.js +147 -0
  173. package/dist/fe/components/UsersPage/components/RoleAssignmentModal.js +186 -0
  174. package/dist/fe/components/UsersPage/components/StatsCards.js +124 -0
  175. package/dist/fe/components/UsersPage/components/UserDetailDrawer.js +444 -0
  176. package/dist/fe/components/UsersPage/components/UserFilters.js +142 -0
  177. package/dist/fe/components/UsersPage/components/UserListItem.js +125 -0
  178. package/dist/fe/components/UsersPage/components/UserListSkeleton.js +40 -0
  179. package/dist/fe/components/UsersPage/components/UsersPage.js +556 -0
  180. package/dist/fe/components/UsersPage/index.js +10 -0
  181. package/dist/fe/components/UsersPage/store/index.js +151 -0
  182. package/dist/fe/components/UsersPage/theme/index.js +231 -0
  183. package/dist/fe/components/UsersPage/types/index.js +1 -0
  184. package/dist/fe/components/VerifyEmailPage/components/VerifyEmailPage.js +290 -0
  185. package/dist/fe/components/VerifyEmailPage/index.js +3 -0
  186. package/dist/fe/components/VerifyEmailPage/store/index.js +45 -0
  187. package/dist/fe/components/VerifyEmailPage/theme/index.js +52 -0
  188. package/dist/fe/components/VerifyEmailPage/types/index.js +1 -0
  189. package/dist/fe/hooks/useNucleusEntity.js +247 -0
  190. package/dist/fe/index.js +28 -157
  191. package/dist/fe/types/index.js +1 -0
  192. package/dist/fe/utils/cn.js +5 -0
  193. package/dist/fe/utils/columnUtils.js +189 -0
  194. package/dist/fe/utils/endpointKeys.js +44 -0
  195. package/dist/index.js +1 -1
  196. package/dist/src/Client/Proxy/httpProxy.js +1 -0
  197. package/dist/src/Client/Proxy/index.js +1 -1
  198. package/dist/src/Client/Proxy/server.js +1 -0
  199. package/dist/src/Client/Proxy/types.js +1 -0
  200. package/dist/src/Client/Proxy/utils.js +1 -0
  201. package/dist/src/Client/Proxy/wsProxy.js +1 -0
  202. package/package.json +1 -1
  203. package/scripts/build.ts +32 -16
package/dist/client.js CHANGED
@@ -1 +1 @@
1
- function _0xe3a3(){var _0x15da44=['mte4nJyYAevPtwnk','ndCZnZbrs3LKyMi','mZy5mJb0A0vyBKS','mtiWmZmXmLnpyKjoDW','odi5og1JB0r3rW','oefXBNvhsG','mtvfAhzfBum','nZKWmtG4u21wBw1q','nJy3odG4sNbSCwvs'];_0xe3a3=function(){return _0x15da44;};return _0xe3a3();}(function(_0x28c8cd,_0x742156){var _0x336384=_0x47e0,_0x568de6=_0x28c8cd();while(!![]){try{var _0x51b633=-parseInt(_0x336384(0x16d))/0x1+parseInt(_0x336384(0x16a))/0x2+-parseInt(_0x336384(0x16b))/0x3*(parseInt(_0x336384(0x170))/0x4)+-parseInt(_0x336384(0x171))/0x5*(-parseInt(_0x336384(0x16c))/0x6)+parseInt(_0x336384(0x172))/0x7+-parseInt(_0x336384(0x16e))/0x8+parseInt(_0x336384(0x16f))/0x9;if(_0x51b633===_0x742156)break;else _0x568de6['push'](_0x568de6['shift']());}catch(_0x29c13d){_0x568de6['push'](_0x568de6['shift']());}}}(_0xe3a3,0x320c1));function _0x47e0(_0x4bf846,_0x36becd){_0x4bf846=_0x4bf846-0x16a;var _0xe3a386=_0xe3a3();var _0x47e0a0=_0xe3a386[_0x4bf846];if(_0x47e0['xyJARa']===undefined){var _0x752d02=function(_0x5828af){var _0x28b0c3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xb2246e='',_0x2b6516='';for(var _0x56862d=0x0,_0x267d1c,_0x327160,_0x3cd0f2=0x0;_0x327160=_0x5828af['charAt'](_0x3cd0f2++);~_0x327160&&(_0x267d1c=_0x56862d%0x4?_0x267d1c*0x40+_0x327160:_0x327160,_0x56862d++%0x4)?_0xb2246e+=String['fromCharCode'](0xff&_0x267d1c>>(-0x2*_0x56862d&0x6)):0x0){_0x327160=_0x28b0c3['indexOf'](_0x327160);}for(var _0x1e323f=0x0,_0x277e06=_0xb2246e['length'];_0x1e323f<_0x277e06;_0x1e323f++){_0x2b6516+='%'+('00'+_0xb2246e['charCodeAt'](_0x1e323f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b6516);};_0x47e0['hxLZky']=_0x752d02,_0x47e0['AqYKPy']={},_0x47e0['xyJARa']=!![];}var _0x37b92e=_0xe3a386[0x0],_0x1672f9=_0x4bf846+_0x37b92e,_0x516e69=_0x47e0['AqYKPy'][_0x1672f9];return!_0x516e69?(_0x47e0a0=_0x47e0['hxLZky'](_0x47e0a0),_0x47e0['AqYKPy'][_0x1672f9]=_0x47e0a0):_0x47e0a0=_0x516e69,_0x47e0a0;}export*from'./src/Client/ApiCaller';
1
+ (function(_0x2e564c,_0x36127b){var _0x933a8d=_0x1275,_0x731a14=_0x2e564c();while(!![]){try{var _0x50715c=-parseInt(_0x933a8d(0x193))/0x1+parseInt(_0x933a8d(0x18e))/0x2+parseInt(_0x933a8d(0x192))/0x3*(parseInt(_0x933a8d(0x18f))/0x4)+parseInt(_0x933a8d(0x18d))/0x5*(parseInt(_0x933a8d(0x191))/0x6)+parseInt(_0x933a8d(0x18c))/0x7+parseInt(_0x933a8d(0x190))/0x8+parseInt(_0x933a8d(0x195))/0x9*(-parseInt(_0x933a8d(0x194))/0xa);if(_0x50715c===_0x36127b)break;else _0x731a14['push'](_0x731a14['shift']());}catch(_0xe1fee4){_0x731a14['push'](_0x731a14['shift']());}}}(_0x3cdf,0x8baa2));function _0x1275(_0x4c01d4,_0x1beba0){_0x4c01d4=_0x4c01d4-0x18c;var _0x3cdfff=_0x3cdf();var _0x1275ea=_0x3cdfff[_0x4c01d4];if(_0x1275['AMKpjq']===undefined){var _0x378cf1=function(_0x361b0f){var _0x1fb2a3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3206c6='',_0x152e9e='';for(var _0x508787=0x0,_0x537b52,_0x57c4b5,_0x54957d=0x0;_0x57c4b5=_0x361b0f['charAt'](_0x54957d++);~_0x57c4b5&&(_0x537b52=_0x508787%0x4?_0x537b52*0x40+_0x57c4b5:_0x57c4b5,_0x508787++%0x4)?_0x3206c6+=String['fromCharCode'](0xff&_0x537b52>>(-0x2*_0x508787&0x6)):0x0){_0x57c4b5=_0x1fb2a3['indexOf'](_0x57c4b5);}for(var _0x5e9513=0x0,_0x38a4e3=_0x3206c6['length'];_0x5e9513<_0x38a4e3;_0x5e9513++){_0x152e9e+='%'+('00'+_0x3206c6['charCodeAt'](_0x5e9513)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x152e9e);};_0x1275['UuaMXN']=_0x378cf1,_0x1275['DMNNpE']={},_0x1275['AMKpjq']=!![];}var _0x8e8e93=_0x3cdfff[0x0],_0x180dee=_0x4c01d4+_0x8e8e93,_0x288256=_0x1275['DMNNpE'][_0x180dee];return!_0x288256?(_0x1275ea=_0x1275['UuaMXN'](_0x1275ea),_0x1275['DMNNpE'][_0x180dee]=_0x1275ea):_0x1275ea=_0x288256,_0x1275ea;}function _0x3cdf(){var _0x451c44=['nJm2mdyZtxjdsvzQ','mteZnZa5otbcywn2wuu','mJDyv1jiuNi','nJe5nZu1nvHRBNLpva','ndGWodKWnxfQz2rtBa','mtu3nJe0mK9hB2TJra','odu4ote2EezWuwvL','otaWmJm0nefhuxbqAq','nNLhyNb3rG','mtjZr2XtBK4'];_0x3cdf=function(){return _0x451c44;};return _0x3cdf();}export*from'./src/Client/ApiCaller';
@@ -0,0 +1,437 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Canvas, useFrame } from "@react-three/fiber";
4
+ import { Suspense, useRef } from "react";
5
+ import { DoubleSide, ShaderMaterial, Vector2 } from "three";
6
+ const BUBBLE_SPECS = [
7
+ {
8
+ size: 32,
9
+ left: "12%",
10
+ top: "18%",
11
+ delay: "0s",
12
+ duration: "8s",
13
+ opacity: 0.55
14
+ },
15
+ {
16
+ size: 20,
17
+ left: "28%",
18
+ top: "72%",
19
+ delay: "2s",
20
+ duration: "7s",
21
+ opacity: 0.4
22
+ },
23
+ {
24
+ size: 26,
25
+ left: "46%",
26
+ top: "36%",
27
+ delay: "1s",
28
+ duration: "6.5s",
29
+ opacity: 0.48
30
+ },
31
+ {
32
+ size: 18,
33
+ left: "64%",
34
+ top: "58%",
35
+ delay: "3s",
36
+ duration: "7.4s",
37
+ opacity: 0.35
38
+ },
39
+ {
40
+ size: 24,
41
+ left: "78%",
42
+ top: "28%",
43
+ delay: "1.8s",
44
+ duration: "8.5s",
45
+ opacity: 0.5
46
+ },
47
+ {
48
+ size: 16,
49
+ left: "86%",
50
+ top: "62%",
51
+ delay: "4.1s",
52
+ duration: "6.8s",
53
+ opacity: 0.38
54
+ },
55
+ {
56
+ size: 28,
57
+ left: "32%",
58
+ top: "52%",
59
+ delay: "2.6s",
60
+ duration: "7.2s",
61
+ opacity: 0.44
62
+ },
63
+ {
64
+ size: 14,
65
+ left: "58%",
66
+ top: "22%",
67
+ delay: "0.8s",
68
+ duration: "6.2s",
69
+ opacity: 0.32
70
+ }
71
+ ];
72
+ const MARBLE_VERTEX_SHADER = /* glsl */ `
73
+ varying vec2 vUv;
74
+ void main() {
75
+ vUv = uv;
76
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
77
+ }
78
+ `;
79
+ const MARBLE_FRAGMENT_SHADER = /* glsl */ `
80
+ precision highp float;
81
+
82
+ varying vec2 vUv;
83
+
84
+ uniform float uTime;
85
+ uniform vec2 uPointer;
86
+ uniform float uBaseShift;
87
+ uniform float uAccentShift;
88
+ uniform float uFlashIntensity;
89
+
90
+ float hash(vec2 p) {
91
+ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
92
+ }
93
+
94
+ float noise(vec2 p) {
95
+ vec2 i = floor(p);
96
+ vec2 f = fract(p);
97
+ float a = hash(i);
98
+ float b = hash(i + vec2(1.0, 0.0));
99
+ float c = hash(i + vec2(0.0, 1.0));
100
+ float d = hash(i + vec2(1.0, 1.0));
101
+ vec2 u = f * f * (3.0 - 2.0 * f);
102
+ return mix(a, b, u.x) + (c - a) * u.y * (1.0 - u.x) + (d - b) * u.x * u.y;
103
+ }
104
+
105
+ float fbm(vec2 p) {
106
+ float total = 0.0;
107
+ float amplitude = 0.5;
108
+ for (int i = 0; i < 5; i++) {
109
+ total += noise(p) * amplitude;
110
+ p *= 2.0;
111
+ amplitude *= 0.5;
112
+ }
113
+ return total;
114
+ }
115
+
116
+ vec3 palette(float t, float timeShift) {
117
+ float cycle = sin(timeShift * 0.08) * 0.5 + 0.5;
118
+
119
+ vec3 blue = vec3(0.345, 0.486, 0.968);
120
+ vec3 purple = vec3(0.639, 0.451, 0.937);
121
+ vec3 pink = vec3(0.925, 0.337, 0.745);
122
+ vec3 teal = vec3(0.2, 0.8, 0.7);
123
+ vec3 orange = vec3(0.95, 0.6, 0.25);
124
+ vec3 whiteHighlight = vec3(0.98, 0.96, 0.99);
125
+
126
+ vec3 primaryA = mix(blue, teal, cycle);
127
+ vec3 primaryB = mix(purple, orange, cycle);
128
+ vec3 accentA = mix(pink, vec3(0.4, 0.9, 0.6), cycle);
129
+ vec3 accentB = mix(whiteHighlight, vec3(1.0, 0.9, 0.7), cycle);
130
+
131
+ vec3 base = mix(primaryA, primaryB, smoothstep(0.2, 0.8, t));
132
+ vec3 accent = mix(accentA, accentB, smoothstep(0.5, 1.0, t));
133
+ return mix(base, accent, 0.45 + 0.35 * sin(t * 3.14159));
134
+ }
135
+
136
+ void main() {
137
+ vec2 uv = vUv * 2.6 - 1.3;
138
+ vec2 flowUv = uv;
139
+ flowUv.x += uPointer.x * 0.18;
140
+ flowUv.y += uPointer.y * 0.12;
141
+
142
+ float t = uTime * 0.12;
143
+ float basePattern = fbm(flowUv * 2.6 + t);
144
+ float swirl = fbm(vec2(flowUv.y + basePattern * 0.6 + t * 0.5, flowUv.x + t));
145
+ float marble = sin((flowUv.x + swirl * 1.6) * 6.0 + basePattern * 2.4 + t * 2.4);
146
+ float accent = fbm(flowUv * 4.2 + uBaseShift + t * 1.2);
147
+ float highlight = smoothstep(0.55, 0.9, fbm(flowUv * 6.0 + uAccentShift + t * 0.8));
148
+
149
+ float finalPattern = (marble * 0.35 + basePattern * 0.4 + accent * 0.25);
150
+ finalPattern = 0.5 + 0.5 * finalPattern;
151
+ vec3 color = palette(finalPattern, uTime);
152
+
153
+ float depth = smoothstep(0.0, 0.6, basePattern) * 0.4;
154
+ float sheen = highlight * 0.6;
155
+
156
+ color += vec3(0.08, 0.06, 0.12) * depth;
157
+ color += vec3(0.25, 0.28, 0.35) * sheen;
158
+
159
+ color += vec3(0.82, 0.86, 1.0) * uFlashIntensity * 0.15;
160
+
161
+ gl_FragColor = vec4(color, 0.95 + uFlashIntensity * 0.012);
162
+ }
163
+ `;
164
+ function combineClassNames(baseClassName, extraClassName) {
165
+ if (!extraClassName) {
166
+ return baseClassName;
167
+ }
168
+ return `${baseClassName} ${extraClassName}`;
169
+ }
170
+ function useMarbleMaterial() {
171
+ const materialRef = useRef(null);
172
+ const uniforms = {
173
+ uTime: {
174
+ value: 0
175
+ },
176
+ uPointer: {
177
+ value: new Vector2(0, 0)
178
+ },
179
+ uBaseShift: {
180
+ value: Math.random() * 10
181
+ },
182
+ uAccentShift: {
183
+ value: Math.random() * 20
184
+ },
185
+ uFlashIntensity: {
186
+ value: 0
187
+ }
188
+ };
189
+ function handleFrame(state, delta) {
190
+ if (!materialRef.current) {
191
+ return;
192
+ }
193
+ uniforms.uTime.value += delta;
194
+ uniforms.uPointer.value.set(state.pointer.x, state.pointer.y);
195
+ const { uniforms: activeUniforms } = materialRef.current;
196
+ if (activeUniforms.uTime) {
197
+ activeUniforms.uTime.value = uniforms.uTime.value;
198
+ }
199
+ if (activeUniforms.uPointer) {
200
+ activeUniforms.uPointer.value.copy(uniforms.uPointer.value);
201
+ }
202
+ if (activeUniforms.uFlashIntensity) {
203
+ activeUniforms.uFlashIntensity.value = uniforms.uFlashIntensity.value;
204
+ }
205
+ }
206
+ useFrame(handleFrame);
207
+ if (materialRef.current === null) {
208
+ materialRef.current = new ShaderMaterial({
209
+ vertexShader: MARBLE_VERTEX_SHADER,
210
+ fragmentShader: MARBLE_FRAGMENT_SHADER,
211
+ transparent: true,
212
+ depthWrite: false,
213
+ side: DoubleSide,
214
+ uniforms: {
215
+ uTime: uniforms.uTime,
216
+ uPointer: uniforms.uPointer,
217
+ uBaseShift: uniforms.uBaseShift,
218
+ uAccentShift: uniforms.uAccentShift,
219
+ uFlashIntensity: uniforms.uFlashIntensity
220
+ }
221
+ });
222
+ materialRef.current.needsUpdate = true;
223
+ }
224
+ return materialRef;
225
+ }
226
+ function MarblePlane({ lightningValue }) {
227
+ const materialRef = useMarbleMaterial();
228
+ const meshRef = useRef(null);
229
+ function handleFrame(state, delta) {
230
+ if (!meshRef.current) {
231
+ return;
232
+ }
233
+ if (materialRef.current?.uniforms.uFlashIntensity) {
234
+ materialRef.current.uniforms.uFlashIntensity.value = lightningValue.current;
235
+ }
236
+ meshRef.current.rotation.z += delta * 0.02;
237
+ meshRef.current.position.x = state.pointer.x * 0.08;
238
+ meshRef.current.position.y = state.pointer.y * 0.04;
239
+ const scalePulse = 1.04 + Math.sin(state.clock.elapsedTime * 0.45) * 0.02;
240
+ meshRef.current.scale.set(scalePulse, scalePulse, scalePulse);
241
+ }
242
+ useFrame(handleFrame);
243
+ return /*#__PURE__*/ _jsxs("mesh", {
244
+ ref: meshRef,
245
+ position: [
246
+ 0,
247
+ 0,
248
+ 0
249
+ ],
250
+ children: [
251
+ /*#__PURE__*/ _jsx("planeGeometry", {
252
+ args: [
253
+ 4.4,
254
+ 3.2,
255
+ 64,
256
+ 64
257
+ ]
258
+ }),
259
+ /*#__PURE__*/ _jsx("primitive", {
260
+ object: materialRef.current,
261
+ attach: "material"
262
+ })
263
+ ]
264
+ });
265
+ }
266
+ function FlowHalo({ lightningValue }) {
267
+ const materialRef = useRef(null);
268
+ const meshRef = useRef(null);
269
+ if (materialRef.current === null) {
270
+ const radialShader = new ShaderMaterial({
271
+ vertexShader: MARBLE_VERTEX_SHADER,
272
+ fragmentShader: /* glsl */ `
273
+ precision mediump float;
274
+ varying vec2 vUv;
275
+ uniform float uTime;
276
+ uniform float uFlash;
277
+ void main() {
278
+ vec2 uv = vUv - 0.5;
279
+ float radius = length(uv);
280
+ float angle = atan(uv.y, uv.x);
281
+ float glow = smoothstep(0.45, 0.05, radius);
282
+ float ripple = sin(angle * 6.0 + uTime * 1.5) * 0.12;
283
+ float highlight = smoothstep(0.25 + ripple, 0.12, radius);
284
+ vec3 inner = vec3(0.32, 0.45, 0.98);
285
+ vec3 outer = vec3(0.93, 0.48, 0.78);
286
+ vec3 color = mix(outer, inner, glow);
287
+ color += highlight * 0.28 + vec3(0.82, 0.88, 1.0) * uFlash * 0.22;
288
+ gl_FragColor = vec4(color, glow * (0.48 + uFlash * 0.12));
289
+ }
290
+ `,
291
+ uniforms: {
292
+ uTime: {
293
+ value: 0
294
+ },
295
+ uFlash: {
296
+ value: 0
297
+ }
298
+ },
299
+ transparent: true,
300
+ depthWrite: false
301
+ });
302
+ materialRef.current = radialShader;
303
+ }
304
+ function handleFrame(state, delta) {
305
+ if (!materialRef.current || !meshRef.current) {
306
+ return;
307
+ }
308
+ if (materialRef.current.uniforms.uTime) {
309
+ materialRef.current.uniforms.uTime.value += delta;
310
+ }
311
+ if (materialRef.current.uniforms.uFlash) {
312
+ materialRef.current.uniforms.uFlash.value = lightningValue.current;
313
+ }
314
+ meshRef.current.rotation.z += delta * 0.08;
315
+ meshRef.current.position.x = state.pointer.x * 0.05;
316
+ meshRef.current.position.y = state.pointer.y * 0.03;
317
+ }
318
+ useFrame(handleFrame);
319
+ return /*#__PURE__*/ _jsxs("mesh", {
320
+ ref: meshRef,
321
+ position: [
322
+ 0,
323
+ 0,
324
+ -0.4
325
+ ],
326
+ children: [
327
+ /*#__PURE__*/ _jsx("planeGeometry", {
328
+ args: [
329
+ 5.4,
330
+ 3.8,
331
+ 2,
332
+ 2
333
+ ]
334
+ }),
335
+ /*#__PURE__*/ _jsx("primitive", {
336
+ object: materialRef.current,
337
+ attach: "material"
338
+ })
339
+ ]
340
+ });
341
+ }
342
+ function MarbleScene({ lightningValue }) {
343
+ return /*#__PURE__*/ _jsxs("group", {
344
+ children: [
345
+ /*#__PURE__*/ _jsx(MarblePlane, {
346
+ lightningValue: lightningValue
347
+ }),
348
+ /*#__PURE__*/ _jsx(FlowHalo, {
349
+ lightningValue: lightningValue
350
+ })
351
+ ]
352
+ });
353
+ }
354
+ function BubbleOverlay() {
355
+ return /*#__PURE__*/ _jsx("div", {
356
+ className: "absolute inset-0 pointer-events-none",
357
+ children: BUBBLE_SPECS.map(function renderBubble(spec, index) {
358
+ return /*#__PURE__*/ _jsx("span", {
359
+ className: "marble-bubble",
360
+ style: {
361
+ width: `${spec.size}px`,
362
+ height: `${spec.size}px`,
363
+ left: spec.left,
364
+ top: spec.top,
365
+ animationDelay: spec.delay,
366
+ animationDuration: spec.duration,
367
+ opacity: spec.opacity
368
+ }
369
+ }, `bubble-${index}`);
370
+ })
371
+ });
372
+ }
373
+ export function AbstractAnimatedBackground({ className }) {
374
+ const baseClassName = "absolute inset-0 overflow-hidden";
375
+ const rootClassName = combineClassNames(baseClassName, className);
376
+ const lightningValue = useRef(0);
377
+ return /*#__PURE__*/ _jsxs("div", {
378
+ className: rootClassName,
379
+ style: {
380
+ backgroundColor: "transparent"
381
+ },
382
+ children: [
383
+ /*#__PURE__*/ _jsx("div", {
384
+ className: "marble-base-gradient"
385
+ }),
386
+ /*#__PURE__*/ _jsx("div", {
387
+ className: "marble-secondary-gradient"
388
+ }),
389
+ /*#__PURE__*/ _jsx("div", {
390
+ className: "marble-overlay-gradient"
391
+ }),
392
+ /*#__PURE__*/ _jsx(Suspense, {
393
+ fallback: null,
394
+ children: /*#__PURE__*/ _jsx(Canvas, {
395
+ className: "marble-canvas",
396
+ dpr: [
397
+ 1,
398
+ 1.5
399
+ ],
400
+ gl: {
401
+ antialias: true,
402
+ alpha: true
403
+ },
404
+ camera: {
405
+ position: [
406
+ 0,
407
+ 0,
408
+ 2.5
409
+ ],
410
+ fov: 45
411
+ },
412
+ style: {
413
+ position: "absolute",
414
+ top: "50%",
415
+ left: "50%",
416
+ width: "150%",
417
+ height: "150%",
418
+ transform: "translate(-50%, -50%)"
419
+ },
420
+ children: /*#__PURE__*/ _jsx(MarbleScene, {
421
+ lightningValue: lightningValue
422
+ })
423
+ })
424
+ }),
425
+ /*#__PURE__*/ _jsx("div", {
426
+ className: "marble-swirl"
427
+ }),
428
+ /*#__PURE__*/ _jsx(BubbleOverlay, {}),
429
+ /*#__PURE__*/ _jsx("div", {
430
+ className: "marble-highlight"
431
+ }),
432
+ /*#__PURE__*/ _jsx("div", {
433
+ className: "marble-glass"
434
+ })
435
+ ]
436
+ });
437
+ }