@fluencypassdevs/cycle 1.15.1 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.mjs +0 -0
- package/bin/mcp.mjs +94 -0
- package/dist/{chunk-CBBCTX3A.js → chunk-2KFWBA76.js} +4 -4
- package/dist/{chunk-CBBCTX3A.js.map → chunk-2KFWBA76.js.map} +1 -1
- package/dist/{chunk-MJKZELI3.js → chunk-2M73I67G.js} +6 -6
- package/dist/{chunk-MJKZELI3.js.map → chunk-2M73I67G.js.map} +1 -1
- package/dist/{chunk-OHRYR7PN.js → chunk-2MBHI4VU.js} +3 -3
- package/dist/chunk-2MBHI4VU.js.map +1 -0
- package/dist/{chunk-WMOGNJWP.js → chunk-2SGRMGCM.js} +3 -3
- package/dist/chunk-2SGRMGCM.js.map +1 -0
- package/dist/{chunk-T7EIAVSF.js → chunk-2XFXNZNW.js} +3 -3
- package/dist/chunk-2XFXNZNW.js.map +1 -0
- package/dist/{chunk-JUVL7GN2.js → chunk-325K2R3T.js} +3 -3
- package/dist/{chunk-JUVL7GN2.js.map → chunk-325K2R3T.js.map} +1 -1
- package/dist/{chunk-LC55JPI4.js → chunk-32NHCUEZ.js} +3 -3
- package/dist/chunk-32NHCUEZ.js.map +1 -0
- package/dist/{chunk-J3DGYZGK.js → chunk-3VRHZPW6.js} +3 -3
- package/dist/chunk-3VRHZPW6.js.map +1 -0
- package/dist/{chunk-KRENXLKC.js → chunk-4HNTMD2U.js} +6 -6
- package/dist/{chunk-KRENXLKC.js.map → chunk-4HNTMD2U.js.map} +1 -1
- package/dist/{chunk-U27GHP5Z.js → chunk-4MDQXCMY.js} +3 -3
- package/dist/chunk-4MDQXCMY.js.map +1 -0
- package/dist/{chunk-KCEFPJZT.js → chunk-5TA6AMTY.js} +3 -3
- package/dist/chunk-5TA6AMTY.js.map +1 -0
- package/dist/{chunk-SCZXIVL5.js → chunk-6AZLLBX6.js} +3 -3
- package/dist/chunk-6AZLLBX6.js.map +1 -0
- package/dist/{chunk-ZJRXBOM2.js → chunk-6GP26S4R.js} +3 -3
- package/dist/{chunk-ZJRXBOM2.js.map → chunk-6GP26S4R.js.map} +1 -1
- package/dist/{chunk-WL6J5ZVH.js → chunk-6H7AHQ5J.js} +3 -3
- package/dist/{chunk-WL6J5ZVH.js.map → chunk-6H7AHQ5J.js.map} +1 -1
- package/dist/{chunk-Y33BGBHR.js → chunk-6ZID2UNI.js} +3 -3
- package/dist/chunk-6ZID2UNI.js.map +1 -0
- package/dist/chunk-7FJ7LRSV.js +3 -0
- package/dist/chunk-7FJ7LRSV.js.map +1 -0
- package/dist/{chunk-HZOLDTOT.js → chunk-7HSANE2V.js} +3 -3
- package/dist/chunk-7HSANE2V.js.map +1 -0
- package/dist/{chunk-KSALAAWD.js → chunk-7QFXFNTZ.js} +3 -3
- package/dist/chunk-7QFXFNTZ.js.map +1 -0
- package/dist/{chunk-EZVWNHDF.js → chunk-7ZSICZXA.js} +4 -4
- package/dist/{chunk-EZVWNHDF.js.map → chunk-7ZSICZXA.js.map} +1 -1
- package/dist/{chunk-M3U2TKWS.js → chunk-A3L7MI2Y.js} +7 -7
- package/dist/{chunk-M3U2TKWS.js.map → chunk-A3L7MI2Y.js.map} +1 -1
- package/dist/{chunk-HCSVANPX.js → chunk-AHHT4FZS.js} +4 -4
- package/dist/{chunk-HCSVANPX.js.map → chunk-AHHT4FZS.js.map} +1 -1
- package/dist/{chunk-DO4M3OVV.js → chunk-CRZ5YYB7.js} +5 -5
- package/dist/chunk-CRZ5YYB7.js.map +1 -0
- package/dist/{chunk-RXCQLSWL.js → chunk-E7MMJTJY.js} +3 -3
- package/dist/{chunk-RXCQLSWL.js.map → chunk-E7MMJTJY.js.map} +1 -1
- package/dist/{chunk-CMOTOQK7.js → chunk-FQZHCNV7.js} +3 -3
- package/dist/{chunk-CMOTOQK7.js.map → chunk-FQZHCNV7.js.map} +1 -1
- package/dist/{chunk-EMX27A3U.js → chunk-FVWCKX3O.js} +3 -3
- package/dist/{chunk-EMX27A3U.js.map → chunk-FVWCKX3O.js.map} +1 -1
- package/dist/{chunk-SDPIL7HA.js → chunk-GD4HLQDQ.js} +3 -3
- package/dist/chunk-GD4HLQDQ.js.map +1 -0
- package/dist/{chunk-AUCSNGST.js → chunk-GDPUWRNH.js} +3 -3
- package/dist/{chunk-AUCSNGST.js.map → chunk-GDPUWRNH.js.map} +1 -1
- package/dist/{chunk-HXFGULDU.js → chunk-HCVRYT4T.js} +3 -3
- package/dist/chunk-HCVRYT4T.js.map +1 -0
- package/dist/{chunk-H6VG367Y.js → chunk-ICNOGTXR.js} +3 -3
- package/dist/{chunk-H6VG367Y.js.map → chunk-ICNOGTXR.js.map} +1 -1
- package/dist/{chunk-GR65GV2N.js → chunk-IWRXFK4K.js} +3 -3
- package/dist/chunk-IWRXFK4K.js.map +1 -0
- package/dist/chunk-JB64LF6D.js +3 -0
- package/dist/chunk-JB64LF6D.js.map +1 -0
- package/dist/{chunk-M56K3ZKY.js → chunk-JK6OQLKZ.js} +3 -3
- package/dist/chunk-JK6OQLKZ.js.map +1 -0
- package/dist/{chunk-HIAYFCBX.js → chunk-JRQLKRNY.js} +3 -3
- package/dist/{chunk-HIAYFCBX.js.map → chunk-JRQLKRNY.js.map} +1 -1
- package/dist/{chunk-SIEPZ5LD.js → chunk-K2CCV6UB.js} +3 -3
- package/dist/chunk-K2CCV6UB.js.map +1 -0
- package/dist/{chunk-YW7VSQJE.js → chunk-KLX547KZ.js} +3 -3
- package/dist/chunk-KLX547KZ.js.map +1 -0
- package/dist/{chunk-HBFS7W6V.js → chunk-KNJTTOAD.js} +3 -3
- package/dist/{chunk-HBFS7W6V.js.map → chunk-KNJTTOAD.js.map} +1 -1
- package/dist/{chunk-LBMPZDD5.js → chunk-KPE5CRIS.js} +3 -3
- package/dist/chunk-KPE5CRIS.js.map +1 -0
- package/dist/chunk-KVOKG5YR.js +56 -0
- package/dist/chunk-KVOKG5YR.js.map +1 -0
- package/dist/chunk-L6XU524P.js +74 -0
- package/dist/chunk-L6XU524P.js.map +1 -0
- package/dist/{chunk-3TSOMZJO.js → chunk-LALM2LHM.js} +3 -3
- package/dist/chunk-LALM2LHM.js.map +1 -0
- package/dist/{chunk-46SWH3RS.js → chunk-LCBAI3A3.js} +3 -3
- package/dist/{chunk-46SWH3RS.js.map → chunk-LCBAI3A3.js.map} +1 -1
- package/dist/{chunk-E3E64CT4.js → chunk-LM5ZJFLA.js} +4 -4
- package/dist/{chunk-E3E64CT4.js.map → chunk-LM5ZJFLA.js.map} +1 -1
- package/dist/chunk-LYTC7UMN.js +3 -0
- package/dist/chunk-LYTC7UMN.js.map +1 -0
- package/dist/chunk-N2F3ZG2S.js +3 -0
- package/dist/chunk-N2F3ZG2S.js.map +1 -0
- package/dist/{chunk-K2XIXOMO.js → chunk-NEMGLKDF.js} +3 -3
- package/dist/chunk-NEMGLKDF.js.map +1 -0
- package/dist/{chunk-I4DM7SVV.js → chunk-OC5O5LV4.js} +3 -3
- package/dist/chunk-OC5O5LV4.js.map +1 -0
- package/dist/{chunk-ILYZQBBN.js → chunk-OM4W6UQG.js} +3 -3
- package/dist/{chunk-ILYZQBBN.js.map → chunk-OM4W6UQG.js.map} +1 -1
- package/dist/chunk-PJRWKWDP.js +48 -0
- package/dist/chunk-PJRWKWDP.js.map +1 -0
- package/dist/{chunk-T5AHJXEY.js → chunk-PS3MV5G7.js} +4 -4
- package/dist/{chunk-T5AHJXEY.js.map → chunk-PS3MV5G7.js.map} +1 -1
- package/dist/chunk-QRJ4WJKZ.js +105 -0
- package/dist/chunk-QRJ4WJKZ.js.map +1 -0
- package/dist/{chunk-XMZVSCCY.js → chunk-RPU3FY62.js} +6 -6
- package/dist/{chunk-XMZVSCCY.js.map → chunk-RPU3FY62.js.map} +1 -1
- package/dist/{chunk-TBLO2A4C.js → chunk-SDLHXYPS.js} +3 -3
- package/dist/chunk-SDLHXYPS.js.map +1 -0
- package/dist/{chunk-AIBZJWUG.js → chunk-SYD6ELLP.js} +7 -7
- package/dist/{chunk-AIBZJWUG.js.map → chunk-SYD6ELLP.js.map} +1 -1
- package/dist/{chunk-E6WZOLWX.js → chunk-T2TJG24M.js} +3 -3
- package/dist/chunk-T2TJG24M.js.map +1 -0
- package/dist/{chunk-NE5CT5LH.js → chunk-TDBDX5NV.js} +4 -4
- package/dist/chunk-TDBDX5NV.js.map +1 -0
- package/dist/{chunk-JGZGZIGR.js → chunk-TK67WF35.js} +3 -3
- package/dist/{chunk-JGZGZIGR.js.map → chunk-TK67WF35.js.map} +1 -1
- package/dist/{chunk-C2P3ZSEY.js → chunk-U6TIZ4VM.js} +3 -3
- package/dist/chunk-U6TIZ4VM.js.map +1 -0
- package/dist/{chunk-C5JGLWV6.js → chunk-UAIVLCPV.js} +3 -3
- package/dist/{chunk-C5JGLWV6.js.map → chunk-UAIVLCPV.js.map} +1 -1
- package/dist/{chunk-6RHG4VOA.js → chunk-ULGVGD73.js} +3 -3
- package/dist/chunk-ULGVGD73.js.map +1 -0
- package/dist/{chunk-7AACZB3Q.js → chunk-ULVUD6RZ.js} +3 -3
- package/dist/{chunk-7AACZB3Q.js.map → chunk-ULVUD6RZ.js.map} +1 -1
- package/dist/{chunk-IGFCIAF3.js → chunk-US5LXJTO.js} +3 -3
- package/dist/chunk-US5LXJTO.js.map +1 -0
- package/dist/{chunk-WUK6APAX.js → chunk-VHHYWRLE.js} +5 -5
- package/dist/chunk-VHHYWRLE.js.map +1 -0
- package/dist/{chunk-C6YZNBOO.js → chunk-VHNPIT56.js} +4 -4
- package/dist/{chunk-C6YZNBOO.js.map → chunk-VHNPIT56.js.map} +1 -1
- package/dist/{chunk-QTH4LSO6.js → chunk-W4KJCBMW.js} +3 -3
- package/dist/chunk-W4KJCBMW.js.map +1 -0
- package/dist/{chunk-FTR4NEFA.js → chunk-WAIOC22O.js} +3 -3
- package/dist/chunk-WAIOC22O.js.map +1 -0
- package/dist/{chunk-U2SCIVKI.js → chunk-WLDNN4UF.js} +3 -3
- package/dist/chunk-WLDNN4UF.js.map +1 -0
- package/dist/{chunk-5Z3ZM7PS.js → chunk-WNG6RPIA.js} +3 -3
- package/dist/{chunk-5Z3ZM7PS.js.map → chunk-WNG6RPIA.js.map} +1 -1
- package/dist/{chunk-SXCNJQ7S.js → chunk-WXD7XZWE.js} +4 -4
- package/dist/{chunk-SXCNJQ7S.js.map → chunk-WXD7XZWE.js.map} +1 -1
- package/dist/{chunk-JDPJQSZV.js → chunk-WZTN5NHK.js} +4 -4
- package/dist/chunk-WZTN5NHK.js.map +1 -0
- package/dist/chunk-X2ZI3JOX.js +82 -0
- package/dist/chunk-X2ZI3JOX.js.map +1 -0
- package/dist/{chunk-XXTQV27H.js → chunk-XKMHNJCL.js} +5 -5
- package/dist/chunk-XKMHNJCL.js.map +1 -0
- package/dist/{chunk-6ANVMIR5.js → chunk-XNSKKZB6.js} +3 -3
- package/dist/chunk-XNSKKZB6.js.map +1 -0
- package/dist/{chunk-QM54AVC7.js → chunk-Y5M7UK7R.js} +3 -3
- package/dist/chunk-Y5M7UK7R.js.map +1 -0
- package/dist/{chunk-3VAYZAEF.js → chunk-YHCDOHJL.js} +7 -7
- package/dist/{chunk-3VAYZAEF.js.map → chunk-YHCDOHJL.js.map} +1 -1
- package/dist/{chunk-JDGM46MB.js → chunk-YIOXPV2N.js} +3 -3
- package/dist/{chunk-JDGM46MB.js.map → chunk-YIOXPV2N.js.map} +1 -1
- package/dist/{chunk-XDJ2E6KQ.js → chunk-YQXVNJP5.js} +3 -3
- package/dist/chunk-YQXVNJP5.js.map +1 -0
- package/dist/composites/chat-thread.js +14 -12
- package/dist/hooks/use-intersection.js +1 -1
- package/dist/hooks/use-reduced-motion.js +1 -1
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +3 -2
- package/dist/index.js +57 -53
- package/dist/layout/container.js +3 -2
- package/dist/layout/grid.js +3 -2
- package/dist/layout/stack.js +3 -2
- package/dist/lib/utils.js +2 -1
- package/dist/logos/fluencypass.js +3 -2
- package/dist/logos/product.js +3 -3
- package/dist/marketing/buttons/cta-brand.d.ts +39 -0
- package/dist/marketing/buttons/cta-brand.js +8 -0
- package/dist/marketing/buttons/cta-brand.js.map +1 -0
- package/dist/marketing/buttons/index.d.ts +5 -0
- package/dist/marketing/buttons/index.js +9 -0
- package/dist/marketing/buttons/index.js.map +1 -0
- package/dist/marketing/buttons/link-brand.d.ts +39 -0
- package/dist/marketing/buttons/link-brand.js +6 -0
- package/dist/marketing/buttons/link-brand.js.map +1 -0
- package/dist/marketing/effects/card-dark-glow.js +2 -2
- package/dist/marketing/effects/circle-glow.js +2 -2
- package/dist/marketing/effects/hand-underline.d.ts +33 -0
- package/dist/marketing/effects/hand-underline.js +8 -0
- package/dist/marketing/effects/hand-underline.js.map +1 -0
- package/dist/marketing/effects/index.d.ts +3 -0
- package/dist/marketing/effects/index.js +9 -4
- package/dist/marketing/effects/magnetic-button.d.ts +36 -0
- package/dist/marketing/effects/magnetic-button.js +7 -0
- package/dist/marketing/effects/magnetic-button.js.map +1 -0
- package/dist/marketing/effects/marquee.js +2 -2
- package/dist/marketing/effects/rotating-word.d.ts +40 -0
- package/dist/marketing/effects/rotating-word.js +7 -0
- package/dist/marketing/effects/rotating-word.js.map +1 -0
- package/dist/marketing/layout/index.d.ts +36 -2
- package/dist/marketing/layout/index.js +2 -2
- package/dist/marketing/layout/section.d.ts +2 -36
- package/dist/marketing/layout/section.js +2 -2
- package/dist/marketing/motion/animated-number.js +4 -4
- package/dist/marketing/motion/index.js +7 -7
- package/dist/marketing/motion/reveal-on-scroll.js +4 -4
- package/dist/marketing/motion/smooth-anchor.js +1 -1
- package/dist/marketing/motion/stagger-reveal.js +4 -4
- package/dist/marketing/typography/hero-heading.js +2 -2
- package/dist/marketing/typography/index.js +5 -5
- package/dist/marketing/typography/section-eyebrow.js +2 -2
- package/dist/marketing/typography/section-heading.js +2 -2
- package/dist/marketing/typography/section-subtitle.js +2 -2
- package/dist/styles/tokens.css +182 -8
- package/dist/ui/accordion.js +2 -2
- package/dist/ui/alert-dialog.js +4 -3
- package/dist/ui/alert.js +6 -4
- package/dist/ui/audio-player.js +6 -4
- package/dist/ui/avatar.js +2 -2
- package/dist/ui/badge.js +2 -2
- package/dist/ui/button.js +2 -2
- package/dist/ui/chat-bubble.js +4 -3
- package/dist/ui/chat-message.js +10 -8
- package/dist/ui/chat-panel.js +9 -7
- package/dist/ui/checkbox.js +2 -2
- package/dist/ui/circular-progress.js +3 -2
- package/dist/ui/dialog.js +4 -3
- package/dist/ui/drawer.js +3 -2
- package/dist/ui/dropdown-menu.js +3 -2
- package/dist/ui/editor.js +8 -6
- package/dist/ui/empty.js +2 -2
- package/dist/ui/fab.js +3 -2
- package/dist/ui/file-card.js +3 -2
- package/dist/ui/input.js +2 -2
- package/dist/ui/label.js +2 -2
- package/dist/ui/like-dislike.js +8 -6
- package/dist/ui/live-waiting.js +7 -5
- package/dist/ui/message-bar.js +3 -2
- package/dist/ui/message-rating.js +3 -2
- package/dist/ui/popover.js +3 -2
- package/dist/ui/progress-dot.js +3 -2
- package/dist/ui/progress-stage.js +3 -2
- package/dist/ui/progress.js +3 -2
- package/dist/ui/radio-group.js +2 -2
- package/dist/ui/resizable.js +3 -2
- package/dist/ui/scroll-area.js +2 -2
- package/dist/ui/select.js +2 -2
- package/dist/ui/sheet.js +2 -2
- package/dist/ui/skeleton.js +2 -2
- package/dist/ui/slider.js +3 -2
- package/dist/ui/sonner.js +6 -4
- package/dist/ui/spinner.js +4 -4
- package/dist/ui/switch.js +2 -2
- package/dist/ui/tabs.js +2 -2
- package/dist/ui/textarea.js +2 -2
- package/dist/ui/toggle.js +3 -2
- package/dist/ui/tooltip.js +2 -2
- package/dist/ui/video-player.js +6 -4
- package/package.json +14 -21
- package/README.md +0 -85
- package/dist/chunk-3TSOMZJO.js.map +0 -1
- package/dist/chunk-6ANVMIR5.js.map +0 -1
- package/dist/chunk-6RHG4VOA.js.map +0 -1
- package/dist/chunk-C2P3ZSEY.js.map +0 -1
- package/dist/chunk-DO4M3OVV.js.map +0 -1
- package/dist/chunk-E6WZOLWX.js.map +0 -1
- package/dist/chunk-FTR4NEFA.js.map +0 -1
- package/dist/chunk-GR65GV2N.js.map +0 -1
- package/dist/chunk-HXFGULDU.js.map +0 -1
- package/dist/chunk-HZOLDTOT.js.map +0 -1
- package/dist/chunk-I4DM7SVV.js.map +0 -1
- package/dist/chunk-IGFCIAF3.js.map +0 -1
- package/dist/chunk-J3DGYZGK.js.map +0 -1
- package/dist/chunk-JDPJQSZV.js.map +0 -1
- package/dist/chunk-K2XIXOMO.js.map +0 -1
- package/dist/chunk-KCEFPJZT.js.map +0 -1
- package/dist/chunk-KSALAAWD.js.map +0 -1
- package/dist/chunk-LBMPZDD5.js.map +0 -1
- package/dist/chunk-LC55JPI4.js.map +0 -1
- package/dist/chunk-M56K3ZKY.js.map +0 -1
- package/dist/chunk-NE5CT5LH.js.map +0 -1
- package/dist/chunk-OHRYR7PN.js.map +0 -1
- package/dist/chunk-QM54AVC7.js.map +0 -1
- package/dist/chunk-QTH4LSO6.js.map +0 -1
- package/dist/chunk-SCZXIVL5.js.map +0 -1
- package/dist/chunk-SDPIL7HA.js.map +0 -1
- package/dist/chunk-SIEPZ5LD.js.map +0 -1
- package/dist/chunk-T7EIAVSF.js.map +0 -1
- package/dist/chunk-TBLO2A4C.js.map +0 -1
- package/dist/chunk-U27GHP5Z.js.map +0 -1
- package/dist/chunk-U2SCIVKI.js.map +0 -1
- package/dist/chunk-WMOGNJWP.js.map +0 -1
- package/dist/chunk-WUK6APAX.js.map +0 -1
- package/dist/chunk-XDJ2E6KQ.js.map +0 -1
- package/dist/chunk-XXTQV27H.js.map +0 -1
- package/dist/chunk-Y33BGBHR.js.map +0 -1
- package/dist/chunk-YW7VSQJE.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/spinner.tsx"],"names":[],"mappings":";;;;;;AA6BO,SAAS,QAAQ,EAAA,EAKP;AALO,EAAA,IAAA,EAAA,GAAA,EAAA,EACtB;AAAA,IAAA,IAAA,GAAO,IAAA;AAAA,IACP,KAAA,GAAQ,YAAA;AAAA,IACR;AAAA,GAhCF,GA6BwB,EAAA,EAInB,KAAA,GAAA,SAAA,CAJmB,EAAA,EAInB;AAAA,IAHH,MAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS;AAAA,KAAA,EAC9D,KAAA,CAAA,EAJL;AAAA,MAMC,QAAA,kBAAA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,OAAA;AAAA,UACN,IAAA;AAAA,UACA,UAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAU;AAAA;AAAA;AACZ,KAAA;AAAA,GACF;AAEJ","file":"chunk-NE5CT5LH.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Loader2 } from \"lucide-react\"\nimport { CycleIcon } from \"@/components/icons\"\nimport type { IconSize } from \"@/components/icons/sizes\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface SpinnerProps extends React.ComponentProps<\"span\"> {\n /** Tamanho do spinner (alinhado com ICON_SIZES) */\n size?: IconSize\n /** Texto para screen readers (default: \"Carregando\") */\n label?: string\n}\n\n/**\n * Spinner — indicador de carregamento animado.\n *\n * Usa CycleIcon internamente para manter consistência de size/stroke.\n *\n * @example\n * ```tsx\n * import { Spinner } from \"@fluencypassdevs/cycle\"\n *\n * <Spinner />\n * <Spinner size=\"lg\" />\n * <Button disabled><Spinner size=\"xs\" /> Salvando...</Button>\n * ```\n */\nexport function Spinner({\n size = \"sm\",\n label = \"Carregando\",\n className,\n ...props\n}: SpinnerProps) {\n return (\n <span\n role=\"status\"\n aria-label={label}\n className={cn(\"inline-flex items-center justify-center\", className)}\n {...props}\n >\n <CycleIcon\n icon={Loader2}\n size={size}\n decorative\n className=\"animate-spin text-current\"\n />\n </span>\n )\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-intersection.ts"],"names":[],"mappings":";;;AAiCO,SAAS,eAAA,CACd,OAAA,GAAkC,EAAC,EACqB;AACxD,EAAA,MAAM;AAAA,IACJ,SAAA,GAAY,IAAA;AAAA,IACZ,UAAA,GAAa,kBAAA;AAAA,IACb,IAAA,GAAO,IAAA;AAAA,IACP,IAAA,GAAO,IAAA;AAAA,IACP,YAAA,GAAe;AAAA,GACjB,GAAI,OAAA;AAEJ,EAAA,MAAM,GAAA,GAAM,OAAiB,IAAI,CAAA;AACjC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,YAAY,CAAA;AAEvD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAA,EAAc;AAClB,IAAA,MAAM,KAAK,GAAA,CAAI,OAAA;AACf,IAAA,IAAI,CAAC,EAAA,EAAI;AAET,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACnB,CAAC,CAAC,KAAK,CAAA,KAAM;AACX,QAAA,IAAI,+BAAO,cAAA,EAAgB;AACzB,UAAA,YAAA,CAAa,IAAI,CAAA;AACjB,UAAA,IAAI,IAAA,WAAe,UAAA,EAAW;AAAA,QAChC,CAAA,MAAA,IAAW,CAAC,IAAA,EAAM;AAChB,UAAA,YAAA,CAAa,KAAK,CAAA;AAAA,QACpB;AAAA,MACF,CAAA;AAAA,MACA,EAAE,SAAA,EAAW,UAAA,EAAY,IAAA;AAAK,KAChC;AAEA,IAAA,QAAA,CAAS,QAAQ,EAAE,CAAA;AACnB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,GAAG,CAAC,SAAA,EAAW,YAAY,IAAA,EAAM,IAAA,EAAM,YAAY,CAAC,CAAA;AAEpD,EAAA,OAAO,EAAE,KAAK,SAAA,EAAU;AAC1B","file":"chunk-OHRYR7PN.js","sourcesContent":["\"use client\"\n\nimport { useEffect, useRef, useState } from \"react\"\n\nexport interface UseIntersectionOptions {\n /** Quanto do elemento precisa estar visivel pra disparar (0-1). Default `0.15`. */\n threshold?: number\n /** Margin do viewport (CSS shorthand). Default `\"0px 0px -10% 0px\"`. */\n rootMargin?: string\n /** Container alternativo (default: viewport). */\n root?: Element | null\n /** Quando `true`, desliga o observer apos a primeira intersecao. Default `true`. */\n once?: boolean\n /**\n * Quando `true`, comeca como visivel (sem aguardar observer). Util quando\n * `useReducedMotion()` e true e queremos pular a animacao de entrada.\n */\n startVisible?: boolean\n}\n\n/**\n * Observa um elemento e retorna `{ ref, isVisible }`. Reusado por\n * `RevealOnScroll`, `StaggerReveal` e `AnimatedNumber`.\n *\n * Comportamento:\n * - SSR-safe (so monta IntersectionObserver no client).\n * - `once=true` (default) desconecta o observer apos a primeira intersecao.\n * - `startVisible=true` ja entrega `isVisible: true` no primeiro render.\n *\n * @example\n * const { ref, isVisible } = useIntersection({ threshold: 0.4 })\n * return <div ref={ref}>{isVisible ? \"visible\" : \"hidden\"}</div>\n */\nexport function useIntersection<T extends HTMLElement = HTMLDivElement>(\n options: UseIntersectionOptions = {}\n): { ref: React.RefObject<T | null>; isVisible: boolean } {\n const {\n threshold = 0.15,\n rootMargin = \"0px 0px -10% 0px\",\n root = null,\n once = true,\n startVisible = false,\n } = options\n\n const ref = useRef<T | null>(null)\n const [isVisible, setIsVisible] = useState(startVisible)\n\n useEffect(() => {\n if (startVisible) return\n const el = ref.current\n if (!el) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry?.isIntersecting) {\n setIsVisible(true)\n if (once) observer.disconnect()\n } else if (!once) {\n setIsVisible(false)\n }\n },\n { threshold, rootMargin, root }\n )\n\n observer.observe(el)\n return () => observer.disconnect()\n }, [threshold, rootMargin, root, once, startVisible])\n\n return { ref, isVisible }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/switch.tsx"],"names":["SwitchPrimitive"],"mappings":";;;;;;AAQA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,uVAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,OAAA,EAAS,SAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,2IAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,0DAAA;AAAA,QACJ,OAAA,EAAS,0DAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AASA,SAAS,OAAO,EAAA,EAKA;AALA,EAAA,IAAA,EAAA,GAAA,EAAA,EACd;AAAA,IAAA,SAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP;AAAA,GAlDF,GA+CgB,EAAA,EAIX,KAAA,GAAA,SAAA,CAJW,EAAA,EAIX;AAAA,IAHH,WAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAACA,QAAA,CAAgB,IAAA;AAAA,IAAhB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,KAAA,EAAO,cAAA,CAAe,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EACpD,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,kBAAA,GAAA;AAAA,QAACA,QAAA,CAAgB,KAAA;AAAA,QAAhB;AAAA,UACC,WAAA,EAAU,cAAA;AAAA,UACV,SAAA,EAAW,aAAA,CAAc,EAAE,IAAA,EAAM;AAAA;AAAA;AACnC,KAAA;AAAA,GACF;AAEJ","file":"chunk-QM54AVC7.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Switch as SwitchPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst switchVariants = cva(\n \"peer group/switch inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=unchecked]:bg-neutral-input data-[state=checked]:bg-primary\",\n {\n variants: {\n size: {\n sm: \"h-4 w-7\",\n default: \"h-5 w-9\",\n lg: \"h-6 w-11\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nconst thumbVariants = cva(\n \"pointer-events-none block rounded-full bg-primary-foreground ring-0 shadow-sm transition-transform data-[state=unchecked]:translate-x-0.5\",\n {\n variants: {\n size: {\n sm: \"size-3 data-[state=checked]:translate-x-[calc(100%+2px)]\",\n default: \"size-4 data-[state=checked]:translate-x-[calc(100%+2px)]\",\n lg: \"size-5 data-[state=checked]:translate-x-[calc(100%+2px)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport interface SwitchProps\n extends React.ComponentProps<typeof SwitchPrimitive.Root>,\n VariantProps<typeof switchVariants> {\n /** Classe de tema aplicada no estado checked (ex: \"theme-brand\") */\n theme?: string\n}\n\nfunction Switch({\n className,\n size = \"default\",\n theme,\n ...props\n}: SwitchProps) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(theme, switchVariants({ size }), className)}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={thumbVariants({ size })}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch, switchVariants }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-QTH4LSO6.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/tooltip.tsx"],"names":["TooltipPrimitive"],"mappings":";;;;;AAOA,SAAS,gBAAgB,EAAA,EAGkC;AAHlC,EAAA,IAAA,EAAA,GAAA,EAAA,EACvB;AAAA,IAAA,aAAA,GAAgB;AAAA,GARlB,GAOyB,EAAA,EAEpB,KAAA,GAAA,SAAA,CAFoB,EAAA,EAEpB;AAAA,IADH;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA,CAAiB,QAAA;AAAA,IAAjB,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV;AAAA,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAQ,EAAA,EAEsC;AAFtC,EAAA,IACZ,kBADY,EAAA,EACZ,EAAA,CAAA;AAEH,EAAA,2BAAQA,SAAA,CAAiB,IAAA,EAAjB,cAAA,CAAA,EAAsB,WAAA,EAAU,aAAc,KAAA,CAAO,CAAA;AAC/D;AAEA,SAAS,eAAe,EAAA,EAEkC;AAFlC,EAAA,IACnB,kBADmB,EAAA,EACnB,EAAA,CAAA;AAEH,EAAA,2BAAQA,SAAA,CAAiB,OAAA,EAAjB,cAAA,CAAA,EAAyB,WAAA,EAAU,qBAAsB,KAAA,CAAO,CAAA;AAC1E;AAEA,SAAS,eAAe,EAAA,EAKkC;AALlC,EAAA,IAAA,EAAA,GAAA,EAAA,EACtB;AAAA,IAAA,SAAA;AAAA,IACA,UAAA,GAAa,CAAA;AAAA,IACb;AAAA,GAnCF,GAgCwB,EAAA,EAInB,KAAA,GAAA,SAAA,CAJmB,EAAA,EAInB;AAAA,IAHH,WAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA,CAACA,SAAA,CAAiB,MAAA,EAAjB,EACC,QAAA,kBAAA,IAAA;AAAA,IAACA,SAAA,CAAiB,OAAA;AAAA,IAAjB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,maAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAPL;AAAA,MASE,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAACA,SAAA,CAAiB,KAAA,EAAjB,EAAuB,WAAU,oGAAA,EAAqG;AAAA;AAAA,KAAA;AAAA,GACzI,EACF,CAAA;AAEJ","file":"chunk-SCZXIVL5.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/motion/smooth-anchor.tsx"],"names":[],"mappings":";;;AAiCA,SAAS,aAAa,EAAE,YAAA,GAAe,EAAA,EAAI,QAAA,GAAW,KAAI,EAAsB;AAC9E,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAGnC,IAAA,IAAI,MAAA,CAAO,SAAS,IAAA,EAAM;AACxB,MAAA,MAAM,EAAA,GAAK,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,MAAM,CAAC,CAAA;AACvC,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,cAAA,CAAe,EAAE,CAAA;AACrC,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,qBAAA,CAAsB,MAAM,EAAA,CAAG,SAAA,CAAU,GAAA,CAAI,qBAAqB,CAAC,CAAA;AAAA,MACrE;AAAA,IACF;AAEA,IAAA,SAAS,QAAQ,CAAA,EAAe;AAC9B,MAAA,IAAI,CAAA,CAAE,oBAAoB,CAAA,CAAE,MAAA,KAAW,KAAK,CAAA,CAAE,OAAA,IAAW,EAAE,OAAA,EAAS;AACpE,MAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,MAAA,MAAM,MAAA,GAAS,iCAAQ,OAAA,CAAQ,cAAA,CAAA;AAC/B,MAAA,IAAI,CAAC,MAAA,EAAQ;AACb,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,YAAA,CAAa,MAAM,CAAA;AACvC,MAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,KAAS,GAAA,EAAK;AAC3B,MAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA;AACvB,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,cAAA,CAAe,EAAE,CAAA;AACrC,MAAA,IAAI,CAAC,EAAA,EAAI;AAET,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,iBAAiB,MAAA,CAAO,UAAA;AAAA,QAC5B;AAAA,OACF,CAAE,OAAA;AAEF,MAAA,MAAM,IAAA,GAAO,GAAG,qBAAA,EAAsB;AACtC,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,GAAU,IAAA,CAAK,GAAA,GAAM,YAAA;AAE5C,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,MAAA,CAAO,QAAA,CAAS,GAAG,OAAO,CAAA;AAAA,MAC5B,CAAA,MAAO;AACL,QAAA,cAAA,CAAe,SAAS,QAAQ,CAAA;AAAA,MAClC;AAEA,MAAA,OAAA,CAAQ,YAAA,CAAa,IAAA,EAAM,EAAA,EAAI,IAAI,CAAA;AAEnC,MAAA,EAAA,CAAG,SAAA,CAAU,OAAO,qBAAqB,CAAA;AACzC,MAAA,KAAK,EAAA,CAAG,WAAA;AACR,MAAA,EAAA,CAAG,SAAA,CAAU,IAAI,qBAAqB,CAAA;AAAA,IACxC;AAEA,IAAA,QAAA,CAAS,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC1C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,OAAA,EAAS,OAAO,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,YAAA,EAAc,QAAQ,CAAC,CAAA;AAE3B,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,cAAA,CAAe,SAAiB,QAAA,EAAkB;AACzD,EAAA,MAAM,SAAS,MAAA,CAAO,OAAA;AACtB,EAAA,MAAM,WAAW,OAAA,GAAU,MAAA;AAC3B,EAAA,IAAI,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,GAAI,CAAA,EAAG;AAC5B,EAAA,MAAM,SAAA,GAAY,YAAY,GAAA,EAAI;AAElC,EAAA,SAAS,KAAK,GAAA,EAAa;AACzB,IAAA,MAAM,UAAU,GAAA,GAAM,SAAA;AACtB,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,OAAA,GAAU,UAAU,CAAC,CAAA;AACxC,IAAA,MAAM,KAAA,GAAQ,eAAe,CAAC,CAAA;AAC9B,IAAA,MAAA,CAAO,QAAA,CAAS,CAAA,EAAG,MAAA,GAAS,QAAA,GAAW,KAAK,CAAA;AAC5C,IAAA,IAAI,CAAA,GAAI,CAAA,EAAG,qBAAA,CAAsB,IAAI,CAAA;AAAA,EACvC;AAEA,EAAA,qBAAA,CAAsB,IAAI,CAAA;AAC5B;AAEA,SAAS,eAAe,CAAA,EAAmB;AACzC,EAAA,OAAO,CAAA,GAAI,GAAA,GAAM,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,EAAA,GAAK,CAAA,GAAI,CAAA,EAAG,CAAC,CAAA,GAAI,CAAA;AACjE","file":"chunk-SDPIL7HA.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nexport interface SmoothAnchorProps {\n /** Offset em px pra compensar header sticky. Default `96`. */\n headerOffset?: number\n /** Duracao do scroll em ms. Default `900`. */\n duration?: number\n}\n\n/**\n * Intercepta cliques em links de hash (`<a href=\"#algo\">`) e faz scroll suave\n * com easing `easeInOutCubic` em vez do `scroll-behavior: smooth` nativo\n * (que tem duracao curta e easing fixo).\n *\n * Renderiza `null` (so registra listener global). Monte UMA VEZ por app,\n * tipicamente no `<RootLayout>` ou na pagina raiz da landing.\n *\n * Comportamento:\n * - Ignora clicks com modificadores (cmd/ctrl/middle-button).\n * - Atualiza URL via `history.replaceState` sem disparar scroll nativo.\n * - Adiciona classe `anchor-target-pulse` no destino apos chegar (animacao\n * visual opcional, definida em `globals.css`).\n * - Respeita `prefers-reduced-motion` (scroll instantaneo, sem easing).\n *\n * @example\n * // app/layout.tsx\n * <body>\n * <SmoothAnchor headerOffset={64} />\n * {children}\n * </body>\n */\nfunction SmoothAnchor({ headerOffset = 96, duration = 900 }: SmoothAnchorProps) {\n React.useEffect(() => {\n if (typeof window === \"undefined\") return\n\n // Se a pagina abre ja com hash, pulsa o destino apos o scroll inicial.\n if (window.location.hash) {\n const id = window.location.hash.slice(1)\n const el = document.getElementById(id)\n if (el) {\n requestAnimationFrame(() => el.classList.add(\"anchor-target-pulse\"))\n }\n }\n\n function onClick(e: MouseEvent) {\n if (e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey) return\n const target = e.target as HTMLElement | null\n const anchor = target?.closest('a[href^=\"#\"]') as HTMLAnchorElement | null\n if (!anchor) return\n const href = anchor.getAttribute(\"href\")\n if (!href || href === \"#\") return\n const id = href.slice(1)\n const el = document.getElementById(id)\n if (!el) return\n\n e.preventDefault()\n const prefersReduced = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches\n\n const rect = el.getBoundingClientRect()\n const targetY = window.scrollY + rect.top - headerOffset\n\n if (prefersReduced) {\n window.scrollTo(0, targetY)\n } else {\n smoothScrollTo(targetY, duration)\n }\n\n history.replaceState(null, \"\", href)\n // Reativa pulse mesmo se a URL ja for a mesma\n el.classList.remove(\"anchor-target-pulse\")\n void el.offsetWidth\n el.classList.add(\"anchor-target-pulse\")\n }\n\n document.addEventListener(\"click\", onClick)\n return () => document.removeEventListener(\"click\", onClick)\n }, [headerOffset, duration])\n\n return null\n}\n\nfunction smoothScrollTo(targetY: number, duration: number) {\n const startY = window.scrollY\n const distance = targetY - startY\n if (Math.abs(distance) < 2) return\n const startTime = performance.now()\n\n function step(now: number) {\n const elapsed = now - startTime\n const t = Math.min(elapsed / duration, 1)\n const eased = easeInOutCubic(t)\n window.scrollTo(0, startY + distance * eased)\n if (t < 1) requestAnimationFrame(step)\n }\n\n requestAnimationFrame(step)\n}\n\nfunction easeInOutCubic(t: number): number {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2\n}\n\nexport { SmoothAnchor }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/typography/hero-heading.tsx"],"names":["HeroHeading"],"mappings":";;;;;AA2BA,IAAM,WAAA,GAAoB,KAAA,CAAA,UAAA;AAAA,EACxB,SAASA,YAAAA,CAAY,EAAA,EAAoD,GAAA,EAAK;AAAzD,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,EAAA,GAAK,IAAA,EAAM,KAAA,GAAQ,MAAA,EAAQ,SAAA,EA5BpD,GA4BuB,EAAA,EAA2C,KAAA,GAAA,SAAA,CAA3C,EAAA,EAA2C,CAAzC,IAAA,EAAW,OAAA,EAAgB,WAAA,CAAA,CAAA;AAChD,IAAA,MAAM,GAAA,GAAM,EAAA;AACZ,IAAA,uBACE,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA,cAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,cAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,iDAAA;AAAA,UACA,sDAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAU,QAAA,IAAY,qBAAA;AAAA,UACtB;AAAA;AACF,OAAA,EACI,KAAA;AAAA,KACN;AAAA,EAEJ;AACF","file":"chunk-SIEPZ5LD.js","sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype HeroHeadingTag = \"h1\" | \"h2\" | \"div\"\n\nexport interface HeroHeadingProps\n extends Omit<React.HTMLAttributes<HTMLHeadingElement>, \"color\"> {\n /** Tag renderizada. Default `\"h1\"`. */\n as?: HeroHeadingTag\n /** Alinhamento horizontal. Default `\"left\"`. */\n align?: \"left\" | \"center\"\n}\n\n/**\n * Titulo dramatico de hero — sizes grandes, weight bold, leading apertado\n * (1.07) pra dar \"punch\" visual. Use no `<h1>` da primeira dobra de landings.\n *\n * @example\n * <HeroHeading>\n * Acelere o ingles do seu time\n * </HeroHeading>\n *\n * <HeroHeading align=\"center\">\n * Aprenda <RotatingWord words={[\"rapido\", \"facil\"]} /> com IA\n * </HeroHeading>\n */\nconst HeroHeading = React.forwardRef<HTMLHeadingElement, HeroHeadingProps>(\n function HeroHeading({ as = \"h1\", align = \"left\", className, ...props }, ref) {\n const Tag = as as React.ElementType\n return (\n <Tag\n ref={ref}\n data-slot=\"hero-heading\"\n className={cn(\n \"text-3xl sm:text-4xl md:text-5xl lg:text-[56px]\",\n \"font-bold leading-[1.07] tracking-tight text-balance\",\n \"max-w-2xl\",\n align === \"center\" && \"text-center mx-auto\",\n className\n )}\n {...props}\n />\n )\n }\n)\n\nexport { HeroHeading }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-reduced-motion.ts"],"names":[],"mappings":";;;AAYO,SAAS,gBAAA,GAA4B;AAC1C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,UAAA,CAAW,kCAAkC,CAAA;AAClE,IAAA,UAAA,CAAW,MAAM,OAAO,CAAA;AAExB,IAAA,MAAM,OAAA,GAAU,CAAC,KAAA,KAA+B,UAAA,CAAW,MAAM,OAAO,CAAA;AACxE,IAAA,KAAA,CAAM,gBAAA,CAAiB,UAAU,OAAO,CAAA;AACxC,IAAA,OAAO,MAAM,KAAA,CAAM,mBAAA,CAAoB,QAAA,EAAU,OAAO,CAAA;AAAA,EAC1D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,OAAA;AACT","file":"chunk-T7EIAVSF.js","sourcesContent":["\"use client\"\n\nimport { useEffect, useState } from \"react\"\n\n/**\n * Returns `true` quando o usuario habilitou \"prefers-reduced-motion\" no SO.\n * Componentes do `marketing/motion/*` consultam esse hook pra desligar animacoes\n * (resolver para o estado final direto) — requisito WCAG 2.3.3.\n *\n * SSR-safe: comeca em `false` no server e atualiza no client apos mount.\n * Reage a mudancas dinamicas (usuario toggla a preferencia com a aba aberta).\n */\nexport function useReducedMotion(): boolean {\n const [reduced, setReduced] = useState(false)\n\n useEffect(() => {\n const media = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n setReduced(media.matches)\n\n const handler = (event: MediaQueryListEvent) => setReduced(event.matches)\n media.addEventListener(\"change\", handler)\n return () => media.removeEventListener(\"change\", handler)\n }, [])\n\n return reduced\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/empty.tsx"],"names":[],"mappings":"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","file":"chunk-TBLO2A4C.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"flex max-w-sm flex-col items-center gap-2 text-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/effects/circle-glow.tsx"],"names":["CircleGlow"],"mappings":";;;;;AA2BA,IAAM,UAAA,GAAmB,KAAA,CAAA,UAAA;AAAA,EACvB,SAASA,WAAAA,CAAW,EAAA,EAAsC,GAAA,EAAK;AAA3C,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,IAAA,GAAO,MAAM,SAAA,EA5BrC,GA4BsB,IAA6B,KAAA,GAAA,SAAA,CAA7B,EAAA,EAA6B,CAA3B,MAAA,EAAa,WAAA,CAAA,CAAA;AACjC,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA,cAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,aAAA,EAAY,MAAA;AAAA,QACZ,WAAA,EAAU,aAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS;AAAA,OAAA,EACxC,KAAA;AAAA,KACN;AAAA,EAEJ;AACF","file":"chunk-U27GHP5Z.js","sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface CircleGlowProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n /**\n * Tamanho relativo do glow. Controla o `transform: scale()` aplicado ao\n * elemento. Default `\"lg\"` (escala 1.0).\n */\n size?: \"sm\" | \"md\" | \"lg\"\n}\n\n/**\n * Decoracao de glow circular pulsante. Posicionada `absolute` — o **container\n * deve ser `relative`**. Idealmente coloque atras dos cards usando `-z-10`\n * (ou similar) via `className`.\n *\n * Sempre `aria-hidden` e `pointer-events: none` (e puramente visual).\n * Respeita `prefers-reduced-motion`.\n *\n * @example\n * <div className=\"relative\">\n * <CircleGlow className=\"-z-10\" />\n * <div className=\"grid grid-cols-3 gap-6\">{cards}</div>\n * </div>\n */\nconst CircleGlow = React.forwardRef<HTMLDivElement, CircleGlowProps>(\n function CircleGlow({ size = \"lg\", className, ...props }, ref) {\n return (\n <div\n ref={ref}\n aria-hidden=\"true\"\n data-slot=\"circle-glow\"\n data-size={size}\n className={cn(\"cycle-circle-glow\", className)}\n {...props}\n />\n )\n }\n)\n\nexport { CircleGlow }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/typography/section-eyebrow.tsx"],"names":["SectionEyebrow"],"mappings":";;;;;AAsBA,IAAM,cAAA,GAAuB,KAAA,CAAA,UAAA;AAAA,EAC3B,SAASA,eAAAA,CAAe,EAAA,EAAmD,GAAA,EAAK;AAAxD,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,EAAA,GAAK,GAAA,EAAK,KAAA,GAAQ,MAAA,EAAQ,SAAA,EAvBtD,GAuB0B,EAAA,EAA0C,KAAA,GAAA,SAAA,CAA1C,EAAA,EAA0C,CAAxC,IAAA,EAAU,OAAA,EAAgB,WAAA,CAAA,CAAA;AAClD,IAAA,MAAM,GAAA,GAAM,EAAA;AACZ,IAAA,uBACE,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA,cAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,iBAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,mEAAA;AAAA,UACA,UAAU,QAAA,IAAY,aAAA;AAAA,UACtB;AAAA;AACF,OAAA,EACI,KAAA;AAAA,KACN;AAAA,EAEJ;AACF","file":"chunk-U2SCIVKI.js","sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype SectionEyebrowTag = \"p\" | \"span\" | \"div\"\n\nexport interface SectionEyebrowProps extends React.HTMLAttributes<HTMLElement> {\n /** Tag renderizada. Default `\"p\"`. */\n as?: SectionEyebrowTag\n /** Alinhamento. Default `\"left\"`. */\n align?: \"left\" | \"center\"\n}\n\n/**\n * Rotulo monospace acima do `SectionHeading` — funciona como \"eyebrow\" que\n * categoriza a dobra (ex: \"Nossa solucao\", \"Para empresas\"). Tipografia\n * conservadora pra nao competir com o heading principal.\n *\n * @example\n * <SectionEyebrow align=\"center\">Para empresas</SectionEyebrow>\n * <SectionHeading>Acelere o ingles do seu time</SectionHeading>\n */\nconst SectionEyebrow = React.forwardRef<HTMLElement, SectionEyebrowProps>(\n function SectionEyebrow({ as = \"p\", align = \"left\", className, ...props }, ref) {\n const Tag = as as React.ElementType\n return (\n <Tag\n ref={ref}\n data-slot=\"section-eyebrow\"\n className={cn(\n \"text-xs font-mono uppercase tracking-widest text-muted-foreground\",\n align === \"center\" && \"text-center\",\n className\n )}\n {...props}\n />\n )\n }\n)\n\nexport { SectionEyebrow }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/fluencypass-logo.tsx"],"names":[],"mappings":";;;AAOA,IAAM,OAAA,GAAU;AAAA,EACd,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAc,MAAM,YAAA,EAAa;AAAA,EAC7C,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAc,MAAM,YAAA,EAAa;AAAA,EAC7C,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAc,MAAM,YAAA,EAAa;AAAA,EAC7C,EAAA,EAAI,EAAE,IAAA,EAAM,aAAA,EAAe,MAAM,YAAA,EAAa;AAAA,EAC9C,EAAA,EAAI,EAAE,IAAA,EAAM,aAAA,EAAe,MAAM,YAAA;AACnC,CAAA;AAMO,SAAS,eAAA,CAAgB,EAAE,SAAA,GAAY,YAAA,EAAa,EAA2B;AACpF,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAM,4BAAA;AAAA,MACN,SAAA;AAAA,MACA,YAAA,EAAW,aAAA;AAAA,MACX,IAAA,EAAK,KAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yrFAAA,EAA0rF,IAAA,EAAK,SAAA,EAAS,CAAA;AAAA,wBAChtF,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4xFAAA,EAA6xF,MAAK,SAAA,EAAS;AAAA;AAAA;AAAA,GACrzF;AAEJ;AAOO,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,IAAA,GAAO,MAAK,EAAyB;AAChF,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,QAAQ,IAAI,CAAA;AACnC,EAAA,4BACG,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA,EAC7D,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,WAAW,IAAA,EAAM,CAAA;AAAA,wBACjC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,IAAA,EAAM,2BAA2B,GAAG,QAAA,EAAA,aAAA,EAAW;AAAA,GAAA,EACrE,CAAA;AAEJ","file":"chunk-WMOGNJWP.js","sourcesContent":["import { cn } from \"@/lib/utils\"\n\nexport interface FluencypassLogoProps {\n className?: string\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"\n}\n\nconst sizeMap = {\n xs: { icon: \"h-5 w-auto\", text: \"heading-xs\" },\n sm: { icon: \"h-7 w-auto\", text: \"heading-sm\" },\n md: { icon: \"h-8 w-auto\", text: \"heading-md\" },\n lg: { icon: \"h-10 w-auto\", text: \"heading-lg\" },\n xl: { icon: \"h-12 w-auto\", text: \"heading-xl\" },\n} as const\n\n/**\n * Fluencypass icon — the coral \"S\" shape.\n * Cor primitiva #ED6A6D, nunca muda entre temas ou modos.\n */\nexport function FluencypassIcon({ className = \"h-7 w-auto\" }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 34 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-label=\"Fluencypass\"\n role=\"img\"\n >\n <path d=\"M16.4698 29.5773C17.4618 28.9147 18.259 28.094 19.0927 27.2592C21.0624 25.2916 23.0321 23.324 25.0018 21.3565C25.8802 20.4791 25.9491 18.8661 25.0018 18.0008C24.0504 17.1336 22.5838 17.0606 21.6426 18.0008C20.0725 19.5692 18.5024 21.1376 16.9323 22.706C16.2102 23.4274 15.4901 24.1528 14.7638 24.8722C14.7213 24.9147 14.6807 24.9573 14.6381 24.9978C14.49 25.1417 14.3358 25.2774 14.1817 25.4132C14.5569 25.0789 14.0214 25.5186 13.8672 25.6118C13.6745 25.7273 13.4271 25.8063 13.2526 25.9421C13.2445 25.9482 13.2404 25.9522 13.2343 25.9563C13.1532 25.9846 13.0741 26.013 12.9929 26.0393C12.7718 26.1103 12.5467 26.1711 12.3195 26.2217C12.2221 26.244 12.1227 26.2602 12.0253 26.2805C12.0071 26.2845 11.9949 26.2866 11.9787 26.2906C11.9665 26.2906 11.9523 26.2906 11.932 26.2926C11.4675 26.323 11.0111 26.321 10.5465 26.2845C10.4289 26.2643 10.3112 26.244 10.1956 26.2197C9.92176 26.1629 9.64994 26.092 9.3842 26.0069C9.28278 25.9745 9.18338 25.938 9.08195 25.9056C9.06167 25.8995 9.04544 25.8934 9.03124 25.8894C8.8081 25.7901 8.58902 25.6847 8.37603 25.5692C8.18332 25.4639 7.99264 25.3524 7.80804 25.2349C7.7127 25.1741 7.61939 25.1092 7.52608 25.0444C7.47333 25.0059 7.38408 24.9411 7.3212 24.8884C6.93983 24.5662 6.58281 24.2156 6.25622 23.8387C6.18116 23.7536 6.10814 23.6645 6.03714 23.5753C6.01685 23.5449 5.99251 23.5044 5.95803 23.4497C5.7998 23.2025 5.64158 22.9552 5.50161 22.6979C5.39815 22.5074 5.30484 22.3109 5.21153 22.1163C5.20544 22.1062 5.20342 22.0981 5.19733 22.088C5.16285 21.9887 5.12836 21.8914 5.0959 21.7921C5.01882 21.5591 4.95188 21.324 4.89508 21.0849C4.87277 20.9937 4.79365 20.5135 4.78554 20.5236C4.74903 20.0981 4.7612 19.6766 4.76931 19.247C4.76931 19.2085 4.77945 19.1336 4.78554 19.0809C4.79365 19.0383 4.79974 18.9978 4.80988 18.9552C4.86668 18.6959 4.92348 18.4385 5.00259 18.1832C5.05939 17.9968 5.29876 17.5388 5.08779 17.9178C5.20139 17.7151 5.29267 17.5003 5.41033 17.2997C5.49958 17.1498 5.59492 17.0018 5.69432 16.858C5.67809 16.9005 5.98237 16.5398 6.07568 16.4446C6.59701 15.9076 7.13457 15.3869 7.66402 14.858C9.4694 13.0545 11.2748 11.2511 13.0802 9.44765C13.9585 8.57024 14.0275 6.95727 13.0802 6.09202C12.1288 5.22475 10.6622 5.1518 9.72094 6.09202C7.99669 7.81441 6.27245 9.5368 4.55023 11.2572C3.93965 11.8671 3.31892 12.4689 2.71847 13.087C0.955687 14.8965 -0.0180045 17.3261 0.000252168 19.8509C0.0225659 23.1092 1.6251 26.244 4.0857 28.3575C7.24614 31.5145 10.4086 34.6736 13.569 37.8306C14.0701 38.3311 14.5691 38.8296 15.0702 39.3301C15.9627 40.2217 17.48 40.2217 18.3726 39.3301C19.2692 38.4345 19.2692 36.9249 18.3726 36.0312C16.6504 34.3109 14.9282 32.5905 13.208 30.8722C14.3642 30.6574 15.4779 30.2399 16.4698 29.5773ZM5.19733 22.0839C5.16285 21.9887 5.02491 21.7232 5.19733 22.0839Z\" fill=\"#ED6A6D\"/>\n <path d=\"M29.5056 11.6596C26.3391 8.49645 23.1706 5.33131 20.004 2.16819C19.503 1.66768 19.004 1.1692 18.5029 0.668693C17.6104 -0.222898 16.093 -0.222898 15.2005 0.668693C14.3039 1.56434 14.3039 3.07396 15.2005 3.96758C16.9369 5.70213 18.6733 7.43668 20.4097 9.17123C19.2393 9.38804 18.1114 9.8156 17.1134 10.5005C16.1397 11.1672 15.3526 11.9797 14.525 12.8065C12.5776 14.7518 10.6323 16.695 8.68487 18.6403C7.80652 19.5177 7.73755 21.1307 8.68487 21.9959C9.63625 22.8632 11.1029 22.9362 12.0441 21.9959C13.5898 20.4519 15.1335 18.9098 16.6793 17.3658C17.4116 16.6342 18.1398 15.9027 18.8741 15.1733C18.9208 15.1266 18.9675 15.078 19.0141 15.0334C19.1358 14.9159 19.292 14.8085 19.3995 14.6788C19.4036 14.6727 19.4076 14.6687 19.4117 14.6646C19.5131 14.5937 19.6146 14.5268 19.718 14.462C19.9188 14.3364 20.1318 14.2371 20.3367 14.1216C20.3773 14.0993 20.4037 14.0831 20.4239 14.0689C20.4463 14.0628 20.4726 14.0567 20.5091 14.0446C20.7343 13.9757 20.9554 13.9027 21.1867 13.848C21.3185 13.8156 21.4504 13.7953 21.5822 13.7649C21.5985 13.7609 21.6127 13.7589 21.6248 13.7548C22.0934 13.7143 22.5498 13.7244 23.0184 13.7487C23.0326 13.7487 23.0407 13.7487 23.0509 13.7487C23.1503 13.7649 23.2476 13.7812 23.345 13.8014C23.6229 13.8561 23.8968 13.9271 24.1666 14.0081C24.3025 14.0507 24.4384 14.0973 24.5743 14.1439C24.5804 14.1459 24.6128 14.1581 24.6494 14.1743C24.7041 14.2006 24.7934 14.2411 24.8056 14.2472C24.9354 14.3141 25.0693 14.3769 25.1971 14.4458C25.4263 14.5694 25.6494 14.7011 25.8665 14.843C25.9618 14.9037 26.0531 14.9686 26.1464 15.0314C26.1748 15.0517 26.1971 15.0659 26.2174 15.08C26.2194 15.0861 26.2357 15.1023 26.2722 15.1348C26.6515 15.4732 27.0085 15.8217 27.3493 16.1966C27.3919 16.2432 27.4244 16.2796 27.4507 16.308C27.4974 16.3728 27.5461 16.4377 27.5907 16.5046C27.7591 16.7497 27.9173 17.003 28.0613 17.2644C28.1668 17.4549 28.2622 17.6515 28.3555 17.848C28.2845 17.7082 28.4833 18.1783 28.5198 18.2898C28.5948 18.5268 28.6618 18.7639 28.7165 19.0071C28.7429 19.1206 28.8099 19.6353 28.8139 19.5765C28.8443 20.0101 28.8403 20.4377 28.8139 20.8734C28.8139 20.8794 28.8119 20.8977 28.8078 20.9179C28.7936 20.9909 28.7652 21.1368 28.7571 21.1733C28.6942 21.4367 28.6273 21.692 28.5461 21.9514C28.5238 22.0203 28.4975 22.0892 28.4731 22.1581C28.463 22.1763 28.4508 22.1966 28.4386 22.2188C28.3392 22.3951 28.254 22.5775 28.1506 22.7518C28.1161 22.8085 27.9051 23.1003 27.8524 23.1874C27.753 23.2948 27.5725 23.4914 27.5258 23.538C26.9903 24.0871 26.4405 24.6221 25.8969 25.1651C24.1159 26.9443 22.3348 28.7234 20.5538 30.5025C19.6754 31.3799 19.6064 32.9929 20.5538 33.8582C21.5051 34.7254 22.9718 34.7984 23.913 33.8582C25.6129 32.1601 27.3108 30.464 29.0107 28.766C29.6334 28.1439 30.2684 27.5279 30.883 26.8956C32.6154 25.1145 33.5749 22.7457 33.5911 20.2634C33.6134 16.9767 31.9967 13.7974 29.5077 11.6657L29.5056 11.6596Z\" fill=\"#ED6A6D\"/>\n </svg>\n )\n}\n\n/**\n * Fluencypass brand logo — coral \"S\" icon + \"Fluencypass\" text.\n * O icone e cor primitiva (#ED6A6D), nunca muda.\n * O texto adapta ao light/dark via text-foreground.\n */\nexport function FluencypassLogo({ className, size = \"md\" }: FluencypassLogoProps) {\n const { icon, text } = sizeMap[size]\n return (\n <span className={cn(\"inline-flex items-center gap-2\", className)}>\n <FluencypassIcon className={icon} />\n <span className={cn(text, \"font-bold text-foreground\")}>Fluencypass</span>\n </span>\n )\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/motion/stagger-reveal.tsx"],"names":["_a","_b"],"mappings":";;;;;;;AAiCA,SAAS,cAAc,EAAA,EAOA;AAPA,EAAA,IAAA,EAAA,GAAA,EAAA,EACrB;AAAA,IAAA,IAAA,GAAO,GAAA;AAAA,IACP,SAAA,GAAY,IAAA;AAAA,IACZ,UAAA,GAAa,kBAAA;AAAA,IACb,SAAA;AAAA,IACA;AAAA,GAtCF,GAiCuB,EAAA,EAMlB,KAAA,GAAA,SAAA,CANkB,EAAA,EAMlB;AAAA,IALH,MAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,UAAU,gBAAA,EAAiB;AACjC,EAAA,MAAM,EAAE,GAAA,EAAK,SAAA,EAAU,GAAI,eAAA,CAAgC;AAAA,IACzD,SAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA,EAAc;AAAA,GACf,CAAA;AAED,EAAA,MAAM,WAAiB,KAAA,CAAA,QAAA,CAAS,GAAA,CAAI,QAAA,EAAU,CAAC,OAAO,CAAA,KAAM;AAhD9D,IAAA,IAAAA,GAAAA,EAAAC,GAAAA;AAiDI,IAAA,IAAI,CAAO,KAAA,CAAA,cAAA,CAAe,KAAK,CAAA,EAAG,OAAO,KAAA;AAEzC,IAAA,MAAM,OAAA,GAAU,KAAA;AAChB,IAAA,MAAM,kBAAiBD,GAAAA,GAAA,OAAA,CAAQ,KAAA,CAAM,SAAA,KAAd,OAAAA,GAAAA,GAA2B,EAAA;AAClD,IAAA,MAAM,cAAkCC,GAAAA,GAAA,OAAA,CAAQ,MAAM,KAAA,KAAd,IAAA,GAAAA,MAAuB,EAAC;AAChE,IAAA,OAAa,mBAAa,OAAA,EAAS;AAAA,MACjC,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,eAAe,CAAA;AAAA,MAC7C,KAAA,EAAO,iCACF,UAAA,CAAA,EADE;AAAA;AAAA;AAAA,QAIL,CAAC,iBAA2B,GAAG,CAAA;AAAA,QAC/B,CAAC,mBAA6B,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA;AAAA,OAC1C;AAAA,KACD,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,SAAA,IAAa,kBAAA,EAAoB,SAAS;AAAA,KAAA,EACpD,KAAA,CAAA,EAHL;AAAA,MAKE,QAAA,EAAA;AAAA,KAAA;AAAA,GACH;AAEJ","file":"chunk-WUK6APAX.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useIntersection } from \"@/hooks/use-intersection\"\nimport { useReducedMotion } from \"@/hooks/use-reduced-motion\"\n\nexport interface StaggerRevealProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Delay entre cada filho em ms. Default `100`. */\n step?: number\n /** Fracao do container que precisa estar visivel pra disparar. Default `0.15`. */\n threshold?: number\n /** Margin do viewport (CSS shorthand). Default `\"0px 0px -10% 0px\"`. */\n rootMargin?: string\n}\n\n/**\n * Container que anima seus filhos entrando em sequencia (fade-up com delay\n * incremental). Clona cada filho valido e injeta `--stagger-index` como CSS\n * variable; a animacao acontece via `.stagger-child` em `globals.css`.\n *\n * O `step` (default 100ms) controla o espacamento entre cada filho:\n * - 1o filho: delay 0\n * - 2o filho: delay 100ms\n * - 3o filho: delay 200ms ...\n *\n * Note que o `step` so afeta visualmente quando o CSS usa\n * `calc(var(--stagger-index) * Xms)` — atualmente o globals usa `100ms`\n * fixo (o step prop sobrescreve via inline style se necessario).\n *\n * Acessibilidade: respeita `prefers-reduced-motion` — filhos ja entram visiveis.\n */\nfunction StaggerReveal({\n step = 100,\n threshold = 0.15,\n rootMargin = \"0px 0px -10% 0px\",\n className,\n children,\n ...props\n}: StaggerRevealProps) {\n const reduced = useReducedMotion()\n const { ref, isVisible } = useIntersection<HTMLDivElement>({\n threshold,\n rootMargin,\n startVisible: reduced,\n })\n\n const enhanced = React.Children.map(children, (child, i) => {\n if (!React.isValidElement(child)) return child\n type ChildProps = { className?: string; style?: React.CSSProperties }\n const element = child as React.ReactElement<ChildProps>\n const childClassName = element.props.className ?? \"\"\n const childStyle: React.CSSProperties = element.props.style ?? {}\n return React.cloneElement(element, {\n className: cn(childClassName, \"stagger-child\"),\n style: {\n ...childStyle,\n // `--stagger-index` e usada por .stagger-revealed .stagger-child no CSS.\n // `--stagger-step-ms` permite override do espacamento por instancia.\n [\"--stagger-index\" as string]: i,\n [\"--stagger-step-ms\" as string]: `${step}ms`,\n },\n })\n })\n\n return (\n <div\n ref={ref}\n className={cn(isVisible && \"stagger-revealed\", className)}\n {...props}\n >\n {enhanced}\n </div>\n )\n}\n\nexport { StaggerReveal }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/layout/section.tsx"],"names":["Section"],"mappings":";;;;;AAoCA,IAAM,OAAA,GAAgB,KAAA,CAAA,UAAA,CAAsC,SAASA,QAAAA,CACnE,IACA,GAAA,EACA;AAFA,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,OAAK,SAAA,EAAW,OAAA,GAAU,SAAA,EAAW,IAAA,GAAO,QAAQ,EAAA,EAAI,SAAA,EArC5D,GAqCE,EAAA,EAAwE,kBAAxE,EAAA,EAAwE,CAAtE,IAAA,EAAgB,SAAA,EAAqB,QAAe,IAAA,EAAI,WAAA,CAAA,CAAA;AAG1D,EAAA,MAAM,GAAA,GAAM,EAAA;AACZ,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA;AAAA,MACA,WAAA,EAAU,mBAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA;AAAA,QAET,iBAAA;AAAA;AAAA,QAEA,YAAY,MAAA,IAAU,wCAAA;AAAA,QACtB,YAAY,SAAA,IAAa,4BAAA;AAAA;AAAA,QAEzB,SAAS,OAAA,IAAW,eAAA;AAAA,QACpB;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ,CAAC","file":"chunk-XDJ2E6KQ.js","sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface SectionProps extends React.HTMLAttributes<HTMLElement> {\n /** Tag HTML renderizada. Default `\"section\"`. */\n as?: \"section\" | \"div\"\n /**\n * Forma da dobra:\n * - `\"hero\"`: `min-h-screen flex flex-col` (primeira dobra acima do fold).\n * - `\"default\"`: padding vertical generoso (`py-20 md:py-28`) — usado nas demais.\n */\n variant?: \"hero\" | \"default\"\n /**\n * Aplica `.light-surface` quando `\"light\"` — sobrescreve os tokens semanticos\n * pra um fundo claro dentro de tema dark global. `\"dark\"` nao aplica nada\n * (segue o tema do root).\n */\n tone?: \"dark\" | \"light\"\n}\n\n/**\n * Wrapper de uma \"dobra\" de landing page. Generaliza o `HomeSection` do\n * `fluencypass-corporate-site`: padroniza padding/altura via `variant` e\n * permite alternar bg dark/light por dobra via `tone`.\n *\n * Pareie com `SectionHeading`, `SectionEyebrow`, `SectionSubtitle` pra montar\n * o cabecalho da dobra com tipografia consistente.\n *\n * @example\n * <Section id=\"pilares\" variant=\"default\" tone=\"light\">\n * <SectionEyebrow>O que oferecemos</SectionEyebrow>\n * <SectionHeading>3 pilares essenciais</SectionHeading>\n * <div className=\"grid md:grid-cols-3 gap-6\">...</div>\n * </Section>\n */\nconst Section = React.forwardRef<HTMLElement, SectionProps>(function Section(\n { as = \"section\", variant = \"default\", tone = \"dark\", id, className, ...props },\n ref\n) {\n const Tag = as as React.ElementType\n return (\n <Tag\n ref={ref}\n id={id}\n data-slot=\"marketing-section\"\n data-variant={variant}\n data-tone={tone}\n className={cn(\n // base\n \"relative w-full\",\n // variants\n variant === \"hero\" && \"min-h-screen flex flex-col scroll-mt-0\",\n variant === \"default\" && \"py-20 md:py-28 scroll-mt-8\",\n // tone\n tone === \"light\" && \"light-surface\",\n className\n )}\n {...props}\n />\n )\n})\n\nexport { Section }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/motion/animated-number.tsx"],"names":[],"mappings":"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","file":"chunk-XXTQV27H.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useIntersection } from \"@/hooks/use-intersection\"\nimport { useReducedMotion } from \"@/hooks/use-reduced-motion\"\n\nexport interface AnimatedNumberProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Valor final do contador. */\n value: number\n /** Valor inicial. Default `0`. */\n from?: number\n /** Duracao da animacao em ms. Default `1400`. */\n duration?: number\n /** Texto antes do numero (ex: `\"R$ \"` ou `\"+\"`). */\n prefix?: string\n /** Texto depois do numero (ex: `\"%\"` ou `\"k\"`). */\n suffix?: string\n /** Casas decimais. Default `0`. */\n decimals?: number\n /**\n * Formato dos numeros. `\"pt-BR\"` usa separador `.` e decimal `,`;\n * `\"plain\"` usa `toFixed`. Default `\"pt-BR\"`.\n */\n locale?: \"pt-BR\" | \"plain\"\n /** Threshold do IntersectionObserver. Default `0.4`. */\n threshold?: number\n}\n\nfunction easeOutCubic(t: number): number {\n return 1 - Math.pow(1 - t, 3)\n}\n\nfunction formatNumber(n: number, decimals: number, locale: \"pt-BR\" | \"plain\"): string {\n if (locale === \"pt-BR\") {\n return n.toLocaleString(\"pt-BR\", {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n }\n return n.toFixed(decimals)\n}\n\n/**\n * Conta de `from` ate `value` com easing `easeOutCubic` quando o componente\n * entra no viewport. Aplica `tabular-nums` automaticamente pra largura estavel\n * durante a contagem (evita \"saltos\" no layout).\n *\n * Acessibilidade: respeita `prefers-reduced-motion` — pula direto pro valor\n * final, sem animar.\n */\nfunction AnimatedNumber({\n value,\n from = 0,\n duration = 1400,\n prefix = \"\",\n suffix = \"\",\n decimals = 0,\n locale = \"pt-BR\",\n threshold = 0.4,\n className,\n ...props\n}: AnimatedNumberProps) {\n const reduced = useReducedMotion()\n const { ref, isVisible } = useIntersection<HTMLSpanElement>({\n threshold,\n startVisible: reduced,\n })\n const [current, setCurrent] = React.useState(reduced ? value : from)\n const startedRef = React.useRef(false)\n\n React.useEffect(() => {\n if (reduced) {\n setCurrent(value)\n return\n }\n if (!isVisible || startedRef.current) return\n startedRef.current = true\n\n const start = performance.now()\n let frame = 0\n const tick = (now: number) => {\n const elapsed = now - start\n const t = Math.min(elapsed / duration, 1)\n const next = from + (value - from) * easeOutCubic(t)\n setCurrent(next)\n if (t < 1) frame = requestAnimationFrame(tick)\n }\n frame = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(frame)\n }, [isVisible, value, from, duration, reduced])\n\n return (\n <span ref={ref} className={cn(\"tabular-nums\", className)} {...props}>\n {prefix}\n {formatNumber(current, decimals, locale)}\n {suffix}\n </span>\n )\n}\n\nexport { AnimatedNumber }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/scroll-area.tsx"],"names":["ScrollAreaPrimitive"],"mappings":";;;;;AAOA,SAAS,WAAW,EAAA,EAIsC;AAJtC,EAAA,IAAA,EAAA,GAAA,EAAA,EAClB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GATF,GAOoB,EAAA,EAGf,KAAA,GAAA,SAAA,CAHe,EAAA,EAGf;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,IAAA;AAAA,IAACA,YAAA,CAAoB,IAAA;AAAA,IAApB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS;AAAA,KAAA,EAC/B,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAACA,YAAA,CAAoB,QAAA;AAAA,UAApB;AAAA,YACC,WAAA,EAAU,sBAAA;AAAA,YACV,SAAA,EAAU,oJAAA;AAAA,YAET;AAAA;AAAA,SACH;AAAA,4BACC,SAAA,EAAA,EAAU,CAAA;AAAA,wBACX,GAAA,CAACA,YAAA,CAAoB,MAAA,EAApB,EAA2B;AAAA;AAAA,KAAA;AAAA,GAC9B;AAEJ;AAEA,SAAS,UAAU,EAAA,EAIsD;AAJtD,EAAA,IAAA,EAAA,GAAA,EAAA,EACjB;AAAA,IAAA,SAAA;AAAA,IACA,WAAA,GAAc;AAAA,GAhChB,GA8BmB,EAAA,EAGd,KAAA,GAAA,SAAA,CAHc,EAAA,EAGd;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAACA,YAAA,CAAoB,mBAAA;AAAA,IAApB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,WAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,oDAAA;AAAA,QACA,gBAAgB,UAAA,IACd,4CAAA;AAAA,QACF,gBAAgB,YAAA,IACd,8CAAA;AAAA,QACF;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAXL;AAAA,MAaC,QAAA,kBAAA,GAAA;AAAA,QAACA,YAAA,CAAoB,eAAA;AAAA,QAApB;AAAA,UACC,WAAA,EAAU,mBAAA;AAAA,UACV,SAAA,EAAU;AAAA;AAAA;AACZ,KAAA;AAAA,GACF;AAEJ","file":"chunk-Y33BGBHR.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/icons/BaseIcon.tsx","../src/components/icons/_generated/Achievement.tsx","../src/components/icons/_generated/Answer.tsx","../src/components/icons/_generated/Badge.tsx","../src/components/icons/_generated/Certificate.tsx","../src/components/icons/_generated/Checkpoint.tsx","../src/components/icons/_generated/Completion.tsx","../src/components/icons/_generated/Course.tsx","../src/components/icons/_generated/Diploma.tsx","../src/components/icons/_generated/Exercise.tsx","../src/components/icons/_generated/Flashcard.tsx","../src/components/icons/_generated/Goal.tsx","../src/components/icons/_generated/Highlight.tsx","../src/components/icons/_generated/Lesson.tsx","../src/components/icons/_generated/Milestone.tsx","../src/components/icons/_generated/Module.tsx","../src/components/icons/_generated/Progress.tsx","../src/components/icons/_generated/Question.tsx","../src/components/icons/_generated/Quiz.tsx","../src/components/icons/_generated/Recap.tsx","../src/components/icons/_generated/Streak.tsx","../src/components/icons/_generated/Task.tsx","../src/components/icons/_generated/Unit.tsx","../src/components/icons/_generated/Chat.tsx","../src/components/icons/_generated/Conversation.tsx","../src/components/icons/_generated/Dialogue.tsx","../src/components/icons/_generated/Dictionary.tsx","../src/components/icons/_generated/Feedback.tsx","../src/components/icons/_generated/Fluency.tsx","../src/components/icons/_generated/Grammar.tsx","../src/components/icons/_generated/Language.tsx","../src/components/icons/_generated/Listening.tsx","../src/components/icons/_generated/MemoryCard.tsx","../src/components/icons/_generated/Reading.tsx","../src/components/icons/_generated/Repetition.tsx","../src/components/icons/_generated/Sentence.tsx","../src/components/icons/_generated/Translate.tsx","../src/components/icons/_generated/Vocabulary.tsx","../src/components/icons/_generated/GroupClass.tsx","../src/components/icons/_generated/Live.tsx","../src/components/icons/_generated/Presentation.tsx","../src/components/icons/_generated/PrivateClass.tsx","../src/components/icons/_generated/RecordedClass.tsx","../src/components/icons/_generated/Whiteboard.tsx","../src/components/icons/_generated/Deadline.tsx","../src/components/icons/_generated/Recurring.tsx","../src/components/icons/_generated/Schedule.tsx","../src/components/icons/_generated/DotLive.tsx","../src/components/icons/_generated/Required.tsx","../src/components/icons/_generated/Ai.tsx","../src/components/icons/_generated/Ray.tsx"],"names":["BaseIcon","jsx","jsxs"],"mappings":"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","file":"chunk-YW7VSQJE.js","sourcesContent":["import { forwardRef } from 'react'\nimport type { Ref } from 'react'\nimport { ICON_SIZES } from './sizes'\nimport type { IconProps } from './types'\n\n/**\n * BaseIcon — wrapper SVG base de todos os ícones do Cycle Design.\n *\n * Responsabilidades:\n * - Aplicar width, height e strokeWidth corretos por size\n * - Garantir fill=\"none\" e stroke=\"currentColor\"\n * - Gerenciar acessibilidade (aria-hidden vs aria-label + role)\n * - Aceitar ref para casos avançados\n *\n * NÃO use BaseIcon diretamente — use os ícones nomeados:\n * import { HomeIcon } from 'cycle-design/icons'\n */\nexport const BaseIcon = forwardRef<SVGSVGElement, IconProps>(function BaseIcon(\n props,\n ref: Ref<SVGSVGElement>\n) {\n const { size = 'sm', decorative, children, className, ...rest } = props\n\n const { size: px, stroke } = ICON_SIZES[size]\n\n // Os valores de stroke do Figma são pixels visuais no tamanho renderizado.\n // Como o viewBox é sempre 24×24, o SVG escala o strokeWidth junto com o ícone.\n // Precisamos normalizar para coordenadas do viewBox:\n // strokeWidth no viewBox = visualStroke × (24 / displaySize)\n // Assim o stroke visual final sempre corresponde ao valor do Design System.\n const VIEWBOX_SIZE = 24\n const normalizedStroke = stroke * (VIEWBOX_SIZE / px)\n\n const svgProps = {\n ref,\n width: px,\n height: px,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: normalizedStroke,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n className,\n ...rest,\n }\n\n if (decorative) {\n return (\n <svg aria-hidden=\"true\" focusable=\"false\" {...svgProps}>\n {children}\n </svg>\n )\n }\n\n // Semântico: aria-label vem de rest (garantido pelo tipo IconProps)\n return (\n <svg role=\"img\" {...svgProps}>\n {children}\n </svg>\n )\n})\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Achievement size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Achievement size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Achievement(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M8 21h8m-4-3v3\"/><path d=\"M5 3h14v8c0 3.9-3.1 7-7 7s-7-3.1-7-7z\"/><path d=\"M5 7H2v4c0 1.7 1.3 3 3 3M19 7h3v4c0 1.7-1.3 3-3 3\"/><path fill=\"currentColor\" d=\"m12 7 .8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Answer size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Answer size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Answer(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path d=\"m8 10 3 3 5-6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Badge size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Badge size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Badge(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m12 2 3.5 3H20v4.5l3 2.5-3 2.5V19h-4.5L12 22l-3.5-3H4v-4.5L1 12l3-2.5V5h4.5z\"/><path d=\"m9 12 2 2 4-4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Certificate size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Certificate size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Certificate(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"M7 8h10M7 12h6\"/><path d=\"m9 21 3-2 3 2v-4H9z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Checkpoint size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Checkpoint size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Checkpoint(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 3v18\"/><path d=\"M5 4h13l-4 5 4 5H5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Completion size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Completion size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Completion(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M22 12c0 5.5-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2M16 2.3c2.3.8 4.2 2.5 5.3 4.7\"/><path d=\"m8 12 3 3 5-6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Course size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Course size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Course(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 6h16\"/><path d=\"M19 8H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2Z\"/><path d=\"M8 12h8m-8 3.5h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Diploma size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Diploma size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Diploma(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v16c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2z\"/><path d=\"M9 7h6m-6 4h6m-6 4h3\"/><path d=\"M4 18h16\"/><path fill=\"currentColor\" d=\"M12 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Exercise size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Exercise size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Exercise(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M6 8H4c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h2M18 8h2c.6 0 1 .4 1 1v6c0 .6-.4 1-1 1h-2\"/><path d=\"M9 7.5a1.5 1.5 0 1 0-3 0v9a1.5 1.5 0 0 0 3 0zM18 7.5a1.5 1.5 0 0 0-3 0v9a1.5 1.5 0 0 0 3 0z\"/><path d=\"M9 12h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Flashcard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Flashcard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Flashcard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 5H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z\"/><path fill=\"currentColor\" d=\"m12.3 9 .8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Goal size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Goal size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Goal(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z\"/><path fill=\"currentColor\" d=\"M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Highlight size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Highlight size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Highlight(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m15 3 6 6-11 11H4v-6z\"/><path d=\"M4 20h17M13 5l6 6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Lesson size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Lesson size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Lesson(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 3H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"m10 7.5 5 2.5-5 2.5z\"/><path d=\"M8 21h8m-4-4v4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Milestone size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Milestone size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Milestone(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m12 3 9 9-9 9-9-9z\"/><path d=\"M12 8v8m-4-4h8\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Module size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Module size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Module(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4.5 3.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM14.5 3.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM4.5 13.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM14.5 13.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Progress size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Progress size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Progress(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 21h18\"/><path d=\"m5 16 4-5 4 3 3-6 5-3\"/><path d=\"M3 3v18\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Question size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Question size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Question(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path d=\"M9.5 9c0-1.4 1.1-2.5 2.5-2.5s2.5 1.1 2.5 2.5c0 1.1-.7 2-1.7 2.4-.5.2-.8.7-.8 1.2v.4\"/><path fill=\"currentColor\" d=\"M12 16.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Quiz size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Quiz size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Quiz(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M18 3H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3Z\"/><path d=\"M9 9c0-1.7 1.3-3 3-3s3 1.3 3 3c0 1.4-.9 2.6-2.1 3-.5.2-.9.6-.9 1.1v.9\"/><path fill=\"currentColor\" d=\"M12 18a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Recap size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Recap size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Recap(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M2 12C2 6.5 6.5 2 12 2c3.5 0 6.6 1.8 8.4 4.5M22 12c0 5.5-4.5 10-10 10-3.5 0-6.6-1.8-8.4-4.5\"/><path d=\"M20 2v5h-5M4 22v-5h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Streak size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Streak size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Streak(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M8.5 13.5A2.5 2.5 0 0 0 11 11c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a7.001 7.001 0 0 1-11.95 4.95A7 7 0 0 1 5 14c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Task size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Task size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Task(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8z\"/><path d=\"M14 2v6h6\"/><path d=\"m8 13 3 3 5-5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Unit size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Unit size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Unit(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M18 3H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3Z\"/><path d=\"M9 8h6m-6 4h6m-6 4h3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Chat size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Chat size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Chat(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 15c0 .6-.4 1-1 1H7l-4 4V5c0-.6.4-1 1-1h15c.6 0 1 .4 1 1z\"/><path d=\"M8 9h8m-8 3h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Conversation size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Conversation size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Conversation(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 3h12c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2H9l-4 3v-3c-1.1 0-2-.9-2-2V5c0-1.1.9-2 1-2Z\"/><path d=\"M18 8h2c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2h-1v3l-4-3h-3c-1.1 0-2-.9-2-2v-2\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Dialogue size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Dialogue size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Dialogue(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 5h10c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2H7l-4 3v-3c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2Z\"/><path d=\"M15 8h5c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2h-3v3l-4-3h-3c-1.1 0-2-.9-2-2v-1\"/><path fill=\"currentColor\" d=\"M5 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2M8 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2M11 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Dictionary size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Dictionary size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Dictionary(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4.5C4 3.1 5.1 2 6.5 2H19v20H6.5C5.1 22 4 20.9 4 19.5z\"/><path d=\"M4 19.5C4 18.1 5.1 17 6.5 17H19M8 7h7m-7 4h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Feedback size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Feedback size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Feedback(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path fill=\"currentColor\" d=\"m12 5 1.2 3.4h3.5l-2.8 2 1 3.4-2.9-2-2.9 2 1-3.4-2.8-2h3.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Fluency size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Fluency size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Fluency(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M2 16c2 0 2-4 4-4s2 4 4 4 2-4 4-4 2 4 4 4 2-4 4-4M16 6l3 3 3-3\"/><path d=\"M19 9V4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Grammar size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Grammar size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Grammar(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 6h16M4 10h12M4 14h8\"/><path d=\"m15 16 2 2 4-4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Language size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Language size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Language(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M3 12h18M12 3c-2 3-3.5 6-3.5 9s1.5 6 3.5 9M12 3c2 3 3.5 6 3.5 9S14 18 12 21\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Listening size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Listening size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Listening(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 10c0-3.9 3.1-7 7-7s7 3.1 7 7\"/><path d=\"M7 12a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0zM21 12a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0z\"/><path d=\"M19 16v2c0 1.1-.9 2-2 2h-3\"/><path d=\"M15 19h-2a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <MemoryCard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <MemoryCard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function MemoryCard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M16 9V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4\"/><path d=\"M6 8.5h6m-6 3h2\"/><path d=\"M20 9H10a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2Z\"/><path fill=\"currentColor\" d=\"m15.3 10.6.8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Reading size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Reading size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Reading(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 5.25c3.09 0 5.459.95 7.055 1.896.798.473 1.403.945 1.803 1.294l.066.06-.066.06c-.4.35-1.005.821-1.803 1.294C17.459 10.8 15.09 11.75 12 11.75s-5.459-.95-7.055-1.896A12.3 12.3 0 0 1 3.142 8.56l-.067-.06.067-.06c.4-.35 1.005-.821 1.803-1.294C6.541 6.2 8.91 5.25 12 5.25Z\"/><path d=\"M12 11a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z\"/><path d=\"M5 15.5h14m-14 3h9\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Repetition size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Repetition size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Repetition(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m17 2 4 4-4 4\"/><path d=\"M3 11V9c0-1.7 1.3-3 3-3h15\"/><path d=\"m7 22-4-4 4-4\"/><path d=\"M21 13v2c0 1.7-1.3 3-3 3H3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Sentence size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Sentence size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Sentence(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 7h16M4 12h12M4 17h8\"/><path d=\"M19 14v6m0 0-2-2m2 2 2-2\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Translate size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Translate size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Translate(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 6h10M8 3v3M5 9c0 2.8 2.7 5 6 5\"/><path d=\"M11 6c-2 3-4 6-6 8\"/><path d=\"m14 13 3 8m0 0 3-8m-3 8h-2.5 5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Vocabulary size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Vocabulary size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Vocabulary(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m4 16 3-8 3 8m-4.5-3h3M14 8h6l-6 8h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <GroupClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <GroupClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function GroupClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"/><path d=\"M6 21c0-3 2.7-5 6-5s6 2 6 5\"/><path d=\"M5 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"/><path d=\"M2 20c0-2 1.3-3.5 3-3.5 1 0 1.9.5 2.5 1.3\"/><path d=\"M19 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"/><path d=\"M22 20c0-2-1.3-3.5-3-3.5-1 0-1.9.5-2.5 1.3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Live size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Live size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Live(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 7c-2 1.8-3 3.3-3 5s1 3.2 3 5M19 7c2 1.8 3 3.3 3 5s-1 3.2-3 5M8.5 10c-1 .7-1.5 1.3-1.5 2s.5 1.3 1.5 2M15.5 10c1 .7 1.5 1.3 1.5 2s-.5 1.3-1.5 2\"/><path fill=\"currentColor\" d=\"M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/><path d=\"M12 13.5V20\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Presentation size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Presentation size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Presentation(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"M12 16v6m-4 0h8M7 9h10M7 12h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <PrivateClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <PrivateClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function PrivateClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M9 10.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z\"/><path d=\"M2 20c0-3.3 3.1-6 7-6\"/><path d=\"M20.5 14h-6a1.5 1.5 0 0 0-1.5 1.5v4a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-4a1.5 1.5 0 0 0-1.5-1.5Z\"/><path d=\"M15 14v-2c0-1.1.9-2 2-2h.5c1.1 0 2 .9 2 2v2\"/><path fill=\"currentColor\" d=\"M17.5 18.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <RecordedClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <RecordedClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function RecordedClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 4H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path fill=\"currentColor\" stroke=\"none\" d=\"m11 10 3 1.5-3 1.5z\"/><path fill=\"currentColor\" d=\"M18 8.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/><path d=\"M8 21h8m-4-3v3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Whiteboard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Whiteboard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Whiteboard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"m8 11 3-3 3 3 3-3\"/><path d=\"M8 21h8m-4-4v4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Deadline size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Deadline size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Deadline(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path d=\"M16 2v4M8 2v4M3 9h18M12 13v3\"/><path fill=\"currentColor\" d=\"M12 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Recurring size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Recurring size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Recurring(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m17 2 4 4-4 4\"/><path d=\"M3 10V8c0-1.1.9-2 2-2h16\"/><path d=\"m7 22-4-4 4-4\"/><path d=\"M21 14v2c0 1.1-.9 2-2 2H3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Schedule size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Schedule size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Schedule(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path d=\"M16 2v4M8 2v4M3 9h18M7 13h4m-4 3.5h10M13 13h4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <DotLive size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <DotLive size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function DotLive(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path fill=\"currentColor\" stroke=\"none\" d=\"M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Required size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Required size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Required(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M12 7v5\"/><path fill=\"currentColor\" d=\"M12 17a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Ai size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Ai size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Ai(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M10.142 15.15C10.061 14.839 9.899 14.554 9.672 14.327C9.444 14.099 9.16 13.937 8.849 13.857L3.327 12.433C3.233 12.406 3.15 12.349 3.091 12.271C3.032 12.193 3 12.098 3 12C3 11.902 3.032 11.807 3.091 11.729C3.15 11.651 3.233 11.594 3.327 11.567L8.849 10.142C9.16 10.062 9.444 9.9 9.671 9.673C9.899 9.445 10.061 9.161 10.142 8.85L11.566 3.329C11.592 3.234 11.649 3.151 11.727 3.091C11.805 3.032 11.901 3 11.999 3C12.097 3 12.193 3.032 12.271 3.091C12.349 3.151 12.406 3.234 12.432 3.329L13.855 8.85C13.936 9.162 14.098 9.446 14.325 9.673C14.553 9.901 14.837 10.063 15.148 10.143L20.67 11.566C20.765 11.592 20.848 11.649 20.908 11.727C20.968 11.806 21 11.902 21 12C21 12.099 20.968 12.194 20.908 12.273C20.848 12.351 20.765 12.408 20.67 12.434L15.148 13.857C14.837 13.937 14.553 14.099 14.325 14.327C14.098 14.554 13.936 14.839 13.855 15.15L12.431 20.671C12.405 20.766 12.348 20.849 12.27 20.909C12.192 20.968 12.096 21 11.998 21C11.9 21 11.804 20.968 11.726 20.909C11.648 20.849 11.591 20.766 11.565 20.671L10.142 15.15Z\"/><path d=\"M19.2 3.9V7.5M21 5.7H17.4\"/><path d=\"M4.8 16.5V18.3M5.7 17.4H3.9\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Ray size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Ray size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Ray(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M13 2 9 13h3.5L10 22 20 9h-5l2.5-7z\"/>\n </BaseIcon>\n )\n}\n"]}
|