@hua-labs/ui 1.1.0-alpha.6 → 2.0.0-alpha.10
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 +78 -67
- package/dist/ComponentLayout-btJq4TjA.d.mts +698 -0
- package/dist/Modal-LokAqhCz.d.mts +93 -0
- package/dist/Switch-BB6GZnqn.d.mts +175 -0
- package/dist/advanced/Logo.d.ts +60 -0
- package/dist/advanced/Logo.d.ts.map +1 -0
- package/dist/advanced/index.d.ts +3 -0
- package/dist/advanced/index.d.ts.map +1 -0
- package/dist/advanced-dashboard.d.mts +2279 -4
- package/dist/advanced-dashboard.js +42 -272
- package/dist/advanced-dashboard.js.map +1 -1
- package/dist/advanced-dashboard.mjs +2 -1
- package/dist/advanced.d.mts +282 -38
- package/dist/advanced.d.ts +7 -1
- package/dist/advanced.d.ts.map +1 -1
- package/dist/advanced.js +72 -272
- package/dist/advanced.js.map +1 -1
- package/dist/advanced.mjs +32 -1
- package/dist/advanced.mjs.map +1 -1
- package/dist/chunk-25X3JS5U.mjs +3 -0
- package/dist/chunk-25X3JS5U.mjs.map +1 -0
- package/dist/chunk-3E7HN3VL.mjs +3 -0
- package/dist/chunk-3E7HN3VL.mjs.map +1 -0
- package/dist/chunk-62HQZHPY.mjs +3 -0
- package/dist/chunk-62HQZHPY.mjs.map +1 -0
- package/dist/chunk-63CU4PEU.mjs +3 -0
- package/dist/chunk-63CU4PEU.mjs.map +1 -0
- package/dist/chunk-64T3XQP3.mjs +3 -0
- package/dist/chunk-64T3XQP3.mjs.map +1 -0
- package/dist/chunk-6IRMCQLW.mjs +3 -0
- package/dist/chunk-6IRMCQLW.mjs.map +1 -0
- package/dist/chunk-7G4VTLVB.mjs +3 -0
- package/dist/chunk-7G4VTLVB.mjs.map +1 -0
- package/dist/chunk-7VET46PU.mjs +11 -0
- package/dist/chunk-7VET46PU.mjs.map +1 -0
- package/dist/chunk-AAHZFMU6.mjs +3 -0
- package/dist/chunk-AAHZFMU6.mjs.map +1 -0
- package/dist/chunk-D3CBK5LG.mjs +3 -0
- package/dist/chunk-D3CBK5LG.mjs.map +1 -0
- package/dist/chunk-D5X7GVHB.mjs +3 -0
- package/dist/chunk-D5X7GVHB.mjs.map +1 -0
- package/dist/chunk-EQIWSOL7.mjs +3 -0
- package/dist/chunk-EQIWSOL7.mjs.map +1 -0
- package/dist/chunk-GOBSRBJ5.mjs +3 -0
- package/dist/chunk-GOBSRBJ5.mjs.map +1 -0
- package/dist/chunk-JBC2S6TU.mjs +3 -0
- package/dist/chunk-JBC2S6TU.mjs.map +1 -0
- package/dist/chunk-KXXIT5HL.mjs +3 -0
- package/dist/chunk-KXXIT5HL.mjs.map +1 -0
- package/dist/chunk-LIC2KPD5.mjs +3 -0
- package/dist/chunk-LIC2KPD5.mjs.map +1 -0
- package/dist/chunk-RIQUV3QZ.mjs +3 -0
- package/dist/chunk-RIQUV3QZ.mjs.map +1 -0
- package/dist/chunk-RJHCRHFD.mjs +3 -0
- package/dist/chunk-RJHCRHFD.mjs.map +1 -0
- package/dist/chunk-UUHAXGMO.mjs +1 -0
- package/dist/chunk-VWSBJUNI.mjs +3 -0
- package/dist/chunk-VWSBJUNI.mjs.map +1 -0
- package/dist/chunk-XSAVY7UB.mjs +4 -0
- package/dist/chunk-XSAVY7UB.mjs.map +1 -0
- package/dist/chunk-YXKMNLYP.mjs +35 -0
- package/dist/chunk-YXKMNLYP.mjs.map +1 -0
- package/dist/chunk-YYKPPDPT.mjs +13 -0
- package/dist/chunk-YYKPPDPT.mjs.map +1 -0
- package/dist/common-YLvZxA_K.d.mts +26 -0
- package/dist/components/Avatar.d.ts +2 -0
- package/dist/components/Avatar.d.ts.map +1 -1
- package/dist/components/Badge.d.ts.map +1 -1
- package/dist/components/BottomSheet.d.ts +20 -2
- package/dist/components/BottomSheet.d.ts.map +1 -1
- package/dist/components/Card.d.ts +7 -0
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/Checkbox.d.ts.map +1 -1
- package/dist/components/CodeBlock.d.ts +10 -2
- package/dist/components/CodeBlock.d.ts.map +1 -1
- package/dist/components/Command.d.ts.map +1 -1
- package/dist/components/Container.d.ts.map +1 -1
- package/dist/components/DatePicker.d.ts +2 -0
- package/dist/components/DatePicker.d.ts.map +1 -1
- package/dist/components/Divider.d.ts.map +1 -1
- package/dist/components/Drawer.d.ts +18 -2
- package/dist/components/Drawer.d.ts.map +1 -1
- package/dist/components/Dropdown.d.ts.map +1 -1
- package/dist/components/EmptyState.d.ts +62 -0
- package/dist/components/EmptyState.d.ts.map +1 -0
- package/dist/components/FeatureCard.d.ts +9 -3
- package/dist/components/FeatureCard.d.ts.map +1 -1
- package/dist/components/FormControl.d.ts +115 -0
- package/dist/components/FormControl.d.ts.map +1 -0
- package/dist/components/HeroSection.d.ts.map +1 -1
- package/dist/components/Icon/Icon.d.ts +7 -99
- package/dist/components/Icon/Icon.d.ts.map +1 -1
- package/dist/components/Icon/IconProvider.d.ts +17 -71
- package/dist/components/Icon/IconProvider.d.ts.map +1 -1
- package/dist/components/Icon/icon-store.d.ts +3 -1
- package/dist/components/Icon/icon-store.d.ts.map +1 -1
- package/dist/components/IconsaxGallery/index.d.ts +45 -0
- package/dist/components/IconsaxGallery/index.d.ts.map +1 -0
- package/dist/components/Input.d.ts +6 -31
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/LoadingSpinner.d.ts.map +1 -1
- package/dist/components/Modal.d.ts +14 -0
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/NumberInput.d.ts +53 -0
- package/dist/components/NumberInput.d.ts.map +1 -0
- package/dist/components/Panel.d.ts +1 -1
- package/dist/components/Panel.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/Radio.d.ts.map +1 -1
- package/dist/components/Select.d.ts.map +1 -1
- package/dist/components/Skeleton.d.ts.map +1 -1
- package/dist/components/Switch.d.ts.map +1 -1
- package/dist/components/Tabs.d.ts.map +1 -1
- package/dist/components/Timeline.d.ts +97 -0
- package/dist/components/Timeline.d.ts.map +1 -0
- package/dist/components/Toast.d.ts.map +1 -1
- package/dist/components/dashboard/DashboardSidebar.d.ts +14 -0
- package/dist/components/dashboard/DashboardSidebar.d.ts.map +1 -1
- package/dist/components/dashboard/MiniBarChart.d.ts.map +1 -1
- package/dist/components/dashboard/ProgressCard.d.ts.map +1 -1
- package/dist/components/dashboard/QuickActionCard.d.ts +2 -0
- package/dist/components/dashboard/QuickActionCard.d.ts.map +1 -1
- package/dist/components/dashboard/SummaryCard.d.ts.map +1 -1
- package/dist/components/dashboard/YearlyHeatmap.d.ts +30 -0
- package/dist/components/dashboard/YearlyHeatmap.d.ts.map +1 -0
- package/dist/components/dashboard/index.d.ts +4 -0
- package/dist/components/dashboard/index.d.ts.map +1 -1
- package/dist/components/dashboard/kanban/KanbanAddCard.d.ts +10 -0
- package/dist/components/dashboard/kanban/KanbanAddCard.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/KanbanAddColumn.d.ts +10 -0
- package/dist/components/dashboard/kanban/KanbanAddColumn.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/KanbanBoard.d.ts +10 -0
- package/dist/components/dashboard/kanban/KanbanBoard.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/KanbanCard.d.ts +10 -0
- package/dist/components/dashboard/kanban/KanbanCard.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/KanbanColumn.d.ts +10 -0
- package/dist/components/dashboard/kanban/KanbanColumn.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/KanbanColumnHeader.d.ts +10 -0
- package/dist/components/dashboard/kanban/KanbanColumnHeader.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/KanbanContext.d.ts +71 -0
- package/dist/components/dashboard/kanban/KanbanContext.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/KanbanDropIndicator.d.ts +9 -0
- package/dist/components/dashboard/kanban/KanbanDropIndicator.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/index.d.ts +25 -0
- package/dist/components/dashboard/kanban/index.d.ts.map +1 -0
- package/dist/components/dashboard/kanban/types.d.ts +240 -0
- package/dist/components/dashboard/kanban/types.d.ts.map +1 -0
- package/dist/components/icons/Forbidden2.d.ts +4 -0
- package/dist/components/icons/Forbidden2.d.ts.map +1 -0
- package/dist/components/icons/Shuffle.d.ts +4 -0
- package/dist/components/icons/Shuffle.d.ts.map +1 -0
- package/dist/components/icons/Truck.d.ts +4 -0
- package/dist/components/icons/Truck.d.ts.map +1 -0
- package/dist/components/icons/index.d.ts +340 -0
- package/dist/components/icons/index.d.ts.map +1 -0
- package/dist/components/icons-bold/3Dcube.d.ts +4 -0
- package/dist/components/icons-bold/3Dcube.d.ts.map +1 -0
- package/dist/components/icons-bold/Add.d.ts +4 -0
- package/dist/components/icons-bold/Add.d.ts.map +1 -0
- package/dist/components/icons-bold/AddCircle.d.ts +4 -0
- package/dist/components/icons-bold/AddCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/AddSquare.d.ts +4 -0
- package/dist/components/icons-bold/AddSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Apple.d.ts +4 -0
- package/dist/components/icons-bold/Apple.d.ts.map +1 -0
- package/dist/components/icons-bold/Archive.d.ts +4 -0
- package/dist/components/icons-bold/Archive.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrangeCircle.d.ts +4 -0
- package/dist/components/icons-bold/ArrangeCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrangeCircle2.d.ts +4 -0
- package/dist/components/icons-bold/ArrangeCircle2.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrangeSquare.d.ts +4 -0
- package/dist/components/icons-bold/ArrangeSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrangeSquare2.d.ts +4 -0
- package/dist/components/icons-bold/ArrangeSquare2.d.ts.map +1 -0
- package/dist/components/icons-bold/Arrow2.d.ts +4 -0
- package/dist/components/icons-bold/Arrow2.d.ts.map +1 -0
- package/dist/components/icons-bold/Arrow3.d.ts +4 -0
- package/dist/components/icons-bold/Arrow3.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowBottom.d.ts +4 -0
- package/dist/components/icons-bold/ArrowBottom.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowCircleDown.d.ts +4 -0
- package/dist/components/icons-bold/ArrowCircleDown.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowCircleLeft.d.ts +4 -0
- package/dist/components/icons-bold/ArrowCircleLeft.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowCircleRight.d.ts +4 -0
- package/dist/components/icons-bold/ArrowCircleRight.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowDown.d.ts +4 -0
- package/dist/components/icons-bold/ArrowDown.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowDown1.d.ts +4 -0
- package/dist/components/icons-bold/ArrowDown1.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowDown2.d.ts +4 -0
- package/dist/components/icons-bold/ArrowDown2.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowLeft.d.ts +4 -0
- package/dist/components/icons-bold/ArrowLeft.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowLeft1.d.ts +4 -0
- package/dist/components/icons-bold/ArrowLeft1.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowLeft2.d.ts +4 -0
- package/dist/components/icons-bold/ArrowLeft2.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowLeft3.d.ts +4 -0
- package/dist/components/icons-bold/ArrowLeft3.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowRight.d.ts +4 -0
- package/dist/components/icons-bold/ArrowRight.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowRight1.d.ts +4 -0
- package/dist/components/icons-bold/ArrowRight1.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowRight2.d.ts +4 -0
- package/dist/components/icons-bold/ArrowRight2.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowRight3.d.ts +4 -0
- package/dist/components/icons-bold/ArrowRight3.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowSquareDown.d.ts +4 -0
- package/dist/components/icons-bold/ArrowSquareDown.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowSquareLeft.d.ts +4 -0
- package/dist/components/icons-bold/ArrowSquareLeft.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowSquareRight.d.ts +4 -0
- package/dist/components/icons-bold/ArrowSquareRight.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowSquareUp.d.ts +4 -0
- package/dist/components/icons-bold/ArrowSquareUp.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowSwapHorizontal.d.ts +4 -0
- package/dist/components/icons-bold/ArrowSwapHorizontal.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowUp.d.ts +4 -0
- package/dist/components/icons-bold/ArrowUp.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowUp1.d.ts +4 -0
- package/dist/components/icons-bold/ArrowUp1.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowUp2.d.ts +4 -0
- package/dist/components/icons-bold/ArrowUp2.d.ts.map +1 -0
- package/dist/components/icons-bold/ArrowUp3.d.ts +4 -0
- package/dist/components/icons-bold/ArrowUp3.d.ts.map +1 -0
- package/dist/components/icons-bold/AttachCircle.d.ts +4 -0
- package/dist/components/icons-bold/AttachCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/AttachSquare.d.ts +4 -0
- package/dist/components/icons-bold/AttachSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Autobrightness.d.ts +4 -0
- package/dist/components/icons-bold/Autobrightness.d.ts.map +1 -0
- package/dist/components/icons-bold/BackSquare.d.ts +4 -0
- package/dist/components/icons-bold/BackSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Backward.d.ts +4 -0
- package/dist/components/icons-bold/Backward.d.ts.map +1 -0
- package/dist/components/icons-bold/Backward10Seconds.d.ts +4 -0
- package/dist/components/icons-bold/Backward10Seconds.d.ts.map +1 -0
- package/dist/components/icons-bold/Backward15Seconds.d.ts +4 -0
- package/dist/components/icons-bold/Backward15Seconds.d.ts.map +1 -0
- package/dist/components/icons-bold/Backward5Seconds.d.ts +4 -0
- package/dist/components/icons-bold/Backward5Seconds.d.ts.map +1 -0
- package/dist/components/icons-bold/BatteryDisable.d.ts +4 -0
- package/dist/components/icons-bold/BatteryDisable.d.ts.map +1 -0
- package/dist/components/icons-bold/BatteryFull.d.ts +4 -0
- package/dist/components/icons-bold/BatteryFull.d.ts.map +1 -0
- package/dist/components/icons-bold/Bluetooth.d.ts +4 -0
- package/dist/components/icons-bold/Bluetooth.d.ts.map +1 -0
- package/dist/components/icons-bold/BluetoothCircle.d.ts +4 -0
- package/dist/components/icons-bold/BluetoothCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/Book.d.ts +4 -0
- package/dist/components/icons-bold/Book.d.ts.map +1 -0
- package/dist/components/icons-bold/Box.d.ts +4 -0
- package/dist/components/icons-bold/Box.d.ts.map +1 -0
- package/dist/components/icons-bold/Box2.d.ts +4 -0
- package/dist/components/icons-bold/Box2.d.ts.map +1 -0
- package/dist/components/icons-bold/Briefcase.d.ts +4 -0
- package/dist/components/icons-bold/Briefcase.d.ts.map +1 -0
- package/dist/components/icons-bold/Broom.d.ts +4 -0
- package/dist/components/icons-bold/Broom.d.ts.map +1 -0
- package/dist/components/icons-bold/Cake.d.ts +4 -0
- package/dist/components/icons-bold/Cake.d.ts.map +1 -0
- package/dist/components/icons-bold/Calculator.d.ts +4 -0
- package/dist/components/icons-bold/Calculator.d.ts.map +1 -0
- package/dist/components/icons-bold/Camera.d.ts +4 -0
- package/dist/components/icons-bold/Camera.d.ts.map +1 -0
- package/dist/components/icons-bold/CameraSlash.d.ts +4 -0
- package/dist/components/icons-bold/CameraSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/CardAdd.d.ts +4 -0
- package/dist/components/icons-bold/CardAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/CardRemove.d.ts +4 -0
- package/dist/components/icons-bold/CardRemove.d.ts.map +1 -0
- package/dist/components/icons-bold/CardSlash.d.ts +4 -0
- package/dist/components/icons-bold/CardSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/CardTick.d.ts +4 -0
- package/dist/components/icons-bold/CardTick.d.ts.map +1 -0
- package/dist/components/icons-bold/Cards.d.ts +4 -0
- package/dist/components/icons-bold/Cards.d.ts.map +1 -0
- package/dist/components/icons-bold/Cd.d.ts +4 -0
- package/dist/components/icons-bold/Cd.d.ts.map +1 -0
- package/dist/components/icons-bold/Check.d.ts +4 -0
- package/dist/components/icons-bold/Check.d.ts.map +1 -0
- package/dist/components/icons-bold/Chrome.d.ts +4 -0
- package/dist/components/icons-bold/Chrome.d.ts.map +1 -0
- package/dist/components/icons-bold/CloseCircle.d.ts +4 -0
- package/dist/components/icons-bold/CloseCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/CloseSquare.d.ts +4 -0
- package/dist/components/icons-bold/CloseSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Cloud.d.ts +4 -0
- package/dist/components/icons-bold/Cloud.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudAdd.d.ts +4 -0
- package/dist/components/icons-bold/CloudAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudChange.d.ts +4 -0
- package/dist/components/icons-bold/CloudChange.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudDrizzle.d.ts +4 -0
- package/dist/components/icons-bold/CloudDrizzle.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudLightning.d.ts +4 -0
- package/dist/components/icons-bold/CloudLightning.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudNotif.d.ts +4 -0
- package/dist/components/icons-bold/CloudNotif.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudRemove.d.ts +4 -0
- package/dist/components/icons-bold/CloudRemove.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudSnow.d.ts +4 -0
- package/dist/components/icons-bold/CloudSnow.d.ts.map +1 -0
- package/dist/components/icons-bold/CloudSunny.d.ts +4 -0
- package/dist/components/icons-bold/CloudSunny.d.ts.map +1 -0
- package/dist/components/icons-bold/Code.d.ts +4 -0
- package/dist/components/icons-bold/Code.d.ts.map +1 -0
- package/dist/components/icons-bold/Code1.d.ts +4 -0
- package/dist/components/icons-bold/Code1.d.ts.map +1 -0
- package/dist/components/icons-bold/Coin.d.ts +4 -0
- package/dist/components/icons-bold/Coin.d.ts.map +1 -0
- package/dist/components/icons-bold/Computing.d.ts +4 -0
- package/dist/components/icons-bold/Computing.d.ts.map +1 -0
- package/dist/components/icons-bold/Convert.d.ts +4 -0
- package/dist/components/icons-bold/Convert.d.ts.map +1 -0
- package/dist/components/icons-bold/Crown.d.ts +4 -0
- package/dist/components/icons-bold/Crown.d.ts.map +1 -0
- package/dist/components/icons-bold/Crown1.d.ts +4 -0
- package/dist/components/icons-bold/Crown1.d.ts.map +1 -0
- package/dist/components/icons-bold/Danger.d.ts +4 -0
- package/dist/components/icons-bold/Danger.d.ts.map +1 -0
- package/dist/components/icons-bold/DirectDown.d.ts +4 -0
- package/dist/components/icons-bold/DirectDown.d.ts.map +1 -0
- package/dist/components/icons-bold/DirectLeft.d.ts +4 -0
- package/dist/components/icons-bold/DirectLeft.d.ts.map +1 -0
- package/dist/components/icons-bold/DirectRight.d.ts +4 -0
- package/dist/components/icons-bold/DirectRight.d.ts.map +1 -0
- package/dist/components/icons-bold/DirectUp.d.ts +4 -0
- package/dist/components/icons-bold/DirectUp.d.ts.map +1 -0
- package/dist/components/icons-bold/Dislike.d.ts +4 -0
- package/dist/components/icons-bold/Dislike.d.ts.map +1 -0
- package/dist/components/icons-bold/DollarSquare.d.ts +4 -0
- package/dist/components/icons-bold/DollarSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Drop.d.ts +4 -0
- package/dist/components/icons-bold/Drop.d.ts.map +1 -0
- package/dist/components/icons-bold/EmojiHappy.d.ts +4 -0
- package/dist/components/icons-bold/EmojiHappy.d.ts.map +1 -0
- package/dist/components/icons-bold/EmojiNormal.d.ts +4 -0
- package/dist/components/icons-bold/EmojiNormal.d.ts.map +1 -0
- package/dist/components/icons-bold/EmojiSad.d.ts +4 -0
- package/dist/components/icons-bold/EmojiSad.d.ts.map +1 -0
- package/dist/components/icons-bold/EmptyWallet.d.ts +4 -0
- package/dist/components/icons-bold/EmptyWallet.d.ts.map +1 -0
- package/dist/components/icons-bold/Eraser.d.ts +4 -0
- package/dist/components/icons-bold/Eraser.d.ts.map +1 -0
- package/dist/components/icons-bold/Export.d.ts +4 -0
- package/dist/components/icons-bold/Export.d.ts.map +1 -0
- package/dist/components/icons-bold/Export1.d.ts +4 -0
- package/dist/components/icons-bold/Export1.d.ts.map +1 -0
- package/dist/components/icons-bold/Export2.d.ts +4 -0
- package/dist/components/icons-bold/Export2.d.ts.map +1 -0
- package/dist/components/icons-bold/Export3.d.ts +4 -0
- package/dist/components/icons-bold/Export3.d.ts.map +1 -0
- package/dist/components/icons-bold/Eye.d.ts +4 -0
- package/dist/components/icons-bold/Eye.d.ts.map +1 -0
- package/dist/components/icons-bold/EyeSlash.d.ts +4 -0
- package/dist/components/icons-bold/EyeSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/Facebook.d.ts +4 -0
- package/dist/components/icons-bold/Facebook.d.ts.map +1 -0
- package/dist/components/icons-bold/Figma.d.ts +4 -0
- package/dist/components/icons-bold/Figma.d.ts.map +1 -0
- package/dist/components/icons-bold/Filter.d.ts +4 -0
- package/dist/components/icons-bold/Filter.d.ts.map +1 -0
- package/dist/components/icons-bold/FilterAdd.d.ts +4 -0
- package/dist/components/icons-bold/FilterAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/FilterEdit.d.ts +4 -0
- package/dist/components/icons-bold/FilterEdit.d.ts.map +1 -0
- package/dist/components/icons-bold/FilterRemove.d.ts +4 -0
- package/dist/components/icons-bold/FilterRemove.d.ts.map +1 -0
- package/dist/components/icons-bold/FilterSearch.d.ts +4 -0
- package/dist/components/icons-bold/FilterSearch.d.ts.map +1 -0
- package/dist/components/icons-bold/FilterTick.d.ts +4 -0
- package/dist/components/icons-bold/FilterTick.d.ts.map +1 -0
- package/dist/components/icons-bold/FingerCricle.d.ts +4 -0
- package/dist/components/icons-bold/FingerCricle.d.ts.map +1 -0
- package/dist/components/icons-bold/Firstline.d.ts +4 -0
- package/dist/components/icons-bold/Firstline.d.ts.map +1 -0
- package/dist/components/icons-bold/Flag.d.ts +4 -0
- package/dist/components/icons-bold/Flag.d.ts.map +1 -0
- package/dist/components/icons-bold/Flag2.d.ts +4 -0
- package/dist/components/icons-bold/Flag2.d.ts.map +1 -0
- package/dist/components/icons-bold/Flash.d.ts +4 -0
- package/dist/components/icons-bold/Flash.d.ts.map +1 -0
- package/dist/components/icons-bold/FlashCircle.d.ts +4 -0
- package/dist/components/icons-bold/FlashCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/FlashSlash.d.ts +4 -0
- package/dist/components/icons-bold/FlashSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/Folder.d.ts +4 -0
- package/dist/components/icons-bold/Folder.d.ts.map +1 -0
- package/dist/components/icons-bold/Folder2.d.ts +4 -0
- package/dist/components/icons-bold/Folder2.d.ts.map +1 -0
- package/dist/components/icons-bold/FolderAdd.d.ts +4 -0
- package/dist/components/icons-bold/FolderAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/FolderCloud.d.ts +4 -0
- package/dist/components/icons-bold/FolderCloud.d.ts.map +1 -0
- package/dist/components/icons-bold/FolderCross.d.ts +4 -0
- package/dist/components/icons-bold/FolderCross.d.ts.map +1 -0
- package/dist/components/icons-bold/FolderFavorite.d.ts +4 -0
- package/dist/components/icons-bold/FolderFavorite.d.ts.map +1 -0
- package/dist/components/icons-bold/FolderMinus.d.ts +4 -0
- package/dist/components/icons-bold/FolderMinus.d.ts.map +1 -0
- package/dist/components/icons-bold/FolderOpen.d.ts +4 -0
- package/dist/components/icons-bold/FolderOpen.d.ts.map +1 -0
- package/dist/components/icons-bold/Forbidden2.d.ts +4 -0
- package/dist/components/icons-bold/Forbidden2.d.ts.map +1 -0
- package/dist/components/icons-bold/Forward.d.ts +4 -0
- package/dist/components/icons-bold/Forward.d.ts.map +1 -0
- package/dist/components/icons-bold/Forward10Seconds.d.ts +4 -0
- package/dist/components/icons-bold/Forward10Seconds.d.ts.map +1 -0
- package/dist/components/icons-bold/Forward15Seconds.d.ts +4 -0
- package/dist/components/icons-bold/Forward15Seconds.d.ts.map +1 -0
- package/dist/components/icons-bold/Forward5Seconds.d.ts +4 -0
- package/dist/components/icons-bold/Forward5Seconds.d.ts.map +1 -0
- package/dist/components/icons-bold/ForwardSquare.d.ts +4 -0
- package/dist/components/icons-bold/ForwardSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Frame.d.ts +4 -0
- package/dist/components/icons-bold/Frame.d.ts.map +1 -0
- package/dist/components/icons-bold/Frame1.d.ts +4 -0
- package/dist/components/icons-bold/Frame1.d.ts.map +1 -0
- package/dist/components/icons-bold/Gallery.d.ts +4 -0
- package/dist/components/icons-bold/Gallery.d.ts.map +1 -0
- package/dist/components/icons-bold/GalleryAdd.d.ts +4 -0
- package/dist/components/icons-bold/GalleryAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/GalleryRemove.d.ts +4 -0
- package/dist/components/icons-bold/GalleryRemove.d.ts.map +1 -0
- package/dist/components/icons-bold/GallerySlash.d.ts +4 -0
- package/dist/components/icons-bold/GallerySlash.d.ts.map +1 -0
- package/dist/components/icons-bold/Global.d.ts +4 -0
- package/dist/components/icons-bold/Global.d.ts.map +1 -0
- package/dist/components/icons-bold/Heart.d.ts +4 -0
- package/dist/components/icons-bold/Heart.d.ts.map +1 -0
- package/dist/components/icons-bold/Hierarchy.d.ts +4 -0
- package/dist/components/icons-bold/Hierarchy.d.ts.map +1 -0
- package/dist/components/icons-bold/Hierarchy2.d.ts +4 -0
- package/dist/components/icons-bold/Hierarchy2.d.ts.map +1 -0
- package/dist/components/icons-bold/Home2.d.ts +4 -0
- package/dist/components/icons-bold/Home2.d.ts.map +1 -0
- package/dist/components/icons-bold/HomeWifi.d.ts +4 -0
- package/dist/components/icons-bold/HomeWifi.d.ts.map +1 -0
- package/dist/components/icons-bold/Html3.d.ts +4 -0
- package/dist/components/icons-bold/Html3.d.ts.map +1 -0
- package/dist/components/icons-bold/Html5.d.ts +4 -0
- package/dist/components/icons-bold/Html5.d.ts.map +1 -0
- package/dist/components/icons-bold/Image.d.ts +4 -0
- package/dist/components/icons-bold/Image.d.ts.map +1 -0
- package/dist/components/icons-bold/Import.d.ts +4 -0
- package/dist/components/icons-bold/Import.d.ts.map +1 -0
- package/dist/components/icons-bold/Import1.d.ts +4 -0
- package/dist/components/icons-bold/Import1.d.ts.map +1 -0
- package/dist/components/icons-bold/Import2.d.ts +4 -0
- package/dist/components/icons-bold/Import2.d.ts.map +1 -0
- package/dist/components/icons-bold/InfoCircle.d.ts +4 -0
- package/dist/components/icons-bold/InfoCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/Information.d.ts +4 -0
- package/dist/components/icons-bold/Information.d.ts.map +1 -0
- package/dist/components/icons-bold/Instagram.d.ts +4 -0
- package/dist/components/icons-bold/Instagram.d.ts.map +1 -0
- package/dist/components/icons-bold/JavaScript.d.ts +4 -0
- package/dist/components/icons-bold/JavaScript.d.ts.map +1 -0
- package/dist/components/icons-bold/LanguageCircle.d.ts +4 -0
- package/dist/components/icons-bold/LanguageCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/LanguageSquare.d.ts +4 -0
- package/dist/components/icons-bold/LanguageSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Like.d.ts +4 -0
- package/dist/components/icons-bold/Like.d.ts.map +1 -0
- package/dist/components/icons-bold/LikeDislike.d.ts +4 -0
- package/dist/components/icons-bold/LikeDislike.d.ts.map +1 -0
- package/dist/components/icons-bold/LikeTag.d.ts +4 -0
- package/dist/components/icons-bold/LikeTag.d.ts.map +1 -0
- package/dist/components/icons-bold/Link.d.ts +4 -0
- package/dist/components/icons-bold/Link.d.ts.map +1 -0
- package/dist/components/icons-bold/Link1.d.ts +4 -0
- package/dist/components/icons-bold/Link1.d.ts.map +1 -0
- package/dist/components/icons-bold/Link2.d.ts +4 -0
- package/dist/components/icons-bold/Link2.d.ts.map +1 -0
- package/dist/components/icons-bold/Link21.d.ts +4 -0
- package/dist/components/icons-bold/Link21.d.ts.map +1 -0
- package/dist/components/icons-bold/LinkCircle.d.ts +4 -0
- package/dist/components/icons-bold/LinkCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/LinkSquare.d.ts +4 -0
- package/dist/components/icons-bold/LinkSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/LocationCross.d.ts +4 -0
- package/dist/components/icons-bold/LocationCross.d.ts.map +1 -0
- package/dist/components/icons-bold/LocationMinus.d.ts +4 -0
- package/dist/components/icons-bold/LocationMinus.d.ts.map +1 -0
- package/dist/components/icons-bold/LocationSlash.d.ts +4 -0
- package/dist/components/icons-bold/LocationSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/LocationTick.d.ts +4 -0
- package/dist/components/icons-bold/LocationTick.d.ts.map +1 -0
- package/dist/components/icons-bold/Lock.d.ts +4 -0
- package/dist/components/icons-bold/Lock.d.ts.map +1 -0
- package/dist/components/icons-bold/LockSlash.d.ts +4 -0
- package/dist/components/icons-bold/LockSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/Login.d.ts +4 -0
- package/dist/components/icons-bold/Login.d.ts.map +1 -0
- package/dist/components/icons-bold/Login1.d.ts +4 -0
- package/dist/components/icons-bold/Login1.d.ts.map +1 -0
- package/dist/components/icons-bold/Logout.d.ts +4 -0
- package/dist/components/icons-bold/Logout.d.ts.map +1 -0
- package/dist/components/icons-bold/Logout1.d.ts +4 -0
- package/dist/components/icons-bold/Logout1.d.ts.map +1 -0
- package/dist/components/icons-bold/Map.d.ts +4 -0
- package/dist/components/icons-bold/Map.d.ts.map +1 -0
- package/dist/components/icons-bold/Math.d.ts +4 -0
- package/dist/components/icons-bold/Math.d.ts.map +1 -0
- package/dist/components/icons-bold/Maximize.d.ts +4 -0
- package/dist/components/icons-bold/Maximize.d.ts.map +1 -0
- package/dist/components/icons-bold/Menu.d.ts +4 -0
- package/dist/components/icons-bold/Menu.d.ts.map +1 -0
- package/dist/components/icons-bold/MessageProgramming.d.ts +4 -0
- package/dist/components/icons-bold/MessageProgramming.d.ts.map +1 -0
- package/dist/components/icons-bold/Microphone.d.ts +4 -0
- package/dist/components/icons-bold/Microphone.d.ts.map +1 -0
- package/dist/components/icons-bold/Microphone2.d.ts +4 -0
- package/dist/components/icons-bold/Microphone2.d.ts.map +1 -0
- package/dist/components/icons-bold/MicrophoneSlash.d.ts +4 -0
- package/dist/components/icons-bold/MicrophoneSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/MicrophoneSlash1.d.ts +4 -0
- package/dist/components/icons-bold/MicrophoneSlash1.d.ts.map +1 -0
- package/dist/components/icons-bold/Milk.d.ts +4 -0
- package/dist/components/icons-bold/Milk.d.ts.map +1 -0
- package/dist/components/icons-bold/Minus.d.ts +4 -0
- package/dist/components/icons-bold/Minus.d.ts.map +1 -0
- package/dist/components/icons-bold/MinusCirlce.d.ts +4 -0
- package/dist/components/icons-bold/MinusCirlce.d.ts.map +1 -0
- package/dist/components/icons-bold/MinusSquare.d.ts +4 -0
- package/dist/components/icons-bold/MinusSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Monitor.d.ts +4 -0
- package/dist/components/icons-bold/Monitor.d.ts.map +1 -0
- package/dist/components/icons-bold/Moon.d.ts +4 -0
- package/dist/components/icons-bold/Moon.d.ts.map +1 -0
- package/dist/components/icons-bold/MoreCircle.d.ts +4 -0
- package/dist/components/icons-bold/MoreCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/MoreSquare.d.ts +4 -0
- package/dist/components/icons-bold/MoreSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Mouse.d.ts +4 -0
- package/dist/components/icons-bold/Mouse.d.ts.map +1 -0
- package/dist/components/icons-bold/MouseCircle.d.ts +4 -0
- package/dist/components/icons-bold/MouseCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/MouseSquare.d.ts +4 -0
- package/dist/components/icons-bold/MouseSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Next.d.ts +4 -0
- package/dist/components/icons-bold/Next.d.ts.map +1 -0
- package/dist/components/icons-bold/Paperclip.d.ts +4 -0
- package/dist/components/icons-bold/Paperclip.d.ts.map +1 -0
- package/dist/components/icons-bold/Paperclip2.d.ts +4 -0
- package/dist/components/icons-bold/Paperclip2.d.ts.map +1 -0
- package/dist/components/icons-bold/PasswordCheck.d.ts +4 -0
- package/dist/components/icons-bold/PasswordCheck.d.ts.map +1 -0
- package/dist/components/icons-bold/Pause.d.ts +4 -0
- package/dist/components/icons-bold/Pause.d.ts.map +1 -0
- package/dist/components/icons-bold/PauseCircle.d.ts +4 -0
- package/dist/components/icons-bold/PauseCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/People.d.ts +4 -0
- package/dist/components/icons-bold/People.d.ts.map +1 -0
- package/dist/components/icons-bold/Pet.d.ts +4 -0
- package/dist/components/icons-bold/Pet.d.ts.map +1 -0
- package/dist/components/icons-bold/Pharagraphspacing.d.ts +4 -0
- package/dist/components/icons-bold/Pharagraphspacing.d.ts.map +1 -0
- package/dist/components/icons-bold/Play.d.ts +4 -0
- package/dist/components/icons-bold/Play.d.ts.map +1 -0
- package/dist/components/icons-bold/PlayCircle.d.ts +4 -0
- package/dist/components/icons-bold/PlayCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/Previous.d.ts +4 -0
- package/dist/components/icons-bold/Previous.d.ts.map +1 -0
- package/dist/components/icons-bold/Printer.d.ts +4 -0
- package/dist/components/icons-bold/Printer.d.ts.map +1 -0
- package/dist/components/icons-bold/PrinterSlash.d.ts +4 -0
- package/dist/components/icons-bold/PrinterSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/Profile.d.ts +4 -0
- package/dist/components/icons-bold/Profile.d.ts.map +1 -0
- package/dist/components/icons-bold/Profile2User.d.ts +4 -0
- package/dist/components/icons-bold/Profile2User.d.ts.map +1 -0
- package/dist/components/icons-bold/ProfileAdd.d.ts +4 -0
- package/dist/components/icons-bold/ProfileAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/ProfileCircle.d.ts +4 -0
- package/dist/components/icons-bold/ProfileCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/ProfileDelete.d.ts +4 -0
- package/dist/components/icons-bold/ProfileDelete.d.ts.map +1 -0
- package/dist/components/icons-bold/ProfileRemove.d.ts +4 -0
- package/dist/components/icons-bold/ProfileRemove.d.ts.map +1 -0
- package/dist/components/icons-bold/ProfileTick.d.ts +4 -0
- package/dist/components/icons-bold/ProfileTick.d.ts.map +1 -0
- package/dist/components/icons-bold/ProgrammingArrow.d.ts +4 -0
- package/dist/components/icons-bold/ProgrammingArrow.d.ts.map +1 -0
- package/dist/components/icons-bold/QuoteDown.d.ts +4 -0
- package/dist/components/icons-bold/QuoteDown.d.ts.map +1 -0
- package/dist/components/icons-bold/QuoteDownCircle.d.ts +4 -0
- package/dist/components/icons-bold/QuoteDownCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/QuoteDownSquare.d.ts +4 -0
- package/dist/components/icons-bold/QuoteDownSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/QuoteUp.d.ts +4 -0
- package/dist/components/icons-bold/QuoteUp.d.ts.map +1 -0
- package/dist/components/icons-bold/QuoteUpCircle.d.ts +4 -0
- package/dist/components/icons-bold/QuoteUpCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/QuoteUpSquare.d.ts +4 -0
- package/dist/components/icons-bold/QuoteUpSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Ranking.d.ts +4 -0
- package/dist/components/icons-bold/Ranking.d.ts.map +1 -0
- package/dist/components/icons-bold/ReceiptDiscount.d.ts +4 -0
- package/dist/components/icons-bold/ReceiptDiscount.d.ts.map +1 -0
- package/dist/components/icons-bold/ReceiptDisscount.d.ts +4 -0
- package/dist/components/icons-bold/ReceiptDisscount.d.ts.map +1 -0
- package/dist/components/icons-bold/ReceiptItem.d.ts +4 -0
- package/dist/components/icons-bold/ReceiptItem.d.ts.map +1 -0
- package/dist/components/icons-bold/ReceiptMinus.d.ts +4 -0
- package/dist/components/icons-bold/ReceiptMinus.d.ts.map +1 -0
- package/dist/components/icons-bold/ReceiveSquare.d.ts +4 -0
- package/dist/components/icons-bold/ReceiveSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/ReceiveSquare2.d.ts +4 -0
- package/dist/components/icons-bold/ReceiveSquare2.d.ts.map +1 -0
- package/dist/components/icons-bold/Received.d.ts +4 -0
- package/dist/components/icons-bold/Received.d.ts.map +1 -0
- package/dist/components/icons-bold/Record.d.ts +4 -0
- package/dist/components/icons-bold/Record.d.ts.map +1 -0
- package/dist/components/icons-bold/RecordCircle.d.ts +4 -0
- package/dist/components/icons-bold/RecordCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/Redo.d.ts +4 -0
- package/dist/components/icons-bold/Redo.d.ts.map +1 -0
- package/dist/components/icons-bold/Refresh.d.ts +4 -0
- package/dist/components/icons-bold/Refresh.d.ts.map +1 -0
- package/dist/components/icons-bold/Refresh2.d.ts +4 -0
- package/dist/components/icons-bold/Refresh2.d.ts.map +1 -0
- package/dist/components/icons-bold/RefreshCircle.d.ts +4 -0
- package/dist/components/icons-bold/RefreshCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/RefreshLeftSquare.d.ts +4 -0
- package/dist/components/icons-bold/RefreshLeftSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/RefreshRightSquare.d.ts +4 -0
- package/dist/components/icons-bold/RefreshRightSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/RefreshSquare2.d.ts +4 -0
- package/dist/components/icons-bold/RefreshSquare2.d.ts.map +1 -0
- package/dist/components/icons-bold/Repeat.d.ts +4 -0
- package/dist/components/icons-bold/Repeat.d.ts.map +1 -0
- package/dist/components/icons-bold/RepeatCircle.d.ts +4 -0
- package/dist/components/icons-bold/RepeatCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/RepeateMusic.d.ts +4 -0
- package/dist/components/icons-bold/RepeateMusic.d.ts.map +1 -0
- package/dist/components/icons-bold/RepeateOne.d.ts +4 -0
- package/dist/components/icons-bold/RepeateOne.d.ts.map +1 -0
- package/dist/components/icons-bold/RotateLeft.d.ts +4 -0
- package/dist/components/icons-bold/RotateLeft.d.ts.map +1 -0
- package/dist/components/icons-bold/RotateRight.d.ts +4 -0
- package/dist/components/icons-bold/RotateRight.d.ts.map +1 -0
- package/dist/components/icons-bold/SafeHome.d.ts +4 -0
- package/dist/components/icons-bold/SafeHome.d.ts.map +1 -0
- package/dist/components/icons-bold/Scan.d.ts +4 -0
- package/dist/components/icons-bold/Scan.d.ts.map +1 -0
- package/dist/components/icons-bold/SearchNormal.d.ts +4 -0
- package/dist/components/icons-bold/SearchNormal.d.ts.map +1 -0
- package/dist/components/icons-bold/SearchZoomIn.d.ts +4 -0
- package/dist/components/icons-bold/SearchZoomIn.d.ts.map +1 -0
- package/dist/components/icons-bold/SearchZoomOut.d.ts +4 -0
- package/dist/components/icons-bold/SearchZoomOut.d.ts.map +1 -0
- package/dist/components/icons-bold/Send.d.ts +4 -0
- package/dist/components/icons-bold/Send.d.ts.map +1 -0
- package/dist/components/icons-bold/Send2.d.ts +4 -0
- package/dist/components/icons-bold/Send2.d.ts.map +1 -0
- package/dist/components/icons-bold/SendSqaure2.d.ts +4 -0
- package/dist/components/icons-bold/SendSqaure2.d.ts.map +1 -0
- package/dist/components/icons-bold/SendSquare.d.ts +4 -0
- package/dist/components/icons-bold/SendSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Shield.d.ts +4 -0
- package/dist/components/icons-bold/Shield.d.ts.map +1 -0
- package/dist/components/icons-bold/ShieldCross.d.ts +4 -0
- package/dist/components/icons-bold/ShieldCross.d.ts.map +1 -0
- package/dist/components/icons-bold/ShieldSecurity.d.ts +4 -0
- package/dist/components/icons-bold/ShieldSecurity.d.ts.map +1 -0
- package/dist/components/icons-bold/ShieldSlash.d.ts +4 -0
- package/dist/components/icons-bold/ShieldSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/ShieldTick.d.ts +4 -0
- package/dist/components/icons-bold/ShieldTick.d.ts.map +1 -0
- package/dist/components/icons-bold/Shuffle.d.ts +4 -0
- package/dist/components/icons-bold/Shuffle.d.ts.map +1 -0
- package/dist/components/icons-bold/Slack.d.ts +4 -0
- package/dist/components/icons-bold/Slack.d.ts.map +1 -0
- package/dist/components/icons-bold/Slash.d.ts +4 -0
- package/dist/components/icons-bold/Slash.d.ts.map +1 -0
- package/dist/components/icons-bold/Smallcaps.d.ts +4 -0
- package/dist/components/icons-bold/Smallcaps.d.ts.map +1 -0
- package/dist/components/icons-bold/SmartHome.d.ts +4 -0
- package/dist/components/icons-bold/SmartHome.d.ts.map +1 -0
- package/dist/components/icons-bold/Sort.d.ts +4 -0
- package/dist/components/icons-bold/Sort.d.ts.map +1 -0
- package/dist/components/icons-bold/Sound.d.ts +4 -0
- package/dist/components/icons-bold/Sound.d.ts.map +1 -0
- package/dist/components/icons-bold/Spotify.d.ts +4 -0
- package/dist/components/icons-bold/Spotify.d.ts.map +1 -0
- package/dist/components/icons-bold/Star.d.ts +4 -0
- package/dist/components/icons-bold/Star.d.ts.map +1 -0
- package/dist/components/icons-bold/Sticker.d.ts +4 -0
- package/dist/components/icons-bold/Sticker.d.ts.map +1 -0
- package/dist/components/icons-bold/Stop.d.ts +4 -0
- package/dist/components/icons-bold/Stop.d.ts.map +1 -0
- package/dist/components/icons-bold/StopCircle.d.ts +4 -0
- package/dist/components/icons-bold/StopCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/Story.d.ts +4 -0
- package/dist/components/icons-bold/Story.d.ts.map +1 -0
- package/dist/components/icons-bold/Sun.d.ts +4 -0
- package/dist/components/icons-bold/Sun.d.ts.map +1 -0
- package/dist/components/icons-bold/TagCross.d.ts +4 -0
- package/dist/components/icons-bold/TagCross.d.ts.map +1 -0
- package/dist/components/icons-bold/TagUser.d.ts +4 -0
- package/dist/components/icons-bold/TagUser.d.ts.map +1 -0
- package/dist/components/icons-bold/Teacher.d.ts +4 -0
- package/dist/components/icons-bold/Teacher.d.ts.map +1 -0
- package/dist/components/icons-bold/Text.d.ts +4 -0
- package/dist/components/icons-bold/Text.d.ts.map +1 -0
- package/dist/components/icons-bold/TextBlock.d.ts +4 -0
- package/dist/components/icons-bold/TextBlock.d.ts.map +1 -0
- package/dist/components/icons-bold/TextBold.d.ts +4 -0
- package/dist/components/icons-bold/TextBold.d.ts.map +1 -0
- package/dist/components/icons-bold/TextItalic.d.ts +4 -0
- package/dist/components/icons-bold/TextItalic.d.ts.map +1 -0
- package/dist/components/icons-bold/TextUnderline.d.ts +4 -0
- package/dist/components/icons-bold/TextUnderline.d.ts.map +1 -0
- package/dist/components/icons-bold/TextalignCenter.d.ts +4 -0
- package/dist/components/icons-bold/TextalignCenter.d.ts.map +1 -0
- package/dist/components/icons-bold/TextalignJustifycenter.d.ts +4 -0
- package/dist/components/icons-bold/TextalignJustifycenter.d.ts.map +1 -0
- package/dist/components/icons-bold/TextalignJustifyleft.d.ts +4 -0
- package/dist/components/icons-bold/TextalignJustifyleft.d.ts.map +1 -0
- package/dist/components/icons-bold/TextalignJustifyright.d.ts +4 -0
- package/dist/components/icons-bold/TextalignJustifyright.d.ts.map +1 -0
- package/dist/components/icons-bold/TextalignLeft.d.ts +4 -0
- package/dist/components/icons-bold/TextalignLeft.d.ts.map +1 -0
- package/dist/components/icons-bold/TextalignRight.d.ts +4 -0
- package/dist/components/icons-bold/TextalignRight.d.ts.map +1 -0
- package/dist/components/icons-bold/TickCircle.d.ts +4 -0
- package/dist/components/icons-bold/TickCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/TickSquare.d.ts +4 -0
- package/dist/components/icons-bold/TickSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Ticket.d.ts +4 -0
- package/dist/components/icons-bold/Ticket.d.ts.map +1 -0
- package/dist/components/icons-bold/TicketDiscount.d.ts +4 -0
- package/dist/components/icons-bold/TicketDiscount.d.ts.map +1 -0
- package/dist/components/icons-bold/Translate.d.ts +4 -0
- package/dist/components/icons-bold/Translate.d.ts.map +1 -0
- package/dist/components/icons-bold/Trash.d.ts +4 -0
- package/dist/components/icons-bold/Trash.d.ts.map +1 -0
- package/dist/components/icons-bold/Triangle.d.ts +4 -0
- package/dist/components/icons-bold/Triangle.d.ts.map +1 -0
- package/dist/components/icons-bold/Truck.d.ts +4 -0
- package/dist/components/icons-bold/Truck.d.ts.map +1 -0
- package/dist/components/icons-bold/TrushSquare.d.ts +4 -0
- package/dist/components/icons-bold/TrushSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Undo.d.ts +4 -0
- package/dist/components/icons-bold/Undo.d.ts.map +1 -0
- package/dist/components/icons-bold/Unlimited.d.ts +4 -0
- package/dist/components/icons-bold/Unlimited.d.ts.map +1 -0
- package/dist/components/icons-bold/Unlock.d.ts +4 -0
- package/dist/components/icons-bold/Unlock.d.ts.map +1 -0
- package/dist/components/icons-bold/User.d.ts +4 -0
- package/dist/components/icons-bold/User.d.ts.map +1 -0
- package/dist/components/icons-bold/UserAdd.d.ts +4 -0
- package/dist/components/icons-bold/UserAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/UserCirlceAdd.d.ts +4 -0
- package/dist/components/icons-bold/UserCirlceAdd.d.ts.map +1 -0
- package/dist/components/icons-bold/UserEdit.d.ts +4 -0
- package/dist/components/icons-bold/UserEdit.d.ts.map +1 -0
- package/dist/components/icons-bold/UserMinus.d.ts +4 -0
- package/dist/components/icons-bold/UserMinus.d.ts.map +1 -0
- package/dist/components/icons-bold/UserOctagon.d.ts +4 -0
- package/dist/components/icons-bold/UserOctagon.d.ts.map +1 -0
- package/dist/components/icons-bold/UserRemove.d.ts +4 -0
- package/dist/components/icons-bold/UserRemove.d.ts.map +1 -0
- package/dist/components/icons-bold/UserSearch.d.ts +4 -0
- package/dist/components/icons-bold/UserSearch.d.ts.map +1 -0
- package/dist/components/icons-bold/UserSquare.d.ts +4 -0
- package/dist/components/icons-bold/UserSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/UserTag.d.ts +4 -0
- package/dist/components/icons-bold/UserTag.d.ts.map +1 -0
- package/dist/components/icons-bold/UserTick.d.ts +4 -0
- package/dist/components/icons-bold/UserTick.d.ts.map +1 -0
- package/dist/components/icons-bold/Verify.d.ts +4 -0
- package/dist/components/icons-bold/Verify.d.ts.map +1 -0
- package/dist/components/icons-bold/Video.d.ts +4 -0
- package/dist/components/icons-bold/Video.d.ts.map +1 -0
- package/dist/components/icons-bold/VideoCircle.d.ts +4 -0
- package/dist/components/icons-bold/VideoCircle.d.ts.map +1 -0
- package/dist/components/icons-bold/VideoPlay.d.ts +4 -0
- package/dist/components/icons-bold/VideoPlay.d.ts.map +1 -0
- package/dist/components/icons-bold/VideoSlash.d.ts +4 -0
- package/dist/components/icons-bold/VideoSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/VideoSquare.d.ts +4 -0
- package/dist/components/icons-bold/VideoSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/VoiceSquare.d.ts +4 -0
- package/dist/components/icons-bold/VoiceSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/VolumeCross.d.ts +4 -0
- package/dist/components/icons-bold/VolumeCross.d.ts.map +1 -0
- package/dist/components/icons-bold/VolumeHigh.d.ts +4 -0
- package/dist/components/icons-bold/VolumeHigh.d.ts.map +1 -0
- package/dist/components/icons-bold/VolumeLow.d.ts +4 -0
- package/dist/components/icons-bold/VolumeLow.d.ts.map +1 -0
- package/dist/components/icons-bold/VolumeLow1.d.ts +4 -0
- package/dist/components/icons-bold/VolumeLow1.d.ts.map +1 -0
- package/dist/components/icons-bold/VolumeMute.d.ts +4 -0
- package/dist/components/icons-bold/VolumeMute.d.ts.map +1 -0
- package/dist/components/icons-bold/VolumeSlash.d.ts +4 -0
- package/dist/components/icons-bold/VolumeSlash.d.ts.map +1 -0
- package/dist/components/icons-bold/VolumeUp.d.ts +4 -0
- package/dist/components/icons-bold/VolumeUp.d.ts.map +1 -0
- package/dist/components/icons-bold/Warning2.d.ts +4 -0
- package/dist/components/icons-bold/Warning2.d.ts.map +1 -0
- package/dist/components/icons-bold/Whatsapp.d.ts +4 -0
- package/dist/components/icons-bold/Whatsapp.d.ts.map +1 -0
- package/dist/components/icons-bold/Wifi.d.ts +4 -0
- package/dist/components/icons-bold/Wifi.d.ts.map +1 -0
- package/dist/components/icons-bold/WifiSquare.d.ts +4 -0
- package/dist/components/icons-bold/WifiSquare.d.ts.map +1 -0
- package/dist/components/icons-bold/Windows.d.ts +4 -0
- package/dist/components/icons-bold/Windows.d.ts.map +1 -0
- package/dist/components/icons-bold/Youtube.d.ts +4 -0
- package/dist/components/icons-bold/Youtube.d.ts.map +1 -0
- package/dist/components/icons-bold/index.d.ts +335 -0
- package/dist/components/icons-bold/index.d.ts.map +1 -0
- package/dist/data.d.mts +281 -0
- package/dist/data.d.ts +20 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +4 -0
- package/dist/data.js.map +1 -0
- package/dist/data.mjs +4 -0
- package/dist/data.mjs.map +1 -0
- package/dist/feedback.d.mts +193 -3
- package/dist/feedback.d.ts +11 -9
- package/dist/feedback.d.ts.map +1 -1
- package/dist/feedback.js +12 -1
- package/dist/feedback.js.map +1 -1
- package/dist/feedback.mjs +2 -1
- package/dist/form.d.mts +248 -255
- package/dist/form.d.ts +9 -2
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +8 -272
- package/dist/form.js.map +1 -1
- package/dist/form.mjs +8 -1
- package/dist/form.mjs.map +1 -1
- package/dist/hooks/index.d.ts +10 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useInView.d.ts +47 -0
- package/dist/hooks/useInView.d.ts.map +1 -0
- package/dist/hooks/useMouse.d.ts +57 -0
- package/dist/hooks/useMouse.d.ts.map +1 -0
- package/dist/hooks/useReducedMotion.d.ts +35 -0
- package/dist/hooks/useReducedMotion.d.ts.map +1 -0
- package/dist/hooks/useScrollProgress.d.ts +50 -0
- package/dist/hooks/useScrollProgress.d.ts.map +1 -0
- package/dist/hooks/useWindowSize.d.ts +39 -0
- package/dist/hooks/useWindowSize.d.ts.map +1 -0
- package/dist/icons-Bj_nr8Ba.d.mts +158 -0
- package/dist/iconsax.d.mts +172 -0
- package/dist/iconsax.d.ts +19 -0
- package/dist/iconsax.d.ts.map +1 -0
- package/dist/iconsax.js +274 -0
- package/dist/iconsax.js.map +1 -0
- package/dist/iconsax.mjs +274 -0
- package/dist/iconsax.mjs.map +1 -0
- package/dist/index.d.mts +897 -2545
- package/dist/index.d.ts +16 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -286
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -16
- package/dist/index.mjs.map +1 -1
- package/dist/interactive.d.mts +602 -0
- package/dist/interactive.d.ts +20 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/interactive.js +3 -0
- package/dist/interactive.js.map +1 -0
- package/dist/interactive.mjs +3 -0
- package/dist/interactive.mjs.map +1 -0
- package/dist/lib/case-utils.d.ts +36 -0
- package/dist/lib/case-utils.d.ts.map +1 -0
- package/dist/lib/icon-aliases.d.ts.map +1 -1
- package/dist/lib/icon-names.d.ts +5 -5
- package/dist/lib/icon-names.d.ts.map +1 -1
- package/dist/lib/icon-providers.d.ts +170 -118
- package/dist/lib/icon-providers.d.ts.map +1 -1
- package/dist/lib/icon-utils.d.ts +38 -0
- package/dist/lib/icon-utils.d.ts.map +1 -0
- package/dist/lib/icons.d.ts +103 -80
- package/dist/lib/icons.d.ts.map +1 -1
- package/dist/lib/iconsax-loader.d.ts +15 -9
- package/dist/lib/iconsax-loader.d.ts.map +1 -1
- package/dist/lib/normalize-icon-name.d.ts +43 -0
- package/dist/lib/normalize-icon-name.d.ts.map +1 -0
- package/dist/lib/styles/system/components.d.ts.map +1 -1
- package/dist/lib/styles/variants.d.ts.map +1 -1
- package/dist/lib/types/common.d.ts +41 -1
- package/dist/lib/types/common.d.ts.map +1 -1
- package/dist/lib/types/dashboard.d.ts +247 -0
- package/dist/lib/types/dashboard.d.ts.map +1 -0
- package/dist/lib/types/form.d.ts +130 -0
- package/dist/lib/types/form.d.ts.map +1 -0
- package/dist/lib/types/index.d.ts +4 -1
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/modal.d.ts +120 -0
- package/dist/lib/types/modal.d.ts.map +1 -0
- package/dist/navigation.d.mts +232 -6
- package/dist/navigation.d.ts +11 -10
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +12 -272
- package/dist/navigation.js.map +1 -1
- package/dist/navigation.mjs +2 -1
- package/dist/navigation.mjs.map +1 -1
- package/dist/overlay.d.mts +513 -0
- package/dist/overlay.d.ts +21 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +4 -0
- package/dist/overlay.js.map +1 -0
- package/dist/overlay.mjs +4 -0
- package/dist/overlay.mjs.map +1 -0
- package/dist/sdui.js +12 -273
- package/dist/sdui.js.map +1 -1
- package/dist/sdui.mjs +2 -1
- package/dist/sdui.mjs.map +1 -1
- package/package.json +73 -30
- package/src/styles/base.css +3 -0
- package/src/styles/codeblock.css +25 -0
- package/src/styles/component-vars.css +77 -0
- package/src/styles/recommended-theme.css +90 -12
- package/dist/3Dcube-476CPLOF.mjs +0 -3
- package/dist/3Dcube-476CPLOF.mjs.map +0 -1
- package/dist/Add-Y2SCCNWG.mjs +0 -3
- package/dist/Add-Y2SCCNWG.mjs.map +0 -1
- package/dist/AddCircle-MQVXQBDA.mjs +0 -3
- package/dist/AddCircle-MQVXQBDA.mjs.map +0 -1
- package/dist/AddSquare-LYB5TDMI.mjs +0 -3
- package/dist/AddSquare-LYB5TDMI.mjs.map +0 -1
- package/dist/Apple-KJROXGXP.mjs +0 -3
- package/dist/Apple-KJROXGXP.mjs.map +0 -1
- package/dist/Archive-ATAEBXD5.mjs +0 -3
- package/dist/Archive-ATAEBXD5.mjs.map +0 -1
- package/dist/ArrangeCircle-EBTUQIEO.mjs +0 -3
- package/dist/ArrangeCircle-EBTUQIEO.mjs.map +0 -1
- package/dist/ArrangeCircle2-OHAJTRO4.mjs +0 -3
- package/dist/ArrangeCircle2-OHAJTRO4.mjs.map +0 -1
- package/dist/ArrangeSquare-SIDWRH75.mjs +0 -3
- package/dist/ArrangeSquare-SIDWRH75.mjs.map +0 -1
- package/dist/ArrangeSquare2-4TGS7OY6.mjs +0 -3
- package/dist/ArrangeSquare2-4TGS7OY6.mjs.map +0 -1
- package/dist/Arrow2-YBMZNNBX.mjs +0 -3
- package/dist/Arrow2-YBMZNNBX.mjs.map +0 -1
- package/dist/Arrow3-IUDRCCHR.mjs +0 -3
- package/dist/Arrow3-IUDRCCHR.mjs.map +0 -1
- package/dist/ArrowBottom-IHSRR65Z.mjs +0 -3
- package/dist/ArrowBottom-IHSRR65Z.mjs.map +0 -1
- package/dist/ArrowCircleDown-JCBYMFXA.mjs +0 -3
- package/dist/ArrowCircleDown-JCBYMFXA.mjs.map +0 -1
- package/dist/ArrowCircleLeft-L7CTVDW5.mjs +0 -3
- package/dist/ArrowCircleLeft-L7CTVDW5.mjs.map +0 -1
- package/dist/ArrowCircleRight-ZZHQDKKR.mjs +0 -3
- package/dist/ArrowCircleRight-ZZHQDKKR.mjs.map +0 -1
- package/dist/ArrowDown-K5RTFHBF.mjs +0 -3
- package/dist/ArrowDown-K5RTFHBF.mjs.map +0 -1
- package/dist/ArrowDown1-VFW3UBK5.mjs +0 -3
- package/dist/ArrowDown1-VFW3UBK5.mjs.map +0 -1
- package/dist/ArrowDown2-N5ASNO6F.mjs +0 -3
- package/dist/ArrowDown2-N5ASNO6F.mjs.map +0 -1
- package/dist/ArrowLeft-MLQDHQIB.mjs +0 -3
- package/dist/ArrowLeft-MLQDHQIB.mjs.map +0 -1
- package/dist/ArrowLeft1-6QK5LCWE.mjs +0 -3
- package/dist/ArrowLeft1-6QK5LCWE.mjs.map +0 -1
- package/dist/ArrowLeft2-JAGSKVPT.mjs +0 -3
- package/dist/ArrowLeft2-JAGSKVPT.mjs.map +0 -1
- package/dist/ArrowLeft3-4FIWGYQW.mjs +0 -3
- package/dist/ArrowLeft3-4FIWGYQW.mjs.map +0 -1
- package/dist/ArrowRight-DMIU25OL.mjs +0 -3
- package/dist/ArrowRight-DMIU25OL.mjs.map +0 -1
- package/dist/ArrowRight1-AXDOLPYT.mjs +0 -3
- package/dist/ArrowRight1-AXDOLPYT.mjs.map +0 -1
- package/dist/ArrowRight2-RHTZMXNV.mjs +0 -3
- package/dist/ArrowRight2-RHTZMXNV.mjs.map +0 -1
- package/dist/ArrowRight3-25UH6UQA.mjs +0 -3
- package/dist/ArrowRight3-25UH6UQA.mjs.map +0 -1
- package/dist/ArrowSquareDown-SUPZZDVH.mjs +0 -3
- package/dist/ArrowSquareDown-SUPZZDVH.mjs.map +0 -1
- package/dist/ArrowSquareLeft-HX4SA4FE.mjs +0 -3
- package/dist/ArrowSquareLeft-HX4SA4FE.mjs.map +0 -1
- package/dist/ArrowSquareRight-TC4XGHX2.mjs +0 -3
- package/dist/ArrowSquareRight-TC4XGHX2.mjs.map +0 -1
- package/dist/ArrowSquareUp-55VRYO5O.mjs +0 -3
- package/dist/ArrowSquareUp-55VRYO5O.mjs.map +0 -1
- package/dist/ArrowSwapHorizontal-PCXHZOBR.mjs +0 -3
- package/dist/ArrowSwapHorizontal-PCXHZOBR.mjs.map +0 -1
- package/dist/ArrowUp-JLY2CYVX.mjs +0 -3
- package/dist/ArrowUp-JLY2CYVX.mjs.map +0 -1
- package/dist/ArrowUp1-HQMIEZF2.mjs +0 -3
- package/dist/ArrowUp1-HQMIEZF2.mjs.map +0 -1
- package/dist/ArrowUp2-4M4YHZ6A.mjs +0 -3
- package/dist/ArrowUp2-4M4YHZ6A.mjs.map +0 -1
- package/dist/ArrowUp3-SYAAOPJP.mjs +0 -3
- package/dist/ArrowUp3-SYAAOPJP.mjs.map +0 -1
- package/dist/AttachCircle-2NTT7EJP.mjs +0 -3
- package/dist/AttachCircle-2NTT7EJP.mjs.map +0 -1
- package/dist/AttachSquare-PV3LLULM.mjs +0 -3
- package/dist/AttachSquare-PV3LLULM.mjs.map +0 -1
- package/dist/Autobrightness-4DHQ6NVB.mjs +0 -3
- package/dist/Autobrightness-4DHQ6NVB.mjs.map +0 -1
- package/dist/BackSquare-7QY4AXFT.mjs +0 -3
- package/dist/BackSquare-7QY4AXFT.mjs.map +0 -1
- package/dist/Backward-ORNWYQXM.mjs +0 -3
- package/dist/Backward-ORNWYQXM.mjs.map +0 -1
- package/dist/Backward10Seconds-CVBASDBJ.mjs +0 -3
- package/dist/Backward10Seconds-CVBASDBJ.mjs.map +0 -1
- package/dist/Backward15Seconds-WLDYQGVG.mjs +0 -3
- package/dist/Backward15Seconds-WLDYQGVG.mjs.map +0 -1
- package/dist/Backward5Seconds-VAFA7UW2.mjs +0 -3
- package/dist/Backward5Seconds-VAFA7UW2.mjs.map +0 -1
- package/dist/BatteryDisable-XVTPBZPE.mjs +0 -3
- package/dist/BatteryDisable-XVTPBZPE.mjs.map +0 -1
- package/dist/BatteryFull-NKQ4RNEB.mjs +0 -3
- package/dist/BatteryFull-NKQ4RNEB.mjs.map +0 -1
- package/dist/Bluetooth-2EHRKMF6.mjs +0 -3
- package/dist/Bluetooth-2EHRKMF6.mjs.map +0 -1
- package/dist/BluetoothCircle-OD5ANA4N.mjs +0 -3
- package/dist/BluetoothCircle-OD5ANA4N.mjs.map +0 -1
- package/dist/Book-ZTLKZ7SK.mjs +0 -3
- package/dist/Book-ZTLKZ7SK.mjs.map +0 -1
- package/dist/Box-XH43KKV4.mjs +0 -3
- package/dist/Box-XH43KKV4.mjs.map +0 -1
- package/dist/Box2-KB46H4IU.mjs +0 -3
- package/dist/Box2-KB46H4IU.mjs.map +0 -1
- package/dist/Briefcase-ZTMLFGEC.mjs +0 -3
- package/dist/Briefcase-ZTMLFGEC.mjs.map +0 -1
- package/dist/Broom-BC2MUXZT.mjs +0 -3
- package/dist/Broom-BC2MUXZT.mjs.map +0 -1
- package/dist/Cake-KJESEIPY.mjs +0 -3
- package/dist/Cake-KJESEIPY.mjs.map +0 -1
- package/dist/Calculator-IJKS42AG.mjs +0 -3
- package/dist/Calculator-IJKS42AG.mjs.map +0 -1
- package/dist/Camera-4AD6YJZ3.mjs +0 -3
- package/dist/Camera-4AD6YJZ3.mjs.map +0 -1
- package/dist/CameraSlash-ESCCGOUP.mjs +0 -3
- package/dist/CameraSlash-ESCCGOUP.mjs.map +0 -1
- package/dist/CardAdd-V4Y4NJAM.mjs +0 -3
- package/dist/CardAdd-V4Y4NJAM.mjs.map +0 -1
- package/dist/CardRemove-CAHOPPMN.mjs +0 -3
- package/dist/CardRemove-CAHOPPMN.mjs.map +0 -1
- package/dist/CardSlash-6FRL33KL.mjs +0 -3
- package/dist/CardSlash-6FRL33KL.mjs.map +0 -1
- package/dist/CardTick-Q3ZNTZDO.mjs +0 -3
- package/dist/CardTick-Q3ZNTZDO.mjs.map +0 -1
- package/dist/Cards-P6ECLTEQ.mjs +0 -3
- package/dist/Cards-P6ECLTEQ.mjs.map +0 -1
- package/dist/Cd-CTHQLTGK.mjs +0 -3
- package/dist/Cd-CTHQLTGK.mjs.map +0 -1
- package/dist/Check-SXMNFYQE.mjs +0 -3
- package/dist/Check-SXMNFYQE.mjs.map +0 -1
- package/dist/Chrome-HNWG6FNF.mjs +0 -3
- package/dist/Chrome-HNWG6FNF.mjs.map +0 -1
- package/dist/CloseCircle-DL4UURVO.mjs +0 -3
- package/dist/CloseCircle-DL4UURVO.mjs.map +0 -1
- package/dist/CloseSquare-A7QOSR32.mjs +0 -3
- package/dist/CloseSquare-A7QOSR32.mjs.map +0 -1
- package/dist/Cloud-FIB7VQBO.mjs +0 -3
- package/dist/Cloud-FIB7VQBO.mjs.map +0 -1
- package/dist/CloudAdd-FHSWGZAC.mjs +0 -3
- package/dist/CloudAdd-FHSWGZAC.mjs.map +0 -1
- package/dist/CloudChange-P27RPVL6.mjs +0 -3
- package/dist/CloudChange-P27RPVL6.mjs.map +0 -1
- package/dist/CloudDrizzle-6JQ4BWUT.mjs +0 -3
- package/dist/CloudDrizzle-6JQ4BWUT.mjs.map +0 -1
- package/dist/CloudLightning-5FV363JV.mjs +0 -3
- package/dist/CloudLightning-5FV363JV.mjs.map +0 -1
- package/dist/CloudNotif-ZAVZ24MM.mjs +0 -3
- package/dist/CloudNotif-ZAVZ24MM.mjs.map +0 -1
- package/dist/CloudRemove-2TPKVLGP.mjs +0 -3
- package/dist/CloudRemove-2TPKVLGP.mjs.map +0 -1
- package/dist/CloudSnow-OYMWSTH6.mjs +0 -3
- package/dist/CloudSnow-OYMWSTH6.mjs.map +0 -1
- package/dist/CloudSunny-GYNAXJ74.mjs +0 -3
- package/dist/CloudSunny-GYNAXJ74.mjs.map +0 -1
- package/dist/Code-BRFJ4UHF.mjs +0 -3
- package/dist/Code-BRFJ4UHF.mjs.map +0 -1
- package/dist/Code1-HKUVG5LL.mjs +0 -3
- package/dist/Code1-HKUVG5LL.mjs.map +0 -1
- package/dist/Coin-ESBHYVFV.mjs +0 -3
- package/dist/Coin-ESBHYVFV.mjs.map +0 -1
- package/dist/ComponentLayout-BFW39DKh.d.mts +0 -73
- package/dist/Computing-EZ3SJZF5.mjs +0 -3
- package/dist/Computing-EZ3SJZF5.mjs.map +0 -1
- package/dist/Convert-PZX24YPN.mjs +0 -3
- package/dist/Convert-PZX24YPN.mjs.map +0 -1
- package/dist/Crown-V6VJP6GE.mjs +0 -3
- package/dist/Crown-V6VJP6GE.mjs.map +0 -1
- package/dist/Crown1-RZACWY2P.mjs +0 -3
- package/dist/Crown1-RZACWY2P.mjs.map +0 -1
- package/dist/Danger-WS5C3LAY.mjs +0 -3
- package/dist/Danger-WS5C3LAY.mjs.map +0 -1
- package/dist/DirectDown-ZP7IG7T3.mjs +0 -3
- package/dist/DirectDown-ZP7IG7T3.mjs.map +0 -1
- package/dist/DirectLeft-YGADPDDE.mjs +0 -3
- package/dist/DirectLeft-YGADPDDE.mjs.map +0 -1
- package/dist/DirectRight-IUJSIK73.mjs +0 -3
- package/dist/DirectRight-IUJSIK73.mjs.map +0 -1
- package/dist/DirectUp-KKK7DRSX.mjs +0 -3
- package/dist/DirectUp-KKK7DRSX.mjs.map +0 -1
- package/dist/Dislike-CJI64T7L.mjs +0 -3
- package/dist/Dislike-CJI64T7L.mjs.map +0 -1
- package/dist/DollarSquare-S5DYIDDA.mjs +0 -3
- package/dist/DollarSquare-S5DYIDDA.mjs.map +0 -1
- package/dist/Drop-CMOM53IR.mjs +0 -3
- package/dist/Drop-CMOM53IR.mjs.map +0 -1
- package/dist/EmojiHappy-DCDZWBCU.mjs +0 -3
- package/dist/EmojiHappy-DCDZWBCU.mjs.map +0 -1
- package/dist/EmojiNormal-HYYEYGNH.mjs +0 -3
- package/dist/EmojiNormal-HYYEYGNH.mjs.map +0 -1
- package/dist/EmojiSad-REFSZVHL.mjs +0 -3
- package/dist/EmojiSad-REFSZVHL.mjs.map +0 -1
- package/dist/EmptyWallet-43V6VLZW.mjs +0 -3
- package/dist/EmptyWallet-43V6VLZW.mjs.map +0 -1
- package/dist/Eraser-NOH2RIDJ.mjs +0 -3
- package/dist/Eraser-NOH2RIDJ.mjs.map +0 -1
- package/dist/Export-3XJEECNH.mjs +0 -3
- package/dist/Export-3XJEECNH.mjs.map +0 -1
- package/dist/Export1-TT566QU6.mjs +0 -3
- package/dist/Export1-TT566QU6.mjs.map +0 -1
- package/dist/Export2-ZWUHEVJM.mjs +0 -3
- package/dist/Export2-ZWUHEVJM.mjs.map +0 -1
- package/dist/Export3-TX6WVNZN.mjs +0 -3
- package/dist/Export3-TX6WVNZN.mjs.map +0 -1
- package/dist/Eye-NYRJQM6Y.mjs +0 -3
- package/dist/Eye-NYRJQM6Y.mjs.map +0 -1
- package/dist/EyeSlash-2W6XOQZW.mjs +0 -3
- package/dist/EyeSlash-2W6XOQZW.mjs.map +0 -1
- package/dist/Facebook-AO7T5MIB.mjs +0 -3
- package/dist/Facebook-AO7T5MIB.mjs.map +0 -1
- package/dist/Figma-WZO5X5BX.mjs +0 -3
- package/dist/Figma-WZO5X5BX.mjs.map +0 -1
- package/dist/Filter-G56K7VKJ.mjs +0 -3
- package/dist/Filter-G56K7VKJ.mjs.map +0 -1
- package/dist/FilterAdd-MVLYM3VP.mjs +0 -3
- package/dist/FilterAdd-MVLYM3VP.mjs.map +0 -1
- package/dist/FilterEdit-FRKKE2PH.mjs +0 -3
- package/dist/FilterEdit-FRKKE2PH.mjs.map +0 -1
- package/dist/FilterRemove-FHC4OHVC.mjs +0 -3
- package/dist/FilterRemove-FHC4OHVC.mjs.map +0 -1
- package/dist/FilterSearch-2W2FWEVP.mjs +0 -3
- package/dist/FilterSearch-2W2FWEVP.mjs.map +0 -1
- package/dist/FilterTick-N6WUC5AR.mjs +0 -3
- package/dist/FilterTick-N6WUC5AR.mjs.map +0 -1
- package/dist/FingerCricle-AAOVYXKF.mjs +0 -3
- package/dist/FingerCricle-AAOVYXKF.mjs.map +0 -1
- package/dist/Firstline-35U6KCCP.mjs +0 -3
- package/dist/Firstline-35U6KCCP.mjs.map +0 -1
- package/dist/Flag-YHSN7KPV.mjs +0 -3
- package/dist/Flag-YHSN7KPV.mjs.map +0 -1
- package/dist/Flag2-P4JOAXW7.mjs +0 -3
- package/dist/Flag2-P4JOAXW7.mjs.map +0 -1
- package/dist/Flash-DV4KZNI5.mjs +0 -3
- package/dist/Flash-DV4KZNI5.mjs.map +0 -1
- package/dist/FlashCircle-SRBLXDUD.mjs +0 -3
- package/dist/FlashCircle-SRBLXDUD.mjs.map +0 -1
- package/dist/FlashSlash-LO74NC3Q.mjs +0 -3
- package/dist/FlashSlash-LO74NC3Q.mjs.map +0 -1
- package/dist/Folder-QQPI7QVX.mjs +0 -3
- package/dist/Folder-QQPI7QVX.mjs.map +0 -1
- package/dist/Folder2-POTY3VTP.mjs +0 -3
- package/dist/Folder2-POTY3VTP.mjs.map +0 -1
- package/dist/FolderAdd-L6SIRB6B.mjs +0 -3
- package/dist/FolderAdd-L6SIRB6B.mjs.map +0 -1
- package/dist/FolderCloud-3WZPGBCM.mjs +0 -3
- package/dist/FolderCloud-3WZPGBCM.mjs.map +0 -1
- package/dist/FolderCross-6223FQAM.mjs +0 -3
- package/dist/FolderCross-6223FQAM.mjs.map +0 -1
- package/dist/FolderFavorite-ZA6KABVI.mjs +0 -3
- package/dist/FolderFavorite-ZA6KABVI.mjs.map +0 -1
- package/dist/FolderMinus-WRXPRPXE.mjs +0 -3
- package/dist/FolderMinus-WRXPRPXE.mjs.map +0 -1
- package/dist/FolderOpen-OWBG4GZT.mjs +0 -3
- package/dist/FolderOpen-OWBG4GZT.mjs.map +0 -1
- package/dist/Forward-7YU3A27U.mjs +0 -3
- package/dist/Forward-7YU3A27U.mjs.map +0 -1
- package/dist/Forward10Seconds-JYASHGG7.mjs +0 -3
- package/dist/Forward10Seconds-JYASHGG7.mjs.map +0 -1
- package/dist/Forward15Seconds-QRR5SXLN.mjs +0 -3
- package/dist/Forward15Seconds-QRR5SXLN.mjs.map +0 -1
- package/dist/Forward5Seconds-YVMHFCJM.mjs +0 -3
- package/dist/Forward5Seconds-YVMHFCJM.mjs.map +0 -1
- package/dist/ForwardSquare-AY2EKDGY.mjs +0 -3
- package/dist/ForwardSquare-AY2EKDGY.mjs.map +0 -1
- package/dist/Frame-WTAJLZ7P.mjs +0 -3
- package/dist/Frame-WTAJLZ7P.mjs.map +0 -1
- package/dist/Frame1-FOMSDDEB.mjs +0 -3
- package/dist/Frame1-FOMSDDEB.mjs.map +0 -1
- package/dist/Frame2-H255J25T.mjs +0 -3
- package/dist/Frame2-H255J25T.mjs.map +0 -1
- package/dist/Gallery-HXLC4DBY.mjs +0 -3
- package/dist/Gallery-HXLC4DBY.mjs.map +0 -1
- package/dist/GalleryAdd-Q3SDBRHN.mjs +0 -3
- package/dist/GalleryAdd-Q3SDBRHN.mjs.map +0 -1
- package/dist/GalleryRemove-T4433X4L.mjs +0 -3
- package/dist/GalleryRemove-T4433X4L.mjs.map +0 -1
- package/dist/GallerySlash-NZPQIB2Q.mjs +0 -3
- package/dist/GallerySlash-NZPQIB2Q.mjs.map +0 -1
- package/dist/Global-NEKUUTWR.mjs +0 -3
- package/dist/Global-NEKUUTWR.mjs.map +0 -1
- package/dist/Group-7ZQHVROQ.mjs +0 -3
- package/dist/Group-7ZQHVROQ.mjs.map +0 -1
- package/dist/Group1-HT5MSGN3.mjs +0 -3
- package/dist/Group1-HT5MSGN3.mjs.map +0 -1
- package/dist/GroupCopy-HNEX3Q2F.mjs +0 -3
- package/dist/GroupCopy-HNEX3Q2F.mjs.map +0 -1
- package/dist/Heart-22RQEZ6G.mjs +0 -3
- package/dist/Heart-22RQEZ6G.mjs.map +0 -1
- package/dist/Hierarchy-2P6D5ZMR.mjs +0 -3
- package/dist/Hierarchy-2P6D5ZMR.mjs.map +0 -1
- package/dist/Hierarchy2-X5SRKU6A.mjs +0 -3
- package/dist/Hierarchy2-X5SRKU6A.mjs.map +0 -1
- package/dist/Home2-Z2OWOJHS.mjs +0 -3
- package/dist/Home2-Z2OWOJHS.mjs.map +0 -1
- package/dist/HomeWifi-7S5MMTQK.mjs +0 -3
- package/dist/HomeWifi-7S5MMTQK.mjs.map +0 -1
- package/dist/Html3-GGKHR7P6.mjs +0 -3
- package/dist/Html3-GGKHR7P6.mjs.map +0 -1
- package/dist/Html5-4GUENRI3.mjs +0 -3
- package/dist/Html5-4GUENRI3.mjs.map +0 -1
- package/dist/Image-NQ3ER3JQ.mjs +0 -3
- package/dist/Image-NQ3ER3JQ.mjs.map +0 -1
- package/dist/Import-XTAYKW6E.mjs +0 -3
- package/dist/Import-XTAYKW6E.mjs.map +0 -1
- package/dist/Import1-MC5MM7OX.mjs +0 -3
- package/dist/Import1-MC5MM7OX.mjs.map +0 -1
- package/dist/Import2-7R45R2AS.mjs +0 -3
- package/dist/Import2-7R45R2AS.mjs.map +0 -1
- package/dist/InfoCircle-ZPO457IW.mjs +0 -3
- package/dist/InfoCircle-ZPO457IW.mjs.map +0 -1
- package/dist/Information-UDCWKXWE.mjs +0 -3
- package/dist/Information-UDCWKXWE.mjs.map +0 -1
- package/dist/Instagram-NTZKJFBE.mjs +0 -3
- package/dist/Instagram-NTZKJFBE.mjs.map +0 -1
- package/dist/JavaScript-KZ2NS3XH.mjs +0 -3
- package/dist/JavaScript-KZ2NS3XH.mjs.map +0 -1
- package/dist/LanguageCircle-QS6SBRCX.mjs +0 -3
- package/dist/LanguageCircle-QS6SBRCX.mjs.map +0 -1
- package/dist/LanguageSquare-7S22GSXQ.mjs +0 -3
- package/dist/LanguageSquare-7S22GSXQ.mjs.map +0 -1
- package/dist/Like-BP7KSSR2.mjs +0 -3
- package/dist/Like-BP7KSSR2.mjs.map +0 -1
- package/dist/LikeDislike-XLCPVRYQ.mjs +0 -3
- package/dist/LikeDislike-XLCPVRYQ.mjs.map +0 -1
- package/dist/LikeTag-PYTNFFF5.mjs +0 -3
- package/dist/LikeTag-PYTNFFF5.mjs.map +0 -1
- package/dist/Link-AOVUXGIY.mjs +0 -3
- package/dist/Link-AOVUXGIY.mjs.map +0 -1
- package/dist/Link1-AJUNET5I.mjs +0 -3
- package/dist/Link1-AJUNET5I.mjs.map +0 -1
- package/dist/Link2-PWCWLSCN.mjs +0 -3
- package/dist/Link2-PWCWLSCN.mjs.map +0 -1
- package/dist/Link21-W4UBW7JL.mjs +0 -3
- package/dist/Link21-W4UBW7JL.mjs.map +0 -1
- package/dist/LinkCircle-RF6ANTOW.mjs +0 -3
- package/dist/LinkCircle-RF6ANTOW.mjs.map +0 -1
- package/dist/LinkSquare-WNZU6CZ3.mjs +0 -3
- package/dist/LinkSquare-WNZU6CZ3.mjs.map +0 -1
- package/dist/LocationCross-YFIXU2NG.mjs +0 -3
- package/dist/LocationCross-YFIXU2NG.mjs.map +0 -1
- package/dist/LocationMinus-X3PFKQTO.mjs +0 -3
- package/dist/LocationMinus-X3PFKQTO.mjs.map +0 -1
- package/dist/LocationSlash-ISAXSM5W.mjs +0 -3
- package/dist/LocationSlash-ISAXSM5W.mjs.map +0 -1
- package/dist/LocationTick-6KJNHZ3E.mjs +0 -3
- package/dist/LocationTick-6KJNHZ3E.mjs.map +0 -1
- package/dist/Lock-QSKHUIH5.mjs +0 -3
- package/dist/Lock-QSKHUIH5.mjs.map +0 -1
- package/dist/LockSlash-E2OQ2M6Z.mjs +0 -3
- package/dist/LockSlash-E2OQ2M6Z.mjs.map +0 -1
- package/dist/Login-IC6ILE62.mjs +0 -3
- package/dist/Login-IC6ILE62.mjs.map +0 -1
- package/dist/Login1-S5GKYDYM.mjs +0 -3
- package/dist/Login1-S5GKYDYM.mjs.map +0 -1
- package/dist/Logout-FSBNVXDF.mjs +0 -3
- package/dist/Logout-FSBNVXDF.mjs.map +0 -1
- package/dist/Logout1-Q4OTZLEU.mjs +0 -3
- package/dist/Logout1-Q4OTZLEU.mjs.map +0 -1
- package/dist/Map-L7EAT544.mjs +0 -3
- package/dist/Map-L7EAT544.mjs.map +0 -1
- package/dist/Math-EEC7PMHW.mjs +0 -3
- package/dist/Math-EEC7PMHW.mjs.map +0 -1
- package/dist/Maximize-ZHU7YIEF.mjs +0 -3
- package/dist/Maximize-ZHU7YIEF.mjs.map +0 -1
- package/dist/Menu-OMFZ7P5V.mjs +0 -3
- package/dist/Menu-OMFZ7P5V.mjs.map +0 -1
- package/dist/MessageProgramming-AJDAIZ7B.mjs +0 -3
- package/dist/MessageProgramming-AJDAIZ7B.mjs.map +0 -1
- package/dist/Microphone-X7JCGHN3.mjs +0 -3
- package/dist/Microphone-X7JCGHN3.mjs.map +0 -1
- package/dist/Microphone2-RJ6GXHM2.mjs +0 -3
- package/dist/Microphone2-RJ6GXHM2.mjs.map +0 -1
- package/dist/MicrophoneSlash-WLZQN2Z6.mjs +0 -3
- package/dist/MicrophoneSlash-WLZQN2Z6.mjs.map +0 -1
- package/dist/MicrophoneSlash1-IYGIKAEL.mjs +0 -3
- package/dist/MicrophoneSlash1-IYGIKAEL.mjs.map +0 -1
- package/dist/Milk-KRNXTEF3.mjs +0 -3
- package/dist/Milk-KRNXTEF3.mjs.map +0 -1
- package/dist/Minus-QZERPPCK.mjs +0 -3
- package/dist/Minus-QZERPPCK.mjs.map +0 -1
- package/dist/MinusCirlce-A33IFK35.mjs +0 -3
- package/dist/MinusCirlce-A33IFK35.mjs.map +0 -1
- package/dist/MinusSquare-46UOCDXK.mjs +0 -3
- package/dist/MinusSquare-46UOCDXK.mjs.map +0 -1
- package/dist/Monitor-MJPET4JF.mjs +0 -3
- package/dist/Monitor-MJPET4JF.mjs.map +0 -1
- package/dist/Moon-BEA2XUGX.mjs +0 -3
- package/dist/Moon-BEA2XUGX.mjs.map +0 -1
- package/dist/MoreCircle-2NDIPFCF.mjs +0 -3
- package/dist/MoreCircle-2NDIPFCF.mjs.map +0 -1
- package/dist/MoreSquare-7NWRBPUM.mjs +0 -3
- package/dist/MoreSquare-7NWRBPUM.mjs.map +0 -1
- package/dist/Mouse-MRBU7VAB.mjs +0 -3
- package/dist/Mouse-MRBU7VAB.mjs.map +0 -1
- package/dist/MouseCircle-3PWPPTPV.mjs +0 -3
- package/dist/MouseCircle-3PWPPTPV.mjs.map +0 -1
- package/dist/MouseSquare-CCS4ZIYU.mjs +0 -3
- package/dist/MouseSquare-CCS4ZIYU.mjs.map +0 -1
- package/dist/Next-EGO2D2MH.mjs +0 -3
- package/dist/Next-EGO2D2MH.mjs.map +0 -1
- package/dist/Paperclip-DVVAJW2J.mjs +0 -3
- package/dist/Paperclip-DVVAJW2J.mjs.map +0 -1
- package/dist/Paperclip2-CPVT4PFG.mjs +0 -3
- package/dist/Paperclip2-CPVT4PFG.mjs.map +0 -1
- package/dist/PasswordCheck-RBAW3QLC.mjs +0 -3
- package/dist/PasswordCheck-RBAW3QLC.mjs.map +0 -1
- package/dist/Pause-4WGFF7DP.mjs +0 -3
- package/dist/Pause-4WGFF7DP.mjs.map +0 -1
- package/dist/PauseCircle-TWMPA5QW.mjs +0 -3
- package/dist/PauseCircle-TWMPA5QW.mjs.map +0 -1
- package/dist/People-5U2VM2FF.mjs +0 -3
- package/dist/People-5U2VM2FF.mjs.map +0 -1
- package/dist/Pet-H3CYUNUA.mjs +0 -3
- package/dist/Pet-H3CYUNUA.mjs.map +0 -1
- package/dist/Pharagraphspacing-DDLO7AJL.mjs +0 -3
- package/dist/Pharagraphspacing-DDLO7AJL.mjs.map +0 -1
- package/dist/Play-2YQV6TNO.mjs +0 -3
- package/dist/Play-2YQV6TNO.mjs.map +0 -1
- package/dist/PlayCircle-RKDP5NYR.mjs +0 -3
- package/dist/PlayCircle-RKDP5NYR.mjs.map +0 -1
- package/dist/Previous-CR6OA6TB.mjs +0 -3
- package/dist/Previous-CR6OA6TB.mjs.map +0 -1
- package/dist/Printer-SZSIFHFB.mjs +0 -3
- package/dist/Printer-SZSIFHFB.mjs.map +0 -1
- package/dist/PrinterSlash-2RZLBNZP.mjs +0 -3
- package/dist/PrinterSlash-2RZLBNZP.mjs.map +0 -1
- package/dist/Profile-UTQTIUNC.mjs +0 -3
- package/dist/Profile-UTQTIUNC.mjs.map +0 -1
- package/dist/Profile2User-7E7JN25F.mjs +0 -3
- package/dist/Profile2User-7E7JN25F.mjs.map +0 -1
- package/dist/ProfileAdd-VBIS5UNL.mjs +0 -3
- package/dist/ProfileAdd-VBIS5UNL.mjs.map +0 -1
- package/dist/ProfileCircle-A252EU4D.mjs +0 -3
- package/dist/ProfileCircle-A252EU4D.mjs.map +0 -1
- package/dist/ProfileDelete-67BC3HWJ.mjs +0 -3
- package/dist/ProfileDelete-67BC3HWJ.mjs.map +0 -1
- package/dist/ProfileRemove-66OWFHC2.mjs +0 -3
- package/dist/ProfileRemove-66OWFHC2.mjs.map +0 -1
- package/dist/ProfileTick-CCULMZDF.mjs +0 -3
- package/dist/ProfileTick-CCULMZDF.mjs.map +0 -1
- package/dist/ProgrammingArrow-DHWZI2LW.mjs +0 -3
- package/dist/ProgrammingArrow-DHWZI2LW.mjs.map +0 -1
- package/dist/QuoteDown-2ORQIV5W.mjs +0 -3
- package/dist/QuoteDown-2ORQIV5W.mjs.map +0 -1
- package/dist/QuoteDownCircle-VMIPRFA4.mjs +0 -3
- package/dist/QuoteDownCircle-VMIPRFA4.mjs.map +0 -1
- package/dist/QuoteDownSquare-XGXP6IXB.mjs +0 -3
- package/dist/QuoteDownSquare-XGXP6IXB.mjs.map +0 -1
- package/dist/QuoteUp-M5SVDOFP.mjs +0 -3
- package/dist/QuoteUp-M5SVDOFP.mjs.map +0 -1
- package/dist/QuoteUpCircle-OBJMUS2N.mjs +0 -3
- package/dist/QuoteUpCircle-OBJMUS2N.mjs.map +0 -1
- package/dist/QuoteUpSquare-YGZSLLNI.mjs +0 -3
- package/dist/QuoteUpSquare-YGZSLLNI.mjs.map +0 -1
- package/dist/Ranking-TSWNJAA7.mjs +0 -3
- package/dist/Ranking-TSWNJAA7.mjs.map +0 -1
- package/dist/ReceiptDiscount-7MFJEZ3Z.mjs +0 -3
- package/dist/ReceiptDiscount-7MFJEZ3Z.mjs.map +0 -1
- package/dist/ReceiptDisscount-5REVPP45.mjs +0 -3
- package/dist/ReceiptDisscount-5REVPP45.mjs.map +0 -1
- package/dist/ReceiptItem-7YDMDNLL.mjs +0 -3
- package/dist/ReceiptItem-7YDMDNLL.mjs.map +0 -1
- package/dist/ReceiptMinus-LSFDB4Z4.mjs +0 -3
- package/dist/ReceiptMinus-LSFDB4Z4.mjs.map +0 -1
- package/dist/ReceiveSquare-OKM5GDG7.mjs +0 -3
- package/dist/ReceiveSquare-OKM5GDG7.mjs.map +0 -1
- package/dist/ReceiveSquare2-5SSBZSPZ.mjs +0 -3
- package/dist/ReceiveSquare2-5SSBZSPZ.mjs.map +0 -1
- package/dist/Received-J6L62RMS.mjs +0 -3
- package/dist/Received-J6L62RMS.mjs.map +0 -1
- package/dist/Record-DVMRKUFN.mjs +0 -3
- package/dist/Record-DVMRKUFN.mjs.map +0 -1
- package/dist/RecordCircle-NMZMFS3L.mjs +0 -3
- package/dist/RecordCircle-NMZMFS3L.mjs.map +0 -1
- package/dist/Redo-24VUIDIV.mjs +0 -3
- package/dist/Redo-24VUIDIV.mjs.map +0 -1
- package/dist/Refresh-PF7VBWBQ.mjs +0 -3
- package/dist/Refresh-PF7VBWBQ.mjs.map +0 -1
- package/dist/Refresh2-R2CLGBZ2.mjs +0 -3
- package/dist/Refresh2-R2CLGBZ2.mjs.map +0 -1
- package/dist/RefreshCircle-HALAGIS2.mjs +0 -3
- package/dist/RefreshCircle-HALAGIS2.mjs.map +0 -1
- package/dist/RefreshLeftSquare-KBQYH7HU.mjs +0 -3
- package/dist/RefreshLeftSquare-KBQYH7HU.mjs.map +0 -1
- package/dist/RefreshRightSquare-QXRLFS4U.mjs +0 -3
- package/dist/RefreshRightSquare-QXRLFS4U.mjs.map +0 -1
- package/dist/RefreshSquare2-3LD3V777.mjs +0 -3
- package/dist/RefreshSquare2-3LD3V777.mjs.map +0 -1
- package/dist/Repeat-525X3G6P.mjs +0 -3
- package/dist/Repeat-525X3G6P.mjs.map +0 -1
- package/dist/RepeatCircle-6Z2HY3YD.mjs +0 -3
- package/dist/RepeatCircle-6Z2HY3YD.mjs.map +0 -1
- package/dist/RepeateMusic-LYGF23LR.mjs +0 -3
- package/dist/RepeateMusic-LYGF23LR.mjs.map +0 -1
- package/dist/RepeateOne-CW645R66.mjs +0 -3
- package/dist/RepeateOne-CW645R66.mjs.map +0 -1
- package/dist/RotateLeft-VP52763H.mjs +0 -3
- package/dist/RotateLeft-VP52763H.mjs.map +0 -1
- package/dist/RotateRight-BM2SKWJ5.mjs +0 -3
- package/dist/RotateRight-BM2SKWJ5.mjs.map +0 -1
- package/dist/SafeHome-BXUR4PQ7.mjs +0 -3
- package/dist/SafeHome-BXUR4PQ7.mjs.map +0 -1
- package/dist/Scan-VDWATMHG.mjs +0 -3
- package/dist/Scan-VDWATMHG.mjs.map +0 -1
- package/dist/SearchNormal-WVR2C47E.mjs +0 -3
- package/dist/SearchNormal-WVR2C47E.mjs.map +0 -1
- package/dist/SearchZoomIn-2DRWT6RO.mjs +0 -3
- package/dist/SearchZoomIn-2DRWT6RO.mjs.map +0 -1
- package/dist/SearchZoomOut-GWIHACEL.mjs +0 -3
- package/dist/SearchZoomOut-GWIHACEL.mjs.map +0 -1
- package/dist/Send-P3SQMEXQ.mjs +0 -3
- package/dist/Send-P3SQMEXQ.mjs.map +0 -1
- package/dist/Send2-ZZSHDBAJ.mjs +0 -3
- package/dist/Send2-ZZSHDBAJ.mjs.map +0 -1
- package/dist/SendSqaure2-SDSQK2MQ.mjs +0 -3
- package/dist/SendSqaure2-SDSQK2MQ.mjs.map +0 -1
- package/dist/SendSquare-SM3KXLRB.mjs +0 -3
- package/dist/SendSquare-SM3KXLRB.mjs.map +0 -1
- package/dist/Shield-LXHTDSP4.mjs +0 -3
- package/dist/Shield-LXHTDSP4.mjs.map +0 -1
- package/dist/ShieldCross-A5YO6NJD.mjs +0 -3
- package/dist/ShieldCross-A5YO6NJD.mjs.map +0 -1
- package/dist/ShieldSecurity-U3VBFZMO.mjs +0 -3
- package/dist/ShieldSecurity-U3VBFZMO.mjs.map +0 -1
- package/dist/ShieldSlash-PNJYGLYA.mjs +0 -3
- package/dist/ShieldSlash-PNJYGLYA.mjs.map +0 -1
- package/dist/ShieldTick-EYDNIDIJ.mjs +0 -3
- package/dist/ShieldTick-EYDNIDIJ.mjs.map +0 -1
- package/dist/Slack-K7NWXLO4.mjs +0 -3
- package/dist/Slack-K7NWXLO4.mjs.map +0 -1
- package/dist/Slash-PTH7I3VA.mjs +0 -3
- package/dist/Slash-PTH7I3VA.mjs.map +0 -1
- package/dist/Smallcaps-5CGXI2OD.mjs +0 -3
- package/dist/Smallcaps-5CGXI2OD.mjs.map +0 -1
- package/dist/SmartHome-XLYADTFL.mjs +0 -3
- package/dist/SmartHome-XLYADTFL.mjs.map +0 -1
- package/dist/Sort-E2GT57EG.mjs +0 -3
- package/dist/Sort-E2GT57EG.mjs.map +0 -1
- package/dist/Sound-QZEAORTF.mjs +0 -3
- package/dist/Sound-QZEAORTF.mjs.map +0 -1
- package/dist/Spotify-QZTGVT35.mjs +0 -3
- package/dist/Spotify-QZTGVT35.mjs.map +0 -1
- package/dist/Star-PIWRN7BK.mjs +0 -3
- package/dist/Star-PIWRN7BK.mjs.map +0 -1
- package/dist/Sticker-J7LX66EQ.mjs +0 -3
- package/dist/Sticker-J7LX66EQ.mjs.map +0 -1
- package/dist/Stop-CIBGGFGV.mjs +0 -3
- package/dist/Stop-CIBGGFGV.mjs.map +0 -1
- package/dist/StopCircle-BBG2CWUF.mjs +0 -3
- package/dist/StopCircle-BBG2CWUF.mjs.map +0 -1
- package/dist/Story-QYYFT37P.mjs +0 -3
- package/dist/Story-QYYFT37P.mjs.map +0 -1
- package/dist/Sun-K7UA4TWU.mjs +0 -3
- package/dist/Sun-K7UA4TWU.mjs.map +0 -1
- package/dist/TagCross-PT7W3LE4.mjs +0 -3
- package/dist/TagCross-PT7W3LE4.mjs.map +0 -1
- package/dist/TagUser-ASQTTKIX.mjs +0 -3
- package/dist/TagUser-ASQTTKIX.mjs.map +0 -1
- package/dist/Teacher-EPPWX6CR.mjs +0 -3
- package/dist/Teacher-EPPWX6CR.mjs.map +0 -1
- package/dist/Text-US25RWNI.mjs +0 -3
- package/dist/Text-US25RWNI.mjs.map +0 -1
- package/dist/TextBlock-YQEYAPYA.mjs +0 -3
- package/dist/TextBlock-YQEYAPYA.mjs.map +0 -1
- package/dist/TextBold-CMVI56IO.mjs +0 -3
- package/dist/TextBold-CMVI56IO.mjs.map +0 -1
- package/dist/TextItalic-KJUMX7S6.mjs +0 -3
- package/dist/TextItalic-KJUMX7S6.mjs.map +0 -1
- package/dist/TextUnderline-KORJCL3L.mjs +0 -3
- package/dist/TextUnderline-KORJCL3L.mjs.map +0 -1
- package/dist/TextalignCenter-FXUXYHAX.mjs +0 -3
- package/dist/TextalignCenter-FXUXYHAX.mjs.map +0 -1
- package/dist/TextalignJustifycenter-IECWBOTP.mjs +0 -3
- package/dist/TextalignJustifycenter-IECWBOTP.mjs.map +0 -1
- package/dist/TextalignJustifyleft-ARICIXJB.mjs +0 -3
- package/dist/TextalignJustifyleft-ARICIXJB.mjs.map +0 -1
- package/dist/TextalignJustifyright-6BDZEGME.mjs +0 -3
- package/dist/TextalignJustifyright-6BDZEGME.mjs.map +0 -1
- package/dist/TextalignLeft-QAVX4LZ4.mjs +0 -3
- package/dist/TextalignLeft-QAVX4LZ4.mjs.map +0 -1
- package/dist/TextalignRight-XT6NB3WJ.mjs +0 -3
- package/dist/TextalignRight-XT6NB3WJ.mjs.map +0 -1
- package/dist/TickCircle-4JWHEMMI.mjs +0 -3
- package/dist/TickCircle-4JWHEMMI.mjs.map +0 -1
- package/dist/TickSquare-VA3EIOX7.mjs +0 -3
- package/dist/TickSquare-VA3EIOX7.mjs.map +0 -1
- package/dist/Ticket-DOMCU6MW.mjs +0 -3
- package/dist/Ticket-DOMCU6MW.mjs.map +0 -1
- package/dist/TicketDiscount-ZVZUOCRN.mjs +0 -3
- package/dist/TicketDiscount-ZVZUOCRN.mjs.map +0 -1
- package/dist/Translate-VDDWZG7F.mjs +0 -3
- package/dist/Translate-VDDWZG7F.mjs.map +0 -1
- package/dist/Trash-WZORNB4E.mjs +0 -3
- package/dist/Trash-WZORNB4E.mjs.map +0 -1
- package/dist/Triangle-Q3H7YAZW.mjs +0 -3
- package/dist/Triangle-Q3H7YAZW.mjs.map +0 -1
- package/dist/TrushSquare-S6ZCYHQL.mjs +0 -3
- package/dist/TrushSquare-S6ZCYHQL.mjs.map +0 -1
- package/dist/Undo-5YA4HBJL.mjs +0 -3
- package/dist/Undo-5YA4HBJL.mjs.map +0 -1
- package/dist/Unlimited-UYPPTOJK.mjs +0 -3
- package/dist/Unlimited-UYPPTOJK.mjs.map +0 -1
- package/dist/Unlock-5B6LVBFN.mjs +0 -3
- package/dist/Unlock-5B6LVBFN.mjs.map +0 -1
- package/dist/User-KLJLNXAW.mjs +0 -3
- package/dist/User-KLJLNXAW.mjs.map +0 -1
- package/dist/UserAdd-UOEKYPRY.mjs +0 -3
- package/dist/UserAdd-UOEKYPRY.mjs.map +0 -1
- package/dist/UserCirlceAdd-VA7KCSAW.mjs +0 -3
- package/dist/UserCirlceAdd-VA7KCSAW.mjs.map +0 -1
- package/dist/UserEdit-QMOLCXRQ.mjs +0 -3
- package/dist/UserEdit-QMOLCXRQ.mjs.map +0 -1
- package/dist/UserMinus-MGZ5S2HA.mjs +0 -3
- package/dist/UserMinus-MGZ5S2HA.mjs.map +0 -1
- package/dist/UserOctagon-JUYJJFUL.mjs +0 -3
- package/dist/UserOctagon-JUYJJFUL.mjs.map +0 -1
- package/dist/UserRemove-G7MKYUEN.mjs +0 -3
- package/dist/UserRemove-G7MKYUEN.mjs.map +0 -1
- package/dist/UserSearch-LJXRZNAS.mjs +0 -3
- package/dist/UserSearch-LJXRZNAS.mjs.map +0 -1
- package/dist/UserSquare-Q3FP253V.mjs +0 -3
- package/dist/UserSquare-Q3FP253V.mjs.map +0 -1
- package/dist/UserTag-ICUR5C4V.mjs +0 -3
- package/dist/UserTag-ICUR5C4V.mjs.map +0 -1
- package/dist/UserTick-3TXGN3E4.mjs +0 -3
- package/dist/UserTick-3TXGN3E4.mjs.map +0 -1
- package/dist/Verify-DE6QVJRE.mjs +0 -3
- package/dist/Verify-DE6QVJRE.mjs.map +0 -1
- package/dist/Video-2QGRNG3O.mjs +0 -3
- package/dist/Video-2QGRNG3O.mjs.map +0 -1
- package/dist/VideoCircle-OHD4MRL3.mjs +0 -3
- package/dist/VideoCircle-OHD4MRL3.mjs.map +0 -1
- package/dist/VideoPlay-666B4R2A.mjs +0 -3
- package/dist/VideoPlay-666B4R2A.mjs.map +0 -1
- package/dist/VideoSlash-53J47SKL.mjs +0 -3
- package/dist/VideoSlash-53J47SKL.mjs.map +0 -1
- package/dist/VideoSquare-R6EYB4LH.mjs +0 -3
- package/dist/VideoSquare-R6EYB4LH.mjs.map +0 -1
- package/dist/VoiceSquare-T7WNIKWE.mjs +0 -3
- package/dist/VoiceSquare-T7WNIKWE.mjs.map +0 -1
- package/dist/VolumeCross-BYSHSG6X.mjs +0 -3
- package/dist/VolumeCross-BYSHSG6X.mjs.map +0 -1
- package/dist/VolumeHigh-IGUFYHSL.mjs +0 -3
- package/dist/VolumeHigh-IGUFYHSL.mjs.map +0 -1
- package/dist/VolumeLow-UE3BAWDV.mjs +0 -3
- package/dist/VolumeLow-UE3BAWDV.mjs.map +0 -1
- package/dist/VolumeLow1-EO6JGVE6.mjs +0 -3
- package/dist/VolumeLow1-EO6JGVE6.mjs.map +0 -1
- package/dist/VolumeMute-UFETKTFO.mjs +0 -3
- package/dist/VolumeMute-UFETKTFO.mjs.map +0 -1
- package/dist/VolumeSlash-5SN2ESOX.mjs +0 -3
- package/dist/VolumeSlash-5SN2ESOX.mjs.map +0 -1
- package/dist/VolumeUp-2ZUORG3U.mjs +0 -3
- package/dist/VolumeUp-2ZUORG3U.mjs.map +0 -1
- package/dist/Warning2-HGWJQGXZ.mjs +0 -3
- package/dist/Warning2-HGWJQGXZ.mjs.map +0 -1
- package/dist/Whatsapp-SMQLL7JP.mjs +0 -3
- package/dist/Whatsapp-SMQLL7JP.mjs.map +0 -1
- package/dist/Wifi-ZVCJIIUD.mjs +0 -3
- package/dist/Wifi-ZVCJIIUD.mjs.map +0 -1
- package/dist/WifiSquare-PWL2NWJ2.mjs +0 -3
- package/dist/WifiSquare-PWL2NWJ2.mjs.map +0 -1
- package/dist/Windows-OTGPOV5B.mjs +0 -3
- package/dist/Windows-OTGPOV5B.mjs.map +0 -1
- package/dist/Youtube-UJ7IX23L.mjs +0 -3
- package/dist/Youtube-UJ7IX23L.mjs.map +0 -1
- package/dist/advanced-motion.d.mts +0 -93
- package/dist/advanced-motion.js +0 -2
- package/dist/advanced-motion.js.map +0 -1
- package/dist/advanced-motion.mjs +0 -2
- package/dist/advanced-motion.mjs.map +0 -1
- package/dist/chunk-36N7GXIA.mjs +0 -2
- package/dist/chunk-36N7GXIA.mjs.map +0 -1
- package/dist/chunk-57XAC4ZA.mjs +0 -2
- package/dist/chunk-57XAC4ZA.mjs.map +0 -1
- package/dist/chunk-6JWIMJDJ.mjs +0 -2
- package/dist/chunk-6JWIMJDJ.mjs.map +0 -1
- package/dist/chunk-7QQMY5I2.mjs +0 -2
- package/dist/chunk-7QQMY5I2.mjs.map +0 -1
- package/dist/chunk-DMLVCGZL.mjs +0 -2
- package/dist/chunk-DMLVCGZL.mjs.map +0 -1
- package/dist/chunk-DP2CN36N.mjs +0 -2
- package/dist/chunk-DP2CN36N.mjs.map +0 -1
- package/dist/chunk-EE2MW3B5.mjs +0 -2
- package/dist/chunk-EE2MW3B5.mjs.map +0 -1
- package/dist/chunk-O5U2T64X.mjs +0 -2
- package/dist/chunk-O5U2T64X.mjs.map +0 -1
- package/dist/chunk-UHN7T3BX.mjs +0 -2
- package/dist/chunk-UHN7T3BX.mjs.map +0 -1
- package/dist/chunk-ULNG6SWK.mjs +0 -2
- package/dist/chunk-ULNG6SWK.mjs.map +0 -1
- package/dist/chunk-V65I7CVX.mjs +0 -2
- package/dist/chunk-V65I7CVX.mjs.map +0 -1
- package/dist/chunk-WSA7CYMB.mjs +0 -2
- package/dist/chunk-WSA7CYMB.mjs.map +0 -1
- package/dist/chunk-X3YDLY2H.mjs +0 -2
- package/dist/chunk-X3YDLY2H.mjs.map +0 -1
- package/dist/chunk-XJAQ7MK5.mjs +0 -2
- package/dist/chunk-XJAQ7MK5.mjs.map +0 -1
- package/dist/chunk-Z45QNK2S.mjs +0 -2
- package/dist/chunk-Z45QNK2S.mjs.map +0 -1
- package/dist/dashboard-MmFfZs15.d.mts +0 -1882
- package/dist/icons-DcEq-9hv.d.mts +0 -136
- package/dist/iconsax-icon-names-OC4Z7756.mjs +0 -273
- package/dist/iconsax-icon-names-OC4Z7756.mjs.map +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {a}from'./chunk-UUHAXGMO.mjs';import o from'react';import {jsx,jsxs}from'react/jsx-runtime';var n=o.forwardRef(({className:a$1,variant:r="default",title:t,description:i,icon:d,action:c,closable:u=false,onClose:f,children:m,...v},b)=>{let p=()=>{switch(r){case "success":return "bg-green-500/10 backdrop-blur-sm border-green-400/30 text-green-200 dark:bg-green-500/10 dark:border-green-400/30 dark:text-green-200";case "warning":return "bg-yellow-500/10 backdrop-blur-sm border-yellow-400/30 text-yellow-200 dark:bg-yellow-500/10 dark:border-yellow-400/30 dark:text-yellow-200";case "error":return "bg-red-500/10 backdrop-blur-sm border-red-400/30 text-red-200 dark:bg-red-500/10 dark:border-red-400/30 dark:text-red-200";case "info":return "bg-indigo-500/10 backdrop-blur-sm border-cyan-400/30 text-cyan-200 dark:bg-indigo-500/10 dark:border-cyan-400/30 dark:text-cyan-200";default:return "bg-white/10 backdrop-blur-sm border-white/30 text-white dark:bg-slate-800/20 dark:border-slate-700/50 dark:text-slate-200"}},g=()=>{switch(r){case "success":return "text-green-500 dark:text-green-400";case "warning":return "text-yellow-500 dark:text-yellow-400";case "error":return "text-red-500 dark:text-red-400";case "info":return "text-cyan-500 dark:text-cyan-400";default:return "text-gray-500 dark:text-gray-400"}},k=()=>{switch(r){case "success":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})});case "warning":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})});case "error":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})});case "info":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})});default:return null}};return jsx("div",{ref:b,className:a("relative rounded-lg border p-4",p(),a$1),...v,children:jsxs("div",{className:"flex items-start gap-3",children:[" ",(d||k())&&jsx("div",{className:a("flex-shrink-0 mt-0.5",g()),children:d||k()}),jsxs("div",{className:"flex-1 min-w-0",children:[t&&jsxs("h4",{className:"text-sm font-semibold mb-1",children:[" ",t]}),i&&jsx("p",{className:"text-sm leading-relaxed",children:i}),m&&jsxs("div",{className:"mt-2",children:[" ",m]})]}),(c||u)&&jsxs("div",{className:"flex-shrink-0 flex items-center gap-2",children:[" ",c,u&&jsx("button",{onClick:f,className:a("inline-flex rounded-md p-1.5 transition-colors duration-200 ease-in-out hover:bg-black/5 dark:hover:bg-white/5 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2",g()),"aria-label":"\uB2EB\uAE30",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]})})});n.displayName="Alert";var x=o.forwardRef(({className:a,...r},t)=>jsx(n,{ref:t,variant:"success",className:a,...r}));x.displayName="AlertSuccess";var w=o.forwardRef(({className:a,...r},t)=>jsx(n,{ref:t,variant:"warning",className:a,...r}));w.displayName="AlertWarning";var h=o.forwardRef(({className:a,...r},t)=>jsx(n,{ref:t,variant:"error",className:a,...r}));h.displayName="AlertError";var N=o.forwardRef(({className:a,...r},t)=>jsx(n,{ref:t,variant:"info",className:a,...r}));N.displayName="AlertInfo";export{n as a,x as b,w as c,h as d,N as e};//# sourceMappingURL=chunk-JBC2S6TU.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-JBC2S6TU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Alert.tsx"],"names":["Alert","React","className","variant","title","description","icon","action","closable","onClose","children","props","ref","getVariantClasses","getIconClasses","getDefaultIcon","jsx","merge","jsxs","AlertSuccess","AlertWarning","AlertError","AlertInfo"],"mappings":"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","file":"chunk-JBC2S6TU.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Alert 컴포넌트의 props\n * @typedef {Object} AlertProps\n * @property {\"default\" | \"success\" | \"warning\" | \"error\" | \"info\"} [variant=\"default\"] - Alert 스타일 변형\n * @property {string} [title] - Alert 제목\n * @property {string} [description] - Alert 설명\n * @property {React.ReactNode} [icon] - 커스텀 아이콘\n * @property {React.ReactNode} [action] - 액션 버튼/요소\n * @property {boolean} [closable=false] - 닫기 버튼 표시 여부\n * @property {() => void} [onClose] - 닫기 버튼 클릭 시 호출되는 콜백\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"default\" | \"success\" | \"warning\" | \"error\" | \"info\"\n title?: string\n description?: string\n icon?: React.ReactNode\n action?: React.ReactNode\n closable?: boolean\n onClose?: () => void\n}\n\n/**\n * Alert 컴포넌트 / Alert component\n * \n * 사용자에게 중요한 정보나 경고를 표시하는 컴포넌트입니다.\n * 다양한 변형(variant)을 지원하며, 아이콘, 제목, 설명, 액션 버튼을 포함할 수 있습니다.\n * \n * Component for displaying important information or warnings to users.\n * Supports various variants and can include icons, titles, descriptions, and action buttons.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Alert variant=\"info\" title=\"정보\" description=\"이것은 정보 메시지입니다.\" />\n * \n * @example\n * // 닫기 버튼 포함 / With close button\n * <Alert \n * variant=\"warning\" \n * title=\"경고\" \n * closable \n * onClose={() => console.log('닫기')}\n * />\n * \n * @example\n * // 커스텀 아이콘과 액션 / Custom icon and action\n * <Alert \n * variant=\"success\"\n * icon={<Icon name=\"check\" />}\n * action={<Button size=\"sm\">확인</Button>}\n * >\n * 작업이 완료되었습니다.\n * </Alert>\n * \n * @param {AlertProps} props - Alert 컴포넌트의 props / Alert component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Alert 컴포넌트 / Alert component\n */\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ \n className, \n variant = \"default\",\n title,\n description,\n icon,\n action,\n closable = false,\n onClose,\n children,\n ...props \n }, ref) => {\n const getVariantClasses = () => {\n switch (variant) {\n case \"success\":\n return \"bg-green-500/10 backdrop-blur-sm border-green-400/30 text-green-200 dark:bg-green-500/10 dark:border-green-400/30 dark:text-green-200\"\n case \"warning\":\n return \"bg-yellow-500/10 backdrop-blur-sm border-yellow-400/30 text-yellow-200 dark:bg-yellow-500/10 dark:border-yellow-400/30 dark:text-yellow-200\"\n case \"error\":\n return \"bg-red-500/10 backdrop-blur-sm border-red-400/30 text-red-200 dark:bg-red-500/10 dark:border-red-400/30 dark:text-red-200\"\n case \"info\":\n return \"bg-indigo-500/10 backdrop-blur-sm border-cyan-400/30 text-cyan-200 dark:bg-indigo-500/10 dark:border-cyan-400/30 dark:text-cyan-200\"\n default:\n return \"bg-white/10 backdrop-blur-sm border-white/30 text-white dark:bg-slate-800/20 dark:border-slate-700/50 dark:text-slate-200\"\n }\n }\n\n const getIconClasses = () => {\n switch (variant) {\n case \"success\":\n return \"text-green-500 dark:text-green-400\"\n case \"warning\":\n return \"text-yellow-500 dark:text-yellow-400\"\n case \"error\":\n return \"text-red-500 dark:text-red-400\"\n case \"info\":\n return \"text-cyan-500 dark:text-cyan-400\"\n default:\n return \"text-gray-500 dark:text-gray-400\"\n }\n }\n\n const getDefaultIcon = () => {\n switch (variant) {\n case \"success\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n )\n case \"warning\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z\" />\n </svg>\n )\n case \"error\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n )\n case \"info\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n )\n default:\n return null\n }\n }\n\n return (\n <div\n ref={ref}\n className={merge(\n \"relative rounded-lg border p-4\", // 16px 패딩\n getVariantClasses(),\n className\n )}\n {...props}\n >\n <div className=\"flex items-start gap-3\"> {/* 12px 간격 */}\n {/* 아이콘 */}\n {(icon || getDefaultIcon()) && (\n <div className={merge(\"flex-shrink-0 mt-0.5\", getIconClasses())}>\n {icon || getDefaultIcon()}\n </div>\n )}\n\n {/* 내용 */}\n <div className=\"flex-1 min-w-0\">\n {title && (\n <h4 className=\"text-sm font-semibold mb-1\"> {/* 4px 여백 */}\n {title}\n </h4>\n )}\n {description && (\n <p className=\"text-sm leading-relaxed\">\n {description}\n </p>\n )}\n {children && (\n <div className=\"mt-2\"> {/* 8px 여백 */}\n {children}\n </div>\n )}\n </div>\n\n {/* 액션 */}\n {(action || closable) && (\n <div className=\"flex-shrink-0 flex items-center gap-2\"> {/* 8px 간격 */}\n {action}\n {closable && (\n <button\n onClick={onClose}\n className={merge(\n \"inline-flex rounded-md p-1.5 transition-colors duration-200 ease-in-out hover:bg-black/5 dark:hover:bg-white/5 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2\",\n getIconClasses()\n )}\n aria-label=\"닫기\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n )}\n </div>\n </div>\n )\n }\n)\nAlert.displayName = \"Alert\"\n\n// 편의 컴포넌트들\nexport const AlertSuccess = React.forwardRef<HTMLDivElement, Omit<AlertProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Alert ref={ref} variant=\"success\" className={className} {...props} />\n )\n)\nAlertSuccess.displayName = \"AlertSuccess\"\n\nexport const AlertWarning = React.forwardRef<HTMLDivElement, Omit<AlertProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Alert ref={ref} variant=\"warning\" className={className} {...props} />\n )\n)\nAlertWarning.displayName = \"AlertWarning\"\n\nexport const AlertError = React.forwardRef<HTMLDivElement, Omit<AlertProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Alert ref={ref} variant=\"error\" className={className} {...props} />\n )\n)\nAlertError.displayName = \"AlertError\"\n\nexport const AlertInfo = React.forwardRef<HTMLDivElement, Omit<AlertProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Alert ref={ref} variant=\"info\" className={className} {...props} />\n )\n)\nAlertInfo.displayName = \"AlertInfo\"\n\nexport { Alert } "]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {a}from'./chunk-UUHAXGMO.mjs';import o from'react';import {createPortal}from'react-dom';import {jsxs,jsx}from'react/jsx-runtime';function $(...d){return o.useCallback(r=>{d.forEach(t=>{t&&(typeof t=="function"?t(r):t.current=r);});},d)}var B=o.forwardRef(({className:d,isOpen:r,onClose:t,children:v,size:y="md",closable:s,showCloseButton:m,closeOnOverlayClick:x=true,title:a$1,description:c,showBackdrop:p=true,backdropClassName:h,centered:k=true},w)=>{var g;let N=(g=s!=null?s:m)!=null?g:true,R=o.useRef(null),M=$(w,R);o.useEffect(()=>{let n=u=>{u.key==="Escape"&&t();};if(r){document.addEventListener("keydown",n);let u=window.innerWidth-document.documentElement.clientWidth;document.body.style.overflow="hidden",document.body.style.paddingRight=`${u}px`;}return ()=>{document.removeEventListener("keydown",n),document.body.style.overflow="unset",document.body.style.paddingRight="unset";}},[r,t]);let E=n=>{x&&n.target===n.currentTarget&&t();},C={sm:"max-w-xs",md:"max-w-sm",lg:"max-w-md",xl:"max-w-lg","2xl":"max-w-xl","3xl":"max-w-2xl"},L=o.useId(),T=o.useId(),b=a$1?`modal-title-${L}`:void 0,f=c?`modal-description-${T}`:void 0,[z,I]=o.useState(false);if(o.useEffect(()=>{I(true);},[]),!r)return null;let W=jsxs("div",{className:a("fixed inset-0 z-50 overflow-y-auto",d),onClick:E,role:"dialog","aria-modal":"true","aria-labelledby":b,"aria-describedby":f,children:[p&&jsx("div",{className:a("fixed inset-0 bg-black/60 backdrop-blur-md transition-opacity duration-300 pointer-events-none",h)}),jsx("div",{className:a("flex h-full justify-center p-4",k?"items-center":"items-start pt-16"),children:jsxs("div",{ref:M,className:a("relative bg-[var(--modal-bg)] rounded-lg shadow-2xl border border-[var(--modal-border)] transform transition-all duration-300 ease-out",C[y]),style:{animation:"modalSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1)"},children:[a$1&&jsxs("div",{className:"relative z-10 px-6 pt-6 pb-4 border-b border-gray-200/50 dark:border-gray-700/50",children:[jsxs("div",{className:"flex items-center justify-between gap-4 mb-2",children:[jsx("h2",{id:b,className:"text-xl font-semibold text-gray-900 dark:text-white flex-1 min-w-0",children:a$1}),N&&jsx("button",{onClick:t,className:"flex-shrink-0 p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300 transition-all duration-200 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-400 focus-visible:ring-offset-2 z-20","aria-label":"\uB2EB\uAE30",children:jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),c&&jsx("p",{id:f,className:"text-sm text-gray-600 dark:text-gray-400",children:c})]}),!a$1&&m&&jsx("button",{onClick:t,className:"absolute top-4 right-4 p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300 transition-all duration-200 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-400 focus-visible:ring-offset-2 z-20","aria-label":"\uB2EB\uAE30",children:jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),jsx("div",{className:`relative z-10 ${a$1?"px-6 mb-6":"p-6"}`,children:v})]})})]});return z&&typeof document!="undefined"?createPortal(W,document.body):null});B.displayName="Modal";export{B as a};//# sourceMappingURL=chunk-KXXIT5HL.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-KXXIT5HL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Modal.tsx"],"names":["useCombinedRefs","refs","React","node","ref","Modal","className","isOpen","onClose","children","size","closable","showCloseButton","closeOnOverlayClick","title","description","showBackdrop","backdropClassName","centered","_a","_closable","modalRef","combinedRef","handleEscape","e","scrollbarWidth","handleOverlayClick","sizeClasses","generatedTitleId","generatedDescId","titleId","descriptionId","mounted","setMounted","modalContent","jsxs","merge","jsx","createPortal"],"mappings":"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","file":"chunk-KXXIT5HL.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Modal 컴포넌트의 props / Modal component props\n * @typedef {Object} ModalProps\n * @property {boolean} isOpen - 모달 열림/닫힘 상태 / Modal open/close state\n * @property {() => void} onClose - 모달 닫기 콜백 함수 / Modal close callback function\n * @property {React.ReactNode} children - 모달 내용 / Modal content\n * @property {\"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\"} [size=\"md\"] - 모달 크기 / Modal size\n * @property {boolean} [showCloseButton=true] - 닫기 버튼 표시 여부 / Show close button\n * @property {boolean} [closeOnOverlayClick=true] - 오버레이 클릭 시 닫기 여부 / Close on overlay click\n * @property {string} [title] - 모달 제목 / Modal title\n * @property {string} [description] - 모달 설명 / Modal description\n * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay\n * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Additional CSS class for backdrop\n * @property {boolean} [centered=true] - 모달을 화면 중앙에 배치할지 여부 / Center modal on screen\n * @property {string} [className] - 모달 컨테이너 추가 CSS 클래스 / Additional CSS class for modal container\n */\nexport interface ModalProps {\n /** 모달 열림/닫힘 상태 / Modal open/close state */\n isOpen: boolean\n /** 모달 닫기 콜백 함수 / Modal close callback function */\n onClose: () => void\n /** 모달 내용 / Modal content */\n children: React.ReactNode\n /** 모달 크기 / Modal size */\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\"\n /** 닫기 버튼 표시 여부 / Show close button */\n closable?: boolean\n /** @deprecated use closable instead */\n showCloseButton?: boolean\n /** 오버레이 클릭 시 닫기 여부 / Close on overlay click */\n closeOnOverlayClick?: boolean\n /** 모달 제목 / Modal title */\n title?: string\n /** 모달 설명 / Modal description */\n description?: string\n /** 배경 오버레이 표시 여부 / Show backdrop overlay */\n showBackdrop?: boolean\n /** 배경 오버레이 추가 CSS 클래스 / Additional CSS class for backdrop */\n backdropClassName?: string\n /** 모달을 화면 중앙에 배치할지 여부 / Center modal on screen */\n centered?: boolean\n /** 모달 컨테이너 추가 CSS 클래스 / Additional CSS class for modal container */\n className?: string\n}\n\n// Ref 병합 유틸리티\nfunction useCombinedRefs<T>(...refs: (React.Ref<T> | undefined)[]): React.RefCallback<T> {\n return React.useCallback(\n (node: T) => {\n refs.forEach((ref) => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(node);\n } else {\n (ref as React.MutableRefObject<T | null>).current = node;\n }\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n refs\n );\n}\n\n/**\n * Modal 컴포넌트 / Modal component\n * \n * 오버레이와 함께 표시되는 모달 다이얼로그 컴포넌트입니다.\n * ESC 키로 닫기, 오버레이 클릭으로 닫기, 접근성 속성(ARIA)을 지원합니다.\n * \n * Modal dialog component displayed with overlay.\n * Supports closing with ESC key, overlay click, and ARIA accessibility attributes.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * const [isOpen, setIsOpen] = useState(false)\n * \n * <Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>\n * <p>모달 내용</p>\n * </Modal>\n * \n * @example\n * // 제목과 설명 포함 / With title and description\n * <Modal\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * title=\"확인\"\n * description=\"이 작업을 계속하시겠습니까?\"\n * >\n * <Button onClick={handleConfirm}>확인</Button>\n * </Modal>\n * \n * @example\n * // 큰 크기 모달 / Large size modal\n * <Modal\n * isOpen={isOpen}\n * onClose={() => setIsOpen(false)}\n * size=\"xl\"\n * closeOnOverlayClick={false}\n * >\n * <div>큰 모달 내용</div>\n * </Modal>\n * \n * @param {ModalProps} props - Modal 컴포넌트의 props / Modal component props\n * @param {React.Ref<HTMLDivElement>} ref - 모달 컨테이너 ref / Modal container ref\n * @returns {JSX.Element} Modal 컴포넌트 / Modal component\n */\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n ({\n className,\n isOpen,\n onClose,\n children,\n size = \"md\",\n closable,\n showCloseButton,\n closeOnOverlayClick = true,\n title,\n description,\n showBackdrop = true,\n backdropClassName,\n centered = true\n }, ref) => {\n // closable과 showCloseButton 둘 다 지원 (closable 우선)\n const _closable = closable ?? showCloseButton ?? true\n const modalRef = React.useRef<HTMLDivElement>(null)\n const combinedRef = useCombinedRefs(ref, modalRef)\n\n // ESC 키로 모달 닫기 및 스크롤 잠금 (화면 흔들림 방지)\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose()\n }\n }\n\n if (isOpen) {\n document.addEventListener(\"keydown\", handleEscape)\n // 스크롤바 너비 계산하여 padding 추가 (화면 흔들림 방지)\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n document.body.style.overflow = \"hidden\"\n document.body.style.paddingRight = `${scrollbarWidth}px`\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscape)\n document.body.style.overflow = \"unset\"\n document.body.style.paddingRight = \"unset\"\n }\n }, [isOpen, onClose])\n\n // 모달 외부 클릭으로 닫기\n const handleOverlayClick = (e: React.MouseEvent) => {\n if (closeOnOverlayClick && e.target === e.currentTarget) {\n onClose()\n }\n }\n\n // 모달 크기 클래스 (max-w 기반, 콘텐츠에 맞게 자연스럽게 축소)\n const sizeClasses = {\n sm: \"max-w-xs\", // 320px\n md: \"max-w-sm\", // 384px\n lg: \"max-w-md\", // 448px\n xl: \"max-w-lg\", // 512px\n \"2xl\": \"max-w-xl\", // 576px\n \"3xl\": \"max-w-2xl\" // 672px\n }\n\n // 접근성을 위한 ID 생성\n const generatedTitleId = React.useId()\n const generatedDescId = React.useId()\n const titleId = title ? `modal-title-${generatedTitleId}` : undefined;\n const descriptionId = description ? `modal-description-${generatedDescId}` : undefined;\n\n // SSR에서는 document가 없으므로 체크\n const [mounted, setMounted] = React.useState(false)\n React.useEffect(() => {\n setMounted(true)\n }, [])\n\n if (!isOpen) return null\n\n const modalContent = (\n <div\n className={merge(\n \"fixed inset-0 z-50 overflow-y-auto\",\n className\n )}\n onClick={handleOverlayClick}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n >\n {/* 배경 오버레이 - pointer-events-none으로 클릭이 뒤로 전달됨 */}\n {showBackdrop && (\n <div className={merge(\n \"fixed inset-0 bg-black/60 backdrop-blur-md transition-opacity duration-300 pointer-events-none\",\n backdropClassName\n )} />\n )}\n\n {/* 센터링 컨테이너 */}\n <div className={merge(\n \"flex h-full justify-center p-4\",\n centered ? \"items-center\" : \"items-start pt-16\"\n )}>\n {/* 모달 컨테이너 */}\n {/* CSS 변수 기반 배경색 (Tailwind v4 dark: + bg-* 충돌 우회) */}\n <div\n ref={combinedRef}\n className={merge(\n \"relative bg-[var(--modal-bg)] rounded-lg shadow-2xl border border-[var(--modal-border)] transform transition-all duration-300 ease-out\",\n sizeClasses[size]\n )}\n style={{\n animation: \"modalSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1)\"\n }}\n >\n \n {/* 헤더 */}\n {title && (\n <div className=\"relative z-10 px-6 pt-6 pb-4 border-b border-gray-200/50 dark:border-gray-700/50\">\n {/* 타이틀과 닫기 버튼 - 같은 줄, 양쪽 끝 */}\n <div className=\"flex items-center justify-between gap-4 mb-2\">\n <h2 id={titleId} className=\"text-xl font-semibold text-gray-900 dark:text-white flex-1 min-w-0\">{title}</h2>\n {/* 닫기 버튼 - 타이틀과 같은 계층의 오른쪽 끝 */}\n {_closable && (\n <button\n onClick={onClose}\n className=\"flex-shrink-0 p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300 transition-all duration-200 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-400 focus-visible:ring-offset-2 z-20\"\n aria-label=\"닫기\"\n >\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n {/* 설명 - 아래 줄 */}\n {description && (\n <p id={descriptionId} className=\"text-sm text-gray-600 dark:text-gray-400\">{description}</p>\n )}\n </div>\n )}\n\n {/* 타이틀이 없을 때만 별도 닫기 버튼 */}\n {!title && showCloseButton && (\n <button\n onClick={onClose}\n className=\"absolute top-4 right-4 p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300 transition-all duration-200 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-400 focus-visible:ring-offset-2 z-20\"\n aria-label=\"닫기\"\n >\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n )}\n \n {/* 모달 내용 */}\n <div className={`relative z-10 ${title ? 'px-6 mb-6' : 'p-6'}`}>\n {children}\n </div>\n </div>\n </div>\n </div>\n )\n\n // 브라우저에서만 createPortal 사용 (SSR 호환)\n if (mounted && typeof document !== 'undefined') {\n return createPortal(modalContent, document.body)\n }\n\n // SSR fallback - 그냥 렌더링 (첫 렌더링에는 보이지 않음)\n return null\n})\n\nModal.displayName = \"Modal\" "]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {l}from'./chunk-EQIWSOL7.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import f from'react';import {jsx,jsxs}from'react/jsx-runtime';var N=f.forwardRef(({children:i,className:r,type:s="single",defaultValue:o,value:n,onValueChange:c,collapsible:g=false,...v},m)=>{let[l,d]=f.useState(n?Array.isArray(n)?n:[n]:o?Array.isArray(o)?o:[o]:[]);f.useEffect(()=>{n!==void 0&&d(Array.isArray(n)?n:[n]);},[n]);let y=e=>{let t;s==="single"?l.includes(e)?t=g?[]:l:t=[e]:l.includes(e)?t=l.filter(a=>a!==e):t=[...l,e],d(t),c==null||c(s==="single"?t[0]||"":t);},b=f.useMemo(()=>{let e=[];return f.Children.forEach(i,t=>{if(f.isValidElement(t)){let a=t.props;a.value&&e.push(a.value);}}),e},[i]),h=e=>{var P;let t=e.target;if(!t.hasAttribute("data-accordion-trigger"))return;let a=t.getAttribute("data-accordion-value");if(!a)return;let T=b.indexOf(a);if(T===-1)return;let x=T;if(e.key==="ArrowDown"?(e.preventDefault(),x=T<b.length-1?T+1:0):e.key==="ArrowUp"?(e.preventDefault(),x=T>0?T-1:b.length-1):e.key==="Home"?(e.preventDefault(),x=0):e.key==="End"&&(e.preventDefault(),x=b.length-1),x!==T&&b[x]){let A=(P=t.closest("[data-accordion-item]"))==null?void 0:P.querySelector(`[data-accordion-value="${b[x]}"]`);A==null||A.focus();}};return jsx("div",{ref:m,className:a("space-y-2",r),onKeyDown:h,...v,children:f.Children.map(i,e=>f.isValidElement(e)?f.cloneElement(e,{openItems:l,onToggle:y}):e)})});N.displayName="Accordion";var M=f.forwardRef(({value:i,children:r,className:s,disabled:o=false,openItems:n=[],onToggle:c,...g},v)=>{let m=n.includes(i);return jsx("div",{ref:v,"data-accordion-item":true,className:a("border border-gray-200/50 dark:border-gray-700/50 rounded-lg overflow-hidden",o&&"opacity-50 pointer-events-none",s),...g,children:f.Children.map(r,l=>f.isValidElement(l)?f.cloneElement(l,{value:i,isOpen:m,disabled:o,onToggle:()=>c==null?void 0:c(i),"data-accordion-value":i}):l)})});M.displayName="AccordionItem";var I=f.forwardRef(({children:i,className:r,icon:s,iconPosition:o="right",value:n,isOpen:c=false,disabled:g=false,onToggle:v,...m},l$1)=>{let d=jsx(l,{name:"chevronDown",size:20,className:a("transition-transform duration-300 ease-out text-gray-500 dark:text-gray-400",c&&"rotate-180")}),y=`accordion-content-${n}`,b=`accordion-trigger-${n}`;return jsxs("button",{ref:l$1,id:b,"data-accordion-trigger":true,"data-accordion-value":n,"aria-expanded":c,"aria-controls":y,onClick:v,disabled:g,className:a("flex w-full items-center justify-between px-6 py-4 text-left font-medium transition-all hover:bg-gray-50/80 dark:hover:bg-gray-800/80 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",r),...m,children:[jsxs("div",{className:"flex items-center gap-3 flex-1",children:[o==="left"&&(s||d),jsx("span",{className:"flex-1",children:i})]}),o==="right"&&(s||d)]})});I.displayName="AccordionTrigger";var C=f.forwardRef(({children:i,className:r,isOpen:s=false,value:o,"data-accordion-value":n,...c},g)=>{let[v,m]=f.useState(0),l=f.useRef(null),d=o||n||"unknown";f.useEffect(()=>{l.current&&m(s?l.current.scrollHeight:0);},[s,i]);let y=`accordion-trigger-${d}`,b=`accordion-content-${d}`;return jsx("div",{ref:g,id:b,role:"region","aria-labelledby":y,hidden:!s,className:"overflow-hidden transition-all duration-300 ease-out",style:{height:`${v}px`},...c,children:jsx("div",{ref:l,className:a("px-6 pt-2 pb-4",r),children:i})})});C.displayName="AccordionContent";var H=f.forwardRef(({className:i,value:r,active:s,children:o,...n},c)=>s===false?null:jsx("div",{ref:c,role:"tabpanel",id:`tabpanel-${r}`,"aria-labelledby":`tab-${r}`,hidden:!s,className:a("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",i),...n,children:o}));H.displayName="TabsContent";var E=f.forwardRef(({className:i,value:r,defaultValue:s,onValueChange:o,orientation:n="horizontal",variant:c="default",size:g="md",children:v,...m},l)=>{let[d,y]=f.useState(r||s||""),b=r!==void 0,h=b?r:d,e=t=>{b||y(t),o==null||o(t);};return f.useEffect(()=>{r!==void 0&&y(r);},[r]),jsx("div",{ref:l,className:a("w-full",n==="vertical"&&"flex",i),...m,children:f.Children.map(v,t=>{if(f.isValidElement(t)){if(t.type===H){let a=t.props;return f.cloneElement(t,{active:a.value===h})}if(t.type===L)return f.cloneElement(t,{value:h,onValueChange:e,orientation:n,variant:c,size:g});if(typeof t.type!="string")return f.cloneElement(t,{value:h,onValueChange:e,orientation:n,variant:c,size:g})}return t})})});E.displayName="Tabs";var L=f.forwardRef(({className:i,value:r,onValueChange:s,orientation:o="horizontal",variant:n="default",size:c="md",children:g,...v},m)=>{let l=f.useRef(null);f.useImperativeHandle(m,()=>l.current);let d=f.useMemo(()=>{let e=[];return f.Children.forEach(g,t=>{if(f.isValidElement(t)){let a=t.props;a.value&&e.push(a.value);}}),e},[g]),y=e=>{var T;if(!r||d.length===0)return;let t=d.indexOf(r);if(t===-1)return;let a=t;if(o==="horizontal"?e.key==="ArrowLeft"?(e.preventDefault(),a=t>0?t-1:d.length-1):e.key==="ArrowRight"?(e.preventDefault(),a=t<d.length-1?t+1:0):e.key==="Home"?(e.preventDefault(),a=0):e.key==="End"&&(e.preventDefault(),a=d.length-1):e.key==="ArrowUp"?(e.preventDefault(),a=t>0?t-1:d.length-1):e.key==="ArrowDown"?(e.preventDefault(),a=t<d.length-1?t+1:0):e.key==="Home"?(e.preventDefault(),a=0):e.key==="End"&&(e.preventDefault(),a=d.length-1),a!==t&&d[a]){s==null||s(d[a]);let x=(T=l.current)==null?void 0:T.querySelector(`[data-tab-value="${d[a]}"]`);x==null||x.focus();}},b=()=>{switch(n){case "pills":return "bg-gray-50 dark:bg-gray-800/80 p-3 rounded-xl border border-gray-200/50 dark:border-gray-700/50";case "underline":return "border-b border-gray-200 dark:border-gray-700";case "cards":return "bg-gray-50/80 dark:bg-gray-900/80 p-3 rounded-xl border border-gray-200/50 dark:border-gray-700/50";default:return "bg-gray-50 dark:bg-gray-800/80 p-3 rounded-xl border border-gray-200/50 dark:border-gray-700/50"}},h=()=>{switch(c){case "sm":return "h-12";case "lg":return "h-16";default:return "h-14"}};return jsx("div",{ref:l,role:"tablist","aria-orientation":o,onKeyDown:y,className:a("flex items-center justify-center",o==="vertical"&&"flex-col",b(),h(),i),...v,children:f.Children.map(g,e=>{if(f.isValidElement(e)){if(typeof e.type=="string")return e;let t=e.props;return f.cloneElement(e,{onValueChange:s,orientation:o,variant:n,size:c,active:t.value===r})}return e})})});L.displayName="TabsList";var z=f.forwardRef(({className:i,value:r,onValueChange:s,orientation:o="horizontal",variant:n="default",size:c="md",active:g=false,children:v,...m},l)=>{let d=()=>{switch(n){case "pills":return a("inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",g?"bg-white dark:bg-gray-900 text-gray-900 dark:text-white shadow-md":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800");case "underline":return a("inline-flex items-center justify-center whitespace-nowrap border-b-2 px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",g?"border-indigo-500 text-indigo-600 dark:text-indigo-400":"border-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white");case "cards":return a("inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",g?"bg-white dark:bg-gray-900 text-gray-900 dark:text-white shadow-md":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800");default:return a("inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",g?"bg-white dark:bg-gray-900 text-gray-900 dark:text-white shadow-md":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800")}},y=()=>{switch(c){case "sm":return "h-10 px-4 py-2 text-xs";case "lg":return "h-14 px-6 py-3 text-base";default:return "h-12 px-5 py-2.5 text-sm"}},b=()=>{s&&s(r);};return jsx("button",{ref:l,role:"tab","aria-selected":g,"aria-controls":`tabpanel-${r}`,id:`tab-${r}`,"data-tab-value":r,tabIndex:g?0:-1,className:a(d(),y(),i),onClick:b,type:"button",...m,children:v})});z.displayName="TabsTrigger";var $=f.forwardRef((i,r)=>jsx(E,{ref:r,variant:"pills",...i}));$.displayName="TabsPills";var S=f.forwardRef((i,r)=>jsx(E,{ref:r,variant:"underline",...i}));S.displayName="TabsUnderline";var K=f.forwardRef((i,r)=>jsx(E,{ref:r,variant:"cards",...i}));K.displayName="TabsCards";export{N as a,M as b,I as c,C as d,H as e,E as f,L as g,z as h,$ as i,S as j,K as k};//# sourceMappingURL=chunk-LIC2KPD5.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-LIC2KPD5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Accordion.tsx","../src/components/Tabs.tsx"],"names":["Accordion","React","children","className","type","defaultValue","value","onValueChange","collapsible","props","ref","openItems","setOpenItems","handleItemToggle","itemValue","newOpenItems","item","itemValues","values","child","childProps","handleKeyDown","_a","target","currentValue","currentIndex","newIndex","triggerElement","jsx","merge","AccordionItem","disabled","onToggle","isOpen","AccordionTrigger","icon","iconPosition","defaultIcon","Icon","contentId","triggerId","jsxs","AccordionContent","dataValue","height","setHeight","contentRef","TabsContent","active","Tabs","orientation","variant","size","activeTab","setActiveTab","isControlled","handleTabChange","newValue","TabsList","listRef","tabValues","getVariantClasses","getSizeClasses","TabsTrigger","_orientation","handleClick","TabsPills","TabsUnderline","TabsCards"],"mappings":"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","file":"chunk-LIC2KPD5.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Icon } from \"./Icon\"\n\n/**\n * Accordion 컴포넌트의 props / Accordion component props\n * @typedef {Object} AccordionProps\n * @property {React.ReactNode} children - AccordionItem 컴포넌트들 / AccordionItem components\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {\"single\" | \"multiple\"} [type=\"single\"] - 단일 또는 다중 아이템 열기 허용 / Allow single or multiple items to be open\n * @property {string | string[]} [defaultValue] - 초기 열린 아이템 값 (비제어 컴포넌트) / Initial open item value (uncontrolled component)\n * @property {string | string[]} [value] - 현재 열린 아이템 값 (제어 컴포넌트) / Current open item value (controlled component)\n * @property {(value: string | string[]) => void} [onValueChange] - 아이템 열림/닫힘 콜백 / Item open/close callback\n * @property {boolean} [collapsible=false] - 단일 모드에서 열린 아이템을 닫을 수 있는지 여부 / Whether open item can be closed in single mode\n */\ninterface AccordionProps {\n children: React.ReactNode\n className?: string\n type?: \"single\" | \"multiple\"\n defaultValue?: string | string[]\n value?: string | string[]\n onValueChange?: (value: string | string[]) => void\n collapsible?: boolean\n}\n\n/**\n * Accordion 컴포넌트 / Accordion component\n * \n * 접을 수 있는 콘텐츠 섹션을 제공하는 컴포넌트입니다.\n * 키보드 네비게이션(Arrow keys, Home/End)을 지원하며, ARIA 속성을 자동으로 설정합니다.\n * \n * Component that provides collapsible content sections.\n * Supports keyboard navigation (Arrow keys, Home/End) and automatically sets ARIA attributes.\n * \n * @component\n * @example\n * // 기본 사용 (단일 열기) / Basic usage (single open)\n * <Accordion type=\"single\">\n * <AccordionItem value=\"item1\">\n * <AccordionTrigger>제목 1</AccordionTrigger>\n * <AccordionContent>내용 1</AccordionContent>\n * </AccordionItem>\n * <AccordionItem value=\"item2\">\n * <AccordionTrigger>제목 2</AccordionTrigger>\n * <AccordionContent>내용 2</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * \n * @example\n * // 다중 열기 / Multiple open\n * <Accordion type=\"multiple\" defaultValue={[\"item1\", \"item2\"]}>\n * <AccordionItem value=\"item1\">\n * <AccordionTrigger>제목 1</AccordionTrigger>\n * <AccordionContent>내용 1</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * \n * @example\n * // 제어 컴포넌트 / Controlled component\n * const [openItems, setOpenItems] = useState<string[]>([])\n * <Accordion type=\"multiple\" value={openItems} onValueChange={setOpenItems}>\n * <AccordionItem value=\"item1\">\n * <AccordionTrigger>제목</AccordionTrigger>\n * <AccordionContent>내용</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * \n * @param {AccordionProps} props - Accordion 컴포넌트의 props / Accordion component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Accordion 컴포넌트 / Accordion component\n */\nconst Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n ({ \n children, \n className,\n type = \"single\",\n defaultValue,\n value,\n onValueChange,\n collapsible = false,\n ...props \n }, ref) => {\n const [openItems, setOpenItems] = React.useState<string[]>(\n value ? (Array.isArray(value) ? value : [value]) : \n defaultValue ? (Array.isArray(defaultValue) ? defaultValue : [defaultValue]) : []\n )\n\n React.useEffect(() => {\n if (value !== undefined) {\n setOpenItems(Array.isArray(value) ? value : [value])\n }\n }, [value])\n\n const handleItemToggle = (itemValue: string) => {\n let newOpenItems: string[]\n\n if (type === \"single\") {\n if (openItems.includes(itemValue)) {\n newOpenItems = collapsible ? [] : openItems\n } else {\n newOpenItems = [itemValue]\n }\n } else {\n if (openItems.includes(itemValue)) {\n newOpenItems = openItems.filter(item => item !== itemValue)\n } else {\n newOpenItems = [...openItems, itemValue]\n }\n }\n\n setOpenItems(newOpenItems)\n onValueChange?.(type === \"single\" ? newOpenItems[0] || \"\" : newOpenItems)\n }\n\n // 모든 아이템의 value를 수집\n const itemValues = React.useMemo(() => {\n const values: string[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child)) {\n const childProps = child.props as { value?: string }\n if (childProps.value) {\n values.push(childProps.value)\n }\n }\n })\n return values\n }, [children])\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement\n if (!target.hasAttribute('data-accordion-trigger')) return\n\n const currentValue = target.getAttribute('data-accordion-value')\n if (!currentValue) return\n\n const currentIndex = itemValues.indexOf(currentValue)\n if (currentIndex === -1) return\n\n let newIndex = currentIndex\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault()\n newIndex = currentIndex < itemValues.length - 1 ? currentIndex + 1 : 0\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault()\n newIndex = currentIndex > 0 ? currentIndex - 1 : itemValues.length - 1\n } else if (e.key === \"Home\") {\n e.preventDefault()\n newIndex = 0\n } else if (e.key === \"End\") {\n e.preventDefault()\n newIndex = itemValues.length - 1\n }\n\n if (newIndex !== currentIndex && itemValues[newIndex]) {\n const triggerElement = target.closest('[data-accordion-item]')?.querySelector(\n `[data-accordion-value=\"${itemValues[newIndex]}\"]`\n ) as HTMLElement\n triggerElement?.focus()\n }\n }\n\n return (\n <div\n ref={ref}\n className={merge(\"space-y-2\", className)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n openItems,\n onToggle: handleItemToggle\n } as Partial<AccordionItemProps>)\n }\n return child\n })}\n </div>\n )\n }\n)\nAccordion.displayName = \"Accordion\"\n\n/**\n * AccordionItem 컴포넌트의 props / AccordionItem component props\n * @typedef {Object} AccordionItemProps\n * @property {string} value - 아이템의 고유 값 / Item unique value\n * @property {React.ReactNode} children - AccordionTrigger와 AccordionContent / AccordionTrigger and AccordionContent\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {boolean} [disabled=false] - 아이템 비활성화 여부 / Item disabled state\n * @property {string[]} [openItems] - 열린 아이템 목록 (Accordion에서 자동 전달) / Open items list (auto-passed from Accordion)\n * @property {(value: string) => void} [onToggle] - 토글 콜백 (Accordion에서 자동 전달) / Toggle callback (auto-passed from Accordion)\n */\ninterface AccordionItemProps {\n value: string\n children: React.ReactNode\n className?: string\n disabled?: boolean\n openItems?: string[]\n onToggle?: (value: string) => void\n}\n\n/**\n * AccordionItem 컴포넌트 / AccordionItem component\n * 아코디언의 개별 아이템을 감싸는 컨테이너입니다.\n * Container that wraps an individual accordion item.\n * \n * @component\n * @param {AccordionItemProps} props - AccordionItem 컴포넌트의 props / AccordionItem component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} AccordionItem 컴포넌트 / AccordionItem component\n */\nconst AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ \n value, \n children, \n className,\n disabled = false,\n openItems = [],\n onToggle,\n ...props \n }, ref) => {\n const isOpen = openItems.includes(value)\n\n return (\n <div\n ref={ref}\n data-accordion-item\n className={merge(\n \"border border-gray-200/50 dark:border-gray-700/50 rounded-lg overflow-hidden\",\n disabled && \"opacity-50 pointer-events-none\",\n className\n )}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n value,\n isOpen,\n disabled,\n onToggle: () => onToggle?.(value),\n 'data-accordion-value': value\n } as Partial<AccordionTriggerProps | AccordionContentProps>)\n }\n return child\n })}\n </div>\n )\n }\n)\nAccordionItem.displayName = \"AccordionItem\"\n\ninterface AccordionTriggerProps {\n children: React.ReactNode\n className?: string\n icon?: React.ReactNode\n iconPosition?: \"left\" | \"right\"\n value?: string // Optional: AccordionItem에서 자동으로 전달됨 / Optional: Auto-passed from AccordionItem\n isOpen?: boolean\n disabled?: boolean\n onToggle?: () => void\n}\n\nconst AccordionTrigger = React.forwardRef<HTMLButtonElement, AccordionTriggerProps>(\n ({ \n children, \n className,\n icon,\n iconPosition = \"right\",\n value,\n isOpen = false,\n disabled = false,\n onToggle,\n ...props \n }, ref) => {\n const defaultIcon = (\n <Icon \n name=\"chevronDown\" \n size={20} \n className={merge(\n \"transition-transform duration-300 ease-out text-gray-500 dark:text-gray-400\",\n isOpen && \"rotate-180\"\n )} \n />\n )\n\n const contentId = `accordion-content-${value}`\n const triggerId = `accordion-trigger-${value}`\n\n return (\n <button\n ref={ref}\n id={triggerId}\n data-accordion-trigger\n data-accordion-value={value}\n aria-expanded={isOpen}\n aria-controls={contentId}\n onClick={onToggle}\n disabled={disabled}\n className={merge(\n \"flex w-full items-center justify-between px-6 py-4 text-left font-medium transition-all hover:bg-gray-50/80 dark:hover:bg-gray-800/80 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-3 flex-1\">\n {iconPosition === \"left\" && (icon || defaultIcon)}\n <span className=\"flex-1\">{children}</span>\n </div>\n {iconPosition === \"right\" && (icon || defaultIcon)}\n </button>\n )\n }\n)\nAccordionTrigger.displayName = \"AccordionTrigger\"\n\n/**\n * AccordionTrigger 컴포넌트 / AccordionTrigger component\n * 아코디언 아이템을 열고 닫는 트리거 버튼입니다.\n * Button that opens and closes an accordion item.\n * \n * @component\n * @param {AccordionTriggerProps} props - AccordionTrigger 컴포넌트의 props / AccordionTrigger component props\n * @param {React.Ref<HTMLButtonElement>} ref - button 요소 ref / button element ref\n * @returns {JSX.Element} AccordionTrigger 컴포넌트 / AccordionTrigger component\n */\n\n/**\n * AccordionContent 컴포넌트의 props\n * @typedef {Object} AccordionContentProps\n * @property {React.ReactNode} children - 콘텐츠\n * @property {string} [className] - 추가 CSS 클래스\n * @property {boolean} [isOpen] - 열림 상태 (AccordionItem에서 자동 전달)\n * @property {string} [value] - 아이템 값 (AccordionItem에서 자동 전달)\n * @property {string} ['data-accordion-value'] - 아이템 값 (내부 사용)\n */\ninterface AccordionContentProps {\n children: React.ReactNode\n className?: string\n isOpen?: boolean\n value?: string\n 'data-accordion-value'?: string\n}\n\n/**\n * AccordionContent 컴포넌트 / AccordionContent component\n * 아코디언 아이템의 콘텐츠를 표시합니다.\n * Displays the content of an accordion item.\n * \n * @component\n * @param {AccordionContentProps} props - AccordionContent 컴포넌트의 props / AccordionContent component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} AccordionContent 컴포넌트 / AccordionContent component\n */\nconst AccordionContent = React.forwardRef<HTMLDivElement, AccordionContentProps>(\n ({ children, className, isOpen = false, value, 'data-accordion-value': dataValue, ...props }, ref) => {\n const [height, setHeight] = React.useState(0)\n const contentRef = React.useRef<HTMLDivElement>(null)\n const itemValue = value || dataValue || 'unknown'\n\n React.useEffect(() => {\n if (contentRef.current) {\n if (isOpen) {\n setHeight(contentRef.current.scrollHeight)\n } else {\n setHeight(0)\n }\n }\n }, [isOpen, children])\n\n const triggerId = `accordion-trigger-${itemValue}`\n const contentId = `accordion-content-${itemValue}`\n\n return (\n <div\n ref={ref}\n id={contentId}\n role=\"region\"\n aria-labelledby={triggerId}\n hidden={!isOpen}\n className=\"overflow-hidden transition-all duration-300 ease-out\"\n style={{ height: `${height}px` }}\n {...props}\n >\n <div\n ref={contentRef}\n className={merge(\"px-6 pt-2 pb-4\", className)}\n >\n {children}\n </div>\n </div>\n )\n }\n)\nAccordionContent.displayName = \"AccordionContent\"\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent } ","\"use client\"\n\nimport React from 'react'\nimport { merge } from '../lib/utils'\n\n/**\n * TabsContent 컴포넌트의 props / TabsContent component props\n * @typedef {Object} TabsContentProps\n * @property {string} value - 탭 패널의 고유 값 (TabsTrigger의 value와 일치해야 함) / Unique value for tab panel (must match TabsTrigger value)\n * @property {boolean} [active] - 탭 패널 활성화 상태 (자동 설정됨) / Tab panel active state (auto-set)\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string\n active?: boolean\n}\n\n/**\n * TabsContent 컴포넌트 / TabsContent component\n * 탭의 콘텐츠 패널을 표시합니다. Tabs 컴포넌트 내부에서 사용됩니다.\n * Displays the tab content panel. Used inside Tabs component.\n * \n * @component\n * @param {TabsContentProps} props - TabsContent 컴포넌트의 props / TabsContent component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} TabsContent 컴포넌트 / TabsContent component\n */\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, active, children, ...props }, ref) => {\n // active prop이 명시적으로 false로 설정된 경우에만 숨김\n if (active === false) return null\n\n return (\n <div\n ref={ref}\n role=\"tabpanel\"\n id={`tabpanel-${value}`}\n aria-labelledby={`tab-${value}`}\n hidden={!active}\n className={merge(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nTabsContent.displayName = \"TabsContent\"\n\n/**\n * Tabs 컴포넌트의 props / Tabs component props\n * @typedef {Object} TabsProps\n * @property {string} [value] - 현재 활성화된 탭 값 (제어 컴포넌트) / Currently active tab value (controlled component)\n * @property {string} [defaultValue] - 초기 활성화된 탭 값 (비제어 컴포넌트) / Initial active tab value (uncontrolled component)\n * @property {(value: string) => void} [onValueChange] - 탭 변경 시 호출되는 콜백 / Callback when tab changes\n * @property {\"horizontal\" | \"vertical\"} [orientation=\"horizontal\"] - 탭 방향 / Tab orientation\n * @property {\"default\" | \"pills\" | \"underline\" | \"cards\"} [variant=\"default\"] - 탭 스타일 변형 / Tab style variant\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - 탭 크기 / Tab size\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n orientation?: \"horizontal\" | \"vertical\"\n variant?: \"default\" | \"pills\" | \"underline\" | \"cards\"\n size?: \"sm\" | \"md\" | \"lg\"\n}\n\n/**\n * Tabs 컴포넌트 / Tabs component\n * \n * 탭 네비게이션을 제공하는 컴포넌트입니다.\n * 키보드 네비게이션(Arrow keys, Home/End)을 지원하며, ARIA 속성을 자동으로 설정합니다.\n * \n * Component that provides tab navigation.\n * Supports keyboard navigation (Arrow keys, Home/End) and automatically sets ARIA attributes.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Tabs defaultValue=\"tab1\">\n * <TabsList>\n * <TabsTrigger value=\"tab1\">탭 1</TabsTrigger>\n * <TabsTrigger value=\"tab2\">탭 2</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"tab1\">탭 1 내용</TabsContent>\n * <TabsContent value=\"tab2\">탭 2 내용</TabsContent>\n * </Tabs>\n * \n * @example\n * // 제어 컴포넌트 / Controlled component\n * const [activeTab, setActiveTab] = useState(\"tab1\")\n * <Tabs value={activeTab} onValueChange={setActiveTab}>\n * <TabsList>\n * <TabsTrigger value=\"tab1\">탭 1</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"tab1\">내용</TabsContent>\n * </Tabs>\n * \n * @example\n * // 다양한 변형 / Various variants\n * <Tabs variant=\"pills\" size=\"lg\">\n * <TabsList>\n * <TabsTrigger value=\"tab1\">Pills 스타일</TabsTrigger>\n * </TabsList>\n * </Tabs>\n * \n * @param {TabsProps} props - Tabs 컴포넌트의 props / Tabs component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Tabs 컴포넌트 / Tabs component\n */\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n ({ \n className, \n value,\n defaultValue,\n onValueChange,\n orientation = \"horizontal\",\n variant = \"default\",\n size = \"md\",\n children,\n ...props \n }, ref) => {\n const [activeTab, setActiveTab] = React.useState(value || defaultValue || \"\")\n const isControlled = value !== undefined\n const currentValue = isControlled ? value : activeTab\n\n const handleTabChange = (newValue: string) => {\n if (!isControlled) {\n setActiveTab(newValue)\n }\n onValueChange?.(newValue)\n }\n\n React.useEffect(() => {\n if (value !== undefined) {\n setActiveTab(value)\n }\n }, [value])\n\n return (\n <div\n ref={ref}\n className={merge(\n \"w-full\",\n orientation === \"vertical\" && \"flex\",\n className\n )}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // TabsContent인 경우 active prop만 설정 (value는 원래 값 유지)\n if (child.type === TabsContent) {\n const childProps = child.props as TabsContentProps\n return React.cloneElement(child, {\n active: childProps.value === currentValue\n } as Partial<TabsContentProps>)\n }\n // TabsList인 경우에만 onValueChange 전달\n if (child.type === TabsList) {\n return React.cloneElement(child, {\n value: currentValue,\n onValueChange: handleTabChange,\n orientation,\n variant,\n size\n } as Partial<TabsListProps>)\n }\n // 다른 React 컴포넌트들 (다른 custom wrapper 등)\n // HTML 요소가 아닌 경우에만 props 전달\n if (typeof child.type !== 'string') {\n return React.cloneElement(child, {\n value: currentValue,\n onValueChange: handleTabChange,\n orientation,\n variant,\n size\n } as Record<string, unknown>)\n }\n }\n return child\n })}\n </div>\n )\n }\n)\nTabs.displayName = \"Tabs\"\n\n/**\n * TabsList 컴포넌트의 props / TabsList component props\n * @typedef {Object} TabsListProps\n * @property {string} [value] - 현재 활성화된 탭 값 (Tabs에서 자동 전달) / Currently active tab value (auto-passed from Tabs)\n * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 (Tabs에서 자동 전달) / Tab change callback (auto-passed from Tabs)\n * @property {\"horizontal\" | \"vertical\"} [orientation] - 탭 방향 (Tabs에서 자동 전달) / Tab orientation (auto-passed from Tabs)\n * @property {\"default\" | \"pills\" | \"underline\" | \"cards\"} [variant] - 탭 스타일 (Tabs에서 자동 전달) / Tab style (auto-passed from Tabs)\n * @property {\"sm\" | \"md\" | \"lg\"} [size] - 탭 크기 (Tabs에서 자동 전달) / Tab size (auto-passed from Tabs)\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: string\n onValueChange?: (value: string) => void\n orientation?: \"horizontal\" | \"vertical\"\n variant?: \"default\" | \"pills\" | \"underline\" | \"cards\"\n size?: \"sm\" | \"md\" | \"lg\"\n}\n\n/**\n * TabsList 컴포넌트 / TabsList component\n * 탭 트리거 목록을 표시합니다. Tabs 컴포넌트 내부에서 사용됩니다.\n * Displays the list of tab triggers. Used inside Tabs component.\n * \n * @component\n * @param {TabsListProps} props - TabsList 컴포넌트의 props / TabsList component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} TabsList 컴포넌트 / TabsList component\n */\nconst TabsList = React.forwardRef<HTMLDivElement, TabsListProps>(\n ({ \n className, \n value,\n onValueChange,\n orientation = \"horizontal\",\n variant = \"default\",\n size = \"md\",\n children,\n ...props \n }, ref) => {\n const listRef = React.useRef<HTMLDivElement>(null)\n React.useImperativeHandle(ref, () => listRef.current as HTMLDivElement)\n \n // 모든 탭 트리거의 value를 수집\n const tabValues = React.useMemo(() => {\n const values: string[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child)) {\n const childProps = child.props as { value?: string }\n if (childProps.value) {\n values.push(childProps.value)\n }\n }\n })\n return values\n }, [children])\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!value || tabValues.length === 0) return\n\n const currentIndex = tabValues.indexOf(value)\n if (currentIndex === -1) return\n\n let newIndex = currentIndex\n\n if (orientation === \"horizontal\") {\n if (e.key === \"ArrowLeft\") {\n e.preventDefault()\n newIndex = currentIndex > 0 ? currentIndex - 1 : tabValues.length - 1\n } else if (e.key === \"ArrowRight\") {\n e.preventDefault()\n newIndex = currentIndex < tabValues.length - 1 ? currentIndex + 1 : 0\n } else if (e.key === \"Home\") {\n e.preventDefault()\n newIndex = 0\n } else if (e.key === \"End\") {\n e.preventDefault()\n newIndex = tabValues.length - 1\n }\n } else {\n if (e.key === \"ArrowUp\") {\n e.preventDefault()\n newIndex = currentIndex > 0 ? currentIndex - 1 : tabValues.length - 1\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault()\n newIndex = currentIndex < tabValues.length - 1 ? currentIndex + 1 : 0\n } else if (e.key === \"Home\") {\n e.preventDefault()\n newIndex = 0\n } else if (e.key === \"End\") {\n e.preventDefault()\n newIndex = tabValues.length - 1\n }\n }\n\n if (newIndex !== currentIndex && tabValues[newIndex]) {\n onValueChange?.(tabValues[newIndex])\n // 포커스 이동\n const triggerElement = listRef.current?.querySelector(\n `[data-tab-value=\"${tabValues[newIndex]}\"]`\n ) as HTMLElement\n triggerElement?.focus()\n }\n }\n const getVariantClasses = () => {\n switch (variant) {\n case \"pills\":\n return \"bg-gray-50 dark:bg-gray-800/80 p-3 rounded-xl border border-gray-200/50 dark:border-gray-700/50\"\n case \"underline\":\n return \"border-b border-gray-200 dark:border-gray-700\"\n case \"cards\":\n return \"bg-gray-50/80 dark:bg-gray-900/80 p-3 rounded-xl border border-gray-200/50 dark:border-gray-700/50\"\n default:\n return \"bg-gray-50 dark:bg-gray-800/80 p-3 rounded-xl border border-gray-200/50 dark:border-gray-700/50\"\n }\n }\n\n const getSizeClasses = () => {\n switch (size) {\n case \"sm\":\n return \"h-12\"\n case \"lg\":\n return \"h-16\"\n default:\n return \"h-14\"\n }\n }\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n aria-orientation={orientation}\n onKeyDown={handleKeyDown}\n className={merge(\n \"flex items-center justify-center\",\n orientation === \"vertical\" && \"flex-col\",\n getVariantClasses(),\n getSizeClasses(),\n className\n )}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // Only pass tab props to non-HTML elements (React components)\n if (typeof child.type === 'string') {\n return child\n }\n const childProps = child.props as { value?: string }\n return React.cloneElement(child, {\n onValueChange,\n orientation,\n variant,\n size,\n active: childProps.value === value\n } as Partial<TabsTriggerProps>)\n }\n return child\n })}\n </div>\n )\n }\n)\nTabsList.displayName = \"TabsList\"\n\n/**\n * TabsTrigger 컴포넌트의 props\n * @typedef {Object} TabsTriggerProps\n * @property {string} value - 탭 트리거의 고유 값 (TabsContent의 value와 일치해야 함)\n * @property {(value: string) => void} [onValueChange] - 탭 변경 콜백 (TabsList에서 자동 전달)\n * @property {\"horizontal\" | \"vertical\"} [orientation] - 탭 방향 (TabsList에서 자동 전달)\n * @property {\"default\" | \"pills\" | \"underline\" | \"cards\"} [variant] - 탭 스타일 (TabsList에서 자동 전달)\n * @property {\"sm\" | \"md\" | \"lg\"} [size] - 탭 크기 (TabsList에서 자동 전달)\n * @property {boolean} [active] - 탭 활성화 상태 (자동 설정됨)\n * @extends {React.ButtonHTMLAttributes<HTMLButtonElement>}\n */\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string\n onValueChange?: (value: string) => void\n orientation?: \"horizontal\" | \"vertical\"\n variant?: \"default\" | \"pills\" | \"underline\" | \"cards\"\n size?: \"sm\" | \"md\" | \"lg\"\n active?: boolean\n}\n\n/**\n * TabsTrigger 컴포넌트 / TabsTrigger component\n * 탭을 활성화하는 버튼입니다. TabsList 컴포넌트 내부에서 사용됩니다.\n * Button that activates a tab. Used inside TabsList component.\n * \n * @component\n * @param {TabsTriggerProps} props - TabsTrigger 컴포넌트의 props / TabsTrigger component props\n * @param {React.Ref<HTMLButtonElement>} ref - button 요소 ref / button element ref\n * @returns {JSX.Element} TabsTrigger 컴포넌트 / TabsTrigger component\n */\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ \n className,\n value,\n onValueChange,\n orientation: _orientation = \"horizontal\",\n variant = \"default\",\n size = \"md\",\n active = false,\n children,\n ...props\n }, ref) => {\n const getVariantClasses = () => {\n switch (variant) {\n case \"pills\":\n return merge(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n active \n ? \"bg-white dark:bg-gray-900 text-gray-900 dark:text-white shadow-md\" \n : \"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800\"\n )\n case \"underline\":\n return merge(\n \"inline-flex items-center justify-center whitespace-nowrap border-b-2 px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n active \n ? \"border-indigo-500 text-indigo-600 dark:text-indigo-400\" \n : \"border-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white\"\n )\n case \"cards\":\n return merge(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n active \n ? \"bg-white dark:bg-gray-900 text-gray-900 dark:text-white shadow-md\" \n : \"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800\"\n )\n default:\n return merge(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n active \n ? \"bg-white dark:bg-gray-900 text-gray-900 dark:text-white shadow-md\" \n : \"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-800\"\n )\n }\n }\n\n const getSizeClasses = () => {\n switch (size) {\n case \"sm\":\n return \"h-10 px-4 py-2 text-xs\"\n case \"lg\":\n return \"h-14 px-6 py-3 text-base\"\n default:\n return \"h-12 px-5 py-2.5 text-sm\"\n }\n }\n\n const handleClick = () => {\n if (onValueChange) {\n onValueChange(value)\n }\n }\n\n return (\n <button\n ref={ref}\n role=\"tab\"\n aria-selected={active}\n aria-controls={`tabpanel-${value}`}\n id={`tab-${value}`}\n data-tab-value={value}\n tabIndex={active ? 0 : -1}\n className={merge(\n getVariantClasses(),\n getSizeClasses(),\n className\n )}\n onClick={handleClick}\n type=\"button\"\n {...props}\n >\n {children}\n </button>\n )\n }\n)\nTabsTrigger.displayName = \"TabsTrigger\"\n\n// 편의 컴포넌트들\nconst TabsPills = React.forwardRef<HTMLDivElement, TabsProps>(\n (props, ref) => <Tabs ref={ref} variant=\"pills\" {...props} />\n)\nTabsPills.displayName = \"TabsPills\"\n\nconst TabsUnderline = React.forwardRef<HTMLDivElement, TabsProps>(\n (props, ref) => <Tabs ref={ref} variant=\"underline\" {...props} />\n)\nTabsUnderline.displayName = \"TabsUnderline\"\n\nconst TabsCards = React.forwardRef<HTMLDivElement, TabsProps>(\n (props, ref) => <Tabs ref={ref} variant=\"cards\" {...props} />\n)\nTabsCards.displayName = \"TabsCards\"\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, TabsPills, TabsUnderline, TabsCards } "]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {l}from'./chunk-EQIWSOL7.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import v from'react';import {jsx,jsxs}from'react/jsx-runtime';var H=v.forwardRef(({className:c,variant:b="default",size:n="md",error:t=false,success:u=false,resize:e="vertical",...a$1},f)=>{let r={default:"border-gray-300 bg-white text-gray-900 placeholder-gray-500 focus:border-ring focus:ring-ring dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-400 dark:focus:border-ring dark:focus:ring-ring transition-all duration-200 hover:border-indigo-400 hover:shadow-sm",outline:"border-2 border-gray-200 bg-transparent text-gray-900 placeholder-gray-500 focus:border-ring focus:ring-ring dark:border-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-ring dark:focus:ring-ring transition-all duration-200 hover:border-indigo-400 hover:shadow-sm",filled:"border-transparent bg-gray-50 text-gray-900 placeholder-gray-500 focus:bg-white focus:border-ring focus:ring-ring dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:bg-gray-800 dark:focus:border-ring dark:focus:ring-ring transition-all duration-200 hover:bg-gray-100 dark:hover:bg-gray-600",ghost:"border-transparent bg-transparent text-gray-900 placeholder-gray-500 focus:bg-gray-50 focus:border-gray-300 focus:ring-gray-500 dark:text-white dark:placeholder-gray-400 dark:focus:bg-gray-800 dark:focus:border-gray-600 dark:focus:ring-gray-400 transition-all duration-200 hover:bg-gray-50 dark:hover:bg-gray-800",glass:"border-white/30 bg-white/10 backdrop-blur-sm text-white placeholder-white/60 focus:border-ring/50 focus:ring-ring/20 focus:bg-white/20 dark:border-slate-600/50 dark:bg-slate-800/10 dark:text-slate-200 dark:placeholder-slate-400 dark:focus:border-ring/50 dark:focus:ring-ring/20 dark:focus:bg-slate-700/20 transition-all duration-200 hover:border-indigo-400/40 hover:bg-white/15 dark:hover:bg-slate-700/15"},h={sm:"px-3 py-2 text-sm min-h-[80px]",md:"px-4 py-3 text-base min-h-[100px]",lg:"px-4 py-3 text-lg min-h-[120px]"},k={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},o=t?"border-red-500 focus:border-red-500 focus:ring-red-500 dark:border-red-400 dark:focus:border-red-400 dark:focus:ring-red-400":u?"border-green-500 focus:border-green-500 focus:ring-green-500 dark:border-green-400 dark:focus:border-green-400 dark:focus:ring-green-400":"",i=a$1["aria-invalid"],g=t||(i!==void 0?i:false);return jsx("textarea",{className:a("flex w-full rounded-md border transition-colors duration-200 focus:outline-none focus:ring-1 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r[b],h[n],k[e],o,c),ref:f,"aria-invalid":g||void 0,...a$1})});H.displayName="Textarea";var M=v.forwardRef(({className:c,variant:b="default",size:n="md",error:t=false,success:u=false,label:e,description:a$1,id:f,...r},h)=>{var m,p;let k=v.useId(),o=f||k,i=e?`${o}-label`:void 0,g=a$1?`${o}-description`:void 0,w={sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6"},z={sm:12,md:14,lg:16},C={default:"border-gray-300 bg-white text-indigo-600 focus:ring-ring dark:border-gray-600 dark:bg-gray-800 dark:focus:ring-ring",outline:"border-2 border-gray-200 bg-transparent text-indigo-600 focus:ring-ring dark:border-gray-700 dark:focus:ring-ring",filled:"border-transparent bg-gray-50 text-indigo-600 focus:bg-white focus:ring-ring dark:bg-gray-700 dark:focus:bg-gray-800 dark:focus:ring-ring",glass:"border-white/30 bg-white/10 backdrop-blur-sm text-white focus:ring-ring/50 focus:bg-white/20 dark:border-slate-600/50 dark:bg-slate-800/10 dark:focus:ring-ring/50 dark:focus:bg-slate-700/20"},T=t?"border-red-500 focus:ring-red-500 dark:border-red-400 dark:focus:ring-red-400":u?"border-green-500 focus:ring-green-500 dark:border-green-400 dark:focus:ring-green-400":"",I=r.checked!==void 0,l$1=(p=(m=r.checked)!=null?m:r.defaultChecked)!=null?p:false,N=I&&!r.onChange&&!r.readOnly;return jsxs("div",{className:"flex items-start space-x-3",children:[jsxs("div",{className:"relative",children:[jsx("input",{type:"checkbox",id:o,className:a("peer absolute inset-0 w-full h-full opacity-0 cursor-pointer z-10",c),ref:h,"aria-checked":l$1,"aria-invalid":t,"aria-label":e?void 0:r["aria-label"],"aria-labelledby":e?i:void 0,"aria-describedby":g,role:"checkbox",readOnly:N||r.readOnly,...r}),jsx("div",{className:a("flex items-center justify-center rounded border transition-all duration-200 cursor-pointer relative","peer-focus:outline-none peer-focus:ring-1 peer-focus:ring-offset-2","peer-hover:border-indigo-400 peer-hover:shadow-sm","peer-disabled:cursor-not-allowed peer-disabled:opacity-50 peer-disabled:hover:border-gray-300",w[n],C[b],T,l$1&&"bg-primary border-primary dark:bg-primary dark:border-primary shadow-md shadow-indigo-500/20",!l$1&&"bg-white dark:bg-gray-800"),children:jsx(l,{name:"check",size:z[n],className:a("text-white transition-all duration-200",l$1?"opacity-100 scale-100":"opacity-0 scale-0")})})]}),(e||a$1)&&jsxs("div",{className:"flex flex-col",children:[e&&jsx("label",{htmlFor:o,id:i,className:"text-sm font-medium text-gray-900 dark:text-white cursor-pointer",children:e}),a$1&&jsx("p",{id:g,className:"text-sm text-gray-500 dark:text-gray-400",children:a$1})]})]})});M.displayName="Checkbox";export{H as a,M as b};//# sourceMappingURL=chunk-RIQUV3QZ.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-RIQUV3QZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Textarea.tsx","../src/components/Checkbox.tsx"],"names":["Textarea","React","className","variant","size","error","success","resize","props","ref","variantClasses","sizeClasses","resizeClasses","stateClasses","ariaInvalid","isInvalid","jsx","merge","Checkbox","label","description","id","_a","_b","generatedId","checkboxId","labelId","descriptionId","iconSizes","isControlled","isChecked","needsReadOnly","jsxs","Icon"],"mappings":"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","file":"chunk-RIQUV3QZ.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Textarea 컴포넌트의 props / Textarea component props\n * @typedef {Object} TextareaProps\n * @property {\"default\" | \"outline\" | \"filled\" | \"ghost\" | \"glass\"} [variant=\"default\"] - Textarea 스타일 변형 / Textarea style variant\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - Textarea 크기 / Textarea size\n * @property {boolean} [error=false] - 에러 상태 표시 / Error state\n * @property {boolean} [success=false] - 성공 상태 표시 / Success state\n * @property {\"none\" | \"vertical\" | \"horizontal\" | \"both\"} [resize=\"vertical\"] - 크기 조절 방향 / Resize direction\n * @extends {React.TextareaHTMLAttributes<HTMLTextAreaElement>}\n */\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n variant?: \"default\" | \"outline\" | \"filled\" | \"ghost\" | \"glass\"\n size?: \"sm\" | \"md\" | \"lg\"\n error?: boolean\n success?: boolean\n resize?: \"none\" | \"vertical\" | \"horizontal\" | \"both\"\n}\n\n/**\n * Textarea 컴포넌트 / Textarea component\n * \n * 여러 줄 텍스트 입력을 위한 텍스트 영역 컴포넌트입니다.\n * 다양한 스타일 변형과 크기를 지원하며, 접근성 속성을 포함합니다.\n * \n * Text area component for multi-line text input.\n * Supports various style variants and sizes, includes accessibility attributes.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Textarea placeholder=\"내용을 입력하세요\" />\n * \n * @example\n * // 에러 상태 / Error state\n * <Textarea \n * error\n * placeholder=\"에러가 발생했습니다\"\n * aria-label=\"설명 입력\"\n * />\n * \n * @example\n * // 크기 조절 비활성화 / Disable resize\n * <Textarea \n * resize=\"none\"\n * rows={5}\n * placeholder=\"고정 크기 텍스트 영역\"\n * />\n * \n * @param {TextareaProps} props - Textarea 컴포넌트의 props / Textarea component props\n * @param {React.Ref<HTMLTextAreaElement>} ref - textarea 요소 ref / textarea element ref\n * @returns {JSX.Element} Textarea 컴포넌트 / Textarea component\n * \n * @todo 접근성 개선: aria-invalid 속성 자동 추가 필요 / Accessibility improvement: auto-add aria-invalid attribute\n */\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ \n className, \n variant = \"default\",\n size = \"md\",\n error = false,\n success = false,\n resize = \"vertical\",\n ...props \n }, ref) => {\n const variantClasses = {\n default: \"border-gray-300 bg-white text-gray-900 placeholder-gray-500 focus:border-ring focus:ring-ring dark:border-gray-600 dark:bg-gray-800 dark:text-white dark:placeholder-gray-400 dark:focus:border-ring dark:focus:ring-ring transition-all duration-200 hover:border-indigo-400 hover:shadow-sm\",\n outline: \"border-2 border-gray-200 bg-transparent text-gray-900 placeholder-gray-500 focus:border-ring focus:ring-ring dark:border-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-ring dark:focus:ring-ring transition-all duration-200 hover:border-indigo-400 hover:shadow-sm\",\n filled: \"border-transparent bg-gray-50 text-gray-900 placeholder-gray-500 focus:bg-white focus:border-ring focus:ring-ring dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:bg-gray-800 dark:focus:border-ring dark:focus:ring-ring transition-all duration-200 hover:bg-gray-100 dark:hover:bg-gray-600\",\n ghost: \"border-transparent bg-transparent text-gray-900 placeholder-gray-500 focus:bg-gray-50 focus:border-gray-300 focus:ring-gray-500 dark:text-white dark:placeholder-gray-400 dark:focus:bg-gray-800 dark:focus:border-gray-600 dark:focus:ring-gray-400 transition-all duration-200 hover:bg-gray-50 dark:hover:bg-gray-800\",\n glass: \"border-white/30 bg-white/10 backdrop-blur-sm text-white placeholder-white/60 focus:border-ring/50 focus:ring-ring/20 focus:bg-white/20 dark:border-slate-600/50 dark:bg-slate-800/10 dark:text-slate-200 dark:placeholder-slate-400 dark:focus:border-ring/50 dark:focus:ring-ring/20 dark:focus:bg-slate-700/20 transition-all duration-200 hover:border-indigo-400/40 hover:bg-white/15 dark:hover:bg-slate-700/15\"\n }\n\n const sizeClasses = {\n sm: \"px-3 py-2 text-sm min-h-[80px]\",\n md: \"px-4 py-3 text-base min-h-[100px]\",\n lg: \"px-4 py-3 text-lg min-h-[120px]\"\n }\n\n const resizeClasses = {\n none: \"resize-none\",\n vertical: \"resize-y\",\n horizontal: \"resize-x\",\n both: \"resize\"\n }\n\n const stateClasses = error \n ? \"border-red-500 focus:border-red-500 focus:ring-red-500 dark:border-red-400 dark:focus:border-red-400 dark:focus:ring-red-400\"\n : success\n ? \"border-green-500 focus:border-green-500 focus:ring-green-500 dark:border-green-400 dark:focus:border-green-400 dark:focus:ring-green-400\"\n : \"\"\n \n // aria-invalid 자동 설정\n // Auto-set aria-invalid\n const ariaInvalid = props['aria-invalid' as keyof typeof props] as boolean | undefined\n const isInvalid = error || (ariaInvalid !== undefined ? ariaInvalid : false)\n\n return (\n <textarea\n className={merge(\n \"flex w-full rounded-md border transition-colors duration-200 focus:outline-none focus:ring-1 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n variantClasses[variant],\n sizeClasses[size],\n resizeClasses[resize],\n stateClasses,\n className\n )}\n ref={ref}\n aria-invalid={isInvalid || undefined}\n {...props}\n />\n )\n }\n)\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea } ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Icon } from \"./Icon\"\n\n/**\n * Checkbox 컴포넌트의 props / Checkbox component props\n * @typedef {Object} CheckboxProps\n * @property {\"default\" | \"outline\" | \"filled\" | \"glass\"} [variant=\"default\"] - Checkbox 스타일 변형 / Checkbox style variant\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - Checkbox 크기 / Checkbox size\n * @property {boolean} [error=false] - 에러 상태 표시 / Error state\n * @property {boolean} [success=false] - 성공 상태 표시 / Success state\n * @property {string} [label] - 체크박스 레이블 텍스트 / Checkbox label text\n * @property {string} [description] - 체크박스 설명 텍스트 / Checkbox description text\n * @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>}\n */\nexport interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n variant?: \"default\" | \"outline\" | \"filled\" | \"glass\"\n size?: \"sm\" | \"md\" | \"lg\"\n error?: boolean\n success?: boolean\n label?: string\n description?: string\n}\n\n/**\n * Checkbox 컴포넌트 / Checkbox component\n * \n * 체크박스 입력 필드를 제공하는 컴포넌트입니다.\n * ARIA 속성을 자동으로 설정하여 접근성을 지원합니다.\n * \n * Checkbox input field component.\n * Automatically sets ARIA attributes for accessibility support.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Checkbox label=\"이용약관에 동의합니다\" />\n * \n * @example\n * // 에러 상태와 설명 / Error state with description\n * <Checkbox \n * label=\"필수 항목\"\n * description=\"이 항목은 필수입니다\"\n * error\n * />\n * \n * @example\n * // 제어 컴포넌트 / Controlled component\n * const [checked, setChecked] = useState(false)\n * <Checkbox \n * checked={checked}\n * onChange={(e) => setChecked(e.target.checked)}\n * label=\"동의\"\n * />\n * \n * @param {CheckboxProps} props - Checkbox 컴포넌트의 props / Checkbox component props\n * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref\n * @returns {JSX.Element} Checkbox 컴포넌트 / Checkbox component\n */\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ \n className, \n variant = \"default\",\n size = \"md\",\n error = false,\n success = false,\n label,\n description,\n id,\n ...props \n }, ref) => {\n const generatedId = React.useId()\n const checkboxId = id || generatedId\n const labelId = label ? `${checkboxId}-label` : undefined\n const descriptionId = description ? `${checkboxId}-description` : undefined\n const sizeClasses = {\n sm: \"w-4 h-4\",\n md: \"w-5 h-5\",\n lg: \"w-6 h-6\"\n }\n\n const iconSizes = {\n sm: 12,\n md: 14,\n lg: 16\n }\n\n const variantClasses = {\n default: \"border-gray-300 bg-white text-indigo-600 focus:ring-ring dark:border-gray-600 dark:bg-gray-800 dark:focus:ring-ring\",\n outline: \"border-2 border-gray-200 bg-transparent text-indigo-600 focus:ring-ring dark:border-gray-700 dark:focus:ring-ring\",\n filled: \"border-transparent bg-gray-50 text-indigo-600 focus:bg-white focus:ring-ring dark:bg-gray-700 dark:focus:bg-gray-800 dark:focus:ring-ring\",\n glass: \"border-white/30 bg-white/10 backdrop-blur-sm text-white focus:ring-ring/50 focus:bg-white/20 dark:border-slate-600/50 dark:bg-slate-800/10 dark:focus:ring-ring/50 dark:focus:bg-slate-700/20\"\n }\n\n const stateClasses = error \n ? \"border-red-500 focus:ring-red-500 dark:border-red-400 dark:focus:ring-red-400\"\n : success\n ? \"border-green-500 focus:ring-green-500 dark:border-green-400 dark:focus:ring-green-400\"\n : \"\"\n\n // Support both controlled and uncontrolled modes\n const isControlled = props.checked !== undefined;\n const isChecked = props.checked ?? props.defaultChecked ?? false;\n // Add readOnly if controlled without onChange to suppress React warning\n const needsReadOnly = isControlled && !props.onChange && !props.readOnly;\n\n return (\n <div className=\"flex items-start space-x-3\">\n <div className=\"relative\">\n <input\n type=\"checkbox\"\n id={checkboxId}\n className={merge(\n \"peer absolute inset-0 w-full h-full opacity-0 cursor-pointer z-10\",\n className\n )}\n ref={ref}\n aria-checked={isChecked}\n aria-invalid={error}\n aria-label={!label ? props['aria-label'] : undefined}\n aria-labelledby={label ? labelId : undefined}\n aria-describedby={descriptionId}\n role=\"checkbox\"\n readOnly={needsReadOnly || props.readOnly}\n {...props}\n />\n <div\n className={merge(\n \"flex items-center justify-center rounded border transition-all duration-200 cursor-pointer relative\",\n \"peer-focus:outline-none peer-focus:ring-1 peer-focus:ring-offset-2\",\n \"peer-hover:border-indigo-400 peer-hover:shadow-sm\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-50 peer-disabled:hover:border-gray-300\",\n sizeClasses[size],\n variantClasses[variant],\n stateClasses,\n isChecked && \"bg-primary border-primary dark:bg-primary dark:border-primary shadow-md shadow-indigo-500/20\",\n !isChecked && \"bg-white dark:bg-gray-800\"\n )}\n >\n {/* 체크 아이콘으로 개선 */}\n <Icon \n name=\"check\" \n size={iconSizes[size]} \n className={merge(\n \"text-white transition-all duration-200\",\n isChecked ? \"opacity-100 scale-100\" : \"opacity-0 scale-0\"\n )}\n />\n </div>\n </div>\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <label htmlFor={checkboxId} id={labelId} className=\"text-sm font-medium text-gray-900 dark:text-white cursor-pointer\">\n {label}\n </label>\n )}\n {description && (\n <p id={descriptionId} className=\"text-sm text-gray-500 dark:text-gray-400\">\n {description}\n </p>\n )}\n </div>\n )}\n </div>\n )\n }\n)\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox } "]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {a}from'./chunk-UUHAXGMO.mjs';import e from'react';import {jsxs,jsx}from'react/jsx-runtime';var d=e.forwardRef(({className:r,content:o,children:a$1,position:c="top",variant:h="default",delay:y=300,disabled:w=false,...T},x)=>{let[v,f]=e.useState(false),[p,k]=e.useState({x:0,y:0}),l=e.useRef(void 0),g=e.useRef(null),R=E=>{var b;if(w)return;let t=E.currentTarget.getBoundingClientRect();(b=g.current)==null?void 0:b.getBoundingClientRect();let s=0,n=0;switch(c){case "top":s=t.left+t.width/2,n=t.top-8;break;case "bottom":s=t.left+t.width/2,n=t.bottom+8;break;case "left":s=t.left-8,n=t.top+t.height/2;break;case "right":s=t.right+8,n=t.top+t.height/2;break}k({x:s,y:n}),l.current=window.setTimeout(()=>{f(true);},y);},L=()=>{l.current&&clearTimeout(l.current),f(false);};e.useEffect(()=>()=>{l.current&&clearTimeout(l.current);},[]);let M=()=>{switch(h){case "light":return "bg-white text-gray-900 border border-gray-200 shadow-lg";case "dark":return "bg-gray-900 text-white shadow-lg";default:return "bg-gray-800 text-white shadow-lg"}},N=()=>{switch(c){case "top":return "top-full left-1/2 -translate-x-1/2 border-t-gray-800 dark:border-t-gray-800";case "bottom":return "bottom-full left-1/2 -translate-x-1/2 border-b-gray-800 dark:border-b-gray-800";case "left":return "left-full top-1/2 -translate-y-1/2 border-l-gray-800 dark:border-l-gray-800";case "right":return "right-full top-1/2 -translate-y-1/2 border-r-gray-800 dark:border-r-gray-800";default:return "top-full left-1/2 -translate-x-1/2 border-t-gray-800 dark:border-t-gray-800"}};return jsxs("div",{ref:x,className:a("relative inline-block",r),onMouseEnter:R,onMouseLeave:L,...T,children:[a$1,v&&jsxs("div",{ref:g,className:a("fixed z-50 px-3 py-2 text-sm rounded-lg whitespace-nowrap pointer-events-none",M()),style:{left:`${p.x}px`,top:`${p.y}px`,transform:"translate(-50%, -50%)"},children:[o,jsx("div",{className:a("absolute w-0 h-0 border-4 border-transparent",N())})]})]})});d.displayName="Tooltip";var D=e.forwardRef(({className:r,...o},a)=>jsx(d,{ref:a,variant:"light",className:r,...o}));D.displayName="TooltipLight";var C=e.forwardRef(({className:r,...o},a)=>jsx(d,{ref:a,variant:"dark",className:r,...o}));C.displayName="TooltipDark";export{d as a,D as b,C as c};//# sourceMappingURL=chunk-RJHCRHFD.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-RJHCRHFD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Tooltip.tsx"],"names":["Tooltip","React","className","content","children","position","variant","delay","disabled","props","ref","isVisible","setIsVisible","coords","setCoords","timeoutRef","tooltipRef","showTooltip","e","_a","rect","x","y","hideTooltip","getVariantClasses","getArrowClasses","jsxs","merge","jsx","TooltipLight","TooltipDark"],"mappings":"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","file":"chunk-RJHCRHFD.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Tooltip 컴포넌트의 props / Tooltip component props\n * @typedef {Object} TooltipProps\n * @property {string} content - Tooltip 내용 / Tooltip content\n * @property {React.ReactNode} children - Tooltip이 연결될 요소 / Element to attach tooltip to\n * @property {\"top\" | \"bottom\" | \"left\" | \"right\"} [position=\"top\"] - Tooltip 표시 위치 / Tooltip display position\n * @property {\"default\" | \"light\" | \"dark\"} [variant=\"default\"] - Tooltip 스타일 변형 / Tooltip style variant\n * @property {number} [delay=300] - Tooltip 표시 지연 시간(ms) / Tooltip display delay (ms)\n * @property {boolean} [disabled=false] - Tooltip 비활성화 여부 / Disable tooltip\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {\n content: string\n children: React.ReactNode\n position?: \"top\" | \"bottom\" | \"left\" | \"right\"\n variant?: \"default\" | \"light\" | \"dark\"\n delay?: number\n disabled?: boolean\n}\n\n/**\n * Tooltip 컴포넌트 / Tooltip component\n * \n * 호버 시 추가 정보를 표시하는 툴팁 컴포넌트입니다.\n * 마우스 호버 시 지연 시간 후 표시됩니다.\n * \n * Tooltip component that displays additional information on hover.\n * Appears after a delay when the mouse hovers over the element.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Tooltip content=\"이것은 도움말입니다\">\n * <Button>호버하세요</Button>\n * </Tooltip>\n * \n * @example\n * // 다양한 위치 / Different positions\n * <Tooltip content=\"위치 변경\" position=\"bottom\">\n * <Icon name=\"info\" />\n * </Tooltip>\n * \n * @example\n * // 커스텀 스타일 / Custom styles\n * <Tooltip content=\"라이트 스타일\" variant=\"light\" delay={500}>\n * <span>호버</span>\n * </Tooltip>\n * \n * @param {TooltipProps} props - Tooltip 컴포넌트의 props / Tooltip component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Tooltip 컴포넌트 / Tooltip component\n * \n * @todo 접근성 개선: role=\"tooltip\" 추가 필요 / Accessibility: Add role=\"tooltip\"\n * @todo 접근성 개선: aria-describedby 연결 필요 / Accessibility: Connect aria-describedby\n * @todo 접근성 개선: 키보드 포커스 시 Tooltip 표시 필요 / Accessibility: Show tooltip on keyboard focus\n */\nconst Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(\n ({ \n className, \n content,\n children,\n position = \"top\",\n variant = \"default\",\n delay = 300,\n disabled = false,\n ...props \n }, ref) => {\n const [isVisible, setIsVisible] = React.useState(false)\n const [coords, setCoords] = React.useState({ x: 0, y: 0 })\n const timeoutRef = React.useRef<number | undefined>(undefined)\n const tooltipRef = React.useRef<HTMLDivElement>(null)\n\n const showTooltip = (e: React.MouseEvent) => {\n if (disabled) return\n \n const rect = e.currentTarget.getBoundingClientRect()\n const _tooltipRect = tooltipRef.current?.getBoundingClientRect()\n \n let x = 0\n let y = 0\n \n switch (position) {\n case \"top\":\n x = rect.left + rect.width / 2\n y = rect.top - 8 // 8px 간격\n break\n case \"bottom\":\n x = rect.left + rect.width / 2\n y = rect.bottom + 8 // 8px 간격\n break\n case \"left\":\n x = rect.left - 8 // 8px 간격\n y = rect.top + rect.height / 2\n break\n case \"right\":\n x = rect.right + 8 // 8px 간격\n y = rect.top + rect.height / 2\n break\n }\n \n setCoords({ x, y })\n \n timeoutRef.current = window.setTimeout(() => {\n setIsVisible(true)\n }, delay)\n }\n\n const hideTooltip = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n setIsVisible(false)\n }\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const getVariantClasses = () => {\n switch (variant) {\n case \"light\":\n return \"bg-white text-gray-900 border border-gray-200 shadow-lg\"\n case \"dark\":\n return \"bg-gray-900 text-white shadow-lg\"\n default:\n return \"bg-gray-800 text-white shadow-lg\"\n }\n }\n\n const _getPositionClasses = () => {\n switch (position) {\n case \"top\":\n return \"bottom-full left-1/2 -translate-x-1/2 mb-2\" // 8px 간격\n case \"bottom\":\n return \"top-full left-1/2 -translate-x-1/2 mt-2\" // 8px 간격\n case \"left\":\n return \"right-full top-1/2 -translate-y-1/2 mr-2\" // 8px 간격\n case \"right\":\n return \"left-full top-1/2 -translate-y-1/2 ml-2\" // 8px 간격\n default:\n return \"bottom-full left-1/2 -translate-x-1/2 mb-2\"\n }\n }\n\n const getArrowClasses = () => {\n switch (position) {\n case \"top\":\n return \"top-full left-1/2 -translate-x-1/2 border-t-gray-800 dark:border-t-gray-800\"\n case \"bottom\":\n return \"bottom-full left-1/2 -translate-x-1/2 border-b-gray-800 dark:border-b-gray-800\"\n case \"left\":\n return \"left-full top-1/2 -translate-y-1/2 border-l-gray-800 dark:border-l-gray-800\"\n case \"right\":\n return \"right-full top-1/2 -translate-y-1/2 border-r-gray-800 dark:border-r-gray-800\"\n default:\n return \"top-full left-1/2 -translate-x-1/2 border-t-gray-800 dark:border-t-gray-800\"\n }\n }\n\n return (\n <div\n ref={ref}\n className={merge(\"relative inline-block\", className)}\n onMouseEnter={showTooltip}\n onMouseLeave={hideTooltip}\n {...props}\n >\n {children}\n \n {isVisible && (\n <div\n ref={tooltipRef}\n className={merge(\n \"fixed z-50 px-3 py-2 text-sm rounded-lg whitespace-nowrap pointer-events-none\", // 12px, 8px 패딩\n getVariantClasses()\n )}\n style={{\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n transform: 'translate(-50%, -50%)'\n }}\n >\n {content}\n {/* 화살표 */}\n <div\n className={merge(\n \"absolute w-0 h-0 border-4 border-transparent\",\n getArrowClasses()\n )}\n />\n </div>\n )}\n </div>\n )\n }\n)\nTooltip.displayName = \"Tooltip\"\n\n// 편의 컴포넌트들\nexport const TooltipLight = React.forwardRef<HTMLDivElement, Omit<TooltipProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Tooltip ref={ref} variant=\"light\" className={className} {...props} />\n )\n)\nTooltipLight.displayName = \"TooltipLight\"\n\nexport const TooltipDark = React.forwardRef<HTMLDivElement, Omit<TooltipProps, \"variant\">>(\n ({ className, ...props }, ref) => (\n <Tooltip ref={ref} variant=\"dark\" className={className} {...props} />\n )\n)\nTooltipDark.displayName = \"TooltipDark\"\n\nexport { Tooltip } "]}
|
package/dist/chunk-UUHAXGMO.mjs
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import {clsx}from'clsx';import {twMerge}from'tailwind-merge';function i(...t){return twMerge(clsx(t))}function m(t,e,o){return i(t?e:o||"")}function p(t,e="ko-KR"){let o=typeof t=="string"?new Date(t):t,r=new Date().getTime()-o.getTime(),n=Math.floor(r/6e4),s=Math.floor(r/36e5),a=Math.floor(r/864e5);return n<1?e==="ko-KR"?"\uBC29\uAE08 \uC804":"just now":n<60?e==="ko-KR"?`${n}\uBD84 \uC804`:`${n}m ago`:s<24?e==="ko-KR"?`${s}\uC2DC\uAC04 \uC804`:`${s}h ago`:a<7?e==="ko-KR"?`${a}\uC77C \uC804`:`${a}d ago`:o.toLocaleDateString(e)}function d(t){let e=Object.entries(t).filter(([,o])=>o).map(([o])=>o);return i(...e)}var R=i;export{i as a,m as b,p as c,d,R as e};//# sourceMappingURL=chunk-UUHAXGMO.mjs.map
|
|
2
3
|
//# sourceMappingURL=chunk-UUHAXGMO.mjs.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {a}from'./chunk-UUHAXGMO.mjs';import w from'react';import {jsxs,jsx}from'react/jsx-runtime';var R=w.forwardRef(({value:r,defaultValue:B=0,min:n,max:a$1,step:k=1,onChange:p,disabled:s=false,size:E="md",showButtons:N=true,buttonLayout:H="horizontal",className:y,...c},x)=>{let[V,z]=w.useState(B),f=r!==void 0,i=f?r:V,l=w.useCallback(o=>{let t=o;n!==void 0&&(t=Math.max(n,t)),a$1!==void 0&&(t=Math.min(a$1,t)),f||z(t),p==null||p(t);},[f,n,a$1,p]),v=()=>{s||l(i+k);},m=()=>{s||l(i-k);},C=o=>{let t=o.target.value;if(t===""||t==="-")return;let g=parseFloat(t);isNaN(g)||(n!==void 0&&g<n?l(n):l(g));},I=o=>{var t;n!==void 0&&i<n&&l(n),a$1!==void 0&&i>a$1&&l(a$1),(t=c.onBlur)==null||t.call(c,o);},L=o=>{o.key==="ArrowUp"?(o.preventDefault(),v()):o.key==="ArrowDown"&&(o.preventDefault(),m());},d={sm:{input:"h-8 text-sm px-2 py-1",button:"w-8 h-8 text-sm",wrapper:"gap-1"},md:{input:"h-10 text-sm px-3 py-2",button:"w-10 h-10 text-sm",wrapper:"gap-2"},lg:{input:"h-12 text-base px-4 py-2.5",button:"w-12 h-12 text-base",wrapper:"gap-2"}}[E],b=a("flex items-center justify-center rounded-md border border-input bg-background","hover:bg-secondary hover:border-primary/50 active:scale-95","transition-all duration-150","disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",d.button),M=n===void 0||i>n,D=a$1===void 0||i<a$1;return H==="vertical"?jsxs("div",{className:a("inline-flex items-center",d.wrapper,y),children:[jsxs("div",{className:"flex flex-col gap-0.5",children:[jsx("button",{type:"button",onClick:v,disabled:s||!D,className:a(b,"rounded-b-none h-[calc(50%-1px)]"),"aria-label":"Increase",children:jsx(K,{className:"w-3 h-3"})}),jsx("button",{type:"button",onClick:m,disabled:s||!M,className:a(b,"rounded-t-none h-[calc(50%-1px)]"),"aria-label":"Decrease",children:jsx(W,{className:"w-3 h-3"})})]}),jsx("input",{ref:x,type:"text",inputMode:"numeric",pattern:n!==void 0&&n>=0?"[0-9]*":"-?[0-9]*",value:i,onChange:C,onKeyDown:L,onBlur:I,disabled:s,className:a("w-16 text-center rounded-md border border-input bg-background","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",d.input),...c})]}):jsxs("div",{className:a("inline-flex items-center",d.wrapper,y),children:[N&&jsx("button",{type:"button",onClick:m,disabled:s||!M,className:b,"aria-label":"Decrease",children:jsx(T,{className:"w-3.5 h-3.5"})}),jsx("input",{ref:x,type:"text",inputMode:"numeric",pattern:n!==void 0&&n>=0?"[0-9]*":"-?[0-9]*",value:i,onChange:C,onKeyDown:L,onBlur:I,disabled:s,className:a("w-16 text-center rounded-md border border-input bg-background","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",d.input),...c}),N&&jsx("button",{type:"button",onClick:v,disabled:s||!D,className:b,"aria-label":"Increase",children:jsx(j,{className:"w-3.5 h-3.5"})})]})});R.displayName="NumberInput";function T({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20 12H4"})})}function j({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})})}function K({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})}function W({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}export{R as a};//# sourceMappingURL=chunk-VWSBJUNI.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-VWSBJUNI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/NumberInput.tsx"],"names":["NumberInput","React","controlledValue","defaultValue","min","max","step","onChange","disabled","size","showButtons","buttonLayout","className","props","ref","internalValue","setInternalValue","isControlled","currentValue","updateValue","newValue","clampedValue","increment","decrement","handleInputChange","e","inputValue","handleBlur","_a","handleKeyDown","sizes","buttonBase","merge","canDecrement","canIncrement","jsxs","jsx","ChevronUp","ChevronDown","Minus","Plus"],"mappings":"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","file":"chunk-VWSBJUNI.mjs","sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { merge } from \"../lib/utils\";\n\n/**\n * NumberInput 컴포넌트의 props / NumberInput component props\n * @typedef {Object} NumberInputProps\n * @property {number} [value] - 현재 값 / Current value\n * @property {number} [defaultValue=0] - 기본 값 / Default value\n * @property {number} [min] - 최소 값 / Minimum value\n * @property {number} [max] - 최대 값 / Maximum value\n * @property {number} [step=1] - 증감 단위 / Step amount\n * @property {(value: number) => void} [onChange] - 값 변경 콜백 / Value change callback\n * @property {boolean} [disabled=false] - 비활성화 / Disabled state\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - 크기 / Size\n * @property {boolean} [showButtons=true] - +/- 버튼 표시 / Show +/- buttons\n * @property {\"horizontal\" | \"vertical\"} [buttonLayout=\"horizontal\"] - 버튼 배치 / Button layout\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n */\nexport interface NumberInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"onChange\" | \"value\" | \"defaultValue\" | \"size\" | \"type\"> {\n value?: number;\n defaultValue?: number;\n min?: number;\n max?: number;\n step?: number;\n onChange?: (value: number) => void;\n disabled?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n showButtons?: boolean;\n buttonLayout?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * NumberInput 컴포넌트 / NumberInput component\n *\n * 숫자 입력을 위한 컴포넌트로, 커스텀 +/- 버튼을 제공합니다.\n * 브라우저 기본 스피너 대신 스타일링된 버튼을 사용합니다.\n *\n * Number input component with custom +/- buttons.\n * Uses styled buttons instead of browser default spinners.\n *\n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <NumberInput value={count} onChange={setCount} />\n *\n * @example\n * // 범위 지정 / With range\n * <NumberInput min={0} max={100} step={5} />\n *\n * @example\n * // 세로 버튼 / Vertical buttons\n * <NumberInput buttonLayout=\"vertical\" />\n */\nconst NumberInput = React.forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n value: controlledValue,\n defaultValue = 0,\n min,\n max,\n step = 1,\n onChange,\n disabled = false,\n size = \"md\",\n showButtons = true,\n buttonLayout = \"horizontal\",\n className,\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const updateValue = React.useCallback(\n (newValue: number) => {\n // Clamp to min/max\n let clampedValue = newValue;\n if (min !== undefined) clampedValue = Math.max(min, clampedValue);\n if (max !== undefined) clampedValue = Math.min(max, clampedValue);\n\n if (!isControlled) {\n setInternalValue(clampedValue);\n }\n onChange?.(clampedValue);\n },\n [isControlled, min, max, onChange]\n );\n\n const increment = () => {\n if (disabled) return;\n updateValue(currentValue + step);\n };\n\n const decrement = () => {\n if (disabled) return;\n updateValue(currentValue - step);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n // Allow empty string, minus sign alone (for typing negative numbers), or valid numbers\n if (inputValue === \"\" || inputValue === \"-\") {\n return;\n }\n const newValue = parseFloat(inputValue);\n if (!isNaN(newValue)) {\n // If min is set, enforce it on direct input\n if (min !== undefined && newValue < min) {\n updateValue(min);\n } else {\n updateValue(newValue);\n }\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n // On blur, ensure value is within bounds\n if (min !== undefined && currentValue < min) {\n updateValue(min);\n }\n if (max !== undefined && currentValue > max) {\n updateValue(max);\n }\n props.onBlur?.(e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n increment();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n decrement();\n }\n };\n\n // Spacing system: 4px grid\n // sm: h-8 (32px), px-2 (8px), gap-1 (4px)\n // md: h-10 (40px), px-3 (12px), gap-2 (8px)\n // lg: h-12 (48px), px-4 (16px), gap-2 (8px)\n const sizeClasses = {\n sm: {\n input: \"h-8 text-sm px-2 py-1\",\n button: \"w-8 h-8 text-sm\",\n wrapper: \"gap-1\",\n },\n md: {\n input: \"h-10 text-sm px-3 py-2\",\n button: \"w-10 h-10 text-sm\",\n wrapper: \"gap-2\",\n },\n lg: {\n input: \"h-12 text-base px-4 py-2.5\",\n button: \"w-12 h-12 text-base\",\n wrapper: \"gap-2\",\n },\n };\n\n const sizes = sizeClasses[size];\n\n const buttonBase = merge(\n \"flex items-center justify-center rounded-md border border-input bg-background\",\n \"hover:bg-secondary hover:border-primary/50 active:scale-95\",\n \"transition-all duration-150\",\n \"disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background\",\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2\",\n sizes.button\n );\n\n const canDecrement = min === undefined || currentValue > min;\n const canIncrement = max === undefined || currentValue < max;\n\n if (buttonLayout === \"vertical\") {\n return (\n <div className={merge(\"inline-flex items-center\", sizes.wrapper, className)}>\n <div className=\"flex flex-col gap-0.5\">\n <button\n type=\"button\"\n onClick={increment}\n disabled={disabled || !canIncrement}\n className={merge(buttonBase, \"rounded-b-none h-[calc(50%-1px)]\")}\n aria-label=\"Increase\"\n >\n <ChevronUp className=\"w-3 h-3\" />\n </button>\n <button\n type=\"button\"\n onClick={decrement}\n disabled={disabled || !canDecrement}\n className={merge(buttonBase, \"rounded-t-none h-[calc(50%-1px)]\")}\n aria-label=\"Decrease\"\n >\n <ChevronDown className=\"w-3 h-3\" />\n </button>\n </div>\n <input\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n pattern={min !== undefined && min >= 0 ? \"[0-9]*\" : \"-?[0-9]*\"}\n value={currentValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n disabled={disabled}\n className={merge(\n \"w-16 text-center rounded-md border border-input bg-background\",\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\",\n sizes.input\n )}\n {...props}\n />\n </div>\n );\n }\n\n return (\n <div className={merge(\"inline-flex items-center\", sizes.wrapper, className)}>\n {showButtons && (\n <button\n type=\"button\"\n onClick={decrement}\n disabled={disabled || !canDecrement}\n className={buttonBase}\n aria-label=\"Decrease\"\n >\n <Minus className=\"w-3.5 h-3.5\" />\n </button>\n )}\n <input\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n pattern={min !== undefined && min >= 0 ? \"[0-9]*\" : \"-?[0-9]*\"}\n value={currentValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n disabled={disabled}\n className={merge(\n \"w-16 text-center rounded-md border border-input bg-background\",\n \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\",\n sizes.input\n )}\n {...props}\n />\n {showButtons && (\n <button\n type=\"button\"\n onClick={increment}\n disabled={disabled || !canIncrement}\n className={buttonBase}\n aria-label=\"Increase\"\n >\n <Plus className=\"w-3.5 h-3.5\" />\n </button>\n )}\n </div>\n );\n }\n);\n\nNumberInput.displayName = \"NumberInput\";\n\n// Simple icon components to avoid external dependency\nfunction Minus({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M20 12H4\" />\n </svg>\n );\n}\n\nfunction Plus({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 4v16m8-8H4\" />\n </svg>\n );\n}\n\nfunction ChevronUp({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 15l7-7 7 7\" />\n </svg>\n );\n}\n\nfunction ChevronDown({ className }: { className?: string }) {\n return (\n <svg\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n}\n\nexport { NumberInput };\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {l}from'./chunk-25X3JS5U.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import I,{useState,useEffect,useCallback}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var U=I.forwardRef(({className:p,height:v=2,color:h="gradient",position:y="top",animated:A=true,showPercentage:w=false,...a$1},x)=>{let[u,b]=useState(0);useEffect(()=>{let d=()=>{let m=window.scrollY,n=document.documentElement.scrollHeight-window.innerHeight,k=n>0?m/n*100:0;b(k);};return d(),window.addEventListener("scroll",d,{passive:true}),window.addEventListener("resize",d,{passive:true}),()=>{window.removeEventListener("scroll",d),window.removeEventListener("resize",d);}},[]);let f={default:"bg-foreground",primary:"bg-primary",secondary:"bg-muted-foreground",gradient:"bg-gradient-to-r from-teal-600 via-cyan-500 to-teal-600"};return jsxs("div",{ref:x,className:a("fixed z-50",{top:"top-0 left-0 right-0",bottom:"bottom-0 left-0 right-0"}[y],p),style:{height:`${v}px`},...a$1,children:[jsx("div",{className:"absolute inset-0 w-full h-full bg-border/30"}),jsx("div",{className:a("absolute top-0 left-0 h-full origin-left transition-all duration-100 ease-out",f[h]||f.gradient),style:{width:`${u}%`,transformOrigin:"left"}}),w&&jsxs("div",{className:"absolute top-2 right-2 text-xs text-muted-foreground bg-card px-2 py-1 rounded border border-border",children:[Math.round(u),"%"]})]})});U.displayName="ScrollProgress";var X=I.forwardRef(({className:p,title:v,subtitle:h,description:y,primaryAction:A,secondaryAction:w,slides:a$1,autoPlay:x=false,interval:u=5e3,indicator:b="dots",showControls:f=true,pauseOnHover:N=true,background:d="gradient",customBackground:m,size:n="lg",fullBleed:k=false,...T},B)=>{let[g,S]=useState(0),[H,L]=useState(false),r=a$1&&a$1.length>0,c=(a$1==null?void 0:a$1.length)||0,C=useCallback(()=>{r&&S(s=>(s+1)%c);},[r,c]),$=useCallback(()=>{r&&S(s=>(s-1+c)%c);},[r,c]),E=useCallback(s=>{S(s);},[]);useEffect(()=>{if(!x||!r||H)return;let s=setInterval(C,u);return ()=>clearInterval(s)},[x,r,H,u,C]);let t=r?a$1[g]:{title:v||"",subtitle:h,description:y||"",primaryAction:A,secondaryAction:w,background:d},_={sm:"min-h-[400px]",md:"min-h-[500px]",lg:"min-h-[600px]",xl:"min-h-[700px]",full:"min-h-screen"},F={sm:"text-2xl sm:text-3xl md:text-4xl leading-tight",md:"text-3xl sm:text-4xl md:text-5xl leading-tight",lg:"text-3xl sm:text-4xl md:text-5xl lg:text-6xl leading-tight",xl:"text-3xl sm:text-4xl md:text-5xl lg:text-6xl leading-tight",full:"text-4xl sm:text-5xl md:text-6xl lg:text-7xl leading-tight"},G={sm:"text-base sm:text-lg md:text-xl leading-snug",md:"text-lg sm:text-xl md:text-2xl leading-snug",lg:"text-lg sm:text-xl md:text-2xl lg:text-3xl leading-snug",xl:"text-xl sm:text-2xl md:text-3xl leading-snug",full:"text-xl sm:text-2xl md:text-3xl lg:text-4xl leading-snug"},W={sm:"text-sm sm:text-base md:text-lg leading-relaxed",md:"text-base sm:text-lg md:text-xl leading-relaxed",lg:"text-base sm:text-lg md:text-xl leading-relaxed",xl:"text-base sm:text-lg md:text-xl leading-relaxed",full:"text-lg sm:text-xl md:text-2xl leading-relaxed"},D=r&&t.background||d,O={none:null,gradient:jsxs("div",{className:"absolute inset-0 z-0 pointer-events-none",children:[jsx("div",{className:"absolute top-0 left-0 w-80 h-80 sm:w-96 sm:h-96 md:w-[500px] md:h-[500px] -translate-x-1/3 -translate-y-1/3 rounded-full bg-gradient-to-br from-teal-400 via-cyan-500 to-teal-600 opacity-40 blur-3xl"}),jsx("div",{className:"absolute bottom-0 right-0 w-72 h-72 sm:w-80 sm:h-80 md:w-[400px] md:h-[400px] translate-x-1/4 translate-y-1/4 rounded-full bg-gradient-to-tr from-cyan-400 via-teal-500 to-emerald-500 opacity-35 blur-3xl"}),jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-48 h-48 sm:w-64 sm:h-64 md:w-80 md:h-80 rounded-full bg-teal-500/20 blur-2xl"})]}),particles:jsx("div",{className:"absolute inset-0 z-0 pointer-events-none",children:jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-secondary/50 via-background to-secondary/30"})}),video:m?jsx("div",{className:"absolute inset-0 z-0 pointer-events-none",children:jsx("video",{autoPlay:true,loop:true,muted:true,playsInline:true,className:"absolute inset-0 w-full h-full object-cover opacity-20",children:jsx("source",{src:m,type:"video/mp4"})})}):null,image:m||r&&t.backgroundImage?jsxs("div",{className:"absolute inset-0 z-0 pointer-events-none",children:[jsx("img",{src:r&&t.backgroundImage||m,alt:"",className:"absolute inset-0 w-full h-full object-cover opacity-30"}),jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-background via-background/50 to-transparent"})]}):null},Y=()=>{if(!r||b==="none")return null;switch(b){case "dots":return jsx("div",{className:"flex gap-2 justify-center mt-8",children:a$1.map((s,l)=>jsx("button",{onClick:()=>E(l),className:a("w-2.5 h-2.5 rounded-full transition-all duration-300",g===l?"bg-primary w-8":"bg-muted-foreground/30 hover:bg-muted-foreground/50"),"aria-label":`Go to slide ${l+1}`},l))});case "line":return jsx("div",{className:"flex gap-1 justify-center mt-8 max-w-xs mx-auto",children:a$1.map((s,l)=>jsx("button",{onClick:()=>E(l),className:"flex-1 h-1 rounded-full overflow-hidden bg-muted-foreground/20","aria-label":`Go to slide ${l+1}`,children:jsx("div",{className:a("h-full bg-primary transition-all duration-300",g===l?"w-full":"w-0")})},l))});case "numbers":return jsxs("div",{className:"flex items-center justify-center gap-2 mt-8 text-sm text-muted-foreground",children:[jsx("span",{className:"text-foreground font-semibold",children:g+1}),jsx("span",{children:"/"}),jsx("span",{children:c})]});default:return null}};return jsxs("section",{ref:B,className:a("relative w-full flex flex-col justify-center items-center text-center px-4 sm:px-6 lg:px-8 overflow-hidden",_[n],k&&"-mt-16 pt-16",p),onMouseEnter:()=>N&&L(true),onMouseLeave:()=>N&&L(false),...T,children:[O[D],jsxs("div",{className:"relative z-10 max-w-4xl mx-auto",children:[jsxs("div",{className:"animate-in fade-in slide-in-from-bottom-4 duration-500",children:[jsxs("h1",{className:a("font-extrabold mb-4 sm:mb-6 text-foreground",F[n]),children:[jsx("span",{className:"block gradient-text",children:t.title}),t.subtitle&&jsx("span",{className:a("block font-semibold mt-2 sm:mt-4 text-muted-foreground",G[n]),children:t.subtitle})]}),jsx("div",{className:a("text-muted-foreground mb-6 sm:mb-8 md:mb-10 max-w-2xl mx-auto",W[n]),children:t.description.split(`
|
|
3
|
+
`).map((s,l,q)=>jsxs(I.Fragment,{children:[s,l<q.length-1&&jsx("br",{})]},l))}),(t.primaryAction||t.secondaryAction)&&jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[t.primaryAction&&jsxs(l,{href:t.primaryAction.href,size:n==="xl"||n==="full"?"lg":"md",hover:"scale",className:"inline-flex items-center gap-2",children:[t.primaryAction.icon,t.primaryAction.label]}),t.secondaryAction&&jsxs(l,{href:t.secondaryAction.href,variant:"outline",size:n==="xl"||n==="full"?"lg":"md",hover:"scale",className:"inline-flex items-center gap-2",children:[t.secondaryAction.icon,t.secondaryAction.label]})]})]},r?g:0),Y()]}),r&&f&&c>1&&jsxs(Fragment,{children:[jsx("button",{onClick:$,className:"absolute left-4 top-1/2 -translate-y-1/2 z-20 p-2 rounded-full bg-card/80 backdrop-blur-sm border border-border text-foreground hover:bg-card transition-colors","aria-label":"Previous slide",children:jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),jsx("button",{onClick:C,className:"absolute right-4 top-1/2 -translate-y-1/2 z-20 p-2 rounded-full bg-card/80 backdrop-blur-sm border border-border text-foreground hover:bg-card transition-colors","aria-label":"Next slide",children:jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})})]})]})});X.displayName="HeroSection";export{U as a,X as b};//# sourceMappingURL=chunk-XSAVY7UB.mjs.map
|
|
4
|
+
//# sourceMappingURL=chunk-XSAVY7UB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ScrollProgress.tsx","../src/components/HeroSection.tsx"],"names":["ScrollProgress","React","className","height","color","position","_animated","showPercentage","props","ref","progress","setProgress","useState","useEffect","updateProgress","scrollTop","docHeight","currentProgress","progressColors","jsxs","merge","jsx","HeroSection","title","subtitle","description","primaryAction","secondaryAction","slides","autoPlay","interval","indicator","showControls","pauseOnHover","background","customBackground","size","fullBleed","currentSlide","setCurrentSlide","isPaused","setIsPaused","isSlideMode","slideCount","nextSlide","useCallback","prev","prevSlide","goToSlide","index","timer","currentContent","sizeClasses","titleSizeClasses","subtitleSizeClasses","descriptionSizeClasses","currentBg","backgroundContent","renderIndicator","_","line","i","arr","Button","Fragment"],"mappings":"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","file":"chunk-XSAVY7UB.mjs","sourcesContent":["'use client'\n\nimport React, { useState, useEffect } from 'react'\nimport { merge } from '../lib/utils'\n\n/**\n * ScrollProgress 컴포넌트의 props / ScrollProgress component props\n * @typedef {Object} ScrollProgressProps\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {number} [height=2] - 진행률 바 높이 (px) / Progress bar height (px)\n * @property {'default' | 'primary' | 'secondary' | 'gradient'} [color='gradient'] - 진행률 바 색상 / Progress bar color\n * @property {'top' | 'bottom'} [position='top'] - 표시 위치 / Display position\n * @property {boolean} [animated=true] - 애니메이션 활성화 여부 / Enable animation\n * @property {boolean} [showPercentage=false] - 퍼센트 표시 여부 / Show percentage\n */\nexport interface ScrollProgressProps {\n className?: string\n height?: number\n color?: 'default' | 'primary' | 'secondary' | 'gradient'\n position?: 'top' | 'bottom'\n animated?: boolean\n showPercentage?: boolean\n}\n\n/**\n * ScrollProgress 컴포넌트 / ScrollProgress component\n * \n * 페이지 스크롤 진행률을 표시하는 컴포넌트입니다.\n * 페이지 상단 또는 하단에 고정되어 표시됩니다.\n * \n * Component that displays page scroll progress.\n * Fixed at top or bottom of the page.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <ScrollProgress />\n * \n * @example\n * // 하단에 표시, 퍼센트 포함 / Display at bottom with percentage\n * <ScrollProgress \n * position=\"bottom\"\n * color=\"primary\"\n * showPercentage\n * height={4}\n * />\n * \n * @param {ScrollProgressProps} props - ScrollProgress 컴포넌트의 props / ScrollProgress component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} ScrollProgress 컴포넌트 / ScrollProgress component\n */\nconst ScrollProgress = React.forwardRef<HTMLDivElement, ScrollProgressProps>(({\n className,\n height = 2,\n color = 'gradient',\n position = 'top',\n animated: _animated = true,\n showPercentage = false,\n ...props\n}, ref) => {\n const [progress, setProgress] = useState(0)\n\n useEffect(() => {\n const updateProgress = () => {\n const scrollTop = window.scrollY\n const docHeight = document.documentElement.scrollHeight - window.innerHeight\n const currentProgress = docHeight > 0 ? (scrollTop / docHeight) * 100 : 0\n setProgress(currentProgress)\n }\n\n // 초기 실행\n updateProgress()\n\n window.addEventListener('scroll', updateProgress, { passive: true })\n window.addEventListener('resize', updateProgress, { passive: true })\n \n return () => {\n window.removeEventListener('scroll', updateProgress)\n window.removeEventListener('resize', updateProgress)\n }\n }, [])\n\n // 색상 옵션 (Teal 브랜드 기반)\n const progressColors: Record<string, string> = {\n default: 'bg-foreground',\n primary: 'bg-primary',\n secondary: 'bg-muted-foreground',\n gradient: 'bg-gradient-to-r from-teal-600 via-cyan-500 to-teal-600'\n }\n\n const positionClasses = {\n top: 'top-0 left-0 right-0',\n bottom: 'bottom-0 left-0 right-0'\n }\n\n return (\n <div\n ref={ref}\n className={merge(\n 'fixed z-50',\n positionClasses[position],\n className\n )}\n style={{ height: `${height}px` }}\n {...props}\n >\n {/* 배경 바 */}\n <div className=\"absolute inset-0 w-full h-full bg-border/30\" />\n \n {/* 진행률 바 - absolute로 배경 위에 표시 */}\n <div\n className={merge(\n 'absolute top-0 left-0 h-full origin-left transition-all duration-100 ease-out',\n progressColors[color] || progressColors.gradient\n )}\n style={{\n width: `${progress}%`,\n transformOrigin: 'left'\n }}\n />\n \n {/* 퍼센트 표시 (선택사항) */}\n {showPercentage && (\n <div className=\"absolute top-2 right-2 text-xs text-muted-foreground bg-card px-2 py-1 rounded border border-border\">\n {Math.round(progress)}%\n </div>\n )}\n </div>\n )\n})\n\nScrollProgress.displayName = 'ScrollProgress'\n\nexport { ScrollProgress } ","\"use client\"\n\nimport React, { useState, useEffect, useCallback } from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Button } from \"./Button\"\n\n/**\n * 슬라이드 아이템 인터페이스\n */\nexport interface HeroSlide {\n title: string\n subtitle?: string\n description: string\n primaryAction?: {\n label: string\n href: string\n icon?: React.ReactNode\n }\n secondaryAction?: {\n label: string\n href: string\n icon?: React.ReactNode\n }\n background?: \"none\" | \"gradient\" | \"particles\" | \"image\"\n backgroundImage?: string\n}\n\n/**\n * HeroSection 컴포넌트의 props\n */\nexport interface HeroSectionProps extends React.HTMLAttributes<HTMLElement> {\n // 단일 모드 props\n title?: string\n subtitle?: string\n description?: string\n primaryAction?: {\n label: string\n href: string\n icon?: React.ReactNode\n }\n secondaryAction?: {\n label: string\n href: string\n icon?: React.ReactNode\n }\n // 슬라이드 모드 props\n slides?: HeroSlide[]\n autoPlay?: boolean\n interval?: number\n indicator?: \"dots\" | \"line\" | \"numbers\" | \"none\"\n showControls?: boolean\n pauseOnHover?: boolean\n // 공통 props\n background?: \"none\" | \"gradient\" | \"particles\" | \"video\" | \"image\"\n customBackground?: string\n /**\n * 히어로 섹션 크기\n * - sm: 400px, md: 500px, lg: 600px, xl: 700px\n * - full: 100vh (뷰포트 전체)\n */\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"\n /**\n * 헤더 뒤까지 확장 (fixed header가 있을 때)\n * true면 -mt-16 적용되어 헤더 뒤로 들어감\n */\n fullBleed?: boolean\n}\n\n/**\n * HeroSection 컴포넌트\n *\n * 단일 히어로 또는 슬라이드 히어로를 지원합니다.\n * slides prop이 있으면 슬라이드 모드로 동작합니다.\n */\nconst HeroSection = React.forwardRef<HTMLElement, HeroSectionProps>(\n ({\n className,\n // 단일 모드\n title,\n subtitle,\n description,\n primaryAction,\n secondaryAction,\n // 슬라이드 모드\n slides,\n autoPlay = false,\n interval = 5000,\n indicator = \"dots\",\n showControls = true,\n pauseOnHover = true,\n // 공통\n background = \"gradient\",\n customBackground,\n size = \"lg\",\n fullBleed = false,\n ...props\n }, ref) => {\n const [currentSlide, setCurrentSlide] = useState(0)\n const [isPaused, setIsPaused] = useState(false)\n\n // 슬라이드 모드 여부\n const isSlideMode = slides && slides.length > 0\n const slideCount = slides?.length || 0\n\n // 다음 슬라이드\n const nextSlide = useCallback(() => {\n if (!isSlideMode) return\n setCurrentSlide((prev) => (prev + 1) % slideCount)\n }, [isSlideMode, slideCount])\n\n // 이전 슬라이드\n const prevSlide = useCallback(() => {\n if (!isSlideMode) return\n setCurrentSlide((prev) => (prev - 1 + slideCount) % slideCount)\n }, [isSlideMode, slideCount])\n\n // 특정 슬라이드로 이동\n const goToSlide = useCallback((index: number) => {\n setCurrentSlide(index)\n }, [])\n\n // 자동 재생\n useEffect(() => {\n if (!autoPlay || !isSlideMode || isPaused) return\n\n const timer = setInterval(nextSlide, interval)\n return () => clearInterval(timer)\n }, [autoPlay, isSlideMode, isPaused, interval, nextSlide])\n\n // 현재 표시할 콘텐츠\n const currentContent = isSlideMode ? slides[currentSlide] : {\n title: title || \"\",\n subtitle,\n description: description || \"\",\n primaryAction,\n secondaryAction,\n background,\n }\n\n const sizeClasses = {\n sm: \"min-h-[400px]\",\n md: \"min-h-[500px]\",\n lg: \"min-h-[600px]\",\n xl: \"min-h-[700px]\",\n full: \"min-h-screen\"\n }\n\n const titleSizeClasses = {\n sm: \"text-2xl sm:text-3xl md:text-4xl leading-tight\",\n md: \"text-3xl sm:text-4xl md:text-5xl leading-tight\",\n lg: \"text-3xl sm:text-4xl md:text-5xl lg:text-6xl leading-tight\",\n xl: \"text-3xl sm:text-4xl md:text-5xl lg:text-6xl leading-tight\",\n full: \"text-4xl sm:text-5xl md:text-6xl lg:text-7xl leading-tight\"\n }\n\n const subtitleSizeClasses = {\n sm: \"text-base sm:text-lg md:text-xl leading-snug\",\n md: \"text-lg sm:text-xl md:text-2xl leading-snug\",\n lg: \"text-lg sm:text-xl md:text-2xl lg:text-3xl leading-snug\",\n xl: \"text-xl sm:text-2xl md:text-3xl leading-snug\",\n full: \"text-xl sm:text-2xl md:text-3xl lg:text-4xl leading-snug\"\n }\n\n const descriptionSizeClasses = {\n sm: \"text-sm sm:text-base md:text-lg leading-relaxed\",\n md: \"text-base sm:text-lg md:text-xl leading-relaxed\",\n lg: \"text-base sm:text-lg md:text-xl leading-relaxed\",\n xl: \"text-base sm:text-lg md:text-xl leading-relaxed\",\n full: \"text-lg sm:text-xl md:text-2xl leading-relaxed\"\n }\n\n const currentBg = isSlideMode ? (currentContent.background || background) : background\n\n const backgroundContent: Record<string, React.ReactNode> = {\n none: null,\n gradient: (\n <div className=\"absolute inset-0 z-0 pointer-events-none\">\n {/* 왼쪽 위 - 메인 그라데이션 */}\n <div className=\"absolute top-0 left-0 w-80 h-80 sm:w-96 sm:h-96 md:w-[500px] md:h-[500px] -translate-x-1/3 -translate-y-1/3 rounded-full bg-gradient-to-br from-teal-400 via-cyan-500 to-teal-600 opacity-40 blur-3xl\" />\n {/* 오른쪽 아래 - 보조 그라데이션 */}\n <div className=\"absolute bottom-0 right-0 w-72 h-72 sm:w-80 sm:h-80 md:w-[400px] md:h-[400px] translate-x-1/4 translate-y-1/4 rounded-full bg-gradient-to-tr from-cyan-400 via-teal-500 to-emerald-500 opacity-35 blur-3xl\" />\n {/* 중앙 액센트 */}\n <div className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-48 h-48 sm:w-64 sm:h-64 md:w-80 md:h-80 rounded-full bg-teal-500/20 blur-2xl\" />\n </div>\n ),\n particles: (\n <div className=\"absolute inset-0 z-0 pointer-events-none\">\n <div className=\"absolute inset-0 bg-gradient-to-br from-secondary/50 via-background to-secondary/30\" />\n </div>\n ),\n video: customBackground ? (\n <div className=\"absolute inset-0 z-0 pointer-events-none\">\n <video\n autoPlay\n loop\n muted\n playsInline\n className=\"absolute inset-0 w-full h-full object-cover opacity-20\"\n >\n <source src={customBackground} type=\"video/mp4\" />\n </video>\n </div>\n ) : null,\n image: (customBackground || (isSlideMode && (currentContent as HeroSlide).backgroundImage)) ? (\n <div className=\"absolute inset-0 z-0 pointer-events-none\">\n <img\n src={(isSlideMode && (currentContent as HeroSlide).backgroundImage) || customBackground}\n alt=\"\"\n className=\"absolute inset-0 w-full h-full object-cover opacity-30\"\n />\n <div className=\"absolute inset-0 bg-gradient-to-t from-background via-background/50 to-transparent\" />\n </div>\n ) : null,\n }\n\n // 인디케이터 렌더링\n const renderIndicator = () => {\n if (!isSlideMode || indicator === \"none\") return null\n\n switch (indicator) {\n case \"dots\":\n return (\n <div className=\"flex gap-2 justify-center mt-8\">\n {slides.map((_, index) => (\n <button\n key={index}\n onClick={() => goToSlide(index)}\n className={merge(\n \"w-2.5 h-2.5 rounded-full transition-all duration-300\",\n currentSlide === index\n ? \"bg-primary w-8\"\n : \"bg-muted-foreground/30 hover:bg-muted-foreground/50\"\n )}\n aria-label={`Go to slide ${index + 1}`}\n />\n ))}\n </div>\n )\n\n case \"line\":\n return (\n <div className=\"flex gap-1 justify-center mt-8 max-w-xs mx-auto\">\n {slides.map((_, index) => (\n <button\n key={index}\n onClick={() => goToSlide(index)}\n className=\"flex-1 h-1 rounded-full overflow-hidden bg-muted-foreground/20\"\n aria-label={`Go to slide ${index + 1}`}\n >\n <div\n className={merge(\n \"h-full bg-primary transition-all duration-300\",\n currentSlide === index ? \"w-full\" : \"w-0\"\n )}\n />\n </button>\n ))}\n </div>\n )\n\n case \"numbers\":\n return (\n <div className=\"flex items-center justify-center gap-2 mt-8 text-sm text-muted-foreground\">\n <span className=\"text-foreground font-semibold\">{currentSlide + 1}</span>\n <span>/</span>\n <span>{slideCount}</span>\n </div>\n )\n\n default:\n return null\n }\n }\n\n return (\n <section\n ref={ref}\n className={merge(\n \"relative w-full flex flex-col justify-center items-center text-center px-4 sm:px-6 lg:px-8 overflow-hidden\",\n sizeClasses[size],\n fullBleed && \"-mt-16 pt-16\",\n className\n )}\n onMouseEnter={() => pauseOnHover && setIsPaused(true)}\n onMouseLeave={() => pauseOnHover && setIsPaused(false)}\n {...props}\n >\n {backgroundContent[currentBg]}\n\n {/* 슬라이드 콘텐츠 */}\n <div className=\"relative z-10 max-w-4xl mx-auto\">\n <div\n key={isSlideMode ? currentSlide : 0}\n className=\"animate-in fade-in slide-in-from-bottom-4 duration-500\"\n >\n <h1 className={merge(\n \"font-extrabold mb-4 sm:mb-6 text-foreground\",\n titleSizeClasses[size]\n )}>\n <span className=\"block gradient-text\">\n {currentContent.title}\n </span>\n {currentContent.subtitle && (\n <span className={merge(\n \"block font-semibold mt-2 sm:mt-4 text-muted-foreground\",\n subtitleSizeClasses[size]\n )}>\n {currentContent.subtitle}\n </span>\n )}\n </h1>\n\n <div className={merge(\n \"text-muted-foreground mb-6 sm:mb-8 md:mb-10 max-w-2xl mx-auto\",\n descriptionSizeClasses[size]\n )}>\n {currentContent.description.split('\\n').map((line, i, arr) => (\n <React.Fragment key={i}>\n {line}\n {i < arr.length - 1 && <br />}\n </React.Fragment>\n ))}\n </div>\n\n {(currentContent.primaryAction || currentContent.secondaryAction) && (\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center\">\n {currentContent.primaryAction && (\n <Button\n href={currentContent.primaryAction.href}\n size={size === \"xl\" || size === \"full\" ? \"lg\" : \"md\"}\n hover=\"scale\"\n className=\"inline-flex items-center gap-2\"\n >\n {currentContent.primaryAction.icon}\n {currentContent.primaryAction.label}\n </Button>\n )}\n\n {currentContent.secondaryAction && (\n <Button\n href={currentContent.secondaryAction.href}\n variant=\"outline\"\n size={size === \"xl\" || size === \"full\" ? \"lg\" : \"md\"}\n hover=\"scale\"\n className=\"inline-flex items-center gap-2\"\n >\n {currentContent.secondaryAction.icon}\n {currentContent.secondaryAction.label}\n </Button>\n )}\n </div>\n )}\n </div>\n\n {/* 인디케이터 */}\n {renderIndicator()}\n </div>\n\n {/* 좌우 컨트롤 */}\n {isSlideMode && showControls && slideCount > 1 && (\n <>\n <button\n onClick={prevSlide}\n className=\"absolute left-4 top-1/2 -translate-y-1/2 z-20 p-2 rounded-full bg-card/80 backdrop-blur-sm border border-border text-foreground hover:bg-card transition-colors\"\n aria-label=\"Previous slide\"\n >\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n <button\n onClick={nextSlide}\n className=\"absolute right-4 top-1/2 -translate-y-1/2 z-20 p-2 rounded-full bg-card/80 backdrop-blur-sm border border-border text-foreground hover:bg-card transition-colors\"\n aria-label=\"Next slide\"\n >\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </>\n )}\n </section>\n )\n }\n)\n\nHeroSection.displayName = \"HeroSection\"\n\nexport { HeroSection }\n"]}
|