PageSourceSearch

https://freesewing.dev/assets/js/2f5b922e.c607c9ae.js

js freesewing.dev collected 2026-10-08 19:52:25 UTC 3,337 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdev=self.webpackChunkdev||[]).push([[11892],{68807:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"reference/plugins/mirror/readme","title":"plugin-mirror","description":"Published as @freesewing/plugin-mirror, this plugin provides [the mirror","source":"@site/docs/reference/plugins/mirror/readme.mdx","sourceDirName":"reference/plugins/mirror","slug":"/reference/plugins/mirror/","permalink":"/reference/plugins/mirror/","draft":false,"unlisted":false,"editUrl":"https://codeberg.org/freesewing/freesewing/src/branch/develop/sites/dev/docs/reference/plugins/mirror/readme.mdx","tags":[],"version":"current","frontMatter":{"title":"plugin-mirror"},"sidebar":"tutorialSidebar","previous":{"title":"plugin-measurements","permalink":"/reference/plugins/measurements/"},"next":{"title":"plugin-path-utils","permalink":"/reference/plugins/path-utils/"}}');var s=n(31085),t=n(71184);const o={title:"plugin-mirror"},l=void 0,a={},p=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Notes",id:"notes",level:2}];function c(e){const r={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:["Published as ",(0,s.jsx)(r.a,{href:"https://www.npmjs.com/package/@freesewing/plugin-mirror",children:"@freesewing/plugin-mirror"}),", this plugin provides ",(0,s.jsx)(r.a,{href:"/reference/macros/mirror",children:"the mirror\nmacro"})," which facilitates mirroring a number of\npoints, paths and/or snippets around a given mirror line."]}),"\n",(0,s.jsx)(r.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-sh",children:"npm install @freesewing/plugin-mirror\n"})}),"\n",(0,s.jsx)(r.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(r.p,{children:["Either ",(0,s.jsx)(r.a,{href:"/reference/api/part/config/plugins",children:"add it as a part plugins"})," in your\ndesign, or ",(0,s.jsx)(r.a,{href:"/reference/api/pattern/use",children:"add it to a pattern instance with\nPattern.use()"}),"."]}),"\n",(0,s.jsx)(r.p,{children:"To import the plugin for use:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-js",children:"import { mirrorPlugin } from '@freesewing/plugin-mirror'\n// or\nimport { pluginMirror } from '@freesewing/plugin-mirror'\n"})}),"\n",(0,s.jsx)(r.h2,{id:"notes",children:"Notes"}),"\n",(0,s.jsxs)(r.p,{children:["This plugin is part of the ",(0,s.jsx)(r.a,{href:"/reference/plugins/core",children:"core-plugins bundle"}),",\nso there is no need to install or import it manually unless you wish to forego\nloading of core plugins yet still want to load this plugin."]})]})}function u(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},71184:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>l});var i=n(14041);const s={},t=i.createContext(s);function o(e){const r=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(t.Provider,{value:r},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.