🚀A modern, comprehensive, flexible design system and React UI library, AI-friendly built-in.🎨Provide 3000+ Design Tokens, easy to build your design system. Make Semi Design to Any Design.🧑🏻💻 Design to Code in one click
This report summarizes scanner evidence for DouyinFE/semi-design, a TypeScript project with 10,449 GitHub stars. SynthScan examined 584,294 lines of code across 3196 source files, recording 276 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 0.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 239 finding(s).
Are imports declared and package/API names verified? 37 finding(s).
Are wrappers, guards, and repeated structures necessary? 144 finding(s).
Which changes need focused human review? 276 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 276 distinct pattern matches across 7 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ecosystem/semi-mcp/src/tools/get-semi-document.ts | 28 | export function replaceCodeBlocksWithPlaceholders( | CODE |
| LOW | ecosystem/semi-mcp/src/tools/get-component-file-list.ts | 129 | export async function handleGetComponentFileList( | CODE |
| LOW | ecosystem/semi-mcp/src/utils/fetch-directory-list.ts | 35 | export async function getDirectoryListCacheSize(): Promise<number> { | CODE |
| LOW | ecosystem/semi-mcp/src/utils/fetch-directory-list.ts | 42 | function flattenDirectoryStructure( | CODE |
| LOW | ecosystem/semi-mcp/src/utils/fetch-directory-list.ts | 66 | async function fetchNpmMirrorDirectoryRecursive( | CODE |
| LOW | ecosystem/semi-mcp/src/utils/fetch-directory-list.ts | 159 | export async function fetchDirectoryListFromSource( | CODE |
| LOW | ecosystem/semi-mcp/src/utils/fetch-file-content.ts | 43 | export async function fetchFileContentFromSource( | CODE |
| LOW | ecosystem/semi-mcp/src/utils/remove-function-body.ts | 211 | function extractVariableDeclarationFunctions(ast: ASTNode, code: string, existingFunctions: FunctionInfo[]): void { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 62 | function markdownLineEndingOrSpace(code3) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 459 | function gfmAutolinkLiteralFromMarkdown() { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 476 | function gfmAutolinkLiteralToMarkdown() { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 506 | function enterLiteralAutolinkValue(token) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 524 | function transformGfmAutolinkLiterals(tree) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 641 | function enterFootnoteDefinitionLabelString() { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 644 | function exitFootnoteDefinitionLabelString(token) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 734 | function gfmStrikethroughFromMarkdown() { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 741 | function gfmStrikethroughToMarkdown() { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2051 | function gfmTaskListItemFromMarkdown() { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2060 | function gfmTaskListItemToMarkdown() { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2071 | function exitParagraphWithTaskListItem(token) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2497 | function trailCharacterReferenceStart(code3) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2500 | function trailCharacterReferenceInside(code3) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2512 | function tokenizeEmailDomainDotTrail(effects, ok5, nok) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2646 | function tokenizePotentialGfmFootnoteCall(effects, ok5, nok) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2679 | function resolveToPotentialGfmFootnoteCall(events, context) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 2875 | function tokenizeDefinitionContinuation(effects, ok5, nok) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 3232 | function headDelimiterLeftAlignmentAfter(code3) { | CODE |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 3255 | function headDelimiterRightAlignmentAfter(code3) { | CODE |
| LOW⚡ | test/__mocks__/mdx-3.0.1-cjs.js | 9202 | function exitMdxJsxTagAttributeNamePrimary(token) { | CODE |
| LOW⚡ | test/__mocks__/mdx-3.0.1-cjs.js | 9211 | function exitMdxJsxTagAttributeNameLocal(token) { | CODE |
| LOW⚡ | test/__mocks__/mdx-3.0.1-cjs.js | 9220 | function exitMdxJsxTagAttributeValueLiteral(token) { | CODE |
| LOW⚡ | test/__mocks__/mdx-3.0.1-cjs.js | 9228 | function exitMdxJsxTagAttributeValueExpression(token) { | CODE |
| LOW⚡ | test/__mocks__/mdx-3.0.1-cjs.js | 20616 | function onexitdefinitionlabelstring(token) { | CODE |
| LOW⚡ | test/__mocks__/mdx-3.0.1-cjs.js | 20622 | function onexitdefinitiontitlestring() { | CODE |
| LOW⚡ | test/__mocks__/mdx-3.0.1-cjs.js | 20627 | function onexitdefinitiondestinationstring() { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 6376 | function mdxExpressionFromMarkdown() { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 8741 | function decodeNamedCharacterReference(value) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9014 | function charactersToExpressionCached(subset) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9116 | function enterMdxJsxTagClosingMarker(token) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9127 | function enterMdxJsxTagAnyAttribute(token) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9138 | function enterMdxJsxTagSelfClosingMarker(token) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9149 | function exitMdxJsxTagClosingMarker() { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9184 | function enterMdxJsxTagExpressionAttribute(token) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9191 | function exitMdxJsxTagExpressionAttribute(token) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9242 | function exitMdxJsxTagSelfClosingMarker() { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 13654 | function isUnicodePropertyNameCharacter(ch) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 13666 | function isUnicodePropertyValueCharacter(ch) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 13957 | function isClassSetReservedDoublePunctuatorCharacter(ch) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 13960 | function isClassSetSyntaxCharacter(ch) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 13972 | function isClassSetReservedPunctuator(ch) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 14946 | function markdownLineEndingOrSpace(code2) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 15807 | function attributePrimaryNameAfter(code2) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 15882 | function attributeValueExpressionAfter(code2) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 15887 | function attributeValueQuotedStart(code2) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 16381 | function tokenizeBlockQuoteContinuation(effects, ok4, nok) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 16429 | function tokenizeCharacterReference(effects, ok4, nok) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 16655 | function tokenizeNonLazyContinuation(effects, ok4, nok) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 17583 | function titleAfterOptionalWhitespace(code2) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 17920 | function completeAttributeNameBefore(code2) { | CODE |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 17942 | function completeAttributeNameAfter(code2) { | CODE |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | test/__mocks__/remark-gfm-4.0.0-cjs.js | 3191 | return factorySpace(effects, headDelimiterBefore, "linePrefix", self.parser.constructs.disable.null.includes("code | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 16386 | return factorySpace(effects, contBefore, "linePrefix", self2.parser.constructs.disable.null.includes("codeIndented | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 16625 | return markdownSpace(code2) ? factorySpace(effects2, beforeSequenceClose, "linePrefix", self2.parser.constructs.di | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 17252 | if (!self2.parser.constructs.disable.null.includes("codeIndented") && tail && tail[1].type === "linePrefix" && tail[ | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 18444 | return markdownSpace(code2) ? factorySpace(effects, lineEndingAfterPrefix, "linePrefix", self2.parser.constructs.dis | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 18875 | return factorySpace(effects, effects.attempt(list, ok4, nok), "linePrefix", self2.parser.constructs.disable.null.inc | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 18891 | return factorySpace(effects, afterPrefix, "listItemPrefixWhitespace", self2.parser.constructs.disable.null.includes("c | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 19552 | this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 | CODE |
| CRITICAL | test/__mocks__/mdx-3.0.1-cjs.js | 19926 | if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) { | CODE |
| CRITICAL | packages/semi-ui/upload/__test__/upload.test.js | 686 | const revoked = window.URL.revokeObjectURL.mock.calls.map(args => args[0]); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cypress/plugins/index.js | 1 | /// <reference types="cypress" /> | COMMENT |
| LOW | cypress/support/commands.ts | 1 | /// <reference types="cypress" /> | COMMENT |
| LOW | cypress/support/commands.ts | 21 | // -- This is a dual command -- | COMMENT |
| LOW | cypress/support/component.ts | 1 | // *********************************************************** | COMMENT |
| LOW | cypress/support/commands.js | 1 | // *********************************************** | COMMENT |
| LOW | cypress/support/commands.js | 21 | // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) | COMMENT |
| LOW | cypress/support/e2e.js | 1 | // *********************************************************** | COMMENT |
| LOW | cypress/e2e/helloworld.spec.js | 1 | // helloworld.spec.js created with Cypress | COMMENT |
| LOW | cypress/e2e/scrollList.spec.js | 1 | describe('scrollList', () => { | COMMENT |
| LOW | cypress/e2e/scrollList.spec.js | 21 | // todo: due to the https://github.com/DouyinFE/semi-design/pull/2723, temporarily skip this test case | COMMENT |
| LOW | cypress/e2e/typography.spec.js | 21 | COMMENT | |
| LOW | cypress/e2e/typography.spec.js | 61 | // cy.visit('http://127.0.0.1:6006/iframe.html?id=typography--container-resize&args=&viewMode=story'); | COMMENT |
| LOW | cypress/e2e/typography.spec.js | 101 | // it('custom render tooltip', () => { | COMMENT |
| LOW | cypress/e2e/typography.spec.js | 121 | // cy.visit('http://127.0.0.1:6006/iframe.html?id=typography--single-row-css-ellipsis-accurate&args=&viewMode=st | COMMENT |
| LOW | cypress/e2e/popconfirm.spec.js | 1 | // popConfirm.spec.js created with Cypress | COMMENT |
| LOW | cypress/e2e/overflowList.spec.js | 21 | // .trigger('mousemove', { clientX: 450, clientY: 100 }) | COMMENT |
| LOW | cypress/e2e/select.spec.js | 181 | it('Controled mode, same label text in reactNode', () => { | COMMENT |
| LOW | cypress/e2e/select.spec.js | 261 | // cy.get('.semi-select-option').contains('剪映').click(); | COMMENT |
| LOW | cypress/e2e/select.spec.js | 281 | // }); | COMMENT |
| LOW | test/setup.js | 121 | }, | COMMENT |
| LOW | test/setup.js | 141 | COMMENT | |
| LOW | test/__mocks__/storyMock.js | 1 | import React from 'react'; | COMMENT |
| LOW | test/__mocks__/remark-gfm-4.0.0-cjs.js | 3001 | addImplementation(this, index, remove, add); | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 561 | // the position of the comma as an offset, and if `locations` is | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 581 | allowAwaitOutsideFunction: false, | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 601 | // character offsets that denote the start and end of the comment. | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9661 | invalidTemplate: new TokenType("invalidTemplate"), | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9801 | // for new syntax features. | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9821 | // When enabled, a return at the top level is not considered an | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9841 | // Set this to false to turn such checks off. | COMMENT |
| LOW | test/__mocks__/mdx-3.0.1-cjs.js | 9861 | // passed, the full `{line, column}` locations of the start and | COMMENT |
| LOW | content/order.js | 121 | // let title=null; | COMMENT |
| LOW | packages/semi-vite/src/index.ts | 1 | import { semiTheming } from './plugin'; | COMMENT |
| LOW | …ChatDialogue/dataAdapter/streamingResponseToMessage.ts | 141 | // 这样可以避免与现有的整数序列号发生键冲突。 | COMMENT |
| LOW | packages/semi-foundation/table/table.scss | 161 | COMMENT | |
| LOW | packages/semi-foundation/table/table.scss | 281 | // $color-table_body-bg-hover has transparency,will reveal the background color $color-table_body-bg | COMMENT |
| LOW | …emi-animation-react/_story/queue-transition/index.scss | 81 | animation-duration: 0.3s, 0.3s; | COMMENT |
| LOW | packages/semi-animation-react/_story/simple/index.jsx | 41 | }} | COMMENT |
| LOW | packages/semi-theme-default/scss/animation.scss | 41 | --semi-transform_rotate-anticlockwise360deg:rotate(-360deg); | COMMENT |
| LOW | packages/semi-theme-default/scss/animation.scss | 61 | // --semi-transition_delay-slower:0ms; | COMMENT |
| LOW | …kages/semi-ui/treeSelect/__test__/treeMultiple.test.js | 541 | expect(spyOnSelect.calledWithMatch('yazhou', true, { key: "yazhou" })).toEqual(true); | COMMENT |
| LOW | …kages/semi-ui/treeSelect/_story/treeSelect.stories.jsx | 61 | { | COMMENT |
| LOW | packages/semi-ui/dropdown/__test__/dropdown.test.js | 121 | }); | COMMENT |
| LOW | packages/semi-ui/pagination/__test__/pagination.test.js | 161 | COMMENT | |
| LOW | packages/semi-ui/pagination/__test__/pagination.test.js | 181 | // } | COMMENT |
| LOW | packages/semi-ui/form/hoc/withField.tsx | 301 | console.warn(`[Semi Form]: When FieldComponent (${field}) has an unfinished validation proce | COMMENT |
| LOW | packages/semi-ui/form/hoc/withField.tsx | 741 | // - Tooltip/Popover (and similar wrappers) may inject props into their child via | COMMENT |
| LOW | packages/semi-ui/form/__test__/field.test.js | 461 | COMMENT | |
| LOW | packages/semi-ui/form/__test__/slot.test.js | 101 | // <Form {...formProps}> | COMMENT |
| LOW | packages/semi-ui/form/__test__/arrayField.test.js | 161 | addButton.simulate('click', {}); // check line 4 | COMMENT |
| LOW | packages/semi-ui/form/__test__/arrayField.test.js | 181 | // } | COMMENT |
| LOW | packages/semi-ui/form/__test__/formApi.test.js | 541 | expect(getDomValue('a[2].type', form)).toEqual('2-type'); | COMMENT |
| LOW | packages/semi-ui/form/__test__/formApi.test.js | 561 | // { name: '2-name', type: '2-type', key: 2 }, | COMMENT |
| LOW | …ckages/semi-ui/form/__test__/baseForm/onChange.test.js | 41 | // const div = document.getElementById('container'); | COMMENT |
| LOW | …ckages/semi-ui/form/__test__/baseForm/baseForm.test.js | 561 | await sleep(300); | COMMENT |
| LOW | …ckages/semi-ui/form/__test__/baseForm/baseForm.test.js | 581 | // let getFormApi = api => { | COMMENT |
| LOW | packages/semi-ui/locale/_story/locale.stories.tsx | 41 | // stories.add('Locale en-US', () => ( | COMMENT |
| LOW | …ges/semi-ui/autoComplete/__test__/autoComplete.test.js | 241 | ac.find(acCls).simulate('click', {}); | COMMENT |
| LOW | packages/semi-ui/_cssAnimation/index.tsx | 141 | // oldFunction(e); | COMMENT |
| LOW | packages/semi-ui/slider/__test__/slider.test.js | 21 | const sliders = wrapper.find(Slider); | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cypress/e2e/textarea.spec.js | 20 | cy.fixture("placeholder").then(placeholder => { | CODE |
| LOW | content/feedback/banner/index.md | 166 | description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut la | CODE |
| LOW | content/feedback/banner/index.md | 166 | description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut la | CODE |
| LOW | content/feedback/banner/index-en-US.md | 160 | description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut la | CODE |
| LOW | content/feedback/banner/index-en-US.md | 160 | description="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut la | CODE |
| LOW⚡ | static/editor/language/html/htmlMode.js | 7 | define("vs/language/html/workerManager",["require","exports","./fillers/monaco-editor-core"],(function(e,t,n){"use stric | CODE |
| LOW⚡ | static/editor/language/html/htmlWorker.js | 7 | define("vscode-nls/vscode-nls",["require","exports"],(function(e,t){"use strict";function n(e,t){return 0===t.length?e:e | CODE |
| LOW | packages/semi-ui/treeSelect/__test__/treeSelect.test.js | 358 | it('placeholder', () => { | CODE |
| LOW | packages/semi-ui/treeSelect/__test__/treeSelect.test.js | 750 | expect(searchWrapper.find('input').instance().getAttribute('placeholder')).toEqual('test'); | CODE |
| LOW | packages/semi-ui/sideBar/mcpConfigure/index.tsx | 33 | const mcpConfigureContentProps = pick(this.props, ['options', 'customOptions', 'filter', 'placeholder', 'onStatu | CODE |
| LOW | packages/semi-ui/tree/__test__/tree.test.js | 532 | searchPlaceholder: 'placeholder', | CODE |
| LOW | packages/semi-ui/tree/__test__/tree.test.js | 539 | expect(searchWrapper.find('input').instance().getAttribute('placeholder')).toEqual('placeholder'); | CODE |
| LOW | packages/semi-ui/timePicker/index.tsx | 34 | placeholder={get(locale, ['placeholder', type])} | CODE |
| LOW | packages/semi-ui/timePicker/TimeInput.tsx | 18 | 'placeholder' | | CODE |
| LOW | packages/semi-ui/timePicker/__test__/timePicker.test.js | 386 | expect(elem.find('input').prop('placeholder')).toBe(placeholder); | CODE |
| LOW | packages/semi-ui/input/index.tsx | 27 | Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'prefix' | 'size' | 'placeholder' | 'onFocus' | 'onBl | CODE |
| LOW | packages/semi-ui/input/__test__/textArea.test.js | 312 | expect(textArea.find('textarea').prop('placeholder')).toEqual('new placeholder text'); | CODE |
| LOW | packages/semi-ui/skeleton/index.tsx | 51 | <div className={skCls} style={style} {...others} x-semi-prop="placeholder"> | CODE |
| LOW | packages/semi-ui/datePicker/dateInput.tsx | 340 | const { dateStart, dateEnd, timeStart, timeEnd } = get(insetInput, 'placeholder', {}) as InsetInputProps['placeh | CODE |
| LOW | packages/semi-ui/datePicker/__test__/datePicker.test.js | 1135 | expect(elem.find('input').prop('placeholder')).toBe(placeholder); | CODE |
| LOW | packages/semi-ui/cascader/__test__/cascader.test.js | 547 | searchPlaceholder: 'placeholder', | CODE |
| LOW | packages/semi-ui/cascader/__test__/cascader.test.js | 556 | ).toEqual('placeholder'); | CODE |
| LOW | …ages/semi-ui/aiChatInput/extension/inputSlot/index.tsx | 25 | placeholder: element.getAttribute('placeholder'), | CODE |
| LOW | …ages/semi-ui/aiChatInput/extension/inputSlot/index.tsx | 39 | parseHTML: element => element.getAttribute('placeholder') || '', | CODE |
| LOW | …ages/semi-ui/aiChatInput/extension/inputSlot/index.tsx | 41 | 'placeholder': attributes.placeholder, | CODE |
| LOW | packages/semi-ui/select/index.tsx | 1065 | <span className={spanCls} x-semi-prop="placeholder"> | CODE |
| LOW | …ges/newHome/components/theme/components/demo/index.jsx | 101 | <TextArea field="content" placeholder='placeholder' noLabel={true} style={{ width: 556, heig | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | static/editor/language/css/cssMode.js | 7 | define("vs/language/css/workerManager",["require","exports","./fillers/monaco-editor-core"],(function(e,t,n){"use strict | CODE |
| MEDIUM | static/editor/language/css/cssWorker.js | 7 | !function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.e | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlMode.js | 7 | define("vs/language/html/workerManager",["require","exports","./fillers/monaco-editor-core"],(function(e,t,n){"use stric | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlMode.js | 7 | define("vs/language/html/workerManager",["require","exports","./fillers/monaco-editor-core"],(function(e,t,n){"use stric | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlMode.js | 7 | define("vs/language/html/workerManager",["require","exports","./fillers/monaco-editor-core"],(function(e,t,n){"use stric | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlWorker.js | 7 | define("vscode-nls/vscode-nls",["require","exports"],(function(e,t){"use strict";function n(e,t){return 0===t.length?e:e | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlWorker.js | 7 | define("vscode-nls/vscode-nls",["require","exports"],(function(e,t){"use strict";function n(e,t){return 0===t.length?e:e | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlWorker.js | 7 | define("vscode-nls/vscode-nls",["require","exports"],(function(e,t){"use strict";function n(e,t){return 0===t.length?e:e | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | static/editor/language/css/cssMode.js | 7 | define("vs/language/css/workerManager",["require","exports","./fillers/monaco-editor-core"],(function(e,t,n){"use strict | CODE |
| LOW | static/editor/language/css/cssWorker.js | 7 | !function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.e | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlMode.js | 7 | define("vs/language/html/workerManager",["require","exports","./fillers/monaco-editor-core"],(function(e,t,n){"use stric | CODE |
| MEDIUM⚡ | static/editor/language/html/htmlWorker.js | 7 | define("vscode-nls/vscode-nls",["require","exports"],(function(e,t){"use strict";function n(e,t){return 0===t.length?e:e | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/semi-ui/_test_/utils/table/index.jsx | 11 | function getData(total = 25) { | CODE |
| LOW | src/components/ComponentOverview/card.jsx | 5 | function processData(data) { | CODE |