(async () => {
if (props.iconName) {
- return (await import(`../../../data/iconDetails/${props.iconName}.ts`)).default as IconEntity
+ try {
+ return (await import(`../../../data/iconDetails/${props.iconName}.ts`)).default as IconEntity
+ } catch (err) {
+ go(`/icons/${props.iconName}`)
+ }
}
return null
}, null)
@@ -36,8 +42,6 @@ function onClose() {
emit('close')
}
-const { go } = useRouter()
-
const CloseIcon = createLucideIcon('Close', x)
const Expand = createLucideIcon('Expand', expand)
@@ -144,11 +148,11 @@ const Expand = createLucideIcon('Expand', expand)
}
.drawer-enter-active {
- transition: all 0.2s cubic-bezier(.21,.8,.46,.9);
+ transition: opacity 0.5s, transform 0.25s ease;
}
.drawer-leave-active {
- transition: all 0.4s cubic-bezier(1, 0.5, 0.8, 1);
+ transition: opacity 0.25s ease, transform 1.6s ease-out;
}
.drawer-enter-from,
diff --git a/docs/.vitepress/theme/components/icons/IconItem.vue b/docs/.vitepress/theme/components/icons/IconItem.vue
index 6bfa6be5b..e02564237 100644
--- a/docs/.vitepress/theme/components/icons/IconItem.vue
+++ b/docs/.vitepress/theme/components/icons/IconItem.vue
@@ -52,8 +52,7 @@ async function navigateToIcon(event) {
event.preventDefault()
window.history.pushState({}, '', `/icons/${props.name}`)
emit('setActiveIcon', props.name)
- }
- else {
+ } else {
event.preventDefault()
go(`/icons/${props.name}`)
}
diff --git a/docs/.vitepress/theme/components/icons/IconsCategoryOverview.vue b/docs/.vitepress/theme/components/icons/IconsCategoryOverview.vue
index 19b9faf81..bcfbbd018 100644
--- a/docs/.vitepress/theme/components/icons/IconsCategoryOverview.vue
+++ b/docs/.vitepress/theme/components/icons/IconsCategoryOverview.vue
@@ -12,6 +12,7 @@ import { useElementSize, useEventListener, useVirtualList } from '@vueuse/core';
import chunkArray from '../../utils/chunkArray';
import { CategoryRow } from './IconsCategory.vue';
import useScrollToCategory from '../../composables/useScrollToCategory';
+import CarbonAdOverlay from './CarbonAdOverlay.vue';
const ICON_SIZE = 56;
const ICON_GRID_GAP = 8;
@@ -133,6 +134,12 @@ function onFocusSearchInput() {
const NoResults = defineAsyncComponent(() => import('./NoResults.vue'));
const IconDetailOverlay = defineAsyncComponent(() => import('./IconDetailOverlay.vue'));
+
+function handleCloseDrawer() {
+ setActiveIconName('');
+
+ window.history.pushState({}, '', '/icons/categories');
+}
@@ -164,8 +171,10 @@ const IconDetailOverlay = defineAsyncComponent(() => import('./IconDetailOverlay
+
+
diff --git a/docs/.vitepress/theme/components/showcase/ShowcaseList.vue b/docs/.vitepress/theme/components/showcase/ShowcaseList.vue
index cf1a58b35..340ef299f 100644
--- a/docs/.vitepress/theme/components/showcase/ShowcaseList.vue
+++ b/docs/.vitepress/theme/components/showcase/ShowcaseList.vue
@@ -40,33 +40,4 @@ import ShowcaseListItem from "./ShowcaseListItem.vue";
.package-group {
margin-bottom: 96px;
}
-
-.grid {
- display: flex;
- flex-wrap: wrap;
- align-items: stretch;
- justify-content: center;
- align-content: space-evenly;
- box-sizing: border-box;
- margin: -8px;
-}
-
-.grid > * {
- flex-basis: 100%;
- box-sizing: border-box;
- padding: 8px;
-}
-
-@media (min-width: 960px) {
- .grid > * {
- flex-basis: 50%;
- }
-}
-
-@media (min-width: 1280px) {
- .grid > * {
- flex-basis: 33.33%;
- }
-}
-
diff --git a/docs/.vitepress/vue-shim.d.ts b/docs/.vitepress/vue-shim.d.ts
index 90ab0a63e..478b6d7ad 100644
--- a/docs/.vitepress/vue-shim.d.ts
+++ b/docs/.vitepress/vue-shim.d.ts
@@ -1,5 +1,7 @@
+import { IconNode } from 'lucide-vue-next/src/createLucideIcon';
+import Vue from 'vue';
+
declare module '*.vue' {
- import Vue from 'vue';
export default Vue;
}
@@ -16,3 +18,7 @@ declare const resvg_wasm: RequestInfo | URL | Response | BufferSource | WebAssem
declare module 'node:module' {
function createRequire(filename: string): NodeRequire;
}
+
+declare module '*.node.json' {
+ export default IconNode;
+}
diff --git a/docs/icons/categories.md b/docs/icons/categories.md
index 619c62e4c..6b211ec9e 100644
--- a/docs/icons/categories.md
+++ b/docs/icons/categories.md
@@ -10,7 +10,6 @@ import { data } from './icons.data.ts'
import { data as categoriesData } from './categories.data.ts'
import PageContainer from '../.vitepress/theme/components/PageContainer.vue'
import IconsCategoryOverview from '../.vitepress/theme/components/icons/IconsCategoryOverview.vue'
-
diff --git a/docs/index.md b/docs/index.md
index 28436c656..0eae54567 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -56,7 +56,9 @@ features:
+
diff --git a/docs/public/open-collective.png b/docs/public/open-collective.png
new file mode 100644
index 000000000..c24d24d00
Binary files /dev/null and b/docs/public/open-collective.png differ