@farzadbagheri/fb-components 0.1.0 → 0.1.3

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 (87) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +473 -131
  3. package/dist/ai.cjs +3 -3
  4. package/dist/ai.css.map +1 -1
  5. package/dist/ai.js +1 -1
  6. package/dist/backgrounds.cjs +7 -7
  7. package/dist/backgrounds.css.map +1 -1
  8. package/dist/backgrounds.js +1 -1
  9. package/dist/buttons.cjs +4 -4
  10. package/dist/buttons.css.map +1 -1
  11. package/dist/buttons.js +1 -1
  12. package/dist/{chunk-MKCSRMHF.cjs → chunk-4YAFXF3T.cjs} +2 -2
  13. package/dist/chunk-4YAFXF3T.cjs.map +1 -0
  14. package/dist/{chunk-CTD2GDO6.cjs → chunk-B5HDPUQK.cjs} +2 -2
  15. package/dist/chunk-B5HDPUQK.cjs.map +1 -0
  16. package/dist/{chunk-K5QRX5CZ.js → chunk-ENCZZRVK.js} +2 -2
  17. package/dist/chunk-ENCZZRVK.js.map +1 -0
  18. package/dist/{chunk-H6Y3EJPA.cjs → chunk-F4XFUSPM.cjs} +2 -2
  19. package/dist/chunk-F4XFUSPM.cjs.map +1 -0
  20. package/dist/{chunk-4FWJRWS5.cjs → chunk-HPWZ5OL2.cjs} +2 -2
  21. package/dist/chunk-HPWZ5OL2.cjs.map +1 -0
  22. package/dist/{chunk-JHOJY54P.js → chunk-HSY72AJ4.js} +2 -2
  23. package/dist/chunk-HSY72AJ4.js.map +1 -0
  24. package/dist/{chunk-R2F3FTBL.js → chunk-IZJHBS5M.js} +2 -2
  25. package/dist/chunk-IZJHBS5M.js.map +1 -0
  26. package/dist/{chunk-T7CC3CLH.js → chunk-J4ZYYB2O.js} +2 -2
  27. package/dist/chunk-J4ZYYB2O.js.map +1 -0
  28. package/dist/{chunk-C3ASXASL.cjs → chunk-MWSE4C6T.cjs} +2 -2
  29. package/dist/chunk-MWSE4C6T.cjs.map +1 -0
  30. package/dist/{chunk-WDUETPNG.js → chunk-O2FP27HX.js} +2 -2
  31. package/dist/chunk-O2FP27HX.js.map +1 -0
  32. package/dist/{chunk-ROKPXWY2.cjs → chunk-QTX5BFS6.cjs} +2 -2
  33. package/dist/chunk-QTX5BFS6.cjs.map +1 -0
  34. package/dist/{chunk-YQSTEIU5.js → chunk-RFI4526D.js} +2 -2
  35. package/dist/chunk-RFI4526D.js.map +1 -0
  36. package/dist/{chunk-H2AV67DY.cjs → chunk-SQPNHJ6D.cjs} +2 -2
  37. package/dist/chunk-SQPNHJ6D.cjs.map +1 -0
  38. package/dist/{chunk-BSEOOGOV.cjs → chunk-SS4GAAED.cjs} +2 -2
  39. package/dist/chunk-SS4GAAED.cjs.map +1 -0
  40. package/dist/{chunk-UWQ5QNE3.cjs → chunk-TG7XM34D.cjs} +2 -2
  41. package/dist/chunk-TG7XM34D.cjs.map +1 -0
  42. package/dist/{chunk-EIE6FLCL.js → chunk-VODRAWMB.js} +2 -2
  43. package/dist/chunk-VODRAWMB.js.map +1 -0
  44. package/dist/{chunk-RUSFF3MZ.js → chunk-XJGKXWK3.js} +2 -2
  45. package/dist/chunk-XJGKXWK3.js.map +1 -0
  46. package/dist/{chunk-JWV3IITG.js → chunk-YPBGV2B5.js} +2 -2
  47. package/dist/chunk-YPBGV2B5.js.map +1 -0
  48. package/dist/data.cjs +4 -4
  49. package/dist/data.css.map +1 -1
  50. package/dist/data.js +1 -1
  51. package/dist/heroes.cjs +2 -2
  52. package/dist/heroes.css.map +1 -1
  53. package/dist/heroes.js +1 -1
  54. package/dist/index.cjs +31 -31
  55. package/dist/index.css.map +1 -1
  56. package/dist/index.js +9 -9
  57. package/dist/landing.cjs +2 -2
  58. package/dist/landing.css.map +1 -1
  59. package/dist/landing.js +1 -1
  60. package/dist/motion.cjs +3 -3
  61. package/dist/motion.css.map +1 -1
  62. package/dist/motion.js +1 -1
  63. package/dist/text.cjs +3 -3
  64. package/dist/text.css.map +1 -1
  65. package/dist/text.js +1 -1
  66. package/dist/ui.cjs +3 -3
  67. package/dist/ui.css.map +1 -1
  68. package/dist/ui.js +1 -1
  69. package/package.json +140 -134
  70. package/dist/chunk-4FWJRWS5.cjs.map +0 -1
  71. package/dist/chunk-BSEOOGOV.cjs.map +0 -1
  72. package/dist/chunk-C3ASXASL.cjs.map +0 -1
  73. package/dist/chunk-CTD2GDO6.cjs.map +0 -1
  74. package/dist/chunk-EIE6FLCL.js.map +0 -1
  75. package/dist/chunk-H2AV67DY.cjs.map +0 -1
  76. package/dist/chunk-H6Y3EJPA.cjs.map +0 -1
  77. package/dist/chunk-JHOJY54P.js.map +0 -1
  78. package/dist/chunk-JWV3IITG.js.map +0 -1
  79. package/dist/chunk-K5QRX5CZ.js.map +0 -1
  80. package/dist/chunk-MKCSRMHF.cjs.map +0 -1
  81. package/dist/chunk-R2F3FTBL.js.map +0 -1
  82. package/dist/chunk-ROKPXWY2.cjs.map +0 -1
  83. package/dist/chunk-RUSFF3MZ.js.map +0 -1
  84. package/dist/chunk-T7CC3CLH.js.map +0 -1
  85. package/dist/chunk-UWQ5QNE3.cjs.map +0 -1
  86. package/dist/chunk-WDUETPNG.js.map +0 -1
  87. package/dist/chunk-YQSTEIU5.js.map +0 -1
package/dist/ai.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ai/AiPromptBox.css","../src/ai/StreamingResponse.css"],"sourcesContent":[".fb-ai-prompt-box {\r\n position: relative;\r\n\r\n width: min(\r\n 100%,\r\n 680px\r\n );\r\n\r\n overflow: hidden;\r\n\r\n border:\r\n 1px solid\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.11\r\n );\r\n\r\n box-shadow:\r\n 0\r\n 25px\r\n 90px\r\n rgba(\r\n 0,\r\n 0,\r\n 0,\r\n 0.35\r\n );\r\n\r\n transition:\r\n border-color\r\n 0.2s\r\n ease,\r\n box-shadow\r\n 0.2s\r\n ease;\r\n}\r\n\r\n.fb-ai-prompt-box:focus-within {\r\n border-color:\r\n color-mix(\r\n in srgb,\r\n var(\r\n --fb-ai-prompt-accent,\r\n #9b7cff\r\n )\r\n 55%,\r\n transparent\r\n );\r\n\r\n box-shadow:\r\n 0\r\n 25px\r\n 90px\r\n rgba(\r\n 0,\r\n 0,\r\n 0,\r\n 0.35\r\n ),\r\n 0\r\n 0\r\n 0\r\n 1px\r\n color-mix(\r\n in srgb,\r\n var(\r\n --fb-ai-prompt-accent,\r\n #9b7cff\r\n )\r\n 25%,\r\n transparent\r\n );\r\n}\r\n\r\n.fb-ai-prompt-box__form {\r\n min-height: inherit;\r\n\r\n padding: 18px;\r\n\r\n display: flex;\r\n\r\n flex-direction: column;\r\n}\r\n\r\n.fb-ai-prompt-box__field {\r\n position: relative;\r\n\r\n flex: 1;\r\n\r\n display: grid;\r\n\r\n grid-template-columns:\r\n auto\r\n minmax(\r\n 0,\r\n 1fr\r\n );\r\n\r\n align-items:\r\n start;\r\n\r\n gap: 11px;\r\n}\r\n\r\n.fb-ai-prompt-box__spark {\r\n margin-top: 5px;\r\n\r\n color:\r\n var(\r\n --fb-ai-prompt-accent,\r\n #9b7cff\r\n );\r\n}\r\n\r\n.fb-ai-prompt-box\r\ntextarea {\r\n width: 100%;\r\n\r\n min-height: 85px;\r\n\r\n resize: none;\r\n\r\n border: 0;\r\n\r\n outline: 0;\r\n\r\n background:\r\n transparent;\r\n\r\n color: inherit;\r\n\r\n font: inherit;\r\n\r\n font-size: 14px;\r\n\r\n line-height: 1.6;\r\n}\r\n\r\n.fb-ai-prompt-box\r\ntextarea::placeholder {\r\n color:\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.36\r\n );\r\n}\r\n\r\n.fb-ai-prompt-box__footer {\r\n margin-top: 16px;\r\n\r\n display: flex;\r\n\r\n align-items: center;\r\n\r\n justify-content:\r\n space-between;\r\n\r\n gap: 15px;\r\n}\r\n\r\n.fb-ai-prompt-box__actions {\r\n display: flex;\r\n\r\n align-items: center;\r\n\r\n gap: 10px;\r\n}\r\n\r\n.fb-ai-prompt-box__secondary,\r\n.fb-ai-prompt-box__submit {\r\n display: inline-flex;\r\n\r\n align-items: center;\r\n\r\n justify-content: center;\r\n\r\n border: 0;\r\n\r\n cursor: pointer;\r\n}\r\n\r\n.fb-ai-prompt-box__secondary {\r\n width: 32px;\r\n height: 32px;\r\n\r\n border:\r\n 1px solid\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.1\r\n );\r\n\r\n border-radius: 9px;\r\n\r\n background:\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.035\r\n );\r\n\r\n color:\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.64\r\n );\r\n}\r\n\r\n.fb-ai-prompt-box__secondary:hover {\r\n background:\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.08\r\n );\r\n\r\n color: white;\r\n}\r\n\r\n.fb-ai-prompt-box__model {\r\n color:\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.42\r\n );\r\n\r\n font-family:\r\n \"DM Mono\",\r\n monospace;\r\n\r\n font-size: 8px;\r\n}\r\n\r\n.fb-ai-prompt-box__submit {\r\n width: 34px;\r\n height: 34px;\r\n\r\n border-radius: 10px;\r\n\r\n background:\r\n var(\r\n --fb-ai-prompt-accent,\r\n #9b7cff\r\n );\r\n\r\n color: white;\r\n\r\n transition:\r\n transform\r\n 0.18s\r\n ease,\r\n opacity\r\n 0.18s\r\n ease,\r\n box-shadow\r\n 0.18s\r\n ease;\r\n}\r\n\r\n.fb-ai-prompt-box__submit:not(\r\n :disabled\r\n):hover {\r\n transform:\r\n translateY(-2px);\r\n\r\n box-shadow:\r\n 0\r\n 0\r\n 25px\r\n color-mix(\r\n in srgb,\r\n var(\r\n --fb-ai-prompt-accent,\r\n #9b7cff\r\n )\r\n 45%,\r\n transparent\r\n );\r\n}\r\n\r\n.fb-ai-prompt-box__submit:disabled {\r\n opacity: 0.32;\r\n\r\n cursor:\r\n not-allowed;\r\n}\r\n\r\n.fb-ai-prompt-box\r\nbutton:focus-visible,\r\n.fb-ai-prompt-box\r\ntextarea:focus-visible {\r\n outline:\r\n 2px solid\r\n var(\r\n --fb-ai-prompt-accent,\r\n #9b7cff\r\n );\r\n\r\n outline-offset:\r\n 3px;\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-ai-prompt-box,\r\n .fb-ai-prompt-box__submit {\r\n transition:\r\n none !important;\r\n }\r\n}",".fb-streaming-response {\r\n width:\r\n min(\r\n 100%,\r\n 680px\r\n );\r\n\r\n padding:\r\n clamp(\r\n 20px,\r\n 4vw,\r\n 32px\r\n );\r\n\r\n border:\r\n 1px solid\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.09\r\n );\r\n\r\n border-radius: 18px;\r\n\r\n background:\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.025\r\n );\r\n}\r\n\r\n.fb-streaming-response__status {\r\n display: flex;\r\n\r\n align-items: center;\r\n\r\n gap: 8px;\r\n\r\n color:\r\n var(\r\n --fb-streaming-accent\r\n );\r\n\r\n font-family:\r\n \"DM Mono\",\r\n monospace;\r\n\r\n font-size: 8px;\r\n\r\n letter-spacing: 1.4px;\r\n}\r\n\r\n.fb-streaming-response__status\r\n> span {\r\n width: 7px;\r\n height: 7px;\r\n\r\n border-radius: 50%;\r\n\r\n background:\r\n var(\r\n --fb-streaming-accent\r\n );\r\n\r\n box-shadow:\r\n 0\r\n 0\r\n 14px\r\n var(\r\n --fb-streaming-accent\r\n );\r\n\r\n animation:\r\n fbStreamingPulse\r\n 0.9s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n.fb-streaming-response__status\r\n> span.is-complete {\r\n background: #69db9e;\r\n\r\n box-shadow: none;\r\n\r\n animation: none;\r\n}\r\n\r\n.fb-streaming-response\r\np {\r\n margin:\r\n 20px\r\n 0\r\n 0;\r\n\r\n color: inherit;\r\n\r\n font-size:\r\n clamp(\r\n 14px,\r\n 2vw,\r\n 18px\r\n );\r\n\r\n line-height: 1.8;\r\n}\r\n\r\n.fb-streaming-response__cursor {\r\n display: inline-block;\r\n\r\n width: 2px;\r\n height: 1em;\r\n\r\n margin-left: 4px;\r\n\r\n vertical-align:\r\n -2px;\r\n\r\n background:\r\n var(\r\n --fb-streaming-accent\r\n );\r\n\r\n animation:\r\n fbStreamingCursor\r\n 0.7s\r\n steps(1)\r\n infinite;\r\n}\r\n\r\n@keyframes fbStreamingPulse {\r\n to {\r\n opacity: 0.35;\r\n\r\n transform:\r\n scale(0.75);\r\n }\r\n}\r\n\r\n@keyframes fbStreamingCursor {\r\n 50% {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-streaming-response * {\r\n animation:\r\n none !important;\r\n }\r\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/ai/AiPromptBox.css","../src/ai/StreamingResponse.css"],"sourcesContent":[".fb-ai-prompt-box {\n position: relative;\n\n width: min(\n 100%,\n 680px\n );\n\n overflow: hidden;\n\n border:\n 1px solid\n rgba(\n 255,\n 255,\n 255,\n 0.11\n );\n\n box-shadow:\n 0\n 25px\n 90px\n rgba(\n 0,\n 0,\n 0,\n 0.35\n );\n\n transition:\n border-color\n 0.2s\n ease,\n box-shadow\n 0.2s\n ease;\n}\n\n.fb-ai-prompt-box:focus-within {\n border-color:\n color-mix(\n in srgb,\n var(\n --fb-ai-prompt-accent,\n #9b7cff\n )\n 55%,\n transparent\n );\n\n box-shadow:\n 0\n 25px\n 90px\n rgba(\n 0,\n 0,\n 0,\n 0.35\n ),\n 0\n 0\n 0\n 1px\n color-mix(\n in srgb,\n var(\n --fb-ai-prompt-accent,\n #9b7cff\n )\n 25%,\n transparent\n );\n}\n\n.fb-ai-prompt-box__form {\n min-height: inherit;\n\n padding: 18px;\n\n display: flex;\n\n flex-direction: column;\n}\n\n.fb-ai-prompt-box__field {\n position: relative;\n\n flex: 1;\n\n display: grid;\n\n grid-template-columns:\n auto\n minmax(\n 0,\n 1fr\n );\n\n align-items:\n start;\n\n gap: 11px;\n}\n\n.fb-ai-prompt-box__spark {\n margin-top: 5px;\n\n color:\n var(\n --fb-ai-prompt-accent,\n #9b7cff\n );\n}\n\n.fb-ai-prompt-box\ntextarea {\n width: 100%;\n\n min-height: 85px;\n\n resize: none;\n\n border: 0;\n\n outline: 0;\n\n background:\n transparent;\n\n color: inherit;\n\n font: inherit;\n\n font-size: 14px;\n\n line-height: 1.6;\n}\n\n.fb-ai-prompt-box\ntextarea::placeholder {\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.36\n );\n}\n\n.fb-ai-prompt-box__footer {\n margin-top: 16px;\n\n display: flex;\n\n align-items: center;\n\n justify-content:\n space-between;\n\n gap: 15px;\n}\n\n.fb-ai-prompt-box__actions {\n display: flex;\n\n align-items: center;\n\n gap: 10px;\n}\n\n.fb-ai-prompt-box__secondary,\n.fb-ai-prompt-box__submit {\n display: inline-flex;\n\n align-items: center;\n\n justify-content: center;\n\n border: 0;\n\n cursor: pointer;\n}\n\n.fb-ai-prompt-box__secondary {\n width: 32px;\n height: 32px;\n\n border:\n 1px solid\n rgba(\n 255,\n 255,\n 255,\n 0.1\n );\n\n border-radius: 9px;\n\n background:\n rgba(\n 255,\n 255,\n 255,\n 0.035\n );\n\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.64\n );\n}\n\n.fb-ai-prompt-box__secondary:hover {\n background:\n rgba(\n 255,\n 255,\n 255,\n 0.08\n );\n\n color: white;\n}\n\n.fb-ai-prompt-box__model {\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.42\n );\n\n font-family:\n \"DM Mono\",\n monospace;\n\n font-size: 8px;\n}\n\n.fb-ai-prompt-box__submit {\n width: 34px;\n height: 34px;\n\n border-radius: 10px;\n\n background:\n var(\n --fb-ai-prompt-accent,\n #9b7cff\n );\n\n color: white;\n\n transition:\n transform\n 0.18s\n ease,\n opacity\n 0.18s\n ease,\n box-shadow\n 0.18s\n ease;\n}\n\n.fb-ai-prompt-box__submit:not(\n :disabled\n):hover {\n transform:\n translateY(-2px);\n\n box-shadow:\n 0\n 0\n 25px\n color-mix(\n in srgb,\n var(\n --fb-ai-prompt-accent,\n #9b7cff\n )\n 45%,\n transparent\n );\n}\n\n.fb-ai-prompt-box__submit:disabled {\n opacity: 0.32;\n\n cursor:\n not-allowed;\n}\n\n.fb-ai-prompt-box\nbutton:focus-visible,\n.fb-ai-prompt-box\ntextarea:focus-visible {\n outline:\n 2px solid\n var(\n --fb-ai-prompt-accent,\n #9b7cff\n );\n\n outline-offset:\n 3px;\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-ai-prompt-box,\n .fb-ai-prompt-box__submit {\n transition:\n none !important;\n }\n}",".fb-streaming-response {\n width:\n min(\n 100%,\n 680px\n );\n\n padding:\n clamp(\n 20px,\n 4vw,\n 32px\n );\n\n border:\n 1px solid\n rgba(\n 255,\n 255,\n 255,\n 0.09\n );\n\n border-radius: 18px;\n\n background:\n rgba(\n 255,\n 255,\n 255,\n 0.025\n );\n}\n\n.fb-streaming-response__status {\n display: flex;\n\n align-items: center;\n\n gap: 8px;\n\n color:\n var(\n --fb-streaming-accent\n );\n\n font-family:\n \"DM Mono\",\n monospace;\n\n font-size: 8px;\n\n letter-spacing: 1.4px;\n}\n\n.fb-streaming-response__status\n> span {\n width: 7px;\n height: 7px;\n\n border-radius: 50%;\n\n background:\n var(\n --fb-streaming-accent\n );\n\n box-shadow:\n 0\n 0\n 14px\n var(\n --fb-streaming-accent\n );\n\n animation:\n fbStreamingPulse\n 0.9s\n ease-in-out\n infinite alternate;\n}\n\n.fb-streaming-response__status\n> span.is-complete {\n background: #69db9e;\n\n box-shadow: none;\n\n animation: none;\n}\n\n.fb-streaming-response\np {\n margin:\n 20px\n 0\n 0;\n\n color: inherit;\n\n font-size:\n clamp(\n 14px,\n 2vw,\n 18px\n );\n\n line-height: 1.8;\n}\n\n.fb-streaming-response__cursor {\n display: inline-block;\n\n width: 2px;\n height: 1em;\n\n margin-left: 4px;\n\n vertical-align:\n -2px;\n\n background:\n var(\n --fb-streaming-accent\n );\n\n animation:\n fbStreamingCursor\n 0.7s\n steps(1)\n infinite;\n}\n\n@keyframes fbStreamingPulse {\n to {\n opacity: 0.35;\n\n transform:\n scale(0.75);\n }\n}\n\n@keyframes fbStreamingCursor {\n 50% {\n opacity: 0;\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-streaming-response * {\n animation:\n none !important;\n }\n}"],"mappings":"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","names":[]}
package/dist/ai.js CHANGED
@@ -1,3 +1,3 @@
1
- export { AiPromptBox, StreamingResponse } from './chunk-RUSFF3MZ.js';
1
+ export { AiPromptBox, StreamingResponse } from './chunk-XJGKXWK3.js';
2
2
  //# sourceMappingURL=ai.js.map
3
3
  //# sourceMappingURL=ai.js.map
@@ -1,32 +1,32 @@
1
1
  'use strict';
2
2
 
3
- var chunkUWQ5QNE3_cjs = require('./chunk-UWQ5QNE3.cjs');
3
+ var chunkTG7XM34D_cjs = require('./chunk-TG7XM34D.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "AuroraGrid", {
8
8
  enumerable: true,
9
- get: function () { return chunkUWQ5QNE3_cjs.AuroraGrid; }
9
+ get: function () { return chunkTG7XM34D_cjs.AuroraGrid; }
10
10
  });
11
11
  Object.defineProperty(exports, "DotMatrix", {
12
12
  enumerable: true,
13
- get: function () { return chunkUWQ5QNE3_cjs.DotMatrix; }
13
+ get: function () { return chunkTG7XM34D_cjs.DotMatrix; }
14
14
  });
15
15
  Object.defineProperty(exports, "GradientMesh", {
16
16
  enumerable: true,
17
- get: function () { return chunkUWQ5QNE3_cjs.GradientMesh; }
17
+ get: function () { return chunkTG7XM34D_cjs.GradientMesh; }
18
18
  });
19
19
  Object.defineProperty(exports, "NoiseField", {
20
20
  enumerable: true,
21
- get: function () { return chunkUWQ5QNE3_cjs.NoiseField; }
21
+ get: function () { return chunkTG7XM34D_cjs.NoiseField; }
22
22
  });
23
23
  Object.defineProperty(exports, "PredictiveArc", {
24
24
  enumerable: true,
25
- get: function () { return chunkUWQ5QNE3_cjs.PredictiveArc; }
25
+ get: function () { return chunkTG7XM34D_cjs.PredictiveArc; }
26
26
  });
27
27
  Object.defineProperty(exports, "SignalParticles", {
28
28
  enumerable: true,
29
- get: function () { return chunkUWQ5QNE3_cjs.SignalParticles; }
29
+ get: function () { return chunkTG7XM34D_cjs.SignalParticles; }
30
30
  });
31
31
  //# sourceMappingURL=backgrounds.cjs.map
32
32
  //# sourceMappingURL=backgrounds.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/backgrounds/PredictiveArc.css","../src/backgrounds/SignalParticles.css","../src/backgrounds/DotMatrix.css","../src/backgrounds/GradientMesh.css","../src/backgrounds/AuroraGrid.css","../src/backgrounds/NoiseField.css"],"sourcesContent":[".fb-predictive-arc {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n\r\n background:\r\n var(\r\n --predictive-arc-background,\r\n #0d0d11\r\n );\r\n}\r\n\r\n.fb-predictive-arc__line {\r\n position: absolute;\r\n\r\n left: 50%;\r\n top: 60%;\r\n\r\n border-radius: 50%;\r\n\r\n border-left: 0;\r\n border-right: 0;\r\n border-bottom: 0;\r\n\r\n transform:\r\n translate(\r\n -50%,\r\n -50%\r\n );\r\n\r\n border-top:\r\n var(\r\n --predictive-arc-thickness,\r\n 3px\r\n )\r\n solid\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n\r\n box-shadow:\r\n 0\r\n 0\r\n var(\r\n --predictive-arc-glow,\r\n 16px\r\n )\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n}\r\n\r\n.fb-predictive-arc__line--outer {\r\n width:\r\n var(\r\n --predictive-arc-size,\r\n 70%\r\n );\r\n\r\n height: 45%;\r\n}\r\n\r\n.fb-predictive-arc__line--inner {\r\n width: 50%;\r\n height: 32%;\r\n\r\n opacity: 0.4;\r\n}\r\n\r\n.fb-predictive-arc__point {\r\n position: absolute;\r\n\r\n top: 60%;\r\n\r\n width: 7px;\r\n height: 7px;\r\n\r\n border-radius: 50%;\r\n\r\n background:\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n\r\n box-shadow:\r\n 0\r\n 0\r\n 16px\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n}\r\n\r\n.fb-predictive-arc__point--left {\r\n left: 20%;\r\n}\r\n\r\n.fb-predictive-arc__point--right {\r\n right: 20%;\r\n}\r\n\r\n.fb-predictive-arc--animated\r\n.fb-predictive-arc__line--outer {\r\n animation:\r\n fbPredictiveArcPulse\r\n 2.8s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbPredictiveArcPulse {\r\n from {\r\n opacity: 0.55;\r\n\r\n transform:\r\n translate(\r\n -50%,\r\n -50%\r\n )\r\n scale(0.98);\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n\r\n transform:\r\n translate(\r\n -50%,\r\n -50%\r\n )\r\n scale(1.02);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-predictive-arc * {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-signal-particles {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-signal-particles__particle {\r\n position: absolute;\r\n\r\n border-radius: 50%;\r\n}\r\n\r\n.fb-signal-particles__particle--animated {\r\n animation:\r\n fbSignalParticle\r\n 3s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbSignalParticle {\r\n from {\r\n opacity: 0.2;\r\n\r\n transform:\r\n scale(0.7);\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n\r\n transform:\r\n scale(1.2);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-signal-particles__particle {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-dot-matrix {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.fb-dot-matrix--fade {\r\n mask-image:\r\n radial-gradient(\r\n circle,\r\n #000 30%,\r\n transparent 80%\r\n );\r\n\r\n -webkit-mask-image:\r\n radial-gradient(\r\n circle,\r\n #000 30%,\r\n transparent 80%\r\n );\r\n}",".fb-gradient-mesh {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-gradient-mesh__layer {\r\n position: absolute;\r\n\r\n inset: -25%;\r\n}\r\n\r\n.fb-gradient-mesh__layer--animated {\r\n animation:\r\n fbGradientMeshMove\r\n 8s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbGradientMeshMove {\r\n from {\r\n transform:\r\n translate3d(\r\n -3%,\r\n -2%,\r\n 0\r\n )\r\n scale(1);\r\n }\r\n\r\n to {\r\n transform:\r\n translate3d(\r\n 6%,\r\n 5%,\r\n 0\r\n )\r\n scale(1.12);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-gradient-mesh__layer {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-aurora-grid {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-aurora-grid__grid {\r\n position: absolute;\r\n\r\n inset: -35%;\r\n\r\n transform:\r\n perspective(600px)\r\n rotateX(58deg)\r\n scale(1.35);\r\n\r\n transform-origin:\r\n center bottom;\r\n}\r\n\r\n.fb-aurora-grid__grid--animated {\r\n animation:\r\n fbAuroraGridMove\r\n 8s\r\n linear\r\n infinite;\r\n}\r\n\r\n.fb-aurora-grid__glow {\r\n position: absolute;\r\n\r\n left: 50%;\r\n bottom: -18%;\r\n\r\n width: 58%;\r\n aspect-ratio: 1;\r\n\r\n border-radius: 50%;\r\n\r\n opacity: 0.4;\r\n\r\n transform:\r\n translateX(-50%);\r\n}\r\n\r\n.fb-aurora-grid__glow--animated {\r\n animation:\r\n fbAuroraGlow\r\n 6s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbAuroraGridMove {\r\n from {\r\n background-position:\r\n 0\r\n 0;\r\n }\r\n\r\n to {\r\n background-position:\r\n 0\r\n 80px;\r\n }\r\n}\r\n\r\n@keyframes fbAuroraGlow {\r\n from {\r\n transform:\r\n translateX(-50%)\r\n scale(0.9);\r\n\r\n opacity:\r\n 0.28;\r\n }\r\n\r\n to {\r\n transform:\r\n translateX(-50%)\r\n scale(1.15);\r\n\r\n opacity:\r\n 0.5;\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-aurora-grid__grid,\r\n .fb-aurora-grid__glow {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-noise-field {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-noise-field__blob {\r\n position: absolute;\r\n\r\n width: 58%;\r\n aspect-ratio: 1;\r\n\r\n border-radius:\r\n 48%\r\n 52%\r\n 62%\r\n 38%;\r\n\r\n filter:\r\n blur(45px);\r\n}\r\n\r\n.fb-noise-field__blob--one {\r\n left: 8%;\r\n top: 8%;\r\n}\r\n\r\n.fb-noise-field__blob--two {\r\n right: -5%;\r\n bottom: -8%;\r\n}\r\n\r\n.fb-noise-field__blob--animated {\r\n animation:\r\n fbNoiseFieldMorph\r\n 6s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n.fb-noise-field__texture {\r\n position: absolute;\r\n\r\n inset: 0;\r\n\r\n background-image:\r\n repeating-radial-gradient(\r\n circle at 30% 40%,\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.22\r\n )\r\n 0\r\n 1px,\r\n transparent\r\n 1px\r\n 4px\r\n );\r\n}\r\n\r\n.fb-noise-field__texture--animated {\r\n animation:\r\n fbNoiseFieldTexture\r\n 5s\r\n linear\r\n infinite;\r\n}\r\n\r\n@keyframes fbNoiseFieldMorph {\r\n from {\r\n transform:\r\n translate3d(\r\n -8%,\r\n -5%,\r\n 0\r\n )\r\n rotate(-8deg)\r\n scale(0.95);\r\n }\r\n\r\n to {\r\n transform:\r\n translate3d(\r\n 14%,\r\n 10%,\r\n 0\r\n )\r\n rotate(14deg)\r\n scale(1.12);\r\n }\r\n}\r\n\r\n@keyframes fbNoiseFieldTexture {\r\n from {\r\n transform:\r\n translate3d(\r\n 0,\r\n 0,\r\n 0\r\n );\r\n }\r\n\r\n to {\r\n transform:\r\n translate3d(\r\n 16px,\r\n -12px,\r\n 0\r\n );\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-noise-field__blob,\r\n .fb-noise-field__texture {\r\n animation:\r\n none !important;\r\n }\r\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/backgrounds/PredictiveArc.css","../src/backgrounds/SignalParticles.css","../src/backgrounds/DotMatrix.css","../src/backgrounds/GradientMesh.css","../src/backgrounds/AuroraGrid.css","../src/backgrounds/NoiseField.css"],"sourcesContent":[".fb-predictive-arc {\n position: relative;\n\n width: 100%;\n height: 100%;\n\n overflow: hidden;\n\n background:\n var(\n --predictive-arc-background,\n #0d0d11\n );\n}\n\n.fb-predictive-arc__line {\n position: absolute;\n\n left: 50%;\n top: 60%;\n\n border-radius: 50%;\n\n border-left: 0;\n border-right: 0;\n border-bottom: 0;\n\n transform:\n translate(\n -50%,\n -50%\n );\n\n border-top:\n var(\n --predictive-arc-thickness,\n 3px\n )\n solid\n var(\n --predictive-arc-color,\n #9b7cff\n );\n\n box-shadow:\n 0\n 0\n var(\n --predictive-arc-glow,\n 16px\n )\n var(\n --predictive-arc-color,\n #9b7cff\n );\n}\n\n.fb-predictive-arc__line--outer {\n width:\n var(\n --predictive-arc-size,\n 70%\n );\n\n height: 45%;\n}\n\n.fb-predictive-arc__line--inner {\n width: 50%;\n height: 32%;\n\n opacity: 0.4;\n}\n\n.fb-predictive-arc__point {\n position: absolute;\n\n top: 60%;\n\n width: 7px;\n height: 7px;\n\n border-radius: 50%;\n\n background:\n var(\n --predictive-arc-color,\n #9b7cff\n );\n\n box-shadow:\n 0\n 0\n 16px\n var(\n --predictive-arc-color,\n #9b7cff\n );\n}\n\n.fb-predictive-arc__point--left {\n left: 20%;\n}\n\n.fb-predictive-arc__point--right {\n right: 20%;\n}\n\n.fb-predictive-arc--animated\n.fb-predictive-arc__line--outer {\n animation:\n fbPredictiveArcPulse\n 2.8s\n ease-in-out\n infinite alternate;\n}\n\n@keyframes fbPredictiveArcPulse {\n from {\n opacity: 0.55;\n\n transform:\n translate(\n -50%,\n -50%\n )\n scale(0.98);\n }\n\n to {\n opacity: 1;\n\n transform:\n translate(\n -50%,\n -50%\n )\n scale(1.02);\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-predictive-arc * {\n animation:\n none !important;\n }\n}",".fb-signal-particles {\n position: relative;\n\n width: 100%;\n height: 100%;\n\n overflow: hidden;\n}\n\n.fb-signal-particles__particle {\n position: absolute;\n\n border-radius: 50%;\n}\n\n.fb-signal-particles__particle--animated {\n animation:\n fbSignalParticle\n 3s\n ease-in-out\n infinite alternate;\n}\n\n@keyframes fbSignalParticle {\n from {\n opacity: 0.2;\n\n transform:\n scale(0.7);\n }\n\n to {\n opacity: 1;\n\n transform:\n scale(1.2);\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-signal-particles__particle {\n animation:\n none !important;\n }\n}",".fb-dot-matrix {\n width: 100%;\n height: 100%;\n}\n\n.fb-dot-matrix--fade {\n mask-image:\n radial-gradient(\n circle,\n #000 30%,\n transparent 80%\n );\n\n -webkit-mask-image:\n radial-gradient(\n circle,\n #000 30%,\n transparent 80%\n );\n}",".fb-gradient-mesh {\n position: relative;\n\n width: 100%;\n height: 100%;\n\n overflow: hidden;\n}\n\n.fb-gradient-mesh__layer {\n position: absolute;\n\n inset: -25%;\n}\n\n.fb-gradient-mesh__layer--animated {\n animation:\n fbGradientMeshMove\n 8s\n ease-in-out\n infinite alternate;\n}\n\n@keyframes fbGradientMeshMove {\n from {\n transform:\n translate3d(\n -3%,\n -2%,\n 0\n )\n scale(1);\n }\n\n to {\n transform:\n translate3d(\n 6%,\n 5%,\n 0\n )\n scale(1.12);\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-gradient-mesh__layer {\n animation:\n none !important;\n }\n}",".fb-aurora-grid {\n position: relative;\n\n width: 100%;\n height: 100%;\n\n overflow: hidden;\n}\n\n.fb-aurora-grid__grid {\n position: absolute;\n\n inset: -35%;\n\n transform:\n perspective(600px)\n rotateX(58deg)\n scale(1.35);\n\n transform-origin:\n center bottom;\n}\n\n.fb-aurora-grid__grid--animated {\n animation:\n fbAuroraGridMove\n 8s\n linear\n infinite;\n}\n\n.fb-aurora-grid__glow {\n position: absolute;\n\n left: 50%;\n bottom: -18%;\n\n width: 58%;\n aspect-ratio: 1;\n\n border-radius: 50%;\n\n opacity: 0.4;\n\n transform:\n translateX(-50%);\n}\n\n.fb-aurora-grid__glow--animated {\n animation:\n fbAuroraGlow\n 6s\n ease-in-out\n infinite alternate;\n}\n\n@keyframes fbAuroraGridMove {\n from {\n background-position:\n 0\n 0;\n }\n\n to {\n background-position:\n 0\n 80px;\n }\n}\n\n@keyframes fbAuroraGlow {\n from {\n transform:\n translateX(-50%)\n scale(0.9);\n\n opacity:\n 0.28;\n }\n\n to {\n transform:\n translateX(-50%)\n scale(1.15);\n\n opacity:\n 0.5;\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-aurora-grid__grid,\n .fb-aurora-grid__glow {\n animation:\n none !important;\n }\n}",".fb-noise-field {\n position: relative;\n\n width: 100%;\n height: 100%;\n\n overflow: hidden;\n}\n\n.fb-noise-field__blob {\n position: absolute;\n\n width: 58%;\n aspect-ratio: 1;\n\n border-radius:\n 48%\n 52%\n 62%\n 38%;\n\n filter:\n blur(45px);\n}\n\n.fb-noise-field__blob--one {\n left: 8%;\n top: 8%;\n}\n\n.fb-noise-field__blob--two {\n right: -5%;\n bottom: -8%;\n}\n\n.fb-noise-field__blob--animated {\n animation:\n fbNoiseFieldMorph\n 6s\n ease-in-out\n infinite alternate;\n}\n\n.fb-noise-field__texture {\n position: absolute;\n\n inset: 0;\n\n background-image:\n repeating-radial-gradient(\n circle at 30% 40%,\n rgba(\n 255,\n 255,\n 255,\n 0.22\n )\n 0\n 1px,\n transparent\n 1px\n 4px\n );\n}\n\n.fb-noise-field__texture--animated {\n animation:\n fbNoiseFieldTexture\n 5s\n linear\n infinite;\n}\n\n@keyframes fbNoiseFieldMorph {\n from {\n transform:\n translate3d(\n -8%,\n -5%,\n 0\n )\n rotate(-8deg)\n scale(0.95);\n }\n\n to {\n transform:\n translate3d(\n 14%,\n 10%,\n 0\n )\n rotate(14deg)\n scale(1.12);\n }\n}\n\n@keyframes fbNoiseFieldTexture {\n from {\n transform:\n translate3d(\n 0,\n 0,\n 0\n );\n }\n\n to {\n transform:\n translate3d(\n 16px,\n -12px,\n 0\n );\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-noise-field__blob,\n .fb-noise-field__texture {\n animation:\n none !important;\n }\n}"],"mappings":"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","names":[]}
@@ -1,3 +1,3 @@
1
- export { AuroraGrid, DotMatrix, GradientMesh, NoiseField, PredictiveArc, SignalParticles } from './chunk-YQSTEIU5.js';
1
+ export { AuroraGrid, DotMatrix, GradientMesh, NoiseField, PredictiveArc, SignalParticles } from './chunk-RFI4526D.js';
2
2
  //# sourceMappingURL=backgrounds.js.map
3
3
  //# sourceMappingURL=backgrounds.js.map
package/dist/buttons.cjs CHANGED
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunkROKPXWY2_cjs = require('./chunk-ROKPXWY2.cjs');
3
+ var chunkQTX5BFS6_cjs = require('./chunk-QTX5BFS6.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "GlassButton", {
8
8
  enumerable: true,
9
- get: function () { return chunkROKPXWY2_cjs.GlassButton; }
9
+ get: function () { return chunkQTX5BFS6_cjs.GlassButton; }
10
10
  });
11
11
  Object.defineProperty(exports, "GlowButton", {
12
12
  enumerable: true,
13
- get: function () { return chunkROKPXWY2_cjs.GlowButton; }
13
+ get: function () { return chunkQTX5BFS6_cjs.GlowButton; }
14
14
  });
15
15
  Object.defineProperty(exports, "MagneticButton", {
16
16
  enumerable: true,
17
- get: function () { return chunkROKPXWY2_cjs.MagneticButton; }
17
+ get: function () { return chunkQTX5BFS6_cjs.MagneticButton; }
18
18
  });
19
19
  //# sourceMappingURL=buttons.cjs.map
20
20
  //# sourceMappingURL=buttons.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/buttons/MagneticButton.css","../src/buttons/GlowButton.css","../src/buttons/GlassButton.css"],"sourcesContent":[".fb-magnetic-button {\r\n border: 0;\r\n\r\n cursor: pointer;\r\n\r\n font-family: inherit;\r\n\r\n transition:\r\n transform\r\n 0.18s\r\n ease-out,\r\n box-shadow\r\n 0.2s\r\n ease;\r\n}\r\n\r\n.fb-magnetic-button:hover {\r\n box-shadow:\r\n 0\r\n 10px\r\n 40px\r\n rgba(\r\n 0,\r\n 0,\r\n 0,\r\n 0.3\r\n );\r\n}\r\n\r\n.fb-magnetic-button:focus-visible {\r\n outline:\r\n 2px solid\r\n #9b7cff;\r\n\r\n outline-offset:\r\n 4px;\r\n}",".fb-glow-button {\r\n position: relative;\r\n\r\n isolation: isolate;\r\n\r\n overflow: hidden;\r\n\r\n border:\r\n 1px solid\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.18\r\n );\r\n\r\n font-family: inherit;\r\n\r\n font-weight: 500;\r\n\r\n cursor: pointer;\r\n\r\n transition:\r\n transform\r\n 0.2s\r\n ease,\r\n box-shadow\r\n 0.25s\r\n ease;\r\n}\r\n\r\n.fb-glow-button:hover {\r\n transform:\r\n translateY(-2px)\r\n scale(1.02);\r\n}\r\n\r\n.fb-glow-button:active {\r\n transform:\r\n translateY(0)\r\n scale(0.99);\r\n}\r\n\r\n.fb-glow-button:focus-visible {\r\n outline:\r\n 2px solid\r\n var(\r\n --fb-glow-button-color,\r\n #9b7cff\r\n );\r\n\r\n outline-offset:\r\n 4px;\r\n}\r\n\r\n.fb-glow-button__content {\r\n position: relative;\r\n\r\n z-index: 2;\r\n}\r\n\r\n.fb-glow-button__glow {\r\n position: absolute;\r\n\r\n z-index: 1;\r\n\r\n inset: -25%;\r\n\r\n border-radius: inherit;\r\n\r\n background:\r\n var(\r\n --fb-glow-button-color,\r\n #9b7cff\r\n );\r\n\r\n opacity: 0.16;\r\n\r\n filter:\r\n blur(18px);\r\n\r\n animation:\r\n fbGlowButtonPulse\r\n 2.5s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbGlowButtonPulse {\r\n from {\r\n opacity:\r\n 0.08;\r\n\r\n transform:\r\n scale(0.85);\r\n }\r\n\r\n to {\r\n opacity:\r\n 0.26;\r\n\r\n transform:\r\n scale(1.15);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-glow-button,\r\n .fb-glow-button__glow {\r\n animation:\r\n none !important;\r\n\r\n transition:\r\n none !important;\r\n }\r\n}",".fb-glass-button {\r\n position: relative;\r\n\r\n overflow: hidden;\r\n\r\n padding:\r\n 13px\r\n 22px;\r\n\r\n border:\r\n 1px solid;\r\n\r\n font-family:\r\n inherit;\r\n\r\n font-size: 14px;\r\n\r\n font-weight: 500;\r\n\r\n cursor: pointer;\r\n\r\n box-shadow:\r\n inset\r\n 0\r\n 1px\r\n 0\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.14\r\n );\r\n\r\n transition:\r\n transform\r\n 0.2s\r\n ease,\r\n background\r\n 0.2s\r\n ease;\r\n}\r\n\r\n.fb-glass-button:hover {\r\n transform:\r\n translateY(-2px);\r\n}\r\n\r\n.fb-glass-button:active {\r\n transform:\r\n translateY(0);\r\n}\r\n\r\n.fb-glass-button:focus-visible {\r\n outline:\r\n 2px solid\r\n #a88cff;\r\n\r\n outline-offset:\r\n 4px;\r\n}\r\n\r\n.fb-glass-button__shine {\r\n position: absolute;\r\n\r\n width: 45%;\r\n height: 300%;\r\n\r\n left: -70%;\r\n top: -100%;\r\n\r\n background:\r\n linear-gradient(\r\n 90deg,\r\n transparent,\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.22\r\n ),\r\n transparent\r\n );\r\n\r\n transform:\r\n rotate(20deg);\r\n\r\n transition:\r\n left\r\n 0.5s\r\n ease;\r\n}\r\n\r\n.fb-glass-button:hover\r\n.fb-glass-button__shine {\r\n left:\r\n 130%;\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-glass-button,\r\n .fb-glass-button__shine {\r\n transition:\r\n none !important;\r\n }\r\n}"],"mappings":";AAAA,CAAC;AACC,UAAQ;AAER,UAAQ;AAER,eAAa;AAEb,cACE,UACA,MACA,QAAQ,EACR,WACA,KACA;AACJ;AAEA,CAhBC,kBAgBkB;AACjB,cACE,EACA,KACA,KACA,KACE,CAAC,EACD,CAAC,EACD,CAAC,EACD;AAEN;AAEA,CA7BC,kBA6BkB;AACjB,WACE,IAAI,MACJ;AAEF,kBACE;AACJ;;;ACpCA,CAAC;AACC,YAAU;AAEV,aAAW;AAEX,YAAU;AAEV,UACE,IAAI,MACJ,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH;AAGJ,eAAa;AAEb,eAAa;AAEb,UAAQ;AAER,cACE,UACA,KACA,IAAI,EACJ,WACA,MACA;AACJ;AAEA,CA/BC,cA+Bc;AACb,aACE,WAAW,MACX,MAAM;AACV;AAEA,CArCC,cAqCc;AACb,aACE,WAAW,GACX,MAAM;AACV;AAEA,CA3CC,cA2Cc;AACb,WACE,IAAI,MACJ,KACE,sBAAsB,EACtB;AAGJ,kBACE;AACJ;AAEA,CAAC;AACC,YAAU;AAEV,WAAS;AACX;AAEA,CAAC;AACC,YAAU;AAEV,WAAS;AAET,SAAO;AAEP,iBAAe;AAEf,cACE,KACE,sBAAsB,EACtB;AAGJ,WAAS;AAET,UACE,KAAK;AAEP,aACE,kBACA,KACA,YACA,SAAS;AACb;AAEA,WANI;AAOF;AACE,aACE;AAEF,eACE,MAAM;AACV;AAEA;AACE,aACE;AAEF,eACE,MAAM;AACV;AACF;AAEA,QAAO,wBAEL;AAEA,GA9GD;AAAA,EA+GC,CAlDD;AAmDG,eACE;AAEF,gBACE;AACJ;AACF;;;ACtHA,CAAC;AACC,YAAU;AAEV,YAAU;AAEV,WACE,KACA;AAEF,UACE,IAAI;AAEN,eACE;AAEF,aAAW;AAEX,eAAa;AAEb,UAAQ;AAER,cACE,MACA,EACA,IACA,EACA,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH;AAGJ,cACE,UACA,KACA,IAAI,EACJ,WACA,KACA;AACJ;AAEA,CA1CC,eA0Ce;AACd,aACE,WAAW;AACf;AAEA,CA/CC,eA+Ce;AACd,aACE,WAAW;AACf;AAEA,CApDC,eAoDe;AACd,WACE,IAAI,MACJ;AAEF,kBACE;AACJ;AAEA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,QAAM;AACN,OAAK;AAEL;AAAA,IACE;AAAA,MACE,KAAK;AAAA,MACL,WAAW;AAAA,MACX,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH,KACD;AAAA,MACD;AAGJ,aACE,OAAO;AAET,cACE,KACA,KACA;AACJ;AAEA,CA5FC,eA4Fe,OAChB,CAhCC;AAiCC,QACE;AACJ;AAEA,QAAO,wBAEL;AAEA,GAtGD;AAAA,EAuGC,CA1CD;AA2CG,gBACE;AACJ;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/buttons/MagneticButton.css","../src/buttons/GlowButton.css","../src/buttons/GlassButton.css"],"sourcesContent":[".fb-magnetic-button {\n border: 0;\n\n cursor: pointer;\n\n font-family: inherit;\n\n transition:\n transform\n 0.18s\n ease-out,\n box-shadow\n 0.2s\n ease;\n}\n\n.fb-magnetic-button:hover {\n box-shadow:\n 0\n 10px\n 40px\n rgba(\n 0,\n 0,\n 0,\n 0.3\n );\n}\n\n.fb-magnetic-button:focus-visible {\n outline:\n 2px solid\n #9b7cff;\n\n outline-offset:\n 4px;\n}",".fb-glow-button {\n position: relative;\n\n isolation: isolate;\n\n overflow: hidden;\n\n border:\n 1px solid\n rgba(\n 255,\n 255,\n 255,\n 0.18\n );\n\n font-family: inherit;\n\n font-weight: 500;\n\n cursor: pointer;\n\n transition:\n transform\n 0.2s\n ease,\n box-shadow\n 0.25s\n ease;\n}\n\n.fb-glow-button:hover {\n transform:\n translateY(-2px)\n scale(1.02);\n}\n\n.fb-glow-button:active {\n transform:\n translateY(0)\n scale(0.99);\n}\n\n.fb-glow-button:focus-visible {\n outline:\n 2px solid\n var(\n --fb-glow-button-color,\n #9b7cff\n );\n\n outline-offset:\n 4px;\n}\n\n.fb-glow-button__content {\n position: relative;\n\n z-index: 2;\n}\n\n.fb-glow-button__glow {\n position: absolute;\n\n z-index: 1;\n\n inset: -25%;\n\n border-radius: inherit;\n\n background:\n var(\n --fb-glow-button-color,\n #9b7cff\n );\n\n opacity: 0.16;\n\n filter:\n blur(18px);\n\n animation:\n fbGlowButtonPulse\n 2.5s\n ease-in-out\n infinite alternate;\n}\n\n@keyframes fbGlowButtonPulse {\n from {\n opacity:\n 0.08;\n\n transform:\n scale(0.85);\n }\n\n to {\n opacity:\n 0.26;\n\n transform:\n scale(1.15);\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-glow-button,\n .fb-glow-button__glow {\n animation:\n none !important;\n\n transition:\n none !important;\n }\n}",".fb-glass-button {\n position: relative;\n\n overflow: hidden;\n\n padding:\n 13px\n 22px;\n\n border:\n 1px solid;\n\n font-family:\n inherit;\n\n font-size: 14px;\n\n font-weight: 500;\n\n cursor: pointer;\n\n box-shadow:\n inset\n 0\n 1px\n 0\n rgba(\n 255,\n 255,\n 255,\n 0.14\n );\n\n transition:\n transform\n 0.2s\n ease,\n background\n 0.2s\n ease;\n}\n\n.fb-glass-button:hover {\n transform:\n translateY(-2px);\n}\n\n.fb-glass-button:active {\n transform:\n translateY(0);\n}\n\n.fb-glass-button:focus-visible {\n outline:\n 2px solid\n #a88cff;\n\n outline-offset:\n 4px;\n}\n\n.fb-glass-button__shine {\n position: absolute;\n\n width: 45%;\n height: 300%;\n\n left: -70%;\n top: -100%;\n\n background:\n linear-gradient(\n 90deg,\n transparent,\n rgba(\n 255,\n 255,\n 255,\n 0.22\n ),\n transparent\n );\n\n transform:\n rotate(20deg);\n\n transition:\n left\n 0.5s\n ease;\n}\n\n.fb-glass-button:hover\n.fb-glass-button__shine {\n left:\n 130%;\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-glass-button,\n .fb-glass-button__shine {\n transition:\n none !important;\n }\n}"],"mappings":";AAAA,CAAC;AACC,UAAQ;AAER,UAAQ;AAER,eAAa;AAEb,cACE,UACA,MACA,QAAQ,EACR,WACA,KACA;AACJ;AAEA,CAhBC,kBAgBkB;AACjB,cACE,EACA,KACA,KACA,KACE,CAAC,EACD,CAAC,EACD,CAAC,EACD;AAEN;AAEA,CA7BC,kBA6BkB;AACjB,WACE,IAAI,MACJ;AAEF,kBACE;AACJ;;;ACpCA,CAAC;AACC,YAAU;AAEV,aAAW;AAEX,YAAU;AAEV,UACE,IAAI,MACJ,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH;AAGJ,eAAa;AAEb,eAAa;AAEb,UAAQ;AAER,cACE,UACA,KACA,IAAI,EACJ,WACA,MACA;AACJ;AAEA,CA/BC,cA+Bc;AACb,aACE,WAAW,MACX,MAAM;AACV;AAEA,CArCC,cAqCc;AACb,aACE,WAAW,GACX,MAAM;AACV;AAEA,CA3CC,cA2Cc;AACb,WACE,IAAI,MACJ,KACE,sBAAsB,EACtB;AAGJ,kBACE;AACJ;AAEA,CAAC;AACC,YAAU;AAEV,WAAS;AACX;AAEA,CAAC;AACC,YAAU;AAEV,WAAS;AAET,SAAO;AAEP,iBAAe;AAEf,cACE,KACE,sBAAsB,EACtB;AAGJ,WAAS;AAET,UACE,KAAK;AAEP,aACE,kBACA,KACA,YACA,SAAS;AACb;AAEA,WANI;AAOF;AACE,aACE;AAEF,eACE,MAAM;AACV;AAEA;AACE,aACE;AAEF,eACE,MAAM;AACV;AACF;AAEA,QAAO,wBAEL;AAEA,GA9GD;AAAA,EA+GC,CAlDD;AAmDG,eACE;AAEF,gBACE;AACJ;AACF;;;ACtHA,CAAC;AACC,YAAU;AAEV,YAAU;AAEV,WACE,KACA;AAEF,UACE,IAAI;AAEN,eACE;AAEF,aAAW;AAEX,eAAa;AAEb,UAAQ;AAER,cACE,MACA,EACA,IACA,EACA,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH;AAGJ,cACE,UACA,KACA,IAAI,EACJ,WACA,KACA;AACJ;AAEA,CA1CC,eA0Ce;AACd,aACE,WAAW;AACf;AAEA,CA/CC,eA+Ce;AACd,aACE,WAAW;AACf;AAEA,CApDC,eAoDe;AACd,WACE,IAAI,MACJ;AAEF,kBACE;AACJ;AAEA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,QAAM;AACN,OAAK;AAEL;AAAA,IACE;AAAA,MACE,KAAK;AAAA,MACL,WAAW;AAAA,MACX,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH,KACD;AAAA,MACD;AAGJ,aACE,OAAO;AAET,cACE,KACA,KACA;AACJ;AAEA,CA5FC,eA4Fe,OAChB,CAhCC;AAiCC,QACE;AACJ;AAEA,QAAO,wBAEL;AAEA,GAtGD;AAAA,EAuGC,CA1CD;AA2CG,gBACE;AACJ;AACF;","names":[]}
package/dist/buttons.js CHANGED
@@ -1,3 +1,3 @@
1
- export { GlassButton, GlowButton, MagneticButton } from './chunk-K5QRX5CZ.js';
1
+ export { GlassButton, GlowButton, MagneticButton } from './chunk-ENCZZRVK.js';
2
2
  //# sourceMappingURL=buttons.js.map
3
3
  //# sourceMappingURL=buttons.js.map
@@ -194,5 +194,5 @@ function MagneticCursor({
194
194
 
195
195
  exports.GlowCursor = GlowCursor;
196
196
  exports.MagneticCursor = MagneticCursor;
197
- //# sourceMappingURL=chunk-MKCSRMHF.cjs.map
198
- //# sourceMappingURL=chunk-MKCSRMHF.cjs.map
197
+ //# sourceMappingURL=chunk-4YAFXF3T.cjs.map
198
+ //# sourceMappingURL=chunk-4YAFXF3T.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/motion/GlowCursor.tsx","../src/motion/MagneticCursor.tsx"],"names":["useState","jsxs","jsx","useRef","useEffect"],"mappings":";;;;;;AA6BO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EAEA,KAAA,GACE,SAAA;AAAA,EAEF,IAAA,GACE,GAAA;AAAA,EAEF,IAAA,GACE,EAAA;AAAA,EAEF,OAAA,GACE,IAAA;AAAA,EAEF,WAAA,GACE,IAAA;AAAA,EAEF,SAAA,GACE;AACJ,CAAA,EAAoB;AAClB,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA;AAAA,MAEAA,cAAA,CAAS;AAAA,IACP,CAAA,EAAG,CAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ,CAAA;AAEH,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,kBAAkB,SAAS,CAAA,CAAA;AAAA,MACtC,WAAA,EAAa,CACX,KAAA,KACG;AACH,QAAA,MAAM,IAAA,GACJ,KAAA,CAAM,aAAA,CAAc,qBAAA,EAAsB;AAE5C,QAAA,QAAA,CAAS;AAAA,UACP,CAAA,EACE,KAAA,CAAM,OAAA,GACN,IAAA,CAAK,IAAA;AAAA,UAEP,CAAA,EACE,KAAA,CAAM,OAAA,GACN,IAAA,CAAK;AAAA,SACR,CAAA;AAAA,MACH,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,sBAAA;AAAA,YACV,KAAA,EAAO;AAAA,cACL,KAAA,EACE,IAAA;AAAA,cAEF,MAAA,EACE,IAAA;AAAA,cAEF,MACE,KAAA,CAAM,CAAA;AAAA,cAER,KACE,KAAA,CAAM,CAAA;AAAA,cAER,UAAA,EACE,KAAA;AAAA,cAEF,MAAA,EACE,QAAQ,IAAI,CAAA,GAAA,CAAA;AAAA,cAEd,OAAA;AAAA,cAEA,kBAAA,EACE,GAAG,WAAW,CAAA,CAAA;AAAA;AAClB;AAAA,SACF;AAAA,wBAEAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;AC7EO,SAAS,cAAA,CAAe;AAAA,EAC7B,QAAA;AAAA,EAEA,KAAA,GAAQ,SAAA;AAAA,EAER,IAAA,GAAO,EAAA;AAAA,EAEP,QAAA,GAAW,EAAA;AAAA,EAEX,WAAA,GAAc,IAAA;AAAA,EAEd,gBAAA,GAAmB,IAAA;AAAA,EAEnB,SAAA,GAAY,EAAA;AAAA,EAEZ,KAAA;AAAA,EAEA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,YAAA,GACJC,YAAA;AAAA,IACE;AAAA,GACF;AAEF,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA;AAAA,MAEAH,cAAAA,CAAgB;AAAA,IACd,CAAA,EAAG,CAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ,CAAA;AAEH,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA;AAAA,GACF,GACEA,eAAS,KAAK,CAAA;AAEhB,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA;AAAA,GACF,GACEA,eAAS,KAAK,CAAA;AAEhB,EAAAI,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,UACJ,YAAA,CAAa,OAAA;AAEf,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,SAAS,kBACP,KAAA,EACA;AACA,MAAA,MAAM,IAAA,GACJ,QAAS,qBAAA,EAAsB;AAEjC,MAAA,IAAI,CAAA,GACF,KAAA,CAAM,OAAA,GACN,IAAA,CAAK,IAAA;AAEP,MAAA,IAAI,CAAA,GACF,KAAA,CAAM,OAAA,GACN,IAAA,CAAK,GAAA;AAEP,MAAA,MAAM,MAAA,GAEF,MAAM,MAAA,EAEL,OAAA;AAAA,QACD;AAAA,OACF;AAIF,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,MAAM,UAAA,GACJ,OAAO,qBAAA,EAAsB;AAE/B,QAAA,MAAM,OAAA,GACJ,UAAA,CAAW,IAAA,GACX,UAAA,CAAW,KAAA,GACT,CAAA;AAEJ,QAAA,MAAM,OAAA,GACJ,UAAA,CAAW,GAAA,GACX,UAAA,CAAW,MAAA,GACT,CAAA;AAEJ,QAAA,CAAA,IAAA,CAEI,OAAA,GACA,MAAM,OAAA,IAER,gBAAA;AAEF,QAAA,CAAA,IAAA,CAEI,OAAA,GACA,MAAM,OAAA,IAER,gBAAA;AAEF,QAAA,iBAAA;AAAA,UACE;AAAA,SACF;AAAA,MACF,CAAA,MAAO;AACL,QAAA,iBAAA;AAAA,UACE;AAAA,SACF;AAAA,MACF;AAEA,MAAA,QAAA,CAAS;AAAA,QACP,CAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,UAAA;AAAA,QACE;AAAA,OACF;AAAA,IACF;AAEA,IAAA,SAAS,kBAAA,GAAqB;AAC5B,MAAA,UAAA;AAAA,QACE;AAAA,OACF;AAEA,MAAA,iBAAA;AAAA,QACE;AAAA,OACF;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,gBAAA;AAAA,MACN,aAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,OAAA,CAAQ,gBAAA;AAAA,MACN,cAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,OAAA,CAAQ,mBAAA;AAAA,QACN,aAAA;AAAA,QACA;AAAA,OACF;AAEA,MAAA,OAAA,CAAQ,mBAAA;AAAA,QACN,cAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG;AAAA,IACD;AAAA,GACD,CAAA;AAED,EAAA,uBACEH,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,GAAA,EACE,YAAA;AAAA,MAEF,SAAA,EAAW,sBAAsB,SAAS,CAAA,CAAA;AAAA,MAC1C,KAAA,EAAO;AAAA,QACL,GAAG,KAAA;AAAA,QAEH,MAAA,EACE;AAAA,OACJ;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACZ,QAAA,EACH,CAAA;AAAA,wBAEAA,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,4BACT,OAAA,GACI,YAAA,GACA,EACN,CAAA,CAAA,EACE,cAAA,GACI,iBACA,EACN,CAAA,CAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACL,KAAA,EACE,QAAA;AAAA,cAEF,MAAA,EACE,QAAA;AAAA,cAEF,MACE,KAAA,CAAM,CAAA;AAAA,cAER,KACE,KAAA,CAAM,CAAA;AAAA,cAER,WAAA,EACE,KAAA;AAAA,cAEF,kBAAA,EACE,GAAG,WAAW,CAAA,CAAA;AAAA;AAClB;AAAA,SACF;AAAA,wBAEAA,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAW,CAAA,wBAAA,EACT,OAAA,GACI,YAAA,GACA,EACN,CAAA,CAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACL,KAAA,EACE,IAAA;AAAA,cAEF,MAAA,EACE,IAAA;AAAA,cAEF,MACE,KAAA,CAAM,CAAA;AAAA,cAER,KACE,KAAA,CAAM,CAAA;AAAA,cAER,UAAA,EACE,KAAA;AAAA,cAEF,SAAA,EACE,CAAA,IAAA,EAAO,IAAI,CAAA,GAAA,EAAM,KAAK,CAAA;AAAA;AAC1B;AAAA;AACF;AAAA;AAAA,GACF;AAEJ","file":"chunk-4YAFXF3T.cjs","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./GlowCursor.css\";\n\nexport interface GlowCursorProps {\n children?:\n React.ReactNode;\n\n color?:\n string;\n\n size?:\n number;\n\n blur?:\n number;\n\n opacity?:\n number;\n\n followSpeed?:\n number;\n\n className?:\n string;\n}\n\nexport function GlowCursor({\n children,\n\n color =\n \"#825dff\",\n\n size =\n 110,\n\n blur =\n 35,\n\n opacity =\n 0.45,\n\n followSpeed =\n 0.12,\n\n className =\n \"\",\n}: GlowCursorProps) {\n const [\n point,\n setPoint,\n ] =\n useState({\n x: 0,\n y: 0,\n });\n\n return (\n <div\n className={`fb-glow-cursor ${className}`}\n onMouseMove={(\n event\n ) => {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n setPoint({\n x:\n event.clientX -\n rect.left,\n\n y:\n event.clientY -\n rect.top,\n });\n }}\n >\n <div\n className=\"fb-glow-cursor__glow\"\n style={{\n width:\n size,\n\n height:\n size,\n\n left:\n point.x,\n\n top:\n point.y,\n\n background:\n color,\n\n filter:\n `blur(${blur}px)`,\n\n opacity,\n\n transitionDuration:\n `${followSpeed}s`,\n }}\n />\n\n <div className=\"fb-glow-cursor__content\">\n {children}\n </div>\n </div>\n );\n}","import {\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport type {\n HTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./MagneticCursor.css\";\n\nexport interface MagneticCursorProps\n extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n\n color?: string;\n\n size?: number;\n\n ringSize?: number;\n\n followSpeed?: number;\n\n magneticStrength?: number;\n\n className?: string;\n}\n\ninterface Point {\n x: number;\n y: number;\n}\n\nexport function MagneticCursor({\n children,\n\n color = \"#b99cff\",\n\n size = 18,\n\n ringSize = 44,\n\n followSpeed = 0.14,\n\n magneticStrength = 0.25,\n\n className = \"\",\n\n style,\n\n ...props\n}: MagneticCursorProps) {\n const containerRef =\n useRef<HTMLDivElement>(\n null\n );\n\n const [\n point,\n setPoint,\n ] =\n useState<Point>({\n x: 0,\n y: 0,\n });\n\n const [\n visible,\n setVisible,\n ] =\n useState(false);\n\n const [\n hoveringTarget,\n setHoveringTarget,\n ] =\n useState(false);\n\n useEffect(() => {\n const element =\n containerRef.current;\n\n if (!element) {\n return;\n }\n\n function handlePointerMove(\n event: PointerEvent\n ) {\n const rect =\n element!.getBoundingClientRect();\n\n let x =\n event.clientX -\n rect.left;\n\n let y =\n event.clientY -\n rect.top;\n\n const target =\n (\n event.target as\n HTMLElement | null\n )?.closest(\n \"[data-magnetic-target]\"\n ) as\n | HTMLElement\n | null;\n\n if (target) {\n const targetRect =\n target.getBoundingClientRect();\n\n const centerX =\n targetRect.left +\n targetRect.width /\n 2;\n\n const centerY =\n targetRect.top +\n targetRect.height /\n 2;\n\n x +=\n (\n centerX -\n event.clientX\n ) *\n magneticStrength;\n\n y +=\n (\n centerY -\n event.clientY\n ) *\n magneticStrength;\n\n setHoveringTarget(\n true\n );\n } else {\n setHoveringTarget(\n false\n );\n }\n\n setPoint({\n x,\n y,\n });\n\n setVisible(\n true\n );\n }\n\n function handlePointerLeave() {\n setVisible(\n false\n );\n\n setHoveringTarget(\n false\n );\n }\n\n element.addEventListener(\n \"pointermove\",\n handlePointerMove\n );\n\n element.addEventListener(\n \"pointerleave\",\n handlePointerLeave\n );\n\n return () => {\n element.removeEventListener(\n \"pointermove\",\n handlePointerMove\n );\n\n element.removeEventListener(\n \"pointerleave\",\n handlePointerLeave\n );\n };\n }, [\n magneticStrength,\n ]);\n\n return (\n <div\n {...props}\n ref={\n containerRef\n }\n className={`fb-magnetic-cursor ${className}`}\n style={{\n ...style,\n\n cursor:\n \"none\",\n }}\n >\n <div className=\"fb-magnetic-cursor__content\">\n {children}\n </div>\n\n <span\n aria-hidden=\"true\"\n className={`fb-magnetic-cursor__ring ${\n visible\n ? \"is-visible\"\n : \"\"\n } ${\n hoveringTarget\n ? \"is-targeting\"\n : \"\"\n }`}\n style={{\n width:\n ringSize,\n\n height:\n ringSize,\n\n left:\n point.x,\n\n top:\n point.y,\n\n borderColor:\n color,\n\n transitionDuration:\n `${followSpeed}s`,\n }}\n />\n\n <span\n aria-hidden=\"true\"\n className={`fb-magnetic-cursor__dot ${\n visible\n ? \"is-visible\"\n : \"\"\n }`}\n style={{\n width:\n size,\n\n height:\n size,\n\n left:\n point.x,\n\n top:\n point.y,\n\n background:\n color,\n\n boxShadow:\n `0 0 ${size}px ${color}`,\n }}\n />\n </div>\n );\n}"]}
@@ -117,5 +117,5 @@ function StartupLanding({
117
117
  }
118
118
 
119
119
  exports.StartupLanding = StartupLanding;
120
- //# sourceMappingURL=chunk-CTD2GDO6.cjs.map
121
- //# sourceMappingURL=chunk-CTD2GDO6.cjs.map
120
+ //# sourceMappingURL=chunk-B5HDPUQK.cjs.map
121
+ //# sourceMappingURL=chunk-B5HDPUQK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/landing/StartupLanding.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"chunk-B5HDPUQK.cjs","sourcesContent":["import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./StartupLanding.css\";\n\nexport interface StartupLandingProps\n extends HTMLAttributes<HTMLElement> {\n accent?: string;\n background?: string;\n radius?: number;\n\n showMetrics?: boolean;\n showFeatures?: boolean;\n\n className?: string;\n}\n\nexport function StartupLanding({\n accent = \"#7d63ff\",\n background = \"#08080c\",\n radius = 20,\n\n showMetrics = true,\n showFeatures = true,\n\n className = \"\",\n style,\n\n ...props\n}: StartupLandingProps) {\n return (\n <section\n {...props}\n className={`fb-startup-landing ${className}`}\n style={{\n ...style,\n\n background,\n\n [\"--fb-startup-accent\" as string]:\n accent,\n\n [\"--fb-startup-radius\" as string]:\n `${radius}px`,\n }}\n >\n <nav className=\"fb-startup-landing__nav\">\n <strong>\n ACME.\n </strong>\n\n <div>\n <a href=\"#product\">\n Product\n </a>\n\n <a href=\"#features\">\n Features\n </a>\n\n <a href=\"#pricing\">\n Pricing\n </a>\n </div>\n\n <button\n type=\"button\"\n >\n Join waitlist\n </button>\n </nav>\n\n <div className=\"fb-startup-landing__hero\">\n <span>\n LAUNCHING 2026\n </span>\n\n <h2>\n From idea\n <br />\n to momentum.\n </h2>\n\n <p>\n A focused operating\n layer for ambitious\n startups that want to\n build, launch and learn\n faster.\n </p>\n\n <button\n type=\"button\"\n >\n Get early access\n </button>\n </div>\n\n {showMetrics && (\n <div className=\"fb-startup-landing__metrics\">\n {[\n [\n \"42K\",\n \"Early users\",\n ],\n [\n \"4.9\",\n \"Average rating\",\n ],\n [\n \"99.9%\",\n \"Platform uptime\",\n ],\n ].map(\n (\n [\n value,\n label,\n ]\n ) => (\n <article\n key={\n label\n }\n >\n <strong>\n {value}\n </strong>\n\n <span>\n {label}\n </span>\n </article>\n )\n )}\n </div>\n )}\n\n {showFeatures && (\n <div\n id=\"features\"\n className=\"fb-startup-landing__features\"\n >\n {[\n \"Ship\",\n \"Measure\",\n \"Scale\",\n ].map(\n (\n feature,\n index\n ) => (\n <article\n key={\n feature\n }\n >\n <span>\n 0{\n index +\n 1\n }\n </span>\n\n <h3>\n {feature}\n </h3>\n\n <p>\n Simple tools\n designed around\n the decisions\n that matter.\n </p>\n </article>\n )\n )}\n </div>\n )}\n </section>\n );\n}"]}
@@ -190,5 +190,5 @@ function GlassButton({
190
190
  }
191
191
 
192
192
  export { GlassButton, GlowButton, MagneticButton };
193
- //# sourceMappingURL=chunk-K5QRX5CZ.js.map
194
- //# sourceMappingURL=chunk-K5QRX5CZ.js.map
193
+ //# sourceMappingURL=chunk-ENCZZRVK.js.map
194
+ //# sourceMappingURL=chunk-ENCZZRVK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/buttons/MagneticButton.tsx","../src/buttons/GlowButton.tsx","../src/buttons/GlassButton.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-ENCZZRVK.js","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./MagneticButton.css\";\n\nexport interface MagneticButtonProps {\n children?: React.ReactNode;\n\n background?: string;\n textColor?: string;\n fontSize?: number;\n radius?: number;\n paddingX?: number;\n paddingY?: number;\n strength?: number;\n\n className?: string;\n}\n\nexport function MagneticButton({\n children = \"Explore\",\n\n background =\n \"#ffffff\",\n\n textColor =\n \"#000000\",\n\n fontSize =\n 14,\n\n radius =\n 999,\n\n paddingX =\n 22,\n\n paddingY =\n 13,\n\n strength =\n 0.3,\n\n className =\n \"\",\n}: MagneticButtonProps) {\n const [\n offset,\n setOffset,\n ] =\n useState({\n x: 0,\n y: 0,\n });\n\n function handleMove(\n event:\n React.MouseEvent<HTMLButtonElement>\n ) {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n const centerX =\n rect.width /\n 2;\n\n const centerY =\n rect.height /\n 2;\n\n const x =\n event.clientX -\n rect.left -\n centerX;\n\n const y =\n event.clientY -\n rect.top -\n centerY;\n\n setOffset({\n x:\n x *\n strength,\n\n y:\n y *\n strength,\n });\n }\n\n return (\n <button\n type=\"button\"\n className={`fb-magnetic-button ${className}`}\n onMouseMove={\n handleMove\n }\n onMouseLeave={() =>\n setOffset({\n x: 0,\n y: 0,\n })\n }\n style={{\n background,\n color:\n textColor,\n\n fontSize,\n\n borderRadius:\n radius,\n\n padding:\n `${paddingY}px ${paddingX}px`,\n\n transform:\n `translate3d(\n ${offset.x}px,\n ${offset.y}px,\n 0\n )`,\n }}\n >\n {children}\n </button>\n );\n}","import type {\n ButtonHTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlowButton.css\";\n\nexport interface GlowButtonProps\n extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\"\n > {\n children?: ReactNode;\n\n background?: string;\n\n textColor?: string;\n\n glowColor?: string;\n\n glow?: number;\n\n radius?: number;\n\n fontSize?: number;\n\n paddingX?: number;\n}\n\nexport function GlowButton({\n children = \"Get started\",\n\n background = \"#7b5cff\",\n\n textColor = \"#ffffff\",\n\n glowColor = \"#9b7cff\",\n\n glow = 32,\n\n radius = 14,\n\n fontSize = 14,\n\n paddingX = 24,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlowButtonProps) {\n return (\n <button\n {...props}\n type={\n props.type ??\n \"button\"\n }\n className={`fb-glow-button ${className}`}\n style={{\n ...style,\n\n background,\n\n color:\n textColor,\n\n borderRadius:\n radius,\n\n fontSize,\n\n padding:\n `13px ${paddingX}px`,\n\n boxShadow:\n `0 0 ${glow}px ${glowColor}66`,\n\n [\"--fb-glow-button-color\" as string]:\n glowColor,\n }}\n >\n <span className=\"fb-glow-button__content\">\n {\n children\n }\n </span>\n\n <span\n className=\"fb-glow-button__glow\"\n aria-hidden=\"true\"\n />\n </button>\n );\n}","import type {\n ButtonHTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlassButton.css\";\n\nexport interface GlassButtonProps\n extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\"\n > {\n children?: ReactNode;\n\n textColor?: string;\n\n tint?: string;\n\n opacity?: number;\n\n blur?: number;\n\n radius?: number;\n\n borderOpacity?: number;\n}\n\nfunction hexToRgb(\n hex: string\n) {\n const clean =\n hex.replace(\n \"#\",\n \"\"\n );\n\n if (\n clean.length !==\n 6\n ) {\n return {\n r: 255,\n g: 255,\n b: 255,\n };\n }\n\n return {\n r:\n parseInt(\n clean.slice(\n 0,\n 2\n ),\n 16\n ),\n\n g:\n parseInt(\n clean.slice(\n 2,\n 4\n ),\n 16\n ),\n\n b:\n parseInt(\n clean.slice(\n 4,\n 6\n ),\n 16\n ),\n };\n}\n\nexport function GlassButton({\n children = \"Explore\",\n\n textColor = \"#ffffff\",\n\n tint = \"#ffffff\",\n\n opacity = 0.08,\n\n blur = 16,\n\n radius = 16,\n\n borderOpacity = 0.18,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlassButtonProps) {\n const rgb =\n hexToRgb(\n tint\n );\n\n return (\n <button\n {...props}\n type={\n props.type ??\n \"button\"\n }\n className={`fb-glass-button ${className}`}\n style={{\n ...style,\n\n color:\n textColor,\n\n background:\n `rgba(\n ${rgb.r},\n ${rgb.g},\n ${rgb.b},\n ${opacity}\n )`,\n\n backdropFilter:\n `blur(${blur}px)`,\n\n WebkitBackdropFilter:\n `blur(${blur}px)`,\n\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n }}\n >\n {\n children\n }\n\n <span\n className=\"fb-glass-button__shine\"\n aria-hidden=\"true\"\n />\n </button>\n );\n}"]}
@@ -79,5 +79,5 @@ function BlurReveal({
79
79
 
80
80
  exports.BlurReveal = BlurReveal;
81
81
  exports.RevealText = RevealText;
82
- //# sourceMappingURL=chunk-H6Y3EJPA.cjs.map
83
- //# sourceMappingURL=chunk-H6Y3EJPA.cjs.map
82
+ //# sourceMappingURL=chunk-F4XFUSPM.cjs.map
83
+ //# sourceMappingURL=chunk-F4XFUSPM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/text/RevealText.tsx","../src/text/BlurReveal.tsx"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;AAmBO,SAAS,UAAA,CAAW;AAAA,EACzB,2BACEA,eAAA,CAAAC,mBAAA,EAAA,EAAE,QAAA,EAAA;AAAA,IAAA,OAAA;AAAA,mCAEC,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE,QAAA;AAAA,mCAEL,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE;AAAA,GAAA,EAER,CAAA;AAAA,EAGF,KAAA,GACE,SAAA;AAAA,EAEF,MAAA,GACE,SAAA;AAAA,EAEF,QAAA,GACE,EAAA;AAAA,EAEF,UAAA,GACE,IAAA;AAAA,EAEF,QAAA,GACE,GAAA;AAAA,EAEF,SAAA,GACE,IAAA;AAAA,EAEF,SAAA,GACE;AACJ,CAAA,EAAoB;AAClB,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,kBAAkB,SAAS,CAAA,CAAA;AAAA,MACtC,KAAA,EAAO;AAAA,QACL,QAAA,EAEE,GAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,QAEb,UAAA;AAAA,QAEA,iBAAA,EACE,GAAG,QAAQ,CAAA,CAAA,CAAA;AAAA,QAEb,aAAA,EACE,YACI,WAAA,GACA,MAAA;AAAA,QAEN,UAAA,EACE,CAAA;AAAA;AAAA,YAAA,EAEI,KAAK,CAAA;AAAA,YAAA,EACL,MAAM;AAAA,WAAA,CAAA;AAAA,QAGZ,cAAA,EACE,MAAA;AAAA,QAEF,oBAAA,EACE,MAAA;AAAA,QAEF,KAAA,EACE;AAAA,OACJ;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AC/DO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA,mBACEF,eAAAA,CAAAC,mBAAAA,EAAA,EAAE,QAAA,EAAA;AAAA,IAAA,YAAA;AAAA,oBAEAC,eAAC,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE,OAAA;AAAA,oBAENA,eAAC,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE;AAAA,GAAA,EAER,CAAA;AAAA,EAGF,KAAA,GAAQ,SAAA;AAAA,EAER,QAAA,GAAW,EAAA;AAAA,EAEX,IAAA,GAAO,EAAA;AAAA,EAEP,QAAA,GAAW,EAAA;AAAA,EAEX,QAAA,GAAW,GAAA;AAAA,EAEX,MAAA,GAAS,KAAA;AAAA,EAET,SAAA,GAAY,EAAA;AAAA,EAEZ,KAAA;AAAA,EAEA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,WAAW,CAAA,eAAA,EACT,MAAA,GACI,wBAAA,GACA,EACN,IAAI,SAAS,CAAA,CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAG,KAAA;AAAA,QAEH,KAAA;AAAA,QAEA,QAAA,EACE,GAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,QAEb,CAAC,uBAAiC,GAChC,CAAA,EAAG,IAAI,CAAA,EAAA,CAAA;AAAA,QAET,CAAC,2BAAqC,GACpC,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,QAEb,CAAC,2BAAqC,GACpC,CAAA,EAAG,QAAQ,CAAA,CAAA;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ","file":"chunk-F4XFUSPM.cjs","sourcesContent":["import \"./RevealText.css\";\n\nexport interface RevealTextProps {\n children?: React.ReactNode;\n\n color?: string;\n accent?: string;\n\n fontSize?: number;\n\n lineHeight?: number;\n\n duration?: number;\n\n uppercase?: boolean;\n\n className?: string;\n}\n\nexport function RevealText({\n children = (\n <>\n Build\n <br />\n better\n <br />\n interfaces\n </>\n ),\n\n color =\n \"#ffffff\",\n\n accent =\n \"#866cff\",\n\n fontSize =\n 42,\n\n lineHeight =\n 0.86,\n\n duration =\n 0.7,\n\n uppercase =\n true,\n\n className =\n \"\",\n}: RevealTextProps) {\n return (\n <div\n className={`fb-reveal-text ${className}`}\n style={{\n fontSize:\n\n `${fontSize}px`,\n\n lineHeight,\n\n animationDuration:\n `${duration}s`,\n\n textTransform:\n uppercase\n ? \"uppercase\"\n : \"none\",\n\n background:\n `linear-gradient(\n 90deg,\n ${color},\n ${accent}\n )`,\n\n backgroundClip:\n \"text\",\n\n WebkitBackgroundClip:\n \"text\",\n\n color:\n \"transparent\",\n }}\n >\n {children}\n </div>\n );\n}","import type {\n HTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./BlurReveal.css\";\n\nexport interface BlurRevealProps\n extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n\n color?: string;\n\n fontSize?: number;\n\n blur?: number;\n\n distance?: number;\n\n duration?: number;\n\n repeat?: boolean;\n\n className?: string;\n}\n\nexport function BlurReveal({\n children = (\n <>\n Interfaces\n <br />\n worth\n <br />\n remembering.\n </>\n ),\n\n color = \"#ffffff\",\n\n fontSize = 48,\n\n blur = 14,\n\n distance = 24,\n\n duration = 0.8,\n\n repeat = false,\n\n className = \"\",\n\n style,\n\n ...props\n}: BlurRevealProps) {\n return (\n <div\n {...props}\n className={`fb-blur-reveal ${\n repeat\n ? \"fb-blur-reveal--repeat\"\n : \"\"\n } ${className}`}\n style={{\n ...style,\n\n color,\n\n fontSize:\n `${fontSize}px`,\n\n [\"--fb-blur-reveal-blur\" as string]:\n `${blur}px`,\n\n [\"--fb-blur-reveal-distance\" as string]:\n `${distance}px`,\n\n [\"--fb-blur-reveal-duration\" as string]:\n `${duration}s`,\n }}\n >\n {children}\n </div>\n );\n}"]}
@@ -121,5 +121,5 @@ function SaasLaunchHero({
121
121
  }
122
122
 
123
123
  exports.SaasLaunchHero = SaasLaunchHero;
124
- //# sourceMappingURL=chunk-4FWJRWS5.cjs.map
125
- //# sourceMappingURL=chunk-4FWJRWS5.cjs.map
124
+ //# sourceMappingURL=chunk-HPWZ5OL2.cjs.map
125
+ //# sourceMappingURL=chunk-HPWZ5OL2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/heroes/SaasLaunchHero.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"chunk-HPWZ5OL2.cjs","sourcesContent":["import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./SaasLaunchHero.css\";\n\nexport interface SaasLaunchHeroProps\n extends HTMLAttributes<HTMLElement> {\n accent?: string;\n background?: string;\n headlineSize?: number;\n\n eyebrow?: string;\n title?: string;\n description?: string;\n\n primaryLabel?: string;\n secondaryLabel?: string;\n\n showSecondary?: boolean;\n showProof?: boolean;\n\n className?: string;\n}\n\nexport function SaasLaunchHero({\n accent = \"#8f73ff\",\n background = \"#09090d\",\n headlineSize = 72,\n\n eyebrow =\n \"BUILT FOR MODERN TEAMS\",\n\n title =\n \"Ship faster.\\nScale smarter.\",\n\n description =\n \"Everything your team needs to launch, learn and scale without adding unnecessary complexity.\",\n\n primaryLabel =\n \"Start free\",\n\n secondaryLabel =\n \"See demo\",\n\n showSecondary = true,\n showProof = true,\n\n className = \"\",\n style,\n\n ...props\n}: SaasLaunchHeroProps) {\n return (\n <section\n {...props}\n className={`fb-saas-launch-hero ${className}`}\n style={{\n ...style,\n\n background,\n\n [\"--fb-saas-accent\" as string]:\n accent,\n\n [\"--fb-saas-headline-size\" as string]:\n `${headlineSize}px`,\n }}\n >\n <div\n className=\"fb-saas-launch-hero__glow\"\n aria-hidden=\"true\"\n />\n\n <div className=\"fb-saas-launch-hero__content\">\n <span className=\"fb-saas-launch-hero__eyebrow\">\n {eyebrow}\n </span>\n\n <h2>\n {title\n .split(\"\\n\")\n .map(\n (\n line,\n index\n ) => (\n <span\n key={`${line}-${index}`}\n >\n {line}\n </span>\n )\n )}\n </h2>\n\n <p>\n {description}\n </p>\n\n <div className=\"fb-saas-launch-hero__actions\">\n <button\n type=\"button\"\n className=\"fb-saas-launch-hero__primary\"\n >\n {primaryLabel}\n </button>\n\n {showSecondary && (\n <button\n type=\"button\"\n className=\"fb-saas-launch-hero__secondary\"\n >\n {secondaryLabel}\n </button>\n )}\n </div>\n\n {showProof && (\n <div className=\"fb-saas-launch-hero__proof\">\n <div\n aria-hidden=\"true\"\n >\n <span />\n <span />\n <span />\n </div>\n\n <p>\n Trusted by product\n teams building the\n next generation.\n </p>\n </div>\n )}\n </div>\n\n <div\n className=\"fb-saas-launch-hero__visual\"\n aria-hidden=\"true\"\n >\n <div className=\"fb-saas-launch-hero__visual-card\">\n <span>\n ACTIVE USERS\n </span>\n\n <strong>\n 42,891\n </strong>\n\n <small>\n +18.4%\n </small>\n </div>\n\n <div className=\"fb-saas-launch-hero__bars\">\n {[\n 42,\n 64,\n 51,\n 76,\n 68,\n 88,\n 72,\n ].map(\n (\n height,\n index\n ) => (\n <span\n key={index}\n style={{\n height:\n `${height}%`,\n }}\n />\n )\n )}\n </div>\n </div>\n </section>\n );\n}"]}
@@ -119,5 +119,5 @@ function SaasLaunchHero({
119
119
  }
120
120
 
121
121
  export { SaasLaunchHero };
122
- //# sourceMappingURL=chunk-JHOJY54P.js.map
123
- //# sourceMappingURL=chunk-JHOJY54P.js.map
122
+ //# sourceMappingURL=chunk-HSY72AJ4.js.map
123
+ //# sourceMappingURL=chunk-HSY72AJ4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/heroes/SaasLaunchHero.tsx"],"names":[],"mappings":"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","file":"chunk-HSY72AJ4.js","sourcesContent":["import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./SaasLaunchHero.css\";\n\nexport interface SaasLaunchHeroProps\n extends HTMLAttributes<HTMLElement> {\n accent?: string;\n background?: string;\n headlineSize?: number;\n\n eyebrow?: string;\n title?: string;\n description?: string;\n\n primaryLabel?: string;\n secondaryLabel?: string;\n\n showSecondary?: boolean;\n showProof?: boolean;\n\n className?: string;\n}\n\nexport function SaasLaunchHero({\n accent = \"#8f73ff\",\n background = \"#09090d\",\n headlineSize = 72,\n\n eyebrow =\n \"BUILT FOR MODERN TEAMS\",\n\n title =\n \"Ship faster.\\nScale smarter.\",\n\n description =\n \"Everything your team needs to launch, learn and scale without adding unnecessary complexity.\",\n\n primaryLabel =\n \"Start free\",\n\n secondaryLabel =\n \"See demo\",\n\n showSecondary = true,\n showProof = true,\n\n className = \"\",\n style,\n\n ...props\n}: SaasLaunchHeroProps) {\n return (\n <section\n {...props}\n className={`fb-saas-launch-hero ${className}`}\n style={{\n ...style,\n\n background,\n\n [\"--fb-saas-accent\" as string]:\n accent,\n\n [\"--fb-saas-headline-size\" as string]:\n `${headlineSize}px`,\n }}\n >\n <div\n className=\"fb-saas-launch-hero__glow\"\n aria-hidden=\"true\"\n />\n\n <div className=\"fb-saas-launch-hero__content\">\n <span className=\"fb-saas-launch-hero__eyebrow\">\n {eyebrow}\n </span>\n\n <h2>\n {title\n .split(\"\\n\")\n .map(\n (\n line,\n index\n ) => (\n <span\n key={`${line}-${index}`}\n >\n {line}\n </span>\n )\n )}\n </h2>\n\n <p>\n {description}\n </p>\n\n <div className=\"fb-saas-launch-hero__actions\">\n <button\n type=\"button\"\n className=\"fb-saas-launch-hero__primary\"\n >\n {primaryLabel}\n </button>\n\n {showSecondary && (\n <button\n type=\"button\"\n className=\"fb-saas-launch-hero__secondary\"\n >\n {secondaryLabel}\n </button>\n )}\n </div>\n\n {showProof && (\n <div className=\"fb-saas-launch-hero__proof\">\n <div\n aria-hidden=\"true\"\n >\n <span />\n <span />\n <span />\n </div>\n\n <p>\n Trusted by product\n teams building the\n next generation.\n </p>\n </div>\n )}\n </div>\n\n <div\n className=\"fb-saas-launch-hero__visual\"\n aria-hidden=\"true\"\n >\n <div className=\"fb-saas-launch-hero__visual-card\">\n <span>\n ACTIVE USERS\n </span>\n\n <strong>\n 42,891\n </strong>\n\n <small>\n +18.4%\n </small>\n </div>\n\n <div className=\"fb-saas-launch-hero__bars\">\n {[\n 42,\n 64,\n 51,\n 76,\n 68,\n 88,\n 72,\n ].map(\n (\n height,\n index\n ) => (\n <span\n key={index}\n style={{\n height:\n `${height}%`,\n }}\n />\n )\n )}\n </div>\n </div>\n </section>\n );\n}"]}
@@ -115,5 +115,5 @@ function StartupLanding({
115
115
  }
116
116
 
117
117
  export { StartupLanding };
118
- //# sourceMappingURL=chunk-R2F3FTBL.js.map
119
- //# sourceMappingURL=chunk-R2F3FTBL.js.map
118
+ //# sourceMappingURL=chunk-IZJHBS5M.js.map
119
+ //# sourceMappingURL=chunk-IZJHBS5M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/landing/StartupLanding.tsx"],"names":[],"mappings":";;;AAkBO,SAAS,cAAA,CAAe;AAAA,EAC7B,MAAA,GAAS,SAAA;AAAA,EACT,UAAA,GAAa,SAAA;AAAA,EACb,MAAA,GAAS,EAAA;AAAA,EAET,WAAA,GAAc,IAAA;AAAA,EACd,YAAA,GAAe,IAAA;AAAA,EAEf,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA;AAAA,EAEA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,sBAAsB,SAAS,CAAA,CAAA;AAAA,MAC1C,KAAA,EAAO;AAAA,QACL,GAAG,KAAA;AAAA,QAEH,UAAA;AAAA,QAEA,CAAC,qBAA+B,GAC9B,MAAA;AAAA,QAEF,CAAC,qBAA+B,GAC9B,CAAA,EAAG,MAAM,CAAA,EAAA;AAAA,OACb;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,YAAO,QAAA,EAAA,OAAA,EAER,CAAA;AAAA,+BAEC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,UAAA,EAAW,QAAA,EAAA,SAAA,EAEnB,CAAA;AAAA,4BAEA,GAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,WAAA,EAAY,QAAA,EAAA,UAAA,EAEpB,CAAA;AAAA,4BAEA,GAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,UAAA,EAAW,QAAA,EAAA,SAAA,EAEnB;AAAA,WAAA,EACF,CAAA;AAAA,0BAEA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACN,QAAA,EAAA;AAAA;AAAA;AAED,SAAA,EACF,CAAA;AAAA,wBAEA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAK,QAAA,EAAA,gBAAA,EAEN,CAAA;AAAA,+BAEC,IAAA,EAAA,EAAG,QAAA,EAAA;AAAA,YAAA,WAAA;AAAA,gCAED,IAAA,EAAA,EAAG,CAAA;AAAA,YAAE;AAAA,WAAA,EAER,CAAA;AAAA,0BAEA,GAAA,CAAC,OAAE,QAAA,EAAA,+FAAA,EAMH,CAAA;AAAA,0BAEA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACN,QAAA,EAAA;AAAA;AAAA;AAED,SAAA,EACF,CAAA;AAAA,QAEC,WAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACZ,QAAA,EAAA;AAAA,UACC;AAAA,YACE,KAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA;AAAA,YACE,KAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA;AAAA,YACE,OAAA;AAAA,YACA;AAAA;AACF,SACF,CAAE,GAAA;AAAA,UACA,CACE;AAAA,YACE,KAAA;AAAA,YACA;AAAA,WACF,qBAEA,IAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cAKC,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,YACE,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,gCAEA,GAAA,CAAC,UACE,QAAA,EAAA,KAAA,EACH;AAAA;AAAA,aAAA;AAAA,YATE;AAAA;AAUJ,SAEJ,EACF,CAAA;AAAA,QAGD,YAAA,oBACC,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,UAAA;AAAA,YACH,SAAA,EAAU,8BAAA;AAAA,YAET,QAAA,EAAA;AAAA,cACC,MAAA;AAAA,cACA,SAAA;AAAA,cACA;AAAA,aACF,CAAE,GAAA;AAAA,cACA,CACE,SACA,KAAA,qBAEA,IAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBAKC,QAAA,EAAA;AAAA,oCAAA,IAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,sBAEF,KAAA,GACA;AAAA,qBAAA,EAEJ,CAAA;AAAA,oCAEA,GAAA,CAAC,QACE,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,oCAEA,GAAA,CAAC,OAAE,QAAA,EAAA,yDAAA,EAKH;AAAA;AAAA,iBAAA;AAAA,gBAnBE;AAAA;AAoBJ;AAEJ;AAAA;AACF;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-IZJHBS5M.js","sourcesContent":["import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./StartupLanding.css\";\n\nexport interface StartupLandingProps\n extends HTMLAttributes<HTMLElement> {\n accent?: string;\n background?: string;\n radius?: number;\n\n showMetrics?: boolean;\n showFeatures?: boolean;\n\n className?: string;\n}\n\nexport function StartupLanding({\n accent = \"#7d63ff\",\n background = \"#08080c\",\n radius = 20,\n\n showMetrics = true,\n showFeatures = true,\n\n className = \"\",\n style,\n\n ...props\n}: StartupLandingProps) {\n return (\n <section\n {...props}\n className={`fb-startup-landing ${className}`}\n style={{\n ...style,\n\n background,\n\n [\"--fb-startup-accent\" as string]:\n accent,\n\n [\"--fb-startup-radius\" as string]:\n `${radius}px`,\n }}\n >\n <nav className=\"fb-startup-landing__nav\">\n <strong>\n ACME.\n </strong>\n\n <div>\n <a href=\"#product\">\n Product\n </a>\n\n <a href=\"#features\">\n Features\n </a>\n\n <a href=\"#pricing\">\n Pricing\n </a>\n </div>\n\n <button\n type=\"button\"\n >\n Join waitlist\n </button>\n </nav>\n\n <div className=\"fb-startup-landing__hero\">\n <span>\n LAUNCHING 2026\n </span>\n\n <h2>\n From idea\n <br />\n to momentum.\n </h2>\n\n <p>\n A focused operating\n layer for ambitious\n startups that want to\n build, launch and learn\n faster.\n </p>\n\n <button\n type=\"button\"\n >\n Get early access\n </button>\n </div>\n\n {showMetrics && (\n <div className=\"fb-startup-landing__metrics\">\n {[\n [\n \"42K\",\n \"Early users\",\n ],\n [\n \"4.9\",\n \"Average rating\",\n ],\n [\n \"99.9%\",\n \"Platform uptime\",\n ],\n ].map(\n (\n [\n value,\n label,\n ]\n ) => (\n <article\n key={\n label\n }\n >\n <strong>\n {value}\n </strong>\n\n <span>\n {label}\n </span>\n </article>\n )\n )}\n </div>\n )}\n\n {showFeatures && (\n <div\n id=\"features\"\n className=\"fb-startup-landing__features\"\n >\n {[\n \"Ship\",\n \"Measure\",\n \"Scale\",\n ].map(\n (\n feature,\n index\n ) => (\n <article\n key={\n feature\n }\n >\n <span>\n 0{\n index +\n 1\n }\n </span>\n\n <h3>\n {feature}\n </h3>\n\n <p>\n Simple tools\n designed around\n the decisions\n that matter.\n </p>\n </article>\n )\n )}\n </div>\n )}\n </section>\n );\n}"]}
@@ -191,5 +191,5 @@ function MagneticCursor({
191
191
  }
192
192
 
193
193
  export { GlowCursor, MagneticCursor };
194
- //# sourceMappingURL=chunk-T7CC3CLH.js.map
195
- //# sourceMappingURL=chunk-T7CC3CLH.js.map
194
+ //# sourceMappingURL=chunk-J4ZYYB2O.js.map
195
+ //# sourceMappingURL=chunk-J4ZYYB2O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/motion/GlowCursor.tsx","../src/motion/MagneticCursor.tsx"],"names":["useState","jsxs","jsx"],"mappings":"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","file":"chunk-J4ZYYB2O.js","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./GlowCursor.css\";\n\nexport interface GlowCursorProps {\n children?:\n React.ReactNode;\n\n color?:\n string;\n\n size?:\n number;\n\n blur?:\n number;\n\n opacity?:\n number;\n\n followSpeed?:\n number;\n\n className?:\n string;\n}\n\nexport function GlowCursor({\n children,\n\n color =\n \"#825dff\",\n\n size =\n 110,\n\n blur =\n 35,\n\n opacity =\n 0.45,\n\n followSpeed =\n 0.12,\n\n className =\n \"\",\n}: GlowCursorProps) {\n const [\n point,\n setPoint,\n ] =\n useState({\n x: 0,\n y: 0,\n });\n\n return (\n <div\n className={`fb-glow-cursor ${className}`}\n onMouseMove={(\n event\n ) => {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n setPoint({\n x:\n event.clientX -\n rect.left,\n\n y:\n event.clientY -\n rect.top,\n });\n }}\n >\n <div\n className=\"fb-glow-cursor__glow\"\n style={{\n width:\n size,\n\n height:\n size,\n\n left:\n point.x,\n\n top:\n point.y,\n\n background:\n color,\n\n filter:\n `blur(${blur}px)`,\n\n opacity,\n\n transitionDuration:\n `${followSpeed}s`,\n }}\n />\n\n <div className=\"fb-glow-cursor__content\">\n {children}\n </div>\n </div>\n );\n}","import {\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport type {\n HTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./MagneticCursor.css\";\n\nexport interface MagneticCursorProps\n extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n\n color?: string;\n\n size?: number;\n\n ringSize?: number;\n\n followSpeed?: number;\n\n magneticStrength?: number;\n\n className?: string;\n}\n\ninterface Point {\n x: number;\n y: number;\n}\n\nexport function MagneticCursor({\n children,\n\n color = \"#b99cff\",\n\n size = 18,\n\n ringSize = 44,\n\n followSpeed = 0.14,\n\n magneticStrength = 0.25,\n\n className = \"\",\n\n style,\n\n ...props\n}: MagneticCursorProps) {\n const containerRef =\n useRef<HTMLDivElement>(\n null\n );\n\n const [\n point,\n setPoint,\n ] =\n useState<Point>({\n x: 0,\n y: 0,\n });\n\n const [\n visible,\n setVisible,\n ] =\n useState(false);\n\n const [\n hoveringTarget,\n setHoveringTarget,\n ] =\n useState(false);\n\n useEffect(() => {\n const element =\n containerRef.current;\n\n if (!element) {\n return;\n }\n\n function handlePointerMove(\n event: PointerEvent\n ) {\n const rect =\n element!.getBoundingClientRect();\n\n let x =\n event.clientX -\n rect.left;\n\n let y =\n event.clientY -\n rect.top;\n\n const target =\n (\n event.target as\n HTMLElement | null\n )?.closest(\n \"[data-magnetic-target]\"\n ) as\n | HTMLElement\n | null;\n\n if (target) {\n const targetRect =\n target.getBoundingClientRect();\n\n const centerX =\n targetRect.left +\n targetRect.width /\n 2;\n\n const centerY =\n targetRect.top +\n targetRect.height /\n 2;\n\n x +=\n (\n centerX -\n event.clientX\n ) *\n magneticStrength;\n\n y +=\n (\n centerY -\n event.clientY\n ) *\n magneticStrength;\n\n setHoveringTarget(\n true\n );\n } else {\n setHoveringTarget(\n false\n );\n }\n\n setPoint({\n x,\n y,\n });\n\n setVisible(\n true\n );\n }\n\n function handlePointerLeave() {\n setVisible(\n false\n );\n\n setHoveringTarget(\n false\n );\n }\n\n element.addEventListener(\n \"pointermove\",\n handlePointerMove\n );\n\n element.addEventListener(\n \"pointerleave\",\n handlePointerLeave\n );\n\n return () => {\n element.removeEventListener(\n \"pointermove\",\n handlePointerMove\n );\n\n element.removeEventListener(\n \"pointerleave\",\n handlePointerLeave\n );\n };\n }, [\n magneticStrength,\n ]);\n\n return (\n <div\n {...props}\n ref={\n containerRef\n }\n className={`fb-magnetic-cursor ${className}`}\n style={{\n ...style,\n\n cursor:\n \"none\",\n }}\n >\n <div className=\"fb-magnetic-cursor__content\">\n {children}\n </div>\n\n <span\n aria-hidden=\"true\"\n className={`fb-magnetic-cursor__ring ${\n visible\n ? \"is-visible\"\n : \"\"\n } ${\n hoveringTarget\n ? \"is-targeting\"\n : \"\"\n }`}\n style={{\n width:\n ringSize,\n\n height:\n ringSize,\n\n left:\n point.x,\n\n top:\n point.y,\n\n borderColor:\n color,\n\n transitionDuration:\n `${followSpeed}s`,\n }}\n />\n\n <span\n aria-hidden=\"true\"\n className={`fb-magnetic-cursor__dot ${\n visible\n ? \"is-visible\"\n : \"\"\n }`}\n style={{\n width:\n size,\n\n height:\n size,\n\n left:\n point.x,\n\n top:\n point.y,\n\n background:\n color,\n\n boxShadow:\n `0 0 ${size}px ${color}`,\n }}\n />\n </div>\n );\n}"]}
@@ -201,5 +201,5 @@ function GlassCard({
201
201
 
202
202
  exports.GlassCard = GlassCard;
203
203
  exports.SpotlightCard = SpotlightCard;
204
- //# sourceMappingURL=chunk-C3ASXASL.cjs.map
205
- //# sourceMappingURL=chunk-C3ASXASL.cjs.map
204
+ //# sourceMappingURL=chunk-MWSE4C6T.cjs.map
205
+ //# sourceMappingURL=chunk-MWSE4C6T.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/SpotlightCard.tsx","../src/ui/GlassCard.tsx"],"names":["jsxs","Fragment","jsx","useState"],"mappings":";;;;;;AA6BO,SAAS,aAAA,CAAc;AAAA,EAC5B,2BACEA,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,UAAK,QAAA,EAAA,IAAA,EAEN,CAAA;AAAA,oBAEAA,cAAA,CAAC,YAAO,QAAA,EAAA,WAAA,EAER,CAAA;AAAA,oBAEAA,cAAA,CAAC,OAAE,QAAA,EAAA,oCAAA,EAGH;AAAA,GAAA,EACF,CAAA;AAAA,EAGF,UAAA,GACE,SAAA;AAAA,EAEF,cAAA,GACE,SAAA;AAAA,EAEF,MAAA,GACE,EAAA;AAAA,EAEF,IAAA,GACE,EAAA;AAAA,EAEF,aAAA,GACE,IAAA;AAAA,EAEF,SAAA,GACE;AACJ,CAAA,EAAuB;AACrB,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA;AAAA,MAEAC,cAAA,CAAS;AAAA,IACP,CAAA,EAAG,EAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ,CAAA;AAEH,EAAA,SAAS,WACP,KAAA,EAEA;AACA,IAAA,MAAM,IAAA,GACJ,KAAA,CAAM,aAAA,CAAc,qBAAA,EAAsB;AAE5C,IAAA,QAAA,CAAS;AAAA,MACP,IACI,KAAA,CAAM,OAAA,GACN,IAAA,CAAK,IAAA,IACL,KAAK,KAAA,GACP,GAAA;AAAA,MAEF,IACI,KAAA,CAAM,OAAA,GACN,IAAA,CAAK,GAAA,IACL,KAAK,MAAA,GACP;AAAA,KACH,CAAA;AAAA,EACH;AAEA,EAAA,uBACED,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,qBAAqB,SAAS,CAAA,CAAA;AAAA,MACzC,WAAA,EACE,UAAA;AAAA,MAEF,KAAA,EAAO;AAAA,QACL,YAAA,EACE,MAAA;AAAA,QAEF,WAAA,EACE,CAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAII,aAAa;AAAA,WAAA,CAAA;AAAA,QAGnB,UAAA,EAAY;AAAA;AAAA;AAAA,YAAA,EAGN,MAAM,CAAC,CAAA;AAAA,YAAA,EACP,MAAM,CAAC,CAAA;AAAA,YAAA,EACP,cAAc,CAAA,EAAG,QAAA;AAAA,UACjB,IAAA,GACE;AAAA,SACH,CAAA;AAAA;AAAA;AAAA,UAAA,EAGD,UAAU;AAAA,QAAA;AAAA,OAEhB;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEA,SAAS,SACP,OAAA,EACA;AACA,EAAA,OAAO,IAAA,CAAK,KAAA;AAAA,IACV,IAAA,CAAK,GAAA;AAAA,MACH,CAAA;AAAA,MACA,IAAA,CAAK,GAAA;AAAA,QACH,CAAA;AAAA,QACA;AAAA;AACF,KACF,GACE;AAAA,GACJ,CACG,QAAA,CAAS,EAAE,CAAA,CACX,QAAA;AAAA,IACC,CAAA;AAAA,IACA;AAAA,GACF;AACJ;AC5HA,SAAS,SACP,KAAA,EACA;AACA,EAAA,MAAM,QACJ,KAAA,CACG,OAAA;AAAA,IACC,GAAA;AAAA,IACA;AAAA,IAED,IAAA,EAAK;AAEV,EAAA,MAAM,aACJ,KAAA,CAAM,MAAA,KACN,IACI,KAAA,CACG,KAAA,CAAM,EAAE,CAAA,CACR,GAAA;AAAA,IACC,CACE,cAEA,SAAA,GACA;AAAA,GACJ,CACC,IAAA,CAAK,EAAE,CAAA,GACV,KAAA;AAEN,EAAA,IACE,UAAA,CAAW,WACX,CAAA,EACA;AACA,IAAA,OAAO;AAAA,MACL,CAAA,EAAG,GAAA;AAAA,MACH,CAAA,EAAG,GAAA;AAAA,MACH,CAAA,EAAG;AAAA,KACL;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,GACE,MAAA,CAAO,QAAA;AAAA,MACL,UAAA,CAAW,KAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA;AAAA,KACF;AAAA,IAEF,GACE,MAAA,CAAO,QAAA;AAAA,MACL,UAAA,CAAW,KAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA;AAAA,KACF;AAAA,IAEF,GACE,MAAA,CAAO,QAAA;AAAA,MACL,UAAA,CAAW,KAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA;AAAA;AACF,GACJ;AACF;AAEO,SAAS,SAAA,CAAU;AAAA,EACxB,QAAA,mBACEF,eAAAA,CAAAC,mBAAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,cAAA,EAEzC,CAAA;AAAA,oBAEAF,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,gBAAC,QAAA,EAAA,EAAO,QAAA,EAAA;AAAA,QAAA,WAAA;AAAA,wBAENE,eAAC,IAAA,EAAA,EAAG,CAAA;AAAA,QAAE;AAAA,OAAA,EAER,CAAA;AAAA,sBAEAA,cAAAA,CAAC,GAAA,EAAA,EAAE,QAAA,EAAA,2CAAA,EAGH;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAAA,EAGF,IAAA,GAAO,SAAA;AAAA,EAEP,OAAA,GAAU,IAAA;AAAA,EAEV,IAAA,GAAO,EAAA;AAAA,EAEP,MAAA,GAAS,EAAA;AAAA,EAET,aAAA,GAAgB,IAAA;AAAA,EAEhB,SAAA,GAAY,SAAA;AAAA,EAEZ,IAAA,GAAO,EAAA;AAAA,EAEP,SAAA,GAAY,EAAA;AAAA,EAEZ,KAAA;AAAA,EAEA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,OAAA,GACJ,QAAA;AAAA,IACE;AAAA,GACF;AAEF,EAAA,MAAM,OAAA,GACJ,QAAA;AAAA,IACE;AAAA,GACF;AAEF,EAAA,uBACEF,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,iBAAiB,SAAS,CAAA,CAAA;AAAA,MACrC,KAAA,EAAO;AAAA,QACL,GAAG,KAAA;AAAA,QAEH,YAAA,EACE,MAAA;AAAA,QAEF,WAAA,EACE,CAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAII,aAAa;AAAA,WAAA,CAAA;AAAA,QAGnB,UAAA,EACE,CAAA;AAAA;AAAA;AAAA,cAAA,EAGM,QAAQ,CAAC,CAAA;AAAA,cAAA,EACT,QAAQ,CAAC,CAAA;AAAA,cAAA,EACT,QAAQ,CAAC,CAAA;AAAA,cAAA,EACT,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAMP,UAAU,IAAI;AAAA;AAAA,WAAA,CAAA;AAAA,QAItB,cAAA,EACE,QAAQ,IAAI,CAAA,GAAA,CAAA;AAAA,QAEd,oBAAA,EACE,QAAQ,IAAI,CAAA,GAAA,CAAA;AAAA,QAEd,SAAA,EACE,CAAA;AAAA,YAAA,EACI,QAAQ,CAAC,CAAA;AAAA,YAAA,EACT,QAAQ,CAAC,CAAA;AAAA,YAAA,EACT,QAAQ,CAAC,CAAA;AAAA,YAAA,EACT,OAAO,GAAG;AAAA,WAAA;AAAA,OAElB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAE,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,qBAAA;AAAA,YACV,aAAA,EAAY,MAAA;AAAA,YACZ,KAAA,EAAO;AAAA,cACL,UAAA,EACE,SAAA;AAAA,cAEF,MAAA,EACE,QAAQ,IAAI,CAAA,GAAA;AAAA;AAChB;AAAA,SACF;AAAA,wBAEAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBACZ,QAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ","file":"chunk-MWSE4C6T.cjs","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./SpotlightCard.css\";\n\nexport interface SpotlightCardProps {\n children?:\n React.ReactNode;\n\n background?:\n string;\n\n spotlightColor?:\n string;\n\n radius?:\n number;\n\n glow?:\n number;\n\n borderOpacity?:\n number;\n\n className?:\n string;\n}\n\nexport function SpotlightCard({\n children = (\n <>\n <span>\n FB\n </span>\n\n <strong>\n Spotlight\n </strong>\n\n <p>\n Move your pointer\n across the card.\n </p>\n </>\n ),\n\n background =\n \"#111116\",\n\n spotlightColor =\n \"#9b7cff\",\n\n radius =\n 14,\n\n glow =\n 35,\n\n borderOpacity =\n 0.12,\n\n className =\n \"\",\n}: SpotlightCardProps) {\n const [\n point,\n setPoint,\n ] =\n useState({\n x: 50,\n y: 30,\n });\n\n function handleMove(\n event:\n React.MouseEvent<HTMLDivElement>\n ) {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n setPoint({\n x:\n ((event.clientX -\n rect.left) /\n rect.width) *\n 100,\n\n y:\n ((event.clientY -\n rect.top) /\n rect.height) *\n 100,\n });\n }\n\n return (\n <div\n className={`fb-spotlight-card ${className}`}\n onMouseMove={\n handleMove\n }\n style={{\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n\n background: `\n radial-gradient(\n circle at\n ${point.x}%\n ${point.y}%,\n ${spotlightColor}${hexAlpha(\n glow /\n 100\n )},\n transparent 38%\n ),\n ${background}\n `,\n }}\n >\n {children}\n </div>\n );\n}\n\nfunction hexAlpha(\n opacity: number\n) {\n return Math.round(\n Math.min(\n 1,\n Math.max(\n 0,\n opacity\n )\n ) *\n 255\n )\n .toString(16)\n .padStart(\n 2,\n \"0\"\n );\n}","import type {\n HTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlassCard.css\";\n\nexport interface GlassCardProps\n extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n\n tint?: string;\n\n opacity?: number;\n\n blur?: number;\n\n radius?: number;\n\n borderOpacity?: number;\n\n glowColor?: string;\n\n glow?: number;\n\n className?: string;\n}\n\nfunction hexToRgb(\n value: string\n) {\n const clean =\n value\n .replace(\n \"#\",\n \"\"\n )\n .trim();\n\n const normalized =\n clean.length ===\n 3\n ? clean\n .split(\"\")\n .map(\n (\n character\n ) =>\n character +\n character\n )\n .join(\"\")\n : clean;\n\n if (\n normalized.length !==\n 6\n ) {\n return {\n r: 143,\n g: 115,\n b: 255,\n };\n }\n\n return {\n r:\n Number.parseInt(\n normalized.slice(\n 0,\n 2\n ),\n 16\n ),\n\n g:\n Number.parseInt(\n normalized.slice(\n 2,\n 4\n ),\n 16\n ),\n\n b:\n Number.parseInt(\n normalized.slice(\n 4,\n 6\n ),\n 16\n ),\n };\n}\n\nexport function GlassCard({\n children = (\n <>\n <span className=\"fb-glass-card__eyebrow\">\n 01 / FEATURE\n </span>\n\n <div className=\"fb-glass-card__content\">\n <strong>\n Built for\n <br />\n motion.\n </strong>\n\n <p>\n Premium interaction\n without visual noise.\n </p>\n </div>\n </>\n ),\n\n tint = \"#8f73ff\",\n\n opacity = 0.08,\n\n blur = 18,\n\n radius = 22,\n\n borderOpacity = 0.16,\n\n glowColor = \"#8f73ff\",\n\n glow = 34,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlassCardProps) {\n const tintRgb =\n hexToRgb(\n tint\n );\n\n const glowRgb =\n hexToRgb(\n glowColor\n );\n\n return (\n <div\n {...props}\n className={`fb-glass-card ${className}`}\n style={{\n ...style,\n\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n\n background:\n `linear-gradient(\n 145deg,\n rgba(\n ${tintRgb.r},\n ${tintRgb.g},\n ${tintRgb.b},\n ${opacity}\n ),\n rgba(\n 255,\n 255,\n 255,\n ${opacity * 0.35}\n )\n )`,\n\n backdropFilter:\n `blur(${blur}px)`,\n\n WebkitBackdropFilter:\n `blur(${blur}px)`,\n\n boxShadow:\n `0 24px 80px rgba(\n ${glowRgb.r},\n ${glowRgb.g},\n ${glowRgb.b},\n ${glow / 400}\n )`,\n }}\n >\n <span\n className=\"fb-glass-card__glow\"\n aria-hidden=\"true\"\n style={{\n background:\n glowColor,\n\n filter:\n `blur(${glow}px)`,\n }}\n />\n\n <div className=\"fb-glass-card__inner\">\n {children}\n </div>\n </div>\n );\n}"]}
@@ -252,5 +252,5 @@ function MetricGrid({
252
252
  }
253
253
 
254
254
  export { AnimatedCounter, MetricGrid, RadialProgress };
255
- //# sourceMappingURL=chunk-WDUETPNG.js.map
256
- //# sourceMappingURL=chunk-WDUETPNG.js.map
255
+ //# sourceMappingURL=chunk-O2FP27HX.js.map
256
+ //# sourceMappingURL=chunk-O2FP27HX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/AnimatedCounter.tsx","../src/data/RadialProgress.tsx","../src/data/MetricGrid.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"chunk-O2FP27HX.js","sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./AnimatedCounter.css\";\n\nexport interface AnimatedCounterProps\n extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n duration?: number;\n\n color?: string;\n accent?: string;\n\n fontSize?: number;\n\n prefix?: string;\n suffix?: string;\n\n label?: string;\n delta?: string;\n\n decimals?: number;\n\n className?: string;\n}\n\nexport function AnimatedCounter({\n value = 128,\n duration = 1.5,\n\n color = \"#ffffff\",\n accent = \"#9b7cff\",\n\n fontSize = 72,\n\n prefix = \"\",\n suffix = \"K\",\n\n label =\n \"ACTIVE USERS\",\n\n delta =\n \"+18.4%\",\n\n decimals = 0,\n\n className = \"\",\n style,\n\n ...props\n}: AnimatedCounterProps) {\n const [\n displayed,\n setDisplayed,\n ] =\n useState(0);\n\n const frameRef =\n useRef<number | null>(\n null\n );\n\n useEffect(() => {\n const start =\n performance.now();\n\n const total =\n Math.max(\n duration,\n 0.01\n ) *\n 1000;\n\n function animate(\n now: number\n ) {\n const progress =\n Math.min(\n (\n now -\n start\n ) /\n total,\n 1\n );\n\n const eased =\n 1 -\n Math.pow(\n 1 -\n progress,\n 3\n );\n\n setDisplayed(\n value *\n eased\n );\n\n if (\n progress <\n 1\n ) {\n frameRef.current =\n requestAnimationFrame(\n animate\n );\n }\n }\n\n frameRef.current =\n requestAnimationFrame(\n animate\n );\n\n return () => {\n if (\n frameRef.current !==\n null\n ) {\n cancelAnimationFrame(\n frameRef.current\n );\n }\n };\n }, [\n value,\n duration,\n ]);\n\n return (\n <div\n {...props}\n className={`fb-animated-counter ${className}`}\n style={{\n ...style,\n\n color,\n\n [\"--fb-counter-accent\" as string]:\n accent,\n\n [\"--fb-counter-size\" as string]:\n `${fontSize}px`,\n }}\n >\n <span className=\"fb-animated-counter__label\">\n {label}\n </span>\n\n <strong>\n {prefix}\n\n {displayed.toLocaleString(\n undefined,\n {\n minimumFractionDigits:\n decimals,\n\n maximumFractionDigits:\n decimals,\n }\n )}\n\n {suffix}\n </strong>\n\n {delta && (\n <small>\n {delta}\n </small>\n )}\n </div>\n );\n}","import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./RadialProgress.css\";\n\nexport interface RadialProgressProps\n extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n\n size?: number;\n strokeWidth?: number;\n\n color?: string;\n trackColor?: string;\n\n animated?: boolean;\n\n label?: string;\n\n className?: string;\n}\n\nexport function RadialProgress({\n value = 72,\n\n size = 180,\n strokeWidth = 10,\n\n color = \"#9b7cff\",\n trackColor = \"#24242c\",\n\n animated = true,\n\n label =\n \"COMPLETE\",\n\n className = \"\",\n style,\n\n ...props\n}: RadialProgressProps) {\n const clamped =\n Math.min(\n 100,\n Math.max(\n 0,\n value\n )\n );\n\n const radius =\n 50 -\n strokeWidth /\n 2;\n\n const circumference =\n 2 *\n Math.PI *\n radius;\n\n const offset =\n circumference *\n (\n 1 -\n clamped /\n 100\n );\n\n return (\n <div\n {...props}\n className={`fb-radial-progress ${className}`}\n style={{\n ...style,\n\n width:\n size,\n\n height:\n size,\n\n [\"--fb-radial-color\" as string]:\n color,\n }}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={\n clamped\n }\n >\n <svg\n viewBox=\"0 0 100 100\"\n aria-hidden=\"true\"\n >\n <circle\n cx=\"50\"\n cy=\"50\"\n r={\n radius\n }\n fill=\"none\"\n stroke={\n trackColor\n }\n strokeWidth={\n strokeWidth\n }\n />\n\n <circle\n cx=\"50\"\n cy=\"50\"\n r={\n radius\n }\n fill=\"none\"\n stroke={\n color\n }\n strokeWidth={\n strokeWidth\n }\n strokeLinecap=\"round\"\n strokeDasharray={\n circumference\n }\n strokeDashoffset={\n offset\n }\n className={\n animated\n ? \"fb-radial-progress__value fb-radial-progress__value--animated\"\n : \"fb-radial-progress__value\"\n }\n />\n </svg>\n\n <div className=\"fb-radial-progress__content\">\n <strong>\n {Math.round(\n clamped\n )}\n <small>\n %\n </small>\n </strong>\n\n <span>\n {label}\n </span>\n </div>\n </div>\n );\n}","import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./MetricGrid.css\";\n\nexport interface MetricItem {\n label: string;\n value: string;\n delta?: string;\n positive?: boolean;\n}\n\nexport interface MetricGridProps\n extends HTMLAttributes<HTMLDivElement> {\n accent?: string;\n background?: string;\n\n columns?: number;\n radius?: number;\n\n items?: MetricItem[];\n\n className?: string;\n}\n\nconst defaultItems:\n MetricItem[] = [\n {\n label:\n \"Revenue\",\n\n value:\n \"$84.2K\",\n\n delta:\n \"+12.6%\",\n\n positive:\n true,\n },\n\n {\n label:\n \"Users\",\n\n value:\n \"18.4K\",\n\n delta:\n \"+8.1%\",\n\n positive:\n true,\n },\n\n {\n label:\n \"Conversion\",\n\n value:\n \"7.8%\",\n\n delta:\n \"+2.4%\",\n\n positive:\n true,\n },\n\n {\n label:\n \"Latency\",\n\n value:\n \"94ms\",\n\n delta:\n \"-11%\",\n\n positive:\n true,\n },\n ];\n\nexport function MetricGrid({\n accent = \"#9b7cff\",\n background = \"#111116\",\n\n columns = 3,\n radius = 18,\n\n items =\n defaultItems,\n\n className = \"\",\n style,\n\n ...props\n}: MetricGridProps) {\n return (\n <div\n {...props}\n className={`fb-metric-grid ${className}`}\n style={{\n ...style,\n\n gridTemplateColumns:\n `repeat(${Math.max(\n 1,\n columns\n )}, minmax(0, 1fr))`,\n\n [\"--fb-metric-accent\" as string]:\n accent,\n\n [\"--fb-metric-background\" as string]:\n background,\n\n [\"--fb-metric-radius\" as string]:\n `${radius}px`,\n }}\n >\n {items.map(\n (\n item\n ) => (\n <article\n key={\n item.label\n }\n >\n <span>\n {\n item.label\n }\n </span>\n\n <strong>\n {\n item.value\n }\n </strong>\n\n {item.delta && (\n <small\n className={\n item.positive ===\n false\n ? \"is-negative\"\n : \"\"\n }\n >\n {\n item.delta\n }\n </small>\n )}\n </article>\n )\n )}\n </div>\n );\n}"]}
@@ -194,5 +194,5 @@ function GlassButton({
194
194
  exports.GlassButton = GlassButton;
195
195
  exports.GlowButton = GlowButton;
196
196
  exports.MagneticButton = MagneticButton;
197
- //# sourceMappingURL=chunk-ROKPXWY2.cjs.map
198
- //# sourceMappingURL=chunk-ROKPXWY2.cjs.map
197
+ //# sourceMappingURL=chunk-QTX5BFS6.cjs.map
198
+ //# sourceMappingURL=chunk-QTX5BFS6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/buttons/MagneticButton.tsx","../src/buttons/GlowButton.tsx","../src/buttons/GlassButton.tsx"],"names":["useState","jsx","jsxs"],"mappings":"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","file":"chunk-QTX5BFS6.cjs","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./MagneticButton.css\";\n\nexport interface MagneticButtonProps {\n children?: React.ReactNode;\n\n background?: string;\n textColor?: string;\n fontSize?: number;\n radius?: number;\n paddingX?: number;\n paddingY?: number;\n strength?: number;\n\n className?: string;\n}\n\nexport function MagneticButton({\n children = \"Explore\",\n\n background =\n \"#ffffff\",\n\n textColor =\n \"#000000\",\n\n fontSize =\n 14,\n\n radius =\n 999,\n\n paddingX =\n 22,\n\n paddingY =\n 13,\n\n strength =\n 0.3,\n\n className =\n \"\",\n}: MagneticButtonProps) {\n const [\n offset,\n setOffset,\n ] =\n useState({\n x: 0,\n y: 0,\n });\n\n function handleMove(\n event:\n React.MouseEvent<HTMLButtonElement>\n ) {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n const centerX =\n rect.width /\n 2;\n\n const centerY =\n rect.height /\n 2;\n\n const x =\n event.clientX -\n rect.left -\n centerX;\n\n const y =\n event.clientY -\n rect.top -\n centerY;\n\n setOffset({\n x:\n x *\n strength,\n\n y:\n y *\n strength,\n });\n }\n\n return (\n <button\n type=\"button\"\n className={`fb-magnetic-button ${className}`}\n onMouseMove={\n handleMove\n }\n onMouseLeave={() =>\n setOffset({\n x: 0,\n y: 0,\n })\n }\n style={{\n background,\n color:\n textColor,\n\n fontSize,\n\n borderRadius:\n radius,\n\n padding:\n `${paddingY}px ${paddingX}px`,\n\n transform:\n `translate3d(\n ${offset.x}px,\n ${offset.y}px,\n 0\n )`,\n }}\n >\n {children}\n </button>\n );\n}","import type {\n ButtonHTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlowButton.css\";\n\nexport interface GlowButtonProps\n extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\"\n > {\n children?: ReactNode;\n\n background?: string;\n\n textColor?: string;\n\n glowColor?: string;\n\n glow?: number;\n\n radius?: number;\n\n fontSize?: number;\n\n paddingX?: number;\n}\n\nexport function GlowButton({\n children = \"Get started\",\n\n background = \"#7b5cff\",\n\n textColor = \"#ffffff\",\n\n glowColor = \"#9b7cff\",\n\n glow = 32,\n\n radius = 14,\n\n fontSize = 14,\n\n paddingX = 24,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlowButtonProps) {\n return (\n <button\n {...props}\n type={\n props.type ??\n \"button\"\n }\n className={`fb-glow-button ${className}`}\n style={{\n ...style,\n\n background,\n\n color:\n textColor,\n\n borderRadius:\n radius,\n\n fontSize,\n\n padding:\n `13px ${paddingX}px`,\n\n boxShadow:\n `0 0 ${glow}px ${glowColor}66`,\n\n [\"--fb-glow-button-color\" as string]:\n glowColor,\n }}\n >\n <span className=\"fb-glow-button__content\">\n {\n children\n }\n </span>\n\n <span\n className=\"fb-glow-button__glow\"\n aria-hidden=\"true\"\n />\n </button>\n );\n}","import type {\n ButtonHTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlassButton.css\";\n\nexport interface GlassButtonProps\n extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\"\n > {\n children?: ReactNode;\n\n textColor?: string;\n\n tint?: string;\n\n opacity?: number;\n\n blur?: number;\n\n radius?: number;\n\n borderOpacity?: number;\n}\n\nfunction hexToRgb(\n hex: string\n) {\n const clean =\n hex.replace(\n \"#\",\n \"\"\n );\n\n if (\n clean.length !==\n 6\n ) {\n return {\n r: 255,\n g: 255,\n b: 255,\n };\n }\n\n return {\n r:\n parseInt(\n clean.slice(\n 0,\n 2\n ),\n 16\n ),\n\n g:\n parseInt(\n clean.slice(\n 2,\n 4\n ),\n 16\n ),\n\n b:\n parseInt(\n clean.slice(\n 4,\n 6\n ),\n 16\n ),\n };\n}\n\nexport function GlassButton({\n children = \"Explore\",\n\n textColor = \"#ffffff\",\n\n tint = \"#ffffff\",\n\n opacity = 0.08,\n\n blur = 16,\n\n radius = 16,\n\n borderOpacity = 0.18,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlassButtonProps) {\n const rgb =\n hexToRgb(\n tint\n );\n\n return (\n <button\n {...props}\n type={\n props.type ??\n \"button\"\n }\n className={`fb-glass-button ${className}`}\n style={{\n ...style,\n\n color:\n textColor,\n\n background:\n `rgba(\n ${rgb.r},\n ${rgb.g},\n ${rgb.b},\n ${opacity}\n )`,\n\n backdropFilter:\n `blur(${blur}px)`,\n\n WebkitBackdropFilter:\n `blur(${blur}px)`,\n\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n }}\n >\n {\n children\n }\n\n <span\n className=\"fb-glass-button__shine\"\n aria-hidden=\"true\"\n />\n </button>\n );\n}"]}