{"version":3,"file":"shared.Bd3C3jDA.mjs","names":["variationAxes","fonts","css","className","variationAxes","fonts","css","className","variationAxes","fonts","css","className","getProps","React.forwardRef","cx","Plus","React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","sharedStyle.className","sharedStyle1.className","cx","RichText","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","variationAxes","fonts","css","className","fonts","css","className","variationAxes","fonts","css","className","fonts","css","className","useState","useRef","useCallback","url","useId","useMemo","_Fragment","React.Fragment","c"],"sources":["https:/framerusercontent.com/modules/1yoDfm55BYhfRFoDAkEm/RFgAXo7DtegC1gFbrx6B/NbDFs5rgP.js","https:/framerusercontent.com/modules/UkA9lKmrQs7Al6byUvze/CqJBpOwb4UYmHc2sHvBU/dXsx8iVCg.js","https:/framerusercontent.com/modules/dyY1ZC5Vsvcz6cLhz910/O2Dd7XnPUNlen1CaCqbL/GMp6ZDbq7.js","https:/framerusercontent.com/modules/QXwgxjI0P2QSRk6PpeJ0/XJILSiCKiJCvND2doUXh/qC66tMLTE.js","https:/framerusercontent.com/modules/jYCXFmVFllorQ6O8oAQn/QvLUHxViNgdy11w4ms7g/DceBCnOwO.js","https:/framerusercontent.com/modules/zXz9QhKfWTnqIu1Qdz1K/eoyfcnsbqzexgCaOvWSz/fqGEznQQN.js","https:/framerusercontent.com/modules/y6gRci0z7DO4ADb34fev/XzM6qOcpsE3LugJVBAwB/gfNbT0EVI.js","https:/framerusercontent.com/modules/n0cGOH0jbn2So9lbwkOo/3wKsIaxf9s8pFsje4AKC/VI_NuK0z5.js","https:/framerusercontent.com/modules/k8T2zs6pWiYT25FJAuar/2NIqmzVMkt0NaXF62hWQ/xv81tUXg1.js","https:/framerusercontent.com/modules/458E7kv7zdYG9zooAOPz/zxLfdkxa2YWCr9xEos0F/gyeBsN4cF.js","https:/framerusercontent.com/modules/mWSlKgHD58wjMXMjtDm9/qjKHFwlpJM4oSe9nbXIR/CitationGenerator.js"],"sourcesContent":["// Generated by Framer (99770fa)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Google Sans Flex-variable-regular\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNDI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNDI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNDI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\"]);const variationAxes=[{defaultValue:18,maxValue:144,minValue:6,name:\"Optical Size\",tag:\"opsz\"},{defaultValue:100,maxValue:151,minValue:25,name:\"Width\",tag:\"wdth\"},{defaultValue:400,maxValue:1e3,minValue:1,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Grade\",tag:\"GRAD\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Roundness\",tag:\"ROND\"},{defaultValue:0,maxValue:0,minValue:-10,name:\"Slant\",tag:\"slnt\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Google Sans Flex Variable\",source:\"google\",style:\"normal\",uiFamilyName:\"Google Sans Flex\",url:\"https://fonts.gstatic.com/s/googlesansflex/v22/t5t7IQcYNIWbFgDgAAzZ34auoVyXip6sfhcat2c.woff2\",variationAxes,weight:\"400\"}]}];export const css=['.framer-SCG45 .framer-styles-preset-1i4fe7d:not(.rich-text-wrapper), .framer-SCG45 .framer-styles-preset-1i4fe7d.rich-text-wrapper p { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.01em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-SCG45\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0b0b0ac)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Google Sans Flex-variable-regular\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNDI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNDI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNDI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\"]);const variationAxes=[{defaultValue:18,maxValue:144,minValue:6,name:\"Optical Size\",tag:\"opsz\"},{defaultValue:100,maxValue:151,minValue:25,name:\"Width\",tag:\"wdth\"},{defaultValue:400,maxValue:1e3,minValue:1,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Grade\",tag:\"GRAD\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Roundness\",tag:\"ROND\"},{defaultValue:0,maxValue:0,minValue:-10,name:\"Slant\",tag:\"slnt\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Google Sans Flex Variable\",source:\"google\",style:\"normal\",uiFamilyName:\"Google Sans Flex\",url:\"https://fonts.gstatic.com/s/googlesansflex/v21/t5t7IQcYNIWbFgDgAAzZ34auoVyXip6sfhcat2c.woff2\",variationAxes,weight:\"400\"}]}];export const css=['.framer-sxEb5 .framer-styles-preset-kmsqt2:not(.rich-text-wrapper), .framer-sxEb5 .framer-styles-preset-kmsqt2.rich-text-wrapper p { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 13px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.01em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-sxEb5\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0b0b0ac)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Google Sans Flex-variable-regular\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNTI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNTI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNTI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\"]);const variationAxes=[{defaultValue:18,maxValue:144,minValue:6,name:\"Optical Size\",tag:\"opsz\"},{defaultValue:100,maxValue:151,minValue:25,name:\"Width\",tag:\"wdth\"},{defaultValue:400,maxValue:1e3,minValue:1,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Grade\",tag:\"GRAD\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Roundness\",tag:\"ROND\"},{defaultValue:0,maxValue:0,minValue:-10,name:\"Slant\",tag:\"slnt\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Google Sans Flex Variable\",source:\"google\",style:\"normal\",uiFamilyName:\"Google Sans Flex\",url:\"https://fonts.gstatic.com/s/googlesansflex/v21/t5t7IQcYNIWbFgDgAAzZ34auoVyXip6sfhcat2c.woff2\",variationAxes,weight:\"400\"}]}];export const css=['.framer-Y5D74 .framer-styles-preset-79bu04:not(.rich-text-wrapper), .framer-Y5D74 .framer-styles-preset-79bu04.rich-text-wrapper p { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.01em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-Y5D74\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (d369d66)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const kfNzCWrbt=undefined;const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><g d=\"M 61.583 2.302 C 64.652 -0.767 69.629 -0.767 72.698 2.302 C 75.767 5.371 75.767 10.348 72.698 13.417 L 13.417 72.698 C 10.348 75.767 5.371 75.767 2.302 72.698 C -0.767 69.629 -0.767 64.652 2.302 61.583 Z M 2.302 2.302 C 5.371 -0.767 10.348 -0.767 13.417 2.302 L 72.698 61.583 C 75.767 64.652 75.767 69.629 72.698 72.698 C 69.629 75.767 64.652 75.767 61.583 72.698 L 2.302 13.417 C -0.767 10.348 -0.767 5.371 2.302 2.302 Z\" fill=\"transparent\" height=\"74.99999539877342px\" id=\"lIUCBFjL7\" transform=\"translate(12.793 12.5) rotate(-45 37.5 37.5)\" width=\"75.0000005839309px\"><path d=\"M 0 7.86 C 0 3.519 3.519 0 7.86 0 C 12.2 0 15.719 3.519 15.719 7.86 L 15.719 91.695 C 15.719 96.036 12.2 99.555 7.86 99.555 C 3.519 99.555 0 96.036 0 91.695 Z\" fill=\"var(--62mhw, var(--token-d8ccb723-1f35-4e56-aba6-0694e1de791e, rgb(0, 0, 0)))\" height=\"99.55490469140452px\" id=\"ayIyxAX4H\" transform=\"translate(29.64 -12.277) rotate(45 7.86 49.777)\" width=\"15.71919547759012px\"/><path d=\"M 0 7.86 C 0 3.519 3.519 0 7.86 0 L 91.695 0 C 96.036 0 99.555 3.519 99.555 7.86 C 99.555 12.2 96.036 15.719 91.695 15.719 L 7.86 15.719 C 3.519 15.719 0 12.2 0 7.86 Z\" fill=\"var(--62mhw, var(--token-d8ccb723-1f35-4e56-aba6-0694e1de791e, rgb(0, 0, 0)))\" height=\"15.719195477590233px\" id=\"ouprxth6P\" transform=\"translate(-12.277 29.64) rotate(45 49.777 7.86)\" width=\"99.5549046914046px\"/></g></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({color,height,id,width,...props})=>{return{...props,kfNzCWrbt:color??props.kfNzCWrbt??\"var(--token-d8ccb723-1f35-4e56-aba6-0694e1de791e, rgb(0, 0, 0))\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,kfNzCWrbt,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-qsptD\",className),layoutId:layoutId,ref:ref,style:{\"--62mhw\":kfNzCWrbt,...style}});});const css=[`.framer-qsptD { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--62mhw); mask: ${mask}; width: 100px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 100\n * @framerIntrinsicHeight 100\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"kfNzCWrbt\":\"color\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Plus\",\"color\":{\"type\":\"variable\",\"value\":\"62mhw\"},\"set\":{\"localId\":\"vectorSet/Cg5sWGyXk\",\"id\":\"Cg5sWGyXk\",\"moduleId\":\"bFCrGSomAwxwjp4GIoDy\"}}\n */const Icon=withCSS(Component,css,\"framer-qsptD\");Icon.displayName=\"Plus\";export default Icon;addPropertyControls(Icon,{kfNzCWrbt:{defaultValue:'var(--token-d8ccb723-1f35-4e56-aba6-0694e1de791e, rgb(0, 0, 0)) /* {\"name\":\"Icon Black\"} */',hidden:false,title:\"Color\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"Plus\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"62mhw\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/Cg5sWGyXk\\\",\\\"id\\\":\\\"Cg5sWGyXk\\\",\\\"moduleId\\\":\\\"bFCrGSomAwxwjp4GIoDy\\\"}}\",\"framerVariables\":\"{\\\"kfNzCWrbt\\\":\\\"color\\\"}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"100\",\"framerIntrinsicWidth\":\"100\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (99770fa)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFonts,getFontsFromSharedStyle,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/dyY1ZC5Vsvcz6cLhz910/O2Dd7XnPUNlen1CaCqbL/GMp6ZDbq7.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/1yoDfm55BYhfRFoDAkEm/RFgAXo7DtegC1gFbrx6B/NbDFs5rgP.js\";import Plus from\"https://framerusercontent.com/modules/QXwgxjI0P2QSRk6PpeJ0/XJILSiCKiJCvND2doUXh/qC66tMLTE.js\";const PlusFonts=getFonts(Plus);const MotionDivWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.div));const cycleOrder=[\"iPbUXRQy9\",\"NeriRO7TR\"];const serializationHash=\"framer-B7ZPM\";const variantClassNames={iPbUXRQy9:\"framer-v-6z454f\",NeriRO7TR:\"framer-v-d9vq70\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const qY77pdGfk=undefined;const wTHxi2jJc=undefined;const wkkhRw0xc=undefined;const transition1={duration:0,type:\"tween\"};const transition2={bounce:0,delay:.2,duration:.6,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0};const transformTemplate1=(_,t)=>`translateY(-50%) ${t}`;const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Closed:\"NeriRO7TR\",Open:\"iPbUXRQy9\"};const Variants=motion.create(React.Fragment);const getProps=({answer,click,height,id,question,width,...props})=>{return{...props,qY77pdGfk:click??props.qY77pdGfk,variant:humanReadableVariantMap[props.variant]??props.variant??\"iPbUXRQy9\",wkkhRw0xc:answer??props.wkkhRw0xc??\"This is an answer to the question above and an answer of one, two or three line suits well here.\",wTHxi2jJc:question??props.wTHxi2jJc??\"This is a question\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,wTHxi2jJc,wkkhRw0xc,qY77pdGfk,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"iPbUXRQy9\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap4idjdz=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(qY77pdGfk){const res=await qY77pdGfk(...args);if(res===false)return false;}});const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const onTap976zjl=activeVariantCallback(async(...args)=>{setVariant(\"NeriRO7TR\");});const onTapi54hm6=activeVariantCallback(async(...args)=>{setVariant(\"iPbUXRQy9\");});return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-6z454f\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Open\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"iPbUXRQy9\",onTap:onTap4idjdz,ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-7e7d9213-6afe-4309-afa8-7dccf478cb0d, rgb(222, 222, 222))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-88de8be5-fdc6-43ad-98d5-dc2e7d77e5cc, rgb(247, 247, 247))\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,...style},variants:{NeriRO7TR:{\"--border-style\":\"dashed\"}},...addPropertyOverrides({NeriRO7TR:{\"data-framer-name\":\"Closed\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1xexyg5\",\"data-framer-name\":\"Header\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"MWejSXDoT\",onTap:onTap976zjl,style:{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},variants:{NeriRO7TR:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10}},...addPropertyOverrides({NeriRO7TR:{onTap:onTapi54hm6}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-79bu04\",\"data-styles-preset\":\"GMp6ZDbq7\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:\"This is a question\"})}),className:\"framer-7n705\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"t5f2eli8a\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:wTHxi2jJc,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({NeriRO7TR:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-79bu04\",\"data-styles-preset\":\"GMp6ZDbq7\",dir:\"auto\",children:\"This is a question\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ojsr0z\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"wKOFaLKKZ\",style:{rotate:45},variants:{NeriRO7TR:{rotate:0}},children:/*#__PURE__*/_jsx(Plus,{animated:true,className:\"framer-vpd70k\",layoutDependency:layoutDependency,layoutId:\"rLdnJnyAl\",style:{\"--62mhw\":\"var(--token-ee24881a-d59f-4831-81c5-31b2a73efdd2, rgb(120, 120, 120))\"}})})]}),/*#__PURE__*/_jsx(MotionDivWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation,className:\"framer-eq0syk\",\"data-framer-appear-id\":\"eq0syk\",\"data-framer-name\":\"Answer\",initial:animation1,layoutDependency:layoutDependency,layoutId:\"qG7NyGYYZ\",optimized:true,style:{filter:\"blur(0px)\",WebkitFilter:\"blur(0px)\"},variants:{NeriRO7TR:{filter:\"blur(5px)\",WebkitFilter:\"blur(5px)\"}},...addPropertyOverrides({NeriRO7TR:{transformTemplate:transformTemplate1}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1i4fe7d\",\"data-styles-preset\":\"NbDFs5rgP\",dir:\"auto\",style:{\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-66b6d7ff-ba33-4d69-8906-b2633b6d4a86, rgb(84, 84, 84)))\"},children:\"This is an answer to the question above and an answer of one, two or three line suits well here.\"})}),className:\"framer-6k9l00\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"hj56Qtyda\",style:{\"--extracted-r6o4lv\":\"var(--token-66b6d7ff-ba33-4d69-8906-b2633b6d4a86, rgb(84, 84, 84))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:wkkhRw0xc,verticalAlignment:\"top\",withExternalLayout:true})})]})})})});});const css=[\".framer-B7ZPM.framer-xuk4m9, .framer-B7ZPM .framer-xuk4m9 { display: block; }\",\".framer-B7ZPM.framer-6z454f { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 507px; will-change: var(--framer-will-change-override, transform); }\",\".framer-B7ZPM .framer-1xexyg5 { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 28px 28px 12px 28px; position: relative; width: 100%; }\",\".framer-B7ZPM .framer-7n705 { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-B7ZPM .framer-1ojsr0z { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: min-content; }\",\".framer-B7ZPM .framer-vpd70k { aspect-ratio: 1 / 1; flex: none; height: auto; position: relative; width: 16px; }\",\".framer-B7ZPM .framer-eq0syk { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px 28px 28px 28px; position: relative; width: 100%; }\",\".framer-B7ZPM .framer-6k9l00 { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-B7ZPM.framer-v-d9vq70 .framer-1xexyg5 { padding: 28px; will-change: var(--framer-will-change-override, transform); }\",\".framer-B7ZPM.framer-v-d9vq70 .framer-eq0syk { left: 0px; position: absolute; top: 264%; z-index: 1; }\",...sharedStyle.css,...sharedStyle1.css,'.framer-B7ZPM[data-border=\"true\"]::after, .framer-B7ZPM [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 138.5\n * @framerIntrinsicWidth 507\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"NeriRO7TR\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"wTHxi2jJc\":\"question\",\"wkkhRw0xc\":\"answer\",\"qY77pdGfk\":\"click\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerDceBCnOwO=withCSS(Component,css,\"framer-B7ZPM\");export default FramerDceBCnOwO;FramerDceBCnOwO.displayName=\"FAQ Item\";FramerDceBCnOwO.defaultProps={height:138.5,width:507};addPropertyControls(FramerDceBCnOwO,{variant:{options:[\"iPbUXRQy9\",\"NeriRO7TR\"],optionTitles:[\"Open\",\"Closed\"],title:\"Variant\",type:ControlType.Enum},wTHxi2jJc:{defaultValue:\"This is a question\",displayTextArea:false,title:\"Question\",type:ControlType.String},onwTHxi2jJcChange:{changes:\"wTHxi2jJc\",type:ControlType.ChangeHandler},wkkhRw0xc:{defaultValue:\"This is an answer to the question above and an answer of one, two or three line suits well here.\",displayTextArea:true,title:\"Answer\",type:ControlType.String},onwkkhRw0xcChange:{changes:\"wkkhRw0xc\",type:ControlType.ChangeHandler},qY77pdGfk:{title:\"Click\",type:ControlType.EventHandler}});addFonts(FramerDceBCnOwO,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PlusFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerDceBCnOwO\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"138.5\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"NeriRO7TR\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"507\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"wTHxi2jJc\\\":\\\"question\\\",\\\"wkkhRw0xc\\\":\\\"answer\\\",\\\"qY77pdGfk\\\":\\\"click\\\"}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ee97fff)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Google Sans Flex-variable-regular\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);const variationAxes=[{defaultValue:18,maxValue:144,minValue:6,name:\"Optical Size\",tag:\"opsz\"},{defaultValue:100,maxValue:151,minValue:25,name:\"Width\",tag:\"wdth\"},{defaultValue:400,maxValue:1e3,minValue:1,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Grade\",tag:\"GRAD\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Roundness\",tag:\"ROND\"},{defaultValue:0,maxValue:0,minValue:-10,name:\"Slant\",tag:\"slnt\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Google Sans Flex Variable\",source:\"google\",style:\"normal\",uiFamilyName:\"Google Sans Flex\",url:\"https://fonts.gstatic.com/s/googlesansflex/v22/t5t7IQcYNIWbFgDgAAzZ34auoVyXip6sfhcat2c.woff2\",variationAxes,weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/pKRFNWFoZl77qYCAIp84lN1h944.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-aJYOG .framer-styles-preset-1f8d648:not(.rich-text-wrapper), .framer-aJYOG .framer-styles-preset-1f8d648.rich-text-wrapper p { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 425, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.01em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-aJYOG\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (4ecd144)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Instrument Serif-regular\",\"GF;Instrument Serif-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Instrument Serif\",source:\"google\",style:\"normal\",uiFamilyName:\"Instrument Serif\",url:\"https://fonts.gstatic.com/s/instrumentserif/v5/jizBRFtNs2ka5fXjeivQ4LroWlx-2zcZj1bIkNo.woff2\",weight:\"400\"},{cssFamilyName:\"Instrument Serif\",source:\"google\",style:\"italic\",uiFamilyName:\"Instrument Serif\",url:\"https://fonts.gstatic.com/s/instrumentserif/v5/jizHRFtNs2ka5fXjeivQ4LroWlx-6zATjnTNgNq55w.woff2\",weight:\"400\"}]}];export const css=['.framer-RC0nZ .framer-styles-preset-1xgagrl:not(.rich-text-wrapper), .framer-RC0nZ .framer-styles-preset-1xgagrl.rich-text-wrapper h1 { --framer-font-family: \"Instrument Serif\", \"Instrument Serif Placeholder\", serif; --framer-font-family-italic: \"Instrument Serif\", \"Instrument Serif Placeholder\", serif; --framer-font-open-type-features: normal; --framer-font-size: 54px; --framer-font-style: normal; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-RC0nZ .framer-styles-preset-1xgagrl:not(.rich-text-wrapper), .framer-RC0nZ .framer-styles-preset-1xgagrl.rich-text-wrapper h1 { --framer-font-family: \"Instrument Serif\", \"Instrument Serif Placeholder\", serif; --framer-font-family-italic: \"Instrument Serif\", \"Instrument Serif Placeholder\", serif; --framer-font-open-type-features: normal; --framer-font-size: 54px; --framer-font-style: normal; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-RC0nZ .framer-styles-preset-1xgagrl:not(.rich-text-wrapper), .framer-RC0nZ .framer-styles-preset-1xgagrl.rich-text-wrapper h1 { --framer-font-family: \"Instrument Serif\", \"Instrument Serif Placeholder\", serif; --framer-font-family-italic: \"Instrument Serif\", \"Instrument Serif Placeholder\", serif; --framer-font-open-type-features: normal; --framer-font-size: 44px; --framer-font-style: normal; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-RC0nZ\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6964d48)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Google Sans Flex-variable-regular\",\"Inter-Black\",\"Inter-BlackItalic\",\"Inter-BoldItalic\"]);const variationAxes=[{defaultValue:18,maxValue:144,minValue:6,name:\"Optical Size\",tag:\"opsz\"},{defaultValue:100,maxValue:151,minValue:25,name:\"Width\",tag:\"wdth\"},{defaultValue:400,maxValue:1e3,minValue:1,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Grade\",tag:\"GRAD\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Roundness\",tag:\"ROND\"},{defaultValue:0,maxValue:0,minValue:-10,name:\"Slant\",tag:\"slnt\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Google Sans Flex Variable\",source:\"google\",style:\"normal\",uiFamilyName:\"Google Sans Flex\",url:\"https://fonts.gstatic.com/s/googlesansflex/v22/t5t7IQcYNIWbFgDgAAzZ34auoVyXip6sfhcat2c.woff2\",variationAxes,weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/mkY5Sgyq51ik0AMrSBwhm9DJg.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/X5hj6qzcHUYv7h1390c8Rhm6550.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/gQhNpS3tN86g8RcVKYUUaKt2oMQ.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cugnVhSraaRyANCaUtI5FV17wk.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/5HcVoGak8k5agFJSaKa4floXVu0.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/rZ5DdENNqIdFTIyQQiP5isO7M.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/P2Bw01CtL0b9wqygO0sSVogWbo.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/05KsVHGDmqXSBXM4yRZ65P8i0s.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/ky8ovPukK4dJ1Pxq74qGhOqCYI.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/vvNSqIj42qeQ2bvCRBIWKHscrc.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/3ZmXbBKToJifDV9gwcifVd1tEY.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/FNfhX3dt4ChuLJq2PwdlxHO7PU.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/gcnfba68tfm7qAyrWRCf9r34jg.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/efTfQcBJ53kM2pB1hezSZ3RDUFs.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"}]}];export const css=['.framer-xqXf6 .framer-styles-preset-m3k4h7:not(.rich-text-wrapper), .framer-xqXf6 .framer-styles-preset-m3k4h7.rich-text-wrapper h3 { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 700; --framer-letter-spacing: 0.01em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 40px; --framer-text-alignment: left; --framer-text-color: #2e2e2e; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-xqXf6\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (c4a51b1)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Google Sans Flex-variable-regular\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNTI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNTI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\",\"GF;Google Sans Flex-variable-regularVF=Im9wc3oiIDE4LCAid2R0aCIgMTAwLCAid2dodCIgNTI1LCAiR1JBRCIgMCwgIlJPTkQiIDAsICJzbG50IiAw\"]);const variationAxes=[{defaultValue:18,maxValue:144,minValue:6,name:\"Optical Size\",tag:\"opsz\"},{defaultValue:100,maxValue:151,minValue:25,name:\"Width\",tag:\"wdth\"},{defaultValue:400,maxValue:1e3,minValue:1,name:\"Weight\",tag:\"wght\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Grade\",tag:\"GRAD\"},{defaultValue:0,maxValue:100,minValue:0,name:\"Roundness\",tag:\"ROND\"},{defaultValue:0,maxValue:0,minValue:-10,name:\"Slant\",tag:\"slnt\"}];export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Google Sans Flex Variable\",source:\"google\",style:\"normal\",uiFamilyName:\"Google Sans Flex\",url:\"https://fonts.gstatic.com/s/googlesansflex/v22/t5t7IQcYNIWbFgDgAAzZ34auoVyXip6sfhcat2c.woff2\",variationAxes,weight:\"400\"}]}];export const css=['.framer-TAZMO .framer-styles-preset-or66bk:not(.rich-text-wrapper), .framer-TAZMO .framer-styles-preset-or66bk.rich-text-wrapper h3 { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 31px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-TAZMO .framer-styles-preset-or66bk:not(.rich-text-wrapper), .framer-TAZMO .framer-styles-preset-or66bk.rich-text-wrapper h3 { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 38px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-TAZMO .framer-styles-preset-or66bk:not(.rich-text-wrapper), .framer-TAZMO .framer-styles-preset-or66bk.rich-text-wrapper h3 { --framer-font-family: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-family-italic: \"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 32px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: normal; --framer-font-style-italic: normal; --framer-font-variation-axes: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-bold-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-variation-axes-italic: \"opsz\" 18, \"wdth\" 100, \"wght\" 525, \"GRAD\" 0, \"ROND\" 0, \"slnt\" 0; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 40px; --framer-text-alignment: center; --framer-text-color: var(--token-6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-TAZMO\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (c88fd2c)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-crpcN .framer-styles-preset-1ovk18f:not(.rich-text-wrapper), .framer-crpcN .framer-styles-preset-1ovk18f.rich-text-wrapper a { --framer-link-hover-text-decoration: underline; --framer-link-text-color: #2b4cff; --framer-link-text-decoration: underline; }\"];export const className=\"framer-crpcN\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// GENERATED by build.mjs from AiPause.ts, LimitLines.ts, WSToolKit.tsx, CiteShared.ts, CitePrep.ts, CiteSourceTypes.ts, CiteOwn.ts, CiteEngine.ts, CiteStylePicker.tsx, SourceWebsite.ts, SourceBook.ts, SourceArticle.ts, SourceImage.ts, SourceArtwork.ts, SourceSocial.ts, SourceAiImage.ts, SourceOwnPhoto.ts, SourceOther.ts, SourceVideo.ts, SourceMovie.ts, SourceNewspaper.ts, SourceMagazine.ts, SourceWiki.ts, SourceTv.ts, SourcePodcast.ts, SourceChapter.ts, SourceReport.ts, SourceThesis.ts, SourceLecture.ts, SourceSlides.ts, SourceBlog.ts, SourceForum.ts, SourceComment.ts, SourcePress.ts, SourceEncyclopedia.ts, SourceDictionary.ts, SourceConference.ts, SourcePresentation.ts, SourceSoftware.ts, SourceDataset.ts, SourcePatent.ts, CiteSources.ts, CiteCaptions.ts, CiteForm.tsx, DocxLite.ts, FileText.ts, CiteAnnotated.ts, CiteOverlap.ts, CiteSourceText.ts, CiteAnnotateAI.tsx, CiteAnnotatedView.tsx, CiteFormats.ts, CiteFileMenu.tsx, CiteLists.ts, CiteMisses.ts, CiteListMenu.tsx, CitationGenerator.tsx. Edit those files, then rebuild.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{useCallback,useEffect,useRef,useState,useId,useMemo}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// ---- AiPause.ts --------------------------------------------------\n// GENERATED from lexi/src/lib/publicAi/pause.ts by sync-shared.sh. Edit it there, not here.\n/** When the free AI tools on writingstudio.com are paused for the rest of the\n *  day, and the line the tool pages show by their AI buttons while they are.\n *\n *  Each tool spends from a daily budget (publicAi/limits.ts): the cap they\n *  share, or a share of its own. Once one is used up, that tool's AI waits\n *  for the next UTC day, which is evening in the Americas and morning in\n *  Asia, so the pages say when in the student's own time, as soon as they\n *  open, not after the student has pasted a paper and pressed the button.\n *\n *  Shared with the tool pages: framer-tools/AiPause.ts is a copy made by\n *  sync-shared.sh. Plain code, no imports. *//** The free AI features a page can ask about (GET /api/public/ai-status). */const AI_FEATURES=[\"abstract\",\"generate\",\"claims\",\"finder\",\"review\"];function nextUtcMidnight(now=Date.now()){const d=new Date(now);return Date.UTC(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()+1);}/** A status the server sent, or null when it isn't one. */function aiStatusFrom(raw){if(!raw||typeof raw!==\"object\")return null;const{paused,until}=raw;if(!Array.isArray(paused)||typeof until!==\"number\"||!Number.isFinite(until))return null;const known=AI_FEATURES;return{paused:paused.filter(f=>typeof f===\"string\"&&known.includes(f)),until};}/** When this feature's AI is back, or null when it isn't paused (or that time has come). */function pausedUntil(status,feature,now=Date.now()){return status&&status.until>now&&status.paused.includes(feature)?status.until:null;}/** \"8:00 PM\", or \"9:00 AM tomorrow\" when that's tomorrow where the student is. */function backAtLabel(at,now=Date.now(),timeZone){const day=t=>new Date(t).toLocaleDateString(\"en-CA\",{timeZone});const time=new Date(at).toLocaleTimeString(undefined,{hour:\"numeric\",minute:\"2-digit\",timeZone});return day(at)===day(now)?time:`${time} tomorrow`;}/** The line every free tool shows by its AI button while its AI is paused.\n *  `still` says what works without it (\"Checking your references still works.\"). */function pausedLine(until,still,now=Date.now(),timeZone){return`AI is paused for everyone until ${backAtLabel(until,now,timeZone)}.${still?` ${still}`:\"\"}`;}/** The server's refusal while a feature is paused, `backIn` being \"5 hours\". The pages\n *  show pausedLine in the student's own time instead; this is for pages from before it. */function pausedMessage(backIn){return`AI is paused for everyone. It’s back in ${backIn}.`;}// ---- LimitLines.ts -----------------------------------------------\n// GENERATED from lexi/src/lib/publicAi/limitLines.ts by sync-shared.sh. Edit it there, not here.\n/** What the free tools on writingstudio.com say when a daily limit is used up,\n *  and what a free Writing Studio account really gives, beside every sign-up\n *  link on their pages. Kept together so they stay true when plans change.\n *\n *  An account gives no more of a free tool. The app has no abstract, title,\n *  thesis, introduction, conclusion, outline or annotated bibliography tool,\n *  and its Free plan has its own small AI allowances (plans.ts). So a limit\n *  line says when the tool is back and what still works, never \"create an\n *  account for more\", and each sign-up link sits beside the line here that\n *  says what an account adds for that task.\n *\n *  ACCOUNT_NEEDS names the Free plan's allowances (plans.ts meter ids) a line\n *  relies on; publicAiLimitLines.test.ts fails if Free stops including one.\n *\n *  Shared with the tool pages: framer-tools/LimitLines.ts is a copy made by\n *  sync-shared.sh. Plain code, no imports. *//** A free tool's daily limit: what's used up (\"5 free abstracts\"), when it's\n *  back (`backIn`, \"5 hours\") and, if anything, what still works without it. */function limitLine(used,backIn,still=\"\"){return`You’ve used today’s ${used}. They come back in ${backIn}.${still?` ${still}`:\"\"}`;}/** What a free account adds for each free tool's task, said beside its sign-up link. */const ACCOUNT_GIVES={/** The abstract and essay generators (titles, theses, introductions, conclusions, outlines). */paper:\"In a free Writing Studio account, you write your paper, and every source you cite gets checked.\",/** The citation generator and the annotated bibliography. */sources:\"In a free Writing Studio account, your sources stay in one library you can cite from as you write.\",/** The citation checker. */citations:\"In a free Writing Studio account, every citation you add links back to its source.\",/** The citation finder. */finding:\"In a free Writing Studio account, you can find a source for any sentence as you write.\"};/** The Free plan allowances each line relies on. Writing, citing, the library and\n *  checking your own sources aren't metered on any plan. */const ACCOUNT_NEEDS={paper:[],sources:[],citations:[],finding:[\"cites\"]};// ---- WSToolKit.tsx -----------------------------------------------\n/**\n * WSToolKit: shared building blocks for Writing Studio's free tools\n * (citation generator, paraphrasing tool, thesis statement generator and\n * the rest). Every tool imports its tokens, styles, buttons, popover,\n * toasts, icons, storage and analytics from here, so the family looks and\n * behaves the same and a design change lands everywhere at once.\n *\n * Colors read the site's own Framer color styles through CSS variables,\n * with the current values as fallbacks, so the tools follow the site.\n *\n * Nothing here touches window, document, localStorage or the clipboard\n * during render; all of that happens in effects and event handlers, so\n * Framer's server render is always clean.\n *//* ------------------------------------------------------------ tokens -- */const token=(id,fallback)=>`var(--token-${id}, ${fallback})`;const T={font:'\"Google Sans Flex Variable\", \"Google Sans Flex Variable Placeholder\", \"Google Sans Flex\", system-ui, -apple-system, \"Segoe UI\", sans-serif',serif:'\"Instrument Serif\", \"Instrument Serif Placeholder\", Georgia, serif',blue:\"#2B4CFF\",blueHover:token(\"74f0a186-517f-42e6-9594-419eaad265e0\",\"rgb(32, 64, 227)\"),blueSoft:\"rgba(43, 76, 255, 0.08)\",blueRing:\"rgba(43, 76, 255, 0.35)\",text:token(\"6e6e337d-28cc-44d1-a0da-bb7b5b6c59e1\",\"#000000\"),text800:token(\"70c2ae7b-a5e6-4414-a82e-94a47fd10245\",\"rgb(51, 51, 51)\"),text700:token(\"66b6d7ff-ba33-4d69-8906-b2633b6d4a86\",\"rgb(84, 84, 84)\"),text600:token(\"813ec4a8-3f64-40f4-ae75-c758ceafa922\",\"rgb(99, 99, 99)\"),text500:token(\"184dcff3-e572-4075-ade0-8c6d8e309c5e\",\"rgb(120, 120, 120)\"),icon400:token(\"67254f3c-b607-431f-8193-1d669a2bdcca\",\"rgb(161, 161, 161)\"),white:token(\"18b15b83-4ec0-475b-b37c-540277e0faa8\",\"#ffffff\"),bg50:token(\"6c8d10ba-463b-4990-b64f-32918ca2d4f2\",\"rgb(253, 253, 253)\"),bg100:token(\"88de8be5-fdc6-43ad-98d5-dc2e7d77e5cc\",\"rgb(247, 247, 247)\"),bg200:token(\"487debdd-9588-4cf5-b389-1f7017cbcedd\",\"rgb(237, 237, 237)\"),black3:token(\"1f4a9512-b90d-4ca4-bb0a-8c8034c20bcc\",\"rgba(0, 0, 0, 0.03)\"),black5:token(\"fe732e94-f30f-4945-91af-015cdcf1f937\",\"rgba(0, 0, 0, 0.05)\"),border10:token(\"c501e0d1-c10e-4ef2-baa7-db83ded46808\",\"rgba(0, 0, 0, 0.1)\"),border200:token(\"7e7d9213-6afe-4309-afa8-7dccf478cb0d\",\"rgb(222, 222, 222)\"),border300:token(\"95a8f7e0-de26-4a21-abd8-7324f048c094\",\"rgb(189, 189, 189)\"),red:token(\"0492d6f2-d22d-49e2-88a7-a7e4b06bd484\",\"rgb(255, 34, 68)\"),redSoft:token(\"b06755cf-e72e-4b54-b92e-df84e1441a16\",\"rgba(255, 34, 68, 0.15)\"),amber:\"#9a6700\",amberSoft:\"#fff8e6\",green:\"#1a7f37\",radius:10,radiusLg:14,shadowButton:\"0px 1px 2px 0px rgba(0, 0, 0, 0.25)\",shadowCard:\"0 1px 2px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.05)\",shadowPop:\"0 2px 6px rgba(0, 0, 0, 0.06), 0 16px 40px rgba(0, 0, 0, 0.12)\",ease:\"cubic-bezier(0.2, 0.8, 0.2, 1)\"};/** Base CSS for every tool. Class names are prefixed \"wst-\" so nothing\n *  collides with Framer's own classes. Responsive rules live here as media\n *  queries, not JavaScript, so the server render already has the right\n *  layout and nothing shifts when the page hydrates. */const TOOLKIT_CSS=`\n.wst-root{position:relative;width:100%;font-family:${T.font};color:${T.text};font-size:15px;line-height:1.5;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-align:left}\n.wst-root *,.wst-root *::before,.wst-root *::after{box-sizing:border-box}\n/* :where() keeps this reset at the lowest specificity, so button variants (white text on blue) always win. */\n.wst-root :where(button,input,textarea,select){font:inherit;color:inherit;letter-spacing:inherit}\n.wst-root :focus{outline:none}\n/* Focus cues are grey, never blue (the owner's rule for the free tools). */\n.wst-root :focus-visible{outline:2px solid ${T.text500};outline-offset:2px}\n.wst-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;border-radius:${T.radius}px;padding:0 14px;height:36px;white-space:nowrap;font-variation-settings:\"wght\" 560;font-weight:560;transition:background-color .15s ${T.ease},box-shadow .15s ${T.ease},transform .1s ${T.ease},opacity .15s}\n.wst-btn:active{transform:translateY(1px)}\n.wst-btn[disabled]{opacity:.55;cursor:default;transform:none}\n.wst-btn--primary{background:${T.blue};color:#fff;box-shadow:${T.shadowButton}}\n.wst-btn--primary:hover:not([disabled]){background:${T.blueHover}}\n.wst-btn--secondary{background:${T.black5};color:${T.text};box-shadow:${T.shadowButton},inset 0 0 0 1px ${T.border10}}\n.wst-btn--secondary:hover:not([disabled]){background:${T.border10}}\n.wst-btn--ghost{background:transparent;color:${T.text700};padding:0 10px}\n.wst-btn--ghost:hover:not([disabled]){background:${T.black5};color:${T.text}}\n.wst-btn--link{background:transparent;color:${T.text700};padding:0 4px;height:auto;font-variation-settings:\"wght\" 500;font-weight:500}\n.wst-btn--link:hover{color:${T.blue}}\n.wst-btn--lg{height:44px;padding:0 20px;font-size:15px}\n.wst-btn--sm{height:30px;padding:0 10px;font-size:13px;border-radius:8px}\n.wst-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:${T.text600};cursor:pointer;transition:background-color .15s,color .15s}\n.wst-icon-btn:hover{background:${T.black5};color:${T.text}}\n.wst-card{background:${T.white};border:1px solid ${T.border200};border-radius:${T.radiusLg}px}\n.wst-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;line-height:1;white-space:nowrap;font-variation-settings:\"wght\" 520;font-weight:520;background:${T.black5};color:${T.text700}}\n.wst-badge--blue{background:${T.blueSoft};color:${T.blue}}\n.wst-badge--amber{background:${T.amberSoft};color:${T.amber}}\n.wst-muted{color:${T.text600}}\n.wst-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n.wst-spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:wst-spin .7s linear infinite;display:inline-block;flex:none}\n@keyframes wst-spin{to{transform:rotate(360deg)}}\n@keyframes wst-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}\n@keyframes wst-drop{from{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}\n.wst-pop{position:absolute;z-index:40;background:${T.white};border:1px solid ${T.border200};border-radius:${T.radiusLg}px;box-shadow:${T.shadowPop};animation:wst-in .16s ${T.ease}}\n.wst-toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}\n.wst-toast{pointer-events:auto;display:flex;align-items:center;gap:12px;background:${T.text800};color:#fff;border-radius:12px;padding:10px 14px;font-size:14px;box-shadow:${T.shadowPop};animation:wst-in .18s ${T.ease}}\n.wst-toast button{background:transparent;border:0;color:#fff;cursor:pointer;padding:2px 4px;text-decoration:underline;text-underline-offset:3px;font-variation-settings:\"wght\" 560;font-weight:560}\n@media (prefers-reduced-motion:reduce){.wst-root *,.wst-toast{animation:none!important;transition:none!important}}\n`;/* ----------------------------------------------------------- pieces -- *//** The tool's CSS. Set as raw HTML: as a text child, React escapes quotes on the server (&quot;), which a\n *  <style> tag never decodes, so the server's CSS differed from the browser's and React threw the server\n *  render away on every load (a hydration mismatch). The CSS is a constant, so nothing is injected. */function ToolStyles({css}){return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:TOOLKIT_CSS+(css??\"\")}});}function cx(...names){return names.filter(Boolean).join(\" \");}function Button(props){const{variant=\"primary\",size=\"md\",loading,icon,className,children,disabled,keepFocus,...rest}=props;const off=disabled||loading;return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",...rest,disabled:keepFocus?disabled:off,\"aria-disabled\":keepFocus&&off?true:undefined,\"aria-busy\":loading||undefined,className:cx(\"wst-btn\",`wst-btn--${variant}`,size!==\"md\"&&`wst-btn--${size}`,className),children:[loading?/*#__PURE__*/_jsx(\"span\",{className:\"wst-spin\",\"aria-hidden\":true}):icon,children]});}function IconButton(props){const{label,children,className,...rest}=props;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":label,title:label,...rest,className:cx(\"wst-icon-btn\",className),children:children});}function Badge({children,tone,style}){return /*#__PURE__*/_jsx(\"span\",{className:cx(\"wst-badge\",tone&&`wst-badge--${tone}`),style:style,children:children});}function Spinner({label=\"Loading\"}){return /*#__PURE__*/_jsxs(\"span\",{role:\"status\",style:{display:\"inline-flex\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{className:\"wst-spin\",\"aria-hidden\":true}),/*#__PURE__*/_jsx(\"span\",{className:\"wst-sr\",children:label})]});}const svg=path=>function Icon({size=18,style}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:1.8,strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":true,style:{flex:\"none\",...style},children:path});};const Icons={Search:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"11\",cy:\"11\",r:\"7\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m20 20-3.5-3.5\"})]})),ChevronDown:svg(/*#__PURE__*/_jsx(\"path\",{d:\"m6 9 6 6 6-6\"})),Check:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M5 12.5 10 17l9-10\"})),Copy:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"9\",y:\"9\",width:\"11\",height:\"11\",rx:\"2.5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M5 15V6.5A2.5 2.5 0 0 1 7.5 4H15\"})]})),Trash:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 7h16M10 11v6M14 11v6\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12M9 7V4h6v3\"})]})),X:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M6 6l12 12M18 6 6 18\"})),Plus:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M12 5v14M5 12h14\"})),Upload:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 16V4M7 9l5-5 5 5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M5 16v2a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-2\"})]})),Keyboard:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"6\",width:\"18\",height:\"12\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M7 10h.01M11 10h.01M15 10h.01M7 14h10\"})]})),Globe:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18\"})]})),Journal:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M5 4h11a3 3 0 0 1 3 3v13H8a3 3 0 0 1-3-3z\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9 8h6M9 12h6\"})]})),Book:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2z\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 21V5\"})]})),Video:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"6\",width:\"13\",height:\"12\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m16 10 5-3v10l-5-3\"})]})),File:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M14 3v5h5\"})]})),News:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 5h13v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M17 9h3v10a2 2 0 0 1-2 2M8 9h5M8 13h5M8 17h3\"})]})),Alert:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 8v5M12 16h.01\"})]})),Pencil:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M4 20h4L19 9l-4-4L4 16zM13 7l4 4\"})),Image:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"4.5\",width:\"17\",height:\"15\",rx:\"2.5\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"10\",r:\"1.6\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m20.5 15.5-4.5-4.5-9 8.5\"})]})),Link:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M10 14a4.5 4.5 0 0 0 6.4 0l3-3a4.5 4.5 0 0 0-6.4-6.4l-1 1\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M14 10a4.5 4.5 0 0 0-6.4 0l-3 3a4.5 4.5 0 0 0 6.4 6.4l1-1\"})]})),Quote:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M7 11h4v6H5v-4a6 6 0 0 1 3-5M17 11h4v6h-6v-4a6 6 0 0 1 3-5\"})),Arrow:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 6l6 6-6 6\"})),Sparkle:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M12 3.5 13.9 9a1.6 1.6 0 0 0 1.1 1.1l5.5 1.9-5.5 1.9a1.6 1.6 0 0 0-1.1 1.1L12 20.5 10.1 15A1.6 1.6 0 0 0 9 13.9L3.5 12 9 10.1A1.6 1.6 0 0 0 10.1 9z\"})),Stop:svg(/*#__PURE__*/_jsx(\"rect\",{x:\"6.5\",y:\"6.5\",width:\"11\",height:\"11\",rx:\"2\"})),Refresh:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M20 11a8 8 0 0 0-14.3-4.9L4 8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 4v4h4M4 13a8 8 0 0 0 14.3 4.9L20 16\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M20 20v-4h-4\"})]})),Sliders:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 7h9M17 7h3M4 17h3M11 17h9\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"15\",cy:\"7\",r:\"2\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"17\",r:\"2\"})]})),Undo:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M9 14 4 9l5-5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 9h10.5a5.5 5.5 0 0 1 0 11H11\"})]})),Heart:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M12 20.2s-7.5-4.6-7.5-10.4A4.3 4.3 0 0 1 12 7.2a4.3 4.3 0 0 1 7.5 2.6c0 5.8-7.5 10.4-7.5 10.4z\"})),History:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 12a8.5 8.5 0 1 0 2.6-6.1L3.5 8.5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 3.5v5h5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 7.5V12l3 2\"})]})),Download:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 4v12M7 11l5 5 5-5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M5 20h14\"})]})),Grip:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"6\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"15\",cy:\"6\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"12\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"15\",cy:\"12\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"18\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"15\",cy:\"18\",r:\"1\"})]})),More:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"5\",cy:\"12\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"19\",cy:\"12\",r:\"1\"})]})),ArrowUp:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M12 19V5M6 11l6-6 6 6\"})),ArrowDown:svg(/*#__PURE__*/_jsx(\"path\",{d:\"M12 5v14M6 13l6 6 6-6\"})),Expand:svg(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M4 6h10M4 12h10M4 18h6\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M18 14v6M15 17h6\"})]}))};/* --------------------------------------------------------- popover -- *//** Closes on outside pointer down and on Escape; returns focus to the trigger. */function useDismiss(open,onClose,refs){useEffect(()=>{if(!open)return;const onPointer=event=>{const target=event.target;if(refs.some(r=>r.current&&r.current.contains(target)))return;onClose();};const onKey=event=>{if(event.key===\"Escape\")onClose();};document.addEventListener(\"pointerdown\",onPointer);document.addEventListener(\"keydown\",onKey);return()=>{document.removeEventListener(\"pointerdown\",onPointer);document.removeEventListener(\"keydown\",onKey);};},[open,onClose]);}function useToasts(){const[toasts,setToasts]=useState([]);const seq=useRef(0);const timers=useRef(new Map);const dismiss=useCallback(id=>{window.clearTimeout(timers.current.get(id));timers.current.delete(id);setToasts(list=>list.filter(t=>t.id!==id));},[]);/** Starts (or restarts) the countdown; a toast with an action gets long enough to reach it by keyboard. */const later=useCallback((id,ms)=>{if(typeof window===\"undefined\")return;window.clearTimeout(timers.current.get(id));timers.current.set(id,window.setTimeout(()=>dismiss(id),ms));},[dismiss]);const show=useCallback((text,action,ms=3200)=>{seq.current+=1;const id=seq.current;setToasts(list=>[...list.slice(-2),{id,text,action}]);later(id,action?Math.max(ms,1e4):ms);return id;},[later]);/** Hovering or focusing a toast holds it; leaving starts a fresh countdown. */const hold=useCallback((id,on)=>{if(on)window.clearTimeout(timers.current.get(id));else later(id,4e3);},[later]);return{toasts,show,dismiss,hold};}function ToastViewport({toasts,dismiss,hold}){return /*#__PURE__*/_jsx(\"div\",{className:\"wst-toasts\",role:\"status\",\"aria-live\":\"polite\",children:toasts.map(t=>/*#__PURE__*/_jsxs(\"div\",{className:\"wst-toast\",onMouseEnter:()=>hold?.(t.id,true),onMouseLeave:()=>hold?.(t.id,false),onFocus:()=>hold?.(t.id,true),onBlur:()=>hold?.(t.id,false),children:[/*#__PURE__*/_jsx(\"span\",{children:t.text}),t.action?/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>{t.action?.run();dismiss(t.id);},children:t.action.label}):null]},t.id))});}/* ---------------------------------------------------------- storage -- *//** Reads and writes one JSON value in localStorage without ever throwing:\n *  private windows, full storage and blocked site data all just mean the\n *  value lives in memory for this visit. Reads happen after mount, so the\n *  server render and the first client render always match. */const safeStorage={get(key){try{return typeof window===\"undefined\"?null:window.localStorage.getItem(key);}catch{return null;}},set(key,value){try{if(typeof window===\"undefined\")return false;window.localStorage.setItem(key,value);return true;}catch{return false;}},remove(key){try{if(typeof window!==\"undefined\")window.localStorage.removeItem(key);}catch{/* blocked storage has nothing to remove */}}};const BROWSER_KEY=\"ws-browser-id\";let browserId=null;/** Headers for a POST to the free AI tools: JSON, and a random id for this\n *  browser, so each browser gets its own daily allowance instead of sharing\n *  one with everyone on its school or library network (lexi\n *  publicAi/limits.ts). The id means nothing else and is never shown. Kept\n *  in localStorage; where that's blocked it lasts for this visit. Call it\n *  from event handlers, not during render. */function toolHeaders(){if(!browserId){const saved=safeStorage.get(BROWSER_KEY);if(saved&&/^[A-Za-z0-9_-]{16,64}$/.test(saved))browserId=saved;else{try{browserId=crypto.randomUUID();}catch{browserId=uid()+uid()+uid();}safeStorage.set(BROWSER_KEY,browserId);}}return{\"Content-Type\":\"application/json\",\"X-WS-Visitor\":browserId};}const aiStatusRequests=new Map;/** Whether a free AI feature is paused for the rest of the day, its daily\n *  budget used up (lexi publicAi/limits.ts), so the tool can say so by its\n *  AI button as soon as the page opens, before the student does any work:\n *  show pausedLine(until, …) there and hold the button. Asks the tool's own\n *  server (`apiUrl` is any of its endpoints) once per page; null asks\n *  nothing. Call `pause()` when a request comes back with code \"paused\".\n *  The pause ends on its own when the budgets reset, with no reload. If the\n *  status can't be read, nothing changes and the tool's request says what\n *  happened. */function useAiPause(apiUrl,feature){const[until,setUntil]=useState(null);useEffect(()=>{if(!apiUrl)return;let url;try{url=new URL(\"/api/public/ai-status\",apiUrl).href;}catch{return;}let request=aiStatusRequests.get(url);if(!request){request=fetch(url).then(response=>response.ok?response.json():null).then(aiStatusFrom).catch(()=>null);aiStatusRequests.set(url,request);}let cancelled=false;void request.then(status=>{const at=pausedUntil(status,feature);if(at!==null&&!cancelled)setUntil(at);});return()=>{cancelled=true;};},[apiUrl,feature]);useEffect(()=>{if(until===null)return;const timer=window.setTimeout(()=>setUntil(null),Math.max(0,until-Date.now())+1e3);return()=>window.clearTimeout(timer);},[until]);const pause=useCallback(()=>setUntil(nextUtcMidnight()),[]);return{until,pause};}/** Versioned, never-destructive storage for a tool's saved data. A value\n *  from a newer or unknown version is backed up under its own key before\n *  anything is written, so an update can never wipe someone's work. */function useVersionedStore(key,initial,migrate,/** Given, a save from another tab or tool on this site is taken in as it lands (through `adopt`, which\n     *  can keep this tab's own view), so a tab left open never writes an older copy over it. */adopt){const[state,setState]=useState(initial);const[loaded,setLoaded]=useState(false);const loadedRef=useRef(false);useEffect(()=>{const raw=safeStorage.get(key);if(raw){let parsed=null;try{parsed=JSON.parse(raw);}catch{parsed=null;}const migrated=parsed?migrate(parsed):null;if(migrated)setState(migrated);else safeStorage.set(`${key}:backup:${Date.now()}`,raw);}loadedRef.current=true;setLoaded(true);},[key]);useEffect(()=>{if(!adopt||typeof window===\"undefined\")return;const onStorage=event=>{if(event.key!==key||!event.newValue)return;let parsed=null;try{parsed=JSON.parse(event.newValue);}catch{return;}const migrated=migrate(parsed);if(migrated)setState(prev=>adopt(migrated,prev));};window.addEventListener(\"storage\",onStorage);return()=>window.removeEventListener(\"storage\",onStorage);},[key]);const update=useCallback(fn=>{setState(prev=>{const next=fn(prev);if(loadedRef.current)safeStorage.set(key,JSON.stringify(next));return next;});},[key]);return[state,update,loaded];}/* -------------------------------------------------------- analytics -- *//** Sends an event through the site's Google Analytics (gtag), which only\n *  records it when the visitor has accepted analytics cookies. Never throws. */function track(tool,event,params={}){try{if(typeof window===\"undefined\")return;const w=window;const payload={tool,...params};if(typeof w.gtag===\"function\")w.gtag(\"event\",`${tool}_${event}`,payload);else if(Array.isArray(w.dataLayer))w.dataLayer.push({event:`${tool}_${event}`,...payload});}catch{/* analytics must never break the tool */}}/* ------------------------------------------------------------ misc -- */function useDebounced(value,ms){const[debounced,setDebounced]=useState(value);useEffect(()=>{const id=setTimeout(()=>setDebounced(value),ms);return()=>clearTimeout(id);},[value,ms]);return debounced;}function uid(){return Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4);}/** Runs `work` when the browser is idle (or soon, where idle callbacks are missing). */function whenIdle(work,timeout=2500){if(typeof window===\"undefined\")return()=>undefined;const w=window;if(w.requestIdleCallback){const id=w.requestIdleCallback(work,{timeout});return()=>w.cancelIdleCallback?.(id);}const id=window.setTimeout(work,800);return()=>window.clearTimeout(id);}/** A new tab opened on a press, while it still counts as one (a tab opened after waiting for the server or a\n *  file is blocked), saying `text` until it has somewhere to go. Null when the browser blocked it. */function waitingTab(text){const tab=window.open(\"\",\"_blank\");try{if(tab){tab.opener=null;tab.document.title=\"Writing Studio\";tab.document.body.style.cssText=\"margin:0;display:grid;place-items:center;min-height:100vh;font:15px system-ui,sans-serif;color:#555\";tab.document.body.textContent=text;}}catch{/* the tab still opens the page */}return tab;}/** Copies rich HTML and plain text together, so pasting into Word or Google\n *  Docs keeps italics. Falls back to a hidden selection where the async\n *  clipboard API is missing or refused. */async function copyRich(html,text){try{const w=window;if(navigator.clipboard&&w.ClipboardItem){await navigator.clipboard.write([new w.ClipboardItem({\"text/html\":new Blob([html],{type:\"text/html\"}),\"text/plain\":new Blob([text],{type:\"text/plain\"})})]);return true;}}catch{/* fall through to the selection fallback */}// The fallback selects a hidden element: put focus back where it was afterwards.\nconst focused=document.activeElement;try{const holder=document.createElement(\"div\");holder.contentEditable=\"true\";holder.innerHTML=html;holder.style.cssText=\"position:fixed;left:-9999px;top:0;opacity:0;white-space:pre-wrap\";document.body.appendChild(holder);const range=document.createRange();range.selectNodeContents(holder);const selection=window.getSelection();selection?.removeAllRanges();selection?.addRange(range);const ok=document.execCommand(\"copy\");selection?.removeAllRanges();holder.remove();focused?.focus?.({preventScroll:true});if(ok)return true;}catch{/* try plain text last */}try{await navigator.clipboard.writeText(text);return true;}catch{return false;}}async function copyPlain(text){try{await navigator.clipboard.writeText(text);return true;}catch{return copyRich(text.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\"),text);}}/* -------------------------------------------------------- detection -- */const DOI_RE=/\\b(10\\.\\d{4,9}\\/[^\\s\"'<>]+)/i;function cleanDoi(raw){let doi=raw.trim().replace(/[.,;:)\\]}>]+$/,\"\");try{doi=decodeURIComponent(doi);}catch{/* leave it as typed */}return doi;}/** ISBN-10 or ISBN-13 digits with a valid check digit, or null. */function normalizeIsbn(raw){const text=raw.replace(/^isbn(?:-1[03])?:?\\s*/i,\"\").replace(/[\\s-]/g,\"\").toUpperCase();if(/^\\d{9}[\\dX]$/.test(text)){let sum=0;for(let i=0;i<10;i+=1)sum+=(text[i]===\"X\"?10:Number(text[i]))*(10-i);if(sum%11!==0)return null;// Convert to ISBN-13 so every lookup and cache key uses one form.\nconst core=`978${text.slice(0,9)}`;let s=0;for(let i=0;i<12;i+=1)s+=Number(core[i])*(i%2===0?1:3);return core+String((10-s%10)%10);}if(/^97[89]\\d{10}$/.test(text)){let sum=0;for(let i=0;i<13;i+=1)sum+=Number(text[i])*(i%2===0?1:3);return sum%10===0?text:null;}return null;}const ARXIV_NEW=/^(?:arxiv:\\s*)?(\\d{4}\\.\\d{4,5})(v\\d+)?$/i;const ARXIV_OLD=/^(?:arxiv:\\s*)?([a-z-]+(?:\\.[A-Z]{2})?\\/\\d{7})(v\\d+)?$/i;function looksLikeReference(text){if(text.length<50)return false;const year=/(\\(\\s*(1[5-9]|20)\\d\\d[a-z]?\\s*[),]|[,.]\\s*(1[5-9]|20)\\d\\d[a-z]?[.,;)]|\\bn\\.d\\.)/.test(text);const names=/[A-Z][A-Za-z'’-]+,\\s+(?:[A-Z]\\.|[A-Z][a-z]+)/.test(text);const structure=(text.match(/[.,]/g)??[]).length>=4;return year&&structure&&(names||/[“\"].+[”\"]/.test(text)||/\\bet al\\b/.test(text));}/** Works out what someone pasted or typed. Order matters: a doi.org URL\n *  is a DOI, not a web page, and a pasted reference often contains a DOI\n *  worth using directly. */function detectInput(input){const text=input.trim().replace(/\\s+/g,\" \");if(!text)return{kind:\"query\",value:\"\"};// URLs first, but unwrap the identifiers they carry.\nconst urlMatch=/^(https?:\\/\\/|www\\.)\\S+$/i.test(text)?text:null;if(urlMatch){const href=/^www\\./i.test(urlMatch)?`https://${urlMatch}`:urlMatch;let url=null;try{url=new URL(href);}catch{url=null;}if(url){const host=url.hostname.toLowerCase().replace(/^www\\./,\"\");if(host===\"doi.org\"||host===\"dx.doi.org\"){const doi=url.pathname.replace(/^\\//,\"\");if(/^10\\.\\d{4,9}\\//.test(decodeURIComponentSafe(doi)))return{kind:\"doi\",value:cleanDoi(doi)};}if(host===\"arxiv.org\"||host===\"export.arxiv.org\"){const m=url.pathname.match(/^\\/(?:abs|pdf|html)\\/(.+?)(?:v\\d+)?(?:\\.pdf)?\\/?$/i);if(m)return{kind:\"arxiv\",value:m[1]};}if(host===\"pubmed.ncbi.nlm.nih.gov\"){const m=url.pathname.match(/^\\/(\\d{1,9})\\/?$/);if(m)return{kind:\"pmid\",value:m[1]};}const pmc=url.pathname.match(/\\/(PMC\\d{3,9})\\b/i);if(pmc&&/ncbi\\.nlm\\.nih\\.gov$|europepmc\\.org$/.test(host))return{kind:\"pmcid\",value:pmc[1].toUpperCase()};return{kind:\"url\",value:url.toString()};}}if(/^doi:\\s*/i.test(text)||/^10\\.\\d{4,9}\\/\\S+$/.test(text)){const m=text.match(DOI_RE);if(m)return{kind:\"doi\",value:cleanDoi(m[1])};}const isbn=normalizeIsbn(text);if(isbn)return{kind:\"isbn\",value:isbn};const pmid=text.match(/^pmid:?\\s*(\\d{1,9})$/i);if(pmid)return{kind:\"pmid\",value:pmid[1]};const pmcid=text.match(/^(?:pmcid:?\\s*)?(PMC\\d{3,9})$/i);if(pmcid)return{kind:\"pmcid\",value:pmcid[1].toUpperCase()};const arxivNew=text.match(ARXIV_NEW);if(arxivNew)return{kind:\"arxiv\",value:arxivNew[1]};const arxivOld=text.match(ARXIV_OLD);if(arxivOld&&/^arxiv:/i.test(text))return{kind:\"arxiv\",value:arxivOld[1]};if(looksLikeReference(text))return{kind:\"reference\",value:text};return{kind:\"query\",value:text};}function decodeURIComponentSafe(value){try{return decodeURIComponent(value);}catch{return value;}}/** A DOI sitting anywhere inside a longer text (a pasted reference, a PDF page). */function findDoi(text){const m=text.match(DOI_RE);return m?cleanDoi(m[1]):null;}const DETECTED_LABEL={doi:\"DOI detected\",isbn:\"ISBN detected\",pmid:\"PubMed ID detected\",pmcid:\"PubMed Central ID detected\",arxiv:\"arXiv ID detected\",url:\"Link detected\",reference:\"Reference detected\",query:\"\"};/* --------------------------------------------------------- cleaning -- */const NAMED_ENTITIES={amp:\"&\",lt:\"<\",gt:\">\",quot:'\"',apos:\"'\",nbsp:\" \",ndash:\"–\",mdash:\"—\",hellip:\"…\",lsquo:\"‘\",rsquo:\"’\",ldquo:\"“\",rdquo:\"”\",copy:\"\\xa9\",reg:\"\\xae\",trade:\"™\",eacute:\"\\xe9\",egrave:\"\\xe8\",aacute:\"\\xe1\",agrave:\"\\xe0\",oacute:\"\\xf3\",uuml:\"\\xfc\",ouml:\"\\xf6\",auml:\"\\xe4\",szlig:\"\\xdf\",ccedil:\"\\xe7\",ntilde:\"\\xf1\",bull:\"•\",middot:\"\\xb7\",laquo:\"\\xab\",raquo:\"\\xbb\",iacute:\"\\xed\",uacute:\"\\xfa\",euml:\"\\xeb\",iuml:\"\\xef\",ocirc:\"\\xf4\",ecirc:\"\\xea\",acirc:\"\\xe2\",aring:\"\\xe5\",oslash:\"\\xf8\"};function decodeEntities(text){return text.replace(/&(#x[0-9a-f]+|#\\d+|[a-z]+);/gi,(whole,code)=>{if(code[0]===\"#\"){const n=code[1].toLowerCase()===\"x\"?parseInt(code.slice(2),16):parseInt(code.slice(1),10);return Number.isFinite(n)&&n>0&&n<1114112?String.fromCodePoint(n):whole;}return NAMED_ENTITIES[code.toLowerCase()]??whole;});}/** Strips HTML and JATS markup from a title, keeping the formatting CSL\n *  rich text understands: italics, bold, superscript, subscript and\n *  small caps. Entities are decoded; whitespace collapsed. */function cleanRichText(input){if(!input)return\"\";let text=String(input);text=text.replace(/<(\\/?)(?:jats:)?(?:italic|em|i)\\b[^>]*>/gi,\"<$1i>\").replace(/<(\\/?)(?:jats:)?(?:bold|strong|b)\\b[^>]*>/gi,\"<$1b>\").replace(/<(\\/?)(?:jats:)?(?:sup|superscript)\\b[^>]*>/gi,\"<$1sup>\").replace(/<(\\/?)(?:jats:)?(?:sub|subscript)\\b[^>]*>/gi,\"<$1sub>\").replace(/<(?:jats:)?sc\\b[^>]*>/gi,'<span style=\"font-variant:small-caps;\">').replace(/<\\/(?:jats:)?sc>/gi,\"</span>\").replace(/<(?:mml:)?math\\b[\\s\\S]*?<\\/(?:mml:)?math>/gi,m=>m.replace(/<[^>]+>/g,\"\"));// Park the tags we keep, strip every other tag, then put them back, so a\n// stray closing tag from something we dropped can never survive.\nconst kept=[];text=text.replace(/<\\/?(?:i|b|sup|sub)>|<span style=\"font-variant:small-caps;\">|<\\/span>/gi,tag=>{kept.push(tag);return`\\u0001${kept.length-1}\\u0002`;});text=text.replace(/<[^>]*>/g,\"\");text=text.replace(/\\u0001(\\d+)\\u0002/g,(_m,i)=>kept[Number(i)]);// A closing span only survives if a small-caps span opened it.\nif(!text.includes('<span style=\"font-variant:small-caps;\">'))text=text.replace(/<\\/span>/g,\"\");text=decodeEntities(text).replace(/\\s+/g,\" \").trim();// Empty formatting runs left behind by the stripping.\ntext=text.replace(/<(i|b|sup|sub)>\\s*<\\/\\1>/g,\"\");return text;}/** Plain text, all markup gone. */function plainText(input){return decodeEntities(String(input??\"\").replace(/<[^>]*>/g,\"\")).replace(/\\s+/g,\" \").trim();}const SMALL_WORDS=new Set([\"a\",\"an\",\"and\",\"as\",\"at\",\"but\",\"by\",\"en\",\"for\",\"from\",\"if\",\"in\",\"into\",\"nor\",\"of\",\"off\",\"on\",\"onto\",\"or\",\"over\",\"per\",\"so\",\"than\",\"the\",\"to\",\"up\",\"upon\",\"via\",\"vs\",\"with\",\"yet\"]);function isAllCaps(text){const letters=plainText(text).replace(/[^A-Za-z]/g,\"\");if(letters.length<8)return false;const upper=letters.replace(/[^A-Z]/g,\"\").length;return upper/letters.length>.85;}/** \"THE EFFECT OF SLEEP ON MEMORY\" becomes \"The Effect of Sleep on Memory\".\n *  Only applied to shouting titles; ordinary mixed case is left alone. */function fixAllCaps(title){if(!isAllCaps(title))return title;let first=true;return title.replace(/(<[^>]+>)|([A-Za-z][A-Za-z'’]*)/g,(whole,tag,word)=>{if(tag||!word)return whole;const lower=word.toLowerCase();const out=!first&&SMALL_WORDS.has(lower)?lower:lower[0].toUpperCase()+lower.slice(1);first=false;return out;});}/** Proper nouns and brand names that sentence case must not lower. Short\n *  on purpose: anything else the writer can fix in the title field. */const PROPER=new Set((\"i english french german spanish italian chinese japanese korean arabic russian portuguese dutch greek latin hebrew hindi \"+\"american british european african asian australian canadian indian mexican brazilian irish scottish welsh maori \"+\"america britain europe africa asia australia canada india china japan germany france italy spain mexico brazil \"+\"england scotland wales ireland zealand york london paris berlin tokyo beijing washington california texas \"+\"christian christianity islam islamic muslim jewish judaism buddhist buddhism hindu catholic protestant \"+\"january february march april may june july august september october november december \"+\"monday tuesday wednesday thursday friday saturday sunday \"+\"god internet google facebook twitter instagram youtube tiktok amazon apple microsoft wikipedia chatgpt openai \"+\"shakespeare darwin freud marx einstein newton plato aristotle kant covid parkinson alzheimer alzheimer's parkinson's \"+\"bayesian gaussian markov euclidean newtonian darwinian marxist victorian renaissance \"+// Publishers and universities, which open many handbook and report titles (\"The Routledge handbook of\").\n\"routledge oxford cambridge springer wiley sage elsevier palgrave blackwell bloomsbury penguin norton harvard yale princeton stanford columbia chicago berkeley\").split(\" \"));function keepCase(word){const bare=word.replace(/[^A-Za-z0-9'’-]/g,\"\");if(!bare)return true;if(/\\d/.test(bare))return true;// COVID-19, H1N1, 3D\nif(/^[A-Z]{2,}s?$/.test(bare))return true;// acronyms: DNA, HIV, NGOs\nif(/[a-z][A-Z]/.test(bare))return true;// iPhone, mRNA, McDonald\nif(/^[A-Z]\\.?$/.test(bare)&&bare!==\"A\")return true;// single initials\nconst w=bare.toLowerCase().replace(/[’']s$/,\"\");// Plurals of known names too: \"Americans\", \"Canadians\".\nreturn PROPER.has(w)||w.length>4&&w.endsWith(\"s\")&&PROPER.has(w.slice(0,-1));}/** Names of more than one word keep their capitals (\"New York City\", \"United States\", \"World War II\"): the\n *  word-by-word rule would lowercase \"New\" and \"City\". Only a name written with capitals is kept. */const PLACE_NAMES=/\\b(New York City|New York|New Jersey|New Mexico|New Zealand|New Delhi|New England|New Orleans|Los Angeles|Las Vegas|San Francisco|San Diego|Hong Kong|Sri Lanka|Saudi Arabia|South Africa|South Korea|North Korea|North America|South America|Latin America|Middle East|United States|United Kingdom|United Nations|European Union|Great Britain|Northern Ireland|Puerto Rico|Costa Rica|El Salvador|Rio de Janeiro|Buenos Aires|Mexico City|Cape Town|Washington, D\\.C\\.|World War I{1,2}|Cold War|Civil War|Great Depression|Supreme Court|White House|Silicon Valley)\\b/g;function keepPlaceNames(source,cased){if(source.length!==cased.length)return cased;let out=cased;for(const m of source.matchAll(PLACE_NAMES)){const at=m.index??0;// The first letter follows the sentence's own rule (a name opening the title is capitalized anyway).\nout=out.slice(0,at)+m[0]+out.slice(at+m[0].length);}return out;}/** Title case to sentence case, for styles such as APA that want it for\n *  article and chapter titles. Capitals are kept on the first word, on\n *  the first word after a colon, question or exclamation mark, on\n *  acronyms and mixed-case words, and on known proper nouns. A title that\n *  already looks like sentence case is left as it is, because its\n *  remaining capitals are almost certainly proper nouns. Text inside\n *  `<span class=\"nocase\">` is never touched. */function sentenceCase(title){if(!title)return title;const source=isAllCaps(title)?fixAllCaps(title):title;const tokens=source.split(/(<span class=\"nocase\">[\\s\\S]*?<\\/span>|<[^>]+>|\\s+)/);const words=tokens.filter(t=>t&&!/^\\s+$/.test(t)&&!t.startsWith(\"<\"));const candidates=words.slice(1).filter(w=>/^[A-Za-z]/.test(w)&&!SMALL_WORDS.has(w.toLowerCase())&&!keepCase(w));const capitalised=candidates.filter(w=>/^[A-Z]/.test(w)).length;const alreadySentence=candidates.length>=2&&capitalised/candidates.length<.5;let capitaliseNext=true;const cased=tokens.map(token=>{if(!token||/^\\s+$/.test(token)||token.startsWith(\"<\"))return token;const lead=token.match(/^[^A-Za-z0-9]*/)?.[0]??\"\";const rest=token.slice(lead.length);let out=token;if(capitaliseNext){out=lead+rest.charAt(0).toUpperCase()+rest.slice(1);}else if(!alreadySentence&&!keepCase(token)){// A hyphenated word keeps the capitals of its acronyms and names: \"Human-AI\" is \"human-AI\".\nout=token.includes(\"-\")?token.split(\"-\").map(part=>keepCase(part)?part:part.toLowerCase()).join(\"-\"):token.toLowerCase();}capitaliseNext=/[:?!][\"'”’)]*$/.test(token);return out;}).join(\"\");return keepPlaceNames(source,cased);}/** Which styles want article and chapter titles in sentence case. */function styleWantsSentenceCase(styleId){return/^(apa|american-psychological|harvard|elsevier-harvard|vancouver|american-medical-association|nature|american-sociological-association|council-of-science-editors|american-chemical-society)/.test(styleId);}/* ----------------------------------------------------------- names -- */const PARTICLES=new Set([\"van\",\"von\",\"de\",\"del\",\"della\",\"der\",\"den\",\"di\",\"da\",\"dos\",\"das\",\"du\",\"la\",\"le\",\"ten\",\"ter\",\"bin\",\"ibn\",\"al\",\"el\",\"st.\",\"mac\"]);const ORG_WORDS=/\\b(inc|ltd|llc|plc|co|corp|corporation|company|group|team|staff|editors|editorial|board|news|press|media|times|post|journal|university|college|institute|school|association|society|organi[sz]ation|foundation|council|committee|department|ministry|agency|office|bureau|centre|center|commission|government|authority|trust|network|bank|fund|nhs|who|un|unesco|unicef|reuters|associated|bbc|cnn|npr|wikipedia|contributors|service|services|project|programme|program|laboratory|lab|hospital|clinic|library|museum|federation|union|coalition|alliance|partnership|initiative|consortium|academy|academies)\\b/i;/** \"Smith, Jane A.\" or \"Jane A. Smith\" or \"Ludwig van Beethoven\" or an\n *  organisation. Organisations become a literal name so styles print\n *  them whole instead of inverting them. */function parseName(raw){let text=plainText(raw).replace(/^(by|author:|written by)\\s+/i,\"\").replace(/\\s+/g,\" \").trim();text=text.replace(/[,;]\\s*$/,\"\");if(!text||/^https?:\\/\\//i.test(text)||text.length>120)return null;if(ORG_WORDS.test(text)||text.split(\" \").length>5)return{literal:text};// Credentials after a name (\"Robert H. Shmerling, MD\") are not a given name.\ntext=text.replace(/(?:,?\\s+(?:MD|M\\.D\\.|PhD|Ph\\.D\\.|DPhil|MPH|MBA|MSc|MS|MA|BSc|BA|RN|NP|PA-C|DO|DDS|DMD|PharmD|PsyD|EdD|JD|LLM|Esq\\.?|FRCP|FRCS|FACP|CPA|MSW|LCSW)\\b\\.?)+$/i,\"\").trim();const suffixMatch=text.match(/,?\\s+(Jr\\.?|Sr\\.?|II|III|IV)$/);const suffix=suffixMatch?suffixMatch[1]:undefined;if(suffixMatch)text=text.slice(0,suffixMatch.index).trim();let given;let family;if(text.includes(\",\")){const[f,g]=text.split(\",\",2);family=f.trim();given=g?.trim()||undefined;}else{const parts=text.split(\" \");if(parts.length===1)return{family:parts[0],...suffix?{suffix}:{}};let cut=parts.length-1;while(cut>1&&PARTICLES.has(parts[cut-1].toLowerCase()))cut-=1;given=parts.slice(0,cut).join(\" \");family=parts.slice(cut).join(\" \");}const name={family:fixNameCase(family)};if(given)name.given=fixNameCase(given);// Lower-case particles lead the family name in CSL (\"van Gogh\").\nconst particle=name.family?.match(/^((?:[a-z]+\\s+)+)(.+)$/);if(particle&&PARTICLES.has(particle[1].trim().split(\" \")[0])){name[\"non-dropping-particle\"]=particle[1].trim();name.family=particle[2];}if(suffix)name.suffix=suffix;return name;}function fixNameCase(part){if(part.length>3&&part===part.toUpperCase()&&/[A-Z]/.test(part)){return part.toLowerCase().replace(/(^|[\\s'’-])([a-z])/g,(_m,sep,c)=>sep+c.toUpperCase());}return part;}/** Splits a byline such as \"By Jane Doe and John Smith\" into names. */function parseByline(raw){const text=plainText(raw).replace(/^by\\s+/i,\"\");if(!text)return[];if(ORG_WORDS.test(text)&&!/\\band\\b|,|&/.test(text))return[{literal:text}];return text.split(/\\s*(?:,|;|\\band\\b|&|\\|)\\s*/i).map(part=>parseName(part)).filter(n=>n!==null);}/* ----------------------------------------------------------- dates -- */const MONTHS={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,sept:9,oct:10,nov:11,dec:12};function validParts(y,m,d){if(!Number.isFinite(y)||y<1e3||y>2100)return null;if(m===undefined||!Number.isFinite(m)||m<1||m>12)return[y];if(d===undefined||!Number.isFinite(d)||d<1||d>31)return[y,m];return[y,m,d];}/** Turns the date formats found in the wild into CSL date parts, without\n *  going through Date (which would shift ISO timestamps by time zone). */function parseDate(raw){if(raw===undefined||raw===null||raw===\"\")return undefined;const text=String(raw).trim();let m=text.match(/^(\\d{4})(?:-(\\d{1,2})(?:-(\\d{1,2}))?)?(?:T.*|\\s+\\d{1,2}:\\d{2}.*)?$/);if(m){const parts=validParts(Number(m[1]),m[2]?Number(m[2]):undefined,m[3]?Number(m[3]):undefined);return parts?{\"date-parts\":[parts]}:undefined;}m=text.match(/^(\\d{4})\\/(\\d{1,2})(?:\\/(\\d{1,2}))?$/);if(m){const parts=validParts(Number(m[1]),Number(m[2]),m[3]?Number(m[3]):undefined);return parts?{\"date-parts\":[parts]}:undefined;}// \"May 1, 2023\", \"1 May 2023\", \"2023 Jun 12\", \"June 2023\"\nconst lower=text.toLowerCase().replace(/(\\d)(st|nd|rd|th)\\b/g,\"$1\").replace(/[.,]/g,\" \").replace(/\\s+/g,\" \");const year=lower.match(/\\b(1[5-9]\\d\\d|20\\d\\d)\\b/);if(year){const monthWord=lower.match(/\\b(jan|feb|mar|apr|may|jun|jul|aug|sept?|oct|nov|dec)[a-z]*\\b/);const month=monthWord?MONTHS[monthWord[1]]:undefined;let day;if(month){const around=lower.replace(year[0],\" \").match(/\\b(\\d{1,2})\\b/);if(around)day=Number(around[1]);}const parts=validParts(Number(year[1]),month,day);if(parts)return{\"date-parts\":[parts]};}return undefined;}function yearOf(item){const y=item.issued?.[\"date-parts\"]?.[0]?.[0];const n=Number(y);return Number.isFinite(n)&&n>0?n:undefined;}function todayParts(now=new Date){return{\"date-parts\":[[now.getFullYear(),now.getMonth()+1,now.getDate()]]};}const WEB_TYPES=new Set([\"webpage\",\"post-weblog\",\"post\",\"article-newspaper\",\"article-magazine\"]);/** The fields that matter for this kind of source, and which are empty. */function missingFields(item){const missing=[];const has=v=>Array.isArray(v)?v.length>0:typeof v===\"object\"&&v!==null?true:Boolean(v);const hasDate=Boolean(item.issued?.[\"date-parts\"]?.[0]?.[0]||item.issued?.literal);if(!plainText(item.title))missing.push(\"title\");const people=has(item.author)||has(item.editor)||has(item.director);if(!people&&item.type!==\"entry-encyclopedia\")missing.push(\"author\");if(!hasDate)missing.push(\"issued\");switch(item.type){case\"article-journal\":if(!item[\"container-title\"])missing.push(\"container-title\");if(!item.DOI&&!item.page&&!item.URL)missing.push(\"page\");if(!item.DOI&&!item.volume)missing.push(\"volume\");break;case\"book\":case\"report\":case\"thesis\":if(!item.publisher)missing.push(\"publisher\");break;case\"chapter\":if(!item[\"container-title\"])missing.push(\"container-title\");if(!item.publisher)missing.push(\"publisher\");break;default:if(WEB_TYPES.has(item.type)||item.type===\"motion_picture\"){if(!item.URL)missing.push(\"URL\");if(!item[\"container-title\"]&&!item.publisher)missing.push(\"container-title\");}}return missing;}/* ----------------------------------------------------------- dedupe -- */function normalizeTitle(title){return plainText(title).toLowerCase().normalize(\"NFKD\").replace(/[̀-ͯ]/g,\"\").replace(/[^a-z0-9 ]+/g,\" \").replace(/\\s+/g,\" \").trim();}function dedupeKey(item){if(item.DOI)return`doi:${item.DOI.toLowerCase()}`;if(item.ISBN)return`isbn:${String(item.ISBN).replace(/[^0-9X]/gi,\"\")}`;return`t:${normalizeTitle(item.title)}:${yearOf(item)??\"\"}`;}/** Share of the query's words that appear in the title, 0 to 1. */function titleMatch(query,title){const q=normalizeTitle(query).split(\" \").filter(w=>w.length>1);const t=new Set(normalizeTitle(title).split(\" \"));if(q.length===0||t.size===0)return 0;if(normalizeTitle(query)===normalizeTitle(title))return 1;const hits=q.filter(w=>t.has(w)).length;const coverage=hits/q.length;// A long title that merely contains the query words is a weaker match.\nconst precision=hits/Math.max(t.size,1);// Only an identical title counts as a perfect match; \"Is attention all\n// you need?\" contains every word of \"Attention is all you need\" but is\n// a different paper.\nreturn Math.min(.95,coverage*.75+precision*.25);}/* ------------------------------------------- annotated bibliography -- *//** What an AI annotation drafted without a research topic has where its relevance would go: the\n *  student's part to write. The annotations generator writes it; the annotated bibliography marks it\n *  on the card, says how many are left by Copy all and Word, and once there's a topic, Add relevance\n *  writes just that part in its place (fillRelevancePlaceholder). */const RELEVANCE_PLACEHOLDER=\"[Explain how this source helps your research]\";/** Where the placeholder starts and ends in an annotation, or null when it has none. */function relevancePlaceholderAt(text){const start=String(text??\"\").indexOf(RELEVANCE_PLACEHOLDER);return start<0?null:{start,end:start+RELEVANCE_PLACEHOLDER.length};}function hasRelevancePlaceholder(text){return relevancePlaceholderAt(text)!==null;}/** The annotation with its placeholder replaced by `part` (the relevance Add relevance wrote), and a\n *  full stop after the placeholder dropped when `part` ends a sentence itself. Every other character\n *  stays as the student left it. With no placeholder or no part, the annotation as it is. */function fillRelevancePlaceholder(annotation,part){const at=relevancePlaceholderAt(annotation);const text=part.trim();if(!at||!text)return annotation;const after=annotation.slice(at.end);return annotation.slice(0,at.start)+text+(/[.!?][\"”’)]?$/.test(text)?after.replace(/^\\./,\"\"):after);}// ---- CitePrep.ts -------------------------------------------------\n/**\n * CitePrep: per-type reshaping for the source-type pages, applied by CiteEngine.prepare before citeproc\n * sees an item, and the few fixes to finished entries that no reshaping can make (fixEntry). The style\n * files handle these sources poorly; each rule below names what it fixes and the guide it follows.\n *\n * Pure: no DOM, unit tested in Node (tests/cite-source-pages.test.mts).\n */const prepNorm=s=>s.toLowerCase().replace(/^the\\s+/,\"\").replace(/[^a-z0-9]+/g,\"\");const prepSameName=(a,b)=>Boolean(a&&b)&&prepNorm(a)===prepNorm(b);/** Domain names inside titles and site names (\"FactCheck.org\", \"Merriam-Webster.com\") keep their case:\n *  the style files title-case them into \"FactCheck.Org\". citeproc leaves text in a nocase span alone. */function protectDomains(text){if(!text||text.includes('class=\"nocase\"'))return text;return text.replace(/(^|[\\s(])([A-Za-z0-9][\\w-]*(?:\\.[A-Za-z0-9][\\w-]*)*\\.(?:com|org|net|edu|gov|io|co|uk|ai|info|us|ca|au|de|fr|app|dev|tv|me|ly)\\b[\\w./-]*)/g,(_m,lead,domain)=>`${lead}<span class=\"nocase\">${domain}</span>`);}/** MLA 9 shortens publishers: \"University Press\" is \"UP\", \"University\" is \"U\" and \"Press\" is \"P\" when the\n *  name has \"University\" in it, and business words (Inc., Ltd., Company, Corporation) are dropped. Two\n *  publishers are separated by a slash. */function mlaPublisher(name){let out=name.split(/\\s*;\\s*/).map(p=>{let s=p.replace(/,?\\s+(Inc|Incorporated|Ltd|Limited|Co|Company|Corp|Corporation|LLC)\\.?$/i,\"\");if(/\\bUniversity\\b/.test(s))s=s.replace(/\\bUniversity Press\\b/g,\"UP\").replace(/\\bUniversity\\b/g,\"U\").replace(/\\bPress\\b/g,\"P\");return s.trim();}).filter(Boolean).join(\" / \");out=out.replace(/\\s+/g,\" \");return out;}function prepAuthorText(n){if(!n)return\"\";return n.literal??[n.given,n.family].filter(Boolean).join(\" \");}/** Web pages (and a whole website, ws-scope \"site\").\n *  - APA 7: the site name is left out when it's the same as the author (APA 9.44 and its webpage examples);\n *    a retrieval date only for a page designed to change (ws-changes), never by default.\n *  - MLA 9: an organization that is both author and publisher isn't repeated as the author: the entry\n *    starts with the title (MLA Style Center, \"corporate author\").\n *  - A whole website: the site's own name is the title (no container). */function prepareWeb(csl,family){const site=plainText(String(csl[\"container-title\"]??\"\")).trim();const authors=csl.author??[];const orgIsSite=authors.length===1&&Boolean(site)&&prepSameName(authors[0].literal??\"\",site);if(csl[\"ws-scope\"]===\"site\"){if(!csl.title&&site)csl.title=site;delete csl[\"container-title\"];}switch(family){case\"apa\":if(orgIsSite)delete csl[\"container-title\"];if(!csl[\"ws-changes\"])delete csl.accessed;break;case\"mla\":if(orgIsSite)delete csl.author;break;}}/** Online video (ws-kind \"video\"): the platform in container-title, the channel in author, the real name\n *  (when the channel is someone's) in ws-person, the length in dimensions.\n *  - APA 7 (10.12): \"Person, A. [Channel]. (Date). Title [Video]. YouTube. URL\", the platform as publisher.\n *  - MLA 9: \"Creator. “Title.” YouTube, uploaded by Channel, Day Month Year, URL.\" When the creator is the\n *    uploader, it starts with the creator and leaves out \"uploaded by\".\n *  - Chicago 18: its own entry (chicagoVideo): the style file puts the platform and date out of order.\n *  - Other styles: the platform as publisher, as APA. */function prepareVideo(csl,family){const platform=plainText(String(csl[\"container-title\"]??\"\")).trim();const channel=plainText(String(csl[\"ws-channel\"]??\"\")).trim();switch(family){case\"mla\":csl.type=\"webpage\";delete csl.genre;delete csl.dimensions;if(channel&&csl.author?.length&&!prepSameName(prepAuthorText(csl.author[0]),channel))csl.publisher=`uploaded by ${channel}`;break;case\"harvard\":delete csl.dimensions;break;default:if(platform){csl.publisher=platform;delete csl[\"container-title\"];}if(!csl.genre)csl.genre=\"Video\";}}/** Films (ws-kind \"movie\"). The director in director, companies in publisher (\"A; B\"), where it was watched\n *  in medium.\n *  - APA 7 (10.12): \"Director, D. (Director). (Year). Title [Film]. Company A; Company B.\" No streaming\n *    service and no URL.\n *  - MLA 9: \"Title. Directed by Name, Company, Year.\" No \"Film.\" element.\n *  - Chicago 18: \"Director, dir. Title. Company, Year.\" plus the format or service when given.\n *  - Harvard (Cite Them Right): \"Title (Year) Directed by Name. Company.\" (fixEntry adds the director). */function prepareFilm(csl,family){const medium=plainText(String(csl.medium??\"\")).trim();switch(family){case\"apa\":csl.genre=\"Film\";delete csl.medium;delete csl.URL;delete csl.accessed;break;case\"mla\":delete csl.genre;delete csl.medium;if(csl.publisher)csl.publisher=mlaPublisher(String(csl.publisher));break;case\"chicago\":// The service or format goes at the end of the entry (fixEntry), not after the title.\ndelete csl.genre;delete csl.medium;if(medium)csl[\"ws-watched\"]=medium;break;default:delete csl.genre;delete csl.medium;}}/** Journal articles.\n *  - Article numbers (eLocators, stored in number) stand where pages would: MLA and Harvard print them\n *    bare (\"e308\"), not as \"no. e308\" or \"p. e308\".\n *  - In press (status \"in press\"): MLA 9 writes \"forthcoming\" in the date's place; Cite Them Right \"(in\n *    press)\". APA and Chicago read the status themselves. *//** Databases that only host articles published elsewhere: APA leaves them out (9.30). */const COMMON_DATABASES=/^(jstor|ebsco(host)?|proquest|academic search( complete| premier)?|psycinfo|apa psycinfo|psycarticles|sciencedirect|pubmed( central)?|web of science|scopus|google scholar|gale|wiley online library|springerlink|project muse|taylor & francis online|sage journals|ovid|cinahl|medline|lexisnexis|nexis uni)$/i;function prepareArticle(csl,family){if(family===\"apa\"&&csl.archive&&COMMON_DATABASES.test(String(csl.archive).trim()))delete csl.archive;const artnum=String(csl.number??\"\").trim();if(artnum&&!csl.page&&(family===\"mla\"||family===\"harvard\")){csl.page=artnum;delete csl.number;csl[\"ws-artnum\"]=artnum;}if(/^in press$/i.test(String(csl.status??\"\"))&&!csl.issued){if(family===\"mla\"){csl.issued={literal:\"forthcoming\"};delete csl.status;}if(family===\"harvard\"){csl.issued={literal:\"in press\"};delete csl.status;csl[\"ws-inpress\"]=true;}}}/** Books and chapters: MLA shortens publisher names. */function prepareBook(csl,family){if(family===\"mla\"&&csl.publisher)csl.publisher=mlaPublisher(String(csl.publisher));}/** Newspaper and magazine articles.\n *  - MLA 9: an edition as \"late ed.\"; pages that aren't consecutive as the first page and a plus (\"A1+\");\n *    no section when the page numbers carry it (A1). Publisher names are shortened as for books.\n *  - Chicago 18 (14.89, 14.172): an initial \"The\" in the paper's or magazine's name is dropped; newspaper\n *    page numbers, sections and editions are left out; magazines are cited by date (no volume or issue).\n *  - Harvard (Cite Them Right): no edition. */function preparePeriodical(csl,family){const pages=String(csl.page??\"\");switch(family){case\"mla\":if(csl.edition)csl.edition=String(csl.edition).replace(/\\s*edition$/i,\"\").toLowerCase().concat(\" ed.\");if(/,/.test(pages))csl.page=`${pages.split(\",\")[0].trim()}+`;if(/^[A-Z]/.test(pages))delete csl.section;break;case\"chicago\":if(typeof csl[\"container-title\"]===\"string\")csl[\"container-title\"]=csl[\"container-title\"].replace(/^The\\s+/,\"\");delete csl.section;delete csl.edition;if(csl.type===\"article-newspaper\")delete csl.page;if(csl.type===\"article-magazine\"){delete csl.volume;delete csl.issue;}break;case\"harvard\":delete csl.edition;delete csl.section;break;case\"apa\":case\"ieee\":delete csl.section;delete csl.edition;}}/** Social media posts.\n *  - APA 7 (10.15): the first 20 words of the post as the title; an attached image or video before the\n *    post type: \"[Image attached] [Post]\".\n *  - Chicago 18: the handle in parentheses after the name, \"NASA (@NASA)\"; APA and MLA use brackets. */function prepareSocial(csl,family){if(family===\"apa\"){// Twenty words, counting emojis and not counting punctuation standing alone (\"—\").\nconst tokens=plainText(String(csl.title??\"\")).split(/\\s+/).filter(Boolean);let count=0;const cut=tokens.findIndex(t=>RegExp(\"[\\\\p{L}\\\\p{N}\\\\p{Extended_Pictographic}]\",\"u\").test(t)&&++count>20);if(cut>0)csl.title=tokens.slice(0,cut).join(\" \");const attached=csl[\"ws-attached\"];if((attached===\"image\"||attached===\"video\")&&csl.genre)csl.genre=`${attached===\"image\"?\"Image\":\"Video\"} attached] [${csl.genre}`;}if(family===\"chicago\")csl.author=csl.author?.map(n=>n.literal?{literal:n.literal.replace(/\\s*\\[(@[^\\]]+)\\]$/,\" ($1)\")}:n);}/** Reports.\n *  - APA 7 (10.4): the publisher is left out when it's the author.\n *  - MLA 9: an organization that is both author and publisher starts the entry with the title and is named\n *    as the publisher.\n *  - Chicago and IEEE name the organization as publisher too. */function prepareReport(csl,family){const org=csl.author?.length===1?csl.author[0].literal??\"\":\"\";const publisher=plainText(String(csl.publisher??\"\")).trim();// \"OECD\" and \"OECD Publishing\", \"World Bank\" and \"World Bank Group\": the same organization.\nconst core=n=>n.replace(/\\s+(Publishing|Publications|Press|Group)$/i,\"\");const same=Boolean(org)&&(!publisher||prepSameName(core(org),core(publisher)));if(family===\"apa\"&&same)delete csl.publisher;if(family===\"mla\"&&same){csl.publisher=mlaPublisher(org);delete csl.author;}else if(family===\"mla\"&&csl.publisher)csl.publisher=mlaPublisher(publisher);if((family===\"chicago\"||family===\"ieee\")&&org&&!publisher)csl.publisher=org;}/** Theses and dissertations: each style's own words for the kind.\n *  - APA 7 (10.6): \"[Doctoral dissertation, University]\"; unpublished: \"[Unpublished doctoral\n *    dissertation]. University.\" (fixEntry places the university).\n *  - Chicago 18 (14.113): \"PhD diss.\", \"Master's thesis\". Harvard: \"PhD thesis\". IEEE: \"Ph.D. dissertation\".\n *  MLA is written out in CiteOwn. */function prepareThesis(csl,family){const genre=String(csl.genre??\"\");const kind=/doctor|ph\\.?\\s?d|diss/i.test(genre)?\"doctoral\":/bachelor|honou?rs/i.test(genre)?\"bachelors\":/master/i.test(genre)?\"masters\":\"doctoral\";const words={chicago:{doctoral:\"PhD diss.\",masters:\"Master’s thesis\",bachelors:\"Bachelor’s thesis\"},harvard:{doctoral:\"PhD thesis\",masters:\"Master’s thesis\",bachelors:\"Bachelor’s thesis\"},ieee:{doctoral:\"Ph.D. dissertation\",masters:\"M.S. thesis\",bachelors:\"B.S. thesis\"}};csl[\"ws-genre\"]=genre;csl[\"ws-univ\"]=csl.publisher;if(words[family])csl.genre=words[family][kind];if(family===\"apa\"&&csl[\"ws-found\"]===\"unpublished\"){csl.genre=`Unpublished ${genre.charAt(0).toLowerCase()}${genre.slice(1)}`;delete csl.publisher;}}/** Wiki entries: APA asks for the permanent link to the version read (…&oldid=…); MLA, Chicago and the\n *  others print the article's own address (MLA's \"en.wikipedia.org/wiki/Harry_Houdini\", Chicago's\n *  notes), with the date of that version. */function prepareWiki(csl,family){if(family===\"apa\"||typeof csl.URL!==\"string\")return;try{const u=new URL(csl.URL);const title=u.searchParams.get(\"title\");if(!u.searchParams.get(\"oldid\"))return;if(title&&/\\/index\\.php$/.test(u.pathname))csl.URL=`${u.origin}/wiki/${title}`;else if(/^\\/wiki\\//.test(u.pathname))csl.URL=`${u.origin}${u.pathname}`;}catch{/* not a URL we can read: leave it */}}/** Forum posts and comments: the style file sees the name it cites in the text (\"Little\", \"nasa\", an\n *  organization's name); CiteOwn writes the entry from the names as the site shows them, kept in ws-names\n *  (\"Jason Little [j450n_l]\" is \"Little, J. [j450n_l]\" in APA). */function preparePostNames(csl,handle){if(!csl.author?.length)return;csl[\"ws-names\"]=csl.author;csl.author=csl.author.map(n=>{const h=handle(n);return h.person??{literal:h.name??h.handle??\"\"};});}/** MLA starts with the title when an organization is both author and publisher (a press release on its\n *  own site, an app or program its company makes, a dictionary): the in-text citation then uses the title\n *  too. The organization is kept in ws-org for CiteOwn's entry. */function prepareMlaOrg(csl){const org=csl.author?.length===1?csl.author[0].literal??\"\":\"\";if(!org)return;const wire=plainText(String(csl.publisher??\"\")).trim();const kind=csl[\"ws-kind\"];const drop=kind===\"press\"&&!wire||csl.type===\"software\"||csl.type===\"dataset\"&&csl[\"ws-found\"]!==\"unpublished\"&&(!wire||prepSameName(wire,org))||csl.type===\"entry-dictionary\"||csl.type===\"entry-encyclopedia\"&&kind!==\"wiki\";if(!drop)return;csl[\"ws-org\"]=org;delete csl.author;}/** APA: a work with no author starts with its title (9.12), but the style file moves the publisher into the\n *  author's place for software and reference entries (\"Pub Co. (2020)\", \"(Pub Co, 2020)\"). The publisher is\n *  set aside in ws-publisher, and CiteOwn prints it after the title. */function prepareApaNoAuthor(csl){if(csl.author?.length||!csl.publisher)return;if(csl.type!==\"software\"&&csl.type!==\"entry-encyclopedia\"&&csl.type!==\"entry-dictionary\")return;csl[\"ws-publisher\"]=csl.publisher;delete csl.publisher;}/** Press releases (APA 10.4): the organization as author and no publisher when it's the author; a wire\n *  service (PR Newswire) as the site, which APA's webpage format prints before the URL. */function preparePress(csl,family){const wire=plainText(String(csl.publisher??\"\")).trim();const org=csl.author?.length===1?csl.author[0].literal??\"\":\"\";if(family===\"apa\"){if(wire&&!prepSameName(wire,org))csl[\"container-title\"]=wire;delete csl.publisher;}}/** Datasets. APA 10.9: \"(ICPSR 36966; Version V1) [Data set]\": the style file reads the description from\n *  medium (from genre it prints \"Data Set ICPSR 36966\"). Harvard (Cite Them Right): no publisher. */function prepareDataset(csl,family){if(family===\"apa\"&&csl.genre){csl.medium=csl.genre;delete csl.genre;}if(family===\"harvard\")delete csl.publisher;}/** IEEE abbreviates a proceedings title (its reference guide's table: Proceedings \"Proc.\", Conference\n *  \"Conf.\", International \"Int.\", Symposium \"Symp.\"...) and drops \"of the\", \"on\" and the like. */const IEEE_CONF_WORDS={proceedings:\"Proc.\",conference:\"Conf.\",international:\"Int.\",symposium:\"Symp.\",annual:\"Annu.\",annals:\"Ann.\",colloquium:\"Colloq.\",congress:\"Congr.\",convention:\"Conv.\",digest:\"Dig.\",exposition:\"Expo.\",national:\"Nat.\",record:\"Rec.\",technical:\"Tech.\",workshop:\"Workshop\",meeting:\"Meeting\",first:\"1st\",second:\"2nd\",third:\"3rd\",fourth:\"4th\",fifth:\"5th\",sixth:\"6th\",seventh:\"7th\",eighth:\"8th\",ninth:\"9th\",tenth:\"10th\",propagation:\"Propag.\",intelligent:\"Intell.\",vehicles:\"Veh.\",vehicular:\"Veh.\",transactions:\"Trans.\",electrical:\"Elect.\",electric:\"Elect.\",medical:\"Med.\",biomedical:\"Biomed.\",physics:\"Phys.\",mathematics:\"Math.\",statistics:\"Statist.\",industrial:\"Ind.\",distributed:\"Distrib.\",security:\"Secur.\",knowledge:\"Knowl.\",discovery:\"Discov.\",circuits:\"Circuits\",computational:\"Comput.\",linguistics:\"Linguistics\",empirical:\"Empir.\",methods:\"Methods\",natural:\"Natural\",computing:\"Comput.\",computer:\"Comput.\",computers:\"Comput.\",systems:\"Syst.\",system:\"Syst.\",engineering:\"Eng.\",technology:\"Technol.\",science:\"Sci.\",sciences:\"Sci.\",research:\"Res.\",information:\"Inf.\",communications:\"Commun.\",communication:\"Commun.\",electronics:\"Electron.\",robotics:\"Robot.\",automation:\"Automat.\",intelligence:\"Intell.\",artificial:\"Artif.\",applications:\"Appl.\",networks:\"Netw.\",networking:\"Netw.\",processing:\"Process.\",software:\"Softw.\",european:\"Eur.\",american:\"Amer.\",society:\"Soc.\",association:\"Assoc.\",machine:\"Mach.\",learning:\"Learn.\",language:\"Lang.\",languages:\"Lang.\",human:\"Hum.\",factors:\"Factors\",management:\"Manage.\",design:\"Des.\",analysis:\"Anal.\",vision:\"Vis.\",pattern:\"Pattern\",recognition:\"Recognit.\",neural:\"Neural\",advances:\"Adv.\"};function ieeeProceedings(title){return title.split(/\\s+/)// \"Proceedings of the IEEE Antennas and Propagation Society ...\" is \"Proc. IEEE Antennas Propag. Soc. ...\".\n.filter((w,i)=>i===0||!/^(of|the|on|for|and|in|a|an|&)$/i.test(w)).map(w=>{const bare=w.replace(/[^A-Za-z]/g,\"\").toLowerCase();const abbr=IEEE_CONF_WORDS[bare];return abbr?w.replace(new RegExp(bare,\"i\"),abbr).replace(/\\.\\./g,\".\"):w;}).join(\" \");}/** Conference papers in proceedings.\n *  - APA (10.5, \"the same as for edited book chapters\"): the proceedings title in sentence case.\n *  - IEEE: \"in *Proc. …*, City, ST, USA, year, pp. …\": the abbreviated proceedings title, the conference's\n *    place, and no publisher. */function prepareConference(csl,family,apaCase){const title=plainText(String(csl[\"container-title\"]??\"\")).trim();if(family===\"apa\"&&title)csl[\"container-title\"]=apaCase(title);// A proceedings title is abbreviated, and the conference's place replaces the publisher; a book of papers\n// in a series (Lecture Notes in Computer Science) keeps its title and publisher.\nif(family===\"ieee\"&&/\\b(proceedings|conference|symposium|workshop|congress|meeting|colloquium|convention)\\b/i.test(title)){csl[\"container-title\"]=ieeeProceedings(title);if(csl[\"event-place\"])csl[\"publisher-place\"]=String(csl[\"event-place\"]).replace(/,?\\s*United States( of America)?$/i,\", USA\");else delete csl[\"publisher-place\"];delete csl.publisher;}}/** How APA writes a reference work's name (in sentence case, names kept): \"Merriam-Webster.com dictionary\",\n *  \"APA dictionary of psychology\", \"The Stanford encyclopedia of philosophy\", but \"Encyclopaedia\n *  Britannica\". Others go through sentence case, unless the student already wrote it that way. */const APA_REFERENCE_NAMES={\"merriam-webster.com dictionary\":\"Merriam-Webster.com dictionary\",\"apa dictionary of psychology\":\"APA dictionary of psychology\",\"oxford english dictionary\":\"Oxford English dictionary\",\"cambridge dictionary\":\"Cambridge dictionary\",\"collins english dictionary\":\"Collins English dictionary\",\"oxford advanced learner’s dictionary\":\"Oxford advanced learner’s dictionary\",\"oxford advanced learner's dictionary\":\"Oxford advanced learner’s dictionary\",\"oxford learner’s dictionaries\":\"Oxford learner’s dictionaries\",\"vocabulary.com dictionary\":\"Vocabulary.com dictionary\",\"britannica dictionary\":\"Britannica dictionary\",\"longman dictionary of contemporary english\":\"Longman dictionary of contemporary English\",\"the free dictionary\":\"The free dictionary\",\"the stanford encyclopedia of philosophy\":\"The Stanford encyclopedia of philosophy\",\"stanford encyclopedia of philosophy\":\"Stanford encyclopedia of philosophy\",\"internet encyclopedia of philosophy\":\"Internet encyclopedia of philosophy\",\"world history encyclopedia\":\"World history encyclopedia\",\"holocaust encyclopedia\":\"Holocaust encyclopedia\",\"encyclopaedia britannica\":\"Encyclopaedia Britannica\",\"encyclopedia britannica\":\"Encyclopedia Britannica\",\"the canadian encyclopedia\":\"The Canadian encyclopedia\",\"new world encyclopedia\":\"New world encyclopedia\",\"oxford research encyclopedias\":\"Oxford research encyclopedias\"};function apaReferenceName(name,sentence){const known=APA_REFERENCE_NAMES[name.toLowerCase().trim()];return known??sentence(name);}/** Dictionary and encyclopedia entries.\n *  - APA 10.3: the work's name in sentence case; no publisher when it's the author or the work itself\n *    (\"Merriam-Webster\"; \"Encyclopaedia Britannica, Inc.\"); a dictionary's headword capitalized; an edition\n *    that isn't a number (\"Summer 2019\") followed by \"ed.\".\n *  - MLA: no publisher when it's the work's own name; \"Summer 2019 ed.\".\n *  - Chicago (an edited encyclopedia, cited like a chapter): \"Summer 2019 ed.\". */function prepareReference(csl,family,sentence){const work=plainText(String(csl[\"container-title\"]??\"\")).trim();const publisher=plainText(String(csl.publisher??\"\")).trim();const org=csl.author?.length===1?csl.author[0].literal??\"\":\"\";const core=n=>n.replace(/,?\\s+(Inc|Incorporated|Ltd|LLC)\\.?$/i,\"\").replace(/\\s+(Publishing|Press)$/i,\"\");const samePub=Boolean(publisher)&&(prepSameName(core(publisher),org)||prepSameName(core(publisher),work)||prepNorm(work).startsWith(prepNorm(core(publisher))));const edition=String(csl.edition??\"\").trim();if(edition&&!/^\\d+$/.test(edition)&&!/\\bed\\.?$/i.test(edition)&&family!==\"harvard\"&&family!==\"ieee\")csl.edition=`${edition} ed.`;if(family===\"apa\"){if(work)csl[\"container-title\"]=apaReferenceName(work,sentence);if(samePub)delete csl.publisher;if(csl.type===\"entry-dictionary\"&&typeof csl.title===\"string\")csl.title=csl.title.charAt(0).toUpperCase()+csl.title.slice(1);}if(family===\"mla\"&&samePub)delete csl.publisher;}/** Every item: domain names keep their case. */function prepareCommon(csl){for(const key of[\"container-title\",\"publisher\",\"title\"]){const v=csl[key];if(typeof v===\"string\")csl[key]=protectDomains(v);}}/** Fixes to finished entries (HTML, one csl-entry). */function fixEntry(html,csl,family){let out=html;if(family===\"mla\"){// The style file capitalizes an edition: MLA writes \"late ed.\" mid-entry.\nif(csl.edition&&(csl.type===\"article-newspaper\"||csl.type===\"article-magazine\"))out=out.replace(/, ([A-Z])([a-z]* ed\\.),/,(_m,a,b)=>`, ${a.toLowerCase()}${b},`);// MLA 9 (5.96) leaves \"http://\" and \"https://\" out of URLs; DOIs keep their https://doi.org/ form.\n// Only the URL element: a link inside a post's text stays as written.\nout=out.replace(/(^|>|, |\\. )https?:\\/\\/(?!(dx\\.)?doi\\.org\\/)/g,\"$1\");// A database is MLA's second container: after the pages, in italics, before the DOI or URL\n// (\"pp. 436–44. JSTOR, https://doi.org/...\"). The style file prints it mid-entry.\nconst db=csl.type===\"article-journal\"&&csl.archive?prepEscape(String(csl.archive).trim()):\"\";if(db&&out.includes(`, ${db},`)){out=out.replace(`, ${db},`,\",\");out=out.replace(/, ((?:https:\\/\\/doi\\.org\\/|www\\.|[a-z0-9-]+\\.[a-z]{2,}\\/)\\S*?)\\.(<\\/div>)?$/,`. <i>${db}</i>, $1.$2`);}}const artnum=String(csl[\"ws-artnum\"]??\"\");if(artnum&&(family===\"mla\"||family===\"harvard\"))out=out.replace(new RegExp(`pp?\\\\. ${artnum.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}`),artnum);if(family===\"harvard\"&&csl[\"ws-inpress\"])out=out.replace(/ \\[Preprint\\]/,\"\");if(family===\"harvard\"&&csl[\"ws-kind\"]===\"movie\"&&csl.director?.length){const names=csl.director.map(prepAuthorText).filter(Boolean);const by=names.length>1?`${names.slice(0,-1).join(\", \")} and ${names[names.length-1]}`:names[0];out=out.replace(/(\\(\\d{4}[a-z]?\\))(\\.)?\\s/,`$1 Directed by ${prepEscape(by)}. `);}// IEEE: an entry with nothing after its container ends with a period, not a comma.\nif(family===\"ieee\")out=out.replace(/,((?:\\s*<\\/div>)*)\\s*$/,\".$1\").replace(/,”((?:\\s*<\\/div>)*)\\s*$/,\".”$1\");// IEEE's style file puts its own \"arXiv: \" before an ID that already says so (\"arXiv: arXiv:1706.03762\").\nif(family===\"ieee\")out=out.replace(/(?:<i>)?\\b([A-Za-z]+Xiv)(?:<\\/i>)?: \\1:/g,\"$1:\");// IEEE has no film format and its style file prints only \"J. Bong, Parasite, (2019).\": give the medium and\n// company as IEEE does for other media (\"Title. [Film]. Company, 2019.\").\nif(family===\"ieee\"&&csl[\"ws-kind\"]===\"movie\"){const company=plainText(String(csl.publisher??\"\")).trim();out=out.replace(/, \\((\\d{4})\\)\\.(<\\/div>)/,(_m,year,close)=>`. [Film]. ${company?`${prepEscape(company)}, `:\"\"}${year}.${close}`);}if(family===\"harvard\"&&csl[\"ws-heldat\"])out=out.replace(/(\\.)?(<\\/div>)?\\s*$/,`. Held at: ${prepEscape(String(csl[\"ws-heldat\"]))}.$2`);if(family===\"chicago\"&&csl[\"ws-watched\"])out=out.replace(/(\\.)(<\\/div>)?\\s*$/,`. ${prepEscape(String(csl[\"ws-watched\"]))}.$2`);// APA 7 (10.2, Wikipedia): the version's full date, \"(2019, December 6). In Wikipedia.\"\nif(family===\"apa\"&&csl.type===\"entry-encyclopedia\"&&/wiki/i.test(String(csl[\"container-title\"]??\"\"))){const[y,m,d]=(csl.issued?.[\"date-parts\"]?.[0]??[]).map(Number);if(y&&m)out=out.replace(`(${y}). In `,`(${y}, ${PREP_MONTHS[m-1]}${d?` ${d}`:\"\"}). In `);}// APA: an unpublished thesis names its university after the brackets.\nif(family===\"apa\"&&csl.type===\"thesis\"&&csl[\"ws-found\"]===\"unpublished\"&&csl[\"ws-univ\"])out=out.replace(/(\\[Unpublished [^\\]]+\\]\\.)/,`$1 ${prepEscape(plainText(String(csl[\"ws-univ\"])))}.`);// Cite Them Right: a post's day and month after the platform (\"X, 11 July.\"); IEEE: its date.\nif(csl[\"ws-kind\"]===\"social\"&&(family===\"harvard\"||family===\"ieee\")){const[,m,d]=(csl.issued?.[\"date-parts\"]?.[0]??[]).map(Number);const platform=prepEscape(plainText(String(csl[\"container-title\"]??\"\")).trim());if(m&&platform&&family===\"harvard\")out=out.replace(`<i>${platform}</i>.`,`<i>${platform}</i>, ${d?`${d} `:\"\"}${PREP_MONTHS[m-1]}.`);if(platform&&family===\"ieee\"){const[y]=(csl.issued?.[\"date-parts\"]?.[0]??[]).map(Number);const ieee=[\"Jan.\",\"Feb.\",\"Mar.\",\"Apr.\",\"May\",\"Jun.\",\"Jul.\",\"Aug.\",\"Sep.\",\"Oct.\",\"Nov.\",\"Dec.\"];if(y)out=out.replace(`” ${platform}.`,`” ${platform}, ${m?`${ieee[m-1]} ${d?`${String(d).padStart(2,\"0\")}, `:\"\"}`:\"\"}${y}.`);}}// Chicago 18 (14.105): a blog's name is followed by \"(blog)\" unless it says so itself.\nif(family===\"chicago\"&&csl.type===\"post-weblog\"){const blog=prepEscape(plainText(String(csl[\"container-title\"]??\"\")).trim());if(blog&&!/\\bblog\\b/i.test(blog))out=out.replace(`<i>${blog}</i>`,`<i>${blog}</i> (blog)`);}// Chicago 18 (14.9): a chapter's pages in the bibliography, after the editors.\nif(family===\"chicago\"&&csl.type===\"chapter\"&&csl.page&&csl.publisher){const pub=prepEscape(plainText(String(csl.publisher)));out=out.replace(`. ${pub}, `,`, ${prepEscape(String(csl.page)).replace(/-/g,\"–\")}. ${pub}, `);}if(family===\"apa\"&&csl[\"ws-kind\"]===\"video\"){// APA: a person's own name, then the channel in square brackets.\nconst channel=plainText(String(csl[\"ws-channel\"]??\"\")).trim();const person=csl.author?.[0];if(channel&&person&&!person.literal&&!prepSameName(prepAuthorText(person),channel)){// \"Sanderson, G. [3Blue1Brown]. (2017, October 5).\"\nout=out.replace(/^(<div class=\"csl-entry\">)?([\\s\\S]*?)( \\((?:\\d{4}|n\\.d\\.))/,(_m,open,who,rest)=>`${open??\"\"}${who} [${prepEscape(channel)}].${rest}`);}}return out;}/** In-text citations, after the style file:\n *  - A post's handle stays out (\"(NASA, 2022)\"), as APA, MLA and Cite Them Right show.\n *  - Slides are cited by slide number: \"(Nguyen, 2025, Slide 4)\", MLA \"(Nguyen, slide 4)\".\n *  - APA names a section: \"(“Photosynthesis,” 2026, Light reactions section)\". */function fixInText(html,csl,family,locator){let out=html;if(!csl||!out)return out;if(csl[\"ws-kind\"]===\"social\"&&(family===\"apa\"||family===\"mla\"||family===\"harvard\"))out=out.replace(/ \\[@[^\\]]+\\]/g,\"\");// MLA shortens a title standing in for the author: its subtitle goes (\"World Health Statistics 2023\").\nif(family===\"mla\")out=out.replace(/(<i>|“)([^<”]{3,}?): [^<”]+(<\\/i>|”)/,\"$1$2$3\");const v=locator?.value?prepEscape(locator.value):\"\";if(v&&locator?.label===\"slide\"){if(family===\"mla\")out=out.replace(new RegExp(` ${v.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}\\\\)`),`, slide ${v})`).replace(`(${v})`,`(slide ${v})`);else out=out.replace(/\\bpp?\\. /,family===\"apa\"||family===\"ieee\"?\"Slide \":\"slide \");}// Chicago 18 (14.105): \"(blog)\" after a blog's name, in notes as in the bibliography.\nif(family===\"chicago\"&&csl.type===\"post-weblog\"){const blog=prepEscape(plainText(String(csl[\"container-title\"]??\"\")).trim());if(blog&&!/\\bblog\\b/i.test(blog))out=out.replace(`<i>${blog}</i>,`,`<i>${blog}</i> (blog),`);}if(v&&locator?.label===\"section\"&&family===\"apa\")out=out.replace(/\\b(?:sec\\.|Section) ([^)]+)\\)/,\"$1 section)\");// MLA: a press release cited by its title alone has it in quotation marks, as in its entry.\nif(family===\"mla\"&&csl[\"ws-kind\"]===\"press\"&&!csl.author?.length)out=out.replace(/<i>([^<]+)<\\/i>/,\"“$1”\");// Cite Them Right: a program or patent cited by its title keeps its italics.\nif(family===\"harvard\"&&(csl.type===\"software\"||csl.type===\"patent\")&&!csl.author?.length)out=out.replace(/‘([^’]+)’/,\"<i>$1</i>\");// MLA: a data set or program cited by its title alone has that title in italics, as in its entry.\nif(family===\"mla\"&&(csl.type===\"dataset\"||csl.type===\"software\")&&!csl.author?.length)out=out.replace(/“([^”]+?),?”/,\"<i>$1</i>\");// A dictionary's sense number: APA \"(Merriam-Webster, n.d., Definition 1)\"; MLA \"(“Culture,” def. 1)\".\nif(v&&locator?.label===\"definition\"){if(family===\"mla\")out=out.replace(new RegExp(`”? ${v.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}\\\\)`),m=>m.startsWith(\"”\")?`,” def. ${v})`:`, def. ${v})`);else out=out.replace(/\\bpp?\\. /,family===\"apa\"?\"Definition \":\"def. \");}return out;}function prepEscape(t){return t.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");}const PREP_MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function prepLongDate(date){const[y,m,d]=(date?.[\"date-parts\"]?.[0]??[]).map(p=>Number(p));if(!y)return\"\";if(!m)return String(y);return d?`${PREP_MONTHS[m-1]} ${d}, ${y}`:`${PREP_MONTHS[m-1]} ${y}`;}/** Chicago 18 (14.267) for an online video, which the style file prints with the platform and date out of\n *  order. Note: “Channel, “Title,” May 2, 2019, YouTube video, 12:34, URL.” Bibliography: “Channel.\n *  “Title.” May 2, 2019. YouTube video, 12:34. URL.” With a person and a channel, the person leads. */function chicagoVideo(csl,headline){const person=csl.author?.[0];const natural=person?prepAuthorText(person):\"\";const inverted=person?person.literal?person.literal:[person.family,person.given].filter(Boolean).join(\", \"):\"\";const title=`“${prepEscape(headline(plainText(csl.title)))}`;const date=prepLongDate(csl.issued);const platform=plainText(String(csl[\"container-title\"]??\"\")).trim();const kind=`${platform?`${platform} `:\"\"}video`;const length=plainText(String(csl.dimensions??\"\")).trim();const url=String(csl.URL??\"\");const accessed=!date&&csl.accessed?prepLongDate(csl.accessed):\"\";const tail=[date,[kind,length].filter(Boolean).join(\", \"),accessed&&`accessed ${accessed}`,prepEscape(url)].filter(Boolean).join(\", \");const noteText=`${natural?`${prepEscape(natural)}, `:\"\"}${title},” ${tail}.`;const bib=[inverted&&`${prepEscape(inverted)}.`,`${title}.”`,date&&`${date}.`,`${prepCapital([kind,length].filter(Boolean).join(\", \"))}.`,accessed&&`Accessed ${accessed}.`,url&&`${prepEscape(url)}.`].filter(Boolean).join(\" \");return{note:noteText.replace(/\\.\\.$/,\".\"),bib};}const prepCapital=t=>t?t.charAt(0).toUpperCase()+t.slice(1):t;/* ----------------------------------------------------------- values -- */function resolveDyn(value,values){return typeof value===\"function\"?value(values):value;}function textOf(values,key){const v=values[key];return typeof v===\"string\"?v.trim():\"\";}function namesOf(values,key){const v=values[key];return Array.isArray(v)?v:[];}function dateOf(values,key){const v=values[key];return v&&typeof v===\"object\"&&!Array.isArray(v)?v:{};}function isFilled(value){if(typeof value===\"string\")return value.trim().length>0;if(typeof value===\"boolean\")return value;if(Array.isArray(value))return value.some(nameFilled);if(value&&typeof value===\"object\")return Boolean(value.year?.trim());return false;}function nameFilled(n){if(n.kind===\"person\")return Boolean(n.family?.trim()||n.given?.trim());if(n.kind===\"username\")return Boolean(n.handle?.trim());return Boolean(n.name?.trim());}/** The first value of each field, for a fresh form of this type (today's date for Date accessed). */function initialValues(config){const out={};for(const f of config.fields)if(f.initial)out[f.key]=f.initial();return out;}/** Required fields that are still empty, in form order. */function missingRequired(config,values){return config.fields.filter(f=>isRequired(f,values)&&(!f.showIf||f.showIf(values))&&!isFilled(values[f.key]));}function isRequired(f,values){return f.level===\"required\"||Boolean(f.requiredIf?.(values));}/** The in-text locator a form's values give (a timestamp, a page), for the preview and the saved list. */function locatorOf(config,values){for(const f of config.fields){if(!f.locator||f.showIf&&!f.showIf(values))continue;const value=textOf(values,f.key);if(value)return{label:f.locator,value:f.locator===\"timestamp\"?normalizeTimestamp(value):value};}return undefined;}/* ------------------------------------------------------- quote boxes -- */// Each in-text citation in the list has a small box for where the quote is (a page, a paragraph, a timestamp).\n// It changes only the in-text citation that gets copied: the saved source keeps its own (\"Page number, for a\n// quote\" in Edit), and the reference entry doesn't change.\n/** The field that says where a quote is in this source, as its values show it: what the quote box stands for. */function quoteField(config,values){return config.fields.find(f=>f.locator&&(!f.showIf||f.showIf(values)));}/** The quote box's own short label, by locator. */const QUOTE_BOX_LABEL={page:\"Page\",paragraph:\"Paragraph\",timestamp:\"Timestamp\",slide:\"Slide\",section:\"Section\",definition:\"Definition\"};/** What a quote box shows: what was typed, or the saved source's own place once that has been edited since. */function quoteBoxValue(place,saved){return place&&place.saved===saved?place.value:saved;}/** The in-text locators the quote boxes ask for, by item (\"\" for no place at all), given each item's quote\n *  field (`quoteField`) and saved place (`locatorOf`). A box that says what the saved source says asks for\n *  nothing, and one typed before the source's own place was edited gives way to it. */function typedLocators(places,fields,saved){const out={};for(const[id,place]of Object.entries(places)){const label=fields[id]?.locator;const own=saved[id]?.value??\"\";if(!label||place.saved!==own)continue;const raw=place.value.trim();const value=raw&&label===\"timestamp\"?normalizeTimestamp(raw):raw;if(value!==own)out[id]={label,value};}return out;}/** \"95\", \"1:35\", \"01:35\" and \"1m35s\" all read as 1:35; hours when there are any (1:14:05). */function normalizeTimestamp(raw){const t=raw.trim();let secs=null;const hms=t.match(/^(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+)s)?$/i);if(/^\\d+$/.test(t))secs=Number(t);else if(hms&&(hms[1]||hms[2]||hms[3]))secs=Number(hms[1]??0)*3600+Number(hms[2]??0)*60+Number(hms[3]??0);else if(/^\\d{1,2}(:\\d{1,2}){1,2}$/.test(t)){const parts=t.split(\":\").map(Number);secs=parts.reduce((a,b)=>a*60+b,0);}if(secs===null)return t;const h=Math.floor(secs/3600);const m=Math.floor(secs%3600/60);const s2=String(secs%60).padStart(2,\"0\");return h?`${h}:${String(m).padStart(2,\"0\")}:${s2}`:`${m}:${s2}`;}/** Names split by role (author, editor, translator, director...), for the CSL fields of the same names. */function namesByRole(entries,fallback=\"author\"){const out={};for(const n of entries){const csl=namesToCsl([n]);if(!csl)continue;const role=n.role||fallback;(out[role]??=[]).push(...csl);}return out;}/* ------------------------------------------------------------ names -- */function namesToCsl(entries){const out=[];for(const n of entries){if(!nameFilled(n))continue;if(n.kind===\"person\"){// \"King Jr.\" or \"King, Jr.\" in the surname box: the suffix follows the initials (\"King, M. L., Jr.\").\nconst sfx=n.family?.trim().match(/^(.+?),?\\s+(Jr\\.?|Sr\\.?|II|III|IV)$/);const family=(sfx?sfx[1]:n.family)?.trim();const given=n.given?.trim();out.push(family?{family,...given?{given}:{},...sfx?{suffix:sfx[2]}:{}}:{literal:given});}else if(n.kind===\"username\"){const handle=(n.handle??\"\").trim().replace(/^@+/,\"\");const name=n.name?.trim();// APA writes a platform author as \"Name [@handle]\", or the handle alone when that's all there is.\nout.push({literal:name?`${name} [@${handle}]`:`@${handle}`});}else{out.push({literal:(n.name??\"\").trim()});}}return out.length?out:undefined;}function namesFromCsl(names,role){return(names??[]).map(n=>{if(n.family||n.given){const family=[n[\"non-dropping-particle\"],n.family,n.suffix].filter(Boolean).join(\" \");return{kind:\"person\",given:n.given??\"\",family,...role?{role}:{}};}const literal=n.literal??\"\";const handle=literal.match(/^(?:(.+?)\\s+)?\\[?@([\\w.]+)\\]?$/);if(handle)return{kind:\"username\",name:handle[1]??\"\",handle:handle[2],...role?{role}:{}};return{kind:\"org\",name:literal,...role?{role}:{}};});}/** A pasted list of names (\"LeCun, Yann; Bengio, Yoshua\" or one per line, or \"Yann LeCun, Yoshua Bengio\n *  and Geoffrey Hinton\") becomes one row each. A single name pastes as usual. */function pastedNames(text,role){const t=text.replace(/\\s+(&|and)\\s+/gi,\"; \").trim();// \"Yann LeCun, Yoshua Bengio, Geoffrey Hinton\": commas between whole names (no \"Last, First\" pairs).\nconst parts=t.split(/\\s*(?:\\n|;)\\s*/).filter(Boolean).flatMap(p=>p.includes(\",\")&&p.split(\",\").every(x=>x.trim().split(/\\s+/).length>=2)?p.split(/\\s*,\\s*/):[p]);if(parts.length<2)return null;return parts.map(p=>{const comma=p.match(/^([^,]+),\\s*(.+)$/);if(comma)return{kind:\"person\",family:comma[1].trim(),given:comma[2].trim(),...role?{role}:{}};const words=p.trim().split(/\\s+/);return{kind:\"person\",family:words.pop()??\"\",given:words.join(\" \"),...role?{role}:{}};});}/* ------------------------------------------------------------ dates -- */const MONTH_NAMES=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function dateToCsl(d){const year=Number(d.year?.trim());if(!Number.isInteger(year)||year<1||year>9999)return undefined;const parts=[year];const month=Number(d.month);if(Number.isInteger(month)&&month>=1&&month<=12){parts.push(month);const day=Number(d.day?.trim());if(Number.isInteger(day)&&day>=1&&day<=31)parts.push(day);}return{\"date-parts\":[parts]};}function dateFromCsl(date){const parts=date?.[\"date-parts\"]?.[0];if(!parts?.length){const year=date?.literal?.match(/\\b(\\d{4})\\b/)?.[1]??date?.raw?.match(/\\b(\\d{4})\\b/)?.[1];return year?{year}:{};}const[y,m,d]=parts.map(p=>String(p));return{year:y??\"\",month:m??\"\",day:d??\"\"};}function todayValue(){const[y,m,d]=todayParts()[\"date-parts\"]?.[0]??[];return{year:String(y),month:String(m),day:String(d)};}/* ------------------------------------------------------------ build -- *//** Drops empty values so a saved item only carries what it has. */function compactCsl(csl){return Object.fromEntries(Object.entries(csl).filter(([,v])=>v!==undefined&&v!==\"\"&&!(Array.isArray(v)&&v.length===0)));}/** An edited item: this type's own keys come from the form, everything else the saved item had is kept. */function mergeEdit(original,config,values){const kept={...original};for(const key of config.owns)delete kept[key];// Our own markers (\"ws-kind\" and the like) belong to the type that set them.\nfor(const key of Object.keys(kept))if(key.startsWith(\"ws-\"))delete kept[key];// \"Other source\" has no type of its own: the saved item keeps its type.\nif(config.cslType)kept.type=config.cslType;return compactCsl({...kept,...config.toCsl(values)});}/** \"photograph of a fox\" reads as a sentence in every style: capital first letter. */function capitalFirst(text){return text?text.charAt(0).toUpperCase()+text.slice(1):text;}/* ------------------------------------------------------------ hints -- *//** Plain-English notes on what's missing, shared by the source types. */function commonHints(values,csl,ctx,opts={}){const hints=[];const{family}=ctx;const noDate=!csl.issued;const noCreator=!csl.author?.length;if(noDate&&isFilled(values[opts.dateKey??\"date\"])===false){const text={apa:\"No date. APA will show (n.d.).\",mla:\"No date. MLA leaves it out and adds the date you accessed it instead.\",chicago:\"No date. Chicago will show n.d.\",harvard:\"No date. Harvard will show (no date).\",ieee:\"No date. IEEE leaves the date out.\",other:`No date. ${ctx.styleLabel} will show that there's no date.`};hints.push({tone:\"info\",text:text[family]});}if(noCreator&&!isFilled(values[opts.creatorsKey??\"creators\"])){const lead=opts.titleWord??\"title\";const text={apa:`No creator. APA moves the ${lead} to the author position.`,mla:`No creator. MLA starts the entry with the ${lead}.`,chicago:`No creator. Chicago starts the entry with the ${lead}.`,harvard:`No creator. Harvard starts the entry with the ${lead}.`,ieee:`No creator. IEEE starts the entry with the ${lead}.`,other:`No creator. The entry will start with the ${lead}.`};hints.push({tone:\"info\",text:text[family]});}return hints;}/** A title already written in sentence case (a lowercase word after the first): the student chose its\n *  capitals, names included (\"Publication manual of the American Psychological Association\"), so the\n *  engine's automatic sentence case (which can't tell names from words) leaves it alone. */function looksSentenceCase(title){const MINOR=/^(with|from|into|onto|upon|over|than|that|this|about|after|among|under|without|within|through|toward|towards|versus|across|along|around|before|behind|below|beside|between|beyond|during|except|inside|near|since|until)$/;const words=title.split(/\\s+/).slice(1).filter(w=>/^[A-Za-z]/.test(w)&&w.length>3&&!MINOR.test(w.toLowerCase().replace(/[^a-z]/g,\"\")));return words.some(w=>/^[a-z]/.test(w));}/** APA writes titles of works in sentence case. A title typed in title case gets a one-click fix, never a\n *  silent change: names (\"Apollo\", \"Earth\") can't be told apart from ordinary words. */function sentenceCaseHint(values,key,ctx){if(ctx.family!==\"apa\")return null;const title=textOf(values,key);// Only a title in title case (\"Red Fox In Snow\") gets the hint. Any lowercase word after the first\n// means the student already wrote sentence case and capitalized names on purpose (\"The Earth seen from\n// Apollo 17\"), which sentenceCase would undo.\nconst words=title.split(/\\s+/).slice(1).filter(w=>/^[A-Za-z]/.test(w)&&w.length>3);if(words.length<2||words.some(w=>/^[a-z]/.test(w)))return null;const fixed=sentenceCase(title);if(fixed===title||plainText(fixed)===plainText(title))return null;return{tone:\"warn\",// Most previews already lowercase the title (not a video's); names it can't recognize (\"Gatsby\") need the student.\ntext:\"APA uses sentence case for titles: capitalize only the first word and names.\",fix:{label:\"Use sentence case\",key,value:fixed}};}/* ------------------------------------------------------------ text -- */const ownEsc=t=>t.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");const ownText=v=>plainText(String(v??\"\")).trim();const ownI=t=>t?`<i>${ownEsc(t)}</i>`:\"\";/** Ends a piece with one period, whatever it ends with (\"Title?\" stays \"Title?\"). */const ownDot=t=>!t?\"\":/[.?!]$/.test(t)||/[.?!](<\\/i>|”)$/.test(t)?t:`${t}.`;/** A quoted title with the period or comma inside the quotation marks: “Pilot.” */const ownQuote=(t,end=\".\")=>t?`“${ownEsc(t)}${/[.?!]$/.test(t)?\"\":end}”`:\"\";// Parts that are empty (\"\", 0, false, undefined) are left out.\nconst ownJoin=(parts,sep=\" \")=>parts.filter(Boolean).join(sep);const ownUrlMla=u=>u.replace(/^https?:\\/\\/(?!(dx\\.)?doi\\.org\\/)/,\"\");/* ----------------------------------------------------------- names -- */const ownFamily=n=>[n[\"non-dropping-particle\"],n.family].filter(Boolean).join(\" \");const ownInitials=(given,spaced=true)=>(given??\"\").split(/\\s+/).filter(Boolean).map(g=>g.split(\"-\").map(p=>p?`${p[0].toUpperCase()}.`:\"\").join(\"-\")).join(spaced?\" \":\"\");// A suffix follows the name: \"King, M. L., Jr.\", \"Martin Luther King Jr.\", \"King, Martin Luther, Jr.\".\nconst ownSuffix=n=>n.suffix?String(n.suffix):\"\";/** \"Gilligan, V.\" (APA), \"Gilligan, V.\" (Harvard, \"S.J.\" unspaced). */const ownInverted=(n,spaced=true)=>n.literal?n.literal:ownJoin([ownFamily(n),ownInitials(n.given,spaced),ownSuffix(n)],\", \");/** \"V. Gilligan\" (APA's editors and producers, IEEE). */const ownInitialsFirst=n=>n.literal?n.literal:ownJoin([ownInitials(n.given),ownFamily(n),ownSuffix(n)]);/** \"Vince Gilligan\". */const ownNatural=n=>n.literal?n.literal:ownJoin([n.given,ownFamily(n),ownSuffix(n)]);/** \"Gilligan, Vince\". */const ownFullInverted=n=>n.literal?n.literal:ownJoin([ownFamily(n),n.given,ownSuffix(n)],\", \");/** \"A, B, and C\" (Chicago, MLA), \"A, B, & C\" (APA), \"A, B and C\" (Harvard). */function ownList(names,and,serial=true){if(names.length<=1)return names[0]??\"\";// APA's reference list keeps the comma before \"&\" after inverted names (\"Abumrad, J., & Krulwich, R.\").\nif(names.length===2)return and===\"&\"?`${names[0]}${names[0].includes(\",\")?\",\":\"\"} & ${names[1]}`:`${names[0]} and ${names[1]}`;return`${names.slice(0,-1).join(\", \")}${serial?\",\":\"\"} ${and} ${names[names.length-1]}`;}const ownApaList=names=>ownList(names.map(n=>ownInverted(n)),\"&\");const ownApaInitialsList=names=>ownList(names.map(ownInitialsFirst),\"&\");const ownNaturalList=names=>ownList(names.map(ownNatural),\"and\");/** MLA: two names as \"Last, First, and First Last\"; three or more \"Last, First, et al.\". */function ownMlaAuthors(names){if(!names.length)return\"\";if(names.length===1)return ownFullInverted(names[0]);// Two organizations: \"Pfizer Inc. and BioNTech SE\" (no inverted name to set off with a comma).\nif(names.length===2)return`${ownFullInverted(names[0])}${names[0].literal?\"\":\",\"} and ${ownNatural(names[1])}`;return`${ownFullInverted(names[0])}, et al.`;}/** Chicago bibliography: the first name inverted, the rest natural. */function ownChicagoAuthors(names){if(!names.length)return\"\";const rest=names.slice(1).map(ownNatural);if(!rest.length)return ownFullInverted(names[0]);if(rest.length===1&&names[0].literal)return`${names[0].literal} and ${rest[0]}`;return`${ownFullInverted(names[0])}, ${rest.length>1?`${rest.slice(0,-1).join(\", \")}, `:\"\"}and ${rest[rest.length-1]}`;}const ownHarvardList=names=>ownList(names.map(n=>ownInverted(n,false)),\"and\",false);const ownIeeeList=names=>ownList(names.map(ownInitialsFirst),\"and\",names.length>2);/* ----------------------------------------------------------- dates -- */const OWN_MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];const OWN_MLA_MONTHS=[\"Jan.\",\"Feb.\",\"Mar.\",\"Apr.\",\"May\",\"June\",\"July\",\"Aug.\",\"Sept.\",\"Oct.\",\"Nov.\",\"Dec.\"];const OWN_IEEE_MONTHS=[\"Jan.\",\"Feb.\",\"Mar.\",\"Apr.\",\"May\",\"Jun.\",\"Jul.\",\"Aug.\",\"Sep.\",\"Oct.\",\"Nov.\",\"Dec.\"];function ownParts(csl){const[y,m,d]=(csl.issued?.[\"date-parts\"]?.[0]??[]).map(p=>Number(p));return{y:y||undefined,m:m||undefined,d:d||undefined};}/** The years a series ran: \"2008–2013\", \"2016–present\", or one year. Short forms (\"2008–13\") for MLA and Chicago. */function ownYears(csl,short=false){const start=Number(csl[\"ws-start\"])||ownParts(csl).y;const end=csl[\"ws-end\"];if(!start)return\"\";if(end===\"present\")return`${start}–present`;const e=Number(end);if(!e||e===start)return String(start);return short&&Math.floor(e/100)===Math.floor(start/100)?`${start}–${String(e).slice(2)}`:`${start}–${e}`;}const ownApaDate=csl=>{if(csl[\"ws-scope\"])return ownYears(csl)||\"n.d.\";const{y,m,d}=ownParts(csl);return y?ownJoin([String(y),m?`${OWN_MONTHS[m-1]}${d?` ${d}`:\"\"}`:\"\"],\", \"):\"n.d.\";};const ownMlaDate=csl=>{const{y,m,d}=ownParts(csl);return y?ownJoin([d&&m?String(d):\"\",m?OWN_MLA_MONTHS[m-1]:\"\",String(y)]):\"\";};const ownLongDate=csl=>{const{y,m,d}=ownParts(csl);return y?m?d?`${OWN_MONTHS[m-1]} ${d}, ${y}`:`${OWN_MONTHS[m-1]} ${y}`:String(y):\"\";};const ownDayMonth=csl=>{const{m,d}=ownParts(csl);return m?ownJoin([d?String(d):\"\",OWN_MONTHS[m-1]]):\"\";};const ownIeeeDate=csl=>{const{y,m,d}=ownParts(csl);return y?m?d?`${OWN_IEEE_MONTHS[m-1]} ${String(d).padStart(2,\"0\")}, ${y}`:`${OWN_IEEE_MONTHS[m-1]} ${y}`:String(y):\"\";};const ownYear=csl=>(csl[\"ws-scope\"]?ownYears(csl):String(ownParts(csl).y??\"\"))||\"n.d.\";/** Cite Them Right writes a missing date as \"no date\". */const ownHarvardYear=csl=>ownYear(csl)===\"n.d.\"?\"no date\":ownYear(csl);/** Cite Them Right's opening: \"Author (Year) ‘Title’,\" or, with no author, \"‘Title’ (Year),\". */const ownHarvardLead=(who,csl,title)=>who?`${who} (${ownHarvardYear(csl)})${title?` ${title},`:\"\"}`:title?`${title} (${ownHarvardYear(csl)}),`:`(${ownHarvardYear(csl)})`;const ownAccessedHarvard=csl=>{const[y,m,d]=(csl.accessed?.[\"date-parts\"]?.[0]??[]).map(Number);return y&&m?` (Accessed: ${ownJoin([d?String(d):\"\",OWN_MONTHS[m-1],String(y)])})`:\"\";};/** Chicago's note locator: \"at 12:30\", \"slide 4\". */function ownNoteLocator(loc){if(!loc?.value)return\"\";if(loc.label===\"timestamp\")return`at ${ownEsc(loc.value)}`;if(loc.label===\"slide\")return`slide ${ownEsc(loc.value)}`;if(loc.label===\"definition\")return`def. ${ownEsc(loc.value)}`;if(loc.label===\"paragraph\")return`para. ${ownEsc(loc.value)}`;if(loc.label===\"section\")return`under “${ownEsc(loc.value)}”`;return ownEsc(loc.value);}/* -------------------------------------------------------------- TV -- */function tvEntry(csl,family,ctx){const series=csl[\"ws-scope\"]===\"series\";const title=ownText(csl.title);const show=series?title:ownText(csl[\"container-title\"]);const writers=csl[\"script-writer\"]??[];const directors=csl.director??[];const producers=csl[\"executive-producer\"]??[];// MLA and Chicago: \"created by\"; without named creators, the executive producers.\nconst creators=csl[\"ws-creator\"]?.length?csl[\"ws-creator\"]:producers;const company=ownText(csl.publisher);const url=ownText(csl.URL);const season=ownText(csl[\"ws-season\"]);const episode=ownText(csl.number);// The series is a title of its own: sentence case whatever the episode title's capitals.\nconst apaShow=sentenceCase(show);const hShow=ctx.headline(show);const hTitle=ctx.headline(title);switch(family){case\"apa\":{if(series){const who=producers.length?`${ownApaList(producers)} (Executive Producer${producers.length>1?\"s\":\"\"})`:\"\";const work=`${ownI(ctx.titleLocked?title:sentenceCase(title))} [TV series]`;return{bib:ownJoin([who?`${ownEsc(who)}.`:`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\",company&&ownDot(ownEsc(company)),ownEsc(url)])};}// \"Gilligan, V. (Writer & Director)\": one person with both roles is named once.\nconst people=[];for(const[list,role]of[[writers,\"Writer\"],[directors,\"Director\"]])for(const n of list){const same=people.find(p=>ownInverted(p.name)===ownInverted(n));if(same)same.roles.push(role);else people.push({name:n,roles:[role]});}const who=ownList(people.map(p=>`${ownInverted(p.name)} (${p.roles.join(\" & \")})`),\"&\");const numbers=ownJoin([season&&`Season ${season}`,episode&&`Episode ${episode}`],\", \");const work=`${ownEsc(title)}${numbers?` (${numbers})`:\"\"} [TV series episode]`;const inShow=producers.length?`In ${ownApaInitialsList(producers)} (Executive Producer${producers.length>1?\"s\":\"\"}), ${ownI(apaShow)}.`:`In ${ownI(apaShow)}.`;return{bib:ownJoin([who?`${ownEsc(who)}.`:`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\",show?inShow:\"\",company&&ownDot(ownEsc(company)),ownEsc(url)])};}case\"mla\":{const created=creators.length?`created by ${ownNaturalList(creators)}`:\"\";const network=company&&mlaPublisher(company);if(series)return{bib:ownJoin([ownDot(ownI(hShow)),ownDot(ownEsc(ownJoin([created&&created.replace(/^c/,\"C\"),network,ownYears(csl,true),url&&ownUrlMla(url)],\", \")))])};const rest=ownJoin([created,season&&`season ${season}`,episode&&`episode ${episode}`,network,ownMlaDate(csl),url&&ownUrlMla(url)],\", \");return{bib:ownJoin([ownQuote(hTitle),`${ownI(hShow)}${rest?`, ${ownEsc(rest)}`:\"\"}.`])};}case\"chicago\":{if(series){const created=creators.length?`created by ${ownNaturalList(creators)}`:\"\";const tail=ownJoin([company,ownYears(csl,true)],\", \");return{bib:ownJoin([ownDot(ownI(hShow)),created&&ownDot(ownEsc(created.replace(/^c/,\"C\"))),tail&&ownDot(ownEsc(tail)),url&&ownDot(ownEsc(url))]),note:ownDot(ownJoin([ownI(hShow),created&&ownEsc(created),tail&&`(${ownEsc(tail)})`,url&&ownEsc(url)],\", \").replace(/, \\(/,\" (\"))};}const numbers=ownJoin([season&&`season ${season}`,episode&&`episode ${episode}`],\", \");const credits=ownJoin([directors.length&&`directed by ${ownNaturalList(directors)}`,writers.length&&`written by ${ownNaturalList(writers)}`],\", \");const aired=ownJoin([ownLongDate(csl)&&`aired ${ownLongDate(csl)}`,company&&`on ${company}`],\", \");const cap=t=>t.charAt(0).toUpperCase()+t.slice(1);const noteParts=[ownI(hShow),ownEsc(numbers),title&&ownQuote(hTitle,\"\"),ownEsc(credits),ownEsc(aired),ownNoteLocator(ctx.locator),ownEsc(url)].filter(Boolean);return{bib:ownJoin([ownDot(ownI(hShow)),`${ownEsc(cap(numbers||\"\"))}${numbers&&title?\", \":\"\"}${title?ownQuote(hTitle):numbers?\".\":\"\"}`,credits&&ownDot(ownEsc(cap(credits))),aired&&ownDot(ownEsc(cap(aired))),url&&ownDot(ownEsc(url))]),note:ownDot(noteParts.join(\", \").replace(/,” ,/g,\",”\").replace(/“([^”]*)”,/g,\"“$1,”\"))};}case\"harvard\":{if(series)return{bib:ownJoin([`${ownI(show)} (${ownYears(csl)})`,company&&ownDot(ownEsc(company)),url&&`Available at: ${ownEsc(url)}.`])};const numbers=ownJoin([season&&`Series ${season}`,episode&&`episode ${episode}`],\", \");return{bib:ownJoin([`‘${ownEsc(title)}’ (${ownHarvardYear(csl)})`,`${ownI(show)}${numbers?`, ${numbers}`:\"\"}.`,ownDot(ownEsc(ownJoin([company,ownDayMonth(csl)],\", \"))),url&&`Available at: ${ownEsc(url)}.`])};}default:{// IEEE has no format for television: the parts in IEEE's order for other media.\nconst people=[...writers,...directors.filter(d=>!writers.some(w=>ownInverted(w)===ownInverted(d)))];if(series)return{bib:ownJoin([producers.length?`${ownEsc(ownIeeeList(producers))},`:\"\",`${ownI(show)}.`,ownDot(ownEsc(ownJoin([company,ownYears(csl)],\", \"))),url&&`[Online]. Available: ${ownEsc(url)}`])};const numbers=ownJoin([season&&`season ${season}`,episode&&`episode ${episode}`],\", \");return{bib:ownJoin([people.length?`${ownEsc(ownIeeeList(people))},`:\"\",`${ownQuote(title,\",\")} ${ownI(show)}${numbers?`, ${numbers}`:\"\"}.`,ownDot(ownEsc(ownJoin([company,ownIeeeDate(csl)],\", \"))),url&&`[Online]. Available: ${ownEsc(url)}`])};}}}/* --------------------------------------------------------- podcast -- */function podcastEntry(csl,family,ctx){const show=csl[\"ws-scope\"]===\"show\";const title=ownText(csl.title);const pod=show?title:ownText(csl[\"container-title\"]);const hosts=csl.host??[];const guests=csl.guest??[];const company=ownText(csl.publisher);const url=ownText(csl.URL);const season=ownText(csl[\"ws-season\"]);const episode=ownText(csl.number);const video=/video/i.test(String(csl.genre??\"\"));const hostWord=hosts.length>1?\"Hosts\":\"Host\";switch(family){case\"apa\":{const who=hosts.length?`${ownApaList(hosts)} (${hostWord})`:\"\";if(show){const work=`${ownI(ctx.titleLocked?pod:sentenceCase(pod))} [${video?\"Video\":\"Audio\"} podcast]`;return{bib:ownJoin([who?`${ownEsc(who)}.`:`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\",company&&ownDot(ownEsc(company)),ownEsc(url)])};}const numbers=ownJoin([season&&`Season ${season}`,episode&&`No. ${episode}`],\", \");const work=`${ownEsc(title)}${numbers?` (${numbers})`:\"\"} [${video?\"Video\":\"Audio\"} podcast episode]`;return{bib:ownJoin([who?`${ownEsc(who)}.`:`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\",pod&&`In ${ownI(sentenceCase(pod))}.`,company&&ownDot(ownEsc(company)),ownEsc(url)])};}case\"mla\":{const hosted=hosts.length?`hosted by ${ownNaturalList(hosts)}`:\"\";if(show)return{bib:ownJoin([ownDot(ownI(ctx.headline(pod))),ownDot(ownEsc(ownJoin([hosted.replace(/^h/,\"H\"),company,ownYears(csl,true),url&&ownUrlMla(url)],\", \")))])};const rest=ownJoin([hosted,guests.length&&`featuring ${ownNaturalList(guests)}`,season&&`season ${season}`,episode&&`episode ${episode}`,company,ownMlaDate(csl),url&&ownUrlMla(url)],\", \");return{bib:ownJoin([ownQuote(ctx.headline(title)),`${ownI(ctx.headline(pod))}${rest?`, ${ownEsc(rest)}`:\"\"}.`])};}case\"chicago\":{const hostBib=hosts.length?`${ownChicagoAuthors(hosts)}, ${hostWord.toLowerCase()}.`:\"\";const hostNote=hosts.length?`${ownNaturalList(hosts)}, ${hostWord.toLowerCase()}`:\"\";const numbers=ownJoin([season&&`season ${season}`,episode&&`episode ${episode}`],\", \");const date=show?ownYears(csl,true):ownLongDate(csl);if(show)return{bib:ownJoin([ownEsc(hostBib),ownDot(ownI(ctx.headline(pod))),ownDot(ownEsc(ownJoin([company,date],\", \"))),\"Podcast.\",url&&ownDot(ownEsc(url))]),note:ownDot(ownJoin([ownEsc(hostNote),ownI(ctx.headline(pod)),ownEsc(company),ownEsc(date),\"podcast\",ownEsc(url)],\", \"))};return{bib:ownJoin([ownEsc(hostBib),ownQuote(ctx.headline(title)),`${ownI(ctx.headline(pod))}${numbers?`, ${ownEsc(numbers)}`:\"\"}.`,ownDot(ownEsc(ownJoin([company,date],\", \"))),\"Podcast.\",url&&ownDot(ownEsc(url))]),note:ownDot(ownJoin([ownEsc(hostNote),ownQuote(ctx.headline(title),\",\"),ownJoin([ownI(ctx.headline(pod)),ownEsc(numbers),ownEsc(company),ownEsc(date),\"podcast\",ownNoteLocator(ctx.locator),ownEsc(url)],\", \")],hostNote?\", \":\" \").replace(/,”, /,\",” \"))};}case\"harvard\":{const who=hosts.length?ownHarvardList(hosts):\"\";const avail=url?`Available at: ${ownEsc(url)}${ownAccessedHarvard(csl)}.`:\"\";if(show)return{bib:ownJoin([who?`${ownEsc(who)} (${ownYears(csl)})`:\"\",`${ownI(pod)}${who?\"\":` (${ownYears(csl)})`} [Podcast].`,avail])};return{bib:ownJoin([`${who?`${ownEsc(who)} (${ownHarvardYear(csl)}) `:\"\"}‘${ownEsc(title)}’${who?\"\":` (${ownHarvardYear(csl)})`},`,`${ownI(pod)} [Podcast].`,ownDayMonth(csl)&&ownDot(ownDayMonth(csl)),avail])};}default:{const who=hosts.length?`${ownEsc(ownIeeeList(hosts))},`:\"\";const tail=ownJoin([company,show?ownYears(csl):ownIeeeDate(csl)],\", \");if(show)return{bib:ownJoin([who,`${ownI(pod)}.`,tail&&ownDot(ownEsc(tail)),`[Online${video?\" Video\":\"\"}]. ${url?`Available: ${ownEsc(url)}`:\"\"}`.trim()])};return{bib:ownJoin([who,`${ownQuote(title,\",\")} ${ownI(pod)}${episode?`, ep. ${ownEsc(episode)}`:\"\"}.`,tail&&ownDot(ownEsc(tail)),url&&`[Online]. Available: ${ownEsc(url)}`])};}}}/* --------------------------------------------- lectures and slides -- */const OWN_MLA_SLIDES={\"PowerPoint slides\":\"PowerPoint presentation\",\"Google Slides\":\"Google Slides presentation\",\"Keynote slides\":\"Keynote presentation\",\"Lecture notes\":\"Lecture notes\"};function talkEntry(csl,family,ctx){const slides=csl[\"ws-kind\"]===\"slides\";const seen=String(csl[\"ws-seen\"]??(slides?\"class\":\"online\"));const title=ownText(csl.title);const people=csl.author??[];const event=ownText(csl[\"event-title\"]);const place=ownText(csl[\"event-place\"]);const url=ownText(csl.URL);const kind=ownText(csl.genre)||(slides?\"PowerPoint slides\":\"Lecture\");const platform=slides?ownText(csl.publisher):ownText(csl[\"ws-platform\"]);const online=!slides&&seen===\"online\";const ted=online&&(/^ted/i.test(platform)||/(^|\\.)ted\\.com\\//i.test(url.replace(/^https?:\\/\\//,\"\")));const cap=t=>t.charAt(0).toUpperCase()+t.slice(1);switch(family){case\"apa\":{const who=people.length?ownApaList(people):\"\";const apaTitle=ctx.titleLocked?title:sentenceCase(title);// APA's TED example: \"[Video]. TED Conferences.\"; other recordings as online videos, or an audio\n// recording as APA's speech example has it (\"[Speech audio recording]\"). Slides name the platform\n// (Canvas@UCLA and its login page), or the event and place.\nconst audio=csl[\"ws-audio\"]===true;const desc=slides?kind:audio?`${kind} audio recording`:\"Video\";const source=slides?platform||ownJoin([event,place],\", \"):ted?\"TED Conferences\":platform;const work=`${ownI(apaTitle)} [${ownEsc(desc)}]`;return{bib:ownJoin([who?ownDot(ownEsc(who)):`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\",source&&ownDot(ownEsc(source)),ownEsc(url)])};}case\"mla\":{const who=people.length?ownDot(ownEsc(ownMlaAuthors(people))):\"\";const t=ownQuote(ctx.headline(title));if(online||slides&&(seen===\"website\"||!event&&platform))return{bib:ownJoin([who,t,ownDot(`${ownI(ted?\"TED\":platform)}${[ownMlaDate(csl),url&&ownUrlMla(url)].filter(Boolean).length?`, ${ownEsc(ownJoin([ownMlaDate(csl),url&&ownUrlMla(url)],\", \"))}`:\"\"}`)])};// In person or in class: \"Event, Day Month Year, Place. Lecture.\"\nconst label=slides?OWN_MLA_SLIDES[kind]??kind:kind;return{bib:ownJoin([who,t,ownDot(ownEsc(ownJoin([event,ownMlaDate(csl),place&&mlaPublisher(place)],\", \"))),ownDot(ownEsc(label))])};}case\"chicago\":{const bibWho=people.length?ownDot(ownEsc(ownChicagoAuthors(people))):\"\";const noteWho=people.length?ownEsc(ownNaturalList(people)):\"\";const t=ctx.headline(title);const loc=ownNoteLocator(ctx.locator);if(online){// TED: \"Filmed June 2010 at TEDxHouston. TED video.\" (CMOS 14.267); another video: the date it\n// was posted; an audio recording: the event and date, then the site's audio.\nconst audio=csl[\"ws-audio\"]===true;const filmed=ted?ownJoin([ownLongDate(csl)&&`filmed ${ownLongDate(csl)}`,event&&`at ${event}`]):audio?ownJoin([kind.toLowerCase(),event,ownLongDate(csl)],\", \"):ownLongDate(csl);const media=`${ted?\"TED\":platform} ${audio?\"audio\":\"video\"}`.trim();return{bib:ownJoin([bibWho,ownQuote(t),filmed&&ownDot(ownEsc(cap(filmed))),ownDot(ownEsc(cap(media))),url&&ownDot(ownEsc(url))]),note:ownDot(ownJoin([noteWho,ownQuote(t,\",\"),ownJoin([ownEsc(filmed),ownEsc(media),loc,ownEsc(url)],\", \")],noteWho?\", \":\" \").replace(/,”, /,\",” \"))};}const label=slides?OWN_MLA_SLIDES[kind]??kind:kind;const parts=[label,slides&&(seen===\"website\"||!event)?platform:event,place,ownLongDate(csl)].filter(Boolean);return{bib:ownJoin([bibWho,ownQuote(t),ownDot(ownEsc(parts.join(\", \"))),url&&ownDot(ownEsc(url))]),// \"lecture\" and \"address\" are lowercase mid-note; \"PowerPoint presentation\" keeps its capital.\nnote:ownDot(ownJoin([noteWho,ownQuote(t,\",\"),ownJoin([ownEsc(parts.join(\", \").replace(/^(Lecture|Speech|Address|Keynote|Guest|Presentation|Lecture notes)\\b/,c=>c.toLowerCase())),loc,ownEsc(url)],\", \")],noteWho?\", \":\" \").replace(/,”, /,\",” \"))};}case\"harvard\":{const who=people.length?ownEsc(ownHarvardList(people)):\"\";const lead=who?`${who} (${ownHarvardYear(csl)})`:\"\";const avail=url?`Available at: ${ownEsc(url)}.`:\"\";if(online)return{bib:ownJoin([lead,`${ownI(title)}${who?\"\":` (${ownHarvardYear(csl)})`} [${csl[\"ws-audio\"]===true?\"Audio recording\":\"Video\"}].`,platform&&!ted?ownDot(ownEsc(platform)):\"\",avail])};const label=slides?kind===\"PowerPoint slides\"?\"PowerPoint presentation\":kind:kind;// Class slides on a platform with no course named: the platform, as for a website.\nconst where=slides&&(seen===\"website\"||!event)?platform:place;return{bib:ownJoin([lead,`‘${ownEsc(title)}’${who?\"\":` (${ownHarvardYear(csl)})`} [${ownEsc(label)}].`,ownDot(ownEsc(ownJoin([event,where],\". \"))),ownDayMonth(csl)&&ownDot(ownDayMonth(csl)),avail])};}default:{const who=people.length?`${ownEsc(ownIeeeList(people))},`:\"\";const at=ownJoin([event,place],\", \");if(online)return{bib:ownJoin([who,ownQuote(title,\",\"),ownDot(ownEsc(ownJoin([at&&`presented at ${at}`,ownIeeeDate(csl)],\", \"))),`[Online${csl[\"ws-audio\"]===true?\"\":\" Video\"}]. ${url?`Available: ${ownEsc(url)}`:\"\"}`.trim()])};const where=slides&&(seen===\"website\"||!event)?platform:at&&`presented at ${at}`;return{bib:ownJoin([who,ownQuote(title,\",\"),ownDot(ownEsc(ownJoin([where,ownIeeeDate(csl)],\", \"))),slides?`[${ownEsc(kind)}].`:\"\",url&&`Available: ${ownEsc(url)}`])};}}}/* ---------------------------------------------- Wikipedia, theses -- *//** Chicago 18 (14.130–14.131) cites Wikipedia in a note, without the \"s.v.\" earlier editions used:\n *  \"Wikipedia, “Photosynthesis,” last modified August 25, 2026, URL.\" */function chicagoWiki(csl,ctx){const wiki=ownText(csl[\"container-title\"])||\"Wikipedia\";const title=ownText(csl.title);const date=ownLongDate(csl);const url=ownText(csl.URL);const loc=ownNoteLocator(ctx.locator);const rest=ownJoin([date&&`last modified ${date}`,loc,ownEsc(url)],\", \");return{// A comma after a quoted section name goes inside the quotation marks: under “Light reactions,” https…\nnote:ownDot(`${ownEsc(wiki)}, ${ownQuote(title,rest?\",\":\"\")}${rest?` ${rest}`:\"\"}`).replace(/”, /g,\",” \"),bib:ownJoin([ownDot(ownEsc(wiki)),ownQuote(title),date&&`Last modified ${date}.`,url&&ownDot(ownEsc(url))])};}const OWN_MLA_THESIS={doctoral:\"PhD dissertation\",masters:\"Master’s thesis\",bachelors:\"Bachelor’s thesis\"};/** MLA 9: \"Author. Title. Year. University, PhD dissertation. Database, URL.\" */function mlaThesis(csl,ctx){const genre=ownText(csl[\"ws-genre\"]??csl.genre);const kind=/doctor|ph\\.?\\s?d|diss/i.test(genre)?\"doctoral\":/bachelor|honou?rs/i.test(genre)?\"bachelors\":/master/i.test(genre)?\"masters\":\"doctoral\";const who=csl.author?.length?ownDot(ownEsc(ownMlaAuthors(csl.author))):\"\";const univ=ownText(csl[\"ws-univ\"]??csl.publisher);const where=ownText(csl.archive);const link=csl.DOI?`https://doi.org/${ownText(csl.DOI)}`:ownText(csl.URL);const year=String(ownParts(csl).y??\"\");return{bib:ownJoin([who,ownDot(ownI(ctx.headline(ownText(csl.title)))),year&&`${year}.`,ownDot(ownEsc(ownJoin([univ&&mlaPublisher(univ),OWN_MLA_THESIS[kind]],\", \"))),(where||link)&&ownDot(`${where?ownI(where):\"\"}${where&&link?\", \":\"\"}${ownEsc(ownUrlMla(link))}`)])};}/* -------------------------------------------------------- wave 3 -- */const OWN_ORG_WORDS=/\\b(administration|association|university|institute|foundation|society|agency|department|council|center|centre|office|inc|ltd|llc|corporation|company|news|times|press|group|team|museum|library|government|ministry|bureau|committee|project|lab|laboratory)\\b/i;/** A forum or comment author as the site shows it: \"Real Name [username]\", a username alone, or a name.\n *  A real person's name is inverted in the entry (\"Little, J. [j450n_l]\"); a group's isn't. */function ownHandleName(n){if(!n.literal)return{person:n};const m=n.literal.match(/^(.+?)\\s+\\[@?([^\\]]+)\\]$/);const name=(m?m[1]:n.literal).trim();const handle=m?m[2].trim():undefined;const words=name.split(/\\s+/);if(m&&words.length>=2&&words.length<=4&&words.every(w=>RegExp(\"^[A-Z][\\\\p{L}'’.-]*$\",\"u\").test(w))&&!OWN_ORG_WORDS.test(name)){const family=words.pop();return{person:{family,given:words.join(\" \")},handle};}if(!m&&!/\\s/.test(name))return{handle:name};return{name,handle};}const ownHandles=csl=>(csl[\"ws-names\"]??csl.author??[]).map(ownHandleName);const ownApaHandle=h=>h.person?`${ownInverted(h.person)}${h.handle?` [${h.handle}]`:\"\"}`:h.name?`${h.name}${h.handle?` [${h.handle}]`:\"\"}`:h.handle??\"\";const ownMlaHandle=h=>h.person?`${ownFullInverted(h.person)}${h.handle?` [${h.handle}]`:\"\"}`:h.name?`${h.name}${h.handle?` [${h.handle}]`:\"\"}`:h.handle??\"\";const ownNoteHandle=h=>h.person?`${ownNatural(h.person)}${h.handle?` (${h.handle})`:\"\"}`:h.name?`${h.name}${h.handle?` (${h.handle})`:\"\"}`:h.handle??\"\";const ownBibHandle=h=>h.person?`${ownFullInverted(h.person)}${h.handle?` (${h.handle})`:\"\"}`:h.name?`${h.name}${h.handle?` (${h.handle})`:\"\"}`:h.handle??\"\";const ownHarvardHandle=h=>h.person?ownInverted(h.person,false):h.name??h.handle??\"\";const ownIeeeHandle=h=>h.person?ownInitialsFirst(h.person):h.name??h.handle??\"\";/** APA uses up to the first 20 words of an untitled post or comment (emojis count; a lone \"—\" doesn't). */function ownFirst20(text){const tokens=text.split(/\\s+/).filter(Boolean);let count=0;// APA's own comment example counts a lone hyphen (\"format - the university\") as a word.\nconst cut=tokens.findIndex(t=>(RegExp(\"[\\\\p{L}\\\\p{N}\\\\p{Extended_Pictographic}]\",\"u\").test(t)||t===\"-\")&&++count>20);return cut>0?tokens.slice(0,cut).join(\" \"):text;}const ownCap=t=>t?t.charAt(0).toUpperCase()+t.slice(1):t;const ownApaTitle=t=>looksSentenceCase(t)?t:sentenceCase(t);const ownAccessedMla=csl=>{const[y,m,d]=(csl.accessed?.[\"date-parts\"]?.[0]??[]).map(Number);return y&&m?`Accessed ${ownJoin([d?String(d):\"\",OWN_MLA_MONTHS[m-1],String(y)])}.`:\"\";};const ownAccessedIeee=csl=>{const[y,m,d]=(csl.accessed?.[\"date-parts\"]?.[0]??[]).map(Number);return y&&m?`Accessed: ${OWN_IEEE_MONTHS[m-1]} ${d?`${String(d).padStart(2,\"0\")}, `:\"\"}${y}.`:\"\";};const ownAccessedLong=csl=>{const[y,m,d]=(csl.accessed?.[\"date-parts\"]?.[0]??[]).map(Number);return y&&m?`${OWN_MONTHS[m-1]}${d?` ${d}`:\"\"}, ${y}`:\"\";};const ownDoiLink=csl=>csl.DOI?`https://doi.org/${ownText(csl.DOI)}`:ownText(csl.URL);/** A conference's dates as each style writes a range: MLA \"8–11 Aug. 2019\", Chicago \"August 8–11, 2019\",\n *  Harvard \"8–11 August\", IEEE \"Aug. 8–11, 2019\". One day when there's no range. */function ownRange(csl,family){const[a,b]=csl.issued?.[\"date-parts\"]??[];const[y,m,d]=(a??[]).map(Number);const[y2,m2,d2]=(b??[]).map(Number);if(!y)return\"\";const range=Boolean(b&&d&&d2);const months=family===\"mla\"?OWN_MLA_MONTHS:family===\"ieee\"?OWN_IEEE_MONTHS:OWN_MONTHS;if(!m)return String(y);const mo=months[m-1];if(!range){if(family===\"mla\")return ownJoin([d?String(d):\"\",mo,String(y)]);if(family===\"harvard\")return ownJoin([d?String(d):\"\",mo]);return d?`${mo} ${d}, ${y}`:`${mo} ${y}`;}const mo2=months[(m2||m)-1];const sameMonth=(m2||m)===m&&(y2||y)===y;const sameYear=(y2||y)===y;if(family===\"mla\")return sameMonth?`${d}–${d2} ${mo} ${y}`:sameYear?`${d} ${mo}–${d2} ${mo2} ${y}`:`${d} ${mo} ${y}–${d2} ${mo2} ${y2}`;if(family===\"harvard\")return sameMonth?`${d}–${d2} ${mo}`:`${d} ${mo}–${d2} ${mo2}`;return sameMonth?`${mo} ${d}–${d2}, ${y}`:sameYear?`${mo} ${d}–${mo2} ${d2}, ${y}`:`${mo} ${d}, ${y}–${mo2} ${d2}, ${y2}`;}/* ------------------------------------------- forum posts, comments -- */const OWN_FORUM_SITES=/reddit|stack|quora|forum|discord|discussion|superuser|serverfault|ask ubuntu|mathoverflow/i;/** Online forum posts (APA 10.15, MLA's Reddit and forum examples, Chicago 14.107, adapted for Harvard\n *  and IEEE, which have no forum format). */function forumEntry(csl,family,ctx){const names=ownHandles(csl);const title=ownText(csl.title);const site=ownText(csl[\"container-title\"]);const forum=ownText(csl[\"ws-forum\"]);const url=ownText(csl.URL);switch(family){case\"apa\":{const who=ownList(names.map(ownApaHandle),\"&\");const work=`${ownI(ownFirst20(title))} [Online forum post]`;return{bib:ownJoin([who?ownDot(ownEsc(who)):`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\",site&&ownDot(ownEsc(site)),ownEsc(url)])};}case\"mla\":{const who=ownList(names.map(ownMlaHandle),\"and\");const rest=ownJoin([ownMlaDate(csl),url&&ownUrlMla(url)],\", \");return{bib:ownJoin([who&&ownDot(ownEsc(who)),ownQuote(ctx.headline(title)),ownDot(`${ownI(site)}${rest?`, ${ownEsc(rest)}`:\"\"}`),!csl.issued&&ownAccessedMla(csl)])};}case\"chicago\":{const noteWho=ownNaturalListStr(names.map(ownNoteHandle));const bibWho=names.map((h,i)=>i===0?ownBibHandle(h):ownNoteHandle(h)).join(\", \");const where=ownJoin([forum,site],\", \");return{note:ownDot(ownJoin([noteWho&&ownEsc(noteWho),ownQuote(title,\",\"),ownJoin([ownEsc(where),ownLongDate(csl),ownNoteLocator(ctx.locator),ownEsc(url)],\", \")],\" \").replace(/^(.+?) “/,noteWho?\"$1, “\":\"$1 “\")),bib:ownJoin([bibWho&&ownDot(ownEsc(bibWho)),ownQuote(title),ownDot(ownEsc(ownJoin([where,ownLongDate(csl)],\", \"))),url&&ownDot(ownEsc(url))])};}case\"harvard\":{const who=ownList(names.map(ownHarvardHandle),\"and\",false);const board=forum||site;return{bib:ownJoin([ownHarvardLead(ownEsc(who),csl,`‘${ownEsc(title)}’`),`${ownI(board)}${forum&&site?`, ${ownEsc(site)}`:\"\"}${ownDayMonth(csl)?`, ${ownDayMonth(csl)}`:\"\"}.`,url&&`Available at: ${ownEsc(url)}${ownAccessedHarvard(csl)}.`])};}default:{const who=ownList(names.map(ownIeeeHandle),\"and\",names.length>2);return{bib:ownJoin([who&&`${ownEsc(who)},`,`${ownQuote(title,\",\")} ${ownEsc(site)}${ownIeeeDate(csl)?`, ${ownIeeeDate(csl)}`:\"\"}.`,url&&`[Online]. Available: ${ownEsc(url)}`])};}}}const ownNaturalListStr=names=>ownList(names,\"and\");/** Comments on an article, blog post, video or post (APA 10.1, 10.15 and 10.16; MLA's comment examples;\n *  Chicago 14.94, 14.105 and 14.106, notes only; adapted for Harvard and IEEE). */function commentEntry(csl,family,ctx){const names=ownHandles(csl);const text=ownText(csl.title);const site=ownText(csl[\"container-title\"]);const parent=ownText(csl[\"ws-parent\"]);const parentWho=csl[\"ws-parent-author\"]??[];const url=ownText(csl.URL);const time=ownText(csl[\"ws-time\"]);const on=String(csl[\"ws-on\"]??\"article\");// A comment on an article or blog post is part of a periodical: the site is in italics and the article's\n// title in quotation marks. On a video or a forum post, the site is plain and the work's title italic.\nconst periodical=on===\"article\"||on===\"blog\";const onWord=on===\"blog\"?\"blog post\":on===\"video\"?\"video\":on===\"post\"?OWN_FORUM_SITES.test(site)?\"online forum post\":\"post\":\"article\";switch(family){case\"apa\":{const who=ownList(names.map(ownApaHandle),\"&\");const words=ownEsc(ownFirst20(text));const p=ownApaTitle(parent);const bracket=parent?` [Comment on the ${onWord} ${periodical?`“${ownEsc(p)}”`:ownI(p)}]`:\" [Comment]\";const work=`${periodical?words:ownI(ownFirst20(text))}${bracket}`;return{bib:ownJoin([who?ownDot(ownEsc(who)):`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\",site&&ownDot(periodical?ownI(site):ownEsc(site)),ownEsc(url)])};}case\"mla\":{const who=ownList(names.map(ownMlaHandle),\"and\");const by=parentWho.length?`, by ${ownNaturalList(parentWho)}`:\"\";const on=parent?`Comment on ${by?`${ownQuote(ctx.headline(parent),\",\")} ${ownEsc(by.replace(/^, /,\"\"))}.`:ownQuote(ctx.headline(parent))}`:\"Comment.\";const rest=ownJoin([ownMlaDate(csl),time,url&&ownUrlMla(url)],\", \");return{bib:ownJoin([who&&ownDot(ownEsc(who)),on,ownDot(`${ownI(site)}${rest?`, ${ownEsc(rest)}`:\"\"}`),!csl.issued&&ownAccessedMla(csl)])};}case\"chicago\":{const who=ownNaturalListStr(names.map(ownNoteHandle));const date=ownJoin([ownLongDate(csl),time],\", \");const whose=parentWho.length?`${ownNaturalList(parentWho)}, `:\"\";const onPart=parent?`comment on ${ownEsc(whose)}${ownQuote(ctx.headline(parent),\",\")}`:\"comment,\";const note=ownDot(ownJoin([ownJoin([who&&ownEsc(who),ownEsc(date),onPart],\", \"),ownJoin([periodical?ownI(site):ownEsc(site),ownNoteLocator(ctx.locator),ownEsc(url)],\", \")],\" \").replace(/,$/,\"\"));// Chicago cites comments in notes only: the list shows the note.\nreturn{note,bib:note};}case\"harvard\":{const who=ownList(names.map(ownHarvardHandle),\"and\",false);return{bib:ownJoin([ownHarvardLead(ownEsc(who),csl,text?`‘${ownEsc(ownFirst20(text))}’`:\"\"),parent?`comment on ‘${ownEsc(parent)}’,`:\"\",`${periodical?ownI(site):ownEsc(site)}${ownDayMonth(csl)?`, ${ownDayMonth(csl)}`:\"\"}.`,url&&`Available at: ${ownEsc(url)}${ownAccessedHarvard(csl)}.`])};}default:{const who=ownList(names.map(ownIeeeHandle),\"and\",names.length>2);return{bib:ownJoin([who&&`${ownEsc(who)},`,ownQuote(ownFirst20(text),\",\"),parent?`comment on ${ownQuote(parent,\",\")}`:\"\",`${ownEsc(site)}${ownIeeeDate(csl)?`, ${ownIeeeDate(csl)}`:\"\"}.`,url&&`[Online]. Available: ${ownEsc(url)}`])};}}}/* -------------------------------------------------- press releases -- *//** Press releases. APA uses the style file (10.4). MLA's examples start with the title when the\n *  organization publishes it and end \"Press release.\" Chicago 14.98: \"news release\". Harvard (Cite Them\n *  Right, as library guides print it): \"*Title* [Press release]. Day Month.\" IEEE has no format: its\n *  website format with the description. */function pressEntry(csl,family,ctx){if(family===\"apa\")return null;const people=csl.author??[];const org=(people.length===1&&people[0].literal?people[0].literal:\"\")||ownText(csl[\"ws-org\"]);const title=ownText(csl.title);const wire=ownText(csl.publisher);const url=ownText(csl.URL);switch(family){case\"mla\":{const who=!org&&people.length?ownDot(ownEsc(ownMlaAuthors(people))):wire&&org?ownDot(ownEsc(org)):\"\";// (An organization on its own site starts the entry with the title: prepareMlaOrg moved it to ws-org.)\nconst site=wire||org;const rest=ownJoin([ownMlaDate(csl),url&&ownUrlMla(url)],\", \");return{bib:ownJoin([who,ownQuote(ctx.headline(title)),ownDot(`${site?ownI(site):\"\"}${site&&rest?\", \":\"\"}${ownEsc(rest)}`),\"Press release.\"])};}case\"chicago\":{const noteWho=org||ownNaturalList(people);const bibWho=org||ownChicagoAuthors(people);const rest=ownJoin([wire,ownLongDate(csl)],\", \");return{note:ownDot(ownJoin([noteWho&&`${ownEsc(noteWho)},`,ownQuote(ctx.headline(title),\",\"),ownJoin([\"news release\",ownEsc(rest),ownNoteLocator(ctx.locator),ownEsc(url)],\", \")])),bib:ownJoin([bibWho&&ownDot(ownEsc(bibWho)),ownQuote(ctx.headline(title)),ownDot(ownEsc(ownJoin([\"News release\",rest],\", \"))),url&&ownDot(ownEsc(url))])};}case\"harvard\":{const who=org||ownHarvardList(people);return{bib:ownJoin([who?`${ownEsc(who)} (${ownHarvardYear(csl)})`:\"\",`${ownI(title)}${who?\"\":` (${ownHarvardYear(csl)})`} [Press release].`,ownDayMonth(csl)&&`${ownDayMonth(csl)}.`,wire&&ownDot(ownEsc(wire)),url&&`Available at: ${ownEsc(url)}${ownAccessedHarvard(csl)}.`])};}default:{const who=org||ownIeeeList(people);return{bib:ownJoin([who&&`${ownEsc(who)},`,ownQuote(title,\",\"),`${ownJoin([\"press release\",ownEsc(wire),ownIeeeDate(csl)],\", \")}.`,url&&`[Online]. Available: ${ownEsc(url)}`])};}}}/* ------------------------------------------ conference presentations -- *//** Chicago's wording for each kind of presentation: \"Paper presented at\", \"Poster presented at\". */const OWN_PRESENTED={\"Paper presentation\":\"paper presented at\",\"Poster presentation\":\"poster presented at\",\"Conference presentation\":\"presentation at\",\"Conference session\":\"session at\",\"Keynote address\":\"keynote address at\",Symposium:\"symposium at\",\"Roundtable discussion\":\"roundtable discussion at\"};/** Unpublished conference presentations. APA uses the style file (10.5: the conference's dates, the\n *  bracketed description). MLA's examples: the conference as container, then the dates and place.\n *  Chicago 14.115: \"Paper presented at ...\". Harvard (Cite Them Right's conference paper): the conference\n *  in italics, then its place and dates. IEEE: \"presented at the ...\". */function presentationEntry(csl,family,ctx){if(family===\"apa\")return null;const people=csl.author??[];const title=ownText(csl.title);const event=ownText(csl[\"event-title\"]);const place=ownText(csl[\"event-place\"]);const url=ownText(csl.URL);const kind=ownText(csl.genre)||\"Paper presentation\";switch(family){case\"mla\":return{bib:ownJoin([people.length?ownDot(ownEsc(ownMlaAuthors(people))):\"\",ownQuote(ctx.headline(title)),ownDot(ownEsc(ownJoin([event,ownRange(csl,\"mla\"),place,url&&ownUrlMla(url)],\", \")))])};case\"chicago\":{const presented=OWN_PRESENTED[kind]??\"presented at\";const where=ownJoin([event,place,ownRange(csl,\"chicago\")],\", \");// Notes name up to two presenters, then \"et al.\" (CMOS 18, 14.76).\nconst noteWho=people.length>2?`${ownNatural(people[0])} et al.`:ownNaturalList(people);return{note:ownDot(ownJoin([`${noteWho?`${ownEsc(noteWho)}, `:\"\"}${ownQuote(ctx.headline(title),\"\")} (${ownEsc(`${presented} ${where}`)})`,ownNoteLocator(ctx.locator),ownEsc(url)],\", \")),bib:ownJoin([people.length?ownDot(ownEsc(ownChicagoAuthors(people))):\"\",ownQuote(ctx.headline(title)),ownDot(ownEsc(`${ownCap(presented)} ${where}`)),url&&ownDot(ownEsc(url))])};}case\"harvard\":{const who=people.length>3?`${ownInverted(people[0],false)} et al.`:ownHarvardList(people);return{bib:ownJoin([ownHarvardLead(ownEsc(who),csl,`‘${ownEsc(title)}’`),ownDot(ownI(event)),ownDot(ownEsc(ownCap(ownJoin([place,ownRange(csl,\"harvard\")],\", \")))),url&&`Available at: ${ownEsc(url)}.`])};}default:{// IEEE: \"USA\" after a U.S. city and state.\nconst where=place.replace(/,?\\s*United States( of America)?$/i,\", USA\");return{bib:ownJoin([people.length?`${ownEsc(ownIeeeList(people))},`:\"\",ownQuote(title,\",\"),ownDot(ownEsc(ownJoin([event&&`presented at the ${event}`,where,ownRange(csl,\"ieee\")],\", \"))),url&&`[Online]. Available: ${ownEsc(url)}`])};}}}/* ------------------------------------------------ software, datasets -- */const OWN_PLATFORMS=/^(app store|google play( store)?|github|gitlab|cran|pypi|microsoft store|steam|npm|bioconductor|sourceforge|zenodo)$/i;/** Software and apps. APA uses the style file (10.10: \"*Title* (Version 3.3) [Computer software].\n *  Publisher.\"). MLA: titles in italics, an organization that makes it as its publisher (the entry starts\n *  with the title), GitHub or an app store as a second container. Harvard (Cite Them Right): \"*Title*\n *  (version 3.0) [Computer program]\", \"[Mobile app]\". IEEE (2025 guide, FORCE11): \"Author. *Title*.\n *  (Year). Repository. (Version). Publisher. Accessed: date. [Online]. Available: URL\". */function softwareEntry(csl,family,ctx){// APA with no author: the title first, its bracketed description with it, and the publisher after the date.\nif(family===\"apa\"&&!csl.author?.length){const version=ownText(csl.version);const work=`${ownI(ownText(csl.title))}${version?` (Version ${ownEsc(version)})`:\"\"} [${ownEsc(ownText(csl.genre)||\"Computer software\")}]`;const pub=ownText(csl[\"ws-publisher\"]);return{bib:ownJoin([`${work}.`,`(${ownParts(csl).y??\"n.d.\"}).`,pub&&ownDot(ownEsc(pub)),ownEsc(ownDoiLink(csl))])};}if(family===\"apa\"||family===\"chicago\")return null;const people=csl.author??[];const orgAuthor=(people.length===1&&people[0].literal?people[0].literal:\"\")||ownText(csl[\"ws-org\"]);const title=ownText(csl.title);const version=ownText(csl.version);const pub=ownText(csl.publisher);const platform=OWN_PLATFORMS.test(pub)?pub.replace(/^google play$/i,\"Google Play\"):\"\";const company=platform?\"\":pub;const url=ownDoiLink(csl);const year=String(ownParts(csl).y??\"\");const app=/app/i.test(String(csl.genre??\"\"));switch(family){case\"mla\":{const who=orgAuthor?\"\":people.length?ownDot(ownEsc(ownMlaAuthors(people))):\"\";const publisher=orgAuthor||company;const facts=ownJoin([version&&`version ${version}`,publisher&&mlaPublisher(publisher),year],\", \");const tail=platform?ownJoin([ownDot(ownCap(ownEsc(facts))),`${ownI(platform)}${url?`, ${ownEsc(ownUrlMla(url))}`:\"\"}.`]):ownDot(ownCap(ownEsc(ownJoin([facts,url&&ownUrlMla(url)],\", \"))));return{bib:ownJoin([who,ownDot(ownI(ctx.headline(title))),tail])};}case\"harvard\":{const who=orgAuthor||ownHarvardList(people);const work=`${ownI(title)}${version?` (version ${ownEsc(version)})`:\"\"} [${app?\"Mobile app\":\"Computer program\"}].`;return{bib:ownJoin([who?`${ownEsc(who)} (${year||\"no date\"})`:\"\",who?work:`${ownI(title)} (${year||\"no date\"})${version?` (version ${ownEsc(version)})`:\"\"} [${app?\"Mobile app\":\"Computer program\"}].`,!url&&company&&ownDot(ownEsc(company)),url&&`Available at: ${ownEsc(url)}${ownAccessedHarvard(csl)}.`])};}default:{const who=orgAuthor||ownIeeeList(people);return{bib:ownJoin([who&&ownDot(ownEsc(who)),`${ownI(title)}.`,year&&`(${year}).`,platform&&`${ownEsc(platform)}.`,version&&`(Version ${ownEsc(version)}).`,company&&ownDot(ownEsc(company)),ownAccessedIeee(csl),csl.DOI?`doi: ${ownEsc(ownText(csl.DOI))}.`:url&&`[Online]. Available: ${ownEsc(url)}`])};}}}/** Datasets. APA uses the style file for published data (10.9) and writes unpublished raw data here:\n *  \"[Unpublished raw data on ...]\" or \"*Title* [Unpublished raw data]\". MLA: the dataset as a work of its\n *  own, in italics. IEEE (2025 guide): \"Author, Date, “Title,” distributed by Publisher, URL\" or \"…,\n *  Source, doi: …\". Chicago and Harvard use the style files. */function datasetEntry(csl,family,ctx){const people=csl.author??[];const orgAuthor=(people.length===1&&people[0].literal?people[0].literal:\"\")||ownText(csl[\"ws-org\"]);const title=ownText(csl.title);const version=ownText(csl.version);const pub=ownText(csl.publisher);const url=ownDoiLink(csl);const raw=csl[\"ws-found\"]===\"unpublished\";switch(family){case\"apa\":{if(!raw)return null;const who=people.length?ownDot(ownEsc(ownApaList(people))):\"\";const work=/^unpublished raw data\\b/i.test(title)?`[${ownEsc(ownCap(title))}]`:`${ownI(ctx.titleLocked?title:ownApaTitle(title))} [Unpublished raw data]`;return{bib:ownJoin([who||`${work}.`,`(${ownApaDate(csl)}).`,who?`${work}.`:\"\"])};}case\"mla\":{const who=people.length?ownDot(ownEsc(ownMlaAuthors(people))):\"\";const publisher=pub||(who?\"\":orgAuthor);const year=String(ownParts(csl).y??\"\");// Unpublished data has no title: its description, in plain text.\nif(raw)return{bib:ownJoin([who||orgAuthor&&ownDot(ownEsc(orgAuthor)),ownDot(ownEsc(ownCap(title))),year&&`${year}.`])};const rest=ownJoin([version&&`version ${version}`,publisher&&mlaPublisher(publisher),year,url&&ownUrlMla(url)],\", \");return{bib:ownJoin([who,ownDot(ownI(ctx.headline(title))),rest&&ownDot(ownCap(ownEsc(rest))),!csl.issued&&ownAccessedMla(csl)])};}case\"chicago\":{if(!raw)return null;const year=String(ownParts(csl).y??\"\");const desc=ownEsc(title.charAt(0).toLowerCase()+title.slice(1));return{note:ownDot(ownJoin([people.length?ownEsc(ownNaturalList(people)):orgAuthor&&ownEsc(orgAuthor),desc,year],\", \")),bib:ownJoin([people.length?ownDot(ownEsc(ownChicagoAuthors(people))):orgAuthor&&ownDot(ownEsc(orgAuthor)),ownDot(ownEsc(ownCap(title))),year&&`${year}.`])};}case\"ieee\":{const who=orgAuthor||ownIeeeList(people);const date=ownIeeeDate(csl);const named=`“${ownEsc(title)}${version?`. ${ownEsc(version)}`:\"\"},”`;if(raw)return{bib:ownJoin([who&&`${ownEsc(who)},`,date&&`${date},`,`“${ownEsc(title)},” unpublished.`])};const src=csl.DOI?ownJoin([pub&&`${ownEsc(pub)},`,`doi: ${ownEsc(ownText(csl.DOI))}.`]):ownJoin([pub&&`distributed by ${ownEsc(pub)},`,ownEsc(url)]);// Nothing after the title: it closes with a period inside the quotation marks.\nreturn{bib:ownJoin([who&&`${ownEsc(who)},`,date&&`${date},`,src?named:named.replace(/,”$/,\".”\"),src])};}default:return null;}}/** Conference papers in proceedings.\n *  - APA 10.5: proceedings published as a book are cited like a chapter in an edited book, with a series\n *    and its volume before the book's title (\"In R. Battiti (Eds.), *Lecture notes in computer science: Vol.\n *    11353. Learning and intelligent optimization* (pp. 225–240). Springer.\"). Proceedings published in a\n *    journal (an issue number) keep the style file's journal format.\n *  - Harvard (Cite Them Right): the proceedings in italics, then the conference's place, the publisher and\n *    the pages, with no \"in\" or editors. */function conferenceEntry(csl,family,ctx){if(family===\"apa\"){if(csl.issue)return null;const people=csl.author??[];const editors=csl.editor??[];const series=ownText(csl[\"collection-title\"]);const volume=ownText(csl.volume);const book=`${series?`${ownApaTitle(series)}: ${volume?`Vol. ${volume}. `:\"\"}`:\"\"}${ownText(csl[\"container-title\"])}`;const pages=ownText(csl.page).replace(/-/g,\"–\");const facts=ownJoin([!series&&volume?`Vol. ${volume}`:\"\",pages&&`${/[–,]/.test(pages)?\"pp.\":\"p.\"} ${pages}`],\", \");const title=ownEsc(ownText(csl.title));return{bib:ownJoin([people.length?ownDot(ownEsc(ownApaList(people))):ownDot(title),`(${ownParts(csl).y??\"n.d.\"}).`,people.length?ownDot(title):\"\",`In ${editors.length?`${ownEsc(ownApaInitialsList(editors))} (Ed${editors.length>1?\"s\":\"\"}.), `:\"\"}${ownI(book)}${facts?` (${ownEsc(facts)})`:\"\"}.`,ownText(csl.publisher)&&ownDot(ownEsc(ownText(csl.publisher))),ownEsc(ownDoiLink(csl))])};}// MLA and Chicago: with no editors the style files print the proceedings like a journal; both cite a\n// paper in a book of proceedings like an essay in a collection (MLA's Hualde example; Chicago's chapter\n// form), with its publisher.\nif((family===\"mla\"||family===\"chicago\")&&!csl.issue&&!(csl.editor??[]).length&&ownText(csl.publisher)){const people=csl.author??[];const title=ownText(csl.title);const proc=ownText(csl[\"container-title\"]);const pub=ownText(csl.publisher);const year=String(ownParts(csl).y??\"\");const pages=ownText(csl.page).replace(/-/g,\"–\");const link=ownDoiLink(csl);const series=ownText(csl[\"collection-title\"]);if(family===\"mla\"){const facts=ownJoin([ownText(csl.volume)&&`vol. ${ownText(csl.volume)}`,mlaPublisher(pub),year,pages&&`${/[–,]/.test(pages)?\"pp.\":\"p.\"} ${pages.replace(/(\\d+)–(\\d+)/,(m,a,b)=>a.length===b.length&&a.length>2&&a.slice(0,-2)===b.slice(0,-2)?`${a}–${b.slice(-2)}`:m)}`,link&&ownUrlMla(link)],\", \");return{bib:ownJoin([people.length?ownDot(ownEsc(ownMlaAuthors(people))):\"\",ownQuote(ctx.headline(title)),ownDot(`${ownI(ctx.headline(proc))}, ${ownEsc(facts)}`),series&&ownDot(ownEsc(series))])};}const noteWho=people.length>2?`${ownNatural(people[0])} et al.`:ownNaturalList(people);return{note:ownDot(ownJoin([`${noteWho?`${ownEsc(noteWho)}, `:\"\"}${ownQuote(ctx.headline(title),\",\")} in ${ownI(ctx.headline(proc))} (${ownEsc(ownJoin([series,pub],\", \"))}${year?`, ${year}`:\"\"})`,ownNoteLocator(ctx.locator)||pages&&ownEsc(pages),ownEsc(link)],\", \")),bib:ownJoin([people.length?ownDot(ownEsc(ownChicagoAuthors(people))):\"\",ownQuote(ctx.headline(title)),`In ${ownI(ctx.headline(proc))}${pages?`, ${ownEsc(pages)}`:\"\"}.`,series&&ownDot(ownEsc(series)),ownDot(ownEsc(ownJoin([pub,year],\", \"))),link&&ownDot(ownEsc(link))])};}if(family!==\"harvard\")return null;const people=csl.author??[];const who=people.length>3?`${ownInverted(people[0],false)} et al.`:ownHarvardList(people);const pages=ownText(csl.page).replace(/-/g,\"–\");const link=ownDoiLink(csl);return{bib:ownJoin([ownHarvardLead(ownEsc(who),csl,`‘${ownEsc(ownText(csl.title))}’`),ownDot(ownI(ownText(csl[\"container-title\"]))),ownText(csl[\"event-place\"])&&ownDot(ownEsc(ownText(csl[\"event-place\"]))),ownDot(ownEsc(ownJoin([ownText(csl.publisher),pages&&`${/[–,]/.test(pages)?\"pp.\":\"p.\"} ${pages}`],\", \"))),link&&`Available at: ${ownEsc(link)}.`])};}/* ----------------------------------------------------------- patents -- */const OWN_PATENT_NATION={US:\"U.S.\",EP:\"European\",GB:\"U.K.\",CA:\"Canadian\",AU:\"Australian\",CN:\"Chinese\",JP:\"Japanese\",DE:\"German\",WO:\"International\"};/** Patents. APA 11.8: \"*Title* (U.S. Patent No. 9,367,592). U.S. Patent and Trademark Office. URL\", cited\n *  by inventor and year. MLA's patent post: the title in roman, the office's number with its kind code\n *  (\"US 20140200880 A1\"), the office spelled out, the issue date, and a database as second container.\n *  Chicago (14.158): \"US Patent 3,005,282, filed July 28, 1958, and issued October 24, 1961.\" Harvard (Cite\n *  Them Right): \"*Title*. US Patent 4554399.\" IEEE: \"“Title,” U.S. Patent 3 624 125, Jul. 16, 1990.\" */function patentEntry(csl,family,ctx){const people=csl.author??[];const title=ownText(csl.title);const number=ownText(csl.number);const digits=number.replace(/[,/]/g,\"\");const cc=ownText(csl[\"ws-country\"]);const kind=ownText(csl[\"ws-kindcode\"]);const office=ownText(csl.authority);const url=ownText(csl.URL);// A published application, not a granted patent: a U.S. application's 11-digit number (2014/0011876);\n// elsewhere an A kind code (EP 2105153 A2). Old U.S. patents carry an A code too, so the U.S. goes by length.\nconst application=cc===\"US\"||!cc?/^\\d{11}$/.test(digits):/^A/.test(kind)||cc===\"WO\";const appNumber=cc===\"US\"&&/^\\d{11}$/.test(digits)?`${digits.slice(0,4)}/${digits.slice(4)}`:number;const[fy,fm,fd]=(csl.submitted?.[\"date-parts\"]?.[0]??[]).map(Number);const filed=fy?fm?fd?`${OWN_MONTHS[fm-1]} ${fd}, ${fy}`:`${OWN_MONTHS[fm-1]} ${fy}`:String(fy):\"\";switch(family){case\"apa\":{const label=`${cc?`${OWN_PATENT_NATION[cc]??cc} `:\"\"}${application?\"Patent Application Publication\":\"Patent\"} No. ${application?appNumber:number}`;const work=`${ownI(ctx.titleLocked?title:ownApaTitle(title))} (${ownEsc(label)})`;return{bib:ownJoin([people.length?ownDot(ownEsc(ownApaList(people))):`${work}.`,`(${ownParts(csl).y??\"n.d.\"}).`,people.length?`${work}.`:\"\",office&&ownDot(ownEsc(office)),ownEsc(url)])};}case\"mla\":{const num=ownJoin([cc,digits,kind]);const mlaOffice=office.replace(/^U\\.S\\./,\"United States\");const host=(()=>{try{const h=new URL(url).hostname.replace(/^www\\./,\"\");return/patents\\.google/.test(h)?\"Google Patents\":/uspto\\.gov/.test(h)?\"USPTO Patent Public Search\":/espacenet/.test(h)?\"Espacenet\":/patentscope|wipo/.test(h)?\"PATENTSCOPE\":\"\";}catch{return\"\";}})();return{bib:ownJoin([people.length?ownDot(ownEsc(ownMlaAuthors(people))):\"\",ownDot(ownEsc(title)),ownDot(ownEsc(ownJoin([num,mlaOffice,ownMlaDate(csl)],\", \"))),url&&`${host?`${ownI(host)}, `:\"\"}${ownEsc(ownUrlMla(url))}.`])};}case\"chicago\":{const label=`${cc===\"US\"||!cc?\"US\":cc} Patent${application?\" Application\":\"\"} ${application?appNumber:number}`;const done=application?\"published\":\"issued\";const dates=filed&&ownLongDate(csl)?`filed ${filed}, and ${done} ${ownLongDate(csl)}`:ownLongDate(csl)?`${done} ${ownLongDate(csl)}`:filed?`filed ${filed}`:\"\";return{note:ownDot(ownJoin([people.length?ownEsc(ownNaturalList(people)):\"\",ownEsc(title),ownEsc(label),dates,ownEsc(url)],\", \")),bib:ownJoin([people.length?ownDot(ownEsc(ownChicagoAuthors(people))):\"\",ownDot(ownEsc(title)),ownDot(ownEsc(ownJoin([label,dates],\", \"))),url&&ownDot(ownEsc(url))])};}case\"harvard\":{const label=cc===\"US\"?`US Patent${application?\" Application\":\"\"} ${digits}`:`${office?`${office} `:\"\"}Patent${application?\" Application\":\"\"} no. ${cc}${digits}`;return{bib:ownJoin([people.length?`${ownEsc(ownHarvardList(people))} (${ownHarvardYear(csl)})`:\"\",ownDot(`${ownI(title)}${people.length?\"\":` (${ownHarvardYear(csl)})`}`),ownDot(ownEsc(label)),url&&`Available at: ${ownEsc(url)}${ownAccessedHarvard(csl)}.`])};}default:{// IEEE writes a U.S. number with spaces between groups of three digits (\"3 624 125\").\nconst spaced=cc===\"US\"&&/^\\d{5,8}$/.test(digits)?digits.replace(/\\B(?=(\\d{3})+(?!\\d))/g,\" \"):digits;// IEEE: \"U.S. Patent Appl. 20110013726A1\" for an application.\nconst label=application?`${cc===\"US\"||!cc?\"U.S.\":cc} Patent Appl. ${digits}${kind}`:`${cc===\"US\"||!cc?\"U.S.\":cc} Patent ${ownJoin([spaced,kind])}`;return{bib:ownJoin([people.length?`${ownEsc(ownIeeeList(people))},`:\"\",ownQuote(title,\",\"),`${ownEsc(label)}${ownIeeeDate(csl)?`, ${ownIeeeDate(csl)}`:\"\"}.`,url&&`[Online]. Available: ${ownEsc(url)}`])};}}}/* ------------------------------------ dictionary and encyclopedia entries -- */const OWN_POS={noun:\"n\",verb:\"v\",adjective:\"adj\",adverb:\"adv\",preposition:\"prep\",conjunction:\"conj\",pronoun:\"pron\",interjection:\"interj\"};/** The short names MLA and Chicago give online dictionaries (\"Merriam-Webster\", not its site's full name). */const ownShortWork=work=>work.replace(/^Merriam-Webster\\.com Dictionary$/i,\"Merriam-Webster\");const ownSame=(a,b)=>{const norm=t=>t.toLowerCase().replace(/^the\\s+/,\"\").replace(/,?\\s+(inc|incorporated|ltd|llc)\\.?$/,\"\").replace(/[^a-z0-9]+/g,\"\");return Boolean(a&&b)&&(norm(a)===norm(b)||norm(b).startsWith(norm(a))||norm(a).startsWith(norm(b)));};/** Dictionary and encyclopedia entries.\n *  - MLA (dictionaries): no author; the headword with its part of speech in italics inside the quotation\n *    marks (“Culture, *N*.”), the dictionary, its publisher unless it's the site's own name, the date, the\n *    URL, and an access date when there's no date. Encyclopedias use the style file.\n *  - Chicago 18 (14.130–14.132): well-known reference works in notes only, without \"s.v.\": \"*Merriam-\n *    Webster*, “culture (*n.*),” accessed …, URL.\"; \"*Encyclopaedia Britannica*, “Title,” by Author, last\n *    updated …, URL.\"; print: \"*Title*, 15th ed. (1980), under “Musk-ox.”\" An entry in an edited scholarly\n *    encyclopedia uses the style file, like a chapter.\n *  - Harvard (Cite Them Right): \"Author (Year) ‘Entry’, in Editor (ed.) *Work*. Available at: URL (Accessed:\n *    date).\"; print: \"…, *Work*. 2nd edn. Publisher, p. 12.\"\n *  - IEEE (no format of its own): the online book-chapter format: \"“Entry,” in *Work*. Accessed: …\n *    [Online]. Available: URL\". */function referenceEntry(csl,family,ctx){const dictionary=csl.type===\"entry-dictionary\";const people=csl.author??[];const personal=people.filter(p=>!p.literal);const orgAuthor=(people.length===1&&people[0].literal?people[0].literal:\"\")||ownText(csl[\"ws-org\"]);const title=ownText(csl.title);const work=ownText(csl[\"container-title\"]);const editors=csl.editor??[];const edition=ownText(csl.edition);const pages=ownText(csl.page).replace(/-/g,\"–\");const url=ownDoiLink(csl);const print=!url&&(Boolean(pages)||Boolean(csl.volume));const pos=OWN_POS[ownText(csl[\"ws-pos\"]).toLowerCase()]??\"\";const editionText=edition?/^\\d+$/.test(edition)?`${edition}${[\"th\",\"st\",\"nd\",\"rd\"][Number(edition)%100>=11&&Number(edition)%100<=13||Number(edition)%10>3?0:Number(edition)%10]} ed.`:/\\bed\\.?$/.test(edition)?edition:`${edition} ed.`:\"\";switch(family){case\"apa\":{// With an author, the style file's entry is APA's (10.3). With none, the entry starts with the\n// title (the style file would move the editor or publisher there instead).\nif(people.length)return null;const eds=editors.length?`${ownApaInitialsList(editors)} (Ed${editors.length>1?\"s\":\"\"}.), `:\"\";const parts=ownJoin([editionText.replace(/^(\\d+)(st|nd|rd|th) ed\\.$/,\"$1$2 ed.\"),csl.volume?`Vol. ${ownText(csl.volume)}`:\"\",pages&&`${/[–,]/.test(pages)?\"pp.\":\"p.\"} ${pages}`],\", \");const retrieved=!csl.issued&&url&&csl.accessed&&!csl.DOI?`Retrieved ${ownAccessedLong(csl)}, from ${ownEsc(url)}`:ownEsc(url);return{bib:ownJoin([ownDot(ownEsc(ctx.titleLocked||dictionary?ownCap(title):sentenceCase(title))),`(${ownApaDate(csl)}).`,`In ${ownEsc(eds)}${ownI(work)}${parts?` (${ownEsc(parts)})`:\"\"}.`,ownText(csl.publisher||csl[\"ws-publisher\"])&&ownDot(ownEsc(ownText(csl.publisher||csl[\"ws-publisher\"]))),retrieved])};}case\"mla\":{// Dictionaries: the headword with its part of speech (“Culture, *N*.”). Encyclopedias: the entry's\n// author when a person signed it, the editors after the work. An organization that makes the work\n// (Merriam-Webster, Oxford UP) is its publisher, left out when it's the work's own name.\nconst head=`“${ownEsc(ctx.headline(title))}${dictionary&&pos?`, <i>${ownCap(pos)}</i>.”`:\".”\"}`;const short=dictionary?ownShortWork(work):work;const maker=ownText(csl.publisher)||orgAuthor;const publisher=maker&&!ownSame(maker,short)&&!ownSame(maker,work)?mlaPublisher(maker):\"\";const date=print?String(ownParts(csl).y??\"\"):ownMlaDate(csl);const where=print?pages&&`${/[–,]/.test(pages)?\"pp.\":\"p.\"} ${pages}`:url&&ownUrlMla(url);const facts=ownJoin([editors.length?`edited by ${editors.length>2?`${ownNatural(editors[0])} et al.`:ownNaturalList(editors)}`:\"\",editionText,csl.volume?`vol. ${ownText(csl.volume)}`:\"\",publisher,date,where],\", \");return{bib:ownJoin([personal.length?ownDot(ownEsc(ownMlaAuthors(personal))):\"\",head,ownDot(`${ownI(short)}${facts?`, ${ownEsc(facts)}`:\"\"}`),!print&&!csl.issued&&ownAccessedMla(csl)])};}case\"chicago\":{// An entry in an edited scholarly encyclopedia (the SEP, an Oxford encyclopedia) is cited like a chapter.\nif(!dictionary&&editors.length)return null;const short=dictionary?ownShortWork(work):work;const head=dictionary?`${ownEsc(title.charAt(0).toLowerCase()+title.slice(1))}${pos?` (<i>${pos}.</i>)`:\"\"}`:ownEsc(ctx.headline(title));const loc=ownNoteLocator(ctx.locator);let note;if(print){const year=String(ownParts(csl).y??\"\");note=`${ownI(short)}${editionText?`, ${ownEsc(editionText)}`:\"\"}${year?` (${year})`:\"\"}, under “${head}${loc?`,” ${loc}.`:\".”\"}`;}else{const by=personal.length?`by ${ownNaturalList(personal)}`:\"\";const date=csl.issued?`last updated ${ownLongDate(csl)}`:ownAccessedLong(csl)?`accessed ${ownAccessedLong(csl)}`:\"\";const rest=ownJoin([ownEsc(by),date,loc,ownEsc(url)],\", \");note=ownDot(`${ownI(short)}, “${head}${rest?\",”\":\"”\"}${rest?` ${rest}`:\"\"}`);}// Notes only: the list shows the note.\nreturn{note,bib:note};}case\"harvard\":{const who=orgAuthor||ownHarvardList(people);const year=ownHarvardYear(csl);const eds=editors.length?`${ownList(editors.map(ownInitialsFirst),\"and\",false)} (${editors.length>1?\"eds\":\"ed.\"}) `:\"\";const edn=edition?/^\\d+$/.test(edition)?`${editionText.replace(/ ed\\.$/,\"\")} edn`:`${edition.replace(/\\s*ed(ition|n)?\\.?$/i,\"\")} edn`:\"\";return{bib:ownJoin([who?`${ownEsc(who)} (${year}) ‘${ownEsc(dictionary?ownCap(title):title)}’,`:`‘${ownEsc(dictionary?ownCap(title):title)}’ (${year}),`,`in ${ownEsc(eds)}${ownI(work)}${edn?`. ${ownEsc(edn)}`:\"\"}${csl.volume?`, vol. ${ownEsc(ownText(csl.volume))}`:\"\"}.`,print?ownDot(ownEsc(ownJoin([ownText(csl.publisher),pages&&`${/[–,]/.test(pages)?\"pp.\":\"p.\"} ${pages}`],\", \"))):url&&`Available at: ${ownEsc(url)}${ownAccessedHarvard(csl)}.`])};}case\"ieee\":{const who=orgAuthor||ownIeeeList(people);const eds=editors.length?`${ownList(editors.map(ownInitialsFirst),\"and\",editors.length>2)}, Ed${editors.length>1?\"s\":\"\"}.`:\"\";const head=`${ownQuote(dictionary?ownCap(title):title,\",\")} in ${ownI(work)}`;const facts=ownJoin([editionText,eds],\", \");if(print)return{bib:ownJoin([who&&`${ownEsc(who)},`,ownDot(`${head}${facts?`, ${ownEsc(facts)}`:\"\"}${csl.volume?`, vol. ${ownEsc(ownText(csl.volume))}`:\"\"}`),ownDot(ownEsc(ownJoin([ownText(csl.publisher),String(ownParts(csl).y??\"\"),pages&&`${/[–,]/.test(pages)?\"pp.\":\"p.\"} ${pages}`],\", \")))])};return{bib:ownJoin([who&&`${ownEsc(who)},`,ownDot(`${head}${facts?`, ${ownEsc(facts)}`:\"\"}${ownIeeeDate(csl)?`, ${ownIeeeDate(csl)}`:\"\"}`),ownAccessedIeee(csl),url&&`[Online]. Available: ${ownEsc(url)}`])};}default:return null;}}/** IEEE's blog format (2025 guide): \"J. K. Author, “Title of the post,” *Title of the Blog*, Mon. Day, Year.\n *  [Online]. Available: URL\". */function blogEntry(csl,family){if(family!==\"ieee\")return null;const people=csl.author??[];const url=ownText(csl.URL);return{bib:ownJoin([people.length?`${ownEsc(ownIeeeList(people))},`:\"\",ownQuote(ownText(csl.title),\",\"),ownJoin([ownI(ownText(csl[\"container-title\"])),ownIeeeDate(csl)],\", \")&&`${ownJoin([ownI(ownText(csl[\"container-title\"])),ownIeeeDate(csl)],\", \")}.`,url&&`[Online]. Available: ${ownEsc(url)}`])};}/* ---------------------------------------------------------- entry -- *//** This item's entry for the style, or null to leave it to the style file. */function ownEntry(csl,family,ctx){const own=ownEntryFor(csl,family,ctx);// IEEE: a quoted title with nothing after it closes with a period (\"“A post.”\").\nif(own&&family===\"ieee\")own.bib=own.bib.replace(/,”$/,\".”\");return own;}function ownEntryFor(csl,family,ctx){if(family===\"other\")return null;const kind=csl[\"ws-kind\"];if(kind===\"tv\")return tvEntry(csl,family,ctx);if(kind===\"podcast\")return podcastEntry(csl,family,ctx);if(kind===\"lecture\"||kind===\"slides\")return talkEntry(csl,family,ctx);if(family===\"chicago\"&&csl.type===\"entry-encyclopedia\"&&(kind===\"wiki\"||/wiki/i.test(String(csl[\"container-title\"]??\"\"))))return chicagoWiki(csl,ctx);if(family===\"mla\"&&csl.type===\"thesis\")return mlaThesis(csl,ctx);if(kind===\"forum\")return forumEntry(csl,family,ctx);if(kind===\"comment\")return commentEntry(csl,family,ctx);if(kind===\"press\")return pressEntry(csl,family,ctx);if(kind===\"presentation\")return presentationEntry(csl,family,ctx);if(csl.type===\"software\")return softwareEntry(csl,family,ctx);if(csl.type===\"dataset\")return datasetEntry(csl,family,ctx);if(csl.type===\"patent\")return patentEntry(csl,family,ctx);if(csl.type===\"paper-conference\")return conferenceEntry(csl,family,ctx);if(csl.type===\"entry-dictionary\"||csl.type===\"entry-encyclopedia\"&&kind!==\"wiki\")return referenceEntry(csl,family,ctx);if(csl.type===\"post-weblog\")return blogEntry(csl,family);return null;}// ---- CiteEngine.ts -----------------------------------------------\n/**\n * CiteEngine: formats CSL-JSON with citeproc-js, the CSL processor behind\n * Zotero and Mendeley, against any style in the official CSL repository.\n *\n * - citeproc is loaded lazily from esm.sh the first time it is needed (or\n *   when the browser is idle), never during the server render.\n * - Style and locale files are fetched on demand from the CSL repositories\n *   on jsDelivr and cached in memory and in the browser's Cache Storage.\n *   Dependent styles are resolved to their independent parent.\n * - Title casing: styles such as APA want sentence case for titles, which\n *   CSL cannot do reliably, so titles are converted here first unless the\n *   writer has edited the title by hand.\n * - Output is sanitised to the handful of tags citeproc emits.\n *\n * Never import this at module level for its side effects; everything here\n * runs inside effects and event handlers.\n */const CITEPROC_URL=\"https://esm.sh/citeproc@2.4.63\";const STYLE_BASE=\"https://cdn.jsdelivr.net/gh/citation-style-language/styles@master\";const LOCALE_BASE=\"https://cdn.jsdelivr.net/gh/citation-style-language/locales@master\";const CACHE_NAME=\"ws-csl-v1\";const FETCH_TIMEOUT=12e3;let citeprocPromise=null;/** Tests load citeproc from node_modules instead of esm.sh. */function setCiteprocLoader(loader){citeprocPromise=loader();engines.clear();}function loadCiteproc(){if(!citeprocPromise){const url=CITEPROC_URL;citeprocPromise=import(/* @vite-ignore */url).then(mod=>{const CSL=mod.default??mod;if(!CSL||typeof CSL.Engine!==\"function\")throw new Error(\"citeproc did not load\");return CSL;}).catch(error=>{citeprocPromise=null;throw error;});}return citeprocPromise;}async function fetchText(url){try{if(typeof caches!==\"undefined\"){const cache=await caches.open(CACHE_NAME);const hit=await cache.match(url);if(hit)return await hit.text();}}catch{/* Cache Storage unavailable (private window, http): fetch instead */}const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),FETCH_TIMEOUT);try{const response=await fetch(url,{signal:controller.signal});if(!response.ok)return null;const text=await response.text();try{if(typeof caches!==\"undefined\"){const cache=await caches.open(CACHE_NAME);await cache.put(url,new Response(text,{headers:{\"Content-Type\":\"text/xml\"}}));}}catch{/* caching is optional */}return text;}catch{return null;}finally{clearTimeout(timer);}}const styleMemo=new Map;function attr(xml,pattern){return xml.match(pattern)?.[1];}async function fetchStyleXml(id){return await fetchText(`${STYLE_BASE}/${id}.csl`)??await fetchText(`${STYLE_BASE}/dependent/${id}.csl`);}/** Loads a style by CSL id, following a dependent style to its parent. */function loadStyle(id){let pending=styleMemo.get(id);if(!pending){pending=(async()=>{const xml=await fetchStyleXml(id);if(!xml)throw new Error(`Style \"${id}\" could not be loaded`);const title=attr(xml,/<title>([\\s\\S]*?)<\\/title>/)?.trim()??id;const format=attr(xml,/citation-format=\"([^\"]+)\"/)??\"author-date\";const parentHref=attr(xml,/<link[^>]*rel=\"independent-parent\"[^>]*href=\"([^\"]+)\"/)??attr(xml,/<link[^>]*href=\"([^\"]+)\"[^>]*rel=\"independent-parent\"/);let engineId=id;let engineXml=xml;if(parentHref){engineId=parentHref.replace(/\\/$/,\"\").split(\"/\").pop()??id;const parent=await fetchStyleXml(engineId);if(!parent)throw new Error(`Parent style \"${engineId}\" could not be loaded`);engineXml=parent;}// A dependent style's own default-locale wins over its parent's.\nconst defaultLocale=attr(xml,/default-locale=\"([^\"]+)\"/)??attr(engineXml,/default-locale=\"([^\"]+)\"/);return{id,engineId,xml:engineXml,title:decodeXml(title),defaultLocale,format,hasBibliography:/<bibliography[\\s>]/.test(engineXml)};})();pending.catch(()=>styleMemo.delete(id));styleMemo.set(id,pending);}return pending;}function decodeXml(text){return text.replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&quot;/g,'\"').replace(/&apos;/g,\"'\").replace(/&amp;/g,\"&\");}/* ----------------------------------------------------------- locales -- */const PRIMARY_DIALECT={af:\"af-ZA\",ar:\"ar\",bg:\"bg-BG\",ca:\"ca-AD\",cs:\"cs-CZ\",cy:\"cy-GB\",da:\"da-DK\",de:\"de-DE\",el:\"el-GR\",en:\"en-US\",es:\"es-ES\",et:\"et-EE\",eu:\"eu\",fa:\"fa-IR\",fi:\"fi-FI\",fr:\"fr-FR\",he:\"he-IL\",hr:\"hr-HR\",hu:\"hu-HU\",id:\"id-ID\",is:\"is-IS\",it:\"it-IT\",ja:\"ja-JP\",km:\"km-KH\",ko:\"ko-KR\",la:\"la\",lt:\"lt-LT\",lv:\"lv-LV\",mn:\"mn-MN\",nb:\"nb-NO\",nl:\"nl-NL\",nn:\"nn-NO\",pl:\"pl-PL\",pt:\"pt-PT\",ro:\"ro-RO\",ru:\"ru-RU\",sk:\"sk-SK\",sl:\"sl-SI\",sr:\"sr-RS\",sv:\"sv-SE\",th:\"th-TH\",tr:\"tr-TR\",uk:\"uk-UA\",vi:\"vi-VN\",zh:\"zh-CN\"};function normalizeLocale(lang){if(!lang)return\"en-US\";const[primary,region]=lang.replace(\"_\",\"-\").split(\"-\");if(region)return`${primary.toLowerCase()}-${region.toUpperCase()}`;return PRIMARY_DIALECT[primary.toLowerCase()]??\"en-US\";}const localeMemo=new Map;function loadLocale(lang){let pending=localeMemo.get(lang);if(!pending){pending=fetchText(`${LOCALE_BASE}/locales-${lang}.xml`);localeMemo.set(lang,pending);}return pending;}const ALLOWED_TAG=/^(div|span|i|b|em|strong|sup|sub|br)$/i;/** citeproc escapes field text, and our fields only carry CSL rich text,\n *  but its output is still reduced to known tags and harmless attributes\n *  before it is ever rendered. */function sanitize(html){return html.replace(/<\\/?([a-z0-9]+)([^>]*)>/gi,(whole,tag,attrs)=>{if(!ALLOWED_TAG.test(tag))return\"\";if(whole.startsWith(\"</\"))return`</${tag.toLowerCase()}>`;const kept=[];const cls=attrs.match(/\\sclass=\"([a-z0-9 _-]+)\"/i);if(cls)kept.push(`class=\"${cls[1]}\"`);const style=attrs.match(/\\sstyle=\"([^\"]*)\"/i)?.[1];if(style){const safe=style.split(\";\").map(s=>s.trim()).filter(s=>/^(font-variant|font-style|font-weight|text-decoration|vertical-align)\\s*:\\s*[a-z0-9 -]+$/i.test(s));if(safe.length)kept.push(`style=\"${safe.join(\";\")}\"`);}return`<${tag.toLowerCase()}${kept.length?\" \"+kept.join(\" \"):\"\"}>`;});}function htmlToText(html){return html.replace(/<div class=\"csl-left-margin\">([\\s\\S]*?)<\\/div>/g,\"$1 \").replace(/<br\\s*\\/?>/g,\"\\n\").replace(/<[^>]+>/g,\"\").replace(/&nbsp;/g,\" \").replace(/&#(\\d+);/g,(_m,n)=>String.fromCodePoint(Number(n))).replace(/&#x([0-9a-f]+);/gi,(_m,n)=>String.fromCodePoint(parseInt(n,16))).replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&quot;/g,'\"').replace(/&apos;/g,\"'\").replace(/&amp;/g,\"&\").replace(/[ \\t]+/g,\" \").trim();}function headingFor(styleId,format){if(/^modern-language-association|^mla/.test(styleId))return\"Works Cited\";if(/^harvard|cite-them-right/.test(styleId))return\"Reference list\";// Chicago and Turabian author-date use \"References\"; their notes styles use \"Bibliography\".\nif(/^(chicago|turabian)[\\w-]*author-date/.test(styleId))return\"References\";if(/^(chicago|turabian|oscola|mhra|bluebook)/.test(styleId)||format===\"note\")return\"Bibliography\";return\"References\";}/** Types whose titles APA-like styles sentence-case. Web pages, news and\n *  videos keep the casing their site gave them: their titles are full of\n *  names (\"Big Buck Bunny\", \"Blender Foundation\") that no rule can tell\n *  apart from ordinary words, and a wrongly lowered name is a worse error\n *  than a capital left in place. The editor offers a one-click fix. */// Encyclopedia and Wikipedia entries aren't here: their titles already come in sentence case (\"Salem witch\n// trials\") and are often names (\"Julius Caesar\"), which automatic sentence case would lowercase.\nconst SENTENCE_CASE_TYPES=new Set([\"article-journal\",\"article\",\"paper-conference\",\"chapter\",\"book\",\"report\",\"thesis\",\"dataset\",\"review\",\"article-magazine\",\"article-newspaper\"]);// APA also writes webpage, film and artwork titles in sentence case (\"Benefits of physical activity\",\n// \"The starry night [Painting]\"); other styles in this family print those as given. An online video keeps\n// its uploader's title (\"... | Tim Urban | TED\" is mostly names): the form's hint asks the student instead.\nconst APA_SENTENCE_CASE_TYPES=new Set([\"webpage\",\"motion_picture\",\"graphic\",\"post-weblog\"]);const apaSentenceCase=csl=>APA_SENTENCE_CASE_TYPES.has(csl.type)&&csl[\"ws-kind\"]!==\"video\";function isApaFamily(style){return/^apa(-|$)/.test(style.id)||/^apa(-|$)/.test(style.engineId);}/** The handful of style families whose rules the tools know by name (hints, image fixes, captions). */function styleFamily(styleId,engineId=styleId){const test=re=>re.test(styleId)||re.test(engineId);if(test(/^apa(-|$)/))return\"apa\";if(test(/^(modern-language-association|mla)/))return\"mla\";if(test(/^(chicago|turabian)/))return\"chicago\";if(test(/^harvard|cite-them-right/))return\"harvard\";if(test(/^ieee/))return\"ieee\";return\"other\";}function sameCreatorName(a,b){const norm=s=>s.toLowerCase().replace(/^the\\s+/,\"\").replace(/[^a-z0-9]+/g,\"\");return Boolean(a&&b)&&norm(a)===norm(b);}/** Images (\"graphic\") as each style's own rules want them. The form stores one neutral shape: the site in\n *  container-title, the image type in genre, and for an untitled image no title and the description in\n *  genre. The style files print that shape badly (\"In Flickr.\", \"[Photograph; Photograph]\", the site\n *  twice), so it is reshaped here, in one place, for every page that formats images:\n *  - APA 7: \"Creator. (Year). Title [Photograph]. Site. URL\"; the site is dropped when it is the creator;\n *    no retrieval date; an untitled image is \"[Description]\" in place of the title.\n *  - MLA 9: \"Creator. Title. Site, Date, URL.\" with no \"Photograph.\" element; an untitled image starts with\n *    a plain description; an organization that is also the site isn't repeated as the author.\n *  - Chicago: \"Creator. Title. Photograph. Site, Date. URL.\"\n *  - Harvard (Cite Them Right): \"Creator (Year) Title [Photograph]. Available at: URL (Accessed: date).\"\n *  - Anything else: site as publisher, type as genre. */function prepareImage(csl,family){const site=plainText(String(csl[\"container-title\"]??csl.publisher??\"\")).trim();const kind=String(csl.genre??\"\").trim();const untitled=!plainText(csl.title).trim()&&Boolean(kind);const authors=csl.author??[];const creatorIsSite=Boolean(site)&&authors.length===1&&sameCreatorName(authors[0].literal??\"\",site);delete csl[\"container-title\"];delete csl.publisher;delete csl.medium;switch(family){case\"apa\":if(site&&!creatorIsSite)csl.publisher=site;if(!kind)csl.genre=\"Image\";delete csl.accessed;break;case\"mla\":if(site)csl[\"container-title\"]=site;if(creatorIsSite)delete csl.author;if(!untitled)delete csl.genre;break;case\"harvard\":delete csl.genre;// With no creator the title leads, and the bracketed medium would follow it into the in-text citation.\nif(kind&&(authors.length||untitled))csl.medium=kind;if(untitled)delete csl.title;break;default:if(site&&!creatorIsSite)csl.publisher=site;// Most styles never print genre for images, so an untitled image's description stands in as its title.\nif(untitled){csl.title=kind;delete csl.genre;}}}/** Items as citeproc should see them: sentence-cased titles where the\n *  style wants them, per-style fixes for sources the style files handle\n *  poorly, and ids guaranteed. */function prepare(items,style){const sentence=styleWantsSentenceCase(style.id)||styleWantsSentenceCase(style.engineId);const apa=isApaFamily(style);const out={};for(const item of items){const csl={...item.csl,id:item.id};// A URL that is only the DOI link prints the DOI twice in styles that\n// show both (CSE, Vancouver); every style prints the DOI on its own.\nif(csl.DOI&&typeof csl.URL===\"string\"&&/^https?:\\/\\/(dx\\.)?doi\\.org\\//i.test(csl.URL)&&csl.URL.toLowerCase().endsWith(String(csl.DOI).toLowerCase())){delete csl.URL;}// Older records (and imported files) can repeat a field under two names.\nif(csl.medium&&csl.genre&&String(csl.medium).toLowerCase()===String(csl.genre).toLowerCase())delete csl.medium;if(csl.publisher&&csl[\"container-title\"]&&String(csl.publisher).toLowerCase()===String(csl[\"container-title\"]).toLowerCase()&&csl.type!==\"book\"){delete csl.publisher;}if(sentence&&typeof csl.title===\"string\"&&(SENTENCE_CASE_TYPES.has(csl.type)||isApaFamily(style)&&apaSentenceCase(csl))){// Container titles (journals, websites) keep their capitals. A title the student (or the source)\n// already wrote in sentence case keeps its capitals too, but APA still capitalizes the first\n// word after a colon (\"World health statistics 2023: Monitoring health\").\ncsl.title=item.titleLocked?csl.title.replace(/([:?!]\\s+)([a-z])/g,(_m,lead,c)=>`${lead}${c.toUpperCase()}`):sentenceCase(csl.title);}// Bluebook writes editions as \"2d\", \"3d\", \"4th\" (\"3d ed.\"), not \"3 ed.\".\nif(/^bluebook/.test(style.id)&&/^\\d+$/.test(String(csl.edition??\"\"))){const n=Number(csl.edition);csl.edition=n%100>=11&&n%100<=13?`${n}th`:n%10===1?`${n}st`:n%10===2?`${n}d`:n%10===3?`${n}d`:`${n}th`;}const family=styleFamily(style.id,style.engineId);const kind=csl[\"ws-kind\"];if(kind===\"ai-image\")prepareAiImage(csl,family);else if(kind===\"artwork\")prepareArtwork(csl,family);else if(csl.type===\"graphic\")prepareImage(csl,family);// MLA: a social post's image type is an optional element MLA leaves out.\nif(kind===\"social\"&&(family===\"mla\"||family===\"chicago\"))delete csl.genre;const container=String(csl[\"container-title\"]??\"\");// Online video: from the video page, or a YouTube link cited in the main generator.\nconst isVideo=kind===\"video\"||csl.type===\"motion_picture\"&&/^(youtube|vimeo|tiktok|dailymotion)$/i.test(container);if(isVideo)prepareVideo(csl,family);else if(kind===\"movie\"||csl.type===\"motion_picture\"&&csl.director?.length)prepareFilm(csl,family);else if(csl.type===\"webpage\")prepareWeb(csl,family);else if(csl.type===\"article-journal\")prepareArticle(csl,family);else if(csl.type===\"book\"||csl.type===\"chapter\")prepareBook(csl,family);else if(csl.type===\"article-newspaper\"||csl.type===\"article-magazine\")preparePeriodical(csl,family);else if(csl.type===\"report\")prepareReport(csl,family);else if(csl.type===\"thesis\")prepareThesis(csl,family);if(kind===\"wiki\"||csl.type===\"entry-encyclopedia\"&&/wiki/i.test(container))prepareWiki(csl,family);if(kind===\"social\")prepareSocial(csl,family);// Wave 3: forum posts and comments (names as cited in the text), press releases, datasets, proceedings,\n// dictionary and encyclopedia entries.\nif(kind===\"forum\"||kind===\"comment\")preparePostNames(csl,ownHandleName);if(kind===\"press\")preparePress(csl,family);if(csl.type===\"dataset\")prepareDataset(csl,family);// A proceedings title that names its conference keeps the conference's capitals (a proper name); a book\n// of proceedings (\"Learning and intelligent optimization\") is in sentence case, as APA's example.\nif(csl.type===\"paper-conference\")prepareConference(csl,family,t=>looksSentenceCase(t)||/\\b(conference|symposium|workshop|congress|meeting|convention|colloquium)\\b/i.test(t)?t:sentenceCase(t));if(csl.type===\"entry-dictionary\"||csl.type===\"entry-encyclopedia\"&&kind!==\"wiki\"&&!/wiki/i.test(container))prepareReference(csl,family,t=>looksSentenceCase(t)?t:sentenceCase(t));if(family===\"mla\")prepareMlaOrg(csl);if(family===\"apa\")prepareApaNoAuthor(csl);// APA: \"Title. (Date). In Wikipedia. URL\", with no publisher standing in for an author (Wikipedia's\n// Wikimedia Foundation, a Fandom wiki's Fandom).\nif(apa&&(/^wikipedia$/i.test(container)||csl[\"ws-kind\"]===\"wiki\"))delete csl.publisher;// APA: the book a chapter is in is a title too, in sentence case, unless it already is.\nif(apa&&csl.type===\"chapter\"&&container&&!looksSentenceCase(container))csl[\"container-title\"]=sentenceCase(container);prepareCommon(csl);out[item.id]=csl;}return out;}/** Artwork (\"graphic\" marked ws-kind \"artwork\"): the museum and its city are the source.\n *  - APA 7 (artwork page): \"van Gogh, V. (1889). The starry night [Painting]. The Museum of Modern Art,\n *    New York, NY, United States. URL\". The medium is always given; [Artwork] when it isn't known.\n *  - MLA 9: the year is the work's own date, after the title: \"Bearden, Romare. The Train. 1975. MOMA, URL.\"\n *  - Harvard: \"Artist (Year) Title [Medium]. Available at: URL (Accessed: date).\" */function prepareArtwork(csl,family){const museum=plainText(String(csl[\"container-title\"]??\"\")).trim();const place=plainText(String(csl[\"publisher-place\"]??\"\")).trim();const untitled=!plainText(csl.title).trim()&&Boolean(csl.genre);delete csl[\"publisher-place\"];delete csl.medium;switch(family){case\"apa\":delete csl[\"container-title\"];if(museum||place)csl.publisher=[museum,place].filter(Boolean).join(\", \");if(!csl.genre)csl.genre=\"Artwork\";delete csl.accessed;break;case\"mla\":// MLA 9 writes an approximate date \"c. 1665\" (citeproc would print \"[1665?]\").\nif(csl.issued?.circa&&csl.issued[\"date-parts\"]?.[0]?.[0])csl[\"original-date\"]={literal:`c. ${csl.issued[\"date-parts\"][0][0]}`};else if(csl.issued)csl[\"original-date\"]=csl.issued;delete csl.issued;if(!untitled)delete csl.genre;break;case\"harvard\":delete csl[\"container-title\"];// Cite Them Right: a work seen in person is \"Held at: Museum, City.\"; online, its URL instead.\nif(!csl.URL&&(museum||place))csl[\"ws-heldat\"]=[museum,place].filter(Boolean).join(\", \");// \"(c. 1665)\": the style file drops an approximate date's \"c.\".\nif(csl.issued?.circa&&csl.issued[\"date-parts\"]?.[0]?.[0])csl.issued={literal:`c. ${csl.issued[\"date-parts\"][0][0]}`};if(csl.genre&&!untitled)csl.medium=csl.genre;if(untitled)delete csl.title;else delete csl.genre;break;default:delete csl[\"container-title\"];if(museum||place)csl.publisher=[museum,place].filter(Boolean).join(\", \");if(untitled){csl.title=csl.genre;delete csl.genre;}}}/** AI-generated images (\"graphic\" marked ws-kind \"ai-image\"; see SourceAiImage.ts for the sources).\n *  - APA with a share link: the chat, dated to the day: \"OpenAI. (2024, September 23). Title\n *    [AI-generated image]. DALL-E 3. URL\". Without one, the tool: \"OpenAI. (2024). DALL-E 3 [Image\n *    generator]. URL\".\n *  - MLA: no author; \"\"Prompt\" prompt. DALL-E, version 3, OpenAI, 23 Sept. 2024, URL.\"\n *  - Chicago: no author: \"Image generated by DALL-E 3 from the prompt \"...\". OpenAI, September 23, 2024.\"\n *  - Others: the company as author, with [AI-generated image]. */function prepareAiImage(csl,family){const tool=plainText(String(csl[\"container-title\"]??\"\")).trim();const version=plainText(String(csl.version??\"\")).trim();const toolName=[tool,version].filter(Boolean).join(\" \");const prompt=plainText(String(csl[\"ws-prompt\"]??\"\")).trim();const shortPrompt=prompt.split(/\\s+/).slice(0,12).join(\" \")+(prompt.split(/\\s+/).length>12?\"...\":\"\");const described=plainText(csl.title).trim()||shortPrompt;switch(family){case\"apa\":delete csl.version;if(csl[\"ws-shared\"]){csl.type=\"webpage\";csl.title=described||\"AI-generated image\";csl[\"container-title\"]=toolName;}else{csl.type=\"software\";csl.title=toolName;csl.genre=\"Image generator\";delete csl[\"container-title\"];const year=csl.issued?.[\"date-parts\"]?.[0]?.[0];csl.issued=year?{\"date-parts\":[[year]]}:undefined;}break;case\"mla\":if(csl.author?.[0]?.literal)csl.publisher=csl.author[0].literal;delete csl.author;delete csl.title;csl.genre=prompt?`“${prompt}” prompt`:described||\"AI-generated image\";break;case\"chicago\":if(csl.author?.[0]?.literal)csl.publisher=csl.author[0].literal;delete csl.author;delete csl.title;delete csl[\"container-title\"];delete csl.version;csl.genre=`Image generated by ${toolName||\"an AI tool\"}${prompt?` from the prompt “${prompt}”`:\"\"}`;break;case\"harvard\":delete csl[\"container-title\"];delete csl.version;delete csl.genre;csl.title=plainText(csl.title).trim()||toolName;csl.medium=\"AI-generated image\";break;default:csl.title=plainText(csl.title).trim()||toolName;csl.publisher=toolName;delete csl[\"container-title\"];delete csl.version;}}/* ---------------------------------------------------- Chicago images -- */const HEADLINE_MINOR=new Set([\"a\",\"an\",\"the\",\"and\",\"but\",\"or\",\"nor\",\"for\",\"so\",\"yet\",\"as\",\"at\",\"by\",\"in\",\"of\",\"off\",\"on\",\"per\",\"to\",\"up\",\"via\",\"from\",\"into\",\"onto\",\"over\",\"with\",\"about\",\"between\",\"through\",\"under\",\"upon\",\"within\",\"without\"]);/** Headline-style title case (Chicago and MLA): capitalize every word except articles, conjunctions and\n *  prepositions, which stay lowercase unless first, last or after a colon. Words with capitals inside\n *  (\"iPhone\", \"NASA\") are left as typed. */function headlineCase(title){const words=title.split(/(\\s+)/);const last=words.length-1-[...words].reverse().findIndex(w=>w.trim());let first=true;return words.map((w,index)=>{if(!w.trim())return w;const lead=w.match(/^[^A-Za-z0-9]*/)?.[0]??\"\";const core=w.slice(lead.length);const bare=core.toLowerCase().replace(/[^a-z]/g,\"\");let out;// A hyphenated compound, part by part: \"Human-AI\", \"Over-the-Counter\" (minor words inside stay lowercase).\nif(core.includes(\"-\")&&!/^-|-$/.test(core))out=core.split(\"-\").map((part,i)=>/[A-Z]/.test(part.slice(1))?part:i>0&&HEADLINE_MINOR.has(part.toLowerCase())?part.toLowerCase():part.charAt(0).toUpperCase()+part.slice(1)).join(\"-\");else if(/[A-Z]/.test(core.slice(1))||/\\d/.test(core)&&/^[a-z]/.test(core))out=core;else if(!first&&index!==last&&HEADLINE_MINOR.has(bare))out=core.toLowerCase();else out=core.charAt(0).toUpperCase()+core.slice(1);first=/:$/.test(w);return lead+out;}).join(\"\");}const CHICAGO_MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function chicagoDateText(date){const[y,m,d]=(date?.[\"date-parts\"]?.[0]??[]).map(p=>Number(p));if(!y)return\"\";// Chicago: \"ca. 1665\"; a span of years \"1885–86\" (CMOS 9.64).\nconst end=Number(date?.[\"date-parts\"]?.[1]?.[0]);const circa=date?.circa?\"ca. \":\"\";if(end&&end>y)return`${circa}${y}–${String(end).slice(0,2)===String(y).slice(0,2)?String(end).slice(2):end}`;if(!m)return`${circa}${y}`;return d?`${CHICAGO_MONTHS[m-1]} ${d}, ${y}`:`${CHICAGO_MONTHS[m-1]} ${y}`;}function escapeText(text){return text.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");}function chicagoNameNatural(n){return n.literal??[n.given,n[\"non-dropping-particle\"],n.family].filter(Boolean).join(\" \");}/** Chicago notes and bibliography for an image or artwork, which the style file gets wrong (it puts the\n *  site before the date and prints \"In Flickr\"). Chicago 18 (14.133 and the caption examples in library\n *  guides built on it): note \"Mustafa Fatemi, Title, December 3, 2024, photograph, Unsplash, URL.\";\n *  bibliography \"Fatemi, Mustafa. Title. December 3, 2024. Photograph, Unsplash, URL.\" */function chicagoImage(csl){const names=(csl.author??[]).filter(n=>n.literal||n.family||n.given);const natural=names.map(chicagoNameNatural);const noteNames=natural.length>3?`${natural[0]} et al.`:natural.length===3?`${natural[0]}, ${natural[1]}, and ${natural[2]}`:natural.join(\" and \");const inverted=names.map((n,i)=>i===0&&!n.literal?[[n[\"non-dropping-particle\"],n.family].filter(Boolean).join(\" \"),n.given].filter(Boolean).join(\", \"):chicagoNameNatural(n));const bibNames=inverted.length>1?`${inverted.slice(0,-1).join(\", \")}, and ${inverted[inverted.length-1]}`:inverted[0]??\"\";const untitled=!plainText(csl.title).trim();const title=untitled?escapeText(plainText(String(csl.genre??\"\"))):`<i>${escapeText(headlineCase(plainText(csl.title)))}</i>`;const kind=[untitled?\"\":plainText(String(csl.genre??\"\")),plainText(String(csl.dimensions??\"\"))].filter(Boolean).join(\", \");const date=chicagoDateText(csl.issued);const site=[plainText(String(csl[\"container-title\"]??\"\")),plainText(String(csl[\"publisher-place\"]??\"\"))].filter(Boolean).join(\", \");const url=String(csl.URL??\"\");const accessed=!date&&csl.accessed?`accessed ${chicagoDateText(csl.accessed)}`:\"\";const siteIsCreator=names.length===1&&Boolean(site)&&sameCreatorName(names[0].literal??\"\",site);const dot=t=>/[.?!]$/.test(t)||/[.?!]<\\/i>$/.test(t)?t:`${t}.`;const note=dot([noteNames,title,date,kind.toLowerCase(),siteIsCreator?\"\":site,accessed,url].filter(Boolean).join(\", \"));const tail=[kind,siteIsCreator?\"\":site].filter(Boolean).join(\", \");const bib=[bibNames&&dot(escapeText(bibNames)),dot(title),date&&dot(date),tail&&dot(escapeText(tail)),accessed&&dot(accessed.replace(/^a/,\"A\")),url&&dot(escapeText(url))].filter(Boolean).join(\" \");return{note:escapeText(note).replace(/&lt;(\\/?)i&gt;/g,\"<$1i>\").replace(/&amp;(amp|lt|gt);/g,\"&$1;\"),bib};}/** Fixes to finished entries that no reshaping of the data can make. APA only:\n *  - An item with no date and no retrieval date prints a dangling \"Retrieved \" before its URL.\n *  - An image with no creator moves its title to the author position, and APA keeps the bracketed\n *    description with the title there (\"Title [Photograph]. (2013).\", as in APA's own exhibition\n *    example); the style file leaves the description after the date. */function afterRender(html,csl,style){if(!csl)return html;const family=styleFamily(style.id,style.engineId);html=fixEntry(html,csl,family);// MLA writes \"version 3\" in lowercase mid-entry; the style file capitalizes it.\nif(family===\"mla\")return html.replace(/, Version /g,\", version \");if(!isApaFamily(style))return html;let out=html.replace(/Retrieved (?=https?:\\/\\/)/,\"\");// No author: the bracketed description stays with the title in the author position (\"*Iris species* [Data\n// set]. (n.d.).\", \"*Big news* [Press release]. (2024, March 5).\").\nif(!csl.author?.length&&plainText(csl.title).trim()){out=out.replace(/^(<div class=\"csl-entry\">)?(<i>[\\s\\S]*?<\\/i>)\\. (\\([^()]*\\))\\. (\\[[^\\]]*\\])\\./,(_m,open,title,date,desc)=>`${open??\"\"}${title} ${desc}. ${date}.`);}return out;}/** Formats the whole list in one style: the reference list in the style's\n *  own order, plus in-text citations (parenthetical and narrative) or\n *  footnotes for every item. With `only`, just those items' in-text citations, still numbered and told\n *  apart within the whole list, and no reference list (a page typed by one in-text citation). */async function formatList(styleId,items,options={}){const[CSL,style]=await Promise.all([loadCiteproc(),loadStyle(styleId)]);// UK styles that don't declare a locale still expect UK dates (\"23 September 2026\").\nconst ukDefault=/^(harvard|oscola|.*cite-them-right)/.test(style.id)||/^(harvard|oscola)/.test(style.engineId)?\"en-GB\":undefined;const lang=normalizeLocale(options.locale??style.defaultLocale??ukDefault);const locales={};const wanted=Array.from(new Set([lang,\"en-US\"]));const loaded=await Promise.all(wanted.map(l=>loadLocale(l)));wanted.forEach((l,i)=>{const xml=loaded[i];if(xml)locales[l]=xml;});if(!locales[\"en-US\"])throw new Error(\"Locale files could not be loaded\");const byId=prepare(items,style);const family=styleFamily(style.id,style.engineId);// Entries the style files get wrong, written out instead: Chicago's images, artwork and videos\n// (notes and bibliography), and TV, podcasts, talks and slides in every main style (CiteOwn).\nconst chicagoNotes=family===\"chicago\"&&style.format===\"note\";const chicagoOwn=new Map;for(const item of items){if(options.only&&!options.only.includes(item.id))continue;if(chicagoNotes&&item.csl.type===\"graphic\"&&item.csl[\"ws-kind\"]!==\"ai-image\")chicagoOwn.set(item.id,chicagoImage(item.csl));else if(chicagoNotes&&(item.csl[\"ws-kind\"]===\"video\"||item.csl.type===\"motion_picture\"&&/^(youtube|vimeo|tiktok|dailymotion)$/i.test(String(item.csl[\"container-title\"]??\"\"))))chicagoOwn.set(item.id,chicagoVideo(item.csl,headlineCase));else if(family!==\"chicago\"||chicagoNotes){const own=ownEntry(byId[item.id]??item.csl,family,{headline:headlineCase,locator:options.locator?.[item.id],titleLocked:item.titleLocked});if(own)chicagoOwn.set(item.id,own);}}const{engine,store}=engineFor(CSL,style,lang,Boolean(options.locale),locales);// The cached engine reads items from its store: swap in this list's items.\nfor(const k of Object.keys(store))delete store[k];Object.assign(store,byId);const ids=items.map(i=>i.id);// citeproc keeps an item it has seen by id and won't reread it, so an edited item (or the live preview,\n// always id \"preview\") would format as it was. Emptying the registry first makes it read them fresh.\nengine.updateItems([]);engine.updateItems(ids);const entries=[];let params={};const bib=style.hasBibliography&&!options.only?engine.makeBibliography():false;if(bib){params=bib[0];const order=(params.entry_ids??[]).map(group=>String(group[0]));bib[1].forEach((raw,index)=>{const id=order[index]??ids[index];const own=chicagoOwn.get(id);// A numbered style keeps its number: only the entry's text is replaced.\nconst rawHtml=raw.trim();const html=own?/csl-right-inline/.test(rawHtml)?sanitize(rawHtml).replace(/(<div class=\"csl-right-inline\">)[\\s\\S]*?(<\\/div>)/,`$1${own.bib}$2`):`<div class=\"csl-entry\">${own.bib}</div>`:afterRender(sanitize(rawHtml),byId[id],style);entries.push({id,html,text:htmlToText(html)});});}const inText={};const isNote=style.format===\"note\";for(const id of options.only?ids.filter(i=>options.only?.includes(i)):ids){const locator=options.locator?.[id];const base={id};if(locator?.value){base.locator=locator.value;// Slides and a dictionary's definitions have no CSL label: cited as a page, then named (below).\nbase.label=locator.label===\"slide\"||locator.label===\"definition\"?\"page\":locator.label||\"page\";}const cluster=(extra={})=>{try{const html=sanitize(engine.makeCitationCluster([{...base,...extra}]));// citeproc's placeholder when a cluster renders nothing.\nreturn/NO_PRINTED_FORM|no printed form|CSL STYLE ERROR/i.test(html)?\"\":html;}catch{return\"\";}};let parenthetical=chicagoOwn.get(id)?.note??cluster();parenthetical=fixInText(parenthetical,byId[id],family,locator);// MLA puts a timestamp straight after the author or title, with no comma: \"(Parasite 1:14:05)\".\nif(locator?.label===\"timestamp\"&&styleFamily(style.id,style.engineId)===\"mla\")parenthetical=parenthetical.replace(/, (\\d{1,2}(?::\\d{2}){1,2})\\)$/,\" $1)\");let narrative=\"\";if(!isNote){let author=cluster({\"author-only\":true});// A title standing in for the author loses its italics in citeproc's author-only form.\nconst italic=parenthetical.match(/<i>([^<]+)<\\/i>/)?.[1];if(author&&italic&&!author.includes(\"<i>\")&&htmlToText(author)===htmlToText(italic))author=`<i>${italic}</i>`;const rest=cluster({\"suppress-author\":true});if(style.format===\"numeric\")narrative=author?`${author} ${parenthetical}`:parenthetical;else if(author&&rest&&htmlToText(rest)!==htmlToText(parenthetical))narrative=`${author} ${rest}`;else narrative=author||parenthetical;}const item=items.find(x=>x.id===id)?.csl;// MLA shortens a prompt standing in for a title to its first few words, in quotation marks, as in\n// its own AI example (\"Describe the theme\").\nconst prompt=plainText(String(item?.[\"ws-prompt\"]??\"\")).trim();if(item?.[\"ws-kind\"]===\"ai-image\"&&prompt&&styleFamily(style.id,style.engineId)===\"mla\"){const short=`“${escapeText(prompt.split(/\\s+/).slice(0,4).join(\" \").replace(/[,.;:]$/,\"\"))}”`;inText[id]={parenthetical:`(${short})`,narrative:short};continue;}// A quoted title standing in for the author loses its quotation marks in the author-only form.\nconst inner=parenthetical.match(/^\\(([“\"][\\s\\S]*)\\)$/)?.[1];if(!isNote&&inner&&htmlToText(narrative)===htmlToText(inner).replace(/[“”\"]/g,\"\"))narrative=inner;// A quoted title standing in for the author keeps its quotation marks in the narrative form too:\n// “Photosynthesis” (2026, …), not Photosynthesis (2026, …).\nconst q=!isNote?parenthetical.match(/^\\(([“‘])([^”’]+?),?([”’])/):null;if(q&&narrative.startsWith(q[2])&&/^( \\(|$)/.test(narrative.slice(q[2].length))&&!/^[“‘]/.test(narrative))narrative=`${q[1]}${q[2]}${q[3]}${narrative.slice(q[2].length)}`;narrative=fixInText(narrative,byId[id],family,locator);inText[id]=isNote?{parenthetical,narrative:parenthetical,note:parenthetical}:{parenthetical,narrative};}// A note style leaves some sources out of its bibliography (Chicago cites social media posts in notes\n// only): the list still shows them, as their note.\nif(bib){const listed=new Set(entries.map(e=>e.id));for(const id of ids){if(listed.has(id))continue;// A talk or slides have a bibliography entry of their own even when the style file prints none.\nconst own=chicagoOwn.get(id);const kind=byId[id]?.[\"ws-kind\"];const html=own&&(kind===\"lecture\"||kind===\"slides\")?own.bib:inText[id]?.parenthetical??\"\";if(html)entries.push({id,html:`<div class=\"csl-entry\">${html}</div>`,text:htmlToText(html)});}}// A note style without a bibliography: the list shows full notes.\nif(!bib&&!options.only){for(const id of ids){const html=inText[id]?.parenthetical??\"\";entries.push({id,html,text:htmlToText(html)});}}return{styleId,styleTitle:style.title,format:style.format,locale:lang,entries,inText,hangingIndent:Boolean(params.hangingindent),secondFieldAlign:Boolean(params[\"second-field-align\"]),lineSpacing:params.linespacing??1,heading:headingFor(styleId,style.format),isNote};}/** Building a citeproc engine is the slow part of formatting (over half a second on a mid-range phone), so\n *  engines are kept per style and language and reused with updateItems. Each reads its items from a store\n *  that formatList refills; formatting is synchronous once the files have loaded, so calls can't interleave. */const engines=new Map;function engineFor(CSL,style,lang,forceLang,locales){const key=`${style.id}|${lang}|${forceLang?1:0}`;let hit=engines.get(key);if(!hit){const store={};const sys={retrieveLocale:l=>locales[normalizeLocale(l)]??locales[\"en-US\"],retrieveItem:id=>store[id]};const engine=new CSL.Engine(sys,style.xml,lang,forceLang);engine.opt.development_extensions={...engine.opt.development_extensions??{},wrap_url_and_doi:false};hit={engine,store};engines.set(key,hit);if(engines.size>4)engines.delete(engines.keys().next().value);}return hit;}/** Starts downloading citeproc and a style ahead of time. Safe to call often. With `build`, the engine for\n *  that style is also made while the browser is idle, so the first real format doesn't pay for it. */function warmUp(styleId,build=false){loadCiteproc().catch(()=>undefined);loadStyle(styleId).catch(()=>undefined);loadLocale(\"en-US\").catch(()=>undefined);if(build&&typeof window!==\"undefined\"){const idle=window.requestIdleCallback;const run=()=>void formatList(styleId,[]).catch(()=>undefined);if(idle)idle(run,{timeout:3e3});else window.setTimeout(run,200);}}// ---- CiteStylePicker.tsx -----------------------------------------\n/**\n * CiteStylePicker: the citation style picker shared by the Citation\n * Generator and the Citation Checker. Popular styles first, recently used\n * ones above them, and a search over all 10,000+ styles in the CSL\n * repository (the index comes from lexi's /api/public/cite/styles, loaded\n * the first time the picker opens).\n */const PINNED_STYLES=[{id:\"apa\",label:\"APA 7th edition\"},{id:\"modern-language-association\",label:\"MLA 9th edition\"},{id:\"chicago-notes-bibliography\",label:\"Chicago 18th (notes and bibliography)\"},{id:\"chicago-author-date\",label:\"Chicago 18th (author-date)\"},{id:\"harvard-cite-them-right\",label:\"Harvard (Cite Them Right)\"},{id:\"ieee\",label:\"IEEE\"},{id:\"american-medical-association\",label:\"AMA 11th edition\"},{id:\"vancouver-nlm\",label:\"Vancouver\"},{id:\"american-sociological-association\",label:\"ASA 7th edition\"},{id:\"turabian-notes-bibliography\",label:\"Turabian 9th edition\"},{id:\"american-chemical-society\",label:\"ACS\"},{id:\"american-political-science-association\",label:\"APSA\"},{id:\"oscola\",label:\"OSCOLA 4th edition\"}];/** Styles with their own landing pages that aren't in the Popular list. */const EXTRA_STYLES=[{id:\"cse-citation-sequence\",label:\"CSE 9th edition\"},{id:\"bluebook-law-review\",label:\"Bluebook\"},{id:\"mhra-notes\",label:\"MHRA 4th edition\"}];const PINNED_LABEL=Object.fromEntries([...PINNED_STYLES,...EXTRA_STYLES].map(s=>[s.id,s.label]));let styleIndexPromise=null;function loadStyleIndex(api){if(!styleIndexPromise){styleIndexPromise=fetch(`${api}/styles`).then(r=>{if(!r.ok)throw new Error(\"styles\");return r.json();}).catch(e=>{styleIndexPromise=null;throw e;});}return styleIndexPromise;}function searchStyles(index,query,limit=60){const q=query.toLowerCase().trim();if(!q)return[];const words=q.split(/\\s+/);const scored=[];for(const[id,title]of index.styles){const t=title.toLowerCase();const aliases=index.aliases[id]??[];let score=0;if(aliases.some(a=>a===q))score=100;else if(aliases.some(a=>a.startsWith(q)))score=80;else if(t.startsWith(q))score=60;else if(words.every(w=>t.includes(w)||id.includes(w)))score=40-Math.min(20,t.length/10);if(score>0)scored.push({id,title,score:score+(PINNED_LABEL[id]?15:0)});}scored.sort((a,b)=>b.score-a.score||a.title.length-b.title.length);return scored.slice(0,limit);}/** A readable name for a style id we have no title for. */function prettyStyleId(id){return id.split(\"-\").map(w=>w.length<=4&&/^(apa|mla|ama|asa|acs|ieee|cse|nlm|apsa|mhra|bmj|aip|aps|sbl|uk|us)$/.test(w)?w.toUpperCase():w.charAt(0).toUpperCase()+w.slice(1)).join(\" \");}/* ------------------------------------------------------ style picker -- */function StylePicker(props){const{api,styleId,label,recent,onPick}=props;const[open,setOpen]=useState(false);const[query,setQuery]=useState(\"\");const[index,setIndex]=useState(null);const[loadError,setLoadError]=useState(false);const[active,setActive]=useState(0);const triggerRef=useRef(null);const popRef=useRef(null);const inputRef=useRef(null);const listId=useId();const close=useCallback(()=>{setOpen(false);setQuery(\"\");},[]);useDismiss(open,close,[triggerRef,popRef]);useEffect(()=>{if(!open)return;// Without scrolling: the popup may still be settling into place.\ninputRef.current?.focus({preventScroll:true});if(!index){loadStyleIndex(api).then(setIndex).catch(()=>setLoadError(true));}},[open]);const titleOf=useCallback(id=>PINNED_LABEL[id]??index?.styles.find(s=>s[0]===id)?.[1]??prettyStyleId(id),[index]);const rows=useMemo(()=>{const out=[];if(query.trim()){if(index)for(const s of searchStyles(index,query))out.push({id:s.id,title:PINNED_LABEL[s.id]??s.title});else{const q=query.toLowerCase();for(const s of PINNED_STYLES)if(s.label.toLowerCase().includes(q))out.push({id:s.id,title:s.label});}return out;}const recentOnly=recent.filter(id=>!PINNED_STYLES.some(p=>p.id===id)).slice(0,4);recentOnly.forEach((id,i)=>out.push({group:i===0?\"Recently used\":undefined,id,title:titleOf(id)}));PINNED_STYLES.forEach((s,i)=>out.push({group:i===0?\"Popular styles\":undefined,id:s.id,title:s.label}));return out;},[query,index,recent,titleOf]);useEffect(()=>setActive(0),[query]);const pick=row=>{onPick(row.id,row.title);close();triggerRef.current?.focus();};const onKeyDown=event=>{if(event.key===\"ArrowDown\"){event.preventDefault();setActive(a=>Math.min(rows.length-1,a+1));}else if(event.key===\"ArrowUp\"){event.preventDefault();setActive(a=>Math.max(0,a-1));}else if(event.key===\"Enter\"){event.preventDefault();if(rows[active])pick(rows[active]);}else if(event.key===\"Tab\"){close();}else if(event.key===\"Escape\"){event.preventDefault();close();triggerRef.current?.focus();}};// Scroll the list only: scrollIntoView would also scroll the page and push the search box off screen.\nuseEffect(()=>{if(!open)return;const list=document.getElementById(listId);const el=document.getElementById(`${listId}-o${active}`);if(!list||!el)return;const l=list.getBoundingClientRect();const e=el.getBoundingClientRect();if(e.top<l.top)list.scrollTop-=l.top-e.top;else if(e.bottom>l.bottom)list.scrollTop+=e.bottom-l.bottom;},[active,open]);// Open towards the side with more room, no taller than the room there.\nconst[place,setPlace]=useState(null);useEffect(()=>{if(!open||!triggerRef.current)return;const r=triggerRef.current.getBoundingClientRect();const above=r.top-16;const below=window.innerHeight-r.bottom-16;const down=below>=360||below>above;setPlace({down,max:Math.max(220,Math.min(480,(down?below:above)-8))});},[open]);// The popup may hang from a wider box than the trigger (on phones the checker anchors it to the whole row):\n// once it's placed, fit it to the room that is really there.\nuseEffect(()=>{const pop=popRef.current;if(!open||!place||!pop)return;const r=pop.getBoundingClientRect();const room=place.down?window.innerHeight-r.top-16:r.bottom-16;if(room<r.height)pop.style.maxHeight=`${Math.max(200,room)}px`;},[open,place]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"button\",{ref:triggerRef,type:\"button\",className:props.triggerClass??\"wsc-style-trigger\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":open,onClick:()=>setOpen(o=>!o),children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsc-label\",children:\"Citation style\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-style-value\",children:[/*#__PURE__*/_jsx(\"span\",{children:label}),/*#__PURE__*/_jsx(Icons.ChevronDown,{size:16,style:{color:T.text600}})]})]}),open?/*#__PURE__*/_jsxs(\"div\",{ref:popRef,className:`wst-pop wsc-style-pop${place?place.down?\" wsc-down\":\" wsc-up\":\"\"}`,style:place?{maxHeight:place.max}:undefined,children:[/*#__PURE__*/_jsxs(\"label\",{className:\"wsc-style-search\",children:[/*#__PURE__*/_jsx(Icons.Search,{size:16}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,value:query,onChange:e=>setQuery(e.target.value),onKeyDown:onKeyDown,placeholder:\"Find a style, like APA or Harvard\",\"aria-label\":\"Find a citation style\",role:\"combobox\",\"aria-expanded\":\"true\",\"aria-controls\":listId,\"aria-activedescendant\":rows[active]?`${listId}-o${active}`:undefined,autoComplete:\"off\",spellCheck:false})]}),/*#__PURE__*/_jsxs(\"ul\",{className:\"wsc-style-list\",role:\"listbox\",id:listId,\"aria-label\":\"Citation styles\",children:[rows.map((row,i)=>/*#__PURE__*/_jsxs(React.Fragment,{children:[row.group?/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-style-group\",children:row.group}):null,/*#__PURE__*/_jsxs(\"li\",{id:`${listId}-o${i}`,role:\"option\",\"aria-selected\":i===active,className:\"wsc-style-opt\",onMouseEnter:()=>setActive(i),onMouseDown:e=>e.preventDefault(),onClick:()=>pick(row),children:[/*#__PURE__*/_jsx(\"span\",{children:row.title}),row.id===styleId?/*#__PURE__*/_jsx(Icons.Check,{size:16,style:{color:T.blue}}):null]})]},`${row.id}-${i}`)),query.trim()&&!rows.length?/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-results-note\",children:index?\"No styles match that. Try a shorter name.\":loadError?\"The full style list didn't load. Popular styles are still here.\":\"Searching all 10,000+ styles...\"}):null,!query.trim()?/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-style-group\",style:{paddingBottom:8},children:\"Type to search all 10,000+ styles\"}):null]})]}):null]});}/** The picker's popup and list styles (each tool styles its own trigger). */const STYLE_PICKER_CSS=`\n.wsc-style-pop{left:0;top:calc(100% + 8px);width:min(400px,calc(100vw - 32px));padding:8px;display:flex;flex-direction:column;max-height:min(480px,70vh)}\n.wsc-style-search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:10px;background:${T.bg100};color:${T.text600};margin-bottom:6px;flex:none}\n.wsc-style-search input{flex:1;border:0;background:transparent;font-size:15px;min-width:0;color:${T.text}}\n.wst-root .wsc-style-search input:focus,.wst-root .wsc-style-search input:focus-visible{outline:none;box-shadow:none}\n.wsc-style-list{overflow:auto;list-style:none;margin:0;padding:0}\n.wsc-style-pop.wsc-down{top:calc(100% + 8px)!important;bottom:auto!important}\n.wsc-style-pop.wsc-up{bottom:calc(100% + 8px)!important;top:auto!important}\n.wsc-style-group{padding:10px 10px 4px;font-size:12px;color:${T.text600};font-variation-settings:\"wght\" 560;font-weight:560}\n.wsc-style-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:14px;line-height:1.35}\n.wsc-style-opt[aria-selected=\"true\"]{background:${T.bg100}}\n.wsc-style-opt .wsc-check{color:${T.blue};flex:none}\n`;// ---- SourceWebsite.ts --------------------------------------------\n/**\n * Website: a page on a website, or a whole website (not a news article or a blog post, which keep their own\n * CSL types). Used by /citation-generator/website, manual entry, Edit, and as the type an image page can\n * switch to.\n *\n * - A whole website (scope \"site\"): its name is the title. APA doesn't list a whole website in the\n *   reference list; the form gives the in-text wording instead (noEntry). Other styles format it normally.\n * - \"Last updated\" stands in for the date when the page has no publication date (APA 9.15, MLA 5.72).\n * - APA adds a retrieval date only for a page designed to change (the \"changes\" box), so Date accessed\n *   prints in APA only then. MLA prints it when there's no date.\n */const whole=v=>v.scope===\"site\";const WEBSITE_SOURCE={id:\"website\",label:\"Website\",cslType:\"webpage\",citeLabel:\"Cite website\",autofillLabel:\"Paste the link to the page\",owns:[\"title\",\"author\",\"container-title\",\"publisher\",\"issued\",\"URL\",\"accessed\",\"ws-scope\",\"ws-changes\"],fields:[{key:\"scope\",kind:\"segmented\",level:\"optional\",label:\"What are you citing?\",options:[{value:\"page\",label:\"A specific page\"},{value:\"site\",label:\"A whole website\"}],initial:()=>\"page\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Page title\",placeholder:\"Symptoms of COVID-19\",showIf:v=>!whole(v)},{key:\"site\",kind:\"text\",level:\"recommended\",requiredIf:whole,label:\"Website name\",placeholder:\"Centers for Disease Control and Prevention\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Authors\",nameKinds:[\"person\",\"org\"],help:\"No author? Leave it blank. If an organization wrote it, add the organization.\",showIf:v=>!whole(v)},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date published\",showIf:v=>!whole(v)},{key:\"updated\",kind:\"date\",level:\"optional\",label:\"Last updated\",help:\"Used when the page shows no publication date.\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"publisher\",kind:\"text\",level:\"optional\",label:\"Publisher\",placeholder:\"U.S. Department of Health and Human Services\",help:\"Only when it's different from the website name.\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Paragraph number, for a quote\",placeholder:\"4\",locator:\"paragraph\",half:true,showIf:v=>!whole(v)},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue,help:\"MLA adds it when there's no date. APA only for a page that changes over time.\"},{key:\"changes\",kind:\"checkbox\",level:\"optional\",label:\"This page is updated over time\",help:\"Like a live dashboard or a page with no archive. APA then adds a retrieval date.\"},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the page and say how you used it.\"}],toCsl(v){const site=textOf(v,\"site\");const date=dateToCsl(dateOf(v,\"date\"))??dateToCsl(dateOf(v,\"updated\"));if(whole(v)){return compactCsl({type:\"webpage\",\"ws-scope\":\"site\",title:site,publisher:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"updated\")),URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\")),\"ws-changes\":v.changes===true||undefined});}return compactCsl({type:\"webpage\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":site||undefined,publisher:textOf(v,\"publisher\")||undefined,issued:date,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\")),\"ws-changes\":v.changes===true||undefined});},fromCsl(csl){if(csl[\"ws-scope\"]===\"site\"){return{scope:\"site\",site:String(csl.title??\"\"),publisher:String(csl.publisher??\"\"),updated:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed),changes:csl[\"ws-changes\"]===true};}return{scope:\"page\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),site:String(csl[\"container-title\"]??\"\"),publisher:csl[\"container-title\"]?String(csl.publisher??\"\"):\"\",date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed),changes:csl[\"ws-changes\"]===true};},hints(v,csl,ctx){if(whole(v))return[];const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);if(!csl.author?.length&&!csl.issued&&isFilled(v.title))hints.push({tone:\"info\",text:\"This page has no author or date. Your instructor may prefer a source that has both.\"});return hints;},noEntry(v,ctx){if(!whole(v)||ctx.family!==\"apa\")return null;const site=textOf(v,\"site\")||\"the website\";const url=textOf(v,\"url\");return{title:\"APA doesn't list a whole website in the reference list\",text:\"Mention the website in your sentence and give its address in parentheses. There's no reference entry and no in-text citation beyond that.\",copy:url?`the ${site} website (${url})`:`the ${site} website`};},examples:[]};// ---- SourceBook.ts -----------------------------------------------\n/**\n * Book: a whole book, textbook or ebook. Used by /citation-generator/book, manual entry, Edit, and figures\n * taken from a book.\n *\n * - Creators carry a role: author, editor or translator (CSL author, editor, translator). A book with\n *   editors and no author is an edited book: every style puts the editors first.\n * - Two publishers are typed \"A; B\": APA keeps the semicolon, MLA prints \"A / B\" (CitePrep.mlaPublisher).\n * - The original publication year (classics, translations) gives APA's \"(Original work published 1866)\"\n *   and \"1866/1993\" in the text.\n * - The ISBN is only for lookup: no style prints it (CSL styles for books ignore it).\n * - Format: an ebook read online gets its URL; APA doesn't name the ebook format or platform.\n */const BOOK_ROLES=[{value:\"author\",label:\"Author\"},{value:\"editor\",label:\"Editor\"},{value:\"translator\",label:\"Translator\"}];const BOOK_SOURCE={id:\"book\",label:\"Book\",cslType:\"book\",citeLabel:\"Cite book\",search:\"book\",autofillLabel:\"Search by title, author or ISBN\",owns:[\"title\",\"author\",\"editor\",\"translator\",\"issued\",\"original-date\",\"publisher\",\"edition\",\"volume\",\"DOI\",\"URL\",\"ISBN\",\"medium\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Book title\",placeholder:\"Thinking, fast and slow\"},{key:\"subtitle\",kind:\"text\",level:\"optional\",label:\"Subtitle\",placeholder:\"Unlocking the power of sleep and dreams\",quiet:true},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Authors, editors and translators\",nameKinds:[\"person\",\"org\"],roles:BOOK_ROLES},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year published\"},{key:\"publisher\",kind:\"text\",level:\"recommended\",label:\"Publisher\",placeholder:\"Farrar, Straus and Giroux\",help:\"Two publishers? Separate them with a semicolon.\"},{key:\"edition\",kind:\"text\",level:\"optional\",label:\"Edition\",placeholder:\"2nd, or Revised\",half:true},{key:\"volume\",kind:\"text\",level:\"optional\",label:\"Volume\",placeholder:\"3\",half:true},{key:\"originalDate\",kind:\"date\",level:\"optional\",label:\"Original publication year\",help:\"For classics and translations, like 1813 for Pride and Prejudice.\"},{key:\"format\",kind:\"select\",level:\"optional\",label:\"Format\",options:[{value:\"print\",label:\"Print\"},{value:\"ebook\",label:\"E-book or Kindle\"},{value:\"online\",label:\"Online (Google Books, a library, a publisher's site)\"}]},{key:\"doi\",kind:\"text\",level:\"optional\",label:\"DOI\",placeholder:\"10.1000/xyz123\",half:true},{key:\"isbn\",kind:\"text\",level:\"optional\",label:\"ISBN\",placeholder:\"9780262033848\",help:\"Only used to look the book up. It doesn't appear in the citation.\",half:true},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\",help:\"Only for a book read online without a DOI.\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Page number, for a quote\",placeholder:\"45\",locator:\"page\",half:true},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the book and say how you used it.\"}],toCsl(v){const roles=namesByRole(namesOf(v,\"creators\"));const title=textOf(v,\"title\");const subtitle=textOf(v,\"subtitle\");return compactCsl({type:\"book\",title:subtitle&&!title.includes(\":\")?`${title}: ${subtitle}`:title,author:roles.author,editor:roles.editor,translator:roles.translator,issued:dateToCsl(dateOf(v,\"date\")),\"original-date\":dateToCsl(dateOf(v,\"originalDate\")),publisher:textOf(v,\"publisher\").replace(/\\s*;\\s*/g,\"; \")||undefined,edition:textOf(v,\"edition\").replace(/(st|nd|rd|th)?\\s*(ed\\.?|edition)?$/i,\"\").trim()||undefined,volume:textOf(v,\"volume\")||undefined,DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,ISBN:textOf(v,\"isbn\").replace(/[^0-9Xx]/g,\"\")||undefined,URL:textOf(v,\"url\")||undefined});},fromCsl(csl){return{title:String(csl.title??\"\"),creators:[...namesFromCsl(csl.author,\"author\"),...namesFromCsl(csl.editor,\"editor\"),...namesFromCsl(csl.translator,\"translator\")],date:dateFromCsl(csl.issued),originalDate:dateFromCsl(csl[\"original-date\"]),publisher:String(csl.publisher??\"\"),edition:String(csl.edition??\"\"),volume:String(csl.volume??\"\"),doi:String(csl.DOI??\"\"),isbn:String(csl.ISBN??\"\").split(/[\\s,]+/)[0]??\"\",url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);if(v.format===\"ebook\"&&(ctx.family===\"apa\"||ctx.family===\"mla\"))hints.push({tone:\"info\",text:\"Kindle location numbers change with the device. For a quote, give the chapter or section instead of a location number.\"});return hints;},examples:[]};// ---- SourceArticle.ts --------------------------------------------\n/**\n * Journal article: an article in a scholarly journal. Used by /citation-generator/journal-article, manual\n * entry, Edit, and figures taken from an article.\n *\n * - An article number (eLocator, like e0123456) has no page range: it goes in CSL number, which APA prints\n *   as \"Article e0123456\" and CitePrep.prepareArticle places for MLA and Harvard.\n * - In press: CSL status \"in press\", no date (APA \"(in press)\", MLA \"forthcoming\").\n * - Database: only printed by styles that want it (APA doesn't, for common databases).\n */const inPress=v=>v.status===\"in-press\";const preprint=v=>v.status===\"preprint\";const ARTICLE_SOURCE={id:\"article\",label:\"Journal article\",cslType:\"article-journal\",citeLabel:\"Cite article\",search:\"article\",autofillLabel:\"Paste a DOI, PMID, arXiv ID or article title\",owns:[\"title\",\"author\",\"container-title\",\"publisher\",\"issued\",\"volume\",\"issue\",\"page\",\"number\",\"status\",\"DOI\",\"URL\",\"archive\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Article title\",placeholder:\"Deep learning\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Authors\",nameKinds:[\"person\",\"org\"],help:\"Pasting a list of names works: one per line, or separated by semicolons.\"},{key:\"journal\",kind:\"text\",level:\"required\",label:v=>preprint(v)?\"Preprint server\":\"Journal name\",placeholder:v=>preprint(v)?\"arXiv\":\"Nature\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year published\",showIf:v=>!inPress(v)},{key:\"volume\",kind:\"text\",level:\"recommended\",label:\"Volume\",placeholder:\"521\",half:true},{key:\"issue\",kind:\"text\",level:\"recommended\",label:\"Issue\",placeholder:\"7553\",half:true},{key:\"pages\",kind:\"text\",level:\"recommended\",label:\"Pages\",placeholder:\"436-444\",half:true},{key:\"articleNumber\",kind:\"text\",level:\"optional\",label:v=>preprint(v)?\"Preprint ID\":\"Article number\",placeholder:v=>preprint(v)?\"arXiv:1706.03762\":\"e0123456\",help:v=>preprint(v)?undefined:\"For articles numbered instead of paged, like PLOS ONE's.\",half:true},{key:\"doi\",kind:\"text\",level:\"recommended\",label:\"DOI\",placeholder:\"10.1038/nature14539\"},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\",help:\"Only when the article has no DOI.\"},{key:\"status\",kind:\"select\",level:\"optional\",label:\"Publication status\",options:[{value:\"published\",label:\"Published\"},{value:\"in-press\",label:\"In press (accepted, not yet published)\"},{value:\"preprint\",label:\"Preprint (not yet peer reviewed)\"}]},{key:\"database\",kind:\"text\",level:\"optional\",label:\"Database\",placeholder:\"JSTOR\",help:\"APA leaves out common databases like JSTOR. MLA lists it after the pages.\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Page number, for a quote\",placeholder:\"438\",locator:\"page\",half:true},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the article and say how you used it.\"}],toCsl(v){let pages=textOf(v,\"pages\").replace(/\\s*[-–—]\\s*/g,\"-\");// \"e0123456\" in the pages field is an article number (eLocator), as PLOS and many databases give it.\nconst elocator=/^e\\d+$/i.test(pages)?pages:\"\";if(elocator)pages=\"\";// A preprint (APA 10.8): \"Title (arXiv:1706.03762). arXiv. DOI\", the server as publisher.\nif(preprint(v)){return compactCsl({type:\"article\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),publisher:textOf(v,\"journal\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),number:textOf(v,\"articleNumber\")||undefined,DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:textOf(v,\"url\")||undefined});}return compactCsl({type:\"article-journal\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"journal\")||undefined,issued:inPress(v)?undefined:dateToCsl(dateOf(v,\"date\")),status:inPress(v)?\"in press\":undefined,volume:textOf(v,\"volume\")||undefined,issue:textOf(v,\"issue\")||undefined,page:pages||undefined,number:pages?undefined:textOf(v,\"articleNumber\").replace(/^article\\s*/i,\"\")||elocator||undefined,DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:textOf(v,\"url\")||undefined,archive:textOf(v,\"database\")||undefined});},fromCsl(csl){if(csl.type===\"article\"){return{status:\"preprint\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),journal:String(csl.publisher??csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),articleNumber:String(csl.number??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.DOI?\"\":csl.URL??\"\")};}return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),journal:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),status:/in press/i.test(String(csl.status??\"\"))?\"in-press\":\"\",volume:String(csl.volume??\"\"),issue:String(csl.issue??\"\"),pages:String(csl.page??\"\"),articleNumber:csl.page?\"\":String(csl.number??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.URL??\"\"),database:String(csl.archive??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{dateKey:inPress(v)?\"status\":\"date\"});const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);if(!textOf(v,\"doi\")&&!textOf(v,\"url\")&&ctx.family===\"apa\")hints.push({tone:\"info\",text:\"No DOI. APA adds one whenever an article has it, as a https://doi.org link.\"});if(preprint(v))hints.push({tone:\"info\",text:\"A preprint hasn't been through peer review yet. If it has since been published, cite the published version.\"});if(ctx.family===\"apa\"&&(csl.author?.length??0)>20)hints.push({tone:\"info\",text:\"More than 20 authors: APA lists the first 19, an ellipsis, then the last.\"});return hints;},examples:[]};// ---- SourceImage.ts ----------------------------------------------\n/**\n * Image: a photo, illustration, chart or other picture found online.\n * Page: /citation-generator/image. Also in the main generator's manual entry.\n *\n * CSL: type \"graphic\", site in container-title, image type in genre. An untitled\n * image has no title and its description in genre. CiteEngine's prepareImage\n * turns that one shape into what each style wants.\n */const IMAGE_TYPES=[\"Photograph\",\"Illustration\",\"Drawing\",\"Painting\",\"Infographic\",\"Chart or graph\",\"Map\",\"Diagram\",\"Screenshot\",\"Meme\",\"Digital image\",\"AI-generated image\"];/** What goes in the brackets (\"[Photograph]\") for each image type. */const IMAGE_GENRE={\"Chart or graph\":\"Chart\"};const IMAGE_SOURCE={id:\"image\",label:\"Image\",cslType:\"graphic\",citeLabel:\"Cite image\",figure:true,autofillLabel:\"Paste the link to the page where you found the image\",owns:[\"title\",\"genre\",\"medium\",\"author\",\"container-title\",\"publisher\",\"issued\",\"URL\",\"accessed\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:v=>v.noTitle?\"Short description\":\"Image title\",placeholder:v=>v.noTitle?\"Photograph of a red fox in snow\":\"The Earth seen from Apollo 17\",help:v=>v.noTitle?\"Say what the image shows. Each style formats a description its own way.\":undefined,toggle:{key:\"noTitle\",label:\"No title? Describe the image instead\"}},{key:\"imageType\",kind:\"select\",level:\"optional\",label:\"Image type\",options:IMAGE_TYPES.map(t=>({value:t,label:t})),help:\"Some styles show this after the title, like [Photograph] in APA.\",// An untitled image is described instead, and the description says what kind of image it is.\nshowIf:v=>!v.noTitle},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Creators\",nameKinds:[\"person\",\"org\",\"username\"]},{key:\"site\",kind:\"text\",level:\"recommended\",label:\"Website or platform name\",placeholder:\"Unsplash, Wikimedia Commons, Flickr or Getty Images\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date published or uploaded\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue,help:\"Used by styles that ask for it, and by MLA when there's no date.\"},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the image and say how you used it.\"}],toCsl(v){const text=textOf(v,\"title\");const kind=textOf(v,\"imageType\");const untitled=Boolean(v.noTitle);return compactCsl({type:\"graphic\",title:untitled?undefined:text,// Untitled: the description takes the place of the title, in the element styles put in brackets.\ngenre:untitled?capitalFirst(text):kind?IMAGE_GENRE[kind]??kind:undefined,author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"site\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const genre=String(csl.genre??csl.medium??\"\").trim();const untitled=!String(csl.title??\"\").trim()&&Boolean(genre);const kind=IMAGE_TYPES.find(t=>(IMAGE_GENRE[t]??t).toLowerCase()===genre.toLowerCase());return{title:untitled?genre:String(csl.title??\"\"),noTitle:untitled,imageType:untitled?\"\":kind??\"\",creators:namesFromCsl(csl.author),site:String(csl[\"container-title\"]??csl.publisher??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},hints(v,csl,ctx){const untitled=Boolean(v.noTitle);const hints=commonHints(v,csl,ctx,{titleWord:untitled?\"description\":\"title\"});const site=textOf(v,\"site\").toLowerCase();const creators=namesOf(v,\"creators\");const orgIsSite=site&&creators.length===1&&creators[0].kind===\"org\"&&(creators[0].name??\"\").trim().toLowerCase()===site;if(orgIsSite&&ctx.family===\"apa\")hints.push({tone:\"info\",text:\"The site name is the same as the creator, so APA leaves it out.\"});if(orgIsSite&&ctx.family===\"mla\")hints.push({tone:\"info\",text:\"The creator is also the website, so MLA starts with the title and names the site once.\"});if(untitled&&textOf(v,\"title\")){if(ctx.family===\"apa\")hints.push({tone:\"info\",text:\"APA puts a description in square brackets, not italics.\"});if(ctx.family===\"mla\")hints.push({tone:\"info\",text:\"MLA uses a description as plain text, not italic or in quotation marks.\"});}if(!untitled){const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);}if(!textOf(v,\"imageType\")&&!untitled&&ctx.family===\"apa\")hints.push({tone:\"info\",text:\"No image type. APA will show [Image] after the title.\"});return hints;},examples:[{label:\"A NASA photo on Wikimedia Commons\",values:{title:\"The Earth seen from Apollo 17\",imageType:\"Photograph\",creators:[{kind:\"org\",name:\"NASA\",role:\"photographer\"}],site:\"Wikimedia Commons\",date:{year:\"1972\",month:\"12\",day:\"7\"},url:\"https://commons.wikimedia.org/wiki/File:The_Earth_seen_from_Apollo_17.jpg\",license:\"Public domain\"}},{label:\"A Creative Commons photo on Flickr\",values:{title:\"Lava\",imageType:\"Photograph\",creators:[{kind:\"org\",name:\"Denali National Park and Preserve\",role:\"photographer\"}],site:\"Flickr\",date:{year:\"2013\"},url:\"https://www.flickr.com/photos/denalinps/8639280606/\",license:\"CC BY\",licenseVersion:\"2.0\"}}]};// ---- SourceArtwork.ts --------------------------------------------\n/**\n * Artwork: a painting, sculpture, photograph or other work held by a museum or gallery, usually seen on\n * its website. CSL: \"graphic\" marked ws-kind \"artwork\"; the medium in genre, the museum in\n * container-title and its city in publisher-place. CiteEngine gives MLA the date as the work's own date\n * (\"The Train. 1975. MOMA, URL.\") and APA the museum and city as the source.\n *//** A year, \"c. 1665\" (circa) or a span of years (1885 to 1886), as CSL-JSON writes them. */function artworkDate(v){const start=dateToCsl(dateOf(v,\"date\"));if(!start)return undefined;const end=Number(textOf(v,\"endYear\"));const first=Number(start[\"date-parts\"]?.[0]?.[0]);const out=end>first&&end<1e4?{\"date-parts\":[[first],[end]]}:start;return v.circa?{...out,circa:true}:out;}const ARTWORK_SOURCE={id:\"artwork\",label:\"Artwork\",cslType:\"graphic\",citeLabel:\"Cite artwork\",figure:true,search:\"artwork\",autofillLabel:\"Search for an artwork, or paste a museum link\",owns:[\"title\",\"genre\",\"medium\",\"author\",\"container-title\",\"publisher\",\"publisher-place\",\"issued\",\"original-date\",\"URL\",\"accessed\",\"dimensions\",\"ws-kind\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:v=>v.noTitle?\"Short description\":\"Title of the artwork\",placeholder:v=>v.noTitle?\"Carved wooden mask\":\"The starry night\",toggle:{key:\"noTitle\",label:\"No title? Describe the artwork instead\"}},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Artist\",nameKinds:[\"person\",\"org\"],help:\"Unknown artist? Leave it blank. A workshop counts too: add it as an organization, like Workshop of Rembrandt.\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year created\",toggle:{key:\"circa\",label:\"Approximate (c.)\"}},{key:\"endYear\",kind:\"text\",level:\"optional\",label:\"Year finished\",placeholder:\"1886\",help:\"For a work made over several years, like 1885 to 1886.\",half:true},{key:\"dimensions\",kind:\"text\",level:\"optional\",label:\"Dimensions\",placeholder:\"73.7 \\xd7 92.1 cm\",help:\"Chicago includes them.\",half:true},{key:\"medium\",kind:\"text\",level:\"recommended\",label:\"Medium\",placeholder:\"Painting, or Oil on canvas\",help:\"APA puts this in square brackets, like [Painting].\"},{key:\"museum\",kind:\"text\",level:\"recommended\",label:\"Museum or collection\",placeholder:\"The Museum of Modern Art\"},{key:\"place\",kind:\"text\",level:\"recommended\",label:\"City and country\",placeholder:\"New York, NY, United States\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const text=textOf(v,\"title\");const untitled=Boolean(v.noTitle);return compactCsl({type:\"graphic\",\"ws-kind\":\"artwork\",title:untitled?undefined:text,genre:untitled?capitalFirst(text):capitalFirst(textOf(v,\"medium\"))||undefined,author:namesToCsl(namesOf(v,\"creators\")),issued:artworkDate(v),dimensions:textOf(v,\"dimensions\")||undefined,\"container-title\":textOf(v,\"museum\")||undefined,\"publisher-place\":textOf(v,\"place\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const untitled=!String(csl.title??\"\").trim()&&Boolean(csl.genre);return{title:untitled?String(csl.genre??\"\"):String(csl.title??\"\"),noTitle:untitled,medium:untitled?\"\":String(csl.genre??csl.medium??\"\"),creators:namesFromCsl(csl.author),date:dateFromCsl(csl.issued??csl[\"original-date\"]),circa:Boolean((csl.issued??csl[\"original-date\"])?.circa),endYear:String((csl.issued??csl[\"original-date\"])?.[\"date-parts\"]?.[1]?.[0]??\"\"),dimensions:String(csl.dimensions??\"\"),museum:String(csl[\"container-title\"]??csl.publisher??\"\"),place:String(csl[\"publisher-place\"]??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:v.noTitle?\"description\":\"title\"});if(!v.noTitle){const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);}if(ctx.family===\"apa\"&&!textOf(v,\"medium\")&&!v.noTitle)hints.push({tone:\"info\",text:\"No medium. APA always describes an artwork in square brackets, so it will show [Artwork].\"});return hints;},examples:[{label:\"The Starry Night at MoMA\",values:{title:\"The starry night\",creators:[{kind:\"person\",given:\"Vincent\",family:\"van Gogh\",role:\"artist\"}],date:{year:\"1889\"},medium:\"Painting\",museum:\"The Museum of Modern Art\",place:\"New York, NY, United States\",url:\"https://www.moma.org/learn/moma_learning/vincent-van-gogh-the-starry-night-1889/\",license:\"Public domain\"}}]};// ---- SourceSocial.ts ---------------------------------------------\n/**\n * Social media post: a post on X, Instagram, TikTok, Facebook, LinkedIn, Threads or Bluesky, with or\n * without an image (the image page reaches it for an image found in a post). CSL \"post\" marked ws-kind\n * \"social\": the post text as title (APA uses its first 20 words: CitePrep), the platform in\n * container-title, the post type in genre (APA \"[Post]\", \"[Photograph]\", \"[Video]\"), an attached image or\n * video in ws-attached (APA \"[Image attached] [Post]\").\n */const SOCIAL_PLATFORMS=[\"X\",\"Instagram\",\"TikTok\",\"Facebook\",\"LinkedIn\",\"Threads\",\"Bluesky\",\"Reddit\",\"Pinterest\",\"YouTube\"];/** What the post is, as APA describes it in brackets. The image types follow, for a post that is an image. */const POST_TYPES=[\"Post\",\"Photograph\",\"Video\",\"Status update\",\"Story\",\"Thread\"];const TEXT_POSTS=new Set([\"Post\",\"Status update\",\"Thread\",\"\"]);const IMAGE_POSTS=new Set([...IMAGE_TYPES,\"Photograph\",\"Video\",\"Story\"]);const SOCIAL_SOURCE={id:\"social\",label:\"Social media post\",cslType:\"post\",citeLabel:\"Cite post\",figure:true,// A figure caption only for a post that is an image or video.\nfigureIf:v=>IMAGE_POSTS.has(textOf(v,\"imageType\")),autofillLabel:\"Paste the link to the post\",owns:[\"title\",\"genre\",\"author\",\"container-title\",\"issued\",\"URL\",\"accessed\",\"ws-kind\",\"ws-attached\"],fields:[{key:\"title\",kind:\"textarea\",level:\"required\",label:\"Post text\",placeholder:\"This is the sharpest image ever taken of the early universe\",help:\"Copy the words exactly, emojis and hashtags included. No text? Describe the post briefly.\"},{key:\"site\",kind:\"text\",level:\"required\",label:\"Platform\",placeholder:\"X\",suggestions:SOCIAL_PLATFORMS,half:true},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Account\",nameKinds:[\"username\",\"person\",\"org\"],help:\"Add the handle (like @NASA), and the name the account shows.\"},{key:\"imageType\",kind:\"select\",level:\"recommended\",label:\"Post type\",options:[...POST_TYPES,...IMAGE_TYPES.filter(t=>!POST_TYPES.includes(t))].map(t=>({value:t,label:t})),help:\"APA puts it in brackets, like [Post] on X, [Photograph] on Instagram or [Status update] on Facebook.\",half:true},{key:\"attached\",kind:\"select\",level:\"optional\",label:\"The post includes\",options:[{value:\"\",label:\"Text only\"},{value:\"image\",label:\"An image\"},{value:\"video\",label:\"A video\"}],help:\"APA adds [Image attached] or [Video attached].\",half:true,showIf:v=>TEXT_POSTS.has(textOf(v,\"imageType\"))},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date posted\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const type=textOf(v,\"imageType\");const attached=TEXT_POSTS.has(type)?textOf(v,\"attached\"):\"\";return compactCsl({type:\"post\",\"ws-kind\":\"social\",title:textOf(v,\"title\").replace(/\\s+/g,\" \"),genre:type===\"Chart or graph\"?\"Chart\":type||undefined,\"ws-attached\":attached===\"image\"||attached===\"video\"?attached:undefined,author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"site\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const genre=String(csl.genre??\"\");const attached=String(csl[\"ws-attached\"]??\"\");return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),imageType:genre===\"Chart\"?\"Chart or graph\":POST_TYPES.includes(genre)||IMAGE_TYPES.includes(genre)?genre:\"\",attached:attached===\"image\"||attached===\"video\"?attached:\"\",site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A TikTok, Instagram or X video comes back as a video: on this page it's a post of type Video.\nconst platform=String(csl[\"container-title\"]??\"\");if(csl.type!==\"motion_picture\"||!SOCIAL_PLATFORMS.includes(platform)||platform===\"YouTube\")return null;const channel=String(csl[\"ws-channel\"]??csl.author?.[0]?.literal??\"\");return{title:String(csl.title??\"\"),site:platform,imageType:\"Video\",creators:channel?namesFromCsl([{literal:channel.startsWith(\"@\")?channel:`${channel}`}]):[],date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:\"post text\"});const words=textOf(v,\"title\").split(/\\s+/).filter(Boolean).length;if(ctx.family===\"apa\"&&words>20)hints.push({tone:\"info\",text:\"APA uses the first 20 words of a post as its title, so the preview shortens it. Your full text is kept for other styles.\"});if(/^twitter$/i.test(textOf(v,\"site\")))hints.push({tone:\"warn\",text:\"APA and MLA now name the platform X, even for posts from before the name change.\",fix:{label:\"Use X\",key:\"site\",value:\"X\"}});return hints;},examples:[]};// ---- SourceAiImage.ts --------------------------------------------\n/**\n * AI-generated image: made with DALL-E, Midjourney, Gemini and the like. CSL \"graphic\" marked ws-kind\n * \"ai-image\": the company as author, the tool in container-title, its version, the prompt in ws-prompt,\n * and ws-shared when the URL is a share link rather than the tool's own site.\n *\n * Each style credits AI differently, so CiteEngine reshapes it per style:\n * - APA (AI references page, 2026, and \"Citing generative AI\" blog, 2025): with a share link, the chat:\n *   \"OpenAI. (2024, September 23). Title [AI-generated image]. DALL-E 3. URL\". Without one, the tool:\n *   \"OpenAI. (2024). DALL-E 3 [Image generator]. URL\". The prompt goes in the figure note, not the reference.\n * - MLA (style.mla.org, \"Citing Generative AI: Updated and Revised\", 2025): the tool is never the author;\n *   \"\"Prompt\" prompt. DALL-E, version 3, OpenAI, 23 Sept. 2024, URL.\"\n *//** Well-known tools: the company that makes each, and its own web address for when there's no share link. */const AI_TOOLS=[{match:/^dall[\\s·-]?e/i,name:\"DALL-E\",company:\"OpenAI\",url:\"https://openai.com/index/dall-e-3/\"},{match:/^chat\\s*gpt/i,name:\"ChatGPT\",company:\"OpenAI\",url:\"https://chatgpt.com\"},{match:/^midjourney/i,name:\"Midjourney\",company:\"Midjourney\",url:\"https://www.midjourney.com\"},{match:/^gemini/i,name:\"Gemini\",company:\"Google\",url:\"https://gemini.google.com\"},{match:/^(adobe\\s+)?firefly/i,name:\"Adobe Firefly\",company:\"Adobe\",url:\"https://firefly.adobe.com\"},{match:/^(microsoft\\s+)?(copilot|designer)/i,name:\"Microsoft Copilot\",company:\"Microsoft\",url:\"https://copilot.microsoft.com\"},{match:/^stable\\s*diffusion/i,name:\"Stable Diffusion\",company:\"Stability AI\",url:\"https://stability.ai\"},{match:/^grok/i,name:\"Grok\",company:\"xAI\",url:\"https://grok.com\"},{match:/^ideogram/i,name:\"Ideogram\",company:\"Ideogram\",url:\"https://ideogram.ai\"}];function knownTool(tool){return AI_TOOLS.find(t=>t.match.test(tool.trim()));}const AI_IMAGE_SOURCE={id:\"ai-image\",label:\"AI-generated image\",cslType:\"graphic\",citeLabel:\"Cite AI image\",figure:true,owns:[\"title\",\"genre\",\"author\",\"container-title\",\"version\",\"issued\",\"URL\",\"ws-kind\",\"ws-prompt\",\"ws-shared\"],fields:[{key:\"tool\",kind:\"text\",level:\"required\",label:\"AI tool\",placeholder:\"DALL-E, Midjourney or Gemini\",suggestions:AI_TOOLS.map(t=>t.name),half:true},{key:\"version\",kind:\"text\",level:\"recommended\",label:\"Model or version\",placeholder:\"3\",half:true},{key:\"company\",kind:\"text\",level:\"recommended\",label:\"Company\",placeholder:\"OpenAI\",help:\"We fill this in for well-known tools.\"},{key:\"prompt\",kind:\"textarea\",level:\"recommended\",label:\"Prompt\",placeholder:\"Create an expressionist-style image of two people standing on a beach looking at the ocean\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date created\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"Share link\",placeholder:\"https://chatgpt.com/share/...\",help:\"If the tool lets you share the chat or image. Without one, we use the tool's own website.\"},{key:\"title\",kind:\"text\",level:\"optional\",label:\"Short description\",placeholder:\"Two people on a beach, expressionist style\",help:\"APA uses this as the title when you have a share link.\"},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const tool=textOf(v,\"tool\");const known=knownTool(tool);const share=textOf(v,\"url\");const company=textOf(v,\"company\")||known?.company||\"\";return compactCsl({type:\"graphic\",\"ws-kind\":\"ai-image\",title:textOf(v,\"title\")||undefined,genre:\"AI-generated image\",author:company?[{literal:company}]:undefined,\"container-title\":tool||undefined,version:textOf(v,\"version\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:share||known?.url||undefined,\"ws-prompt\":textOf(v,\"prompt\").replace(/\\s+/g,\" \")||undefined,\"ws-shared\":share?true:undefined});},fromCsl(csl){const tool=String(csl[\"container-title\"]??\"\");return{tool,version:String(csl.version??\"\"),company:csl.author?.[0]?.literal??\"\",prompt:String(csl[\"ws-prompt\"]??\"\"),date:dateFromCsl(csl.issued),url:csl[\"ws-shared\"]?String(csl.URL??\"\"):\"\",title:String(csl.title??\"\")};},hints(v,csl,ctx){const hints=[];const shared=Boolean(textOf(v,\"url\"));if(!textOf(v,\"company\")&&!knownTool(textOf(v,\"tool\"))&&textOf(v,\"tool\"))hints.push({tone:\"warn\",text:\"Add the company that makes this tool. Styles credit it instead of the tool.\"});if(!csl.issued)hints.push({tone:\"info\",text:\"Add the date you made the image. Styles date AI images by when they were created.\"});if(ctx.family===\"apa\"){hints.push({tone:\"info\",text:shared?\"With a share link, APA cites the chat itself, dated to the day.\":\"No share link, so APA cites the tool in general, with the year.\"});if(shared&&!textOf(v,\"title\"))hints.push({tone:\"info\",text:\"Add a short description. APA uses it as the title, and uses the prompt until you do.\"});}if(ctx.family===\"mla\")hints.push({tone:\"info\",text:textOf(v,\"prompt\")?\"MLA doesn't treat the AI tool as an author. It describes the prompt instead.\":\"Add the prompt. MLA uses it to describe the image.\"});return hints;},examples:[{label:\"MLA's DALL-E example\",values:{tool:\"DALL-E\",version:\"3\",company:\"OpenAI\",prompt:\"Create an expressionist-style image of two people standing on a beach looking at the ocean\",date:{year:\"2024\",month:\"9\",day:\"23\"},url:\"https://chatgpt.com/share/66f1c3a3-3f90-8000-9750-82c57c4a6592\",title:\"Two people on a beach, expressionist style\"}}]};// ---- SourceOwnPhoto.ts -------------------------------------------\n/**\n * A photo (or drawing) the student made themselves. No style needs a reference entry for it, only a\n * caption, so the form copies the caption instead of adding to the list. Reached from \"I took it myself\".\n */const OWN_PHOTO_SOURCE={id:\"own-photo\",label:\"My own photo\",cslType:\"graphic\",citeLabel:\"Copy caption\",hidden:true,captionOnly:true,figure:true,owns:[\"title\",\"genre\",\"ws-kind\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"What it shows\",placeholder:\"The Oculus, New York City\"},{key:\"imageType\",kind:\"select\",level:\"recommended\",label:\"Image type\",options:IMAGE_TYPES.filter(t=>t!==\"AI-generated image\").map(t=>({value:t,label:t})),initial:()=>\"Photograph\"}],toCsl(v){return compactCsl({type:\"graphic\",\"ws-kind\":\"own-photo\",title:textOf(v,\"title\"),genre:textOf(v,\"imageType\")||\"Photograph\"});},fromCsl(csl){return{title:String(csl.title??\"\"),imageType:String(csl.genre??\"Photograph\")};},examples:[]};// ---- SourceOther.ts ----------------------------------------------\n/**\n * Any other source: used only to edit a saved citation whose type has no form of its own yet (a book\n * chapter, report, video, news article...). It edits the common fields and keeps the item's type and\n * every other detail it had.\n */const OTHER_SOURCE={id:\"other\",label:\"Other source\",cslType:\"\",citeLabel:\"Save\",owns:[\"title\",\"author\",\"container-title\",\"publisher\",\"issued\",\"volume\",\"issue\",\"page\",\"DOI\",\"URL\",\"accessed\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Title\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Authors\",nameKinds:[\"person\",\"org\"]},{key:\"container\",kind:\"text\",level:\"recommended\",label:\"Published in\",placeholder:\"Website, newspaper, book or series\"},{key:\"publisher\",kind:\"text\",level:\"optional\",label:\"Publisher\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date published\"},{key:\"volume\",kind:\"text\",level:\"optional\",label:\"Volume\",half:true},{key:\"issue\",kind:\"text\",level:\"optional\",label:\"Issue\",half:true},{key:\"pages\",kind:\"text\",level:\"optional\",label:\"Pages\",half:true},{key:\"doi\",kind:\"text\",level:\"optional\",label:\"DOI\",half:true},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\"},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){return compactCsl({type:\"\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"container\")||undefined,publisher:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),volume:textOf(v,\"volume\")||undefined,issue:textOf(v,\"issue\")||undefined,page:textOf(v,\"pages\").replace(/\\s*[-–—]\\s*/g,\"-\")||undefined,DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),container:String(csl[\"container-title\"]??\"\"),publisher:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),volume:String(csl.volume??\"\"),issue:String(csl.issue??\"\"),pages:String(csl.page??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},hints(v,csl,ctx){return commonHints(v,csl,ctx);},examples:[]};// ---- SourceVideo.ts ----------------------------------------------\n/**\n * Online video: YouTube (and Shorts), Vimeo, TikTok, Dailymotion and other video sites. CSL\n * \"motion_picture\" marked ws-kind \"video\": the platform in container-title, the channel in ws-channel,\n * the author as the person when one is named (else the channel), the length in dimensions.\n * CitePrep.prepareVideo shapes it for each style; the timestamp feeds the in-text citation.\n */const VIDEO_PLATFORMS=[\"YouTube\",\"Vimeo\",\"TikTok\",\"Dailymotion\",\"Twitch\",\"Instagram\",\"Facebook\"];const VIDEO_SOURCE={id:\"video\",label:\"Online video\",cslType:\"motion_picture\",citeLabel:\"Cite video\",autofillLabel:\"Paste the YouTube link\",owns:[\"title\",\"author\",\"container-title\",\"issued\",\"URL\",\"accessed\",\"dimensions\",\"genre\",\"ws-kind\",\"ws-channel\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Video title\",placeholder:\"The science of sleep\"},{key:\"channel\",kind:\"text\",level:\"recommended\",label:\"Channel or uploader\",placeholder:\"Harvard University\",help:\"Use the channel name as shown on YouTube.\"},{key:\"platform\",kind:\"text\",level:\"recommended\",label:\"Platform\",placeholder:\"YouTube\",suggestions:VIDEO_PLATFORMS,initial:()=>\"YouTube\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Upload date\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://www.youtube.com/watch?v=\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Timestamp for your quote\",placeholder:\"2:15\",locator:\"timestamp\",half:true},{key:\"length\",kind:\"text\",level:\"optional\",label:\"Length\",placeholder:\"12:34\",help:\"Chicago includes it.\",half:true},{key:\"person\",kind:\"names\",level:\"optional\",label:\"Creator's real name\",nameKinds:[\"person\"],help:\"Only when the channel is one person's and they go by another name. APA then shows the name, then the channel in brackets.\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the video and say how you used it.\"}],toCsl(v){const channel=textOf(v,\"channel\");const person=namesToCsl(namesOf(v,\"person\"));return compactCsl({type:\"motion_picture\",\"ws-kind\":\"video\",title:textOf(v,\"title\"),author:person??(channel?[{literal:channel}]:undefined),\"ws-channel\":channel||undefined,\"container-title\":textOf(v,\"platform\")||undefined,genre:\"Video\",issued:dateToCsl(dateOf(v,\"date\")),dimensions:textOf(v,\"length\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const channel=String(csl[\"ws-channel\"]??\"\");const first=csl.author?.[0];const personIsChannel=!channel||first?.literal&&first.literal===channel;return{title:String(csl.title??\"\"),channel:channel||String(first?.literal??[first?.given,first?.family].filter(Boolean).join(\" \")??\"\"),person:personIsChannel?[]:namesFromCsl(csl.author),platform:String(csl[\"container-title\"]??csl.publisher??\"\"),date:dateFromCsl(csl.issued),length:String(csl.dimensions??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{creatorsKey:\"channel\"});const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceMovie.ts ----------------------------------------------\n/**\n * Movie: a film or documentary. CSL \"motion_picture\" marked ws-kind \"movie\": directors in director,\n * production companies in publisher (\"A; B\"), where it was watched in medium, main performers in\n * performer. CitePrep.prepareFilm shapes it for each style; the timestamp feeds the in-text citation.\n * A non-English film keeps its original title with the English one in brackets, as APA (10.12) and MLA\n * show it.\n */const WATCHED_ON=[\"Netflix\",\"Prime Video\",\"Disney+\",\"Max\",\"Hulu\",\"Apple TV+\",\"Paramount+\",\"Peacock\",\"Kanopy\",\"DVD\",\"Blu-ray\",\"Cinema\"];const MOVIE_SOURCE={id:\"movie\",label:\"Movie\",cslType:\"motion_picture\",citeLabel:\"Cite movie\",search:\"movie\",autofillLabel:\"Search for a movie, or paste an IMDb link\",owns:[\"title\",\"director\",\"performer\",\"publisher\",\"issued\",\"medium\",\"URL\",\"genre\",\"ws-kind\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Title\",placeholder:\"Parasite\"},{key:\"directors\",kind:\"names\",level:\"recommended\",label:\"Director(s)\",nameKinds:[\"person\"]},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year of release\"},{key:\"companies\",kind:\"text\",level:\"recommended\",label:\"Production company or companies\",placeholder:\"Barunson E&A\",help:\"Separate several with a semicolon.\"},{key:\"englishTitle\",kind:\"text\",level:\"optional\",label:\"English title\",placeholder:\"Parasite\",help:\"For a film not in English: its English title goes in brackets after the original one.\"},{key:\"performers\",kind:\"names\",level:\"optional\",label:\"Main performers\",nameKinds:[\"person\"],help:\"MLA can name them when your paper discusses them.\"},{key:\"watched\",kind:\"text\",level:\"optional\",label:\"Where you watched it\",placeholder:\"Netflix\",suggestions:WATCHED_ON,help:\"Chicago can include it. APA and MLA leave it out.\",half:true},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Timestamp for your quote\",placeholder:\"1:14:05\",locator:\"timestamp\",half:true},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\"},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the film and say how you used it.\"}],toCsl(v){const title=textOf(v,\"title\");const english=textOf(v,\"englishTitle\");return compactCsl({type:\"motion_picture\",\"ws-kind\":\"movie\",title:english&&english.toLowerCase()!==title.toLowerCase()?`${title} [${english}]`:title,director:namesToCsl(namesOf(v,\"directors\")),performer:namesToCsl(namesOf(v,\"performers\")),publisher:textOf(v,\"companies\").replace(/\\s*;\\s*/g,\"; \")||undefined,issued:dateToCsl(dateOf(v,\"date\")),medium:textOf(v,\"watched\")||undefined,genre:\"Film\",URL:textOf(v,\"url\")||undefined});},fromCsl(csl){const t=String(csl.title??\"\");const m=t.match(/^(.*?)\\s*\\[([^\\]]+)\\]$/);return{title:m?m[1]:t,englishTitle:m?m[2]:\"\",directors:namesFromCsl(csl.director),performers:namesFromCsl(csl.performer),companies:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),watched:String(csl.medium??\"\"),// A lookup's IMDb, Letterboxd or Wikidata page is about the film, not where it was watched.\nurl:/^https?:\\/\\/([a-z]+\\.)?(imdb\\.com|letterboxd\\.com|wikidata\\.org|themoviedb\\.org)\\//i.test(String(csl.URL??\"\"))?\"\":String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{creatorsKey:\"directors\"});const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);if(ctx.family===\"apa\"&&textOf(v,\"watched\"))hints.push({tone:\"info\",text:\"APA doesn't name the streaming service or format, so it's left out.\"});return hints;},examples:[]};// ---- SourceNewspaper.ts ------------------------------------------\n/**\n * Newspaper article, online or in print. CSL \"article-newspaper\" marked ws-kind \"newspaper\": the paper\n * in container-title; print adds section, edition and pages (A1, A4). CitePrep.prepareNewspaper fixes what\n * the style files get wrong (MLA's edition and \"A1+\", Chicago's leading \"The\" and section).\n * News websites that aren't newspapers (CNN, BBC News) are cited as webpages: autofill switches to the\n * Website form for them.\n */const newsPrint=v=>v.medium===\"print\";const NEWSPAPER_SOURCE={id:\"newspaper\",label:\"Newspaper article\",cslType:\"article-newspaper\",citeLabel:\"Cite article\",autofillLabel:\"Paste the article link\",owns:[\"title\",\"author\",\"container-title\",\"issued\",\"URL\",\"accessed\",\"section\",\"edition\",\"page\",\"ws-kind\"],fields:[{key:\"medium\",kind:\"segmented\",level:\"optional\",label:\"Where did you read it?\",options:[{value:\"online\",label:\"Online\"},{value:\"print\",label:\"In print\"}],initial:()=>\"online\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Article title\",placeholder:\"Moon lander suffers critical loss of fuel\"},{key:\"site\",kind:\"text\",level:\"required\",label:\"Newspaper name\",placeholder:\"The New York Times\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Authors\",nameKinds:[\"person\",\"org\"],help:\"No byline? Leave it blank.\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Publication date\",help:\"Cite the version you read: if the article shows an Updated date, that is usually it.\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\",showIf:v=>!newsPrint(v)},{key:\"pages\",kind:\"text\",level:\"recommended\",label:\"Page(s)\",placeholder:\"A1, A4\",help:\"Pages that aren't next to each other: separate them with a comma.\",half:true,showIf:newsPrint},{key:\"section\",kind:\"text\",level:\"optional\",label:\"Section\",placeholder:\"Science\",half:true,showIf:newsPrint},{key:\"edition\",kind:\"text\",level:\"optional\",label:\"Edition\",placeholder:\"Late edition\",help:\"Only when the paper prints several editions a day.\",showIf:newsPrint},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Paragraph number, for a quote\",placeholder:\"4\",locator:\"paragraph\",half:true,showIf:v=>!newsPrint(v)},{key:\"pageLocator\",kind:\"text\",level:\"optional\",label:\"Page of your quote\",placeholder:\"A4\",locator:\"page\",half:true,showIf:newsPrint},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue,showIf:v=>!newsPrint(v)},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the article and say how you used it.\"}],toCsl(v){const p=newsPrint(v);return compactCsl({type:\"article-newspaper\",\"ws-kind\":\"newspaper\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"site\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:p?undefined:textOf(v,\"url\")||undefined,accessed:p?undefined:dateToCsl(dateOf(v,\"accessed\")),section:p?textOf(v,\"section\")||undefined:undefined,edition:p?textOf(v,\"edition\")||undefined:undefined,page:p?textOf(v,\"pages\").replace(/\\s*[-–—]\\s*/g,\"-\")||undefined:undefined});},fromCsl(csl){const p=Boolean(csl.page)&&!csl.URL;return{medium:p?\"print\":\"online\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),pages:String(csl.page??\"\"),section:String(csl.section??\"\"),edition:String(csl.edition??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A page we couldn't place (an unknown site) is read as this form's online article; a news website\n// (CNN, BBC News: ws-news) keeps the Website form, as APA cites those as webpages.\nif(csl.type!==\"webpage\"||csl[\"ws-news\"])return null;return{medium:\"online\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceMagazine.ts -------------------------------------------\n/**\n * Magazine article, online or in print. CSL \"article-magazine\" marked ws-kind \"magazine\": the magazine in\n * container-title, volume, issue and pages for print. Magazines are often dated by month or season:\n * a season (\"Spring 2024\") is CSL's date season (1 to 4) when there's no month.\n */const magPrint=v=>v.medium===\"print\";const SEASONS=[\"Spring\",\"Summer\",\"Fall\",\"Winter\"];const MAGAZINE_SOURCE={id:\"magazine\",label:\"Magazine article\",cslType:\"article-magazine\",citeLabel:\"Cite article\",autofillLabel:\"Paste the article link\",owns:[\"title\",\"author\",\"container-title\",\"issued\",\"volume\",\"issue\",\"page\",\"URL\",\"accessed\",\"ws-kind\"],fields:[{key:\"medium\",kind:\"segmented\",level:\"optional\",label:\"Where did you read it?\",options:[{value:\"online\",label:\"Online\"},{value:\"print\",label:\"In print\"}],initial:()=>\"online\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Article title\",placeholder:\"Why the past 10 years of American life have been uniquely stupid\"},{key:\"subtitle\",kind:\"text\",level:\"optional\",label:\"Subtitle\",quiet:true},{key:\"site\",kind:\"text\",level:\"required\",label:\"Magazine name\",placeholder:\"The Atlantic\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Authors\",nameKinds:[\"person\",\"org\"]},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Publication date\",help:\"A monthly issue: the year and month are enough.\"},{key:\"season\",kind:\"select\",level:\"optional\",label:\"Season\",options:SEASONS.map((s,i)=>({value:String(i+1),label:s})),help:\"For a seasonal issue, like Spring 2024. Leave the month blank.\",half:true},{key:\"volume\",kind:\"text\",level:\"optional\",label:\"Volume\",placeholder:\"330\",half:true},{key:\"issue\",kind:\"text\",level:\"optional\",label:\"Issue\",placeholder:\"3\",half:true},{key:\"pages\",kind:\"text\",level:\"recommended\",label:\"Pages\",placeholder:\"42-49\",half:true,showIf:magPrint},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\",showIf:v=>!magPrint(v)},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Paragraph number, for a quote\",placeholder:\"4\",locator:\"paragraph\",half:true,showIf:v=>!magPrint(v)},{key:\"pageLocator\",kind:\"text\",level:\"optional\",label:\"Page of your quote\",placeholder:\"44\",locator:\"page\",half:true,showIf:magPrint},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue,showIf:v=>!magPrint(v)},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the article and say how you used it.\"}],toCsl(v){const p=magPrint(v);const date=dateToCsl(dateOf(v,\"date\"));const season=Number(textOf(v,\"season\"));// A season only stands in for a month.\nif(date&&season>=1&&season<=4&&(date[\"date-parts\"]?.[0]?.length??0)===1)date.season=season;const subtitle=textOf(v,\"subtitle\");return compactCsl({type:\"article-magazine\",\"ws-kind\":\"magazine\",title:[textOf(v,\"title\"),subtitle].filter(Boolean).join(\": \"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"site\")||undefined,issued:date,volume:textOf(v,\"volume\")||undefined,issue:textOf(v,\"issue\")||undefined,page:p?textOf(v,\"pages\").replace(/\\s*[-–—]\\s*/g,\"-\")||undefined:undefined,URL:p?undefined:textOf(v,\"url\")||undefined,accessed:p?undefined:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const p=Boolean(csl.page)&&!csl.URL;const season=Number(csl.issued?.season);return{medium:p?\"print\":\"online\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),season:season>=1&&season<=4?String(season):\"\",volume:String(csl.volume??\"\"),issue:String(csl.issue??\"\"),pages:String(csl.page??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A page we couldn't place (an unknown site) is read as this form's online article; a news website\n// (CNN, BBC News: ws-news) keeps the Website form, as APA cites those as webpages.\nif(csl.type!==\"webpage\"||csl[\"ws-news\"])return null;return{medium:\"online\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceWiki.ts -----------------------------------------------\n/**\n * Wiki entry: a Wikipedia article or a page on another wiki (Fandom, Wikivoyage). CSL\n * \"entry-encyclopedia\" marked ws-kind \"wiki\": the wiki in container-title, the date of the version read in\n * issued, and the permanent link to that version (the \"oldid\" link) as URL. APA asks for the permanent\n * link, so no retrieval date is needed with one.\n */const isWikipedia=site=>/^wikipedia$/i.test(site.trim());const permanent=url=>/[?&]oldid=\\d+/.test(url)||/\\/Special:PermanentLink\\/\\d+/.test(url);const WIKI_SOURCE={id:\"wiki\",label:\"Wikipedia article\",cslType:\"entry-encyclopedia\",citeLabel:\"Cite article\",autofillLabel:\"Paste the Wikipedia link\",owns:[\"title\",\"container-title\",\"publisher\",\"issued\",\"URL\",\"accessed\",\"ws-kind\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Article title\",placeholder:\"Photosynthesis\"},{key:\"site\",kind:\"text\",level:\"recommended\",label:\"Wiki name\",placeholder:\"Wikipedia\",initial:()=>\"Wikipedia\",suggestions:[\"Wikipedia\",\"Wikivoyage\",\"Wiktionary\",\"Fandom\"],half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date of the version you read\",help:\"Filled in from the link: when this version of the article was saved.\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"Permanent link\",placeholder:\"https://en.wikipedia.org/w/index.php?title=...&oldid=...\",help:\"Paste the article's link above and we make the permanent link to the version you read.\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Section, for a quote\",placeholder:\"Light-dependent reactions\",locator:\"section\",half:true},{key:\"publisher\",kind:\"text\",level:\"optional\",label:\"Publisher\",placeholder:\"Wikimedia Foundation\",help:\"MLA names it. For Wikipedia it's the Wikimedia Foundation.\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const site=textOf(v,\"site\");return compactCsl({type:\"entry-encyclopedia\",\"ws-kind\":\"wiki\",title:textOf(v,\"title\"),\"container-title\":site||undefined,publisher:textOf(v,\"publisher\")||(isWikipedia(site)?\"Wikimedia Foundation\":undefined),issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const site=String(csl[\"container-title\"]??\"\");const publisher=String(csl.publisher??\"\");return{title:String(csl.title??\"\"),site,publisher:isWikipedia(site)&&/^wikimedia foundation$/i.test(publisher)?\"\":publisher,date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A wiki we don't know comes back as a webpage.\nif(csl.type!==\"webpage\")return null;return{title:String(csl.title??\"\"),site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{creatorsKey:\"site\"}).filter(h=>!/^No creator/.test(h.text));const url=textOf(v,\"url\");if(url&&!permanent(url)&&/wiki/i.test(url))hints.push({tone:\"warn\",text:\"This link shows the latest version, which can change. Paste it in the bar above and we'll make the permanent link to the version you read.\"});if(isWikipedia(textOf(v,\"site\"))&&ctx.family===\"chicago\")hints.push({tone:\"info\",text:\"Chicago usually cites Wikipedia in a note only, not in the bibliography.\"});return hints;},examples:[]};// ---- SourceTv.ts -------------------------------------------------\n/**\n * TV show: one episode, or a whole series. CSL \"broadcast\" marked ws-kind \"tv\". An episode has its series\n * in container-title, its number in number and its season in ws-season, writers in script-writer,\n * directors in director and executive producers in executive-producer; a series (ws-scope \"series\") has\n * the years it ran (ws-start, ws-end, or \"present\"). The style files get TV badly wrong, so CiteOwn\n * formats both for APA, MLA, Chicago, Harvard and IEEE.\n */const tvSeries=v=>v.tvScope===\"series\";const tvYear=s=>/^\\d{4}$/.test(s.trim())?Number(s.trim()):undefined;const TV_SOURCE={id:\"tv\",label:\"TV show\",cslType:\"broadcast\",citeLabel:\"Cite TV show\",search:\"tv\",autofillLabel:\"Search for a TV show\",owns:[\"title\",\"container-title\",\"number\",\"script-writer\",\"director\",\"executive-producer\",\"publisher\",\"issued\",\"URL\",\"genre\",\"ws-kind\",\"ws-scope\",\"ws-season\",\"ws-start\",\"ws-end\",\"ws-creator\",\"ws-tvmaze\"],fields:[{key:\"tvScope\",kind:\"segmented\",level:\"optional\",label:\"What are you citing?\",options:[{value:\"episode\",label:\"An episode\"},{value:\"series\",label:\"A whole series\"}],initial:()=>\"episode\",quiet:true},{key:\"series\",kind:\"text\",level:\"required\",label:\"Series title\",placeholder:\"Breaking Bad\"},{key:\"title\",kind:\"text\",level:\"required\",label:\"Episode title\",placeholder:\"Pilot\",showIf:v=>!tvSeries(v)},{key:\"season\",kind:\"text\",level:\"recommended\",label:\"Season\",placeholder:\"1\",half:true,showIf:v=>!tvSeries(v)},{key:\"episode\",kind:\"text\",level:\"recommended\",label:\"Episode\",placeholder:\"1\",half:true,showIf:v=>!tvSeries(v)},{key:\"writers\",kind:\"names\",level:\"recommended\",label:\"Writer(s)\",nameKinds:[\"person\"],showIf:v=>!tvSeries(v),help:\"APA starts the entry with the writers and director.\"},{key:\"directors\",kind:\"names\",level:\"recommended\",label:\"Director(s)\",nameKinds:[\"person\"],showIf:v=>!tvSeries(v)},{key:\"producers\",kind:\"names\",level:\"recommended\",label:\"Executive producer(s)\",nameKinds:[\"person\"],help:\"APA names them.\"},{key:\"tvCreators\",kind:\"names\",level:\"optional\",label:\"Creator(s)\",nameKinds:[\"person\"],help:\"MLA and Chicago name the creator. Left blank, they use the executive producers.\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Air date\",showIf:v=>!tvSeries(v)},{key:\"startYear\",kind:\"text\",level:\"recommended\",label:\"First year\",placeholder:\"2008\",half:true,showIf:tvSeries},{key:\"endYear\",kind:\"text\",level:\"optional\",label:\"Last year\",placeholder:\"2013\",half:true,showIf:tvSeries,toggle:{key:\"running\",label:\"Still running\"}},{key:\"companies\",kind:\"text\",level:\"recommended\",label:\"Network, streaming service or production company\",placeholder:\"AMC\",help:\"APA names the production companies (for a Netflix original, Netflix). Separate several with a semicolon.\"},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Timestamp for your quote\",placeholder:\"12:30\",locator:\"timestamp\",half:true,showIf:v=>!tvSeries(v)},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the episode and say how you used it.\"}],toCsl(v){const companies=textOf(v,\"companies\").replace(/\\s*;\\s*/g,\"; \")||undefined;const producers=namesToCsl(namesOf(v,\"producers\"));const creators=namesToCsl(namesOf(v,\"tvCreators\"));if(tvSeries(v)){const start=tvYear(textOf(v,\"startYear\"));const end=v.running===true?\"present\":tvYear(textOf(v,\"endYear\"));return compactCsl({type:\"broadcast\",\"ws-kind\":\"tv\",\"ws-scope\":\"series\",genre:\"TV series\",title:textOf(v,\"series\"),\"executive-producer\":producers,\"ws-creator\":creators,publisher:companies,// In-text citations come from the style file: \"(Gilligan, 2008–2013)\", \"(Duffer & Duffer, 2016–present)\".\nissued:start?end===\"present\"?{literal:`${start}–present`}:end&&end!==start?{\"date-parts\":[[start],[end]]}:{\"date-parts\":[[start]]}:undefined,\"ws-start\":start,\"ws-end\":end,URL:textOf(v,\"url\")||undefined});}return compactCsl({type:\"broadcast\",\"ws-kind\":\"tv\",genre:\"TV series episode\",title:textOf(v,\"title\"),\"container-title\":textOf(v,\"series\")||undefined,number:textOf(v,\"episode\")||undefined,\"ws-season\":textOf(v,\"season\")||undefined,\"script-writer\":namesToCsl(namesOf(v,\"writers\")),director:namesToCsl(namesOf(v,\"directors\")),\"executive-producer\":producers,\"ws-creator\":creators,publisher:companies,issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined});},fromCsl(csl){const producers=namesFromCsl(csl[\"executive-producer\"]);const tvCreators=namesFromCsl(csl[\"ws-creator\"]);if(csl[\"ws-scope\"]===\"series\"){const end=csl[\"ws-end\"];return{tvScope:\"series\",series:String(csl.title??\"\"),producers,tvCreators,companies:String(csl.publisher??\"\"),startYear:String(csl[\"ws-start\"]??dateFromCsl(csl.issued).year??\"\"),endYear:end&&end!==\"present\"?String(end):\"\",running:end===\"present\",url:String(csl.URL??\"\")};}return{tvScope:\"episode\",title:String(csl.title??\"\"),series:String(csl[\"container-title\"]??\"\"),season:String(csl[\"ws-season\"]??\"\"),episode:String(csl.number??\"\"),writers:namesFromCsl(csl[\"script-writer\"]),directors:namesFromCsl(csl.director),producers,tvCreators,companies:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=[];if(!tvSeries(v)&&!csl.issued)hints.push(...commonHints(v,csl,ctx,{creatorsKey:\"writers\"}).filter(h=>/^No date/.test(h.text)));const sc=sentenceCaseHint(v,tvSeries(v)?\"series\":\"title\",ctx);if(sc)hints.push(sc);if(ctx.family===\"apa\"&&!tvSeries(v)&&!namesOf(v,\"writers\").length&&!namesOf(v,\"directors\").length)hints.push({tone:\"info\",text:\"APA starts an episode's entry with its writers and director. Without them, it starts with the episode title.\"});return hints;},examples:[]};// ---- SourcePodcast.ts --------------------------------------------\n/**\n * Podcast: one episode, or a whole podcast. CSL \"broadcast\" marked ws-kind \"podcast\": the podcast in\n * container-title (an episode) or title (the whole podcast), hosts in host, guests in guest, the episode\n * number in number and the season in ws-season, the production company in publisher, the app or site in\n * ws-platform, audio or video in genre. CiteOwn formats it for APA, MLA, Chicago, Harvard and IEEE.\n */const podWhole=v=>v.podScope===\"show\";const PODCAST_PLATFORMS=[\"Spotify\",\"Apple Podcasts\",\"YouTube\",\"Pocket Casts\",\"Amazon Music\",\"iHeartRadio\",\"SoundCloud\"];const PODCAST_SOURCE={id:\"podcast\",label:\"Podcast\",cslType:\"broadcast\",citeLabel:\"Cite podcast\",search:\"podcast\",autofillLabel:\"Search for a podcast, or paste the episode link\",owns:[\"title\",\"container-title\",\"host\",\"guest\",\"number\",\"publisher\",\"issued\",\"URL\",\"accessed\",\"genre\",\"ws-kind\",\"ws-scope\",\"ws-season\",\"ws-platform\",\"ws-start\",\"ws-end\"],fields:[{key:\"podScope\",kind:\"segmented\",level:\"optional\",label:\"What are you citing?\",options:[{value:\"episode\",label:\"An episode\"},{value:\"show\",label:\"A whole podcast\"}],initial:()=>\"episode\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Episode title\",placeholder:\"The problem with the Nobel Prize\",showIf:v=>!podWhole(v)},{key:\"series\",kind:\"text\",level:\"required\",label:\"Podcast name\",placeholder:\"Radiolab\"},{key:\"hosts\",kind:\"names\",level:\"recommended\",label:\"Host(s)\",nameKinds:[\"person\",\"org\"],help:\"The most often forgotten part: APA and Chicago start with the hosts.\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:v=>podWhole(v)?\"First episode\":\"Release date\"},{key:\"running\",kind:\"checkbox\",level:\"optional\",label:\"Still releasing episodes\",initial:()=>true,showIf:podWhole,help:\"APA then writes the years as 2002–present.\"},{key:\"endYear\",kind:\"text\",level:\"optional\",label:\"Last year\",placeholder:\"2020\",half:true,showIf:v=>podWhole(v)&&v.running!==true},{key:\"episode\",kind:\"text\",level:\"optional\",label:\"Episode number\",placeholder:\"212\",half:true,showIf:v=>!podWhole(v)},{key:\"season\",kind:\"text\",level:\"optional\",label:\"Season\",placeholder:\"3\",half:true,showIf:v=>!podWhole(v)},{key:\"guests\",kind:\"names\",level:\"optional\",label:\"Guest(s)\",nameKinds:[\"person\"],showIf:v=>!podWhole(v),help:\"MLA and Chicago can name them.\"},{key:\"podFormat\",kind:\"select\",level:\"optional\",label:\"Audio or video\",options:[{value:\"audio\",label:\"Audio podcast\"},{value:\"video\",label:\"Video podcast\"}],initial:()=>\"audio\",help:\"APA labels them differently.\",half:true},{key:\"companies\",kind:\"text\",level:\"optional\",label:\"Production company\",placeholder:\"WNYC Studios\",half:true},{key:\"platform\",kind:\"text\",level:\"optional\",label:\"Where you listened\",placeholder:\"Spotify\",suggestions:PODCAST_PLATFORMS,half:true},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Timestamp for your quote\",placeholder:\"12:30\",locator:\"timestamp\",half:true,showIf:v=>!podWhole(v)},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the episode and say how you used it.\"}],toCsl(v){const video=textOf(v,\"podFormat\")===\"video\";const base={type:\"broadcast\",\"ws-kind\":\"podcast\",host:namesToCsl(namesOf(v,\"hosts\")),publisher:textOf(v,\"companies\")||undefined,\"ws-platform\":textOf(v,\"platform\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))};if(podWhole(v)){const start=dateOf(v,\"date\").year?.trim();const end=v.running===true?\"present\":/^\\d{4}$/.test(textOf(v,\"endYear\"))?Number(textOf(v,\"endYear\")):undefined;return compactCsl({...base,\"ws-scope\":\"show\",genre:video?\"Video podcast\":\"Audio podcast\",title:textOf(v,\"series\"),issued:start&&/^\\d{4}$/.test(start)?end===\"present\"?{literal:`${start}–present`}:end&&end!==Number(start)?{\"date-parts\":[[Number(start)],[end]]}:{\"date-parts\":[[Number(start)]]}:undefined,\"ws-start\":start&&/^\\d{4}$/.test(start)?Number(start):undefined,\"ws-end\":end});}return compactCsl({...base,genre:video?\"Video podcast episode\":\"Audio podcast episode\",title:textOf(v,\"title\"),\"container-title\":textOf(v,\"series\")||undefined,guest:namesToCsl(namesOf(v,\"guests\")),number:textOf(v,\"episode\")||undefined,\"ws-season\":textOf(v,\"season\")||undefined,issued:dateToCsl(dateOf(v,\"date\"))});},fromCsl(csl){const video=/video/i.test(String(csl.genre??\"\"));const common={hosts:namesFromCsl(csl.host),companies:String(csl.publisher??\"\"),platform:String(csl[\"ws-platform\"]??\"\"),podFormat:video?\"video\":\"audio\",url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};if(csl[\"ws-scope\"]===\"show\"){const end=csl[\"ws-end\"];return{...common,podScope:\"show\",series:String(csl.title??\"\"),date:csl[\"ws-start\"]?{year:String(csl[\"ws-start\"])}:dateFromCsl(csl.issued),running:end===\"present\",endYear:end&&end!==\"present\"?String(end):\"\"};}return{...common,podScope:\"episode\",title:String(csl.title??\"\"),series:String(csl[\"container-title\"]??\"\"),guests:namesFromCsl(csl.guest),episode:String(csl.number??\"\"),season:String(csl[\"ws-season\"]??\"\"),date:dateFromCsl(csl.issued)};},adopt(csl){// A podcast's own episode page comes back as a webpage: the site is the podcast. Its byline isn't\n// reliably the host, so the hosts are left to the student.\nif(csl.type===\"webpage\")return{podScope:\"episode\",title:String(csl.title??\"\"),series:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};// A podcast episode on YouTube stays a podcast, as a video podcast.\nif(csl.type!==\"motion_picture\"||csl.director?.length)return null;return{podScope:\"episode\",title:String(csl.title??\"\"),series:String(csl[\"ws-channel\"]??csl.author?.[0]?.literal??\"\"),podFormat:\"video\",platform:String(csl[\"container-title\"]??\"YouTube\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{creatorsKey:\"hosts\",titleWord:podWhole(v)?\"podcast name\":\"episode title\"});const sc=sentenceCaseHint(v,podWhole(v)?\"series\":\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceChapter.ts --------------------------------------------\n/**\n * Book chapter: a chapter in an edited book, where different authors wrote different chapters. CSL\n * \"chapter\": the book in container-title, its editors in editor, the chapter's pages in page. The search\n * bar takes a chapter DOI (Crossref registers chapters as \"book-chapter\"), the book's ISBN or a title.\n */const CHAPTER_SOURCE={id:\"chapter\",label:\"Book chapter\",cslType:\"chapter\",citeLabel:\"Cite chapter\",search:\"chapter\",autofillLabel:\"Paste a chapter DOI, the book's ISBN or a title\",owns:[\"title\",\"author\",\"container-title\",\"editor\",\"edition\",\"volume\",\"page\",\"publisher\",\"issued\",\"original-date\",\"DOI\",\"URL\",\"ISBN\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Chapter title\",placeholder:\"The psychology of happiness\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Chapter author(s)\",nameKinds:[\"person\",\"org\"]},{key:\"bookTitle\",kind:\"text\",level:\"required\",label:\"Book title\",placeholder:\"Oxford handbook of positive psychology\"},{key:\"editors\",kind:\"names\",level:\"recommended\",label:\"Editor(s) of the book\",nameKinds:[\"person\",\"org\"]},{key:\"pages\",kind:\"text\",level:\"recommended\",label:\"Chapter pages\",placeholder:\"63-73\",half:true},{key:\"edition\",kind:\"text\",level:\"optional\",label:\"Edition\",placeholder:\"2nd\",half:true},{key:\"publisher\",kind:\"text\",level:\"recommended\",label:\"Publisher\",placeholder:\"Oxford University Press\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year published\"},{key:\"volume\",kind:\"text\",level:\"optional\",label:\"Volume\",placeholder:\"2\",half:true},{key:\"originalDate\",kind:\"date\",level:\"optional\",label:\"Original publication year\",help:\"For a chapter reprinted from an earlier book or article.\"},{key:\"doi\",kind:\"text\",level:\"optional\",label:\"DOI\",placeholder:\"10.1093/oxfordhb/9780195187243.013.0007\"},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\",help:\"Only when the chapter has no DOI and you read it online.\"},{key:\"isbn\",kind:\"text\",level:\"optional\",label:\"ISBN\",quiet:true},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Page number, for a quote\",placeholder:\"67\",locator:\"page\",half:true},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the chapter and say how you used it.\"}],toCsl(v){return compactCsl({type:\"chapter\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"bookTitle\")||undefined,editor:namesToCsl(namesOf(v,\"editors\")),edition:textOf(v,\"edition\").replace(/(st|nd|rd|th)?\\.?\\s*(ed\\.?|edition)?$/i,\"\").trim()||undefined,volume:textOf(v,\"volume\")||undefined,page:textOf(v,\"pages\").replace(/^pp?\\.\\s*/i,\"\").replace(/\\s*[-–—]\\s*/g,\"-\")||undefined,publisher:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),\"original-date\":dateToCsl(dateOf(v,\"originalDate\")),DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:textOf(v,\"url\")||undefined,ISBN:textOf(v,\"isbn\")||undefined});},fromCsl(csl){return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),bookTitle:String(csl[\"container-title\"]??\"\"),editors:namesFromCsl(csl.editor),edition:String(csl.edition??\"\"),volume:String(csl.volume??\"\"),pages:String(csl.page??\"\"),publisher:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),originalDate:dateFromCsl(csl[\"original-date\"]),doi:String(csl.DOI??\"\"),url:String(csl.DOI?\"\":csl.URL??\"\"),isbn:String(csl.ISBN??\"\").split(/[\\s,]+/)[0]??\"\"};},adopt(csl){// An ISBN finds the book: its details fill the book's part of the form, and the student adds the\n// chapter. An edited book's names are its editors.\n// A handbook chapter registered as a reference entry (Oxford Handbooks): a chapter, with its editors.\nif((csl.type===\"entry-encyclopedia\"||csl.type===\"entry-dictionary\")&&csl[\"container-title\"]&&!/wiki/i.test(String(csl[\"container-title\"])))return CHAPTER_SOURCE.fromCsl({...csl,type:\"chapter\"});if(csl.type!==\"book\")return null;return{bookTitle:String(csl.title??\"\"),editors:namesFromCsl(csl.editor?.length?csl.editor:csl.author),publisher:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),edition:String(csl.edition??\"\"),volume:String(csl.volume??\"\"),isbn:String(csl.ISBN??\"\").split(/[\\s,]+/)[0]??\"\"};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:\"chapter title\"});const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);const authors=namesOf(v,\"creators\").map(n=>`${n.family??n.name??\"\"}`.toLowerCase()).filter(Boolean);const editors=namesOf(v,\"editors\").map(n=>`${n.family??n.name??\"\"}`.toLowerCase()).filter(Boolean);if(authors.length&&!editors.length)hints.push({tone:\"info\",text:\"No editor? If one author wrote the whole book, cite the whole book instead, with the Book form.\"});else if(authors.length&&authors.join()===editors.join())hints.push({tone:\"info\",text:\"The chapter's authors also edited the book. If they wrote every chapter, cite the whole book with the Book form.\"});return hints;},examples:[]};// ---- SourceReport.ts ---------------------------------------------\n/**\n * Report from a government, organization or company. CSL \"report\": the organization or named people as\n * author, the report number in number, the publisher only when it isn't the author (a parent agency), a\n * database or website in archive. A group author's abbreviation (WHO) gives APA's first and later in-text\n * citations: (World Health Organization [WHO], 2023), then (WHO, 2023).\n */const reportHasOrg=v=>namesOf(v,\"creators\").some(n=>n.kind===\"org\"&&n.name?.trim());const REPORT_SOURCE={id:\"report\",label:\"Report\",cslType:\"report\",citeLabel:\"Cite report\",autofillLabel:\"Paste the report link or its PDF link\",owns:[\"title\",\"author\",\"number\",\"publisher\",\"issued\",\"archive\",\"DOI\",\"URL\",\"accessed\",\"ws-abbr\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Report title\",placeholder:\"World health statistics 2023\"},{key:\"subtitle\",kind:\"text\",level:\"optional\",label:\"Subtitle\",placeholder:\"Monitoring health for the SDGs\",quiet:true},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Author(s)\",nameKinds:[\"org\",\"person\"],help:\"Usually the organization or agency. Named people? Add them instead.\"},{key:\"abbreviation\",kind:\"text\",level:\"optional\",label:\"Abbreviation\",placeholder:\"WHO\",help:\"APA spells out a group's name in the first citation and uses the abbreviation after.\",half:true,showIf:reportHasOrg},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Publication date\"},{key:\"number\",kind:\"text\",level:\"optional\",label:\"Report number\",placeholder:\"NCES 2020-144\",half:true},{key:\"publisher\",kind:\"text\",level:\"optional\",label:\"Publisher\",placeholder:\"U.S. Department of Education\",help:\"Only when it's different from the author, like a parent agency.\"},{key:\"doi\",kind:\"text\",level:\"optional\",label:\"DOI\",placeholder:\"10.1787/...\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"database\",kind:\"text\",level:\"optional\",label:\"Database\",placeholder:\"ERIC\",help:\"Only for a report you found in a database like ERIC.\",half:true},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Page number, for a quote\",placeholder:\"12\",locator:\"page\",half:true},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the report and say how you used it.\"}],toCsl(v){const subtitle=textOf(v,\"subtitle\");return compactCsl({type:\"report\",title:[textOf(v,\"title\"),subtitle].filter(Boolean).join(\": \"),author:namesToCsl(namesOf(v,\"creators\")),\"ws-abbr\":reportHasOrg(v)?textOf(v,\"abbreviation\")||undefined:undefined,number:textOf(v,\"number\").replace(/^(report\\s+)?no\\.?\\s*/i,\"\")||undefined,publisher:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),archive:textOf(v,\"database\")||undefined,DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const author=csl.author?.[0]?.literal??\"\";const publisher=String(csl.publisher??\"\");return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),abbreviation:String(csl[\"ws-abbr\"]??\"\"),number:String(csl.number??\"\"),// The author as publisher too is the default: keep the field for a different one.\npublisher:publisher&&publisher.toLowerCase()!==author.toLowerCase()?publisher:\"\",date:dateFromCsl(csl.issued),database:String(csl.archive??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// OECD and World Bank reports are registered as books: the same details make a report.\nif(csl.type===\"book\")return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),publisher:String(csl.publisher??\"\").replace(/^[^:]+:\\s*/,\"\"),number:String(csl.number??\"\"),date:dateFromCsl(csl.issued),doi:String(csl.DOI??\"\"),url:String(csl.DOI?\"\":csl.URL??\"\")};// A report's landing page or PDF comes back as a webpage: its site is usually the publisher.\nif(csl.type!==\"webpage\")return null;const author=csl.author?.[0]?.literal??\"\";const site=String(csl[\"container-title\"]??\"\");return{title:String(csl.title??\"\"),creators:csl.author?.length?namesFromCsl(csl.author):site?[{kind:\"org\",name:site}]:[],publisher:site&&site.toLowerCase()!==author.toLowerCase()&&csl.author?.length?site:\"\",date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);// APA 8.21: the group's full name with its abbreviation the first time, the abbreviation after that.\nconst org=namesOf(v,\"creators\").find(n=>n.kind===\"org\")?.name?.trim();const abbr=textOf(v,\"abbreviation\");if(ctx.family===\"apa\"&&org&&abbr){const year=dateOf(v,\"date\").year?.trim()||\"n.d.\";hints.push({tone:\"info\",text:`In your text, the first citation is (${org} [${abbr}], ${year}). After that, (${abbr}, ${year}).`});}const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceThesis.ts ---------------------------------------------\n/**\n * Thesis or dissertation: doctoral, master's or bachelor's, found in a database (ProQuest), a university\n * repository, or unpublished (print, or from the author). CSL \"thesis\": the kind in genre, the university\n * in publisher, the database or repository in archive, the ProQuest publication number in number, where\n * it was found in ws-found. CitePrep.prepareThesis words the kind for each style (\"PhD diss.\", \"MA\n * thesis\") and places \"Unpublished\" for APA.\n */const THESIS_KINDS=[{value:\"doctoral\",label:\"Doctoral dissertation\",genre:\"Doctoral dissertation\"},{value:\"masters\",label:\"Master's thesis\",genre:\"Master's thesis\"},{value:\"bachelors\",label:\"Honors or bachelor's thesis\",genre:\"Bachelor's thesis\"}];const thesisFound=v=>textOf(v,\"foundIn\")||\"database\";function thesisKindOf(genre){if(/doctor|ph\\.?\\s?d|diss/i.test(genre))return\"doctoral\";if(/master|m\\.?a\\.?\\b|m\\.?s\\.?c?\\b/i.test(genre))return\"masters\";if(/bachelor|honou?rs|b\\.?a\\.?\\b/i.test(genre))return\"bachelors\";return\"doctoral\";}const THESIS_SOURCE={id:\"thesis\",label:\"Thesis or dissertation\",cslType:\"thesis\",citeLabel:\"Cite thesis\",search:\"thesis\",autofillLabel:\"Search by title, author or DOI, or paste a link\",owns:[\"title\",\"author\",\"genre\",\"publisher\",\"issued\",\"archive\",\"number\",\"DOI\",\"URL\",\"ws-found\"],fields:[{key:\"foundIn\",kind:\"segmented\",level:\"optional\",label:\"Where did you find it?\",options:[{value:\"database\",label:\"A database\"},{value:\"repository\",label:\"A university repository\"},{value:\"unpublished\",label:\"Unpublished\"}],initial:()=>\"database\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Title\",placeholder:\"The effects of sleep on memory consolidation in adolescents\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Author\",nameKinds:[\"person\"]},{key:\"thesisKind\",kind:\"select\",level:\"recommended\",label:\"Type\",options:THESIS_KINDS.map(k=>({value:k.value,label:k.label})),initial:()=>\"doctoral\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year\",half:true},{key:\"university\",kind:\"text\",level:\"recommended\",label:\"University\",placeholder:\"University of California, Los Angeles\"},{key:\"database\",kind:\"text\",level:\"recommended\",label:v=>thesisFound(v)===\"repository\"?\"Repository name\":\"Database\",placeholder:v=>thesisFound(v)===\"repository\"?\"TSpace\":\"ProQuest Dissertations and Theses Global\",showIf:v=>thesisFound(v)!==\"unpublished\"},{key:\"number\",kind:\"text\",level:\"optional\",label:\"Publication or order number\",placeholder:\"28413702\",half:true,showIf:v=>thesisFound(v)===\"database\"},{key:\"doi\",kind:\"text\",level:\"optional\",label:\"DOI\",placeholder:\"10.\",showIf:v=>thesisFound(v)!==\"unpublished\"},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\",showIf:v=>thesisFound(v)!==\"unpublished\",help:\"Not needed for ProQuest unless your instructor asks.\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Page number, for a quote\",placeholder:\"45\",locator:\"page\",half:true},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const where=thesisFound(v);const kind=THESIS_KINDS.find(k=>k.value===textOf(v,\"thesisKind\"))??THESIS_KINDS[0];return compactCsl({type:\"thesis\",\"ws-found\":where,title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),genre:kind.genre,publisher:textOf(v,\"university\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),archive:where===\"unpublished\"?undefined:textOf(v,\"database\")||undefined,number:where===\"database\"?textOf(v,\"number\").replace(/^(publication|order)?\\s*no\\.?\\s*/i,\"\")||undefined:undefined,DOI:where===\"unpublished\"?undefined:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:where===\"unpublished\"?undefined:textOf(v,\"url\")||undefined});},fromCsl(csl){const archive=String(csl.archive??\"\");const where=String(csl[\"ws-found\"]??(/proquest|ebsco|database/i.test(archive)||csl.number?\"database\":csl.URL||csl.DOI||archive?\"repository\":\"database\"));return{foundIn:where,title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),thesisKind:thesisKindOf(String(csl.genre??\"\")),university:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),database:archive,number:String(csl.number??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.DOI?\"\":csl.URL??\"\")};},adopt(csl){// A repository page we couldn't place comes back as a webpage.\nif(csl.type!==\"webpage\")return null;return{foundIn:\"repository\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),database:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceLecture.ts --------------------------------------------\n/**\n * Lecture or speech, seen online (a recording, a TED Talk), in person, or in class. CSL \"speech\" marked\n * ws-kind \"lecture\": the event or course in event-title, the place in event-place, the platform in\n * ws-platform, the kind of talk (Lecture, Address, Keynote speech) in genre, how it was seen in ws-seen.\n * APA treats a talk heard in person and not recorded as a personal communication: no reference entry,\n * only the in-text wording (noEntry). CiteOwn formats the rest for each style.\n */const talkOnline=v=>(v.seen??\"online\")===\"online\";const talkInClass=v=>v.seen===\"class\";const TALK_KINDS=[\"Lecture\",\"Speech\",\"Address\",\"Keynote speech\",\"Guest lecture\",\"Presentation\"];const TALK_PLATFORMS=[\"YouTube\",\"TED\",\"Vimeo\",\"C-SPAN\"];/** APA's personal-communication wording: \"(B. Brown, personal communication, June 10, 2010)\". */function personalCommunication(v){const speaker=namesOf(v,\"creators\")[0];const who=speaker?speaker.kind===\"person\"?[speaker.given?.trim().split(/\\s+/).filter(Boolean).map(g=>g.split(\"-\").map(p=>p?`${p[0].toUpperCase()}.`:\"\").join(\"-\")).join(\" \"),speaker.family?.trim()].filter(Boolean).join(\" \"):speaker.name??\"\":\"Speaker\";const d=dateOf(v,\"date\");const month=Number(d.month);const date=d.year?month>=1&&month<=12?`${MONTH_NAMES[month-1]}${d.day?` ${Number(d.day)}`:\"\"}, ${d.year}`:d.year:\"Month Day, Year\";return`(${who}, personal communication, ${date})`;}const LECTURE_SOURCE={id:\"lecture\",label:\"Lecture or speech\",cslType:\"speech\",citeLabel:\"Cite lecture\",autofillLabel:\"Paste the TED Talk or video link\",owns:[\"title\",\"author\",\"event-title\",\"event-place\",\"publisher\",\"issued\",\"URL\",\"accessed\",\"genre\",\"ws-kind\",\"ws-seen\",\"ws-platform\",\"ws-audio\"],fields:[{key:\"seen\",kind:\"segmented\",level:\"optional\",label:\"How did you see it?\",options:[{value:\"online\",label:\"Online recording\"},{value:\"person\",label:\"In person\"},{value:\"class\",label:\"Class lecture\"}],initial:()=>\"online\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Title\",placeholder:\"The power of vulnerability\",help:\"No title? Describe it briefly, like Lecture on photosynthesis.\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Speaker\",nameKinds:[\"person\",\"org\"]},{key:\"event\",kind:\"text\",level:\"recommended\",label:v=>talkInClass(v)?\"Course\":\"Event\",placeholder:v=>talkInClass(v)?\"BIO 101: Introduction to Biology\":\"TEDxHouston\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date\"},{key:\"place\",kind:\"text\",level:\"recommended\",label:v=>talkInClass(v)?\"University or school\":\"Location\",placeholder:v=>talkInClass(v)?\"University of Michigan\":\"Houston, TX\",showIf:v=>!talkOnline(v)},{key:\"platform\",kind:\"text\",level:\"recommended\",label:\"Platform\",placeholder:\"YouTube\",suggestions:TALK_PLATFORMS,half:true,showIf:talkOnline},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\",showIf:talkOnline},{key:\"recording\",kind:\"select\",level:\"optional\",label:\"Recording\",options:[{value:\"video\",label:\"Video\"},{value:\"audio\",label:\"Audio only\"}],initial:()=>\"video\",help:\"APA calls an audio recording a speech audio recording.\",half:true,showIf:talkOnline},{key:\"talkKind\",kind:\"select\",level:\"optional\",label:\"Kind of talk\",options:TALK_KINDS.map(t=>({value:t,label:t})),initial:()=>\"Lecture\",help:\"MLA and Chicago name it, like Lecture or Keynote speech.\",half:true},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Timestamp for your quote\",placeholder:\"12:30\",locator:\"timestamp\",half:true,showIf:talkOnline},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the talk and say how you used it.\"}],toCsl(v){const on=talkOnline(v);return compactCsl({type:\"speech\",\"ws-kind\":\"lecture\",\"ws-seen\":textOf(v,\"seen\")||\"online\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"event-title\":textOf(v,\"event\")||undefined,\"event-place\":on?undefined:textOf(v,\"place\")||undefined,\"ws-platform\":on?textOf(v,\"platform\")||undefined:undefined,\"ws-audio\":on&&textOf(v,\"recording\")===\"audio\"?true:undefined,genre:textOf(v,\"talkKind\")||\"Lecture\",issued:dateToCsl(dateOf(v,\"date\")),URL:on?textOf(v,\"url\")||undefined:undefined});},fromCsl(csl){const seen=String(csl[\"ws-seen\"]??(csl.URL?\"online\":\"person\"));return{seen,title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),event:String(csl[\"event-title\"]??csl.event??\"\"),place:String(csl[\"event-place\"]??\"\"),platform:String(csl[\"ws-platform\"]??csl[\"container-title\"]??\"\"),talkKind:TALK_KINDS.includes(String(csl.genre??\"\"))?String(csl.genre):\"Lecture\",recording:csl[\"ws-audio\"]===true?\"audio\":\"video\",date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},adopt(csl){// A speech on an archive site (American Rhetoric, a presidential library) comes back as a webpage.\nif(csl.type===\"webpage\")return{seen:\"online\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),platform:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),talkKind:\"Speech\"};// A TED Talk or a recorded lecture comes back as a video.\nif(csl.type!==\"motion_picture\"||csl.director?.length)return null;const container=String(csl[\"container-title\"]??\"\");const ted=/^ted/i.test(container)||/^ted$/i.test(String(csl.publisher??\"\"))||/(^|\\.)ted\\.com\\//i.test(String(csl.URL??\"\").replace(/^https?:\\/\\//,\"\"));const author=csl.author?.[0];// A person is the speaker; a channel (a literal name) is who uploaded it, not who spoke.\nreturn{seen:\"online\",title:String(csl.title??\"\"),creators:author&&!author.literal?namesFromCsl(csl.author):ted&&author?namesFromCsl(csl.author):[],platform:ted?\"TED\":container||\"YouTube\",date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);if(talkInClass(v))hints.push({tone:\"info\",text:\"Did your instructor share slides or a recording? Cite those instead: your reader can find them.\"});return hints;},noEntry(v,ctx){if(talkOnline(v)||ctx.family!==\"apa\")return null;return{title:\"APA cites a talk you heard in person as a personal communication\",text:\"Your reader can't hear it again, so there's no reference entry. Cite it in your text only, with the speaker's initials and the exact date.\",copy:personalCommunication(v)};},examples:[]};// ---- SourceSlides.ts ---------------------------------------------\n/**\n * Presentation slides: PowerPoint, Google Slides or Keynote, from a class platform (Canvas, Blackboard,\n * Moodle), a website (SlideShare) or a talk. CSL \"speech\" marked ws-kind \"slides\": the format in genre\n * (\"PowerPoint slides\"), the course or event in event-title, the institution in event-place, the platform\n * in publisher, where they were seen in ws-seen. Slide numbers go in the in-text citation. CiteOwn formats\n * them for each style.\n */const slidesInClass=v=>(v.seenAt??\"class\")===\"class\";const SLIDE_FORMATS=[\"PowerPoint slides\",\"Google Slides\",\"Keynote slides\",\"Lecture notes\"];const CLASS_PLATFORMS=[\"Canvas\",\"Blackboard\",\"Moodle\",\"Brightspace\",\"Google Classroom\",\"Schoology\"];const SLIDE_SITES=[\"SlideShare\",\"Speaker Deck\",\"Google Slides\",\"Prezi\"];const SLIDES_SOURCE={id:\"slides\",label:\"Presentation slides\",cslType:\"speech\",citeLabel:\"Cite slides\",autofillLabel:\"Paste the link to the slides\",owns:[\"title\",\"author\",\"event-title\",\"event-place\",\"publisher\",\"issued\",\"URL\",\"genre\",\"ws-kind\",\"ws-seen\"],fields:[{key:\"seenAt\",kind:\"segmented\",level:\"optional\",label:\"Where did you see the slides?\",options:[{value:\"class\",label:\"In class\"},{value:\"website\",label:\"On a website\"},{value:\"talk\",label:\"At a talk\"}],initial:()=>\"class\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Title\",placeholder:\"Introduction to cell biology\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:v=>slidesInClass(v)?\"Instructor\":\"Author or presenter\",nameKinds:[\"person\",\"org\"]},{key:\"slideFormat\",kind:\"select\",level:\"optional\",label:\"Format\",options:SLIDE_FORMATS.map(f=>({value:f,label:f})),initial:()=>\"PowerPoint slides\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date\"},{key:\"event\",kind:\"text\",level:\"recommended\",label:v=>slidesInClass(v)?\"Course\":\"Event\",placeholder:v=>slidesInClass(v)?\"BIO 101\":\"Annual Meeting of the American Chemical Society\",showIf:v=>v.seenAt!==\"website\"},{key:\"place\",kind:\"text\",level:\"recommended\",label:v=>slidesInClass(v)?\"University or school\":\"Location\",placeholder:v=>slidesInClass(v)?\"University of California, Los Angeles\":\"Chicago, IL\",showIf:v=>v.seenAt!==\"website\"},{key:\"platform\",kind:\"text\",level:\"recommended\",label:v=>slidesInClass(v)?\"Class platform\":\"Website\",placeholder:v=>slidesInClass(v)?\"Canvas\":\"SlideShare\",suggestions:[...CLASS_PLATFORMS,...SLIDE_SITES],help:v=>slidesInClass(v)?\"APA names the platform, like Canvas@UCLA, and links to its login page.\":undefined,half:true},{key:\"url\",kind:\"url\",level:\"recommended\",label:v=>slidesInClass(v)?\"Login page URL\":\"URL\",placeholder:v=>slidesInClass(v)?\"https://canvas.ucla.edu\":\"https://\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Slide number, for a quote\",placeholder:\"4\",locator:\"slide\",half:true},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const web=v.seenAt===\"website\";return compactCsl({type:\"speech\",\"ws-kind\":\"slides\",\"ws-seen\":textOf(v,\"seenAt\")||\"class\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),genre:textOf(v,\"slideFormat\")||\"PowerPoint slides\",\"event-title\":web?undefined:textOf(v,\"event\")||undefined,\"event-place\":web?undefined:textOf(v,\"place\")||undefined,publisher:textOf(v,\"platform\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined});},fromCsl(csl){return{seenAt:String(csl[\"ws-seen\"]??\"class\"),title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),slideFormat:SLIDE_FORMATS.includes(String(csl.genre??\"\"))?String(csl.genre):\"PowerPoint slides\",event:String(csl[\"event-title\"]??\"\"),place:String(csl[\"event-place\"]??\"\"),platform:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},adopt(csl){// Slides on SlideShare or a university site come back as a webpage.\nif(csl.type!==\"webpage\")return null;return{seenAt:\"website\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),platform:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceBlog.ts -----------------------------------------------\n/**\n * Blog post: a post on a blog, a company or organization blog, Medium or Substack. CSL \"post-weblog\": the\n * blog's name in container-title (italic in every style), the post's title in title (plain in APA, quoted\n * in MLA and Chicago). A blog post read on a newspaper's site keeps the newspaper as the blog's publisher.\n */const BLOG_PLATFORMS=[\"Medium\",\"Substack\",\"WordPress\",\"Blogger\",\"Tumblr\",\"Ghost\"];const BLOG_SOURCE={id:\"blog\",label:\"Blog post\",cslType:\"post-weblog\",citeLabel:\"Cite blog post\",autofillLabel:\"Paste the link to the blog post\",owns:[\"title\",\"author\",\"container-title\",\"issued\",\"URL\",\"accessed\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Post title\",placeholder:\"The science of habit formation\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Author(s)\",nameKinds:[\"person\",\"org\",\"username\"],help:\"Only a username? Add it as a username.\"},{key:\"site\",kind:\"text\",level:\"required\",label:\"Blog name\",placeholder:\"Sleep Science Blog\",help:\"The blog's own name. On Medium or Substack, the publication's name, or the platform when there isn't one.\",suggestions:BLOG_PLATFORMS},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date posted\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Paragraph number, for a quote\",placeholder:\"4\",locator:\"paragraph\",half:true},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\",placeholder:\"For an annotated bibliography: summarize the post and say how you used it.\"}],toCsl(v){return compactCsl({type:\"post-weblog\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"site\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A post whose site doesn't say it's a blog comes back as a webpage: on this page it's a blog post.\n// A news article isn't a blog post (the newspaper form cites it), unless it sits under the paper's /blogs/.\nconst newsBlog=(csl.type===\"article-newspaper\"||csl.type===\"article-magazine\")&&/\\/blogs?\\//i.test(String(csl.URL??\"\"));if(csl.type!==\"webpage\"&&!newsBlog)return null;if(csl[\"ws-news\"])return null;return BLOG_SOURCE.fromCsl({...csl,type:\"post-weblog\"});},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceForum.ts ----------------------------------------------\n/**\n * Online forum post: a Reddit post, a Stack Overflow or Stack Exchange question or answer, a Quora answer,\n * a post on a discussion board. CSL \"post\" marked ws-kind \"forum\": the post's title (or its first words)\n * in title, the site in container-title, the community (r/AskHistorians) in ws-forum, APA's description\n * \"Online forum post\" in genre. A username is written as the site shows it, without an @: APA's\n * \"National Aeronautics and Space Administration [nasa]\".\n */const FORUM_SITES=[\"Reddit\",\"Stack Overflow\",\"Quora\",\"Stack Exchange\",\"Discord\",\"Canvas discussion\"];/** Forum names: \"Real Name [username]\", or the username alone, with no @ (Reddit and forums don't use one). */function forumNamesToCsl(entries){const out=namesToCsl(entries.map(n=>n.kind===\"username\"?{kind:\"org\",name:n.name?.trim()?`${n.name.trim()} [${(n.handle??\"\").replace(/^@+|^u\\//g,\"\").trim()}]`:(n.handle??\"\").replace(/^@+|^u\\//g,\"\").trim()}:n));return out;}function forumNamesFromCsl(names){return(names??[]).map(n=>{if(n.family||n.given)return{kind:\"person\",given:n.given??\"\",family:[n[\"non-dropping-particle\"],n.family,n.suffix].filter(Boolean).join(\" \")};const literal=n.literal??\"\";const both=literal.match(/^(.+?)\\s+\\[@?([^\\]]+)\\]$/);if(both)return{kind:\"username\",name:both[1],handle:both[2]};// A single word without spaces reads as a username (\"nasa\", \"GManNickG\").\nif(/^@?[\\w.-]+$/.test(literal)&&!/^[A-Z][a-z]+$/.test(literal))return{kind:\"username\",name:\"\",handle:literal.replace(/^@/,\"\")};return{kind:\"org\",name:literal};});}const FORUM_SOURCE={id:\"forum\",label:\"Forum post\",cslType:\"post\",citeLabel:\"Cite post\",autofillLabel:\"Paste the link to the post (Reddit, Stack Overflow...)\",owns:[\"title\",\"genre\",\"author\",\"container-title\",\"issued\",\"URL\",\"accessed\",\"ws-kind\",\"ws-forum\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Post title\",placeholder:\"How do I cite a source with no date?\",help:\"A reply with no title? Use its first words, up to 20.\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Posted by\",nameKinds:[\"username\",\"person\",\"org\"],help:\"The username, plus the real name if the account shows one.\"},{key:\"site\",kind:\"text\",level:\"required\",label:\"Website\",placeholder:\"Reddit\",suggestions:FORUM_SITES,half:true},{key:\"forum\",kind:\"text\",level:\"optional\",label:\"Community or board\",placeholder:\"r/AskHistorians\",help:\"The subreddit or board, if the site has them. MLA and Chicago can name it.\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date posted\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){return compactCsl({type:\"post\",\"ws-kind\":\"forum\",genre:\"Online forum post\",title:textOf(v,\"title\").replace(/\\s+/g,\" \"),author:forumNamesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"site\")||undefined,\"ws-forum\":textOf(v,\"forum\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){return{title:String(csl.title??\"\"),creators:forumNamesFromCsl(csl.author),site:String(csl[\"container-title\"]??\"\"),forum:String(csl[\"ws-forum\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A forum page we couldn't place comes back as a webpage or a social post.\nif(csl.type!==\"webpage\"&&csl.type!==\"post\")return null;return FORUM_SOURCE.fromCsl({...csl,type:\"post\"});},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:\"post title\"});const words=textOf(v,\"title\").split(/\\s+/).filter(Boolean).length;if(ctx.family===\"apa\"&&words>20)hints.push({tone:\"info\",text:\"APA uses up to the first 20 words as the title, so the preview shortens it.\"});return hints;},examples:[]};// ---- SourceComment.ts --------------------------------------------\n/**\n * Comment: a reader's comment on an online article, a blog post, a YouTube video or a social media post.\n * CSL \"post\" marked ws-kind \"comment\": the comment's words in title (APA uses its first 20), the commenter\n * in author, what it answers in ws-on (article, video, post, blog post), that work's title in ws-parent\n * and its author in ws-parent-author, the site in container-title, the time of day (MLA gives one when\n * the site shows it) in ws-time. CiteOwn writes the entry for every style: the style files have no form\n * for \"[Comment on the article “...”]\".\n */const COMMENT_ON=[{value:\"article\",label:\"An article\"},{value:\"video\",label:\"A video\"},{value:\"post\",label:\"A social media post\"},{value:\"blog\",label:\"A blog post\"}];const commentOn=v=>textOf(v,\"commentOn\")||\"article\";const onWord=v=>({article:\"article\",video:\"video\",post:\"post\",blog:\"blog post\"})[commentOn(v)]??\"article\";const COMMENT_SOURCE={id:\"comment\",label:\"Comment\",cslType:\"post\",citeLabel:\"Cite comment\",autofillLabel:\"Paste the link to the comment, or to the page it's on\",owns:[\"title\",\"author\",\"container-title\",\"issued\",\"URL\",\"accessed\",\"ws-kind\",\"ws-on\",\"ws-parent\",\"ws-parent-author\",\"ws-time\"],fields:[{key:\"commentOn\",kind:\"segmented\",level:\"optional\",label:\"What is it a comment on?\",options:COMMENT_ON,initial:()=>\"article\",quiet:true},{key:\"title\",kind:\"textarea\",level:\"required\",label:\"Comment text\",placeholder:\"This is the clearest explanation of the study I've read\",help:\"Copy the words exactly. APA uses the first 20; MLA and Chicago describe the comment instead.\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Commenter\",nameKinds:[\"username\",\"person\"],help:\"The name or username shown with the comment.\"},{key:\"parentTitle\",kind:\"text\",level:\"recommended\",label:v=>`Title of the ${onWord(v)}`,placeholder:v=>commentOn(v)===\"video\"?\"How to write a thesis statement\":\"The case for a four-day week\"},{key:\"parentAuthor\",kind:\"names\",level:\"optional\",label:v=>commentOn(v)===\"video\"?\"Channel or creator\":`Author of the ${onWord(v)}`,nameKinds:[\"person\",\"org\",\"username\"],help:\"MLA and Chicago name them.\"},{key:\"site\",kind:\"text\",level:\"required\",label:v=>commentOn(v)===\"video\"||commentOn(v)===\"post\"?\"Platform\":\"Website\",placeholder:v=>commentOn(v)===\"video\"?\"YouTube\":commentOn(v)===\"post\"?\"Reddit\":\"The New York Times\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date of the comment\"},{key:\"time\",kind:\"text\",level:\"optional\",label:\"Time posted\",placeholder:\"3:15 p.m.\",help:\"MLA adds it when the site shows one.\",half:true},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"Link to the comment\",placeholder:\"https://\",help:\"No link to the comment itself? Use the page it's on.\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){return compactCsl({type:\"post\",\"ws-kind\":\"comment\",\"ws-on\":commentOn(v),title:textOf(v,\"title\").replace(/\\s+/g,\" \"),author:forumNamesToCsl(namesOf(v,\"creators\")),\"ws-parent\":textOf(v,\"parentTitle\")||undefined,\"ws-parent-author\":namesToCsl(namesOf(v,\"parentAuthor\")),\"container-title\":textOf(v,\"site\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),\"ws-time\":textOf(v,\"time\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const on=String(csl[\"ws-on\"]??\"\");return{commentOn:COMMENT_ON.some(o=>o.value===on)?on:\"article\",title:String(csl.title??\"\"),creators:forumNamesFromCsl(csl.author),parentTitle:String(csl[\"ws-parent\"]??\"\"),parentAuthor:forumNamesFromCsl(csl[\"ws-parent-author\"]),site:String(csl[\"container-title\"]??\"\"),date:dateFromCsl(csl.issued),time:String(csl[\"ws-time\"]??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A link to the article, video or post the comment is on: that work fills the \"comment on\" part,\n// and the student adds the comment itself.\nconst on=csl[\"ws-kind\"]===\"video\"||csl.type===\"motion_picture\"?\"video\":csl.type===\"post\"?\"post\":csl.type===\"post-weblog\"?\"blog\":\"article\";if(csl[\"ws-kind\"]===\"comment\")return null;const site=String(csl[\"container-title\"]??csl.publisher??\"\");return{commentOn:on,parentTitle:String(csl.title??\"\"),parentAuthor:forumNamesFromCsl(csl.author),site,url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:\"comment\"});const words=textOf(v,\"title\").split(/\\s+/).filter(Boolean).length;if(ctx.family===\"apa\"&&words>20)hints.push({tone:\"info\",text:\"APA uses the first 20 words of a comment as its title, so the preview shortens it.\"});if(!textOf(v,\"parentTitle\"))hints.push({tone:\"info\",text:`Add the title of the ${onWord(v)}: every style names what the comment answers.`});return hints;},examples:[]};// ---- SourcePress.ts ----------------------------------------------\n/**\n * Press release: an organization's own release on its website, or one sent out through a wire service\n * (PR Newswire, Business Wire, GlobeNewswire). CSL \"webpage\" marked ws-kind \"press\" with genre \"Press\n * release\": the organization as author, the full date, the wire service (when there is one) in publisher.\n * APA leaves the publisher out when it's the author (10.16); CitePrep.preparePress words the rest.\n */const WIRE_SERVICES=[\"PR Newswire\",\"Business Wire\",\"GlobeNewswire\",\"Cision\",\"EIN Presswire\",\"Accesswire\"];const PRESS_SOURCE={id:\"press\",label:\"Press release\",cslType:\"webpage\",citeLabel:\"Cite press release\",autofillLabel:\"Paste the link to the press release\",owns:[\"title\",\"author\",\"genre\",\"container-title\",\"publisher\",\"issued\",\"URL\",\"accessed\",\"ws-kind\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Title\",placeholder:\"NASA selects new science instruments for lunar missions\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Organization\",nameKinds:[\"org\",\"person\"],help:\"The company, agency or group that issued it.\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Release date\"},{key:\"publisher\",kind:\"text\",level:\"optional\",label:\"Published by\",placeholder:\"PR Newswire\",help:\"Only when a wire service or another site published it. Leave it blank for the organization's own site.\",suggestions:WIRE_SERVICES,half:true},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Paragraph number, for a quote\",placeholder:\"3\",locator:\"paragraph\",half:true},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){return compactCsl({type:\"webpage\",\"ws-kind\":\"press\",genre:\"Press release\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),publisher:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const author=csl.author?.[0]?.literal??\"\";const site=String(csl.publisher??csl[\"container-title\"]??\"\");return{title:String(csl.title??\"\"),creators:csl.author?.length?namesFromCsl(csl.author):site&&!WIRE_SERVICES.includes(site)?[{kind:\"org\",name:site}]:[],publisher:site&&site.toLowerCase()!==author.toLowerCase()&&(WIRE_SERVICES.includes(site)||csl.author?.length)?site:\"\",date:dateFromCsl(csl.issued),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A release read from the organization's newsroom comes back as a webpage or a news article.\nif(![\"webpage\",\"article-newspaper\",\"article-magazine\",\"post-weblog\",\"report\"].includes(csl.type))return null;return PRESS_SOURCE.fromCsl(csl);},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceEncyclopedia.ts ---------------------------------------\n/**\n * Encyclopedia entry, online (Britannica, the Stanford Encyclopedia of Philosophy) or in print. CSL\n * \"entry-encyclopedia\" marked ws-kind \"encyclopedia\": the entry in title, the encyclopedia in\n * container-title, its editors, edition, volume and pages, the date the entry was published or last\n * updated. Wikipedia has its own form (SourceWiki.ts). An online entry with no date and content that\n * changes gets APA's retrieval date (10.3), which the style file prints from accessed.\n */const ENCYCLOPEDIAS=[\"Encyclopaedia Britannica\",\"Stanford Encyclopedia of Philosophy\",\"Internet Encyclopedia of Philosophy\",\"World History Encyclopedia\",\"Encyclopedia.com\",\"Scholarpedia\"];const refPrint=v=>v.medium===\"print\";/** The fields an encyclopedia or dictionary entry shares (the dictionary form renames a few). */function referenceToCsl(v,type,kind){const p=refPrint(v);return compactCsl({type,\"ws-kind\":kind,title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"work\")||undefined,editor:namesToCsl(namesOf(v,\"editors\")),edition:textOf(v,\"edition\").replace(/(st|nd|rd|th)?\\.?\\s*(ed\\.?|edition)$/i,\"\").trim()||undefined,volume:p?textOf(v,\"volume\")||undefined:undefined,page:p?textOf(v,\"pages\").replace(/^pp?\\.\\s*/i,\"\").replace(/\\s*[-–—]\\s*/g,\"-\")||undefined:undefined,publisher:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),DOI:p?undefined:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:p?undefined:textOf(v,\"url\")||undefined,accessed:p?undefined:dateToCsl(dateOf(v,\"accessed\"))});}function referenceFromCsl(csl){const print=Boolean(csl.page||csl.volume)&&!csl.URL&&!csl.DOI;return{medium:print?\"print\":\"online\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),work:String(csl[\"container-title\"]??\"\"),editors:namesFromCsl(csl.editor),edition:String(csl.edition??\"\"),volume:String(csl.volume??\"\"),pages:String(csl.page??\"\"),publisher:String(csl.publisher??\"\"),date:dateFromCsl(csl.issued),doi:String(csl.DOI??\"\"),url:String(csl.DOI?\"\":csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};}const MEDIUM_FIELD={key:\"medium\",kind:\"segmented\",level:\"optional\",label:\"Where did you read it?\",options:[{value:\"online\",label:\"Online\"},{value:\"print\",label:\"In print\"}],initial:()=>\"online\",quiet:true};const ENCYCLOPEDIA_SOURCE={id:\"encyclopedia\",label:\"Encyclopedia entry\",cslType:\"entry-encyclopedia\",citeLabel:\"Cite entry\",autofillLabel:\"Paste the link to the entry\",owns:[\"title\",\"author\",\"container-title\",\"editor\",\"edition\",\"volume\",\"page\",\"publisher\",\"issued\",\"DOI\",\"URL\",\"accessed\",\"ws-kind\"],fields:[MEDIUM_FIELD,{key:\"title\",kind:\"text\",level:\"required\",label:\"Entry title\",placeholder:\"Photosynthesis\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Author(s) of the entry\",nameKinds:[\"person\",\"org\"],help:\"No author named? Leave it blank.\"},{key:\"work\",kind:\"text\",level:\"required\",label:\"Encyclopedia name\",placeholder:\"Encyclopaedia Britannica\",suggestions:ENCYCLOPEDIAS},{key:\"editors\",kind:\"names\",level:\"optional\",label:\"Editor(s) of the encyclopedia\",nameKinds:[\"person\",\"org\"]},{key:\"date\",kind:\"date\",level:\"recommended\",label:v=>refPrint(v)?\"Year published\":\"Date published or last updated\",help:v=>refPrint(v)?undefined:\"Use the entry's own date. None shown? Leave it blank and keep the date accessed.\"},{key:\"edition\",kind:\"text\",level:\"optional\",label:\"Edition\",placeholder:v=>refPrint(v)?\"2nd\":\"Summer 2024\",half:true},{key:\"volume\",kind:\"text\",level:\"optional\",label:\"Volume\",placeholder:\"7\",half:true,showIf:refPrint},{key:\"pages\",kind:\"text\",level:\"recommended\",label:\"Pages\",placeholder:\"305-309\",half:true,showIf:refPrint},{key:\"publisher\",kind:\"text\",level:\"recommended\",label:\"Publisher\",placeholder:v=>refPrint(v)?\"Oxford University Press\":\"Encyclopaedia Britannica, Inc.\",help:\"APA and MLA leave it out when it's the encyclopedia's own name.\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\",showIf:v=>!refPrint(v)},{key:\"doi\",kind:\"text\",level:\"optional\",label:\"DOI\",placeholder:\"10.\",half:true,showIf:v=>!refPrint(v)},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Paragraph number, for a quote\",placeholder:\"3\",locator:\"paragraph\",half:true,showIf:v=>!refPrint(v)},{key:\"pageLocator\",kind:\"text\",level:\"optional\",label:\"Page number, for a quote\",placeholder:\"306\",locator:\"page\",half:true,showIf:refPrint},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue,showIf:v=>!refPrint(v)},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl:v=>referenceToCsl(v,\"entry-encyclopedia\",\"encyclopedia\"),fromCsl:referenceFromCsl,adopt(csl){// An encyclopedia site we don't know comes back as a webpage: its site is the encyclopedia.\nif(csl.type!==\"webpage\"&&csl.type!==\"entry-dictionary\"&&csl.type!==\"chapter\")return null;return referenceFromCsl({...csl,\"container-title\":csl[\"container-title\"]??csl.publisher});},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:\"entry title\"});if(ctx.family===\"chicago\")hints.push({tone:\"info\",text:\"Chicago usually cites well-known encyclopedias in a note only, not in the bibliography.\"});const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceDictionary.ts -----------------------------------------\n/**\n * Dictionary entry, online (Merriam-Webster, the Oxford English Dictionary, Cambridge) or in print. CSL\n * \"entry-dictionary\" marked ws-kind \"dictionary\": the word in title, the dictionary in container-title,\n * the group that writes it (Merriam-Webster, the American Psychological Association) as author. An online\n * dictionary changes over time, so APA gives no date and a retrieval date (10.3): the form keeps today's\n * date in Date accessed. The search bar looks a word up in the big online dictionaries.\n */const DICTIONARIES=[\"Merriam-Webster.com Dictionary\",\"Oxford English Dictionary\",\"Cambridge Dictionary\",\"Dictionary.com\",\"Collins English Dictionary\",\"Oxford Learner’s Dictionaries\",\"APA Dictionary of Psychology\"];const dictPrint=v=>v.medium===\"print\";const DICTIONARY_SOURCE={id:\"dictionary\",label:\"Dictionary entry\",cslType:\"entry-dictionary\",citeLabel:\"Cite definition\",search:\"dictionary\",autofillLabel:\"Type a word, or paste the dictionary link\",owns:[\"title\",\"author\",\"container-title\",\"editor\",\"edition\",\"volume\",\"page\",\"publisher\",\"issued\",\"DOI\",\"URL\",\"accessed\",\"ws-kind\",\"ws-pos\"],fields:[{key:\"medium\",kind:\"segmented\",level:\"optional\",label:\"Where did you look it up?\",options:[{value:\"online\",label:\"Online\"},{value:\"print\",label:\"In print\"}],initial:()=>\"online\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:\"Word\",placeholder:\"culture\",help:\"The word as the dictionary lists it. Each style adds its own capitals.\"},{key:\"pos\",kind:\"select\",level:\"optional\",label:\"Part of speech\",options:[{value:\"\",label:\"Not needed\"},...[\"noun\",\"verb\",\"adjective\",\"adverb\",\"pronoun\",\"preposition\",\"conjunction\",\"interjection\"].map(p=>({value:p,label:p.charAt(0).toUpperCase()+p.slice(1)}))],help:\"MLA and Chicago add it after the word, as the dictionary shows it.\",half:true},{key:\"work\",kind:\"text\",level:\"required\",label:\"Dictionary\",placeholder:\"Merriam-Webster.com Dictionary\",suggestions:DICTIONARIES},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Author\",nameKinds:[\"org\",\"person\"],help:\"Usually the publisher, like Merriam-Webster. APA puts it first.\"},{key:\"date\",kind:\"date\",level:\"optional\",label:v=>dictPrint(v)?\"Year published\":\"Date updated\",help:v=>dictPrint(v)?undefined:\"Most online dictionaries show no date. Leave it blank: APA then uses n.d. and the date you looked it up.\"},{key:\"editors\",kind:\"names\",level:\"optional\",label:\"Editor(s)\",nameKinds:[\"person\",\"org\"],showIf:dictPrint},{key:\"edition\",kind:\"text\",level:\"optional\",label:\"Edition\",placeholder:\"11th\",half:true},{key:\"pages\",kind:\"text\",level:\"optional\",label:\"Page\",placeholder:\"304\",half:true,showIf:dictPrint},{key:\"publisher\",kind:\"text\",level:\"optional\",label:\"Publisher\",placeholder:v=>dictPrint(v)?\"Merriam-Webster\":\"Oxford University Press\",help:\"Only when it isn't the author.\"},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\",showIf:v=>!dictPrint(v)},{key:\"accessed\",kind:\"date\",level:\"recommended\",label:\"Date you looked it up\",initial:todayValue,showIf:v=>!dictPrint(v),help:\"APA and MLA give it for online dictionaries, which change.\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Definition number, for a quote\",placeholder:\"2\",locator:\"definition\",half:true},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl:v=>({...referenceToCsl(v,\"entry-dictionary\",\"dictionary\"),...textOf(v,\"pos\")?{\"ws-pos\":textOf(v,\"pos\")}:{}}),fromCsl:csl=>({...referenceFromCsl(csl),pos:String(csl[\"ws-pos\"]??\"\")}),adopt(csl){// A dictionary site we don't know comes back as a webpage: its site is the dictionary.\nif(csl.type!==\"webpage\"&&csl.type!==\"entry-encyclopedia\")return null;if(csl[\"ws-kind\"]===\"wiki\"&&!/wiktionary/i.test(String(csl[\"container-title\"]??\"\")))return null;// Wiktionary: no publisher, as for Wikipedia (APA doesn't name the Wikimedia Foundation).\nconst values=referenceFromCsl({...csl,\"container-title\":csl[\"container-title\"]??csl.publisher});if(/^wikimedia foundation$/i.test(String(values.publisher??\"\")))values.publisher=\"\";return values;},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:\"word\"}).filter(h=>!/^No date/.test(h.text)||dictPrint(v));if(ctx.family===\"chicago\")hints.push({tone:\"info\",text:\"Chicago usually cites dictionaries in a note only, not in the bibliography.\"});if(!dictPrint(v)&&!textOf(v,\"url\"))hints.push({tone:\"info\",text:\"Add the link to the entry: APA and MLA end with it.\"});return hints;},examples:[]};// ---- SourceConference.ts -----------------------------------------\n/**\n * Conference paper published in proceedings (a book of proceedings from ACM, IEEE or Springer, or an\n * online proceedings with a DOI). CSL \"paper-conference\": the proceedings in container-title, its\n * editors, the conference in event-title and its place in event-place, pages, publisher and DOI.\n * Proceedings published in a journal are cited as journal articles (APA 10.5), so a journal record found\n * here switches to that form. A talk that wasn't published is a conference presentation.\n */const CONFERENCE_SOURCE={id:\"conference\",label:\"Conference paper\",cslType:\"paper-conference\",citeLabel:\"Cite paper\",search:\"conference\",autofillLabel:\"Search by title or DOI, or paste a link\",owns:[\"title\",\"author\",\"container-title\",\"editor\",\"event-title\",\"event-place\",\"page\",\"volume\",\"collection-title\",\"publisher\",\"issued\",\"DOI\",\"URL\",\"ISBN\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Paper title\",placeholder:\"Attention is all you need\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Author(s)\",nameKinds:[\"person\",\"org\"]},{key:\"proceedings\",kind:\"text\",level:\"required\",label:\"Proceedings title\",placeholder:\"Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems\",help:\"The book or volume the paper appears in.\"},{key:\"editors\",kind:\"names\",level:\"optional\",label:\"Editor(s) of the proceedings\",nameKinds:[\"person\",\"org\"]},{key:\"conference\",kind:\"text\",level:\"optional\",label:\"Conference name\",placeholder:\"CHI 2019\",help:\"IEEE and Chicago name it when the proceedings title doesn't.\",half:true},{key:\"place\",kind:\"text\",level:\"optional\",label:\"Conference location\",placeholder:\"Glasgow, Scotland\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year published\"},{key:\"pages\",kind:\"text\",level:\"recommended\",label:\"Pages\",placeholder:\"1-12\",half:true},{key:\"volume\",kind:\"text\",level:\"optional\",label:\"Volume\",placeholder:\"30\",half:true},{key:\"series\",kind:\"text\",level:\"optional\",label:\"Series\",placeholder:\"Lecture Notes in Computer Science\",quiet:true},{key:\"publisher\",kind:\"text\",level:\"recommended\",label:\"Publisher\",placeholder:\"Association for Computing Machinery\"},{key:\"doi\",kind:\"text\",level:\"recommended\",label:\"DOI\",placeholder:\"10.1145/3290605.3300233\"},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\",help:\"Only when the paper has no DOI.\"},{key:\"locator\",kind:\"text\",level:\"optional\",label:\"Page number, for a quote\",placeholder:\"4\",locator:\"page\",half:true},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){return compactCsl({type:\"paper-conference\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"container-title\":textOf(v,\"proceedings\")||undefined,editor:namesToCsl(namesOf(v,\"editors\")),\"event-title\":textOf(v,\"conference\")||undefined,\"event-place\":textOf(v,\"place\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),page:textOf(v,\"pages\").replace(/^pp?\\.\\s*/i,\"\").replace(/\\s*[-–—]\\s*/g,\"-\")||undefined,volume:textOf(v,\"volume\")||undefined,\"collection-title\":textOf(v,\"series\")||undefined,publisher:textOf(v,\"publisher\")||undefined,DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:textOf(v,\"url\")||undefined});},fromCsl(csl){return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),proceedings:String(csl[\"container-title\"]??\"\"),editors:namesFromCsl(csl.editor),conference:String(csl[\"event-title\"]??csl.event??\"\"),place:String(csl[\"event-place\"]??\"\"),date:dateFromCsl(csl.issued),pages:String(csl.page??\"\"),volume:String(csl.volume??\"\"),series:String(csl[\"collection-title\"]??\"\"),publisher:String(csl.publisher??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.DOI?\"\":csl.URL??\"\")};},adopt(csl){// A proceedings volume registered as a book chapter (Springer's Lecture Notes) is a conference paper, and\n// so is a paper whose proceedings page calls them a journal (NeurIPS's Advances in Neural Information\n// Processing Systems). A real journal, even one named Proceedings (PNAS), has an issue number.\nconst container=String(csl[\"container-title\"]??\"\");const proceedings=csl.type===\"article-journal\"&&!csl.issue&&/\\b(conference|symposium|workshop|neural information processing|proceedings of the (\\d{4}|\\d+(st|nd|rd|th))\\b)/i.test(container);if(csl.type!==\"chapter\"&&!proceedings)return null;return CONFERENCE_SOURCE.fromCsl({...csl,type:\"paper-conference\"});},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourcePresentation.ts ---------------------------------------\n/**\n * Conference presentation that wasn't published: a paper or poster presentation, a symposium, a keynote.\n * CSL \"speech\" marked ws-kind \"presentation\": the kind of presentation in genre (APA's bracketed\n * description), the conference in event-title, its city in event-place, the conference's dates as a\n * range in issued (APA's \"2019, August 8–11\"). CiteOwn writes the entry for every style. A paper that\n * appeared in proceedings is a conference paper.\n */const PRESENTATION_KINDS=[\"Paper presentation\",\"Poster presentation\",\"Conference presentation\",\"Conference session\",\"Keynote address\",\"Symposium\",\"Roundtable discussion\"];/** The conference's first day and (optionally) its last day, as one CSL date range. */function rangeToCsl(start,end){const a=dateToCsl(start);const b=dateToCsl({year:end.year?.trim()||start.year,month:end.month||start.month,day:end.day});if(!a)return undefined;const[pa]=a[\"date-parts\"]??[];const pb=b?.[\"date-parts\"]?.[0];if(!pb||pb.length<3||!end.day?.trim()||pb.join(\"-\")===pa.join(\"-\"))return a;return{\"date-parts\":[pa,pb]};}const PRESENTATION_SOURCE={id:\"presentation\",label:\"Conference presentation\",cslType:\"speech\",citeLabel:\"Cite presentation\",autofillLabel:\"Paste a link to the program, abstract or recording\",owns:[\"title\",\"author\",\"genre\",\"event-title\",\"event-place\",\"issued\",\"URL\",\"accessed\",\"ws-kind\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Presentation title\",placeholder:\"Sleep and memory in first-year students\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Presenter(s)\",nameKinds:[\"person\",\"org\"]},{key:\"presKind\",kind:\"select\",level:\"recommended\",label:\"Type\",options:PRESENTATION_KINDS.map(k=>({value:k,label:k})),initial:()=>\"Paper presentation\",help:\"APA puts it in brackets after the title.\",half:true},{key:\"conference\",kind:\"text\",level:\"required\",label:\"Conference name\",placeholder:\"APA 2019 Convention\"},{key:\"place\",kind:\"text\",level:\"recommended\",label:\"Location\",placeholder:\"Chicago, IL, United States\",help:\"City, state and country, or Virtual.\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date of the presentation\",help:\"APA uses the conference's dates. Add its last day below for a range.\"},{key:\"endDate\",kind:\"date\",level:\"optional\",label:\"Last day of the conference\",quiet:true},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\",help:\"A recording, the slides or the abstract, if there's one online.\"},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){return compactCsl({type:\"speech\",\"ws-kind\":\"presentation\",genre:textOf(v,\"presKind\")||\"Paper presentation\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),\"event-title\":textOf(v,\"conference\")||undefined,\"event-place\":textOf(v,\"place\")||undefined,issued:rangeToCsl(dateOf(v,\"date\"),dateOf(v,\"endDate\")),URL:textOf(v,\"url\")||undefined});},fromCsl(csl){const genre=String(csl.genre??\"\");const end=csl.issued?.[\"date-parts\"]?.[1];return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),presKind:PRESENTATION_KINDS.find(k=>k.toLowerCase()===genre.toLowerCase())??(/poster/i.test(genre)?\"Poster presentation\":/keynote/i.test(genre)?\"Keynote address\":\"Paper presentation\"),conference:String(csl[\"event-title\"]??csl.event??\"\"),place:String(csl[\"event-place\"]??\"\"),date:dateFromCsl(csl.issued),endDate:end?dateFromCsl({\"date-parts\":[end]}):{},url:String(csl.URL??\"\")};},adopt(csl){// A recording or an abstract page: the talk's title, speakers and link.\nif(![\"webpage\",\"motion_picture\",\"speech\",\"paper-conference\"].includes(csl.type))return null;return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),conference:String(csl[\"event-title\"]??(csl.type===\"paper-conference\"?csl[\"container-title\"]??\"\":\"\")),place:String(csl[\"event-place\"]??\"\"),date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceSoftware.ts -------------------------------------------\n/**\n * Software and apps: a computer program (SPSS, R), a mobile app, a package (R or Python), code on GitHub.\n * CSL \"software\": the developer as author, the version in version, the kind in genre (APA's \"[Computer\n * software]\", \"[Mobile app]\"), where it's distributed (App Store, Google Play, GitHub, CRAN, PyPI) or the\n * company that publishes it in publisher.\n */const SOFTWARE_KINDS=[{value:\"Computer software\",label:\"Computer software\"},{value:\"Mobile app\",label:\"Mobile app\"},{value:\"Source code\",label:\"Code or repository\"}];const SOFTWARE_PLACES=[\"App Store\",\"Google Play\",\"GitHub\",\"CRAN\",\"PyPI\",\"Microsoft Store\",\"Steam\"];const SOFTWARE_SOURCE={id:\"software\",label:\"Software or app\",cslType:\"software\",citeLabel:\"Cite software\",search:\"software\",autofillLabel:\"Search the App Store, or paste an app, GitHub, CRAN or PyPI link\",owns:[\"title\",\"author\",\"version\",\"genre\",\"publisher\",\"issued\",\"DOI\",\"URL\",\"accessed\"],fields:[{key:\"softKind\",kind:\"segmented\",level:\"optional\",label:\"What is it?\",options:SOFTWARE_KINDS,initial:()=>\"Computer software\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:v=>v.softKind===\"Mobile app\"?\"App name\":\"Name\",placeholder:v=>v.softKind===\"Mobile app\"?\"Duolingo: Language lessons\":\"SPSS Statistics\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Developer(s)\",nameKinds:[\"org\",\"person\"],help:\"The company or the people who made it.\"},{key:\"version\",kind:\"text\",level:\"recommended\",label:\"Version\",placeholder:\"29.0\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year of this version\",half:true},{key:\"publisher\",kind:\"text\",level:\"optional\",label:v=>v.softKind===\"Mobile app\"?\"App store\":\"Publisher or platform\",placeholder:v=>v.softKind===\"Mobile app\"?\"App Store\":\"IBM\",help:\"Where it's distributed, or the company that sells it when that isn't the developer.\",suggestions:SOFTWARE_PLACES},{key:\"doi\",kind:\"text\",level:\"optional\",label:\"DOI\",placeholder:\"10.5281/zenodo.\",half:true,quiet:true},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){return compactCsl({type:\"software\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),version:textOf(v,\"version\").replace(/^(version|ver\\.?|v)\\s*/i,\"\")||undefined,genre:textOf(v,\"softKind\")||\"Computer software\",publisher:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),DOI:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const genre=String(csl.genre??\"\");return{softKind:/app/i.test(genre)?\"Mobile app\":/code|repositor/i.test(genre)?\"Source code\":\"Computer software\",// Zenodo names a GitHub release \"pandas-dev/pandas: Pandas\": the software's own name is after the colon.\ntitle:String(csl.title??\"\").replace(/^[\\w.-]+\\/[\\w.-]+:\\s+/,\"\"),creators:namesFromCsl(csl.author),version:String(csl.version??\"\"),date:dateFromCsl(csl.issued),publisher:String(csl.publisher??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A program's own site comes back as a webpage: its name and maker.\nif(csl.type!==\"webpage\")return null;const site=String(csl[\"container-title\"]??\"\");return{title:String(csl.title??site),creators:csl.author?.length?namesFromCsl(csl.author):site?[{kind:\"org\",name:site}]:[],date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx,{titleWord:\"name\"});if(!textOf(v,\"version\")&&ctx.family===\"apa\")hints.push({tone:\"info\",text:\"Add the version you used if you can find it (often under About or Settings).\"});const sc=sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourceDataset.ts --------------------------------------------\n/**\n * Dataset: a published dataset (ICPSR, Zenodo, Dryad, Harvard Dataverse, Figshare, Kaggle), a government\n * or organization dataset on its website (Pew, the U.S. Census Bureau, the World Bank), or unpublished\n * raw data. CSL \"dataset\": the repository or publisher in publisher, a study or catalog number in number,\n * the version in version. Unpublished raw data (ws-found \"unpublished\") has APA's bracketed description\n * in place of a title (10.9).\n */const DATA_REPOSITORIES=[\"ICPSR\",\"Zenodo\",\"Dryad\",\"Harvard Dataverse\",\"Figshare\",\"Kaggle\",\"OSF\",\"Mendeley Data\",\"UK Data Service\"];const dataUnpublished=v=>v.foundIn===\"unpublished\";const DATASET_SOURCE={id:\"dataset\",label:\"Dataset\",cslType:\"dataset\",citeLabel:\"Cite dataset\",search:\"dataset\",autofillLabel:\"Search by title or DOI, or paste a link\",owns:[\"title\",\"author\",\"version\",\"number\",\"genre\",\"publisher\",\"issued\",\"DOI\",\"URL\",\"accessed\",\"ws-found\"],fields:[{key:\"foundIn\",kind:\"segmented\",level:\"optional\",label:\"Is it published?\",options:[{value:\"published\",label:\"Published\"},{value:\"unpublished\",label:\"Unpublished raw data\"}],initial:()=>\"published\",quiet:true},{key:\"title\",kind:\"text\",level:\"required\",label:v=>dataUnpublished(v)?\"Description\":\"Title\",placeholder:v=>dataUnpublished(v)?\"Unpublished raw data on sleep and exam scores in first-year students\":\"American Trends Panel Wave 26\",help:v=>dataUnpublished(v)?\"No title? Describe the data. APA puts it in square brackets.\":undefined},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Author(s)\",nameKinds:[\"person\",\"org\"],help:\"The people or the organization that made the dataset.\"},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Year published\",half:true},{key:\"version\",kind:\"text\",level:\"optional\",label:\"Version\",placeholder:\"V1\",half:true,showIf:v=>!dataUnpublished(v)},{key:\"number\",kind:\"text\",level:\"optional\",label:\"Study or catalog number\",placeholder:\"ICPSR 21600\",half:true,showIf:v=>!dataUnpublished(v)},{key:\"publisher\",kind:\"text\",level:\"recommended\",label:\"Publisher or repository\",placeholder:\"Pew Research Center\",suggestions:DATA_REPOSITORIES,help:\"Leave it out when it's the author: APA doesn't repeat it.\",showIf:v=>!dataUnpublished(v)},{key:\"doi\",kind:\"text\",level:\"recommended\",label:\"DOI\",placeholder:\"10.3886/ICPSR36966.v1\",showIf:v=>!dataUnpublished(v)},{key:\"url\",kind:\"url\",level:\"optional\",label:\"URL\",placeholder:\"https://\",help:\"Only when there's no DOI.\",showIf:v=>!dataUnpublished(v)},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue,showIf:v=>!dataUnpublished(v)},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const raw=dataUnpublished(v);return compactCsl({type:\"dataset\",\"ws-found\":raw?\"unpublished\":undefined,title:textOf(v,\"title\").replace(/^\\[|\\]$/g,\"\"),author:namesToCsl(namesOf(v,\"creators\")),genre:raw?undefined:\"Data set\",version:raw?undefined:textOf(v,\"version\").replace(/^(version|ver\\.?)\\s*/i,\"\")||undefined,number:raw?undefined:textOf(v,\"number\")||undefined,publisher:raw?undefined:textOf(v,\"publisher\")||undefined,issued:dateToCsl(dateOf(v,\"date\")),DOI:raw?undefined:textOf(v,\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\")||undefined,URL:raw?undefined:textOf(v,\"url\")||undefined,accessed:raw?undefined:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){return{foundIn:csl[\"ws-found\"]===\"unpublished\"?\"unpublished\":\"published\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),date:dateFromCsl(csl.issued),version:String(csl.version??\"\"),number:String(csl.number??\"\"),publisher:String(csl.publisher??\"\"),doi:String(csl.DOI??\"\"),url:String(csl.DOI?\"\":csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},adopt(csl){// A dataset's landing page we couldn't place comes back as a webpage: its site is the publisher.\nif(csl.type!==\"webpage\")return null;const site=String(csl[\"container-title\"]??\"\");return{foundIn:\"published\",title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),publisher:site,date:dateFromCsl(csl.issued),url:String(csl.URL??\"\")};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const sc=dataUnpublished(v)?null:sentenceCaseHint(v,\"title\",ctx);if(sc)hints.push(sc);return hints;},examples:[]};// ---- SourcePatent.ts ---------------------------------------------\n/**\n * Patent: a granted patent or a published application (U.S., European, international). CSL \"patent\": the\n * inventors as author, the number in number (digits and commas, \"9,006,288\"), the country in ws-country\n * (\"US\", \"EP\", \"WO\"), the office that issued it in authority, the issue date in issued and the filing\n * date in submitted, the company it's assigned to in ws-assignee. CiteOwn writes each style's wording\n * (\"U.S. Patent No. 9,006,288\", \"US Patent 9,006,288\").\n */const PATENT_OFFICES={US:\"U.S. Patent and Trademark Office\",EP:\"European Patent Office\",WO:\"World Intellectual Property Organization\",GB:\"UK Intellectual Property Office\",CA:\"Canadian Intellectual Property Office\",AU:\"IP Australia\",CN:\"China National Intellectual Property Administration\",JP:\"Japan Patent Office\",DE:\"German Patent and Trade Mark Office\"};/** \"US9006288B2\", \"US 9,006,288 B2\" or \"9006288\": the country, the number with commas (U.S. style) and\n *  the kind code. */function parsePatentNumber(raw){const t=raw.replace(/^(u\\.?\\s?s\\.?\\s*)?(patent\\s*)?(no\\.?|number)?\\s*/i,m=>/u\\.?\\s?s/i.test(m)?\"US\":\"\").replace(/\\s+/g,\"\");const m=t.match(/^([A-Z]{2})?:?([\\d,/]+)([A-Z]\\d?)?$/i);if(!m)return{country:\"\",number:raw.trim(),kind:\"\"};const country=(m[1]??\"\").toUpperCase();const digits=m[2].replace(/,/g,\"\");// U.S. patent numbers are written with commas; applications (2014/0011876) and other offices as given.\nconst number=/^\\d{5,8}$/.test(digits)&&(country===\"US\"||!country)?Number(digits).toLocaleString(\"en-US\"):m[2];return{country,number,kind:(m[3]??\"\").toUpperCase()};}const PATENT_SOURCE={id:\"patent\",label:\"Patent\",cslType:\"patent\",citeLabel:\"Cite patent\",search:\"patent\",autofillLabel:\"Type the patent number or title, or paste a Google Patents link\",owns:[\"title\",\"author\",\"number\",\"authority\",\"issued\",\"submitted\",\"URL\",\"accessed\",\"ws-country\",\"ws-kindcode\",\"ws-assignee\"],fields:[{key:\"title\",kind:\"text\",level:\"required\",label:\"Title of the patent\",placeholder:\"Composition and method for treatment of diabetes\"},{key:\"creators\",kind:\"names\",level:\"recommended\",label:\"Inventor(s)\",nameKinds:[\"person\",\"org\"]},{key:\"number\",kind:\"text\",level:\"required\",label:\"Patent number\",placeholder:\"US 9,006,288 B2\",help:\"With its country code, like US or EP.\",half:true},{key:\"date\",kind:\"date\",level:\"recommended\",label:\"Date issued\",help:\"For an application that isn't granted yet, the date it was published.\"},{key:\"filed\",kind:\"date\",level:\"optional\",label:\"Date filed\",help:\"Chicago gives both dates.\",quiet:true},{key:\"authority\",kind:\"text\",level:\"optional\",label:\"Patent office\",placeholder:\"U.S. Patent and Trademark Office\",help:\"Filled in from the country code. APA names it.\",suggestions:Object.values(PATENT_OFFICES)},{key:\"assignee\",kind:\"text\",level:\"optional\",label:\"Assigned to\",placeholder:\"Biokier Inc.\",help:\"The company that owns it. Only some styles use it.\",quiet:true,half:true},{key:\"url\",kind:\"url\",level:\"recommended\",label:\"URL\",placeholder:\"https://patents.google.com/patent/...\"},{key:\"accessed\",kind:\"date\",level:\"optional\",label:\"Date accessed\",initial:todayValue},{key:\"annotation\",kind:\"textarea\",level:\"optional\",label:\"Annotation\"}],toCsl(v){const n=parsePatentNumber(textOf(v,\"number\"));return compactCsl({type:\"patent\",title:textOf(v,\"title\"),author:namesToCsl(namesOf(v,\"creators\")),number:n.number||undefined,\"ws-country\":n.country||(textOf(v,\"authority\")&&/u\\.?s\\.?|united states/i.test(textOf(v,\"authority\"))?\"US\":undefined),\"ws-kindcode\":n.kind||undefined,authority:textOf(v,\"authority\")||PATENT_OFFICES[n.country]||undefined,issued:dateToCsl(dateOf(v,\"date\")),submitted:dateToCsl(dateOf(v,\"filed\")),\"ws-assignee\":textOf(v,\"assignee\")||undefined,URL:textOf(v,\"url\")||undefined,accessed:dateToCsl(dateOf(v,\"accessed\"))});},fromCsl(csl){const country=String(csl[\"ws-country\"]??\"\");const number=String(csl.number??\"\");const kind=String(csl[\"ws-kindcode\"]??\"\");return{title:String(csl.title??\"\"),creators:namesFromCsl(csl.author),number:[country&&!number.startsWith(country)?country:\"\",number,kind].filter(Boolean).join(\" \"),date:dateFromCsl(csl.issued),filed:dateFromCsl(csl.submitted),authority:String(csl.authority??\"\"),assignee:String(csl[\"ws-assignee\"]??\"\"),url:String(csl.URL??\"\"),accessed:dateFromCsl(csl.accessed)};},hints(v,csl,ctx){const hints=commonHints(v,csl,ctx);const n=parsePatentNumber(textOf(v,\"number\"));if(textOf(v,\"number\")&&!n.country&&!textOf(v,\"authority\"))hints.push({tone:\"info\",text:\"Add the country code (US, EP, WO) or the patent office, so readers know where it was issued.\"});return hints;},examples:[]};// ---- CiteSources.ts ----------------------------------------------\n/**\n * The source types, in the order the type menu lists them. Adding a source type: write its config\n * (copy SourceWebsite.ts), import it here and add it to SOURCE_TYPES and the build list in build.mjs.\n *//** Every type with a form. Hidden ones (own photo) aren't offered in the type menu. */const ALL_SOURCE_TYPES=[WEBSITE_SOURCE,BLOG_SOURCE,BOOK_SOURCE,CHAPTER_SOURCE,ARTICLE_SOURCE,CONFERENCE_SOURCE,NEWSPAPER_SOURCE,MAGAZINE_SOURCE,WIKI_SOURCE,ENCYCLOPEDIA_SOURCE,DICTIONARY_SOURCE,REPORT_SOURCE,PRESS_SOURCE,THESIS_SOURCE,DATASET_SOURCE,VIDEO_SOURCE,MOVIE_SOURCE,TV_SOURCE,PODCAST_SOURCE,LECTURE_SOURCE,PRESENTATION_SOURCE,SLIDES_SOURCE,SOCIAL_SOURCE,FORUM_SOURCE,COMMENT_SOURCE,SOFTWARE_SOURCE,PATENT_SOURCE,IMAGE_SOURCE,ARTWORK_SOURCE,AI_IMAGE_SOURCE,OWN_PHOTO_SOURCE];const SOURCE_TYPES=ALL_SOURCE_TYPES.filter(t=>!t.hidden);function sourceTypeById(id){return id===OTHER_SOURCE.id?OTHER_SOURCE:ALL_SOURCE_TYPES.find(t=>t.id===id);}/** The form that edits a saved citation: its type's own form, or \"Other source\" (which keeps the type). */function sourceTypeForCsl(csl){const kind=typeof csl[\"ws-kind\"]===\"string\"?csl[\"ws-kind\"]:\"\";// A film from the main generator has a director; a video (YouTube and the like) has a channel.\nif(!kind&&csl.type===\"motion_picture\")return(csl.director?.length?ALL_SOURCE_TYPES.find(t=>t.id===\"movie\"):undefined)??ALL_SOURCE_TYPES.find(t=>t.id===\"video\")??OTHER_SOURCE;// A preprint (CSL \"article\", as arXiv gives it) is the journal article form's \"Preprint\" status.\nif(!kind&&csl.type===\"article\")return ARTICLE_SOURCE;// Wikipedia from the main generator; other encyclopedias have their own form.\nif(!kind&&csl.type===\"entry-encyclopedia\"&&/wiki/i.test(String(csl[\"container-title\"]??\"\")))return WIKI_SOURCE;// A handbook entry (Oxford Handbooks register chapters as entries) is a chapter in a book.\nif(!kind&&(csl.type===\"entry-encyclopedia\"||csl.type===\"entry\")&&/handbook/i.test(String(csl[\"container-title\"]??\"\")))return CHAPTER_SOURCE;if(!kind&&csl.type===\"entry-encyclopedia\")return ENCYCLOPEDIA_SOURCE;if(!kind&&csl.type===\"entry-dictionary\")return DICTIONARY_SOURCE;if(!kind&&csl.type===\"article-newspaper\")return NEWSPAPER_SOURCE;if(!kind&&csl.type===\"article-magazine\")return MAGAZINE_SOURCE;// A talk given at a conference (a paper or poster presentation) is a conference presentation.\nif(!kind&&csl.type===\"speech\")return/poster|paper|conference|symposium|session/i.test(String(csl.genre??\"\"))?PRESENTATION_SOURCE:LECTURE_SOURCE;// A press release from the main generator (a genre, no form marker of its own).\nif(!kind&&/^press release$/i.test(String(csl.genre??\"\")))return PRESS_SOURCE;// A forum post from the main generator (a page that declares itself a discussion forum posting).\nif(!kind&&csl.type===\"post\"&&/forum/i.test(String(csl.genre??\"\")))return FORUM_SOURCE;return ALL_SOURCE_TYPES.find(t=>t.id===kind)??SOURCE_TYPES.find(t=>t.cslType===csl.type)??OTHER_SOURCE;}/** \"Where did you find it?\" on the image page: each choice opens the form that cites it properly. */const WHERE_CHOICES=[{id:\"online\",label:\"Online\",type:\"image\"},{id:\"article\",label:\"In a journal article\",type:\"article\",published:true,note:\"Most styles cite the article the figure came from, and credit the figure in its caption.\"},{id:\"book\",label:\"In a book\",type:\"book\",published:true,note:\"Most styles cite the book the figure came from, and credit the figure in its caption.\"},{id:\"artwork\",label:\"Artwork in a museum\",type:\"artwork\",note:\"Cite the artwork itself: the artist, the title, when it was made and the museum that holds it.\"},{id:\"social\",label:\"Social media\",type:\"social\",note:\"Cite the post the image appeared in.\"},{id:\"ai\",label:\"Made with AI\",type:\"ai-image\",note:\"Give the tool, the company and your prompt. Each style credits AI images its own way, and the preview follows it.\"},{id:\"own\",label:\"I took it myself\",type:\"own-photo\",note:\"Your own photos don't need a reference entry in these styles, only a caption.\"}];/** The \"Where did you find it?\" choice that matches a form. */function whereFor(typeId,published){return WHERE_CHOICES.find(w=>w.type===typeId&&Boolean(w.published)===(published&&(typeId===\"book\"||typeId===\"article\")))?.id??null;}// ---- CiteCaptions.ts ---------------------------------------------\n/**\n * CiteCaptions: figure captions and notes for when a student puts an image in their paper.\n *\n * CSL has no captions, so these are small templates fed by the same CSL-JSON as the reference entry\n * (plus the figure details from the form). Checked against:\n * - APA 7 (Publication Manual 12.14 to 12.18; apastyle.apa.org sample figures and clip art page):\n *   \"Figure 1\" in bold, the title in italic title case, then under the image\n *   \"Note. From Lava [Photograph], by Denali National Park and Preserve, 2013, Flickr (URL). CC BY 2.0.\"\n *   Other endings: \"Copyright 2018 by X.\" (plus \"Reprinted with permission.\" when you have it) and\n *   \"In the public domain.\" A figure from an article: From \"Title,\" by X. M. Wang, ..., 2018,\n *   Journal, 44(10), p. 1513 (DOI). An image whose license needs no credit gets no attribution.\n * - MLA 9 (Handbook 1.7, style.mla.org): \"Fig. 1. Mary Cassatt, Mother and Child, Wichita Art Museum.\"\n *   Names in normal order, elements separated by commas. AI images: \"Fig. 1. \"Prompt\" prompt, DALL-E,\n *   version 3, OpenAI, 23 Sept. 2024, URL.\" A caption with full details replaces a works-cited entry.\n * - Chicago 18 (ch. 3 and 14): \"Figure 1.\" then the image credited as in a note (\"Mustafa Fatemi,\n *   Title, December 3, 2024, photograph, Unsplash, URL.\"); \"Photograph by the author\" for your own.\n * - Harvard, Cite Them Right: \"Figure 1: Title (Source: Author, Year, p. 5). CC BY 4.0.\"; your own\n *   images get \"Photograph by author\" and no reference.\n *\n * Pure functions, no DOM: unit tested in Node. Output is HTML limited to <b> and <i>.\n *//* ------------------------------------------------------------ fields -- */const NO_CREDIT_LICENSES=new Set([\"Unsplash License\",\"Pexels License\",\"Pixabay Content License\"]);const LICENSES=[{value:\"CC BY\",label:\"CC BY\"},{value:\"CC BY-SA\",label:\"CC BY-SA\"},{value:\"CC BY-ND\",label:\"CC BY-ND\"},{value:\"CC BY-NC\",label:\"CC BY-NC\"},{value:\"CC BY-NC-SA\",label:\"CC BY-NC-SA\"},{value:\"CC BY-NC-ND\",label:\"CC BY-NC-ND\"},{value:\"CC0\",label:\"CC0 (no rights reserved)\"},{value:\"Public domain\",label:\"Public domain\"},{value:\"Unsplash License\",label:\"Unsplash License\"},{value:\"Pexels License\",label:\"Pexels License\"},{value:\"Pixabay Content License\",label:\"Pixabay Content License\"},{value:\"All rights reserved\",label:\"All rights reserved\"},{value:\"Other\",label:\"Other\"}];const isCc=v=>/^CC BY/.test(textOf(v,\"license\"));const isCopyrighted=v=>[\"\",\"All rights reserved\",\"Other\"].includes(textOf(v,\"license\"));/** The details only a figure needs, shown under \"Figure details\" for types that get captions. */const FIGURE_FIELDS=[{key:\"figureNumber\",kind:\"text\",level:\"optional\",label:\"Figure number\",placeholder:\"1\",half:true},{key:\"figureTitle\",kind:\"text\",level:\"optional\",label:\"Figure title\",placeholder:\"Lava the Sled Dog\",half:true,quiet:true},{key:\"license\",kind:\"select\",level:\"optional\",label:\"Copyright and license\",options:LICENSES,help:\"Look for it next to the image. It decides how the figure note credits the image.\",half:true},{key:\"licenseVersion\",kind:\"text\",level:\"optional\",label:\"License version\",placeholder:\"4.0\",half:true,showIf:isCc,quiet:true},{key:\"licenseOther\",kind:\"text\",level:\"optional\",label:\"License name\",placeholder:\"Getty Images license\",half:true,showIf:v=>textOf(v,\"license\")===\"Other\",quiet:true},{key:\"copyrightHolder\",kind:\"text\",level:\"optional\",label:\"Copyright holder\",placeholder:\"Jane Smith\",half:true,showIf:isCopyrighted,quiet:true},{key:\"copyrightYear\",kind:\"text\",level:\"optional\",label:\"Copyright year\",placeholder:\"2024\",half:true,showIf:isCopyrighted,quiet:true},{key:\"permission\",kind:\"checkbox\",level:\"optional\",label:\"I have permission to reuse it\",showIf:isCopyrighted,quiet:true}];/** A figure taken from a book or article: shown with the book or journal article form. */const PUBLISHED_FIGURE_FIELDS=[{key:\"sourcePage\",kind:\"text\",level:\"recommended\",label:\"Page of the figure\",placeholder:\"12\",half:true},{key:\"sourceFigure\",kind:\"text\",level:\"recommended\",label:\"Figure number in the source\",placeholder:\"3\",half:true},{key:\"adapted\",kind:\"checkbox\",level:\"optional\",label:\"I changed or redrew it\"}];/* ----------------------------------------------------------- helpers -- */function escapeHtml(text){return text.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\");}const escCap=t=>escapeHtml(plainText(t));const ital=t=>`<i>${escCap(t)}</i>`;const MINOR=new Set([\"a\",\"an\",\"the\",\"and\",\"but\",\"or\",\"nor\",\"for\",\"so\",\"yet\",\"as\",\"at\",\"by\",\"in\",\"of\",\"off\",\"on\",\"per\",\"to\",\"up\",\"via\"]);/** APA title case: every word capitalized except minor words of three letters or fewer, which stay\n *  lowercase unless they start the title or follow a colon. Words with capitals inside (\"iPhone\",\n *  \"NASA\") are left alone. */function apaTitleCase(title){let first=true;return title.split(/(\\s+)/).map(w=>{if(!w.trim())return w;const lead=w.match(/^[^A-Za-z0-9]*/)?.[0]??\"\";const core=w.slice(lead.length);const out=/[A-Z]/.test(core.slice(1))?core:!first&&MINOR.has(core.toLowerCase().replace(/[^a-z]/g,\"\"))?core.toLowerCase():core.charAt(0).toUpperCase()+core.slice(1);first=/:$/.test(w);return lead+out;}).join(\"\");}function initials(given){return given.trim().split(/\\s+/).map(part=>part.split(\"-\").map(p=>p?`${p.charAt(0).toUpperCase()}.`:\"\").join(\"-\")).join(\" \");}function familyOf(n){return[n[\"non-dropping-particle\"],n.family].filter(Boolean).join(\" \");}/** \"X. M. Wang\" (APA notes). */function apaName(n){if(n.literal)return n.literal;return[n.given?initials(n.given):\"\",familyOf(n)].filter(Boolean).join(\" \");}/** \"Jane Smith\" (MLA and Chicago captions). */function naturalName(n){if(n.literal)return n.literal;return[n.given,familyOf(n)].filter(Boolean).join(\" \");}function surname(n){return n.literal??familyOf(n)??\"\";}function listAnd(names,serial){if(names.length<=1)return names[0]??\"\";if(names.length===2)return`${names[0]} and ${names[1]}`;return`${names.slice(0,-1).join(\", \")}${serial?\",\":\"\"} and ${names[names.length-1]}`;}const authorsOf=csl=>(csl.author??[]).filter(n=>n.literal||n.family||n.given);function captionYear(csl){const y=csl.issued?.[\"date-parts\"]?.[0]?.[0]??csl[\"original-date\"]?.[\"date-parts\"]?.[0]?.[0];return y?String(y):\"\";}const MLA_MONTHS=[\"Jan.\",\"Feb.\",\"Mar.\",\"Apr.\",\"May\",\"June\",\"July\",\"Aug.\",\"Sept.\",\"Oct.\",\"Nov.\",\"Dec.\"];const FULL_MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function dateParts(csl){return(csl.issued?.[\"date-parts\"]?.[0]??[]).map(p=>Number(p)).filter(n=>Number.isFinite(n));}/** \"7 Dec. 1972\" */function mlaDate(csl){const[y,m,d]=dateParts(csl);if(!y)return\"\";return[d&&m?d:\"\",m?MLA_MONTHS[m-1]:\"\",y].filter(Boolean).join(\" \");}/** \"December 7, 1972\" */function chicagoDate(csl){const[y,m,d]=dateParts(csl);if(!y)return\"\";if(!m)return String(y);return d?`${FULL_MONTHS[m-1]} ${d}, ${y}`:`${FULL_MONTHS[m-1]} ${y}`;}/** \"p. 12\" or \"pp. 12–14\", with the en dash the styles use in page ranges. */function pageRange(page){const p=page.trim().replace(/\\s*[-–—]\\s*/g,\"–\");return p?`${p.includes(\"–\")?\"pp.\":\"p.\"} ${p}`:\"\";}function doiUrl(csl){if(csl.DOI)return`https://doi.org/${csl.DOI}`;return String(csl.URL??\"\");}/** The license as a figure note or caption ends: \"CC BY 2.0.\", \"In the public domain.\", \"Copyright 2013 by X.\" */function licenseEnding(values,csl,family,adapted){const license=textOf(values,\"license\");if(/^CC BY/.test(license))return{text:`${license}${textOf(values,\"licenseVersion\")?` ${textOf(values,\"licenseVersion\")}`:\"\"}.`,credit:\"required\"};if(license===\"CC0\"||license===\"Public domain\")return{text:\"In the public domain.\",credit:\"required\"};if(NO_CREDIT_LICENSES.has(license))return{text:\"\",credit:\"none\"};if(license===\"Other\"&&textOf(values,\"licenseOther\"))return{text:`${escCap(textOf(values,\"licenseOther\")).replace(/\\.$/,\"\")}.`,credit:\"required\"};if(family!==\"apa\")return{text:\"\",credit:license?\"required\":\"assumed\"};// Holder: as given, else the creators, else the site or the book's publisher. A journal isn't a\n// copyright holder, so an article with none given gets no copyright line (and a tip to add it).\nconst fallbackOwner=csl.type===\"article-journal\"?\"\":plainText(String(csl.type===\"book\"?csl.publisher??\"\":csl[\"container-title\"]??csl.publisher??\"\"));const holder=textOf(values,\"copyrightHolder\")||listAnd(authorsOf(csl).map(n=>naturalName(n).replace(/\\s*\\[@[^\\]]*\\]$/,\"\")),false)||fallbackOwner;const year=textOf(values,\"copyrightYear\")||captionYear(csl);const copyright=holder?`Copyright${year?` ${escCap(year)}`:\"\"} by ${escCap(holder)}.`:\"\";const permission=values.permission?adapted?\" Adapted with permission.\":\" Reprinted with permission.\":\"\";return{text:copyright+permission,credit:license?\"required\":\"assumed\"};}const CAPTION_FAMILIES=[\"apa\",\"mla\",\"chicago\",\"harvard\"];/** Which kind of caption: the form's type, with book and article only when the figure came from one. */function kindOf(input){const{typeId,published}=input;if(typeId===\"image\"||typeId===\"artwork\"||typeId===\"social\")return typeId;if(typeId===\"ai-image\")return\"ai\";if(typeId===\"own-photo\")return\"own\";if(published&&(typeId===\"article\"||typeId===\"book\"))return typeId;return null;}/** The caption for a figure in the given style family, or null when the style or source has none. */function buildCaption(input){const kind=kindOf(input);if(!kind||!CAPTION_FAMILIES.includes(input.family))return null;switch(input.family){case\"apa\":return apaCaption(input,kind);case\"mla\":return mlaCaption(input,kind);case\"chicago\":return chicagoCaption(input,kind);default:return harvardCaption(input,kind);}}function partsOf(input,kind){const{csl,values}=input;const untitled=!plainText(csl.title).trim();const site=plainText(String(csl[\"container-title\"]??\"\")).trim();const authors=authorsOf(csl);const siteIsCreator=Boolean(site)&&authors.length===1&&(authors[0].literal??\"\").toLowerCase()===site.toLowerCase();const kindWord=kind===\"own\"?textOf(values,\"imageType\")||\"Photograph\":String(csl.genre??\"\");return{num:textOf(values,\"figureNumber\")||\"1\",title:untitled?String(csl.genre??\"\"):String(csl.title??\"\"),untitled,kindWord,site,siteIsCreator,url:String(csl.URL??\"\"),adapted:Boolean(values.adapted)};}const aiTool=csl=>[plainText(String(csl[\"container-title\"]??\"\")),plainText(String(csl.version??\"\"))].filter(Boolean).join(\" \");const aiCompany=csl=>authorsOf(csl).map(naturalName)[0]??\"\";const aiPrompt=csl=>plainText(String(csl[\"ws-prompt\"]??\"\")).trim();function joinParts(parts){return parts.filter(Boolean).join(\", \");}function endDot(text){return/[.?!]$/.test(plainText(text))||/[.?!]<\\/i>$/.test(text)?text:`${text}.`;}/* --------------------------------------------------------------- APA -- */function apaCaption(input,kind){const{csl,values}=input;const p=partsOf(input,kind);const figTitle=apaTitleCase(textOf(values,\"figureTitle\")||p.title||\"Figure title\");const lines=[`<b>Figure ${escCap(p.num)}</b>`,ital(figTitle)];const names=authorsOf(csl).map(apaName);const by=names.length?`by ${escCap(listAnd(names,names.length>2))}`:\"\";const year=captionYear(csl)||\"n.d.\";let note=\"\";let tip;if(kind===\"own\"){note=`${escCap(p.kindWord)} by the author.`;tip=\"APA doesn't need a reference entry for your own photos, only the figure number and title, and a note if you like.\";}else if(kind===\"ai\"){const prompt=aiPrompt(csl);const company=aiCompany(csl);note=`This image was generated by ${escCap(aiTool(csl)||\"an AI tool\")}${company?` (${escCap(company)}, ${captionYear(csl)||\"n.d.\"})`:\"\"}${prompt?` from the prompt “${escCap(prompt.replace(/[.]$/,\"\"))}.”`:\".\"}`;tip=\"APA asks you to say in the figure note that you used AI. Keep the reference entry too.\";}else{const lead=p.adapted?\"Adapted from\":\"From\";let source=\"\";if(kind===\"article\"){const volume=csl.volume?`${ital(String(csl.volume))}${csl.issue?`(${escCap(String(csl.issue))})`:\"\"}`:\"\";source=joinParts([`“${escCap(apaTitleCase(String(csl.title??\"\")))},”`,by,captionYear(csl)||\"n.d.\",csl[\"container-title\"]?ital(String(csl[\"container-title\"])):\"\",volume,pageRange(textOf(values,\"sourcePage\"))]);source=source.replace(\"”, \",\"” \");}else if(kind===\"book\"){const pp=pageRange(textOf(values,\"sourcePage\"));source=joinParts([`${ital(apaTitleCase(String(csl.title??\"\")))}${pp?` (${pp})`:\"\"}`,by,captionYear(csl)||\"n.d.\",escCap(String(csl.publisher??\"\"))]);}else{// APA 12.18: titles in a copyright attribution are in title case.\nconst titlePart=p.untitled?`[${escCap(p.title)}]`:`${ital(apaTitleCase(p.title))}${p.kindWord?` [${escCap(p.kindWord)}]`:\"\"}`;source=joinParts([titlePart,by,year,p.siteIsCreator?\"\":escCap(p.site)]);}const link=kind===\"article\"||kind===\"book\"?doiUrl(csl):p.url;const ending=licenseEnding(values,csl,\"apa\",p.adapted);if(ending.credit===\"none\"){tip=`The ${textOf(values,\"license\")} doesn't require credit, so APA needs no copyright note or reference entry for this image. Add them anyway if your instructor asks.`;}else{note=`${lead} ${source}${link?` (${escCap(link)})`:\"\"}.${ending.text?` ${ending.text}`:\"\"}`;tip=ending.credit===\"assumed\"&&!ending.text?\"Add the copyright holder under Figure details (for an article, usually the publisher) to finish the note. APA also needs a reference entry.\":ending.credit===\"assumed\"?\"No license picked, so the note treats the image as copyrighted. Pick its license under Figure details if the site shows one. APA also needs a reference entry.\":\"APA also needs a reference entry for this source, so add it to your list.\";}}if(note)lines.push(`<i>Note.</i> ${note}`);return{lines,imageAfter:2,tip};}/* --------------------------------------------------------------- MLA -- */function mlaNames(csl){const names=authorsOf(csl).map(naturalName);if(names.length>2)return`${names[0]} et al.`;return listAnd(names,false);}/** MLA 9 leaves \"https://\" out of URLs (DOIs keep theirs), in captions as in the Works Cited list. */function mlaCaption(input,kind){const caption=mlaCaptionRaw(input,kind);return{...caption,lines:caption.lines.map(l=>l.replace(/https?:\\/\\/(?!(dx\\.)?doi\\.org\\/)/g,\"\"))};}function mlaCaptionRaw(input,kind){const{csl,values}=input;const p=partsOf(input,kind);const label=`Fig. ${escCap(p.num)}.`;const tip=\"With the full source in the caption, you don't need a Works Cited entry for this image, unless you also cite it in your text.\";if(kind===\"own\")return{lines:[`${label} ${endDot(escCap(p.title))}`],tip:\"MLA assumes you made the images you don't credit, so there's no Works Cited entry for your own photos.\"};let body=\"\";if(kind===\"ai\"){const prompt=aiPrompt(csl);const version=plainText(String(csl.version??\"\"));body=joinParts([prompt?`“${escCap(prompt)}” prompt`:escCap(p.title||\"AI-generated image\"),ital(plainText(String(csl[\"container-title\"]??\"\"))),version?`version ${escCap(version)}`:\"\",escCap(aiCompany(csl)),mlaDate(csl),escCap(p.url)]);}else if(kind===\"article\"){body=joinParts([escCap(mlaNames(csl)),`“${escCap(headlineCase(String(csl.title??\"\")))},”`,csl[\"container-title\"]?ital(String(csl[\"container-title\"])):\"\",csl.volume?`vol. ${escCap(String(csl.volume))}`:\"\",csl.issue?`no. ${escCap(String(csl.issue))}`:\"\",captionYear(csl),pageRange(textOf(values,\"sourcePage\"))]).replace(\",”, \",\",” \");body=`${p.adapted?\"Adapted from\":\"From\"} ${body}`;}else if(kind===\"book\"){body=`${p.adapted?\"Adapted from\":\"From\"} ${joinParts([escCap(mlaNames(csl)),ital(headlineCase(String(csl.title??\"\"))),escCap(String(csl.publisher??\"\")),captionYear(csl),pageRange(textOf(values,\"sourcePage\"))])}`;}else{const title=p.untitled?escCap(p.title):kind===\"social\"?`“${escCap(p.title)}”`:ital(headlineCase(p.title));const creators=p.siteIsCreator?\"\":escCap(mlaNames(csl));if(kind===\"artwork\")body=joinParts([creators,title,captionYear(csl),escCap(p.site),escCap(p.url)]);else body=joinParts([creators,title,p.site?ital(p.site):\"\",mlaDate(csl),escCap(p.url)]);body=body.replace(/”, /,\",” \");}return{lines:[`${label} ${endDot(body)}`],tip};}/* ----------------------------------------------------------- Chicago -- */function chicagoNames(csl){const names=authorsOf(csl).map(naturalName);if(names.length>3)return`${names[0]} et al.`;return listAnd(names,true);}function chicagoCaption(input,kind){const{csl,values}=input;const p=partsOf(input,kind);const label=`Figure ${escCap(p.num)}.`;const lead=textOf(values,\"figureTitle\")?`${endDot(escCap(capitalFirst(textOf(values,\"figureTitle\"))))} `:\"\";const tip=\"Chicago usually credits an image in its caption and leaves it out of the bibliography, unless your instructor asks for both.\";if(kind===\"own\")return{lines:[`${label} ${lead}${lead?\"\":endDot(escCap(p.title))+\" \"}${escCap(p.kindWord)} by the author.`],tip:\"Your own photos only need a caption in Chicago.\"};let body=\"\";if(kind===\"ai\"){const prompt=aiPrompt(csl);body=`${endDot(joinParts([`Image generated by ${escCap(aiTool(csl)||\"an AI tool\")}`,escCap(aiCompany(csl)),chicagoDate(csl),escCap(p.url)]))}${prompt?` Prompt: “${escCap(prompt)}.”`:\"\"}`;return{lines:[`${label} ${lead}${body}`],tip};}const license=licenseEnding(values,csl,\"chicago\",p.adapted);if(kind===\"article\"||kind===\"book\"){const page=textOf(values,\"sourcePage\").replace(/\\s*[-–—]\\s*/g,\"–\");const fig=textOf(values,\"sourceFigure\")?`fig. ${escCap(textOf(values,\"sourceFigure\"))}`:\"\";const where=joinParts([page,fig]);if(kind===\"article\"){const volume=[csl.volume?escCap(String(csl.volume)):\"\",csl.issue?`no. ${escCap(String(csl.issue))}`:\"\"].filter(Boolean).join(\", \");body=`${joinParts([escCap(chicagoNames(csl)),`“${escCap(headlineCase(String(csl.title??\"\")))},”`]).replace(\",”, \",\",” \")} ${csl[\"container-title\"]?ital(String(csl[\"container-title\"])):\"\"}${volume?` ${volume}`:\"\"}${captionYear(csl)?` (${captionYear(csl)})`:\"\"}${where?`: ${where}`:\"\"}`;}else{body=`${joinParts([escCap(chicagoNames(csl)),ital(headlineCase(String(csl.title??\"\")))])} (${joinParts([escCap(String(csl.publisher??\"\")),captionYear(csl)])})${where?`, ${where}`:\"\"}`;}body=`${p.adapted?\"Adapted from\":\"Reproduced from\"} ${body.trim()}`;const link=doiUrl(csl);return{lines:[`${label} ${lead}${endDot(joinParts([body,escCap(link)]))}${license.text?` ${license.text}`:\"\"}`],tip};}// Images and artwork: the same note the bibliography's footnote uses (CiteEngine.chicagoImage).\nif(kind!==\"social\")body=chicagoImage(csl).note;else body=endDot(joinParts([escCap(chicagoNames(csl)),`“${escCap(p.title)}”`,escCap(p.site),chicagoDate(csl),escCap(p.url)]).replace(/”, /,\",” \"));return{lines:[`${label} ${lead}${body}${license.text?` ${license.text}`:\"\"}`],tip};}/* ----------------------------------------------------------- Harvard -- */function harvardNames(csl){const names=authorsOf(csl).map(surname).filter(Boolean);if(names.length>3)return`${names[0]} et al.`;return listAnd(names,false);}function harvardCaption(input,kind){const{csl,values}=input;const p=partsOf(input,kind);const label=`Figure ${escCap(p.num)}:`;const title=escCap(capitalFirst(textOf(values,\"figureTitle\")||p.title||\"Figure title\"));if(kind===\"own\")return{lines:[`${label} ${endDot(title)} ${escCap(p.kindWord)} by author.`],tip:\"Cite Them Right doesn't reference your own images. The caption is enough.\"};const who=kind===\"ai\"?aiCompany(csl):harvardNames(csl)||plainText(String(csl.title??\"\"));const page=kind===\"article\"||kind===\"book\"?pageRange(textOf(values,\"sourcePage\")):\"\";const source=joinParts([escCap(who),captionYear(csl)||\"no date\",page]);const ending=licenseEnding(values,csl,\"harvard\",p.adapted);const credit=/^(CC|In the public)/.test(ending.text)?` ${ending.text}`:\"\";return{lines:[`${label} ${title} (${p.adapted?\"Adapted from\":\"Source\"}: ${source}).${credit}`],tip:\"Cite Them Right also lists the source in your reference list.\"};}// ---- CiteForm.tsx ------------------------------------------------\n/**\n * CiteForm: the fields of a source type (from its config in CiteSourceTypes)\n * and the live preview card. Used by CitationGenerator for the form-first\n * source-type pages, manual entry and Edit.\n *\n * Fields are grouped the way students read a citation form: required and\n * recommended fields show, optional ones sit behind \"More options\" so the\n * form looks short. Everything is controlled by the parent; nothing here\n * touches storage or the network.\n *//** citeproc's two-column layout (numeric styles) as one inline line, for copying. */function inlineHtml(html){return html.replace(/<div class=\"csl-left-margin\">([\\s\\S]*?)<\\/div>/g,\"$1 \").replace(/<div class=\"csl-right-inline\">([\\s\\S]*?)<\\/div>/g,\"$1\").replace(/<div class=\"csl-entry\">([\\s\\S]*?)<\\/div>/g,\"$1\").replace(/<\\/?div[^>]*>/g,\"\").trim();}/* ---------------------------------------------------------------- CSS -- */const SOURCE_FORM_CSS=`\n.wsf-card{background:${T.white};border:1px solid ${T.border200};border-radius:18px;padding:20px 20px 18px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 2px 8px rgba(0,0,0,.035)}\n.wsf-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 14px}\n.wsf-title{margin:0;font-size:16px;line-height:1.3;color:${T.text};font-variation-settings:\"wght\" 560;font-weight:560}\n.wsf-typebar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:4px;border-bottom:1px solid ${T.border200}}\n.wsf-typebar .wsf-field{flex:1 1 220px;max-width:320px;margin:0}\n.wsf-field{display:block;min-width:0;margin-top:16px}\n.wsf-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}\n.wsf-label{font-size:14px;line-height:1.35;color:${T.text800};font-variation-settings:\"wght\" 560;font-weight:560}\n.wsf-noentry{margin:0 0 10px;font-size:14px;line-height:1.5;color:${T.text700}}\n.wsf-level{flex:none;font-size:12px;color:${T.text500}}\n.wsf-unsure{flex:none;display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:${T.bg100};color:${T.text700};font-size:12px}\n.wsf-seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:3px;border:1px solid ${T.border200};border-radius:12px;background:${T.bg50}}\n.wsf-seg label{position:relative;display:inline-flex;align-items:center;min-height:34px;padding:6px 14px;border-radius:9px;font-size:14px;color:${T.text700};cursor:pointer;transition:background-color .15s,color .15s,box-shadow .15s}\n.wsf-seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}\n.wsf-seg label:hover{color:${T.text}}\n.wsf-seg label.wsf-seg-on{background:${T.white};color:${T.text};box-shadow:0 1px 2px rgba(0,0,0,.06),0 0 0 1px ${T.border200}}\n.wsf-seg label:has(input:focus-visible){box-shadow:0 0 0 3px ${T.black5},0 0 0 1px ${T.border300}}\n.wsf-level--required{color:${T.text700}}\n.wsf-input,.wsf-select select,.wsf-textarea{display:block;width:100%;border:1px solid ${T.border200};border-radius:10px;background:${T.white};font-size:15px;color:${T.text};transition:border-color .15s,box-shadow .15s}\n.wsf-input{height:44px;padding:0 12px}\n.wsf-textarea{min-height:88px;padding:10px 12px;line-height:1.5;resize:vertical}\n.wsf-input::placeholder,.wsf-textarea::placeholder{color:${T.text500}}\n.wsf-input:hover,.wsf-select select:hover,.wsf-textarea:hover{border-color:${T.border300}}\n.wst-root .wsf-input:focus-visible,.wst-root .wsf-textarea:focus-visible,.wst-root .wsf-select select:focus-visible{outline:none;border-color:${T.border300};box-shadow:0 0 0 3px ${T.black5}}\n.wsf-input[aria-invalid=\"true\"]{border-color:${T.red}}\n.wsf-select{position:relative;display:block}\n.wsf-select select{height:44px;padding:0 34px 0 12px;appearance:none;-webkit-appearance:none;cursor:pointer;text-overflow:ellipsis}\n.wsf-select svg{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:${T.text600}}\n.wsf-help{margin:6px 0 0;font-size:13px;line-height:1.45;color:${T.text600}}\n.wsf-error{margin:6px 0 0;font-size:13px;line-height:1.45;color:${T.red}}\n.wsf-warn{display:flex;gap:6px;align-items:flex-start;margin:6px 0 0;font-size:13px;line-height:1.45;color:${T.amber}}\n.wsf-warn svg{flex:none;margin-top:1px}\n.wsf-check{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:14px;color:${T.text700};cursor:pointer}\n.wsf-check input{width:16px;height:16px;margin:0;accent-color:${T.text800};cursor:pointer}\n.wst-root .wsf-check input:focus-visible{outline:2px solid ${T.border300};outline-offset:2px}\n.wsf-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}\n.wsf-date{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr) minmax(0,4fr);gap:8px}\n.wsf-names{display:flex;flex-direction:column;gap:8px}\n.wsf-name{display:grid;gap:8px;align-items:center}\n.wsf-name--person{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}\n.wsf-name--org,.wsf-name--username{grid-template-columns:minmax(0,1fr) auto}\n.wsf-name--roles.wsf-name--person{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,150px) auto}\n.wsf-name--roles.wsf-name--org,.wsf-name--roles.wsf-name--username{grid-template-columns:minmax(0,1fr) minmax(0,150px) auto}\n.wsf-handle{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}\n.wsf-add{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:-2px}\n.wsf-add button{padding:2px 0;border:0;background:none;color:${T.text600};font-size:13px;text-decoration:underline;text-decoration-color:${T.border300};text-underline-offset:3px;cursor:pointer}\n.wsf-add button:hover{color:${T.text};text-decoration-color:currentColor}\n.wsf-name-spacer{width:32px}\n.wsf-more{margin-top:18px;border-top:1px solid ${T.border200};padding-top:6px}\n.wsf-more-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:6px 0;border:0;background:none;color:${T.text700};font-size:14px;cursor:pointer;text-align:left}\n.wsf-more-btn:hover{color:${T.text}}\n.wsf-more-btn svg{transition:transform .2s ${T.ease}}\n.wsf-more-btn[aria-expanded=\"true\"] svg{transform:rotate(180deg)}\n.wsf-more-btn strong{flex:none;font-weight:inherit;font-variation-settings:inherit}\n.wsf-more-btn span{min-width:0;color:${T.text500};font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsf-more-btn svg{flex:none}\n.wsf-more-body > .wsf-field:first-child,.wsf-more-body > .wsf-pair:first-child > .wsf-field{margin-top:4px}\n.wsf-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:20px}\n.wsf-foot-note{margin-right:auto;font-size:13px;color:${T.text600}}\n.wsf-go{height:44px;padding:0 22px;border-radius:12px;font-size:15px}\n.wsf-examples{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:13px;color:${T.text600}}\n.wsf-examples button{display:inline-flex;align-items:center;min-height:30px;padding:4px 11px;border:1px dashed ${T.border300};border-radius:9px;background:${T.bg50};color:${T.text800};font-size:13px;cursor:pointer}\n.wsf-examples button:hover{background:${T.bg100};border-color:${T.text500}}\n\n.wsf-typebar .wsf-where{max-width:none}\n.wsf-where .wsf-select{max-width:320px}\n.wsf-preview-examples{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px}\n.wsf-preview-examples span{font-size:12px;color:${T.text600}}\n.wsf-preview-examples button{padding:0;border:0;background:none;color:${T.text800};font-size:13.5px;line-height:1.45;text-align:left;text-decoration:underline;text-decoration-color:${T.border300};text-underline-offset:3px;cursor:pointer}\n.wsf-preview-examples button:hover{text-decoration-color:currentColor}\n.wsf-caption{font-size:14px;line-height:1.55;color:${T.text};overflow-wrap:anywhere}\n.wsf-caption p{margin:0}\n.wsf-caption-img{display:flex;align-items:center;justify-content:center;height:44px;margin:6px 0;border:1px dashed ${T.border300};border-radius:8px;color:${T.text500};font-size:12px}\n.wsf-caption-tip{margin:6px 0 0;font-size:12.5px;line-height:1.45;color:${T.text600}}\n.wsf-checkfield{margin-top:14px}\n.wsf-preview{background:${T.bg50};border:1px solid ${T.border200};border-radius:18px;padding:16px 18px 18px}\n.wsf-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}\n.wsf-preview-title{display:flex;align-items:baseline;gap:8px;margin:0;font-size:14px;color:${T.text800};font-variation-settings:\"wght\" 560;font-weight:560}\n.wsf-preview-title span{font-size:13px;color:${T.text500};font-variation-settings:\"wght\" 450;font-weight:450}\n.wsf-preview .wsf-preview-toggle{display:none}\n.wsf-block + .wsf-block{margin-top:14px}\n.wsf-block-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:12px;color:${T.text600}}\n.wsf-ref{font-size:15px;line-height:1.6;color:${T.text};overflow-wrap:anywhere}\n.wsf-ref--hang{padding-left:24px;text-indent:-24px}\n.wsf-ref .csl-left-margin{display:inline;padding-right:6px}\n.wsf-ref .csl-right-inline{display:inline}\n.wsf-ref--empty{color:${T.text500};font-size:14px;line-height:1.5}\n.wsf-ref--pending{opacity:.6}\n.wsf-chips{display:flex;flex-wrap:wrap;gap:6px}\n.wsf-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 3px 3px 10px;border-radius:8px;background:${T.white};border:1px solid ${T.border200};font-size:13px;color:${T.text800}}\n.wsf-chip > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsf-chip button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:${T.text600};cursor:pointer}\n.wsf-chip button:hover{background:${T.black5};color:${T.text}}\n.wsf-copy{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:${T.text600};font-size:12px;cursor:pointer}\n.wsf-copy:hover{background:${T.black5};color:${T.text}}\n.wsf-hints{list-style:none;margin:14px 0 0;padding:12px 0 0;border-top:1px solid ${T.border200};display:flex;flex-direction:column;gap:8px}\n.wsf-hint{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;color:${T.text700}}\n.wsf-hint svg{flex:none;margin-top:1px;color:${T.text500}}\n.wsf-hint--warn,.wsf-hint--warn svg{color:${T.amber}}\n.wsf-hint button{margin-left:4px;padding:0;border:0;background:none;color:${T.text800};text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:13px}\n.wsf-hint button:hover{color:${T.blue}}\n@media (max-width:720px){\n  .wsf-card{padding:16px 14px 14px;border-radius:16px}\n  .wsf-name--person,.wsf-name--roles.wsf-name--person{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}\n  .wsf-name--roles .wsf-select{grid-column:1 / -2}\n  .wsf-name--roles.wsf-name--org,.wsf-name--roles.wsf-name--username{grid-template-columns:minmax(0,1fr) auto}\n  .wsf-pair{grid-template-columns:minmax(0,1fr)}\n  .wsf-foot{flex-wrap:wrap}\n  .wsf-foot .wsf-go{flex:1}\n}\n`;/* ------------------------------------------------------------- pieces -- */const LEVEL_LABEL={required:\"Required\",recommended:\"Recommended\",optional:\"Optional\"};function FormSelect({id,value,options,onChange,placeholder,label,invalid}){return /*#__PURE__*/_jsxs(\"span\",{className:\"wsf-select\",children:[/*#__PURE__*/_jsxs(\"select\",{id:id,value:value,onChange:e=>onChange(e.target.value),\"aria-label\":label,\"aria-invalid\":invalid||undefined,children:[placeholder!==undefined?/*#__PURE__*/_jsx(\"option\",{value:\"\",children:placeholder}):null,options.map(o=>/*#__PURE__*/_jsx(\"option\",{value:o.value,children:o.label},o.value))]}),/*#__PURE__*/_jsx(Icons.ChevronDown,{size:16})]});}function DateInput({id,value,onChange,label}){return /*#__PURE__*/_jsxs(\"div\",{className:\"wsf-date\",role:\"group\",\"aria-labelledby\":`${id}-label`,children:[/*#__PURE__*/_jsx(\"input\",{id:id,className:\"wsf-input\",inputMode:\"numeric\",maxLength:4,placeholder:\"Year\",\"aria-label\":`${label}: year`,value:value.year??\"\",onChange:e=>onChange({...value,year:e.target.value.replace(/[^0-9]/g,\"\")})}),/*#__PURE__*/_jsx(FormSelect,{value:value.month??\"\",placeholder:\"Month\",label:`${label}: month`,options:MONTH_NAMES.map((m,i)=>({value:String(i+1),label:m})),onChange:month=>onChange({...value,month})}),/*#__PURE__*/_jsx(\"input\",{className:\"wsf-input\",inputMode:\"numeric\",maxLength:2,placeholder:\"Day\",\"aria-label\":`${label}: day`,value:value.day??\"\",onChange:e=>onChange({...value,day:e.target.value.replace(/[^0-9]/g,\"\")})})]});}const KIND_ADD={person:\"Add another person\",org:\"Add an organization\",username:\"Add a username\"};const KIND_INSTEAD={person:\"A person instead\",org:\"An organization instead\",username:\"A username instead\"};function NamesInput({id,field,value,onChange,label}){const kinds=field.nameKinds??[\"person\",\"org\"];const roles=field.roles;// One empty row to type into from the start (not yet a value), instead of a row of \"Add\" buttons.\nconst rows=value.length?value:[{kind:kinds[0],...roles?{role:roles[0].value}:{}}];const set=(i,patch)=>onChange(rows.map((n,j)=>j===i?{...n,...patch}:n));const remove=i=>onChange(value.filter((_,j)=>j!==i));const add=kind=>onChange([...rows,{kind,...roles?{role:roles[0].value}:{}}]);const lone=rows.length===1&&!nameFilled(rows[0]);return /*#__PURE__*/_jsxs(\"div\",{className:\"wsf-names\",role:\"group\",\"aria-labelledby\":`${id}-label`,children:[rows.map((n,i)=>/*#__PURE__*/_jsxs(\"div\",{className:cx(\"wsf-name\",`wsf-name--${n.kind}`,roles&&\"wsf-name--roles\"),children:[n.kind===\"person\"?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"input\",{id:i===0?id:undefined,className:\"wsf-input\",placeholder:\"First name\",\"aria-label\":`${label} ${i+1}: first name`,value:n.given??\"\",onChange:e=>set(i,{given:e.target.value}),onPaste:e=>{const pasted=pastedNames(e.clipboardData.getData(\"text\"),n.role);if(!pasted)return;e.preventDefault();onChange([...rows.slice(0,i),...pasted,...rows.slice(i+1)].filter((r,j)=>nameFilled(r)||j===0));},autoComplete:\"off\"}),/*#__PURE__*/_jsx(\"input\",{className:\"wsf-input\",placeholder:\"Last name\",\"aria-label\":`${label} ${i+1}: last name`,value:n.family??\"\",onChange:e=>set(i,{family:e.target.value}),autoComplete:\"off\"})]}):n.kind===\"org\"?/*#__PURE__*/_jsx(\"input\",{id:i===0?id:undefined,className:\"wsf-input\",placeholder:\"Organization name\",\"aria-label\":`${label} ${i+1}: organization`,value:n.name??\"\",onChange:e=>set(i,{name:e.target.value}),autoComplete:\"off\"}):/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-handle\",children:[/*#__PURE__*/_jsx(\"input\",{id:i===0?id:undefined,className:\"wsf-input\",placeholder:\"@username\",\"aria-label\":`${label} ${i+1}: username`,value:n.handle?`@${n.handle.replace(/^@+/,\"\")}`:\"\",onChange:e=>set(i,{handle:e.target.value.replace(/^@+/,\"\").replace(/\\s/g,\"\")}),autoComplete:\"off\"}),/*#__PURE__*/_jsx(\"input\",{className:\"wsf-input\",placeholder:\"Name (if shown)\",\"aria-label\":`${label} ${i+1}: display name`,value:n.name??\"\",onChange:e=>set(i,{name:e.target.value}),autoComplete:\"off\"})]}),roles?/*#__PURE__*/_jsx(FormSelect,{value:n.role??roles[0].value,options:roles,label:`${label} ${i+1}: role`,onChange:role=>set(i,{role})}):null,value.length>1||value.length===1&&!lone?/*#__PURE__*/_jsx(IconButton,{label:`Remove ${label.toLowerCase()} ${i+1}`,onClick:()=>remove(i),children:/*#__PURE__*/_jsx(Icons.X,{size:16})}):/*#__PURE__*/_jsx(\"span\",{className:\"wsf-name-spacer\",\"aria-hidden\":true})]},i)),/*#__PURE__*/_jsx(\"div\",{className:\"wsf-add\",children:lone?kinds.filter(k=>k!==rows[0].kind).map(k=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>onChange([{kind:k}]),children:KIND_INSTEAD[k]},k)):kinds.map(k=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>add(k),children:k===kinds[0]?KIND_ADD[k]:KIND_ADD[k]},k))})]});}function Field({field,values,onChange,issue,baseId,unsure}){const id=`${baseId}-${field.key}`;const label=resolveDyn(field.label,values);const placeholder=field.placeholder?resolveDyn(field.placeholder,values):undefined;const help=field.help?resolveDyn(field.help,values):undefined;const describedBy=[issue?.error&&`${id}-err`,issue?.warn&&`${id}-warn`,help&&`${id}-help`].filter(Boolean).join(\" \")||undefined;const v=values[field.key];if(field.kind===\"checkbox\"){return /*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field wsf-checkfield\",children:[/*#__PURE__*/_jsxs(\"label\",{className:\"wsf-check\",style:{marginTop:0},children:[/*#__PURE__*/_jsx(\"input\",{id:id,type:\"checkbox\",checked:Boolean(v),onChange:e=>onChange(field.key,e.target.checked),\"aria-describedby\":describedBy}),label]}),help?/*#__PURE__*/_jsx(\"p\",{id:`${id}-help`,className:\"wsf-help\",children:help}):null]});}if(field.kind===\"segmented\"){const current=typeof v===\"string\"&&v?v:field.options?.[0]?.value;return /*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"span\",{id:`${id}-label`,className:\"wsf-label\",children:label})}),/*#__PURE__*/_jsx(\"div\",{className:\"wsf-seg\",role:\"radiogroup\",\"aria-labelledby\":`${id}-label`,children:(field.options??[]).map(o=>/*#__PURE__*/_jsxs(\"label\",{className:cx(current===o.value&&\"wsf-seg-on\"),children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:id,value:o.value,checked:current===o.value,onChange:()=>onChange(field.key,o.value)}),o.label]},o.value))}),help?/*#__PURE__*/_jsx(\"p\",{id:`${id}-help`,className:\"wsf-help\",children:help}):null]});}let control;switch(field.kind){case\"textarea\":control=/*#__PURE__*/_jsx(\"textarea\",{id:id,className:\"wsf-textarea\",placeholder:placeholder,value:typeof v===\"string\"?v:\"\",onChange:e=>onChange(field.key,e.target.value),\"aria-describedby\":describedBy});break;case\"select\":control=/*#__PURE__*/_jsx(FormSelect,{id:id,value:typeof v===\"string\"?v:\"\",options:field.options??[],placeholder:\"Choose one\",onChange:x=>onChange(field.key,x)});break;case\"date\":control=/*#__PURE__*/_jsx(DateInput,{id:id,value:dateOf(values,field.key),label:label,onChange:x=>onChange(field.key,x)});break;case\"names\":control=/*#__PURE__*/_jsx(NamesInput,{id:id,field:field,value:namesOf(values,field.key),label:label,onChange:x=>onChange(field.key,x)});break;default:control=/*#__PURE__*/_jsx(\"input\",{id:id,className:\"wsf-input\",type:field.kind===\"url\"?\"url\":\"text\",inputMode:field.kind===\"url\"?\"url\":undefined,placeholder:placeholder,value:typeof v===\"string\"?v:\"\",onChange:e=>onChange(field.key,e.target.value),\"aria-invalid\":issue?.error?true:undefined,\"aria-required\":field.level===\"required\"||undefined,\"aria-describedby\":describedBy,autoComplete:\"off\",spellCheck:field.kind===\"url\"?false:undefined,list:field.suggestions?`${id}-list`:undefined});if(field.suggestions){control=/*#__PURE__*/_jsxs(_Fragment,{children:[control,/*#__PURE__*/_jsx(\"datalist\",{id:`${id}-list`,children:field.suggestions.map(sug=>/*#__PURE__*/_jsx(\"option\",{value:sug},sug))})]});}}return /*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-label-row\",children:[field.kind===\"date\"||field.kind===\"names\"?/*#__PURE__*/_jsx(\"span\",{id:`${id}-label`,className:\"wsf-label\",children:label}):/*#__PURE__*/_jsx(\"label\",{id:`${id}-label`,className:\"wsf-label\",htmlFor:id,children:label}),unsure?/*#__PURE__*/_jsx(\"span\",{className:\"wsf-unsure\",title:\"We filled this in but weren't sure. Check it against the source.\",children:\"Check this\"}):null,isRequired(field,values)?/*#__PURE__*/_jsx(\"span\",{className:\"wsf-level wsf-level--required\",children:LEVEL_LABEL.required}):null]}),control,field.toggle?/*#__PURE__*/_jsxs(\"label\",{className:\"wsf-check\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",checked:Boolean(values[field.toggle.key]),onChange:e=>onChange(field.toggle.key,e.target.checked)}),field.toggle.label]}):null,issue?.error?/*#__PURE__*/_jsx(\"p\",{id:`${id}-err`,className:\"wsf-error\",children:issue.error}):null,issue?.warn?/*#__PURE__*/_jsxs(\"p\",{id:`${id}-warn`,className:\"wsf-warn\",children:[/*#__PURE__*/_jsx(Icons.Alert,{size:14}),issue.warn]}):null,help?/*#__PURE__*/_jsx(\"p\",{id:`${id}-help`,className:\"wsf-help\",children:help}):null]});}/** Lays fields out in order, pairing consecutive half-width fields side by side. */function FieldList({fields,...rest}){const out=[];for(let i=0;i<fields.length;i++){const f=fields[i];const next=fields[i+1];if(f.half&&next?.half){out.push(/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-pair\",children:[/*#__PURE__*/_jsx(Field,{field:f,issue:rest.issues[f.key],values:rest.values,onChange:rest.onChange,baseId:rest.baseId,unsure:rest.unsure?.includes(f.key)}),/*#__PURE__*/_jsx(Field,{field:next,issue:rest.issues[next.key],values:rest.values,onChange:rest.onChange,baseId:rest.baseId,unsure:rest.unsure?.includes(next.key)})]},f.key));i++;}else{out.push(/*#__PURE__*/_jsx(Field,{field:f,issue:rest.issues[f.key],values:rest.values,onChange:rest.onChange,baseId:rest.baseId,unsure:rest.unsure?.includes(f.key)},f.key));}}return /*#__PURE__*/_jsx(_Fragment,{children:out});}/** The fields of one source type. Optional fields are folded away until asked for, or while one has a value. */function SourceFields({config,values,onChange,issues,extra=[],figure=[],unsure=[]}){const baseId=useId();const shown=f=>!f.showIf||f.showIf(values);const visible=config.fields.filter(shown);// A segmented choice (Online or Print, a page or a whole site) leads the form: it changes the fields.\nconst lead=visible.filter(f=>f.kind===\"segmented\");const main=[...lead,...visible.filter(f=>f.kind!==\"segmented\"&&(f.level!==\"optional\"||isRequired(f,values))),...extra.filter(shown)];// Everything optional, the type's own details and the figure's, sits behind one \"More options\".\nconst optional=[...visible.filter(f=>f.kind!==\"segmented\"&&f.level===\"optional\"&&!isRequired(f,values)),...figure.filter(shown)];const[open,setOpen]=useState(false);const moreId=`${baseId}-more`;const names=[...config.fields,...figure].filter(f=>f.level===\"optional\"&&f.kind!==\"segmented\"&&!f.showIf&&!f.quiet).map(f=>resolveDyn(f.label,values).toLowerCase());return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(FieldList,{fields:main,values:values,onChange:onChange,issues:issues,baseId:baseId,unsure:unsure}),optional.length?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-more\",children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wsf-more-btn\",\"aria-expanded\":open,\"aria-controls\":moreId,onClick:()=>setOpen(o=>!o),children:[/*#__PURE__*/_jsx(Icons.ChevronDown,{size:16}),/*#__PURE__*/_jsx(\"strong\",{children:\"More options\"}),/*#__PURE__*/_jsx(\"span\",{children:names.join(\", \")})]}),open?/*#__PURE__*/_jsx(\"div\",{id:moreId,className:\"wsf-more-body\",children:/*#__PURE__*/_jsx(FieldList,{fields:optional,values:values,onChange:onChange,issues:issues,baseId:baseId,unsure:unsure})}):null]}):null]});}/** \"Where did you find it?\": each choice opens the form that cites that kind of image properly. */function WhereChoice({value,choices,onChange}){const id=useId();const note=choices.find(c=>c.id===value)?.note;return /*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field wsf-where\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:id,children:\"Where did you find it?\"})}),/*#__PURE__*/_jsx(FormSelect,{id:id,value:value??\"\",options:choices.map(c=>({value:c.id,label:c.label})),onChange:onChange}),note?/*#__PURE__*/_jsx(\"p\",{className:\"wsf-help\",children:note}):null]});}/** A caption as it goes in a paper: for APA, the number and title above a space for the image, the note below. */function CaptionView({caption}){return /*#__PURE__*/_jsxs(\"div\",{className:\"wsf-caption\",children:[caption.lines.map((line,n)=>/*#__PURE__*/_jsxs(React.Fragment,{children:[caption.imageAfter===n?/*#__PURE__*/_jsx(\"div\",{className:\"wsf-caption-img\",\"aria-hidden\":true,children:\"Your image\"}):null,/*#__PURE__*/_jsx(\"p\",{dangerouslySetInnerHTML:{__html:line}})]},n)),caption.imageAfter!==undefined&&caption.imageAfter>=caption.lines.length?/*#__PURE__*/_jsx(\"div\",{className:\"wsf-caption-img\",\"aria-hidden\":true,children:\"Your image\"}):null]});}function PreviewCard({data,hints,empty,pending,error,styleLabel,onCopy,onFix,expanded,onToggle,caption,captionNote,captionOnly,onCopyCaption,examples=[],onExample,noEntry,onCopyText}){const html=data?.html;const showNarrative=data?.narrative&&!data.isNote&&data.narrative!==data.parenthetical;return /*#__PURE__*/_jsxs(\"div\",{className:cx(\"wsf-preview\",expanded&&\"wsf-preview--open\"),\"aria-live\":\"polite\",\"aria-atomic\":\"false\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-preview-head\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"wsf-preview-title\",children:[\"Preview \",/*#__PURE__*/_jsx(\"span\",{children:styleLabel})]}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wsf-copy wsf-preview-toggle\",\"aria-expanded\":expanded,onClick:onToggle,children:[expanded?\"Less\":\"More\",/*#__PURE__*/_jsx(Icons.ChevronDown,{size:14,style:{transform:expanded?\"rotate(180deg)\":undefined}})]})]}),noEntry&&!empty?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-block\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-block-label\",children:/*#__PURE__*/_jsx(\"span\",{children:noEntry.title})}),/*#__PURE__*/_jsx(\"p\",{className:\"wsf-noentry\",children:noEntry.text}),/*#__PURE__*/_jsx(\"div\",{className:\"wsf-chips\",children:/*#__PURE__*/_jsxs(\"span\",{className:\"wsf-chip\",children:[/*#__PURE__*/_jsx(\"span\",{children:noEntry.copy}),onCopyText?/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Copy the wording\",onClick:()=>onCopyText(noEntry.copy),children:/*#__PURE__*/_jsx(Icons.Copy,{size:13})}):null]})})]}):captionOnly?null:/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-block\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-block-label\",children:[/*#__PURE__*/_jsx(\"span\",{children:data?.heading?`${data.heading} entry`:\"Reference entry\"}),html&&!empty&&!error?/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wsf-copy\",onClick:()=>onCopy(\"reference\",html),children:[/*#__PURE__*/_jsx(Icons.Copy,{size:14}),\"Copy\"]}):null]}),error?/*#__PURE__*/_jsx(\"div\",{className:\"wsf-ref wsf-ref--empty\",children:error}):empty||!html?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-ref wsf-ref--empty\",children:[empty?\"Your citation appears here as you type.\":\"Formatting...\",empty&&examples.length&&onExample?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-preview-examples\",children:[/*#__PURE__*/_jsx(\"span\",{children:\"Or try an example:\"}),examples.map(label=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>onExample(label),children:label},label))]}):null]}):/*#__PURE__*/_jsx(\"div\",{className:cx(\"wsf-ref\",data?.hangingIndent&&\"wsf-ref--hang\",pending&&\"wsf-ref--pending\"),dangerouslySetInnerHTML:{__html:inlineHtml(html)}})]}),captionOnly&&empty?/*#__PURE__*/_jsx(\"div\",{className:\"wsf-ref wsf-ref--empty\",children:\"Your caption appears here as you type.\"}):null,!captionOnly&&!noEntry&&!empty&&data?.parenthetical?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-block wsf-block--more\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-block-label\",children:/*#__PURE__*/_jsx(\"span\",{children:data.isNote?\"Footnote\":\"In-text citation\"})}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-chips\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"wsf-chip\",title:data.isNote?\"Footnote\":\"Parenthetical citation\",children:[/*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:inlineHtml(data.parenthetical)}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":data.isNote?\"Copy footnote\":\"Copy parenthetical citation\",onClick:()=>onCopy(\"parenthetical\",data.parenthetical),children:/*#__PURE__*/_jsx(Icons.Copy,{size:13})})]}),showNarrative?/*#__PURE__*/_jsxs(\"span\",{className:\"wsf-chip\",title:\"Narrative citation\",children:[/*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:inlineHtml(data.narrative)}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Copy narrative citation\",onClick:()=>onCopy(\"narrative\",data.narrative),children:/*#__PURE__*/_jsx(Icons.Copy,{size:13})})]}):null]})]}):null,!empty&&caption?/*#__PURE__*/_jsxs(\"div\",{className:cx(\"wsf-block\",!captionOnly&&\"wsf-block--more\"),children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-block-label\",children:[/*#__PURE__*/_jsx(\"span\",{children:caption.imageAfter!==undefined?\"Figure number, title and note\":\"Figure caption\"}),onCopyCaption?/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wsf-copy\",onClick:()=>onCopyCaption(caption),children:[/*#__PURE__*/_jsx(Icons.Copy,{size:14}),\"Copy\"]}):null]}),/*#__PURE__*/_jsx(CaptionView,{caption:caption}),caption.tip?/*#__PURE__*/_jsx(\"p\",{className:\"wsf-caption-tip\",children:caption.tip}):null]}):!empty&&captionNote?/*#__PURE__*/_jsx(\"p\",{className:\"wsf-caption-tip wsf-block--more\",children:captionNote}):null,!empty&&hints.length?/*#__PURE__*/_jsx(\"ul\",{className:\"wsf-hints wsf-block--more\",children:hints.map(h=>/*#__PURE__*/_jsxs(\"li\",{className:cx(\"wsf-hint\",h.tone===\"warn\"&&\"wsf-hint--warn\"),children:[/*#__PURE__*/_jsx(Icons.Alert,{size:14}),/*#__PURE__*/_jsxs(\"span\",{children:[h.text,h.fix?/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>onFix(h),children:h.fix.label}):null]})]},h.text))}):null]});}/** True when nothing worth previewing has been typed yet. */function formIsEmpty(config,values){// A field still holding its starting value (YouTube, Wikipedia) doesn't count as filled in.\nreturn!config.fields.some(f=>{if(f.level===\"optional\"||!isFilled(values[f.key]))return false;const start=f.initial?.();return start===undefined||JSON.stringify(start)!==JSON.stringify(values[f.key]);});}/* -------------------------------------------------------------- zip -- */const CRC_TABLE=(()=>{const table=new Uint32Array(256);for(let n=0;n<256;n+=1){let c=n;for(let k=0;k<8;k+=1)c=c&1?3988292384^c>>>1:c>>>1;table[n]=c>>>0;}return table;})();function crc32(bytes){let c=4294967295;for(let i=0;i<bytes.length;i+=1)c=CRC_TABLE[(c^bytes[i])&255]^c>>>8;return(c^4294967295)>>>0;}/** A zip archive with every file stored as is. */function zipStored(files){const encoder=new TextEncoder;const now=new Date;const time=now.getHours()<<11|now.getMinutes()<<5|Math.floor(now.getSeconds()/2);const date=now.getFullYear()-1980<<9|now.getMonth()+1<<5|now.getDate();const locals=[];const centrals=[];let offset=0;for(const file of files){const name=encoder.encode(file.name);const data=encoder.encode(file.data);const crc=crc32(data);const local=new Uint8Array(30+name.length+data.length);const lv=new DataView(local.buffer);lv.setUint32(0,67324752,true);lv.setUint16(4,20,true);lv.setUint16(6,2048,true);lv.setUint16(8,0,true);lv.setUint16(10,time,true);lv.setUint16(12,date,true);lv.setUint32(14,crc,true);lv.setUint32(18,data.length,true);lv.setUint32(22,data.length,true);lv.setUint16(26,name.length,true);lv.setUint16(28,0,true);local.set(name,30);local.set(data,30+name.length);const central=new Uint8Array(46+name.length);const cv=new DataView(central.buffer);cv.setUint32(0,33639248,true);cv.setUint16(4,20,true);cv.setUint16(6,20,true);cv.setUint16(8,2048,true);cv.setUint16(10,0,true);cv.setUint16(12,time,true);cv.setUint16(14,date,true);cv.setUint32(16,crc,true);cv.setUint32(20,data.length,true);cv.setUint32(24,data.length,true);cv.setUint16(28,name.length,true);cv.setUint32(42,offset,true);central.set(name,46);locals.push(local);centrals.push(central);offset+=local.length;}const centralSize=centrals.reduce((n,c)=>n+c.length,0);const end=new Uint8Array(22);const ev=new DataView(end.buffer);ev.setUint32(0,101010256,true);ev.setUint16(8,files.length,true);ev.setUint16(10,files.length,true);ev.setUint32(12,centralSize,true);ev.setUint32(16,offset,true);const out=new Uint8Array(offset+centralSize+end.length);let at=0;for(const part of[...locals,...centrals,end]){out.set(part,at);at+=part.length;}return out;}/* ------------------------------------------------------------- docx -- */function xml(s){return s.replace(/[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f]/g,\"\").replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\");}const inch=n=>Math.round(n*1440);function paragraphXml(p,line){// Spacing is set on every paragraph as well as the defaults: some readers\n// (Quick Look, older Pages) ignore the document defaults.\nconst own=p.lineSpacing?p.lineSpacing===2?480:240:line;const props=[`<w:spacing w:before=\"${Math.round((p.before??0)*20)}\" w:after=\"${Math.round((p.after??0)*20)}\" w:line=\"${own}\" w:lineRule=\"auto\"/>`];if(p.align===\"center\")props.push('<w:jc w:val=\"center\"/>');if(p.level!==undefined)props.unshift(`<w:numPr><w:ilvl w:val=\"${p.level}\"/><w:numId w:val=\"1\"/></w:numPr>`);else if(p.hanging)props.push(`<w:ind w:left=\"${inch(p.left??p.hanging)}\" w:hanging=\"${inch(p.hanging)}\"/>`);else if(p.left)props.push(`<w:ind w:left=\"${inch(p.left)}\"${p.indent?` w:firstLine=\"${inch(p.indent)}\"`:\"\"}/>`);else if(p.indent)props.push(`<w:ind w:firstLine=\"${inch(p.indent)}\"/>`);const runs=p.runs.filter(r=>r.text).map(r=>{const sz=r.size?`<w:sz w:val=\"${Math.round(r.size*2)}\"/><w:szCs w:val=\"${Math.round(r.size*2)}\"/>`:\"\";const rp=`${r.bold?\"<w:b/>\":\"\"}${r.italic?\"<w:i/>\":\"\"}${sz}`;const body=r.text.split(\"\t\").map(part=>`<w:t xml:space=\"preserve\">${xml(part)}</w:t>`).join(\"<w:tab/>\");return`<w:r>${rp?`<w:rPr>${rp}</w:rPr>`:\"\"}${body}</w:r>`;}).join(\"\");return`<w:p><w:pPr>${props.join(\"\")}</w:pPr>${runs}</w:p>`;}function tableXml(t,line){const widths=t.columns.map(inch);const rule=side=>`<w:${side} w:val=\"single\" w:sz=\"4\" w:space=\"0\" w:color=\"auto\"/>`;const rows=t.rows.map((row,r)=>{// Every cell ends with a paragraph, even an empty one, or Word won't open the file.\nconst cells=widths.map((w,c)=>`<w:tc><w:tcPr><w:tcW w:w=\"${w}\" w:type=\"dxa\"/></w:tcPr>${row[c]?.length?row[c].map(p=>paragraphXml(p,line)).join(\"\"):\"<w:p/>\"}</w:tc>`).join(\"\");return`<w:tr>${t.header&&r===0?\"<w:trPr><w:tblHeader/></w:trPr>\":\"\"}${cells}</w:tr>`;}).join(\"\");return`<w:tbl><w:tblPr><w:tblW w:w=\"${widths.reduce((a,b)=>a+b,0)}\" w:type=\"dxa\"/>`+`<w:tblBorders>${[\"top\",\"left\",\"bottom\",\"right\",\"insideH\",\"insideV\"].map(rule).join(\"\")}</w:tblBorders>`+'<w:tblLayout w:type=\"fixed\"/><w:tblCellMar><w:top w:w=\"58\" w:type=\"dxa\"/><w:left w:w=\"101\" w:type=\"dxa\"/><w:bottom w:w=\"58\" w:type=\"dxa\"/><w:right w:w=\"101\" w:type=\"dxa\"/></w:tblCellMar></w:tblPr>'+`<w:tblGrid>${widths.map(w=>`<w:gridCol w:w=\"${w}\"/>`).join(\"\")}</w:tblGrid>${rows}</w:tbl>`;}function blockXml(b,line){return\"table\"in b?tableXml(b.table,line):paragraphXml(b,line);}function buildDocx(paragraphs,options){const font=xml(options.font??\"Times New Roman\");const halfPoints=Math.round((options.size??12)*2);const line=options.lineSpacing===2?480:240;const W='xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"';const R='xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"';const list=options.list;const numbering=list?`<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:numbering ${W}><w:abstractNum w:abstractNumId=\"0\"><w:multiLevelType w:val=\"multilevel\"/>`+list.levels.map((l,i)=>`<w:lvl w:ilvl=\"${i}\"><w:start w:val=\"1\"/><w:numFmt w:val=\"${l.format}\"/><w:lvlText w:val=\"${xml(l.text)}\"/><w:lvlJc w:val=\"left\"/>`+`<w:pPr><w:tabs><w:tab w:val=\"num\" w:pos=\"${inch(l.left)}\"/></w:tabs><w:ind w:left=\"${inch(l.left)}\" w:hanging=\"${inch(l.hanging)}\"/></w:pPr>${l.bold?\"<w:rPr><w:b/></w:rPr>\":\"\"}</w:lvl>`).join(\"\")+'</w:abstractNum><w:num w:numId=\"1\"><w:abstractNumId w:val=\"0\"/></w:num></w:numbering>':\"\";const files=[{name:\"[Content_Types].xml\",data:'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+'<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">'+'<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>'+'<Default Extension=\"xml\" ContentType=\"application/xml\"/>'+'<Override PartName=\"/word/document.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\"/>'+'<Override PartName=\"/word/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"/>'+(list?'<Override PartName=\"/word/numbering.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\"/>':\"\")+(options.header?'<Override PartName=\"/word/header1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml\"/>':\"\")+'<Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/>'+\"</Types>\"},{name:\"_rels/.rels\",data:'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"word/document.xml\"/>'+'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\" Target=\"docProps/core.xml\"/>'+\"</Relationships>\"},{name:\"docProps/core.xml\",data:'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+'<cp:coreProperties xmlns:cp=\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">'+`<dc:title>${xml(options.title??\"\")}</dc:title><dc:creator>Writing Studio</dc:creator>`+`<dcterms:created xsi:type=\"dcterms:W3CDTF\">${new Date().toISOString().slice(0,19)}Z</dcterms:created>`+\"</cp:coreProperties>\"},{name:\"word/_rels/document.xml.rels\",data:'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>'+(list?'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering\" Target=\"numbering.xml\"/>':\"\")+(options.header?'<Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header\" Target=\"header1.xml\"/>':\"\")+\"</Relationships>\"},{name:\"word/styles.xml\",data:`<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:styles ${W}>`+`<w:docDefaults><w:rPrDefault><w:rPr><w:rFonts w:ascii=\"${font}\" w:hAnsi=\"${font}\" w:eastAsia=\"${font}\" w:cs=\"${font}\"/><w:sz w:val=\"${halfPoints}\"/><w:szCs w:val=\"${halfPoints}\"/><w:lang w:val=\"en-US\"/></w:rPr></w:rPrDefault>`+`<w:pPrDefault><w:pPr><w:spacing w:before=\"0\" w:after=\"0\" w:line=\"${line}\" w:lineRule=\"auto\"/></w:pPr></w:pPrDefault></w:docDefaults>`+'<w:style w:type=\"paragraph\" w:default=\"1\" w:styleId=\"Normal\"><w:name w:val=\"Normal\"/><w:qFormat/></w:style>'+\"</w:styles>\"},{name:\"word/document.xml\",data:`<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:document ${W} ${R}><w:body>`+paragraphs.map(p=>blockXml(p,line)).join(\"\")+// Word always keeps a paragraph after a table at the very end.\n(paragraphs.length&&\"table\"in paragraphs[paragraphs.length-1]?\"<w:p/>\":\"\")+`<w:sectPr>${options.header?'<w:headerReference w:type=\"default\" r:id=\"rId3\"/>':\"\"}<w:pgSz w:w=\"12240\" w:h=\"15840\"/><w:pgMar w:top=\"${inch(1)}\" w:right=\"${inch(1)}\" w:bottom=\"${inch(1)}\" w:left=\"${inch(1)}\" w:header=\"720\" w:footer=\"720\" w:gutter=\"0\"/></w:sectPr>`+\"</w:body></w:document>\"}];if(list)files.push({name:\"word/numbering.xml\",data:numbering});if(options.header){// The page number is a PAGE field, so Word and Google Docs number every page themselves.\nconst text=options.header.text?`<w:r><w:t xml:space=\"preserve\">${xml(options.header.text)} </w:t></w:r>`:\"\";const page=options.header.pageNumber?'<w:r><w:fldChar w:fldCharType=\"begin\"/></w:r><w:r><w:instrText xml:space=\"preserve\"> PAGE </w:instrText></w:r><w:r><w:fldChar w:fldCharType=\"separate\"/></w:r><w:r><w:t>1</w:t></w:r><w:r><w:fldChar w:fldCharType=\"end\"/></w:r>':\"\";files.push({name:\"word/header1.xml\",data:`<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:hdr ${W} ${R}><w:p><w:pPr><w:jc w:val=\"right\"/><w:spacing w:before=\"0\" w:after=\"0\" w:line=\"240\" w:lineRule=\"auto\"/></w:pPr>${text}${page}</w:p></w:hdr>`});}return new Blob([zipStored(files).buffer],{type:\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"});}/** Starts a download of `blob` as `fileName`. Call from a click handler. */function downloadBlob(blob,fileName){const url=URL.createObjectURL(blob);const a=document.createElement(\"a\");a.href=url;a.download=fileName;a.rel=\"noopener\";a.style.display=\"none\";document.body.appendChild(a);a.click();a.remove();window.setTimeout(()=>URL.revokeObjectURL(url),4e3);}// ---- FileText.ts -------------------------------------------------\n/**\n * FileText: reads the text out of a PDF or DOCX file in the visitor's\n * browser, for the free writing tools. The file never leaves the device,\n * and there is no upload size limit to hit.\n *\n * pdf.js and mammoth are loaded from jsDelivr only when a file is actually\n * dropped, so they cost nothing on page load. Everything here runs in\n * event handlers, never during the server render.\n *\n * Two readings: plain (the abstract and short-text tools: running text, the\n * reference list left out) and rich (the citation checker's full paper mode:\n * the reference list kept with one reference per paragraph, superscript\n * citation numbers kept as superscripts, footnotes read as notes, and the\n * phrases in italics from Word files).\n */const PDFJS=\"https://cdn.jsdelivr.net/npm/pdfjs-dist@4.10.38/build/pdf.min.mjs\";const PDFJS_WORKER=\"https://cdn.jsdelivr.net/npm/pdfjs-dist@4.10.38/build/pdf.worker.min.mjs\";const MAMMOTH=\"https://cdn.jsdelivr.net/npm/mammoth@1.12.0/mammoth.browser.min.js\";const MAX_FILE_BYTES=40*1024*1024;const MAX_PDF_PAGES=300;class FileTextError extends Error{}let pdfjsPromise=null;function loadPdfJs(){if(!pdfjsPromise){const url=PDFJS;pdfjsPromise=import(/* @vite-ignore */url).then(mod=>{const lib=mod.GlobalWorkerOptions?mod:mod.default;lib.GlobalWorkerOptions.workerSrc=PDFJS_WORKER;return lib;}).catch(e=>{pdfjsPromise=null;throw e;});}return pdfjsPromise;}let mammothPromise=null;function loadMammoth(){if(!mammothPromise){mammothPromise=new Promise((resolve,reject)=>{const w=window;if(w.mammoth)return resolve(w.mammoth);const script=document.createElement(\"script\");script.src=MAMMOTH;script.async=true;script.onload=()=>w.mammoth?resolve(w.mammoth):reject(new Error(\"mammoth did not load\"));script.onerror=()=>reject(new Error(\"mammoth did not load\"));document.head.appendChild(script);}).catch(e=>{mammothPromise=null;throw e;});}return mammothPromise;}/** Tests outside the browser hand in their own pdf.js and mammoth. */function setFileTextLoaders(loaders){if(loaders.pdfjs)pdfjsPromise=loaders.pdfjs();if(loaders.mammoth)mammothPromise=loaders.mammoth();}async function pdfPages(data){const pdfjs=await loadPdfJs();const task=pdfjs.getDocument({data});const doc=await task.promise;try{const count=Math.min(doc.numPages,MAX_PDF_PAGES);const pages=[];for(let n=1;n<=count;n+=1){const page=await doc.getPage(n);const content=await page.getTextContent();const lines=[];let line=[];for(const item of content.items){const t=item.transform??[1,0,0,1,0,0];const size=Math.hypot(t[2],t[3])||item.height||0;if(item.str!==undefined)line.push({str:item.str,x:t[4],y:t[5],size});if(item.hasEOL){lines.push(line);line=[];}}if(line.length)lines.push(line);pages.push(lines);}return{pages,count:doc.numPages};}finally{// pdf.js 4 closes the document itself; later versions close it through the loading task.\nvoid(doc.destroy?doc.destroy():task.destroy?.())?.catch(()=>undefined);}}/** The plain reading: lines in order, with a blank line wherever the gap is clearly bigger than normal line spacing. */function plainPdfText(pages){const out=[];for(const page of pages){const lines=page.map(items=>({text:items.map(i=>i.str).join(\"\"),y:items.find(i=>i.str)?.y??null})).filter(l=>l.text.trim());const gaps=[];for(let i=1;i<lines.length;i+=1){const a=lines[i-1].y;const b=lines[i].y;if(a!==null&&b!==null&&a>b)gaps.push(a-b);}const normal=gaps.length?gaps.slice().sort((p,q)=>p-q)[Math.floor(gaps.length/2)]:0;const text=[];lines.forEach((l,i)=>{const prev=lines[i-1];if(i&&normal&&prev.y!==null&&l.y!==null&&prev.y-l.y>normal*1.45)text.push(\"\");text.push(l.text);});out.push(text.join(\"\\n\"));}return out.join(\"\\n\\n\");}const SUPERSCRIPT=\"⁰\\xb9\\xb2\\xb3⁴⁵⁶⁷⁸⁹\";/** \"12\" as \"¹²\", \"1,3\" as \"¹,³\", \"2-5\" as \"²⁻⁵\": citation numbers that stay superscript in plain text. */function toSuperscript(s){return s.replace(/\\s+/g,\"\").replace(/\\d/g,d=>SUPERSCRIPT[Number(d)]).replace(/[-–—]/g,\"⁻\");}const CITE_NUMBERS=/^\\s*\\d{1,3}(?:\\s*[-–—,]\\s*\\d{1,3})*\\s*$/;/** Superscript text that cites: \"12\", \"1,3\", \"2-5\", or AMA's \"7(p162)\" (the page is left out). */function citeSuperscript(text){if(CITE_NUMBERS.test(text))return toSuperscript(text);const ama=text.match(/^\\s*(\\d{1,3}(?:\\s*[-–—,]\\s*\\d{1,3})*)\\s*\\(pp?\\.?\\s*[\\d\\s,–—-]+\\)\\s*$/);return ama?toSuperscript(ama[1]):null;}function weightedMedian(values){const sorted=values.filter(x=>x.w>0).sort((a,b)=>a.v-b.v);const total=sorted.reduce((s,x)=>s+x.w,0);let run=0;for(const x of sorted){run+=x.w;if(run>=total/2)return x.v;}return sorted.length?sorted[sorted.length-1].v:0;}/** One line's text, with raised small numbers written as superscripts. */function lineText(items){const real=items.filter(i=>i.str.trim());const main=real.slice().sort((a,b)=>b.str.trim().length-a.str.trim().length)[0];const size=main?main.size:0;const y=main?main.y:0;let text=\"\";for(const i of items){const raised=size&&i.size&&i.size<=size*.82&&i.y>y+size*.18;const cited=raised?citeSuperscript(i.str):null;text+=cited??i.str;}return{text,size,y,x:real.length?Math.min(...real.map(i=>i.x)):0};}const FOOTNOTE_START=new RegExp(`^(?:([${SUPERSCRIPT}]+)|(\\\\d{1,3})[.)]?)\\\\s*(?=\\\\S)`);function fromSuperscriptDigits(s){return Number([...s].map(c=>SUPERSCRIPT.indexOf(c)).join(\"\"));}const REF_HEADING_LINE=/^\\s*(?:(?:\\d{1,2}|[IVXL]{1,5})[.)]?\\s+)?(references?(?: list| cited)?|bibliography|selected bibliography|works cited|work cited|works consulted|literature cited|sources(?: cited)?|refer[eê]ncias|bibliograf[ií]a|referencias|r[eé]f[eé]rences|literaturverzeichnis|riferimenti bibliografici)\\s*:?\\s*$/i;const END_HEADING_LINE=/^\\s*(?:(?:\\d{1,2}|[IVXL]{1,5})[.)]?\\s+)?(appendix|appendices|tables?|figures?|figure captions|footnotes|end ?notes|notes|author(?:'s|s')? note|acknowledg(?:e)?ments?)\\b.{0,60}$/i;/**\n * The rich reading of a PDF: running heads and page numbers dropped,\n * footnotes (smaller lines at the foot of a page, starting with a number)\n * taken out as notes, superscript citation numbers kept, and the reference\n * list laid out one reference per paragraph using the hanging indent.\n */function richPdfText(pages){const lines=[];pages.forEach((page,p)=>{for(const items of page){const t=lineText(items);if(t.text.trim())lines.push({items,text:t.text.replace(/\\s+/g,\" \").trim(),x:t.x,y:t.y,size:t.size,page:p});}});const body=weightedMedian(lines.map(l=>({v:Math.round(l.size*10)/10,w:l.text.length})));// Running heads and footers: the same first or last line on many pages (numbers aside).\nconst key=t=>t.replace(/\\d+/g,\"#\").toLowerCase();const edgeCount=new Map;for(let p=0;p<pages.length;p+=1){const onPage=lines.filter(l=>l.page===p);for(const l of[onPage[0],onPage[onPage.length-1]])if(l)edgeCount.set(key(l.text),(edgeCount.get(key(l.text))??0)+1);}const repeated=t=>pages.length>=3&&(edgeCount.get(key(t))??0)>=Math.max(2,pages.length*.4);const kept=[];const notes=[];let refsBegun=false;for(let p=0;p<pages.length;p+=1){let onPage=lines.filter(l=>l.page===p);onPage=onPage.filter((l,i)=>!((i===0||i===onPage.length-1)&&repeated(l.text))&&!/^(?:page\\s+)?\\d{1,4}(?:\\s+of\\s+\\d+)?$/i.test(l.text));// Footnotes: a run of smaller lines at the foot of the page, the first one numbered. Not once the\n// reference list has begun (a list in a smaller font is not footnotes).\nconst headAt=onPage.findIndex(l=>l.text.length<=60&&REF_HEADING_LINE.test(l.text));let k=onPage.length;while(k>0&&body&&onPage[k-1].size<=body*.92)k-=1;const foot=onPage.slice(k);// On the page where the list begins, footnotes sit below normal-size entries; a smaller-font list\n// right under the heading is the list itself.\nconst footnotesHere=!refsBegun&&(headAt<0||k>headAt+1);if(headAt>=0)refsBegun=true;if(footnotesHere&&foot.length&&FOOTNOTE_START.test(foot[0].text)&&k>0){for(const l of foot){const m=l.text.match(FOOTNOTE_START);const n=m?m[1]?fromSuperscriptDigits(m[1]):Number(m[2]):NaN;if(m&&n===notes.length+1)notes.push(l.text.slice(m[0].length).trim());else if(notes.length)notes[notes.length-1]+=` ${l.text}`;}onPage=onPage.slice(0,k);}kept.push(...onPage);}// The left margin and normal line gap of body text.\nconst margins=kept.filter(l=>Math.abs(l.size-body)<body*.1).map(l=>l.x).sort((a,b)=>a-b);const margin=margins.length?margins[Math.floor(margins.length*.1)]:0;const gaps=[];for(let i=1;i<kept.length;i+=1)if(kept[i].page===kept[i-1].page&&kept[i-1].y>kept[i].y)gaps.push(kept[i-1].y-kept[i].y);const normal=gaps.length?gaps.sort((a,b)=>a-b)[Math.floor(gaps.length/2)]:body*1.2;let head=-1;for(let i=kept.length-1;i>=0;i-=1){if(kept[i].text.length<=60&&REF_HEADING_LINE.test(kept[i].text)){head=i;break;}}let end=kept.length;if(head>=0){for(let i=head+1;i<kept.length;i+=1){// A heading sits at the margin and starts with a capital; an indented \"tables in education...\" is a wrapped line.\nif(kept[i].text.length<=70&&END_HEADING_LINE.test(kept[i].text)&&kept[i].x<=margin+4&&RegExp(\"^[\\\\p{Lu}\\\\d]\",\"u\").test(kept[i].text)){end=i;break;}}}// The body: a blank line at big gaps and first-line indents, then the usual tidy-up.\nconst bodyText=(from,to)=>{const out=[];for(let i=from;i<to;i+=1){const l=kept[i];const prev=kept[i-1];if(i>from&&prev){const gap=prev.page===l.page?prev.y-l.y:0;if(gap>normal*1.45||l.x>margin+12&&prev.x<=margin+4&&l.x<margin+60)out.push(\"\");}out.push(l.text);}return tidyExtractedText(out.join(\"\\n\"));};// The reference list: a line back at the margin after indented lines starts a new reference\n// (hanging indent); without indents, a bigger gap or a number does.\nconst refText=()=>{const list=kept.slice(head+1,end);const hanging=list.some(l=>l.x>margin+8)&&list.some(l=>l.x<=margin+4);const entries=[];list.forEach((l,i)=>{const prev=list[i-1];const gap=prev&&prev.page===l.page?prev.y-l.y:0;// A number starts a reference only when it's the next one (\"189.\" may be the end of a page range).\nconst num=l.text.match(/^\\s*(?:\\[(\\d{1,3})\\]|(\\d{1,3})\\.)\\s/);const starts=!prev||num&&Number(num[1]??num[2])===entries.length+1||(hanging?l.x<=margin+4&&(prev.x>margin+8||/[.)]$/.test(prev.text)):gap>normal*1.3&&/[.)]\\s*$|\\S+\\/\\S*$/.test(prev.text));if(starts)entries.push(l.text);else{const last=entries[entries.length-1];// A link or DOI broken across lines is joined without a space; so is a hyphenated word.\nconst inLink=/(?:https?:\\/\\/|doi\\.org\\/|\\b10\\.\\d{4,9}\\/)\\S*[/._\\-=?&#]$/.test(last)&&/^[\\w./\\-_%?=&#]+/.test(l.text)&&!RegExp(\"^[\\\\p{Lu}][\\\\p{Ll}]+\\\\s\",\"u\").test(l.text);if(inLink)entries[entries.length-1]=last+l.text;else if(RegExp(\"[\\\\p{Ll}]-$\",\"u\").test(last)&&RegExp(\"^[\\\\p{Ll}]\",\"u\").test(l.text))entries[entries.length-1]=last.slice(0,-1)+l.text;else entries[entries.length-1]=`${last} ${l.text}`;}});return entries.join(\"\\n\\n\");};const parts=head>=0?[bodyText(0,head),kept[head].text,refText(),end<kept.length?bodyText(end,kept.length):\"\"]:[bodyText(0,kept.length)];return{text:parts.filter(x=>x.trim()).join(\"\\n\\n\"),notes};}/** Joins lines broken by the PDF layout back into paragraphs, repairs\n *  hyphenation across lines, keeps headings on their own line, and drops\n *  page numbers. */function tidyExtractedText(raw){const lines=raw.replace(/\\r/g,\"\").split(\"\\n\").map(l=>l.replace(/\\s+/g,\" \").trim());const lengths=lines.filter(l=>l.length>40).map(l=>l.length).sort((a,b)=>a-b);const full=lengths.length?lengths[Math.floor(lengths.length*.75)]:90;const ends=t=>/[.?!:][\"”')\\]]?$/.test(t);const isHeading=t=>t.length<=60&&RegExp(\"^[\\\\p{Lu}\\\\d]\",\"u\").test(t)&&!/[.,;:]$/.test(t)&&t.split(\" \").length<=8;const out=[];let para=\"\";let lastLine=\"\";const flush=()=>{if(para.trim())out.push(para.trim());para=\"\";};for(const t of lines){if(!t){flush();lastLine=\"\";continue;}if(/^\\d{1,4}$/.test(t))continue;// bare page numbers\nif(isHeading(t)&&(!para||ends(para))){flush();out.push(t);lastLine=\"\";continue;}if(!para)para=t;else if(para.endsWith(\"-\")&&RegExp(\"^\\\\p{Ll}\",\"u\").test(t))para=para.slice(0,-1)+t;else if(ends(lastLine)&&lastLine.length<full*.8){// The line before ended a sentence well short of the margin: a new paragraph.\nflush();para=t;}else para+=\" \"+t;lastLine=t;}flush();return out.join(\"\\n\\n\").trim();}const ENTITIES={amp:\"&\",lt:\"<\",gt:\">\",quot:'\"',apos:\"'\",nbsp:\" \",ndash:\"–\",mdash:\"—\",hellip:\"…\",lsquo:\"‘\",rsquo:\"’\",ldquo:\"“\",rdquo:\"”\",laquo:\"\\xab\",raquo:\"\\xbb\",shy:\"\",zwj:\"\",zwnj:\"\",eacute:\"\\xe9\",egrave:\"\\xe8\",aacute:\"\\xe1\",agrave:\"\\xe0\",iacute:\"\\xed\",oacute:\"\\xf3\",uacute:\"\\xfa\",ntilde:\"\\xf1\",uuml:\"\\xfc\",ouml:\"\\xf6\",auml:\"\\xe4\",ccedil:\"\\xe7\",oslash:\"\\xf8\",aring:\"\\xe5\",szlig:\"\\xdf\"};function decodeHtmlEntities(s){return s.replace(/&(#x[0-9a-f]+|#\\d+|[a-z]+);/gi,(m,e)=>{if(e[0]===\"#\"){const code=e[1]===\"x\"||e[1]===\"X\"?parseInt(e.slice(2),16):Number(e.slice(1));return Number.isFinite(code)&&code>0&&code<1114112?String.fromCodePoint(code):m;}return ENTITIES[e.toLowerCase()]??m;});}const BLOCK=/^(p|div|h[1-6]|li|blockquote|tr|table|section|article|header|footer|pre|ol|ul|dd|dt|figure|figcaption|caption)$/;const NOTE_BODY_REF=/#(?:_?ftn|_?edn|ftnt|footnote-|endnote-)(\\d+)$/i;const NOTE_BACK_REF=/#(?:_?ftnref|_?ednref|ftnt_ref|footnote-ref-|endnote-ref-)(\\d+)$/i;const NOTE_ID=/^(?:_?ftn|_?edn|ftnt|footnote-|endnote-)(\\d+)$/i;/** Endnotes are kept apart from footnotes while reading (then numbered after them): \"#_edn1\", \"endnote-1\". */const ENDNOTE=/(?:^|#)(?:_?edn|endnote-)(?:ref-?)?\\d+$/i;const ENDNOTE_BASE=1e5;function noteNumber(ref,n){return ENDNOTE.test(ref)?ENDNOTE_BASE+Number(n):Number(n);}/**\n * HTML (a DOCX converted by mammoth, or a paste from Word or Google Docs)\n * into text for the citation checker: paragraphs separated by blank lines,\n * numbered lists numbered, superscript citation numbers kept as ¹²³, notes\n * (footnotes and endnotes) collected separately, and the phrases in italics.\n * A small tag reader rather than DOMParser, so it runs the same everywhere.\n */function richTextFromHtml(html){const src=html.replace(/<!--\\[if[\\s\\S]*?<!\\[endif\\]-->/gi,\"\").replace(/<!--[\\s\\S]*?-->/g,\"\").replace(/<![A-Za-z][^>]*>|<\\?[\\s\\S]*?\\?>/g,\"\").replace(/<(style|script|head|title|xml|template)\\b[\\s\\S]*?<\\/\\1>/gi,\"\");const body=[];const notes=new Map;const italics=[];let italicRun=\"\";let sawItalicMarkup=false;const stack=[];let noteTarget=null;let blockNote=null;let olCounters=[];/** A list item's number was just written: the item's own paragraph continues it. */let listLead=false;const current=()=>stack[stack.length-1];const inItalic=()=>stack.some(s=>s.italic);const inSup=()=>stack.some(s=>s.sup);const skipping=()=>stack.some(s=>s.skip);const noteOf=()=>{for(let i=stack.length-1;i>=0;i-=1)if(stack[i].noteId!==null)return stack[i].noteId;return blockNote;};const emit=text=>{const n=noteOf();if(n!==null)notes.set(n,(notes.get(n)??\"\")+text);else body.push(text);};const breakBlock=()=>{const n=noteOf();if(n!==null)notes.set(n,(notes.get(n)??\"\")+\" \");else body.push(\"\\n\\n\");blockNote=null;if(italicRun.trim())italics.push(italicRun.replace(/\\s+/g,\" \").trim());italicRun=\"\";};const re=/<\\/?([a-zA-Z][\\w:-]*)([^>]*)>|<!\\[[^\\]]*\\]>|([^<]+)/g;let m;while(m=re.exec(src)){if(m[3]!==undefined){if(skipping())continue;let text=decodeHtmlEntities(m[3]).replace(/[\\r\\n\\t]+/g,\" \");if(inSup())text=citeSuperscript(text)??text;if(text.trim())listLead=false;if(inItalic()){italicRun+=text;}else if(text.trim()&&italicRun.trim()){italics.push(italicRun.replace(/\\s+/g,\" \").trim());italicRun=\"\";}else if(!text.trim()&&italicRun){// \"<i>Journal</i> <i>of Sleep</i>\": one phrase across the space.\nitalicRun+=\" \";}emit(text);continue;}if(!m[1])continue;// <![if ...]> and <![endif]>\nconst tag=m[1].toLowerCase().replace(/^\\w+:/,\"\");const closing=m[0][1]===\"/\";const attrs=m[2]??\"\";const selfClosing=/\\/\\s*$/.test(attrs)||tag===\"br\"||tag===\"img\"||tag===\"hr\"||tag===\"meta\"||tag===\"link\"||tag===\"input\";if(tag===\"br\"){if(!skipping())emit(\"\\n\");continue;}if(closing){// Close up to the matching tag (HTML from Word is not always well nested).\nlet k=stack.length-1;while(k>=0&&stack[k].tag!==tag)k-=1;if(k<0)continue;const closed=stack.splice(k);if(closed.some(s=>s.italic)&&!inItalic()&&italicRun.trim()){// A run may continue into the next italic element; flushed when plain text follows.\n}if(tag===\"ol\")olCounters=olCounters.slice(0,-1);if(BLOCK.test(tag)&&!skipping())breakBlock();if(closed.some(s=>s.noteId!==null)&&noteTarget!==null)noteTarget=null;continue;}if(selfClosing)continue;const style=(attrs.match(/style\\s*=\\s*([\"'])([\\s\\S]*?)\\1/i)?.[2]??attrs.match(/style\\s*=\\s*([^\\s>]+)/i)?.[1]??\"\").toLowerCase();const cls=(attrs.match(/class\\s*=\\s*([\"']?)([\\w\\s-]+)\\1/i)?.[2]??\"\").toLowerCase();const href=attrs.match(/href\\s*=\\s*([\"'])([^\"']*)\\1/i)?.[2]??\"\";const id=attrs.match(/\\b(?:id|name)\\s*=\\s*([\"']?)([\\w-]+)\\1/i)?.[2]??\"\";const italic=tag===\"i\"||tag===\"em\"||/font-style\\s*:\\s*italic/.test(style);if(italic)sawItalicMarkup=true;const sup=tag===\"sup\"||/vertical-align\\s*:\\s*super/.test(style)||/msofootnotereference|msoendnotereference/.test(cls);let skip=false;let noteId=null;// A note container: mammoth's <li id=\"footnote-1\">, Word's <div id=\"ftn1\">.\nconst idNote=id.match(NOTE_ID);if(idNote&&(tag===\"li\"||tag===\"div\")&&!NOTE_BODY_REF.test(href))noteId=noteNumber(id,idNote[1]);if(tag===\"a\"){const back=href.match(NOTE_BACK_REF);const ref=href.match(NOTE_BODY_REF);if(back){// The link back from a note to the text: the rest of this block is that note (Google Docs, Word).\nif(noteOf()===null){blockNote=noteNumber(href,back[1]);// Text already written in this block belongs to the note too.\nconst moved=[];while(body.length&&body[body.length-1]!==\"\\n\\n\")moved.unshift(body.pop());if(moved.join(\"\").trim())notes.set(blockNote,moved.join(\"\"));}skip=true;}else if(ref&&noteOf()===null){// A note marker in the text: written as a superscript number (endnotes numbered at the end).\nif(!skipping())emit(ENDNOTE.test(href)?`\\u0000E${ref[1]}\\u0000`:toSuperscript(ref[1]));skip=true;}}if(/mso-element\\s*:\\s*(?:footnote|endnote)-list/.test(style)){// Word's container of all notes: each note inside has its own id.\n}let list=null;if(tag===\"ol\"){const start=Number(attrs.match(/start\\s*=\\s*[\"']?(\\d+)/i)?.[1]??1);olCounters.push({n:start-1});}if(tag===\"li\"&&noteId===null&&!skipping()){const counter=olCounters[olCounters.length-1];const inOl=stack.some(s=>s.tag===\"ol\")&&counter;if(BLOCK.test(tag))breakBlock();if(inOl){counter.n+=1;list=counter;emit(`${counter.n}. `);listLead=true;}}else if(BLOCK.test(tag)&&!skipping()&&!(listLead&&current()?.tag===\"li\"))breakBlock();stack.push({tag,italic,sup,skip,noteId,list});}if(italicRun.trim())italics.push(italicRun.replace(/\\s+/g,\" \").trim());const footnotes=[...notes.keys()].filter(n=>n<ENDNOTE_BASE).length;const text=body.join(\"\").replace(/\\u0000E(\\d+)\\u0000/g,(_m,n)=>toSuperscript(String(footnotes+Number(n)))).split(/\\n{2,}/).map(p=>p.replace(/[ \\t ]+/g,\" \").replace(/ *\\n */g,\"\\n\").trim()).filter(Boolean).join(\"\\n\\n\");const noteList=[];const ids=[...notes.keys()].sort((a,b)=>a-b);for(const n of ids){const t=notes.get(n).replace(/\\s+/g,\" \").replace(/^\\s*(?:\\[\\d+\\]|\\d+[.)]?)\\s*/,\"\").replace(/\\s*[↑^]\\s*$/,\"\").trim();const at=n>=ENDNOTE_BASE?footnotes+(n-ENDNOTE_BASE):n;if(t)noteList[at-1]=t;}return{text,notes:Array.from({length:noteList.length},(_,i)=>noteList[i]??\"\"),italics:sawItalicMarkup?[...new Set(italics.filter(t=>t.length>1))]:null};}/* ---------------------------------------------------------- references -- */const REF_HEADING=/^(references|reference list|bibliography|works cited|literature cited|referencias|bibliografía|références|literaturverzeichnis|literatur|riferimenti bibliografici)\\s*:?$/i;/** Leaves out a reference list at the end of the document: it adds cost\n *  and invites citations into the abstract, and an abstract never needs it.\n *  What was left out comes back as `references`. */function removeReferenceList(text){const paras=text.split(/\\n{2,}/);for(let i=Math.floor(paras.length*.5);i<paras.length;i+=1){const p=paras[i].trim();if(REF_HEADING.test(p)||REF_HEADING.test(p.split(\"\\n\")[0].trim())&&p.length<40){return{text:paras.slice(0,i).join(\"\\n\\n\").trim(),removed:true,references:paras.slice(i).join(\"\\n\\n\").trim()};}}return{text,removed:false};}async function extractFileText(file,options={}){if(file.size>MAX_FILE_BYTES)throw new FileTextError(\"That file is over 40 MB. Try a smaller file, or paste the text instead.\");const name=file.name.toLowerCase();const isPdf=file.type===\"application/pdf\"||name.endsWith(\".pdf\");const isDocx=file.type===\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"||name.endsWith(\".docx\");if(!isPdf&&!isDocx){if(name.endsWith(\".doc\"))throw new FileTextError(\"Old .doc files aren't supported. Save it as .docx or PDF, or paste the text.\");throw new FileTextError(\"Upload a PDF or Word (.docx) file, or paste the text instead.\");}const data=await file.arrayBuffer();let raw=\"\";let pages;let rich=null;try{if(isPdf){const result=await pdfPages(data);pages=result.count;if(options.rich){const r=richPdfText(result.pages);rich={text:r.text,notes:r.notes,italics:null};}else raw=plainPdfText(result.pages);}else{const mammoth=await loadMammoth();if(options.rich)rich=richTextFromHtml((await mammoth.convertToHtml({arrayBuffer:data})).value);else raw=(await mammoth.extractRawText({arrayBuffer:data})).value;}}catch(e){if(globalThis.__fileTextDebug)console.error(e);throw new FileTextError(isPdf?\"We couldn't read that PDF. It may be protected or damaged. Try pasting the text instead.\":\"We couldn't read that Word file. Try saving it again, or paste the text instead.\");}const tidy=rich?rich.text:isPdf?tidyExtractedText(raw):raw.replace(/\\n{3,}/g,\"\\n\\n\").trim();if(tidy.replace(/\\s/g,\"\").length<40){throw new FileTextError(isPdf?\"This PDF has no readable text. It may be a scan. Paste the text instead, or upload the original document.\":\"This file looks empty. Check it and try again, or paste the text instead.\");}// A Word file always carries its formatting: no italics found means none were used (PDFs can't tell).\nif(rich)return{text:tidy,pages,removedReferences:false,fileName:file.name,notes:rich.notes,italics:isPdf?null:rich.italics??[]};const{text,removed,references}=removeReferenceList(tidy);return{text,pages,removedReferences:removed,...references?{references}:{},fileName:file.name};}function annotatedRules(family){switch(family){case\"apa\":return{family,titles:[\"Annotated Bibliography\"],titleBold:true,lineSpacing:2,annotationLeft:.5,firstIndent:0,laterIndent:.5,headerName:false,reorder:false};case\"mla\":return{family,titles:[\"Annotated Bibliography\",\"Annotated List of Works Cited\"],titleBold:false,lineSpacing:2,annotationLeft:0,firstIndent:.5,laterIndent:.5,headerName:true,reorder:true};case\"chicago\":return{family,titles:[\"Annotated Bibliography\"],titleBold:false,lineSpacing:1,annotationLeft:.5,firstIndent:0,laterIndent:.5,headerName:false,reorder:false};default:return{family,titles:[\"Annotated Bibliography\"],titleBold:false,lineSpacing:2,annotationLeft:.5,firstIndent:0,laterIndent:.5,headerName:false,reorder:false};}}/** An annotation's paragraphs: split on line breaks, blank ones dropped. */function annotationParagraphs(annote){return String(annote??\"\").split(/\\n+/).map(p=>p.replace(/\\s+/g,\" \").trim()).filter(Boolean);}function wordCount(text){return String(text??\"\").trim().split(/\\s+/).filter(Boolean).length;}/* ------------------------------------------------------- migration -- *//** Annotations saved before they moved into CSL-JSON (kept beside the citation as item.note) move into\n *  csl.annote. An annote already there wins; nothing is lost either way. */function moveNotesToAnnote(items){return items.map(i=>{if(!i.note)return i;const{note,...rest}=i;const kept=typeof i.csl.annote===\"string\"&&i.csl.annote.trim()?i.csl.annote:note;return{...rest,csl:{...i.csl,annote:kept}};});}/* ------------------------------------------------------ entry HTML -- */const decode=t=>t.replace(/&#(\\d+);/g,(_m,n)=>String.fromCodePoint(Number(n))).replace(/&#x([0-9a-f]+);/gi,(_m,n)=>String.fromCodePoint(parseInt(n,16))).replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&quot;/g,'\"').replace(/&nbsp;/g,\" \").replace(/&amp;/g,\"&\");/** citeproc's entry HTML on one line: the number of a numeric style, then the entry. */function entryInline(html){return html.replace(/<div class=\"csl-left-margin\">([\\s\\S]*?)<\\/div>/g,\"$1 \").replace(/<\\/?div[^>]*>/g,\"\").replace(/\\s+/g,\" \").trim();}/** Entry HTML as runs of text with italics and bold, for Word. */function entryRuns(html){const out=[];let italic=false;let bold=false;for(const part of entryInline(html).split(/(<\\/?(?:i|b|em|strong)>|<span[^>]*>|<\\/span>)/)){if(/^<(i|em)>$/.test(part))italic=true;else if(/^<\\/(i|em)>$/.test(part))italic=false;else if(/^<(b|strong)>$/.test(part))bold=true;else if(/^<\\/(b|strong)>$/.test(part))bold=false;else if(part&&!part.startsWith(\"<\"))out.push({text:decode(part.replace(/<[^>]+>/g,\"\")),...italic?{italic}:{},...bold?{bold}:{}});}return out.filter(r=>r.text);}const esc=t=>t.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");const ENTRY_ORDERS=[{value:\"alpha\",label:\"Alphabetical\"},{value:\"date\",label:\"By date, oldest first\"},{value:\"subject\",label:\"By subject, with headings\"}];/** The heading for sources without a subject, once other sources have one. */const NO_SUBJECT=\"Other sources\";/** Puts the style's (alphabetical) entries in the chosen order. By date: oldest first, undated last,\n *  alphabetical within a year. By subject: headings in the order the student first used them, entries\n *  alphabetical under each, sources without a subject last. */function arrangeEntries(entries,order,meta){if(order===\"date\"){const yearOf=e=>meta.get(e.id)?.year??Number.POSITIVE_INFINITY;return{entries:entries.map((e,i)=>({e,i})).sort((a,b)=>yearOf(a.e)-yearOf(b.e)||a.i-b.i).map(x=>x.e)};}if(order!==\"subject\")return{entries};const subjectOf=e=>meta.get(e.id)?.subject?.replace(/\\s+/g,\" \").trim()??\"\";const byKey=new Map;const firstUse=[...entries].sort((a,b)=>(meta.get(a.id)?.addedAt??0)-(meta.get(b.id)?.addedAt??0));for(const e of firstUse){const s=subjectOf(e);if(s&&!byKey.has(s.toLowerCase()))byKey.set(s.toLowerCase(),s);}if(!byKey.size)return{entries};const groups=[...byKey].map(([key,heading])=>({heading,ids:entries.filter(e=>subjectOf(e).toLowerCase()===key).map(e=>e.id)}));const rest=entries.filter(e=>!subjectOf(e)).map(e=>e.id);if(rest.length)groups.push({heading:NO_SUBJECT,ids:rest});const byId=new Map(entries.map(e=>[e.id,e]));return{entries:groups.flatMap(g=>g.ids.map(id=>byId.get(id))),groups};}function orderedGroups(entries,settings){if(!settings.groups?.length)return[{entries}];const byId=new Map(entries.map(e=>[e.id,e]));return settings.groups.map(g=>({heading:g.heading,entries:g.ids.map(id=>byId.get(id)).filter(e=>Boolean(e))}));}/** The document as paragraphs for Word: title, then each entry with its annotation under it. */function documentParagraphs(entries,rules,settings,hanging=true){const single=rules.lineSpacing===1;const out=[{runs:[{text:settings.title,bold:rules.titleBold}],align:\"center\",after:single?12:0}];for(const group of orderedGroups(entries,settings)){if(group.heading)out.push({runs:[{text:group.heading,bold:true}],align:rules.family===\"mla\"?\"center\":\"left\",before:single?12:0,after:single?12:0});for(const e of group.entries){out.push({runs:entryRuns(e.html),...hanging?{hanging:.5}:{},before:0,after:0});annotationParagraphs(e.annote).forEach((text,i)=>{const first=i===0?rules.firstIndent:rules.laterIndent;out.push({runs:[{text}],...rules.annotationLeft?{left:rules.annotationLeft}:{},...first?{indent:first}:{}});});// Chicago: single-spaced entries with a blank line between them.\nif(single)out[out.length-1].after=12;}}return out;}function documentDocxOptions(rules,settings){return{lineSpacing:rules.lineSpacing,font:\"Times New Roman\",size:12,title:settings.title,header:{text:rules.headerName&&settings.surname?.trim()?settings.surname.trim():undefined,pageNumber:true}};}/** The document as HTML for the clipboard: Word and Google Docs keep the indents, spacing and italics. */function documentHtml(entries,rules,settings,hanging=true){const lh=rules.lineSpacing===2?\"line-height:200%;\":\"\";const gap=after=>rules.lineSpacing===1&&after?\"margin-bottom:12pt;\":\"margin-bottom:0;\";const parts=[`<p style=\"text-align:center;margin:0;${lh}${rules.lineSpacing===1?\"margin-bottom:12pt;\":\"\"}\">${rules.titleBold?`<b>${esc(settings.title)}</b>`:esc(settings.title)}</p>`];for(const group of orderedGroups(entries,settings)){if(group.heading)parts.push(`<p style=\"margin:0;${lh}${rules.family===\"mla\"?\"text-align:center;\":\"\"}\"><b>${esc(group.heading)}</b></p>`);for(const e of group.entries){const paras=annotationParagraphs(e.annote);parts.push(`<p style=\"margin-top:0;${gap(!paras.length)}${lh}${hanging?\"margin-left:0.5in;text-indent:-0.5in;\":\"\"}\">${entryInline(e.html)}</p>`);paras.forEach((text,i)=>{const first=i===0?rules.firstIndent:rules.laterIndent;parts.push(`<p style=\"margin-top:0;${gap(i===paras.length-1)}${lh}margin-left:${rules.annotationLeft}in;text-indent:${first}in;\">${esc(text)}</p>`);});}}return parts.join(\"\");}/** Plain text: title, entries, annotations indented with spaces, a blank line between entries. */function documentText(entries,rules,settings){const lines=[settings.title,\"\"];for(const group of orderedGroups(entries,settings)){if(group.heading)lines.push(group.heading,\"\");for(const e of group.entries){lines.push(e.text);for(const p of annotationParagraphs(e.annote))lines.push(`${rules.annotationLeft||rules.firstIndent?\"    \":\"\"}${p}`);lines.push(\"\");}}return lines.join(\"\\n\").trim()+\"\\n\";}/* --------------------------------------------------------- lengths -- */const ANNOTATION_LENGTHS=[{value:\"50-100\",label:\"50 to 100 words\",min:50,max:100},{value:\"100-150\",label:\"100 to 150 words\",min:100,max:150},{value:\"150-200\",label:\"150 to 200 words\",min:150,max:200},{value:\"200-300\",label:\"200 to 300 words\",min:200,max:300}];/** The target for the word count: a range, or a custom number with 10% either side. */function lengthTarget(length,custom){if(length===\"custom\"&&custom&&custom>0){const n=Math.round(custom);return{min:Math.round(n*.9),max:Math.round(n*1.1),label:`about ${n} words`};}const found=ANNOTATION_LENGTHS.find(l=>l.value===length)??ANNOTATION_LENGTHS[1];return{min:found.min,max:found.max,label:`${found.min} to ${found.max} words`};}/* ---------------------------------------------- the student's part -- */// An AI draft written without a research topic has RELEVANCE_PLACEHOLDER (CiteShared.ts) where its\n// relevance would go. The card marks it as the student's part to write, the document column says how\n// many are left by Copy all and Word, and once there's a topic, Add relevance drafts just that part.\nconst annotationsHave=n=>n===1?\"1 annotation still has\":`${n} annotations still have`;/** On a card with the placeholder; `offer` once there's a topic and AI isn't paused. */function placeholderNote(offer){return offer?\"The part in brackets is yours to write, or press Add relevance below to draft just that part from your topic.\":\"The part in brackets is yours to write: how this source helps your research.\";}/** By Copy all and Word: how many annotations still have the placeholder. */function placeholdersLeftLine(n){return`${annotationsHave(n)} a part in brackets for you to write.`;}/** Under the research topic, once there is one: the offer to draft those parts. */function fillOfferLine(n){return`${annotationsHave(n)} a part in brackets: press Add relevance on ${n===1?\"that card\":\"those cards\"} to draft just that part.`;}/* ------------------------------------------------ drafts left today -- */// Drafting, Draft again, Another version and each rewrite take one of the browser's free AI drafts\n// for the day (lexi's ANNOTATIONS_DAILY_LIMIT). The page learns how many are left as it opens\n// (/api/public/ai-left) and from every draft, says so by Draft all once they run low, and before\n// Draft all would run past them, says how far it will get.\n/** At or under this many drafts left, the count shows by Draft all. */const FEW_DRAFTS_LEFT=10;const draftsWord=n=>`${n} free AI ${n===1?\"draft\":\"drafts\"}`;/** By Draft all: how many drafts are left once they're few, or what Draft all will do when it\n *  needs more than that. `toDraft` is how many sources have no annotation; `backAt` is when the\n *  drafts come back (\"8:00 PM\"). Null when there's nothing worth saying. */function draftsLeftLine(left,toDraft,backAt){if(left===null)return null;if(left<=0)return`You’ve used today’s free AI drafts. They come back at ${backAt}. You can still write, check and export your annotations.`;if(toDraft>left)return`${draftsWord(left)} left today, so we’ll draft the first ${left===1?\"\":`${left} `}of the ${toDraft} annotations still to write.`;if(left<=FEW_DRAFTS_LEFT)return`${draftsWord(left)} left today. Another version and each rewrite use one too.`;return null;}/** The toast when Draft all ends: how many it drafted, and how many are left to write.\n *  `total` is how many sources had no annotation when it started. */function draftAllEndLine(run){const{total,drafted,needText,stopped,backAt}=run;const left=Math.max(0,total-drafted);const needs=needText?` ${needText===1?\"1 source needs\":`${needText} sources need`} text: paste some or upload the PDF on ${needText===1?\"that card\":\"those cards\"}.`:\"\";if(!left)return\"Done. Read each draft against its source and make it your own.\";if(!stopped&&left===needText)return`Done.${needs}`;const of=`Drafted ${drafted} of ${total} ${total===1?\"annotation\":\"annotations\"}`;const leftToWrite=`${left} ${left===1?\"is\":\"are\"} left to write`;if(stopped===\"limit\")return`${of} before today’s free AI drafts ran out. ${leftToWrite}, and AI drafts come back at ${backAt}.${needs}`;if(stopped===\"paused\")return`${of} before AI was paused for everyone. ${leftToWrite}, and AI is back at ${backAt}.${needs}`;if(stopped===\"stop\")return`${of} before you stopped. ${leftToWrite}.${needs}`;return`${of}. ${leftToWrite}.${needs}`;}/* ------------------------------------------------- adding your PDFs -- */// Three ways in on the empty list: search, add your PDFs (picked, or dropped anywhere on the list),\n// or import a list. Each PDF is read in the browser, cited from its DOI or its title, and kept with\n// its source for drafting.\n/** PDFs and Word (.docx) files: what can be read, cited and drafted from. */function isSourceFile(file){const name=file.name.toLowerCase();return file.type===\"application/pdf\"||file.type===\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"||name.endsWith(\".pdf\")||name.endsWith(\".docx\");}/** A reference manager's export (BibTeX, RIS or CSL-JSON): Import a list takes these, not the PDF drop. */function isListFile(name){return/\\.(bib|bibtex|ris|json)$/i.test(name);}/** \"a.pdf\", \"a.pdf and b.pdf\", \"a.pdf, b.pdf and c.pdf\", or the first two and how many more. */function fileNames(names){if(names.length<=1)return names[0]??\"\";if(names.length<=3)return`${names.slice(0,-1).join(\", \")} and ${names[names.length-1]}`;return`${names.slice(0,2).join(\", \")} and ${names.length-2} more`;}/** The toast once PDFs are added, picked or dropped: how many, and what to do about any that weren't.\n *  `titleOnly` were added with a title guessed from the file; `unread` had no text to read; `skipped`\n *  weren't PDFs or Word files. */function pdfsAddedLine(run){const{added,titleOnly,unread,skipped}=run;const out=[];if(added)out.push(`Added ${added} ${added===1?\"source\":\"sources\"} from your PDFs.`);if(titleOnly.length){const one=titleOnly.length===1;out.push(`We could only find the ${one?\"title\":\"titles\"} for ${fileNames(titleOnly)}, so check ${one?\"its\":\"their\"} details with Edit.`);}if(unread.length){const one=unread.length===1;out.push(`We couldn’t read text from ${fileNames(unread)}. Try ${one?\"another copy\":\"other copies\"}, or search for ${one?\"it\":\"them\"} above.`);}if(skipped.length){out.push(`Only PDFs and Word files can be added this way, so we left out ${fileNames(skipped)}.`);if(skipped.some(isListFile))out.push(\"To bring in a reference list, use Import a list.\");}return out.join(\" \");}const surnameOf=n=>n.literal??[n[\"non-dropping-particle\"],n.family].filter(Boolean).join(\" \")??\"\";/** How the chosen style refers to the authors in running text: APA and MLA name one or two, then \"et al.\";\n *  Chicago names up to three. */function authorsRef(authors,family){const names=(authors??[]).map(surnameOf).filter(Boolean);if(!names.length)return\"\";const upTo=family===\"chicago\"?3:2;if(names.length>upTo)return`${names[0]} et al.`;if(names.length===1)return names[0];if(names.length===2)return`${names[0]} and ${names[1]}`;return`${names[0]}, ${names[1]}, and ${names[2]}`;}const KINDS={\"article-journal\":\"journal article\",article:\"preprint\",book:\"book\",chapter:\"book chapter\",webpage:\"web page\",\"post-weblog\":\"blog post\",post:\"social media post\",\"article-newspaper\":\"news article\",\"article-magazine\":\"magazine article\",report:\"report\",thesis:\"thesis\",\"paper-conference\":\"conference paper\",\"entry-encyclopedia\":\"encyclopedia entry\",dataset:\"dataset\",motion_picture:\"video\",graphic:\"image\"};function sourceKind(type,facts){if(facts?.kind===\"preprint\")return\"preprint\";return KINDS[type]??\"source\";}/** Lines of real data for the drafting prompt. */function factLines(facts,year){const f=facts??{};const y=f.year??year;return[f.kind===\"journal\"&&f.venue?`Published in the journal ${f.venue}`:\"\",f.kind===\"preprint\"?\"A preprint (posted before or without formal peer review)\":\"\",y?`Published in ${y}`:\"\",typeof f.citedBy===\"number\"?`Cited ${f.citedBy.toLocaleString(\"en-US\")} times (${f.citedFrom??\"OpenAlex\"})`:\"\",f.openAccess?\"Open access\":\"\",f.retracted?\"Retracted\":\"\"].filter(Boolean);}/** Chips for the evaluation part, each backed by real data; a click adds its sentence. */function factChips(facts,kindWord,year){const f=facts??{};const y=f.year??year;const it=kindWord===\"book\"?\"The book\":kindWord===\"web page\"?\"The page\":`The ${kindWord}`;const out=[];if(f.retracted)out.push({key:\"retracted\",label:\"Retracted\",sentence:`${it} has been retracted, so its findings should not be relied on.`,danger:true});if(f.kind===\"journal\"&&f.venue)out.push({key:\"journal\",label:\"Journal article\",sentence:`${it} appeared in ${f.venue}, a scholarly journal.`});if(f.kind===\"preprint\")out.push({key:\"preprint\",label:\"Preprint\",sentence:\"This work is a preprint, so it may not have been through peer review.\"});if(y)out.push({key:\"year\",label:`Published ${y}`,sentence:`${it} was published in ${y}.`});if(typeof f.citedBy===\"number\"&&f.citedBy>0)out.push({key:\"cited\",label:`Cited ${f.citedBy.toLocaleString(\"en-US\")} times`,sentence:`${f.citedFrom??\"OpenAlex\"} lists ${f.citedBy.toLocaleString(\"en-US\")} citations of this work, which shows how often other researchers have drawn on it.`});if(f.openAccess)out.push({key:\"open\",label:\"Open access\",sentence:`${it} is freely available (open access).`});return out;}/** \"Based on the abstract\": what a draft was based on, shown under it. */function basisLabel(basis,from){switch(basis){case\"pasted\":return\"Based on the text you pasted\";case\"pdf\":return\"Based on the PDF you uploaded\";case\"abstract\":return`Based on the abstract${from?` (${from})`:\"\"}`;case\"description\":return from===\"Google Books\"?\"Based on the publisher's description (Google Books)\":`Based on the book's description${from?` (${from})`:\"\"}`;default:return`Based on the web page's text${from?` (${from})`:\"\"}`;}}/** Text for drafting from a PDF: the reference list left out, capped at about 6,000 words. */function capWords(text,max=6e3){const words=text.split(/(\\s+)/);let n=0;let out=\"\";for(const part of words){if(part.trim())n+=1;if(n>max)break;out+=part;}return out.trim();}// ---- CiteOverlap.ts ----------------------------------------------\n// GENERATED from lexi/src/lib/publicAi/overlap.ts by sync-shared.sh. Edit it there, not here.\n/** How much of a student's (or a draft's) annotation is copied from the source. Pure, and shared by\n *  the drafting check on the server and the \"Check my annotation\" tool.\n *\n *  A sentence counts as too close when it shares a run of 8 or more words with the source, or when\n *  most of its 4-word phrases (60% or more, in sentences of 8 words or more) appear in the source.\n *  Short, common phrases (\"the authors found that\") never count on their own. */const norm=t=>t.toLowerCase().normalize(\"NFKD\").replace(/[̀-ͯ]/g,\"\").replace(/[’']/g,\"\").replace(RegExp(\"[^\\\\p{L}\\\\p{N}]+\",\"gu\"),\" \").trim().split(\" \").filter(Boolean);function grams(words,n){const out=new Set;for(let i=0;i+n<=words.length;i+=1)out.add(words.slice(i,i+n).join(\" \"));return out;}function sentencesOf(text){return text.replace(/\\s+/g,\" \").match(/[^.!?]+(?:[.!?]+[\"”’)\\]]*|$)/g)?.map(s=>s.trim()).filter(s=>s.split(\" \").length>=3)??[];}function longestRun(sentence,text,sourceSet){// Grow runs from every 4-word phrase the source also has.\nlet best=[];for(let i=0;i+4<=sentence.length;i+=1){if(!sourceSet.has(sentence.slice(i,i+4).join(\" \")))continue;let j=i+4;while(j<sentence.length&&text.includes(` ${sentence.slice(i,j+1).join(\" \")} `))j+=1;if(j-i>best.length)best=sentence.slice(i,j);}return best;}function overlapWith(annotation,source){const src=norm(source);const srcText=` ${src.join(\" \")} `;const src4=grams(src,4);const src5=grams(src,5);const copied=[];for(const sentence of sentencesOf(annotation)){const w=norm(sentence);if(w.length<6)continue;const run=longestRun(w,srcText,src4);const mine4=grams(w,4);const shared=[...mine4].filter(g=>src4.has(g)).length;if(run.length>=8||w.length>=8&&mine4.size&&shared/mine4.size>=.6)copied.push({sentence,run:run.join(\" \")});}const all5=grams(norm(annotation),5);const share=all5.size?[...all5].filter(g=>src5.has(g)).length/all5.size:0;return{copied,share,tooHigh:copied.length>0||share>.2};}/** The record to keep for a source, or null when there's nothing to keep (the record is then deleted). */function keptRecord(id,parts){const record={id};if(parts.pasted?.trim())record.pasted=parts.pasted;if(parts.pdf?.text.trim())record.pdf={name:parts.pdf.name,text:capWords(parts.pdf.text)};if(parts.basedOn?.trim())record.basedOn=parts.basedOn;return record.pasted||record.pdf||record.basedOn?record:null;}/** A record as read back, with anything that isn't what this page wrote left out; null without an id. */function cleanKept(raw){if(!raw||typeof raw!==\"object\")return null;const r=raw;if(typeof r.id!==\"string\"||!r.id)return null;const pdf=r.pdf&&typeof r.pdf===\"object\"?r.pdf:null;const kept=keptRecord(r.id,{pasted:typeof r.pasted===\"string\"?r.pasted:undefined,pdf:pdf&&typeof pdf.name===\"string\"&&typeof pdf.text===\"string\"?{name:pdf.name,text:pdf.text}:null,basedOn:typeof r.basedOn===\"string\"?r.basedOn:undefined});return kept??{id:r.id};}/** Kept text to let go: sources in none of this browser's lists, and records with nothing left in them. */function keptToDrop(records,ids){const known=new Set(ids);return records.filter(r=>!known.has(r.id)||!(r.pasted||r.pdf||r.basedOn)).map(r=>r.id);}/* ------------------------------------------------------------ IndexedDB -- */const KEPT_DB=\"ws-citation-generator\";const KEPT_STORE=\"source-text\";/** How long opening may take before the page carries on without it. */const KEPT_OPEN_MS=3e3;let keptDb=null;/** The database, opened once per page; null where this browser can't keep anything. */function openKept(){if(keptDb)return keptDb;keptDb=new Promise(resolve=>{let settled=false;let timer;const done=db=>{if(timer)clearTimeout(timer);if(settled){db?.close();return;}settled=true;resolve(db);};try{if(typeof indexedDB===\"undefined\")return done(null);const request=indexedDB.open(KEPT_DB,1);request.onupgradeneeded=()=>{request.result.createObjectStore(KEPT_STORE,{keyPath:\"id\"});};request.onsuccess=()=>{const db=request.result;// Let a later version of this page upgrade it, and reopen if the browser closes it.\ndb.onversionchange=()=>{db.close();keptDb=null;};db.onclose=()=>{keptDb=null;};done(db);};request.onerror=()=>done(null);timer=setTimeout(()=>done(null),KEPT_OPEN_MS);}catch{done(null);}});return keptDb;}/** Every kept record; null when nothing could be read. */async function readKept(){const db=await openKept();if(!db)return null;return new Promise(resolve=>{try{const request=db.transaction(KEPT_STORE,\"readonly\").objectStore(KEPT_STORE).getAll();request.onsuccess=()=>resolve(request.result.map(cleanKept).filter(r=>r!==null));request.onerror=()=>resolve(null);}catch{keptDb=null;resolve(null);}});}/** One write; true once it's stored. False when the browser refused it (full, blocked or closed). */async function changeKept(work){const db=await openKept();if(!db)return false;return new Promise(resolve=>{try{const tx=db.transaction(KEPT_STORE,\"readwrite\");tx.oncomplete=()=>resolve(true);tx.onerror=()=>resolve(false);tx.onabort=()=>resolve(false);work(tx.objectStore(KEPT_STORE));}catch{keptDb=null;resolve(false);}});}/** Keeps a source's text (keptRecord), or deletes it when the record is null. */function keepText(id,record){return changeKept(store=>{if(record)store.put(record);else store.delete(id);});}/** Lets go of the kept text of these sources. */function dropKept(ids){if(!ids.length)return Promise.resolve(true);return changeKept(store=>{for(const id of ids)store.delete(id);});}// ---- CiteAnnotateAI.tsx ------------------------------------------\n/**\n * AI drafting for the annotated bibliography: finds each source's text, streams drafts from the shared\n * generator backend (tool \"annotations\"), and keeps what the student pasted or uploaded in this browser.\n *\n * Text a draft is based on, in order: text the student pasted, a PDF they uploaded (read in the browser),\n * then what /api/public/cite/text finds (the abstract, a book's description, a web page's text). With none\n * of these there's no draft: the card asks for text instead. Never from a title alone.\n *\n * On the annotated page, pasted text, a PDF's text and the last draft's \"Based on…\" line are kept with each\n * source in this browser (CiteSourceText.ts) and brought back after a reload, before anything is drafted or\n * checked, so Draft again and Check my annotation use the same text the draft was based on.\n *\n * Add relevance on a draft that still has the placeholder, once there's a topic, asks for just that part\n * (\"fill-relevance\") and puts it where the placeholder is, so the rest stays as the student left it.\n *\n * Every draft takes one of the browser's free AI drafts for the day. `left` is how many remain: asked\n * of /api/public/ai-left as the page opens, then taken from each draft's count. Draft all stops once\n * none are left instead of running into the limit.\n */const NO_TEXT_MESSAGE=\"We couldn't find text for this source. Paste a passage, the abstract or the book's description, or upload the PDF.\";/** The AI's checks, in the server's order (annotationFeedback's ANNOTATION_CHECKS). */const CHECK_LABELS={summary:\"Summarizes the main argument or findings\",evaluation:\"Evaluates the source\",relevance:\"Explains how it helps your research\",focus:\"Stays about this one source\"};/** Reads the generator's NDJSON stream, one event at a time. Returns true when it ended with \"done\". */async function readEvents(res,onEvent){const reader=res.body.getReader();const decoder=new TextDecoder;let pending=\"\";for(;;){const{value,done}=await reader.read();if(done)return false;pending+=decoder.decode(value,{stream:true});let nl=pending.indexOf(\"\\n\");while(nl>=0){const line=pending.slice(0,nl).trim();pending=pending.slice(nl+1);nl=pending.indexOf(\"\\n\");if(!line)continue;let e;try{e=JSON.parse(line);}catch{continue;}if(e.t===\"done\")return true;if(onEvent(e)===\"stop\"){reader.cancel().catch(()=>{});return false;}}}}const draftYearOf=csl=>Number(csl.issued?.[\"date-parts\"]?.[0]?.[0])||undefined;function useAnnotationAI(options){const{api,family,prefs,onText,onLimit,paused,onPaused,countDrafts,keptIds,onNotKept}=options;const generateUrl=api.replace(/\\/cite\\/?$/,\"/generate\");const leftUrl=`${api.replace(/\\/cite\\/?$/,\"/ai-left\")}?tool=annotations`;const[runtime,setRuntime]=useState({});const lookups=useRef(new Map);const facts=useRef(new Map);const pastedRef=useRef(new Map);const pdfRef=useRef(new Map);const basedOnRef=useRef(new Map);const abortRef=useRef(null);const[bulk,setBulk]=useState(null);const stopBulk=useRef(false);const patch=useCallback((id,p)=>setRuntime(all=>({...all,[id]:{...all[id]??{lookup:\"idle\"},...p}})),[]);/** Free AI drafts left today for this browser; null until known. Draft all reads the ref mid-run. */const[left,setLeftState]=useState(null);const leftRef=useRef(null);const setLeft=useCallback(next=>{leftRef.current=typeof next===\"function\"?next(leftRef.current):next;setLeftState(leftRef.current);},[]);// Asked once the page has sources, and again when the drafts come back at the server's midnight (UTC).\n// If it can't be asked, nothing is said and each draft's own count fills it in.\nconst[day,setDay]=useState(0);useEffect(()=>{if(!countDrafts)return;let cancelled=false;fetch(leftUrl,{headers:toolHeaders()}).then(res=>res.ok?res.json():null).then(data=>{if(!cancelled&&typeof data?.remaining===\"number\"&&data.remaining>=0)setLeft(data.remaining);}).catch(()=>{});const timer=window.setTimeout(()=>{setLeft(null);setDay(d=>d+1);},nextUtcMidnight()-Date.now()+1e3);return()=>{cancelled=true;window.clearTimeout(timer);};},[countDrafts,leftUrl,day,setLeft]);// Kept text comes back once, as the annotated page's lists load. Until it has, nothing is drafted,\n// checked or kept, so a press right after a reload uses the kept text and never writes over it.\nconst keptIdsRef=useRef(keptIds);keptIdsRef.current=keptIds;const onNotKeptRef=useRef(onNotKept);onNotKeptRef.current=onNotKept;const restoring=useRef(null);const notKeptSaid=useRef(false);const keeping=keptIds!==null;useEffect(()=>{if(!keeping||restoring.current)return;restoring.current=(async()=>{const records=await readKept();if(!records)return;const known=new Set(keptIdsRef.current??[]);const back={};for(const r of records){if(!known.has(r.id))continue;// Anything done on the card before this came back wins.\nif(r.pasted&&!pastedRef.current.has(r.id))pastedRef.current.set(r.id,r.pasted);if(r.pdf&&!pdfRef.current.has(r.id))pdfRef.current.set(r.id,r.pdf);if(r.basedOn&&!basedOnRef.current.has(r.id))basedOnRef.current.set(r.id,r.basedOn);back[r.id]={pasted:pastedRef.current.get(r.id),pdf:pdfRef.current.get(r.id),basedOn:basedOnRef.current.get(r.id)};}setRuntime(all=>{const next={...all};for(const[id,p]of Object.entries(back))next[id]={...all[id]??{lookup:\"idle\"},...p};return next;});void dropKept(keptToDrop(records,known));})().catch(()=>{});},[keeping]);/** Keeps a source's text as it now is in this browser, or lets it go when there's none left. */const keep=useCallback(id=>{if(!keptIdsRef.current)return;void(restoring.current??Promise.resolve()).then(async()=>{const record=keptRecord(id,{pasted:pastedRef.current.get(id),pdf:pdfRef.current.get(id),basedOn:basedOnRef.current.get(id)});const ok=await keepText(id,record);if(ok||notKeptSaid.current||!(record?.pasted||record?.pdf))return;notKeptSaid.current=true;onNotKeptRef.current();});},[]);/** Starts (once) the lookup of a source's text and facts. */const ensureLookup=useCallback(item=>{const existing=lookups.current.get(item.id);if(existing)return existing;const csl=item.csl;const params=new URLSearchParams;if(csl.DOI)params.set(\"doi\",String(csl.DOI));if(csl.ISBN)params.set(\"isbn\",String(csl.ISBN).split(/[\\s,]+/)[0]);if(csl.URL&&!csl.DOI)params.set(\"url\",String(csl.URL));if(csl.type)params.set(\"type\",String(csl.type));const work=(async()=>{if(!csl.DOI&&!csl.ISBN&&!csl.URL){patch(item.id,{lookup:\"done\",found:null});return null;}patch(item.id,{lookup:\"loading\"});try{const res=await fetch(`${api}/text?${params.toString()}`);const data=await res.json();if(!res.ok)throw new Error(data.error??\"lookup failed\");if(data.facts)facts.current.set(item.id,data.facts);patch(item.id,{lookup:\"done\",found:data.source??null,facts:data.facts??{}});return data.source??null;}catch{lookups.current.delete(item.id);patch(item.id,{lookup:\"failed\",found:null});return null;}})();lookups.current.set(item.id,work);return work;},[api,patch]);const setPasted=useCallback((id,text)=>{if(text.trim())pastedRef.current.set(id,text);else pastedRef.current.delete(id);patch(id,{pasted:text,needsText:false,error:undefined});keep(id);},[patch,keep]);const setPdf=useCallback((id,pdf)=>{if(pdf)pdfRef.current.set(id,pdf);else pdfRef.current.delete(id);patch(id,{pdf:pdf??undefined,needsText:false,error:undefined});keep(id);},[patch,keep]);/** What a draft of this source would be based on, if anything. */const textFor=useCallback(async item=>{if(restoring.current)await restoring.current;const pasted=pastedRef.current.get(item.id);if(pasted&&pasted.trim().split(/\\s+/).length>=15)return{text:capWords(pasted),basis:\"pasted\"};const pdf=pdfRef.current.get(item.id);if(pdf)return{text:capWords(pdf.text),basis:\"pdf\"};const found=await ensureLookup(item);return found?{text:found.text,basis:found.basis,from:found.from}:null;},[ensureLookup]);/** Drafts (or redrafts) one annotation, streaming into the card. Resolves to how it went. */const draft=useCallback(async(item,mode={kind:\"new\"},inDraftAll=false)=>{const previous=mode.kind===\"new\"?\"\":mode.previous;const fill=mode.kind===\"refine\"&&mode.refine===\"relevance\"&&Boolean(prefs.topic?.trim())&&hasRelevancePlaceholder(previous);// What the card shows: the reply, or for a fill, the annotation with the reply in the placeholder's place.\nconst shown=reply=>fill?fillRelevancePlaceholder(previous,reply):reply;const refine=mode.kind===\"refine\"?fill?\"fill-relevance\":mode.refine:\"\";const source=await textFor(item);if(!source){patch(item.id,{needsText:true,error:NO_TEXT_MESSAGE,drafting:false});track(\"citegen\",\"no_source_text\",{type:item.csl.type});return\"none\";}const f=facts.current.get(item.id);const body={tool:\"annotations\",input:source.text,mode:mode.kind===\"new\"?\"new\":mode.kind,...mode.kind===\"more\"?{exclude:[mode.previous]}:{},...mode.kind===\"refine\"?{previous:mode.previous,refine}:{},options:{type:prefs.type??\"summary-evaluation-relevance\",length:prefs.length,level:prefs.level??\"college\",language:prefs.language??\"english\"},fields:{citation:item.citation,kind:sourceKind(item.csl.type,f),authors:authorsRef(item.csl.author,family),basis:source.basis,facts:factLines(f,draftYearOf(item.csl)).join(\"\\n\"),topic:prefs.topic?.trim()??\"\",words:prefs.length===\"custom\"&&prefs.custom?String(prefs.custom):\"\"}};abortRef.current?.abort();const controller=new AbortController;abortRef.current=controller;patch(item.id,{drafting:true,stream:shown(\"\"),error:undefined,needsText:false});let text=\"\";let finished=false;try{const res=await fetch(generateUrl,{method:\"POST\",headers:toolHeaders(),body:JSON.stringify(body),signal:controller.signal});if(!res.ok||!res.body){const data=await res.json().catch(()=>({}));if(data.code===\"paused\"){onPaused();patch(item.id,{drafting:false,stream:undefined,error:pausedLine(nextUtcMidnight(),\"\")});return\"paused\";}if(data.code===\"daily_limit\"||res.status===429){// Only today's own drafts running out sets the count; a busy network or server says its own message.\nif(data.code===\"daily_limit\")setLeft(0);onLimit(data.error??\"You’ve used today’s free AI drafts.\",inDraftAll&&data.code===\"daily_limit\");patch(item.id,{drafting:false,stream:undefined});return\"limit\";}patch(item.id,{drafting:false,stream:undefined,error:data.error??\"Drafting didn't work. Please try again.\"});return\"error\";}let outcome=null;finished=await readEvents(res,e=>{if(e.t===\"meta\"&&typeof e.remaining===\"number\")setLeft(e.remaining);else if(e.t===\"d\"&&e.v){text+=e.v;patch(item.id,{stream:shown(text)});}else if(e.t===\"restart\"){text=\"\";patch(item.id,{stream:shown(\"\")});}else if(e.t===\"unusable\"){patch(item.id,{drafting:false,stream:undefined,error:e.message??NO_TEXT_MESSAGE,needsText:true});outcome=\"unusable\";return\"stop\";}else if(e.t===\"error\"){// The server gives the draft back when none of this attempt's text reached the page.\nif(!text)setLeft(n=>n===null?null:n+1);patch(item.id,{drafting:false,stream:undefined,error:e.message??\"Drafting didn't work. Please try again.\"});outcome=\"error\";return\"stop\";}});if(outcome)return outcome;}catch{patch(item.id,{drafting:false,stream:undefined,error:controller.signal.aborted?undefined:\"Drafting didn't work. Check your connection and try again.\"});return\"error\";}const final=text.trim();if(!finished||!final){patch(item.id,{drafting:false,stream:undefined,error:\"Drafting stopped early. Please try again.\"});return\"error\";}onText(item.id,shown(final));const basedOn=basisLabel(source.basis,source.from);basedOnRef.current.set(item.id,basedOn);patch(item.id,{drafting:false,stream:undefined,basedOn});keep(item.id);track(\"citegen\",\"annotation_drafted\",{basis:source.basis,mode:mode.kind,refine,type:prefs.type??\"summary-evaluation-relevance\"});return\"ok\";},[textFor,prefs,family,generateUrl,onText,onLimit,onPaused,patch,setLeft,keep]);/** Checks the student's annotation: length and own words here (no AI, no limit), then the AI's\n     *  checks and an improved version, streamed from the \"annotation-feedback\" tool. */const check=useCallback(async(item,annotation)=>{const source=await textFor(item);const copied=source?overlapWith(annotation,source.text).copied:null;const base={status:\"running\",of:annotation,copied,ai:[],improved:\"\"};// While AI is paused for the day, the length and own-words checks still run; the AI's wait.\npatch(item.id,{check:paused?{...base,status:\"limit\",message:pausedLine(nextUtcMidnight(),\"\")}:base});track(\"citegen\",\"check_annotation\",{type:prefs.type??\"summary-evaluation-relevance\",basis:source?.basis??\"none\"});if(copied?.length)track(\"citegen\",\"overlap_warning\",{sentences:copied.length});if(paused)return;const f=facts.current.get(item.id);const body={tool:\"annotation-feedback\",input:annotation,options:{type:prefs.type??\"summary-evaluation-relevance\",length:prefs.length,level:prefs.level??\"college\",language:prefs.language??\"english\"},fields:{citation:item.citation,authors:authorsRef(item.csl.author,family),facts:factLines(f,draftYearOf(item.csl)).join(\"\\n\"),topic:prefs.topic?.trim()??\"\",source:source?.text??\"\",words:prefs.length===\"custom\"&&prefs.custom?String(prefs.custom):\"\"}};let state=base;const set=p=>{state={...state,...p};patch(item.id,{check:state});};try{const res=await fetch(generateUrl,{method:\"POST\",headers:toolHeaders(),body:JSON.stringify(body)});if(!res.ok||!res.body){const data=await res.json().catch(()=>({}));if(data.code===\"paused\"){onPaused();set({status:\"limit\",message:pausedLine(nextUtcMidnight(),\"\")});return;}const limit=data.code===\"daily_limit\"||res.status===429;set({status:limit?\"limit\":\"error\",message:data.error??\"The check didn't work. Please try again.\"});return;}let failed=false;const done=await readEvents(res,e=>{if(e.t===\"check\"&&e.key)set({ai:[...state.ai.filter(c=>c.key!==e.key),{key:e.key,ok:Boolean(e.ok),text:e.v??\"\"}]});else if(e.t===\"d\"&&e.v)set({improved:state.improved+e.v});else if(e.t===\"restart\")set({ai:[],improved:\"\"});else if(e.t===\"unusable\"||e.t===\"error\"){failed=true;set({status:\"error\",message:e.message??\"The check didn't work. Please try again.\"});return\"stop\";}});if(!failed)set(done&&state.improved.trim()?{status:\"done\",improved:state.improved.trim()}:{status:\"error\",message:\"The check stopped early. Please try again.\"});}catch{set({status:\"error\",message:\"The check didn't work. Check your connection and try again.\"});}},[textFor,prefs,family,generateUrl,patch,paused,onPaused]);/** Drafts every source without an annotation, one at a time, in the order given, until today's\n     *  drafts are used up. Its progress counts drafts, so \"Drafting 3 of 8\" when 8 are left. */const draftAll=useCallback(async items=>{stopBulk.current=false;let drafted=0;let needText=0;let asked=0;let stopped=null;// Drafts asked for so far, plus what's still to come: the sources left, or the drafts left if fewer.\nconst total=next=>asked+Math.min(items.length-next,leftRef.current??Infinity);setBulk({done:0,total:total(0),skipped:0});track(\"citegen\",\"draft_all\",{count:items.length,left:leftRef.current??undefined});for(let i=0;i<items.length;i++){if(stopBulk.current)break;if(leftRef.current===0){stopped=\"limit\";break;}const result=await draft(items[i],{kind:\"new\"},true);if(result!==\"none\")asked+=1;if(result===\"ok\")drafted+=1;if(result===\"none\"||result===\"unusable\")needText+=1;if(result===\"limit\"||result===\"paused\"){// A limit that isn't today's drafts (a busy network) ends the run with its own message.\nstopped=result===\"paused\"||leftRef.current===0?result:null;break;}setBulk({done:asked,total:total(i+1),skipped:needText});}if(stopBulk.current&&!stopped)stopped=\"stop\";setBulk(null);return{drafted,needText,stopped};},[draft]);const stop=useCallback(()=>{stopBulk.current=true;abortRef.current?.abort();},[]);return{runtime,ensureLookup,draft,check,draftAll,bulk,stop,setPasted,setPdf,patch,left};}/** Values match the server's annotations config. */const ANNOTATION_TYPE_OPTIONS=[{value:\"summary-evaluation-relevance\",label:\"Summary, evaluation and relevance\"},{value:\"summary\",label:\"Summary only (descriptive)\"},{value:\"summary-evaluation\",label:\"Summary and evaluation (evaluative)\"},{value:\"relevance\",label:\"Relevance focused (reflective)\"}];const LEVEL_OPTIONS=[{value:\"high-school\",label:\"High school\"},{value:\"college\",label:\"College\"},{value:\"graduate\",label:\"Graduate\"}];const LANGUAGE_OPTIONS=[{value:\"english\",label:\"English\"},{value:\"spanish\",label:\"Spanish\"},{value:\"french\",label:\"French\"},{value:\"german\",label:\"German\"},{value:\"portuguese\",label:\"Portuguese\"},{value:\"chinese\",label:\"Chinese (Simplified)\"},{value:\"japanese\",label:\"Japanese\"},{value:\"korean\",label:\"Korean\"}];const REFINE_CHIPS=[{value:\"shorter\",label:\"Shorter\"},{value:\"longer\",label:\"Longer\"},{value:\"formal\",label:\"More formal\"},{value:\"simpler\",label:\"Simpler\"},{value:\"evaluation\",label:\"Add evaluation\"},{value:\"relevance\",label:\"Add relevance\"}];const ANNOTATED_CSS=`\n.wsa-settings{margin-top:14px;border:1px solid ${T.border200};border-radius:14px;background:${T.white}}\n.wsa-settings-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 16px;border:0;background:none;color:${T.text800};font-size:14px;cursor:pointer;text-align:left}\n.wsa-settings-btn svg{flex:none;transition:transform .2s ${T.ease}}\n.wsa-settings-btn[aria-expanded=\"true\"] svg{transform:rotate(180deg)}\n.wsa-settings-btn span{min-width:0;color:${T.text500};font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsa-settings-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px;padding:4px 16px 16px}\n.wsa-custom{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:${T.text600}}\n.wsa-custom input{width:90px}\n.wsa-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:28px}\n.wsa-col-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:0 4px 10px}\n.wsa-col-title{display:flex;align-items:baseline;gap:8px;margin:0;font-size:17px;line-height:1.3;color:${T.text};font-variation-settings:\"wght\" 520;font-weight:520}\n.wsa-col-title span{font-size:14px;color:${T.text500};font-variation-settings:\"wght\" 450;font-weight:450}\n.wsa-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}\n.wsa-card{position:relative;padding:18px 18px 14px;border:1px solid ${T.border200};border-radius:${T.radiusLg}px;background:${T.white};transition:box-shadow .2s ${T.ease}}\n.wsa-card:focus-within{box-shadow:0 1px 3px rgba(0,0,0,.06),0 6px 16px rgba(0,0,0,.06)}\n.wsa-card--new{animation:wst-drop .35s ${T.ease}}\n.wsa-ref{display:flex;gap:10px;align-items:flex-start}\n.wsa-ref-text{flex:1;min-width:0;font-size:15px;line-height:1.6;color:${T.text};overflow-wrap:anywhere;padding-left:24px;text-indent:-24px}\n.wsa-ref-text--pending{color:${T.text600}}\n.wsa-ref-actions{display:flex;gap:2px;flex:none;margin-top:-4px;opacity:.6;transition:opacity .15s}\n.wsa-card:hover .wsa-ref-actions,.wsa-card:focus-within .wsa-ref-actions{opacity:1}\n.wsa-note{display:block;width:100%;min-height:96px;margin-top:12px;padding:10px 12px;border:1px solid ${T.border200};border-radius:10px;background:${T.bg50};font-size:15px;line-height:1.55;color:${T.text};resize:none;overflow:hidden;transition:border-color .15s,box-shadow .15s,background-color .15s}\n.wsa-note::placeholder{color:${T.text500}}\n.wsa-note:hover{border-color:${T.border300}}\n.wst-root .wsa-note:focus-visible{outline:none;background:${T.white};border-color:${T.border300};box-shadow:0 0 0 3px ${T.black5}}\n.wsa-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px;margin-top:8px;font-size:13px;color:${T.text600}}\n.wsa-count{font-variant-numeric:tabular-nums}\n.wsa-count--off{color:${T.amber}}\n.wsa-doc-col{position:sticky;top:96px;min-width:0}\n.wsa-doc-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}\n.wsa-doc-options{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 10px}\n.wsa-doc-options .wsf-field{margin:0;flex:1 1 200px}\n.wsa-paper{max-height:calc(100vh - 220px);min-height:240px;overflow:auto;padding:36px 34px 40px;border:1px solid ${T.border200};border-radius:${T.radiusLg}px;background:${T.white};box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05);font-family:\"Times New Roman\",Times,Georgia,serif;font-size:14px;color:#111}\n.wsa-paper p{margin:0;overflow-wrap:anywhere}\n.wsa-paper--double p{line-height:2}\n.wsa-paper--single p{line-height:1.35}\n.wsa-paper--single .wsa-p-last{margin-bottom:1.35em}\n.wsa-paper-title{text-align:center}\n.wsa-paper--single .wsa-paper-title{margin-bottom:1.35em}\n.wsa-paper-empty{color:${T.text500};font-family:${T.font};font-size:14px;text-align:center;margin-top:10px}\n.wsa-doc-toggle{display:none}\n.wsa-top{max-width:880px;margin:14px auto 0}\n.wsa-topic-row{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:12px}\n.wsa-topic-row .wsf-field{margin:0}\n.wsa-top .wsa-settings{margin-top:12px}\n.wsa-ai{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}\n.wsa-ai .wst-btn--sm{height:30px}\n.wsa-chip{display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border:1px solid ${T.border200};border-radius:999px;background:${T.white};color:${T.text700};font-size:12.5px;cursor:pointer;transition:border-color .15s,color .15s}\n.wsa-chip:hover{border-color:${T.border300};color:${T.text}}\n.wsa-chip[disabled]{opacity:.5;cursor:default}\n.wsa-chip--offer{border-color:${T.border300};color:${T.text}}\n.wst-root .wsa-chip:focus-visible,.wst-root .wsa-paste-btn:focus-visible{outline:2px solid ${T.text500};outline-offset:2px}\n.wsa-chip--danger{border-color:rgba(255,34,68,.4);color:${T.red};background:rgba(255,34,68,.05)}\n.wsa-facts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}\n.wsa-facts-label{font-size:12px;color:${T.text500};margin-right:2px}\n.wsa-basis{margin:6px 0 0;font-size:12.5px;color:${T.text600}}\n.wsa-msg{margin:8px 0 0;font-size:13px;line-height:1.45;color:${T.amber}}\n.wsa-msg--danger{color:${T.red}}\n.wsa-paste{margin-top:10px}\n.wsa-paste-btn{padding:0;border:0;background:none;color:${T.text600};font-size:13px;text-decoration:underline;text-decoration-color:${T.border300};text-underline-offset:3px;cursor:pointer}\n.wsa-paste-btn:hover{color:${T.text}}\n.wsa-paste-body{margin-top:8px}\n.wsa-paste-body textarea{display:block;width:100%;min-height:90px;padding:8px 10px;border:1px solid ${T.border200};border-radius:10px;font-size:14px;line-height:1.5;resize:vertical}\n.wst-root .wsa-paste-body textarea:focus-visible{outline:none;border-color:${T.border300};box-shadow:0 0 0 3px ${T.black5}}\n.wsa-paste-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:6px;font-size:12.5px;color:${T.text600}}\n.wsa-check{margin-top:12px;padding:12px 14px 14px;border:1px solid ${T.border200};border-radius:12px;background:${T.bg50};animation:wst-in .2s ${T.ease}}\n.wsa-check-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;font-size:14px;color:${T.text};font-variation-settings:\"wght\" 520;font-weight:520}\n.wsa-check-list{list-style:none;margin:6px 0 0;padding:0}\n.wsa-check-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid ${T.border200};font-size:13.5px;line-height:1.45;color:${T.text700}}\n.wsa-check-row:first-child{border-top:0}\n.wsa-check-row b{display:block;color:${T.text};font-weight:520;font-variation-settings:\"wght\" 520}\n.wsa-check-row .wst-spin{width:13px;height:13px;margin-top:3px;color:${T.icon400}}\n.wsa-check-icon{display:flex;margin-top:1px}\n.wsa-check-icon--ok{color:${T.green}}\n.wsa-check-icon--work{color:${T.amber}}\n.wsa-check-icon--idle{color:${T.icon400}}\n.wsa-check-quote{margin:6px 0 0;padding-left:10px;border-left:2px solid ${T.amber};color:${T.text700}}\n.wsa-improved-label{margin:12px 0 0;font-size:13px;color:${T.text600}}\n.wsa-improved{margin-top:6px;padding:12px 14px;border:1px solid ${T.border200};border-radius:10px;background:${T.white};font-size:15px;line-height:1.55;color:${T.text};white-space:pre-wrap;overflow-wrap:anywhere}\n.wsa-improved--pending{color:${T.text500}}\n.wsa-check-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}\n.wsa-check-note{margin:10px 0 0;font-size:13px;line-height:1.45;color:${T.text600}}\n.wsa-check-note a{color:inherit;text-underline-offset:3px}\n.wsa-subject{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:13px;color:${T.text600}}\n.wsa-subject .wsf-input{flex:1;min-width:0;height:36px}\n.wsa-col-tools{display:flex;align-items:center;gap:6px}\n.wst-root .wsa-col-tools .wst-btn:focus-visible,.wst-root .wsa-bulk .wst-btn:focus-visible{outline:2px solid ${T.text500};outline-offset:2px}\n.wsa-paused,.wsa-drafts-left{margin:-2px 4px 12px;font-size:13px;line-height:1.45;color:${T.text600}}\n.wsa-todo{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:8px 0 0;padding:2px 0 2px 10px;border-left:2px solid ${T.amber};font-size:13px;line-height:1.45;color:${T.text700}}\n.wsa-todo-left{margin:-2px 4px 12px;font-size:13px;line-height:1.45;color:${T.amber}}\n.wsa-todo-left .wsa-paste-btn{margin-left:6px}\n.wsa-paper mark{background:rgba(154,103,0,.14);color:inherit;border-radius:2px}\n.wsa-group-head{margin:8px 4px -2px;font-size:13px;color:${T.text600};font-variation-settings:\"wght\" 520;font-weight:520}\n.wsa-group-head:first-child{margin-top:0}\n.wsa-bulk{display:flex;align-items:center;gap:10px;font-size:13px;color:${T.text600}}\n.wsa-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:36px 22px;border:1px dashed ${T.border300};border-radius:${T.radiusLg}px;background:${T.bg50};color:${T.text600}}\n.wsa-empty strong{color:${T.text};font-weight:520;font-variation-settings:\"wght\" 520;font-size:16px}\n.wsa-empty button{border:0;background:none;padding:0;color:${T.text800};text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:inherit}\n.wsa-empty button[disabled]{opacity:.55;cursor:default}\n.wst-root .wsa-empty button:focus-visible{outline:2px solid ${T.text500};outline-offset:2px;border-radius:2px}\n.wsa-ways{display:grid;gap:6px;max-width:460px;margin:2px 0 0;padding:0;list-style:none;font-size:14px;line-height:1.5}\n.wsa-sources{border-radius:${T.radiusLg}px}\n.wsa-sources--drop{outline:2px dashed ${T.text500};outline-offset:6px}\n.wsa-adding{position:sticky;top:96px;z-index:2;display:flex;align-items:center;gap:8px;margin:-2px 0 12px;padding:8px 12px;border:1px solid ${T.border200};border-radius:10px;background:${T.white};box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:13px;line-height:1.45;color:${T.text700}}\n.wsa-adding svg,.wsa-adding .wst-spin{flex:none;color:${T.text600}}\n.wsa-adding .wst-spin{width:14px;height:14px}\n.wsa-adding-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n@media (max-width:960px){\n  .wsa-work{grid-template-columns:minmax(0,1fr);gap:16px}\n  .wsa-doc-col{position:static;order:-1}\n  .wsa-doc-col:not(.wsa-doc-col--open) .wsa-doc-body{display:none}\n  .wsa-doc-toggle{display:inline-flex}\n  .wsa-paper{max-height:none;padding:24px 18px 28px;font-size:13px}\n  .wsa-topic-row{grid-template-columns:minmax(0,1fr)}\n}\n`;/** A textarea that grows with its text, so a long annotation never scrolls inside the card. */function AutoText(props){const ref=useRef(null);useEffect(()=>{const el=ref.current;if(!el)return;el.style.height=\"auto\";el.style.height=`${Math.max(96,el.scrollHeight+2)}px`;},[props.value]);return /*#__PURE__*/_jsx(\"textarea\",{ref:ref,rows:3,...props});}/** Puts the cursor on an annotation's placeholder, selected, so what the student types replaces it. */function selectPlaceholder(el){const at=el?relevancePlaceholderAt(el.value):null;if(!el||!at)return;el.focus();el.setSelectionRange(at.start,at.end);}/** An annotation paragraph in the preview, with the placeholder marked. */function markPlaceholder(text){const at=relevancePlaceholderAt(text);if(!at)return text;return /*#__PURE__*/_jsxs(_Fragment,{children:[text.slice(0,at.start),/*#__PURE__*/_jsx(\"mark\",{children:RELEVANCE_PLACEHOLDER}),text.slice(at.end)]});}function AnnotatedWorkspace({items,formatted,formatting,rules,styleLabel,prefs,onPrefs,onAnnotate,onEdit,onRemove,onCopyAll,onDocx,onExample,lastAdded,docOpen,onDocOpen,runtime,aiPaused,draftsLeft,citationOf,onDraft,onDraftAll,bulk,onStop,onPasted,onPdf,onLookup,onCheck,onCheckClose,onUseImproved,signupUrl,order,arrangement,subjects,onSubject,fileMenu,onImportClick,onAddPdfs,onDropFiles,adding}){const baseId=useId();const target=lengthTarget(prefs.length,prefs.custom);const title=prefs.title&&rules.titles.includes(prefs.title)?prefs.title:rules.titles[0];const byId=new Map(items.map(i=>[i.id,i]));const ready=Boolean(formatted&&formatted.entries.length===items.length&&formatted.entries.every(e=>byId.has(e.id)));// Cards follow the finished document's order (the style's own, alphabetical for most).\nconst ordered=ready?arrangement.entries.map(e=>({item:byId.get(e.id),html:e.html})):items.map(item=>({item,html:\"\"}));const headingBefore=new Map((ready?arrangement.groups??[]:[]).filter(g=>g.ids.length).map(g=>[g.ids[0],g.heading]));const subjectList=[...new Set(Object.values(subjects).map(s=>s.trim()).filter(Boolean))];const hanging=Boolean(formatted?.hangingIndent||formatted?.secondFieldAlign);// Annotations whose placeholder the student hasn't written yet, said by Copy all and Word.\nconst left=items.filter(i=>hasRelevancePlaceholder(typeof i.csl.annote===\"string\"?i.csl.annote:\"\")).length;// Sources with no annotation yet: what Draft all would draft, and what the drafts left are measured against.\nconst toDraft=items.filter(i=>!(typeof i.csl.annote===\"string\"&&i.csl.annote.trim())).length;const draftsLine=aiPaused||bulk||!items.length?null:draftsLeftLine(draftsLeft,toDraft,backAtLabel(nextUtcMidnight()));const cardsRef=useRef(null);const addingHere=adding?.here?adding.text:null;// PDFs dragged over the list: outlined, with a line saying a drop adds them. Other drags (text) pass through.\nconst[dropping,setDropping]=useState(false);const dragDepth=useRef(0);const hasFiles=e=>Array.from(e.dataTransfer.types).includes(\"Files\");const dropProps={onDragEnter:e=>{if(!hasFiles(e))return;e.preventDefault();dragDepth.current+=1;setDropping(true);},onDragOver:e=>{if(!hasFiles(e))return;e.preventDefault();e.dataTransfer.dropEffect=\"copy\";},onDragLeave:e=>{if(!hasFiles(e))return;dragDepth.current=Math.max(0,dragDepth.current-1);if(!dragDepth.current)setDropping(false);},onDrop:e=>{if(!hasFiles(e))return;e.preventDefault();dragDepth.current=0;setDropping(false);const files=Array.from(e.dataTransfer.files);if(files.length)onDropFiles(files);}};const showFirstLeft=()=>{const notes=Array.from(cardsRef.current?.querySelectorAll(\".wsa-note\")??[]);selectPlaceholder(notes.find(n=>hasRelevancePlaceholder(n.value)));};return /*#__PURE__*/_jsxs(\"div\",{className:\"wsa-work\",children:[/*#__PURE__*/_jsxs(\"section\",{\"aria-label\":\"Your sources and annotations\",className:cx(\"wsa-sources\",dropping&&\"wsa-sources--drop\"),...dropProps,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-col-head\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"wsa-col-title\",children:[\"Sources \",items.length?/*#__PURE__*/_jsx(\"span\",{children:items.length}):null]}),bulk?/*#__PURE__*/_jsxs(\"span\",{className:\"wsa-bulk\",\"aria-live\":\"polite\",children:[\"Drafting \",Math.min(bulk.done+1,bulk.total),\" of \",bulk.total,/*#__PURE__*/_jsx(Button,{variant:\"ghost\",size:\"sm\",onClick:onStop,children:\"Stop\"})]}):/*#__PURE__*/_jsxs(\"span\",{className:\"wsa-col-tools\",children:[toDraft?/*#__PURE__*/_jsx(Button,{variant:\"secondary\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Sparkle,{size:15}),onClick:onDraftAll,disabled:Boolean(aiPaused)||draftsLeft===0||Object.values(runtime).some(r=>r.drafting),\"aria-describedby\":aiPaused?`${baseId}-paused`:draftsLine?`${baseId}-drafts`:undefined,children:\"Draft all\"}):null,fileMenu]})]}),dropping||addingHere?/*#__PURE__*/_jsxs(\"p\",{className:\"wsa-adding\",\"aria-hidden\":\"true\",children:[addingHere&&!dropping?/*#__PURE__*/_jsx(\"span\",{className:\"wst-spin\"}):/*#__PURE__*/_jsx(Icons.Upload,{size:15}),/*#__PURE__*/_jsx(\"span\",{className:\"wsa-adding-text\",children:dropping?\"Drop your PDFs to add them as sources\":addingHere})]}):null,/*#__PURE__*/_jsx(\"span\",{className:\"wst-sr\",\"aria-live\":\"polite\",children:addingHere??\"\"}),aiPaused?/*#__PURE__*/_jsx(\"p\",{className:\"wsa-paused\",id:`${baseId}-paused`,children:aiPaused}):draftsLine?/*#__PURE__*/_jsx(\"p\",{className:\"wsa-drafts-left\",id:`${baseId}-drafts`,children:draftsLine}):null,order===\"subject\"?/*#__PURE__*/_jsx(\"datalist\",{id:`${baseId}-subjects`,children:subjectList.map(s=>/*#__PURE__*/_jsx(\"option\",{value:s},s))}):null,items.length===0?/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-empty\",children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Your sources will appear here\"}),/*#__PURE__*/_jsxs(\"ul\",{className:\"wsa-ways\",children:[/*#__PURE__*/_jsxs(\"li\",{children:[\"Search above by title, DOI or link. Try\",\" \",/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onExample,children:\"10.1038/nature14539\"}),\".\"]}),/*#__PURE__*/_jsxs(\"li\",{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onAddPdfs,disabled:Boolean(adding),children:\"Add your PDFs\"}),\", or drop them anywhere on this list. We cite each one and draft from its full text.\"]}),/*#__PURE__*/_jsxs(\"li\",{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onImportClick,children:\"Import a list\"}),\" \",\"from Zotero, Mendeley or EndNote, notes included.\"]})]})]}):/*#__PURE__*/_jsx(\"ul\",{className:\"wsa-cards\",ref:cardsRef,children:ordered.map(({item,html})=>/*#__PURE__*/_jsxs(React.Fragment,{children:[headingBefore.has(item.id)?/*#__PURE__*/_jsx(\"li\",{className:\"wsa-group-head\",children:headingBefore.get(item.id)}):null,/*#__PURE__*/_jsx(SourceCard,{subject:order===\"subject\"?{value:subjects[item.id]??\"\",list:`${baseId}-subjects`,onChange:v=>onSubject(item.id,v)}:null,item:item,html:html,formatting:formatting,isNew:item.id===lastAdded,target:target,rt:runtime[item.id],onAnnotate:onAnnotate,onEdit:onEdit,onRemove:onRemove,onDraft:onDraft,onPasted:onPasted,onPdf:onPdf,onLookup:onLookup,onCheck:onCheck,onCheckClose:onCheckClose,onUseImproved:onUseImproved,signupUrl:signupUrl,annotationType:prefs.type??\"summary-evaluation-relevance\",busy:Boolean(bulk),aiPaused:aiPaused?`${baseId}-paused`:null,offerFill:Boolean(prefs.topic?.trim())&&!aiPaused},item.id)]},item.id))})]}),/*#__PURE__*/_jsxs(\"section\",{className:cx(\"wsa-doc-col\",docOpen&&\"wsa-doc-col--open\"),\"aria-label\":\"Document preview\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-col-head\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"wsa-col-title\",children:\"Document\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-doc-tools\",children:[/*#__PURE__*/_jsxs(Button,{variant:\"ghost\",size:\"sm\",className:\"wsa-doc-toggle\",\"aria-expanded\":docOpen,onClick:()=>onDocOpen(!docOpen),children:[docOpen?\"Hide\":\"Preview\",/*#__PURE__*/_jsx(Icons.ChevronDown,{size:14,style:{transform:docOpen?\"rotate(180deg)\":undefined}})]}),/*#__PURE__*/_jsx(Button,{variant:\"secondary\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Copy,{size:15}),onClick:onCopyAll,disabled:!ready||!items.length,\"aria-describedby\":left?`${baseId}-left`:undefined,children:\"Copy all\"}),/*#__PURE__*/_jsx(Button,{variant:\"primary\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Download,{size:15}),onClick:onDocx,disabled:!ready||!items.length,\"aria-describedby\":left?`${baseId}-left`:undefined,children:\"Word\"})]})]}),left?/*#__PURE__*/_jsxs(\"p\",{className:\"wsa-todo-left\",children:[/*#__PURE__*/_jsx(\"span\",{id:`${baseId}-left`,children:placeholdersLeftLine(left)}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsa-paste-btn\",onClick:showFirstLeft,children:\"Show me\"})]}):null,/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-doc-body\",children:[rules.titles.length>1||rules.headerName||rules.reorder?/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-doc-options\",children:[rules.reorder?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${baseId}-order`,children:\"Order\"})}),/*#__PURE__*/_jsx(FormSelect,{id:`${baseId}-order`,value:order,options:ENTRY_ORDERS,onChange:o=>{onPrefs({order:o});track(\"citegen\",\"sort_changed\",{order:o});}})]}):null,rules.titles.length>1?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${baseId}-title`,children:\"Title\"})}),/*#__PURE__*/_jsx(FormSelect,{id:`${baseId}-title`,value:title,options:rules.titles.map(t=>({value:t,label:t})),onChange:t=>onPrefs({title:t})})]}):null,rules.headerName?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${baseId}-surname`,children:\"Your last name\"})}),/*#__PURE__*/_jsx(\"input\",{id:`${baseId}-surname`,className:\"wsf-input\",placeholder:\"For the page header in Word\",value:prefs.surname??\"\",onChange:e=>onPrefs({surname:e.target.value}),autoComplete:\"family-name\"})]}):null]}):null,/*#__PURE__*/_jsxs(\"div\",{className:cx(\"wsa-paper\",rules.lineSpacing===2?\"wsa-paper--double\":\"wsa-paper--single\"),\"aria-label\":`${title}, ${styleLabel}`,children:[/*#__PURE__*/_jsx(\"p\",{className:\"wsa-paper-title\",children:rules.titleBold?/*#__PURE__*/_jsx(\"b\",{children:title}):title}),!items.length?/*#__PURE__*/_jsx(\"p\",{className:\"wsa-paper-empty\",children:\"Your annotated bibliography builds here as you add sources.\"}):null,ordered.map(({item,html})=>{const paras=annotationParagraphs(typeof item.csl.annote===\"string\"?item.csl.annote:\"\");return /*#__PURE__*/_jsxs(React.Fragment,{children:[headingBefore.has(item.id)?/*#__PURE__*/_jsx(\"p\",{className:cx(\"wsa-paper-heading\",rules.lineSpacing===1&&\"wsa-p-last\"),style:{textAlign:rules.family===\"mla\"?\"center\":\"left\"},children:/*#__PURE__*/_jsx(\"b\",{children:headingBefore.get(item.id)})}):null,/*#__PURE__*/_jsx(\"p\",{className:cx(!paras.length&&\"wsa-p-last\"),style:hanging?{paddingLeft:\"2.5em\",textIndent:\"-2.5em\"}:undefined,dangerouslySetInnerHTML:{__html:html?entryInline(html):String(item.csl.title??\"\")}}),paras.map((text,i)=>/*#__PURE__*/_jsx(\"p\",{className:cx(i===paras.length-1&&\"wsa-p-last\"),style:{paddingLeft:`${rules.annotationLeft*5}em`,textIndent:`${(i===0?rules.firstIndent:rules.laterIndent)*5}em`},children:markPlaceholder(text)},i))]},item.id);})]})]})]})]});}/** One source: its reference, the annotation under it, and the AI and source-fact tools. */function SourceCard({item,html,formatting,isNew,target,rt,onAnnotate,onEdit,onRemove,onDraft,onPasted,onPdf,onLookup,onCheck,onCheckClose,onUseImproved,signupUrl,annotationType,subject,busy,aiPaused,offerFill}){const id=useId();const fileRef=useRef(null);const[pasteOpen,setPasteOpen]=useState(false);// Look up the source's text and facts once the card is on screen.\nuseEffect(()=>{if(!rt||rt.lookup===\"idle\")onLookup(item);},[item.id]);useEffect(()=>{if(rt?.needsText)setPasteOpen(true);},[rt?.needsText]);const saved=typeof item.csl.annote===\"string\"?item.csl.annote:\"\";const drafting=Boolean(rt?.drafting);const annote=drafting?rt?.stream??\"\":saved;const words=wordCount(annote);const off=words>0&&(words<target.min||words>target.max);const year=Number(item.csl.issued?.[\"date-parts\"]?.[0]?.[0])||undefined;const chips=factChips(rt?.facts,sourceKind(item.csl.type,rt?.facts),year);const retracted=chips.some(c=>c.key===\"retracted\");const hasOwnText=Boolean(rt?.pasted?.trim()||rt?.pdf);// A draft written without a topic: the part in brackets is the student's to write.\nconst todo=!drafting&&hasRelevancePlaceholder(saved);const addFact=chip=>{const next=saved.trim()?`${saved.trim()} ${chip.sentence}`:chip.sentence;onAnnotate(item.id,next);track(\"citegen\",\"source_fact_chip\",{fact:chip.key});};return /*#__PURE__*/_jsxs(\"li\",{className:cx(\"wsa-card\",isNew&&\"wsa-card--new\"),children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-ref\",children:[html?/*#__PURE__*/_jsx(\"div\",{className:cx(\"wsa-ref-text\",formatting&&\"wsa-ref-text--pending\"),dangerouslySetInnerHTML:{__html:entryInline(html)}}):/*#__PURE__*/_jsx(\"div\",{className:\"wsa-ref-text wsa-ref-text--pending\",children:String(item.csl.title??\"Formatting...\")}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-ref-actions\",children:[/*#__PURE__*/_jsx(IconButton,{label:\"Edit citation\",onClick:()=>onEdit(item.id),children:/*#__PURE__*/_jsx(Icons.Pencil,{size:17})}),/*#__PURE__*/_jsx(IconButton,{label:\"Remove source\",onClick:()=>onRemove(item.id),children:/*#__PURE__*/_jsx(Icons.Trash,{size:17})})]})]}),subject?/*#__PURE__*/_jsx(SubjectInput,{...subject}):null,retracted?/*#__PURE__*/_jsx(\"p\",{className:\"wsa-msg wsa-msg--danger\",children:\"This source has been retracted. Most instructors expect you to replace a retracted source; if you keep it, say so in your annotation.\"}):null,/*#__PURE__*/_jsx(\"label\",{className:\"wst-sr\",htmlFor:`${id}-note`,children:\"Annotation\"}),/*#__PURE__*/_jsx(AutoText,{id:`${id}-note`,className:\"wsa-note\",value:annote,readOnly:drafting,\"aria-busy\":drafting||undefined,placeholder:\"Write your annotation: what the source argues or finds, how good it is, and how it helps your research. Or draft one with AI.\",onChange:e=>onAnnotate(item.id,e.target.value),\"aria-describedby\":todo?`${id}-todo ${id}-count`:`${id}-count`}),todo?/*#__PURE__*/_jsxs(\"p\",{className:\"wsa-todo\",children:[/*#__PURE__*/_jsx(\"span\",{id:`${id}-todo`,children:placeholderNote(offerFill)}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsa-paste-btn\",onClick:()=>selectPlaceholder(document.getElementById(`${id}-note`)),children:\"Write it\"})]}):null,/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-card-foot\",children:[/*#__PURE__*/_jsxs(\"span\",{id:`${id}-count`,className:cx(\"wsa-count\",off&&\"wsa-count--off\"),\"aria-live\":\"polite\",children:[words?`${words} word${words===1?\"\":\"s\"}`:\"No annotation yet\",` \\xb7 target ${target.label}`]}),saved.trim()&&!drafting&&rt?.check?.status!==\"running\"?/*#__PURE__*/_jsx(Button,{variant:\"ghost\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Check,{size:14}),onClick:()=>onCheck(item.id),disabled:busy,children:rt?.check?\"Check again\":\"Check my annotation\"}):null]}),rt?.check?/*#__PURE__*/_jsx(CheckPanel,{check:rt.check,current:saved,target:target,type:annotationType,signupUrl:signupUrl,onUse:text=>onUseImproved(item.id,text),onClose:()=>onCheckClose(item.id)}):null,/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-ai\",children:[/*#__PURE__*/_jsx(Button,{variant:\"secondary\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Sparkle,{size:14}),onClick:()=>onDraft(item.id,{kind:\"new\"}),loading:drafting,disabled:(busy||Boolean(aiPaused))&&!drafting,\"aria-describedby\":aiPaused??undefined,children:drafting?\"Drafting\":saved.trim()?\"Draft again\":\"Draft with AI\"}),saved.trim()&&!drafting?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Button,{variant:\"ghost\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Refresh,{size:14}),onClick:()=>onDraft(item.id,{kind:\"more\",previous:saved}),disabled:busy||Boolean(aiPaused),children:\"Another version\"}),REFINE_CHIPS.map(c=>{const offered=c.value===\"relevance\"&&todo&&offerFill;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",className:cx(\"wsa-chip\",offered&&\"wsa-chip--offer\"),disabled:busy||Boolean(aiPaused),\"aria-describedby\":offered?`${id}-todo`:undefined,onClick:()=>onDraft(item.id,{kind:\"refine\",previous:saved,refine:c.value}),children:c.label},c.value);})]}):null]}),rt?.basedOn&&!drafting?/*#__PURE__*/_jsxs(\"p\",{className:\"wsa-basis\",children:[rt.basedOn,\". Read the source to check this.\"]}):null,rt?.error?/*#__PURE__*/_jsx(\"p\",{className:\"wsa-msg\",children:rt.error}):null,chips.length?/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-facts\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsa-facts-label\",children:\"Add a fact:\"}),chips.map(c=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:cx(\"wsa-chip\",c.danger&&\"wsa-chip--danger\"),title:c.sentence,onClick:()=>addFact(c),children:c.label},c.key))]}):null,/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-paste\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsa-paste-btn\",\"aria-expanded\":pasteOpen,onClick:()=>setPasteOpen(o=>!o),children:hasOwnText?rt?.pdf?`Using the PDF: ${rt.pdf.name}`:\"Using the text you pasted\":\"Paste text from the source\"}),pasteOpen?/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-paste-body\",children:[/*#__PURE__*/_jsx(\"label\",{className:\"wst-sr\",htmlFor:`${id}-paste`,children:\"Text from the source\"}),/*#__PURE__*/_jsx(\"textarea\",{id:`${id}-paste`,value:rt?.pasted??\"\",placeholder:\"Paste the abstract, a passage or the book’s description. It’s used for drafting and checking only, and stays in this browser.\",onChange:e=>onPasted(item.id,e.target.value)}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-paste-foot\",children:[rt?.pdf?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"span\",{children:rt.pdf.name}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsa-paste-btn\",onClick:()=>onPdf(item.id,null),children:\"Remove PDF\"})]}):/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsa-paste-btn\",onClick:()=>fileRef.current?.click(),children:\"Or upload the PDF\"}),/*#__PURE__*/_jsx(\"input\",{ref:fileRef,type:\"file\",accept:\"application/pdf,.pdf,.docx\",hidden:true,onChange:e=>{const f=e.target.files?.[0];if(f)onPdf(item.id,f);e.target.value=\"\";}})]})]}):null]})]});}/** The subject heading a source goes under. Saved when the field is left, so the card doesn't move while typing. */function SubjectInput({value,list,onChange}){const[text,setText]=useState(value);useEffect(()=>setText(value),[value]);const commit=()=>{if(text.trim()!==value.trim())onChange(text.replace(/\\s+/g,\" \").trim());};return /*#__PURE__*/_jsxs(\"label\",{className:\"wsa-subject\",children:[\"Subject\",/*#__PURE__*/_jsx(\"input\",{className:\"wsf-input\",list:list,value:text,placeholder:\"For example: Sleep and health\",maxLength:80,onChange:e=>setText(e.target.value),onBlur:commit,onKeyDown:e=>{if(e.key===\"Enter\"){e.preventDefault();commit();}}})]});}/** Server's rule: which AI checks an annotation type gets (annotationFeedback's checksFor). */function checkKeys(type){return[\"summary\",...type!==\"summary\"&&type!==\"relevance\"?[\"evaluation\"]:[],...type!==\"summary\"&&type!==\"summary-evaluation\"?[\"relevance\"]:[],\"focus\"];}function CheckRow({state,title,children}){return /*#__PURE__*/_jsxs(\"li\",{className:\"wsa-check-row\",children:[state===\"pending\"?/*#__PURE__*/_jsx(\"span\",{className:\"wst-spin\",\"aria-hidden\":true}):state===\"ok\"?/*#__PURE__*/_jsx(\"span\",{className:\"wsa-check-icon wsa-check-icon--ok\",role:\"img\",\"aria-label\":\"Good\",children:/*#__PURE__*/_jsx(Icons.Check,{size:16})}):state===\"work\"?/*#__PURE__*/_jsx(\"span\",{className:\"wsa-check-icon wsa-check-icon--work\",role:\"img\",\"aria-label\":\"Needs work\",children:/*#__PURE__*/_jsx(Icons.Alert,{size:16})}):/*#__PURE__*/_jsx(\"span\",{className:\"wsa-check-icon wsa-check-icon--idle\",children:/*#__PURE__*/_jsx(Icons.Alert,{size:16})}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"b\",{children:title}),children]})]});}/** \"Check my annotation\": length and own words (checked here), the AI's checks, then an improved version. */function CheckPanel({check,current,target,type,signupUrl,onUse,onClose}){const words=wordCount(check.of);const lengthOk=words>=target.min&&words<=target.max;const running=check.status===\"running\";const stale=!running&&current.trim()!==check.of.trim();return /*#__PURE__*/_jsxs(\"div\",{className:\"wsa-check\",\"aria-live\":\"polite\",\"aria-busy\":running||undefined,children:[/*#__PURE__*/_jsxs(\"p\",{className:\"wsa-check-head\",children:[\"Annotation check\",/*#__PURE__*/_jsx(IconButton,{label:\"Close the check\",onClick:onClose,children:/*#__PURE__*/_jsx(Icons.X,{size:16})})]}),/*#__PURE__*/_jsxs(\"ul\",{className:\"wsa-check-list\",children:[/*#__PURE__*/_jsxs(CheckRow,{state:lengthOk?\"ok\":\"work\",title:\"Length\",children:[words,\" words\",lengthOk?`, within the ${target.label} target.`:`. Aim for ${target.label}.`]}),/*#__PURE__*/_jsx(CheckRow,{state:check.copied===null?\"idle\":check.copied.length?\"work\":\"ok\",title:\"In your own words\",children:check.copied===null?\"We don't have the source's text to compare with. Paste it on this card to check.\":check.copied.length?/*#__PURE__*/_jsxs(_Fragment,{children:[check.copied.length===1?\"This sentence follows\":`These ${check.copied.length} sentences follow`,\" the source's wording closely. Rewrite \",check.copied.length===1?\"it\":\"them\",\" in your own words, or quote and cite the source.\",check.copied.map((c,i)=>/*#__PURE__*/_jsxs(\"span\",{className:\"wsa-check-quote\",style:{display:\"block\"},children:[\"“\",c.sentence,\"”\"]},i))]}):\"No sentence follows the source's wording closely.\"}),check.status===\"limit\"||check.status===\"error\"&&!check.ai.length?null:checkKeys(type).map(key=>{const got=check.ai.find(c=>c.key===key);return /*#__PURE__*/_jsx(CheckRow,{state:got?got.ok?\"ok\":\"work\":running?\"pending\":\"idle\",title:CHECK_LABELS[key]??key,children:got?.text},key);})]}),check.status===\"limit\"?/*#__PURE__*/_jsxs(\"p\",{className:\"wsa-check-note\",children:[check.message,\" \",ACCOUNT_GIVES.sources,\" \",/*#__PURE__*/_jsx(\"a\",{href:signupUrl,onClick:()=>track(\"citegen\",\"signup_click\",{from:\"check_limit\"}),children:\"Create a free account\"})]}):check.status===\"error\"?/*#__PURE__*/_jsx(\"p\",{className:\"wsa-msg\",children:check.message}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{className:\"wsa-improved-label\",children:\"A stronger version, keeping your ideas\"}),/*#__PURE__*/_jsx(\"div\",{className:cx(\"wsa-improved\",!check.improved&&\"wsa-improved--pending\"),children:check.improved||(running?\"Writing it after the checks...\":\"\")}),check.status===\"done\"?/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-check-actions\",children:[/*#__PURE__*/_jsx(Button,{variant:\"secondary\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Check,{size:14}),onClick:()=>onUse(check.improved),children:\"Use this version\"}),/*#__PURE__*/_jsx(Button,{variant:\"ghost\",size:\"sm\",onClick:onClose,children:\"Keep mine\"})]}):null]}),stale?/*#__PURE__*/_jsx(\"p\",{className:\"wsa-check-note\",children:\"You've edited the annotation since this check. Check again to see how it does now.\"}):null]});}/** The research topic, language and the settings every AI draft shares. `left` annotations still have the\n *  placeholder: once there's a topic (and AI isn't paused), the help offers Add relevance on those cards. */function AnnotationSettings({prefs,onPrefs,open,onOpen,left,aiPaused}){const id=useId();const target=lengthTarget(prefs.length,prefs.custom);const type=ANNOTATION_TYPE_OPTIONS.find(t=>t.value===(prefs.type??\"summary-evaluation-relevance\"))??ANNOTATION_TYPE_OPTIONS[0];return /*#__PURE__*/_jsxs(\"div\",{className:\"wsa-top\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-topic-row\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${id}-topic`,children:\"Your research topic or question\"})}),/*#__PURE__*/_jsx(\"input\",{id:`${id}-topic`,className:\"wsf-input\",placeholder:\"For example: How does social media affect teen sleep?\",value:prefs.topic??\"\",onChange:e=>onPrefs({topic:e.target.value}),maxLength:300,\"aria-describedby\":`${id}-topic-help`}),/*#__PURE__*/_jsx(\"p\",{className:\"wsf-help\",id:`${id}-topic-help`,children:prefs.topic?.trim()&&left&&!aiPaused?`AI drafts use it to explain how each source helps. ${fillOfferLine(left)}`:\"AI drafts use it to explain how each source helps. Without it, they leave a part in brackets for you to write.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${id}-lang`,children:\"Language\"})}),/*#__PURE__*/_jsx(FormSelect,{id:`${id}-lang`,value:prefs.language??\"english\",options:LANGUAGE_OPTIONS,onChange:language=>onPrefs({language})})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsa-settings\",children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"wsa-settings-btn\",\"aria-expanded\":open,\"aria-controls\":`${id}-body`,onClick:()=>onOpen(!open),children:[/*#__PURE__*/_jsx(Icons.ChevronDown,{size:16}),\"Annotation settings\",/*#__PURE__*/_jsxs(\"span\",{children:[type.label,\", \",target.label]})]}),open?/*#__PURE__*/_jsxs(\"div\",{id:`${id}-body`,className:\"wsa-settings-body\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",style:{marginTop:0},children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${id}-type`,children:\"Annotation type\"})}),/*#__PURE__*/_jsx(FormSelect,{id:`${id}-type`,value:type.value,options:ANNOTATION_TYPE_OPTIONS,onChange:t=>onPrefs({type:t})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",style:{marginTop:0},children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${id}-length`,children:\"Length\"})}),/*#__PURE__*/_jsx(FormSelect,{id:`${id}-length`,value:prefs.length,options:[...ANNOTATION_LENGTHS.map(l=>({value:l.value,label:l.label})),{value:\"custom\",label:\"A set number of words\"}],onChange:length=>onPrefs({length})}),prefs.length===\"custom\"?/*#__PURE__*/_jsxs(\"label\",{className:\"wsa-custom\",children:[/*#__PURE__*/_jsx(\"input\",{className:\"wsf-input\",type:\"number\",inputMode:\"numeric\",min:20,max:600,value:prefs.custom??\"\",placeholder:\"120\",onChange:e=>onPrefs({custom:Number(e.target.value)||undefined})}),\"words per annotation\"]}):null]}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",style:{marginTop:0},children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:`${id}-level`,children:\"Level\"})}),/*#__PURE__*/_jsx(FormSelect,{id:`${id}-level`,value:prefs.level??\"college\",options:LEVEL_OPTIONS,onChange:level=>onPrefs({level})})]})]}):null]})]});}const CITE_FORMATS=[{value:\"bibtex\",label:\"BibTeX (.bib)\",ext:\"bib\",mime:\"application/x-bibtex\"},{value:\"ris\",label:\"RIS (.ris), for Zotero, Mendeley and EndNote\",ext:\"ris\",mime:\"application/x-research-info-systems\"},{value:\"csl-json\",label:\"CSL-JSON (.json)\",ext:\"json\",mime:\"application/json\"}];const fmtStr=v=>(typeof v===\"string\"?v:typeof v===\"number\"?String(v):\"\").trim();const fmtNamesOf=v=>Array.isArray(v)?v.filter(n=>n&&(n.family||n.literal||n.given)):[];const fmtPartsOf=d=>{const p=d?.[\"date-parts\"]?.[0]??[];return p.map(Number).filter(n=>Number.isFinite(n)&&n>0);};/* ------------------------------------------------------------------ BibTeX -- */const BIB_TYPES={\"article-journal\":\"article\",\"article-magazine\":\"article\",\"article-newspaper\":\"article\",article:\"article\",book:\"book\",chapter:\"incollection\",\"paper-conference\":\"inproceedings\",thesis:\"phdthesis\",report:\"techreport\",manuscript:\"unpublished\"};const BIB_MONTHS=[\"jan\",\"feb\",\"mar\",\"apr\",\"may\",\"jun\",\"jul\",\"aug\",\"sep\",\"oct\",\"nov\",\"dec\"];/** Escapes the characters LaTeX treats as commands; braces are kept only when they balance. */function bibEscape(t){let depth=0;let balanced=true;for(const ch of t){if(ch===\"{\")depth+=1;else if(ch===\"}\"&&--depth<0)balanced=false;}const body=balanced&&depth===0?t:t.replace(/[{}]/g,\"\");return body.replace(/\\\\/g,\"\\\\textbackslash{}\").replace(/([&%$#_])/g,\"\\\\$1\").replace(/~/g,\"\\\\textasciitilde{}\").replace(/\\^/g,\"\\\\textasciicircum{}\");}function bibNames(names){return names.map(n=>n.literal?`{${bibEscape(n.literal)}}`:[n.family,n.given].filter(Boolean).map(p=>bibEscape(String(p))).join(\", \")).join(\" and \");}function bibKey(item,used){const first=fmtNamesOf(item.author)[0]??fmtNamesOf(item.editor)[0];const who=(first?.family??first?.literal??\"anon\").split(/\\s+/)[0];const word=fmtStr(item.title).split(/\\s+/).find(w=>w.replace(RegExp(\"[^\\\\p{L}]\",\"gu\"),\"\").length>3)??\"\";const ascii=t=>t.normalize(\"NFKD\").replace(/[^A-Za-z0-9]/g,\"\").toLowerCase();const base=`${ascii(who)||\"anon\"}${fmtPartsOf(item.issued)[0]??\"\"}${ascii(word)}`||\"item\";let key=base;for(let i=0;used.has(key);i+=1)key=`${base}${String.fromCharCode(97+i%26)}${i>=26?Math.floor(i/26):\"\"}`;used.add(key);return key;}function toBibtex(items){const used=new Set;return items.map(item=>{const type=BIB_TYPES[fmtStr(item.type)]??\"misc\";const[year,month]=fmtPartsOf(item.issued);const container=fmtStr(item[\"container-title\"]);const fields=[[\"author\",bibNames(fmtNamesOf(item.author))],[\"editor\",bibNames(fmtNamesOf(item.editor))],[\"title\",bibEscape(fmtStr(item.title))],[type===\"article\"?\"journal\":type===\"incollection\"||type===\"inproceedings\"?\"booktitle\":\"howpublished\",bibEscape(container)],[type===\"phdthesis\"?\"school\":type===\"techreport\"?\"institution\":\"publisher\",bibEscape(fmtStr(item.publisher))],[\"address\",bibEscape(fmtStr(item[\"publisher-place\"]))],[\"edition\",bibEscape(fmtStr(item.edition))],[\"year\",year?String(year):\"\"],[\"month\",month?BIB_MONTHS[month-1]??\"\":\"\"],[\"volume\",bibEscape(fmtStr(item.volume))],[\"number\",bibEscape(fmtStr(item.issue)||fmtStr(item.number))],[\"pages\",fmtStr(item.page).replace(/\\s*[-–—]+\\s*/g,\"--\")],[\"doi\",fmtStr(item.DOI)],[\"isbn\",fmtStr(item.ISBN)],[\"issn\",fmtStr(item.ISSN)],[\"url\",fmtStr(item.URL)],[\"urldate\",fmtPartsOf(item.accessed).length?fmtPartsOf(item.accessed).map((n,i)=>i?String(n).padStart(2,\"0\"):String(n)).join(\"-\"):\"\"],[\"abstract\",bibEscape(fmtStr(item.abstract))],[\"annote\",bibEscape(fmtStr(item.annote))]];const body=fields.filter(([,v])=>v)// A month is a BibTeX macro, written bare.\n.map(([k,v])=>`  ${k} = ${k===\"month\"?v:`{${v}}`}`).join(\",\\n\");return`@${type}{${bibKey(item,used)},\n${body}\n}`;}).join(\"\\n\\n\").concat(items.length?\"\\n\":\"\");}/** Reads `@type{key, field = {value} | \"value\" | 2020 | macro # \"more\", ...}` entries. */function bibEntries(text){const out=[];const strings={...Object.fromEntries(BIB_MONTHS.map((m,i)=>[m,String(i+1)]))};let i=0;const skipSpace=()=>{while(i<text.length&&/\\s/.test(text[i]))i+=1;};const readBraced=()=>{let depth=0;const start=i;for(;i<text.length;i+=1){if(text[i]===\"\\\\\"){i+=1;continue;}if(text[i]===\"{\")depth+=1;else if(text[i]===\"}\"&&--depth===0){i+=1;return text.slice(start+1,i-1);}}return text.slice(start+1);};const readValue=()=>{const parts=[];for(;;){skipSpace();if(text[i]===\"{\")parts.push(readBraced());else if(text[i]==='\"'){let depth=0;const start=++i;for(;i<text.length&&!(text[i]==='\"'&&depth===0&&text[i-1]!==\"\\\\\");i+=1){if(text[i]===\"{\")depth+=1;else if(text[i]===\"}\")depth-=1;}parts.push(text.slice(start,i));i+=1;}else{const m=/^[^\\s,#}]+/.exec(text.slice(i));const word=m?.[0]??\"\";i+=word.length;parts.push(strings[word.toLowerCase()]??word);}skipSpace();if(text[i]!==\"#\")return parts.join(\"\");i+=1;}};while((i=text.indexOf(\"@\",i))>=0){const head=/^@\\s*(\\w+)\\s*([{(])/.exec(text.slice(i));if(!head){i+=1;continue;}const type=head[1].toLowerCase();i+=head[0].length;if(type===\"comment\"||type===\"preamble\"){i-=1;if(text[i]===\"{\")readBraced();continue;}const fields={};if(type!==\"string\"){const key=/^[^,\\s}]*\\s*,?/.exec(text.slice(i));i+=key?.[0].length??0;}for(;;){skipSpace();if(i>=text.length||text[i]===\"}\"||text[i]===\")\"){i+=1;break;}const name=/^([^\\s=,{}]+)\\s*=/.exec(text.slice(i));if(!name){// Not a field: skip to the next comma or the end of the entry.\nconst next=text.slice(i).search(/[,}]/);if(next<0)break;i+=next+(text[i+next]===\",\"?1:0);continue;}i+=name[0].length;const value=readValue();if(type===\"string\")strings[name[1].toLowerCase()]=value;else fields[name[1].toLowerCase()]=value;skipSpace();if(text[i]===\",\")i+=1;}if(type!==\"string\")out.push({type,fields});}return out;}const LATEX_ACCENTS={\"'\":\"́\",\"`\":\"̀\",\"^\":\"̂\",'\"':\"̈\",\"~\":\"̃\",\"=\":\"̄\",\".\":\"̇\",c:\"̧\",v:\"̌\",u:\"̆\",H:\"̋\",k:\"̨\"};const LATEX_SYMBOLS={ss:\"\\xdf\",o:\"\\xf8\",O:\"\\xd8\",ae:\"\\xe6\",AE:\"\\xc6\",oe:\"œ\",OE:\"Œ\",aa:\"\\xe5\",AA:\"\\xc5\",l:\"ł\",L:\"Ł\",i:\"ı\",textendash:\"–\",textemdash:\"—\",textquoteright:\"’\",textquoteleft:\"‘\",textbackslash:\"\\\\\",textasciitilde:\"~\",textasciicircum:\"^\"};/** BibTeX's text as plain text: accents and escapes resolved, case-protecting braces dropped. */function bibText(t){return t.replace(/\\\\([`'^\"~=.]|[cvuHk](?=[\\s{]))\\s*\\{?\\s*\\\\?([A-Za-z])\\s*\\}?/g,(_,acc,ch)=>(ch+(LATEX_ACCENTS[acc]??\"\")).normalize(\"NFC\")).replace(/\\\\([A-Za-z]+)\\s*(\\{\\})?/g,(m,cmd)=>LATEX_SYMBOLS[cmd]??(/^(emph|textit|textbf|textsc|mkbibquote|url|href|text)$/.test(cmd)?\"\":m)).replace(/\\\\([&%$#_{}])/g,\"$1\").replace(/---/g,\"—\").replace(/--/g,\"–\").replace(/[{}]/g,\"\")// Paragraphs (a blank line) survive; other line breaks and runs of spaces are one space.\n.split(/\\n\\s*\\n/).map(p=>p.replace(/\\s+/g,\" \").trim()).filter(Boolean).join(\"\\n\\n\");}function bibNamesIn(v){if(!v)return[];// Split on \" and \" outside braces.\nconst parts=[];let depth=0;let cur=\"\";for(let i=0;i<v.length;i+=1){const ch=v[i];if(ch===\"{\")depth+=1;if(ch===\"}\")depth-=1;if(depth===0&&/^\\s+and\\s+/i.test(v.slice(i))&&/\\s/.test(ch)){const m=/^\\s+and\\s+/i.exec(v.slice(i));parts.push(cur);cur=\"\";i+=m[0].length-1;continue;}cur+=ch;}parts.push(cur);return parts.map(p=>p.trim()).filter(p=>p&&p.toLowerCase()!==\"others\").map(p=>{if(/^\\{.*\\}$/.test(p)&&!/^\\{[^{}]*\\}\\s*,/.test(p))return{literal:bibText(p)};if(p.includes(\",\")){const[family,...rest]=p.split(\",\");return{family:bibText(family),given:bibText(rest.join(\",\"))||undefined};}const words=bibText(p).split(\" \");// \"von\" parts (lower-case) join the family name: \"Ludwig van Beethoven\".\nlet k=words.length-1;while(k>1&&/^[a-z]/.test(words[k-1]))k-=1;return words.length>1?{family:words.slice(k).join(\" \"),given:words.slice(0,k).join(\" \")}:{literal:words[0]};});}const CSL_FROM_BIB={article:\"article-journal\",book:\"book\",inbook:\"chapter\",incollection:\"chapter\",inproceedings:\"paper-conference\",conference:\"paper-conference\",phdthesis:\"thesis\",mastersthesis:\"thesis\",thesis:\"thesis\",techreport:\"report\",report:\"report\",unpublished:\"manuscript\",online:\"webpage\",electronic:\"webpage\",www:\"webpage\"};function fromBibtex(text){return bibEntries(text).map(({type,fields:f})=>{const t=k=>bibText(f[k]??\"\");const year=Number(/\\d{4}/.exec(f.year??f.date??\"\")?.[0]);const month=Number(f.month)||BIB_MONTHS.indexOf((f.month??\"\").slice(0,3).toLowerCase())+1||Number(/^\\d{4}-(\\d{1,2})/.exec(f.date??\"\")?.[1]);const cslType=CSL_FROM_BIB[type]??(f.url&&!f.journal&&!f.publisher?\"webpage\":\"document\");const item={id:\"\",type:cslType};const set=(k,v)=>{if(v&&(!Array.isArray(v)||v.length))item[k]=v;};set(\"author\",bibNamesIn(f.author??\"\"));set(\"editor\",bibNamesIn(f.editor??\"\"));set(\"title\",t(\"title\"));set(\"container-title\",t(\"journal\")||t(\"journaltitle\")||t(\"booktitle\")||(type===\"misc\"?t(\"howpublished\"):\"\"));set(\"publisher\",t(\"publisher\")||t(\"school\")||t(\"institution\")||t(\"organization\"));set(\"publisher-place\",t(\"address\")||t(\"location\"));set(\"edition\",t(\"edition\"));set(\"volume\",t(\"volume\"));set(\"issue\",t(\"number\")||t(\"issue\"));set(\"page\",t(\"pages\").replace(/–/g,\"-\"));set(\"DOI\",t(\"doi\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\"));set(\"ISBN\",t(\"isbn\"));set(\"ISSN\",t(\"issn\"));set(\"URL\",(f.url??\"\").replace(/\\\\([%_#&])/g,\"$1\").trim());set(\"abstract\",t(\"abstract\"));set(\"annote\",t(\"annote\")||t(\"annotation\"));if(year)item.issued={\"date-parts\":[month?[year,month]:[year]]};const urldate=/(\\d{4})-(\\d{1,2})-(\\d{1,2})/.exec(f.urldate??\"\");if(urldate)item.accessed={\"date-parts\":[[Number(urldate[1]),Number(urldate[2]),Number(urldate[3])]]};return item;}).filter(i=>i.title||i.DOI||i.URL);}/* --------------------------------------------------------------------- RIS -- */const RIS_TYPES={\"article-journal\":\"JOUR\",\"article-magazine\":\"MGZN\",\"article-newspaper\":\"NEWS\",book:\"BOOK\",chapter:\"CHAP\",\"paper-conference\":\"CPAPER\",thesis:\"THES\",report:\"RPRT\",webpage:\"ELEC\",\"post-weblog\":\"BLOG\",dataset:\"DATA\",software:\"COMP\",motion_picture:\"VIDEO\",graphic:\"ART\",map:\"MAP\",manuscript:\"UNPB\"};const CSL_FROM_RIS={...Object.fromEntries(Object.entries(RIS_TYPES).map(([k,v])=>[v,k])),JFULL:\"article-journal\",EJOUR:\"article-journal\",CONF:\"paper-conference\",EBOOK:\"book\",ECHAP:\"chapter\",WEB:\"webpage\",MPCT:\"motion_picture\"};/** Zotero writes notes as HTML; keep the text, a paragraph per line. */function stripNoteHtml(t){if(!/<[a-z!/]/i.test(t))return t.trim();return t.replace(/<br\\s*\\/?>/gi,\"\\n\").replace(/<\\/(p|div|li|h\\d)>/gi,\"\\n\").replace(/<[^>]+>/g,\"\").replace(/&nbsp;/g,\" \").replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\").replace(/&quot;/g,'\"').replace(/&#39;|&apos;/g,\"'\").replace(/&amp;/g,\"&\").split(\"\\n\").map(l=>l.replace(/\\s+/g,\" \").trim()).filter(Boolean).join(\"\\n\");}function toRis(items){const out=[];for(const item of items){const line=(tag,v)=>{if(v)out.push(`${tag}  - ${v.replace(/\\s*\\n\\s*/g,\" \")}`);};const type=RIS_TYPES[fmtStr(item.type)]??\"GEN\";const[year,month,day]=fmtPartsOf(item.issued);out.push(`TY  - ${type}`);for(const n of fmtNamesOf(item.author))line(\"AU\",n.literal??[n.family,n.given].filter(Boolean).join(\", \"));for(const n of fmtNamesOf(item.editor))line(\"A2\",n.literal??[n.family,n.given].filter(Boolean).join(\", \"));line(\"TI\",fmtStr(item.title));line(\"T2\",fmtStr(item[\"container-title\"]));if(type===\"JOUR\")line(\"JO\",fmtStr(item[\"container-title\"]));if(year)line(\"PY\",String(year));if(year)line(\"DA\",`${year}/${month?String(month).padStart(2,\"0\"):\"\"}/${day?String(day).padStart(2,\"0\"):\"\"}/`);line(\"VL\",fmtStr(item.volume));line(\"IS\",fmtStr(item.issue));const[sp,ep]=fmtStr(item.page).split(/\\s*[-–—]+\\s*/);line(\"SP\",sp??\"\");line(\"EP\",ep??\"\");line(\"ET\",fmtStr(item.edition));line(\"PB\",fmtStr(item.publisher));line(\"CY\",fmtStr(item[\"publisher-place\"]));line(\"SN\",fmtStr(item.ISBN)||fmtStr(item.ISSN));line(\"DO\",fmtStr(item.DOI));line(\"UR\",fmtStr(item.URL));const accessed=fmtPartsOf(item.accessed);if(accessed.length)line(\"Y2\",accessed.map((n,i)=>i?String(n).padStart(2,\"0\"):String(n)).join(\"/\"));line(\"AB\",fmtStr(item.abstract));// Each paragraph of the annotation as its own note line would read as several notes; keep one.\nconst annote=fmtStr(item.annote);if(annote)out.push(`N1  - ${annote.split(/\\n+/).map(p=>p.trim()).filter(Boolean).join(\" \")}`);out.push(\"ER  - \",\"\");}return out.join(\"\\r\\n\");}function fromRis(text){const records=[];let cur=null;let last=null;for(const raw of text.replace(/^\\uFEFF/,\"\").split(/\\r?\\n/)){const m=/^([A-Z][A-Z0-9])  ?-(?: (.*))?$/.exec(raw);if(m){const[,tag,value=\"\"]=m;if(tag===\"TY\")cur=[];if(!cur)continue;if(tag===\"ER\"){records.push(cur);cur=null;last=null;continue;}last=[tag,value.trim()];cur.push(last);}else if(last&&raw.trim()){// A value that runs onto the next line (notes and abstracts often do).\nlast[1]+=`\n${raw.trim()}`;}}if(cur?.length)records.push(cur);return records.map(rec=>{const all=(...tags)=>rec.filter(([t])=>tags.includes(t)).map(([,v])=>v).filter(Boolean);const one=(...tags)=>{for(const t of tags){const v=all(t)[0];if(v)return v;}return\"\";};const ty=one(\"TY\").toUpperCase();const person=v=>{const[family,given]=v.split(/,\\s*/,2);return given?{family,given}:/\\s/.test(v)&&!/[,]/.test(v)&&v.split(\" \").length<=3?{family:v.split(\" \").pop(),given:v.split(\" \").slice(0,-1).join(\" \")}:{literal:v};};const item={id:\"\",type:CSL_FROM_RIS[ty]??\"document\"};const set=(k,v)=>{if(v&&(!Array.isArray(v)||v.length))item[k]=v;};set(\"author\",all(\"AU\",\"A1\").map(person));set(\"editor\",all(\"A2\",\"ED\",\"A3\").filter(()=>ty!==\"JOUR\").map(person));set(\"title\",one(\"TI\",\"T1\",\"CT\",\"BT\").replace(/\\s+/g,\" \"));set(\"container-title\",one(\"T2\",\"JO\",\"JF\",\"JA\",\"J2\",\"BT\")===one(\"TI\",\"T1\")?\"\":one(\"T2\",\"JO\",\"JF\",\"JA\",\"J2\"));set(\"volume\",one(\"VL\"));set(\"issue\",one(\"IS\",\"CP\"));const sp=one(\"SP\");const ep=one(\"EP\");set(\"page\",sp&&ep&&!sp.includes(\"-\")?`${sp}-${ep}`:sp);set(\"edition\",one(\"ET\"));set(\"publisher\",one(\"PB\"));set(\"publisher-place\",one(\"CY\",\"PP\"));const sn=one(\"SN\");if(sn)set(/^\\d{4}-?\\d{3}[\\dX]$/i.test(sn.replace(/\\s/g,\"\"))?\"ISSN\":\"ISBN\",sn);set(\"DOI\",one(\"DO\",\"M3\").replace(/^https?:\\/\\/(dx\\.)?doi\\.org\\//i,\"\").match(/^10\\.\\S+/)?.[0]??\"\");set(\"URL\",one(\"UR\",\"L2\"));set(\"abstract\",one(\"AB\",\"N2\").replace(/\\s+/g,\" \"));set(\"annote\",all(\"N1\").map(stripNoteHtml).filter(Boolean).join(\"\\n\\n\"));// DA carries the month and day (\"2019/03//\"); PY is often the year alone.\nconst date=[one(\"DA\"),one(\"PY\",\"Y1\")].find(d=>/^\\d{4}[/-]\\d/.test(d))??one(\"PY\",\"Y1\",\"DA\");const d=/(\\d{4})(?:[/-](\\d{1,2}))?(?:[/-](\\d{1,2}))?/.exec(date);if(d)item.issued={\"date-parts\":[[Number(d[1]),...d[2]?[Number(d[2])]:[],...d[2]&&d[3]?[Number(d[3])]:[]]]};const y2=/(\\d{4})[/-](\\d{1,2})[/-](\\d{1,2})/.exec(one(\"Y2\"));if(y2)item.accessed={\"date-parts\":[[Number(y2[1]),Number(y2[2]),Number(y2[3])]]};return item;}).filter(i=>i.title||i.DOI||i.URL);}/* ---------------------------------------------------------------- CSL-JSON -- */function toCslJson(items){return JSON.stringify(items,null,2)+\"\\n\";}function fromCslJson(text){const data=JSON.parse(text);const list=Array.isArray(data)?data:data&&typeof data===\"object\"&&Array.isArray(data.items)?data.items:[data];return list.filter(i=>Boolean(i)&&typeof i===\"object\"&&typeof i.type===\"string\").map(i=>({...i,...Array.isArray(i.annote)?{annote:i.annote.join(\"\\n\\n\")}:{}})).filter(i=>i.title||i.DOI||i.URL);}/* ------------------------------------------------------------------ either -- */function detectFormat(text,fileName=\"\"){const ext=fileName.toLowerCase().split(\".\").pop()??\"\";if(ext===\"bib\"||ext===\"bibtex\")return\"bibtex\";if(ext===\"ris\")return\"ris\";if(ext===\"json\")return\"csl-json\";const t=text.replace(/^\\uFEFF/,\"\").trim();if(/^[[{]/.test(t))return\"csl-json\";if(/^TY  ?- /m.test(t))return\"ris\";if(/@\\s*\\w+\\s*[{(]/.test(t))return\"bibtex\";return null;}function toFormat(items,format){return format===\"bibtex\"?toBibtex(items):format===\"ris\"?toRis(items):toCslJson(items);}/** Items from a reference manager's export. Their ids are blank: the caller gives each a fresh one. */function fromFormat(text,fileName=\"\"){const format=detectFormat(text,fileName);try{const items=format===\"bibtex\"?fromBibtex(text):format===\"ris\"?fromRis(text):format===\"csl-json\"?fromCslJson(text):[];return{format,items};}catch{return{format,items:[]};}}// ---- CiteFileMenu.tsx --------------------------------------------\n/**\n * The list's \"More\" menu: export to BibTeX, RIS or CSL-JSON (annotations included), continue in Writing Studio\n * (the list's sources into the student's library there), or import a file from Zotero, Mendeley, EndNote or\n * another reference manager.\n */const FILE_MENU_CSS=`\n.wsm-wrap{position:relative;display:inline-flex}\n.wsm-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:280px;padding:6px;border:1px solid ${T.border200};border-radius:12px;background:${T.white};box-shadow:${T.shadowPop};animation:wst-in .15s ${T.ease}}\n.wsm-item{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:6px 10px;border:0;border-radius:8px;background:none;color:${T.text800};font-size:14px;text-align:left;cursor:pointer}\n.wsm-item:hover,.wsm-item:focus-visible{background:${T.bg100};outline:none}\n.wsm-item svg{color:${T.text600}}\n.wsm-sep{height:1px;margin:6px 4px;background:${T.border200}}\n.wsm-label{padding:6px 10px 2px;font-size:12px;color:${T.text500}}\n`;const IMPORT_ACCEPT=\".bib,.bibtex,.ris,.json,application/json,application/x-bibtex,application/x-research-info-systems,text/plain\";function FileMenu({onExport,onImport,onContinue,canExport}){const[open,setOpen]=useState(false);const id=useId();const wrapRef=useRef(null);const fileRef=useRef(null);const close=useCallback(()=>setOpen(false),[]);useDismiss(open,close,[wrapRef]);const onMenuKey=e=>{if(e.key!==\"ArrowDown\"&&e.key!==\"ArrowUp\")return;e.preventDefault();const items=Array.from(e.currentTarget.querySelectorAll(\"[role=menuitem]\"));const at=items.indexOf(document.activeElement);items[(at+(e.key===\"ArrowDown\"?1:-1)+items.length)%items.length]?.focus();};return /*#__PURE__*/_jsxs(\"div\",{ref:wrapRef,className:\"wsm-wrap\",children:[/*#__PURE__*/_jsx(IconButton,{label:\"Export or import\",\"aria-haspopup\":\"menu\",\"aria-expanded\":open,\"aria-controls\":`${id}-menu`,onClick:()=>setOpen(o=>!o),children:/*#__PURE__*/_jsx(Icons.More,{size:18})}),open?/*#__PURE__*/_jsxs(\"div\",{id:`${id}-menu`,className:\"wsm-menu\",role:\"menu\",onKeyDown:onMenuKey,ref:el=>{if(el&&!el.contains(document.activeElement))el.querySelector(\"[role=menuitem]\")?.focus();},children:[canExport?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{className:\"wsm-label\",children:\"Export, with annotations\"}),CITE_FORMATS.map(f=>/*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"menuitem\",className:\"wsm-item\",onClick:()=>{close();onExport(f.value);},children:[/*#__PURE__*/_jsx(Icons.Download,{size:16}),f.label]},f.value)),/*#__PURE__*/_jsx(\"div\",{className:\"wsm-sep\",role:\"separator\"}),onContinue?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"menuitem\",className:\"wsm-item\",onClick:()=>{close();onContinue();},children:[/*#__PURE__*/_jsx(Icons.Arrow,{size:16}),\"Continue in Writing Studio\"]}),/*#__PURE__*/_jsx(\"div\",{className:\"wsm-sep\",role:\"separator\"})]}):null]}):null,/*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"menuitem\",className:\"wsm-item\",onClick:()=>fileRef.current?.click(),children:[/*#__PURE__*/_jsx(Icons.Upload,{size:16}),\"Import a .bib, .ris or .json file\"]})]}):null,/*#__PURE__*/_jsx(\"input\",{ref:fileRef,type:\"file\",accept:IMPORT_ACCEPT,hidden:true,onChange:e=>{const f=e.target.files?.[0];e.target.value=\"\";close();if(f)onImport(f);}})]});}/** The list every visitor starts with. */const FIRST_LIST_NAME=\"My citations\";/** Longer names are cut here, so the header and the menu stay readable. */const LIST_NAME_MAX=80;/** A typed name tidied: spaces collapsed and cut to LIST_NAME_MAX; \"\" when nothing is left. */function cleanListName(raw){return raw.replace(/\\s+/g,\" \").trim().slice(0,LIST_NAME_MAX).trim();}/** `base` when no list has it yet (ignoring case), else \"base (2)\", \"base (3)\"... */function uniqueListName(base,taken){const used=new Set(taken.map(n=>n.trim().toLowerCase()));const name=cleanListName(base)||FIRST_LIST_NAME;if(!used.has(name.toLowerCase()))return name;for(let n=2;;n++){const next=`${name} (${n})`;if(!used.has(next.toLowerCase()))return next;}}/** The name a new list starts with (\"List 2\", \"List 3\"...) until the student names it. */function newListName(lists){const used=new Set(lists.map(l=>l.name.trim().toLowerCase()));for(let n=lists.length+1;;n++)if(!used.has(`list ${n}`))return`List ${n}`;}/** The list on show: the active one, or the first when the active one is gone. */function activeList(state){return state.lists.find(l=>l.id===state.activeId)??state.lists[0];}/** Starts an empty list and shows it. */function startList(state,list){return{...state,lists:[...state.lists,{...list,items:[]}],activeId:list.id};}/** Shows another list; an id that isn't there changes nothing. */function switchList(state,id){return state.lists.some(l=>l.id===id)?{...state,activeId:id}:state;}/** Renames a list; a name with nothing in it keeps the old one. */function renameList(state,id,raw){const name=cleanListName(raw);if(!name)return state;return{...state,lists:state.lists.map(l=>l.id===id?{...l,name}:l)};}/** Deletes a list and shows the one before it (or the next, if it was first). Deleting the only list leaves an\n *  empty \"My citations\" with `fresh`'s id, so there is always a list to add to. */function deleteList(state,id,fresh){const index=state.lists.findIndex(l=>l.id===id);if(index<0)return{state,removed:null};const list=state.lists[index];const rest=state.lists.filter(l=>l.id!==id);if(!rest.length){const blank={id:fresh.id,name:FIRST_LIST_NAME,createdAt:fresh.createdAt,items:[]};return{state:{...state,lists:[blank],activeId:blank.id},removed:{list,index,replacedBy:blank.id}};}const activeId=state.activeId===id?rest[Math.max(0,index-1)].id:state.activeId;return{state:{...state,lists:rest,activeId},removed:{list,index}};}/** Undo: puts a deleted list back where it was and shows it. */function restoreList(state,removed){if(state.lists.some(l=>l.id===removed.list.id))return{...state,activeId:removed.list.id};const lists=state.lists.filter(l=>!(l.id===removed.replacedBy&&l.items.length===0));lists.splice(Math.min(removed.index,lists.length),0,removed.list);return{...state,lists,activeId:removed.list.id};}/** Adds items to one list (the one a bulk add started in), or to the one on show if that list is gone. */function addToList(state,listId,items){const target=state.lists.some(l=>l.id===listId)?listId:activeList(state).id;return{...state,lists:state.lists.map(l=>l.id===target?{...l,items:[...l.items,...items]}:l)};}/** Changes one saved item in whichever list holds it (item ids are unique across lists), so a draft or an\n *  edit that finishes after a switch still lands in its own list. */function updateItem(state,itemId,change){return{...state,lists:state.lists.map(l=>l.items.some(i=>i.id===itemId)?{...l,items:l.items.map(i=>i.id===itemId?change(i):i)}:l)};}/** Another tab (or the checker) saved the lists: take what it saved, and keep this tab's list on show while\n *  it still exists. A tab left open then never writes an older copy over a newer one. */function adoptLists(incoming,current){return incoming.lists.some(l=>l.id===current.activeId)?{...incoming,activeId:current.activeId}:incoming;}/** The list on show as \"Continue in Writing Studio\" sends it (lexi /api/public/cite/list): its name, the style\n *  it's shown in and each citation's CSL-JSON. Annotations stay here: a library source has nowhere to keep one. */function listForApp(list,style){return{name:list.name,style,items:list.items.map(({csl})=>{const{annote:_annote,...rest}=csl;return rest;})};}/** What each row says under its DOI or link. */const MISS_WHY={none:\"No match found\",failed:\"Couldn’t look it up just now\",fast:\"Too many lookups at once. Wait a minute, then try again.\"};/** What a Try again that still didn't work says. */const RETRY_FAILED={none:\"Still no match. Check it’s typed right, or enter it by hand.\",failed:\"We couldn’t reach the search. Check your connection and try again.\",fast:MISS_WHY.fast};/** A list keeps at most this many (one paste adds 50 at most). */const MISSES_MAX=50;/** Longer values (a pasted link) are cut here when kept. */const VALUE_MAX=2e3;/** The list a miss belongs to: the one it was pasted into, or the one on show if that list is gone. */function home(state,listId){if(state.lists.some(l=>l.id===listId))return listId;return(state.lists.find(l=>l.id===state.activeId)??state.lists[0])?.id;}/** Keeps misses on the list they were pasted into, in the order they came. One already waiting there keeps\n *  its place and takes the newer reason, so nothing is listed twice. */function noteMisses(state,listId,misses){const target=home(state,listId);if(!misses.length||!target)return state;const latest=new Map(misses.map(m=>[m.value,m.why]));return{...state,lists:state.lists.map(l=>{if(l.id!==target)return l;const kept=(l.needsLook??[]).map(m=>latest.has(m.value)?{value:m.value,why:latest.get(m.value)}:m);const known=new Set(kept.map(m=>m.value));const added=[...latest].filter(([value])=>!known.has(value)).map(([value,why])=>({value,why}));return{...l,needsLook:[...kept,...added].slice(-MISSES_MAX)};})};}/** Takes a miss off its list: it was added after all, entered by hand, or dismissed. */function dropMiss(state,listId,value){const list=state.lists.find(l=>l.id===listId);if(!list?.needsLook?.some(m=>m.value===value))return state;return{...state,lists:state.lists.map(l=>{if(l.id!==listId)return l;const rest=(l.needsLook??[]).filter(m=>m.value!==value);const{needsLook:_gone,...bare}=l;return rest.length?{...l,needsLook:rest}:bare;})};}/** A list's saved misses as read back from this browser: anything that isn't one is left out. */function cleanMisses(raw){if(!Array.isArray(raw))return undefined;const seen=new Set;const out=[];for(const m of raw){const value=typeof m?.value===\"string\"?m.value.trim().slice(0,VALUE_MAX):\"\";if(!value||seen.has(value))continue;seen.add(value);out.push({value,why:m.why===\"failed\"||m.why===\"fast\"?m.why:\"none\"});}return out.length?out.slice(-MISSES_MAX):undefined;}/** What Enter by hand starts the form with: the source type the identifier points to, and the identifier\n *  in its field (a DOI in DOI, an ISBN in ISBN, a link in URL). */function missSeed(value){const found=detectInput(value);switch(found.kind){case\"doi\":return{type:\"article-journal\",DOI:found.value};case\"isbn\":return{type:\"book\",ISBN:found.value};case\"pmid\":return{type:\"article-journal\",URL:`https://pubmed.ncbi.nlm.nih.gov/${found.value}/`};case\"pmcid\":return{type:\"article-journal\",URL:`https://pmc.ncbi.nlm.nih.gov/articles/${found.value}/`};case\"arxiv\":return{type:\"article\",publisher:\"arXiv\",URL:`https://arxiv.org/abs/${found.value}`};case\"url\":return{type:\"webpage\",URL:found.value};default:return{type:\"webpage\"};}}/** The toast after a paste of several: how many were added and how many need a look. */function bulkAddedLine(added,missed){if(!missed)return`Added ${added} source${added===1?\"\":\"s\"}`;if(!added)return missed===1?\"We couldn’t add it. It needs a look.\":`We couldn’t add these ${missed}. They need a look.`;return`Added ${added} source${added===1?\"\":\"s\"}. ${missed} ${missed===1?\"needs\":\"need\"} a look.`;}// ---- CiteListMenu.tsx --------------------------------------------\n/**\n * The list's name in its header, as a small menu: switch to another list, start a new one, rename this one\n * or delete it (with Undo, in the generator). Lists are kept in this browser (CiteLists.ts). Uses the file\n * menu's item styles (FILE_MENU_CSS), which every generator page already has.\n */const LIST_MENU_CSS=`\n.wsl{position:relative;display:flex;align-items:center;min-width:0;min-height:32px}\n.wsl-btn{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;height:32px;margin-left:-8px;padding:0 6px 0 8px;border:0;border-radius:8px;background:none;color:${T.text600};font-size:14px;cursor:pointer;transition:background-color .15s,color .15s}\n.wsl-btn:hover,.wsl-btn[aria-expanded=\"true\"]{background:${T.black5};color:${T.text}}\n.wst-root .wsl-btn:focus-visible{outline:none;background:${T.black5};color:${T.text}}\n.wsl-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsl-input{width:min(100%,360px);height:32px;margin-left:-8px;padding:0 8px;border:1px solid ${T.border300};border-radius:8px;background:${T.white};font-size:14px;color:${T.text}}\n.wst-root .wsl-input:focus-visible{outline:none;box-shadow:0 0 0 3px ${T.black5}}\n.wsm-menu.wsl-menu{left:-8px;right:auto;min-width:260px;max-width:min(360px,calc(100vw - 32px));max-height:min(420px,70vh);overflow:auto}\n.wsl-pick-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsl-pick-count{flex:none;color:${T.text500};font-size:13px;font-variant-numeric:tabular-nums}\n.wsl-check{display:inline-flex;width:16px;flex:none}\n`;function ListMenu({lists,activeId,onSwitch,onNew,onRename,onDelete}){const[open,setOpen]=useState(false);const[renaming,setRenamingState]=useState(false);// The name box can blur as it goes away (after Enter or Escape): only the first finish counts.\nconst renamingRef=useRef(false);const setRenaming=on=>{renamingRef.current=on;setRenamingState(on);};const id=useId();const wrapRef=useRef(null);const btnRef=useRef(null);const current=lists.find(l=>l.id===activeId)??lists[0];const close=useCallback(()=>setOpen(false),[]);useDismiss(open,close,[wrapRef]);// Back to the name, once the menu or the name box has gone.\nconst refocus=()=>window.requestAnimationFrame(()=>btnRef.current?.focus());const choose=run=>{close();run();refocus();};const onMenuKey=e=>{if(e.key===\"Escape\"){e.preventDefault();choose(()=>undefined);return;}if(e.key!==\"ArrowDown\"&&e.key!==\"ArrowUp\"&&e.key!==\"Home\"&&e.key!==\"End\")return;e.preventDefault();const items=Array.from(e.currentTarget.querySelectorAll(\"[role^=menuitem]\"));const at=items.indexOf(document.activeElement);const next=e.key===\"Home\"?0:e.key===\"End\"?items.length-1:(at+(e.key===\"ArrowDown\"?1:-1)+items.length)%items.length;items[next]?.focus();};const finishRename=value=>{if(!renamingRef.current)return;setRenaming(false);if(value!==null)onRename(value);};const canDelete=lists.length>1||(current?.count??0)>0;return /*#__PURE__*/_jsxs(\"div\",{ref:wrapRef,className:\"wsl\",children:[renaming?/*#__PURE__*/_jsx(\"input\",{className:\"wsl-input\",\"aria-label\":\"List name\",defaultValue:current?.name??\"\",maxLength:LIST_NAME_MAX,autoFocus:true,onFocus:e=>e.currentTarget.select(),onKeyDown:e=>{if(e.key===\"Enter\"){e.preventDefault();finishRename(e.currentTarget.value);refocus();}else if(e.key===\"Escape\"){e.preventDefault();e.stopPropagation();finishRename(null);refocus();}},onBlur:e=>finishRename(e.currentTarget.value)}):/*#__PURE__*/_jsxs(\"button\",{ref:btnRef,type:\"button\",className:\"wsl-btn\",\"aria-haspopup\":\"menu\",\"aria-expanded\":open,\"aria-controls\":`${id}-menu`,onClick:()=>setOpen(o=>!o),children:[/*#__PURE__*/_jsx(\"span\",{className:\"wst-sr\",children:\"List: \"}),/*#__PURE__*/_jsx(\"span\",{className:\"wsl-name\",children:current?.name}),/*#__PURE__*/_jsx(Icons.ChevronDown,{size:16})]}),open?/*#__PURE__*/_jsxs(\"div\",{id:`${id}-menu`,className:\"wsm-menu wsl-menu\",role:\"menu\",\"aria-label\":\"Your lists\",onKeyDown:onMenuKey,ref:el=>{if(el&&!el.contains(document.activeElement))el.querySelector(\"[aria-checked=true]\")?.focus();},children:[/*#__PURE__*/_jsx(\"p\",{className:\"wsm-label\",children:\"Your lists, saved in this browser\"}),lists.map(l=>/*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"menuitemradio\",\"aria-checked\":l.id===current?.id,\"aria-label\":`${l.name}, ${l.count} ${l.count===1?\"citation\":\"citations\"}`,className:\"wsm-item\",onClick:()=>choose(()=>onSwitch(l.id)),children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsl-check\",children:l.id===current?.id?/*#__PURE__*/_jsx(Icons.Check,{size:16}):null}),/*#__PURE__*/_jsx(\"span\",{className:\"wsl-pick-name\",children:l.name}),/*#__PURE__*/_jsx(\"span\",{className:\"wsl-pick-count\",children:l.count})]},l.id)),/*#__PURE__*/_jsx(\"div\",{className:\"wsm-sep\",role:\"separator\"}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"menuitem\",className:\"wsm-item\",onClick:()=>{close();onNew();setRenaming(true);},children:[/*#__PURE__*/_jsx(Icons.Plus,{size:16}),\"New list\"]}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"menuitem\",className:\"wsm-item\",onClick:()=>{close();setRenaming(true);},children:[/*#__PURE__*/_jsx(Icons.Pencil,{size:16}),\"Rename this list\"]}),canDelete?/*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"menuitem\",className:\"wsm-item\",onClick:()=>choose(onDelete),children:[/*#__PURE__*/_jsx(Icons.Trash,{size:16}),\"Delete this list\"]}):null]}):null]});}// ---- CitationGenerator.tsx ---------------------------------------\n/**\n * CitationGenerator: Writing Studio's free citation generator.\n *\n * Renders only the tool (search bar, results, reference list). The page's\n * H1, intro, how-to and FAQ are native Framer content, so search engines\n * read them directly.\n *\n * Data: the public citation API (apiBaseUrl) finds sources and returns\n * CSL-JSON. Formatting happens in the browser with citeproc-js (see\n * CiteEngine.ts), loaded when the browser is idle. Lists are saved in the\n * visitor's browser with versioned storage; nothing needs an account. A\n * student can keep several named lists (CiteLists.ts); the list's name in\n * its header is the menu that switches between them (CiteListMenu.tsx).\n * \"Continue in Writing Studio\" (the nudge after a copy, and the list's\n * More menu) sends the list on show to the app, which keeps it for a day\n * and, once the student signs up or in, adds its sources to their library\n * with a new paper in this style (lexi /api/public/cite/list and\n * /import/citations/{id}).\n * Several DOIs, ISBNs or links pasted at once are added one by one; the\n * ones that couldn't be stay under the search bar (\"Needs a look\",\n * CiteMisses.ts) with Try again and Enter by hand until the student deals\n * with each.\n *\n * Server render: a static search bar and empty list. Storage, network,\n * clipboard and analytics only run in effects and event handlers.\n */const TOOL=\"citegen\";const STORE_KEY=\"ws-citation-generator\";/** What works while AI drafting and checks are paused for the day (annotated bibliography). */const ANNOTATE_STILL=\"Adding sources, writing your own annotations and checking their length and wording still work.\";const INITIAL={v:1,lists:[{id:\"default\",name:FIRST_LIST_NAME,createdAt:0,items:[]}],activeId:\"default\",recentStyles:[]};function migrate(raw){if(!raw||typeof raw!==\"object\")return null;const r=raw;if(r.v!==1||!Array.isArray(r.lists)||r.lists.length===0)return null;const lists=r.lists.filter(l=>l&&Array.isArray(l.items)).map(l=>({...l,name:cleanListName(String(l.name??\"\"))||FIRST_LIST_NAME,needsLook:cleanMisses(l.needsLook)}));if(!lists.length)return null;const activeId=lists.some(l=>l.id===r.activeId)?r.activeId:lists[0].id;// Annotations used to be kept beside the citation (item.note); they now live in CSL-JSON's annote\n// field, so every export and style carries them. Move any old ones across, keeping the text as is.\nconst moved=lists.map(l=>({...l,items:moveNotesToAnnote(l.items)}));return{v:1,lists:moved,activeId,styleId:r.styleId,recentStyles:Array.isArray(r.recentStyles)?r.recentStyles.slice(0,6):[],nudgeDismissed:r.nudgeDismissed,annotated:r.annotated};}/** An item's annotation (CSL-JSON annote), trimmed; \"\" when there is none. */function annoteOf(item){const a=item?.csl.annote;return typeof a===\"string\"?a.trim():\"\";}/** The form fields a CSL key lands in, for marking autofilled fields \"Check this\". */const UNSURE_FIELDS={author:[\"creators\",\"channel\",\"person\",\"directors\",\"writers\"],director:[\"directors\"],host:[\"hosts\"],issued:[\"date\",\"updated\"],title:[\"title\"],\"container-title\":[\"site\",\"journal\",\"platform\"],publisher:[\"publisher\",\"companies\",\"university\"],edition:[\"edition\"],genre:[\"thesisKind\"]};const TYPE_LABEL={\"article-journal\":\"Journal article\",article:\"Preprint\",book:\"Book\",chapter:\"Book chapter\",webpage:\"Website\",\"article-newspaper\":\"News article\",\"article-magazine\":\"Magazine article\",\"post-weblog\":\"Blog post\",post:\"Social media post\",motion_picture:\"Video\",\"entry-encyclopedia\":\"Encyclopedia entry\",graphic:\"Image\",\"paper-conference\":\"Conference paper\",report:\"Report\",thesis:\"Thesis\",dataset:\"Dataset\",review:\"Review\",software:\"Software\"};const MISSING_LABEL={author:\"author\",issued:\"date\",title:\"title\",\"container-title\":\"site or journal name\",publisher:\"publisher\",URL:\"link\",volume:\"volume\",page:\"pages\"};const ACCESSED_TYPES=new Set([\"webpage\",\"post-weblog\",\"post\",\"article-newspaper\",\"article-magazine\",\"motion_picture\",\"entry-encyclopedia\"]);function nameText(n){return n.literal??[n[\"non-dropping-particle\"],n.family].filter(Boolean).join(\" \")??\"\";}function authorLine(csl){const people=csl.author??csl.editor??csl.director??[];if(!people.length)return\"\";const names=people.map(nameText).filter(Boolean);if(names.length===1)return names[0];if(names.length===2)return`${names[0]} and ${names[1]}`;if(names.length===3)return`${names[0]}, ${names[1]} and ${names[2]}`;return`${names[0]}, ${names[1]} et al.`;}function yearText(csl){const y=csl.issued?.[\"date-parts\"]?.[0]?.[0];return y?String(y):\"\";}/** Class platforms behind a login, by host. */const CLASS_HOSTS=[[/(^|\\.)instructure\\.com$|^canvas\\./i,\"Canvas\"],[/(^|\\.)blackboard\\.com$|^blackboard\\.|^bb\\./i,\"Blackboard\"],[/^moodle\\.|(^|\\.)moodlecloud\\.com$/i,\"Moodle\"],[/(^|\\.)brightspace\\.com$|(^|\\.)d2l\\./i,\"Brightspace\"],[/(^|\\.)schoology\\.com$/i,\"Schoology\"],[/^classroom\\.google\\.com$/i,\"Google Classroom\"]];function metaLine(csl){// A series or a whole podcast: its years and network or producer. An episode: its show and date.\nif(csl[\"ws-scope\"]===\"series\"||csl[\"ws-scope\"]===\"show\"){const start=csl[\"ws-start\"];const end=csl[\"ws-end\"];const years=start?end===\"present\"?`${start} to now`:end&&end!==start?`${start} to ${end}`:String(start):\"\";return[csl[\"ws-kind\"]===\"podcast\"?\"Podcast\":\"TV series\",years,plainText(String(csl.publisher??\"\"))].filter(Boolean).join(\" \\xb7 \");}if(csl[\"ws-kind\"]===\"podcast\")return[\"Episode\",plainText(String(csl[\"container-title\"]??\"\")),yearText(csl)].filter(Boolean).join(\" \\xb7 \");if(csl.type===\"thesis\")return[authorLine(csl),yearText(csl),plainText(String(csl.publisher??csl.archive??\"\"))].filter(Boolean).join(\" \\xb7 \");// A patent: its number and inventors; an app: its maker and store; a dictionary: the dictionary.\nif(csl.type===\"patent\")return[[csl[\"ws-country\"],csl.number].filter(Boolean).join(\" \"),authorLine(csl),yearText(csl)].filter(Boolean).join(\" \\xb7 \");if(csl.type===\"software\")return[authorLine(csl),plainText(String(csl.publisher??\"\")),csl.version?`Version ${csl.version}`:\"\"].filter(Boolean).join(\" \\xb7 \");if(csl.type===\"entry-dictionary\")return plainText(String(csl[\"container-title\"]??\"\"));return[authorLine(csl),yearText(csl),plainText(String(csl[\"container-title\"]??csl.publisher??\"\"))].filter(Boolean).join(\" \\xb7 \");}/** Only the values that say something, so a saved form stays small. */function filledValues(values){return Object.fromEntries(Object.entries(values).filter(([,v])=>isFilled(v)));}/** Autofill fills what the page gave and leaves everything else as the student typed it. */function mergeFilled(current,found){const out={...current};for(const[k,v]of Object.entries(found))if(isFilled(v))out[k]=v;return out;}function withArticle(label){const lower=label.toLowerCase();return`${/^[aeiou]/.test(lower)?\"an\":\"a\"} ${lower}`;}/* ---------------------------------------------------------------- CSS -- */const CSS=`\n.wsc{max-width:880px;margin:0 auto}\n.wsc-bar{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;background:${T.white};border:1px solid ${T.border200};border-radius:18px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 2px 8px rgba(0,0,0,.035);transition:box-shadow .2s ${T.ease}}\n/* A light shadow at rest that deepens while the pointer is over the bar. */\n.wsc-bar:hover{box-shadow:0 1px 3px rgba(0,0,0,.06),0 6px 16px rgba(0,0,0,.08)}\n.wsc-bar--nostyle{grid-template-columns:1fr auto}\n.wsc-style-trigger{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;max-width:260px;padding:12px 18px 12px 20px;border:0;background:transparent;cursor:pointer;border-right:1px solid ${T.border200};border-radius:18px 0 0 18px;text-align:left}\n.wsc-style-trigger:hover{background:${T.black3}}\n.wst-root .wsc-style-trigger:focus,.wst-root .wsc-style-trigger:focus-visible{outline:none}\n.wsc-label{font-size:12px;line-height:1.3;color:${T.text600};font-variation-settings:\"wght\" 520;font-weight:520}\n.wsc-style-value{display:flex;align-items:center;gap:6px;font-size:15px;color:${T.text};max-width:100%}\n.wsc-style-value span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsc-field{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:12px 8px 12px 18px;cursor:text}\n.wsc-input-row{display:flex;align-items:center;gap:8px;min-width:0}\n.wsc-input{flex:1;min-width:0;border:0;background:transparent;font-size:16px;line-height:1.4;padding:2px 0;color:${T.text}}\n.wsc-input::placeholder{color:${T.text500}}\n.wst-root .wsc-input:focus-visible{outline:none}\n.wsc-field .wsc-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.wsc-clear{flex:none}\n.wsc-go{display:flex;align-items:center;padding:10px 10px 10px 4px}\n.wsc-go .wst-btn{height:44px;padding:0 22px;border-radius:12px;font-size:15px}\n.wsc-under{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:34px;padding:8px 6px 0}\n.wsc-hint{font-size:13px;color:${T.text600}}\n.wsc-hint button{background:none;border:0;padding:0;color:${T.text700};text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n.wsc-hint button:hover{color:${T.blue}}\n.wsc-opt-thumb{flex:none;width:34px;height:48px;object-fit:cover;border-radius:4px;background:${T.bg100};margin-right:2px}\n.wsc-results{left:0;right:0;top:calc(100% + 8px);max-height:min(460px,62vh);overflow:auto;padding:6px;list-style:none;margin:0}\n.wsc-opt{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:10px;cursor:pointer}\n.wsc-opt[aria-selected=\"true\"]{background:${T.bg100}}\n.wsc-opt-icon{width:32px;height:32px;border-radius:8px;background:${T.black5};color:${T.text700};display:flex;align-items:center;justify-content:center;flex:none;margin-top:1px}\n.wsc-opt-body{min-width:0;flex:1}\n.wsc-opt-title{font-size:15px;line-height:1.35;color:${T.text};font-variation-settings:\"wght\" 520;font-weight:520;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n.wsc-opt-meta{margin-top:3px;font-size:13px;color:${T.text600};white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.wsc-opt-add{flex:none;align-self:center;color:${T.text500};opacity:0;transition:opacity .15s}\n.wsc-opt[aria-selected=\"true\"] .wsc-opt-add,.wsc-opt:hover .wsc-opt-add{opacity:1;color:${T.blue}}\n.wsc-results-note{padding:14px 12px;font-size:14px;color:${T.text600}}\n.wsc-skel{height:54px;margin:4px 6px;border-radius:10px;background:linear-gradient(90deg,${T.bg100} 0%,${T.bg200} 50%,${T.bg100} 100%);background-size:200% 100%;animation:wsc-shimmer 1.2s linear infinite}\n@keyframes wsc-shimmer{to{background-position:-200% 0}}\n.wsc-list{margin-top:36px}\n.wsc-list-tools{display:flex;align-items:center;gap:6px}\n.wsc-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px 12px}\n/* The list's name, a small menu above its heading (and above the annotated bibliography's two columns). */\n.wsc-list-name{padding:0 4px 2px}\n.wsc-list-name--annotated{margin-top:24px}\n.wsc-list-name--annotated + .wsa-work{margin-top:8px}\n.wsc-list-title{display:flex;align-items:baseline;gap:8px;font-size:17px;line-height:1.3;color:${T.text};font-variation-settings:\"wght\" 520;font-weight:520;letter-spacing:.01em}\n.wsc-count{font-size:14px;color:${T.text500};font-variation-settings:\"wght\" 450;font-weight:450}\n.wsc-entries{list-style:none;margin:0;padding:0;border:1px solid ${T.border200};border-radius:${T.radiusLg}px;background:${T.white};overflow:hidden}\n.wsc-entry{position:relative;padding:18px 20px 16px;border-top:1px solid ${T.border200}}\n.wsc-entry:first-child{border-top:0}\n.wsc-entry--new{animation:wst-drop .35s ${T.ease}}\n.wsc-entry-main{display:flex;gap:12px;align-items:flex-start}\n.wsc-ref{flex:1;min-width:0;font-size:15px;line-height:1.6;color:${T.text};overflow-wrap:anywhere}\n.wsc-ref--hang{padding-left:28px;text-indent:-28px}\n.wsc-ref .csl-entry{display:block}\n.wsc-ref .csl-left-margin{display:inline;padding-right:6px}\n.wsc-ref .csl-right-inline{display:inline}\n.wsc-ref--pending{color:${T.text600}}\n.wsc-actions{display:flex;gap:2px;flex:none;margin-top:-4px;opacity:.55;transition:opacity .15s}\n.wsc-entry:hover .wsc-actions,.wsc-entry:focus-within .wsc-actions{opacity:1}\n.wsc-intext{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px;font-size:13px;color:${T.text600}}\n.wsc-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 4px 3px 10px;border-radius:8px;background:${T.bg100};color:${T.text800}}\n.wsc-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsc-chip button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:${T.text600};cursor:pointer}\n.wsc-chip button:hover{background:${T.black5};color:${T.text}}\n.wsc-warn{display:inline-flex;align-items:center;gap:6px;color:${T.amber}}\n.wsc-warn-retry{padding:0;border:0;background:none;color:${T.text800};text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n.wsc-warn-retry:hover{color:${T.text}}\n.wst-root .wsc-intext button:focus-visible{outline:2px solid ${T.text500};outline-offset:1px}\n.wsc-chip--pending .wsc-chip-text{color:${T.text500}}\n.wsc-chip button[aria-disabled=\"true\"]{cursor:default}\n/* The box for where a quote is (a page, a timestamp): it changes only the in-text citation that gets copied. */\n.wsc-quote{display:inline-flex;align-items:center;gap:6px;color:${T.text600}}\n.wsc-quote input{width:4.5em;height:28px;padding:0 8px;border:1px solid ${T.border200};border-radius:8px;background:${T.white};color:${T.text};transition:border-color .15s,box-shadow .15s}\n.wsc-quote--wide input{width:13em;max-width:52vw}\n.wsc-quote input:hover{border-color:${T.border300}}\n.wst-root .wsc-quote input:focus-visible{outline:none;border-color:${T.border300};box-shadow:0 0 0 3px ${T.black5}}\n.wsc-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:40px 24px;border:1px dashed ${T.border300};border-radius:${T.radiusLg}px;background:${T.bg50};color:${T.text600}}\n.wsc-empty-icon{width:44px;height:44px;border-radius:12px;background:${T.white};border:1px solid ${T.border200};display:flex;align-items:center;justify-content:center;color:${T.text700};margin-bottom:4px}\n.wsc-empty strong{color:${T.text};font-weight:520;font-variation-settings:\"wght\" 520;font-size:16px}\n.wsc-example{border:0;background:none;padding:0;color:${T.blue};cursor:pointer;text-decoration:underline;text-underline-offset:3px}\n.wsc-status{margin:10px 4px 0;font-size:13px;color:${T.text600};min-height:20px}\n.wsc-error{color:${T.red}}\n.wsc-nudge{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px 16px;border-radius:${T.radiusLg}px;background:${T.blueSoft};color:${T.text800};font-size:14px;animation:wst-in .25s ${T.ease}}\n.wsc-nudge p{margin:0;flex:1}\n.wsc-nudge-go{flex:none;padding:0;border:0;background:none;color:${T.blue};font-variation-settings:\"wght\" 560;font-weight:560;white-space:nowrap;cursor:pointer}\n.wsc-nudge-go:hover{text-decoration:underline}\n.wst-root .wsc-nudge-go:focus-visible{outline:2px solid ${T.text500};outline-offset:3px;border-radius:4px}\n.wsc--form{max-width:880px}\n.wsc--annotated{max-width:1180px}\n.wsc--annotated > .wsc-bar,.wsc--annotated > .wsc-under,.wsc--annotated > .wsc-needs,.wsc--annotated > .wsc-compose,.wsc--annotated > .wsa-settings{max-width:880px;margin-left:auto;margin-right:auto}\n.wsc-or{margin:10px 6px 0;font-size:13px;line-height:1.5;color:${T.text600}}\n.wsc-or-switch{margin-left:8px;padding:0;border:0;background:none;color:${T.text800};font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n.wsc-or-switch:hover{color:${T.blue}}\n.wsc-tvpick{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 6px 0;font-size:13px;color:${T.text600}}\n.wsc-tvpick select{appearance:none;-webkit-appearance:none;font:inherit;font-size:14px;color:${T.text};background:${T.white};border:1px solid ${T.border200};border-radius:10px;padding:7px 30px 7px 12px;max-width:100%;background-image:linear-gradient(45deg,transparent 50%,${T.text600} 50%),linear-gradient(135deg,${T.text600} 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}\n.wsc-tvpick select:focus{outline:none;border-color:${T.text600}}\n.wsc-tvpick select.wsc-tvpick-ep{flex:1;min-width:0}\n.wsc-under .wsc-hint{display:flex;flex-wrap:wrap;gap:4px}\n.wsc-autonote{margin:10px 6px 0;font-size:13px;line-height:1.45;color:${T.text700}}\n/* Needs a look: pasted DOIs, ISBNs or links that couldn't be added, each waiting until the student deals with it. */\n.wsc-needs{margin-top:12px;padding:10px 8px 4px 16px;border:1px solid ${T.border200};border-radius:${T.radiusLg}px;background:${T.white}}\n.wsc-needs-head{margin:0 0 2px;font-size:13px;line-height:1.45;color:${T.text600}}\n.wsc-needs-title{margin-right:8px;font-size:14px;color:${T.text};font-variation-settings:\"wght\" 560;font-weight:560}\n.wsc-needs-list{list-style:none;margin:0;padding:0}\n.wsc-needs-row{display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;padding:6px 0;border-top:1px solid ${T.border200}}\n.wsc-needs-row:first-child{border-top:0}\n.wsc-needs-text{flex:1 1 220px;min-width:0;display:flex;flex-direction:column}\n.wsc-needs-value{font-size:14px;line-height:1.4;color:${T.text};overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.wsc-needs-why{font-size:13px;line-height:1.4;color:${T.text600}}\n.wsc-needs-actions{display:flex;align-items:center;gap:2px;flex:none;margin-left:auto}\n.wsc-needs-more{margin:0 0 6px;padding:2px 0;border:0;background:none;font-size:13px;color:${T.text700};text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n.wsc-needs-more:hover{color:${T.blue}}\n.wst-root .wsc-needs button:focus-visible{outline:2px solid ${T.text500};outline-offset:2px}\n.wsc-compose{scroll-margin-top:96px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;margin-top:16px}\n.wsc-compose--panel{grid-template-columns:minmax(0,1fr) 320px;margin-top:14px;animation:wst-in .2s ${T.ease}}\n.wsc-preview-col{position:sticky;top:96px;min-width:0}\n.wsc-chip--caption{max-width:min(100%,520px)}\n.wsc-chip--caption b{font-weight:560;font-variation-settings:\"wght\" 560}\n.wsc-annotation{margin:8px 0 0;padding-left:28px;font-size:14px;line-height:1.55;color:${T.text700};white-space:pre-wrap;overflow-wrap:anywhere}\n.wsc-entry--editing{background:${T.bg50}}\n@media (max-width:960px){\n  .wsc-compose,.wsc-compose--panel{grid-template-columns:minmax(0,1fr);gap:12px}\n  /* Above the page's bottom blur (z-index 10), which would otherwise blur the pinned preview. */\n  .wsc-preview-col{top:auto;bottom:10px;z-index:12}\n  .wsc-preview-col .wsf-preview{background:${T.white};max-height:min(52vh,420px);overflow:auto;box-shadow:0 2px 6px rgba(0,0,0,.06),0 12px 32px rgba(0,0,0,.14)}\n  .wsc-preview-col .wsf-preview .wsf-preview-toggle{display:inline-flex}\n  .wsc-preview-col .wsf-preview:not(.wsf-preview--open) .wsf-block--more{display:none}\n}\n@media (max-width:720px){\n  .wsc-bar{grid-template-columns:1fr auto}\n  .wsc-style-trigger{grid-column:1 / -1;max-width:none;width:100%;flex-direction:row;align-items:center;justify-content:space-between;border-right:0;border-bottom:1px solid ${T.border200};border-radius:18px 18px 0 0;padding:10px 16px}\n  .wsc-field{padding:12px 4px 12px 16px}\n  .wsc-go{padding:8px 8px 8px 0}\n  .wsc-go .wst-btn{height:42px;padding:0 16px}\n  .wsc-entry{padding:16px 14px 14px}\n  .wsc-actions{opacity:1}\n  /* 16px, so a phone doesn't zoom in when the quote box is tapped. */\n  .wsc-quote input{height:34px;font-size:16px}\n  /* The nudge's button goes under its sentence, so the sentence keeps the width. */\n  .wsc-nudge{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;row-gap:2px}\n  .wsc-nudge-go{grid-column:2;grid-row:2;justify-self:start;padding:6px 0}\n  /* Each miss's actions go under it, lined up with its text. */\n  .wsc-needs-text{flex-basis:100%}\n  .wsc-needs-actions{flex-basis:100%;margin-left:-10px}\n  .wsc-needs-actions .wst-icon-btn{margin-left:auto}\n}\n`;/* -------------------------------------------------------------- icons -- *//** A cover, poster or image of a search result; the type's icon when there's none or it won't load. */function ResultThumb({src,type}){const[broken,setBroken]=useState(false);if(!src||broken){return /*#__PURE__*/_jsx(\"span\",{className:\"wsc-opt-icon\",children:/*#__PURE__*/_jsx(TypeIcon,{type:type})});}return /*#__PURE__*/_jsx(\"img\",{className:\"wsc-opt-thumb\",src:src,alt:\"\",loading:\"lazy\",onError:()=>setBroken(true)});}/** \"4\" is \"4th ed.\", as students see it on the cover. */function editionLabel(edition){const n=Number(edition);if(!Number.isInteger(n)||n<2)return\"\";const suffix=n%100>=11&&n%100<=13?\"th\":[\"th\",\"st\",\"nd\",\"rd\"][n%10]??\"th\";return`${n}${suffix} ed.`;}function TypeIcon({type}){if(type===\"book\"||type===\"chapter\")return /*#__PURE__*/_jsx(Icons.Book,{size:16});if(type===\"motion_picture\")return /*#__PURE__*/_jsx(Icons.Video,{size:16});if(type===\"article-newspaper\"||type===\"article-magazine\")return /*#__PURE__*/_jsx(Icons.News,{size:16});if(type===\"webpage\"||type===\"post-weblog\"||type===\"post\"||type===\"entry-encyclopedia\")return /*#__PURE__*/_jsx(Icons.Globe,{size:16});if(type===\"report\"||type===\"thesis\"||type===\"dataset\"||type===\"patent\"||type===\"software\"||type===\"entry-dictionary\")return /*#__PURE__*/_jsx(Icons.File,{size:16});return /*#__PURE__*/_jsx(Icons.Journal,{size:16});}/** A tab opened during the press, while the browser still allows one, saying Writing Studio is on its way, and\n *  pointed at the app once the list is kept; null where the browser won't open one. */function openWaitingTab(){let tab=null;try{tab=window.open(\"\",\"_blank\");}catch{return null;}if(!tab)return null;try{tab.opener=null;tab.document.title=\"Opening Writing Studio\";const note=tab.document.createElement(\"p\");note.textContent=\"Opening Writing Studio…\";note.style.cssText=\"margin:40vh 16px 0;font:15px/1.5 system-ui,-apple-system,sans-serif;color:#666;text-align:center\";tab.document.body.appendChild(note);}catch{/* A blank tab works as well. */}return tab;}/**\n * Citation Generator\n *\n * @framerIntrinsicWidth 880\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function CitationGenerator(props){const{defaultStyle=\"apa\",customStyleId=\"\",rememberStyle=true,showStylePicker=true,entryLayout=\"search\",defaultSourceType=\"any\",outputType=\"list\",signupUrl=\"https://app.writingstudio.com/sign-up\",apiBaseUrl=\"https://app.writingstudio.com/api/public/cite\",style}=props;const api=apiBaseUrl.replace(/\\/+$/,\"\");const onCanvas=RenderTarget.current()===RenderTarget.canvas;const pageStyle=defaultStyle===\"custom\"&&customStyleId.trim()?customStyleId.trim():defaultStyle===\"custom\"?\"apa\":defaultStyle;const formFirst=entryLayout===\"form\";const annotated=outputType===\"annotated-bibliography\";const searchKind=defaultSourceType===\"article\"||defaultSourceType===\"book\"?defaultSourceType:\"any\";// Another tab, or the Citation Checker handing over a list, saves here too: take its lists in as they land.\nconst[store,update,loaded]=useVersionedStore(STORE_KEY,INITIAL,migrate,adoptLists);// A style picked on this page wins for this visit. On style pages\n// (rememberStyle off) the page's style is the starting point every\n// time; on the main page the visitor's last style is.\nconst[sessionStyle,setSessionStyle]=useState(null);const styleId=sessionStyle||rememberStyle&&store.styleId||pageStyle;const list=activeList(store);const items=list.items;const ids={input:useId(),results:useId(),status:useId(),type:useId(),needs:useId()};const{toasts,show,dismiss}=useToasts();/* ----------------------------- search ----------------------------- */const[query,setQuery]=useState(\"\");const[results,setResults]=useState([]);const[searching,setSearching]=useState(false);const[notice,setNotice]=useState(null);const[open,setOpen]=useState(false);const[active,setActive]=useState(0);const[searchedFor,setSearchedFor]=useState(\"\");const[draft,setDraft]=useState(null);const pendingAdd=useRef(false);const requestSeq=useRef(0);const abortRef=useRef(null);const barRef=useRef(null);const resultsRef=useRef(null);const inputRef=useRef(null);const detected=useMemo(()=>detectInput(query),[query]);const[narrow,setNarrow]=useState(false);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const mq=window.matchMedia(\"(max-width: 720px)\");const sync=()=>setNarrow(mq.matches);sync();mq.addEventListener?.(\"change\",sync);return()=>mq.removeEventListener?.(\"change\",sync);},[]);const debounced=useDebounced(query,detected.kind===\"query\"?380:120);const closeResults=useCallback(()=>setOpen(false),[]);useDismiss(open,closeResults,[barRef]);const runSearch=useCallback(async text=>{const q=text.trim();const kind=detectInput(q).kind;if(!q||kind===\"query\"&&q.length<3){setResults([]);setNotice(null);setSearching(false);return;}abortRef.current?.abort();const controller=new AbortController;abortRef.current=controller;const seq=++requestSeq.current;setSearching(true);setNotice(null);setOpen(true);const timer=setTimeout(()=>controller.abort(),2e4);try{const url=`${api}/resolve?q=${encodeURIComponent(q)}${searchKind!==\"any\"?`&kind=${searchKind}`:\"\"}`;const response=await fetch(url,{signal:controller.signal});const data=await response.json().catch(()=>({}));if(seq!==requestSeq.current)return;if(!response.ok&&response.status===429){setResults([]);setNotice(data.error??\"You're going a bit fast. Please wait a minute and try again.\");}else{setResults(data.results??[]);setNotice(data.results?.length?null:data.notice??data.error??\"No matches yet. Try the full title.\");setDraft(data.results?.length?null:data.draft??null);}setSearchedFor(q);setActive(0);track(TOOL,\"search\",{kind,results:data.results?.length??0});if(!data.results?.length)track(TOOL,\"error\",{where:\"search\",kind});}catch(error){if(seq!==requestSeq.current)return;if(error.name===\"AbortError\"&&controller.signal.aborted&&abortRef.current!==controller)return;setResults([]);setNotice(\"We couldn't reach the search right now. Check your connection and try again.\");track(TOOL,\"error\",{where:\"network\"});}finally{clearTimeout(timer);if(seq===requestSeq.current)setSearching(false);}},[api,searchKind]);useEffect(()=>{if(onCanvas)return;if(debounced.trim()===searchedFor&&results.length)return;runSearch(debounced);},[debounced]);/* ------------------------------ list ------------------------------ */const[lastAdded,setLastAdded]=useState(null);/** The miss from Needs a look that the form is open for: once it's added, it leaves the list. */const[byHand,setByHand]=useState(null);const addFound=useCallback(found=>{const csl={...found.csl};if(ACCESSED_TYPES.has(csl.type)&&!csl.accessed)csl.accessed=todayParts();const item={id:uid(),csl,addedAt:Date.now()};update(prev=>({...prev,lists:prev.lists.map(l=>l.id===prev.activeId?{...l,items:[...l.items,item]}:l)}));setLastAdded(item.id);setQuery(\"\");setResults([]);setOpen(false);setSearchedFor(\"\");show(\"Added to your list\");track(TOOL,\"source_added\",{kind:detected.kind,type:csl.type,via:found.source});inputRef.current?.focus();},[update,show,detected.kind]);// Pressing Cite on an identifier adds it as soon as it resolves.\nuseEffect(()=>{if(!pendingAdd.current||searching)return;pendingAdd.current=false;const first=results[0];if(first&&(first.confidence===\"exact\"||detected.kind!==\"query\"))addFound(first);else if(results.length)setOpen(true);},[searching,results]);const onCite=()=>{if(open&&results[active]&&searchedFor===query.trim()){addFound(results[active]);return;}if(!query.trim()){inputRef.current?.focus();return;}pendingAdd.current=true;runSearch(query);};const removeItem=id=>{let removed=null;update(prev=>({...prev,lists:prev.lists.map(l=>{if(l.id!==prev.activeId)return l;const index=l.items.findIndex(i=>i.id===id);if(index>=0)removed={item:l.items[index],index,listId:l.id};return{...l,items:l.items.filter(i=>i.id!==id)};})}));show(\"Citation removed\",{label:\"Undo\",run:()=>{const r=removed;if(!r)return;// Back into the list it came from, even if another list is on show now.\nupdate(prev=>{const home=prev.lists.some(l=>l.id===r.listId)?r.listId:prev.activeId;return{...prev,lists:prev.lists.map(l=>{if(l.id!==home||l.items.some(i=>i.id===r.item.id))return l;const next=[...l.items];next.splice(Math.min(r.index,next.length),0,r.item);return{...l,items:next};})};});}});};/* ------------------------------ lists ------------------------------ */// Every list is kept: switching shows another, a new one starts empty beside the rest, and a deleted one\n// comes back with Undo. The Citation Checker's hand-over arrives as a list of its own.\nconst switchTo=id=>{if(id===list.id)return;update(prev=>switchList(prev,id));setLastAdded(null);track(TOOL,\"list_switched\",{lists:store.lists.length});};const startNewList=()=>{const id=uid();update(prev=>startList(prev,{id,name:newListName(prev.lists),createdAt:Date.now()}));setLastAdded(null);track(TOOL,\"list_created\",{lists:store.lists.length+1});};const renameShown=name=>{const shownId=list.id;if(!cleanListName(name)||cleanListName(name)===list.name)return;update(prev=>renameList(prev,shownId,name));track(TOOL,\"list_renamed\",{});};const deleteShown=()=>{const gone=list;const fresh={id:uid(),createdAt:Date.now()};let removed=null;update(prev=>{const out=deleteList(prev,gone.id,fresh);removed=out.removed;return out.state;});setLastAdded(null);const n=gone.items.length;const noun=annotated?\"source\":\"citation\";show(`Deleted “${gone.name}”${n?` and its ${n} ${noun}${n===1?\"\":\"s\"}`:\"\"}`,{label:\"Undo\",run:()=>{const r=removed;if(!r)return;update(prev=>restoreList(prev,r));track(TOOL,\"list_restored\",{count:n});}});track(TOOL,\"list_deleted\",{count:n,lists:store.lists.length});};const listMenu=/*#__PURE__*/_jsx(ListMenu,{lists:store.lists.map(l=>({id:l.id,name:l.name,count:l.items.length})),activeId:list.id,onSwitch:switchTo,onNew:startNewList,onRename:renameShown,onDelete:deleteShown});/* --------------------------- formatting --------------------------- */const[formatted,setFormatted]=useState(null);const[formatting,setFormatting]=useState(false);const[formatError,setFormatError]=useState(null);const formatSeq=useRef(0);useEffect(()=>{if(onCanvas)return;return whenIdle(()=>warmUp(styleId));},[styleId]);// Annotations don't change how entries format, so typing one doesn't reformat the list.\n/** The timestamp or page a saved citation's form gave, for its in-text citation in the list. */const listLocators=useMemo(()=>{const out={};for(const i of items){const cfg=i.form?sourceTypeById(i.form.type):undefined;const loc=cfg&&i.form?locatorOf(cfg,i.form.values):undefined;if(loc)out[i.id]=loc;}return out;},[items]);const formatKey=useMemo(()=>JSON.stringify([items.map(i=>[i.id,{...i.csl,annote:undefined},i.titleLocked??false]),listLocators]),[items,listLocators]);useEffect(()=>{if(onCanvas||!loaded)return;if(!items.length){setFormatted(null);setFormatError(null);return;}const seq=++formatSeq.current;setFormatting(true);formatList(styleId,items.map(i=>({id:i.id,csl:{...i.csl,annote:undefined},titleLocked:i.titleLocked})),Object.keys(listLocators).length?{locator:listLocators}:{}).then(result=>{if(seq!==formatSeq.current)return;setFormatted(result);setFormatError(null);}).catch(()=>{if(seq!==formatSeq.current)return;setFormatError(\"We couldn't load this citation style right now. Try again, or pick another style.\");track(TOOL,\"error\",{where:\"format\",style:styleId});}).finally(()=>{if(seq===formatSeq.current)setFormatting(false);});},[styleId,formatKey,loaded]);/* ---------------------------- quote boxes --------------------------- */// The box by each in-text citation in the list says where a quote is (a page, a paragraph, a timestamp). It\n// changes only the in-text citation that gets copied: the saved source and its reference entry keep their\n// own, and the box lasts this visit. Quoting two pages of one source is typing one page, then the other.\nconst[quotePlaces,setQuotePlaces]=useState({});const quoteBoxes=useMemo(()=>{const out={};if(annotated)return out;for(const i of items){const own=i.form?sourceTypeById(i.form.type):undefined;const cfg=own??sourceTypeForCsl(i.csl);const field=quoteField(cfg,own&&i.form?i.form.values:cfg.fromCsl(i.csl));if(field)out[i.id]={locator:field.locator};}return out;},[items,annotated]);const[quoteTry,setQuoteTry]=useState(0);const quoteLocators=useMemo(()=>typedLocators(quotePlaces,quoteBoxes,listLocators),[quotePlaces,quoteBoxes,listLocators]);// In the style the list is showing (the last one that loaded), so a box never mixes two styles.\nconst quoteStyle=formatted?.styleId??styleId;const quoteKey=Object.keys(quoteLocators).length?JSON.stringify([quoteStyle,formatKey,quoteLocators,quoteTry]):\"\";// Those in-text citations, formatted within the whole list so \"2020b\" and \"[3]\" stay right. The result is\n// kept in a ref too, so a copy pressed before the next render still gets it.\nconst[quoteResult,setQuoteResult]=useState(null);const quoteLatest=useRef(quoteResult);useEffect(()=>{if(onCanvas||!quoteKey)return;let live=true;const done=result=>{if(!live)return;quoteLatest.current=result;setQuoteResult(result);};formatList(quoteStyle,items.map(i=>({id:i.id,csl:{...i.csl,annote:undefined},titleLocked:i.titleLocked})),{locator:{...listLocators,...quoteLocators},only:Object.keys(quoteLocators)}).then(f=>done({key:quoteKey,inText:f.inText})).catch(()=>{done({key:quoteKey});track(TOOL,\"error\",{where:\"quote_box\",style:quoteStyle});});return()=>{live=false;};},[quoteKey]);/** An in-text citation as it gets copied: the list's own, or with the place typed in its box (\"ready\"),\n     *  still being formatted (\"pending\", shown faded and not copied yet) or not formatted (\"failed\"). */const quotedInText=(id,latest=quoteResult)=>{const own=formatted?.inText[id];if(!quoteLocators[id])return{inText:own,state:\"list\"};if(latest?.key!==quoteKey)return{inText:latest?.inText?.[id]??own,state:\"pending\"};const typed=latest.inText?.[id];return typed?{inText:typed,state:\"ready\"}:{inText:own,state:\"failed\"};};const styleLabel=PINNED_LABEL[styleId]??(formatted?.styleId===styleId?formatted.styleTitle:undefined)??prettyStyleId(styleId);const pickStyle=(id,label)=>{setSessionStyle(id);update(prev=>({...prev,styleId:id,recentStyles:[id,...prev.recentStyles.filter(s=>s!==id)].slice(0,6)}));track(TOOL,\"style_changed\",{style:id});if(items.length)show(`Switched to ${label}`);};/* ------------------------------ form ------------------------------ */// One form serves the source-type pages (always open), manual entry on the main page (opened from the\n// search bar or a failed lookup) and Edit on any saved citation.\nconst[formOpen,setFormOpen]=useState(formFirst);const[typeId,setTypeId]=useState(()=>sourceTypeById(defaultSourceType)?.id??(formFirst?\"image\":\"website\"));const[values,setValues]=useState({});const[unsure,setUnsure]=useState([]);const[editing,setEditing]=useState(null);const[issues,setIssues]=useState({});// A title autofill took from the page or the link, which may not be the image's own.\nconst[pageTitle,setPageTitle]=useState(null);const[previewOpen,setPreviewOpen]=useState(false);const composeRef=useRef(null);const focusInvalid=useRef(false);const config=sourceTypeById(typeId)??SOURCE_TYPES[0];const editingItem=editing?items.find(i=>i.id===editing):undefined;// Today's date for \"Date accessed\" is filled in the browser, so the server render stays the same everywhere.\nuseEffect(()=>{setValues(v=>({...initialValues(config),...v}));},[]);const setField=(key,value)=>{setValues(v=>({...v,[key]:value}));if(issues[key])setIssues(all=>({...all,[key]:{}}));setUnsure(u=>u.includes(key)?u.filter(k=>k!==key):u);if(key===\"scope\")track(TOOL,\"whole_website_toggle\",{on:value===\"site\"});if(key===\"format\")track(TOOL,\"format_chosen\",{format:String(value),type:config.id});if(key===\"noTitle\")track(TOOL,\"no_title_toggle\",{on:Boolean(value),type:config.id});};const switchType=id=>{if(id===typeId)return;track(TOOL,\"source_type_switched\",{from:typeId,to:id,layout:entryLayout});const next=sourceTypeById(id);setTypeId(id);setIssues({});// Values stay in one bag keyed by field, so whatever matches carries over; new defaults fill gaps.\n// A figure \"from a book or article\" stays that way only while the type is a book or an article.\nif(next)setValues(v=>({...initialValues(next),...filledValues(v),where:id===\"book\"||id===\"article\"?v.where:undefined}));};const published=values.where===\"published\"&&(typeId===\"book\"||typeId===\"article\");const where=whereFor(typeId,published);// The image page asks \"Where did you find it?\" in place of a source type menu (one choice, not two).\n// Editing a saved citation of another kind there brings back the type menu.\nconst showWhere=formFirst&&defaultSourceType===\"image\"&&where!==null;const pickWhere=id=>{const choice=WHERE_CHOICES.find(w=>w.id===id);if(!choice)return;track(TOOL,\"where_found\",{choice:id,layout:entryLayout});autoSwitched.current=false;if(choice.type!==typeId)switchType(choice.type);// An image found in a post: the post is a photograph unless the student says otherwise.\nif(choice.type===\"social\")setValues(v=>textOf(v,\"imageType\")?v:{...v,imageType:\"Photograph\"});setValues(v=>({...v,where:choice.published?\"published\":undefined}));};const scrollToForm=()=>{if(typeof window===\"undefined\")return;window.requestAnimationFrame(()=>{const el=composeRef.current;if(!el)return;const top=el.getBoundingClientRect().top;if(top<80||top>window.innerHeight*.6)el.scrollIntoView({behavior:\"smooth\",block:\"start\"});el.querySelector(\"input.wsf-input\")?.focus({preventScroll:true});});};const openManual=from=>{const seed=from===\"lookup_failed\"&&draft?draft:null;const cfg=seed?sourceTypeForCsl(seed):config;setEditing(null);setIssues({});setPageTitle(null);setTypeId(cfg.id);setValues(mergeFilled(initialValues(cfg),seed?cfg.fromCsl(seed):detected.kind===\"url\"?{url:detected.value}:{}));setFormOpen(true);setOpen(false);setByHand(null);track(TOOL,\"manual_open\",{from});scrollToForm();};const closeForm=()=>{setEditing(null);setIssues({});setPageTitle(null);setByHand(null);if(formFirst)setValues(initialValues(config));else setFormOpen(false);};const startEdit=saved=>{const own=saved.form?sourceTypeById(saved.form.type):undefined;const cfg=own??sourceTypeForCsl(saved.csl);const base=own&&saved.form?saved.form.values:cfg.fromCsl(saved.csl);setTypeId(cfg.id);setValues({...base,annotation:typeof saved.csl.annote===\"string\"?saved.csl.annote:\"\"});setEditing(saved.id);setIssues({});setPageTitle(null);setFormOpen(true);setByHand(null);track(TOOL,\"edit_open\",{type:saved.csl.type});scrollToForm();};const submitForm=()=>{const missing=missingRequired(config,values);if(missing.length){setIssues(Object.fromEntries(missing.map(f=>[f.key,{error:`Add ${withArticle(resolveDyn(f.label,values))}.`}])));focusInvalid.current=true;return;}const none=config.noEntry?.(values,{family:styleFamily(styleId),styleLabel});if(none&&!editingItem){void copyRich(none.copy.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\"),none.copy).then(ok=>show(ok?\"Copied. Put it in your sentence where you mention the website.\":\"Copying didn't work. Select the text and copy it instead.\"));track(TOOL,\"no_entry_copied\",{type:config.id});return;}if(config.captionOnly){const own=buildCaption({family:styleFamily(styleId),csl:config.toCsl(values),values,typeId:config.id,published:false});if(own)copyCaption(own);else show(\"Captions are available for APA, MLA, Chicago and Harvard. Pick one of those styles.\");return;}const annote=textOf(values,\"annotation\")||undefined;const form={type:config.id,values:filledValues(values)};if(editingItem){const csl={...mergeEdit(editingItem.csl,config,values),annote};const titleLocked=looksSentenceCase(textOf(values,\"title\"))||editingItem.titleLocked;update(prev=>updateItem(prev,editingItem.id,i=>({...i,csl,form,titleLocked})));setLastAdded(editingItem.id);show(\"Citation updated\");track(TOOL,\"citation_edited\",{type:config.id});closeForm();return;}const item={id:uid(),csl:{...config.toCsl(values),...annote?{annote}:{}},addedAt:Date.now(),form,...looksSentenceCase(textOf(values,\"title\"))?{titleLocked:true}:{}};// Entered by hand from Needs a look: it has been dealt with, so it leaves that list.\nconst dealt=byHand;update(prev=>{const next={...prev,lists:prev.lists.map(l=>l.id===prev.activeId?{...l,items:[...l.items,item]}:l)};return dealt?dropMiss(next,dealt.listId,dealt.value):next;});if(dealt){setByHand(null);track(TOOL,\"needs_look_done\",{how:\"by_hand\"});}setLastAdded(item.id);show(\"Added to your list\");track(TOOL,\"source_added\",{kind:\"form\",type:item.csl.type,via:\"form\",layout:entryLayout});// What each source-type page reports: the form's choices (online or print, episode or series, how it\n// was seen...), and the details its brief asks about.\nconst choices={type:config.id,style:styleFamily(styleId)};for(const f of config.fields)if(f.kind===\"segmented\")choices[f.key]=textOf(values,f.key)||String(f.initial?.()??\"\");if(config.id===\"social\"){choices.platform=textOf(values,\"site\");choices.trimmed_for_apa=styleFamily(styleId)===\"apa\"&&textOf(values,\"title\").split(/\\s+/).length>20;}if(config.id===\"podcast\")choices.platform=textOf(values,\"platform\");if(config.id===\"thesis\")choices.thesis_type=textOf(values,\"thesisKind\");if(config.id===\"report\")choices.abbreviation=Boolean(textOf(values,\"abbreviation\"));if(config.id===\"dictionary\"||config.id===\"encyclopedia\")choices.work=textOf(values,\"work\");if(config.id===\"presentation\")choices.presentation_type=textOf(values,\"presKind\");if(config.id===\"software\")choices.platform=textOf(values,\"publisher\");if(config.id===\"forum\"||config.id===\"comment\")choices.site=textOf(values,\"site\");if(config.id===\"press\")choices.wire=Boolean(textOf(values,\"publisher\"));if(config.id===\"patent\")choices.country=textOf(values,\"number\").match(/^[A-Z]{2}/i)?.[0]?.toUpperCase()??\"\";track(TOOL,\"form_cited\",choices);setIssues({});setPageTitle(null);setAutoUrl(\"\");setAutoNote(null);setAutoSuggest(null);autofilled.current=false;setValues(initialValues(config));if(!formFirst)setFormOpen(false);};useEffect(()=>{if(!focusInvalid.current)return;focusInvalid.current=false;composeRef.current?.querySelector('[aria-invalid=\"true\"], .wsf-error')?.closest(\".wsf-field\")?.querySelector(\"input, select, textarea\")?.focus();},[issues]);// Editing a citation that was just removed: stop editing.\nuseEffect(()=>{if(editing&&!editingItem)closeForm();},[editing,editingItem]);/* ---------------------------- autofill ---------------------------- */const[autoUrl,setAutoUrl]=useState(\"\");const[autoBusy,setAutoBusy]=useState(false);const[autoNote,setAutoNote]=useState(null);// A form that suits the link better (a museum page: Artwork; a social post: Social media post).\nconst[autoSuggest,setAutoSuggest]=useState(null);const autoRef=useRef(null);const autofilled=useRef(false);const autoSwitched=useRef(false);// Results of a title or ISBN search above the form (books, articles, movies, artworks).\nconst[lookResults,setLookResults]=useState([]);const[lookOpen,setLookOpen]=useState(false);const[lookNote,setLookNote]=useState(null);const[lookActive,setLookActive]=useState(0);const lookRef=useRef(null);// The whole bar, so pressing a result doesn't count as a click outside the list.\nuseDismiss(lookOpen,()=>setLookOpen(false),[barRef]);const lookSeq=useRef(0);const lookedFor=useRef(\"\");const lookListRef=useRef(null);useEffect(()=>{const el=lookListRef.current?.querySelectorAll(\".wsc-opt\")[lookActive];el?.scrollIntoView?.({block:\"nearest\"});},[lookActive]);const unsureFields=(keys,cfg)=>(keys??[]).flatMap(k=>UNSURE_FIELDS[k]??[]).filter(f=>cfg.fields.some(x=>x.key===f));/** A timestamp in a video link (?t=95, &t=1m35s, #t=95, ?start=95) is where the student's quote is. */const timestampIn=link=>{try{const u=new URL(link);const t=u.searchParams.get(\"t\")??u.searchParams.get(\"start\")??u.hash.match(/t=([\\dhms]+)/)?.[1];return t&&/^\\d/.test(t)?normalizeTimestamp(t):null;}catch{return null;}};/** Fills the form from a lookup, switching to the form that suits the source when there is one\n     *  (a YouTube link on the Website page opens the video form). */const fillFrom=(hit,via,link,extraNote)=>{const own=sourceTypeForCsl(hit.csl);// This page's form can take some records of another type (a book on the chapter page, a YouTube\n// video on the podcast page) instead of switching away.\nconst adopted=own.id!==config.id?config.adopt?.({...hit.csl,URL:hit.csl.URL??link})??null:null;const target=!adopted&&SOURCE_TYPES.includes(own)&&own.id!==config.id?own:config;const switched=target.id!==config.id;if(switched){switchType(target.id);track(TOOL,\"auto_switched\",{from:config.id,to:target.id,via});}if(adopted)track(TOOL,\"adopted\",{type:config.id,from:own.id,via});// The chapter page found the book: the chapter's own details are the student's to add.\nif(adopted&&config.id===\"chapter\"&&own.id===\"book\")extraNote=extraNote??\"We filled in the book. Add the chapter's title, its authors and its pages.\";const filled=adopted??{...target.fromCsl({...hit.csl,URL:hit.csl.URL??link}),...target.figure&&hit.figure?hit.figure:{}};// A link to a section (Wikipedia's #History) gives the in-text citation its section.\nif(hit.locator&&target.fields.some(f=>f.locator===\"section\"))filled.locator=hit.locator;const stamp=link?timestampIn(link):null;if(stamp&&target.fields.some(f=>f.locator===\"timestamp\")){filled.locator=stamp;track(TOOL,\"timestamp_from_link\",{type:target.id});}const fresh=autofilled.current;setValues(v=>mergeFilled(fresh||switched?initialValues(target):v,filled));autofilled.current=true;setIssues({});setUnsure(unsureFields(hit.unsure,target));const article=n=>/^[aeiou]/i.test(n)?\"an\":\"a\";// \"a TV show\", \"a Wikipedia article\": names keep their capitals mid-sentence.\nconst lower=label=>/^(Wikipedia|TV|PowerPoint|YouTube)\\b/.test(label)?label:label.charAt(0).toLowerCase()+label.slice(1);// A news website on the newspaper or magazine page: say why it's a webpage (APA's rule).\nconst newsSite=switched&&hit.csl[\"ws-news\"]===true&&(config.id===\"newspaper\"||config.id===\"magazine\");if(newsSite)track(TOOL,\"news_site_to_website\",{from:config.id,site:plainText(String(hit.csl[\"container-title\"]??\"\"))});const lead=newsSite?`${plainText(String(hit.csl[\"container-title\"]??\"This site\"))} isn't ${config.id===\"newspaper\"?\"a newspaper\":\"a magazine\"}, so APA cites it as a webpage. We're using the Website form. `:switched?`This looks like ${article(target.label)} ${lower(target.label)}, so we're using the ${lower(target.label)} form. `:\"\";setAutoNote(`${lead}${extraNote??\"We filled in what we found. Check each field before you cite.\"}`);// A retracted article: say so plainly.\nconst doi=hit.csl.DOI;if(doi&&(target.id===\"article\"||hit.csl.type===\"article-journal\")){fetch(`${api}/text?doi=${encodeURIComponent(String(doi))}`).then(r=>r.json()).then(d=>{if(!d.facts?.retracted)return;setAutoNote(\"This article has been retracted. Most instructors expect you to use another source; if you keep it, say it was retracted.\");track(TOOL,\"retraction_warning\",{via});}).catch(()=>{});}};/** Books, articles, movies and artworks: search by title, ISBN, DOI, PMID or arXiv ID. As the student\n     *  types (suggest), matches show without filling anything or reporting a miss. */const lookup=async(q,suggest=false)=>{const kind=config.search;if(!kind)return;const seq=++lookSeq.current;lookedFor.current=q;if(!suggest){setAutoBusy(true);setAutoNote(null);}const detectedKind=detectInput(q).kind;try{const res=await fetch(`${api}/resolve?q=${encodeURIComponent(q)}&kind=${kind}`);const data=await res.json().catch(()=>({}));if(seq!==lookSeq.current)return;const found=data.results??[];track(TOOL,\"form_search\",{kind,by:detectedKind===\"query\"?\"title\":detectedKind,results:found.length,as:suggest?\"typing\":\"find\"});setLookNote(null);if(!found.length){setLookResults([]);if(!suggest)setAutoNote(res.status===429?data.error??\"You're going a bit fast. Please wait a minute and try again.\":data.notice??\"No matches. Try the full title, or fill in the details below.\");return;}// An identifier names one work: fill the form straight away.\nif(!suggest&&detectedKind!==\"query\"&&found.length===1){fillFrom(found[0],detectedKind,undefined,data.published?preprintNote(data.published):null);if(data.published)setPreprintOf(data.published);return;}setLookResults(found);setLookActive(0);setLookOpen(true);const editions=found[0]?.editions;setLookNote(kind===\"book\"&&editions&&editions>1?`Open Library lists ${editions} editions of this book. Pick the one you used: the edition changes the citation.`:null);}catch{if(!suggest&&seq===lookSeq.current)setAutoNote(\"We couldn't reach the search right now. Fill in the details below instead.\");}finally{if(!suggest)setAutoBusy(false);}};// Matches appear as the student types a title (not a link), like the main search bar.\nconst typed=useDebounced(autoUrl,420);useEffect(()=>{// A dictionary word is checked against several dictionaries, and patents against Google Patents: both\n// search when the student presses Enter, not on every keystroke.\nif(onCanvas||!config.search||config.search===\"dictionary\"||config.search===\"patent\")return;const q=typed.trim();if(q.length<3||q===lookedFor.current||detectInput(q).kind===\"url\")return;if(typeof document!==\"undefined\"&&document.activeElement!==autoRef.current)return;void lookup(q,true);},[typed]);const[preprintOf,setPreprintOf]=useState(null);const preprintNote=p=>`This is a preprint. It was later published${p.csl[\"container-title\"]?` in ${plainText(String(p.csl[\"container-title\"]))}`:\"\"}, and most instructors prefer the published version.`;/* The TV page: a show picked from the search offers its seasons and episodes to pick from. */const[tvPick,setTvPick]=useState(null);const loadShow=async hit=>{const show=String(hit.csl[\"ws-tvmaze\"]??\"\");if(!show)return;try{const res=await fetch(`${api}/tv?show=${encodeURIComponent(show)}`);const data=await res.json().catch(()=>({}));if(!data.seasons?.length)return;setTvPick({show,seasons:data.seasons,season:data.seasons[0].number});setAutoNote(\"Now pick the episode above, or cite the whole series with the switch below.\");// The show's own record (creators, executive producers, the years it really ran) fills the series part.\nif(data.series){const series=TV_SOURCE.fromCsl({...data.series,\"ws-scope\":\"series\"});delete series.tvScope;setValues(v=>mergeFilled(v,series));}}catch{/* the form still has the series; the student types the episode */}};const pickEpisode=async episodeId=>{if(!tvPick||!episodeId)return;setAutoBusy(true);try{const res=await fetch(`${api}/tv?show=${encodeURIComponent(tvPick.show)}&episode=${encodeURIComponent(episodeId)}`);const data=await res.json().catch(()=>({}));const hit=data.results?.[0];if(hit){// The episode joins what the show filled (its years, creators), rather than replacing it.\nconst episode=TV_SOURCE.fromCsl(hit.csl);setValues(v=>mergeFilled({...v,tvScope:\"episode\"},episode));setUnsure(unsureFields(hit.unsure,TV_SOURCE));setIssues({});setAutoNote(\"We filled in the episode. Check each field before you cite.\");}else setAutoNote(data.notice??\"We couldn't find that episode. Fill in the details below instead.\");track(TOOL,\"episode_picked\",{found:Boolean(hit)});}catch{setAutoNote(\"We couldn't reach the search right now. Fill in the details below instead.\");}finally{setAutoBusy(false);}};const pickLook=hit=>{lookSeq.current++;setLookOpen(false);setLookResults([]);// A podcast from the search: its own link gives the hosts and episode number from the feed.\nif(config.search===\"podcast\"&&hit.csl.URL){fillFrom(hit,\"search\");setAutoUrl(String(hit.csl.URL));lookedFor.current=String(hit.csl.URL);void autofill(String(hit.csl.URL));return;}// A patent from the search lists one inventor: its own page gives them all.\nif(config.search===\"patent\"&&hit.csl.URL&&/patents\\.google\\.com/.test(String(hit.csl.URL))){fillFrom(hit,\"search\");setAutoUrl(String(hit.csl.URL));lookedFor.current=String(hit.csl.URL);void autofill(String(hit.csl.URL));return;}if(config.search===\"tv\"&&hit.csl[\"ws-tvmaze\"]){// The series fills now; the scope stays as the student had it (an episode, by default).\nconst scope=textOf(values,\"tvScope\")||\"episode\";setTvPick(null);fillFrom(hit,\"search\");setValues(v=>({...v,tvScope:scope}));void loadShow(hit);return;}fillFrom(hit,\"search\");if(config.search===\"book\")track(TOOL,\"edition_picked\",{editions:hit.editions??0});if(config.id===\"chapter\"&&hit.csl.type===\"chapter\"&&hit.csl.DOI)track(TOOL,\"chapter_doi_found\",{via:\"search\"});};/** Several links pasted at once (one per line): each is cited and added to the list. */const onAutoPaste=e=>{const text=e.clipboardData.getData(\"text\");const lines=text.split(/[\\r\\n]+/).map(l=>l.trim()).filter(Boolean);// One link, DOI, ISBN or PubMed ID: fill the form straight away, as the main search bar does.\nconst one=lines.length===1?detectInput(lines[0]):null;if(one&&(one.kind===\"url\"||/^https?:\\/\\//i.test(lines[0])||one.kind!==\"query\"&&one.kind!==\"reference\")){e.preventDefault();setAutoUrl(lines[0]);lookedFor.current=lines[0];void autofill(lines[0]);return;}if(lines.length<2||!lines.every(l=>detectInput(l).kind!==\"query\"))return;e.preventDefault();setAutoUrl(\"\");track(TOOL,\"batch_mode\",{count:lines.length,type:config.id});void addIdentifiers(lines.slice(0,50));};/** A DOI, ISBN or PubMed ID typed on a page without a search (Website, YouTube): look it up anyway. */const identify=async q=>{setAutoBusy(true);setAutoNote(null);try{const res=await fetch(`${api}/resolve?q=${encodeURIComponent(q)}`);const data=await res.json().catch(()=>({}));const hit=data.results?.[0];if(hit)fillFrom(hit,detectInput(q).kind,undefined,data.published?preprintNote(data.published):null);else setAutoNote(res.status===429?data.error??\"You're going a bit fast. Please wait a minute and try again.\":data.notice??\"We couldn't find that. Fill in the details below instead.\");}catch{setAutoNote(\"We couldn't reach the search right now. Fill in the details below instead.\");}finally{setAutoBusy(false);}};const autofill=async text=>{const raw=(text??autoUrl).trim();if(!raw){autoRef.current?.focus();return;}const detected=detectInput(raw);// A doi.org, arxiv.org or PubMed link is detected as its identifier; it is still a link to read.\nconst found=detected.kind===\"url\"?detected:/^https?:\\/\\//i.test(raw)?{kind:\"url\",value:raw}:null;if(!found){if(config.search)return lookup(raw);if(detected.kind!==\"query\")return identify(raw);setAutoNote(\"Paste a link that starts with https://, or fill in the details below.\");return;}// Class platforms (Canvas, Blackboard, Moodle) need a login: fill in the platform, not the page.\nconst classPlatform=CLASS_HOSTS.find(([re])=>{try{return re.test(new URL(found.value).hostname);}catch{return false;}})?.[1];if(classPlatform&&(config.id===\"slides\"||config.id===\"lecture\")){const login=(()=>{try{return new URL(found.value).origin;}catch{return found.value;}})();setValues(v=>({...v,...config.id===\"slides\"?{seenAt:\"class\"}:{},platform:classPlatform,url:login}));setAutoNote(`${classPlatform} needs a login, so we can't read it. We filled in the platform and its login page, as APA asks. Add the title, instructor and date.`);track(TOOL,\"class_platform_detected\",{platform:classPlatform,type:config.id});return;}if(config.id===\"lecture\"&&/(^|\\.)ted\\.com$/i.test((()=>{try{return new URL(found.value).hostname;}catch{return\"\";}})()))track(TOOL,\"ted_link\",{});setAutoBusy(true);setAutoNote(null);setAutoSuggest(null);setPreprintOf(null);const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),2e4);// Image-type forms use the image adapters (Wikimedia, Flickr, Getty, NASA, museums, Google Images\n// links, image files); other forms read the page as the main generator does.\n// (A social post on the social media page is read by the post lookups, not the image ones.)\nconst imageMode=Boolean(config.figure)&&config.id!==\"social\"||formFirst&&defaultSourceType===\"image\";try{const response=await fetch(`${api}/url?u=${encodeURIComponent(found.value)}${imageMode?\"&for=image\":\"\"}`,{signal:controller.signal});const data=await response.json().catch(()=>({}));const hit=data.results?.[0];const suggest=data.suggest??null;if(!hit){setValues(v=>({...v,url:textOf(v,\"url\")||found.value}));// The form the server suggests is this one (a museum page on the Artwork page): say what failed instead.\nconst own=suggest===config.id;setAutoNote(response.status===429?data.error??\"You're going a bit fast. Please wait a minute and try again.\":own?config.search?\"We couldn't read that page. Search for the work by its title above, or fill in the details below.\":\"We couldn't read that page. Fill in the details below instead.\":data.notice??data.error??\"We couldn't find any details on that page. Fill them in below instead.\");setAutoSuggest(suggest&&suggest!==config.id?suggest:null);track(TOOL,\"autofill\",{ok:false,via:hit===undefined&&data.notice?\"notice\":\"none\",type:config.id,suggest:suggest??\"\"});return;}if(!imageMode){const csl=hit.csl;fillFrom({...hit,csl},hit.adapter??hit.source??\"page\",data.resolvedUrl??found.value,data.notice??(data.published?preprintNote(data.published):null));if(data.published){setPreprintOf(data.published);track(TOOL,\"preprint_note\",{});}// Which fields autofill found, for the hit rate.\ntrack(TOOL,\"autofill\",{ok:true,via:hit.adapter??hit.source??\"page\",type:sourceTypeForCsl(csl).id,author:Boolean(csl.author?.length||csl.director?.length),date:Boolean(csl.issued),title:Boolean(csl.title)});return;}// Museum records come back as artwork: open the Artwork form. Anything else fills the image form\n// (or the artwork or social form the student is already on).\n// Back to the image form when an earlier link (not the student) had switched to Artwork.\nconst target=hit.csl[\"ws-kind\"]===\"artwork\"?\"artwork\":imageMode&&(![\"image\",\"artwork\",\"social\"].includes(config.id)||config.id===\"artwork\"&&autoSwitched.current)?\"image\":config.id;autoSwitched.current=target!==config.id?target===\"artwork\":autoSwitched.current&&target===\"artwork\";const targetCfg=sourceTypeById(target)??config;const filled={...targetCfg.fromCsl({...hit.csl,URL:hit.csl.URL??data.resolvedUrl??found.value}),...hit.figure??{}};if(target!==config.id)switchType(target);// A second link replaces what the first one filled; what the student typed first is kept.\nconst fresh=autofilled.current;setValues(v=>mergeFilled(fresh?{...initialValues(targetCfg),where:v.where}:v,filled));autofilled.current=true;setIssues({});const from=hit.titleFrom??(!imageMode&&config.id===\"image\"&&hit.csl.type!==\"graphic\"?\"page\":undefined);setPageTitle(from&&typeof filled.title===\"string\"&&filled.title?{text:filled.title,from}:null);setAutoSuggest(suggest&&suggest!==target?suggest:null);setAutoNote(data.notice??(target!==config.id&&target===\"artwork\"?\"This is a museum's artwork, so we switched to the Artwork form and filled it in.\":\"We filled in what we found. Check each field before you cite.\"));track(TOOL,\"autofill\",{ok:true,via:hit.adapter??hit.source??\"page\",fallback:hit.adapter===\"page\"||hit.adapter===\"file\"||/-link$/.test(hit.adapter??\"\"),type:target,suggest:suggest??\"\"});}catch{setValues(v=>({...v,url:textOf(v,\"url\")||found.value}));setAutoNote(\"We couldn't reach that page right now. Fill in the details below instead.\");track(TOOL,\"autofill\",{ok:false,via:\"network\",type:config.id});}finally{clearTimeout(timer);setAutoBusy(false);}};/* ---------------------------- preview ----------------------------- */const liveValues=useDebounced(values,150);const previewEmpty=formIsEmpty(config,liveValues);const previewCsl=useMemo(()=>editingItem?mergeEdit(editingItem.csl,config,liveValues):config.toCsl(liveValues),[config,liveValues,editingItem]);const[preview,setPreview]=useState(null);const[previewPending,setPreviewPending]=useState(false);const[previewError,setPreviewError]=useState(null);const previewSeq=useRef(0);useEffect(()=>{if(onCanvas||!formOpen||previewEmpty||config.captionOnly)return;const seq=++previewSeq.current;setPreviewPending(true);const loc=locatorOf(config,liveValues);formatList(styleId,[{id:\"preview\",csl:previewCsl,titleLocked:looksSentenceCase(textOf(liveValues,\"title\"))||editingItem?.titleLocked}],loc?{locator:{preview:loc}}:{}).then(f=>{if(seq!==previewSeq.current)return;const inText=f.inText.preview;setPreview({html:f.entries[0]?.html,parenthetical:inText?.parenthetical,narrative:inText?.narrative,isNote:f.isNote,hangingIndent:f.hangingIndent,heading:f.heading});setPreviewError(null);}).catch(()=>{if(seq===previewSeq.current)setPreviewError(\"We couldn't load this citation style right now. Try again, or pick another style.\");}).finally(()=>{if(seq===previewSeq.current)setPreviewPending(false);});},[previewCsl,styleId,formOpen,previewEmpty]);const hints=useMemo(()=>previewEmpty?[]:config.hints?.(liveValues,previewCsl,{family:styleFamily(styleId),styleLabel})??[],[config,liveValues,previewCsl,styleId,styleLabel,previewEmpty]);const family=styleFamily(styleId);const noEntry=previewEmpty?null:config.noEntry?.(liveValues,{family,styleLabel})??null;// A figure caption for images, and for a social post only when it is a photo or video.\nconst figureOn=Boolean(config.figure)&&(!config.figureIf||config.figureIf(liveValues));const figureFields=useMemo(()=>config.captionOnly?FIGURE_FIELDS.filter(f=>f.key===\"figureNumber\"||f.key===\"figureTitle\"):figureOn||published?FIGURE_FIELDS:[],[config,published,figureOn]);const caption=useMemo(()=>previewEmpty||config.figureIf&&!config.figureIf(liveValues)&&!published?null:buildCaption({family,csl:config.toCsl(liveValues),values:liveValues,typeId:config.id,published:liveValues.where===\"published\"&&(config.id===\"book\"||config.id===\"article\")}),[family,config,liveValues,previewEmpty,published]);const captionNote=(figureOn||published)&&!CAPTION_FAMILIES.includes(family)?\"Figure captions are available for APA, MLA, Chicago and Harvard.\":undefined;const fieldIssues=useMemo(()=>{if(!pageTitle||values.noTitle||textOf(values,\"title\")!==pageTitle.text)return issues;const warn=pageTitle.from===\"page\"?\"Check the title. We used the page title, and the image may have its own.\":\"Check the title. We took it from the link, and the image may have its own.\";return{...issues,title:{...issues.title,warn}};},[issues,pageTitle,values]);/* ------------------------------ copy ------------------------------ */const[showNudge,setShowNudge]=useState(false);const afterCopy=what=>{track(TOOL,\"copy\",{what,style:styleId,count:items.length});if(!store.nudgeDismissed)setShowNudge(true);};const entryById=useMemo(()=>{const map=new Map;formatted?.entries.forEach(e=>map.set(e.id,e));return map;},[formatted]);const copyEntry=async id=>{const entry=entryById.get(id);if(!entry)return;const ok=await copyRich(inlineHtml(entry.html),entry.text);show(ok?\"Citation copied\":\"Copying didn't work. Select the text and copy it instead.\");if(ok)afterCopy(\"one\");};const copyAll=async()=>{if(!formatted)return;const hang=formatted.hangingIndent;const noteOf=id=>annoteOf(items.find(i=>i.id===id));const escape=t=>t.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");const paragraphs=formatted.entries.map(e=>{const note=noteOf(e.id);const entry=`<p style=\"margin:0 0 0 ${hang?\"0.5in\":\"0\"};text-indent:${hang?\"-0.5in\":\"0\"}\">${inlineHtml(e.html)}</p>`;return note?`${entry}<p style=\"margin:0 0 0 0.5in\">${escape(note)}</p>`:entry;});const texts=formatted.entries.map(e=>[e.text,noteOf(e.id)].filter(Boolean).join(\"\\n\"));const ok=await copyRich(paragraphs.join(\"\"),texts.join(\"\\n\"));show(ok?`Copied ${formatted.entries.length} citation${formatted.entries.length===1?\"\":\"s\"}`:\"Copying didn't work. Select the text and copy it instead.\");if(ok)afterCopy(\"all\");};const copyInText=async(id,which)=>{const{inText,state}=quotedInText(id,quoteLatest.current);const html=inText?.[which];if(state===\"pending\"||!html)return;const ok=await copyRich(inlineHtml(html),htmlToText(html));show(ok?\"In-text citation copied\":\"Copying didn't work. Try again.\");if(ok)afterCopy(state===\"ready\"?\"in_text_quote\":\"in_text\");};/** A saved figure's caption in the current style (images and figures from books or articles). */const captionFor=saved=>{const cfg=saved.form?sourceTypeById(saved.form.type):saved.csl.type===\"graphic\"?sourceTypeForCsl(saved.csl):undefined;if(!cfg)return null;const vals=saved.form?.values??cfg.fromCsl(saved.csl);const pub=vals.where===\"published\"&&(cfg.id===\"book\"||cfg.id===\"article\");if((!cfg.figure||cfg.figureIf&&!cfg.figureIf(vals))&&!pub)return null;return buildCaption({family,csl:saved.csl,values:vals,typeId:cfg.id,published:pub});};const copyCaption=async c=>{const html=c.lines.map(l=>`<p style=\"margin:0\">${l}</p>`).join(\"\");const ok=await copyRich(html,c.lines.map(l=>htmlToText(l)).join(\"\\n\"));show(ok?c.imageAfter!==undefined?\"Copied. Put your image between the title and the note.\":\"Caption copied\":\"Copying didn't work. Select the text and copy it instead.\");if(ok)track(TOOL,\"caption_copied\",{style:styleId,type:config.id,where:where??\"\"});};const copyPreview=async(what,html)=>{const ok=await copyRich(inlineHtml(html),htmlToText(html));show(ok?what===\"reference\"?\"Citation copied\":\"In-text citation copied\":\"Copying didn't work. Select the text and copy it instead.\");if(ok)afterCopy(`preview_${what}`);};/* ---------------------------- keyboard ---------------------------- */const onInputKey=event=>{if(event.key===\"ArrowDown\"&&results.length){event.preventDefault();setOpen(true);setActive(a=>Math.min(results.length-1,a+1));}else if(event.key===\"ArrowUp\"&&results.length){event.preventDefault();setActive(a=>Math.max(0,a-1));}else if(event.key===\"Enter\"){event.preventDefault();onCite();}else if(event.key===\"Escape\"){if(open)setOpen(false);else setQuery(\"\");}};useEffect(()=>{if(!open)return;const el=document.getElementById(`${ids.results}-o${active}`);el?.scrollIntoView({block:\"nearest\"});},[active,open]);/* ------------------------------ render ----------------------------- */const showResults=open&&(searching||results.length>0||Boolean(notice))&&query.trim().length>0;const detectLabel=DETECTED_LABEL[detected.kind];const orderedItems=useMemo(()=>{const byId=new Map(items.map(i=>[i.id,i]));if(formatted&&formatted.entries.length===items.length&&formatted.entries.every(e=>byId.has(e.id))){return formatted.entries.map(e=>({id:e.id,html:e.html,saved:byId.get(e.id)}));}return items.map(i=>({id:i.id,html:entryById.get(i.id)?.html,saved:i}));},[items,formatted,entryById]);const statusText=searching?\"Searching\":showResults&&results.length?`${results.length} result${results.length===1?\"\":\"s\"}. Use the arrow keys to choose, Enter to add.`:\"\";/* --------------------------- annotated ---------------------------- */const annotatedPrefs={length:\"100-150\",...store.annotated};const setAnnotatedPrefs=patch=>update(prev=>({...prev,annotated:{length:\"100-150\",...prev.annotated,...patch}}));const[settingsOpen,setSettingsOpen]=useState(false);const[docOpen,setDocOpen]=useState(false);const annotatedLayout=annotatedRules(styleFamily(styleId));const annotatedTitle=annotatedPrefs.title&&annotatedLayout.titles.includes(annotatedPrefs.title)?annotatedPrefs.title:annotatedLayout.titles[0];const entryOrder=annotatedLayout.reorder?annotatedPrefs.order??\"alpha\":\"alpha\";/** The document's order: the style's, or (MLA) by date or under subject headings. */const arrangement=useMemo(()=>{const meta=new Map(items.map(i=>[i.id,{year:Number(i.csl.issued?.[\"date-parts\"]?.[0]?.[0])||undefined,subject:i.subject,addedAt:i.addedAt}]));return arrangeEntries(formatted?.entries??[],entryOrder,meta);},[formatted,items,entryOrder]);const setSubject=(id,subject)=>update(prev=>updateItem(prev,id,i=>({...i,subject:subject||undefined})));/** Typing an annotation saves it into the citation (CSL-JSON annote), in whichever list holds it, so a\n     *  draft that finishes after the student switches lists still lands on its own source. */const setAnnotation=(id,text)=>{update(prev=>updateItem(prev,id,i=>{const csl={...i.csl};if(text.trim())csl.annote=text;else delete csl.annote;return{...i,csl};}));};const annotatedEntries=()=>arrangement.entries.map(e=>({id:e.id,html:e.html,text:e.text,annote:annoteOf(items.find(i=>i.id===e.id))}));const copyAnnotated=async()=>{if(!formatted)return;const settings={title:annotatedTitle,groups:arrangement.groups};const hang=formatted.hangingIndent||formatted.secondFieldAlign;const ok=await copyRich(documentHtml(annotatedEntries(),annotatedLayout,settings,hang),documentText(annotatedEntries(),annotatedLayout,settings));show(ok?`Copied ${formatted.entries.length} source${formatted.entries.length===1?\"\":\"s\"} with annotations`:\"Copying didn't work. Select the text and copy it instead.\");if(ok)afterCopy(\"annotated_all\");};const exportDocx=()=>{if(!formatted)return;const settings={title:annotatedTitle,surname:annotatedPrefs.surname,groups:arrangement.groups};const hang=formatted.hangingIndent||formatted.secondFieldAlign;const blob=buildDocx(documentParagraphs(annotatedEntries(),annotatedLayout,settings,hang),documentDocxOptions(annotatedLayout,settings));downloadBlob(blob,`${annotatedTitle}.docx`);show(\"Word document downloaded\");track(TOOL,\"docx_export\",{style:styleId,count:formatted.entries.length,annotated:annotatedEntries().filter(e=>e.annote).length});if(!store.nudgeDismissed)setShowNudge(true);};/* ---------------------------- drafting ---------------------------- */const[limitNote,setLimitNote]=useState(null);// Only the annotated bibliography uses AI, so only its page asks whether AI is paused today.\nconst{until:aiBack,pause:pauseAi}=useAiPause(annotated?api:null,\"generate\");const ai=useAnnotationAI({api,family:styleFamily(styleId),prefs:annotatedPrefs,onText:setAnnotation,paused:aiBack!==null,onPaused:pauseAi,onLimit:(message,inDraftAll)=>{setLimitNote(message);// Draft all's own end line says how far it got and when drafts come back.\nif(!inDraftAll)show(message);if(!store.nudgeDismissed)setShowNudge(true);},countDrafts:annotated&&items.length>0,// Pasted text and PDFs stay with their sources in this browser, on the annotated page only.\nkeptIds:annotated&&loaded?store.lists.flatMap(l=>l.items.map(i=>i.id)):null,onNotKept:()=>show(\"This browser couldn’t keep your pasted text and PDFs. They work until you leave this page.\",undefined,8e3)});const citationOf=id=>formatted?.entries.find(e=>e.id===id)?.text??plainText(String(items.find(i=>i.id===id)?.csl.title??\"\"));const draftOne=(id,mode)=>{const item=items.find(i=>i.id===id);if(!item)return;if(mode.kind===\"refine\")track(TOOL,\"refine_chip\",{refine:mode.refine});void ai.draft({id,csl:item.csl,citation:citationOf(id)},mode);};const draftAll=async()=>{// In the cards' order, so \"the first 8\" are the first 8 on screen.\nconst byId=new Map(items.map(i=>[i.id,i]));const shown=arrangement.entries.map(e=>byId.get(e.id)).filter(i=>Boolean(i));const todo=[...shown,...items.filter(i=>!shown.includes(i))].filter(i=>!annoteOf(i));if(!todo.length)return;const run=await ai.draftAll(todo.map(i=>({id:i.id,csl:i.csl,citation:citationOf(i.id)})));// Long enough to read when some are left to write.\nshow(draftAllEndLine({total:todo.length,...run,backAt:backAtLabel(nextUtcMidnight())}),undefined,run.drafted<todo.length?9e3:undefined);};/** A PDF (or Word file) read in the browser; its text is used for drafting and stays in this browser. */const readSourceFile=async file=>{try{const got=await extractFileText(file);const text=removeReferenceList(got.text).text;return text.trim()?{name:file.name,text}:null;}catch{return null;}};const pdfForCard=async(id,file)=>{if(!file){ai.setPdf(id,null);return;}const got=await readSourceFile(file);if(got){ai.setPdf(id,got);track(TOOL,\"pdf_attached\",{where:\"card\"});}else show(\"We couldn't read text from that file. Try another copy, or paste the text instead.\");};const pdfInputRef=useRef(null);// Where the picker was opened: the upload link under the search, or the empty list's \"Add your PDFs\".\nconst pdfVia=useRef(\"link\");const pickPdfs=via=>{pdfVia.current=via;pdfInputRef.current?.click();};// What adding is doing, shown where the student picked or dropped the files.\nconst[pdfBusy,setPdfBusy]=useState(null);/** Several PDFs at once, picked or dropped on the list: each is read, cited (from its DOI, or its title),\n     *  and kept with its source. Files that aren't PDFs or Word files are left out and named. */const addPdfs=async(picked,via)=>{if(pdfBusy){show(\"Still adding your last PDFs. Add these once they’re in.\");return;}const target=list.id;const files=picked.filter(isSourceFile);const skipped=picked.filter(f=>!isSourceFile(f)).map(f=>f.name);let added=0;const unread=[];const titleOnly=[];for(let i=0;i<files.length;i++){setPdfBusy({text:`Reading ${i+1} of ${files.length}: ${files[i].name}`,here:via!==\"link\"});const got=await readSourceFile(files[i]);if(!got){unread.push(files[i].name);continue;}const head=got.text.slice(0,2e4);const doi=findDoi(head);const firstLine=head.split(\"\\n\").map(l=>l.trim()).find(l=>l.split(\" \").length>=4&&l.length<250)??files[i].name.replace(/\\.[a-z]+$/i,\"\");let found;try{const res=await fetch(`${api}/resolve?q=${encodeURIComponent(doi??firstLine)}`);const data=await res.json();const top=data.results?.[0];if(top&&(doi||top.confidence===\"exact\"||top.confidence===\"likely\"))found=top;}catch{/* cited by hand below */}const csl=found?{...found.csl}:{type:\"article-journal\",title:firstLine};const item={id:uid(),csl,addedAt:Date.now()};update(prev=>addToList(prev,target,[item]));ai.setPdf(item.id,got);setLastAdded(item.id);added+=1;if(!found)titleOnly.push(files[i].name);}setPdfBusy(null);track(TOOL,\"pdfs_added\",{count:files.length,added,failed:unread.length+titleOnly.length,skipped:skipped.length,via});const clean=!unread.length&&!titleOnly.length&&!skipped.length;// A reference list dropped here goes in through Import a list, one press away.\nconst importIt=skipped.some(isListFile)?{label:\"Import a list\",run:()=>importRef.current?.click()}:undefined;show(pdfsAddedLine({added,titleOnly,unread,skipped}),importIt,clean?undefined:8e3);};/* ------------------------- export and import ------------------------- *//** The list in the document's order, annotations in CSL-JSON annote, ready for a reference manager. */const exportAs=format=>{const order=annotated?arrangement.entries.map(e=>e.id):formatted?.entries.map(e=>e.id)??[];const byId=new Map(items.map(i=>[i.id,i]));const inOrder=[...order.map(id=>byId.get(id)).filter(i=>Boolean(i)),...items.filter(i=>!order.includes(i.id))];const csl=inOrder.map(i=>({...i.csl,id:i.id}));const f=CITE_FORMATS.find(x=>x.value===format)??CITE_FORMATS[0];const name=annotated?annotatedTitle:list.name||\"Citations\";downloadBlob(new Blob([toFormat(csl,format)],{type:`${f.mime};charset=utf-8`}),`${name}.${f.ext}`);const notes=inOrder.filter(i=>annoteOf(i)).length;show(`Exported ${csl.length} source${csl.length===1?\"\":\"s\"}${notes?`, ${notes} with annotations`:\"\"}`);track(TOOL,\"export\",{format,count:csl.length,annotated:notes});};/** References from Zotero, Mendeley, EndNote or any .bib, .ris or CSL-JSON file, annotations kept. */const importText=(text,fileName=\"\",via=\"file\")=>{const{format,items:got}=fromFormat(text,fileName);if(!got.length){show(format?\"We couldn't find any references in that file.\":\"That isn't a BibTeX, RIS or CSL-JSON file. Export one from your reference manager and try again.\");track(TOOL,\"import_failed\",{format:format??\"unknown\",via});return false;}const now=Date.now();const added=got.map((csl,i)=>{const id=uid();return{id,csl:{...csl,id},addedAt:now+i};});update(prev=>({...prev,lists:prev.lists.map(l=>l.id===prev.activeId?{...l,items:[...l.items,...added]}:l)}));setLastAdded(added[added.length-1].id);const notes=added.filter(i=>annoteOf(i)).length;show(`Imported ${added.length} source${added.length===1?\"\":\"s\"}${notes?`, ${notes} with annotations`:\"\"}. Check each one's details.`);track(TOOL,\"import\",{format:format??\"unknown\",count:added.length,annotated:notes,via});return true;};const importFile=async file=>{if(file.size>5e6){show(\"That file is too large. Export fewer references at a time.\");return;}importText(await file.text(),file.name);};/* -------------------- continue in Writing Studio -------------------- */// Sent only when the student asks. The app is the API's own host, so a preview's page opens that preview's app.\nconst appUrl=useMemo(()=>{try{return new URL(api).origin;}catch{return\"https://app.writingstudio.com\";}},[api]);const[sending,setSending]=useState(false);const sendingRef=useRef(false);const sendList=async()=>{try{const res=await fetch(`${api}/list`,{method:\"POST\",headers:toolHeaders(),body:JSON.stringify(listForApp(list,styleId))});const body=await res.json().catch(()=>null);if(res.ok&&typeof body?.id===\"string\")return{id:body.id};// A daily limit or a list too long won't change on a second try; the message says what will.\nreturn{message:body?.error||\"We couldn’t send your list to Writing Studio. Please try again.\",retry:!body?.code||body.code===\"busy\"||body.code===\"unavailable\"};}catch{return{message:\"We couldn’t reach Writing Studio. Check your connection and try again.\",retry:true};}};const continueInApp=async from=>{if(sendingRef.current||!items.length||onCanvas)return;const tab=openWaitingTab();sendingRef.current=true;setSending(true);track(TOOL,\"continue\",{from,style:styleId,count:items.length});const sent=await sendList();sendingRef.current=false;setSending(false);if(!(\"id\"in sent)){tab?.close();track(TOOL,\"continue_failed\",{retry:sent.retry});// Try again sends the list as it is then.\nshow(sent.message,sent.retry?{label:\"Try again\",run:()=>void continueLatest.current(from)}:undefined);return;}const url=`${appUrl}/import/citations/${encodeURIComponent(sent.id)}`;if(!tab){// No new tab allowed: this one goes, and the list is still here on the way back.\nwindow.location.assign(url);}else if(tab.closed){show(\"Your list is ready in Writing Studio.\",{label:\"Open\",run:()=>void window.open(url,\"_blank\",\"noopener\")});}else{tab.location.href=url;show(annotated?\"Writing Studio opened in a new tab with your sources. Your annotations stay here.\":\"Writing Studio opened in a new tab. Your list stays here too.\",undefined,6e3);}};const continueLatest=useRef(continueInApp);continueLatest.current=continueInApp;/** Several DOIs, ISBNs or links pasted at once are each looked up and added, in order. */const importRef=useRef(null);const[bulkAdd,setBulkAdd]=useState(null);/** One pasted DOI, ISBN or link looked up: the source to add, or why it couldn't be. */const lookUpOne=async value=>{try{const res=await fetch(`${api}/resolve?q=${encodeURIComponent(value)}`);if(res.status===429)return\"fast\";const data=await res.json().catch(()=>({}));const csl=data.results?.[0]?.csl??data.draft;if(!csl||!(csl.title||csl.DOI))return res.ok?\"none\":\"failed\";const copy={...csl};if(ACCESSED_TYPES.has(copy.type)&&!copy.accessed)copy.accessed=todayParts();return{id:uid(),csl:copy,addedAt:Date.now()};}catch{return\"failed\";}};const addIdentifiers=async values=>{const target=list.id;let added=0;let missed=0;for(let i=0;i<values.length;i++){setBulkAdd(`Adding ${i+1} of ${values.length}`);const value=values[i];const found=await lookUpOne(value);if(typeof found===\"string\"){// Kept under the search bar (Needs a look) until the student deals with it.\nmissed+=1;update(prev=>noteMisses(prev,target,[{value,why:found}]));continue;}// One that needed a look before and is found this time leaves that list.\nupdate(prev=>dropMiss(addToList(prev,target,[found]),target,value));setLastAdded(found.id);added+=1;}setBulkAdd(null);track(TOOL,\"bulk_paste\",{count:values.length,added,missed});show(bulkAddedLine(added,missed));};/* --------------------------- needs a look --------------------------- */const needsLook=list.needsLook??[];const[trying,setTrying]=useState([]);const[allNeeds,setAllNeeds]=useState(false);const needsRef=useRef(null);const needsFocus=useRef(null);/** A row about to leave while focus is in it: focus moves to the row that takes its place (or the search). */const leaveMiss=value=>{const rows=Array.from(needsRef.current?.querySelectorAll(\"[data-miss]\")??[]);const index=rows.findIndex(r=>r.dataset.miss===value);if(index>=0&&rows[index].contains(document.activeElement))needsFocus.current=index;};useEffect(()=>{const index=needsFocus.current;if(index===null)return;needsFocus.current=null;const rows=needsRef.current?.querySelectorAll(\"[data-miss]\");const row=rows?.length?rows[Math.min(index,rows.length-1)]:null;(row?.querySelector(\"button\")??(formFirst?autoRef.current:inputRef.current))?.focus();},[needsLook.length]);const tryMissAgain=async miss=>{const listId=list.id;const key=`${listId}\n${miss.value}`;if(trying.includes(key))return;setTrying(t=>[...t,key]);const found=await lookUpOne(miss.value);setTrying(t=>t.filter(k=>k!==key));if(typeof found===\"string\"){// The reason is updated in place; one dismissed while it was being looked up stays dismissed.\nupdate(prev=>prev.lists.some(l=>l.id===listId&&l.needsLook?.some(m=>m.value===miss.value))?noteMisses(prev,listId,[{value:miss.value,why:found}]):prev);show(RETRY_FAILED[found]);track(TOOL,\"needs_look_retry\",{added:false,why:found});return;}leaveMiss(miss.value);update(prev=>dropMiss(addToList(prev,listId,[found]),listId,miss.value));setLastAdded(found.id);show(\"Added to your list\");track(TOOL,\"needs_look_retry\",{added:true});};/** Opens the form on the source type the DOI, ISBN or link points to (the page's own type on a form page),\n     *  with it filled in. Adding the source takes the miss off the list (submitForm). */const enterByHand=miss=>{const seed=missSeed(miss.value);const cfg=formFirst?config:sourceTypeForCsl(seed);setEditing(null);setIssues({});setPageTitle(null);setUnsure([]);if(formFirst){autofilled.current=false;setAutoNote(null);setAutoSuggest(null);setValues(v=>({...mergeFilled(initialValues(cfg),cfg.fromCsl(seed)),where:v.where}));}else{setTypeId(cfg.id);setValues(mergeFilled(initialValues(cfg),cfg.fromCsl(seed)));setFormOpen(true);setOpen(false);}setByHand({listId:list.id,value:miss.value});track(TOOL,\"manual_open\",{from:\"needs_look\"});scrollToForm();};const dismissMiss=miss=>{const listId=list.id;leaveMiss(miss.value);update(prev=>dropMiss(prev,listId,miss.value));if(byHand?.value===miss.value)setByHand(null);track(TOOL,\"needs_look_dismissed\",{why:miss.why});show(\"Removed from Needs a look\",{label:\"Undo\",run:()=>update(prev=>noteMisses(prev,listId,[miss]))});};const onSearchPaste=e=>{const text=e.clipboardData.getData(\"text\");if(!/\\n/.test(text.trim())&&!/@\\s*\\w+\\s*\\{/.test(text))return;// A whole BibTeX or RIS export pasted in.\nif(/^\\s*(@\\s*\\w+\\s*\\{|TY {2}- )/m.test(text)&&fromFormat(text).items.length){e.preventDefault();importText(text,\"\",\"paste\");return;}const values=text.split(/[\\r\\n]+/).map(l=>l.trim()).filter(Boolean);const ids=values.filter(v=>detectInput(v).kind!==\"query\"&&detectInput(v).kind!==\"reference\");if(ids.length>=2&&ids.length===values.length){e.preventDefault();setQuery(\"\");setOpen(false);void addIdentifiers(ids.slice(0,50));}};// Its button takes this list's sources into a Writing Studio library, not just to the sign-up page.\nconst nudge=showNudge&&!store.nudgeDismissed&&items.length?/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-nudge\",role:\"note\",children:[/*#__PURE__*/_jsx(Icons.Book,{size:18,style:{color:T.blue}}),/*#__PURE__*/_jsx(\"p\",{children:ACCOUNT_GIVES.sources}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsc-nudge-go\",onClick:()=>void continueInApp(\"nudge\"),\"aria-busy\":sending||undefined,children:sending?\"Opening…\":\"Continue in Writing Studio\"}),/*#__PURE__*/_jsx(IconButton,{label:\"Dismiss\",onClick:()=>{setShowNudge(false);update(prev=>({...prev,nudgeDismissed:true}));},children:/*#__PURE__*/_jsx(Icons.X,{size:16})})]}):null;// Pasted DOIs, ISBNs or links that couldn't be added, on the list on show. Five at a time, so it stays short.\nconst shownNeeds=allNeeds?needsLook:needsLook.slice(0,5);const needsPanel=needsLook.length?/*#__PURE__*/_jsxs(\"section\",{className:\"wsc-needs\",\"aria-labelledby\":ids.needs,children:[/*#__PURE__*/_jsxs(\"p\",{className:\"wsc-needs-head\",children:[/*#__PURE__*/_jsx(\"span\",{id:ids.needs,className:\"wsc-needs-title\",children:\"Needs a look\"}),needsLook.length===1?\"We couldn’t add this one.\":`We couldn’t add these ${needsLook.length}.`,\" Try again, or enter the details by hand.\"]}),/*#__PURE__*/_jsx(\"ul\",{ref:needsRef,className:\"wsc-needs-list\",children:shownNeeds.map((m,i)=>{const busy=trying.includes(`${list.id}\n${m.value}`);const what=`${ids.needs}-${i}`;return /*#__PURE__*/_jsxs(\"li\",{\"data-miss\":m.value,className:\"wsc-needs-row\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-needs-text\",children:[/*#__PURE__*/_jsx(\"span\",{id:what,className:\"wsc-needs-value\",title:m.value,children:m.value}),/*#__PURE__*/_jsx(\"span\",{className:\"wsc-needs-why\",children:busy?\"Looking it up again…\":byHand?.listId===list.id&&byHand.value===m.value?formFirst?\"Fill in its details in the form below\":\"Fill in its details below\":MISS_WHY[m.why]})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-needs-actions\",children:[/*#__PURE__*/_jsx(Button,{variant:\"ghost\",size:\"sm\",keepFocus:true,loading:busy,\"aria-describedby\":what,onClick:()=>!busy&&void tryMissAgain(m),children:\"Try again\"}),/*#__PURE__*/_jsx(Button,{variant:\"ghost\",size:\"sm\",\"aria-describedby\":what,onClick:()=>enterByHand(m),children:\"Enter by hand\"}),/*#__PURE__*/_jsx(IconButton,{label:\"Dismiss\",\"aria-describedby\":what,onClick:()=>dismissMiss(m),children:/*#__PURE__*/_jsx(Icons.X,{size:15})})]})]},m.value);})}),needsLook.length>5?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsc-needs-more\",\"aria-expanded\":allNeeds,onClick:()=>setAllNeeds(a=>!a),children:allNeeds?\"Show fewer\":`Show all ${needsLook.length}`}):null]}):null;return /*#__PURE__*/_jsxs(\"div\",{className:cx(\"wst-root wsc\",formFirst&&\"wsc--form\",annotated&&\"wsc--annotated\"),style:{...style,position:\"relative\"},children:[/*#__PURE__*/_jsx(ToolStyles,{css:CSS+STYLE_PICKER_CSS+SOURCE_FORM_CSS+FILE_MENU_CSS+LIST_MENU_CSS+(annotated?ANNOTATED_CSS:\"\")}),/*#__PURE__*/_jsx(\"input\",{ref:importRef,type:\"file\",accept:IMPORT_ACCEPT,hidden:true,onChange:e=>{const f=e.target.files?.[0];e.target.value=\"\";if(f)void importFile(f);}}),annotated?/*#__PURE__*/_jsx(\"input\",{ref:pdfInputRef,type:\"file\",accept:\"application/pdf,.pdf,.docx\",multiple:true,hidden:true,onChange:e=>{const files=Array.from(e.target.files??[]);e.target.value=\"\";if(files.length)void addPdfs(files,pdfVia.current);}}):null,/*#__PURE__*/_jsxs(\"div\",{ref:barRef,className:cx(\"wsc-bar\",!showStylePicker&&\"wsc-bar--nostyle\"),children:[showStylePicker?/*#__PURE__*/_jsx(StylePicker,{api:api,styleId:styleId,label:styleLabel,recent:store.recentStyles,onPick:pickStyle}):null,formFirst?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{ref:lookRef,className:\"wsc-field\",onClick:()=>autoRef.current?.focus(),children:[/*#__PURE__*/_jsx(\"label\",{className:\"wsc-label\",htmlFor:ids.input,children:config.search===\"book\"?\"Find your book\":config.search===\"article\"?\"Find your article\":config.search===\"movie\"?\"Find your movie\":config.search===\"artwork\"?\"Find the artwork\":config.search===\"tv\"?\"Find the TV show\":config.search===\"podcast\"?\"Find the podcast\":config.search===\"thesis\"?\"Find the thesis\":config.search===\"chapter\"?\"Find the chapter or book\":config.search===\"dictionary\"?\"Look up a word\":config.search===\"conference\"?\"Find the paper\":config.search===\"software\"?\"Find the app or software\":config.search===\"dataset\"?\"Find the dataset\":config.search===\"patent\"?\"Find the patent\":\"Autofill from a link\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-input-row\",children:[/*#__PURE__*/_jsx(\"input\",{ref:autoRef,id:ids.input,className:\"wsc-input\",value:autoUrl,onChange:e=>setAutoUrl(e.target.value),onFocus:()=>lookResults.length&&setLookOpen(true),onPaste:onAutoPaste,onKeyDown:e=>{const listed=lookOpen&&lookResults.length>0;if(listed&&(e.key===\"ArrowDown\"||e.key===\"ArrowUp\")){e.preventDefault();setLookActive(a=>(a+(e.key===\"ArrowDown\"?1:lookResults.length-1))%lookResults.length);return;}if(e.key===\"Enter\"){e.preventDefault();// The highlighted match, once the list is open and the text hasn't changed since.\nif(listed&&lookedFor.current===autoUrl.trim())pickLook(lookResults[lookActive]??lookResults[0]);else autofill();}if(e.key===\"Escape\")setLookOpen(false);},placeholder:narrow?config.search?\"Title, link or ID\":\"Paste the page link\":config.autofillLabel??\"Paste the link to the page\",type:config.search?\"text\":\"url\",inputMode:config.search?\"search\":\"url\",autoComplete:\"off\",autoCorrect:\"off\",spellCheck:false,enterKeyHint:\"go\"}),autoUrl?/*#__PURE__*/_jsx(IconButton,{label:\"Clear link\",className:\"wsc-clear\",onClick:e=>{e.stopPropagation();setAutoUrl(\"\");setAutoNote(null);setAutoSuggest(null);setLookResults([]);setLookOpen(false);setTvPick(null);lookedFor.current=\"\";lookSeq.current++;autoRef.current?.focus();},children:/*#__PURE__*/_jsx(Icons.X,{size:16})}):null]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"wsc-go\",children:/*#__PURE__*/_jsx(Button,{variant:\"primary\",onClick:()=>autofill(),loading:autoBusy,children:config.search?\"Find\":\"Autofill\"})}),lookOpen&&lookResults.length?/*#__PURE__*/_jsxs(\"ul\",{ref:lookListRef,role:\"listbox\",\"aria-label\":\"Matches\",className:\"wst-pop wsc-results\",children:[lookNote?/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-results-note\",children:lookNote}):null,lookResults.map((r,i)=>/*#__PURE__*/_jsxs(\"li\",{role:\"option\",\"aria-selected\":i===lookActive,className:\"wsc-opt\",tabIndex:-1,onMouseEnter:()=>setLookActive(i),onMouseDown:e=>e.preventDefault(),onClick:()=>pickLook(r),onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();pickLook(r);}},children:[/*#__PURE__*/_jsx(ResultThumb,{src:r.thumb,type:r.csl.type}),/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-opt-body\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsc-opt-title\",children:plainText(r.csl.title)||\"Untitled\"}),/*#__PURE__*/_jsx(\"span\",{className:\"wsc-opt-meta\",style:{display:\"block\"},children:[editionLabel(r.csl.edition),metaLine(r.csl)].filter(Boolean).join(\" \\xb7 \")})]})]},`${r.csl.DOI??r.csl.ISBN??r.csl.URL??r.csl.title}-${i}`))]}):null]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-field\",onClick:()=>inputRef.current?.focus(),children:[/*#__PURE__*/_jsx(\"label\",{className:\"wsc-label\",htmlFor:ids.input,children:narrow?\"Cite a source\":\"Cite a webpage, book, article, and more\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-input-row\",children:[/*#__PURE__*/_jsx(\"input\",{ref:inputRef,id:ids.input,className:\"wsc-input\",value:query,onChange:e=>{setQuery(e.target.value);setOpen(true);},onFocus:()=>results.length&&setOpen(true),onKeyDown:onInputKey,onPaste:onSearchPaste,placeholder:narrow?\"Title, link, DOI or ISBN\":\"Search by title, URL, DOI, ISBN or keywords\",role:\"combobox\",\"aria-autocomplete\":\"list\",\"aria-expanded\":showResults,\"aria-controls\":ids.results,\"aria-activedescendant\":showResults&&results[active]?`${ids.results}-o${active}`:undefined,\"aria-describedby\":ids.status,autoComplete:\"off\",autoCorrect:\"off\",spellCheck:false,enterKeyHint:\"search\"}),detectLabel&&query.trim()?/*#__PURE__*/_jsx(Badge,{tone:\"blue\",children:detectLabel}):null,query?/*#__PURE__*/_jsx(IconButton,{label:\"Clear search\",className:\"wsc-clear\",onClick:e=>{e.stopPropagation();setQuery(\"\");setResults([]);setNotice(null);inputRef.current?.focus();},children:/*#__PURE__*/_jsx(Icons.X,{size:16})}):null]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"wsc-go\",children:/*#__PURE__*/_jsx(Button,{variant:\"primary\",onClick:onCite,loading:searching&&pendingAdd.current,children:\"Cite\"})}),showResults?/*#__PURE__*/_jsxs(\"ul\",{ref:resultsRef,id:ids.results,role:\"listbox\",\"aria-label\":\"Sources found\",className:\"wst-pop wsc-results\",children:[searching&&!results.length?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-skel\"}),/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-skel\"}),/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-skel\"})]}):null,results.map((r,i)=>/*#__PURE__*/_jsxs(\"li\",{id:`${ids.results}-o${i}`,role:\"option\",\"aria-selected\":i===active,className:\"wsc-opt\",onMouseEnter:()=>setActive(i),onMouseDown:e=>e.preventDefault(),onClick:()=>addFound(r),children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsc-opt-icon\",children:/*#__PURE__*/_jsx(TypeIcon,{type:r.csl.type})}),/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-opt-body\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsc-opt-title\",children:plainText(r.csl.title)||\"Untitled\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-opt-meta\",style:{display:\"block\"},children:[/*#__PURE__*/_jsx(Badge,{style:{marginRight:8,height:20},children:TYPE_LABEL[r.csl.type]??\"Source\"}),metaLine(r.csl)]})]}),/*#__PURE__*/_jsx(\"span\",{className:\"wsc-opt-add\",\"aria-hidden\":true,children:/*#__PURE__*/_jsx(Icons.Plus,{size:18})})]},`${r.csl.DOI??r.csl.URL??r.csl.title}-${i}`)),notice&&!searching?/*#__PURE__*/_jsx(\"li\",{role:\"presentation\",className:\"wsc-results-note\",children:notice}):null]}):null]})]}),formFirst&&tvPick&&config.id===\"tv\"&&values.tvScope!==\"series\"?/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-tvpick\",children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:`${ids.input}-season`,children:\"Pick the episode\"}),/*#__PURE__*/_jsx(\"select\",{id:`${ids.input}-season`,\"aria-label\":\"Season\",value:tvPick.season,onChange:e=>setTvPick({...tvPick,season:Number(e.target.value)}),children:tvPick.seasons.map(s=>/*#__PURE__*/_jsxs(\"option\",{value:s.number,children:[\"Season \",s.number]},s.number))}),/*#__PURE__*/_jsxs(\"select\",{className:\"wsc-tvpick-ep\",\"aria-label\":\"Episode\",value:\"\",onChange:e=>void pickEpisode(e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",children:\"Episode\"}),(tvPick.seasons.find(s=>s.number===tvPick.season)?.episodes??[]).map(ep=>/*#__PURE__*/_jsxs(\"option\",{value:ep.id,children:[ep.number?`${ep.number}. `:\"\",ep.name]},ep.id))]})]}):null,formFirst?/*#__PURE__*/_jsxs(\"p\",{className:\"wsc-or\",\"aria-live\":\"polite\",children:[bulkAdd??autoNote??\"or fill in the details below\",preprintOf?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsc-or-switch\",onClick:()=>{track(TOOL,\"preprint_switched\",{});const p=preprintOf;setPreprintOf(null);fillFrom(p,\"published\",undefined,\"We switched to the published version. Check each field before you cite.\");},children:\"Use the published version\"}):null,autoSuggest?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsc-or-switch\",onClick:()=>{track(TOOL,\"suggestion_taken\",{to:autoSuggest});switchType(autoSuggest);setAutoSuggest(null);},children:autoSuggest===\"artwork\"?\"Use the Artwork form\":\"Use the Social media post form\"}):null]}):!formOpen||editing?/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-under\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-hint\",children:[\"Can't find it?\",\" \",/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>openManual(draft&&notice?\"lookup_failed\":\"link\"),children:\"Enter details manually\"}),annotated?/*#__PURE__*/_jsxs(_Fragment,{children:[\" \",\"or\",\" \",/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>pickPdfs(\"link\"),disabled:Boolean(pdfBusy),children:\"upload PDFs\"})]}):null]}),pdfBusy&&!pdfBusy.here||bulkAdd?/*#__PURE__*/_jsx(\"span\",{className:\"wsc-hint\",\"aria-live\":\"polite\",children:pdfBusy&&!pdfBusy.here?pdfBusy.text:bulkAdd}):null]}):null,needsPanel,formOpen?/*#__PURE__*/_jsxs(\"div\",{ref:composeRef,className:cx(\"wsc-compose\",!formFirst&&\"wsc-compose--panel\"),children:[/*#__PURE__*/_jsxs(\"form\",{className:\"wsf-card\",noValidate:true,\"aria-label\":editing?\"Edit citation\":`${config.label} details`,onSubmit:e=>{e.preventDefault();submitForm();},children:[!formFirst||editing?/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-head\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"wsf-title\",children:editing?\"Edit citation\":\"Enter details manually\"}),/*#__PURE__*/_jsx(IconButton,{label:editing?\"Cancel editing\":\"Close\",onClick:closeForm,children:/*#__PURE__*/_jsx(Icons.X,{size:17})})]}):null,/*#__PURE__*/_jsx(\"div\",{className:\"wsf-typebar\",children:showWhere?/*#__PURE__*/_jsx(WhereChoice,{value:where,choices:WHERE_CHOICES,onChange:pickWhere}):/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-field\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsf-label-row\",children:/*#__PURE__*/_jsx(\"label\",{className:\"wsf-label\",htmlFor:ids.type,children:\"Source type\"})}),/*#__PURE__*/_jsx(FormSelect,{id:ids.type,value:config.id,options:[...SOURCE_TYPES,...config.id===\"other\"||config.hidden?[config]:[]].map(t=>({value:t.id,label:t.id===\"other\"?TYPE_LABEL[editingItem?.csl.type??\"\"]??t.label:t.label})),onChange:id=>{autoSwitched.current=false;switchType(id);}})]})}),/*#__PURE__*/_jsx(SourceFields,{config:config,values:values,onChange:setField,issues:fieldIssues,extra:published?PUBLISHED_FIGURE_FIELDS:[],figure:figureFields,unsure:unsure}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsf-foot\",children:[editing?/*#__PURE__*/_jsx(Button,{variant:\"ghost\",onClick:closeForm,children:\"Cancel\"}):null,/*#__PURE__*/_jsx(Button,{variant:\"primary\",type:\"submit\",className:\"wsf-go\",children:editing?\"Save changes\":noEntry?\"Copy the wording\":config.citeLabel})]})]}),/*#__PURE__*/_jsx(\"aside\",{className:\"wsc-preview-col\",\"aria-label\":\"Citation preview\",children:/*#__PURE__*/_jsx(PreviewCard,{data:preview,hints:hints,empty:previewEmpty,pending:previewPending,error:previewError,styleLabel:styleLabel,onCopy:copyPreview,onFix:h=>h.fix&&setField(h.fix.key,h.fix.value),expanded:previewOpen,onToggle:()=>setPreviewOpen(o=>!o),caption:caption,captionNote:captionNote,examples:editing?[]:config.examples.map(ex=>ex.label),onExample:label=>{const ex=config.examples.find(e=>e.label===label);if(!ex)return;setValues({...initialValues(config),...ex.values,where:values.where});setIssues({});setPageTitle(null);track(TOOL,\"example_used\",{type:config.id,example:ex.label});},captionOnly:config.captionOnly,onCopyCaption:copyCaption,noEntry:noEntry,onCopyText:t=>void copyRich(t.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\"),t).then(ok=>show(ok?\"Copied\":\"Copying didn't work. Select the text and copy it instead.\"))})})]}):null,/*#__PURE__*/_jsx(\"div\",{id:ids.status,className:\"wst-sr\",\"aria-live\":\"polite\",children:statusText}),annotated?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(AnnotationSettings,{prefs:annotatedPrefs,onPrefs:setAnnotatedPrefs,open:settingsOpen,onOpen:setSettingsOpen,left:items.filter(i=>hasRelevancePlaceholder(annoteOf(i))).length,aiPaused:aiBack!==null}),/*#__PURE__*/_jsx(\"div\",{className:\"wsc-list-name wsc-list-name--annotated\",children:listMenu}),/*#__PURE__*/_jsx(AnnotatedWorkspace,{items:items,formatted:formatted,formatting:formatting,rules:annotatedLayout,styleLabel:styleLabel,prefs:annotatedPrefs,onPrefs:setAnnotatedPrefs,onAnnotate:setAnnotation,onEdit:id=>{const saved=items.find(i=>i.id===id);if(saved)startEdit(saved);},onRemove:removeItem,onCopyAll:copyAnnotated,onDocx:exportDocx,onExample:()=>{setQuery(\"10.1038/nature14539\");setOpen(true);inputRef.current?.focus();},lastAdded:lastAdded,docOpen:docOpen,onDocOpen:setDocOpen,runtime:ai.runtime,aiPaused:aiBack!==null?pausedLine(aiBack,ANNOTATE_STILL):null,draftsLeft:ai.left,citationOf:citationOf,onDraft:draftOne,onDraftAll:()=>void draftAll(),bulk:ai.bulk,onStop:ai.stop,onPasted:ai.setPasted,onPdf:(id,f)=>void pdfForCard(id,f),onLookup:item=>void ai.ensureLookup(item),onCheck:id=>{const item=items.find(i=>i.id===id);if(item&&annoteOf(item))void ai.check({id,csl:item.csl,citation:citationOf(id)},annoteOf(item));},onCheckClose:id=>ai.patch(id,{check:undefined}),onUseImproved:(id,text)=>{setAnnotation(id,text);ai.patch(id,{check:undefined});show(\"Annotation updated. Read it through and make sure it still sounds like you.\");track(TOOL,\"improved_version_used\",{});},signupUrl:signupUrl,order:entryOrder,arrangement:arrangement,subjects:Object.fromEntries(items.filter(i=>i.subject).map(i=>[i.id,i.subject])),onSubject:setSubject,fileMenu:/*#__PURE__*/_jsx(FileMenu,{canExport:items.length>0,onExport:exportAs,onImport:f=>void importFile(f),onContinue:()=>void continueInApp(\"menu\")}),onImportClick:()=>importRef.current?.click(),onAddPdfs:()=>pickPdfs(\"empty\"),onDropFiles:files=>void addPdfs(files,\"drop\"),adding:pdfBusy}),limitNote?/*#__PURE__*/_jsx(\"p\",{className:\"wsc-status\",role:\"status\",children:limitNote}):null,/*#__PURE__*/_jsx(\"div\",{className:\"wsc-status\",\"aria-live\":\"polite\",children:formatError?/*#__PURE__*/_jsx(\"span\",{className:\"wsc-error\",children:formatError}):formatting&&!formatted?`Loading ${styleLabel}...`:\"\"}),nudge]}):/*#__PURE__*/_jsxs(\"section\",{className:\"wsc-list\",\"aria-label\":\"Your reference list\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsc-list-name\",children:listMenu}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-list-head\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-list-title\",children:[/*#__PURE__*/_jsx(\"span\",{children:formatted?.heading??headingGuess(styleId)}),items.length?/*#__PURE__*/_jsx(\"span\",{className:\"wsc-count\",children:items.length}):null]}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-list-tools\",children:[items.length?/*#__PURE__*/_jsx(Button,{variant:\"secondary\",size:\"sm\",icon:/*#__PURE__*/_jsx(Icons.Copy,{size:15}),onClick:copyAll,disabled:!formatted||formatting,children:\"Copy all\"}):null,/*#__PURE__*/_jsx(FileMenu,{canExport:items.length>0,onExport:exportAs,onImport:f=>void importFile(f),onContinue:()=>void continueInApp(\"menu\")})]})]}),items.length===0?/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-empty\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"wsc-empty-icon\",children:/*#__PURE__*/_jsx(Icons.Quote,{size:20})}),/*#__PURE__*/_jsx(\"strong\",{children:\"Your citations will appear here\"}),formFirst?/*#__PURE__*/_jsx(\"span\",{children:\"Fill in the form above and your citation appears here, in the same list as the main Citation Generator.\"}):/*#__PURE__*/_jsxs(\"span\",{children:[\"Search above to add your first source. Try\",\" \",/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsc-example\",onClick:()=>{setQuery(\"10.1038/nature14539\");setOpen(true);inputRef.current?.focus();},children:\"10.1038/nature14539\"}),\". Or\",\" \",/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsc-example\",onClick:()=>importRef.current?.click(),children:\"import a list\"}),\" \",\"from Zotero, Mendeley or EndNote.\"]})]}):/*#__PURE__*/_jsx(\"ul\",{className:\"wsc-entries\",children:orderedItems.map(({id,html,saved})=>{const quoted=quotedInText(id);const inText=quoted.inText;const waiting=quoted.state===\"pending\";const box=inText?.parenthetical?quoteBoxes[id]:undefined;const ownPlace=listLocators[id]?.value??\"\";const boxLabel=QUOTE_BOX_LABEL[box?.locator??\"\"]??\"Page\";const missing=missingFor(saved.csl);const savedCaption=captionFor(saved);return /*#__PURE__*/_jsxs(\"li\",{className:cx(\"wsc-entry\",id===lastAdded&&\"wsc-entry--new\",id===editing&&\"wsc-entry--editing\"),children:[/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-entry-main\",children:[html?/*#__PURE__*/_jsx(\"div\",{className:cx(\"wsc-ref\",formatted?.hangingIndent&&\"wsc-ref--hang\",formatting&&\"wsc-ref--pending\"),dangerouslySetInnerHTML:{__html:html}}):/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-ref wsc-ref--pending\",children:[metaLine(saved.csl),metaLine(saved.csl)?\". \":\"\",plainText(saved.csl.title)]}),/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-actions\",children:[/*#__PURE__*/_jsx(IconButton,{label:\"Copy citation\",onClick:()=>copyEntry(id),disabled:!html,children:/*#__PURE__*/_jsx(Icons.Copy,{size:17})}),/*#__PURE__*/_jsx(IconButton,{label:\"Edit citation\",onClick:()=>startEdit(saved),children:/*#__PURE__*/_jsx(Icons.Pencil,{size:17})}),/*#__PURE__*/_jsx(IconButton,{label:\"Remove citation\",onClick:()=>removeItem(id),children:/*#__PURE__*/_jsx(Icons.Trash,{size:17})})]})]}),annoteOf(saved)?/*#__PURE__*/_jsx(\"p\",{className:\"wsc-annotation\",children:annoteOf(saved)}):null,inText||missing.length||savedCaption?/*#__PURE__*/_jsxs(\"div\",{className:\"wsc-intext\",children:[inText&&inText.parenthetical?/*#__PURE__*/_jsxs(\"span\",{className:cx(\"wsc-chip\",waiting&&\"wsc-chip--pending\"),title:formatted?.isNote?\"Footnote\":\"In-text citation\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsc-chip-text\",dangerouslySetInnerHTML:{__html:inlineHtml(inText.parenthetical)}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":formatted?.isNote?\"Copy footnote\":\"Copy in-text citation\",\"aria-disabled\":waiting||undefined,onClick:()=>void copyInText(id,\"parenthetical\"),children:/*#__PURE__*/_jsx(Icons.Copy,{size:14})})]}):null,inText&&inText.narrative&&!formatted?.isNote&&htmlToText(inText.narrative)!==htmlToText(inText.parenthetical)?/*#__PURE__*/_jsxs(\"span\",{className:cx(\"wsc-chip\",waiting&&\"wsc-chip--pending\"),title:\"Narrative citation\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsc-chip-text\",dangerouslySetInnerHTML:{__html:inlineHtml(inText.narrative)}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Copy narrative citation\",\"aria-disabled\":waiting||undefined,onClick:()=>void copyInText(id,\"narrative\"),children:/*#__PURE__*/_jsx(Icons.Copy,{size:14})})]}):null,box?/*#__PURE__*/_jsxs(\"label\",{className:cx(\"wsc-quote\",box.locator===\"section\"&&\"wsc-quote--wide\"),title:`Changes only the ${formatted?.isNote?\"footnote\":\"in-text citation\"} you copy. The saved source keeps its own.`,children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:boxLabel}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:quoteBoxValue(quotePlaces[id],ownPlace),onChange:event=>{const value=event.target.value;setQuotePlaces(prev=>({...prev,[id]:{value,saved:ownPlace}}));},\"aria-label\":`${boxLabel} for this ${formatted?.isNote?\"footnote\":\"in-text citation\"}`,maxLength:60,autoComplete:\"off\",spellCheck:false})]}):null,quoted.state===\"failed\"?/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-warn\",role:\"status\",children:[/*#__PURE__*/_jsx(Icons.Alert,{size:15}),\"Couldn’t add the \",boxLabel.toLowerCase(),\".\",/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"wsc-warn-retry\",onClick:()=>setQuoteTry(n=>n+1),children:\"Try again\"})]}):null,savedCaption?/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-chip wsc-chip--caption\",title:savedCaption.lines.map(l=>htmlToText(l)).join(\" \"),children:[/*#__PURE__*/_jsx(\"span\",{className:\"wsc-chip-text\",dangerouslySetInnerHTML:{__html:savedCaption.lines.join(\" \")}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Copy figure caption\",onClick:()=>copyCaption(savedCaption),children:/*#__PURE__*/_jsx(Icons.Copy,{size:14})})]}):null,missing.length?/*#__PURE__*/_jsxs(\"span\",{className:\"wsc-warn\",children:[/*#__PURE__*/_jsx(Icons.Alert,{size:15}),\"No \",missing.map(m=>MISSING_LABEL[m]).join(\", \"),\" found\"]}):null]}):null]},id);})}),/*#__PURE__*/_jsx(\"div\",{className:\"wsc-status\",\"aria-live\":\"polite\",children:formatError?/*#__PURE__*/_jsx(\"span\",{className:\"wsc-error\",children:formatError}):formatting&&!formatted?`Loading ${styleLabel}...`:\"\"}),nudge]}),/*#__PURE__*/_jsx(ToastViewport,{toasts:toasts,dismiss:dismiss})]});}/** \"nature-digest\" reads as \"Nature Digest\" until the real title has loaded. *//** The list heading before the style file has loaded (and in the server\n *  render), so it doesn't change once formatting finishes. */function headingGuess(styleId){if(/^modern-language-association|^mla/.test(styleId))return\"Works Cited\";if(/^harvard|cite-them-right/.test(styleId))return\"Reference list\";if(/^(chicago-notes|chicago-shortened|turabian-notes|oscola|mhra|bluebook)/.test(styleId))return\"Bibliography\";if(/^(chicago|turabian)/.test(styleId))return\"Bibliography\";return\"References\";}/** Recomputes missing fields locally (the list may have been edited). */function missingFor(csl){const out=[];if(!(csl.author?.length||csl.editor?.length)&&csl.type!==\"entry-encyclopedia\")out.push(\"author\");if(!csl.issued?.[\"date-parts\"]?.[0]?.[0]&&!csl.issued?.literal)out.push(\"issued\");return out;}addPropertyControls(CitationGenerator,{defaultStyle:{type:ControlType.Enum,title:\"Default style\",defaultValue:\"apa\",options:[...PINNED_STYLES.map(s=>s.id),...EXTRA_STYLES.map(s=>s.id),\"custom\"],optionTitles:[...PINNED_STYLES.map(s=>s.label),...EXTRA_STYLES.map(s=>s.label),\"Other (enter CSL id)\"]},customStyleId:{type:ControlType.String,title:\"CSL style id\",defaultValue:\"\",placeholder:\"e.g. nature\",hidden:p=>p.defaultStyle!==\"custom\"},rememberStyle:{type:ControlType.Boolean,title:\"Remember style\",defaultValue:true,description:\"Use the visitor's last chosen style. Turn off on style-specific pages like /citation-generator/apa.\"},showStylePicker:{type:ControlType.Boolean,title:\"Style picker\",defaultValue:true},entryLayout:{type:ControlType.Enum,title:\"Opens on\",defaultValue:\"search\",options:[\"search\",\"form\"],optionTitles:[\"Search bar\",\"Form\"],description:\"Form: the page opens on the form for one source type, like /citation-generator/image.\"},defaultSourceType:{type:ControlType.Enum,title:\"Source type\",defaultValue:\"any\",options:[\"any\",\"article\",\"book\",\"website\",\"image\",\"video\",\"movie\",\"artwork\",\"newspaper\",\"magazine\",\"wiki\",\"social\",\"tv\",\"podcast\",\"chapter\",\"report\",\"thesis\",\"lecture\",\"slides\",\"blog\",\"encyclopedia\",\"dictionary\",\"conference\",\"presentation\",\"software\",\"dataset\",\"patent\",\"press\",\"forum\",\"comment\"],optionTitles:[\"Anything\",\"Journal articles\",\"Books\",\"Websites\",\"Images\",\"Online videos\",\"Movies\",\"Artworks\",\"Newspaper articles\",\"Magazine articles\",\"Wikipedia\",\"Social media posts\",\"TV shows\",\"Podcasts\",\"Book chapters\",\"Reports\",\"Theses\",\"Lectures and speeches\",\"Presentation slides\",\"Blog posts\",\"Encyclopedia entries\",\"Dictionary entries\",\"Conference papers\",\"Conference presentations\",\"Software and apps\",\"Datasets\",\"Patents\",\"Press releases\",\"Forum posts\",\"Comments\"],description:\"Search bar: what the search looks for. Form: the type the form starts on.\"},outputType:{type:ControlType.Enum,title:\"Makes\",defaultValue:\"list\",options:[\"list\",\"annotated-bibliography\"],optionTitles:[\"Reference list\",\"Annotated bibliography\"],description:\"Annotated bibliography: each source gets an annotation, with a document preview and a Word export.\"},signupUrl:{type:ControlType.Link,title:\"Signup link\",defaultValue:\"https://app.writingstudio.com/sign-up\"},apiBaseUrl:{type:ControlType.String,title:\"API base URL\",defaultValue:\"https://app.writingstudio.com/api/public/cite\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CitationGenerator\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"880\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CitationGenerator.map"],"mappings":"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"}