marqy 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/core-COOoOGpB.js +21 -0
- package/dist/core-COOoOGpB.js.map +1 -0
- package/dist/core-CuZGUfsl.cjs +2 -0
- package/dist/core-CuZGUfsl.cjs.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.esm.js +5 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/marqy.css +4 -0
- package/dist/react.cjs.js +2 -0
- package/dist/react.cjs.js.map +1 -0
- package/dist/react.d.ts +15 -0
- package/dist/react.esm.js +60 -0
- package/dist/react.esm.js.map +1 -0
- package/dist/svelte.cjs.js +2 -0
- package/dist/svelte.cjs.js.map +1 -0
- package/dist/svelte.d.ts +7 -0
- package/dist/svelte.esm.js +54 -0
- package/dist/svelte.esm.js.map +1 -0
- package/dist/vanilla.cjs.js +2 -0
- package/dist/vanilla.cjs.js.map +1 -0
- package/dist/vanilla.d.ts +32 -0
- package/dist/vanilla.esm.js +96 -0
- package/dist/vanilla.esm.js.map +1 -0
- package/dist/vue.cjs.js +2 -0
- package/dist/vue.cjs.js.map +1 -0
- package/dist/vue.d.ts +45 -0
- package/dist/vue.esm.js +70 -0
- package/dist/vue.esm.js.map +1 -0
- package/package.json +81 -19
- package/.claude/settings.local.json +0 -13
- package/.prettierrc +0 -6
- package/.vscode/settings.json +0 -3
- package/dist/marqy.d.ts +0 -9
- package/dist/marqy.esm.js +0 -2
- package/dist/marqy.esm.js.map +0 -1
- package/dist/marqy.js +0 -2
- package/dist/marqy.js.map +0 -1
- package/dist/marqy.umd.js +0 -2
- package/dist/marqy.umd.js.map +0 -1
- package/examples/.astro/content-assets.mjs +0 -1
- package/examples/.astro/content-modules.mjs +0 -1
- package/examples/.astro/content.d.ts +0 -154
- package/examples/.astro/data-store.json +0 -1
- package/examples/.astro/fonts/font-akkurat-mono-500-normal-40f4e0ea0b54adc5.woff2 +0 -0
- package/examples/.astro/fonts/font-akkurat-mono-700-normal-b9f40f1447b587bd.woff +0 -0
- package/examples/.astro/fonts/font-grtsk-300-normal-8ef14ca23be6893c.woff2 +0 -0
- package/examples/.astro/fonts/font-grtsk-400-normal-13ba8954073ee64a.woff2 +0 -0
- package/examples/.astro/fonts/font-grtsk-500-normal-d214468daf16245f.woff2 +0 -0
- package/examples/.astro/fonts/font-grtsk-wide-500-normal-6f8c2658b9c2ba8e.woff2 +0 -0
- package/examples/.astro/fonts/font-grtsk-wide-700-normal-17406f09c7b68ca3.woff2 +0 -0
- package/examples/.astro/fonts.d.ts +0 -4
- package/examples/.astro/settings.json +0 -5
- package/examples/.astro/types.d.ts +0 -3
- package/examples/.yarnrc +0 -1
- package/examples/astro.config.mjs +0 -101
- package/examples/package.json +0 -30
- package/examples/public/apple-touch-icon.png +0 -0
- package/examples/public/favicon.ico +0 -0
- package/examples/public/favicon.svg +0 -4
- package/examples/public/marqy-logo.svg +0 -35
- package/examples/src/assets/baggu.jpg +0 -0
- package/examples/src/assets/bluesky.jpg +0 -0
- package/examples/src/assets/clams-lol.jpg +0 -0
- package/examples/src/assets/coconut-club-2.jpg +0 -0
- package/examples/src/assets/coconut-club.jpg +0 -0
- package/examples/src/assets/lucci.jpg +0 -0
- package/examples/src/assets/phila-museum.jpg +0 -0
- package/examples/src/assets/red-rooster.jpg +0 -0
- package/examples/src/assets/sanity.jpg +0 -0
- package/examples/src/assets/usal.jpg +0 -0
- package/examples/src/assets/vacation.jpg +0 -0
- package/examples/src/components/CopyButton.tsx +0 -26
- package/examples/src/components/Divider.tsx +0 -3
- package/examples/src/components/Footer.astro +0 -7
- package/examples/src/components/InUse.astro +0 -89
- package/examples/src/components/InUseExamples.tsx +0 -60
- package/examples/src/components/MarqyCredits.tsx +0 -33
- package/examples/src/components/MarqyHero.tsx +0 -77
- package/examples/src/components/MarqyInteractiveDemo.tsx +0 -46
- package/examples/src/components/MarqyPlayground.tsx +0 -496
- package/examples/src/components/MarqySpeedDemo.tsx +0 -34
- package/examples/src/components/MarqyVerticalDemo.tsx +0 -44
- package/examples/src/components/Playground.astro +0 -11
- package/examples/src/components/QuickStart.astro +0 -59
- package/examples/src/components/SectionHeadline.tsx +0 -41
- package/examples/src/components/Tile.tsx +0 -32
- package/examples/src/content.config.ts +0 -3
- package/examples/src/fonts/Akkurat-Mono-Bold.woff +0 -0
- package/examples/src/fonts/Akkurat-Mono.woff +0 -0
- package/examples/src/fonts/Akkurat-Mono.woff2 +0 -0
- package/examples/src/fonts/Grtsk-Peta-Light.woff +0 -0
- package/examples/src/fonts/Grtsk-Peta-Light.woff2 +0 -0
- package/examples/src/fonts/Grtsk-Peta-Medium.woff +0 -0
- package/examples/src/fonts/Grtsk-Peta-Medium.woff2 +0 -0
- package/examples/src/fonts/Grtsk-Peta-Regular.woff +0 -0
- package/examples/src/fonts/Grtsk-Peta-Regular.woff2 +0 -0
- package/examples/src/fonts/Grtsk-Tera-Bold.woff +0 -0
- package/examples/src/fonts/Grtsk-Tera-Bold.woff2 +0 -0
- package/examples/src/fonts/Grtsk-Tera-Medium.woff +0 -0
- package/examples/src/fonts/Grtsk-Tera-Medium.woff2 +0 -0
- package/examples/src/layouts/layout.astro +0 -107
- package/examples/src/lib/cn.ts +0 -16
- package/examples/src/lib/helpers.ts +0 -13
- package/examples/src/lib/hooks/useCopyText.ts +0 -47
- package/examples/src/pages/index.astro +0 -56
- package/examples/src/styles/_base.css +0 -155
- package/examples/src/styles/_components.css +0 -123
- package/examples/src/styles/_utilities.css +0 -23
- package/examples/src/styles/app.css +0 -397
- package/examples/tsconfig.json +0 -3
- package/examples/yarn.lock +0 -3316
- package/marqy.css +0 -131
- package/src/marqy.tsx +0 -97
- package/tsconfig.json +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue.esm.js","sources":["../src/vue/Marqy.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed, watch, onUnmounted } from 'vue'\nimport {\n type MarqyDirection,\n calcReps,\n calcAnimationDuration,\n createResizeObserver,\n} from '../core'\n\ninterface Props {\n speed?: number\n direction?: MarqyDirection\n pauseOnHover?: boolean\n manual?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n speed: 0.5,\n direction: 'left',\n pauseOnHover: false,\n manual: false,\n})\n\nconst containerRef = ref<HTMLElement | null>(null)\nconst itemRef = ref<HTMLElement | null>(null)\nconst containerDims = ref({ width: 0, height: 0 })\nconst itemDims = ref({ width: 0, height: 0 })\nconst reps = ref(1)\n\nconst isVertical = computed(\n () => props.direction === 'up' || props.direction === 'down'\n)\n\nconst animationDuration = computed(() =>\n calcAnimationDuration(\n isVertical.value ? itemDims.value.height : itemDims.value.width,\n reps.value,\n props.speed\n )\n)\n\nlet cleanupContainer: (() => void) | null = null\nlet cleanupItem: (() => void) | null = null\n\nwatch(containerRef, (el) => {\n cleanupContainer?.()\n cleanupContainer = null\n if (el) cleanupContainer = createResizeObserver(el, (d) => { containerDims.value = d })\n})\n\nwatch(itemRef, (el) => {\n cleanupItem?.()\n cleanupItem = null\n if (el) cleanupItem = createResizeObserver(el, (d) => { itemDims.value = d })\n})\n\nwatch([containerDims, itemDims, isVertical], () => {\n const cSize = isVertical.value ? containerDims.value.height : containerDims.value.width\n const iSize = isVertical.value ? itemDims.value.height : itemDims.value.width\n reps.value = calcReps(cSize, iSize)\n})\n\nonUnmounted(() => {\n cleanupContainer?.()\n cleanupItem?.()\n})\n</script>\n\n<template>\n <div\n ref=\"containerRef\"\n data-marqy=\"\"\n :data-direction=\"direction\"\n :data-pause-on-hover=\"pauseOnHover ? '' : undefined\"\n v-bind=\"$attrs\"\n >\n <div data-marqy-inner=\"\">\n <div\n v-for=\"clone in [0, 1]\"\n :key=\"clone\"\n data-marqy-content=\"\"\n v-bind=\"\n manual\n ? { 'data-marqy-static': animationDuration }\n : { style: `animation-duration: ${animationDuration}` }\n \"\n >\n <div\n v-for=\"rep in Array.from({ length: reps }, (_, i) => i)\"\n :key=\"rep\"\n :ref=\"(el) => { if (clone === 0 && rep === 0) itemRef = el as HTMLElement | null }\"\n :aria-hidden=\"!(clone === 0 && rep === 0) || undefined\"\n data-marqy-item=\"\"\n >\n <slot />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","containerRef","ref","itemRef","containerDims","itemDims","reps","isVertical","computed","animationDuration","calcAnimationDuration","cleanupContainer","cleanupItem","watch","el","createResizeObserver","d","cSize","iSize","calcReps","onUnmounted","_openBlock","_createElementBlock","_mergeProps","$attrs","_createElementVNode","_hoisted_2","_Fragment","_renderList","clone","_","i","rep","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;AAgBA,UAAMA,IAAQC,GAORC,IAAeC,EAAwB,IAAI,GAC3CC,IAAUD,EAAwB,IAAI,GACtCE,IAAgBF,EAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,GAC3CG,IAAWH,EAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,GACtCI,IAAOJ,EAAI,CAAC,GAEZK,IAAaC;AAAA,MACjB,MAAMT,EAAM,cAAc,QAAQA,EAAM,cAAc;AAAA,IAAA,GAGlDU,IAAoBD;AAAA,MAAS,MACjCE;AAAA,QACEH,EAAW,QAAQF,EAAS,MAAM,SAASA,EAAS,MAAM;AAAA,QAC1DC,EAAK;AAAA,QACLP,EAAM;AAAA,MAAA;AAAA,IACR;AAGF,QAAIY,IAAwC,MACxCC,IAAmC;AAEvC,WAAAC,EAAMZ,GAAc,CAACa,MAAO;AAC1B,MAAAH,KAAA,QAAAA,KACAA,IAAmB,MACfG,MAAIH,IAAmBI,EAAqBD,GAAI,CAACE,MAAM;AAAE,QAAAZ,EAAc,QAAQY;AAAA,MAAE,CAAC;AAAA,IACxF,CAAC,GAEDH,EAAMV,GAAS,CAACW,MAAO;AACrB,MAAAF,KAAA,QAAAA,KACAA,IAAc,MACVE,MAAIF,IAAcG,EAAqBD,GAAI,CAACE,MAAM;AAAE,QAAAX,EAAS,QAAQW;AAAA,MAAE,CAAC;AAAA,IAC9E,CAAC,GAEDH,EAAM,CAACT,GAAeC,GAAUE,CAAU,GAAG,MAAM;AACjD,YAAMU,IAAQV,EAAW,QAAQH,EAAc,MAAM,SAASA,EAAc,MAAM,OAC5Ec,IAAQX,EAAW,QAAQF,EAAS,MAAM,SAASA,EAAS,MAAM;AACxE,MAAAC,EAAK,QAAQa,EAASF,GAAOC,CAAK;AAAA,IACpC,CAAC,GAEDE,EAAY,MAAM;AAChB,MAAAT,KAAA,QAAAA,KACAC,KAAA,QAAAA;AAAA,IACF,CAAC,cAICS,EAAA,GAAAC,EA6BM,OA7BNC,EA6BM;AAAA,eA5BA;AAAA,MAAJ,KAAItB;AAAA,MACJ,cAAW;AAAA,MACV,kBAAgBD,EAAA;AAAA,MAChB,uBAAqBA,EAAA,eAAY,KAAQ;AAAA,IAAA,GAClCwB,EAAAA,MAAM,GAAA;AAAA,MAEdC,EAqBM,OArBNC,GAqBM;AAAA,cApBJJ,EAmBMK,GAAA,MAAAC,EAlBY,CAAA,GAAA,CAAA,GAAM,CAAfC,MADTJ,EAmBM,OAnBNF;AAAAA,UAmBM;AAAA,YAjBH,KAAKM;AAAA,YACN,sBAAmB;AAAA,UAAA;AAAA;UACA7B,EAAA,gCAA4CS,EAAA,MAAA,oCAAkEA,EAAA,KAAiB,GAAA;AAAA,QAAA;WAMlJY,EAAA,EAAA,GAAAC,EAQMK,GAAA,MAAAC,EAPU,MAAM,KAAI,EAAA,QAAWtB,EAAA,MAAA,GAAI,CAAKwB,GAAGC,MAAMA,CAAC,IAA/CC,YADTV,EAQM,OAAA;AAAA,YANH,KAAKU;AAAA;YACL,KAAG,CAAGlB,MAAE;AAAA,cAAWe,WAAeG,MAAG,QAAQ,QAAUlB;AAAA,YAAE;AAAA,YACzD,eAAW,EAAIe,MAAK,KAAUG,YAAc;AAAA,YAC7C,mBAAgB;AAAA,UAAA;YAEhBC,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "marqy",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "High-fidelity loops for modern interfaces.",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"react",
|
|
8
|
+
"vue",
|
|
9
|
+
"svelte",
|
|
10
|
+
"vanilla",
|
|
11
|
+
"web-component",
|
|
7
12
|
"marquee",
|
|
8
13
|
"react-marquee",
|
|
9
14
|
"marqy"
|
|
@@ -17,22 +22,41 @@
|
|
|
17
22
|
"url": "https://github.com/ndimatteo/marqy/issues"
|
|
18
23
|
},
|
|
19
24
|
"homepage": "https://github.com/ndimatteo/marqy",
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"main": "dist/index.cjs.js",
|
|
29
|
+
"module": "dist/index.esm.js",
|
|
30
|
+
"types": "dist/index.d.ts",
|
|
23
31
|
"exports": {
|
|
24
|
-
"./dist/marqy.css": "./dist/marqy.css",
|
|
25
32
|
".": {
|
|
26
|
-
"types": "./dist/
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
"types": "./dist/index.d.ts",
|
|
34
|
+
"import": "./dist/index.esm.js",
|
|
35
|
+
"require": "./dist/index.cjs.js"
|
|
36
|
+
},
|
|
37
|
+
"./react": {
|
|
38
|
+
"types": "./dist/react.d.ts",
|
|
39
|
+
"import": "./dist/react.esm.js",
|
|
40
|
+
"require": "./dist/react.cjs.js"
|
|
41
|
+
},
|
|
42
|
+
"./vue": {
|
|
43
|
+
"types": "./dist/vue.d.ts",
|
|
44
|
+
"import": "./dist/vue.esm.js"
|
|
45
|
+
},
|
|
46
|
+
"./svelte": {
|
|
47
|
+
"types": "./dist/svelte.d.ts",
|
|
48
|
+
"import": "./dist/svelte.esm.js"
|
|
49
|
+
},
|
|
50
|
+
"./vanilla": {
|
|
51
|
+
"types": "./dist/vanilla.d.ts",
|
|
52
|
+
"import": "./dist/vanilla.esm.js",
|
|
53
|
+
"require": "./dist/vanilla.cjs.js"
|
|
54
|
+
},
|
|
55
|
+
"./dist/marqy.css": "./dist/marqy.css"
|
|
31
56
|
},
|
|
32
|
-
"types": "dist/marqy.d.ts",
|
|
33
57
|
"scripts": {
|
|
34
|
-
"build": "
|
|
35
|
-
"watch": "
|
|
58
|
+
"build": "vite build",
|
|
59
|
+
"watch": "vite build --watch",
|
|
36
60
|
"install:examples": "yarn --cwd examples install",
|
|
37
61
|
"examples": "yarn --cwd examples dev",
|
|
38
62
|
"predev": "yarn build",
|
|
@@ -42,24 +66,62 @@
|
|
|
42
66
|
},
|
|
43
67
|
"size-limit": [
|
|
44
68
|
{
|
|
45
|
-
"path": "dist/
|
|
69
|
+
"path": "dist/index.esm.js",
|
|
70
|
+
"limit": "2 KB"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"path": "dist/react.esm.js",
|
|
74
|
+
"limit": "2 KB"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"path": "dist/vue.esm.js",
|
|
78
|
+
"limit": "2 KB"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"path": "dist/svelte.esm.js",
|
|
46
82
|
"limit": "2 KB"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"path": "dist/vanilla.esm.js",
|
|
86
|
+
"limit": "3 KB"
|
|
47
87
|
}
|
|
48
88
|
],
|
|
49
89
|
"devDependencies": {
|
|
50
90
|
"@size-limit/preset-small-lib": "^12.1.0",
|
|
91
|
+
"@sveltejs/vite-plugin-svelte": "^5.0.0",
|
|
92
|
+
"@types/node": "^20.0.0",
|
|
51
93
|
"@types/react": "^19.0.8",
|
|
52
94
|
"@types/react-dom": "^19.0.3",
|
|
95
|
+
"@vitejs/plugin-react": "^4.0.0",
|
|
96
|
+
"@vitejs/plugin-vue": "^5.0.0",
|
|
53
97
|
"concurrently": "^9.1.2",
|
|
54
|
-
"microbundle": "^0.15.1",
|
|
55
|
-
"parcel-bundler": "^1.12.5",
|
|
56
98
|
"react": "^19.0.0",
|
|
57
99
|
"react-dom": "^19.0.0",
|
|
58
|
-
"size-limit": "^12.1.0"
|
|
100
|
+
"size-limit": "^12.1.0",
|
|
101
|
+
"svelte": "^5.0.0",
|
|
102
|
+
"typescript": "^6.0.3",
|
|
103
|
+
"vite": "^6.0.0",
|
|
104
|
+
"vite-plugin-dts": "^4.0.0",
|
|
105
|
+
"vue": "^3.0.0"
|
|
59
106
|
},
|
|
60
107
|
"peerDependencies": {
|
|
61
108
|
"react": "17.x || 18.x || 19.x",
|
|
62
|
-
"react-dom": "17.x || 18.x || 19.x"
|
|
109
|
+
"react-dom": "17.x || 18.x || 19.x",
|
|
110
|
+
"svelte": "^5.0.0",
|
|
111
|
+
"vue": "^3.0.0"
|
|
63
112
|
},
|
|
64
|
-
"
|
|
113
|
+
"peerDependenciesMeta": {
|
|
114
|
+
"react": {
|
|
115
|
+
"optional": true
|
|
116
|
+
},
|
|
117
|
+
"react-dom": {
|
|
118
|
+
"optional": true
|
|
119
|
+
},
|
|
120
|
+
"vue": {
|
|
121
|
+
"optional": true
|
|
122
|
+
},
|
|
123
|
+
"svelte": {
|
|
124
|
+
"optional": true
|
|
125
|
+
}
|
|
126
|
+
}
|
|
65
127
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(yarn install:*)",
|
|
5
|
-
"Bash(node_modules/.bin/astro --version)",
|
|
6
|
-
"Bash(npx update-browserslist-db@latest)",
|
|
7
|
-
"Bash(python3 -c \"import json,sys; d=json.load\\(sys.stdin\\); print\\(json.dumps\\(d.get\\('exports', {}\\), indent=2\\)\\)\")",
|
|
8
|
-
"WebFetch(domain:base-ui.com)",
|
|
9
|
-
"Bash(yarn add:*)",
|
|
10
|
-
"Bash(md5 /Users/ndimatteo/code/plugins/marqy/examples/src/components/MarqyPlayground.tsx)"
|
|
11
|
-
]
|
|
12
|
-
}
|
|
13
|
-
}
|
package/.prettierrc
DELETED
package/.vscode/settings.json
DELETED
package/dist/marqy.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
export interface MarqyProps extends React.ComponentPropsWithoutRef<'div'> {
|
|
3
|
-
speed?: number;
|
|
4
|
-
direction?: 'left' | 'right' | 'up' | 'down';
|
|
5
|
-
pauseOnHover?: boolean;
|
|
6
|
-
manual?: boolean;
|
|
7
|
-
children: React.ReactNode;
|
|
8
|
-
}
|
|
9
|
-
export declare function Marqy({ speed, direction, pauseOnHover, manual, children, ...rest }: MarqyProps): React.ReactElement;
|
package/dist/marqy.esm.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import*as e from"react";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(null,arguments)}var n=["speed","direction","pauseOnHover","manual","children"];function r(r){var a=r.speed,u=void 0===a?.5:a,c=r.direction,l=void 0===c?"left":c,o=r.pauseOnHover,d=r.manual,h=void 0!==d&&d,f=r.children,s=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(r,n),v=e.useState(1),m=v[0],w=v[1],p=i(),y=p[0],g=p[1],O=i(),b=O[0],q=O[1],E="up"===l||"down"===l,k=e.useCallback(function(e){return(null!=e?e:0)*m/(100*u)+"s"},[m,u]);return e.useEffect(function(){!E&&g.width&&q.width&&w(Math.ceil(g.width/q.width)),E&&g.height&&q.height&&w(Math.ceil(g.height/q.height))},[E,g,q]),e.createElement("div",t({ref:y,"data-marqy":"","data-direction":l,"data-pause-on-hover":o?"":null},s),e.createElement("div",{"data-marqy-inner":""},new Array(2).fill(0).map(function(n,r){return e.createElement("div",t({key:r,"data-marqy-content":""},h?{"data-marqy-static":k(E?q.height:q.width)}:{style:{animationDuration:k(E?q.height:q.width)}}),new Array(m).fill(0).map(function(t,n){var i=0===r&&0===n;return e.createElement("div",{key:n,ref:i?b:null,"aria-hidden":!i||null,"data-marqy-item":""},f)}))})))}function i(){var t=e.useState({width:0,height:0}),n=t[0],r=t[1],i=e.useRef(null);return[e.useCallback(function(e){var t;null==(t=i.current)||t.disconnect(),e&&(i.current=new ResizeObserver(function(e){var t=e[0];return r({width:t.contentRect.width,height:t.contentRect.height})}),i.current.observe(e))},[]),n]}export{r as Marqy};
|
|
2
|
-
//# sourceMappingURL=marqy.esm.js.map
|
package/dist/marqy.esm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"marqy.esm.js","sources":["../src/marqy.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport interface MarqyProps extends React.ComponentPropsWithoutRef<'div'> {\n speed?: number\n direction?: 'left' | 'right' | 'up' | 'down'\n pauseOnHover?: boolean\n manual?: boolean\n children: React.ReactNode\n}\n\nexport function Marqy({\n speed = 0.5,\n direction = 'left',\n pauseOnHover,\n manual = false,\n children,\n ...rest\n}: MarqyProps): React.ReactElement {\n const [reps, setReps] = React.useState(1)\n\n const [container, containerDimensions] = useDimensions()\n const [item, itemDimensions] = useDimensions()\n\n const isVertical = direction === 'up' || direction === 'down'\n\n const getAnimationDuration = React.useCallback(\n (itemDimension: number) => {\n return `${((itemDimension ?? 0) * reps) / (100 * speed)}s`\n },\n [reps, speed]\n )\n\n React.useEffect(() => {\n if (!isVertical && containerDimensions.width && itemDimensions.width) {\n setReps(Math.ceil(containerDimensions.width / itemDimensions.width))\n }\n if (isVertical && containerDimensions.height && itemDimensions.height) {\n setReps(Math.ceil(containerDimensions.height / itemDimensions.height))\n }\n }, [isVertical, containerDimensions, itemDimensions])\n\n return (\n <div\n ref={container}\n data-marqy=\"\"\n data-direction={direction}\n data-pause-on-hover={pauseOnHover ? '' : null}\n {...rest}\n >\n <div data-marqy-inner=\"\">\n {new Array(2).fill(0).map((_, clone) => (\n <div\n key={clone}\n data-marqy-content=\"\"\n {...(manual\n ? { 'data-marqy-static': getAnimationDuration(isVertical ? itemDimensions.height : itemDimensions.width) }\n : { style: { animationDuration: getAnimationDuration(isVertical ? itemDimensions.height : itemDimensions.width) } }\n )}\n >\n {new Array(reps).fill(0).map((_, rep) => {\n const isFirstItem = clone === 0 && rep === 0\n return (\n <div\n key={rep}\n ref={isFirstItem ? item : null}\n aria-hidden={!isFirstItem || null}\n data-marqy-item=\"\"\n >\n {children}\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nfunction useDimensions() {\n const [dimensions, setDimensions] = React.useState({ width: 0, height: 0 })\n const observer = React.useRef<ResizeObserver | null>(null)\n\n const ref = React.useCallback((node: HTMLElement | null) => {\n observer.current?.disconnect()\n if (!node) return\n observer.current = new ResizeObserver(([entry]) =>\n setDimensions({\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n })\n )\n observer.current.observe(node)\n }, [])\n\n return [ref, dimensions] as const\n}\n"],"names":["_excluded","Marqy","_ref","_ref$speed","speed","_ref$direction","direction","pauseOnHover","_ref$manual","manual","children","rest","_objectWithoutPropertiesLoose","_React$useState","React","useState","reps","setReps","_useDimensions","useDimensions","container","containerDimensions","_useDimensions2","item","itemDimensions","isVertical","getAnimationDuration","useCallback","itemDimension","useEffect","width","Math","ceil","height","ref","createElement","Array","fill","map","_","clone","_extends","key","style","animationDuration","rep","isFirstItem","_React$useState2","dimensions","setDimensions","observer","useRef","node","_observer$current","current","disconnect","ResizeObserver","_ref2","entry","contentRect","observe"],"mappings":"gPAAA,IAAAA,EAAA,CAAA,QAAA,YAAA,eAAA,SAAA,YAUgB,SAAAC,EAAKC,OAORC,EAAAD,EANXE,MAAAA,OAAQ,IAAHD,EAAG,GAAGA,EAAAE,EAAAH,EACXI,UAAAA,OAAS,IAAAD,EAAG,OAAMA,EAClBE,EAAYL,EAAZK,aAAYC,EAAAN,EACZO,OAAAA,OAAM,IAAAD,GAAQA,EACdE,EAAQR,EAARQ,SACGC,6IAAIC,CAAAV,EAAAF,GAEPa,EAAwBC,EAAMC,SAAS,GAAhCC,EAAIH,EAAA,GAAEI,EAAOJ,EAAA,GAEpBK,EAAyCC,IAAlCC,EAASF,EAAEG,GAAAA,EAAmBH,EACrC,GAAAI,EAA+BH,IAAxBI,EAAID,EAAEE,GAAAA,EAAcF,EAAA,GAErBG,EAA2B,OAAdnB,GAAoC,SAAdA,EAEnCoB,EAAuBZ,EAAMa,YACjC,SAACC,GACC,OAAYA,MAAAA,EAAAA,EAAiB,GAAKZ,GAAS,IAAMZ,GACnD,GAAA,EACA,CAACY,EAAMZ,IAYT,OATAU,EAAMe,UAAU,YACTJ,GAAcJ,EAAoBS,OAASN,EAAeM,OAC7Db,EAAQc,KAAKC,KAAKX,EAAoBS,MAAQN,EAAeM,QAE3DL,GAAcJ,EAAoBY,QAAUT,EAAeS,QAC7DhB,EAAQc,KAAKC,KAAKX,EAAoBY,OAAST,EAAeS,QAElE,EAAG,CAACR,EAAYJ,EAAqBG,IAGnCV,yBACEoB,IAAKd,EACM,aAAA,oBACKd,EAAS,sBACJC,EAAe,GAAK,MACrCI,GAEJG,EAAAqB,cAAA,MAAA,CAAA,mBAAsB,IACnB,IAAIC,MAAM,GAAGC,KAAK,GAAGC,IAAI,SAACC,EAAGC,GAC5B,OAAA1B,EAAAqB,cAAA,MAAAM,EACEC,CAAAA,IAAKF,EAAK,qBACS,IACd/B,EACD,CAAE,oBAAqBiB,EAAqBD,EAAaD,EAAeS,OAAST,EAAeM,QAChG,CAAEa,MAAO,CAAEC,kBAAmBlB,EAAqBD,EAAaD,EAAeS,OAAST,EAAeM,UAG1G,IAAIM,MAAMpB,GAAMqB,KAAK,GAAGC,IAAI,SAACC,EAAGM,GAC/B,IAAMC,EAAwB,IAAVN,GAAuB,IAARK,EACnC,OACE/B,EAAAqB,cAAA,MAAA,CACEO,IAAKG,EACLX,IAAKY,EAAcvB,EAAO,KAAI,eAChBuB,GAAe,KACb,kBAAA,IAEfpC,EAGP,GACI,IAKhB,CAEA,SAASS,IACP,IAAA4B,EAAoCjC,EAAMC,SAAS,CAAEe,MAAO,EAAGG,OAAQ,IAAhEe,EAAUD,EAAEE,GAAAA,EAAaF,KAC1BG,EAAWpC,EAAMqC,OAA8B,MAcrD,MAAO,CAZKrC,EAAMa,YAAY,SAACyB,GAA4BC,IAAAA,EACzDA,OAAAA,EAAAH,EAASI,UAATD,EAAkBE,aACbH,IACLF,EAASI,QAAU,IAAIE,eAAe,SAAAC,OAAEC,EAAKD,EAC3C,GAAA,OAAAR,EAAc,CACZnB,MAAO4B,EAAMC,YAAY7B,MACzBG,OAAQyB,EAAMC,YAAY1B,QAC1B,GAEJiB,EAASI,QAAQM,QAAQR,GAC3B,EAAG,IAEUJ,EACf"}
|
package/dist/marqy.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function e(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}var t=/*#__PURE__*/e(require("react"));function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(null,arguments)}var r=["speed","direction","pauseOnHover","manual","children"];function a(){var e=t.useState({width:0,height:0}),n=e[0],r=e[1],a=t.useRef(null);return[t.useCallback(function(e){var t;null==(t=a.current)||t.disconnect(),e&&(a.current=new ResizeObserver(function(e){var t=e[0];return r({width:t.contentRect.width,height:t.contentRect.height})}),a.current.observe(e))},[]),n]}exports.Marqy=function(e){var i=e.speed,u=void 0===i?.5:i,c=e.direction,l=void 0===c?"left":c,o=e.pauseOnHover,d=e.manual,h=void 0!==d&&d,f=e.children,s=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,r),v=t.useState(1),y=v[0],m=v[1],p=a(),w=p[0],g=p[1],O=a(),b=O[0],q=O[1],j="up"===l||"down"===l,E=t.useCallback(function(e){return(null!=e?e:0)*y/(100*u)+"s"},[y,u]);return t.useEffect(function(){!j&&g.width&&q.width&&m(Math.ceil(g.width/q.width)),j&&g.height&&q.height&&m(Math.ceil(g.height/q.height))},[j,g,q]),t.createElement("div",n({ref:w,"data-marqy":"","data-direction":l,"data-pause-on-hover":o?"":null},s),t.createElement("div",{"data-marqy-inner":""},new Array(2).fill(0).map(function(e,r){return t.createElement("div",n({key:r,"data-marqy-content":""},h?{"data-marqy-static":E(j?q.height:q.width)}:{style:{animationDuration:E(j?q.height:q.width)}}),new Array(y).fill(0).map(function(e,n){var a=0===r&&0===n;return t.createElement("div",{key:n,ref:a?b:null,"aria-hidden":!a||null,"data-marqy-item":""},f)}))})))};
|
|
2
|
-
//# sourceMappingURL=marqy.js.map
|
package/dist/marqy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"marqy.js","sources":["../src/marqy.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport interface MarqyProps extends React.ComponentPropsWithoutRef<'div'> {\n speed?: number\n direction?: 'left' | 'right' | 'up' | 'down'\n pauseOnHover?: boolean\n manual?: boolean\n children: React.ReactNode\n}\n\nexport function Marqy({\n speed = 0.5,\n direction = 'left',\n pauseOnHover,\n manual = false,\n children,\n ...rest\n}: MarqyProps): React.ReactElement {\n const [reps, setReps] = React.useState(1)\n\n const [container, containerDimensions] = useDimensions()\n const [item, itemDimensions] = useDimensions()\n\n const isVertical = direction === 'up' || direction === 'down'\n\n const getAnimationDuration = React.useCallback(\n (itemDimension: number) => {\n return `${((itemDimension ?? 0) * reps) / (100 * speed)}s`\n },\n [reps, speed]\n )\n\n React.useEffect(() => {\n if (!isVertical && containerDimensions.width && itemDimensions.width) {\n setReps(Math.ceil(containerDimensions.width / itemDimensions.width))\n }\n if (isVertical && containerDimensions.height && itemDimensions.height) {\n setReps(Math.ceil(containerDimensions.height / itemDimensions.height))\n }\n }, [isVertical, containerDimensions, itemDimensions])\n\n return (\n <div\n ref={container}\n data-marqy=\"\"\n data-direction={direction}\n data-pause-on-hover={pauseOnHover ? '' : null}\n {...rest}\n >\n <div data-marqy-inner=\"\">\n {new Array(2).fill(0).map((_, clone) => (\n <div\n key={clone}\n data-marqy-content=\"\"\n {...(manual\n ? { 'data-marqy-static': getAnimationDuration(isVertical ? itemDimensions.height : itemDimensions.width) }\n : { style: { animationDuration: getAnimationDuration(isVertical ? itemDimensions.height : itemDimensions.width) } }\n )}\n >\n {new Array(reps).fill(0).map((_, rep) => {\n const isFirstItem = clone === 0 && rep === 0\n return (\n <div\n key={rep}\n ref={isFirstItem ? item : null}\n aria-hidden={!isFirstItem || null}\n data-marqy-item=\"\"\n >\n {children}\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nfunction useDimensions() {\n const [dimensions, setDimensions] = React.useState({ width: 0, height: 0 })\n const observer = React.useRef<ResizeObserver | null>(null)\n\n const ref = React.useCallback((node: HTMLElement | null) => {\n observer.current?.disconnect()\n if (!node) return\n observer.current = new ResizeObserver(([entry]) =>\n setDimensions({\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n })\n )\n observer.current.observe(node)\n }, [])\n\n return [ref, dimensions] as const\n}\n"],"names":["_excluded","useDimensions","_React$useState2","React","useState","width","height","dimensions","setDimensions","observer","useRef","useCallback","node","_observer$current","current","disconnect","ResizeObserver","_ref2","entry","contentRect","observe","_ref","_ref$speed","speed","_ref$direction","direction","pauseOnHover","_ref$manual","manual","children","rest","_objectWithoutPropertiesLoose","_React$useState","reps","setReps","_useDimensions","container","containerDimensions","_useDimensions2","item","itemDimensions","isVertical","getAnimationDuration","itemDimension","useEffect","Math","ceil","ref","createElement","Array","fill","map","_","clone","_extends","key","style","animationDuration","rep","isFirstItem"],"mappings":"6gBAAA,IAAAA,EAAA,CAAA,QAAA,YAAA,eAAA,SAAA,YA+EA,SAASC,IACP,IAAAC,EAAoCC,EAAMC,SAAS,CAAEC,MAAO,EAAGC,OAAQ,IAAhEC,EAAUL,EAAEM,GAAAA,EAAaN,KAC1BO,EAAWN,EAAMO,OAA8B,MAcrD,MAAO,CAZKP,EAAMQ,YAAY,SAACC,GAA4BC,IAAAA,EACzDA,OAAAA,EAAAJ,EAASK,UAATD,EAAkBE,aACbH,IACLH,EAASK,QAAU,IAAIE,eAAe,SAAAC,OAAEC,EAAKD,EAC3C,GAAA,OAAAT,EAAc,CACZH,MAAOa,EAAMC,YAAYd,MACzBC,OAAQY,EAAMC,YAAYb,QAC1B,GAEJG,EAASK,QAAQM,QAAQR,GAC3B,EAAG,IAEUL,EACf,eAtFgB,SAAKc,OAORC,EAAAD,EANXE,MAAAA,OAAQ,IAAHD,EAAG,GAAGA,EAAAE,EAAAH,EACXI,UAAAA,OAAS,IAAAD,EAAG,OAAMA,EAClBE,EAAYL,EAAZK,aAAYC,EAAAN,EACZO,OAAAA,OAAM,IAAAD,GAAQA,EACdE,EAAQR,EAARQ,SACGC,6IAAIC,CAAAV,EAAArB,GAEPgC,EAAwB7B,EAAMC,SAAS,GAAhC6B,EAAID,EAAA,GAAEE,EAAOF,EAAA,GAEpBG,EAAyClC,IAAlCmC,EAASD,EAAEE,GAAAA,EAAmBF,EACrC,GAAAG,EAA+BrC,IAAxBsC,EAAID,EAAEE,GAAAA,EAAcF,EAAA,GAErBG,EAA2B,OAAdhB,GAAoC,SAAdA,EAEnCiB,EAAuBvC,EAAMQ,YACjC,SAACgC,GACC,OAAYA,MAAAA,EAAAA,EAAiB,GAAKV,GAAS,IAAMV,GACnD,GAAA,EACA,CAACU,EAAMV,IAYT,OATApB,EAAMyC,UAAU,YACTH,GAAcJ,EAAoBhC,OAASmC,EAAenC,OAC7D6B,EAAQW,KAAKC,KAAKT,EAAoBhC,MAAQmC,EAAenC,QAE3DoC,GAAcJ,EAAoB/B,QAAUkC,EAAelC,QAC7D4B,EAAQW,KAAKC,KAAKT,EAAoB/B,OAASkC,EAAelC,QAElE,EAAG,CAACmC,EAAYJ,EAAqBG,IAGnCrC,yBACE4C,IAAKX,EACM,aAAA,oBACKX,EAAS,sBACJC,EAAe,GAAK,MACrCI,GAEJ3B,EAAA6C,cAAA,MAAA,CAAA,mBAAsB,IACnB,IAAIC,MAAM,GAAGC,KAAK,GAAGC,IAAI,SAACC,EAAGC,GAC5B,OAAAlD,EAAA6C,cAAA,MAAAM,EACEC,CAAAA,IAAKF,EAAK,qBACS,IACdzB,EACD,CAAE,oBAAqBc,EAAqBD,EAAaD,EAAelC,OAASkC,EAAenC,QAChG,CAAEmD,MAAO,CAAEC,kBAAmBf,EAAqBD,EAAaD,EAAelC,OAASkC,EAAenC,UAG1G,IAAI4C,MAAMhB,GAAMiB,KAAK,GAAGC,IAAI,SAACC,EAAGM,GAC/B,IAAMC,EAAwB,IAAVN,GAAuB,IAARK,EACnC,OACEvD,EAAA6C,cAAA,MAAA,CACEO,IAAKG,EACLX,IAAKY,EAAcpB,EAAO,KAAI,eAChBoB,GAAe,KACb,kBAAA,IAEf9B,EAGP,GACI,IAKhB"}
|
package/dist/marqy.umd.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e||self).marqy={},e.react)}(this,function(e,t){function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}var r=/*#__PURE__*/n(t);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(null,arguments)}var a=["speed","direction","pauseOnHover","manual","children"];function u(){var e=r.useState({width:0,height:0}),t=e[0],n=e[1],i=r.useRef(null);return[r.useCallback(function(e){var t;null==(t=i.current)||t.disconnect(),e&&(i.current=new ResizeObserver(function(e){var t=e[0];return n({width:t.contentRect.width,height:t.contentRect.height})}),i.current.observe(e))},[]),t]}e.Marqy=function(e){var t=e.speed,n=void 0===t?.5:t,c=e.direction,o=void 0===c?"left":c,l=e.pauseOnHover,d=e.manual,f=void 0!==d&&d,h=e.children,s=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,a),v=r.useState(1),p=v[0],y=v[1],m=u(),g=m[0],w=m[1],b=u(),O=b[0],q=b[1],j="up"===o||"down"===o,E=r.useCallback(function(e){return(null!=e?e:0)*p/(100*n)+"s"},[p,n]);return r.useEffect(function(){!j&&w.width&&q.width&&y(Math.ceil(w.width/q.width)),j&&w.height&&q.height&&y(Math.ceil(w.height/q.height))},[j,w,q]),r.createElement("div",i({ref:g,"data-marqy":"","data-direction":o,"data-pause-on-hover":l?"":null},s),r.createElement("div",{"data-marqy-inner":""},new Array(2).fill(0).map(function(e,t){return r.createElement("div",i({key:t,"data-marqy-content":""},f?{"data-marqy-static":E(j?q.height:q.width)}:{style:{animationDuration:E(j?q.height:q.width)}}),new Array(p).fill(0).map(function(e,n){var i=0===t&&0===n;return r.createElement("div",{key:n,ref:i?O:null,"aria-hidden":!i||null,"data-marqy-item":""},h)}))})))}});
|
|
2
|
-
//# sourceMappingURL=marqy.umd.js.map
|
package/dist/marqy.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"marqy.umd.js","sources":["../src/marqy.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport interface MarqyProps extends React.ComponentPropsWithoutRef<'div'> {\n speed?: number\n direction?: 'left' | 'right' | 'up' | 'down'\n pauseOnHover?: boolean\n manual?: boolean\n children: React.ReactNode\n}\n\nexport function Marqy({\n speed = 0.5,\n direction = 'left',\n pauseOnHover,\n manual = false,\n children,\n ...rest\n}: MarqyProps): React.ReactElement {\n const [reps, setReps] = React.useState(1)\n\n const [container, containerDimensions] = useDimensions()\n const [item, itemDimensions] = useDimensions()\n\n const isVertical = direction === 'up' || direction === 'down'\n\n const getAnimationDuration = React.useCallback(\n (itemDimension: number) => {\n return `${((itemDimension ?? 0) * reps) / (100 * speed)}s`\n },\n [reps, speed]\n )\n\n React.useEffect(() => {\n if (!isVertical && containerDimensions.width && itemDimensions.width) {\n setReps(Math.ceil(containerDimensions.width / itemDimensions.width))\n }\n if (isVertical && containerDimensions.height && itemDimensions.height) {\n setReps(Math.ceil(containerDimensions.height / itemDimensions.height))\n }\n }, [isVertical, containerDimensions, itemDimensions])\n\n return (\n <div\n ref={container}\n data-marqy=\"\"\n data-direction={direction}\n data-pause-on-hover={pauseOnHover ? '' : null}\n {...rest}\n >\n <div data-marqy-inner=\"\">\n {new Array(2).fill(0).map((_, clone) => (\n <div\n key={clone}\n data-marqy-content=\"\"\n {...(manual\n ? { 'data-marqy-static': getAnimationDuration(isVertical ? itemDimensions.height : itemDimensions.width) }\n : { style: { animationDuration: getAnimationDuration(isVertical ? itemDimensions.height : itemDimensions.width) } }\n )}\n >\n {new Array(reps).fill(0).map((_, rep) => {\n const isFirstItem = clone === 0 && rep === 0\n return (\n <div\n key={rep}\n ref={isFirstItem ? item : null}\n aria-hidden={!isFirstItem || null}\n data-marqy-item=\"\"\n >\n {children}\n </div>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nfunction useDimensions() {\n const [dimensions, setDimensions] = React.useState({ width: 0, height: 0 })\n const observer = React.useRef<ResizeObserver | null>(null)\n\n const ref = React.useCallback((node: HTMLElement | null) => {\n observer.current?.disconnect()\n if (!node) return\n observer.current = new ResizeObserver(([entry]) =>\n setDimensions({\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n })\n )\n observer.current.observe(node)\n }, [])\n\n return [ref, dimensions] as const\n}\n"],"names":["_excluded","useDimensions","_React$useState2","React","useState","width","height","dimensions","setDimensions","observer","useRef","useCallback","node","_observer$current","current","disconnect","ResizeObserver","_ref2","entry","contentRect","observe","_ref","_ref$speed","speed","_ref$direction","direction","pauseOnHover","_ref$manual","manual","children","rest","_objectWithoutPropertiesLoose","_React$useState","reps","setReps","_useDimensions","container","containerDimensions","_useDimensions2","item","itemDimensions","isVertical","getAnimationDuration","itemDimension","useEffect","Math","ceil","ref","createElement","Array","fill","map","_","clone","_extends","key","style","animationDuration","rep","isFirstItem"],"mappings":"gwBAAA,IAAAA,EAAA,CAAA,QAAA,YAAA,eAAA,SAAA,YA+EA,SAASC,IACP,IAAAC,EAAoCC,EAAMC,SAAS,CAAEC,MAAO,EAAGC,OAAQ,IAAhEC,EAAUL,EAAEM,GAAAA,EAAaN,KAC1BO,EAAWN,EAAMO,OAA8B,MAcrD,MAAO,CAZKP,EAAMQ,YAAY,SAACC,GAA4BC,IAAAA,EACzDA,OAAAA,EAAAJ,EAASK,UAATD,EAAkBE,aACbH,IACLH,EAASK,QAAU,IAAIE,eAAe,SAAAC,OAAEC,EAAKD,EAC3C,GAAA,OAAAT,EAAc,CACZH,MAAOa,EAAMC,YAAYd,MACzBC,OAAQY,EAAMC,YAAYb,QAC1B,GAEJG,EAASK,QAAQM,QAAQR,GAC3B,EAAG,IAEUL,EACf,SAtFgB,SAAKc,OAORC,EAAAD,EANXE,MAAAA,OAAQ,IAAHD,EAAG,GAAGA,EAAAE,EAAAH,EACXI,UAAAA,OAAS,IAAAD,EAAG,OAAMA,EAClBE,EAAYL,EAAZK,aAAYC,EAAAN,EACZO,OAAAA,OAAM,IAAAD,GAAQA,EACdE,EAAQR,EAARQ,SACGC,6IAAIC,CAAAV,EAAArB,GAEPgC,EAAwB7B,EAAMC,SAAS,GAAhC6B,EAAID,EAAA,GAAEE,EAAOF,EAAA,GAEpBG,EAAyClC,IAAlCmC,EAASD,EAAEE,GAAAA,EAAmBF,EACrC,GAAAG,EAA+BrC,IAAxBsC,EAAID,EAAEE,GAAAA,EAAcF,EAAA,GAErBG,EAA2B,OAAdhB,GAAoC,SAAdA,EAEnCiB,EAAuBvC,EAAMQ,YACjC,SAACgC,GACC,OAAYA,MAAAA,EAAAA,EAAiB,GAAKV,GAAS,IAAMV,GACnD,GAAA,EACA,CAACU,EAAMV,IAYT,OATApB,EAAMyC,UAAU,YACTH,GAAcJ,EAAoBhC,OAASmC,EAAenC,OAC7D6B,EAAQW,KAAKC,KAAKT,EAAoBhC,MAAQmC,EAAenC,QAE3DoC,GAAcJ,EAAoB/B,QAAUkC,EAAelC,QAC7D4B,EAAQW,KAAKC,KAAKT,EAAoB/B,OAASkC,EAAelC,QAElE,EAAG,CAACmC,EAAYJ,EAAqBG,IAGnCrC,yBACE4C,IAAKX,EACM,aAAA,oBACKX,EAAS,sBACJC,EAAe,GAAK,MACrCI,GAEJ3B,EAAA6C,cAAA,MAAA,CAAA,mBAAsB,IACnB,IAAIC,MAAM,GAAGC,KAAK,GAAGC,IAAI,SAACC,EAAGC,GAC5B,OAAAlD,EAAA6C,cAAA,MAAAM,EACEC,CAAAA,IAAKF,EAAK,qBACS,IACdzB,EACD,CAAE,oBAAqBc,EAAqBD,EAAaD,EAAelC,OAASkC,EAAenC,QAChG,CAAEmD,MAAO,CAAEC,kBAAmBf,EAAqBD,EAAaD,EAAelC,OAASkC,EAAenC,UAG1G,IAAI4C,MAAMhB,GAAMiB,KAAK,GAAGC,IAAI,SAACC,EAAGM,GAC/B,IAAMC,EAAwB,IAAVN,GAAuB,IAARK,EACnC,OACEvD,EAAA6C,cAAA,MAAA,CACEO,IAAKG,EACLX,IAAKY,EAAcpB,EAAO,KAAI,eAChBoB,GAAe,KACb,kBAAA,IAEf9B,EAGP,GACI,IAKhB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default new Map();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default new Map();
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
declare module 'astro:content' {
|
|
2
|
-
export interface RenderResult {
|
|
3
|
-
Content: import('astro/runtime/server/index.js').AstroComponentFactory;
|
|
4
|
-
headings: import('astro').MarkdownHeading[];
|
|
5
|
-
remarkPluginFrontmatter: Record<string, any>;
|
|
6
|
-
}
|
|
7
|
-
interface Render {
|
|
8
|
-
'.md': Promise<RenderResult>;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface RenderedContent {
|
|
12
|
-
html: string;
|
|
13
|
-
metadata?: {
|
|
14
|
-
imagePaths: Array<string>;
|
|
15
|
-
[key: string]: unknown;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
|
|
20
|
-
|
|
21
|
-
export type CollectionKey = keyof DataEntryMap;
|
|
22
|
-
export type CollectionEntry<C extends CollectionKey> = Flatten<DataEntryMap[C]>;
|
|
23
|
-
|
|
24
|
-
type AllValuesOf<T> = T extends any ? T[keyof T] : never;
|
|
25
|
-
|
|
26
|
-
export type ReferenceDataEntry<
|
|
27
|
-
C extends CollectionKey,
|
|
28
|
-
E extends keyof DataEntryMap[C] = string,
|
|
29
|
-
> = {
|
|
30
|
-
collection: C;
|
|
31
|
-
id: E;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export type ReferenceLiveEntry<C extends keyof LiveContentConfig['collections']> = {
|
|
35
|
-
collection: C;
|
|
36
|
-
id: string;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export function getCollection<C extends keyof DataEntryMap, E extends CollectionEntry<C>>(
|
|
40
|
-
collection: C,
|
|
41
|
-
filter?: (entry: CollectionEntry<C>) => entry is E,
|
|
42
|
-
): Promise<E[]>;
|
|
43
|
-
export function getCollection<C extends keyof DataEntryMap>(
|
|
44
|
-
collection: C,
|
|
45
|
-
filter?: (entry: CollectionEntry<C>) => unknown,
|
|
46
|
-
): Promise<CollectionEntry<C>[]>;
|
|
47
|
-
|
|
48
|
-
export function getLiveCollection<C extends keyof LiveContentConfig['collections']>(
|
|
49
|
-
collection: C,
|
|
50
|
-
filter?: LiveLoaderCollectionFilterType<C>,
|
|
51
|
-
): Promise<
|
|
52
|
-
import('astro').LiveDataCollectionResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>
|
|
53
|
-
>;
|
|
54
|
-
|
|
55
|
-
export function getEntry<
|
|
56
|
-
C extends keyof DataEntryMap,
|
|
57
|
-
E extends keyof DataEntryMap[C] | (string & {}),
|
|
58
|
-
>(
|
|
59
|
-
entry: ReferenceDataEntry<C, E>,
|
|
60
|
-
): E extends keyof DataEntryMap[C]
|
|
61
|
-
? Promise<DataEntryMap[C][E]>
|
|
62
|
-
: Promise<CollectionEntry<C> | undefined>;
|
|
63
|
-
export function getEntry<
|
|
64
|
-
C extends keyof DataEntryMap,
|
|
65
|
-
E extends keyof DataEntryMap[C] | (string & {}),
|
|
66
|
-
>(
|
|
67
|
-
collection: C,
|
|
68
|
-
id: E,
|
|
69
|
-
): E extends keyof DataEntryMap[C]
|
|
70
|
-
? string extends keyof DataEntryMap[C]
|
|
71
|
-
? Promise<DataEntryMap[C][E]> | undefined
|
|
72
|
-
: Promise<DataEntryMap[C][E]>
|
|
73
|
-
: Promise<CollectionEntry<C> | undefined>;
|
|
74
|
-
export function getLiveEntry<C extends keyof LiveContentConfig['collections']>(
|
|
75
|
-
collection: C,
|
|
76
|
-
filter: string | LiveLoaderEntryFilterType<C>,
|
|
77
|
-
): Promise<import('astro').LiveDataEntryResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>>;
|
|
78
|
-
|
|
79
|
-
/** Resolve an array of entry references from the same collection */
|
|
80
|
-
export function getEntries<C extends keyof DataEntryMap>(
|
|
81
|
-
entries: ReferenceDataEntry<C, keyof DataEntryMap[C]>[],
|
|
82
|
-
): Promise<CollectionEntry<C>[]>;
|
|
83
|
-
|
|
84
|
-
export function render<C extends keyof DataEntryMap>(
|
|
85
|
-
entry: DataEntryMap[C][string],
|
|
86
|
-
): Promise<RenderResult>;
|
|
87
|
-
|
|
88
|
-
export function reference<
|
|
89
|
-
C extends
|
|
90
|
-
| keyof DataEntryMap
|
|
91
|
-
// Allow generic `string` to avoid excessive type errors in the config
|
|
92
|
-
// if `dev` is not running to update as you edit.
|
|
93
|
-
// Invalid collection names will be caught at build time.
|
|
94
|
-
| (string & {}),
|
|
95
|
-
>(
|
|
96
|
-
collection: C,
|
|
97
|
-
): import('astro/zod').ZodPipe<
|
|
98
|
-
import('astro/zod').ZodString,
|
|
99
|
-
import('astro/zod').ZodTransform<
|
|
100
|
-
C extends keyof DataEntryMap
|
|
101
|
-
? {
|
|
102
|
-
collection: C;
|
|
103
|
-
id: string;
|
|
104
|
-
}
|
|
105
|
-
: never,
|
|
106
|
-
string
|
|
107
|
-
>
|
|
108
|
-
>;
|
|
109
|
-
|
|
110
|
-
type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
|
|
111
|
-
type InferEntrySchema<C extends keyof DataEntryMap> = import('astro/zod').infer<
|
|
112
|
-
ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
|
|
113
|
-
>;
|
|
114
|
-
type ExtractLoaderConfig<T> = T extends { loader: infer L } ? L : never;
|
|
115
|
-
type InferLoaderSchema<
|
|
116
|
-
C extends keyof DataEntryMap,
|
|
117
|
-
L = ExtractLoaderConfig<ContentConfig['collections'][C]>,
|
|
118
|
-
> = L extends { schema: import('astro/zod').ZodSchema }
|
|
119
|
-
? import('astro/zod').infer<L['schema']>
|
|
120
|
-
: any;
|
|
121
|
-
|
|
122
|
-
type DataEntryMap = {
|
|
123
|
-
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
type ExtractLoaderTypes<T> = T extends import('astro/loaders').LiveLoader<
|
|
127
|
-
infer TData,
|
|
128
|
-
infer TEntryFilter,
|
|
129
|
-
infer TCollectionFilter,
|
|
130
|
-
infer TError
|
|
131
|
-
>
|
|
132
|
-
? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError }
|
|
133
|
-
: { data: never; entryFilter: never; collectionFilter: never; error: never };
|
|
134
|
-
type ExtractEntryFilterType<T> = ExtractLoaderTypes<T>['entryFilter'];
|
|
135
|
-
type ExtractCollectionFilterType<T> = ExtractLoaderTypes<T>['collectionFilter'];
|
|
136
|
-
type ExtractErrorType<T> = ExtractLoaderTypes<T>['error'];
|
|
137
|
-
|
|
138
|
-
type LiveLoaderDataType<C extends keyof LiveContentConfig['collections']> =
|
|
139
|
-
LiveContentConfig['collections'][C]['schema'] extends undefined
|
|
140
|
-
? ExtractDataType<LiveContentConfig['collections'][C]['loader']>
|
|
141
|
-
: import('astro/zod').infer<
|
|
142
|
-
Exclude<LiveContentConfig['collections'][C]['schema'], undefined>
|
|
143
|
-
>;
|
|
144
|
-
type LiveLoaderEntryFilterType<C extends keyof LiveContentConfig['collections']> =
|
|
145
|
-
ExtractEntryFilterType<LiveContentConfig['collections'][C]['loader']>;
|
|
146
|
-
type LiveLoaderCollectionFilterType<C extends keyof LiveContentConfig['collections']> =
|
|
147
|
-
ExtractCollectionFilterType<LiveContentConfig['collections'][C]['loader']>;
|
|
148
|
-
type LiveLoaderErrorType<C extends keyof LiveContentConfig['collections']> = ExtractErrorType<
|
|
149
|
-
LiveContentConfig['collections'][C]['loader']
|
|
150
|
-
>;
|
|
151
|
-
|
|
152
|
-
export type ContentConfig = typeof import("../src/content.config.js");
|
|
153
|
-
export type LiveContentConfig = never;
|
|
154
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[["Map",1,2],"meta::meta",["Map",3,4,5,6,7,8],"astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":{\"backticks\":true,\"closingQuotes\":{\"double\":\"”\",\"single\":\"’\"},\"dashes\":true,\"ellipses\":true,\"openingQuotes\":{\"double\":\"“\",\"single\":\"‘\"},\"quotes\":true}},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[],\"csp\":false,\"actionBodySizeLimit\":1048576,\"serverIslandBodySizeLimit\":1048576},\"env\":{\"schema\":{},\"validateSecrets\":false},\"prerenderConflictBehavior\":\"warn\",\"fonts\":[{\"name\":\"AkkuratMono\",\"cssVariable\":\"--font-akkurat-mono\",\"provider\":{\"name\":\"local\"},\"fallbacks\":[\"monospace\"],\"options\":{\"variants\":[{\"src\":[\"./src/fonts/Akkurat-Mono.woff2\",\"./src/fonts/Akkurat-Mono.woff\"],\"weight\":500,\"style\":\"normal\"},{\"src\":[\"./src/fonts/Akkurat-Mono-Bold.woff\"],\"weight\":700,\"style\":\"normal\"}]}},{\"name\":\"GrtskPeta\",\"cssVariable\":\"--font-grtsk\",\"provider\":{\"name\":\"local\"},\"options\":{\"variants\":[{\"src\":[\"./src/fonts/Grtsk-Peta-Light.woff2\",\"./src/fonts/Grtsk-Peta-Light.woff\"],\"weight\":300,\"style\":\"normal\"},{\"src\":[\"./src/fonts/Grtsk-Peta-Regular.woff2\",\"./src/fonts/Grtsk-Peta-Regular.woff\"],\"weight\":400,\"style\":\"normal\"},{\"src\":[\"./src/fonts/Grtsk-Peta-Medium.woff2\",\"./src/fonts/Grtsk-Peta-Medium.woff\"],\"weight\":500,\"style\":\"normal\"}]}},{\"name\":\"GrtskTera\",\"cssVariable\":\"--font-grtsk-wide\",\"provider\":{\"name\":\"local\"},\"options\":{\"variants\":[{\"src\":[\"./src/fonts/Grtsk-Tera-Medium.woff2\",\"./src/fonts/Grtsk-Tera-Medium.woff\"],\"weight\":500,\"style\":\"normal\"},{\"src\":[\"./src/fonts/Grtsk-Tera-Bold.woff2\",\"./src/fonts/Grtsk-Tera-Bold.woff\"],\"weight\":700,\"style\":\"normal\"}]}}],\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"chromeDevtoolsWorkspace\":false,\"svgo\":false,\"rustCompiler\":false,\"queuedRendering\":{\"enabled\":false}},\"legacy\":{\"collectionsBackwardsCompat\":false}}","astro-version","6.1.8","content-config-digest","2603162b967e798a"]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/examples/.yarnrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
--install.ignore-engines true
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import react from '@astrojs/react'
|
|
2
|
-
import tailwindcss from '@tailwindcss/vite'
|
|
3
|
-
import { defineConfig, fontProviders } from 'astro/config'
|
|
4
|
-
|
|
5
|
-
export default defineConfig({
|
|
6
|
-
integrations: [react()],
|
|
7
|
-
fonts: [
|
|
8
|
-
{
|
|
9
|
-
provider: fontProviders.local(),
|
|
10
|
-
name: 'AkkuratMono',
|
|
11
|
-
cssVariable: '--font-akkurat-mono',
|
|
12
|
-
options: {
|
|
13
|
-
variants: [
|
|
14
|
-
{
|
|
15
|
-
src: [
|
|
16
|
-
'./src/fonts/Akkurat-Mono.woff2',
|
|
17
|
-
'./src/fonts/Akkurat-Mono.woff',
|
|
18
|
-
],
|
|
19
|
-
weight: 500,
|
|
20
|
-
style: 'normal',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
src: [
|
|
24
|
-
'./src/fonts/Akkurat-Mono-Bold.woff',
|
|
25
|
-
],
|
|
26
|
-
weight: 700,
|
|
27
|
-
style: 'normal',
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
},
|
|
31
|
-
fallbacks: ['monospace'],
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
provider: fontProviders.local(),
|
|
35
|
-
name: 'GrtskPeta',
|
|
36
|
-
cssVariable: '--font-grtsk',
|
|
37
|
-
options: {
|
|
38
|
-
variants: [
|
|
39
|
-
{
|
|
40
|
-
src: [
|
|
41
|
-
'./src/fonts/Grtsk-Peta-Light.woff2',
|
|
42
|
-
'./src/fonts/Grtsk-Peta-Light.woff',
|
|
43
|
-
],
|
|
44
|
-
weight: 300,
|
|
45
|
-
style: 'normal',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
src: [
|
|
49
|
-
'./src/fonts/Grtsk-Peta-Regular.woff2',
|
|
50
|
-
'./src/fonts/Grtsk-Peta-Regular.woff',
|
|
51
|
-
],
|
|
52
|
-
weight: 400,
|
|
53
|
-
style: 'normal',
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
src: [
|
|
57
|
-
'./src/fonts/Grtsk-Peta-Medium.woff2',
|
|
58
|
-
'./src/fonts/Grtsk-Peta-Medium.woff',
|
|
59
|
-
],
|
|
60
|
-
weight: 500,
|
|
61
|
-
style: 'normal',
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
provider: fontProviders.local(),
|
|
68
|
-
name: 'GrtskTera',
|
|
69
|
-
cssVariable: '--font-grtsk-wide',
|
|
70
|
-
options: {
|
|
71
|
-
variants: [
|
|
72
|
-
{
|
|
73
|
-
src: [
|
|
74
|
-
'./src/fonts/Grtsk-Tera-Medium.woff2',
|
|
75
|
-
'./src/fonts/Grtsk-Tera-Medium.woff',
|
|
76
|
-
],
|
|
77
|
-
weight: 500,
|
|
78
|
-
style: 'normal',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
src: [
|
|
82
|
-
'./src/fonts/Grtsk-Tera-Bold.woff2',
|
|
83
|
-
'./src/fonts/Grtsk-Tera-Bold.woff',
|
|
84
|
-
],
|
|
85
|
-
weight: 700,
|
|
86
|
-
style: 'normal',
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
vite: {
|
|
93
|
-
plugins: [tailwindcss()],
|
|
94
|
-
optimizeDeps: {
|
|
95
|
-
include: ['react', 'react-dom', 'react-dom/client', 'react-cool-dimensions'],
|
|
96
|
-
},
|
|
97
|
-
resolve: {
|
|
98
|
-
dedupe: ['react', 'react-dom'],
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
})
|
package/examples/package.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "marqy-examples",
|
|
3
|
-
"private": true,
|
|
4
|
-
"type": "module",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"dev": "astro dev",
|
|
7
|
-
"build": "astro build",
|
|
8
|
-
"preview": "astro preview"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@astrojs/react": "^4.0.0",
|
|
12
|
-
"@base-ui-components/react": "^1.0.0-rc.0",
|
|
13
|
-
"@gsap/react": "^2.1.2",
|
|
14
|
-
"@tailwindcss/vite": "^4.2.0",
|
|
15
|
-
"@types/react": "^19.0.0",
|
|
16
|
-
"@types/react-dom": "^19.0.0",
|
|
17
|
-
"astro": "^6.0.0",
|
|
18
|
-
"gsap": "^3.15.0",
|
|
19
|
-
"marqy": "^1.0.0",
|
|
20
|
-
"react": "^19.0.0",
|
|
21
|
-
"react-cool-dimensions": "^3.0.1",
|
|
22
|
-
"react-dom": "^19.0.0",
|
|
23
|
-
"react-resizable": "^3.1.3",
|
|
24
|
-
"tailwind-merge": "^3.0.0",
|
|
25
|
-
"tailwindcss": "^4.2.0"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"@types/react-resizable": "^3.0.8"
|
|
29
|
-
}
|
|
30
|
-
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<rect width="32" height="32" fill="black"/>
|
|
3
|
-
<path d="M10.2351 8.83203L16.0696 17.3083L21.8473 8.83203H26.2095V23.168H22.3184V14.1144L17.8127 20.8947H14.2287L9.68211 14.232V23.168H5.79102V8.83203H10.2351Z" fill="#f1f1f1"/>
|
|
4
|
-
</svg>
|