@tnlmedia/inkmagine-gui 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/README.zh-tw.md +349 -1
- package/dist/chunks/InkCheckbox.Bo9P4Fnq.js +5 -0
- package/dist/chunks/InkCheckbox.Bo9P4Fnq.js.map +1 -0
- package/dist/chunks/InkDatetime.DuIlN9qX.js +5 -0
- package/dist/chunks/InkDatetime.DuIlN9qX.js.map +1 -0
- package/dist/chunks/InkDatetimerng.Un2rLzLU.js +5 -0
- package/dist/chunks/InkDatetimerng.Un2rLzLU.js.map +1 -0
- package/dist/chunks/InkHashtag.C2MlkO78.js +5 -0
- package/dist/chunks/InkHashtag.C2MlkO78.js.map +1 -0
- package/dist/chunks/InkRadio.Dlej2ra5.js +5 -0
- package/dist/chunks/InkRadio.Dlej2ra5.js.map +1 -0
- package/dist/chunks/InkSelect.DWiVv_fE.js +5 -0
- package/dist/chunks/InkSelect.DWiVv_fE.js.map +1 -0
- package/dist/chunks/InkSwitch.Bmrcv2_W.js +5 -0
- package/dist/chunks/InkSwitch.Bmrcv2_W.js.map +1 -0
- package/dist/chunks/InkText.2z3CBfGZ.js +5 -0
- package/dist/chunks/InkText.2z3CBfGZ.js.map +1 -0
- package/dist/chunks/InkTextarea.bSKGpfeu.js +5 -0
- package/dist/chunks/InkTextarea.bSKGpfeu.js.map +1 -0
- package/dist/chunks/InkUrl.y40jqTAY.js +5 -0
- package/dist/chunks/InkUrl.y40jqTAY.js.map +1 -0
- package/dist/chunks/en.CHdwefRA.js +183 -0
- package/dist/chunks/en.CHdwefRA.js.map +1 -0
- package/dist/chunks/ja.AHwqhlss.js +146 -0
- package/dist/chunks/ja.AHwqhlss.js.map +1 -0
- package/dist/chunks/zh-tw.0zg_GCuJ.js +182 -0
- package/dist/chunks/zh-tw.0zg_GCuJ.js.map +1 -0
- package/dist/inkmagine-gui.es.js +4433 -704
- package/dist/inkmagine-gui.es.js.map +1 -1
- package/dist/inkmagine-gui.umd.js +2 -5
- package/dist/inkmagine-gui.umd.js.map +1 -1
- package/dist/style/index.css +1 -1
- package/dist/types/components/InkBadge.vue.d.ts +27 -0
- package/dist/types/components/InkNavbar.vue.d.ts +11 -0
- package/dist/types/components/ink-sidebar/InkSidebar.vue.d.ts +57 -0
- package/dist/types/components/ink-sidebar/InkSidebarMenu.vue.d.ts +26 -0
- package/dist/types/components/ink-sidebar/InkSidebarSimpleHide.vue.d.ts +22 -0
- package/dist/types/components/ink-tooltip/Ink-tooltip.d.ts +3 -0
- package/dist/types/components/ink-tooltip/InkVTooltip.vue.d.ts +18 -0
- package/dist/types/components/input/InkCheckbox.vue.d.ts +72 -0
- package/dist/types/components/input/InkDatetime.vue.d.ts +543 -0
- package/dist/types/components/input/InkDatetimerng.vue.d.ts +1015 -0
- package/dist/types/components/input/InkElConfigProvider.vue.d.ts +17 -0
- package/dist/types/components/input/InkErrorMessage.vue.d.ts +14 -0
- package/dist/types/components/input/InkField.vue.d.ts +10 -0
- package/dist/types/components/input/InkFieldMessage.vue.d.ts +14 -0
- package/dist/types/components/input/InkHashtag.vue.d.ts +72 -0
- package/dist/types/components/input/InkRadio.vue.d.ts +72 -0
- package/dist/types/components/input/InkSelect.vue.d.ts +72 -0
- package/dist/types/components/input/InkSwitch.vue.d.ts +61 -0
- package/dist/types/components/input/InkText.vue.d.ts +70 -0
- package/dist/types/components/input/InkTextarea.vue.d.ts +70 -0
- package/dist/types/components/input/InkUrl.vue.d.ts +70 -0
- package/dist/types/components/input/InkWordCount.vue.d.ts +6 -0
- package/dist/types/components/input/InputFrame.vue.d.ts +29 -0
- package/dist/types/components/input/InputInner.vue.d.ts +17 -0
- package/dist/types/components/input/InputWrapper.vue.d.ts +17 -0
- package/dist/types/components/input/field-data-interface.d.ts +144 -0
- package/dist/types/components/input/input-default-value.d.ts +75 -0
- package/dist/types/helper/dayjs.d.ts +10 -0
- package/dist/types/helper/handle-sidebar-toggler-click.d.ts +1 -0
- package/dist/types/helper/i18n.d.ts +288 -0
- package/dist/types/helper/set-font.d.ts +1 -0
- package/dist/types/helper/useAttrs.d.ts +3 -0
- package/dist/types/helper/useDefineRule.d.ts +2 -0
- package/dist/types/index.d.ts +22 -2
- package/dist/types/lang/en-us.json.d.ts +52 -0
- package/dist/types/lang/ja-jp.json.d.ts +52 -0
- package/dist/types/lang/zh-tw.json.d.ts +53 -0
- package/package.json +23 -7
- package/dist/types/helper/attrs.d.ts +0 -3
package/README.md
CHANGED
@@ -10,6 +10,11 @@ Inkmagine unify components and styles
|
|
10
10
|
```bash
|
11
11
|
npm install @tnlmedia/inkmagine-gui
|
12
12
|
```
|
13
|
+
- 如果遇到 peerDependencies 的套件版本過低可以使用忽略 peerDependencies 套件的安裝方式
|
14
|
+
|
15
|
+
```bash
|
16
|
+
npm install @tnlmedia/inkmagine-gui --legacy-peer-deps
|
17
|
+
```
|
13
18
|
|
14
19
|
## style example
|
15
20
|
### tailwind config
|
@@ -18,6 +23,7 @@ import {inkTailwindConfig} from '@tnlmedia/inkmagine-gui/tailwind.config.js'
|
|
18
23
|
export default {
|
19
24
|
...inkTailwindConfig,
|
20
25
|
content: [
|
26
|
+
'./node_modules/@tnlmedia/inkmagine-gui/**/*.{js,ts,vue}',
|
21
27
|
'Set the file path to be scanned in the project'
|
22
28
|
],
|
23
29
|
}
|
@@ -26,9 +32,21 @@ export default {
|
|
26
32
|
<!-- example from example folder -->
|
27
33
|
## compoment example
|
28
34
|
|
35
|
+
| 全域名稱 | 範例 |
|
36
|
+
|---------|---------|
|
37
|
+
| inkmagineGui| [範例程式碼](./ink-example/inkmagineGui.md)|
|
38
|
+
|
39
|
+
| 容器名稱 | 範例 |
|
40
|
+
|---------|---------|
|
41
|
+
| InkNavbar |[範例程式碼](./ink-example/InkNavbar.md)|
|
42
|
+
| InkSidebar |[範例程式碼](./ink-example/InkSidebar.md)|
|
43
|
+
|
29
44
|
| 元件名稱 | 範例 |
|
30
45
|
|---------|---------|
|
46
|
+
| inkmagineGui| [範例程式碼](./ink-example/inkmagineGui.md)|
|
47
|
+
| InkNavbar |[範例程式碼](./ink-example/InkNavbar.md)|
|
31
48
|
| InkButton | [範例程式碼](./ink-example/InkButton.md) |
|
32
49
|
| InkMenu | [範例程式碼](./ink-example/InkMenu.md) |
|
33
50
|
| InkDisclosure | [範例程式碼](./ink-example/InkDisclosure.md) |
|
51
|
+
| InkVTooltip | [範例程式碼](./ink-example/InkVTooltip.md) |
|
34
52
|
|
package/README.zh-tw.md
CHANGED
@@ -9,6 +9,11 @@ Inkmagine 是一個統一的組件和樣式庫,提供了一系列可重用的
|
|
9
9
|
```bash
|
10
10
|
npm install @tnlmedia/inkmagine-gui
|
11
11
|
```
|
12
|
+
- 如果遇到 peerDependencies 的套件版本過低可以使用忽略 peerDependencies 套件的安裝方式
|
13
|
+
|
14
|
+
```bash
|
15
|
+
npm install @tnlmedia/inkmagine-gui --legacy-peer-deps
|
16
|
+
```
|
12
17
|
|
13
18
|
## 可用樣式使用說明
|
14
19
|
### tailwind config
|
@@ -17,10 +22,198 @@ import {inkTailwindConfig} from '@tnlmedia/inkmagine-gui/tailwind.config.js'
|
|
17
22
|
export default {
|
18
23
|
...inkTailwindConfig,
|
19
24
|
content: [
|
25
|
+
'./node_modules/@tnlmedia/inkmagine-gui/**/*.{js,ts,vue}',
|
20
26
|
'Set the file path to be scanned in the project'
|
21
27
|
],
|
22
28
|
}
|
23
29
|
```
|
30
|
+
## 全域設定說明
|
31
|
+
|
32
|
+
### vue-i18n language
|
33
|
+
|
34
|
+
在初始化應用程式時,可以透過 `inkmagineGui` 的選項來設定語言:
|
35
|
+
|
36
|
+
```js
|
37
|
+
import inkmagineGui from "@tnlmedia/inkmagine-gui"
|
38
|
+
|
39
|
+
createApp(App)
|
40
|
+
.use(inkmagineGui, { lang: 'zh-tw' }) // 設定語言
|
41
|
+
```
|
42
|
+
|
43
|
+
#### 支援的語言
|
44
|
+
- `zh-tw`: 繁體中文
|
45
|
+
- `en-us`: 英文
|
46
|
+
- `ja-jp`: 日文
|
47
|
+
|
48
|
+
如果未指定語言,預設將使用 `en-us`。
|
49
|
+
|
50
|
+
## 容器使用說明
|
51
|
+
|
52
|
+
### InkNavbar
|
53
|
+
|
54
|
+
InkNavbar 是一個導航欄組件,提供網站頂部的導航功能,包含側邊欄切換、應用程式選單和用戶選單等功能。
|
55
|
+
|
56
|
+
#### 基本用法
|
57
|
+
```vue
|
58
|
+
<InkNavbar
|
59
|
+
:timezone="user?.timezone"
|
60
|
+
:user="user"
|
61
|
+
logoutUrl="/logout"
|
62
|
+
/>
|
63
|
+
```
|
64
|
+
|
65
|
+
#### 屬性說明
|
66
|
+
|
67
|
+
| 屬性名稱 | 類型 | 必填 | 說明 |
|
68
|
+
|---------|------|------|------|
|
69
|
+
| `timezone` | string | 否 | 用戶的時區設定 |
|
70
|
+
| `user` | object | 是 | 用戶資訊物件,包含以下屬性:<br>- `nickname`: 用戶暱稱<br>- `avatar`: 用戶頭像 URL<br>- `mail`: 用戶電子郵件 |
|
71
|
+
| `logoutUrl` | string | 是 | 登出功能的 URL |
|
72
|
+
|
73
|
+
#### 功能說明
|
74
|
+
- 側邊欄切換按鈕
|
75
|
+
- 時區顯示
|
76
|
+
- 應用程式選單(包含 dashboard、member、team、cabinet 等應用)
|
77
|
+
- 用戶選單(包含用戶資訊、個人資料和登出功能)
|
78
|
+
|
79
|
+
#### 注意事項
|
80
|
+
- 應用程式選單的 URL 會根據當前環境(sandbox、stage、production)自動調整
|
81
|
+
- 用戶頭像若未設定,將顯示用戶電子郵件的第一個字母
|
82
|
+
- 所有文字內容都支援多語言設定
|
83
|
+
|
84
|
+
### InkSidebar
|
85
|
+
|
86
|
+
InkSidebar 是一個側邊欄組件,提供網站的主要導航功能,包含品牌切換、選單導航等功能。
|
87
|
+
|
88
|
+
#### 基本用法
|
89
|
+
```vue
|
90
|
+
<InkSidebar
|
91
|
+
:currentAppName="$t('sandwich')"
|
92
|
+
:currentMainSwitchItem="currentConsole?.console"
|
93
|
+
:mainSwitchItems="user.permission.map((item:Permission) => item.console)"
|
94
|
+
@mainItemCheckSwitch="checkSwitchEnv"
|
95
|
+
:menu="menu"
|
96
|
+
:currentMenuItemId="checkCurrentMenuItemId"
|
97
|
+
/>
|
98
|
+
```
|
99
|
+
|
100
|
+
#### 進階用法(使用插槽)
|
101
|
+
```vue
|
102
|
+
<InkSidebar
|
103
|
+
:currentAppName="trans('cabinet.name')"
|
104
|
+
:currentMainSwitchItem="currentTeam"
|
105
|
+
:mainSwitchItems="env.team"
|
106
|
+
@mainItemCheckSwitch="checkSwitchEnv"
|
107
|
+
@tabItemCheckSwitch="checkSwitchEnv"
|
108
|
+
:menu="menu"
|
109
|
+
:currentMenuItemId="checkCurrentMenuItemId"
|
110
|
+
:currentTabSwitchItemId="env.workspace.console"
|
111
|
+
:tabSwitchItems="consoleList"
|
112
|
+
>
|
113
|
+
<!-- 自定義內容 -->
|
114
|
+
<InkButton
|
115
|
+
as="router-link"
|
116
|
+
variant="txt"
|
117
|
+
theme="primary"
|
118
|
+
:to="{ name: 'article-create' }"
|
119
|
+
>
|
120
|
+
<i class="far fa-edit tw-text-base"></i>
|
121
|
+
<InkSidebarSimpleHide>
|
122
|
+
{{ trans('buttons.compose') }}
|
123
|
+
</InkSidebarSimpleHide>
|
124
|
+
</InkButton>
|
125
|
+
</InkSidebar>
|
126
|
+
```
|
127
|
+
|
128
|
+
#### 屬性說明
|
129
|
+
|
130
|
+
| 屬性名稱 | 類型 | 必填 | 說明 |
|
131
|
+
|---------|------|------|------|
|
132
|
+
| `currentAppName` | string | 是 | 當前應用程式名稱 |
|
133
|
+
| `currentMainSwitchItem` | object | 是 | 當前選中的主要切換項目,包含以下屬性:<br>- `id`: 項目 ID<br>- `name`: 項目名稱<br>- `logo`: 項目圖標 URL |
|
134
|
+
| `mainSwitchItems` | array | 是 | 主要切換項目列表,每個項目包含與 `currentMainSwitchItem` 相同的屬性 |
|
135
|
+
| `currentTabSwitchItemId` | string \| number | 否 | 當前選中的 tabSwitchItems 切換項目的 id |
|
136
|
+
| `tabSwitchItems` | array | 否 | 標籤切換項目列表,每個項目包含與 `currentMainSwitchItem` 相同的屬性 |
|
137
|
+
| `menu` | array | 是 | 選單項目列表,每個項目包含以下屬性:<br>- `id`: 項目 ID<br>- `name`: 項目名稱<br>- `icon`: 圖標類名<br>- `route`: 路由資訊(可選)<br>- `children`: 子選單項目(可選)<br>- `isAllow`: 是否允許訪問(可選) |
|
138
|
+
| `currentMenuItemId` | string \| number | 是 | 當前選中的選單項目 ID |
|
139
|
+
|
140
|
+
#### 事件說明
|
141
|
+
|
142
|
+
| 事件名稱 | 參數 | 說明 |
|
143
|
+
|---------|------|------|
|
144
|
+
| `mainItemCheckSwitch` | `(item: SwitchItem, close: () => void)` | 當主要切換項目被點擊時觸發 |
|
145
|
+
| `tabItemCheckSwitch` | `(item: SwitchItem)` | 當標籤切換項目被點擊時觸發 |
|
146
|
+
|
147
|
+
#### 選單結構範例
|
148
|
+
```js
|
149
|
+
const menu = [
|
150
|
+
{
|
151
|
+
id: 'deliveryArticle',
|
152
|
+
icon: 'fa-file-waveform',
|
153
|
+
name: 'deliveryArticle',
|
154
|
+
children: [{
|
155
|
+
id: 'deliveryArticleOverview',
|
156
|
+
name: 'overview',
|
157
|
+
route: {
|
158
|
+
name: 'article-delivery-overview',
|
159
|
+
query: {
|
160
|
+
console_id: currentConsole?.console?.id
|
161
|
+
}
|
162
|
+
},
|
163
|
+
isAllow: true,
|
164
|
+
}],
|
165
|
+
},
|
166
|
+
{
|
167
|
+
id: 'setting',
|
168
|
+
icon: 'fa-gear',
|
169
|
+
name: 'setting',
|
170
|
+
children: [{
|
171
|
+
id: 'deliveryPosition',
|
172
|
+
name: 'deliveryPosition',
|
173
|
+
route: {
|
174
|
+
name: 'position',
|
175
|
+
query: {
|
176
|
+
console_id: currentConsole?.console?.id
|
177
|
+
}
|
178
|
+
},
|
179
|
+
isAllow: true,
|
180
|
+
}],
|
181
|
+
},
|
182
|
+
];
|
183
|
+
```
|
184
|
+
|
185
|
+
#### 功能說明
|
186
|
+
- 支援多層級選單結構
|
187
|
+
- 支援路由導航
|
188
|
+
- 支援權限控制
|
189
|
+
- 支援自定義內容(通過插槽)
|
190
|
+
|
191
|
+
#### 注意事項
|
192
|
+
- 選單項目的 `isAllow` 屬性用於控制項目的顯示權限
|
193
|
+
- 子選單項目的路由資訊必須包含 `name` 屬性
|
194
|
+
- 側邊欄的折疊狀態會保存在 body 的 class 中
|
195
|
+
- InkSidebarMenu 組件使用 [Vue Router](https://router.vuejs.org/) 作為路由管理工具,請確保您的專案中已安裝此套件
|
196
|
+
- 當使用 `tabSwitchItems` 時,需要同時提供 `currentTabSwitchItemId` 屬性
|
197
|
+
|
198
|
+
#### 相關組件說明
|
199
|
+
|
200
|
+
| 組件名稱 | 說明 | 屬性 | 預設值 | 可選值 |
|
201
|
+
|---------|------|------|--------|--------|
|
202
|
+
| `InkSidebarSimpleHide` | 側邊欄折疊時隱藏內容的包裝器 | `as` | 'span' | string \| Component |
|
203
|
+
|
204
|
+
#### 組件關係
|
205
|
+
```
|
206
|
+
InkSidebar
|
207
|
+
├──slot
|
208
|
+
│ └── InkSidebarSimpleHide (折疊時隱藏內容)
|
209
|
+
└── InkSidebarMenu (選單列表,已包含在容器內)
|
210
|
+
```
|
211
|
+
|
212
|
+
#### 使用說明
|
213
|
+
1. `InkSidebarSimpleHide` 用於包裝需要在側邊欄折疊時隱藏的內容
|
214
|
+
2. 可以通過 `as` 屬性來自定義渲染的標籤或組件
|
215
|
+
3. 預設使用 `span` 標籤渲染
|
216
|
+
4. 支援插槽內容
|
24
217
|
|
25
218
|
## 組件使用說明
|
26
219
|
|
@@ -324,4 +517,159 @@ InkMenu
|
|
324
517
|
#### 樣式
|
325
518
|
- 所有組件都預設套用了相應的樣式類
|
326
519
|
- 可以通過 `class` 屬性來自定義樣式
|
327
|
-
- 支援 Tailwind CSS 的樣式類
|
520
|
+
- 支援 Tailwind CSS 的樣式類
|
521
|
+
|
522
|
+
### InkDisclosure 展開/收合組件
|
523
|
+
|
524
|
+
InkDisclosure 是基於 @headlessui/vue 的 Disclosure 組件封裝,提供了一個可展開/收合的內容區塊解決方案。
|
525
|
+
|
526
|
+
#### 基本用法
|
527
|
+
```vue
|
528
|
+
<InkDisclosure v-slot="{ open }" :defaultOpen="true">
|
529
|
+
<InkDisclosureButton>
|
530
|
+
標題
|
531
|
+
</InkDisclosureButton>
|
532
|
+
<InkDisclosurePanel>
|
533
|
+
展開的內容
|
534
|
+
</InkDisclosurePanel>
|
535
|
+
</InkDisclosure>
|
536
|
+
```
|
537
|
+
|
538
|
+
#### 進階用法 - 群組展開
|
539
|
+
```vue
|
540
|
+
<InkDisclosure
|
541
|
+
v-for="(item, index) in group"
|
542
|
+
v-slot="{ open }"
|
543
|
+
:defaultOpen="defaultOpen[index]"
|
544
|
+
>
|
545
|
+
<InkDisclosureButton @click="onOpen(index)">
|
546
|
+
{{ item.name }}
|
547
|
+
</InkDisclosureButton>
|
548
|
+
<div v-show="open">
|
549
|
+
<InkDisclosurePanel static :unmount="false">
|
550
|
+
<DynamicComponent
|
551
|
+
v-for="field in item.field"
|
552
|
+
:key="field.id"
|
553
|
+
:field="field"
|
554
|
+
:value="fieldValue.find(item => item.id === field.id)?.value"
|
555
|
+
/>
|
556
|
+
</InkDisclosurePanel>
|
557
|
+
</div>
|
558
|
+
</InkDisclosure>
|
559
|
+
```
|
560
|
+
|
561
|
+
#### InkDisclosure 相關組件說明
|
562
|
+
|
563
|
+
| 組件名稱 | @headlessui/vue 組件名稱 | 說明 | 屬性 | 預設值 | 可選值 |
|
564
|
+
|---------|-------------------------|------|------|--------|--------|
|
565
|
+
| `InkDisclosure` | `Disclosure` | 展開/收合容器,管理內容的展開狀態 | - | - | - |
|
566
|
+
| `InkDisclosureButton` | `DisclosureButton` | 觸發按鈕,控制內容的展開/收合 | `as`<br>`type` | 'button'<br>'button' | string<br>string |
|
567
|
+
| `InkDisclosurePanel` | `DisclosurePanel` | 可展開/收合的內容區塊 | - | - | - |
|
568
|
+
|
569
|
+
#### 組件關係
|
570
|
+
```
|
571
|
+
InkDisclosure (展開/收合容器)
|
572
|
+
├── InkDisclosureButton (觸發按鈕)
|
573
|
+
└── InkDisclosurePanel (內容區塊)
|
574
|
+
```
|
575
|
+
|
576
|
+
#### 使用說明
|
577
|
+
1. `InkDisclosure` 提供 `v-slot="{ open }"` 用於獲取當前的展開狀態
|
578
|
+
2. `defaultOpen` 屬性可以設定預設是否展開
|
579
|
+
3. `InkDisclosureButton` 預設包含展開/收合的箭頭圖標
|
580
|
+
|
581
|
+
#### 樣式
|
582
|
+
- 按鈕預設使用灰色主題 (`tw-disclosure-button-gray`)
|
583
|
+
- 箭頭圖標會根據展開狀態自動旋轉
|
584
|
+
- 支援 Tailwind CSS 的樣式類
|
585
|
+
|
586
|
+
#### vInkTooltip 相關組件說明
|
587
|
+
|
588
|
+
vInkTooltip 是基於 [floating-vue](https://floating-vue.starpad.dev/) 的指令封裝,提供簡易的提示訊息功能。
|
589
|
+
|
590
|
+
##### 基本用法
|
591
|
+
```vue
|
592
|
+
<span v-inkTooltip.right="'test'">test</span>
|
593
|
+
```
|
594
|
+
|
595
|
+
##### 功能說明
|
596
|
+
- 支援多種位置設定(如 .right、.left、.top、.bottom 等)
|
597
|
+
- 可自訂提示內容(支援字串或 HTML)
|
598
|
+
- 適用於任何需要提示說明的場景
|
599
|
+
- 更多詳細屬性與用法,請參考 [floating-vue 官方 API 文件](https://floating-vue.starpad.dev/api/),以獲得完整的組件參數說明。
|
600
|
+
|
601
|
+
##### 注意事項
|
602
|
+
- 需安裝 floating-vue 及其樣式(已於組件內自動引入)
|
603
|
+
- 建議用於簡單的文字提示場景
|
604
|
+
- 如需更複雜的提示功能,請使用 InkVTooltip 組件
|
605
|
+
|
606
|
+
##### 組件關係
|
607
|
+
```
|
608
|
+
vInkTooltip (指令)
|
609
|
+
└── Tooltip (floating-vue)
|
610
|
+
```
|
611
|
+
|
612
|
+
#### InkVTooltip 相關組件說明
|
613
|
+
|
614
|
+
InkVTooltip 是基於 [floating-vue](https://floating-vue.starpad.dev/) 的 Tooltip 組件封裝,提供簡易的提示訊息功能,支援多種觸發方式(hover、focus、click)。
|
615
|
+
|
616
|
+
##### 基本用法
|
617
|
+
```vue
|
618
|
+
<InkVTooltip>
|
619
|
+
<button type="button"><i class="fa-regular fa-circle-info"></i></button>
|
620
|
+
<template #popper>
|
621
|
+
{{ tipContent }}
|
622
|
+
</template>
|
623
|
+
</InkVTooltip>
|
624
|
+
```
|
625
|
+
|
626
|
+
##### 禁用狀態
|
627
|
+
```vue
|
628
|
+
<InkVTooltip :disabled="Boolean(list.deletable)">
|
629
|
+
<InkButton
|
630
|
+
size="xs"
|
631
|
+
variant="icon"
|
632
|
+
theme="transparent"
|
633
|
+
:disabled="!Boolean(list.deletable) || currentConsoleUserPermission.view"
|
634
|
+
@click="handleDelete(list.id, list.article.title)"
|
635
|
+
>
|
636
|
+
<i class="far fa-trash"></i>
|
637
|
+
</InkButton>
|
638
|
+
<template #popper>
|
639
|
+
{{ $t('enabledCannotDeleted') }}
|
640
|
+
</template>
|
641
|
+
</InkVTooltip>
|
642
|
+
```
|
643
|
+
|
644
|
+
##### 屬性說明
|
645
|
+
|
646
|
+
| 屬性名稱 | 類型 | 預設值 | 說明 |
|
647
|
+
|------------|---------|----------|----------------------------|
|
648
|
+
| `disabled` | Boolean | false | 是否停用 Tooltip 顯示 |
|
649
|
+
|
650
|
+
- 更多詳細屬性與用法,請參考 [floating-vue 官方 API 文件](https://floating-vue.starpad.dev/api/),以獲得完整的組件參數說明。
|
651
|
+
|
652
|
+
##### 插槽說明
|
653
|
+
|
654
|
+
| 插槽名稱 | 說明 |
|
655
|
+
|------------|----------------------------|
|
656
|
+
| default | 觸發 Tooltip 的內容 |
|
657
|
+
| popper | Tooltip 彈出時顯示的內容 |
|
658
|
+
|
659
|
+
##### 功能說明
|
660
|
+
- 支援 hover、focus、click 觸發(預設同時啟用)
|
661
|
+
- 可自訂提示內容(支援 slot)
|
662
|
+
- 可透過 `disabled` 屬性停用提示
|
663
|
+
- 彈出位置預設為下方(bottom)
|
664
|
+
|
665
|
+
##### 組件關係
|
666
|
+
```
|
667
|
+
InkVTooltip
|
668
|
+
└── Tooltip (floating-vue)
|
669
|
+
├── slot (觸發內容)
|
670
|
+
└── slot name="popper" (提示內容)
|
671
|
+
```
|
672
|
+
|
673
|
+
##### 注意事項
|
674
|
+
- 需安裝 floating-vue 及其樣式(已於組件內自動引入)
|
675
|
+
- 適用於任何需要提示說明的場景
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkCheckbox.Bo9P4Fnq.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkDatetime.DuIlN9qX.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkDatetimerng.Un2rLzLU.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkHashtag.C2MlkO78.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkRadio.Dlej2ra5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkSelect.DWiVv_fE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkSwitch.Bmrcv2_W.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkText.2z3CBfGZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkTextarea.bSKGpfeu.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"InkUrl.y40jqTAY.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|