@hua-labs/ui 2.1.0 → 2.2.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/README.md +55 -67
- package/dist/{ComponentLayout-btJq4TjA.d.mts → ComponentLayout-BhM4VSoq.d.mts} +1 -1
- package/dist/Section-BWzyshgX.d.mts +67 -0
- package/dist/advanced/dashboard.d.ts.map +1 -1
- package/dist/advanced-dashboard.d.mts +1 -1
- package/dist/advanced-dashboard.mjs +3 -3
- package/dist/advanced-dashboard.mjs.map +1 -1
- package/dist/advanced-emotion.mjs +1 -1
- package/dist/advanced-motion.d.mts +74 -7
- package/dist/advanced-motion.mjs +1 -1
- package/dist/advanced.d.mts +4 -4
- package/dist/advanced.mjs +3 -3
- package/dist/advanced.mjs.map +1 -1
- package/dist/{chunk-GLZKT7JN.mjs → chunk-5DPW7SVD.mjs} +3 -3
- package/dist/{chunk-GLZKT7JN.mjs.map → chunk-5DPW7SVD.mjs.map} +1 -1
- package/dist/{chunk-X7ZIWYRC.mjs → chunk-5L5HIPKA.mjs} +2 -2
- package/dist/{chunk-X7ZIWYRC.mjs.map → chunk-5L5HIPKA.mjs.map} +1 -1
- package/dist/chunk-A5YOVVM5.mjs +3 -0
- package/dist/chunk-A5YOVVM5.mjs.map +1 -0
- package/dist/chunk-CNW22G24.mjs +13 -0
- package/dist/chunk-CNW22G24.mjs.map +1 -0
- package/dist/chunk-CW66UBQG.mjs +3 -0
- package/dist/chunk-CW66UBQG.mjs.map +1 -0
- package/dist/chunk-EAZEI74V.mjs +3 -0
- package/dist/chunk-EAZEI74V.mjs.map +1 -0
- package/dist/{chunk-LH77I6HO.mjs → chunk-EPY3432E.mjs} +2 -2
- package/dist/{chunk-LH77I6HO.mjs.map → chunk-EPY3432E.mjs.map} +1 -1
- package/dist/{chunk-SGEP3CQE.mjs → chunk-F2M4YDDQ.mjs} +2 -2
- package/dist/{chunk-SGEP3CQE.mjs.map → chunk-F2M4YDDQ.mjs.map} +1 -1
- package/dist/chunk-FHMFDCX2.mjs +3 -0
- package/dist/chunk-FHMFDCX2.mjs.map +1 -0
- package/dist/chunk-HBIUCLFL.mjs +3 -0
- package/dist/chunk-HBIUCLFL.mjs.map +1 -0
- package/dist/{chunk-LOYAJIWO.mjs → chunk-HEBXAFRY.mjs} +2 -2
- package/dist/{chunk-LOYAJIWO.mjs.map → chunk-HEBXAFRY.mjs.map} +1 -1
- package/dist/chunk-IG47LMOD.mjs +3 -0
- package/dist/chunk-IG47LMOD.mjs.map +1 -0
- package/dist/{chunk-IFSEJVOR.mjs → chunk-J47ZEXEL.mjs} +2 -2
- package/dist/{chunk-IFSEJVOR.mjs.map → chunk-J47ZEXEL.mjs.map} +1 -1
- package/dist/{chunk-IN7RWQCJ.mjs → chunk-K2FOFIST.mjs} +2 -2
- package/dist/{chunk-IN7RWQCJ.mjs.map → chunk-K2FOFIST.mjs.map} +1 -1
- package/dist/{chunk-UWHCM3S6.mjs → chunk-LL6QPRD7.mjs} +2 -2
- package/dist/{chunk-UWHCM3S6.mjs.map → chunk-LL6QPRD7.mjs.map} +1 -1
- package/dist/{chunk-PAEKNQWW.mjs → chunk-NMJLOK6M.mjs} +2 -2
- package/dist/{chunk-PAEKNQWW.mjs.map → chunk-NMJLOK6M.mjs.map} +1 -1
- package/dist/chunk-O24K56OS.mjs +3 -0
- package/dist/chunk-O24K56OS.mjs.map +1 -0
- package/dist/chunk-OIWG3IJ7.mjs +3 -0
- package/dist/chunk-OIWG3IJ7.mjs.map +1 -0
- package/dist/{chunk-VWSBJUNI.mjs → chunk-OLLU7ZFH.mjs} +2 -2
- package/dist/{chunk-VWSBJUNI.mjs.map → chunk-OLLU7ZFH.mjs.map} +1 -1
- package/dist/chunk-Q76JW7X5.mjs +73 -0
- package/dist/chunk-Q76JW7X5.mjs.map +1 -0
- package/dist/chunk-QEMPERUK.mjs +3 -0
- package/dist/chunk-QEMPERUK.mjs.map +1 -0
- package/dist/{chunk-XV3Y7QVU.mjs → chunk-QRM66RQG.mjs} +2 -2
- package/dist/{chunk-XV3Y7QVU.mjs.map → chunk-QRM66RQG.mjs.map} +1 -1
- package/dist/{chunk-6KTHJ3EL.mjs → chunk-QRRP7TGF.mjs} +3 -3
- package/dist/{chunk-6KTHJ3EL.mjs.map → chunk-QRRP7TGF.mjs.map} +1 -1
- package/dist/chunk-SD6XGDAC.mjs +3 -0
- package/dist/chunk-SD6XGDAC.mjs.map +1 -0
- package/dist/chunk-SDFVGFXT.mjs +3 -0
- package/dist/chunk-SDFVGFXT.mjs.map +1 -0
- package/dist/{chunk-N7M6RIN4.mjs → chunk-SMLDNOV3.mjs} +3 -3
- package/dist/{chunk-N7M6RIN4.mjs.map → chunk-SMLDNOV3.mjs.map} +1 -1
- package/dist/{chunk-NBJUE7NR.mjs → chunk-TAP6MYDW.mjs} +2 -2
- package/dist/{chunk-NBJUE7NR.mjs.map → chunk-TAP6MYDW.mjs.map} +1 -1
- package/dist/{chunk-PYBYZVSL.mjs → chunk-TBZ645BI.mjs} +2 -2
- package/dist/{chunk-PYBYZVSL.mjs.map → chunk-TBZ645BI.mjs.map} +1 -1
- package/dist/{chunk-C4OACMTB.mjs → chunk-V2DNYJR6.mjs} +2 -2
- package/dist/{chunk-C4OACMTB.mjs.map → chunk-V2DNYJR6.mjs.map} +1 -1
- package/dist/chunk-VBABZXL7.mjs +3 -0
- package/dist/chunk-VBABZXL7.mjs.map +1 -0
- package/dist/{chunk-OSCMSA2Q.mjs → chunk-WYBSHTGY.mjs} +2 -2
- package/dist/{chunk-OSCMSA2Q.mjs.map → chunk-WYBSHTGY.mjs.map} +1 -1
- package/dist/chunk-ZQUMJQYV.mjs +3 -0
- package/dist/chunk-ZQUMJQYV.mjs.map +1 -0
- package/dist/chunk-ZY23NOT4.mjs +3 -0
- package/dist/chunk-ZY23NOT4.mjs.map +1 -0
- package/dist/components/Action.d.ts.map +1 -1
- package/dist/components/Badge.d.ts +1 -1
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/DatePicker.d.ts.map +1 -1
- package/dist/components/Dropdown.d.ts +0 -50
- package/dist/components/Dropdown.d.ts.map +1 -1
- package/dist/components/Icon/Icon.d.ts.map +1 -1
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Popover.d.ts +2 -0
- package/dist/components/Popover.d.ts.map +1 -1
- package/dist/components/Progress.d.ts +3 -2
- package/dist/components/Progress.d.ts.map +1 -1
- package/dist/components/Section.d.ts +44 -0
- package/dist/components/Section.d.ts.map +1 -0
- package/dist/components/advanced/AnimatedGradient.d.ts.map +1 -1
- package/dist/components/advanced/Carousel.d.ts.map +1 -1
- package/dist/components/advanced/DotNav.d.ts +26 -0
- package/dist/components/advanced/DotNav.d.ts.map +1 -0
- package/dist/components/advanced/HorizontalScroll.d.ts +20 -0
- package/dist/components/advanced/HorizontalScroll.d.ts.map +1 -0
- package/dist/components/advanced/ImageReveal.d.ts +24 -0
- package/dist/components/advanced/ImageReveal.d.ts.map +1 -0
- package/dist/components/advanced/Parallax.d.ts +9 -6
- package/dist/components/advanced/Parallax.d.ts.map +1 -1
- package/dist/components/advanced/TextReveal.d.ts.map +1 -1
- package/dist/components/advanced/index.d.ts +6 -0
- package/dist/components/advanced/index.d.ts.map +1 -1
- package/dist/data.mjs +1 -1
- package/dist/data.mjs.map +1 -1
- package/dist/feedback.mjs +1 -1
- package/dist/form.mjs +3 -3
- package/dist/form.mjs.map +1 -1
- package/dist/{icons-Bj_nr8Ba.d.mts → icons-DcOBy9Hf.d.mts} +10 -1
- package/dist/iconsax-extended.mjs +2 -2
- package/dist/iconsax-extended.mjs.map +1 -1
- package/dist/index.d.mts +10 -109
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +14 -14
- package/dist/index.mjs.map +1 -1
- package/dist/interactive.mjs +1 -1
- package/dist/interactive.mjs.map +1 -1
- package/dist/landing/LandingAbout.d.ts +3 -0
- package/dist/landing/LandingAbout.d.ts.map +1 -0
- package/dist/landing/LandingCTA.d.ts +3 -0
- package/dist/landing/LandingCTA.d.ts.map +1 -0
- package/dist/landing/LandingContact.d.ts +3 -0
- package/dist/landing/LandingContact.d.ts.map +1 -0
- package/dist/landing/LandingExperience.d.ts +3 -0
- package/dist/landing/LandingExperience.d.ts.map +1 -0
- package/dist/landing/LandingFeatures.d.ts +3 -0
- package/dist/landing/LandingFeatures.d.ts.map +1 -0
- package/dist/landing/LandingHero.d.ts +3 -0
- package/dist/landing/LandingHero.d.ts.map +1 -0
- package/dist/landing/LandingLogoCloud.d.ts +3 -0
- package/dist/landing/LandingLogoCloud.d.ts.map +1 -0
- package/dist/landing/LandingMetrics.d.ts +3 -0
- package/dist/landing/LandingMetrics.d.ts.map +1 -0
- package/dist/landing/LandingProjects.d.ts +3 -0
- package/dist/landing/LandingProjects.d.ts.map +1 -0
- package/dist/landing/LandingProvider.d.ts +4 -0
- package/dist/landing/LandingProvider.d.ts.map +1 -0
- package/dist/landing/LandingShowcase.d.ts +3 -0
- package/dist/landing/LandingShowcase.d.ts.map +1 -0
- package/dist/landing/LandingSkills.d.ts +3 -0
- package/dist/landing/LandingSkills.d.ts.map +1 -0
- package/dist/landing/LandingStats.d.ts +3 -0
- package/dist/landing/LandingStats.d.ts.map +1 -0
- package/dist/landing/LandingTestimonials.d.ts +3 -0
- package/dist/landing/LandingTestimonials.d.ts.map +1 -0
- package/dist/landing/index.d.ts +47 -0
- package/dist/landing/index.d.ts.map +1 -0
- package/dist/landing/themes/app.d.ts +3 -0
- package/dist/landing/themes/app.d.ts.map +1 -0
- package/dist/landing/themes/corporate.d.ts +3 -0
- package/dist/landing/themes/corporate.d.ts.map +1 -0
- package/dist/landing/themes/dashboard.d.ts +3 -0
- package/dist/landing/themes/dashboard.d.ts.map +1 -0
- package/dist/landing/themes/immersive.d.ts +3 -0
- package/dist/landing/themes/immersive.d.ts.map +1 -0
- package/dist/landing/themes/index.d.ts +15 -0
- package/dist/landing/themes/index.d.ts.map +1 -0
- package/dist/landing/themes/marketing.d.ts +3 -0
- package/dist/landing/themes/marketing.d.ts.map +1 -0
- package/dist/landing/themes/portfolio.d.ts +3 -0
- package/dist/landing/themes/portfolio.d.ts.map +1 -0
- package/dist/landing/themes/product.d.ts +3 -0
- package/dist/landing/themes/product.d.ts.map +1 -0
- package/dist/landing/types.d.ts +346 -0
- package/dist/landing/types.d.ts.map +1 -0
- package/dist/landing.d.mts +417 -0
- package/dist/landing.mjs +31 -0
- package/dist/landing.mjs.map +1 -0
- package/dist/lib/icon-providers.d.ts +9 -25
- package/dist/lib/icon-providers.d.ts.map +1 -1
- package/dist/lib/icons.d.ts +10 -1
- package/dist/lib/icons.d.ts.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/navigation.d.mts +1 -1
- package/dist/navigation.mjs +1 -1
- package/dist/navigation.mjs.map +1 -1
- package/dist/overlay.d.mts +2 -50
- package/dist/overlay.mjs +1 -1
- package/dist/overlay.mjs.map +1 -1
- package/dist/sdui.mjs +1 -1
- package/dist/sdui.mjs.map +1 -1
- package/dist/theme.d.mts +85 -0
- package/dist/theme.d.ts +14 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.mjs +3 -0
- package/dist/theme.mjs.map +1 -0
- package/package.json +30 -20
- package/src/styles/landing.css +107 -0
- package/src/styles/utilities.css +58 -0
- package/dist/advanced-dashboard.js +0 -39
- package/dist/advanced-dashboard.js.map +0 -1
- package/dist/advanced-emotion.js +0 -2
- package/dist/advanced-emotion.js.map +0 -1
- package/dist/advanced-motion.js +0 -82
- package/dist/advanced-motion.js.map +0 -1
- package/dist/advanced.js +0 -112
- package/dist/advanced.js.map +0 -1
- package/dist/chunk-BXX2TZUB.mjs +0 -3
- package/dist/chunk-BXX2TZUB.mjs.map +0 -1
- package/dist/chunk-COR6CDMA.mjs +0 -83
- package/dist/chunk-COR6CDMA.mjs.map +0 -1
- package/dist/chunk-FFH4ZFKS.mjs +0 -3
- package/dist/chunk-FFH4ZFKS.mjs.map +0 -1
- package/dist/chunk-HN5LSP6L.mjs +0 -3
- package/dist/chunk-HN5LSP6L.mjs.map +0 -1
- package/dist/chunk-LPAG7DCA.mjs +0 -3
- package/dist/chunk-LPAG7DCA.mjs.map +0 -1
- package/dist/chunk-QQCELXFD.mjs +0 -3
- package/dist/chunk-QQCELXFD.mjs.map +0 -1
- package/dist/chunk-RPUS7G7Q.mjs +0 -3
- package/dist/chunk-RPUS7G7Q.mjs.map +0 -1
- package/dist/chunk-SDFHJ4GB.mjs +0 -3
- package/dist/chunk-SDFHJ4GB.mjs.map +0 -1
- package/dist/chunk-UUHAXGMO.mjs +0 -3
- package/dist/chunk-UUHAXGMO.mjs.map +0 -1
- package/dist/data.js +0 -3
- package/dist/data.js.map +0 -1
- package/dist/feedback.js +0 -12
- package/dist/feedback.js.map +0 -1
- package/dist/form.js +0 -8
- package/dist/form.js.map +0 -1
- package/dist/iconsax-extended.js +0 -3
- package/dist/iconsax-extended.js.map +0 -1
- package/dist/iconsax.js +0 -3
- package/dist/iconsax.js.map +0 -1
- package/dist/index.js +0 -51
- package/dist/index.js.map +0 -1
- package/dist/interactive.js +0 -2
- package/dist/interactive.js.map +0 -1
- package/dist/lib/phosphor-icons.d.ts +0 -6
- package/dist/lib/phosphor-icons.d.ts.map +0 -1
- package/dist/navigation.js +0 -12
- package/dist/navigation.js.map +0 -1
- package/dist/overlay.js +0 -3
- package/dist/overlay.js.map +0 -1
- package/dist/sdui.js +0 -9
- package/dist/sdui.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/components/Action.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/components/Action.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAGpD,+CAA+C;AAC/C,KAAK,UAAU,GACX,SAAS,GAAG,WAAW,GAAG,UAAU,GACpC,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC5D,KAAK,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG,KAAK,YAAY,GAAG;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;AAErD,KAAK,QAAQ,GAAG,iBAAiB,CAAC;AAClC,KAAK,QAAQ,GAAG,iBAAiB,CAAC;AAClC,KAAK,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,MAAM,oFAiOlB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
export declare const badgeVariants: (props?: ({
|
|
3
|
-
variant?: "
|
|
3
|
+
variant?: "error" | "default" | "outline" | "destructive" | "secondary" | "glass" | null | undefined;
|
|
4
4
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5
5
|
/**
|
|
6
6
|
* Badge 컴포넌트의 props / Badge component props
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;GAEG;AACH,KAAK,OAAO,GACR,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GACnD,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD;;GAEG;AACH,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE/C;;GAEG;AACH,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE3C;;GAEG;AACH,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;;GAGG;AACH,KAAK,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,KAAK,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/E;;GAEG;AACH,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,WAAW,GAAG,WAAW,GAC5B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC,GAAG;IACjE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,KAAK,iBAAiB,GAAG,WAAW,GAClC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG;IAC1E,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEJ;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAE1D,KAAK,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AA+I5D,eAAO,MAAM,MAAM,oFAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,YAAY;;;;8EA2BxB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;IAC5C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,YAAY;;;;8EA2BxB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;IAC5C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,IAAI,kFAcT,CAAA;AAID,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEhF,QAAA,MAAM,UAAU,wFAQf,CAAA;AAID,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;CAAG;AAEnF,QAAA,MAAM,SAAS,6FAWd,CAAA;AAID,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;CAAG;AAE3F,QAAA,MAAM,eAAe,mGAQpB,CAAA;AAID,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEjF,QAAA,MAAM,WAAW,yFAIhB,CAAA;AAID,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEhF,QAAA,MAAM,UAAU,wFAQf,CAAA;AAID,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/components/DatePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC7F,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,WAAW,CAAC,EAAE,IAAI,EAAE,CAAA;CACrB;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/components/DatePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC7F,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,WAAW,CAAC,EAAE,IAAI,EAAE,CAAA;CACrB;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,UAAU,wFAoTtB,CAAA"}
|
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Dropdown 컴포넌트의 props / Dropdown component props
|
|
4
|
-
* @typedef {Object} DropdownProps
|
|
5
|
-
* @property {React.ReactNode} trigger - Dropdown을 열기 위한 트리거 요소 / Trigger element to open dropdown
|
|
6
|
-
* @property {React.ReactNode} children - Dropdown 내용 / Dropdown content
|
|
7
|
-
* @property {boolean} [open] - 제어 모드에서 열림/닫힘 상태 / Open/close state in controlled mode
|
|
8
|
-
* @property {(open: boolean) => void} [onOpenChange] - 상태 변경 콜백 / State change callback
|
|
9
|
-
* @property {"top" | "bottom" | "left" | "right"} [placement="bottom"] - Dropdown 표시 위치 / Dropdown display position
|
|
10
|
-
* @property {"start" | "center" | "end"} [align="start"] - Dropdown 정렬 / Dropdown alignment
|
|
11
|
-
* @property {number} [offset=8] - 트리거와 Dropdown 사이 간격 (px) / Spacing between trigger and dropdown (px)
|
|
12
|
-
* @property {boolean} [disabled=false] - Dropdown 비활성화 여부 / Disable dropdown
|
|
13
|
-
* @property {boolean} [showArrow=true] - 화살표 표시 여부 / Show arrow
|
|
14
|
-
* @extends {React.HTMLAttributes<HTMLDivElement>}
|
|
15
|
-
*/
|
|
16
2
|
export interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
17
3
|
trigger: React.ReactNode;
|
|
18
4
|
children: React.ReactNode;
|
|
@@ -24,42 +10,6 @@ export interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
24
10
|
disabled?: boolean;
|
|
25
11
|
showArrow?: boolean;
|
|
26
12
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Dropdown 컴포넌트 / Dropdown component
|
|
29
|
-
*
|
|
30
|
-
* 트리거 요소를 클릭하면 표시되는 드롭다운 메뉴 컴포넌트입니다.
|
|
31
|
-
* 외부 클릭 시 자동으로 닫히며, 뷰포트 경계를 자동으로 감지하여 위치를 조정합니다.
|
|
32
|
-
*
|
|
33
|
-
* Dropdown menu component that appears when the trigger element is clicked.
|
|
34
|
-
* Automatically closes on outside click and adjusts position by detecting viewport boundaries.
|
|
35
|
-
*
|
|
36
|
-
* @component
|
|
37
|
-
* @example
|
|
38
|
-
* // 기본 사용 / Basic usage
|
|
39
|
-
* <Dropdown trigger={<Button>메뉴</Button>}>
|
|
40
|
-
* <Menu>
|
|
41
|
-
* <MenuItem>항목 1</MenuItem>
|
|
42
|
-
* <MenuItem>항목 2</MenuItem>
|
|
43
|
-
* </Menu>
|
|
44
|
-
* </Dropdown>
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* // 제어 모드, 화살표 없음 / Controlled mode, no arrow
|
|
48
|
-
* const [open, setOpen] = useState(false)
|
|
49
|
-
* <Dropdown
|
|
50
|
-
* open={open}
|
|
51
|
-
* onOpenChange={setOpen}
|
|
52
|
-
* trigger={<Button>제어 모드</Button>}
|
|
53
|
-
* placement="top"
|
|
54
|
-
* showArrow={false}
|
|
55
|
-
* >
|
|
56
|
-
* <div className="p-4">내용</div>
|
|
57
|
-
* </Dropdown>
|
|
58
|
-
*
|
|
59
|
-
* @param {DropdownProps} props - Dropdown 컴포넌트의 props / Dropdown component props
|
|
60
|
-
* @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref
|
|
61
|
-
* @returns {JSX.Element} Dropdown 컴포넌트 / Dropdown component
|
|
62
|
-
*/
|
|
63
13
|
declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement>>;
|
|
64
14
|
export interface DropdownItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
65
15
|
icon?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../src/components/Dropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../src/components/Dropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC/C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAYD,QAAA,MAAM,QAAQ,sFAgGb,CAAA;AAID,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACtF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAA;CACjD;AAED,QAAA,MAAM,YAAY,6FAwCjB,CAAA;AAGD,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEvF,QAAA,MAAM,iBAAiB,+FAQtB,CAAA;AAGD,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAEnF,QAAA,MAAM,aAAa,2FAUlB,CAAA;AAGD,QAAA,MAAM,YAAY,6GAUjB,CAAA;AAGD,QAAA,MAAM,aAAa,6GAUlB,CAAA;AAGD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAmB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG5E,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,IAAI,EAAE,WAAW,CAAA;IACjB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,OAAO,YAAY,CAAA;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,OAAO,WAAW,CAAA;IACjC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;IACrG,gEAAgE;IAChE,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../src/components/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAmB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG5E,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,IAAI,EAAE,WAAW,CAAA;IACjB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,OAAO,YAAY,CAAA;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,OAAO,WAAW,CAAA;IACjC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;IACrG,gEAAgE;IAChE,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,aAAa,mFAwLjB,CAAA;AAuBF,eAAO,MAAM,IAAI,EAAmB,OAAO,aAAa,CAAA;AAGxD,eAAO,MAAM,WAAW;aAA0E,MAAM,OAAO,YAAY;yCAE1H,CAAA;AAGD,eAAO,MAAM,UAAU;YAAyE,MAAM,OAAO,WAAW;yCAEvH,CAAA;AAGD,eAAO,MAAM,WAAW,2GAIvB,CAAA;AAGD,eAAO,MAAM,WAAW,2GAIvB,CAAA;AAGD,eAAO,MAAM,SAAS,2GAIrB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAA;IACf,kDAAkD;IAClD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,yBAAyB;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAA;IAChD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAA;IACf,kDAAkD;IAClD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,yBAAyB;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAA;IAChD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA4CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,KAAK,mFAwJhB,CAAA"}
|
|
@@ -23,6 +23,8 @@ export interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
23
23
|
disabled?: boolean;
|
|
24
24
|
/** Popover 콘텐츠 영역 추가 클래스 / Additional class for popover content area */
|
|
25
25
|
contentClassName?: string;
|
|
26
|
+
/** 트리거를 full-width로 렌더링 (DatePicker 등) / Render trigger as full-width */
|
|
27
|
+
fullWidth?: boolean;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* Popover 컴포넌트 / Popover component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC9C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IAC9C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,QAAA,MAAM,OAAO,qFAqJZ,CAAA;AAID,eAAO,MAAM,cAAc,6GAU1B,CAAA;AAGD,eAAO,MAAM,cAAc,6GAU1B,CAAA;AAGD,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
export declare const progressBarVariants: (props?: ({
|
|
3
|
-
variant?: "
|
|
3
|
+
variant?: "error" | "default" | "glass" | "success" | "warning" | "info" | null | undefined;
|
|
4
4
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5
5
|
export declare const progressTrackVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "error" | "default" | "glass" | "success" | "warning" | "info" | null | undefined;
|
|
7
7
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
8
8
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
9
|
/**
|
|
@@ -19,6 +19,7 @@ export interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
19
19
|
striped?: boolean;
|
|
20
20
|
label?: string;
|
|
21
21
|
description?: string;
|
|
22
|
+
autoVariant?: boolean;
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Progress 컴포넌트 / Progress component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../src/components/Progress.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,mBAAmB;;8EAiB/B,CAAA;AAED,eAAO,MAAM,qBAAqB;;;8EAuBjC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IACxE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../src/components/Progress.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,mBAAmB;;8EAiB/B,CAAA;AAED,eAAO,MAAM,qBAAqB;;;8EAuBjC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IACxE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,QAAQ,sFAmEb,CAAA;AAID,eAAO,MAAM,eAAe,uGAI3B,CAAA;AAGD,eAAO,MAAM,eAAe,uGAI3B,CAAA;AAGD,eAAO,MAAM,aAAa,uGAIzB,CAAA;AAGD,eAAO,MAAM,YAAY,uGAIxB,CAAA;AAID,eAAO,MAAM,eAAe;YAA8D,MAAM;wCAW/F,CAAA;AAGD,eAAO,MAAM,aAAa,6GAUzB,CAAA;AAGD,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import { type ContainerProps } from "./Container";
|
|
4
|
+
export declare const sectionVariants: (props?: ({
|
|
5
|
+
spacing?: "none" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
6
|
+
background?: "none" | "muted" | "primary" | "accent" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export interface SectionHeaderConfig {
|
|
9
|
+
title: string;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
action?: React.ReactNode;
|
|
12
|
+
/** section-line 데코레이터 표시 @default true */
|
|
13
|
+
decorator?: boolean;
|
|
14
|
+
/** 텍스트 정렬 @default 'center' */
|
|
15
|
+
align?: 'left' | 'center';
|
|
16
|
+
}
|
|
17
|
+
export interface SectionProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof sectionVariants> {
|
|
18
|
+
/** Container 사이즈 @default 'lg' */
|
|
19
|
+
container?: ContainerProps['size'];
|
|
20
|
+
/** Container 패딩 @default 'none' */
|
|
21
|
+
containerPadding?: ContainerProps['padding'];
|
|
22
|
+
/** 섹션 헤더 설정 */
|
|
23
|
+
header?: SectionHeaderConfig;
|
|
24
|
+
/** 풀위드 모드 (Container 없이 직접) */
|
|
25
|
+
fullWidth?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Section 컴포넌트
|
|
29
|
+
*
|
|
30
|
+
* 랜딩 페이지 섹션의 보일러플레이트를 줄이는 시맨틱 래퍼.
|
|
31
|
+
* 내부적으로 Container를 사용하며, header prop으로 제목/부제/데코레이터를 자동 생성합니다.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* <Section header={{ title: "제목", subtitle: "부제" }}>
|
|
35
|
+
* {children}
|
|
36
|
+
* </Section>
|
|
37
|
+
*
|
|
38
|
+
* <Section spacing="xl" background="muted" fullWidth>
|
|
39
|
+
* {fullWidthContent}
|
|
40
|
+
* </Section>
|
|
41
|
+
*/
|
|
42
|
+
declare const Section: React.ForwardRefExoticComponent<SectionProps & React.RefAttributes<HTMLElement>>;
|
|
43
|
+
export { Section };
|
|
44
|
+
//# sourceMappingURL=Section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../src/components/Section.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5D,eAAO,MAAM,eAAe;;;8EAiB1B,CAAA;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;CAC1B;AAED,MAAM,WAAW,YACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EACvC,YAAY,CAAC,OAAO,eAAe,CAAC;IACtC,kCAAkC;IAClC,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAClC,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IAC5C,eAAe;IACf,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAqCD;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,OAAO,kFAqCZ,CAAA;AAGD,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedGradient.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/AnimatedGradient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AnimatedGradient.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/AnimatedGradient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACjF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,gBAAgB,8FAuJrB,CAAC;AAIF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/Carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/Carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC3F,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAClD,iBAAiB,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,eAAe,GAAG,YAAY,CAAC;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,QAAQ,sFA6bb,CAAC;AAqCF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface DotNavItem {
|
|
3
|
+
/** 섹션 ID (scroll target) */
|
|
4
|
+
id: string;
|
|
5
|
+
/** 라벨 (호버 시 표시) */
|
|
6
|
+
label?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface DotNavProps extends React.HTMLAttributes<HTMLElement> {
|
|
9
|
+
/** 섹션 목록 */
|
|
10
|
+
items: DotNavItem[];
|
|
11
|
+
/** 위치 @default 'right' */
|
|
12
|
+
position?: "left" | "right";
|
|
13
|
+
/** 활성 색상 @default 'bg-primary' */
|
|
14
|
+
activeColor?: string;
|
|
15
|
+
/** 비활성 색상 @default 'bg-muted-foreground/30' */
|
|
16
|
+
inactiveColor?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* DotNav - 섹션 도트 네비게이터
|
|
20
|
+
*
|
|
21
|
+
* 포트폴리오/immersive 테마용 고정 위치 네비게이션.
|
|
22
|
+
* 스크롤 위치에 따라 활성 섹션 자동 추적.
|
|
23
|
+
*/
|
|
24
|
+
declare const DotNav: React.ForwardRefExoticComponent<DotNavProps & React.RefAttributes<HTMLElement>>;
|
|
25
|
+
export { DotNav };
|
|
26
|
+
//# sourceMappingURL=DotNav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotNav.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/DotNav.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACpE,YAAY;IACZ,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,QAAA,MAAM,MAAM,iFA6FX,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface HorizontalScrollProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onProgress'> {
|
|
3
|
+
/** 가로 스크롤 컨텐츠 */
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/** 스크롤 높이 배율 (패널 수 × 이 값 = 총 스크롤 높이) @default 1 */
|
|
6
|
+
heightMultiplier?: number;
|
|
7
|
+
/** 스냅 여부 @default false */
|
|
8
|
+
snap?: boolean;
|
|
9
|
+
/** 진행률 콜백 */
|
|
10
|
+
onProgress?: (progress: number) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* HorizontalScroll - 세로 스크롤을 가로 스크롤로 변환
|
|
14
|
+
*
|
|
15
|
+
* sticky positioning + translateX로 구현.
|
|
16
|
+
* 세로 스크롤 입력을 가로 이동으로 매핑합니다.
|
|
17
|
+
*/
|
|
18
|
+
declare const HorizontalScroll: React.ForwardRefExoticComponent<HorizontalScrollProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export { HorizontalScroll };
|
|
20
|
+
//# sourceMappingURL=HorizontalScroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HorizontalScroll.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/HorizontalScroll.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC;IAChE,iBAAiB;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa;IACb,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,8FAwFrB,CAAC;AAgBF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ImageRevealProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** 이미지 src */
|
|
4
|
+
src: string;
|
|
5
|
+
/** 이미지 alt */
|
|
6
|
+
alt: string;
|
|
7
|
+
/** 공개 방향 @default 'left' */
|
|
8
|
+
direction?: "left" | "right" | "up" | "down";
|
|
9
|
+
/** 공개 시작 임계값 (0-1) @default 0.3 */
|
|
10
|
+
threshold?: number;
|
|
11
|
+
/** 이미지 높이 @default '400px' */
|
|
12
|
+
height?: string;
|
|
13
|
+
/** 오버레이 색상 */
|
|
14
|
+
overlayColor?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* ImageReveal - 스크롤 기반 이미지 공개 컴포넌트
|
|
18
|
+
*
|
|
19
|
+
* TextReveal에서 영감 받은 이미지 공개 효과.
|
|
20
|
+
* clip-path를 사용하여 스크롤에 따라 이미지가 점진적으로 드러남.
|
|
21
|
+
*/
|
|
22
|
+
declare const ImageReveal: React.ForwardRefExoticComponent<ImageRevealProps & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
export { ImageReveal };
|
|
24
|
+
//# sourceMappingURL=ImageReveal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageReveal.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/ImageReveal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;IAC7C,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,QAAA,MAAM,WAAW,yFA0FhB,CAAC;AA+BF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -8,6 +8,7 @@ import React from "react";
|
|
|
8
8
|
* @property {boolean} [scale=false] - 스케일 효과 추가 / Add scale effect
|
|
9
9
|
* @property {boolean} [opacity=false] - 투명도 효과 추가 / Add opacity effect
|
|
10
10
|
* @property {boolean} [rotate=false] - 회전 효과 추가 / Add rotation effect
|
|
11
|
+
* @property {boolean} [disableOnMobile=false] - 모바일(768px 미만)에서 자동 비활성화
|
|
11
12
|
*/
|
|
12
13
|
export interface ParallaxProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
13
14
|
speed?: number;
|
|
@@ -18,6 +19,7 @@ export interface ParallaxProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
18
19
|
opacity?: boolean;
|
|
19
20
|
rotate?: boolean;
|
|
20
21
|
rotateDirection?: "cw" | "ccw";
|
|
22
|
+
disableOnMobile?: boolean;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* Parallax 컴포넌트 / Parallax component
|
|
@@ -25,20 +27,21 @@ export interface ParallaxProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
25
27
|
* 스크롤에 반응하여 패럴렉스 효과를 제공하는 컴포넌트입니다.
|
|
26
28
|
* 다양한 방향과 속도, 추가 효과(스케일, 투명도, 회전)를 지원합니다.
|
|
27
29
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
+
* 성능 최적화:
|
|
31
|
+
* - 모든 인스턴스가 하나의 scroll/resize 리스너 공유
|
|
32
|
+
* - IntersectionObserver로 뷰포트 밖 요소 업데이트 건너뛰기
|
|
33
|
+
* - ref 기반 직접 DOM 조작 (React 리렌더 없음)
|
|
30
34
|
*
|
|
31
35
|
* @component
|
|
32
36
|
* @example
|
|
33
|
-
* // 기본 사용 / Basic usage
|
|
34
37
|
* <Parallax speed={0.3}>
|
|
35
38
|
* <img src="/background.jpg" alt="background" />
|
|
36
39
|
* </Parallax>
|
|
37
40
|
*
|
|
38
41
|
* @example
|
|
39
|
-
* //
|
|
40
|
-
* <Parallax speed={0.5}
|
|
41
|
-
* <div className="
|
|
42
|
+
* // 모바일에서 비활성화
|
|
43
|
+
* <Parallax speed={0.5} disableOnMobile>
|
|
44
|
+
* <div className="decorative-blob" />
|
|
42
45
|
* </Parallax>
|
|
43
46
|
*/
|
|
44
47
|
declare const Parallax: React.ForwardRefExoticComponent<ParallaxProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parallax.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/Parallax.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"Parallax.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/Parallax.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAsCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,QAAQ,sFA0Ib,CAAC;AAiBF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextReveal.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/TextReveal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TextReveal.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/TextReveal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,UAAU,wFAoIf,CAAC;AAiBF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -19,6 +19,12 @@ export { VideoBackground } from "./VideoBackground";
|
|
|
19
19
|
export type { VideoBackgroundProps } from "./VideoBackground";
|
|
20
20
|
export { Carousel } from "./Carousel";
|
|
21
21
|
export type { CarouselProps } from "./Carousel";
|
|
22
|
+
export { ImageReveal } from "./ImageReveal";
|
|
23
|
+
export type { ImageRevealProps } from "./ImageReveal";
|
|
24
|
+
export { DotNav } from "./DotNav";
|
|
25
|
+
export type { DotNavProps, DotNavItem } from "./DotNav";
|
|
26
|
+
export { HorizontalScroll } from "./HorizontalScroll";
|
|
27
|
+
export type { HorizontalScrollProps } from "./HorizontalScroll";
|
|
22
28
|
export * from "./emotion";
|
|
23
29
|
export * from "./blog-editor";
|
|
24
30
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAQrE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/advanced/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAQrE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAOhE,cAAc,WAAW,CAAC;AAO1B,cAAc,eAAe,CAAC"}
|
package/dist/data.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{a as Table,c as TableBody,h as TableCaption,g as TableCell,d as TableFooter,f as TableHead,b as TableHeader,e as TableRow}from'./chunk-
|
|
2
|
+
export{a as Table,c as TableBody,h as TableCaption,g as TableCell,d as TableFooter,f as TableHead,b as TableHeader,e as TableRow}from'./chunk-NMJLOK6M.mjs';import {a}from'./chunk-QEMPERUK.mjs';import'./chunk-EAZEI74V.mjs';import {useState,useCallback,useMemo}from'react';import {highlight}from'sugar-high';import {jsxs,jsx}from'react/jsx-runtime';function R({code:t,language:r,filename:a$1,showLineNumbers:d=false,showCopyButton:f=true,onCopy:l,copySuccessMessage:j="Copied!",className:x,maxHeight:h,theme:p="dark"}){let[v,u]=useState(false),N=useCallback(async()=>{try{await navigator.clipboard.writeText(t),u(!0),l==null||l(),setTimeout(()=>u(!1),2e3);}catch(c){console.error("Failed to copy:",c);}},[t,l]),i=t.split(`
|
|
3
3
|
`),k=useMemo(()=>i.map(c=>highlight(c)||" "),[i]),C=useMemo(()=>highlight(t),[t]),s=p==="dark";return jsxs("div",{className:a("group relative rounded-lg overflow-hidden",s?"bg-[#0d1117] border border-[#30363d]":"bg-muted/50 border border-border",x),children:[jsxs("div",{className:a("flex items-center justify-between px-4 py-2.5 border-b",s?"bg-[#161b22] border-[#30363d]":"bg-muted/30 border-border"),children:[jsxs("div",{className:"flex items-center gap-3",children:[jsxs("div",{className:"flex items-center gap-1.5",children:[jsx("span",{className:"w-3 h-3 rounded-full bg-[#ff5f56]"}),jsx("span",{className:"w-3 h-3 rounded-full bg-[#ffbd2e]"}),jsx("span",{className:"w-3 h-3 rounded-full bg-[#27c93f]"})]}),a$1&&jsx("span",{className:a("text-sm font-medium",s?"text-[#c9d1d9]":"text-foreground"),children:a$1}),r&&!a$1&&jsx("span",{className:a("text-xs uppercase tracking-wider",s?"text-[#8b949e]":"text-muted-foreground"),children:r}),r&&a$1&&jsx("span",{className:a("text-xs",s?"text-[#8b949e]":"text-muted-foreground"),children:r})]}),f&&jsx(P,{copied:v,onClick:N,theme:p})]}),jsx("div",{className:"overflow-auto",style:{maxHeight:h},children:jsx("pre",{className:a("p-4 text-sm leading-7 overflow-x-auto",s?"text-[#c9d1d9]":"text-foreground"),children:d?jsx("code",{className:"block font-mono",children:i.map((c,m)=>jsxs("div",{className:"flex",children:[jsx("span",{className:a("select-none w-8 text-right mr-4 flex-shrink-0",s?"text-[#484f58]":"text-muted-foreground"),children:m+1}),jsx("span",{dangerouslySetInnerHTML:{__html:k[m]}})]},m))}):jsx("code",{className:"font-mono whitespace-pre",dangerouslySetInnerHTML:{__html:C}})})})]})}function P({copied:t,onClick:r,theme:a$1="dark"}){let d=a$1==="dark";return jsx("button",{type:"button",onClick:r,className:a("inline-flex items-center justify-center w-8 h-8 rounded-md transition-all duration-200",t?d?"bg-green-500/20 text-green-400":"bg-green-100 text-green-700":d?"bg-transparent hover:bg-[#30363d] text-[#8b949e] hover:text-[#c9d1d9]":"bg-transparent hover:bg-secondary/80 text-muted-foreground hover:text-foreground"),"aria-label":t?"Copied":"Copy code",title:t?"Copied!":"Copy code",children:t?jsx(F,{className:"w-4 h-4"}):jsx(D,{className:"w-4 h-4"})})}function D({className:t}){return jsxs("svg",{className:t,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2,children:[jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function F({className:t}){return jsx("svg",{className:t,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2,children:jsx("polyline",{points:"20 6 9 17 4 12"})})}function W({children:t,className:r}){return jsx("code",{className:a("px-1.5 py-0.5 rounded-md bg-muted text-sm font-mono text-foreground",r),children:t})}export{R as CodeBlock,W as InlineCode};//# sourceMappingURL=data.mjs.map
|
|
4
4
|
//# sourceMappingURL=data.mjs.map
|
package/dist/data.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CodeBlock.tsx"],"names":["CodeBlock","code","language","filename","showLineNumbers","showCopyButton","onCopy","_copySuccessMessage","className","maxHeight","theme","copied","setCopied","useState","handleCopy","useCallback","err","lines","highlightedLines","useMemo","line","highlight","highlightedCode","isDark","jsxs","merge","jsx","CopyButton","i","onClick","CheckIcon","CopyIcon","InlineCode","children"],"mappings":"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","file":"data.mjs","sourcesContent":["\"use client\"\n\nimport React, { useState, useCallback, useMemo } from \"react\"\nimport { highlight } from \"sugar-high\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * CodeBlock 컴포넌트 Props\n */\nexport interface CodeBlockProps {\n /** 표시할 코드 */\n code: string\n /** 프로그래밍 언어 (표시용) */\n language?: string\n /** 파일명 (헤더에 표시) */\n filename?: string\n /** 줄 번호 표시 여부 */\n showLineNumbers?: boolean\n /** 복사 버튼 표시 여부 */\n showCopyButton?: boolean\n /** 복사 성공 시 콜백 */\n onCopy?: () => void\n /** 복사 성공 메시지 */\n copySuccessMessage?: string\n /** 추가 className */\n className?: string\n /** 최대 높이 (스크롤) */\n maxHeight?: string | number\n /** 테마 (기본: dark) */\n theme?: \"dark\" | \"light\"\n}\n\n/**\n * CodeBlock 컴포넌트\n *\n * 코드를 표시하고 복사 기능을 제공하는 컴포넌트입니다.\n * Sugar-high를 사용한 신택스 하이라이팅을 지원합니다.\n *\n * @remarks\n * 신택스 하이라이팅을 위해 CSS 파일을 import하세요:\n * ```tsx\n * import '@hua-labs/ui/styles/codeblock.css';\n * ```\n *\n * @example\n * ```tsx\n * // 기본 사용\n * <CodeBlock code=\"console.log('Hello')\" language=\"javascript\" />\n *\n * // 파일명 표시\n * <CodeBlock\n * code={configCode}\n * language=\"typescript\"\n * filename=\"hua.config.ts\"\n * />\n *\n * // Toast와 함께 사용\n * const { addToast } = useToast()\n * <CodeBlock\n * code={code}\n * onCopy={() => addToast({ type: 'success', message: 'Copied!' })}\n * />\n * ```\n */\nexport function CodeBlock({\n code,\n language,\n filename,\n showLineNumbers = false,\n showCopyButton = true,\n onCopy,\n copySuccessMessage: _copySuccessMessage = \"Copied!\",\n className,\n maxHeight,\n theme = \"dark\",\n}: CodeBlockProps) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(code)\n setCopied(true)\n onCopy?.()\n\n // 2초 후 복사 상태 리셋\n setTimeout(() => setCopied(false), 2000)\n } catch (err) {\n console.error(\"Failed to copy:\", err)\n }\n }, [code, onCopy])\n\n const lines = code.split(\"\\n\")\n\n // 신택스 하이라이팅\n const highlightedLines = useMemo(() => {\n return lines.map(line => highlight(line) || \" \")\n }, [lines])\n\n const highlightedCode = useMemo(() => highlight(code), [code])\n\n const isDark = theme === \"dark\"\n\n return (\n <div\n className={merge(\n \"group relative rounded-lg overflow-hidden\",\n isDark\n ? \"bg-[#0d1117] border border-[#30363d]\"\n : \"bg-muted/50 border border-border\",\n className\n )}\n >\n {/* 헤더 - 항상 표시 */}\n <div className={merge(\n \"flex items-center justify-between px-4 py-2.5 border-b\",\n isDark\n ? \"bg-[#161b22] border-[#30363d]\"\n : \"bg-muted/30 border-border\"\n )}>\n <div className=\"flex items-center gap-3\">\n {/* Traffic lights (macOS 스타일) */}\n <div className=\"flex items-center gap-1.5\">\n <span className=\"w-3 h-3 rounded-full bg-[#ff5f56]\" />\n <span className=\"w-3 h-3 rounded-full bg-[#ffbd2e]\" />\n <span className=\"w-3 h-3 rounded-full bg-[#27c93f]\" />\n </div>\n {filename && (\n <span className={merge(\n \"text-sm font-medium\",\n isDark ? \"text-[#c9d1d9]\" : \"text-foreground\"\n )}>\n {filename}\n </span>\n )}\n {language && !filename && (\n <span className={merge(\n \"text-xs uppercase tracking-wider\",\n isDark ? \"text-[#8b949e]\" : \"text-muted-foreground\"\n )}>\n {language}\n </span>\n )}\n {language && filename && (\n <span className={merge(\n \"text-xs\",\n isDark ? \"text-[#8b949e]\" : \"text-muted-foreground\"\n )}>\n {language}\n </span>\n )}\n </div>\n {showCopyButton && (\n <CopyButton copied={copied} onClick={handleCopy} theme={theme} />\n )}\n </div>\n\n {/* 코드 영역 */}\n <div\n className=\"overflow-auto\"\n style={{ maxHeight: maxHeight }}\n >\n <pre className={merge(\n \"p-4 text-sm leading-7 overflow-x-auto\",\n isDark ? \"text-[#c9d1d9]\" : \"text-foreground\"\n )}>\n {showLineNumbers ? (\n <code className=\"block font-mono\">\n {lines.map((line, i) => (\n <div key={i} className=\"flex\">\n <span className={merge(\n \"select-none w-8 text-right mr-4 flex-shrink-0\",\n isDark ? \"text-[#484f58]\" : \"text-muted-foreground\"\n )}>\n {i + 1}\n </span>\n <span\n dangerouslySetInnerHTML={{ __html: highlightedLines[i] }}\n />\n </div>\n ))}\n </code>\n ) : (\n <code\n className=\"font-mono whitespace-pre\"\n dangerouslySetInnerHTML={{ __html: highlightedCode }}\n />\n )}\n </pre>\n </div>\n\n </div>\n )\n}\n\n/**\n * 복사 버튼 컴포넌트 (아이콘만)\n */\nfunction CopyButton({\n copied,\n onClick,\n theme = \"dark\"\n}: {\n copied: boolean\n onClick: () => void\n theme?: \"dark\" | \"light\"\n}) {\n const isDark = theme === \"dark\"\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={merge(\n \"inline-flex items-center justify-center w-8 h-8 rounded-md transition-all duration-200\",\n copied\n ? isDark\n ? \"bg-green-500/20 text-green-400\"\n : \"bg-green-100 text-green-700\"\n : isDark\n ? \"bg-transparent hover:bg-[#30363d] text-[#8b949e] hover:text-[#c9d1d9]\"\n : \"bg-transparent hover:bg-secondary/80 text-muted-foreground hover:text-foreground\"\n )}\n aria-label={copied ? \"Copied\" : \"Copy code\"}\n title={copied ? \"Copied!\" : \"Copy code\"}\n >\n {copied ? (\n <CheckIcon className=\"w-4 h-4\" />\n ) : (\n <CopyIcon className=\"w-4 h-4\" />\n )}\n </button>\n )\n}\n\n/**\n * 복사 아이콘\n */\nfunction CopyIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n )\n}\n\n/**\n * 체크 아이콘\n */\nfunction CheckIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n )\n}\n\n/**\n * 인라인 코드 컴포넌트\n *\n * 텍스트 내 인라인 코드 표시용\n *\n * @example\n * ```tsx\n * <p>Use the <InlineCode>npm install</InlineCode> command.</p>\n * ```\n */\nexport function InlineCode({\n children,\n className,\n}: {\n children: React.ReactNode\n className?: string\n}) {\n return (\n <code\n className={merge(\n \"px-1.5 py-0.5 rounded-md bg-muted text-sm font-mono text-foreground\",\n className\n )}\n >\n {children}\n </code>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/CodeBlock.tsx"],"names":["CodeBlock","code","language","filename","showLineNumbers","showCopyButton","onCopy","_copySuccessMessage","className","maxHeight","theme","copied","setCopied","useState","handleCopy","useCallback","err","lines","highlightedLines","useMemo","line","highlight","highlightedCode","isDark","jsxs","merge","jsx","CopyButton","i","onClick","CheckIcon","CopyIcon","InlineCode","children"],"mappings":"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","file":"data.mjs","sourcesContent":["\"use client\"\n\nimport React, { useState, useCallback, useMemo } from \"react\"\nimport { highlight } from \"sugar-high\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * CodeBlock 컴포넌트 Props\n */\nexport interface CodeBlockProps {\n /** 표시할 코드 */\n code: string\n /** 프로그래밍 언어 (표시용) */\n language?: string\n /** 파일명 (헤더에 표시) */\n filename?: string\n /** 줄 번호 표시 여부 */\n showLineNumbers?: boolean\n /** 복사 버튼 표시 여부 */\n showCopyButton?: boolean\n /** 복사 성공 시 콜백 */\n onCopy?: () => void\n /** 복사 성공 메시지 */\n copySuccessMessage?: string\n /** 추가 className */\n className?: string\n /** 최대 높이 (스크롤) */\n maxHeight?: string | number\n /** 테마 (기본: dark) */\n theme?: \"dark\" | \"light\"\n}\n\n/**\n * CodeBlock 컴포넌트\n *\n * 코드를 표시하고 복사 기능을 제공하는 컴포넌트입니다.\n * Sugar-high를 사용한 신택스 하이라이팅을 지원합니다.\n *\n * @remarks\n * 신택스 하이라이팅을 위해 CSS 파일을 import하세요:\n * ```tsx\n * import '@hua-labs/ui/styles/codeblock.css';\n * ```\n *\n * @example\n * ```tsx\n * // 기본 사용\n * <CodeBlock code=\"console.log('Hello')\" language=\"javascript\" />\n *\n * // 파일명 표시\n * <CodeBlock\n * code={configCode}\n * language=\"typescript\"\n * filename=\"hua.config.ts\"\n * />\n *\n * // Toast와 함께 사용\n * const { addToast } = useToast()\n * <CodeBlock\n * code={code}\n * onCopy={() => addToast({ type: 'success', message: 'Copied!' })}\n * />\n * ```\n */\nexport function CodeBlock({\n code,\n language,\n filename,\n showLineNumbers = false,\n showCopyButton = true,\n onCopy,\n copySuccessMessage: _copySuccessMessage = \"Copied!\",\n className,\n maxHeight,\n theme = \"dark\",\n}: CodeBlockProps) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(code)\n setCopied(true)\n onCopy?.()\n\n // 2초 후 복사 상태 리셋\n setTimeout(() => setCopied(false), 2000)\n } catch (err) {\n console.error(\"Failed to copy:\", err)\n }\n }, [code, onCopy])\n\n const lines = code.split(\"\\n\")\n\n // 신택스 하이라이팅\n const highlightedLines = useMemo(() => {\n return lines.map(line => highlight(line) || \" \")\n }, [lines])\n\n const highlightedCode = useMemo(() => highlight(code), [code])\n\n const isDark = theme === \"dark\"\n\n return (\n <div\n className={merge(\n \"group relative rounded-lg overflow-hidden\",\n isDark\n ? \"bg-[#0d1117] border border-[#30363d]\"\n : \"bg-muted/50 border border-border\",\n className\n )}\n >\n {/* 헤더 - 항상 표시 */}\n <div className={merge(\n \"flex items-center justify-between px-4 py-2.5 border-b\",\n isDark\n ? \"bg-[#161b22] border-[#30363d]\"\n : \"bg-muted/30 border-border\"\n )}>\n <div className=\"flex items-center gap-3\">\n {/* Traffic lights (macOS 스타일) */}\n <div className=\"flex items-center gap-1.5\">\n <span className=\"w-3 h-3 rounded-full bg-[#ff5f56]\" />\n <span className=\"w-3 h-3 rounded-full bg-[#ffbd2e]\" />\n <span className=\"w-3 h-3 rounded-full bg-[#27c93f]\" />\n </div>\n {filename && (\n <span className={merge(\n \"text-sm font-medium\",\n isDark ? \"text-[#c9d1d9]\" : \"text-foreground\"\n )}>\n {filename}\n </span>\n )}\n {language && !filename && (\n <span className={merge(\n \"text-xs uppercase tracking-wider\",\n isDark ? \"text-[#8b949e]\" : \"text-muted-foreground\"\n )}>\n {language}\n </span>\n )}\n {language && filename && (\n <span className={merge(\n \"text-xs\",\n isDark ? \"text-[#8b949e]\" : \"text-muted-foreground\"\n )}>\n {language}\n </span>\n )}\n </div>\n {showCopyButton && (\n <CopyButton copied={copied} onClick={handleCopy} theme={theme} />\n )}\n </div>\n\n {/* 코드 영역 */}\n <div\n className=\"overflow-auto\"\n style={{ maxHeight: maxHeight }}\n >\n <pre className={merge(\n \"p-4 text-sm leading-7 overflow-x-auto\",\n isDark ? \"text-[#c9d1d9]\" : \"text-foreground\"\n )}>\n {showLineNumbers ? (\n <code className=\"block font-mono\">\n {lines.map((line, i) => (\n <div key={i} className=\"flex\">\n <span className={merge(\n \"select-none w-8 text-right mr-4 flex-shrink-0\",\n isDark ? \"text-[#484f58]\" : \"text-muted-foreground\"\n )}>\n {i + 1}\n </span>\n <span\n dangerouslySetInnerHTML={{ __html: highlightedLines[i] }}\n />\n </div>\n ))}\n </code>\n ) : (\n <code\n className=\"font-mono whitespace-pre\"\n dangerouslySetInnerHTML={{ __html: highlightedCode }}\n />\n )}\n </pre>\n </div>\n\n </div>\n )\n}\n\n/**\n * 복사 버튼 컴포넌트 (아이콘만)\n */\nfunction CopyButton({\n copied,\n onClick,\n theme = \"dark\"\n}: {\n copied: boolean\n onClick: () => void\n theme?: \"dark\" | \"light\"\n}) {\n const isDark = theme === \"dark\"\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={merge(\n \"inline-flex items-center justify-center w-8 h-8 rounded-md transition-all duration-200\",\n copied\n ? isDark\n ? \"bg-green-500/20 text-green-400\"\n : \"bg-green-100 text-green-700\"\n : isDark\n ? \"bg-transparent hover:bg-[#30363d] text-[#8b949e] hover:text-[#c9d1d9]\"\n : \"bg-transparent hover:bg-secondary/80 text-muted-foreground hover:text-foreground\"\n )}\n aria-label={copied ? \"Copied\" : \"Copy code\"}\n title={copied ? \"Copied!\" : \"Copy code\"}\n >\n {copied ? (\n <CheckIcon className=\"w-4 h-4\" />\n ) : (\n <CopyIcon className=\"w-4 h-4\" />\n )}\n </button>\n )\n}\n\n/**\n * 복사 아이콘\n */\nfunction CopyIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n )\n}\n\n/**\n * 체크 아이콘\n */\nfunction CheckIcon({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={2}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n )\n}\n\n/**\n * 인라인 코드 컴포넌트\n *\n * 텍스트 내 인라인 코드 표시용\n *\n * @example\n * ```tsx\n * <p>Use the <InlineCode>npm install</InlineCode> command.</p>\n * ```\n */\nexport function InlineCode({\n children,\n className,\n}: {\n children: React.ReactNode\n className?: string\n}) {\n return (\n <code\n className={merge(\n \"px-1.5 py-0.5 rounded-md bg-muted text-sm font-mono text-foreground\",\n className\n )}\n >\n {children}\n </code>\n )\n}\n"]}
|
package/dist/feedback.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{c as ToastProvider,a as useToast,b as useToastSafe}from'./chunk-
|
|
2
|
+
export{c as ToastProvider,a as useToast,b as useToastSafe}from'./chunk-WYBSHTGY.mjs';export{a as Alert,d as AlertError,e as AlertInfo,b as AlertSuccess,c as AlertWarning}from'./chunk-V2DNYJR6.mjs';export{a as Tooltip,c as TooltipDark,b as TooltipLight}from'./chunk-5L5HIPKA.mjs';export{a as LoadingSpinner}from'./chunk-QRRP7TGF.mjs';import'./chunk-QEMPERUK.mjs';import'./chunk-EAZEI74V.mjs';//# sourceMappingURL=feedback.mjs.map
|
|
3
3
|
//# sourceMappingURL=feedback.mjs.map
|