import{j as e,p as r}from"./docsPage-CrCNk6vV.js";import{useMDXComponents as o}from"./index-CswL0fy2.js";import{M as l}from"./index-BawdbxzO.js";import"./index-DwChlhAQ.js";import"./_commonjsHelpers-BosuxZz1.js";import"./index-D-8MO0q_.js";import"./iframe-BDmRycB9.js";import"../sb-preview/runtime.js";import"./index-DxKRhftL.js";import"./index-DrFu-skq.js";function s(t){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",img:"img",p:"p",pre:"pre",strong:"strong",...o(),...t.components};return e.jsxs(e.Fragment,{children:[e.jsx(l,{title:"Contributing/Component guidelines",parameters:{...r}}),` `,e.jsx(n.p,{children:e.jsx(n.img,{src:"https://graphics.thomsonreuters.com/style-assets/images/logos/reuters-graphics-logo/svg/graphics-logo-color-dark.svg",alt:""})}),` `,e.jsx(n.h1,{id:"component-guidelines",children:"Component guidelines"}),` `,e.jsx(n.h2,{id:"dependencies",children:"Dependencies"}),` `,e.jsx(n.p,{children:"Components should be written for any Svelte context. If your component needs, for example, values from SvelteKit stores, these should be passed in as props."}),` `,e.jsx(n.h2,{id:"typescript",children:"Typescript"}),` `,e.jsx(n.p,{children:"By default, component's are written in TypeScript, which adds robust type-checking and helpful hints for people using your component in editors like Visual Studio Code."}),` `,e.jsxs(n.blockquote,{children:[` `,e.jsxs(n.p,{children:["If you've never used TypeScript, you can check out the ",e.jsx(n.a,{href:"https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html",rel:"nofollow",children:"5-minute intro"}),". If you're still uneasy writing TypeScript, don't sweat it! Just write your component in plain JavaScript/Svelte. We'll convert at least your component's props to TypeScript as part of the PR review."]}),` `]}),` `,e.jsx(n.h3,{id:"typing-and-documenting-component-props",children:"Typing and documenting component props"}),` `,e.jsxs(n.p,{children:["Document props using ",e.jsx(n.a,{href:"https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html",rel:"nofollow",children:"JSDoc comments"})," (be sure to mark required props) and type props with TypeScript."]}),` `,e.jsx(n.p,{children:"Here are a few examples:"}),` `,e.jsx(n.h4,{id:"typing-simple-props",children:"Typing simple props"}),` `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-svelte",children:`