@box/item-icon

中文文档
3.6.39发布于 2026/11/06SEE LICENSE IN LICENSETypeScriptESM + CJS零依赖近 30 天下载 6万
原始使用文档
文档目录9 节
  1. Running commands
  2. Available commands
  3. API
  4. Components
  5. Utility Functions
  6. Constants
  7. Types
  8. Ownership
  9. Translations

item-icon

This library was generated with @box/automation. General overview on how to perform tasks on the generated library can be found in run-tasks Nx documentation.

Running commands

Your terminal should stay in location of root directory of repository, which is frontend-mono. That Allows Nx to run action against your project, or multiple project if that is necessary. Do not navigate to packages/group-shared-features/item-icon to run commands.

Commands for the project are run using syntax used by Nx:

Syntax: yarn nx <target name> <project name> <option overrides>
                      |              |                |
Example: yarn nx    test         products         --watch

Available commands

All commands used with Nx can be found in project.json file within your package.

  • nx storybook item-icon - launches development environment for UI component.
  • nx build-storybook item-icon - build static version of storybook with all stories.
  • nx build item-icon - build package using shared-feature-builder executor from automation package.
  • nx lint item-icon - runs linter over package files.
  • nx test item-icon - runs storybook tests (visual/interactions) and jest unit tests, producing coverage report at the end.
  • nx test-storybook item-icon - runs storybook tests. You need first to start storybook in separate terminal for this to work.
  • nx test-storybook-local-coverage item-icon - runs storybook tests, and produces coverage report at the end. Requires running instance of storybook.
  • nx test-storybook-ci item-icon - build storybook and run storybook tests with coverage output. Designed for CI usage.
  • nx test-jest item-icon - runs jest unit tests, producing code coverage at the end.
  • nx sonar item-icon - performs static analysis of code using SonarQube tooling, to detect bugs and code smells. Integrated as one of the steps in CI process.
  • nx chromatic item-icon - uploads storybook build for review to box chromatic , and performs visual comparison of the UI changes against baseline.
  • nx prepare item-icon - command run during package publication process orchestrated by Nx Release.

API

Components

  • ItemIcon - A component for displaying file/folder icons
  • ItemTypeIcon - A component for displaying item type icons

Utility Functions

getFileCategoryByExtension(extension?: string): string

Returns the file category for a given file extension. If the extension is not recognized, returns 'default'.

import { getFileCategoryByExtension } from '@box/item-icon';

const category = getFileCategoryByExtension('pdf'); // Returns 'pdf'
const category2 = getFileCategoryByExtension('docx'); // Returns 'word-document'
const category3 = getFileCategoryByExtension('unknown'); // Returns 'default'

getColorByExtension(fileCategory: FileCategory): string | undefined

Returns the Blueprint CSS color variable for a given file category. Returns undefined for falsy input.

import { getColorByExtension, type FileCategory } from '@box/item-icon';

const color = getColorByExtension('pdf'); // Returns 'var(--bp-watermelon-red-120, var(--watermelon-red-120))'
const color2 = getColorByExtension('image'); // Returns 'var(--bp-green-light-135, var(--green-light-120))'

Constants

FILE_EXTENSION_CATEGORIES

An object mapping file categories to arrays of file extensions.

import { FILE_EXTENSION_CATEGORIES } from '@box/item-icon';

FILE_EXTENSION_CATEGORIES.pdf; // ['pdf']
FILE_EXTENSION_CATEGORIES.image; // ['bmp', 'cr2', 'crw', 'dng', 'gdraw', 'gif', ...]
FILE_EXTENSION_CATEGORIES.markdown; // ['md', 'markdown']
FILE_EXTENSION_CATEGORIES['word-document']; // ['doc', 'docm', 'docx']

FILE_CATEGORY_COLORS

An object mapping file categories to their corresponding Blueprint CSS color variables. Useful for styling file type indicators consistently.

import { FILE_CATEGORY_COLORS } from '@box/item-icon';

FILE_CATEGORY_COLORS.pdf; // 'var(--bp-watermelon-red-120, var(--watermelon-red-120))'
FILE_CATEGORY_COLORS.image; // 'var(--bp-green-light-135, var(--green-light-120))'
FILE_CATEGORY_COLORS.markdown; // 'var(--bp-gray-100, var(--gray-100))'
FILE_CATEGORY_COLORS.video; // 'var(--bp-light-blue-115, var(--light-blue-110))'

Types

FileCategory

A TypeScript union type representing all valid file categories.

import { type FileCategory } from '@box/item-icon';

type FileCategory =
    | 'audio'
    | 'boxcanvas'
    | 'boxnote'
    | 'code'
    | 'document'
    | 'docuworks-binder'
    | 'docuworks-file'
    | 'dwg'
    | 'excel-spreadsheet'
    | 'google-docs'
    | 'google-sheets'
    | 'google-slides'
    | 'illustrator'
    | 'image'
    | 'indesign'
    | 'keynote'
    | 'markdown'
    | 'numbers'
    | 'pages'
    | 'pdf'
    | 'photoshop'
    | 'powerpoint-presentation'
    | 'presentation'
    | 'spreadsheet'
    | 'text'
    | 'threed'
    | 'vector'
    | 'video'
    | 'word-document'
    | 'zip';

Ownership

Code of the feature belongs to webapp-eng. Responsibilities of owning team include control over code quality, providing guidelines for changes, and alignment with other teams regarding changes. It would be a good practice to consult which team, owning or requesting, will be responsible for implementing changes to code.

Translations

Per-locale i18n/*.js files are generated and committed by the Moji Jenkins pipeline. The shared-feature builder copies them into dist/i18n/ during build. Consuming applications list this package in i18n.config.js under translationDependencies.

版本与发布记录

@box/item-icon 共发布 759 个版本,首次发布于 2025/01/07;过去 12 个月发布了 465 个版本。

版本发布日期距今
3.6.39latest2026/11/062 天前
3.6.382026/11/062 天前
3.6.372026/11/052 天前
3.6.362026/11/053 天前
3.6.352026/11/053 天前
3.6.342026/11/044 天前

关于 @box/item-icon 的常见问题

如何安装 @box/item-icon?

在项目目录运行 npm install @box/item-icon,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^17.0.0 || ^18.0.0)、react-dom(^17.0.0 || ^18.0.0)、@box/types(^3.2.36)、react-intl(^6.4.2)、@box/blueprint-web(^18.10.3)、@box/blueprint-web-assets(^5.15.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@box/item-icon 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@box/item-icon 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@box/item-icon 可以商用吗?

@box/item-icon 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@box/item-icon 的下载量有多少?

根据 npm 官方下载统计,@box/item-icon 在 2026/10/09 – 2026/11/07 这 30 天内被下载 60,463 次,日均约 2,015 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@box/item-icon 还在维护吗?

最新版本 3.6.39 发布于 2026/11/06(2 天前);至今共发布 759 个版本,其中过去 12 个月发布了 465 个;首次发布于 2025/01/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。