---
# System prepended metadata

title: Flux UI組件中文文檔
tags: [Laravel]

---

# Flux UI組件中文文檔

## 目錄
- [Accordion 摺疊面板](#accordion-摺疊面板)
- [Avatar 頭像](#avatar-頭像)
- [Badge 徽章](#badge-徽章)
- [Breadcrumbs 麵包屑](#breadcrumbs-麵包屑)
- [Button 按鈕](#button-按鈕)
- [Calendar 日曆](#calendar-日曆)
- [Callout 標註](#callout-標註)
- [Card 卡片](#card-卡片)
- [Chart 圖表](#chart-圖表)
- [Checkbox 複選框](#checkbox-複選框)
- [Command 命令面板](#command-命令面板)
- [Date picker 日期選擇器](#date-picker-日期選擇器)
- [Dropdown 下拉選單](#dropdown-下拉選單)
- [Field 表單欄位](#field-表單欄位)
- [Heading 標題](#heading-標題)
- [Icon 圖標](#icon-圖標)
- [Modal 對話框](#modal-對話框)
- [Navbar 導航欄](#navbar-導航欄)
- [Pagination 分頁](#pagination-分頁)
- [Radio 單選框](#radio-單選框)
- [Rich text editor 富文本編輯器](#rich-text-editor-富文本編輯器)
- [Select 選擇框](#select-選擇框)
- [Separator 分隔線](#separator-分隔線)
- [Switch 開關](#switch-開關)
- [Table 表格](#table-表格)
- [Tabs 標籤頁](#tabs-標籤頁)
- [Text 文本](#text-文本)
- [Textarea 文本區域](#textarea-文本區域)
- [Toast 提示訊息](#toast-提示訊息)
- [Tooltip 提示框](#tooltip-提示框)

## Accordion 摺疊面板

可摺疊和展開的內容區塊，適用於FAQ和內容豐富的區域。

### 基本用法

```html
<flux:accordion>
    <flux:accordion.item>
        <flux:accordion.heading>What''s your refund policy?</flux:accordion.heading>
        <flux:accordion.content>
            If you are not satisfied with your purchase, we offer a 30-day money-back guarantee. Please contact our support team for assistance.
        </flux:accordion.content>
    </flux:accordion.item>
    <flux:accordion.item>
        <flux:accordion.heading>Do you offer any discounts for bulk purchases?</flux:accordion.heading>
        <flux:accordion.content>
            Yes, we offer special discounts for bulk orders. Please reach out to our sales team with your requirements.
        </flux:accordion.content>
    </flux:accordion.item>
</flux:accordion>
```

### 簡寫方式

您可以通過將標題文本作為屬性傳遞來節省標記。

```html
<flux:accordion.item heading="What's your refund policy?">
    If you are not satisfied with your purchase, we offer a 30-day money-back guarantee. Please contact our support team for assistance.
</flux:accordion.item>
```

### 帶過渡效果

啟用展開過渡效果以獲得更流暢的交互體驗。

```html
<flux:accordion transition>
    <!-- ... -->
</flux:accordion>
```

### 禁用項目

限制某個摺疊項目被展開。

```html
<flux:accordion.item disabled>
    <!-- ... -->
</flux:accordion.item>
```

### 獨占模式

強制一次只能展開一個摺疊項目。

```html
<flux:accordion exclusive>
    <!-- ... -->
</flux:accordion>
```

### 預設展開

預設展開特定的摺疊項目。

```html
<flux:accordion.item expanded>
    <!-- ... -->
</flux:accordion.item>
```

### 前置圖標

在標題前而非後面顯示圖標。

```html
<flux:accordion variant="reverse">
    <!-- ... -->
</flux:accordion>
```

### 參數參考

#### flux:accordion

| 屬性 | 說明 |
| --- | --- |
| variant | 設置為reverse時，在標題前顯示圖標而非後面 |
| transition | 如果為true，啟用展開過渡效果。預設：false |
| exclusive | 如果為true，一次只能展開一個摺疊項目。預設：false |

#### flux:accordion.item

| 屬性 | 說明 |
| --- | --- |
| heading | flux:accordion.heading內容的簡寫 |
| expanded | 如果為true，摺疊項目預設展開。預設：false |
| disabled | 如果為true，摺疊項目不能被展開或摺疊。預設：false |

#### flux:accordion.heading

| 插槽 | 說明 |
| --- | --- |
| default | 標題文本 |

#### flux:accordion.content

| 插槽 | 說明 |
| --- | --- |
| default | 摺疊項目展開時顯示的內容 |

## Avatar 頭像

顯示頭像圖片或縮寫。

### 基本用法

```html
<flux:avatar src="https://unavatar.io/x/calebporzio" />
```

### 帶提示框

使用tooltip屬性在懸停頭像時顯示提示框。

```html
<flux:avatar tooltip="Caleb Porzio" src="https://unavatar.io/x/calebporzio" />
<!-- 或從name屬性推斷... -->
<flux:avatar tooltip name="Caleb Porzio" src="https://unavatar.io/x/calebporzio" />
```

### 縮寫

當沒有提供src時，將使用name屬性自動生成縮寫。也可以直接使用initials屬性。

```html
<flux:avatar name="Caleb Porzio" />
<flux:avatar name="calebporzio" />
<flux:avatar name="calebporzio" initials:single />
<!-- 或直接使用initials屬性... -->
<flux:avatar initials="CP" />
```

### 尺寸

使用size屬性更改頭像的大小。

```html
<!-- 特大：size-16 (64px) -->
<flux:avatar size="xl" src="https://unavatar.io/x/calebporzio" />
<!-- 大：size-12 (48px) -->
<flux:avatar size="lg" src="https://unavatar.io/x/calebporzio" />
<!-- 預設：size-10 (40px) -->
<flux:avatar src="https://unavatar.io/x/calebporzio" />
<!-- 小：size-8 (32px) -->
<flux:avatar size="sm" src="https://unavatar.io/x/calebporzio" />
<!-- 特小：size-6 (24px) -->
<flux:avatar size="xs" src="https://unavatar.io/x/calebporzio" />
```

### 圖標

使用icon屬性顯示圖標而非圖片。

```html
<flux:avatar icon="user" />
<flux:avatar icon="phone" />
<flux:avatar icon="computer-desktop" />
```

### 顏色

使用color屬性更改頭像的顏色。

```html
<flux:avatar name="Caleb Porzio" color="red" />
<flux:avatar name="Caleb Porzio" color="blue" />
<!-- 更多顏色選項... -->
```

### 自動顏色

根據用戶名稱確定性地生成顏色。

```html
<flux:avatar name="Caleb Porzio" color="auto" />
<!-- 使用color:seed生成基於固定值（如用戶ID）的一致顏色 -->
<flux:avatar name="Caleb Porzio" color="auto" color:seed="{{ $user->id }}" />
```

### 圓形

使用circle屬性使頭像變為圓形。

```html
<flux:avatar circle src="https://unavatar.io/x/calebporzio" />
```

### 徽章

可以用多種方式為頭像添加徽章，從簡單的圓點到數字或表情符號。

```html
<flux:avatar badge badge:color="green" badge:circle src="https://unavatar.io/x/calebporzio" />
<flux:avatar badge="25" src="https://unavatar.io/x/calebporzio" />
<flux:avatar circle badge="👍" badge:circle src="https://unavatar.io/x/calebporzio" />
```

### 群組

將頭像堆疊在一起。

```html
<flux:avatar.group>
    <flux:avatar src="https://unavatar.io/x/calebporzio" />
    <flux:avatar src="https://unavatar.io/github/hugosaintemarie" />
    <flux:avatar src="https://unavatar.io/github/joshhanley" />
    <flux:avatar>3+</flux:avatar>
</flux:avatar.group>
```

### 參數參考

#### flux:avatar

| 屬性 | 說明 |
| --- | --- |
| name | 顯示為縮寫的用戶名稱。若提供且沒有initials，將用於自動生成縮寫 |
| src | 顯示為頭像的圖片URL |
| initials | 未提供src時顯示的自定義縮寫。若提供，將覆蓋name |
| alt | 頭像圖片的替代文本 (預設：若提供則為name) |
| size | 頭像大小。選項：xs (24px)、sm (32px)、(預設：40px)、lg (48px) |
| color | 顯示縮寫或圖標時的背景顏色 |
| color:seed | 當color="auto"時用於確定性生成一致顏色的值。用於使用用戶ID生成一致顏色 |
| circle | 如存在或為true，則使頭像完全為圓形而非圓角 |
| icon | 顯示圖標而非圖片或縮寫時的圖標名稱 |
| icon:variant | 使用的圖標變體。選項：outline、solid。預設：solid |
| tooltip | 懸停頭像時顯示的提示文本 |
| tooltip:position | 提示框的位置。選項：top、right、bottom、left。預設：top |
| badge | 顯示為徽章的內容。可以是字符串、布爾值或插槽 |
| badge:color | 徽章的顏色 |
| badge:circle | 如存在或為true，使徽章完全為圓形而非略微圓角 |
| badge:position | 徽章的位置。選項：top left、top right、bottom left、bottom right。預設：bottom right |
| badge:variant | 徽章的變體。選項：solid、outline。預設：solid |
| as | 將頭像渲染為的元素。選項：button、div (預設) |
| href | 連結到的URL，使頭像成為連結元素 |

## Badge 徽章

突出顯示諸如狀態、類別或計數等信息。

### 基本用法

```html
<flux:badge color="lime">New</flux:badge>
```

### 尺寸

使用size屬性在三種不同大小之間選擇。

```html
<flux:badge size="sm">Small</flux:badge>
<flux:badge>Default</flux:badge>
<flux:badge size="lg">Large</flux:badge>
```

### 圖標

使用icon和icon:trailing屬性為徽章添加圖標。

```html
<flux:badge icon="user-circle">Users</flux:badge>
<flux:badge icon="document-text">Files</flux:badge>
<flux:badge icon:trailing="video-camera">Videos</flux:badge>
```

### 藥丸樣式

使用variant="pill"屬性顯示完全圓角的徽章。

```html
<flux:badge variant="pill" icon="user">Users</flux:badge>
```

### 按鈕形式

將徽章包裹在button元素中使整個徽章可點擊。

```html
<flux:badge as="button" variant="pill" icon="plus" size="lg">Amount</flux:badge>
```

### 關閉按鈕

通過附加關閉按鈕使徽章可移除。

```html
<flux:badge>
    Admin <flux:badge.close />
</flux:badge>
```

### 顏色

選擇一系列顏色以區分徽章並傳達情感。

```html
<flux:badge color="zinc">Zinc</flux:badge>
<flux:badge color="red">Red</flux:badge>
<!-- 更多顏色選項... -->
```

### 實心樣式

用於更重要的狀態指示器或警報的粗體、高對比度徽章。

```html
<flux:badge variant="solid" color="zinc">Zinc</flux:badge>
<flux:badge variant="solid" color="red">Red</flux:badge>
<!-- 更多顏色選項... -->
```

### 內嵌

如果您在內聯文本旁使用徽章，由於徽章周圍的額外填充，可能會遇到間距問題。使用inset屬性為徽章添加負邊距以避免這種情況。

```html
<flux:heading>
    Page builder <flux:badge color="lime" inset="top bottom">New</flux:badge>
</flux:heading>
```

### 參數參考

#### flux:badge

| 屬性 | 說明 |
| --- | --- |
| color | 徽章顏色（例如zinc、red、blue）。預設：zinc |
| size | 徽章大小。選項：sm、lg |
| variant | 徽章樣式變體。選項：pill |
| icon | 在徽章文本前顯示的圖標名稱 |
| icon:trailing | 在徽章文本後顯示的圖標名稱 |
| icon:variant | 圖標變體。選項：outline、solid、mini、micro。預設：mini |
| as | 將徽章渲染為的HTML元素。選項：button。預設：div |
| inset | 添加特定側面的負邊距。選項：top、bottom、left、right，或四者的任意組合 |

#### flux:badge.close

| 屬性 | 說明 |
| --- | --- |
| icon | 顯示的圖標名稱。預設：x-mark |
| icon:variant | 圖標變體。選項：outline、solid、mini、micro。預設：mini |

## Breadcrumbs 麵包屑

幫助用戶導航並了解他們在應用程序中的位置。

### 基本用法

```html
<flux:breadcrumbs>
    <flux:breadcrumbs.item href="#">Home</flux:breadcrumbs.item>
    <flux:breadcrumbs.item href="#">Blog</flux:breadcrumbs.item>
    <flux:breadcrumbs.item>Post</flux:breadcrumbs.item>
</flux:breadcrumbs>
```

### 斜線分隔符

使用斜線而非箭頭分隔麵包屑項目。

```html
<flux:breadcrumbs>
    <flux:breadcrumbs.item href="#" separator="slash">Home</flux:breadcrumbs.item>
    <flux:breadcrumbs.item href="#" separator="slash">Blog</flux:breadcrumbs.item>
    <flux:breadcrumbs.item separator="slash">Post</flux:breadcrumbs.item>
</flux:breadcrumbs>
```

### 帶圖標

為特定麵包屑項目使用圖標而非文本。

```html
<flux:breadcrumbs>
    <flux:breadcrumbs.item href="#" icon="home" />
    <flux:breadcrumbs.item href="#">Blog</flux:breadcrumbs.item>
    <flux:breadcrumbs.item>Post</flux:breadcrumbs.item>
</flux:breadcrumbs>
```

### 帶省略號

用省略號截斷長麵包屑列表。

```html
<flux:breadcrumbs>
    <flux:breadcrumbs.item href="#" icon="home" />
    <flux:breadcrumbs.item icon="ellipsis-horizontal" />
    <flux:breadcrumbs.item>Post</flux:breadcrumbs.item>
</flux:breadcrumbs>
```

### 帶省略號下拉選單

將長麵包屑列表截斷為單個省略號下拉選單。

```html
<flux:breadcrumbs>
    <flux:breadcrumbs.item href="#" icon="home" />
    <flux:breadcrumbs.item>
        <flux:dropdown>
            <flux:button icon="ellipsis-horizontal" variant="ghost" size="sm" />
            <flux:navmenu>
                <flux:navmenu.item>Client</flux:navmenu.item>
                <flux:navmenu.item icon="arrow-turn-down-right">Team</flux:navmenu.item>
                <flux:navmenu.item icon="arrow-turn-down-right">User</flux:navmenu.item>
            </flux:navmenu>
        </flux:dropdown>
    </flux:breadcrumbs.item>
    <flux:breadcrumbs.item>Post</flux:breadcrumbs.item>
</flux:breadcrumbs>
```

### 參數參考

#### flux:breadcrumbs

| 插槽 | 說明 |
| --- | --- |
| default | 要顯示的麵包屑項目 |

#### flux:breadcrumbs.item

| 屬性 | 說明 |
| --- | --- |
| href | 麵包屑項目連結到的URL。若省略，則渲染為不可點擊的文本 |
| icon | 在徽章文本前顯示的圖標名稱 |
| icon:variant | 圖標變體。選項：outline、solid、mini、micro。預設：mini |
| separator | 顯示為分隔符的圖標名稱。預設：chevron-right |

## Button 按鈕

用於您的應用程序的功能強大且可組合的按鈕組件。

### 基本用法

```html
<flux:button>Button</flux:button>
```

### 變體

使用variant屬性更改按鈕的視覺樣式。

主要按鈕應謹慎使用；主要用於表單提交。

```html
<flux:button>Default</flux:button>
<flux:button variant="primary">Primary</flux:button>
<flux:button variant="filled">Filled</flux:button>
<flux:button variant="danger">Danger</flux:button>
<flux:button variant="ghost">Ghost</flux:button>
<flux:button variant="subtle">Subtle</flux:button>
```

### 尺寸

預設按鈕尺寸適用於大多數情況，但這裡有一些額外的尺寸選項用於獨特情況。

```html
<flux:button>Base</flux:button>
<flux:button size="sm">Small</flux:button>
<flux:button size="xs">Extra small</flux:button>
```

### 圖標

自動調整大小和樣式的按鈕圖標。

```html
<flux:button icon="ellipsis-horizontal" />
<flux:button icon="arrow-down-tray">Export</flux:button>
<flux:button icon:trailing="chevron-down">Open</flux:button>
<flux:button icon="x-mark" variant="subtle" />
```

### 加載中

帶有wire:click或type="submit"的按鈕將在網絡請求期間自動顯示加載指示器並禁用指針事件。

```html
<flux:button wire:click="save">
    Save changes
</flux:button>
```

您可以使用:loading="false"禁用此行為。

```html
<flux:button wire:click="save" :loading="false">
```

### 全寬

跨越容器整個寬度的按鈕。

```html
<flux:button variant="primary" class="w-full">Send invite</flux:button>
```

### 按鈕組

將相關按鈕融合為具有共享邊框的組。

```html
<flux:button.group>
    <flux:button>Oldest</flux:button>
    <flux:button>Newest</flux:button>
    <flux:button>Top</flux:button>
</flux:button.group>
```

### 圖標組

將多個圖標按鈕融合為視覺上連結的組。

```html
<flux:button.group>
    <flux:button icon="bars-3-bottom-left"></flux:button>
    <flux:button icon="bars-3"></flux:button>
    <flux:button icon="bars-3-bottom-right"></flux:button>
</flux:button.group>
```

### 附加按鈕

將圖標按鈕附加或前置到另一個按鈕，以添加額外功能。

```html
<flux:button.group>
    <flux:button>New product</flux:button>
    <flux:button icon="chevron-down"></flux:button>
</flux:button.group>
```

### 作為連結

通過傳遞href屬性將HTML a標籤顯示為按鈕。

```html
<flux:button
    href="https://google.com"
    icon:trailing="arrow-up-right">
    Visit Google
</flux:button>
```

### 作為輸入

要將按鈕顯示為輸入，將as="button"傳遞給輸入組件。

```html
<flux:input as="button" placeholder="Search..." icon="magnifying-glass" kbd="⌘K" />
```

### 方形

使按鈕的高度和寬度相等。對於僅有圖標的按鈕，Flux會自動執行此操作。

```html
<flux:button square>...</flux:button>
```

### 內嵌

使用ghost或subtle按鈕變體時，可以使用inset屬性來消除任何不可見的填充以獲得更好的對齊。

```html
<div class="flex justify-between">
    <flux:heading>Post successfully created.</flux:heading>
    <flux:button size="sm" icon="x-mark" variant="ghost" inset />
</div>
```

### 參數參考

#### flux:button

| 屬性 | 說明 |
| --- | --- |
| as | 將按鈕渲染為的HTML標籤。選項：button (預設)、a、div |
| href | 當按鈕用作錨點標籤時連結到的URL |
| type | 按鈕的HTML類型屬性。選項：button (預設)、submit |
| variant | 按鈕的視覺樣式。選項：outline、primary、filled、danger、ghost、subtle。預設：outline |
| size | 按鈕大小。選項：base (預設)、sm、xs |
| icon | 在按鈕開頭顯示的圖標名稱 |
| icon:variant | 圖標的視覺樣式。選項：outline (預設)、solid、mini、micro |
| icon:trailing | 在按鈕末尾顯示的圖標名稱 |
| square | 如果為true，則使按鈕為方形。（適用於僅有圖標的按鈕） |
| inset | 為特定側面添加負邊距。選項：top、bottom、left、right，或四者的任意組合 |
| loading | 如果為true，則在與wire:click或type="submit"一起使用時顯示加載指示器並禁用按鈕。若為false，則按鈕完全不會顯示加載指示器。預設：true |
| tooltip | 懸停按鈕時顯示在提示框中的文本 |
| tooltip:position | 提示框的位置。選項：top、bottom、left、right。預設：top |
| tooltip:kbd | 懸停按鈕時顯示在鍵盤快捷鍵提示框中的文本 |
| kbd | 懸停按鈕時顯示在鍵盤快捷鍵提示框中的文本 |

#### flux:button.group

| 插槽 | 說明 |
| --- | --- |
| default | 要分組在一起的按鈕 |

## Calendar 日曆

用於日期選擇的靈活日曆組件。支持單一日期、多個日期和日期範圍。非常適合調度和預訂系統。

### 基本用法

使用具有Y-m-d格式的日期字符串的value屬性設置初始選定日期：

```html
<flux:calendar value="2025-03-25" />
```

您也可以使用wire:model將選擇綁定到Livewire屬性：

```html
<flux:calendar wire:model="date" />
```

現在您可以使用Carbon實例或Y-m-d格式的字符串從Livewire組件訪問所選日期：

```php
<?php
use Illuminate\Support\Carbon;
use Livewire\Component;

class BookAppointment extends Component {
    public Carbon $date;
    
    public function mount() {
        $this->date = now();
    }
}
```

### 多個日期

選擇多個非連續日期。

```html
<flux:calendar multiple />
```

使用value屬性中的逗號分隔列表設置多個選定日期：

```html
<flux:calendar
    multiple
    value="2025-03-02,2025-03-05,2025-03-15"/>
```

您也可以使用wire:model將選擇綁定到Livewire屬性：

```html
<flux:calendar multiple wire:model="dates" />
```

### 日期範圍

選擇日期範圍。

```html
<flux:calendar mode="range" />
```

使用value屬性設置初始範圍，其中開始和結束日期用斜杠分隔：

```html
<flux:calendar mode="range" value="2025-03-02/2025-03-06" />
```

您也可以使用wire:model將選擇綁定到Livewire屬性：

```html
<flux:calendar mode="range" wire:model="range" />
```

### 尺寸

調整日曆的大小以適應您的佈局。可用尺寸包括xs、sm、lg、xl和2xl。

```html
<flux:calendar size="xl" />
```

### 靜態

創建用於顯示目的的非交互日曆。

```html
<flux:calendar
    static
    value="2025-03-25"
    size="xs"
    :navigation="false"/>
```

### 最小/最大日期

通過設置最小和最大邊界來限制可選擇的日期範圍。

```html
<flux:calendar max="2025-03-25" />
```

您還可以使用方便的"today"簡寫：

```html
<!-- 阻止選擇今天之前的日期... -->
<flux:calendar min="today" />
<!-- 阻止選擇今天之後的日期... -->
<flux:calendar max="today" />
```

### 不可用日期

禁用特定日期被選中。用於封鎖假日、顯示已預訂日期或指示不可用時間段。

```html
<flux:calendar unavailable="2025-03-24,2025-03-26" />
```

### 今日快捷鍵

添加快捷按鈕以快速導航到今天的日期。查看不同月份時，它會跳轉到當前月份。已經查看當前月份時，它會選擇今天的日期。

```html
<flux:calendar with-today />
```

### 可選擇的頭部

通過使標題中的月份和年份可選擇來啟用快速導航。

```html
<flux:calendar selectable-header />
```

### 固定週數

在每個月中顯示一致數量的週。防止在導航不同週數的月份之間時佈局發生變化。

```html
<flux:calendar fixed-weeks />
```

### 開始日

默認情況下，一週的第一天將根據用戶的區域設置自動設置。您可以通過將start-day屬性設置為一週的任何一天來覆蓋此設置。

```html
<flux:calendar start-day="1" />
```

### 打開到

設置日曆將打開到的日期。否則，日曆默認為所選日期的月份，或當前月份。

```html
<flux:calendar open-to="2026-04-01" />
```

### 週數

顯示每週的週數。

```html
<flux:calendar week-numbers />
```

### 本地化

默認情況下，日曆將使用瀏覽器的區域設置（例如navigator.language）。

您可以通過將locale屬性設置為任何有效的區域設置字符串來覆蓋此行為：

```html
<flux:calendar locale="ja-JP" />
```

### DateRange對象

Flux提供了一個專門的Flux\DateRange對象，它擴展了原生的CarbonPeriod類。這個對象提供了許多便利的方法來輕鬆創建和管理日期範圍。

使用wire:model.live綁定range屬性到DateRange對象：

```html
<flux:calendar wire:model.live="range" />
```

在組件中，您可以將range屬性類型提示為DateRange對象：

```php
<?php
use Livewire\Component;
use Flux\DateRange;

class Dashboard extends Component {
    public DateRange $range;
}
```

### 參數參考

#### flux:calendar

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將日曆綁定到Livewire屬性 |
| name | 日曆的name屬性。使用wire:model時自動設置 |
| value | 所選日期。格式取決於模式：單一日期(Y-m-d)、多個日期(逗號分隔的Y-m-d)或範圍(Y-m-d/Y-m-d) |
| mode | 選擇模式。選項：single (預設)、multiple、range |
| min | 最早可選日期。可以是日期字符串或"today" |
| max | 最晚可選日期。可以是日期字符串或"today" |
| size | 日曆大小。選項：base (預設)、xs、sm、lg、xl、2xl |
| months | 要顯示的月份數。預設：單一/多個模式為1，範圍模式為2 |
| min-range | 在範圍模式下可選擇的最小天數 |
| max-range | 在範圍模式下可選擇的最大天數 |
| navigation | 如果為false，隱藏月份導航控件。預設：true |
| static | 如果為true，使日曆為非交互式（僅顯示）。預設：false |
| multiple | 如果為true，啟用多日期選擇模式。預設：false |
| week-numbers | 如果為true，在日曆中顯示週數。預設：false |
| selectable-header | 如果為true，顯示月份和年份下拉列表以便快速導航。預設：false |
| with-today | 如果為true，顯示按鈕以快速導航到今天的日期。預設：false |
| with-inputs | 如果為true，在日曆頂部顯示日期輸入以進行手動日期輸入。預設：false |
| locale | 設置日曆的區域設置。例如：fr、en-US、ja-JP |

#### DateRange對象

當使用`mode="range"`時處理日期範圍的專用對象。

| 方法 | 說明 |
| --- | --- |
| $range->start() | 獲取開始日期作為Carbon實例 |
| $range->end() | 獲取結束日期作為Carbon實例 |
| $range->days() | 獲取範圍中的天數 |
| $range->contains(date) | 檢查範圍是否包含特定日期 |
| $range->length() | 獲取範圍的天數長度 |
| $range->toArray() | 獲取帶有start和end鍵的範圍數組 |
| $range->preset() | 獲取當前預設為DateRangePreset枚舉值（如果有） |

| 靜態方法 | 說明 |
| --- | --- |
| DateRange::today() | 創建今天的DateRange |
| DateRange::yesterday() | 創建昨天的DateRange |
| DateRange::thisWeek() | 創建當前週的DateRange |
| DateRange::lastWeek() | 創建上一週的DateRange |
| DateRange::last7Days() | 創建過去7天的DateRange |
| DateRange::thisMonth() | 創建當前月的DateRange |
| DateRange::lastMonth() | 創建上個月的DateRange |
| DateRange::thisYear() | 創建當前年的DateRange |
| DateRange::lastYear() | 創建上一年的DateRange |
| DateRange::yearToDate() | 創建從1月1日到今天的DateRange |

## Card 卡片

相關內容的容器，如表單、警報或數據列表。

### 基本用法

```html
<flux:card class="space-y-6">
    <div>
        <flux:heading size="lg">Log in to your account</flux:heading>
        <flux:text class="mt-2">Welcome back!</flux:text>
    </div>
    <div class="space-y-6">
        <flux:input label="Email" type="email" placeholder="Your email address" />
        <flux:field>
            <div class="mb-3 flex justify-between">
                <flux:label>Password</flux:label>
                <flux:link href="#" variant="subtle" class="text-sm">Forgot password?</flux:link>
            </div>
            <flux:input type="password" placeholder="Your password" />
            <flux:error name="password" />
        </flux:field>
    </div>
    <div class="space-y-2">
        <flux:button variant="primary" class="w-full">Log in</flux:button>
        <flux:button variant="ghost" class="w-full">Sign up for a new account</flux:button>
    </div>
</flux:card>
```

### 小型卡片

使用小型卡片變體來顯示緊湊內容，如通知、警報或簡短摘要。

```html
<a href="#" aria-label="Latest on our blog">
    <flux:card size="sm" class="hover:bg-zinc-50 dark:hover:bg-zinc-700">
        <flux:heading class="flex items-center gap-2">Latest on our blog <flux:icon name="arrow-up-right" class="ml-auto text-zinc-400" variant="micro" /></flux:heading>
        <flux:text class="mt-2">Stay up to date with our latest insights, tutorials, and product updates.</flux:text>
    </flux:card>
</a>
```

### 簡單卡片

老實說，卡片就是一個帶有邊框和一些填充的div。

```html
<flux:card>
    <flux:heading size="lg">Are you sure?</flux:heading>
    <flux:text class="mt-2 mb-4">
        <p>Your post will be deleted permanently.</p>
        <p>This action cannot be undone.</p>
    </flux:text>
    <flux:button variant="danger">Delete</flux:button>
</flux:card>
```

### 參數參考

#### flux:card

| 插槽 | 說明 |
| --- | --- |
| default | 在卡片內顯示的內容。可以包括標題、文本、表單、按鈕和其他組件 |

| CSS | 說明 |
| --- | --- |
| class | 應用於卡片的額外CSS類。常見用途：space-y-6用於子元素之間的間距，max-w-md用於寬度控制，p-0用於移除填充 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-card | 應用於根元素以進行樣式設置和識別 |

## Callout 標註

突出顯示重要信息或引導用戶執行關鍵操作。

### 基本用法

```html
<flux:callout icon="clock">
    <flux:callout.heading>Upcoming maintenance</flux:callout.heading>
    <flux:callout.text>
        Our servers will be undergoing scheduled maintenance this Sunday from 2 AM - 5 AM UTC. Some services may be temporarily unavailable.
        <flux:callout.link href="#">Learn more</flux:callout.link>
    </flux:callout.text>
</flux:callout>
```

### 標題內的圖標

為了更緊湊的佈局，可以將圖標放在標題內而不是根組件。

```html
<flux:callout>
    <flux:callout.heading icon="newspaper">Policy update</flux:callout.heading>
    <flux:callout.text>We've updated our Terms of Service and Privacy Policy. Please review them to stay informed.</flux:callout.text>
</flux:callout>
```

### 帶操作按鈕

向標註添加操作按鈕，為用戶提供明確的下一步。

```html
<flux:callout icon="clock">
    <flux:callout.heading>Subscription expiring soon</flux:callout.heading>
    <flux:callout.text>Your current plan will expire in 3 days. Renew now to avoid service interruption and continue accessing premium features.</flux:callout.text>
    <x-slot name="actions">
        <flux:button>Renew now</flux:button>
        <flux:button variant="ghost" href="/pricing">View plans</flux:button>
    </x-slot>
</flux:callout>
```

### 內聯操作

使用inline屬性內聯顯示操作。

```html
<flux:callout icon="cube" variant="secondary" inline>
    <flux:callout.heading>Your package is delayed</flux:callout.heading>
    <x-slot name="actions">
        <flux:button>Track order -></flux:button>
        <flux:button variant="ghost">Reschedule</flux:button>
    </x-slot>
</flux:callout>
```

### 可關閉

使用controls插槽添加關閉按鈕，允許用戶關閉不再關心的標註。

```html
<flux:callout icon="bell" variant="secondary" inline x-data="{ visible: true }" x-show="visible">
    <flux:callout.heading class="flex gap-2 @max-md:flex-col items-start">Upcoming meeting <flux:text>10:00 AM</flux:text></flux:callout.heading>
    <x-slot name="controls">
        <flux:button icon="x-mark" variant="ghost" x-on:click="visible = false" />
    </x-slot>
</flux:callout>
```

### 變體

使用預定義的變體傳達特定的語氣或緊急程度。

```html
<flux:callout variant="secondary" icon="information-circle" heading="Your account has been successfully created." />
<flux:callout variant="success" icon="check-circle" heading="Your account is verified and ready to use." />
<flux:callout variant="warning" icon="exclamation-circle" heading="Please verify your account to unlock all features." />
<flux:callout variant="danger" icon="x-circle" heading="Something went wrong. Try again or contact support." />
```

### 顏色

使用color屬性更改標註的顏色以匹配您的用例。

```html
<flux:callout color="red" ... />
<flux:callout color="blue" ... />
<!-- 更多顏色選擇... -->
```

### 自定義圖標

使用圖標插槽使用自定義圖標以匹配您的品牌或特定用例。

```html
<flux:callout>
    <x-slot name="icon">
        <!-- 自定義圖標 -->
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-alarm-clock"><circle cx="12" cy="13" r="8"/><path d="M12 9v4l2 2"/><path d="M5 3 2 6"/><path d="m22 6-3-3"/><path d="M6.38 18.7 4 21"/><path d="M17.64 18.67 20 21"/></svg>
    </x-slot>
    <flux:callout.heading>Notification system updated</flux:callout.heading>
    <flux:callout.text>
        <p>We've improved our notification system to deliver alerts faster and more reliably.</p>
    </flux:callout.text>
</flux:callout>
```

### 參數參考

#### flux:callout

| 屬性 | 說明 |
| --- | --- |
| icon | 顯示在標題旁邊的圖標名稱（例如clock） |
| icon:variant | 顯示在標題旁邊的圖標的變體（例如outline） |
| variant | 選項：secondary、success、warning、danger。預設：secondary |
| color | 自定義顏色（例如red、blue） |
| inline | 如果為true，操作將內聯顯示。預設：false |
| heading | flux:callout.heading的簡寫 |
| text | flux:callout.text的簡寫 |

#### 插槽

| 插槽 | 說明 |
| --- | --- |
| icon | 顯示在標題旁邊的自定義圖標 |
| actions | 標註內的按鈕或連結（flux:callout.button） |
| controls | 放置在標註右上角的額外UI元素（例如關閉按鈕） |

#### flux:callout.heading

| 屬性 | 說明 |
| --- | --- |
| icon | 將圖標移到標題內而不是標註根部 |
| icon:variant | 顯示在標題旁邊的圖標的變體（例如outline） |

#### flux:callout.link

| 屬性 | 說明 |
| --- | --- |
| href | 連結指向的URL |
| external | 如果為true，連結將在新標籤中打開。預設：false |

## Chart 圖表

Flux的Chart組件是一個輕量級、零依賴的工具，用於在您的Livewire應用程序中構建圖表。它設計得簡單但極其靈活，因此您可以根據自己的需要組裝和設置圖表的樣式。

### 區域圖

類似於折線圖，但在線下方有填充區域。非常適合顯示累計值或強調音量。

### 多條線

您可以通過包含多個<flux:chart.line>組件在同一圖表中繪製多條線。這有助於比較不同的數據系列。

### 即時摘要

Flux圖表支持即時摘要，當用戶懸停在圖表上時會更新。要啟用此功能，您可以在<flux:chart>組件中包含<flux:chart.summary>組件。

### 火花線

用於表格或儀表板的緊湊、單行圖表，用於快速視覺洞察。非常適合股價、內存使用或其他小規模趨勢。

### 圖表填充

默認情況下，圖表將以所有側面8px的填充渲染。這是為了防止圖表的溢出內容（如刻度標籤或描邊線）在容器邊緣被切斷。

### 軸刻度

您可以通過在<flux:chart.axis>組件上設置scale屬性來配置軸及其刻度的比例：

```html
<flux:chart.axis axis="y" scale="linear">
    <!-- ... -->
</flux:chart.axis>
```

有三種可用的比例類型：
- categorical：用於類別數據，如名稱或類別。
- linear：用於數值數據，如股價或溫度。
- time：用於日期和時間數據。

### 軸線

默認情況下，軸不包括可見的基線。您可以使用<flux:chart.axis.line>在相應的軸內添加軸線：

```html
<flux:chart.svg>
    <!-- ... -->
    <flux:chart.axis axis="x">
        <!-- 水平"X"軸線： -->
        <flux:chart.axis.line />
    </flux:chart.axis>
    <flux:chart.axis axis="y">
        <!-- 垂直"Y"軸線： -->
        <flux:chart.axis.line />
    </flux:chart.axis>
</flux:chart.svg>
```

### 零線

零線是表示軸上零值的線。只有當軸包含負值時，它才可見。

```html
<flux:chart.svg>
    <!-- ... -->
    <!-- 零線： -->
    <flux:chart.zero-line />
</flux:chart.svg>
```

### 網格線

您可以通過將<flux:chart.axis.grid>組件添加到適當的軸來渲染水平和垂直網格線：

```html
<flux:chart.svg>
    <!-- ... -->
    <flux:chart.axis axis="x">
        <!-- 垂直網格線： -->
        <flux:chart.axis.grid />
    </flux:chart.axis>
    <flux:chart.axis axis="y">
        <!-- 水平網格線： -->
        <flux:chart.axis.grid />
    </flux:chart.axis>
</flux:chart.svg>
```

### 刻度

您可以通過將<flux:chart.axis.mark>和/或<flux:chart.axis.tick>組件添加到適當的軸來渲染刻度標記線和標籤：

```html
<flux:chart.svg>
    <!-- ... -->
    <flux:chart.axis axis="x">
        <!-- X軸刻度標記線： -->
        <flux:chart.axis.mark />
        <!-- X軸刻度標籤： -->
        <flux:chart.axis.tick />
    </flux:chart.axis>
    <flux:chart.axis axis="y">
        <!-- Y軸刻度標記線： -->
        <flux:chart.axis.mark />
        <!-- Y軸刻度標籤： -->
        <flux:chart.axis.tick />
    </flux:chart.axis>
</flux:chart.svg>
```

### 刻度格式化

刻度標籤可以使用format屬性格式化。

在底層，format屬性被傳遞給Intl.NumberFormat構造函數。

這意味著您可以使用Intl.NumberFormat構造函數可用的任何格式化選項。

```html
<flux:chart.svg>
    <!-- ... -->
    <!-- 格式化X軸刻度標籤以顯示月份和日期： -->
    <flux:chart.axis axis="x" :format="['month' => 'long', 'day' => 'numeric']">
        <!-- X軸刻度標籤： -->
        <flux:chart.axis.tick />
    </flux:chart.axis>
    <!-- 格式化Y軸刻度標籤以顯示美元值： -->
    <flux:chart.axis axis="y" :format="['style' => 'currency', 'currency' => 'USD']">
        <!-- Y軸刻度標籤： -->
        <flux:chart.axis.tick />
    </flux:chart.axis>
</flux:chart.svg>
```

### 光標

當懸停在圖表上時添加垂直引導線以突出顯示特定點的值。可使用描邊樣式、顏色和虛線模式自定義。

要啟用光標，只需在<flux:chart.svg>內包含<flux:chart.cursor>：

```html
<flux:chart.svg>
    <!-- ... -->
    <flux:chart.cursor />
</flux:chart.svg>
```

### 工具提示

顯示懸停時的上下文數據。支持多個值和自定義格式以提高可讀性。

要啟用工具提示，請在<flux:chart>內包含<flux:chart.tooltip>：

```html
<flux:chart>
    <flux:chart.svg>
        <!-- ... -->
    </flux:chart.svg>
    <flux:chart.tooltip>
        <flux:chart.tooltip.heading field="date" />
        <flux:chart.tooltip.value field="visitors" label="Visitors" />
        <flux:chart.tooltip.value field="views" label="Views" :format="['notation' => 'compact']" />
    </flux:chart.tooltip>
</flux:chart>
```

### 圖例

識別圖表中的多個數據系列。每個圖例項目對應於一個不同的數據集。

```html
<flux:chart wire:model="data">
    <flux:chart.viewport class="aspect-3/1">
        <flux:chart.svg>
            <flux:chart.line class="text-blue-500" field="visitors" />
            <flux:chart.line class="text-red-500" field="views" />
        </flux:chart.svg>
    </flux:chart.viewport>
    <div class="flex justify-center gap-4 pt-4">
        <flux:chart.legend label="Visitors">
            <flux:chart.legend.indicator class="bg-blue-400" />
        </flux:chart.legend>
        <flux:chart.legend label="Views">
            <flux:chart.legend.indicator class="bg-red-400" />
        </flux:chart.legend>
    </div>
</flux:chart>
```

### 摘要

以粗體、易讀的格式顯示數據集中的單個值。非常適合關鍵績效指標。

```html
<flux:chart wire:model="data">
    <flux:chart.summary>
        <flux:chart.summary.value field="visitors" :format="['notation' => 'compact']" />
    </flux:chart.summary>
    <flux:chart.viewport class="aspect-[3/1]">
        <!-- ... -->
    </flux:chart.viewport>
</flux:chart>
```

## Checkbox 複選框

從一組中選擇一個或多個選項。

### 基本用法

```html
<flux:checkbox wire:model="terms" label="I agree to the terms and conditions" />
```

### 複選框組

垂直組織相關複選框列表。

使用複選框組時，您可以將wire:model添加到組元素或單個複選框。

```html
<flux:checkbox.group wire:model="notifications" label="Notifications">
    <flux:checkbox label="Push notifications" value="push" checked />
    <flux:checkbox label="Email" value="email" checked />
    <flux:checkbox label="In-app alerts" value="app" />
    <flux:checkbox label="SMS" value="sms" />
</flux:checkbox.group>
```

### 帶描述

將每個複選框的描述直接對齊在其標籤下方。

```html
<flux:checkbox.group wire:model="subscription" label="Subscription preferences">
    <flux:checkbox checked
        value="newsletter"
        label="Newsletter"
        description="Receive our monthly newsletter with the latest updates and offers."
    />
    <flux:checkbox
        value="updates"
        label="Product updates"
        description="Stay informed about new features and product updates."
    />
    <flux:checkbox
        value="invitations"
        label="Event invitations"
        description="Get invitations to our exclusive events and webinars."
    />
</flux:checkbox.group>
```

### 水平字段集

水平組織一組相關的複選框。

```html
<flux:fieldset>
    <flux:legend>Languages</flux:legend>
    <flux:description>Choose the languages you want to support.</flux:description>
    <div class="flex gap-4 *:gap-x-2">
        <flux:checkbox checked value="english" label="English" />
        <flux:checkbox checked value="spanish" label="Spanish" />
        <flux:checkbox value="french" label="French" />
        <flux:checkbox value="german" label="German" />
    </div>
</flux:fieldset>
```

### 全選

使用單個複選框控制一組複選框。

```html
<flux:checkbox.group>
    <flux:checkbox.all />
    <flux:checkbox checked />
    <flux:checkbox />
    <flux:checkbox />
</flux:checkbox.group>
```

### 已選中

默認將複選框標記為已選中。

```html
<flux:checkbox checked />
```

### 禁用

防止用戶與複選框交互和修改。

```html
<flux:checkbox disabled />
```

### 複選框卡片

標準複選框的帶邊框替代方案。

```html
<flux:checkbox.group wire:model="subscription" label="Subscription preferences" variant="cards" class="max-sm:flex-col">
    <flux:checkbox checked
        value="newsletter"
        label="Newsletter"
        description="Get the latest updates and offers."
    />
    <flux:checkbox
        value="updates"
        label="Product updates"
        description="Learn about new features and products."
    />
    <flux:checkbox
        value="invitations"
        label="Event invitations"
        description="Invitatations to exclusive events."
    />
</flux:checkbox.group>
```

### 垂直卡片

您可以通過簡單地將flex-col類添加到組容器來垂直排列一組複選框卡片。

```html
<flux:checkbox.group label="Subscription preferences" variant="cards" class="flex-col">
    <!-- ... -->
</flux:checkbox.group>
```

### 帶圖標的卡片

```html
<flux:checkbox.group label="Subscription preferences" variant="cards" class="flex-col">
    <flux:checkbox checked
        value="newsletter"
        icon="newspaper"
        label="Newsletter"
        description="Get the latest updates and offers."
    />
    <!-- ... -->
</flux:checkbox.group>
```

### 自定義卡片內容

您可以通過flux:checkbox組件插槽組合自己的自定義卡片。

```html
<flux:checkbox.group label="Subscription preferences" variant="cards" class="flex-col">
    <flux:checkbox checked value="newsletter">
        <flux:checkbox.indicator />
        <div class="flex-1">
            <flux:heading class="leading-4">Newsletter</flux:heading>
            <flux:text size="sm" class="mt-2">Get the latest updates and offers.</flux:text>
        </div>
    </flux:checkbox>
    <!-- ... -->
</flux:checkbox.group>
```

### 參數參考

#### flux:checkbox

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將複選框綁定到Livewire屬性 |
| name | 複選框的name屬性。使用wire:model時自動設置 |
| label | 顯示在複選框旁邊的標籤文本。提供時，將複選框包裝在具有相鄰標籤的結構中 |
| description | 顯示在複選框下方的幫助文本。與標籤一起提供時，出現在標籤和複選框之間 |
| value | 與複選框關聯的值。在組中使用時，當複選框被選中時，此值將包含在組的wire:model返回的數組中 |
| checked | 默認將複選框設置為選中狀態 |
| indeterminate | 將複選框設置為不確定狀態，用破折號而非對勾表示。適用於"全選"複選框，當只有部分項目被選中時 |
| disabled | 阻止用戶與複選框交互 |
| invalid | 對複選框應用錯誤樣式 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-checkbox | 應用於根元素以進行樣式設置和識別 |
| data-checked | 應用於複選框被選中時 |
| data-indeterminate | 應用於複選框處於不確定狀態時 |

#### flux:checkbox.group

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將複選框組綁定到Livewire屬性。該值將是所選複選框值的數組 |
| name | 複選框組的name屬性。使用wire:model時自動設置 |
| label | 顯示在複選框組上方的標籤文本。提供時，將組包裝在flux:field組件中，並帶有相鄰的flux:label組件 |
| description | 顯示在組標籤下方的幫助文本。與標籤一起提供時，出現在標籤和複選框之間 |
| variant | 組的視覺樣式。選項：default、cards |
| disabled | 阻止用戶與組中的所有複選框交互 |
| invalid | 對組中的所有複選框應用錯誤樣式 |

| 插槽 | 說明 |
| --- | --- |
| default | 要組合在一起的複選框。可以包括flux:checkbox、flux:checkbox.all和其他元素 |

#### flux:checkbox.all

一個特殊的複選框，控制其組內的所有複選框。當所有複選框都被選中時它變為選中，當沒有選中時變為未選中，當部分（但不是全部）被選中時變為不確定狀態。

| 屬性 | 說明 |
| --- | --- |
| label | 顯示在複選框旁邊的文本標籤 |
| description | 顯示在複選框下方的幫助文本 |
| disabled | 阻止用戶與複選框交互 |

## Command 命令面板

可搜索的命令列表。

### 基本用法

```html
<flux:command>
    <flux:command.input placeholder="Search..." />
    <flux:command.items>
        <flux:command.item wire:click="..." icon="user-plus" kbd="⌘A">Assign to…</flux:command.item>
        <flux:command.item wire:click="..." icon="document-plus">Create new file</flux:command.item>
        <flux:command.item wire:click="..." icon="folder-plus" kbd="⌘⇧N">Create new project</flux:command.item>
        <flux:command.item wire:click="..." icon="book-open">Documentation</flux:command.item>
        <flux:command.item wire:click="..." icon="newspaper">Changelog</flux:command.item>
        <flux:command.item wire:click="..." icon="cog-6-tooth" kbd="⌘,">Settings</flux:command.item>
    </flux:command.items>
</flux:command>
```

### 作為模態框

以模態框形式打開命令面板，以快速訪問常用命令。

```html
<flux:modal.trigger name="search" shortcut="cmd.k">
    <flux:input as="button" placeholder="Search..." icon="magnifying-glass" kbd="⌘K" />
</flux:modal.trigger>

<flux:modal name="search" variant="bare" class="w-full max-w-[30rem] my-[12vh] max-h-screen overflow-y-hidden">
    <flux:command class="border-none shadow-lg inline-flex flex-col max-h-[76vh]">
        <flux:command.input placeholder="Search..." closable />
        <flux:command.items>
            <flux:command.item icon="user-plus" kbd="⌘A">Assign to…</flux:command.item>
            <flux:command.item icon="document-plus">Create new file</flux:command.item>
            <flux:command.item icon="folder-plus" kbd="⌘⇧N">Create new project</flux:command.item>
            <flux:command.item icon="book-open">Documentation</flux:command.item>
            <flux:command.item icon="newspaper">Changelog</flux:command.item>
            <flux:command.item icon="cog-6-tooth" kbd="⌘,">Settings</flux:command.item>
        </flux:command.items>
    </flux:command>
</flux:modal>
```

### 參數參考

#### flux:command

| 屬性 | 說明 |
| --- | --- |
| data-flux-command | 應用於根元素以進行樣式設置和識別 |

#### flux:command.input

| 屬性 | 說明 |
| --- | --- |
| clearable | 如果為true，當輸入有內容時顯示清除按鈕 |
| closable | 如果為true，顯示關閉按鈕以關閉命令面板 |
| icon | 顯示在輸入開頭的圖標名稱。預設：magnifying-glass |
| placeholder | 輸入為空時顯示的佔位文本 |

#### flux:command.items

命令項目的容器。無可用屬性。

#### flux:command.item

| 屬性 | 說明 |
| --- | --- |
| icon | 顯示在項目開頭的圖標名稱 |
| icon:variant | 圖標的視覺樣式。選項：outline（預設）、solid、mini、micro |
| kbd | 顯示在項目末尾的鍵盤快捷鍵提示（例如⌘K） |
| data-flux-command-item | 應用於項目元素以進行樣式設置和識別 |

## Date picker 日期選擇器

允許用戶通過日曆覆蓋選擇日期或日期範圍。非常適合篩選數據或安排事件。

### 基本用法

```html
<flux:date-picker value="2025-03-25" />
```

您也可以使用wire:model將選擇綁定到Livewire屬性：

```html
<flux:date-picker wire:model="date" />
```

### 輸入觸發器

將日期選擇器附加到日期輸入以進行更精確的日期選擇控制。

```html
<flux:date-picker wire:model="date">
    <x-slot name="trigger">
        <flux:date-picker.input />
    </x-slot>
</flux:date-picker>
```

### 範圍選擇器

啟用日期範圍選擇，用於報告、預訂系統或任何需要開始和結束日期的場景。

```html
<flux:date-picker mode="range" />
```

設置初始範圍，使用value屬性，其中開始和結束日期由斜線分隔：

```html
<flux:date-picker mode="range" value="2025-03-02/2025-03-06" />
```

### 範圍限制

控制可以選擇的日期範圍。

```html
<flux:date-picker mode="range" min-range="3" />
<flux:date-picker mode="range" max-range="10" />
```

### 帶輸入的範圍

為開始和結束日期使用單獨的輸入，為日期範圍選擇提供更清晰的界面。

```html
<flux:date-picker mode="range">
    <x-slot name="trigger">
        <div class="flex flex-col sm:flex-row gap-6 sm:gap-4">
            <flux:date-picker.input label="Start" />
            <flux:date-picker.input label="End" />
        </div>
    </x-slot>
</flux:date-picker>
```

### 預設範圍

允許用戶選擇常用範圍，如"最近7天"或"本月"。

```html
<flux:date-picker mode="range" with-presets />
```

您還可以使用presets屬性指定要顯示的預設範圍及其順序：

```html
<flux:date-picker
    mode="range"
    presets="today yesterday thisWeek last7Days thisMonth yearToDate allTime"
/>
```

### 今日快捷鍵

添加快捷按鈕以快速導航到今天的日期。

```html
<flux:date-picker with-today />
```

### 可選擇的頭部

通過使頭部中的月份和年份可選擇來啟用快速導航。

```html
<flux:date-picker selectable-header />
```

### 固定週數

在每個月中顯示一致數量的週。防止在導航不同週數的月份之間時佈局發生變化。

```html
<flux:date-picker fixed-weeks />
```

### 開始日

默認情況下，一週的第一天將根據用戶的區域設置自動設置。您可以通過將start-day屬性設置為一週的任何一天來覆蓋此設置。

```html
<flux:date-picker start-day="1" />
```

### 參數參考

#### flux:date-picker

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將日期選擇器綁定到Livewire屬性 |
| name | 日期選擇器的name屬性。使用wire:model時自動設置 |
| value | 所選日期。格式取決於模式：單一日期(Y-m-d)或範圍(Y-m-d/Y-m-d) |
| mode | 選擇模式。選項：single (預設)、range |
| min-range | 在範圍模式下可選擇的最小天數 |
| max-range | 在範圍模式下可選擇的最大天數 |
| min | 最早可選日期。可以是日期字符串或"today" |
| max | 最晚可選日期。可以是日期字符串或"today" |
| months | 要顯示的月份數。預設：單一模式為1，範圍模式為2 |
| label | 顯示在日期選擇器上方的標籤文本 |
| description | 顯示在日期選擇器下方的幫助文本 |
| description:trailing | 提供的描述將顯示在日期選擇器下方而非上方 |
| badge | 提供標籤時顯示在flux:label組件末尾的徽章文本 |
| placeholder | 未選擇日期時顯示的佔位文本。預設取決於模式 |
| size | 日曆日單元格的大小。選項：sm、default、lg、xl、2xl |
| week-numbers | 如果為true，在日曆中顯示週數 |
| selectable-header | 如果為true，顯示月份和年份下拉列表以便快速導航 |
| with-today | 如果為true，顯示按鈕以快速導航到今天的日期 |
| with-inputs | 如果為true，在日曆頂部顯示日期輸入以進行手動日期輸入 |
| with-confirmation | 如果為true，在應用所選日期前需要確認 |
| with-presets | 如果為true，顯示預設日期範圍。使用presets自定義可用選項 |
| presets | 以空格分隔的預設日期範圍列表。預設：today yesterday thisWeek last7Days thisMonth yearToDate allTime |
| clearable | 選擇日期時顯示清除按鈕 |
| disabled | 防止用戶與日期選擇器交互 |
| invalid | 對日期選擇器應用錯誤樣式 |
| locale | 設置日期選擇器的區域設置。例如：fr、en-US、ja-JP |

| 插槽 | 說明 |
| --- | --- |
| trigger | 打開日期選擇器的自定義觸發器元素。通常是flux:date-picker.input或flux:date-picker.button |

#### flux:date-picker.input

| 屬性 | 說明 |
| --- | --- |
| label | 顯示在輸入上方的標籤文本 |
| description | 顯示在輸入下方的幫助文本 |
| placeholder | 未選擇日期時顯示的佔位文本 |
| format | 顯示的日期格式字符串。預設：本地化格式 |
| clearable | 選擇日期時顯示清除按鈕 |
| disabled | 防止用戶與輸入交互 |
| invalid | 對輸入應用錯誤樣式 |

#### flux:date-picker.button

| 屬性 | 說明 |
| --- | --- |
| placeholder | 未選擇日期時顯示的文本 |
| size | 按鈕的大小。選項：sm、xs |
| clearable | 選擇日期時顯示清除按鈕 |
| disabled | 防止用戶與按鈕交互 |
| invalid | 對按鈕應用錯誤樣式 |

## Dropdown 下拉選單

可組合的下拉選單組件，可以處理簡單的導航選單和帶有複選框、單選框和子選單的複雜操作選單。

### 基本用法

```html
<flux:dropdown>
    <flux:button icon:trailing="chevron-down">Options</flux:button>
    <flux:menu>
        <flux:menu.item icon="plus">New post</flux:menu.item>
        <flux:menu.separator />
        <flux:menu.submenu heading="Sort by">
            <flux:menu.radio.group>
                <flux:menu.radio checked>Name</flux:menu.radio>
                <flux:menu.radio>Date</flux:menu.radio>
                <flux:menu.radio>Popularity</flux:menu.radio>
            </flux:menu.radio.group>
        </flux:menu.submenu>
        <flux:menu.submenu heading="Filter">
            <flux:menu.checkbox checked>Draft</flux:menu.checkbox>
            <flux:menu.checkbox checked>Published</flux:menu.checkbox>
            <flux:menu.checkbox>Archived</flux:menu.checkbox>
        </flux:menu.submenu>
        <flux:menu.separator />
        <flux:menu.item variant="danger" icon="trash">Delete</flux:menu.item>
    </flux:menu>
</flux:dropdown>
```

### 定位

通過position和align屬性自定義下拉選單的位置。您可以首先傳遞基本位置：top、bottom、left和right，然後是對齊修飾符like start、center或end。

```html
<flux:dropdown position="top" align="start">
<!-- 更多位置... -->
<flux:dropdown position="right" align="center">
<flux:dropdown position="bottom" align="center">
<flux:dropdown position="left" align="end">
```

### 偏移和間隙

通過offset和gap屬性自定義下拉選單的偏移/間隙。這些屬性接受以像素為單位的值。

```html
<flux:dropdown offset="-15" gap="2">
```

### 鍵盤提示

向選單項目添加鍵盤快捷鍵提示，教會用戶如何更快地導航您的應用。

```html
<flux:dropdown>
    <flux:button icon:trailing="chevron-down">Options</flux:button>
    <flux:menu>
        <flux:menu.item icon="pencil-square" kbd="⌘S">Save</flux:menu.item>
        <flux:menu.item icon="document-duplicate" kbd="⌘D">Duplicate</flux:menu.item>
        <flux:menu.item icon="trash" variant="danger" kbd="⌘⌫">Delete</flux:menu.item>
    </flux:menu>
</flux:dropdown>
```

### 複選框項目

選擇一個或多個選單選項。

```html
<flux:dropdown>
    <flux:button icon:trailing="chevron-down">Permissions</flux:button>
    <flux:menu>
        <flux:menu.checkbox wire:model="read" checked>Read</flux:menu.checkbox>
        <flux:menu.checkbox wire:model="write" checked>Write</flux:menu.checkbox>
        <flux:menu.checkbox wire:model="delete">Delete</flux:menu.checkbox>
    </flux:menu>
</flux:dropdown>
```

### 單選項目

選擇單個選單選項。

```html
<flux:dropdown>
    <flux:button icon:trailing="chevron-down">Sort by</flux:button>
    <flux:menu>
        <flux:menu.radio.group wire:model="sortBy">
            <flux:menu.radio checked>Latest activity</flux:menu.radio>
            <flux:menu.radio>Date created</flux:menu.radio>
            <flux:menu.radio>Most popular</flux:menu.radio>
        </flux:menu.radio.group>
    </flux:menu>
</flux:dropdown>
```

### 分組

用分隔線直觀地分組相關選單項目。

```html
<flux:dropdown>
    <flux:button icon:trailing="chevron-down">Options</flux:button>
    <flux:menu>
        <flux:menu.item>View</flux:menu.item>
        <flux:menu.item>Transfer</flux:menu.item>
        <flux:menu.separator />
        <flux:menu.item>Publish</flux:menu.item>
        <flux:menu.item>Share</flux:menu.item>
        <flux:menu.separator />
        <flux:menu.item variant="danger">Delete</flux:menu.item>
    </flux:menu>
</flux:dropdown>
```

### 帶標題的分組

在標題下分組選項，使它們更容易被發現。

```html
<flux:dropdown>
    <flux:button icon:trailing="chevron-down">Options</flux:button>
    <flux:menu>
        <flux:menu.group heading="Account">
            <flux:menu.item>Profile</flux:menu.item>
            <flux:menu.item>Permissions</flux:menu.item>
        </flux:menu.group>
        <flux:menu.group heading="Billing">
            <flux:menu.item>Transactions</flux:menu.item>
            <flux:menu.item>Payouts</flux:menu.item>
            <flux:menu.item>Refunds</flux:menu.item>
        </flux:menu.group>
        <flux:menu.item>Logout</flux:menu.item>
    </flux:menu>
</flux:dropdown>
```

### 子選單

嵌套子選單以獲得更緊湊的選單。

```html
<flux:dropdown>
    <flux:button icon:trailing="chevron-down">Options</flux:button>
    <flux:menu>
        <flux:menu.submenu heading="Sort by">
            <flux:menu.radio checked>Name</flux:menu.radio>
            <flux:menu.radio>Date</flux:menu.radio>
            <flux:menu.radio>Popularity</flux:menu.radio>
        </flux:menu.submenu>
        <flux:menu.submenu heading="Filter">
            <flux:menu.checkbox checked>Draft</flux:menu.checkbox>
            <flux:menu.checkbox checked>Published</flux:menu.checkbox>
            <flux:menu.checkbox>Archived</flux:menu.checkbox>
        </flux:menu.submenu>
        <flux:menu.separator />
        <flux:menu.item variant="danger">Delete</flux:menu.item>
    </flux:menu>
</flux:dropdown>
```

### 參數參考

#### flux:dropdown

| 屬性 | 說明 |
| --- | --- |
| position | 下拉選單的位置。選項：top、right、bottom（預設）、left |
| align | 下拉選單的對齊方式。選項：start、center、end。預設：start |
| offset | 與觸發元素的偏移量（以像素為單位）。預設：0 |
| gap | 觸發器和選單之間的間隙（以像素為單位）。預設：4 |
| data-flux-dropdown | 應用於根元素以進行樣式設置和識別 |

#### flux:menu

| 插槽 | 說明 |
| --- | --- |
| default | 選單項目、分隔符和子選單 |
| data-flux-menu | 應用於根元素以進行樣式設置和識別 |

#### flux:menu.item

| 屬性 | 說明 |
| --- | --- |
| icon | 顯示在項目開頭的圖標名稱 |
| icon:trailing | 顯示在項目末尾的圖標名稱 |
| icon:variant | 圖標的變體。選項：outline、solid、mini、micro |
| kbd | 顯示在項目末尾的鍵盤快捷鍵提示 |
| suffix | 顯示在項目末尾的文本 |
| variant | 項目的視覺樣式。選項：default、danger |
| disabled | 如果為true，防止與選單項目交互 |
| data-flux-menu-item | 應用於根元素以進行樣式設置和識別 |
| data-active | 應用於項目被懸停/活動時 |

#### flux:menu.submenu

| 屬性 | 說明 |
| --- | --- |
| heading | 顯示為子選單標題的文本 |
| icon | 顯示在子選單開頭的圖標名稱 |
| icon:trailing | 顯示在子選單末尾的圖標名稱 |
| icon:variant | 圖標的變體。選項：outline、solid、mini、micro |

| 插槽 | 說明 |
| --- | --- |
| default | 子選單項目（複選框、單選按鈕等） |

#### flux:menu.separator

水平線，分隔選單項目。

#### flux:menu.checkbox.group

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將複選框組綁定到Livewire屬性 |

| 插槽 | 說明 |
| --- | --- |
| default | 複選框 |

#### flux:menu.checkbox

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將複選框綁定到Livewire屬性 |
| checked | 如果為true，複選框默認被選中 |
| disabled | 如果為true，防止與複選框交互 |
| data-active | 應用於複選框被懸停/活動時 |
| data-checked | 應用於複選框被選中時 |

#### flux:menu.radio.group

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將單選組綁定到Livewire屬性 |

| 插槽 | 說明 |
| --- | --- |
| default | 單選按鈕 |

#### flux:menu.radio

| 屬性 | 說明 |
| --- | --- |
| checked | 如果為true，單選按鈕默認被選中 |
| disabled | 如果為true，防止與單選按鈕交互 |
| data-active | 應用於單選按鈕被懸停/活動時 |
| data-checked | 應用於單選按鈕被選中時 |

## Field 表單欄位

用標籤、描述和驗證封裝輸入元素。

### 基本用法

```html
<flux:field>
    <flux:label>Email</flux:label>
    <flux:input wire:model="email" type="email" />
    <flux:error name="email" />
</flux:field>
```

### 簡寫屬性

因為以完整形式使用field組件可能會冗長且重複，所有flux中的表單控件都允許您直接傳遞label和description參數。在底層，它們將自動包裝在一個field中，並自動包含error組件。

```html
<flux:input wire:model="email" label="Email" type="email" />
```

### 帶尾部描述

將字段描述直接定位在輸入下方。

```html
<flux:field>
    <flux:label>Password</flux:label>
    <flux:input type="password" />
    <flux:error name="password" />
    <flux:description>Must be at least 8 characters long, include an uppercase letter, a number, and a special character.</flux:description>
</flux:field>

<!-- 替代簡寫語法... -->
<flux:input
    type="password"
    label="Password"
    description:trailing="Must be at least 8 characters long, include an uppercase letter, a number, and a special character."
/>
```

### 帶徽章

徽章允許您使用諸如"必填"或"可選"等額外信息來增強字段，這些信息可能不是預期的。

```html
<flux:field>
    <flux:label badge="Required">Email</flux:label>
    <flux:input type="email" required />
    <flux:error name="email" />
</flux:field>

<flux:field>
    <flux:label badge="Optional">Phone number</flux:label>
    <flux:input type="phone" placeholder="(555) 555-5555" mask="(999) 999-9999"  />
    <flux:error name="phone" />
</flux:field>
```

### 分割佈局

在同一行中水平顯示多個字段。

```html
<div class="grid grid-cols-2 gap-4">
    <flux:input label="First name" placeholder="River" />
    <flux:input label="Last name" placeholder="Porzio" />
</div>
```

### 字段集

使用fieldset和legend組件對相關字段進行分組。

```html
<flux:fieldset>
    <flux:legend>Shipping address</flux:legend>
    <div class="space-y-6">
        <flux:input label="Street address line 1" placeholder="123 Main St" class="max-w-sm" />
        <flux:input label="Street address line 2" placeholder="Apartment, studio, or floor" class="max-w-sm" />
        <div class="grid grid-cols-2 gap-x-4 gap-y-6">
            <flux:input label="City" placeholder="San Francisco" />
            <flux:input label="State / Province" placeholder="CA" />
            <flux:input label="Postal / Zip code" placeholder="12345" />
            <flux:select label="Country">
                <option selected>United States</option>
                <!-- ... -->
            </flux:select>
        </div>
    </div>
</flux:fieldset>
```

### 參數參考

#### flux:field

| 屬性 | 說明 |
| --- | --- |
| variant | 視覺樣式變體。選項：block、inline。預設：block |

| 插槽 | 說明 |
| --- | --- |
| default | 表單控件元素（輸入、選擇等）及其相關標籤、描述和錯誤信息 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-field | 應用於根元素以進行樣式設置和識別 |

#### flux:label

| 屬性 | 說明 |
| --- | --- |
| badge | 顯示為徽章的可選文本（例如"必填"、"可選"） |

| 插槽 | 說明 |
| --- | --- |
| default | 標籤文本內容 |

#### flux:description

| 插槽 | 說明 |
| --- | --- |
| default | 描述性文本內容 |

#### flux:error

| 屬性 | 說明 |
| --- | --- |
| name | 顯示驗證錯誤的字段名稱 |
| message | 自定義錯誤信息內容（可選） |

| 插槽 | 說明 |
| --- | --- |
| default | 自定義錯誤信息內容（可選） |

#### flux:fieldset

| 屬性 | 說明 |
| --- | --- |
| legend | 字段集的標題文本 |
| description | 字段集的可選描述文本 |

| 插槽 | 說明 |
| --- | --- |
| default | 分組的表單字段及其相關圖例 |

#### flux:legend

| 插槽 | 說明 |
| --- | --- |
| default | 字段集的標題文本 |

## Heading 標題

為您的應用程序提供一致的標題組件。

### 基本用法

```html
<flux:heading>User profile</flux:heading>
<flux:text class="mt-2">This information will be displayed publicly.</flux:text>
```

### 尺寸

Flux提供三種不同的標題大小，應該涵蓋您應用中的大多數用例。

```html
<flux:heading>Default</flux:heading>
<flux:heading size="lg">Large</flux:heading>
<flux:heading size="xl">Extra large</flux:heading>
```

### 標題級別

控制將用於標題元素的標題級別：h1、h2、h3。沒有level屬性時，標題將默認為div。

```html
<flux:heading level="3">User profile</flux:heading>
<flux:text class="mt-2">This information will be displayed publicly.</flux:text>
```

### 參數參考

#### flux:heading

| 屬性 | 說明 |
| --- | --- |
| size | 標題大小。選項：base、lg、xl。預設：base |
| level | HTML標題級別。選項：1、2、3、4。預設：若未指定則渲染為div |
| accent | 如果為true，對標題應用重點顏色樣式 |

#### flux:text

| 屬性 | 說明 |
| --- | --- |
| size | 文本大小。選項：sm、base、lg、xl。預設：base |

## Icon 圖標

Flux使用優秀的Heroicons項目作為其圖標集。Heroicons是由Tailwind Labs團隊精心製作的一組美觀且實用的圖標。

### 變體

每個圖標有四種變體：outline（默認）、solid、mini和micro。

```html
<flux:icon.bolt />                  <!-- 24px，輪廓 -->
<flux:icon.bolt variant="solid" />  <!-- 24px，填充 -->
<flux:icon.bolt variant="mini" />   <!-- 20px，填充 -->
<flux:icon.bolt variant="micro" />  <!-- 16px，填充 -->
```

### 尺寸

使用size-* Tailwind實用工具控制圖標大小（高度/寬度）。

避免調整圖標大小。每個變體都是專門為其默認大小設計的。

```html
<flux:icon.bolt class="size-12" />
<flux:icon.bolt class="size-10" />
<flux:icon.bolt class="size-8" />
```

### 顏色

您可以使用Tailwind的文本顏色實用工具自定義圖標的顏色。

```html
<flux:icon.bolt variant="solid" class="text-amber-500 dark:text-amber-300" />
```

### 加載旋轉器

Flux有一個特殊的加載旋轉器圖標，它不是Heroicons集合的一部分。您可以在通常使用標準圖標的任何地方使用這個特殊圖標。

### Lucide圖標

我們喜歡Heroicons，但我們承認它是一個相當有限的圖標集。如果您需要更多圖標，我們建議使用Lucide代替。

Flux提供了一個方便的artisan命令來將它們導入到您的項目中：

```
php artisan flux:icon crown grip-vertical github
```

### 自定義圖標

對於完全控制您的圖標，您可以在resources/views/flux/icon目錄中創建自己的Blade文件。

```
- resources
    - views
        - flux
            - icon
                - wink.blade.php
```

### 參數參考

#### flux:icon.*

所有圖標組件（如flux:icon.bolt、flux:icon.loading）共享相同的屬性和行為。

| 屬性 | 說明 |
| --- | --- |
| variant | 圖標的視覺樣式。選項：outline（預設）、solid、mini、micro |

| 類 | 說明 |
| --- | --- |
| size-* | 使用Tailwind的size實用工具控制圖標大小（例如size-8、size-12） |
| text-* | 使用Tailwind的文本顏色實用工具控制圖標顏色（例如text-blue-500） |

| 屬性 | 說明 |
| --- | --- |
| data-flux-icon | 應用於根SVG元素以進行樣式設置和識別 |

#### 圖標大小

| 大小 | 說明 |
| --- | --- |
| outline | 24x24像素（預設） |
| solid | 24x24像素 |
| mini | 20x20像素 |
| micro | 16x16像素 |

## Input 輸入框

[文檔中未提供，可能需要補充]

## Modal 對話框

在主頁面上層顯示內容。非常適合確認、警報和表單。

### 基本用法

```html
<flux:modal.trigger name="edit-profile">
    <flux:button>Edit profile</flux:button>
</flux:modal.trigger>

<flux:modal name="edit-profile" class="md:w-96">
    <div class="space-y-6">
        <div>
            <flux:heading size="lg">Update profile</flux:heading>
            <flux:text class="mt-2">Make changes to your personal details.</flux:text>
        </div>
        <flux:input label="Name" placeholder="Your name" />
        <flux:input label="Date of birth" type="date" />
        <div class="flex">
            <flux:spacer />
            <flux:button type="submit" variant="primary">Save changes</flux:button>
        </div>
    </div>
</flux:modal>
```

### 唯一模態名稱

如果您在循環中放置模態，請確保動態生成唯一的模態名稱。否則，一個模態觸發器將觸發頁面上該名稱的所有模態，導致意外行為。

```html
@foreach ($users as $user)
    <flux:modal :name="'edit-profile-'.$user->id">
        ...
    </flux:modal>
@endforeach
```

### Livewire方法

除了在Blade模板中觸發模態外，您還可以直接從Livewire控制它們。

考慮Blade模板中的"confirm"模態，如下所示：

```html
<flux:modal name="confirm">
    <!-- ... -->
</flux:modal>
```

現在您可以使用以下方法從Livewire組件打開和關閉此模態：

```php
<?php
class ShowPost extends \Livewire\Component {
    public function delete() {
        // 控制頁面上任何地方的"confirm"模態...
        Flux::modal('confirm')->show();
        Flux::modal('confirm')->close();
        
        // 控制此Livewire組件內的"confirm"模態...
        $this->modal('confirm')->show();
        $this->modal('confirm')->close();
        
        // 關閉頁面上的所有模態...
        Flux::modals()->close();
    }
}
```

### JavaScript方法

您也可以使用Flux的魔術方法直接從Alpine控制模態：

```html
<button x-on:click="$flux.modal('confirm').show()">
    Open modal
</button>
<button x-on:click="$flux.modal('confirm').close()">
    Close modal
</button>
<button x-on:click="$flux.modals().close()">
    Close all modals
</button>
```

或者，您可以使用window.Flux全局對象從應用程序中的任何JavaScript控制模態：

```javascript
// 控制頁面上任何地方的"confirm"模態...
Flux.modal('confirm').show()
Flux.modal('confirm').close()

// 關閉頁面上的所有模態...
Flux.modals().close()
```

### 數據綁定

如果您願意，可以將Livewire屬性直接綁定到模態，以從Livewire組件控制其狀態。

```html
<flux:modal wire:model.self="showConfirmModal">
    <!-- ... -->
</flux:modal>
```

將wire:model.self修飾符添加到wire:model屬性很重要，以防止嵌套元素分派會干擾模態狀態的輸入事件。

現在，您可以通過切換wire:model屬性從Livewire組件打開和關閉此模態。

```php
<?php
class ShowPost extends \Livewire\Component {
    public $showConfirmModal = false;
    
    public function delete() {
        $this->showConfirmModal = true;
    }
}
```

### 關閉事件

如果您需要在模態關閉後執行一些邏輯，可以像這樣註冊一個關閉監聽器：

```html
<flux:modal @close="someLivewireAction">
    <!-- ... -->
</flux:modal>
```

您也可以使用wire:close或x-on:close（如果您願意使用這些語法）。

### 取消事件

如果您需要在模態被取消後執行一些邏輯，可以像這樣註冊一個取消監聽器：

```html
<flux:modal @cancel="someLivewireAction">
    <!-- ... -->
</flux:modal>
```

您也可以使用wire:cancel或x-on:cancel（如果您願意使用這些語法）。

### 禁用點擊外部

默認情況下，點擊模態外部將關閉它。如果您要禁用此行為，可以使用:dismissible="false"屬性。

```html
<flux:modal :dismissible="false">
    <!-- ... -->
</flux:modal>
```

### 確認

在執行危險操作前提示用戶確認。

```html
<flux:modal.trigger name="delete-profile">
    <flux:button variant="danger">Delete</flux:button>
</flux:modal.trigger>

<flux:modal name="delete-profile" class="min-w-[22rem]">
    <div class="space-y-6">
        <div>
            <flux:heading size="lg">Delete project?</flux:heading>
            <flux:text class="mt-2">
                <p>You''re about to delete this project.</p>
                <p>This action cannot be reversed.</p>
            </flux:text>
        </div>
        <div class="flex gap-2">
            <flux:spacer />
            <flux:modal.close>
                <flux:button variant="ghost">Cancel</flux:button>
            </flux:modal.close>
            <flux:button type="submit" variant="danger">Delete project</flux:button>
        </div>
    </div>
</flux:modal>
```

### 飛出窗口

使用"flyout"變體獲得更錨定且長表單的對話框。

```html
<flux:modal.trigger name="edit-profile">
    <flux:button>Edit profile</flux:button>
</flux:modal.trigger>

<flux:modal name="edit-profile" variant="flyout">
    <div class="space-y-6">
        <div>
            <flux:heading size="lg">Update profile</flux:heading>
            <flux:text class="mt-2">Make changes to your personal details.</flux:text>
        </div>
        <flux:input label="Name" placeholder="Your name" />
        <flux:input label="Date of birth" type="date" />
        <div class="flex">
            <flux:spacer />
            <flux:button type="submit" variant="primary">Save changes</flux:button>
        </div>
    </div>
</flux:modal>
```

### 飛出窗口定位

默認情況下，飛出窗口將從右側打開。您可以通過在position屬性中傳遞"left"或"bottom"來更改此行為。

```html
<flux:modal variant="flyout" position="left">
    <!-- ... -->
</flux:modal>
```

### 參數參考

#### flux:modal

| 屬性 | 說明 |
| --- | --- |
| name | 模態的唯一標識符。使用觸發器時必需 |
| variant | 模態的視覺樣式。選項：default、flyout、bare |
| position | 對於飛出模態，它們打開的方向。選項：right（預設）、left、bottom |
| dismissible | 如果為false，防止通過點擊外部關閉模態。預設：true |
| wire:model | 可選的Livewire屬性，用於綁定模態的打開狀態 |

| 事件 | 說明 |
| --- | --- |
| close | 在模態以任何方式關閉時觸發 |
| cancel | 在通過點擊外部或按下Escape鍵關閉模態時觸發 |

| 插槽 | 說明 |
| --- | --- |
| default | 模態內容 |

| 類 | 說明 |
| --- | --- |
| w-* | 常見用途：md:w-96控制寬度 |

#### flux:modal.trigger

| 屬性 | 說明 |
| --- | --- |
| name | 要觸發的模態名稱。必須與模態的名稱匹配 |
| shortcut | 打開模態的鍵盤快捷鍵（例如cmd.k） |

| 插槽 | 說明 |
| --- | --- |
| default | 觸發元素（如按鈕） |

#### flux:modal.close

| 插槽 | 說明 |
| --- | --- |
| default | 關閉觸發元素（如按鈕） |

#### Flux::modal()

用於從Livewire組件控制模態的PHP方法。

| 參數 | 說明 |
| --- | --- |
| default/name | 要控制的模態名稱 |

| 方法 | 說明 |
| --- | --- |
| close() | 關閉模態 |

#### Flux::modals()

用於控制頁面上所有模態的PHP方法。

| 方法 | 說明 |
| --- | --- |
| close() | 關閉頁面上的所有模態 |

#### $flux.modal()

用於控制模態的Alpine.js魔術方法。

| 參數 | 說明 |
| --- | --- |
| default/name | 要控制的模態名稱 |

| 方法 | 說明 |
| --- | --- |
| show() | 顯示模態 |
| close() | 關閉模態 |

## Navbar 導航欄

垂直或水平排列導航鏈接。

### 基本用法

```html
<flux:navbar>
    <flux:navbar.item href="#">Home</flux:navbar.item>
    <flux:navbar.item href="#">Features</flux:navbar.item>
    <flux:navbar.item href="#">Pricing</flux:navbar.item>
    <flux:navbar.item href="#">About</flux:navbar.item>
</flux:navbar>
```

### 檢測當前頁面

導航欄和導航列將嘗試根據傳入的href屬性自動檢測和標記當前頁面。但是，如果您需要完全控制，可以直接將current屬性傳遞給項目。

```html
<flux:navbar.item href="/" current>Home</flux:navbar.item>
<flux:navbar.item href="/" :current="false">Home</flux:navbar.item>
<flux:navbar.item href="/" :current="request()->is('/')">Home</flux:navbar.item>
```

### 帶圖標

添加前導圖標以提供視覺上下文。

```html
<flux:navbar>
    <flux:navbar.item href="#" icon="home">Home</flux:navbar.item>
    <flux:navbar.item href="#" icon="puzzle-piece">Features</flux:navbar.item>
    <flux:navbar.item href="#" icon="currency-dollar">Pricing</flux:navbar.item>
    <flux:navbar.item href="#" icon="user">About</flux:navbar.item>
</flux:navbar>
```

### 帶徽章

使用badge屬性為導航欄項目添加尾部徽章。

```html
<flux:navbar>
    <flux:navbar.item href="#">Home</flux:navbar.item>
    <flux:navbar.item href="#" badge="12">Inbox</flux:navbar.item>
    <flux:navbar.item href="#">Contacts</flux:navbar.item>
    <flux:navbar.item href="#" badge="Pro" badge-color="lime">Calendar</flux:navbar.item>
</flux:navbar>
```

### 下拉導航

將多個導航項目濃縮為單個下拉選單，以節省空間並分組相關項目。

```html
<flux:navbar>
    <flux:navbar.item href="#">Dashboard</flux:navbar.item>
    <flux:navbar.item href="#">Transactions</flux:navbar.item>
    <flux:dropdown>
        <flux:navbar.item icon:trailing="chevron-down">Account</flux:navbar.item>
        <flux:navmenu>
            <flux:navmenu.item href="#">Profile</flux:navmenu.item>
            <flux:navmenu.item href="#">Settings</flux:navmenu.item>
            <flux:navmenu.item href="#">Billing</flux:navmenu.item>
        </flux:navmenu>
    </flux:dropdown>
</flux:navbar>
```

### 垂直導航

使用navlist組件垂直排列您的導航欄。

```html
<flux:navlist class="w-64">
    <flux:navlist.item href="#" icon="home">Home</flux:navlist.item>
    <flux:navlist.item href="#" icon="puzzle-piece">Features</flux:navlist.item>
    <flux:navlist.item href="#" icon="currency-dollar">Pricing</flux:navlist.item>
    <flux:navlist.item href="#" icon="user">About</flux:navlist.item>
</flux:navlist>
```

### 導航列分組

分組相關導航項目。

```html
<flux:navlist>
    <flux:navlist.group heading="Account" class="mt-4">
        <flux:navlist.item href="#">Profile</flux:navlist.item>
        <flux:navlist.item href="#">Settings</flux:navlist.item>
        <flux:navlist.item href="#">Billing</flux:navlist.item>
    </flux:navlist.group>
</flux:navlist>
```

### 可摺疊組

使用expandable屬性將相關導航項目分組為可摺疊部分。

```html
<flux:navlist class="w-64">
    <flux:navlist.item href="#" icon="home">Dashboard</flux:navlist.item>
    <flux:navlist.item href="#" icon="list-bullet">Transactions</flux:navlist.item>
    <flux:navlist.group heading="Account" expandable>
        <flux:navlist.item href="#">Profile</flux:navlist.item>
        <flux:navlist.item href="#">Settings</flux:navlist.item>
        <flux:navlist.item href="#">Billing</flux:navlist.item>
    </flux:navlist.group>
</flux:navlist>
```

如果您希望組默認為摺疊狀態，可以使用expanded屬性：

```html
<flux:navlist.group heading="Account" expandable :expanded="false">
```

### 導航列徽章

使用badge屬性顯示與導航列項目相關的額外信息。

```html
<flux:navlist class="w-64">
    <flux:navlist.item href="#" icon="home">Home</flux:navlist.item>
    <flux:navlist.item href="#" icon="envelope" badge="12">Inbox</flux:navlist.item>
    <flux:navlist.item href="#" icon="user-group">Contacts</flux:navlist.item>
    <flux:navlist.item href="#" icon="calendar-days" badge="Pro" badge-color="lime">Calendar</flux:navlist.item>
</flux:navlist>
```

### 參數參考

#### flux:navbar

| 插槽 | 說明 |
| --- | --- |
| default | 導航項目 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-navbar | 應用於根元素以進行樣式設置和識別 |

#### flux:navbar.item

| 屬性 | 說明 |
| --- | --- |
| href | 項目鏈接到的URL |
| current | 如果為true，對項目應用活動樣式。如果未指定，則根據當前URL自動檢測 |
| icon | 顯示在項目開頭的圖標名稱 |
| icon:trailing | 顯示在項目末尾的圖標名稱 |

| 屬性 | 說明 |
| --- | --- |
| data-current | 應用於項目活動/當前時 |

#### flux:navlist

| 插槽 | 說明 |
| --- | --- |
| default | 導航項目和組 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-navlist | 應用於根元素以進行樣式設置和識別 |

#### flux:navlist.item

| 屬性 | 說明 |
| --- | --- |
| href | 項目鏈接到的URL |
| current | 如果為true，對項目應用活動樣式。如果未指定，則根據當前URL自動檢測 |
| icon | 顯示在項目開頭的圖標名稱 |

| 屬性 | 說明 |
| --- | --- |
| data-current | 應用於項目活動/當前時 |

#### flux:navlist.group

| 屬性 | 說明 |
| --- | --- |
| heading | 顯示為組標題的文本 |
| expandable | 如果為true，使組可摺疊 |
| expanded | 如果為true，在可摺疊時默認展開組 |

| 插槽 | 說明 |
| --- | --- |
| default | 組的導航項目 |

## Pagination 分頁

顯示一系列按鈕以瀏覽項目列表。

### 基本用法

```html
<!-- $orders = Order::paginate() -->
<flux:pagination :paginator="$orders" />
```

### 簡單分頁器

使用簡單分頁器處理大型數據集，其中計算結果總數可能成本高昂。簡單分頁器提供"上一頁"和"下一頁"按鈕，而不顯示頁面總數或記錄數。

```html
<!-- $orders = Order::simplePaginate() -->
<flux:pagination :paginator="$orders" />
```

### 大結果集

處理大型結果集時，分頁組件會自動適應以顯示合理數量的頁面鏈接。它顯示第一頁和最後一頁，以及當前頁面周圍的一個窗口，並為任何間隙添加省略號，以確保高效瀏覽眾多頁面。

```html
<!-- $orders = Order::paginate(5) -->
<flux:pagination :paginator="$orders" />
```

### 參數參考

#### flux:pagination

| 屬性 | 說明 |
| --- | --- |
| paginator | 要顯示的分頁器實例 |

## Radio 單選框

從一組互斥選項中選擇一個。非常適合單一選擇問題和設置。

### 基本用法

```html
<flux:radio.group wire:model="payment" label="Select your payment method">
    <flux:radio value="cc" label="Credit Card" checked />
    <flux:radio value="paypal" label="Paypal" />
    <flux:radio value="ach" label="Bank transfer" />
</flux:radio.group>
```

### 帶描述

將每個單選按鈕的描述直接對齊在其標籤下方。

```html
<flux:radio.group label="Role">
    <flux:radio
        name="role"
        value="administrator"
        label="Administrator"
        description="Administrator users can perform any action."
        checked
    />
    <flux:radio
        name="role"
        value="editor"
        label="Editor"
        description="Editor users have the ability to read, create, and update."
    />
    <flux:radio
        name="role"
        value="viewer"
        label="Viewer"
        description="Viewer users only have the ability to read. Create, and update are restricted."
    />
</flux:radio.group>
```

### 在字段集中

在字段集內分組單選輸入，並為每個單選選項提供更多上下文描述。

```html
<flux:fieldset>
    <flux:legend>Role</flux:legend>
    <flux:radio.group>
        <flux:radio
            value="administrator"
            label="Administrator"
            description="Administrator users can perform any action."
            checked
        />
        <flux:radio
            value="editor"
            label="Editor"
            description="Editor users have the ability to read, create, and update."
        />
        <flux:radio
            value="viewer"
            label="Viewer"
            description="Viewer users only have the ability to read. Create, and update are restricted."
        />
    </flux:radio.group>
</flux:fieldset>
```

### 分段式

標準單選按鈕的更緊湊替代方案。

```html
<flux:radio.group wire:model="role" label="Role" variant="segmented">
    <flux:radio label="Admin" />
    <flux:radio label="Editor" />
    <flux:radio label="Viewer" />
</flux:radio.group>
```

您也可以使用size="sm"屬性使單選按鈕更小。

```html
<flux:radio.group wire:model="role" label="Role" variant="segmented" size="sm">
    <flux:radio label="Admin" />
    <flux:radio label="Editor" />
    <flux:radio label="Viewer" />
</flux:radio.group>
```

### 帶圖標的分段式

將分段式單選按鈕與圖標前綴結合使用。

```html
<flux:radio.group wire:model="role" variant="segmented">
    <flux:radio label="Admin" icon="wrench" />
    <flux:radio label="Editor" icon="pencil-square" />
    <flux:radio label="Viewer" icon="eye" />
</flux:radio.group>
```

### 單選卡片

標準單選按鈕的帶邊框替代方案。

```html
<flux:radio.group wire:model="shipping" label="Shipping" variant="cards" class="max-sm:flex-col">
    <flux:radio value="standard" label="Standard" description="4-10 business days" checked />
    <flux:radio value="fast" label="Fast" description="2-5 business days" />
    <flux:radio value="next-day" label="Next day" description="1 business day" />
</flux:radio.group>
```

您可以通過根據視口有條件地應用flex-col來在垂直和水平卡片佈局之間切換。

```html
<flux:radio.group ... class="max-sm:flex-col">
    <!-- ... -->
</flux:radio.group>
```

### 垂直卡片

您可以通過簡單地將flex-col類添加到組容器來垂直排列一組單選卡片。

```html
<flux:radio.group label="Shipping" variant="cards" class="flex-col">
    <flux:radio value="standard" label="Standard" description="4-10 business days" />
    <flux:radio value="fast" label="Fast" description="2-5 business days" />
    <flux:radio value="next-day" label="Next day" description="1 business day" />
</flux:radio.group>
```

### 帶圖標的卡片

```html
<flux:radio.group label="Shipping" variant="cards" class="max-sm:flex-col">
    <flux:radio value="standard" icon="truck" label="Standard" description="4-10 business days" />
    <flux:radio value="fast" icon="cube" label="Fast" description="2-5 business days" />
    <flux:radio value="next-day" icon="clock" label="Next day" description="1 business day" />
</flux:radio.group>
```

### 無指示器的卡片

為了更整潔的外觀，您可以使用:indicator="false"移除單選指示器。

```html
<flux:radio.group label="Shipping" variant="cards" :indicator="false" class="max-sm:flex-col">
    <flux:radio value="standard" icon="truck" label="Standard" description="4-10 business days" />
    <flux:radio value="fast" icon="cube" label="Fast" description="2-5 business days" />
    <flux:radio value="next-day" icon="clock" label="Next day" description="1 business day" />
</flux:radio.group>
```

### 自定義卡片內容

您可以通過flux:radio組件插槽組合自己的自定義卡片。

```html
<flux:radio.group label="Shipping" variant="cards" class="max-sm:flex-col">
    <flux:radio value="standard" checked>
        <flux:radio.indicator />
        <div class="flex-1">
            <flux:heading class="leading-4">Standard</flux:heading>
            <flux:text size="sm" class="mt-2">4-10 business days</flux:text>
        </div>
    </flux:radio>
    <flux:radio value="fast">
        <flux:radio.indicator />
        <div class="flex-1">
            <flux:heading class="leading-4">Fast</flux:heading>
            <flux:text size="sm" class="mt-2">2-5 business days</flux:text>
        </div>
    </flux:radio>
    <flux:radio value="next-day">
        <flux:radio.indicator />
        <div class="flex-1">
            <flux:heading class="leading-4">Next day</flux:heading>
            <flux:text size="sm" class="mt-2">1 business day</flux:text>
        </div>
    </flux:radio>
</flux:radio.group>
```

### 參數參考

#### flux:radio.group

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將單選組選擇綁定到Livewire屬性 |
| name | 單選組的name屬性。使用wire:model時自動設置 |
| label | 顯示在單選組上方的標籤文本 |
| description | 顯示在單選組下方的幫助文本 |
| variant | 組的視覺樣式。選項：default、segmented、cards |
| invalid | 對單選組應用錯誤樣式 |

| 插槽 | 說明 |
| --- | --- |
| default | 要分組在一起的單選按鈕 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-radio-group | 應用於根元素以進行樣式設置和識別 |

#### flux:radio

| 屬性 | 說明 |
| --- | --- |
| label | 顯示在單選按鈕上方的標籤文本 |
| description | 顯示在單選按鈕下方的幫助文本 |
| value | 在組中使用時與單選按鈕關聯的值 |
| checked | 如果為true，單選按鈕默認被選中 |
| disabled | 防止用戶與單選按鈕交互 |
| icon | 顯示的圖標名稱（用於分段變體） |

| 插槽 | 說明 |
| --- | --- |
| default | 卡片變體的自定義內容 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-radio | 應用於根元素以進行樣式設置和識別 |
| data-checked | 應用於單選按鈕被選中時 |

#### flux:radio.indicator

用於卡片變體中自定義單選按鈕佈局。

## Rich text editor 富文本編輯器

基於[ProseMirror](https://prosemirror.net/)和[Tiptap](https://tiptap.dev/)構建的基本富文本編輯器。

由於大型外部依賴，編輯器的JavaScript不包含在核心Flux包中。當您使用flux:editor組件時，它將按需作為單獨的JS文件加載。

### 基本用法

```html
<flux:editor wire:model="content" label="…" description="…" />
```

### 配置項目

您可以通過將空格分隔的項目列表傳遞給toolbar屬性來配置顯示哪些工具欄項目以及它們的順序。

```html
<flux:editor toolbar="heading | bold italic underline | align ~ undo redo" />
```

您可能已經注意到工具欄配置中的|和~字符。這些是分隔符和空格的簡寫。

以下工具欄項目可用：

* heading
* bold
* italic
* strike
* underline
* bullet
* ordered
* blockquote
* subscript
* superscript
* highlight
* link
* code
* undo
* redo

### 自定義項目

您可以通過向項目的resources/views/flux/editor目錄添加新文件來添加自己的工具欄項目。

以下是blade文件中自定義"複製到剪貼板"項目的例子：

```php
<flux:tooltip content="{{ __('Copy to clipboard') }}" class="contents">
    <flux:editor.button x-on:click="navigator.clipboard?.writeText($el.closest('[data-flux-editor]').value); $el.setAttribute('data-copied', ''); setTimeout(() => $el.removeAttribute('data-copied'), 2000)">
        <flux:icon.clipboard variant="outline" class="[[data-copied]_&]:hidden size-5!" />
        <flux:icon.clipboard-document-check variant="outline" class="hidden [[data-copied]_&]:block size-5!" />
    </flux:editor.button>
</flux:tooltip>
```

### 自定義化

如果您有更深入的自定義需求，可以組合自己的編輯器組件。以下是在編輯器工具欄中放置自定義下拉選單的例子：

```html
<flux:editor>
    <flux:editor.toolbar>
        <flux:editor.heading />
        <flux:editor.separator />
        <flux:editor.bold />
        <flux:editor.italic />
        <flux:editor.strike />
        <flux:editor.separator />
        <flux:editor.bullet />
        <flux:editor.ordered />
        <flux:editor.blockquote />
        <flux:editor.separator />
        <flux:editor.link />
        <flux:editor.separator />
        <flux:editor.align />
        <flux:editor.spacer />
        <flux:dropdown position="bottom end" offset="-15">
            <flux:editor.button icon="ellipsis-horizontal" tooltip="More" />
            <flux:menu>
                <flux:menu.item wire:click="…" icon="arrow-top-right-on-square">Preview</flux:menu.item>
                <flux:menu.item wire:click="…" icon="arrow-down-tray">Export</flux:menu.item>
                <flux:menu.item wire:click="…" icon="share">Share</flux:menu.item>
            </flux:menu>
        </flux:dropdown>
    </flux:editor.toolbar>
    <flux:editor.content />
</flux:editor>
```

### 高度

默認情況下，編輯器的最小高度為200px，最大高度為500px。如果您想自定義此行為，可以使用Tailwind實用工具針對內容插槽並設置自己的最小/最大高度和溢出行為。

```html
<flux:editor class="**:data-[slot=content]:min-h-[100px]" />
```

### 快捷鍵

Flux的編輯器使用Tiptap的默認快捷鍵，這些快捷鍵在大多數富文本編輯器中都很常見。

| 操作 | Windows/Linux | Mac |
| --- | --- | --- |
| 應用段落樣式 | Ctrl+Alt+0 | Cmd+Alt+0 |
| 應用標題級別1 | Ctrl+Alt+1 | Cmd+Alt+1 |
| 應用標題級別2 | Ctrl+Alt+2 | Cmd+Alt+2 |
| 應用標題級別3 | Ctrl+Alt+3 | Cmd+Alt+3 |
| 粗體 | Ctrl+B | Cmd+B |
| 斜體 | Ctrl+I | Cmd+I |
| 下劃線 | Ctrl+U | Cmd+U |
| 刪除線 | Ctrl+Shift+X | Cmd+Shift+X |
| 項目符號列表 | Ctrl+Shift+8 | Cmd+Shift+8 |
| 有序列表 | Ctrl+Shift+7 | Cmd+Shift+7 |
| 引用塊 | Ctrl+Shift+B | Cmd+Shift+B |
| 代碼 | Ctrl+E | Cmd+E |
| 高亮 | Ctrl+Shift+H | Cmd+Shift+H |
| 左對齊 | Ctrl+Shift+L | Cmd+Shift+L |
| 居中對齊 | Ctrl+Shift+E | Cmd+Shift+E |
| 右對齊 | Ctrl+Shift+R | Cmd+Shift+R |
| 不帶格式粘貼 | Ctrl+Shift+V | Cmd+Shift+V |
| 添加換行 | Ctrl+Shift+Enter | Cmd+Shift+Enter |
| 撤銷 | Ctrl+Z | Cmd+Z |
| 重做 | Ctrl+Shift+Z | Cmd+Shift+Z |

### Markdown語法

雖然Flux的編輯器本身不是markdown編輯器，但它允許您在創作內容時使用markdown語法來觸發樣式更改。

| Markdown | 操作 |
| --- | --- |
| # | 應用標題級別1 |
| ## | 應用標題級別2 |
| ### | 應用標題級別3 |
| ** | 粗體 |
| * | 斜體 |
| ~~ | 刪除線 |
| - | 項目符號列表 |
| 1. | 有序列表 |
| > | 引用塊 |
| ` | 內聯代碼 |
| ``` | 代碼塊 |
| ```? | 帶類的代碼塊(class="language-?") |
| --- | 水平線 |

### 參數參考

#### flux:editor

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將編輯器綁定到Livewire屬性 |
| name | 編輯器的name屬性。使用wire:model時自動設置 |
| value | 編輯器的初始內容。在不使用wire:model綁定時使用 |
| label | 顯示在編輯器上方的標籤文本 |
| description | 顯示在編輯器下方的幫助文本 |
| description:trailing | 提供的描述將顯示在編輯器下方而非上方 |
| badge | 提供標籤時顯示在flux:label組件末尾的徽章文本 |
| placeholder | 編輯器為空時顯示的佔位文本 |
| toolbar | 要顯示的工具欄項目的空格分隔列表。使用\|作為分隔符，~作為空格。默認情況下，包括heading、bold、italic、strike、bullet、ordered、blockquote、link和align工具 |
| disabled | 防止用戶與編輯器交互 |
| invalid | 對編輯器應用錯誤樣式 |

| 插槽 | 說明 |
| --- | --- |
| default | 編輯器內容和工具欄組件。如果省略，將使用標準工具欄和空白內容區域 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-editor | 應用於根元素以進行樣式設置和識別 |

#### flux:editor.toolbar

| 屬性 | 說明 |
| --- | --- |
| items | 要顯示的工具欄項目的空格分隔列表。使用\|作為分隔符，~作為空格。若未提供，則顯示默認工具欄 |

| 插槽 | 說明 |
| --- | --- |
| default | 工具欄項目、分隔符和空格。使用此插槽創建完全自定義的工具欄 |

#### flux:editor.button

| 屬性 | 說明 |
| --- | --- |
| icon | 按鈕中顯示的圖標名稱 |
| iconVariant | 要顯示的圖標變體。選項：mini、micro、outline。默認：mini（無插槽）或micro（有插槽） |
| tooltip | 懸停按鈕時顯示在提示框中的文本 |
| disabled | 防止與按鈕交互 |

| 插槽 | 說明 |
| --- | --- |
| default | 在按鈕內顯示的內容。如果與圖標一起提供，圖標將顯示在此內容之前 |

#### flux:editor.content

| 插槽 | 說明 |
| --- | --- |
| default | 編輯器的初始HTML內容。此內容將由編輯器處理和管理 |

#### 工具欄項目

可以在`toolbar`屬性中引用或直接在自定義工具欄中使用的可用工具欄項目。

| 組件 | 說明 |
| --- | --- |
| heading | 標題級別選擇器 |
| bold | 粗體文本格式 |
| italic | 斜體文本格式 |
| strike | 刪除線文本格式 |
| underline | 下劃線文本格式 |
| bullet | 項目符號列表 |
| ordered | 有序列表 |
| blockquote | 引用塊格式 |
| code | 代碼塊格式 |
| link | 鏈接插入 |
| align | 文本對齊選項 |
| undo | 撤銷上次操作 |
| redo | 重做上次操作 |

## Select 選擇框

從下拉列表中選擇單個選項。

### 基本用法

```html
<flux:select wire:model="industry" placeholder="Choose industry...">
    <flux:select.option>Photography</flux:select.option>
    <flux:select.option>Design services</flux:select.option>
    <flux:select.option>Web development</flux:select.option>
    <flux:select.option>Accounting</flux:select.option>
    <flux:select.option>Legal services</flux:select.option>
    <flux:select.option>Consulting</flux:select.option>
    <flux:select.option>Other</flux:select.option>
</flux:select>
```

### 小型

更緊湊佈局的較小選擇元素。

```html
<flux:select size="sm" placeholder="Choose industry...">
    <flux:select.option>Photography</flux:select.option>
    <flux:select.option>Design services</flux:select.option>
    <flux:select.option>Web development</flux:select.option>
    <flux:select.option>Accounting</flux:select.option>
    <flux:select.option>Legal services</flux:select.option>
    <flux:select.option>Consulting</flux:select.option>
    <flux:select.option>Other</flux:select.option>
</flux:select>
```

### 自定義選擇

瀏覽器原生選擇元素的替代方案。通常在需要自定義選項樣式（如圖標、圖像和其他處理）時使用。

```html
<flux:select variant="listbox" placeholder="Choose industry...">
    <flux:select.option>Photography</flux:select.option>
    <flux:select.option>Design services</flux:select.option>
    <flux:select.option>Web development</flux:select.option>
    <flux:select.option>Accounting</flux:select.option>
    <flux:select.option>Legal services</flux:select.option>
    <flux:select.option>Consulting</flux:select.option>
    <flux:select.option>Other</flux:select.option>
</flux:select>
```

### 按鈕插槽

如果您需要完全控制用於觸發自定義選擇的按鈕，可以使用按鈕插槽自行渲染它。

```html
<flux:select variant="listbox">
    <x-slot name="button">
        <flux:select.button class="rounded-full!" placeholder="Choose industry..." :invalid="$errors->has('...')" />
    </x-slot>
    <flux:select.option>Photography</flux:select.option>
    ...
</flux:select>
```

### 可清除

如果您希望使所選值可清除，可以使用clearable屬性在輸入右側添加"x"按鈕：

```html
<flux:select variant="listbox" clearable>
    ...
</flux:select>
```

### 帶圖像/圖標的選項

使用自定義listbox選擇而非原生<select>元素的一個明顯優勢是現在可以向選項添加圖標和圖像。

```html
<flux:select variant="listbox" placeholder="Select role...">
    <flux:select.option>
        <div class="flex items-center gap-2">
            <flux:icon.shield-check variant="mini" class="text-zinc-400" /> Owner
        </div>
    </flux:select.option>
    <flux:select.option>
        <div class="flex items-center gap-2">
            <flux:icon.key variant="mini" class="text-zinc-400" /> Administrator
        </div>
    </flux:select.option>
    <flux:select.option>
        <div class="flex items-center gap-2">
            <flux:icon.user variant="mini" class="text-zinc-400" /> Member
        </div>
    </flux:select.option>
    <flux:select.option>
        <div class="flex items-center gap-2">
            <flux:icon.eye variant="mini" class="text-zinc-400" /> Viewer
        </div>
    </flux:select.option>
</flux:select>
```

### 可搜索選擇

可搜索選擇變體使用戶更容易導航大型選項列表。

```html
<flux:select variant="listbox" searchable placeholder="Choose industries...">
    <flux:select.option>Photography</flux:select.option>
    <flux:select.option>Design services</flux:select.option>
    <flux:select.option>Web development</flux:select.option>
    <flux:select.option>Accounting</flux:select.option>
    <flux:select.option>Legal services</flux:select.option>
    <flux:select.option>Consulting</flux:select.option>
    <flux:select.option>Other</flux:select.option>
</flux:select>
```

### 搜索插槽

如果您需要完全控制listbox內的搜索字段，可以使用搜索插槽自行渲染它。

```html
<flux:select variant="listbox" searchable>
    <x-slot name="search">
        <flux:select.search class="px-4" placeholder="Search industries..." />
    </x-slot>
    ...
</flux:select>
```

### 多重選擇

允許用戶從選項列表中選擇多個選項。

```html
<flux:select variant="listbox" multiple placeholder="Choose industries...">
    <flux:select.option>Photography</flux:select.option>
    <flux:select.option>Design services</flux:select.option>
    <flux:select.option>Web development</flux:select.option>
    <flux:select.option>Accounting</flux:select.option>
    <flux:select.option>Legal services</flux:select.option>
    <flux:select.option>Consulting</flux:select.option>
    <flux:select.option>Other</flux:select.option>
</flux:select>
```

### 選定後綴

默認情況下，當選擇多個選項時，後綴" selected"將附加到所選選項的數量後面。您可以通過將selected-suffix屬性傳遞給選擇組件來自定義此語言。

```html
<flux:select variant="listbox" selected-suffix="industries selected" multiple>
    ...
</flux:select>
```

### 複選框指示器

如果您更喜歡複選框指示器而非默認的對勾圖標，可以使用indicator="checkbox"屬性。

```html
<flux:select variant="listbox" indicator="checkbox" multiple>
    ...
</flux:select>
```

### 清除搜索

默認情況下，可搜索選擇會在用戶選擇選項時清除搜索輸入。如果您希望禁用此行為，可以使用clear="close"屬性以僅在用戶關閉選擇時清除搜索輸入。

```html
<flux:select variant="listbox" searchable multiple clear="close">
    ...
</flux:select>
```

### 組合框

一個多功能組合框，可用於從基本自動完成到複雜多選的任何內容。

```html
<flux:select variant="combobox" placeholder="Choose industry...">
    <flux:select.option>Photography</flux:select.option>
    <flux:select.option>Design services</flux:select.option>
    <flux:select.option>Web development</flux:select.option>
    <flux:select.option>Accounting</flux:select.option>
    <flux:select.option>Legal services</flux:select.option>
    <flux:select.option>Consulting</flux:select.option>
    <flux:select.option>Other</flux:select.option>
</flux:select>
```

### 輸入插槽

如果您需要完全控制用於觸發組合框的輸入元素，可以使用輸入插槽自行渲染它。

```html
<flux:select variant="combobox">
    <x-slot name="input">
        <flux:select.input x-model="search" :invalid="$errors->has('...')" />
    </x-slot>
    ...
</flux:select>
```

### 動態選項

如果您希望在服務器上動態生成選項，可以使用:filter="false"屬性禁用客戶端過濾。

```html
<flux:select :filter="false">
    @foreach ($options as $option)
        <flux:select.option value="{{ $option->value }}">
            {{ $option->label }}
        </flux:select.option>
    @endforeach
</flux:select>
```

### 參數參考

#### flux:select

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將選擇綁定到Livewire屬性 |
| name | 選擇的name屬性。使用wire:model時自動設置 |
| placeholder | 未選擇選項時顯示的文本 |
| label | 顯示在選擇上方的標籤文本 |
| description | 顯示在選擇下方的幫助文本 |
| description:trailing | 提供的描述將顯示在選擇下方而非上方 |
| badge | 提供標籤時顯示在flux:label組件末尾的徽章文本 |
| size | 選擇的大小。選項：sm、xs |
| variant | 選擇的視覺樣式。選項：default（原生選擇）、listbox、combobox |
| multiple | 允許選擇多個選項（僅限listbox和combobox變體） |
| filter | 如果為false，禁用客戶端過濾 |
| searchable | 添加搜索輸入以過濾選項（僅限listbox和combobox變體） |
| clearable | 選擇選項時顯示清除按鈕（僅限listbox和combobox變體） |
| selected-suffix | 在多選模式下附加到選定選項數量的文本（僅限listbox變體） |
| clear | 何時清除搜索輸入。選項：select（預設）、close（僅限listbox和combobox變體） |
| disabled | 防止用戶與選擇交互 |
| invalid | 對選擇應用錯誤樣式 |

| 插槽 | 說明 |
| --- | --- |
| default | 選擇選項 |
| trigger | 自定義觸發內容。通常是select.button或select.input組件（僅限listbox和combobox變體） |

| 屬性 | 說明 |
| --- | --- |
| data-flux-select | 應用於根元素以進行樣式設置和識別 |

#### flux:select.option

| 屬性 | 說明 |
| --- | --- |
| value | 與選項關聯的值 |
| disabled | 防止選擇該選項 |

| 插槽 | 說明 |
| --- | --- |
| default | 選項內容（在listbox變體中可以包括圖標、圖像等） |

#### flux:select.button

| 屬性 | 說明 |
| --- | --- |
| placeholder | 未選擇選項時顯示的文本 |
| invalid | 對按鈕應用錯誤樣式 |
| size | 按鈕的大小。選項：sm、xs |
| disabled | 防止選擇選項 |
| clearable | 選擇選項時顯示清除按鈕 |

#### flux:select.input

| 屬性 | 說明 |
| --- | --- |
| placeholder | 未選擇選項時顯示的文本 |
| invalid | 對輸入應用錯誤樣式 |
| size | 輸入的大小。選項：sm、xs |

## Separator 分隔線

視覺上分隔內容部分或項目組。

### 基本用法

```html
<flux:separator />
```

### 帶文本

向分隔線添加文本以獲得更具描述性的元素。

```html
<flux:separator text="or" />
```

### 垂直

水平堆疊時使用垂直分隔線分隔內容。

```html
<flux:separator vertical />
```

### 有限高度

您可以通過添加垂直邊距來限制垂直分隔線的高度。

```html
<flux:separator vertical class="my-2" />
```

### 微妙

Flux為融入背景的分隔線提供了subtle變體。

```html
<flux:separator vertical variant="subtle" />
```

### 參數參考

#### flux:separator

| 屬性 | 說明 |
| --- | --- |
| vertical | 顯示垂直分隔線。預設為水平 |
| variant | 視覺樣式變體。選項：subtle。預設：標準分隔線 |
| text | 在分隔線中心顯示的可選文本 |
| orientation | vertical屬性的替代方案。選項：horizontal、vertical。預設：horizontal |

| 類 | 說明 |
| --- | --- |
| my-* | 常用於縮短垂直分隔線 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-separator | 應用於根元素以進行樣式設置和識別 |

## Switch 開關

切換設置開關。適用於二元選項，如啟用或禁用功能。

在表單之外使用開關作為自動保存控件；在表單內使用複選框。

### 基本用法

```html
<flux:switch wire:model.live="notifications" label="Enable notifications" />
```

### 字段集

將相關開關分組在字段集內。

```html
<flux:fieldset>
    <flux:legend>Email notifications</flux:legend>
    <div class="space-y-4">
        <flux:switch wire:model.live="communication" label="Communication emails" description="Receive emails about your account activity." />
        <flux:separator variant="subtle" />
        <flux:switch wire:model.live="marketing" label="Marketing emails" description="Receive emails about new products, features, and more." />
        <flux:separator variant="subtle" />
        <flux:switch wire:model.live="social" label="Social emails" description="Receive emails for friend requests, follows, and more." />
        <flux:separator variant="subtle" />
        <flux:switch wire:model.live="security" label="Security emails" description="Receive emails about your account activity and security." />
    </div>
</flux:fieldset>
```

### 左對齊

使用align屬性左對齊開關以獲得更緊湊的佈局。

```html
<flux:fieldset>
    <flux:legend>Email notifications</flux:legend>
    <div class="space-y-3">
        <flux:switch label="Communication emails" align="left" />
        <flux:switch label="Marketing emails" align="left" />
        <flux:switch label="Social emails" align="left" />
        <flux:switch label="Security emails" align="left" />
    </div>
</flux:fieldset>
```

### 參數參考

#### flux:switch

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將開關綁定到Livewire屬性 |
| name | 開關的name屬性。使用wire:model時自動設置 |
| label | 顯示在開關上方的標籤文本 |
| description | 顯示在開關下方的幫助文本 |
| align | 開關相對於其標籤的對齊方式。選項：right/start（預設）、left/end |
| disabled | 防止用戶與開關交互 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-switch | 應用於根元素以進行樣式設置和識別 |
| data-checked | 應用於開關處於"開啟"狀態時 |

## Table 表格

以濃縮、可搜索的格式顯示結構化數據。

### 基本用法

```html
<flux:table :paginate="$this->orders">
    <flux:table.columns>
        <flux:table.column>Customer</flux:table.column>
        <flux:table.column sortable :sorted="$sortBy === 'date'" :direction="$sortDirection" wire:click="sort('date')">Date</flux:table.column>
        <flux:table.column sortable :sorted="$sortBy === 'status'" :direction="$sortDirection" wire:click="sort('status')">Status</flux:table.column>
        <flux:table.column sortable :sorted="$sortBy === 'amount'" :direction="$sortDirection" wire:click="sort('amount')">Amount</flux:table.column>
    </flux:table.columns>
    <flux:table.rows>
        @foreach ($this->orders as $order)
            <flux:table.row :key="$order->id">
                <flux:table.cell class="flex items-center gap-3">
                    <flux:avatar size="xs" src="{{ $order->customer_avatar }}" />
                    {{ $order->customer }}
                </flux:table.cell>
                <flux:table.cell class="whitespace-nowrap">{{ $order->date }}</flux:table.cell>
                <flux:table.cell>
                    <flux:badge size="sm" :color="$order->status_color" inset="top bottom">{{ $order->status }}</flux:badge>
                </flux:table.cell>
                <flux:table.cell variant="strong">{{ $order->amount }}</flux:table.cell>
                <flux:table.cell>
                    <flux:button variant="ghost" size="sm" icon="ellipsis-horizontal" inset="top bottom"></flux:button>
                </flux:table.cell>
            </flux:table.row>
        @endforeach
    </flux:table.rows>
</flux:table>
```

### 簡單

上面的主要表格示例是一個功能齊全的表格，帶有排序、分頁等。這裡有一個簡單數據表的乾淨示例，您可以用它作為更簡單的起點。

```html
<flux:table>
    <flux:table.columns>
        <flux:table.column>Customer</flux:table.column>
        <flux:table.column>Date</flux:table.column>
        <flux:table.column>Status</flux:table.column>
        <flux:table.column>Amount</flux:table.column>
    </flux:table.columns>
    <flux:table.rows>
        <flux:table.row>
            <flux:table.cell>Lindsey Aminoff</flux:table.cell>
            <flux:table.cell>Jul 29, 10:45 AM</flux:table.cell>
            <flux:table.cell><flux:badge color="green" size="sm" inset="top bottom">Paid</flux:badge></flux:table.cell>
            <flux:table.cell variant="strong">$49.00</flux:table.cell>
        </flux:table.row>
        <flux:table.row>
            <flux:table.cell>Hanna Lubin</flux:table.cell>
            <flux:table.cell>Jul 28, 2:15 PM</flux:table.cell>
            <flux:table.cell><flux:badge color="green" size="sm" inset="top bottom">Paid</flux:badge></flux:table.cell>
            <flux:table.cell variant="strong">$312.00</flux:table.cell>
        </flux:table.row>
        <flux:table.row>
            <flux:table.cell>Kianna Bushevi</flux:table.cell>
            <flux:table.cell>Jul 30, 4:05 PM</flux:table.cell>
            <flux:table.cell><flux:badge color="zinc" size="sm" inset="top bottom">Refunded</flux:badge></flux:table.cell>
            <flux:table.cell variant="strong">$132.00</flux:table.cell>
        </flux:table.row>
        <flux:table.row>
            <flux:table.cell>Gustavo Geidt</flux:table.cell>
            <flux:table.cell>Jul 27, 9:30 AM</flux:table.cell>
            <flux:table.cell><flux:badge color="green" size="sm" inset="top bottom">Paid</flux:badge></flux:table.cell>
            <flux:table.cell variant="strong">$31.00</flux:table.cell>
        </flux:table.row>
    </flux:table.rows>
</flux:table>
```

### 分頁

通過將任何模型分頁器傳遞給paginate屬性，允許用戶瀏覽不同頁面的數據。

```html
<!-- $orders = \App\Models\Order::paginate(5) -->
<flux:table :paginate="$orders">
    <!-- ... -->
</flux:table>
```

### 可排序

通過結合使用sortable、sorted和direction屬性，允許用戶按特定列排序行。

```html
<flux:table>
    <flux:table.columns>
        <flux:table.column>Customer</flux:table.column>
        <flux:table.column sortable sorted direction="desc">Date</flux:table.column>
        <flux:table.column sortable>Amount</flux:table.column>
    </flux:table.columns>
    <!-- ... -->
</flux:table>
```

### 參數參考

#### flux:table

| 屬性 | 說明 |
| --- | --- |
| paginate | 啟用分頁的Laravel分頁器實例 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-table | 應用於根元素以進行樣式設置和識別 |

#### flux:table.columns

| 插槽 | 說明 |
| --- | --- |
| default | 表格列 |

#### flux:table.column

| 屬性 | 說明 |
| --- | --- |
| align | 列內容的對齊方式。選項：start、center、end |
| sortable | 為列啟用排序功能 |
| sorted | 表示此列當前正在排序 |
| direction | 列排序時的排序方向。選項：asc、desc |

#### flux:table.rows

| 插槽 | 說明 |
| --- | --- |
| default | 表格行 |

#### flux:table.row

| 屬性 | 說明 |
| --- | --- |
| key | wire:key的別名：行的唯一標識符 |

| 插槽 | 說明 |
| --- | --- |
| default | 此行的表格單元格 |

#### flux:table.cell

| 屬性 | 說明 |
| --- | --- |
| align | 單元格內容的對齊方式。選項：start、center、end |
| variant | 單元格的視覺樣式。選項：default、strong |

我已閱讀您提供的文檔，以下是根據您的要求整理的繁體中文版 Flux UI 組件文檔：

## Tabs 標籤頁

組織內容為獨立的面板，在單一容器內。讓用戶能夠在不離開頁面的情況下輕鬆切換不同的內容區段。

```html
<flux:tab.group>
    <flux:tabs wire:model="tab">
        <flux:tab name="profile">個人資料</flux:tab>
        <flux:tab name="account">帳戶</flux:tab>
        <flux:tab name="billing">帳單</flux:tab>
    </flux:tabs>
    <flux:tab.panel name="profile">...</flux:tab.panel>
    <flux:tab.panel name="account">...</flux:tab.panel>
    <flux:tab.panel name="billing">...</flux:tab.panel>
</flux:tab.group>
```

### 帶圖標的標籤

使用圖標與標籤標題關聯，以視覺方式區分不同的區段。

```html
<flux:tab.group>
    <flux:tabs>
        <flux:tab name="profile" icon="user">個人資料</flux:tab>
        <flux:tab name="account" icon="cog-6-tooth">帳戶</flux:tab>
        <flux:tab name="billing" icon="banknotes">帳單</flux:tab>
    </flux:tabs>
    <flux:tab.panel name="profile">...</flux:tab.panel>
    <flux:tab.panel name="account">...</flux:tab.panel>
    <flux:tab.panel name="billing">...</flux:tab.panel>
</flux:tab.group>
```

### 邊緣填充

默認情況下，標籤在邊緣沒有水平填充。如果需要添加填充，可以使用 Tailwind 工具類應用於 tabs 和/或 tab.panel 組件。

```html
<flux:tabs class="px-4">
    <flux:tab name="profile">個人資料</flux:tab>
    <flux:tab name="account">帳戶</flux:tab>
    <flux:tab name="billing">帳單</flux:tab>
</flux:tabs>
```

### 分段式標籤

使用視覺上分離的按鈕式標籤來瀏覽內容。適合在有限寬度的容器內切換視圖。

```html
<flux:tabs variant="segmented">
    <flux:tab>列表</flux:tab>
    <flux:tab>看板</flux:tab>
    <flux:tab>時間線</flux:tab>
</flux:tabs>
```

### 帶圖標的分段式標籤

將分段式標籤與前綴圖標結合使用。

```html
<flux:tabs variant="segmented">
    <flux:tab icon="list-bullet">列表</flux:tab>
    <flux:tab icon="squares-2x2">看板</flux:tab>
    <flux:tab icon="calendar-days">時間線</flux:tab>
</flux:tabs>
```

### 小型分段式標籤

對於更緊湊的佈局，可以使用 `size="sm"` 屬性使標籤變小。

```html
<flux:tabs variant="segmented" size="sm">
    <flux:tab>演示</flux:tab>
    <flux:tab>代碼</flux:tab>
</flux:tabs>
```

### 藥丸式標籤

使用視覺上分離的藥丸式標籤來瀏覽內容。

```html
<flux:tabs variant="pills">
    <flux:tab>列表</flux:tab>
    <flux:tab>看板</flux:tab>
    <flux:tab>時間線</flux:tab>
</flux:tabs>
```

### 動態標籤

如果需要，可以在 Livewire 組件中動態生成額外的標籤和面板。確保為新標籤和面板使用匹配的名稱。

```html
<flux:tab.group>
    <flux:tabs>
        @foreach($tabs as $id => $tab)
            <flux:tab :name="$id">{{ $tab }}</flux:tab>
        @endforeach
        <flux:tab icon="plus" wire:click="addTab" action>新增標籤</flux:tab>
    </flux:tabs>
    @foreach($tabs as $id => $tab)
        <flux:tab.panel :name="$id">
            <!-- ... -->
        </flux:tab.panel>
    @endforeach
</flux:tab.group>
```

```php
// Livewire 組件示例代碼...
public array $tabs = [
    'tab-1' => '標籤 #1',
    'tab-2' => '標籤 #2',
];

public function addTab(): void
{
    $id = 'tab-' . str()->random();
    $this->tabs[$id] = '標籤 #' . (count($this->tabs) + 1);
}
```

### 參數參考

#### flux:tab.group

標籤和相關面板的容器。

| 插槽 | 說明 |
| --- | --- |
| default | 標籤和面板組件。 |

#### flux:tabs

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將活動標籤綁定到 Livewire 屬性。參見 [wire:model 文檔](https://livewire.laravel.com/docs/wire-model) |
| variant | 標籤的視覺風格。選項：default、segmented、pills。 |
| size | 標籤的大小。選項：base (默認)、sm。 |

| 插槽 | 說明 |
| --- | --- |
| default | 單個標籤組件。 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-tabs | 應用於根元素，用於樣式設定和識別。 |

#### flux:tab

| 屬性 | 說明 |
| --- | --- |
| name | 標籤的唯一標識符，用於與其面板匹配。 |
| icon | 顯示在標籤開頭的圖標名稱。 |
| icon:trailing | 顯示在標籤結尾的圖標名稱。 |
| icon:variant | 圖標的變體。選項：outline、solid、mini、micro。 |
| action | 將標籤轉換為動作按鈕（用於"新增標籤"功能）。 |
| accent | 如果為 true，則將強調色樣式應用於標籤。 |
| size | 標籤的大小（僅適用於 variant="segmented"）。選項：base (默認)、sm。 |
| disabled | 禁用標籤。 |

| 插槽 | 說明 |
| --- | --- |
| default | 標籤標籤內容。 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-tab | 應用於標籤元素，用於樣式設定和識別。 |
| data-selected | 當標籤被選中/激活時應用。 |

#### flux:tab.panel

| 屬性 | 說明 |
| --- | --- |
| name | 與相關標籤匹配的唯一標識符。 |

| 插槽 | 說明 |
| --- | --- |
| default | 當相關標籤被選中時顯示的面板內容。 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-tab-panel | 應用於面板元素，用於樣式設定和識別。 |

## Text 文本

一致的排版組件，如文本和連結。

```html
<flux:heading>文本組件</flux:heading>
<flux:text class="mt-2">這是用於正文和應用程序中一般內容的標準文本組件。</flux:text>
```

### 尺寸

使用標準 Tailwind 控制文本的尺寸，以便更容易適應不同的屏幕尺寸。

```html
<flux:text class="text-base">基本文本尺寸</flux:text>
<flux:text>默認文本尺寸</flux:text>
<flux:text class="text-xs">較小文本</flux:text>
```

### 顏色

使用標準 Tailwind 控制文本的顏色，以便更容易適應不同的屏幕尺寸。

```html
<flux:text variant="strong">強調文本顏色</flux:text>
<flux:text>默認文本顏色</flux:text>
<flux:text variant="subtle">柔和文本顏色</flux:text>
<flux:text color="blue">彩色文本</flux:text>
```

### 連結

使用連結組件創建可點擊的文本，用於導航到其他頁面或資源。

```html
<flux:text>訪問我們的 <flux:link href="#">文檔</flux:link> 獲取更多信息。</flux:text>
```

### 連結變體

連結可以根據上下文和重要性進行不同的樣式設計。

```html
<flux:link href="#">默認連結</flux:link>
<flux:link href="#" variant="ghost">幽靈連結</flux:link>
<flux:link href="#" variant="subtle">柔和連結</flux:link>
```

### 參數參考

#### flux:text

| 屬性 | 說明 |
| --- | --- |
| size | 文本的大小。選項：xs、sm、base、lg。默認：base。 |
| variant | 文本變體。選項：strong、subtle。默認：default。 |
| color | 文本的顏色。選項：default、red、orange、yellow、lime、green、emerald、teal、cyan、sky、blue、indigo、violet、purple、fuchsia、pink、rose。默認：default。 |
| inline | 如果為 true，文本元素將是 span 而不是 p。 |

#### flux:link

| 屬性 | 說明 |
| --- | --- |
| href | 連結指向的 URL。必填項。 |
| variant | 連結樣式變體。選項：default、ghost、subtle。默認：default。 |
| external | 如果為 true，連結將在新標籤中打開。 |

## Textarea 文本區域

從用戶那裡捕獲多行文本輸入。適用於評論、描述和反饋。

### 帶佔位符

在文本區域內顯示提示，指導用戶輸入內容。

```html
<flux:textarea
    label="訂單備註"
    placeholder="不要生菜、番茄或洋蔥..."/>
```

### 固定行高

通過傳遞 rows 屬性來自定義文本區域的高度。

```html
<flux:textarea rows="2" label="備註" />
```

### 自動調整大小的文本區域

使用 CSS 的新 field-sizing 屬性，文本區域會通過傳遞 rows="auto" 屬性自動調整其高度以適應內容。

這個功能並非所有網絡瀏覽器都支持。訪問 [caniuse.com](https://caniuse.com/?search=field-sizing) 查看哪些瀏覽器支持這個功能。

```html
<flux:textarea rows="auto" />
```

### 配置調整大小

如果要限制用戶調整文本區域的大小，可以使用 resize="none" 屬性。

```html
<flux:textarea resize="vertical" />
<flux:textarea resize="none" />
<flux:textarea resize="horizontal" />
<flux:textarea resize="both" />
```

### 參數參考

#### flux:textarea

| 屬性 | 說明 |
| --- | --- |
| wire:model | 將文本區域綁定到 Livewire 屬性。參見 [wire:model 文檔](https://livewire.laravel.com/docs/wire-model) 獲取更多信息。 |
| name | 文本區域的 name 屬性。使用 wire:model 時自動設置。 |
| placeholder | 文本區域為空時顯示的佔位符文本。 |
| label | 顯示在文本區域上方的標籤文本。當提供時，將文本區域包裝在帶有相鄰 flux:label 組件的 flux:field 組件中。參見 [field 組件](https://fluxui.dev/components/field)。 |
| description | 顯示在文本區域下方的幫助文本。當與標籤一起提供時，出現在 flux:field 包裝器內的標籤和文本區域之間。參見 [field 組件](https://fluxui.dev/components/field)。 |
| description:trailing | 提供的描述將顯示在文本區域下方而不是上方。 |
| badge | 當提供 label 屬性時，顯示在 flux:label 組件末尾的徽章文本。 |
| rows | 可見文本行數。使用 "auto" 進行自動高度調整。默認：4。 |
| resize | 控制文本區域如何調整大小。選項：vertical（默認）、horizontal、both、none。 |
| invalid | 如果為 true，則對文本區域應用錯誤樣式。 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-textarea | 應用於文本區域元素，用於樣式設定和識別。 |

## Toast 提示訊息

提供關於操作或事件的反饋訊息，通常是臨時的且可關閉的。

要從 Livewire 使用 Toast 組件，必須在頁面的某個位置包含它；通常在佈局文件中：

```html
<body>
    <!-- ... -->
    <flux:toast />
</body>
```

如果使用 wire:navigate 在頁面之間導航，可能希望保持 toast 組件，使 toast 訊息在導航離開頁面時不會突然消失。

```html
<body>
    <!-- ... -->
    @persist('toast')
        <flux:toast />
    @endpersist
</body>
```

一旦 toast 組件出現在頁面上，就可以使用 `Flux::toast()` 方法從 Livewire 組件觸發 toast 訊息：

```php
<?php
namespace App\Livewire;
use Livewire\Component;
use Flux;

class EditPost extends Component
{
    public function save()
    {
        // ...
        Flux::toast('您的變更已儲存。');
    }
}
```

您也可以直接使用 Flux 的魔術方法從 Alpine 觸發 toast：

```html
<button x-on:click="$flux.toast('您的變更已儲存。')">
    儲存變更
</button>
```

或者，您可以使用 window.Flux 全局對象從應用程序中的任何 JavaScript 觸發 toast：

```html
<script>
    let button = document.querySelector('...')
    button.addEventListener('alpine:init', () => {
        Flux.toast('您的變更已儲存。')
    })
</script>
```

$flux 和 window.Flux 支持以下方法參數簽名：

```js
Flux.toast('您的變更已儲存。')
// 或...
Flux.toast({
    heading: '變更已儲存',
    text: '您的變更已儲存。',
    variant: 'success',
})
```

### 帶標題

使用標題為 toast 提供額外的上下文。

```php
Flux::toast(
    heading: '變更已儲存。',
    text: '您可以隨時在設置中更新此內容。',
);
```

### 變體

使用 variant 屬性改變 toast 的視覺樣式。

```php
Flux::toast(variant: 'success', ...);
Flux::toast(variant: 'warning', ...);
Flux::toast(variant: 'danger', ...);
```

### 位置

默認情況下，toast 將出現在頁面的右下角。您可以使用 position 屬性自定義此位置。

```html
<flux:toast position="top right" />
<!-- 為導航欄等定制頂部填充... -->
<flux:toast position="top right" class="pt-24" />
```

### 持續時間

默認情況下，toast 將在 5 秒後自動關閉。您可以通過向 duration 屬性傳遞毫秒數來自定義此持續時間。

```php
// 1 秒...
Flux::toast(duration: 1000, ...);
```

### 永久顯示

使用 0 作為 duration 屬性的值，使 toast 無限期保持開啟。

```php
// 無限期顯示...
Flux::toast(duration: 0, ...);
```

### 參數參考

#### flux:toast

| 屬性 | 說明 |
| --- | --- |
| position | toast 在屏幕上的位置。選項：bottom right（默認）、bottom left、top right、top left。 |
| duration | toast 自動關閉前的毫秒數。使用 0 表示永久 toast。默認：5000。 |
| variant | toast 的視覺樣式。選項：success、warning、danger。 |

#### Flux::toast()

從 Livewire 組件觸發 toast 的 PHP 方法。

| 參數 | 說明 |
| --- | --- |
| heading | toast 的可選標題文本。 |
| text | toast 的主要內容文本。 |
| variant | 視覺樣式。選項：success、warning、danger。 |
| duration | 毫秒數。使用 0 表示永久 toast。默認：5000。 |

#### $flux.toast()

從 Alpine 組件觸發 toast 的 Alpine.js 魔術方法。可以通過兩種方式使用：

```js
// 僅使用消息的簡單用法...
$flux.toast('您的變更已儲存')
// 使用完整配置的高級用法...
$flux.toast({
    heading: '成功！',
    text: '您的變更已儲存',
    variant: 'success',
    duration: 3000
})
```

| 參數 | 說明 |
| --- | --- |
| message | 包含 toast 消息的字符串。使用此簡單形式時，消息成為 toast 的文本內容。 |
| options | 或者，包含：- heading：可選標題文本 - text：主要消息文本 - variant：視覺樣式（success、warning、danger）- duration：顯示時間（毫秒） |

## Tooltip 提示框

當用戶懸停或聚焦於某個元素時提供額外信息。

由於工具提示依賴於懸停狀態，觸摸設備（如移動電話）通常不會顯示它們。因此，建議通過 UI 傳達基本信息，而不是依賴移動用戶的工具提示。

```html
<flux:tooltip content="設置">
    <flux:button icon="cog-6-tooth" icon:variant="outline" />
</flux:tooltip>
```

作為簡寫，可以直接將 tooltip 屬性傳遞給按鈕組件。

```html
<flux:button tooltip="設置" ... />
```

在工具提示內容必不可少的情況下，應該使其可切換。這樣，觸摸設備上的用戶將能夠通過點擊/按壓而不是懸停來觸發它。

```html
<flux:heading class="flex items-center gap-2">
    稅務識別號
    <flux:tooltip toggleable>
        <flux:button icon="information-circle" size="sm" variant="ghost" />
        <flux:tooltip.content class="max-w-[20rem] space-y-2">
            <p>對於美國企業，輸入不帶連字符的 9 位數僱主識別號 (EIN)。</p>
            <p>對於歐洲公司，輸入包括國家前綴的增值稅號碼（例如，DE123456789）。</p>
        </flux:tooltip.content>
    </flux:tooltip>
</flux:heading>
```

### 位置

在元素周圍定位工具提示以獲得最佳可見性。選擇 top、right、bottom 或 left。

```html
<flux:tooltip content="設置" position="top">
    <flux:button icon="cog-6-tooth" icon:variant="outline" />
</flux:tooltip>
<flux:tooltip content="設置" position="right">
    <flux:button icon="cog-6-tooth" icon:variant="outline" />
</flux:tooltip>
<flux:tooltip content="設置" position="bottom">
    <flux:button icon="cog-6-tooth" icon:variant="outline" />
</flux:tooltip>
<flux:tooltip content="設置" position="left">
    <flux:button icon="cog-6-tooth" icon:variant="outline" />
</flux:tooltip>
```

### 禁用按鈕

默認情況下，禁用按鈕上的工具提示不會被觸發，因為指針事件也被禁用。但是，作為解決方法，可以針對包裝元素而不是直接針對按鈕。

```html
<flux:tooltip content="必須由團隊成員審核後才能合併">
    <div>
        <flux:button disabled icon="arrow-turn-down-right">合併拉取請求</flux:button>
    </div>
</flux:tooltip>
```

### 參數參考

#### flux:tooltip

| 屬性 | 說明 |
| --- | --- |
| content | 在工具提示中顯示的文本內容。替代使用 flux:tooltip.content 組件。 |
| position | 工具提示相對於觸發元素的位置。選項：top（默認）、right、bottom、left。 |
| align | 工具提示的對齊方式。選項：center（默認）、start、end。 |
| gap | 觸發元素和工具提示之間的間距。默認：5px。 |
| offset | 工具提示相對於觸發元素的偏移量。默認：0px。 |
| toggleable | 使工具提示可點擊而不僅是懸停。對觸摸設備有用。 |
| interactive | 使用適當的 ARIA 屬性（aria-expanded 和 aria-controls）來表示工具提示具有交互式內容。 |
| kbd | 在工具提示末尾顯示的鍵盤快捷方式提示。 |

| 屬性 | 說明 |
| --- | --- |
| data-flux-tooltip | 應用於根元素，用於樣式設定和識別。 |

#### flux:tooltip.content

| 屬性 | 說明 |
| --- | --- |
| kbd | 在工具提示內容末尾顯示的鍵盤快捷方式提示。 |