@yewdiel21/motion-kit 0.0.0-stage → 0.9.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/NOTICE +38 -0
- package/README.md +80 -2
- package/bin/motion-kit.mjs +242 -0
- package/css.d.ts +2 -0
- package/dist/auto/index.d.ts +63 -0
- package/dist/auto/index.js +207 -0
- package/dist/auto/index.js.map +1 -0
- package/dist/chunk-2BQGFOA7.js +177 -0
- package/dist/chunk-2BQGFOA7.js.map +1 -0
- package/dist/chunk-34XYOXHG.js +2374 -0
- package/dist/chunk-34XYOXHG.js.map +1 -0
- package/dist/chunk-6OJAP6ZL.js +832 -0
- package/dist/chunk-6OJAP6ZL.js.map +1 -0
- package/dist/chunk-ABNRDDO7.js +28 -0
- package/dist/chunk-ABNRDDO7.js.map +1 -0
- package/dist/chunk-FS2HJVVY.js +3320 -0
- package/dist/chunk-FS2HJVVY.js.map +1 -0
- package/dist/chunk-J27KH2A2.js +157 -0
- package/dist/chunk-J27KH2A2.js.map +1 -0
- package/dist/chunk-KLY5BRRI.js +18 -0
- package/dist/chunk-KLY5BRRI.js.map +1 -0
- package/dist/chunk-Q4LVFNLN.js +1617 -0
- package/dist/chunk-Q4LVFNLN.js.map +1 -0
- package/dist/chunk-RFDIZYFX.js +304 -0
- package/dist/chunk-RFDIZYFX.js.map +1 -0
- package/dist/chunk-TGV27ZWM.js +17 -0
- package/dist/chunk-TGV27ZWM.js.map +1 -0
- package/dist/confetti-BSX1CLLV.d.ts +41 -0
- package/dist/css/components/chat-background.css +87 -0
- package/dist/css/components/chat.css +237 -0
- package/dist/css/components/cursor.css +178 -0
- package/dist/css/components/dialog.css +259 -0
- package/dist/css/components/island.css +301 -0
- package/dist/css/components/menu.css +105 -0
- package/dist/css/components/nav.css +1054 -0
- package/dist/css/components/steps.css +50 -0
- package/dist/css/components/theme-picker.css +115 -0
- package/dist/css/components/toast.css +115 -0
- package/dist/css/controls.css +950 -0
- package/dist/css/effects.css +587 -0
- package/dist/css/fonts.css +3 -0
- package/dist/css/themes/black-green.css +126 -0
- package/dist/css/themes/black.css +126 -0
- package/dist/css/themes/blue.css +126 -0
- package/dist/css/themes/brown.css +126 -0
- package/dist/css/themes/cold-blue.css +126 -0
- package/dist/css/themes/funny.css +126 -0
- package/dist/css/themes/gray.css +126 -0
- package/dist/css/themes/green.css +126 -0
- package/dist/css/themes/modern-1.css +126 -0
- package/dist/css/themes/neogreen.css +126 -0
- package/dist/css/themes/new.css +126 -0
- package/dist/css/themes/new2.css +126 -0
- package/dist/css/themes/oled.css +126 -0
- package/dist/css/themes/orange.css +126 -0
- package/dist/css/themes/pastel-pink.css +126 -0
- package/dist/css/themes/pink.css +126 -0
- package/dist/css/themes/purple.css +126 -0
- package/dist/css/themes/red.css +126 -0
- package/dist/css/themes/super-blue.css +126 -0
- package/dist/css/themes.css +2431 -0
- package/dist/css/tokens.css +452 -0
- package/dist/elements/index.d.ts +183 -0
- package/dist/elements/index.js +472 -0
- package/dist/elements/index.js.map +1 -0
- package/dist/engine-CUr9QijM.d.ts +46 -0
- package/dist/gl/index.d.ts +61 -0
- package/dist/gl/index.js +18 -0
- package/dist/gl/index.js.map +1 -0
- package/dist/index.css +5296 -0
- package/dist/index.d.ts +440 -0
- package/dist/index.js +390 -0
- package/dist/index.js.map +1 -0
- package/dist/react/index.d.ts +476 -0
- package/dist/react/index.js +969 -0
- package/dist/react/index.js.map +1 -0
- package/dist/reduced-BM4Ls0g5.d.ts +566 -0
- package/dist/reveal-WFUWDrei.d.ts +416 -0
- package/dist/store-Bqy_obnD.d.ts +195 -0
- package/dist/theme/generate.d.ts +18 -0
- package/dist/theme/generate.js +64 -0
- package/dist/theme/generate.js.map +1 -0
- package/dist/theme/index.d.ts +17 -0
- package/dist/theme/index.js +32 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme-BFMoCzi6.d.ts +158 -0
- package/dist/types-BkS_raL8.d.ts +7 -0
- package/package.json +114 -3
- package/registry.json +469 -0
- package/skills/motion-kit/SKILL.md +189 -0
- package/skills/motion-kit/reference/components.md +86 -0
- package/skills/motion-kit/reference/design.md +92 -0
- package/skills/motion-kit/reference/recipes.md +172 -0
- package/src/auto/auto-init.ts +151 -0
- package/src/auto/index.ts +3 -0
- package/src/auto/parse-options.ts +68 -0
- package/src/components/chat/README.md +90 -0
- package/src/components/chat/chat.css +236 -0
- package/src/components/chat/element.ts +98 -0
- package/src/components/chat/engine.ts +295 -0
- package/src/components/chat/react.tsx +196 -0
- package/src/components/chat-background/README.md +50 -0
- package/src/components/chat-background/audio.ts +56 -0
- package/src/components/chat-background/chat-background.css +86 -0
- package/src/components/chat-background/element.ts +31 -0
- package/src/components/chat-background/engine.ts +108 -0
- package/src/components/chat-background/react.tsx +36 -0
- package/src/components/cursor/README.md +53 -0
- package/src/components/cursor/cursor.css +177 -0
- package/src/components/cursor/element.ts +23 -0
- package/src/components/cursor/engine.ts +254 -0
- package/src/components/cursor/react.tsx +26 -0
- package/src/components/dialog/README.md +106 -0
- package/src/components/dialog/dialog.css +258 -0
- package/src/components/dialog/element.ts +118 -0
- package/src/components/dialog/engine.ts +432 -0
- package/src/components/dialog/react.tsx +200 -0
- package/src/components/icon.tsx +10 -0
- package/src/components/icons.ts +24 -0
- package/src/components/island/README.md +91 -0
- package/src/components/island/element.ts +45 -0
- package/src/components/island/engine.ts +200 -0
- package/src/components/island/island.css +300 -0
- package/src/components/island/react.tsx +115 -0
- package/src/components/menu/README.md +67 -0
- package/src/components/menu/element.ts +55 -0
- package/src/components/menu/engine.ts +142 -0
- package/src/components/menu/menu.css +104 -0
- package/src/components/menu/react.tsx +82 -0
- package/src/components/nav/README.md +85 -0
- package/src/components/nav/element.ts +39 -0
- package/src/components/nav/engine.ts +164 -0
- package/src/components/nav/nav.css +1053 -0
- package/src/components/nav/react.tsx +90 -0
- package/src/components/steps/README.md +70 -0
- package/src/components/steps/element.ts +43 -0
- package/src/components/steps/engine.ts +185 -0
- package/src/components/steps/react.tsx +91 -0
- package/src/components/steps/steps.css +49 -0
- package/src/components/theme-picker/README.md +57 -0
- package/src/components/theme-picker/element.ts +20 -0
- package/src/components/theme-picker/engine.ts +91 -0
- package/src/components/theme-picker/react.tsx +31 -0
- package/src/components/theme-picker/theme-picker.css +114 -0
- package/src/components/toast/README.md +60 -0
- package/src/components/toast/element.ts +25 -0
- package/src/components/toast/engine.ts +483 -0
- package/src/components/toast/react.tsx +22 -0
- package/src/components/toast/store.ts +122 -0
- package/src/components/toast/toast.css +114 -0
- package/src/core/channels.ts +165 -0
- package/src/core/curves.ts +35 -0
- package/src/core/frame.ts +12 -0
- package/src/core/gsap.ts +65 -0
- package/src/core/loop.ts +44 -0
- package/src/core/math.ts +9 -0
- package/src/core/physics-spring.ts +59 -0
- package/src/core/pointer.ts +63 -0
- package/src/core/reduced.ts +21 -0
- package/src/core/scope.ts +70 -0
- package/src/core/scroll-track.ts +106 -0
- package/src/core/split.ts +68 -0
- package/src/core/spring.ts +22 -0
- package/src/core/styles.ts +31 -0
- package/src/core/timing.ts +204 -0
- package/src/core/types.ts +20 -0
- package/src/core/visible.ts +19 -0
- package/src/css/base.css +142 -0
- package/src/css/controls/README.md +122 -0
- package/src/css/controls/burger.css +67 -0
- package/src/css/controls/button.css +226 -0
- package/src/css/controls/checkbox.css +53 -0
- package/src/css/controls/chip.css +85 -0
- package/src/css/controls/field.css +124 -0
- package/src/css/controls/glass.css +220 -0
- package/src/css/controls/icon.css +26 -0
- package/src/css/controls/segmented.css +60 -0
- package/src/css/controls/switch.css +72 -0
- package/src/css/default-theme.css +123 -0
- package/src/css/effects/README.md +134 -0
- package/src/css/effects/anim.css +224 -0
- package/src/css/effects/fade.css +15 -0
- package/src/css/effects/float.css +64 -0
- package/src/css/effects/frost.css +62 -0
- package/src/css/effects/grain.css +58 -0
- package/src/css/effects/loading.css +60 -0
- package/src/css/effects/success.css +22 -0
- package/src/css/effects/text.css +67 -0
- package/src/css/fonts.css +3 -0
- package/src/css/states.css +51 -0
- package/src/css/themes/black-green.css +126 -0
- package/src/css/themes/black.css +126 -0
- package/src/css/themes/blue.css +126 -0
- package/src/css/themes/brown.css +126 -0
- package/src/css/themes/cold-blue.css +126 -0
- package/src/css/themes/funny.css +126 -0
- package/src/css/themes/gray.css +126 -0
- package/src/css/themes/green.css +126 -0
- package/src/css/themes/modern-1.css +126 -0
- package/src/css/themes/neogreen.css +126 -0
- package/src/css/themes/new.css +126 -0
- package/src/css/themes/new2.css +126 -0
- package/src/css/themes/oled.css +126 -0
- package/src/css/themes/orange.css +126 -0
- package/src/css/themes/pastel-pink.css +126 -0
- package/src/css/themes/pink.css +126 -0
- package/src/css/themes/purple.css +126 -0
- package/src/css/themes/red.css +126 -0
- package/src/css/themes/super-blue.css +126 -0
- package/src/css/tokens.css +182 -0
- package/src/elements/base.ts +76 -0
- package/src/elements/index.ts +48 -0
- package/src/gl/index.ts +15 -0
- package/src/gl/liquid-blend/README.md +23 -0
- package/src/gl/liquid-blend/create-liquid-blend.ts +7 -0
- package/src/gl/liquid-blend/shader.ts +9 -0
- package/src/gl/matcap/README.md +23 -0
- package/src/gl/matcap/create-matcap.ts +7 -0
- package/src/gl/matcap/shader.ts +16 -0
- package/src/gl/particle-hero/README.md +41 -0
- package/src/gl/particle-hero/create-particle-hero.ts +544 -0
- package/src/gl/particle-hero/particle-hero.css +19 -0
- package/src/gl/particle-hero/shaders.ts +84 -0
- package/src/gl/shader-blur/README.md +23 -0
- package/src/gl/shader-blur/create-shader-blur.ts +7 -0
- package/src/gl/shader-blur/shader.ts +11 -0
- package/src/gl/shader-grain/README.md +23 -0
- package/src/gl/shader-grain/create-shader-grain.ts +7 -0
- package/src/gl/shader-grain/shader.ts +6 -0
- package/src/gl/shared/create-shader-effect.ts +186 -0
- package/src/gl/shared/shader.css +3 -0
- package/src/gl/shared/shaders.ts +30 -0
- package/src/index.ts +177 -0
- package/src/motion/anchor.ts +45 -0
- package/src/motion/chat.ts +97 -0
- package/src/motion/confetti.ts +130 -0
- package/src/motion/count.ts +95 -0
- package/src/motion/details.ts +70 -0
- package/src/motion/drag-dismiss.ts +231 -0
- package/src/motion/effects.ts +81 -0
- package/src/motion/entrances.ts +27 -0
- package/src/motion/floating.ts +389 -0
- package/src/motion/flow.ts +115 -0
- package/src/motion/indicator.ts +44 -0
- package/src/motion/layout.ts +39 -0
- package/src/motion/liquid.ts +227 -0
- package/src/motion/morph.ts +540 -0
- package/src/motion/reveal.ts +112 -0
- package/src/motion/sheet.ts +65 -0
- package/src/motion/surface.ts +108 -0
- package/src/react/animated-number.tsx +30 -0
- package/src/react/flip-group.tsx +44 -0
- package/src/react/frost.tsx +33 -0
- package/src/react/index.ts +80 -0
- package/src/react/slot-text.tsx +44 -0
- package/src/react/theme-provider.tsx +42 -0
- package/src/react/use-card-dock.ts +9 -0
- package/src/react/use-cascade.ts +9 -0
- package/src/react/use-contrast.ts +9 -0
- package/src/react/use-counter.ts +8 -0
- package/src/react/use-curved-carousel.ts +10 -0
- package/src/react/use-depth-grid.ts +9 -0
- package/src/react/use-details.ts +7 -0
- package/src/react/use-dock-pill.ts +10 -0
- package/src/react/use-drag-ruler.ts +10 -0
- package/src/react/use-fill-text.ts +9 -0
- package/src/react/use-fit-text.ts +8 -0
- package/src/react/use-flow.ts +8 -0
- package/src/react/use-frame-zoom.ts +9 -0
- package/src/react/use-infinite-reel.ts +8 -0
- package/src/react/use-letters.ts +9 -0
- package/src/react/use-liquid-blend.ts +8 -0
- package/src/react/use-marquee.ts +9 -0
- package/src/react/use-mask-text.ts +9 -0
- package/src/react/use-matcap.ts +8 -0
- package/src/react/use-parallax.ts +9 -0
- package/src/react/use-particle-hero.ts +9 -0
- package/src/react/use-pile.ts +8 -0
- package/src/react/use-pop.ts +8 -0
- package/src/react/use-radial-menu.ts +10 -0
- package/src/react/use-recipe.ts +38 -0
- package/src/react/use-reflow.ts +9 -0
- package/src/react/use-repel-bento.ts +8 -0
- package/src/react/use-reveal.ts +8 -0
- package/src/react/use-rotator.ts +10 -0
- package/src/react/use-shader-blur.ts +8 -0
- package/src/react/use-shader-grain.ts +8 -0
- package/src/react/use-slot-text.ts +17 -0
- package/src/react/use-snap-strip.ts +9 -0
- package/src/react/use-sortable.ts +14 -0
- package/src/react/use-spring-cards.ts +8 -0
- package/src/react/use-stretch-footer.ts +20 -0
- package/src/react/use-tabs.ts +10 -0
- package/src/react/use-text-roll.ts +9 -0
- package/src/react/use-ticket-menu.ts +15 -0
- package/src/react/use-words.ts +8 -0
- package/src/recipes/card-dock/README.md +36 -0
- package/src/recipes/card-dock/card-dock.css +178 -0
- package/src/recipes/card-dock/create-card-dock.ts +97 -0
- package/src/recipes/cascade/README.md +33 -0
- package/src/recipes/cascade/create-cascade.ts +111 -0
- package/src/recipes/contrast/README.md +29 -0
- package/src/recipes/contrast/create-contrast.ts +68 -0
- package/src/recipes/counter/README.md +42 -0
- package/src/recipes/counter/create-counter.ts +84 -0
- package/src/recipes/curved-carousel/README.md +50 -0
- package/src/recipes/curved-carousel/carousel-math.ts +20 -0
- package/src/recipes/curved-carousel/create-curved-carousel.ts +257 -0
- package/src/recipes/curved-carousel/curved-carousel.css +50 -0
- package/src/recipes/depth-grid/README.md +30 -0
- package/src/recipes/depth-grid/create-depth-grid.ts +120 -0
- package/src/recipes/details/README.md +31 -0
- package/src/recipes/details/create-details.ts +27 -0
- package/src/recipes/dock-pill/README.md +23 -0
- package/src/recipes/dock-pill/create-dock-pill.ts +68 -0
- package/src/recipes/dock-pill/dock-pill.css +5 -0
- package/src/recipes/drag-ruler/README.md +21 -0
- package/src/recipes/drag-ruler/create-drag-ruler.ts +95 -0
- package/src/recipes/drag-ruler/drag-ruler.css +16 -0
- package/src/recipes/fill-text/README.md +27 -0
- package/src/recipes/fill-text/create-fill-text.ts +93 -0
- package/src/recipes/fit-text/README.md +37 -0
- package/src/recipes/fit-text/create-fit-text.ts +55 -0
- package/src/recipes/fit-text/fit-text.css +6 -0
- package/src/recipes/flow/README.md +46 -0
- package/src/recipes/flow/create-flow.ts +55 -0
- package/src/recipes/frame-zoom/README.md +29 -0
- package/src/recipes/frame-zoom/create-frame-zoom.ts +91 -0
- package/src/recipes/infinite-reel/README.md +23 -0
- package/src/recipes/infinite-reel/create-infinite-reel.ts +140 -0
- package/src/recipes/infinite-reel/infinite-reel.css +8 -0
- package/src/recipes/letters/README.md +30 -0
- package/src/recipes/letters/create-letters.ts +113 -0
- package/src/recipes/marquee/README.md +32 -0
- package/src/recipes/marquee/create-marquee.ts +74 -0
- package/src/recipes/marquee/marquee.css +41 -0
- package/src/recipes/mask-text/README.md +39 -0
- package/src/recipes/mask-text/create-mask-text.ts +134 -0
- package/src/recipes/parallax/README.md +31 -0
- package/src/recipes/parallax/create-parallax.ts +74 -0
- package/src/recipes/pile/README.md +48 -0
- package/src/recipes/pile/create-pile.ts +50 -0
- package/src/recipes/pile/pile-math.ts +27 -0
- package/src/recipes/pile/pile.css +63 -0
- package/src/recipes/pill/README.md +30 -0
- package/src/recipes/pill/pill.css +48 -0
- package/src/recipes/pop/README.md +36 -0
- package/src/recipes/pop/create-pop.ts +52 -0
- package/src/recipes/radial-menu/README.md +44 -0
- package/src/recipes/radial-menu/create-radial-menu.ts +96 -0
- package/src/recipes/radial-menu/radial-menu.css +45 -0
- package/src/recipes/reflow/README.md +47 -0
- package/src/recipes/reflow/create-reflow.ts +49 -0
- package/src/recipes/repel-bento/README.md +21 -0
- package/src/recipes/repel-bento/create-repel-bento.ts +65 -0
- package/src/recipes/repel-bento/repel-bento.css +3 -0
- package/src/recipes/reveal/README.md +36 -0
- package/src/recipes/reveal/create-reveal.ts +48 -0
- package/src/recipes/rotator/README.md +21 -0
- package/src/recipes/rotator/create-rotator.ts +66 -0
- package/src/recipes/rotator/rotator.css +3 -0
- package/src/recipes/slot-text/README.md +44 -0
- package/src/recipes/slot-text/create-slot-text.ts +244 -0
- package/src/recipes/slot-text/slot-text.css +42 -0
- package/src/recipes/snap-strip/README.md +31 -0
- package/src/recipes/snap-strip/create-snap-strip.ts +133 -0
- package/src/recipes/snap-strip/snap-strip.css +23 -0
- package/src/recipes/sortable/README.md +88 -0
- package/src/recipes/sortable/create-sortable.ts +863 -0
- package/src/recipes/sortable/sortable.css +40 -0
- package/src/recipes/spring-cards/README.md +48 -0
- package/src/recipes/spring-cards/create-spring-cards.ts +140 -0
- package/src/recipes/spring-cards/spring-cards.css +23 -0
- package/src/recipes/stretch-footer/README.md +44 -0
- package/src/recipes/stretch-footer/create-stretch-footer.ts +69 -0
- package/src/recipes/stretch-footer/stretch-footer.css +28 -0
- package/src/recipes/tabs/README.md +39 -0
- package/src/recipes/tabs/create-tabs.ts +91 -0
- package/src/recipes/tabs/tabs.css +19 -0
- package/src/recipes/text-roll/README.md +35 -0
- package/src/recipes/text-roll/create-text-roll.ts +137 -0
- package/src/recipes/text-roll/text-roll.css +21 -0
- package/src/recipes/ticket-menu/README.md +24 -0
- package/src/recipes/ticket-menu/create-ticket-menu.ts +6 -0
- package/src/recipes/words/README.md +43 -0
- package/src/recipes/words/create-words.ts +114 -0
- package/src/theme/css-format.ts +32 -0
- package/src/theme/generate.ts +72 -0
- package/src/theme/index.ts +15 -0
- package/src/theme/presets.ts +79 -0
- package/src/theme/theme.ts +119 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/theme/generate.ts"],"sourcesContent":["import {\n Hct,\n MaterialDynamicColors,\n SchemeContent,\n SchemeExpressive,\n SchemeFidelity,\n SchemeMonochrome,\n SchemeNeutral,\n SchemeTonalSpot,\n SchemeVibrant,\n argbFromHex,\n hexFromArgb,\n} from '@material/material-color-utilities';\nimport { ROLES, type Role } from './presets';\nimport { themeCss, type Palette, type ThemePalettes } from './css-format';\nimport { registerTheme, setTheme } from './theme';\n\n/*\n * Material 3 palettes from any colour, in the same 37 roles as Stepbro's themes.\n * Needs the optional peer @material/material-color-utilities ^0.3.0\n * (0.4.0 publishes ESM imports without extensions that Node cannot load).\n */\n\nexport type ThemeVariant = 'tonal-spot' | 'vibrant' | 'expressive' | 'neutral' | 'content' | 'fidelity' | 'monochrome';\n\nexport interface GenerateOptions {\n variant?: ThemeVariant;\n /** -1 (reduced) … 0 (standard) … 1 (high). */\n contrast?: number;\n}\n\nconst SCHEMES = {\n 'tonal-spot': SchemeTonalSpot,\n vibrant: SchemeVibrant,\n expressive: SchemeExpressive,\n neutral: SchemeNeutral,\n content: SchemeContent,\n fidelity: SchemeFidelity,\n monochrome: SchemeMonochrome,\n} as const;\n\nconst camel = (role: string) => role.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase());\ntype Dynamic = { getArgb(scheme: unknown): number };\n\nexport function generateTheme(seed: string, { variant = 'tonal-spot', contrast = 0 }: GenerateOptions = {}): ThemePalettes {\n if (!/^#?[0-9a-f]{6}$/i.test(seed)) throw new Error(`generateTheme: seed must be a #rrggbb colour (got \"${seed}\")`);\n const Scheme = SCHEMES[variant];\n if (!Scheme) throw new Error(`generateTheme: unknown variant \"${variant}\"`);\n const source = Hct.fromInt(argbFromHex(seed.startsWith('#') ? seed : `#${seed}`));\n const palette = (dark: boolean): Palette => {\n const scheme = new Scheme(source, dark, contrast);\n const colors = MaterialDynamicColors as unknown as Record<string, Dynamic>;\n return Object.fromEntries(ROLES.map((role) => [role, hexFromArgb(colors[camel(role)].getArgb(scheme))])) as Record<Role, string>;\n };\n return { light: palette(false), dark: palette(true) };\n}\n\nexport { themeCss };\n\n/** Generate a theme from `seed`, inject it as a <style>, register and select it. */\nexport function applyTheme(seed: string, { id = 'custom', ...options }: GenerateOptions & { id?: string } = {}) {\n const css = themeCss(id, generateTheme(seed, options));\n let style = document.querySelector<HTMLStyleElement>(`style[data-mk-theme-style=\"${id}\"]`);\n if (!style) {\n style = document.createElement('style');\n style.dataset.mkThemeStyle = id;\n document.head.append(style);\n }\n style.textContent = css;\n registerTheme(id);\n return setTheme(id);\n}\n"],"mappings":";;;;;;;;;;;AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAmBP,IAAM,UAAU;AAAA,EACd,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,QAAQ,CAAC,SAAiB,KAAK,QAAQ,aAAa,CAAC,GAAG,MAAc,EAAE,YAAY,CAAC;AAGpF,SAAS,cAAc,MAAc,EAAE,UAAU,cAAc,WAAW,EAAE,IAAqB,CAAC,GAAkB;AACzH,MAAI,CAAC,mBAAmB,KAAK,IAAI,EAAG,OAAM,IAAI,MAAM,sDAAsD,IAAI,IAAI;AAClH,QAAM,SAAS,QAAQ,OAAO;AAC9B,MAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,mCAAmC,OAAO,GAAG;AAC1E,QAAM,SAAS,IAAI,QAAQ,YAAY,KAAK,WAAW,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;AAChF,QAAM,UAAU,CAAC,SAA2B;AAC1C,UAAM,SAAS,IAAI,OAAO,QAAQ,MAAM,QAAQ;AAChD,UAAM,SAAS;AACf,WAAO,OAAO,YAAY,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,OAAO,MAAM,IAAI,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;AAAA,EACzG;AACA,SAAO,EAAE,OAAO,QAAQ,KAAK,GAAG,MAAM,QAAQ,IAAI,EAAE;AACtD;AAKO,SAAS,WAAW,MAAc,EAAE,KAAK,UAAU,GAAG,QAAQ,IAAuC,CAAC,GAAG;AAC9G,QAAM,MAAM,SAAS,IAAI,cAAc,MAAM,OAAO,CAAC;AACrD,MAAI,QAAQ,SAAS,cAAgC,8BAA8B,EAAE,IAAI;AACzF,MAAI,CAAC,OAAO;AACV,YAAQ,SAAS,cAAc,OAAO;AACtC,UAAM,QAAQ,eAAe;AAC7B,aAAS,KAAK,OAAO,KAAK;AAAA,EAC5B;AACA,QAAM,cAAc;AACpB,gBAAc,EAAE;AAChB,SAAO,SAAS,EAAE;AACpB;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { R as Role } from '../theme-BFMoCzi6.js';
|
|
2
|
+
export { D as DEFAULT_THEME, I as InitThemeOptions, M as MK_THEME_HEAD_SCRIPT, c as ROLES, d as THEMES, e as THEME_EVENT, f as ThemeId, b as ThemeMode, g as ThemePreset, T as ThemeState, h as getTheme, i as initTheme, r as registerTheme, a as setMode, s as setTheme, t as themeHeadScript } from '../theme-BFMoCzi6.js';
|
|
3
|
+
|
|
4
|
+
type Palette = Record<Role, string>;
|
|
5
|
+
interface ThemePalettes {
|
|
6
|
+
light: Palette;
|
|
7
|
+
dark: Palette;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A theme's stylesheet: light on `[data-mk-theme="<id>"]`, dark when the element
|
|
11
|
+
* or an ancestor has `data-mk-mode="dark"`, and dark under the system's dark
|
|
12
|
+
* scheme unless the page forces light. Same format as css/themes/*.css
|
|
13
|
+
* (scripts/import-themes.mjs keeps a copy of this function; a test checks they agree).
|
|
14
|
+
*/
|
|
15
|
+
declare function themeCss(id: string, { light, dark }: ThemePalettes): string;
|
|
16
|
+
|
|
17
|
+
export { type Palette, Role, type ThemePalettes, themeCss };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import {
|
|
2
|
+
themeCss
|
|
3
|
+
} from "../chunk-ABNRDDO7.js";
|
|
4
|
+
import {
|
|
5
|
+
DEFAULT_THEME,
|
|
6
|
+
MK_THEME_HEAD_SCRIPT,
|
|
7
|
+
ROLES,
|
|
8
|
+
THEMES,
|
|
9
|
+
THEME_EVENT,
|
|
10
|
+
getTheme,
|
|
11
|
+
initTheme,
|
|
12
|
+
registerTheme,
|
|
13
|
+
setMode,
|
|
14
|
+
setTheme,
|
|
15
|
+
themeHeadScript
|
|
16
|
+
} from "../chunk-J27KH2A2.js";
|
|
17
|
+
import "../chunk-TGV27ZWM.js";
|
|
18
|
+
export {
|
|
19
|
+
DEFAULT_THEME,
|
|
20
|
+
MK_THEME_HEAD_SCRIPT,
|
|
21
|
+
ROLES,
|
|
22
|
+
THEMES,
|
|
23
|
+
THEME_EVENT,
|
|
24
|
+
getTheme,
|
|
25
|
+
initTheme,
|
|
26
|
+
registerTheme,
|
|
27
|
+
setMode,
|
|
28
|
+
setTheme,
|
|
29
|
+
themeCss,
|
|
30
|
+
themeHeadScript
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/** The 37 Material 3 colour roles every theme defines (`--md-sys-color-<role>`). */
|
|
2
|
+
declare const ROLES: readonly ["background", "on-background", "surface", "surface-dim", "surface-bright", "surface-container-lowest", "surface-container-low", "surface-container", "surface-container-high", "surface-container-highest", "on-surface", "surface-variant", "on-surface-variant", "inverse-surface", "inverse-on-surface", "outline", "outline-variant", "shadow", "scrim", "surface-tint", "primary", "on-primary", "primary-container", "on-primary-container", "inverse-primary", "secondary", "on-secondary", "secondary-container", "on-secondary-container", "tertiary", "on-tertiary", "tertiary-container", "on-tertiary-container", "error", "on-error", "error-container", "on-error-container"];
|
|
3
|
+
type Role = (typeof ROLES)[number];
|
|
4
|
+
interface ThemePreset {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
/** Hidden from Stepbro's own picker (kept in its code). */
|
|
8
|
+
readonly hidden: boolean;
|
|
9
|
+
/** Modes with their own palette. OLED is dark-only and uses Black in light mode. */
|
|
10
|
+
readonly modes: readonly ('light' | 'dark')[];
|
|
11
|
+
/** Representative colour (dark surface-tint): swatch and generator seed. */
|
|
12
|
+
readonly seed: string;
|
|
13
|
+
}
|
|
14
|
+
declare const THEMES: readonly [{
|
|
15
|
+
readonly id: "black";
|
|
16
|
+
readonly name: "Black";
|
|
17
|
+
readonly hidden: true;
|
|
18
|
+
readonly modes: readonly ["light", "dark"];
|
|
19
|
+
readonly seed: "#b4c7ed";
|
|
20
|
+
}, {
|
|
21
|
+
readonly id: "blue";
|
|
22
|
+
readonly name: "Blue";
|
|
23
|
+
readonly hidden: false;
|
|
24
|
+
readonly modes: readonly ["light", "dark"];
|
|
25
|
+
readonly seed: "#b3c5ff";
|
|
26
|
+
}, {
|
|
27
|
+
readonly id: "purple";
|
|
28
|
+
readonly name: "Purple";
|
|
29
|
+
readonly hidden: false;
|
|
30
|
+
readonly modes: readonly ["light", "dark"];
|
|
31
|
+
readonly seed: "#d2bcff";
|
|
32
|
+
}, {
|
|
33
|
+
readonly id: "neogreen";
|
|
34
|
+
readonly name: "Neogreen";
|
|
35
|
+
readonly hidden: false;
|
|
36
|
+
readonly modes: readonly ["light", "dark"];
|
|
37
|
+
readonly seed: "#00e563";
|
|
38
|
+
}, {
|
|
39
|
+
readonly id: "green";
|
|
40
|
+
readonly name: "Green";
|
|
41
|
+
readonly hidden: true;
|
|
42
|
+
readonly modes: readonly ["light", "dark"];
|
|
43
|
+
readonly seed: "#53e081";
|
|
44
|
+
}, {
|
|
45
|
+
readonly id: "red";
|
|
46
|
+
readonly name: "Red";
|
|
47
|
+
readonly hidden: false;
|
|
48
|
+
readonly modes: readonly ["light", "dark"];
|
|
49
|
+
readonly seed: "#ffb4ac";
|
|
50
|
+
}, {
|
|
51
|
+
readonly id: "orange";
|
|
52
|
+
readonly name: "Orange";
|
|
53
|
+
readonly hidden: true;
|
|
54
|
+
readonly modes: readonly ["light", "dark"];
|
|
55
|
+
readonly seed: "#ffc988";
|
|
56
|
+
}, {
|
|
57
|
+
readonly id: "pink";
|
|
58
|
+
readonly name: "Pink";
|
|
59
|
+
readonly hidden: false;
|
|
60
|
+
readonly modes: readonly ["light", "dark"];
|
|
61
|
+
readonly seed: "#f7acff";
|
|
62
|
+
}, {
|
|
63
|
+
readonly id: "pastel-pink";
|
|
64
|
+
readonly name: "Pastel Pink";
|
|
65
|
+
readonly hidden: false;
|
|
66
|
+
readonly modes: readonly ["light", "dark"];
|
|
67
|
+
readonly seed: "#ffcee8";
|
|
68
|
+
}, {
|
|
69
|
+
readonly id: "brown";
|
|
70
|
+
readonly name: "Brown";
|
|
71
|
+
readonly hidden: false;
|
|
72
|
+
readonly modes: readonly ["light", "dark"];
|
|
73
|
+
readonly seed: "#ffb783";
|
|
74
|
+
}, {
|
|
75
|
+
readonly id: "super-blue";
|
|
76
|
+
readonly name: "Super Blue";
|
|
77
|
+
readonly hidden: false;
|
|
78
|
+
readonly modes: readonly ["light", "dark"];
|
|
79
|
+
readonly seed: "#bcc2ff";
|
|
80
|
+
}, {
|
|
81
|
+
readonly id: "cold-blue";
|
|
82
|
+
readonly name: "Cold Blue";
|
|
83
|
+
readonly hidden: true;
|
|
84
|
+
readonly modes: readonly ["light", "dark"];
|
|
85
|
+
readonly seed: "#87ceff";
|
|
86
|
+
}, {
|
|
87
|
+
readonly id: "modern-1";
|
|
88
|
+
readonly name: "Modern";
|
|
89
|
+
readonly hidden: true;
|
|
90
|
+
readonly modes: readonly ["light", "dark"];
|
|
91
|
+
readonly seed: "#b3c5ff";
|
|
92
|
+
}, {
|
|
93
|
+
readonly id: "gray";
|
|
94
|
+
readonly name: "Gray";
|
|
95
|
+
readonly hidden: false;
|
|
96
|
+
readonly modes: readonly ["light", "dark"];
|
|
97
|
+
readonly seed: "#c6c6c6";
|
|
98
|
+
}, {
|
|
99
|
+
readonly id: "oled";
|
|
100
|
+
readonly name: "Oled";
|
|
101
|
+
readonly hidden: false;
|
|
102
|
+
readonly modes: readonly ["dark"];
|
|
103
|
+
readonly seed: "#9fb8e4";
|
|
104
|
+
}, {
|
|
105
|
+
readonly id: "funny";
|
|
106
|
+
readonly name: "Funny";
|
|
107
|
+
readonly hidden: true;
|
|
108
|
+
readonly modes: readonly ["light", "dark"];
|
|
109
|
+
readonly seed: "#22d3ee";
|
|
110
|
+
}, {
|
|
111
|
+
readonly id: "new";
|
|
112
|
+
readonly name: "New";
|
|
113
|
+
readonly hidden: true;
|
|
114
|
+
readonly modes: readonly ["light", "dark"];
|
|
115
|
+
readonly seed: "#c4a68d";
|
|
116
|
+
}, {
|
|
117
|
+
readonly id: "new2";
|
|
118
|
+
readonly name: "New 2";
|
|
119
|
+
readonly hidden: true;
|
|
120
|
+
readonly modes: readonly ["light", "dark"];
|
|
121
|
+
readonly seed: "#a3ffb7";
|
|
122
|
+
}, {
|
|
123
|
+
readonly id: "black-green";
|
|
124
|
+
readonly name: "Black Green";
|
|
125
|
+
readonly hidden: true;
|
|
126
|
+
readonly modes: readonly ["light", "dark"];
|
|
127
|
+
readonly seed: "#a0d499";
|
|
128
|
+
}];
|
|
129
|
+
type ThemeId = (typeof THEMES)[number]['id'];
|
|
130
|
+
declare const DEFAULT_THEME: ThemeId;
|
|
131
|
+
|
|
132
|
+
type ThemeMode = 'light' | 'dark' | 'system';
|
|
133
|
+
interface ThemeState {
|
|
134
|
+
id: string;
|
|
135
|
+
mode: ThemeMode;
|
|
136
|
+
/** The mode actually shown (system resolved through prefers-color-scheme). */
|
|
137
|
+
resolved: 'light' | 'dark';
|
|
138
|
+
}
|
|
139
|
+
interface InitThemeOptions {
|
|
140
|
+
/** Theme when nothing is stored or set on the root. Default: neogreen. */
|
|
141
|
+
default?: ThemeId | (string & {});
|
|
142
|
+
mode?: ThemeMode;
|
|
143
|
+
storageKey?: string;
|
|
144
|
+
root?: HTMLElement;
|
|
145
|
+
}
|
|
146
|
+
declare const THEME_EVENT = "mk:theme";
|
|
147
|
+
/** Accept an extra theme id in setTheme (generated or project themes). */
|
|
148
|
+
declare function registerTheme(id: string): void;
|
|
149
|
+
declare function getTheme(): ThemeState;
|
|
150
|
+
/** Apply the stored (or default) theme and mode. Call once on startup. */
|
|
151
|
+
declare function initTheme(options?: InitThemeOptions): ThemeState;
|
|
152
|
+
declare function setTheme(id: ThemeId | (string & {})): ThemeState;
|
|
153
|
+
declare function setMode(mode: ThemeMode): ThemeState;
|
|
154
|
+
/** Inline script for <head>: applies the stored choice before the first paint (no flash). */
|
|
155
|
+
declare function themeHeadScript({ storageKey, default: fallback, mode }?: Omit<InitThemeOptions, 'root'>): string;
|
|
156
|
+
declare const MK_THEME_HEAD_SCRIPT: string;
|
|
157
|
+
|
|
158
|
+
export { DEFAULT_THEME as D, type InitThemeOptions as I, MK_THEME_HEAD_SCRIPT as M, type Role as R, type ThemeState as T, setMode as a, type ThemeMode as b, ROLES as c, THEMES as d, THEME_EVENT as e, type ThemeId as f, type ThemePreset as g, getTheme as h, initTheme as i, registerTheme as r, setTheme as s, themeHeadScript as t };
|
package/package.json
CHANGED
|
@@ -1,6 +1,117 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yewdiel21/motion-kit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Motion toolkit for vanilla, Astro and React: GSAP recipes, accessible components, 19 themes, CSS controls and optional WebGL effects.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "UNLICENSED",
|
|
7
|
+
"homepage": "https://github.com/YewdielMartinez/motion-kit#readme",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/YewdielMartinez/motion-kit/issues"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"animation",
|
|
13
|
+
"gsap",
|
|
14
|
+
"react",
|
|
15
|
+
"astro",
|
|
16
|
+
"webgl",
|
|
17
|
+
"motion",
|
|
18
|
+
"ui"
|
|
19
|
+
],
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/YewdielMartinez/motion-kit.git",
|
|
23
|
+
"directory": "packages/motion-kit"
|
|
24
|
+
},
|
|
25
|
+
"sideEffects": [
|
|
26
|
+
"**/*.css"
|
|
27
|
+
],
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"import": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./react": {
|
|
34
|
+
"types": "./dist/react/index.d.ts",
|
|
35
|
+
"import": "./dist/react/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./auto": {
|
|
38
|
+
"types": "./dist/auto/index.d.ts",
|
|
39
|
+
"import": "./dist/auto/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./elements": {
|
|
42
|
+
"types": "./dist/elements/index.d.ts",
|
|
43
|
+
"import": "./dist/elements/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./theme": {
|
|
46
|
+
"types": "./dist/theme/index.d.ts",
|
|
47
|
+
"import": "./dist/theme/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./theme/generate": {
|
|
50
|
+
"types": "./dist/theme/generate.d.ts",
|
|
51
|
+
"import": "./dist/theme/generate.js"
|
|
52
|
+
},
|
|
53
|
+
"./gl": {
|
|
54
|
+
"types": "./dist/gl/index.d.ts",
|
|
55
|
+
"import": "./dist/gl/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./css": {
|
|
58
|
+
"types": "./css.d.ts",
|
|
59
|
+
"default": "./dist/index.css"
|
|
60
|
+
},
|
|
61
|
+
"./css/*": {
|
|
62
|
+
"types": "./css.d.ts",
|
|
63
|
+
"default": "./dist/css/*.css"
|
|
64
|
+
},
|
|
65
|
+
"./package.json": "./package.json",
|
|
66
|
+
"./registry.json": "./registry.json"
|
|
67
|
+
},
|
|
68
|
+
"bin": {
|
|
69
|
+
"motion-kit": "bin/motion-kit.mjs"
|
|
70
|
+
},
|
|
71
|
+
"files": [
|
|
72
|
+
"dist",
|
|
73
|
+
"src",
|
|
74
|
+
"registry.json",
|
|
75
|
+
"bin",
|
|
76
|
+
"skills",
|
|
77
|
+
"NOTICE",
|
|
78
|
+
"css.d.ts"
|
|
79
|
+
],
|
|
80
|
+
"peerDependencies": {
|
|
81
|
+
"gsap": ">=3.13.0",
|
|
82
|
+
"react": ">=18",
|
|
83
|
+
"@material/material-color-utilities": "^0.3.0"
|
|
84
|
+
},
|
|
85
|
+
"peerDependenciesMeta": {
|
|
86
|
+
"react": {
|
|
87
|
+
"optional": true
|
|
88
|
+
},
|
|
89
|
+
"@material/material-color-utilities": {
|
|
90
|
+
"optional": true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"publishConfig": {
|
|
94
|
+
"registry": "https://registry.npmjs.org/",
|
|
95
|
+
"access": "public"
|
|
96
|
+
},
|
|
97
|
+
"devDependencies": {
|
|
98
|
+
"@material/material-color-utilities": "^0.3.0",
|
|
99
|
+
"@testing-library/dom": "^10.4.2",
|
|
100
|
+
"@testing-library/react": "^16.3.3",
|
|
101
|
+
"@types/node": "^24.19.2",
|
|
102
|
+
"@types/react": "19.2.14",
|
|
103
|
+
"@types/react-dom": "19.2.3",
|
|
104
|
+
"gsap": "3.14.2",
|
|
105
|
+
"jsdom": "^30.1.3",
|
|
106
|
+
"react": "19.2.4",
|
|
107
|
+
"react-dom": "19.2.4",
|
|
108
|
+
"tsup": "^8.5.1",
|
|
109
|
+
"typescript": "5.9.3",
|
|
110
|
+
"vitest": "4.1.11"
|
|
111
|
+
},
|
|
112
|
+
"scripts": {
|
|
113
|
+
"build": "tsup && node scripts/build-css.mjs",
|
|
114
|
+
"test": "vitest run",
|
|
115
|
+
"typecheck": "tsc --noEmit"
|
|
116
|
+
}
|
|
6
117
|
}
|