# @cloud-ru/ds-alert 中文文档

规范地址：https://npmcn.com/package/%40cloud-ru/ds-alert/

版本：1\.2\.5
npm 元数据更新时间：2026-11-11T15:03:14.693Z
中文译文更新时间：2026-11-12T04:01:38.583Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cloud-ru/ds-alert
原文对照：https://npmcn.com/package/%40cloud-ru/ds-alert/?lang=original
项目主页：https://github.com/cloud-ru-tech/snack-v2/tree/master/packages/alert
源码仓库：https://github.com/cloud-ru-tech/snack-v2

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：549 kB，118 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：8 个
- 首次发布：2026-08-18T12:40:37.443Z
- 最新版本发布：2026-11-11T15:03:13.818Z
- 近 30 天下载量：3017（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：80（近 12 个月 80 个）

## 中文简介

. . . . 警告内线 - \\ \\ \\ \\ \\ \\ \\ \\ \\.

## 安装

```sh
npm install @cloud-ru/ds-alert
```

也可以使用：`pnpm add @cloud-ru/ds-alert`、`yarn add @cloud-ru/ds-alert`、`bun add @cloud-ru/ds-alert`

## README

# 警报

`@cloud-ru/ds-alert` . . . . . 警告内线 - \\ \\ \\ \\ \\ \\ \\ \\ \\.

Пакет `@cloud-ru/ds-alert` 说吧

-   ****警报**** ——入行-QQQ:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出行:出出行:出行:出行: 动作,紧紧的,紧紧的.
-   ****警报Top**** . . . . . {\\fn华文仿宋\\fs16\\1cHD1D1D1}好.

## Установка

```bash
pnpm add @cloud-ru/ds-alert
```

```ts
import { Alert, AlertTop } from '@cloud-ru/ds-alert'
```

## 警报

内---出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出演出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出场出.

内-уведомление,相-相-相-相-相-相-相-相-相. Шесть出相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相`size`, (中文(简体) ), `align`———————————————————————————— `actions`, (中文(简体) ), `onClose`, (中文(简体) ), `collapsible` - 额...

### Когда

-   QQQQQ (成功/出错).
-   {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你说什么.
-   Для (中文(简体) ).

Когда **не** {\\fn黑体\\fs20\\shad2\\2aH82\\3aH20\\4aH33\\fscx95\\3cH592001\\be1}请说 敬酒 `Alert` остаётся,пока也.

### Анатомия

#### 外观

说吧 `neutral`编号 :`primary` - нейтральная/информативная, `info` - информ - акцент, `success` - успешное,завершение, `warning` . . . . . . , `error` - ошибка блокирующее состояние состояние состояние.

#### 对齐

\# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # `horizontal` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080} - {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080} - - {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080} - {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080} - \\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}, `vertical` . . . . . .

#### 大小

翻译: `s` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你应该知道, `m` - 额...

### Примеры

#### 1\. 国家

```tsx
import { Alert } from '@cloud-ru/ds-alert';

export function Info() {
  return (
    <Alert appearance='info' title='Настройки сохранены' content='Изменения применены ко всем активным проектам.' />
  );
}
```

#### 2\. 关闭

```tsx
import { Alert } from '@cloud-ru/ds-alert';

export function Error() {
  return (
    <Alert
      appearance='error'
      title='Не удалось сохранить'
      content='Проверьте подключение к сети и повторите попытку.'
      onClose={() => undefined}
    />
  );
}
```

#### 3\. 国家

```tsx
import { Alert } from '@cloud-ru/ds-alert';

export function WithActions() {
  return (
    <Alert
      appearance='warning'
      title='Требуется подтверждение'
      content='Операция необратима. Продолжить?'
      actions={{
        primary: { label: 'Продолжить', onClick: () => undefined },
        secondary: { label: 'Отмена', onClick: () => undefined },
      }}
    />
  );
}
```

#### 4\. 国家

```tsx
import { Alert } from '@cloud-ru/ds-alert';

export function Collapsible() {
  return (
    <Alert
      appearance='info'
      collapsible
      title='Совет по настройке'
      content='Полное описание того, как правильно настроить функцию. Текст длинный и сворачивается до раскрытия.'
    />
  );
}
```

### 道具

**提醒选项**

| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `actions` | `AlertButtonProps` | —— 说 | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 |
| `align` | `"horizontal"` | `"vertical"` | `vertical` | Выравнивание |
| `appearance` | `"error"` | `"info"` | `"neutral"` | `"primary"` | `"success"` | `"warning"` | —— 说 | Внешний |
| `className` | `string` | —— 说 | 支助科 |
| `collapsible` | `boolean` | —— 说 | \======================================================================================================================================================================================================================================== ( ( ( (===================.  
При `true` не `TruncateString` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得怎么样. |
| `content` | `ReactNode` | —— 说 | Описание |
| `data-test-id` | `string` | —— 说 |  |
| `icon` | `boolean` | —— 说 | Отображать |
| `layoutPresets` | `AlertLayoutDefaults` | `LayoutPresets` | —— 说 | 覆盖移动- + + + + (深相相接 + ) `ALERT_LAYOUT_PRESETS`) (中文(简体) ).  
逃逸: обычно (не) нужен (нужен) нужен (нужен) нужен (нужен) нужен (нужен) `AdaptiveProvider`。 。 。 . |
| `onClose` | `(() => void)` | —— 说 | Колбек |
| `outline` | `boolean` | —— 说 | Внешний |
| `size` | `"m"` | `"s"` | —— 说 | Размер |
| `title` | `string` | —— 说 | Заголовок |
| `truncate` | `{ title?: number; }` | `title: 1` | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `collapsible={false}`) (中文(简体) ). |

##### 相关类型

**提醒按钮**

| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `as` | `T | undefined` | —— 说 | \============================================================================================ (============================================================================ 链接 QQ 反应- router- dom) |
| `className` | `string | undefined` | —— 说 | Дополнительный |
| `disabled` | `boolean | undefined` | —— 说 | Отключена |
| `icon` | `string | number | boolean | ReactElement<any, string | JSXElementConstructor<any>> | Iterable<ReactNode> | ReactPortal | null | undefined` | —— 说 | Иконка |
| `iconPosition` | `"after"` | `"before"` | —— 说 | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 |
| `innerRef` | `PolymorphicRef` | —— 说 | 参考: реальный DOM-элемент/инстанс,который `as`。 。 。 .  
Используем,чтобы也 `forwardRef` (原始内容存档于2018-09-21) (英语). |
| `invertFocusOutlineColor` | `boolean | undefined` | —— 说 | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 |
| `label` | `string | undefined` | —— 说 | Текст |
| `loading` | `boolean | undefined` | —— 说 | Состояние |
| `size` | `"m"` | `"s"` | —— 说 | Размер |
| `variant` | `"onAccent"` | `"onColor"` | —— 说 | Вариант |

**提醒 Layout 默认**

| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `truncate` | `{ title?: number; } | undefined` | —— 说 | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `collapsible={false}`) (中文(简体) ). |

-   `Align` =: `"horizontal"` | `"vertical"`
    
-   `Appearance` =: `"error"` | `"info"` | `"neutral"` | `"primary"` | `"success"` | `"warning"`
    
-   `ButtonSize` =: `"m"` | `"s"`
    
-   `ButtonVariant` =: `"onAccent"` | `"onColor"`
    
-   `IconPosition` =: `"after"` | `"before"`
    
-   `PolymorphicRef` =: `ComponentPropsWithRef<T>["ref"]`
    
-   `Size` =: `"m"` | `"s"`
    

### Адаптивность

`Alert` -=YTET -伊甸园字幕组=- 翻译: {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 **`@cloud-ru/ds-adaptive`** {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢 `layoutType` нет.

> **桌面一号.** \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* `<AdaptiveProvider>` 腾讯网. {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}征服越狱.

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 **двух** {\\fn黑体\\fs20\\shad2\\2ah82\\3ah20\\4ah33\\fscx95\\3ch592001\\be1}你觉得怎样.

| Проп | 桌面 | 移动 |
| --- | --- | --- |
| `truncate.title` | `1` | `2` |

\- 手机 - 电话 `ALERT_LAYOUT_PRESETS`。 。 。 .

#### Как

**桌面第一个 :** 腾讯动漫. {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `layoutPresets[layout]` ( `ALERT_LAYOUT_PRESETS` → (=桌面-значение)базовый.

```tsx
import { Alert } from '@cloud-ru/ds-alert'

// 1. Явный проп — задаёт DESKTOP-значение; mobile остаётся 2 строки (mobile не ломается)
<Alert truncate={{ title: 3 }} title='…' content='…' />

// 2. layoutPresets.mobile — единственный способ изменить mobile (явно)
<Alert layoutPresets={{ mobile: { truncate: { title: 3 } } }} title='…' content='…' />

// 2b. layoutPresets.desktop — изменить только desktop, mobile-адаптив сохранён
<Alert layoutPresets={{ desktop: { truncate: { title: 3 } } }} title='…' content='…' />
```

DS- `ALERT_LAYOUT_PRESETS`)——腾讯手机.

#### {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢

说吧

```tsx
import { AdaptiveProvider, withLayoutType } from '@cloud-ru/ds-adaptive'
import { Alert } from '@cloud-ru/ds-alert'

// поддерево — вложенный провайдер
<AdaptiveProvider layoutType='mobile'>
  <Alert title='…' content='…' />
</AdaptiveProvider>

// компонент/секция — HOC (module-scope, не в рендере)
const MobileAlert = withLayoutType(Alert, 'mobile')
```

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 **`@cloud-ru/ds-adaptive`**。 。 。 .

#### 移动电话——

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}#######################################################################################################################################################################################################################################.

```tsx
import { AdaptiveProvider, LAYOUT_TYPE } from '@cloud-ru/ds-adaptive';
import { Alert } from '@cloud-ru/ds-alert';

const LONG_TITLE = 'Плановые технические работы в дата-центре: часть сервисов будет недоступна с 02:00 до 04:00 МСК';

export function AdaptiveTruncate() {
  return (
    <AdaptiveProvider layoutType={LAYOUT_TYPE.Mobile}>
      <div style={{ maxWidth: 360 }}>
        <Alert appearance='info' title={LONG_TITLE} content='На узком экране заголовок усекается в две строки.' />
      </div>
    </AdaptiveProvider>
  );
}
```

> 游戏场 \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\.

## 警报Top

(原始内容存档于2018-10-25). .

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢? В `Alert`,=================================================== ============================================================================================================================================ `appearance`{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你应该知道 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你是谁 `outline` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢.

### Когда

-   {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你说什么.
-   Для(一作например.
-   {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢.

Когда **не** нужен:для也 `Alert`。 。 。 .

### Анатомия

#### 外观

说得好 `neutral`编号 :`primary` - нейтрально информативная подача подача, `info` - информ - акцент, `success` - успех(редко редко-баннере), `warning` - (维持), `error` ——критическое/инцидент.

#### 对齐

\# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # `horizontal` - \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\, `vertical` ——··············(+++++++++).

#### 大小

校对:Soup `s` - компактный, `m` - 额...

### Примеры

#### Системное

```tsx
import { AlertTop } from '@cloud-ru/ds-alert';

export function SystemNotice() {
  return (
    <AlertTop
      appearance='info'
      title='Плановые работы'
      content='Сегодня с 22:00 до 23:00 возможны кратковременные перебои.'
    />
  );
}
```

### 道具

**提醒选项**

| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `actions` | `AlertButtonProps` | —— 说 | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 |
| `align` | `"horizontal"` | `"vertical"` | `vertical` | Выравнивание |
| `appearance` | `"error"` | `"info"` | `"neutral"` | `"primary"` | `"success"` | `"warning"` | —— 说 | Внешний |
| `className` | `string` | —— 说 | 支助科 |
| `collapsible` | `boolean` | —— 说 | \======================================================================================================================================================================================================================================== ( ( ( (===================.  
При `true` не `TruncateString` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得怎么样. |
| `content` | `ReactNode` | —— 说 | Описание |
| `data-test-id` | `string` | —— 说 |  |
| `icon` | `boolean` | —— 说 | Отображать |
| `layoutPresets` | `AlertTopLayoutDefaults` | `LayoutPresets` | —— 说 | 覆盖移动- + + + + (深相相接 + ) `ALERT_TOP_LAYOUT_PRESETS`) (中文(简体) ).  
逃逸: обычно (не) нужен (нужен) нужен (нужен) нужен (нужен) нужен (нужен) `AdaptiveProvider`。 。 。 . |
| `onClose` | `(() => void)` | —— 说 | Колбек |
| `size` | `"m"` | `"s"` | —— 说 | Размер |
| `title` | `string` | —— 说 | Заголовок |
| `truncate` | `{ title?: number; }` | `title: 1` | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `collapsible={false}`) (中文(简体) ). |

##### 相关类型

**提醒按钮**

| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `as` | `T | undefined` | —— 说 | \============================================================================================ (============================================================================ 链接 QQ 反应- router- dom) |
| `className` | `string | undefined` | —— 说 | Дополнительный |
| `disabled` | `boolean | undefined` | —— 说 | Отключена |
| `icon` | `string | number | boolean | ReactElement<any, string | JSXElementConstructor<any>> | Iterable<ReactNode> | ReactPortal | null | undefined` | —— 说 | Иконка |
| `iconPosition` | `"after"` | `"before"` | —— 说 | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 |
| `innerRef` | `PolymorphicRef` | —— 说 | 参考: реальный DOM-элемент/инстанс,который `as`。 。 。 .  
Используем,чтобы也 `forwardRef` (原始内容存档于2018-09-21) (英语). |
| `invertFocusOutlineColor` | `boolean | undefined` | —— 说 | {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 |
| `label` | `string | undefined` | —— 说 | Текст |
| `loading` | `boolean | undefined` | —— 说 | Состояние |
| `size` | `"m"` | `"s"` | —— 说 | Размер |
| `variant` | `"onAccent"` | `"onColor"` | —— 说 | Вариант |

**提醒TopLayout 默认**

| Prop | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `collapsible` | `boolean | undefined` | —— 说 | \======================================================================================================================================================================================================================================== ( ( ( (===================.  
При `true` не `TruncateString` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得怎么样. |

-   `Align` =: `"horizontal"` | `"vertical"`
    
-   `Appearance` =: `"error"` | `"info"` | `"neutral"` | `"primary"` | `"success"` | `"warning"`
    
-   `ButtonSize` =: `"m"` | `"s"`
    
-   `ButtonVariant` =: `"onAccent"` | `"onColor"`
    
-   `IconPosition` =: `"after"` | `"before"`
    
-   `PolymorphicRef` =: `ComponentPropsWithRef<T>["ref"]`
    
-   `Size` =: `"m"` | `"s"`
    

### Адаптивность

`AlertTop` -=YTET -伊甸园字幕组=- 翻译: {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 **`@cloud-ru/ds-adaptive`** {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢 `layoutType` нет.

> **桌面一号.** \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* `<AdaptiveProvider>` 腾讯网. {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}征服越狱.

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 **раскрываемым** (单位:千美元)`collapsible`{\\fn黑体\\fs20\\shad2\\2aH82\\3aH20\\4aH33\\fscx95\\3cH592001\\be1}(笑声) {\\fn黑体\\fs20\\shad2\\2aH82\\3aH20\\4aH33\\fscx95\\3cH592001\\be1}(掌声) 腾讯网.

| Проп | 桌面 | 移动 |
| --- | --- | --- |
| `collapsible` | `false` | `true` |

\- 手机 - 电话 `ALERT_TOP_LAYOUT_PRESETS`。 。 。 .

#### Как

**桌面第一个 :** 腾讯动漫. {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `layoutPresets[layout]` ( `ALERT_TOP_LAYOUT_PRESETS` → (=桌面-значение)базовый.

```tsx
import { AlertTop } from '@cloud-ru/ds-alert'

// 1. Явный проп — задаёт DESKTOP-значение; mobile остаётся collapsible (mobile не ломается)
<AlertTop collapsible={false} title='…' content='…' />

// 2. layoutPresets.mobile — единственный способ изменить mobile (явно)
<AlertTop layoutPresets={{ mobile: { collapsible: false } }} title='…' content='…' />

// 2b. layoutPresets.desktop — изменить только desktop, mobile-адаптив сохранён
<AlertTop layoutPresets={{ desktop: { collapsible: true } }} title='…' content='…' />
```

DS- `ALERT_TOP_LAYOUT_PRESETS`)——腾讯手机.

#### {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢

说吧

```tsx
import { AdaptiveProvider, withLayoutType } from '@cloud-ru/ds-adaptive'
import { AlertTop } from '@cloud-ru/ds-alert'

// поддерево — вложенный провайдер
<AdaptiveProvider layoutType='mobile'>
  <AlertTop title='…' content='…' />
</AdaptiveProvider>

// компонент/секция — HOC (module-scope, не в рендере)
const MobileAlertTop = withLayoutType(AlertTop, 'mobile')
```

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 **`@cloud-ru/ds-adaptive`**。 。 。 .

## 常见问题

### @cloud-ru/ds-alert 是什么？

\. \. \. \. 警告内线 - \\ \\ \\ \\ \\ \\ \\ \\ \\\.

### 如何安装 @cloud-ru/ds-alert？

在项目目录运行 npm install @cloud-ru/ds-alert，或使用 pnpm add / yarn add / bun add。

### @cloud-ru/ds-alert 支持 TypeScript 吗？

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

### @cloud-ru/ds-alert 支持 ESM 还是 CommonJS？

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

### @cloud-ru/ds-alert 可以商用吗？

@cloud-ru/ds-alert 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @cloud-ru/ds-alert 的下载量有多少？

根据 npm 官方下载统计，@cloud-ru/ds-alert 在 2026/10/10 – 2026/11/08 这 30 天内被下载 3,017 次，日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @cloud-ru/ds-alert 还在维护吗？

最新版本 1\.2\.5 发布于 2026/11/11（今天）；至今共发布 80 个版本，其中过去 12 个月发布了 80 个；首次发布于 2026/08/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

