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.
Files changed (117) hide show
  1. package/README.md +1 -1
  2. package/dist/core-COOoOGpB.js +21 -0
  3. package/dist/core-COOoOGpB.js.map +1 -0
  4. package/dist/core-CuZGUfsl.cjs +2 -0
  5. package/dist/core-CuZGUfsl.cjs.map +1 -0
  6. package/dist/index.cjs.js +2 -0
  7. package/dist/index.cjs.js.map +1 -0
  8. package/dist/index.d.ts +15 -0
  9. package/dist/index.esm.js +5 -0
  10. package/dist/index.esm.js.map +1 -0
  11. package/dist/marqy.css +4 -0
  12. package/dist/react.cjs.js +2 -0
  13. package/dist/react.cjs.js.map +1 -0
  14. package/dist/react.d.ts +15 -0
  15. package/dist/react.esm.js +60 -0
  16. package/dist/react.esm.js.map +1 -0
  17. package/dist/svelte.cjs.js +2 -0
  18. package/dist/svelte.cjs.js.map +1 -0
  19. package/dist/svelte.d.ts +7 -0
  20. package/dist/svelte.esm.js +54 -0
  21. package/dist/svelte.esm.js.map +1 -0
  22. package/dist/vanilla.cjs.js +2 -0
  23. package/dist/vanilla.cjs.js.map +1 -0
  24. package/dist/vanilla.d.ts +32 -0
  25. package/dist/vanilla.esm.js +96 -0
  26. package/dist/vanilla.esm.js.map +1 -0
  27. package/dist/vue.cjs.js +2 -0
  28. package/dist/vue.cjs.js.map +1 -0
  29. package/dist/vue.d.ts +45 -0
  30. package/dist/vue.esm.js +70 -0
  31. package/dist/vue.esm.js.map +1 -0
  32. package/package.json +81 -19
  33. package/.claude/settings.local.json +0 -13
  34. package/.prettierrc +0 -6
  35. package/.vscode/settings.json +0 -3
  36. package/dist/marqy.d.ts +0 -9
  37. package/dist/marqy.esm.js +0 -2
  38. package/dist/marqy.esm.js.map +0 -1
  39. package/dist/marqy.js +0 -2
  40. package/dist/marqy.js.map +0 -1
  41. package/dist/marqy.umd.js +0 -2
  42. package/dist/marqy.umd.js.map +0 -1
  43. package/examples/.astro/content-assets.mjs +0 -1
  44. package/examples/.astro/content-modules.mjs +0 -1
  45. package/examples/.astro/content.d.ts +0 -154
  46. package/examples/.astro/data-store.json +0 -1
  47. package/examples/.astro/fonts/font-akkurat-mono-500-normal-40f4e0ea0b54adc5.woff2 +0 -0
  48. package/examples/.astro/fonts/font-akkurat-mono-700-normal-b9f40f1447b587bd.woff +0 -0
  49. package/examples/.astro/fonts/font-grtsk-300-normal-8ef14ca23be6893c.woff2 +0 -0
  50. package/examples/.astro/fonts/font-grtsk-400-normal-13ba8954073ee64a.woff2 +0 -0
  51. package/examples/.astro/fonts/font-grtsk-500-normal-d214468daf16245f.woff2 +0 -0
  52. package/examples/.astro/fonts/font-grtsk-wide-500-normal-6f8c2658b9c2ba8e.woff2 +0 -0
  53. package/examples/.astro/fonts/font-grtsk-wide-700-normal-17406f09c7b68ca3.woff2 +0 -0
  54. package/examples/.astro/fonts.d.ts +0 -4
  55. package/examples/.astro/settings.json +0 -5
  56. package/examples/.astro/types.d.ts +0 -3
  57. package/examples/.yarnrc +0 -1
  58. package/examples/astro.config.mjs +0 -101
  59. package/examples/package.json +0 -30
  60. package/examples/public/apple-touch-icon.png +0 -0
  61. package/examples/public/favicon.ico +0 -0
  62. package/examples/public/favicon.svg +0 -4
  63. package/examples/public/marqy-logo.svg +0 -35
  64. package/examples/src/assets/baggu.jpg +0 -0
  65. package/examples/src/assets/bluesky.jpg +0 -0
  66. package/examples/src/assets/clams-lol.jpg +0 -0
  67. package/examples/src/assets/coconut-club-2.jpg +0 -0
  68. package/examples/src/assets/coconut-club.jpg +0 -0
  69. package/examples/src/assets/lucci.jpg +0 -0
  70. package/examples/src/assets/phila-museum.jpg +0 -0
  71. package/examples/src/assets/red-rooster.jpg +0 -0
  72. package/examples/src/assets/sanity.jpg +0 -0
  73. package/examples/src/assets/usal.jpg +0 -0
  74. package/examples/src/assets/vacation.jpg +0 -0
  75. package/examples/src/components/CopyButton.tsx +0 -26
  76. package/examples/src/components/Divider.tsx +0 -3
  77. package/examples/src/components/Footer.astro +0 -7
  78. package/examples/src/components/InUse.astro +0 -89
  79. package/examples/src/components/InUseExamples.tsx +0 -60
  80. package/examples/src/components/MarqyCredits.tsx +0 -33
  81. package/examples/src/components/MarqyHero.tsx +0 -77
  82. package/examples/src/components/MarqyInteractiveDemo.tsx +0 -46
  83. package/examples/src/components/MarqyPlayground.tsx +0 -496
  84. package/examples/src/components/MarqySpeedDemo.tsx +0 -34
  85. package/examples/src/components/MarqyVerticalDemo.tsx +0 -44
  86. package/examples/src/components/Playground.astro +0 -11
  87. package/examples/src/components/QuickStart.astro +0 -59
  88. package/examples/src/components/SectionHeadline.tsx +0 -41
  89. package/examples/src/components/Tile.tsx +0 -32
  90. package/examples/src/content.config.ts +0 -3
  91. package/examples/src/fonts/Akkurat-Mono-Bold.woff +0 -0
  92. package/examples/src/fonts/Akkurat-Mono.woff +0 -0
  93. package/examples/src/fonts/Akkurat-Mono.woff2 +0 -0
  94. package/examples/src/fonts/Grtsk-Peta-Light.woff +0 -0
  95. package/examples/src/fonts/Grtsk-Peta-Light.woff2 +0 -0
  96. package/examples/src/fonts/Grtsk-Peta-Medium.woff +0 -0
  97. package/examples/src/fonts/Grtsk-Peta-Medium.woff2 +0 -0
  98. package/examples/src/fonts/Grtsk-Peta-Regular.woff +0 -0
  99. package/examples/src/fonts/Grtsk-Peta-Regular.woff2 +0 -0
  100. package/examples/src/fonts/Grtsk-Tera-Bold.woff +0 -0
  101. package/examples/src/fonts/Grtsk-Tera-Bold.woff2 +0 -0
  102. package/examples/src/fonts/Grtsk-Tera-Medium.woff +0 -0
  103. package/examples/src/fonts/Grtsk-Tera-Medium.woff2 +0 -0
  104. package/examples/src/layouts/layout.astro +0 -107
  105. package/examples/src/lib/cn.ts +0 -16
  106. package/examples/src/lib/helpers.ts +0 -13
  107. package/examples/src/lib/hooks/useCopyText.ts +0 -47
  108. package/examples/src/pages/index.astro +0 -56
  109. package/examples/src/styles/_base.css +0 -155
  110. package/examples/src/styles/_components.css +0 -123
  111. package/examples/src/styles/_utilities.css +0 -23
  112. package/examples/src/styles/app.css +0 -397
  113. package/examples/tsconfig.json +0 -3
  114. package/examples/yarn.lock +0 -3316
  115. package/marqy.css +0 -131
  116. package/src/marqy.tsx +0 -97
  117. 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.2",
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
- "main": "dist/marqy.js",
21
- "module": "dist/marqy.esm.js",
22
- "unpkg": "dist/marqy.umd.js",
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/marqy.d.ts",
27
- "umd": "./dist/marqy.umd.js",
28
- "import": "./dist/marqy.esm.js",
29
- "require": "./dist/marqy.js"
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": "microbundle build src/marqy.tsx --jsx React.createElement && cp marqy.css dist/marqy.css",
35
- "watch": "microbundle watch src/marqy.tsx --jsx React.createElement",
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/marqy.esm.js",
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
- "dependencies": {}
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
@@ -1,6 +0,0 @@
1
- {
2
- "endOfLine": "lf",
3
- "semi": false,
4
- "singleQuote": true,
5
- "tabWidth": 2
6
- }
@@ -1,3 +0,0 @@
1
- {
2
- "markdown-preview-enhanced.codeBlockTheme": "default.css"
3
- }
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
@@ -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
@@ -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"]
@@ -1,4 +0,0 @@
1
- declare module 'astro:assets' {
2
- /** @internal */
3
- export type CssVariable = (["--font-akkurat-mono","--font-grtsk","--font-grtsk-wide"])[number];
4
- }
@@ -1,5 +0,0 @@
1
- {
2
- "_variables": {
3
- "lastUpdateCheck": 1776792031407
4
- }
5
- }
@@ -1,3 +0,0 @@
1
- /// <reference types="astro/client" />
2
- /// <reference path="content.d.ts" />
3
- /// <reference path="fonts.d.ts" />
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
- })
@@ -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
@@ -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>