@blueshift-gg/ui-components 0.1.50 → 0.1.52
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 +2 -2
- package/dist/Alert.cjs +71 -0
- package/dist/Alert.cjs.map +1 -0
- package/dist/Alert.d.cts +32 -0
- package/dist/Alert.d.cts.map +1 -0
- package/dist/Alert.d.mts +29 -16
- package/dist/Alert.d.mts.map +1 -0
- package/dist/Alert.mjs +64 -91
- package/dist/Alert.mjs.map +1 -1
- package/dist/Avatar.cjs +43 -0
- package/dist/Avatar.cjs.map +1 -0
- package/dist/Avatar.d.cts +26 -0
- package/dist/Avatar.d.cts.map +1 -0
- package/dist/Avatar.d.mts +23 -14
- package/dist/Avatar.d.mts.map +1 -0
- package/dist/Avatar.mjs +36 -61
- package/dist/Avatar.mjs.map +1 -1
- package/dist/Badge.cjs +51 -0
- package/dist/Badge.cjs.map +1 -0
- package/dist/Badge.d.cts +31 -0
- package/dist/Badge.d.cts.map +1 -0
- package/dist/Badge.d.mts +28 -17
- package/dist/Badge.d.mts.map +1 -0
- package/dist/Badge.mjs +44 -77
- package/dist/Badge.mjs.map +1 -1
- package/dist/Banner.cjs +53 -0
- package/dist/Banner.cjs.map +1 -0
- package/dist/Banner.d.cts +28 -0
- package/dist/Banner.d.cts.map +1 -0
- package/dist/Banner.d.mts +25 -15
- package/dist/Banner.d.mts.map +1 -0
- package/dist/Banner.mjs +46 -58
- package/dist/Banner.mjs.map +1 -1
- package/dist/Button.cjs +71 -0
- package/dist/Button.cjs.map +1 -0
- package/dist/Button.d.cts +53 -0
- package/dist/Button.d.cts.map +1 -0
- package/dist/Button.d.mts +49 -27
- package/dist/Button.d.mts.map +1 -0
- package/dist/Button.mjs +64 -143
- package/dist/Button.mjs.map +1 -1
- package/dist/Checkbox.cjs +59 -0
- package/dist/Checkbox.cjs.map +1 -0
- package/dist/Checkbox.d.cts +20 -0
- package/dist/Checkbox.d.cts.map +1 -0
- package/dist/Checkbox.d.mts +17 -9
- package/dist/Checkbox.d.mts.map +1 -0
- package/dist/Checkbox.mjs +52 -52
- package/dist/Checkbox.mjs.map +1 -1
- package/dist/Codeblock.cjs +95 -0
- package/dist/Codeblock.cjs.map +1 -0
- package/dist/Codeblock.d.cts +24 -0
- package/dist/Codeblock.d.cts.map +1 -0
- package/dist/Codeblock.d.mts +21 -12
- package/dist/Codeblock.d.mts.map +1 -0
- package/dist/Codeblock.mjs +88 -88
- package/dist/Codeblock.mjs.map +1 -1
- package/dist/CrossHair.cjs +175 -0
- package/dist/CrossHair.cjs.map +1 -0
- package/dist/CrossHair.d.cts +32 -0
- package/dist/CrossHair.d.cts.map +1 -0
- package/dist/CrossHair.d.mts +29 -15
- package/dist/CrossHair.d.mts.map +1 -0
- package/dist/CrossHair.mjs +168 -256
- package/dist/CrossHair.mjs.map +1 -1
- package/dist/DecryptText.cjs +89 -0
- package/dist/DecryptText.cjs.map +1 -0
- package/dist/DecryptText.d.cts +21 -0
- package/dist/DecryptText.d.cts.map +1 -0
- package/dist/DecryptText.d.mts +18 -9
- package/dist/DecryptText.d.mts.map +1 -0
- package/dist/DecryptText.mjs +82 -94
- package/dist/DecryptText.mjs.map +1 -1
- package/dist/Difficulty.cjs +175 -0
- package/dist/Difficulty.cjs.map +1 -0
- package/dist/Difficulty.d.cts +16 -0
- package/dist/Difficulty.d.cts.map +1 -0
- package/dist/Difficulty.d.mts +13 -7
- package/dist/Difficulty.d.mts.map +1 -0
- package/dist/Difficulty.mjs +167 -133
- package/dist/Difficulty.mjs.map +1 -1
- package/dist/Divider.cjs +18 -0
- package/dist/Divider.cjs.map +1 -0
- package/dist/Divider.d.cts +14 -0
- package/dist/Divider.d.cts.map +1 -0
- package/dist/Divider.d.mts +11 -6
- package/dist/Divider.d.mts.map +1 -0
- package/dist/Divider.mjs +11 -40
- package/dist/Divider.mjs.map +1 -1
- package/dist/Dropdown.cjs +404 -0
- package/dist/Dropdown.cjs.map +1 -0
- package/dist/Dropdown.d.cts +139 -0
- package/dist/Dropdown.d.cts.map +1 -0
- package/dist/Dropdown.d.mts +128 -69
- package/dist/Dropdown.d.mts.map +1 -0
- package/dist/Dropdown.mjs +383 -588
- package/dist/Dropdown.mjs.map +1 -1
- package/dist/GridLines.cjs +82 -0
- package/dist/GridLines.cjs.map +1 -0
- package/dist/GridLines.d.cts +18 -0
- package/dist/GridLines.d.cts.map +1 -0
- package/dist/GridLines.d.mts +15 -8
- package/dist/GridLines.d.mts.map +1 -0
- package/dist/GridLines.mjs +75 -80
- package/dist/GridLines.mjs.map +1 -1
- package/dist/HeadingReveal.cjs +64 -0
- package/dist/HeadingReveal.cjs.map +1 -0
- package/dist/HeadingReveal.d.cts +26 -0
- package/dist/HeadingReveal.d.cts.map +1 -0
- package/dist/HeadingReveal.d.mts +23 -12
- package/dist/HeadingReveal.d.mts.map +1 -0
- package/dist/HeadingReveal.mjs +57 -57
- package/dist/HeadingReveal.mjs.map +1 -1
- package/dist/Icon.cjs +25 -0
- package/dist/Icon.cjs.map +1 -0
- package/dist/Icon.d.cts +17 -0
- package/dist/Icon.d.cts.map +1 -0
- package/dist/Icon.d.mts +17 -2
- package/dist/Icon.d.mts.map +1 -0
- package/dist/Icon.mjs +17 -18
- package/dist/Icon.mjs.map +1 -1
- package/dist/Input.cjs +135 -0
- package/dist/Input.cjs.map +1 -0
- package/dist/Input.d.cts +60 -0
- package/dist/Input.d.cts.map +1 -0
- package/dist/Input.d.mts +57 -37
- package/dist/Input.d.mts.map +1 -0
- package/dist/Input.mjs +128 -178
- package/dist/Input.mjs.map +1 -1
- package/dist/Logo.cjs +127 -0
- package/dist/Logo.cjs.map +1 -0
- package/dist/Logo.d.cts +18 -0
- package/dist/Logo.d.cts.map +1 -0
- package/dist/Logo.d.mts +15 -8
- package/dist/Logo.d.mts.map +1 -0
- package/dist/Logo.mjs +120 -146
- package/dist/Logo.mjs.map +1 -1
- package/dist/Pagination.cjs +133 -0
- package/dist/Pagination.cjs.map +1 -0
- package/dist/Pagination.d.cts +40 -0
- package/dist/Pagination.d.cts.map +1 -0
- package/dist/Pagination.d.mts +35 -18
- package/dist/Pagination.d.mts.map +1 -0
- package/dist/Pagination.mjs +124 -175
- package/dist/Pagination.mjs.map +1 -1
- package/dist/Slider.cjs +291 -0
- package/dist/Slider.cjs.map +1 -0
- package/dist/Slider.d.cts +40 -0
- package/dist/Slider.d.cts.map +1 -0
- package/dist/Slider.d.mts +37 -24
- package/dist/Slider.d.mts.map +1 -0
- package/dist/Slider.mjs +282 -331
- package/dist/Slider.mjs.map +1 -1
- package/dist/Tabs.cjs +67 -0
- package/dist/Tabs.cjs.map +1 -0
- package/dist/Tabs.d.cts +37 -0
- package/dist/Tabs.d.cts.map +1 -0
- package/dist/Tabs.d.mts +33 -22
- package/dist/Tabs.d.mts.map +1 -0
- package/dist/Tabs.mjs +60 -100
- package/dist/Tabs.mjs.map +1 -1
- package/dist/Toast.cjs +82 -0
- package/dist/Toast.cjs.map +1 -0
- package/dist/Toast.d.cts +28 -0
- package/dist/Toast.d.cts.map +1 -0
- package/dist/Toast.d.mts +21 -11
- package/dist/Toast.d.mts.map +1 -0
- package/dist/Toast.mjs +63 -66
- package/dist/Toast.mjs.map +1 -1
- package/dist/Tooltip.cjs +149 -0
- package/dist/Tooltip.cjs.map +1 -0
- package/dist/Tooltip.d.cts +16 -0
- package/dist/Tooltip.d.cts.map +1 -0
- package/dist/Tooltip.d.mts +13 -7
- package/dist/Tooltip.d.mts.map +1 -0
- package/dist/Tooltip.mjs +135 -128
- package/dist/Tooltip.mjs.map +1 -1
- package/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/fonts/CommitMono-Regular.cjs +6 -0
- package/dist/fonts/CommitMono-Regular.cjs.map +1 -0
- package/dist/fonts/CommitMono-Regular.mjs +6 -0
- package/dist/fonts/CommitMono-Regular.mjs.map +1 -0
- package/dist/fonts/MONTECHV02-Medium.cjs +6 -0
- package/dist/fonts/MONTECHV02-Medium.cjs.map +1 -0
- package/dist/fonts/MONTECHV02-Medium.mjs +6 -0
- package/dist/fonts/MONTECHV02-Medium.mjs.map +1 -0
- package/dist/fonts/Switzer-Regular.cjs +6 -0
- package/dist/fonts/Switzer-Regular.cjs.map +1 -0
- package/dist/fonts/Switzer-Regular.mjs +6 -0
- package/dist/fonts/Switzer-Regular.mjs.map +1 -0
- package/dist/icons/Anchor.cjs +65 -0
- package/dist/icons/Anchor.cjs.map +1 -0
- package/dist/icons/Anchor.d.cts +11 -0
- package/dist/icons/Anchor.d.cts.map +1 -0
- package/dist/icons/Anchor.d.mts +9 -4
- package/dist/icons/Anchor.d.mts.map +1 -0
- package/dist/icons/Anchor.mjs +57 -77
- package/dist/icons/Anchor.mjs.map +1 -1
- package/dist/icons/ArrowLeft.cjs +25 -0
- package/dist/icons/ArrowLeft.cjs.map +1 -0
- package/dist/icons/ArrowLeft.d.cts +11 -0
- package/dist/icons/ArrowLeft.d.cts.map +1 -0
- package/dist/icons/ArrowLeft.d.mts +9 -4
- package/dist/icons/ArrowLeft.d.mts.map +1 -0
- package/dist/icons/ArrowLeft.mjs +18 -29
- package/dist/icons/ArrowLeft.mjs.map +1 -1
- package/dist/icons/ArrowRight.cjs +25 -0
- package/dist/icons/ArrowRight.cjs.map +1 -0
- package/dist/icons/ArrowRight.d.cts +11 -0
- package/dist/icons/ArrowRight.d.cts.map +1 -0
- package/dist/icons/ArrowRight.d.mts +9 -4
- package/dist/icons/ArrowRight.d.mts.map +1 -0
- package/dist/icons/ArrowRight.mjs +18 -29
- package/dist/icons/ArrowRight.mjs.map +1 -1
- package/dist/icons/Assembly.cjs +109 -0
- package/dist/icons/Assembly.cjs.map +1 -0
- package/dist/icons/Assembly.d.cts +11 -0
- package/dist/icons/Assembly.d.cts.map +1 -0
- package/dist/icons/Assembly.d.mts +9 -4
- package/dist/icons/Assembly.d.mts.map +1 -0
- package/dist/icons/Assembly.mjs +101 -160
- package/dist/icons/Assembly.mjs.map +1 -1
- package/dist/icons/Backpack.cjs +34 -0
- package/dist/icons/Backpack.cjs.map +1 -0
- package/dist/icons/Backpack.d.cts +11 -0
- package/dist/icons/Backpack.d.cts.map +1 -0
- package/dist/icons/Backpack.d.mts +9 -4
- package/dist/icons/Backpack.d.mts.map +1 -0
- package/dist/icons/Backpack.mjs +27 -38
- package/dist/icons/Backpack.mjs.map +1 -1
- package/dist/icons/Brave.cjs +51 -0
- package/dist/icons/Brave.cjs.map +1 -0
- package/dist/icons/Brave.d.cts +11 -0
- package/dist/icons/Brave.d.cts.map +1 -0
- package/dist/icons/Brave.d.mts +9 -4
- package/dist/icons/Brave.d.mts.map +1 -0
- package/dist/icons/Brave.mjs +44 -52
- package/dist/icons/Brave.mjs.map +1 -1
- package/dist/icons/Challenge.cjs +30 -0
- package/dist/icons/Challenge.cjs.map +1 -0
- package/dist/icons/Challenge.d.cts +11 -0
- package/dist/icons/Challenge.d.cts.map +1 -0
- package/dist/icons/Challenge.d.mts +9 -4
- package/dist/icons/Challenge.d.mts.map +1 -0
- package/dist/icons/Challenge.mjs +23 -34
- package/dist/icons/Challenge.mjs.map +1 -1
- package/dist/icons/Chevron.cjs +22 -0
- package/dist/icons/Chevron.cjs.map +1 -0
- package/dist/icons/Chevron.d.cts +11 -0
- package/dist/icons/Chevron.d.cts.map +1 -0
- package/dist/icons/Chevron.d.mts +9 -4
- package/dist/icons/Chevron.d.mts.map +1 -0
- package/dist/icons/Chevron.mjs +15 -20
- package/dist/icons/Chevron.mjs.map +1 -1
- package/dist/icons/ChevronLeft.cjs +22 -0
- package/dist/icons/ChevronLeft.cjs.map +1 -0
- package/dist/icons/ChevronLeft.d.cts +11 -0
- package/dist/icons/ChevronLeft.d.cts.map +1 -0
- package/dist/icons/ChevronLeft.d.mts +9 -4
- package/dist/icons/ChevronLeft.d.mts.map +1 -0
- package/dist/icons/ChevronLeft.mjs +15 -20
- package/dist/icons/ChevronLeft.mjs.map +1 -1
- package/dist/icons/ChevronRight.cjs +22 -0
- package/dist/icons/ChevronRight.cjs.map +1 -0
- package/dist/icons/ChevronRight.d.cts +11 -0
- package/dist/icons/ChevronRight.d.cts.map +1 -0
- package/dist/icons/ChevronRight.d.mts +9 -4
- package/dist/icons/ChevronRight.d.mts.map +1 -0
- package/dist/icons/ChevronRight.mjs +15 -20
- package/dist/icons/ChevronRight.mjs.map +1 -1
- package/dist/icons/Claim.cjs +26 -0
- package/dist/icons/Claim.cjs.map +1 -0
- package/dist/icons/Claim.d.cts +11 -0
- package/dist/icons/Claim.d.cts.map +1 -0
- package/dist/icons/Claim.d.mts +9 -4
- package/dist/icons/Claim.d.mts.map +1 -0
- package/dist/icons/Claim.mjs +19 -30
- package/dist/icons/Claim.mjs.map +1 -1
- package/dist/icons/Claimed.cjs +22 -0
- package/dist/icons/Claimed.cjs.map +1 -0
- package/dist/icons/Claimed.d.cts +11 -0
- package/dist/icons/Claimed.d.cts.map +1 -0
- package/dist/icons/Claimed.d.mts +9 -4
- package/dist/icons/Claimed.d.mts.map +1 -0
- package/dist/icons/Claimed.mjs +15 -20
- package/dist/icons/Claimed.mjs.map +1 -1
- package/dist/icons/Clock.cjs +30 -0
- package/dist/icons/Clock.cjs.map +1 -0
- package/dist/icons/Clock.d.cts +11 -0
- package/dist/icons/Clock.d.cts.map +1 -0
- package/dist/icons/Clock.d.mts +9 -4
- package/dist/icons/Clock.d.mts.map +1 -0
- package/dist/icons/Clock.mjs +23 -34
- package/dist/icons/Clock.mjs.map +1 -1
- package/dist/icons/Close.cjs +27 -0
- package/dist/icons/Close.cjs.map +1 -0
- package/dist/icons/Close.d.cts +11 -0
- package/dist/icons/Close.d.cts.map +1 -0
- package/dist/icons/Close.d.mts +9 -4
- package/dist/icons/Close.d.mts.map +1 -0
- package/dist/icons/Close.mjs +20 -31
- package/dist/icons/Close.mjs.map +1 -1
- package/dist/icons/Code.cjs +31 -0
- package/dist/icons/Code.cjs.map +1 -0
- package/dist/icons/Code.d.cts +11 -0
- package/dist/icons/Code.d.cts.map +1 -0
- package/dist/icons/Code.d.mts +9 -4
- package/dist/icons/Code.d.mts.map +1 -0
- package/dist/icons/Code.mjs +24 -32
- package/dist/icons/Code.mjs.map +1 -1
- package/dist/icons/Copy.cjs +25 -0
- package/dist/icons/Copy.cjs.map +1 -0
- package/dist/icons/Copy.d.cts +11 -0
- package/dist/icons/Copy.d.cts.map +1 -0
- package/dist/icons/Copy.d.mts +9 -4
- package/dist/icons/Copy.d.mts.map +1 -0
- package/dist/icons/Copy.mjs +18 -29
- package/dist/icons/Copy.mjs.map +1 -1
- package/dist/icons/Cross.cjs +25 -0
- package/dist/icons/Cross.cjs.map +1 -0
- package/dist/icons/Cross.d.cts +11 -0
- package/dist/icons/Cross.d.cts.map +1 -0
- package/dist/icons/Cross.d.mts +9 -4
- package/dist/icons/Cross.d.mts.map +1 -0
- package/dist/icons/Cross.mjs +18 -29
- package/dist/icons/Cross.mjs.map +1 -1
- package/dist/icons/Developer.cjs +34 -0
- package/dist/icons/Developer.cjs.map +1 -0
- package/dist/icons/Developer.d.cts +11 -0
- package/dist/icons/Developer.d.cts.map +1 -0
- package/dist/icons/Developer.d.mts +9 -4
- package/dist/icons/Developer.d.mts.map +1 -0
- package/dist/icons/Developer.mjs +27 -38
- package/dist/icons/Developer.mjs.map +1 -1
- package/dist/icons/Disconnect.cjs +40 -0
- package/dist/icons/Disconnect.cjs.map +1 -0
- package/dist/icons/Disconnect.d.cts +11 -0
- package/dist/icons/Disconnect.d.cts.map +1 -0
- package/dist/icons/Disconnect.d.mts +9 -4
- package/dist/icons/Disconnect.d.mts.map +1 -0
- package/dist/icons/Disconnect.mjs +33 -38
- package/dist/icons/Disconnect.mjs.map +1 -1
- package/dist/icons/Discord.cjs +22 -0
- package/dist/icons/Discord.cjs.map +1 -0
- package/dist/icons/Discord.d.cts +11 -0
- package/dist/icons/Discord.d.cts.map +1 -0
- package/dist/icons/Discord.d.mts +9 -4
- package/dist/icons/Discord.d.mts.map +1 -0
- package/dist/icons/Discord.mjs +15 -20
- package/dist/icons/Discord.mjs.map +1 -1
- package/dist/icons/Dollar.cjs +24 -0
- package/dist/icons/Dollar.cjs.map +1 -0
- package/dist/icons/Dollar.d.cts +11 -0
- package/dist/icons/Dollar.d.cts.map +1 -0
- package/dist/icons/Dollar.d.mts +9 -4
- package/dist/icons/Dollar.d.mts.map +1 -0
- package/dist/icons/Dollar.mjs +17 -22
- package/dist/icons/Dollar.mjs.map +1 -1
- package/dist/icons/DoubleArrow.cjs +25 -0
- package/dist/icons/DoubleArrow.cjs.map +1 -0
- package/dist/icons/DoubleArrow.d.cts +11 -0
- package/dist/icons/DoubleArrow.d.cts.map +1 -0
- package/dist/icons/DoubleArrow.d.mts +9 -4
- package/dist/icons/DoubleArrow.d.mts.map +1 -0
- package/dist/icons/DoubleArrow.mjs +18 -29
- package/dist/icons/DoubleArrow.mjs.map +1 -1
- package/dist/icons/EVM.cjs +29 -0
- package/dist/icons/EVM.cjs.map +1 -0
- package/dist/icons/EVM.d.cts +11 -0
- package/dist/icons/EVM.d.cts.map +1 -0
- package/dist/icons/EVM.d.mts +9 -4
- package/dist/icons/EVM.d.mts.map +1 -0
- package/dist/icons/EVM.mjs +22 -33
- package/dist/icons/EVM.mjs.map +1 -1
- package/dist/icons/Email.cjs +33 -0
- package/dist/icons/Email.cjs.map +1 -0
- package/dist/icons/Email.d.cts +11 -0
- package/dist/icons/Email.d.cts.map +1 -0
- package/dist/icons/Email.d.mts +9 -4
- package/dist/icons/Email.d.mts.map +1 -0
- package/dist/icons/Email.mjs +26 -37
- package/dist/icons/Email.mjs.map +1 -1
- package/dist/icons/Error.cjs +22 -0
- package/dist/icons/Error.cjs.map +1 -0
- package/dist/icons/Error.d.cts +11 -0
- package/dist/icons/Error.d.cts.map +1 -0
- package/dist/icons/Error.d.mts +9 -4
- package/dist/icons/Error.d.mts.map +1 -0
- package/dist/icons/Error.mjs +15 -20
- package/dist/icons/Error.mjs.map +1 -1
- package/dist/icons/Expand.cjs +25 -0
- package/dist/icons/Expand.cjs.map +1 -0
- package/dist/icons/Expand.d.cts +11 -0
- package/dist/icons/Expand.d.cts.map +1 -0
- package/dist/icons/Expand.d.mts +9 -4
- package/dist/icons/Expand.d.mts.map +1 -0
- package/dist/icons/Expand.mjs +18 -29
- package/dist/icons/Expand.mjs.map +1 -1
- package/dist/icons/External.cjs +26 -0
- package/dist/icons/External.cjs.map +1 -0
- package/dist/icons/External.d.cts +11 -0
- package/dist/icons/External.d.cts.map +1 -0
- package/dist/icons/External.d.mts +9 -4
- package/dist/icons/External.d.mts.map +1 -0
- package/dist/icons/External.mjs +19 -30
- package/dist/icons/External.mjs.map +1 -1
- package/dist/icons/Filter.cjs +33 -0
- package/dist/icons/Filter.cjs.map +1 -0
- package/dist/icons/Filter.d.cts +11 -0
- package/dist/icons/Filter.d.cts.map +1 -0
- package/dist/icons/Filter.d.mts +9 -4
- package/dist/icons/Filter.d.mts.map +1 -0
- package/dist/icons/Filter.mjs +26 -37
- package/dist/icons/Filter.mjs.map +1 -1
- package/dist/icons/Firmware.cjs +25 -0
- package/dist/icons/Firmware.cjs.map +1 -0
- package/dist/icons/Firmware.d.cts +11 -0
- package/dist/icons/Firmware.d.cts.map +1 -0
- package/dist/icons/Firmware.d.mts +9 -4
- package/dist/icons/Firmware.d.mts.map +1 -0
- package/dist/icons/Firmware.mjs +18 -29
- package/dist/icons/Firmware.mjs.map +1 -1
- package/dist/icons/Flag.cjs +25 -0
- package/dist/icons/Flag.cjs.map +1 -0
- package/dist/icons/Flag.d.cts +11 -0
- package/dist/icons/Flag.d.cts.map +1 -0
- package/dist/icons/Flag.d.mts +9 -4
- package/dist/icons/Flag.d.mts.map +1 -0
- package/dist/icons/Flag.mjs +18 -29
- package/dist/icons/Flag.mjs.map +1 -1
- package/dist/icons/Flame.cjs +22 -0
- package/dist/icons/Flame.cjs.map +1 -0
- package/dist/icons/Flame.d.cts +11 -0
- package/dist/icons/Flame.d.cts.map +1 -0
- package/dist/icons/Flame.d.mts +9 -4
- package/dist/icons/Flame.d.mts.map +1 -0
- package/dist/icons/Flame.mjs +15 -20
- package/dist/icons/Flame.mjs.map +1 -1
- package/dist/icons/Flexible.cjs +40 -0
- package/dist/icons/Flexible.cjs.map +1 -0
- package/dist/icons/Flexible.d.cts +11 -0
- package/dist/icons/Flexible.d.cts.map +1 -0
- package/dist/icons/Flexible.d.mts +9 -4
- package/dist/icons/Flexible.d.mts.map +1 -0
- package/dist/icons/Flexible.mjs +33 -44
- package/dist/icons/Flexible.mjs.map +1 -1
- package/dist/icons/Free.cjs +38 -0
- package/dist/icons/Free.cjs.map +1 -0
- package/dist/icons/Free.d.cts +11 -0
- package/dist/icons/Free.d.cts.map +1 -0
- package/dist/icons/Free.d.mts +9 -4
- package/dist/icons/Free.d.mts.map +1 -0
- package/dist/icons/Free.mjs +31 -45
- package/dist/icons/Free.mjs.map +1 -1
- package/dist/icons/General.cjs +63 -0
- package/dist/icons/General.cjs.map +1 -0
- package/dist/icons/General.d.cts +11 -0
- package/dist/icons/General.d.cts.map +1 -0
- package/dist/icons/General.d.mts +9 -4
- package/dist/icons/General.d.mts.map +1 -0
- package/dist/icons/General.mjs +56 -52
- package/dist/icons/General.mjs.map +1 -1
- package/dist/icons/Github.cjs +33 -0
- package/dist/icons/Github.cjs.map +1 -0
- package/dist/icons/Github.d.cts +11 -0
- package/dist/icons/Github.d.cts.map +1 -0
- package/dist/icons/Github.d.mts +9 -4
- package/dist/icons/Github.d.mts.map +1 -0
- package/dist/icons/Github.mjs +26 -31
- package/dist/icons/Github.mjs.map +1 -1
- package/dist/icons/Globe.cjs +22 -0
- package/dist/icons/Globe.cjs.map +1 -0
- package/dist/icons/Globe.d.cts +11 -0
- package/dist/icons/Globe.d.cts.map +1 -0
- package/dist/icons/Globe.d.mts +9 -4
- package/dist/icons/Globe.d.mts.map +1 -0
- package/dist/icons/Globe.mjs +15 -17
- package/dist/icons/Globe.mjs.map +1 -1
- package/dist/icons/GridView.cjs +36 -0
- package/dist/icons/GridView.cjs.map +1 -0
- package/dist/icons/GridView.d.cts +11 -0
- package/dist/icons/GridView.d.cts.map +1 -0
- package/dist/icons/GridView.d.mts +9 -4
- package/dist/icons/GridView.d.mts.map +1 -0
- package/dist/icons/GridView.mjs +29 -43
- package/dist/icons/GridView.mjs.map +1 -1
- package/dist/icons/Heart.cjs +22 -0
- package/dist/icons/Heart.cjs.map +1 -0
- package/dist/icons/Heart.d.cts +11 -0
- package/dist/icons/Heart.d.cts.map +1 -0
- package/dist/icons/Heart.d.mts +9 -4
- package/dist/icons/Heart.d.mts.map +1 -0
- package/dist/icons/Heart.mjs +15 -20
- package/dist/icons/Heart.mjs.map +1 -1
- package/dist/icons/Info.cjs +22 -0
- package/dist/icons/Info.cjs.map +1 -0
- package/dist/icons/Info.d.cts +11 -0
- package/dist/icons/Info.d.cts.map +1 -0
- package/dist/icons/Info.d.mts +9 -4
- package/dist/icons/Info.d.mts.map +1 -0
- package/dist/icons/Info.mjs +15 -20
- package/dist/icons/Info.mjs.map +1 -1
- package/dist/icons/Language.cjs +30 -0
- package/dist/icons/Language.cjs.map +1 -0
- package/dist/icons/Language.d.cts +11 -0
- package/dist/icons/Language.d.cts.map +1 -0
- package/dist/icons/Language.d.mts +9 -4
- package/dist/icons/Language.d.mts.map +1 -0
- package/dist/icons/Language.mjs +23 -34
- package/dist/icons/Language.mjs.map +1 -1
- package/dist/icons/Lessons.cjs +26 -0
- package/dist/icons/Lessons.cjs.map +1 -0
- package/dist/icons/Lessons.d.cts +11 -0
- package/dist/icons/Lessons.d.cts.map +1 -0
- package/dist/icons/Lessons.d.mts +9 -4
- package/dist/icons/Lessons.d.mts.map +1 -0
- package/dist/icons/Lessons.mjs +19 -30
- package/dist/icons/Lessons.mjs.map +1 -1
- package/dist/icons/Link.cjs +28 -0
- package/dist/icons/Link.cjs.map +1 -0
- package/dist/icons/Link.d.cts +11 -0
- package/dist/icons/Link.d.cts.map +1 -0
- package/dist/icons/Link.d.mts +9 -4
- package/dist/icons/Link.d.mts.map +1 -0
- package/dist/icons/Link.mjs +21 -29
- package/dist/icons/Link.mjs.map +1 -1
- package/dist/icons/ListView.cjs +32 -0
- package/dist/icons/ListView.cjs.map +1 -0
- package/dist/icons/ListView.d.cts +11 -0
- package/dist/icons/ListView.d.cts.map +1 -0
- package/dist/icons/ListView.d.mts +9 -4
- package/dist/icons/ListView.d.mts.map +1 -0
- package/dist/icons/ListView.mjs +25 -36
- package/dist/icons/ListView.mjs.map +1 -1
- package/dist/icons/Loading.cjs +26 -0
- package/dist/icons/Loading.cjs.map +1 -0
- package/dist/icons/Loading.d.cts +11 -0
- package/dist/icons/Loading.d.cts.map +1 -0
- package/dist/icons/Loading.d.mts +9 -4
- package/dist/icons/Loading.d.mts.map +1 -0
- package/dist/icons/Loading.mjs +19 -32
- package/dist/icons/Loading.mjs.map +1 -1
- package/dist/icons/Locked.cjs +25 -0
- package/dist/icons/Locked.cjs.map +1 -0
- package/dist/icons/Locked.d.cts +11 -0
- package/dist/icons/Locked.d.cts.map +1 -0
- package/dist/icons/Locked.d.mts +9 -4
- package/dist/icons/Locked.d.mts.map +1 -0
- package/dist/icons/Locked.mjs +18 -29
- package/dist/icons/Locked.mjs.map +1 -1
- package/dist/icons/Logs.cjs +33 -0
- package/dist/icons/Logs.cjs.map +1 -0
- package/dist/icons/Logs.d.cts +11 -0
- package/dist/icons/Logs.d.cts.map +1 -0
- package/dist/icons/Logs.d.mts +9 -4
- package/dist/icons/Logs.d.mts.map +1 -0
- package/dist/icons/Logs.mjs +26 -18
- package/dist/icons/Logs.mjs.map +1 -1
- package/dist/icons/Mentor.cjs +38 -0
- package/dist/icons/Mentor.cjs.map +1 -0
- package/dist/icons/Mentor.d.cts +11 -0
- package/dist/icons/Mentor.d.cts.map +1 -0
- package/dist/icons/Mentor.d.mts +9 -4
- package/dist/icons/Mentor.d.mts.map +1 -0
- package/dist/icons/Mentor.mjs +31 -39
- package/dist/icons/Mentor.mjs.map +1 -1
- package/dist/icons/Metamask.cjs +48 -0
- package/dist/icons/Metamask.cjs.map +1 -0
- package/dist/icons/Metamask.d.cts +11 -0
- package/dist/icons/Metamask.d.cts.map +1 -0
- package/dist/icons/Metamask.d.mts +9 -4
- package/dist/icons/Metamask.d.mts.map +1 -0
- package/dist/icons/Metamask.mjs +41 -64
- package/dist/icons/Metamask.mjs.map +1 -1
- package/dist/icons/Minimize.cjs +25 -0
- package/dist/icons/Minimize.cjs.map +1 -0
- package/dist/icons/Minimize.d.cts +11 -0
- package/dist/icons/Minimize.d.cts.map +1 -0
- package/dist/icons/Minimize.d.mts +9 -4
- package/dist/icons/Minimize.d.mts.map +1 -0
- package/dist/icons/Minimize.mjs +18 -29
- package/dist/icons/Minimize.mjs.map +1 -1
- package/dist/icons/Modular.cjs +38 -0
- package/dist/icons/Modular.cjs.map +1 -0
- package/dist/icons/Modular.d.cts +11 -0
- package/dist/icons/Modular.d.cts.map +1 -0
- package/dist/icons/Modular.d.mts +9 -4
- package/dist/icons/Modular.d.mts.map +1 -0
- package/dist/icons/Modular.mjs +31 -45
- package/dist/icons/Modular.mjs.map +1 -1
- package/dist/icons/NFT.cjs +37 -0
- package/dist/icons/NFT.cjs.map +1 -0
- package/dist/icons/NFT.d.cts +11 -0
- package/dist/icons/NFT.d.cts.map +1 -0
- package/dist/icons/NFT.d.mts +9 -4
- package/dist/icons/NFT.d.mts.map +1 -0
- package/dist/icons/NFT.mjs +30 -41
- package/dist/icons/NFT.mjs.map +1 -1
- package/dist/icons/Online.cjs +47 -0
- package/dist/icons/Online.cjs.map +1 -0
- package/dist/icons/Online.d.cts +11 -0
- package/dist/icons/Online.d.cts.map +1 -0
- package/dist/icons/Online.d.mts +9 -4
- package/dist/icons/Online.d.mts.map +1 -0
- package/dist/icons/Online.mjs +40 -47
- package/dist/icons/Online.mjs.map +1 -1
- package/dist/icons/Password.cjs +32 -0
- package/dist/icons/Password.cjs.map +1 -0
- package/dist/icons/Password.d.cts +11 -0
- package/dist/icons/Password.d.cts.map +1 -0
- package/dist/icons/Password.d.mts +9 -4
- package/dist/icons/Password.d.mts.map +1 -0
- package/dist/icons/Password.mjs +25 -36
- package/dist/icons/Password.mjs.map +1 -1
- package/dist/icons/Path.cjs +30 -0
- package/dist/icons/Path.cjs.map +1 -0
- package/dist/icons/Path.d.cts +11 -0
- package/dist/icons/Path.d.cts.map +1 -0
- package/dist/icons/Path.d.mts +9 -4
- package/dist/icons/Path.d.mts.map +1 -0
- package/dist/icons/Path.mjs +23 -34
- package/dist/icons/Path.mjs.map +1 -1
- package/dist/icons/Perks.cjs +35 -0
- package/dist/icons/Perks.cjs.map +1 -0
- package/dist/icons/Perks.d.cts +11 -0
- package/dist/icons/Perks.d.cts.map +1 -0
- package/dist/icons/Perks.d.mts +9 -4
- package/dist/icons/Perks.d.mts.map +1 -0
- package/dist/icons/Perks.mjs +28 -33
- package/dist/icons/Perks.mjs.map +1 -1
- package/dist/icons/Phantom.cjs +22 -0
- package/dist/icons/Phantom.cjs.map +1 -0
- package/dist/icons/Phantom.d.cts +11 -0
- package/dist/icons/Phantom.d.cts.map +1 -0
- package/dist/icons/Phantom.d.mts +9 -4
- package/dist/icons/Phantom.d.mts.map +1 -0
- package/dist/icons/Phantom.mjs +15 -20
- package/dist/icons/Phantom.mjs.map +1 -1
- package/dist/icons/Play.cjs +22 -0
- package/dist/icons/Play.cjs.map +1 -0
- package/dist/icons/Play.d.cts +11 -0
- package/dist/icons/Play.d.cts.map +1 -0
- package/dist/icons/Play.d.mts +9 -4
- package/dist/icons/Play.d.mts.map +1 -0
- package/dist/icons/Play.mjs +15 -20
- package/dist/icons/Play.mjs.map +1 -1
- package/dist/icons/Product.cjs +32 -0
- package/dist/icons/Product.cjs.map +1 -0
- package/dist/icons/Product.d.cts +11 -0
- package/dist/icons/Product.d.cts.map +1 -0
- package/dist/icons/Product.d.mts +9 -4
- package/dist/icons/Product.d.mts.map +1 -0
- package/dist/icons/Product.mjs +25 -36
- package/dist/icons/Product.mjs.map +1 -1
- package/dist/icons/Progress.cjs +28 -0
- package/dist/icons/Progress.cjs.map +1 -0
- package/dist/icons/Progress.d.cts +11 -0
- package/dist/icons/Progress.d.cts.map +1 -0
- package/dist/icons/Progress.d.mts +9 -4
- package/dist/icons/Progress.d.mts.map +1 -0
- package/dist/icons/Progress.mjs +21 -29
- package/dist/icons/Progress.mjs.map +1 -1
- package/dist/icons/Protocol.cjs +32 -0
- package/dist/icons/Protocol.cjs.map +1 -0
- package/dist/icons/Protocol.d.cts +11 -0
- package/dist/icons/Protocol.d.cts.map +1 -0
- package/dist/icons/Protocol.d.mts +9 -4
- package/dist/icons/Protocol.d.mts.map +1 -0
- package/dist/icons/Protocol.mjs +25 -36
- package/dist/icons/Protocol.mjs.map +1 -1
- package/dist/icons/Refresh.cjs +25 -0
- package/dist/icons/Refresh.cjs.map +1 -0
- package/dist/icons/Refresh.d.cts +11 -0
- package/dist/icons/Refresh.d.cts.map +1 -0
- package/dist/icons/Refresh.d.mts +9 -4
- package/dist/icons/Refresh.d.mts.map +1 -0
- package/dist/icons/Refresh.mjs +18 -29
- package/dist/icons/Refresh.mjs.map +1 -1
- package/dist/icons/Rewards.cjs +26 -0
- package/dist/icons/Rewards.cjs.map +1 -0
- package/dist/icons/Rewards.d.cts +11 -0
- package/dist/icons/Rewards.d.cts.map +1 -0
- package/dist/icons/Rewards.d.mts +9 -4
- package/dist/icons/Rewards.d.mts.map +1 -0
- package/dist/icons/Rewards.mjs +19 -30
- package/dist/icons/Rewards.mjs.map +1 -1
- package/dist/icons/Rust.cjs +95 -0
- package/dist/icons/Rust.cjs.map +1 -0
- package/dist/icons/Rust.d.cts +11 -0
- package/dist/icons/Rust.d.cts.map +1 -0
- package/dist/icons/Rust.d.mts +9 -4
- package/dist/icons/Rust.d.mts.map +1 -0
- package/dist/icons/Rust.mjs +88 -138
- package/dist/icons/Rust.mjs.map +1 -1
- package/dist/icons/Search.cjs +37 -0
- package/dist/icons/Search.cjs.map +1 -0
- package/dist/icons/Search.d.cts +11 -0
- package/dist/icons/Search.d.cts.map +1 -0
- package/dist/icons/Search.d.mts +9 -4
- package/dist/icons/Search.d.mts.map +1 -0
- package/dist/icons/Search.mjs +30 -44
- package/dist/icons/Search.mjs.map +1 -1
- package/dist/icons/SmartContract.cjs +22 -0
- package/dist/icons/SmartContract.cjs.map +1 -0
- package/dist/icons/SmartContract.d.cts +11 -0
- package/dist/icons/SmartContract.d.cts.map +1 -0
- package/dist/icons/SmartContract.d.mts +9 -4
- package/dist/icons/SmartContract.d.mts.map +1 -0
- package/dist/icons/SmartContract.mjs +15 -20
- package/dist/icons/SmartContract.mjs.map +1 -1
- package/dist/icons/Solana.cjs +64 -0
- package/dist/icons/Solana.cjs.map +1 -0
- package/dist/icons/Solana.d.cts +11 -0
- package/dist/icons/Solana.d.cts.map +1 -0
- package/dist/icons/Solana.d.mts +9 -4
- package/dist/icons/Solana.d.mts.map +1 -0
- package/dist/icons/Solana.mjs +57 -44
- package/dist/icons/Solana.mjs.map +1 -1
- package/dist/icons/Solflare.cjs +22 -0
- package/dist/icons/Solflare.cjs.map +1 -0
- package/dist/icons/Solflare.d.cts +11 -0
- package/dist/icons/Solflare.d.cts.map +1 -0
- package/dist/icons/Solflare.d.mts +9 -4
- package/dist/icons/Solflare.d.mts.map +1 -0
- package/dist/icons/Solflare.mjs +15 -20
- package/dist/icons/Solflare.mjs.map +1 -1
- package/dist/icons/Success.cjs +25 -0
- package/dist/icons/Success.cjs.map +1 -0
- package/dist/icons/Success.d.cts +11 -0
- package/dist/icons/Success.d.cts.map +1 -0
- package/dist/icons/Success.d.mts +9 -4
- package/dist/icons/Success.d.mts.map +1 -0
- package/dist/icons/Success.mjs +18 -23
- package/dist/icons/Success.mjs.map +1 -1
- package/dist/icons/SuccessCircle.cjs +25 -0
- package/dist/icons/SuccessCircle.cjs.map +1 -0
- package/dist/icons/SuccessCircle.d.cts +11 -0
- package/dist/icons/SuccessCircle.d.cts.map +1 -0
- package/dist/icons/SuccessCircle.d.mts +9 -4
- package/dist/icons/SuccessCircle.d.mts.map +1 -0
- package/dist/icons/SuccessCircle.mjs +18 -23
- package/dist/icons/SuccessCircle.mjs.map +1 -1
- package/dist/icons/Table.cjs +32 -0
- package/dist/icons/Table.cjs.map +1 -0
- package/dist/icons/Table.d.cts +11 -0
- package/dist/icons/Table.d.cts.map +1 -0
- package/dist/icons/Table.d.mts +9 -4
- package/dist/icons/Table.d.mts.map +1 -0
- package/dist/icons/Table.mjs +25 -36
- package/dist/icons/Table.mjs.map +1 -1
- package/dist/icons/Target.cjs +35 -0
- package/dist/icons/Target.cjs.map +1 -0
- package/dist/icons/Target.d.cts +11 -0
- package/dist/icons/Target.d.cts.map +1 -0
- package/dist/icons/Target.d.mts +9 -4
- package/dist/icons/Target.d.mts.map +1 -0
- package/dist/icons/Target.mjs +28 -39
- package/dist/icons/Target.mjs.map +1 -1
- package/dist/icons/Training.cjs +32 -0
- package/dist/icons/Training.cjs.map +1 -0
- package/dist/icons/Training.d.cts +11 -0
- package/dist/icons/Training.d.cts.map +1 -0
- package/dist/icons/Training.d.mts +9 -4
- package/dist/icons/Training.d.mts.map +1 -0
- package/dist/icons/Training.mjs +25 -36
- package/dist/icons/Training.mjs.map +1 -1
- package/dist/icons/Typescript.cjs +79 -0
- package/dist/icons/Typescript.cjs.map +1 -0
- package/dist/icons/Typescript.d.cts +11 -0
- package/dist/icons/Typescript.d.cts.map +1 -0
- package/dist/icons/Typescript.d.mts +9 -4
- package/dist/icons/Typescript.d.mts.map +1 -0
- package/dist/icons/Typescript.mjs +72 -116
- package/dist/icons/Typescript.mjs.map +1 -1
- package/dist/icons/Unclaimed.cjs +25 -0
- package/dist/icons/Unclaimed.cjs.map +1 -0
- package/dist/icons/Unclaimed.d.cts +11 -0
- package/dist/icons/Unclaimed.d.cts.map +1 -0
- package/dist/icons/Unclaimed.d.mts +9 -4
- package/dist/icons/Unclaimed.d.mts.map +1 -0
- package/dist/icons/Unclaimed.mjs +18 -29
- package/dist/icons/Unclaimed.mjs.map +1 -1
- package/dist/icons/Upload.cjs +26 -0
- package/dist/icons/Upload.cjs.map +1 -0
- package/dist/icons/Upload.d.cts +11 -0
- package/dist/icons/Upload.d.cts.map +1 -0
- package/dist/icons/Upload.d.mts +9 -4
- package/dist/icons/Upload.d.mts.map +1 -0
- package/dist/icons/Upload.mjs +19 -30
- package/dist/icons/Upload.mjs.map +1 -1
- package/dist/icons/User.cjs +32 -0
- package/dist/icons/User.cjs.map +1 -0
- package/dist/icons/User.d.cts +11 -0
- package/dist/icons/User.d.cts.map +1 -0
- package/dist/icons/User.d.mts +9 -4
- package/dist/icons/User.d.mts.map +1 -0
- package/dist/icons/User.mjs +25 -36
- package/dist/icons/User.mjs.map +1 -1
- package/dist/icons/Wallet.cjs +34 -0
- package/dist/icons/Wallet.cjs.map +1 -0
- package/dist/icons/Wallet.d.cts +11 -0
- package/dist/icons/Wallet.d.cts.map +1 -0
- package/dist/icons/Wallet.d.mts +9 -4
- package/dist/icons/Wallet.d.mts.map +1 -0
- package/dist/icons/Wallet.mjs +27 -38
- package/dist/icons/Wallet.mjs.map +1 -1
- package/dist/icons/WalletSmall.cjs +25 -0
- package/dist/icons/WalletSmall.cjs.map +1 -0
- package/dist/icons/WalletSmall.d.cts +11 -0
- package/dist/icons/WalletSmall.d.cts.map +1 -0
- package/dist/icons/WalletSmall.d.mts +9 -4
- package/dist/icons/WalletSmall.d.mts.map +1 -0
- package/dist/icons/WalletSmall.mjs +18 -29
- package/dist/icons/WalletSmall.mjs.map +1 -1
- package/dist/icons/Warning.cjs +30 -0
- package/dist/icons/Warning.cjs.map +1 -0
- package/dist/icons/Warning.d.cts +11 -0
- package/dist/icons/Warning.d.cts.map +1 -0
- package/dist/icons/Warning.d.mts +9 -4
- package/dist/icons/Warning.d.mts.map +1 -0
- package/dist/icons/Warning.mjs +23 -25
- package/dist/icons/Warning.mjs.map +1 -1
- package/dist/icons/X.cjs +22 -0
- package/dist/icons/X.cjs.map +1 -0
- package/dist/icons/X.d.cts +11 -0
- package/dist/icons/X.d.cts.map +1 -0
- package/dist/icons/X.d.mts +9 -4
- package/dist/icons/X.d.mts.map +1 -0
- package/dist/icons/X.mjs +15 -20
- package/dist/icons/X.mjs.map +1 -1
- package/dist/icons/index.cjs +180 -0
- package/dist/icons/index.cjs.map +1 -0
- package/dist/icons/index.d.cts +335 -0
- package/dist/icons/index.d.cts.map +1 -0
- package/dist/icons/index.d.mts +335 -2
- package/dist/icons/index.d.mts.map +1 -0
- package/dist/icons/index.mjs +171 -168
- package/dist/icons/index.mjs.map +1 -1
- package/dist/index.cjs +64 -0
- package/dist/index.d.cts +26 -0
- package/dist/index.d.mts +26 -27
- package/dist/index.mjs +27 -27
- package/dist/utils/colours.cjs +36 -0
- package/dist/utils/colours.cjs.map +1 -0
- package/dist/utils/colours.d.cts +33 -0
- package/dist/utils/colours.d.cts.map +1 -0
- package/dist/utils/colours.d.mts +26 -24
- package/dist/utils/colours.d.mts.map +1 -0
- package/dist/utils/colours.mjs +24 -23
- package/dist/utils/colours.mjs.map +1 -1
- package/dist/utils/easings.cjs +58 -0
- package/dist/utils/easings.cjs.map +1 -0
- package/dist/utils/easings.d.cts +15 -0
- package/dist/utils/easings.d.cts.map +1 -0
- package/dist/utils/easings.d.mts +12 -16
- package/dist/utils/easings.d.mts.map +1 -0
- package/dist/utils/easings.mjs +44 -8
- package/dist/utils/easings.mjs.map +1 -1
- package/package.json +3 -3
- package/dist/Alert.d.ts +0 -19
- package/dist/Alert.js +0 -102
- package/dist/Alert.js.map +0 -1
- package/dist/Avatar.d.ts +0 -17
- package/dist/Avatar.js +0 -72
- package/dist/Avatar.js.map +0 -1
- package/dist/Badge.d.ts +0 -20
- package/dist/Badge.js +0 -88
- package/dist/Badge.js.map +0 -1
- package/dist/Banner.d.ts +0 -18
- package/dist/Banner.js +0 -69
- package/dist/Banner.js.map +0 -1
- package/dist/Button.d.ts +0 -31
- package/dist/Button.js +0 -155
- package/dist/Button.js.map +0 -1
- package/dist/Checkbox.d.ts +0 -12
- package/dist/Checkbox.js +0 -63
- package/dist/Checkbox.js.map +0 -1
- package/dist/Codeblock.d.ts +0 -15
- package/dist/Codeblock.js +0 -99
- package/dist/Codeblock.js.map +0 -1
- package/dist/CrossHair.d.ts +0 -18
- package/dist/CrossHair.js +0 -267
- package/dist/CrossHair.js.map +0 -1
- package/dist/DecryptText.d.ts +0 -13
- package/dist/DecryptText.js +0 -105
- package/dist/DecryptText.js.map +0 -1
- package/dist/Difficulty.d.ts +0 -10
- package/dist/Difficulty.js +0 -142
- package/dist/Difficulty.js.map +0 -1
- package/dist/Divider.d.ts +0 -9
- package/dist/Divider.js +0 -51
- package/dist/Divider.js.map +0 -1
- package/dist/Dropdown.d.ts +0 -80
- package/dist/Dropdown.js +0 -613
- package/dist/Dropdown.js.map +0 -1
- package/dist/GridLines.d.ts +0 -11
- package/dist/GridLines.js +0 -91
- package/dist/GridLines.js.map +0 -1
- package/dist/HeadingReveal.d.ts +0 -15
- package/dist/HeadingReveal.js +0 -68
- package/dist/HeadingReveal.js.map +0 -1
- package/dist/Icon-CS8ZR20W.d.mts +0 -97
- package/dist/Icon-CS8ZR20W.d.ts +0 -97
- package/dist/Icon.d.ts +0 -2
- package/dist/Icon.js +0 -32
- package/dist/Icon.js.map +0 -1
- package/dist/Input.d.ts +0 -40
- package/dist/Input.js +0 -189
- package/dist/Input.js.map +0 -1
- package/dist/Logo.d.ts +0 -11
- package/dist/Logo.js +0 -157
- package/dist/Logo.js.map +0 -1
- package/dist/Pagination.d.ts +0 -23
- package/dist/Pagination.js +0 -188
- package/dist/Pagination.js.map +0 -1
- package/dist/Slider.d.ts +0 -27
- package/dist/Slider.js +0 -344
- package/dist/Slider.js.map +0 -1
- package/dist/Tabs.d.ts +0 -26
- package/dist/Tabs.js +0 -111
- package/dist/Tabs.js.map +0 -1
- package/dist/Toast.d.ts +0 -18
- package/dist/Toast.js +0 -89
- package/dist/Toast.js.map +0 -1
- package/dist/Tooltip.d.ts +0 -10
- package/dist/Tooltip.js +0 -146
- package/dist/Tooltip.js.map +0 -1
- package/dist/fonts/CommitMono-Regular.woff2.d.mts +0 -2
- package/dist/fonts/CommitMono-Regular.woff2.d.ts +0 -2
- package/dist/fonts/MONTECHV02-Medium.woff2.d.mts +0 -2
- package/dist/fonts/MONTECHV02-Medium.woff2.d.ts +0 -2
- package/dist/fonts/Switzer-Regular.woff2.d.mts +0 -2
- package/dist/fonts/Switzer-Regular.woff2.d.ts +0 -2
- package/dist/icons/Anchor.d.ts +0 -6
- package/dist/icons/Anchor.js +0 -89
- package/dist/icons/Anchor.js.map +0 -1
- package/dist/icons/ArrowLeft.d.ts +0 -6
- package/dist/icons/ArrowLeft.js +0 -37
- package/dist/icons/ArrowLeft.js.map +0 -1
- package/dist/icons/ArrowRight.d.ts +0 -6
- package/dist/icons/ArrowRight.js +0 -37
- package/dist/icons/ArrowRight.js.map +0 -1
- package/dist/icons/Assembly.d.ts +0 -6
- package/dist/icons/Assembly.js +0 -172
- package/dist/icons/Assembly.js.map +0 -1
- package/dist/icons/Backpack.d.ts +0 -6
- package/dist/icons/Backpack.js +0 -46
- package/dist/icons/Backpack.js.map +0 -1
- package/dist/icons/Brave.d.ts +0 -6
- package/dist/icons/Brave.js +0 -60
- package/dist/icons/Brave.js.map +0 -1
- package/dist/icons/Challenge.d.ts +0 -6
- package/dist/icons/Challenge.js +0 -42
- package/dist/icons/Challenge.js.map +0 -1
- package/dist/icons/Chevron.d.ts +0 -6
- package/dist/icons/Chevron.js +0 -28
- package/dist/icons/Chevron.js.map +0 -1
- package/dist/icons/ChevronLeft.d.ts +0 -6
- package/dist/icons/ChevronLeft.js +0 -28
- package/dist/icons/ChevronLeft.js.map +0 -1
- package/dist/icons/ChevronRight.d.ts +0 -6
- package/dist/icons/ChevronRight.js +0 -28
- package/dist/icons/ChevronRight.js.map +0 -1
- package/dist/icons/Claim.d.ts +0 -6
- package/dist/icons/Claim.js +0 -38
- package/dist/icons/Claim.js.map +0 -1
- package/dist/icons/Claimed.d.ts +0 -6
- package/dist/icons/Claimed.js +0 -28
- package/dist/icons/Claimed.js.map +0 -1
- package/dist/icons/Clock.d.ts +0 -6
- package/dist/icons/Clock.js +0 -42
- package/dist/icons/Clock.js.map +0 -1
- package/dist/icons/Close.d.ts +0 -6
- package/dist/icons/Close.js +0 -39
- package/dist/icons/Close.js.map +0 -1
- package/dist/icons/Code.d.ts +0 -6
- package/dist/icons/Code.js +0 -40
- package/dist/icons/Code.js.map +0 -1
- package/dist/icons/Copy.d.ts +0 -6
- package/dist/icons/Copy.js +0 -37
- package/dist/icons/Copy.js.map +0 -1
- package/dist/icons/Cross.d.ts +0 -6
- package/dist/icons/Cross.js +0 -37
- package/dist/icons/Cross.js.map +0 -1
- package/dist/icons/Developer.d.ts +0 -6
- package/dist/icons/Developer.js +0 -46
- package/dist/icons/Developer.js.map +0 -1
- package/dist/icons/Disconnect.d.ts +0 -6
- package/dist/icons/Disconnect.js +0 -46
- package/dist/icons/Disconnect.js.map +0 -1
- package/dist/icons/Discord.d.ts +0 -6
- package/dist/icons/Discord.js +0 -28
- package/dist/icons/Discord.js.map +0 -1
- package/dist/icons/Dollar.d.ts +0 -6
- package/dist/icons/Dollar.js +0 -30
- package/dist/icons/Dollar.js.map +0 -1
- package/dist/icons/DoubleArrow.d.ts +0 -6
- package/dist/icons/DoubleArrow.js +0 -37
- package/dist/icons/DoubleArrow.js.map +0 -1
- package/dist/icons/EVM.d.ts +0 -6
- package/dist/icons/EVM.js +0 -41
- package/dist/icons/EVM.js.map +0 -1
- package/dist/icons/Email.d.ts +0 -6
- package/dist/icons/Email.js +0 -45
- package/dist/icons/Email.js.map +0 -1
- package/dist/icons/Error.d.ts +0 -6
- package/dist/icons/Error.js +0 -28
- package/dist/icons/Error.js.map +0 -1
- package/dist/icons/Expand.d.ts +0 -6
- package/dist/icons/Expand.js +0 -37
- package/dist/icons/Expand.js.map +0 -1
- package/dist/icons/External.d.ts +0 -6
- package/dist/icons/External.js +0 -38
- package/dist/icons/External.js.map +0 -1
- package/dist/icons/Filter.d.ts +0 -6
- package/dist/icons/Filter.js +0 -45
- package/dist/icons/Filter.js.map +0 -1
- package/dist/icons/Firmware.d.ts +0 -6
- package/dist/icons/Firmware.js +0 -37
- package/dist/icons/Firmware.js.map +0 -1
- package/dist/icons/Flag.d.ts +0 -6
- package/dist/icons/Flag.js +0 -37
- package/dist/icons/Flag.js.map +0 -1
- package/dist/icons/Flame.d.ts +0 -6
- package/dist/icons/Flame.js +0 -28
- package/dist/icons/Flame.js.map +0 -1
- package/dist/icons/Flexible.d.ts +0 -6
- package/dist/icons/Flexible.js +0 -52
- package/dist/icons/Flexible.js.map +0 -1
- package/dist/icons/Free.d.ts +0 -6
- package/dist/icons/Free.js +0 -53
- package/dist/icons/Free.js.map +0 -1
- package/dist/icons/General.d.ts +0 -6
- package/dist/icons/General.js +0 -60
- package/dist/icons/General.js.map +0 -1
- package/dist/icons/Github.d.ts +0 -6
- package/dist/icons/Github.js +0 -39
- package/dist/icons/Github.js.map +0 -1
- package/dist/icons/Globe.d.ts +0 -6
- package/dist/icons/Globe.js +0 -25
- package/dist/icons/Globe.js.map +0 -1
- package/dist/icons/GridView.d.ts +0 -6
- package/dist/icons/GridView.js +0 -51
- package/dist/icons/GridView.js.map +0 -1
- package/dist/icons/Heart.d.ts +0 -6
- package/dist/icons/Heart.js +0 -28
- package/dist/icons/Heart.js.map +0 -1
- package/dist/icons/Info.d.ts +0 -6
- package/dist/icons/Info.js +0 -28
- package/dist/icons/Info.js.map +0 -1
- package/dist/icons/Language.d.ts +0 -6
- package/dist/icons/Language.js +0 -42
- package/dist/icons/Language.js.map +0 -1
- package/dist/icons/Lessons.d.ts +0 -6
- package/dist/icons/Lessons.js +0 -38
- package/dist/icons/Lessons.js.map +0 -1
- package/dist/icons/Link.d.ts +0 -6
- package/dist/icons/Link.js +0 -37
- package/dist/icons/Link.js.map +0 -1
- package/dist/icons/ListView.d.ts +0 -6
- package/dist/icons/ListView.js +0 -44
- package/dist/icons/ListView.js.map +0 -1
- package/dist/icons/Loading.d.ts +0 -6
- package/dist/icons/Loading.js +0 -40
- package/dist/icons/Loading.js.map +0 -1
- package/dist/icons/Locked.d.ts +0 -6
- package/dist/icons/Locked.js +0 -37
- package/dist/icons/Locked.js.map +0 -1
- package/dist/icons/Logs.d.ts +0 -6
- package/dist/icons/Logs.js +0 -26
- package/dist/icons/Logs.js.map +0 -1
- package/dist/icons/Mentor.d.ts +0 -6
- package/dist/icons/Mentor.js +0 -47
- package/dist/icons/Mentor.js.map +0 -1
- package/dist/icons/Metamask.d.ts +0 -6
- package/dist/icons/Metamask.js +0 -72
- package/dist/icons/Metamask.js.map +0 -1
- package/dist/icons/Minimize.d.ts +0 -6
- package/dist/icons/Minimize.js +0 -37
- package/dist/icons/Minimize.js.map +0 -1
- package/dist/icons/Modular.d.ts +0 -6
- package/dist/icons/Modular.js +0 -53
- package/dist/icons/Modular.js.map +0 -1
- package/dist/icons/NFT.d.ts +0 -6
- package/dist/icons/NFT.js +0 -49
- package/dist/icons/NFT.js.map +0 -1
- package/dist/icons/Online.d.ts +0 -6
- package/dist/icons/Online.js +0 -55
- package/dist/icons/Online.js.map +0 -1
- package/dist/icons/Password.d.ts +0 -6
- package/dist/icons/Password.js +0 -44
- package/dist/icons/Password.js.map +0 -1
- package/dist/icons/Path.d.ts +0 -6
- package/dist/icons/Path.js +0 -42
- package/dist/icons/Path.js.map +0 -1
- package/dist/icons/Perks.d.ts +0 -6
- package/dist/icons/Perks.js +0 -41
- package/dist/icons/Perks.js.map +0 -1
- package/dist/icons/Phantom.d.ts +0 -6
- package/dist/icons/Phantom.js +0 -28
- package/dist/icons/Phantom.js.map +0 -1
- package/dist/icons/Play.d.ts +0 -6
- package/dist/icons/Play.js +0 -28
- package/dist/icons/Play.js.map +0 -1
- package/dist/icons/Product.d.ts +0 -6
- package/dist/icons/Product.js +0 -44
- package/dist/icons/Product.js.map +0 -1
- package/dist/icons/Progress.d.ts +0 -6
- package/dist/icons/Progress.js +0 -37
- package/dist/icons/Progress.js.map +0 -1
- package/dist/icons/Protocol.d.ts +0 -6
- package/dist/icons/Protocol.js +0 -44
- package/dist/icons/Protocol.js.map +0 -1
- package/dist/icons/Refresh.d.ts +0 -6
- package/dist/icons/Refresh.js +0 -37
- package/dist/icons/Refresh.js.map +0 -1
- package/dist/icons/Rewards.d.ts +0 -6
- package/dist/icons/Rewards.js +0 -38
- package/dist/icons/Rewards.js.map +0 -1
- package/dist/icons/Rust.d.ts +0 -6
- package/dist/icons/Rust.js +0 -146
- package/dist/icons/Rust.js.map +0 -1
- package/dist/icons/Search.d.ts +0 -6
- package/dist/icons/Search.js +0 -52
- package/dist/icons/Search.js.map +0 -1
- package/dist/icons/SmartContract.d.ts +0 -6
- package/dist/icons/SmartContract.js +0 -28
- package/dist/icons/SmartContract.js.map +0 -1
- package/dist/icons/Solana.d.ts +0 -6
- package/dist/icons/Solana.js +0 -52
- package/dist/icons/Solana.js.map +0 -1
- package/dist/icons/Solflare.d.ts +0 -6
- package/dist/icons/Solflare.js +0 -28
- package/dist/icons/Solflare.js.map +0 -1
- package/dist/icons/Success.d.ts +0 -6
- package/dist/icons/Success.js +0 -31
- package/dist/icons/Success.js.map +0 -1
- package/dist/icons/SuccessCircle.d.ts +0 -6
- package/dist/icons/SuccessCircle.js +0 -31
- package/dist/icons/SuccessCircle.js.map +0 -1
- package/dist/icons/Table.d.ts +0 -6
- package/dist/icons/Table.js +0 -44
- package/dist/icons/Table.js.map +0 -1
- package/dist/icons/Target.d.ts +0 -6
- package/dist/icons/Target.js +0 -47
- package/dist/icons/Target.js.map +0 -1
- package/dist/icons/Training.d.ts +0 -6
- package/dist/icons/Training.js +0 -44
- package/dist/icons/Training.js.map +0 -1
- package/dist/icons/Typescript.d.ts +0 -6
- package/dist/icons/Typescript.js +0 -124
- package/dist/icons/Typescript.js.map +0 -1
- package/dist/icons/Unclaimed.d.ts +0 -6
- package/dist/icons/Unclaimed.js +0 -37
- package/dist/icons/Unclaimed.js.map +0 -1
- package/dist/icons/Upload.d.ts +0 -6
- package/dist/icons/Upload.js +0 -38
- package/dist/icons/Upload.js.map +0 -1
- package/dist/icons/User.d.ts +0 -6
- package/dist/icons/User.js +0 -44
- package/dist/icons/User.js.map +0 -1
- package/dist/icons/Wallet.d.ts +0 -6
- package/dist/icons/Wallet.js +0 -46
- package/dist/icons/Wallet.js.map +0 -1
- package/dist/icons/WalletSmall.d.ts +0 -6
- package/dist/icons/WalletSmall.js +0 -37
- package/dist/icons/WalletSmall.js.map +0 -1
- package/dist/icons/Warning.d.ts +0 -6
- package/dist/icons/Warning.js +0 -33
- package/dist/icons/Warning.js.map +0 -1
- package/dist/icons/X.d.ts +0 -6
- package/dist/icons/X.js +0 -28
- package/dist/icons/X.js.map +0 -1
- package/dist/icons/index.d.ts +0 -2
- package/dist/icons/index.js +0 -179
- package/dist/icons/index.js.map +0 -1
- package/dist/index.d.ts +0 -27
- package/dist/index.js +0 -154
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/utils/colours.d.ts +0 -31
- package/dist/utils/colours.js +0 -36
- package/dist/utils/colours.js.map +0 -1
- package/dist/utils/easings.d.ts +0 -19
- package/dist/utils/easings.js +0 -23
- package/dist/utils/easings.js.map +0 -1
- /package/dist/{fonts/CommitMono-Regular.woff2 → assets/CommitMono-Regular-CO8xzcA8.woff2} +0 -0
- /package/dist/{fonts/MONTECHV02-Medium.woff2 → assets/MONTECHV02-Medium-sFbAcPHg.woff2} +0 -0
- /package/dist/{fonts/Switzer-Regular.woff2 → assets/Switzer-Regular-T9RxCVNS.woff2} +0 -0
package/dist/Dropdown.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Dropdown.tsx"],"names":[],"mappings":"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","file":"Dropdown.mjs","sourcesContent":["\"use client\";\n\nimport { Button, ButtonProps } from \"./Button\";\nimport { useRef, useState, useEffect, useCallback } from \"react\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport classNames from \"classnames\";\nimport { swift } from \"./utils/easings\";\nimport { Checkbox } from \"./Checkbox\";\nimport { Divider } from \"./Divider\";\nimport { Icon, type IconProps } from \"./Icon\";\nimport { useOnClickOutside } from \"usehooks-ts\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { isValidElement, ReactNode } from \"react\";\n\nexport type DropdownOption = {\n label: string;\n icon?: IconProps | ReactNode;\n value: string;\n disabled?: boolean;\n children?: DropdownOption[];\n};\n\nexport type DropdownProps = {\n className?: string;\n items: DropdownOption[];\n selectedItem?: string | string[] | undefined;\n handleChange: (item: string | string[] | undefined) => void;\n multiple?: boolean;\n disabled?: boolean;\n label: string | ((selectedLabel: string) => string);\n multiSelectLabel?: string;\n buttonClassName?: string;\n menuClassName?: string;\n subMenuClassName?: string;\n menuIcon?: IconProps | ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n isScrollable?: boolean;\n animationOrigin?: \"top-left\" | \"top-center\" | \"top-right\";\n search?: string;\n onClearSearch?: () => void;\n showSelectAll?: boolean;\n showClear?: boolean;\n showSelectedItem?: boolean;\n};\n\nexport type DropdownButtonProps = {\n label: string | ((selectedLabel: string) => string);\n multiSelectLabel?: string;\n disabled?: boolean;\n className?: string;\n onClick: () => void;\n buttonClassName?: string;\n selectedItems?: DropdownProps[\"items\"];\n multiple?: boolean;\n count?: number;\n menuIcon?: IconProps | ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n onClear?: () => void;\n showSelectedItem?: boolean;\n showClear?: boolean;\n};\n\nexport type DropdownItemProps = {\n label: string;\n icon?: IconProps | ReactNode;\n onClick: () => void;\n disabled?: boolean;\n isSelected?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n};\n\nexport type DropdownMenuProps = {\n items: DropdownOption[];\n selectedItem?: string | string[] | undefined;\n handleChange: (item: string | string[] | undefined) => void;\n multiple?: boolean;\n menuClassName?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n isOpen: boolean;\n onItemClick?: (value: string) => void;\n isScrollable?: boolean;\n animationOrigin?: \"top-left\" | \"top-center\" | \"top-right\";\n search?: string;\n onClearSearch?: () => void;\n showSelectAll?: boolean;\n showSafeTriangle?: boolean;\n subMenuClassName?: string;\n};\n\n// Track mouse position for SafeArea triangles\nconst useMousePosition = () => {\n const [mousePosition, setMousePosition] = useState<[number, number]>([0, 0]);\n\n const updateMousePosition = useCallback((ev: MouseEvent) => {\n setMousePosition([ev.clientX, ev.clientY]);\n }, []);\n\n useEffect(() => {\n const throttledUpdate = (ev: MouseEvent) => {\n requestAnimationFrame(() => updateMousePosition(ev));\n };\n\n window.addEventListener(\"mousemove\", throttledUpdate);\n return () => window.removeEventListener(\"mousemove\", throttledUpdate);\n }, [updateMousePosition]);\n\n return mousePosition;\n};\n\ntype MouseSafeAreaProps = {\n submenuRef: React.RefObject<HTMLDivElement | null>;\n parentRef: React.RefObject<HTMLDivElement | null>;\n onEnter?: () => void;\n onLeave?: () => void;\n debug?: boolean;\n};\n\n// Component to cover the area between the mouse cursor and the sub-menu, to allow moving cursor to lower parts of sub-menu without the sub-menu disappearing.\nconst MouseSafeArea = ({\n parentRef,\n submenuRef,\n onEnter,\n onLeave,\n debug = false,\n}: MouseSafeAreaProps) => {\n const {\n x = 0,\n y = 0,\n height: h = 0,\n width: w = 0,\n } = submenuRef.current?.getBoundingClientRect() || {};\n const [mouseX, mouseY] = useMousePosition();\n const positions = { x, y, h, w, mouseX, mouseY };\n\n return (\n <div\n style={{\n position: \"absolute\",\n left: getLeft(positions),\n right: getRight(positions),\n top: 0,\n width: getWidth(positions),\n height: h,\n clipPath: getClipPath(positions),\n pointerEvents: \"auto\",\n zIndex: 9999,\n backgroundColor: debug ? \"rgba(0, 179, 179, 0.25)\" : \"transparent\",\n }}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n />\n );\n};\n\ninterface Positions {\n /* Sub-menu x */\n x: number;\n /* Sub-menu y */\n y: number;\n /* Sub-menu height */\n h: number;\n /* Sub-menu width */\n w: number;\n /* Mouse x */\n mouseX: number;\n /* Mouse y */\n mouseY: number;\n}\n\nconst getLeft = ({ x, mouseX }: Positions) =>\n mouseX > x ? undefined : -Math.max(x - mouseX, 10) + \"px\";\nconst getRight = ({ x, w, mouseX }: Positions) =>\n mouseX > x ? -Math.max(mouseX - (x + w), 10) + \"px\" : undefined;\nconst getWidth = ({ x, w, mouseX }: Positions) =>\n mouseX > x\n ? Math.max(mouseX - (x + w), 10) + \"px\"\n : Math.max(x - mouseX, 10) + \"px\";\nconst getClipPath = ({ x, y, h, mouseX, mouseY }: Positions) =>\n mouseX < x\n ? `polygon(100% 0%, 0% ${(100 * (mouseY - y)) / h}%, 100% 100%)`\n : `polygon(0% 0%, 0% 100%, 100% ${(100 * (mouseY - y)) / h}%)`;\n\nexport const DropdownMenu = ({\n items,\n selectedItem,\n handleChange,\n multiple = false,\n menuClassName,\n size = \"md\",\n isOpen,\n onItemClick,\n isScrollable = false,\n animationOrigin = \"top-left\",\n search,\n onClearSearch,\n showSelectAll = true,\n showSafeTriangle = false,\n subMenuClassName,\n}: DropdownMenuProps) => {\n const [isAtBottom, setIsAtBottom] = useState(false);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n // Filter items based on search term\n const filteredItems = (() => {\n // If search is provided, filter based on search\n if (search) {\n return items.filter((item) =>\n item.label.toLowerCase().includes(search.toLowerCase()),\n );\n }\n\n // Default: show all items\n return items;\n })();\n\n // Handle scroll detection\n const handleScroll = useCallback(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const { scrollTop, scrollHeight, clientHeight } = container;\n const threshold = 5; // Small threshold to account for rounding\n const isNearBottom = scrollTop + clientHeight >= scrollHeight - threshold;\n\n setIsAtBottom(isNearBottom);\n }, []);\n\n // Reset scroll state when items change or menu opens\n useEffect(() => {\n if (isOpen) {\n setIsAtBottom(false);\n }\n }, [isOpen, filteredItems.length]);\n\n // Check if content is actually scrollable\n useEffect(() => {\n const container = scrollContainerRef.current;\n if (!container || !isOpen) return;\n\n const { scrollHeight, clientHeight } = container;\n const hasScrollbar = scrollHeight > clientHeight;\n\n // If no scrollbar (content fits), consider it \"at bottom\"\n if (!hasScrollbar) {\n setIsAtBottom(true);\n }\n }, [isOpen, filteredItems.length]);\n\n // Helper to check if an item is selected\n const isItemSelected = (value: string) => {\n if (multiple) {\n return (\n Array.isArray(selectedItem) &&\n selectedItem.length > 0 &&\n selectedItem.includes(value)\n );\n }\n return !!selectedItem && selectedItem === value;\n };\n\n const flattenSelectable = (options: DropdownOption[]): DropdownOption[] => {\n const out: DropdownOption[] = [];\n const walk = (nodes: DropdownOption[]) => {\n nodes.forEach((n) => {\n if (n.children && n.children.length > 0) {\n walk(n.children);\n } else {\n out.push(n);\n }\n });\n };\n walk(options);\n return out;\n };\n\n // Handle item selection\n const handleItemClick = (value: string) => {\n if (multiple) {\n const currentSelection = Array.isArray(selectedItem) ? selectedItem : [];\n\n // If all items are selected, clicking any item should deselect all others\n if (isAllSelected()) {\n handleChange([value]);\n } else if (currentSelection.includes(value)) {\n // Remove from selection\n handleChange(currentSelection.filter((item) => item !== value));\n } else {\n // Add to selection\n handleChange([...currentSelection, value]);\n }\n } else {\n // Single select - if clicking the already selected item, deselect it\n if (selectedItem === value) {\n handleChange(undefined);\n } else {\n // Otherwise, select the new item\n handleChange(value);\n }\n // Call the optional callback for single select\n onItemClick?.(value);\n }\n };\n\n // Handle select all\n const handleSelectAll = () => {\n const currentSelection = Array.isArray(selectedItem) ? selectedItem : [];\n const allValues = flattenSelectable(filteredItems)\n .filter((item) => !item.disabled)\n .map((item) => item.value);\n\n if (currentSelection.length === allValues.length) {\n // Deselect all\n handleChange([]);\n } else {\n // Select all\n handleChange(allValues);\n }\n };\n\n // Check if all items are selected\n const isAllSelected = () => {\n if (!Array.isArray(selectedItem) || selectedItem.length === 0) return false;\n const selectableItems = flattenSelectable(filteredItems).filter(\n (item) => !item.disabled,\n );\n return (\n selectableItems.length > 0 &&\n selectedItem.length === selectableItems.length &&\n selectableItems.every((item) => selectedItem.includes(item.value))\n );\n };\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n initial={{ opacity: 0, scale: 0.8, y: -15 }}\n animate={{ opacity: 1, scale: 1, y: 0 }}\n transition={{ duration: 0.1, ease: swift }}\n exit={{ opacity: 0, scale: 0.8, y: -5 }}\n className={classNames(\n \"z-50 absolute top-[calc(100%+6px)] p-1 bg-card-foreground border border-border-light\",\n (size === \"lg\" || size === \"md\") && \"min-w-[200px]\",\n animationOrigin === \"top-left\" && \"origin-top-left\",\n animationOrigin === \"top-center\" && \"origin-top-center\",\n animationOrigin === \"top-right\" && \"origin-top-right\",\n menuClassName,\n )}\n >\n <div\n ref={scrollContainerRef}\n onScroll={handleScroll}\n className={classNames(\n \"flex flex-col gap-y-1\",\n isScrollable && [\n \"max-h-[250px] overflow-y-auto\",\n !isAtBottom &&\n \"[mask-image:linear-gradient(180deg,black,black_85%,transparent_100%)]\",\n ],\n )}\n >\n {multiple && showSelectAll && (\n <div className=\"group flex flex-col gap-y-1\">\n <button\n onClick={handleSelectAll}\n className={classNames(\n \"py-3 pl-2.5 pr-3 flex items-center gap-x-2.5 outline-none bg-transparent transition-colors duration-100 ease-crisp hover:bg-border-light/50\",\n )}\n >\n <Checkbox checked={isAllSelected()} />\n <span className=\"text-sm text-shade-primary font-medium\">\n Select All\n </span>\n </button>\n <Divider direction=\"horizontal\" />\n </div>\n )}\n {filteredItems.length > 0 ? (\n filteredItems.map((item) =>\n item.children && item.children.length > 0 ? (\n <DropdownSubmenuItem\n key={item.value}\n item={item}\n size={size}\n onLeafClick={handleItemClick}\n isLeafSelected={isItemSelected}\n />\n ) : (\n <DropdownItem\n key={item.value}\n label={item.label}\n icon={item.icon}\n onClick={() => handleItemClick(item.value)}\n disabled={item.disabled}\n isSelected={isItemSelected(item.value)}\n size={size}\n />\n ),\n )\n ) : (\n <button\n onClick={() => {\n // Clear search by calling the onClearSearch callback\n if (onClearSearch) {\n onClearSearch();\n }\n }}\n className=\"py-3 pl-2.5 pr-3 text-sm font-mono text-shade-tertiary hover:bg-border-light/50 transition-colors duration-100 ease-crisp w-full text-center\"\n >\n No options found\n </button>\n )}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n );\n};\n\nexport const Dropdown = ({\n className,\n items,\n selectedItem,\n handleChange,\n label = \"View All\",\n multiSelectLabel,\n disabled,\n buttonClassName,\n menuClassName,\n multiple = false,\n menuIcon,\n size = \"md\",\n isScrollable = false,\n search,\n onClearSearch,\n showSelectAll,\n showClear = true,\n subMenuClassName,\n showSelectedItem = true,\n}: DropdownProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n // Handle item selection for single select (closes menu)\n const handleItemClick = (value: string) => {\n if (!multiple) {\n // Single select - if clicking the already selected item, deselect it\n if (selectedItem === value) {\n handleChange(undefined);\n } else {\n // Otherwise, select the new item\n handleChange(value);\n }\n setIsOpen(false);\n }\n };\n\n const ref = useRef<HTMLDivElement>(null);\n\n const handleClickOutside = () => {\n setIsOpen(false);\n };\n\n // Cast ref to RefObject<HTMLElement> to satisfy useOnClickOutside's expected type\n useOnClickOutside(ref as React.RefObject<HTMLElement>, handleClickOutside);\n\n // Get selected items for display in button\n const getSelectedItems = () => {\n const flatten = (options: DropdownOption[]): DropdownOption[] => {\n const out: DropdownOption[] = [];\n const walk = (nodes: DropdownOption[]) => {\n nodes.forEach((n) => {\n if (n.children && n.children.length > 0) {\n walk(n.children);\n } else {\n out.push(n);\n }\n });\n };\n walk(options);\n return out;\n };\n\n const leaves = flatten(items);\n if (multiple) {\n const selectedValues = Array.isArray(selectedItem) ? selectedItem : [];\n return leaves.filter((item) => selectedValues.includes(item.value));\n }\n const selected = leaves.find((item) => item.value === selectedItem);\n return selected ? [selected] : [];\n };\n\n return (\n <div\n ref={ref}\n className={classNames(\n \"relative flex flex-col gap-y-1.5 items-start\",\n className,\n )}\n >\n <DropdownButton\n label={label}\n multiSelectLabel={multiSelectLabel}\n disabled={disabled}\n className={buttonClassName}\n onClick={() => setIsOpen(!isOpen)}\n selectedItems={getSelectedItems()}\n multiple={multiple}\n count={getSelectedItems().length}\n menuIcon={menuIcon}\n size={size}\n onClear={() => handleChange(multiple ? [] : undefined)}\n showClear={showClear}\n showSelectedItem={showSelectedItem}\n />\n\n <DropdownMenu\n items={items}\n selectedItem={selectedItem}\n handleChange={handleChange}\n multiple={multiple}\n menuClassName={menuClassName}\n size={size}\n isOpen={isOpen}\n onItemClick={handleItemClick}\n isScrollable={isScrollable}\n search={search}\n onClearSearch={onClearSearch}\n showSelectAll={showSelectAll}\n subMenuClassName={subMenuClassName}\n />\n </div>\n );\n};\n\nexport const DropdownButton = ({\n label,\n multiSelectLabel,\n disabled,\n className,\n onClick,\n selectedItems = [],\n multiple = false,\n count = 0,\n menuIcon,\n size,\n onClear,\n showClear,\n showSelectedItem,\n}: DropdownButtonProps) => {\n const [isHovered, setIsHovered] = useState(false);\n\n // Determine what to display\n const hasSelection = selectedItems.length > 0;\n const isSingleSelection = selectedItems.length === 1;\n const isMultipleSelection = selectedItems.length > 1;\n\n // Compute icon and label based on selection state\n let buttonIcon: ButtonProps[\"icon\"] | undefined;\n let buttonLabel: string;\n\n if (hasSelection && isSingleSelection) {\n // Single selection: show selected item's icon and label\n const selectedItem = selectedItems[0];\n buttonIcon = selectedItem.icon\n ? isValidElement(selectedItem.icon)\n ? selectedItem.icon\n : {\n name: (selectedItem.icon as IconProps).name,\n className: (selectedItem.icon as IconProps).className || \"\",\n size: (selectedItem.icon as IconProps).size || 18,\n }\n : menuIcon;\n // If label is a function, call it with the selected item's label; otherwise use the selected item's label directly\n buttonLabel =\n typeof label === \"function\"\n ? label(selectedItem.label)\n : selectedItem.label;\n } else if (isMultipleSelection && multiple && multiSelectLabel) {\n // Multiple selections: show count and multiSelectLabel\n\n buttonIcon = menuIcon\n ? isValidElement(menuIcon)\n ? menuIcon\n : {\n name: (menuIcon as IconProps).name,\n className: (menuIcon as IconProps).className || \"\",\n size: (menuIcon as IconProps).size || 18,\n }\n : undefined;\n buttonLabel = `${count} ${multiSelectLabel}`;\n } else {\n // Default: no selection - use label as string\n buttonIcon = menuIcon;\n buttonLabel = typeof label === \"function\" ? label(\"\") : label;\n }\n\n return (\n <Button\n icon={buttonIcon}\n label={showSelectedItem ? buttonLabel : undefined}\n disabled={disabled}\n size={size}\n variant=\"secondary\"\n className={classNames(\n \"!origin-bottom-left !justify-start w-full\",\n (size === \"md\" || size === \"lg\") && \"!pr-[18px] !pl-[12px]\",\n size === \"sm\" && \"!pr-4 !pl-3\",\n showClear && \"!pr-[48px]\",\n className,\n )}\n useDecryptAnimation={false}\n useHoverEffect={false}\n crosshairProps={{\n variant: \"corners\",\n corners: [\"bottom-right\"],\n spacingX: !isHovered ? -6 : -4,\n spacingY: !isHovered ? -6 : -4,\n animationDuration: 0.5,\n animationDelay: 0,\n className: \"text-shade-mute group-hover:text-shade-primary\",\n }}\n onClick={onClick}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n children={\n hasSelection &&\n showClear && (\n <div\n className=\"order-last top-1/2 -translate-y-1/2 right-2 absolute h-[24px] w-[24px] flex items-center justify-center hover:bg-background/40 transition duration-100 ease-crisp cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n onClear?.();\n }}\n >\n <Icon name=\"Close\" size={12} />\n </div>\n )\n }\n />\n );\n};\n\nexport const DropdownItem = ({\n label,\n icon,\n onClick,\n disabled,\n isSelected = false,\n size,\n}: DropdownItemProps) => {\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={classNames(\n \"hover:bg-border-light/50 relative group/item disabled:opacity-40 flex items-center gap-x-2.5 outline-none transition-colors duration-100 ease-crisp\",\n size === \"lg\" && \"py-4 pl-3 pr-3 text-base\",\n size === \"md\" && \"py-3 pl-2.5 pr-3 text-sm\",\n size === \"sm\" && \"py-2 pl-2.5 pr-3 h-[36px] text-sm\",\n isSelected && \"bg-background/50\",\n )}\n >\n <div className=\"opacity-0 group-hover/item:!opacity-100 absolute inset-0.5\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n className=\"text-shade-mute\"\n animationDelay={0}\n animationDuration={0.5}\n />\n </div>\n\n {icon && (\n <>\n {isValidElement(icon) ? (\n icon\n ) : (\n <Icon\n name={(icon as IconProps).name}\n className={classNames(\n \"flex-shrink-0\",\n (icon as IconProps).className,\n )}\n size={(icon as IconProps).size || 18}\n />\n )}\n </>\n )}\n <span\n className={classNames(\" text-shade-primary font-medium leading-[100%]\")}\n >\n {label}\n </span>\n </button>\n );\n};\n\ntype DropdownSubmenuItemProps = {\n item: DropdownOption;\n size?: \"sm\" | \"md\" | \"lg\";\n onLeafClick: (value: string) => void;\n isLeafSelected: (value: string) => boolean;\n subMenuClassName?: string;\n};\n\nconst DropdownSubmenuItem = ({\n item,\n size = \"md\",\n subMenuClassName,\n onLeafClick,\n isLeafSelected,\n}: DropdownSubmenuItemProps) => {\n const parentRef = useRef<HTMLDivElement | null>(null);\n const submenuRef = useRef<HTMLDivElement | null>(null);\n\n const [hoverParent, setHoverParent] = useState(false);\n const [hoverSubmenu, setHoverSubmenu] = useState(false);\n const [hoverSafe, setHoverSafe] = useState(false);\n\n const open = hoverParent || hoverSubmenu || hoverSafe;\n\n return (\n <div\n ref={parentRef}\n className={classNames(\"relative\", subMenuClassName)}\n onMouseEnter={() => setHoverParent(true)}\n onMouseLeave={() => setHoverParent(false)}\n >\n <button\n type=\"button\"\n className={classNames(\n \"hover:bg-border-light/50 relative h-max group/item disabled:opacity-40 flex items-center justify-between gap-x-2.5 w-full outline-none transition-colors duration-100 ease-crisp\",\n size === \"lg\" && \"py-4 pl-3 pr-3 text-base\",\n size === \"md\" && \"py-3 pl-2.5 pr-3 text-sm\",\n size === \"sm\" && \"py-2 pl-2.5 pr-3 !h-[36px] text-sm\",\n open && \"bg-border-light/50\",\n )}\n disabled={item.disabled}\n >\n <span className=\"flex items-center gap-x-2.5\">\n {item.icon && (\n <>\n {isValidElement(item.icon) ? (\n item.icon\n ) : (\n <Icon\n name={(item.icon as IconProps).name}\n className={classNames(\n \"flex-shrink-0\",\n (item.icon as IconProps).className,\n )}\n size={(item.icon as IconProps).size || 18}\n />\n )}\n </>\n )}\n <span className=\"text-shade-primary font-medium leading-[100%]\">\n {item.label}\n </span>\n </span>\n <Icon name=\"ChevronRight\" size={12} className=\"text-shade-tertiary\" />\n </button>\n\n {open && (\n <div\n ref={submenuRef}\n onMouseEnter={() => setHoverSubmenu(true)}\n onMouseLeave={() => setHoverSubmenu(false)}\n className={classNames(\n \"z-[60] !absolute top-0 left-[calc(100%+6px)] p-1 bg-card-foreground gradient-border before:bg-card-border min-w-[180px]\",\n )}\n >\n <MouseSafeArea\n parentRef={parentRef}\n submenuRef={submenuRef}\n onEnter={() => setHoverSafe(true)}\n onLeave={() => setHoverSafe(false)}\n />\n <div className=\"flex flex-col gap-y-1\">\n {(item.children || []).map((child) =>\n child.children && child.children.length > 0 ? (\n <DropdownSubmenuItem\n key={child.value}\n item={child}\n size={size}\n onLeafClick={onLeafClick}\n isLeafSelected={isLeafSelected}\n />\n ) : (\n <DropdownItem\n key={child.value}\n label={child.label}\n icon={child.icon}\n onClick={() => onLeafClick(child.value)}\n disabled={child.disabled}\n isSelected={isLeafSelected(child.value)}\n size={size}\n />\n ),\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Dropdown.mjs","names":["out: DropdownOption[]","buttonIcon: ButtonProps[\"icon\"] | undefined","buttonLabel: string"],"sources":["../src/Dropdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { Button, ButtonProps } from \"./Button\";\nimport { useRef, useState, useEffect, useCallback } from \"react\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport classNames from \"classnames\";\nimport { swift } from \"./utils/easings\";\nimport { Checkbox } from \"./Checkbox\";\nimport { Divider } from \"./Divider\";\nimport { Icon, type IconProps } from \"./Icon\";\nimport { useOnClickOutside } from \"usehooks-ts\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { isValidElement, ReactNode } from \"react\";\n\nexport type DropdownOption = {\n label: string;\n icon?: IconProps | ReactNode;\n value: string;\n disabled?: boolean;\n children?: DropdownOption[];\n};\n\nexport type DropdownProps = {\n className?: string;\n items: DropdownOption[];\n selectedItem?: string | string[] | undefined;\n handleChange: (item: string | string[] | undefined) => void;\n multiple?: boolean;\n disabled?: boolean;\n label: string | ((selectedLabel: string) => string);\n multiSelectLabel?: string;\n buttonClassName?: string;\n menuClassName?: string;\n subMenuClassName?: string;\n menuIcon?: IconProps | ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n isScrollable?: boolean;\n animationOrigin?: \"top-left\" | \"top-center\" | \"top-right\";\n search?: string;\n onClearSearch?: () => void;\n showSelectAll?: boolean;\n showClear?: boolean;\n showSelectedItem?: boolean;\n};\n\nexport type DropdownButtonProps = {\n label: string | ((selectedLabel: string) => string);\n multiSelectLabel?: string;\n disabled?: boolean;\n className?: string;\n onClick: () => void;\n buttonClassName?: string;\n selectedItems?: DropdownProps[\"items\"];\n multiple?: boolean;\n count?: number;\n menuIcon?: IconProps | ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n onClear?: () => void;\n showSelectedItem?: boolean;\n showClear?: boolean;\n};\n\nexport type DropdownItemProps = {\n label: string;\n icon?: IconProps | ReactNode;\n onClick: () => void;\n disabled?: boolean;\n isSelected?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n};\n\nexport type DropdownMenuProps = {\n items: DropdownOption[];\n selectedItem?: string | string[] | undefined;\n handleChange: (item: string | string[] | undefined) => void;\n multiple?: boolean;\n menuClassName?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n isOpen: boolean;\n onItemClick?: (value: string) => void;\n isScrollable?: boolean;\n animationOrigin?: \"top-left\" | \"top-center\" | \"top-right\";\n search?: string;\n onClearSearch?: () => void;\n showSelectAll?: boolean;\n showSafeTriangle?: boolean;\n subMenuClassName?: string;\n};\n\n// Track mouse position for SafeArea triangles\nconst useMousePosition = () => {\n const [mousePosition, setMousePosition] = useState<[number, number]>([0, 0]);\n\n const updateMousePosition = useCallback((ev: MouseEvent) => {\n setMousePosition([ev.clientX, ev.clientY]);\n }, []);\n\n useEffect(() => {\n const throttledUpdate = (ev: MouseEvent) => {\n requestAnimationFrame(() => updateMousePosition(ev));\n };\n\n window.addEventListener(\"mousemove\", throttledUpdate);\n return () => window.removeEventListener(\"mousemove\", throttledUpdate);\n }, [updateMousePosition]);\n\n return mousePosition;\n};\n\ntype MouseSafeAreaProps = {\n submenuRef: React.RefObject<HTMLDivElement | null>;\n parentRef: React.RefObject<HTMLDivElement | null>;\n onEnter?: () => void;\n onLeave?: () => void;\n debug?: boolean;\n};\n\n// Component to cover the area between the mouse cursor and the sub-menu, to allow moving cursor to lower parts of sub-menu without the sub-menu disappearing.\nconst MouseSafeArea = ({\n parentRef,\n submenuRef,\n onEnter,\n onLeave,\n debug = false,\n}: MouseSafeAreaProps) => {\n const {\n x = 0,\n y = 0,\n height: h = 0,\n width: w = 0,\n } = submenuRef.current?.getBoundingClientRect() || {};\n const [mouseX, mouseY] = useMousePosition();\n const positions = { x, y, h, w, mouseX, mouseY };\n\n return (\n <div\n style={{\n position: \"absolute\",\n left: getLeft(positions),\n right: getRight(positions),\n top: 0,\n width: getWidth(positions),\n height: h,\n clipPath: getClipPath(positions),\n pointerEvents: \"auto\",\n zIndex: 9999,\n backgroundColor: debug ? \"rgba(0, 179, 179, 0.25)\" : \"transparent\",\n }}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n />\n );\n};\n\ninterface Positions {\n /* Sub-menu x */\n x: number;\n /* Sub-menu y */\n y: number;\n /* Sub-menu height */\n h: number;\n /* Sub-menu width */\n w: number;\n /* Mouse x */\n mouseX: number;\n /* Mouse y */\n mouseY: number;\n}\n\nconst getLeft = ({ x, mouseX }: Positions) =>\n mouseX > x ? undefined : -Math.max(x - mouseX, 10) + \"px\";\nconst getRight = ({ x, w, mouseX }: Positions) =>\n mouseX > x ? -Math.max(mouseX - (x + w), 10) + \"px\" : undefined;\nconst getWidth = ({ x, w, mouseX }: Positions) =>\n mouseX > x\n ? Math.max(mouseX - (x + w), 10) + \"px\"\n : Math.max(x - mouseX, 10) + \"px\";\nconst getClipPath = ({ x, y, h, mouseX, mouseY }: Positions) =>\n mouseX < x\n ? `polygon(100% 0%, 0% ${(100 * (mouseY - y)) / h}%, 100% 100%)`\n : `polygon(0% 0%, 0% 100%, 100% ${(100 * (mouseY - y)) / h}%)`;\n\nexport const DropdownMenu = ({\n items,\n selectedItem,\n handleChange,\n multiple = false,\n menuClassName,\n size = \"md\",\n isOpen,\n onItemClick,\n isScrollable = false,\n animationOrigin = \"top-left\",\n search,\n onClearSearch,\n showSelectAll = true,\n showSafeTriangle = false,\n subMenuClassName,\n}: DropdownMenuProps) => {\n const [isAtBottom, setIsAtBottom] = useState(false);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n // Filter items based on search term\n const filteredItems = (() => {\n // If search is provided, filter based on search\n if (search) {\n return items.filter((item) =>\n item.label.toLowerCase().includes(search.toLowerCase()),\n );\n }\n\n // Default: show all items\n return items;\n })();\n\n // Handle scroll detection\n const handleScroll = useCallback(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const { scrollTop, scrollHeight, clientHeight } = container;\n const threshold = 5; // Small threshold to account for rounding\n const isNearBottom = scrollTop + clientHeight >= scrollHeight - threshold;\n\n setIsAtBottom(isNearBottom);\n }, []);\n\n // Reset scroll state when items change or menu opens\n useEffect(() => {\n if (isOpen) {\n setIsAtBottom(false);\n }\n }, [isOpen, filteredItems.length]);\n\n // Check if content is actually scrollable\n useEffect(() => {\n const container = scrollContainerRef.current;\n if (!container || !isOpen) return;\n\n const { scrollHeight, clientHeight } = container;\n const hasScrollbar = scrollHeight > clientHeight;\n\n // If no scrollbar (content fits), consider it \"at bottom\"\n if (!hasScrollbar) {\n setIsAtBottom(true);\n }\n }, [isOpen, filteredItems.length]);\n\n // Helper to check if an item is selected\n const isItemSelected = (value: string) => {\n if (multiple) {\n return (\n Array.isArray(selectedItem) &&\n selectedItem.length > 0 &&\n selectedItem.includes(value)\n );\n }\n return !!selectedItem && selectedItem === value;\n };\n\n const flattenSelectable = (options: DropdownOption[]): DropdownOption[] => {\n const out: DropdownOption[] = [];\n const walk = (nodes: DropdownOption[]) => {\n nodes.forEach((n) => {\n if (n.children && n.children.length > 0) {\n walk(n.children);\n } else {\n out.push(n);\n }\n });\n };\n walk(options);\n return out;\n };\n\n // Handle item selection\n const handleItemClick = (value: string) => {\n if (multiple) {\n const currentSelection = Array.isArray(selectedItem) ? selectedItem : [];\n\n // If all items are selected, clicking any item should deselect all others\n if (isAllSelected()) {\n handleChange([value]);\n } else if (currentSelection.includes(value)) {\n // Remove from selection\n handleChange(currentSelection.filter((item) => item !== value));\n } else {\n // Add to selection\n handleChange([...currentSelection, value]);\n }\n } else {\n // Single select - if clicking the already selected item, deselect it\n if (selectedItem === value) {\n handleChange(undefined);\n } else {\n // Otherwise, select the new item\n handleChange(value);\n }\n // Call the optional callback for single select\n onItemClick?.(value);\n }\n };\n\n // Handle select all\n const handleSelectAll = () => {\n const currentSelection = Array.isArray(selectedItem) ? selectedItem : [];\n const allValues = flattenSelectable(filteredItems)\n .filter((item) => !item.disabled)\n .map((item) => item.value);\n\n if (currentSelection.length === allValues.length) {\n // Deselect all\n handleChange([]);\n } else {\n // Select all\n handleChange(allValues);\n }\n };\n\n // Check if all items are selected\n const isAllSelected = () => {\n if (!Array.isArray(selectedItem) || selectedItem.length === 0) return false;\n const selectableItems = flattenSelectable(filteredItems).filter(\n (item) => !item.disabled,\n );\n return (\n selectableItems.length > 0 &&\n selectedItem.length === selectableItems.length &&\n selectableItems.every((item) => selectedItem.includes(item.value))\n );\n };\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n initial={{ opacity: 0, scale: 0.8, y: -15 }}\n animate={{ opacity: 1, scale: 1, y: 0 }}\n transition={{ duration: 0.1, ease: swift }}\n exit={{ opacity: 0, scale: 0.8, y: -5 }}\n className={classNames(\n \"z-50 absolute top-[calc(100%+6px)] p-1 bg-card-foreground border border-border-light\",\n (size === \"lg\" || size === \"md\") && \"min-w-[200px]\",\n animationOrigin === \"top-left\" && \"origin-top-left\",\n animationOrigin === \"top-center\" && \"origin-top-center\",\n animationOrigin === \"top-right\" && \"origin-top-right\",\n menuClassName,\n )}\n >\n <div\n ref={scrollContainerRef}\n onScroll={handleScroll}\n className={classNames(\n \"flex flex-col gap-y-1\",\n isScrollable && [\n \"max-h-[250px] overflow-y-auto\",\n !isAtBottom &&\n \"[mask-image:linear-gradient(180deg,black,black_85%,transparent_100%)]\",\n ],\n )}\n >\n {multiple && showSelectAll && (\n <div className=\"group flex flex-col gap-y-1\">\n <button\n onClick={handleSelectAll}\n className={classNames(\n \"py-3 pl-2.5 pr-3 flex items-center gap-x-2.5 outline-none bg-transparent transition-colors duration-100 ease-crisp hover:bg-border-light/50\",\n )}\n >\n <Checkbox checked={isAllSelected()} />\n <span className=\"text-sm text-shade-primary font-medium\">\n Select All\n </span>\n </button>\n <Divider direction=\"horizontal\" />\n </div>\n )}\n {filteredItems.length > 0 ? (\n filteredItems.map((item) =>\n item.children && item.children.length > 0 ? (\n <DropdownSubmenuItem\n key={item.value}\n item={item}\n size={size}\n onLeafClick={handleItemClick}\n isLeafSelected={isItemSelected}\n />\n ) : (\n <DropdownItem\n key={item.value}\n label={item.label}\n icon={item.icon}\n onClick={() => handleItemClick(item.value)}\n disabled={item.disabled}\n isSelected={isItemSelected(item.value)}\n size={size}\n />\n ),\n )\n ) : (\n <button\n onClick={() => {\n // Clear search by calling the onClearSearch callback\n if (onClearSearch) {\n onClearSearch();\n }\n }}\n className=\"py-3 pl-2.5 pr-3 text-sm font-mono text-shade-tertiary hover:bg-border-light/50 transition-colors duration-100 ease-crisp w-full text-center\"\n >\n No options found\n </button>\n )}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n );\n};\n\nexport const Dropdown = ({\n className,\n items,\n selectedItem,\n handleChange,\n label = \"View All\",\n multiSelectLabel,\n disabled,\n buttonClassName,\n menuClassName,\n multiple = false,\n menuIcon,\n size = \"md\",\n isScrollable = false,\n search,\n onClearSearch,\n showSelectAll,\n showClear = true,\n subMenuClassName,\n showSelectedItem = true,\n}: DropdownProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n // Handle item selection for single select (closes menu)\n const handleItemClick = (value: string) => {\n if (!multiple) {\n // Single select - if clicking the already selected item, deselect it\n if (selectedItem === value) {\n handleChange(undefined);\n } else {\n // Otherwise, select the new item\n handleChange(value);\n }\n setIsOpen(false);\n }\n };\n\n const ref = useRef<HTMLDivElement>(null);\n\n const handleClickOutside = () => {\n setIsOpen(false);\n };\n\n // Cast ref to RefObject<HTMLElement> to satisfy useOnClickOutside's expected type\n useOnClickOutside(ref as React.RefObject<HTMLElement>, handleClickOutside);\n\n // Get selected items for display in button\n const getSelectedItems = () => {\n const flatten = (options: DropdownOption[]): DropdownOption[] => {\n const out: DropdownOption[] = [];\n const walk = (nodes: DropdownOption[]) => {\n nodes.forEach((n) => {\n if (n.children && n.children.length > 0) {\n walk(n.children);\n } else {\n out.push(n);\n }\n });\n };\n walk(options);\n return out;\n };\n\n const leaves = flatten(items);\n if (multiple) {\n const selectedValues = Array.isArray(selectedItem) ? selectedItem : [];\n return leaves.filter((item) => selectedValues.includes(item.value));\n }\n const selected = leaves.find((item) => item.value === selectedItem);\n return selected ? [selected] : [];\n };\n\n return (\n <div\n ref={ref}\n className={classNames(\n \"relative flex flex-col gap-y-1.5 items-start\",\n className,\n )}\n >\n <DropdownButton\n label={label}\n multiSelectLabel={multiSelectLabel}\n disabled={disabled}\n className={buttonClassName}\n onClick={() => setIsOpen(!isOpen)}\n selectedItems={getSelectedItems()}\n multiple={multiple}\n count={getSelectedItems().length}\n menuIcon={menuIcon}\n size={size}\n onClear={() => handleChange(multiple ? [] : undefined)}\n showClear={showClear}\n showSelectedItem={showSelectedItem}\n />\n\n <DropdownMenu\n items={items}\n selectedItem={selectedItem}\n handleChange={handleChange}\n multiple={multiple}\n menuClassName={menuClassName}\n size={size}\n isOpen={isOpen}\n onItemClick={handleItemClick}\n isScrollable={isScrollable}\n search={search}\n onClearSearch={onClearSearch}\n showSelectAll={showSelectAll}\n subMenuClassName={subMenuClassName}\n />\n </div>\n );\n};\n\nexport const DropdownButton = ({\n label,\n multiSelectLabel,\n disabled,\n className,\n onClick,\n selectedItems = [],\n multiple = false,\n count = 0,\n menuIcon,\n size,\n onClear,\n showClear,\n showSelectedItem,\n}: DropdownButtonProps) => {\n const [isHovered, setIsHovered] = useState(false);\n\n // Determine what to display\n const hasSelection = selectedItems.length > 0;\n const isSingleSelection = selectedItems.length === 1;\n const isMultipleSelection = selectedItems.length > 1;\n\n // Compute icon and label based on selection state\n let buttonIcon: ButtonProps[\"icon\"] | undefined;\n let buttonLabel: string;\n\n if (hasSelection && isSingleSelection) {\n // Single selection: show selected item's icon and label\n const selectedItem = selectedItems[0];\n buttonIcon = selectedItem.icon\n ? isValidElement(selectedItem.icon)\n ? selectedItem.icon\n : {\n name: (selectedItem.icon as IconProps).name,\n className: (selectedItem.icon as IconProps).className || \"\",\n size: (selectedItem.icon as IconProps).size || 18,\n }\n : menuIcon;\n // If label is a function, call it with the selected item's label; otherwise use the selected item's label directly\n buttonLabel =\n typeof label === \"function\"\n ? label(selectedItem.label)\n : selectedItem.label;\n } else if (isMultipleSelection && multiple && multiSelectLabel) {\n // Multiple selections: show count and multiSelectLabel\n\n buttonIcon = menuIcon\n ? isValidElement(menuIcon)\n ? menuIcon\n : {\n name: (menuIcon as IconProps).name,\n className: (menuIcon as IconProps).className || \"\",\n size: (menuIcon as IconProps).size || 18,\n }\n : undefined;\n buttonLabel = `${count} ${multiSelectLabel}`;\n } else {\n // Default: no selection - use label as string\n buttonIcon = menuIcon;\n buttonLabel = typeof label === \"function\" ? label(\"\") : label;\n }\n\n return (\n <Button\n icon={buttonIcon}\n label={showSelectedItem ? buttonLabel : undefined}\n disabled={disabled}\n size={size}\n variant=\"secondary\"\n className={classNames(\n \"!origin-bottom-left !justify-start w-full\",\n (size === \"md\" || size === \"lg\") && \"!pr-[18px] !pl-[12px]\",\n size === \"sm\" && \"!pr-4 !pl-3\",\n showClear && \"!pr-[48px]\",\n className,\n )}\n useDecryptAnimation={false}\n useHoverEffect={false}\n crosshairProps={{\n variant: \"corners\",\n corners: [\"bottom-right\"],\n spacingX: !isHovered ? -6 : -4,\n spacingY: !isHovered ? -6 : -4,\n animationDuration: 0.5,\n animationDelay: 0,\n className: \"text-shade-mute group-hover:text-shade-primary\",\n }}\n onClick={onClick}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n children={\n hasSelection &&\n showClear && (\n <div\n className=\"order-last top-1/2 -translate-y-1/2 right-2 absolute h-[24px] w-[24px] flex items-center justify-center hover:bg-background/40 transition duration-100 ease-crisp cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n onClear?.();\n }}\n >\n <Icon name=\"Close\" size={12} />\n </div>\n )\n }\n />\n );\n};\n\nexport const DropdownItem = ({\n label,\n icon,\n onClick,\n disabled,\n isSelected = false,\n size,\n}: DropdownItemProps) => {\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={classNames(\n \"hover:bg-border-light/50 relative group/item disabled:opacity-40 flex items-center gap-x-2.5 outline-none transition-colors duration-100 ease-crisp\",\n size === \"lg\" && \"py-4 pl-3 pr-3 text-base\",\n size === \"md\" && \"py-3 pl-2.5 pr-3 text-sm\",\n size === \"sm\" && \"py-2 pl-2.5 pr-3 h-[36px] text-sm\",\n isSelected && \"bg-background/50\",\n )}\n >\n <div className=\"opacity-0 group-hover/item:!opacity-100 absolute inset-0.5\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n className=\"text-shade-mute\"\n animationDelay={0}\n animationDuration={0.5}\n />\n </div>\n\n {icon && (\n <>\n {isValidElement(icon) ? (\n icon\n ) : (\n <Icon\n name={(icon as IconProps).name}\n className={classNames(\n \"flex-shrink-0\",\n (icon as IconProps).className,\n )}\n size={(icon as IconProps).size || 18}\n />\n )}\n </>\n )}\n <span\n className={classNames(\" text-shade-primary font-medium leading-[100%]\")}\n >\n {label}\n </span>\n </button>\n );\n};\n\ntype DropdownSubmenuItemProps = {\n item: DropdownOption;\n size?: \"sm\" | \"md\" | \"lg\";\n onLeafClick: (value: string) => void;\n isLeafSelected: (value: string) => boolean;\n subMenuClassName?: string;\n};\n\nconst DropdownSubmenuItem = ({\n item,\n size = \"md\",\n subMenuClassName,\n onLeafClick,\n isLeafSelected,\n}: DropdownSubmenuItemProps) => {\n const parentRef = useRef<HTMLDivElement | null>(null);\n const submenuRef = useRef<HTMLDivElement | null>(null);\n\n const [hoverParent, setHoverParent] = useState(false);\n const [hoverSubmenu, setHoverSubmenu] = useState(false);\n const [hoverSafe, setHoverSafe] = useState(false);\n\n const open = hoverParent || hoverSubmenu || hoverSafe;\n\n return (\n <div\n ref={parentRef}\n className={classNames(\"relative\", subMenuClassName)}\n onMouseEnter={() => setHoverParent(true)}\n onMouseLeave={() => setHoverParent(false)}\n >\n <button\n type=\"button\"\n className={classNames(\n \"hover:bg-border-light/50 relative h-max group/item disabled:opacity-40 flex items-center justify-between gap-x-2.5 w-full outline-none transition-colors duration-100 ease-crisp\",\n size === \"lg\" && \"py-4 pl-3 pr-3 text-base\",\n size === \"md\" && \"py-3 pl-2.5 pr-3 text-sm\",\n size === \"sm\" && \"py-2 pl-2.5 pr-3 !h-[36px] text-sm\",\n open && \"bg-border-light/50\",\n )}\n disabled={item.disabled}\n >\n <span className=\"flex items-center gap-x-2.5\">\n {item.icon && (\n <>\n {isValidElement(item.icon) ? (\n item.icon\n ) : (\n <Icon\n name={(item.icon as IconProps).name}\n className={classNames(\n \"flex-shrink-0\",\n (item.icon as IconProps).className,\n )}\n size={(item.icon as IconProps).size || 18}\n />\n )}\n </>\n )}\n <span className=\"text-shade-primary font-medium leading-[100%]\">\n {item.label}\n </span>\n </span>\n <Icon name=\"ChevronRight\" size={12} className=\"text-shade-tertiary\" />\n </button>\n\n {open && (\n <div\n ref={submenuRef}\n onMouseEnter={() => setHoverSubmenu(true)}\n onMouseLeave={() => setHoverSubmenu(false)}\n className={classNames(\n \"z-[60] !absolute top-0 left-[calc(100%+6px)] p-1 bg-card-foreground gradient-border before:bg-card-border min-w-[180px]\",\n )}\n >\n <MouseSafeArea\n parentRef={parentRef}\n submenuRef={submenuRef}\n onEnter={() => setHoverSafe(true)}\n onLeave={() => setHoverSafe(false)}\n />\n <div className=\"flex flex-col gap-y-1\">\n {(item.children || []).map((child) =>\n child.children && child.children.length > 0 ? (\n <DropdownSubmenuItem\n key={child.value}\n item={child}\n size={size}\n onLeafClick={onLeafClick}\n isLeafSelected={isLeafSelected}\n />\n ) : (\n <DropdownItem\n key={child.value}\n label={child.label}\n icon={child.icon}\n onClick={() => onLeafClick(child.value)}\n disabled={child.disabled}\n isSelected={isLeafSelected(child.value)}\n size={size}\n />\n ),\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AA0FA,MAAM,yBAAyB;CAC7B,MAAM,CAAC,eAAe,oBAAoB,SAA2B,CAAC,GAAG,EAAE,CAAC;CAE5E,MAAM,sBAAsB,aAAa,OAAmB;AAC1D,mBAAiB,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,EAAE,CAAC;AAEN,iBAAgB;EACd,MAAM,mBAAmB,OAAmB;AAC1C,+BAA4B,oBAAoB,GAAG,CAAC;;AAGtD,SAAO,iBAAiB,aAAa,gBAAgB;AACrD,eAAa,OAAO,oBAAoB,aAAa,gBAAgB;IACpE,CAAC,oBAAoB,CAAC;AAEzB,QAAO;;AAYT,MAAM,iBAAiB,EACrB,WACA,YACA,SACA,SACA,QAAQ,YACgB;CACxB,MAAM,EACJ,IAAI,GACJ,IAAI,GACJ,QAAQ,IAAI,GACZ,OAAO,IAAI,MACT,WAAW,SAAS,uBAAuB,IAAI,EAAE;CACrD,MAAM,CAAC,QAAQ,UAAU,kBAAkB;CAC3C,MAAM,YAAY;EAAE;EAAG;EAAG;EAAG;EAAG;EAAQ;EAAQ;AAEhD,QACE,oBAAC;EACC,OAAO;GACL,UAAU;GACV,MAAM,QAAQ,UAAU;GACxB,OAAO,SAAS,UAAU;GAC1B,KAAK;GACL,OAAO,SAAS,UAAU;GAC1B,QAAQ;GACR,UAAU,YAAY,UAAU;GAChC,eAAe;GACf,QAAQ;GACR,iBAAiB,QAAQ,4BAA4B;GACtD;EACD,cAAc;EACd,cAAc;GACd;;AAmBN,MAAM,WAAW,EAAE,GAAG,aACpB,SAAS,IAAI,SAAY,CAAC,KAAK,IAAI,IAAI,QAAQ,GAAG,GAAG;AACvD,MAAM,YAAY,EAAE,GAAG,GAAG,aACxB,SAAS,IAAI,CAAC,KAAK,IAAI,UAAU,IAAI,IAAI,GAAG,GAAG,OAAO;AACxD,MAAM,YAAY,EAAE,GAAG,GAAG,aACxB,SAAS,IACL,KAAK,IAAI,UAAU,IAAI,IAAI,GAAG,GAAG,OACjC,KAAK,IAAI,IAAI,QAAQ,GAAG,GAAG;AACjC,MAAM,eAAe,EAAE,GAAG,GAAG,GAAG,QAAQ,aACtC,SAAS,IACL,uBAAwB,OAAO,SAAS,KAAM,EAAE,iBAChD,gCAAiC,OAAO,SAAS,KAAM,EAAE;AAE/D,MAAa,gBAAgB,EAC3B,OACA,cACA,cACA,WAAW,OACX,eACA,OAAO,MACP,QACA,aACA,eAAe,OACf,kBAAkB,YAClB,QACA,eACA,gBAAgB,MAChB,mBAAmB,OACnB,uBACuB;CACvB,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CACnD,MAAM,qBAAqB,OAAuB,KAAK;CAGvD,MAAM,uBAAuB;AAE3B,MAAI,OACF,QAAO,MAAM,QAAQ,SACnB,KAAK,MAAM,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,CACxD;AAIH,SAAO;KACL;CAGJ,MAAM,eAAe,kBAAkB;EACrC,MAAM,YAAY,mBAAmB;AACrC,MAAI,CAAC,UAAW;EAEhB,MAAM,EAAE,WAAW,cAAc,iBAAiB;AAIlD,gBAFqB,YAAY,gBAAgB,eAD/B,EAGS;IAC1B,EAAE,CAAC;AAGN,iBAAgB;AACd,MAAI,OACF,eAAc,MAAM;IAErB,CAAC,QAAQ,cAAc,OAAO,CAAC;AAGlC,iBAAgB;EACd,MAAM,YAAY,mBAAmB;AACrC,MAAI,CAAC,aAAa,CAAC,OAAQ;EAE3B,MAAM,EAAE,cAAc,iBAAiB;AAIvC,MAAI,EAHiB,eAAe,cAIlC,eAAc,KAAK;IAEpB,CAAC,QAAQ,cAAc,OAAO,CAAC;CAGlC,MAAM,kBAAkB,UAAkB;AACxC,MAAI,SACF,QACE,MAAM,QAAQ,aAAa,IAC3B,aAAa,SAAS,KACtB,aAAa,SAAS,MAAM;AAGhC,SAAO,CAAC,CAAC,gBAAgB,iBAAiB;;CAG5C,MAAM,qBAAqB,YAAgD;EACzE,MAAMA,MAAwB,EAAE;EAChC,MAAM,QAAQ,UAA4B;AACxC,SAAM,SAAS,MAAM;AACnB,QAAI,EAAE,YAAY,EAAE,SAAS,SAAS,EACpC,MAAK,EAAE,SAAS;QAEhB,KAAI,KAAK,EAAE;KAEb;;AAEJ,OAAK,QAAQ;AACb,SAAO;;CAIT,MAAM,mBAAmB,UAAkB;AACzC,MAAI,UAAU;GACZ,MAAM,mBAAmB,MAAM,QAAQ,aAAa,GAAG,eAAe,EAAE;AAGxE,OAAI,eAAe,CACjB,cAAa,CAAC,MAAM,CAAC;YACZ,iBAAiB,SAAS,MAAM,CAEzC,cAAa,iBAAiB,QAAQ,SAAS,SAAS,MAAM,CAAC;OAG/D,cAAa,CAAC,GAAG,kBAAkB,MAAM,CAAC;SAEvC;AAEL,OAAI,iBAAiB,MACnB,cAAa,OAAU;OAGvB,cAAa,MAAM;AAGrB,iBAAc,MAAM;;;CAKxB,MAAM,wBAAwB;EAC5B,MAAM,mBAAmB,MAAM,QAAQ,aAAa,GAAG,eAAe,EAAE;EACxE,MAAM,YAAY,kBAAkB,cAAc,CAC/C,QAAQ,SAAS,CAAC,KAAK,SAAS,CAChC,KAAK,SAAS,KAAK,MAAM;AAE5B,MAAI,iBAAiB,WAAW,UAAU,OAExC,cAAa,EAAE,CAAC;MAGhB,cAAa,UAAU;;CAK3B,MAAM,sBAAsB;AAC1B,MAAI,CAAC,MAAM,QAAQ,aAAa,IAAI,aAAa,WAAW,EAAG,QAAO;EACtE,MAAM,kBAAkB,kBAAkB,cAAc,CAAC,QACtD,SAAS,CAAC,KAAK,SACjB;AACD,SACE,gBAAgB,SAAS,KACzB,aAAa,WAAW,gBAAgB,UACxC,gBAAgB,OAAO,SAAS,aAAa,SAAS,KAAK,MAAM,CAAC;;AAItE,QACE,oBAAC,6BACE,UACC,oBAAC,OAAO;EACN,SAAS;GAAE,SAAS;GAAG,OAAO;GAAK,GAAG;GAAK;EAC3C,SAAS;GAAE,SAAS;GAAG,OAAO;GAAG,GAAG;GAAG;EACvC,YAAY;GAAE,UAAU;GAAK,MAAM;GAAO;EAC1C,MAAM;GAAE,SAAS;GAAG,OAAO;GAAK,GAAG;GAAI;EACvC,WAAW,WACT,yFACC,SAAS,QAAQ,SAAS,SAAS,iBACpC,oBAAoB,cAAc,mBAClC,oBAAoB,gBAAgB,qBACpC,oBAAoB,eAAe,oBACnC,cACD;YAED,qBAAC;GACC,KAAK;GACL,UAAU;GACV,WAAW,WACT,yBACA,gBAAgB,CACd,iCACA,CAAC,cACC,wEACH,CACF;cAEA,YAAY,iBACX,qBAAC;IAAI,WAAU;eACb,qBAAC;KACC,SAAS;KACT,WAAW,WACT,8IACD;gBAED,oBAAC,YAAS,SAAS,eAAe,GAAI,EACtC,oBAAC;MAAK,WAAU;gBAAyC;OAElD;MACA,EACT,oBAAC,WAAQ,WAAU,eAAe;KAC9B,EAEP,cAAc,SAAS,IACtB,cAAc,KAAK,SACjB,KAAK,YAAY,KAAK,SAAS,SAAS,IACtC,oBAAC;IAEO;IACA;IACN,aAAa;IACb,gBAAgB;MAJX,KAAK,MAKV,GAEF,oBAAC;IAEC,OAAO,KAAK;IACZ,MAAM,KAAK;IACX,eAAe,gBAAgB,KAAK,MAAM;IAC1C,UAAU,KAAK;IACf,YAAY,eAAe,KAAK,MAAM;IAChC;MAND,KAAK,MAOV,CAEL,GAED,oBAAC;IACC,eAAe;AAEb,SAAI,cACF,gBAAe;;IAGnB,WAAU;cACX;KAEQ;IAEP;GACK,GAEC;;AAItB,MAAa,YAAY,EACvB,WACA,OACA,cACA,cACA,QAAQ,YACR,kBACA,UACA,iBACA,eACA,WAAW,OACX,UACA,OAAO,MACP,eAAe,OACf,QACA,eACA,eACA,YAAY,MACZ,kBACA,mBAAmB,WACA;CACnB,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAG3C,MAAM,mBAAmB,UAAkB;AACzC,MAAI,CAAC,UAAU;AAEb,OAAI,iBAAiB,MACnB,cAAa,OAAU;OAGvB,cAAa,MAAM;AAErB,aAAU,MAAM;;;CAIpB,MAAM,MAAM,OAAuB,KAAK;CAExC,MAAM,2BAA2B;AAC/B,YAAU,MAAM;;AAIlB,mBAAkB,KAAqC,mBAAmB;CAG1E,MAAM,yBAAyB;EAC7B,MAAM,WAAW,YAAgD;GAC/D,MAAMA,MAAwB,EAAE;GAChC,MAAM,QAAQ,UAA4B;AACxC,UAAM,SAAS,MAAM;AACnB,SAAI,EAAE,YAAY,EAAE,SAAS,SAAS,EACpC,MAAK,EAAE,SAAS;SAEhB,KAAI,KAAK,EAAE;MAEb;;AAEJ,QAAK,QAAQ;AACb,UAAO;;EAGT,MAAM,SAAS,QAAQ,MAAM;AAC7B,MAAI,UAAU;GACZ,MAAM,iBAAiB,MAAM,QAAQ,aAAa,GAAG,eAAe,EAAE;AACtE,UAAO,OAAO,QAAQ,SAAS,eAAe,SAAS,KAAK,MAAM,CAAC;;EAErE,MAAM,WAAW,OAAO,MAAM,SAAS,KAAK,UAAU,aAAa;AACnE,SAAO,WAAW,CAAC,SAAS,GAAG,EAAE;;AAGnC,QACE,qBAAC;EACM;EACL,WAAW,WACT,gDACA,UACD;aAED,oBAAC;GACQ;GACW;GACR;GACV,WAAW;GACX,eAAe,UAAU,CAAC,OAAO;GACjC,eAAe,kBAAkB;GACvB;GACV,OAAO,kBAAkB,CAAC;GAChB;GACJ;GACN,eAAe,aAAa,WAAW,EAAE,GAAG,OAAU;GAC3C;GACO;IAClB,EAEF,oBAAC;GACQ;GACO;GACA;GACJ;GACK;GACT;GACE;GACR,aAAa;GACC;GACN;GACO;GACA;GACG;IAClB;GACE;;AAIV,MAAa,kBAAkB,EAC7B,OACA,kBACA,UACA,WACA,SACA,gBAAgB,EAAE,EAClB,WAAW,OACX,QAAQ,GACR,UACA,MACA,SACA,WACA,uBACyB;CACzB,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CAGjD,MAAM,eAAe,cAAc,SAAS;CAC5C,MAAM,oBAAoB,cAAc,WAAW;CACnD,MAAM,sBAAsB,cAAc,SAAS;CAGnD,IAAIC;CACJ,IAAIC;AAEJ,KAAI,gBAAgB,mBAAmB;EAErC,MAAM,eAAe,cAAc;AACnC,eAAa,aAAa,OACtB,eAAe,aAAa,KAAK,GAC/B,aAAa,OACb;GACE,MAAO,aAAa,KAAmB;GACvC,WAAY,aAAa,KAAmB,aAAa;GACzD,MAAO,aAAa,KAAmB,QAAQ;GAChD,GACH;AAEJ,gBACE,OAAO,UAAU,aACb,MAAM,aAAa,MAAM,GACzB,aAAa;YACV,uBAAuB,YAAY,kBAAkB;AAG9D,eAAa,WACT,eAAe,SAAS,GACtB,WACA;GACE,MAAO,SAAuB;GAC9B,WAAY,SAAuB,aAAa;GAChD,MAAO,SAAuB,QAAQ;GACvC,GACH;AACJ,gBAAc,GAAG,MAAM,GAAG;QACrB;AAEL,eAAa;AACb,gBAAc,OAAO,UAAU,aAAa,MAAM,GAAG,GAAG;;AAG1D,QACE,oBAAC;EACC,MAAM;EACN,OAAO,mBAAmB,cAAc;EAC9B;EACJ;EACN,SAAQ;EACR,WAAW,WACT,8CACC,SAAS,QAAQ,SAAS,SAAS,yBACpC,SAAS,QAAQ,eACjB,aAAa,cACb,UACD;EACD,qBAAqB;EACrB,gBAAgB;EAChB,gBAAgB;GACd,SAAS;GACT,SAAS,CAAC,eAAe;GACzB,UAAU,CAAC,YAAY,KAAK;GAC5B,UAAU,CAAC,YAAY,KAAK;GAC5B,mBAAmB;GACnB,gBAAgB;GAChB,WAAW;GACZ;EACQ;EACT,oBAAoB,aAAa,KAAK;EACtC,oBAAoB,aAAa,MAAM;EACvC,UACE,gBACA,aACE,oBAAC;GACC,WAAU;GACV,UAAU,MAAM;AACd,MAAE,iBAAiB;AACnB,eAAW;;aAGb,oBAAC;IAAK,MAAK;IAAQ,MAAM;KAAM;IAC3B;GAGV;;AAIN,MAAa,gBAAgB,EAC3B,OACA,MACA,SACA,UACA,aAAa,OACb,WACuB;AACvB,QACE,qBAAC;EACU;EACC;EACV,WAAW,WACT,uJACA,SAAS,QAAQ,4BACjB,SAAS,QAAQ,4BACjB,SAAS,QAAQ,qCACjB,cAAc,mBACf;;GAED,oBAAC;IAAI,WAAU;cACb,oBAAC;KACC,MAAM;KACN,SAAQ;KACR,SAAS,CAAC,eAAe;KACzB,WAAU;KACV,gBAAgB;KAChB,mBAAmB;MACnB;KACE;GAEL,QACC,0CACG,eAAe,KAAK,GACnB,OAEA,oBAAC;IACC,MAAO,KAAmB;IAC1B,WAAW,WACT,iBACC,KAAmB,UACrB;IACD,MAAO,KAAmB,QAAQ;KAClC,GAEH;GAEL,oBAAC;IACC,WAAW,WAAW,iDAAiD;cAEtE;KACI;;GACA;;AAYb,MAAM,uBAAuB,EAC3B,MACA,OAAO,MACP,kBACA,aACA,qBAC8B;CAC9B,MAAM,YAAY,OAA8B,KAAK;CACrD,MAAM,aAAa,OAA8B,KAAK;CAEtD,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CACrD,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CACvD,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CAEjD,MAAM,OAAO,eAAe,gBAAgB;AAE5C,QACE,qBAAC;EACC,KAAK;EACL,WAAW,WAAW,YAAY,iBAAiB;EACnD,oBAAoB,eAAe,KAAK;EACxC,oBAAoB,eAAe,MAAM;aAEzC,qBAAC;GACC,MAAK;GACL,WAAW,WACT,oLACA,SAAS,QAAQ,4BACjB,SAAS,QAAQ,4BACjB,SAAS,QAAQ,sCACjB,QAAQ,qBACT;GACD,UAAU,KAAK;cAEf,qBAAC;IAAK,WAAU;eACb,KAAK,QACJ,0CACG,eAAe,KAAK,KAAK,GACxB,KAAK,OAEL,oBAAC;KACC,MAAO,KAAK,KAAmB;KAC/B,WAAW,WACT,iBACC,KAAK,KAAmB,UAC1B;KACD,MAAO,KAAK,KAAmB,QAAQ;MACvC,GAEH,EAEL,oBAAC;KAAK,WAAU;eACb,KAAK;MACD;KACF,EACP,oBAAC;IAAK,MAAK;IAAe,MAAM;IAAI,WAAU;KAAwB;IAC/D,EAER,QACC,qBAAC;GACC,KAAK;GACL,oBAAoB,gBAAgB,KAAK;GACzC,oBAAoB,gBAAgB,MAAM;GAC1C,WAAW,WACT,0HACD;cAED,oBAAC;IACY;IACC;IACZ,eAAe,aAAa,KAAK;IACjC,eAAe,aAAa,MAAM;KAClC,EACF,oBAAC;IAAI,WAAU;eACX,KAAK,YAAY,EAAE,EAAE,KAAK,UAC1B,MAAM,YAAY,MAAM,SAAS,SAAS,IACxC,oBAAC;KAEC,MAAM;KACA;KACO;KACG;OAJX,MAAM,MAKX,GAEF,oBAAC;KAEC,OAAO,MAAM;KACb,MAAM,MAAM;KACZ,eAAe,YAAY,MAAM,MAAM;KACvC,UAAU,MAAM;KAChB,YAAY,eAAe,MAAM,MAAM;KACjC;OAND,MAAM,MAOX,CAEL;KACG;IACF;GAEJ"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
4
|
+
const require_utils_easings = require('./utils/easings.cjs');
|
|
5
|
+
let motion_react = require("motion/react");
|
|
6
|
+
let classnames = require("classnames");
|
|
7
|
+
classnames = require_rolldown_runtime.__toESM(classnames);
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
|
|
10
|
+
//#region src/GridLines.tsx
|
|
11
|
+
const GridLines = ({ gap = 8, animateLines = false, lines = [
|
|
12
|
+
"top",
|
|
13
|
+
"bottom",
|
|
14
|
+
"left",
|
|
15
|
+
"right"
|
|
16
|
+
], className }) => {
|
|
17
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
18
|
+
className: (0, classnames.default)("absolute", className),
|
|
19
|
+
style: { inset: `${-gap}px` },
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.motion.div, {
|
|
22
|
+
initial: { clipPath: animateLines ? "inset(0 0 100% 0)" : "inset(0 0 0 0)" },
|
|
23
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
24
|
+
transition: {
|
|
25
|
+
duration: .25,
|
|
26
|
+
ease: require_utils_easings.glide
|
|
27
|
+
},
|
|
28
|
+
className: (0, classnames.default)(!lines.includes("left") && "hidden", "absolute w-px bg-border-light left-0 top-1/2 -translate-y-1/2"),
|
|
29
|
+
style: {
|
|
30
|
+
minHeight: "100dvh",
|
|
31
|
+
height: "100%"
|
|
32
|
+
}
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.motion.div, {
|
|
35
|
+
initial: { clipPath: animateLines ? "inset(100% 0 0 0)" : "inset(0 0 0 0)" },
|
|
36
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
37
|
+
transition: {
|
|
38
|
+
duration: .25,
|
|
39
|
+
ease: require_utils_easings.glide,
|
|
40
|
+
delay: .05
|
|
41
|
+
},
|
|
42
|
+
className: (0, classnames.default)(!lines.includes("right") && "hidden", "absolute w-px bg-border-light right-0 top-1/2 -translate-y-1/2"),
|
|
43
|
+
style: {
|
|
44
|
+
minHeight: "100dvh",
|
|
45
|
+
height: "100%"
|
|
46
|
+
}
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.motion.div, {
|
|
49
|
+
initial: { clipPath: animateLines ? "inset(0 100% 0 0)" : "inset(0 0 0 0)" },
|
|
50
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
51
|
+
transition: {
|
|
52
|
+
duration: .25,
|
|
53
|
+
ease: require_utils_easings.glide,
|
|
54
|
+
delay: .1
|
|
55
|
+
},
|
|
56
|
+
className: (0, classnames.default)(!lines.includes("top") && "hidden", "absolute h-px bg-border-light top-0 left-1/2 -translate-x-1/2"),
|
|
57
|
+
style: {
|
|
58
|
+
minWidth: "100dvw",
|
|
59
|
+
width: "100%"
|
|
60
|
+
}
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.motion.div, {
|
|
63
|
+
initial: { clipPath: animateLines ? "inset(0 0 0 100%)" : "inset(0 0 0 0)" },
|
|
64
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
65
|
+
transition: {
|
|
66
|
+
duration: .25,
|
|
67
|
+
ease: require_utils_easings.glide,
|
|
68
|
+
delay: .15
|
|
69
|
+
},
|
|
70
|
+
className: (0, classnames.default)(!lines.includes("bottom") && "hidden", "absolute h-px bg-border-light bottom-0 left-1/2 -translate-x-1/2"),
|
|
71
|
+
style: {
|
|
72
|
+
minWidth: "100dvw",
|
|
73
|
+
width: "100%"
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
//#endregion
|
|
81
|
+
exports.GridLines = GridLines;
|
|
82
|
+
//# sourceMappingURL=GridLines.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridLines.cjs","names":["motion","glide"],"sources":["../src/GridLines.tsx"],"sourcesContent":["\"use client\";\n\nimport { motion } from \"motion/react\";\nimport { glide } from \"./utils/easings\";\nimport classNames from \"classnames\";\n\nexport type GridLinesProps = {\n className?: string;\n animateLines?: boolean;\n gap?: number;\n lines?: (\"top\" | \"bottom\" | \"left\" | \"right\")[];\n};\n\nexport const GridLines = ({\n gap = 8,\n animateLines = false,\n lines = [\"top\", \"bottom\", \"left\", \"right\"],\n className,\n}: GridLinesProps) => {\n return (\n <div\n className={classNames(\"absolute\", className)}\n style={{ inset: `${-gap}px` }}\n >\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(0 0 100% 0)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide }}\n className={classNames(\n !lines.includes(\"left\") && \"hidden\",\n \"absolute w-px bg-border-light left-0 top-1/2 -translate-y-1/2\"\n )}\n style={{ minHeight: \"100dvh\", height: \"100%\" }}\n />\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(100% 0 0 0)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide, delay: 0.05 }}\n className={classNames(\n !lines.includes(\"right\") && \"hidden\",\n \"absolute w-px bg-border-light right-0 top-1/2 -translate-y-1/2\"\n )}\n style={{ minHeight: \"100dvh\", height: \"100%\" }}\n />\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(0 100% 0 0)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide, delay: 0.1 }}\n className={classNames(\n !lines.includes(\"top\") && \"hidden\",\n \"absolute h-px bg-border-light top-0 left-1/2 -translate-x-1/2\"\n )}\n style={{ minWidth: \"100dvw\", width: \"100%\" }}\n />\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(0 0 0 100%)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide, delay: 0.15 }}\n className={classNames(\n !lines.includes(\"bottom\") && \"hidden\",\n \"absolute h-px bg-border-light bottom-0 left-1/2 -translate-x-1/2\"\n )}\n style={{ minWidth: \"100dvw\", width: \"100%\" }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;AAaA,MAAa,aAAa,EACxB,MAAM,GACN,eAAe,OACf,QAAQ;CAAC;CAAO;CAAU;CAAQ;CAAQ,EAC1C,gBACoB;AACpB,QACE,4CAAC;EACC,mCAAsB,YAAY,UAAU;EAC5C,OAAO,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK;;GAE7B,2CAACA,oBAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAMC;KAAO;IAC3C,mCACE,CAAC,MAAM,SAAS,OAAO,IAAI,UAC3B,gEACD;IACD,OAAO;KAAE,WAAW;KAAU,QAAQ;KAAQ;KAC9C;GACF,2CAACD,oBAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAMC;KAAO,OAAO;KAAM;IACxD,mCACE,CAAC,MAAM,SAAS,QAAQ,IAAI,UAC5B,iEACD;IACD,OAAO;KAAE,WAAW;KAAU,QAAQ;KAAQ;KAC9C;GACF,2CAACD,oBAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAMC;KAAO,OAAO;KAAK;IACvD,mCACE,CAAC,MAAM,SAAS,MAAM,IAAI,UAC1B,gEACD;IACD,OAAO;KAAE,UAAU;KAAU,OAAO;KAAQ;KAC5C;GACF,2CAACD,oBAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAMC;KAAO,OAAO;KAAM;IACxD,mCACE,CAAC,MAAM,SAAS,SAAS,IAAI,UAC7B,mEACD;IACD,OAAO;KAAE,UAAU;KAAU,OAAO;KAAQ;KAC5C;;GACE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as react_jsx_runtime89 from "react/jsx-runtime";
|
|
2
|
+
|
|
3
|
+
//#region src/GridLines.d.ts
|
|
4
|
+
type GridLinesProps = {
|
|
5
|
+
className?: string;
|
|
6
|
+
animateLines?: boolean;
|
|
7
|
+
gap?: number;
|
|
8
|
+
lines?: ("top" | "bottom" | "left" | "right")[];
|
|
9
|
+
};
|
|
10
|
+
declare const GridLines: ({
|
|
11
|
+
gap,
|
|
12
|
+
animateLines,
|
|
13
|
+
lines,
|
|
14
|
+
className
|
|
15
|
+
}: GridLinesProps) => react_jsx_runtime89.JSX.Element;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { GridLines, GridLinesProps };
|
|
18
|
+
//# sourceMappingURL=GridLines.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridLines.d.cts","names":[],"sources":["../src/GridLines.tsx"],"sourcesContent":[],"mappings":";;;KAMY,cAAA;;;EAAA,GAAA,CAAA,EAAA,MAAA;EAOC,KAAA,CAAA,EAAA,CAAA,KA6DZ,GAAA,QAAA,GAAA,MAAA,GAAA,OAAA,CAAA,EAAA;CA7DyB;AAAA,cAAb,SAAa,EAAA,CAAA;EAAA,GAAA;EAAA,YAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAKvB,cALuB,EAAA,GAKT,mBAAA,CAAA,GAAA,CAAA,OALS"}
|
package/dist/GridLines.d.mts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime13 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
|
+
//#region src/GridLines.d.ts
|
|
3
4
|
type GridLinesProps = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
className?: string;
|
|
6
|
+
animateLines?: boolean;
|
|
7
|
+
gap?: number;
|
|
8
|
+
lines?: ("top" | "bottom" | "left" | "right")[];
|
|
8
9
|
};
|
|
9
|
-
declare const GridLines: ({
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
declare const GridLines: ({
|
|
11
|
+
gap,
|
|
12
|
+
animateLines,
|
|
13
|
+
lines,
|
|
14
|
+
className
|
|
15
|
+
}: GridLinesProps) => react_jsx_runtime13.JSX.Element;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { GridLines, GridLinesProps };
|
|
18
|
+
//# sourceMappingURL=GridLines.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridLines.d.mts","names":[],"sources":["../src/GridLines.tsx"],"sourcesContent":[],"mappings":";;;KAMY,cAAA;;;EAAA,GAAA,CAAA,EAAA,MAAA;EAOC,KAAA,CAAA,EAAA,CAAA,KA6DZ,GAAA,QAAA,GAAA,MAAA,GAAA,OAAA,CAAA,EAAA;CA7DyB;AAAA,cAAb,SAAa,EAAA,CAAA;EAAA,GAAA;EAAA,YAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAKvB,cALuB,EAAA,GAKT,mBAAA,CAAA,GAAA,CAAA,OALS"}
|
package/dist/GridLines.mjs
CHANGED
|
@@ -1,85 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
import { motion } from 'motion/react';
|
|
3
|
-
import { glide } from './utils/easings';
|
|
4
|
-
import classNames from 'classnames';
|
|
1
|
+
"use client";
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
);
|
|
3
|
+
import { glide } from "./utils/easings.mjs";
|
|
4
|
+
import { motion } from "motion/react";
|
|
5
|
+
import classNames from "classnames";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/GridLines.tsx
|
|
9
|
+
const GridLines = ({ gap = 8, animateLines = false, lines = [
|
|
10
|
+
"top",
|
|
11
|
+
"bottom",
|
|
12
|
+
"left",
|
|
13
|
+
"right"
|
|
14
|
+
], className }) => {
|
|
15
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
16
|
+
className: classNames("absolute", className),
|
|
17
|
+
style: { inset: `${-gap}px` },
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx(motion.div, {
|
|
20
|
+
initial: { clipPath: animateLines ? "inset(0 0 100% 0)" : "inset(0 0 0 0)" },
|
|
21
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
22
|
+
transition: {
|
|
23
|
+
duration: .25,
|
|
24
|
+
ease: glide
|
|
25
|
+
},
|
|
26
|
+
className: classNames(!lines.includes("left") && "hidden", "absolute w-px bg-border-light left-0 top-1/2 -translate-y-1/2"),
|
|
27
|
+
style: {
|
|
28
|
+
minHeight: "100dvh",
|
|
29
|
+
height: "100%"
|
|
30
|
+
}
|
|
31
|
+
}),
|
|
32
|
+
/* @__PURE__ */ jsx(motion.div, {
|
|
33
|
+
initial: { clipPath: animateLines ? "inset(100% 0 0 0)" : "inset(0 0 0 0)" },
|
|
34
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
35
|
+
transition: {
|
|
36
|
+
duration: .25,
|
|
37
|
+
ease: glide,
|
|
38
|
+
delay: .05
|
|
39
|
+
},
|
|
40
|
+
className: classNames(!lines.includes("right") && "hidden", "absolute w-px bg-border-light right-0 top-1/2 -translate-y-1/2"),
|
|
41
|
+
style: {
|
|
42
|
+
minHeight: "100dvh",
|
|
43
|
+
height: "100%"
|
|
44
|
+
}
|
|
45
|
+
}),
|
|
46
|
+
/* @__PURE__ */ jsx(motion.div, {
|
|
47
|
+
initial: { clipPath: animateLines ? "inset(0 100% 0 0)" : "inset(0 0 0 0)" },
|
|
48
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
49
|
+
transition: {
|
|
50
|
+
duration: .25,
|
|
51
|
+
ease: glide,
|
|
52
|
+
delay: .1
|
|
53
|
+
},
|
|
54
|
+
className: classNames(!lines.includes("top") && "hidden", "absolute h-px bg-border-light top-0 left-1/2 -translate-x-1/2"),
|
|
55
|
+
style: {
|
|
56
|
+
minWidth: "100dvw",
|
|
57
|
+
width: "100%"
|
|
58
|
+
}
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ jsx(motion.div, {
|
|
61
|
+
initial: { clipPath: animateLines ? "inset(0 0 0 100%)" : "inset(0 0 0 0)" },
|
|
62
|
+
animate: { clipPath: "inset(0 0 0 0)" },
|
|
63
|
+
transition: {
|
|
64
|
+
duration: .25,
|
|
65
|
+
ease: glide,
|
|
66
|
+
delay: .15
|
|
67
|
+
},
|
|
68
|
+
className: classNames(!lines.includes("bottom") && "hidden", "absolute h-px bg-border-light bottom-0 left-1/2 -translate-x-1/2"),
|
|
69
|
+
style: {
|
|
70
|
+
minWidth: "100dvw",
|
|
71
|
+
width: "100%"
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
]
|
|
75
|
+
});
|
|
81
76
|
};
|
|
82
77
|
|
|
78
|
+
//#endregion
|
|
83
79
|
export { GridLines };
|
|
84
|
-
//# sourceMappingURL=GridLines.mjs.map
|
|
85
80
|
//# sourceMappingURL=GridLines.mjs.map
|
package/dist/GridLines.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"GridLines.mjs","names":[],"sources":["../src/GridLines.tsx"],"sourcesContent":["\"use client\";\n\nimport { motion } from \"motion/react\";\nimport { glide } from \"./utils/easings\";\nimport classNames from \"classnames\";\n\nexport type GridLinesProps = {\n className?: string;\n animateLines?: boolean;\n gap?: number;\n lines?: (\"top\" | \"bottom\" | \"left\" | \"right\")[];\n};\n\nexport const GridLines = ({\n gap = 8,\n animateLines = false,\n lines = [\"top\", \"bottom\", \"left\", \"right\"],\n className,\n}: GridLinesProps) => {\n return (\n <div\n className={classNames(\"absolute\", className)}\n style={{ inset: `${-gap}px` }}\n >\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(0 0 100% 0)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide }}\n className={classNames(\n !lines.includes(\"left\") && \"hidden\",\n \"absolute w-px bg-border-light left-0 top-1/2 -translate-y-1/2\"\n )}\n style={{ minHeight: \"100dvh\", height: \"100%\" }}\n />\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(100% 0 0 0)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide, delay: 0.05 }}\n className={classNames(\n !lines.includes(\"right\") && \"hidden\",\n \"absolute w-px bg-border-light right-0 top-1/2 -translate-y-1/2\"\n )}\n style={{ minHeight: \"100dvh\", height: \"100%\" }}\n />\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(0 100% 0 0)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide, delay: 0.1 }}\n className={classNames(\n !lines.includes(\"top\") && \"hidden\",\n \"absolute h-px bg-border-light top-0 left-1/2 -translate-x-1/2\"\n )}\n style={{ minWidth: \"100dvw\", width: \"100%\" }}\n />\n <motion.div\n initial={{\n clipPath: animateLines ? \"inset(0 0 0 100%)\" : \"inset(0 0 0 0)\",\n }}\n animate={{ clipPath: \"inset(0 0 0 0)\" }}\n transition={{ duration: 0.25, ease: glide, delay: 0.15 }}\n className={classNames(\n !lines.includes(\"bottom\") && \"hidden\",\n \"absolute h-px bg-border-light bottom-0 left-1/2 -translate-x-1/2\"\n )}\n style={{ minWidth: \"100dvw\", width: \"100%\" }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;;AAaA,MAAa,aAAa,EACxB,MAAM,GACN,eAAe,OACf,QAAQ;CAAC;CAAO;CAAU;CAAQ;CAAQ,EAC1C,gBACoB;AACpB,QACE,qBAAC;EACC,WAAW,WAAW,YAAY,UAAU;EAC5C,OAAO,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK;;GAE7B,oBAAC,OAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAM;KAAO;IAC3C,WAAW,WACT,CAAC,MAAM,SAAS,OAAO,IAAI,UAC3B,gEACD;IACD,OAAO;KAAE,WAAW;KAAU,QAAQ;KAAQ;KAC9C;GACF,oBAAC,OAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAM;KAAO,OAAO;KAAM;IACxD,WAAW,WACT,CAAC,MAAM,SAAS,QAAQ,IAAI,UAC5B,iEACD;IACD,OAAO;KAAE,WAAW;KAAU,QAAQ;KAAQ;KAC9C;GACF,oBAAC,OAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAM;KAAO,OAAO;KAAK;IACvD,WAAW,WACT,CAAC,MAAM,SAAS,MAAM,IAAI,UAC1B,gEACD;IACD,OAAO;KAAE,UAAU;KAAU,OAAO;KAAQ;KAC5C;GACF,oBAAC,OAAO;IACN,SAAS,EACP,UAAU,eAAe,sBAAsB,kBAChD;IACD,SAAS,EAAE,UAAU,kBAAkB;IACvC,YAAY;KAAE,UAAU;KAAM,MAAM;KAAO,OAAO;KAAM;IACxD,WAAW,WACT,CAAC,MAAM,SAAS,SAAS,IAAI,UAC7B,mEACD;IACD,OAAO;KAAE,UAAU;KAAU,OAAO;KAAQ;KAC5C;;GACE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
4
|
+
let classnames = require("classnames");
|
|
5
|
+
classnames = require_rolldown_runtime.__toESM(classnames);
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
let react = require("react");
|
|
8
|
+
let motion = require("motion");
|
|
9
|
+
let motion_plus = require("motion-plus");
|
|
10
|
+
|
|
11
|
+
//#region src/HeadingReveal.tsx
|
|
12
|
+
const HeadingReveal = ({ text, headingLevel, className, color = "#EFF1F6", cursorColor = "#00FFFF", baseDelay = 0, splitBy = "words", speed = .25 }) => {
|
|
13
|
+
const containerRef = (0, react.useRef)(null);
|
|
14
|
+
(0, react.useEffect)(() => {
|
|
15
|
+
document.fonts.ready.then(() => {
|
|
16
|
+
if (!containerRef.current) return;
|
|
17
|
+
containerRef.current.style.visibility = "visible";
|
|
18
|
+
const { words, chars } = (0, motion_plus.splitText)(containerRef.current.querySelector(headingLevel));
|
|
19
|
+
(0, motion.animate)(splitBy === "words" ? words : chars, {
|
|
20
|
+
backgroundColor: [
|
|
21
|
+
"rgba(255,255,255,0)",
|
|
22
|
+
"rgba(255,255,255,0)",
|
|
23
|
+
cursorColor,
|
|
24
|
+
cursorColor,
|
|
25
|
+
cursorColor,
|
|
26
|
+
"rgba(255,255,255,0)"
|
|
27
|
+
],
|
|
28
|
+
color: [
|
|
29
|
+
"rgba(255,255,255,0)",
|
|
30
|
+
"rgba(255,255,255,0)",
|
|
31
|
+
cursorColor,
|
|
32
|
+
cursorColor,
|
|
33
|
+
cursorColor,
|
|
34
|
+
color
|
|
35
|
+
]
|
|
36
|
+
}, {
|
|
37
|
+
ease: motion.anticipate,
|
|
38
|
+
duration: speed,
|
|
39
|
+
delay: (0, motion.stagger)(speed / 2, { startDelay: baseDelay })
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}, []);
|
|
43
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
44
|
+
ref: containerRef,
|
|
45
|
+
children: [
|
|
46
|
+
headingLevel === "h1" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
|
|
47
|
+
className: (0, classnames.default)("h1", className),
|
|
48
|
+
children: text
|
|
49
|
+
}),
|
|
50
|
+
headingLevel === "h2" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
51
|
+
className: (0, classnames.default)("h2", className),
|
|
52
|
+
children: text
|
|
53
|
+
}),
|
|
54
|
+
headingLevel === "h3" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
55
|
+
className: (0, classnames.default)("h3", className),
|
|
56
|
+
children: text
|
|
57
|
+
})
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
//#endregion
|
|
63
|
+
exports.HeadingReveal = HeadingReveal;
|
|
64
|
+
//# sourceMappingURL=HeadingReveal.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingReveal.cjs","names":["anticipate"],"sources":["../src/HeadingReveal.tsx"],"sourcesContent":["\"use client\";\n\nimport { animate, stagger, anticipate } from \"motion\";\nimport { splitText } from \"motion-plus\";\nimport { useEffect, useRef } from \"react\";\nimport classNames from \"classnames\";\n\nexport type HeadingRevealProps = {\n text: string;\n headingLevel: \"h1\" | \"h2\" | \"h3\";\n className?: string;\n color?: string;\n cursorColor?: string;\n baseDelay?: number;\n splitBy?: \"words\" | \"chars\";\n speed?: number;\n};\nexport const HeadingReveal = ({\n text,\n headingLevel,\n className,\n color = \"#EFF1F6\",\n cursorColor = \"#00FFFF\",\n baseDelay = 0,\n splitBy = \"words\",\n speed = 0.25,\n}: HeadingRevealProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n document.fonts.ready.then(() => {\n if (!containerRef.current) return;\n\n // Hide the container until the fonts are loaded\n containerRef.current.style.visibility = \"visible\";\n\n const { words, chars } = splitText(\n containerRef.current.querySelector(headingLevel)!\n );\n\n // Animate the words in the h1\n animate(\n splitBy === \"words\" ? words : chars,\n {\n backgroundColor: [\n \"rgba(255,255,255,0)\",\n \"rgba(255,255,255,0)\",\n cursorColor,\n cursorColor,\n cursorColor,\n \"rgba(255,255,255,0)\",\n ],\n color: [\n \"rgba(255,255,255,0)\",\n \"rgba(255,255,255,0)\",\n cursorColor,\n cursorColor,\n cursorColor,\n color,\n ],\n },\n {\n ease: anticipate,\n duration: speed,\n delay: stagger(speed / 2, { startDelay: baseDelay }),\n }\n );\n });\n }, []);\n\n return (\n <div ref={containerRef}>\n {headingLevel === \"h1\" && (\n <h1 className={classNames(\"h1\", className)}>{text}</h1>\n )}\n {headingLevel === \"h2\" && (\n <h2 className={classNames(\"h2\", className)}>{text}</h2>\n )}\n {headingLevel === \"h3\" && (\n <h3 className={classNames(\"h3\", className)}>{text}</h3>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;AAiBA,MAAa,iBAAiB,EAC5B,MACA,cACA,WACA,QAAQ,WACR,cAAc,WACd,YAAY,GACZ,UAAU,SACV,QAAQ,UACgB;CACxB,MAAM,iCAAsC,KAAK;AAEjD,4BAAgB;AACd,WAAS,MAAM,MAAM,WAAW;AAC9B,OAAI,CAAC,aAAa,QAAS;AAG3B,gBAAa,QAAQ,MAAM,aAAa;GAExC,MAAM,EAAE,OAAO,qCACb,aAAa,QAAQ,cAAc,aAAa,CACjD;AAGD,uBACE,YAAY,UAAU,QAAQ,OAC9B;IACE,iBAAiB;KACf;KACA;KACA;KACA;KACA;KACA;KACD;IACD,OAAO;KACL;KACA;KACA;KACA;KACA;KACA;KACD;IACF,EACD;IACE,MAAMA;IACN,UAAU;IACV,2BAAe,QAAQ,GAAG,EAAE,YAAY,WAAW,CAAC;IACrD,CACF;IACD;IACD,EAAE,CAAC;AAEN,QACE,4CAAC;EAAI,KAAK;;GACP,iBAAiB,QAChB,2CAAC;IAAG,mCAAsB,MAAM,UAAU;cAAG;KAAU;GAExD,iBAAiB,QAChB,2CAAC;IAAG,mCAAsB,MAAM,UAAU;cAAG;KAAU;GAExD,iBAAiB,QAChB,2CAAC;IAAG,mCAAsB,MAAM,UAAU;cAAG;KAAU;;GAErD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as react_jsx_runtime84 from "react/jsx-runtime";
|
|
2
|
+
|
|
3
|
+
//#region src/HeadingReveal.d.ts
|
|
4
|
+
type HeadingRevealProps = {
|
|
5
|
+
text: string;
|
|
6
|
+
headingLevel: "h1" | "h2" | "h3";
|
|
7
|
+
className?: string;
|
|
8
|
+
color?: string;
|
|
9
|
+
cursorColor?: string;
|
|
10
|
+
baseDelay?: number;
|
|
11
|
+
splitBy?: "words" | "chars";
|
|
12
|
+
speed?: number;
|
|
13
|
+
};
|
|
14
|
+
declare const HeadingReveal: ({
|
|
15
|
+
text,
|
|
16
|
+
headingLevel,
|
|
17
|
+
className,
|
|
18
|
+
color,
|
|
19
|
+
cursorColor,
|
|
20
|
+
baseDelay,
|
|
21
|
+
splitBy,
|
|
22
|
+
speed
|
|
23
|
+
}: HeadingRevealProps) => react_jsx_runtime84.JSX.Element;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { HeadingReveal, HeadingRevealProps };
|
|
26
|
+
//# sourceMappingURL=HeadingReveal.d.cts.map
|