sftg-frond-library 0.0.1
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 +221 -0
- package/dist/components/HelloWorld/HelloWorld.d.ts +5 -0
- package/dist/components/HelloWorld/index.d.ts +3 -0
- package/dist/components/TheWelcome.d.ts +2 -0
- package/dist/components/WelcomeItem.d.ts +19 -0
- package/dist/components/icons/IconCommunity.d.ts +2 -0
- package/dist/components/icons/IconDocumentation.d.ts +2 -0
- package/dist/components/icons/IconEcosystem.d.ts +2 -0
- package/dist/components/icons/IconSupport.d.ts +2 -0
- package/dist/components/icons/IconTooling.d.ts +2 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.d.ts +6 -0
- package/dist/sftg-frond-library.css +1 -0
- package/dist/sftg-frond-library.js +315 -0
- package/dist/sftg-frond-library.umd.cjs +1 -0
- package/package.json +56 -0
package/README.md
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# sftg-frond-library
|
|
2
|
+
|
|
3
|
+
创建时间:2026-01-19 10:50 操作人:肖瑶
|
|
4
|
+
|
|
5
|
+
修改时间:2026-01-19 10:50 操作人:肖瑶
|
|
6
|
+
|
|
7
|
+
基于 Vue 3 + TypeScript + Vite 构建的通用组件库。
|
|
8
|
+
|
|
9
|
+
🔍 **[查看所有组件与文档索引](./组件与文档索引.md)**
|
|
10
|
+
|
|
11
|
+
## 一、组件开发规范
|
|
12
|
+
|
|
13
|
+
为了维护高质量的组件库和文档,请遵循以下开发规范。
|
|
14
|
+
每次修改组件,请及时更新文档。
|
|
15
|
+
|
|
16
|
+
### 1. 目录结构
|
|
17
|
+
|
|
18
|
+
每个组件应拥有独立的文件夹,包含源码、入口文件和文档。
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
packages/components/
|
|
22
|
+
└── [ComponentName]/ # 使用 PascalCase 命名
|
|
23
|
+
├── [ComponentName].vue # 组件源码
|
|
24
|
+
├── index.ts # 组件导出入口
|
|
25
|
+
└── README.md # 组件说明文档
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 2. 文档规范 (README.md)
|
|
29
|
+
|
|
30
|
+
每个组件必须包含 `README.md`,用于描述组件的功能和用法。请复制以下模板进行编写。
|
|
31
|
+
|
|
32
|
+
#### 文档模板
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# [ComponentName] 组件中文名称
|
|
36
|
+
|
|
37
|
+
创建时间:YYYY-MM-DD 操作人:xx
|
|
38
|
+
修改时间:YYYY-MM-DD 操作人:xx
|
|
39
|
+
|
|
40
|
+
## 1. 功能介绍
|
|
41
|
+
|
|
42
|
+
简要描述组件的功能、用途和适用场景。
|
|
43
|
+
可以包含效果截图或 GIF。
|
|
44
|
+
|
|
45
|
+
## 2. 使用介绍
|
|
46
|
+
|
|
47
|
+
### 基础用法
|
|
48
|
+
|
|
49
|
+
提供最简单的代码示例。
|
|
50
|
+
|
|
51
|
+
\`\`\`vue
|
|
52
|
+
<template>
|
|
53
|
+
<[ComponentName] />
|
|
54
|
+
</template>
|
|
55
|
+
\`\`\`
|
|
56
|
+
|
|
57
|
+
### API
|
|
58
|
+
|
|
59
|
+
#### Props (属性)
|
|
60
|
+
|
|
61
|
+
| 参数名称 | 说明 | 类型 | 默认值 | 必填 |
|
|
62
|
+
| -------- | -------- | ------ | --------- | ---- |
|
|
63
|
+
| example | 示例参数 | string | 'default' | 否 |
|
|
64
|
+
|
|
65
|
+
#### Slots (插槽)
|
|
66
|
+
|
|
67
|
+
| 插槽名称 | 说明 | 作用域参数 |
|
|
68
|
+
| -------- | -------- | ---------- |
|
|
69
|
+
| default | 默认内容 | - |
|
|
70
|
+
|
|
71
|
+
#### Events (事件)
|
|
72
|
+
|
|
73
|
+
| 事件名称 | 说明 | 回调参数 |
|
|
74
|
+
| -------- | ---------- | ---------- |
|
|
75
|
+
| click | 点击时触发 | (e: Event) |
|
|
76
|
+
|
|
77
|
+
#### Exposes (暴露方法)
|
|
78
|
+
|
|
79
|
+
| 方法名称 | 说明 | 参数 |
|
|
80
|
+
| -------- | -------------- | ---- |
|
|
81
|
+
| focus | 使组件获取焦点 | - |
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 3. 代码规范
|
|
85
|
+
|
|
86
|
+
1. **命名**:组件文件名和文件夹名使用 PascalCase (如 `MyComponent`)。
|
|
87
|
+
2. **Setup**:推荐使用 `<script setup lang="ts">`。
|
|
88
|
+
3. **Props/Emits**:必须定义类型 (Typescript Interface 或 Object syntax)。
|
|
89
|
+
|
|
90
|
+
## 二、目录结构架构
|
|
91
|
+
|
|
92
|
+
本项目采用 **源码与演示分离** 的架构:
|
|
93
|
+
|
|
94
|
+
- **packages/**: 组件库的核心源码目录。
|
|
95
|
+
- `components/`: 存放所有 UI 组件。
|
|
96
|
+
- `index.ts`: 库的统一入口文件,负责导出组件和 install 方法。
|
|
97
|
+
- **src/**: 开发环境的演示/测试应用 (Playground)。
|
|
98
|
+
- 用于在开发过程中实时预览和调试组件,模拟真实的消费端环境。
|
|
99
|
+
- **dist/**: 构建输出目录 (发布到 npm 的内容)。
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
root
|
|
103
|
+
├── packages/ # [核心] 组件库源码
|
|
104
|
+
│ ├── components/ # 组件目录
|
|
105
|
+
│ └── index.ts # 库入口 & 导出
|
|
106
|
+
├── src/ # [开发] 演示应用 (Playground)
|
|
107
|
+
├── dist/ # [产物] 构建后的文件
|
|
108
|
+
├── vite.lib.config.ts # 库打包专用配置
|
|
109
|
+
└── vite.config.ts # 演示应用配置
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## 三、技术栈
|
|
113
|
+
|
|
114
|
+
- **Core**: [Vue 3](https://vuejs.org/) (Script Setup, Composition API)
|
|
115
|
+
- **Language**: [TypeScript](https://www.typescriptlang.org/)
|
|
116
|
+
- **Build Tool**: [Vite](https://vitejs.dev/)
|
|
117
|
+
- **Store**: [Pinia](https://pinia.vuejs.org/) (如果是库依赖)
|
|
118
|
+
- **Code Quality**: ESLint, Prettier
|
|
119
|
+
- **Type Generation**: vite-plugin-dts (自动生成 .d.ts 声明文件)
|
|
120
|
+
|
|
121
|
+
## 四、开发指南
|
|
122
|
+
|
|
123
|
+
### 1. 项目初始化
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
npm install
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 2. 启动开发环境
|
|
130
|
+
|
|
131
|
+
启动本地开发服务器,可以在 `src/App.vue` 中直接调试 `packages/` 下的组件。
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
npm run dev
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 3. 类型检查
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
npm run type-check
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### 4. 代码格式化与 Lint
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
npm run lint
|
|
147
|
+
npm run format
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## 五、构建与发布
|
|
151
|
+
|
|
152
|
+
本项目配置了专门的打包脚本,用于生成符合 npm 发包标准的产物(包含 ESM, UMD 和 TypeScript 类型声明)。
|
|
153
|
+
|
|
154
|
+
### 构建组件库
|
|
155
|
+
|
|
156
|
+
运行以下命令,将 `packages/` 目录下的内容构建到 `dist/` 目录。
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
npm login
|
|
160
|
+
npm run build-lib
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**产物说明 (`dist/`):**
|
|
164
|
+
|
|
165
|
+
- `sftg-frond-library.js`: ESM 格式 (供 Vite/Webpack 等现代构建工具使用)
|
|
166
|
+
- `sftg-frond-library.umd.cjs`: UMD 格式 (供 CDN 或旧版环境使用)
|
|
167
|
+
- `index.d.ts`: TypeScript 类型定义文件
|
|
168
|
+
- `sftg-frond-library.css`: 组件库的样式文件
|
|
169
|
+
|
|
170
|
+
### 发布到 npm
|
|
171
|
+
|
|
172
|
+
构建完成后,确保 `package.json` 中的 `version` 已更新,然后运行:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
npm publish
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## 六、配置说明
|
|
179
|
+
|
|
180
|
+
### 构建配置 (`vite.lib.config.ts`)
|
|
181
|
+
|
|
182
|
+
为了区分“组件库构建”和“演示应用构建”,我们创建了独立的配置文件 `vite.lib.config.ts`。
|
|
183
|
+
|
|
184
|
+
- **Library Mode**: 使用 Vite 的库模式 (`build.lib`)。
|
|
185
|
+
- **Entry**: 指定入口为 `packages/index.ts`。
|
|
186
|
+
- **External**: 将 `vue` 和 `pinia` 排除在打包产物之外,作为外部依赖(peerDependencies)。
|
|
187
|
+
- **DTS**: 集成 `vite-plugin-dts` 插件,在构建时自动生成类型声明。
|
|
188
|
+
|
|
189
|
+
### TypeScript 配置
|
|
190
|
+
|
|
191
|
+
- **tsconfig.app.json**: 用于开发环境 (`src/` + `packages/`)。
|
|
192
|
+
- **tsconfig.lib.json**: 专用于库构建,仅包含 `packages/` 目录,确保生成的类型文件干净且不包含测试/演示代码。
|
|
193
|
+
|
|
194
|
+
## 七、如何使用
|
|
195
|
+
|
|
196
|
+
### 安装
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npm install sftg-frond-library
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Global Registration (全局注册)
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
import { createApp } from 'vue'
|
|
206
|
+
import App from './App.vue'
|
|
207
|
+
import SftgFrondLibrary from 'sftg-frond-library'
|
|
208
|
+
import 'sftg-frond-library/dist/sftg-frond-library.css' // 引入样式
|
|
209
|
+
|
|
210
|
+
const app = createApp(App)
|
|
211
|
+
app.use(SftgFrondLibrary)
|
|
212
|
+
app.mount('#app')
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### On-demand Import (按需引入)
|
|
216
|
+
|
|
217
|
+
```vue
|
|
218
|
+
<script setup>
|
|
219
|
+
import { HelloWorld } from 'sftg-frond-library'
|
|
220
|
+
</script>
|
|
221
|
+
```
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
msg: string;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare function __VLS_template(): {
|
|
2
|
+
attrs: Partial<{}>;
|
|
3
|
+
slots: {
|
|
4
|
+
icon?(_: {}): any;
|
|
5
|
+
heading?(_: {}): any;
|
|
6
|
+
default?(_: {}): any;
|
|
7
|
+
};
|
|
8
|
+
refs: {};
|
|
9
|
+
rootEl: HTMLDivElement;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
12
|
+
declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
13
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as HelloWorld } from './HelloWorld';
|
|
2
|
+
import { default as TheWelcome } from './TheWelcome';
|
|
3
|
+
import { default as WelcomeItem } from './WelcomeItem';
|
|
4
|
+
import { default as IconCommunity } from './icons/IconCommunity';
|
|
5
|
+
import { default as IconDocumentation } from './icons/IconDocumentation';
|
|
6
|
+
import { default as IconEcosystem } from './icons/IconEcosystem';
|
|
7
|
+
import { default as IconSupport } from './icons/IconSupport';
|
|
8
|
+
import { default as IconTooling } from './icons/IconTooling';
|
|
9
|
+
export { HelloWorld, TheWelcome, WelcomeItem, IconCommunity, IconDocumentation, IconEcosystem, IconSupport, IconTooling, };
|
package/dist/favicon.ico
ADDED
|
Binary file
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1[data-v-833aa76f]{font-weight:500;font-size:2.6rem;position:relative;top:-10px}h3[data-v-833aa76f]{font-size:1.2rem}.greetings h1[data-v-833aa76f],.greetings h3[data-v-833aa76f]{text-align:center}@media(min-width:1024px){.greetings h1[data-v-833aa76f],.greetings h3[data-v-833aa76f]{text-align:left}}.item[data-v-b6b7d8ae]{margin-top:2rem;display:flex;position:relative}.details[data-v-b6b7d8ae]{flex:1;margin-left:1rem}i[data-v-b6b7d8ae]{display:flex;place-items:center;place-content:center;width:32px;height:32px;color:var(--color-text)}h3[data-v-b6b7d8ae]{font-size:1.2rem;font-weight:500;margin-bottom:.4rem;color:var(--color-heading)}@media(min-width:1024px){.item[data-v-b6b7d8ae]{margin-top:0;padding:.4rem 0 1rem calc(var(--section-gap) / 2)}i[data-v-b6b7d8ae]{top:calc(50% - 25px);left:-26px;position:absolute;border:1px solid var(--color-border);background:var(--color-background);border-radius:8px;width:50px;height:50px}.item[data-v-b6b7d8ae]:before{content:" ";border-left:1px solid var(--color-border);position:absolute;left:0;bottom:calc(50% + 25px);height:calc(50% - 25px)}.item[data-v-b6b7d8ae]:after{content:" ";border-left:1px solid var(--color-border);position:absolute;left:0;top:calc(50% + 25px);height:calc(50% - 25px)}.item[data-v-b6b7d8ae]:first-of-type:before{display:none}.item[data-v-b6b7d8ae]:last-of-type:after{display:none}}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { defineComponent as p, createElementBlock as m, openBlock as u, createElementVNode as n, toDisplayString as V, createTextVNode as o, renderSlot as v, Fragment as k, createVNode as s, withCtx as l } from "vue";
|
|
2
|
+
const y = { class: "greetings" }, H = { class: "green" }, C = /* @__PURE__ */ p({
|
|
3
|
+
__name: "HelloWorld",
|
|
4
|
+
props: {
|
|
5
|
+
msg: {}
|
|
6
|
+
},
|
|
7
|
+
setup(r) {
|
|
8
|
+
return (e, i) => (u(), m("div", y, [
|
|
9
|
+
n("h1", H, V(r.msg), 1),
|
|
10
|
+
i[0] || (i[0] = n("h3", null, [
|
|
11
|
+
o(" You’ve successfully created a project with "),
|
|
12
|
+
n("a", {
|
|
13
|
+
href: "https://vite.dev/",
|
|
14
|
+
target: "_blank",
|
|
15
|
+
rel: "noopener"
|
|
16
|
+
}, "Vite"),
|
|
17
|
+
o(" + "),
|
|
18
|
+
n("a", {
|
|
19
|
+
href: "https://vuejs.org/",
|
|
20
|
+
target: "_blank",
|
|
21
|
+
rel: "noopener"
|
|
22
|
+
}, "Vue 3"),
|
|
23
|
+
o(". ")
|
|
24
|
+
], -1))
|
|
25
|
+
]));
|
|
26
|
+
}
|
|
27
|
+
}), a = (r, e) => {
|
|
28
|
+
const i = r.__vccOpts || r;
|
|
29
|
+
for (const [t, b] of e)
|
|
30
|
+
i[t] = b;
|
|
31
|
+
return i;
|
|
32
|
+
}, j = /* @__PURE__ */ a(C, [["__scopeId", "data-v-833aa76f"]]), I = {}, $ = { class: "item" }, x = { class: "details" };
|
|
33
|
+
function L(r, e) {
|
|
34
|
+
return u(), m("div", $, [
|
|
35
|
+
n("i", null, [
|
|
36
|
+
v(r.$slots, "icon", {}, void 0, !0)
|
|
37
|
+
]),
|
|
38
|
+
n("div", x, [
|
|
39
|
+
n("h3", null, [
|
|
40
|
+
v(r.$slots, "heading", {}, void 0, !0)
|
|
41
|
+
]),
|
|
42
|
+
v(r.$slots, "default", {}, void 0, !0)
|
|
43
|
+
])
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
const d = /* @__PURE__ */ a(I, [["render", L], ["__scopeId", "data-v-b6b7d8ae"]]), T = {}, E = {
|
|
47
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
48
|
+
width: "20",
|
|
49
|
+
height: "17",
|
|
50
|
+
fill: "currentColor"
|
|
51
|
+
};
|
|
52
|
+
function A(r, e) {
|
|
53
|
+
return u(), m("svg", E, [...e[0] || (e[0] = [
|
|
54
|
+
n("path", { d: "M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z" }, null, -1)
|
|
55
|
+
])]);
|
|
56
|
+
}
|
|
57
|
+
const f = /* @__PURE__ */ a(T, [["render", A]]), D = {}, S = {
|
|
58
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
59
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink",
|
|
60
|
+
"aria-hidden": "true",
|
|
61
|
+
role: "img",
|
|
62
|
+
class: "iconify iconify--mdi",
|
|
63
|
+
width: "24",
|
|
64
|
+
height: "24",
|
|
65
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
66
|
+
viewBox: "0 0 24 24"
|
|
67
|
+
};
|
|
68
|
+
function W(r, e) {
|
|
69
|
+
return u(), m("svg", S, [...e[0] || (e[0] = [
|
|
70
|
+
n("path", {
|
|
71
|
+
d: "M20 18v-4h-3v1h-2v-1H9v1H7v-1H4v4h16M6.33 8l-1.74 4H7v-1h2v1h6v-1h2v1h2.41l-1.74-4H6.33M9 5v1h6V5H9m12.84 7.61c.1.22.16.48.16.8V18c0 .53-.21 1-.6 1.41c-.4.4-.85.59-1.4.59H4c-.55 0-1-.19-1.4-.59C2.21 19 2 18.53 2 18v-4.59c0-.32.06-.58.16-.8L4.5 7.22C4.84 6.41 5.45 6 6.33 6H7V5c0-.55.18-1 .57-1.41C7.96 3.2 8.44 3 9 3h6c.56 0 1.04.2 1.43.59c.39.41.57.86.57 1.41v1h.67c.88 0 1.49.41 1.83 1.22l2.34 5.39z",
|
|
72
|
+
fill: "currentColor"
|
|
73
|
+
}, null, -1)
|
|
74
|
+
])]);
|
|
75
|
+
}
|
|
76
|
+
const g = /* @__PURE__ */ a(D, [["render", W]]), O = {}, R = {
|
|
77
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
78
|
+
width: "18",
|
|
79
|
+
height: "20",
|
|
80
|
+
fill: "currentColor"
|
|
81
|
+
};
|
|
82
|
+
function B(r, e) {
|
|
83
|
+
return u(), m("svg", R, [...e[0] || (e[0] = [
|
|
84
|
+
n("path", { d: "M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z" }, null, -1)
|
|
85
|
+
])]);
|
|
86
|
+
}
|
|
87
|
+
const h = /* @__PURE__ */ a(O, [["render", B]]), Y = {}, N = {
|
|
88
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
89
|
+
width: "20",
|
|
90
|
+
height: "20",
|
|
91
|
+
fill: "currentColor"
|
|
92
|
+
};
|
|
93
|
+
function P(r, e) {
|
|
94
|
+
return u(), m("svg", N, [...e[0] || (e[0] = [
|
|
95
|
+
n("path", { d: "M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z" }, null, -1)
|
|
96
|
+
])]);
|
|
97
|
+
}
|
|
98
|
+
const w = /* @__PURE__ */ a(Y, [["render", P]]), q = {}, G = {
|
|
99
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
100
|
+
width: "20",
|
|
101
|
+
height: "20",
|
|
102
|
+
fill: "currentColor"
|
|
103
|
+
};
|
|
104
|
+
function F(r, e) {
|
|
105
|
+
return u(), m("svg", G, [...e[0] || (e[0] = [
|
|
106
|
+
n("path", { d: "M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z" }, null, -1)
|
|
107
|
+
])]);
|
|
108
|
+
}
|
|
109
|
+
const M = /* @__PURE__ */ a(q, [["render", F]]), U = /* @__PURE__ */ p({
|
|
110
|
+
__name: "TheWelcome",
|
|
111
|
+
setup(r) {
|
|
112
|
+
const e = () => fetch("/__open-in-editor?file=README.md");
|
|
113
|
+
return (i, t) => (u(), m(k, null, [
|
|
114
|
+
s(d, null, {
|
|
115
|
+
icon: l(() => [
|
|
116
|
+
s(f)
|
|
117
|
+
]),
|
|
118
|
+
heading: l(() => [...t[0] || (t[0] = [
|
|
119
|
+
o("Documentation", -1)
|
|
120
|
+
])]),
|
|
121
|
+
default: l(() => [
|
|
122
|
+
t[1] || (t[1] = o(" Vue’s ", -1)),
|
|
123
|
+
t[2] || (t[2] = n("a", {
|
|
124
|
+
href: "https://vuejs.org/",
|
|
125
|
+
target: "_blank",
|
|
126
|
+
rel: "noopener"
|
|
127
|
+
}, "official documentation", -1)),
|
|
128
|
+
t[3] || (t[3] = o(" provides you with all information you need to get started. ", -1))
|
|
129
|
+
]),
|
|
130
|
+
_: 1
|
|
131
|
+
}),
|
|
132
|
+
s(d, null, {
|
|
133
|
+
icon: l(() => [
|
|
134
|
+
s(g)
|
|
135
|
+
]),
|
|
136
|
+
heading: l(() => [...t[4] || (t[4] = [
|
|
137
|
+
o("Tooling", -1)
|
|
138
|
+
])]),
|
|
139
|
+
default: l(() => [
|
|
140
|
+
t[6] || (t[6] = o(" This project is served and bundled with ", -1)),
|
|
141
|
+
t[7] || (t[7] = n("a", {
|
|
142
|
+
href: "https://vite.dev/guide/features.html",
|
|
143
|
+
target: "_blank",
|
|
144
|
+
rel: "noopener"
|
|
145
|
+
}, "Vite", -1)),
|
|
146
|
+
t[8] || (t[8] = o(". The recommended IDE setup is ", -1)),
|
|
147
|
+
t[9] || (t[9] = n("a", {
|
|
148
|
+
href: "https://code.visualstudio.com/",
|
|
149
|
+
target: "_blank",
|
|
150
|
+
rel: "noopener"
|
|
151
|
+
}, "VSCode", -1)),
|
|
152
|
+
t[10] || (t[10] = o(" + ", -1)),
|
|
153
|
+
t[11] || (t[11] = n("a", {
|
|
154
|
+
href: "https://github.com/vuejs/language-tools",
|
|
155
|
+
target: "_blank",
|
|
156
|
+
rel: "noopener"
|
|
157
|
+
}, "Vue - Official", -1)),
|
|
158
|
+
t[12] || (t[12] = o(". If you need to test your components and web pages, check out ", -1)),
|
|
159
|
+
t[13] || (t[13] = n("a", {
|
|
160
|
+
href: "https://vitest.dev/",
|
|
161
|
+
target: "_blank",
|
|
162
|
+
rel: "noopener"
|
|
163
|
+
}, "Vitest", -1)),
|
|
164
|
+
t[14] || (t[14] = o(" and ", -1)),
|
|
165
|
+
t[15] || (t[15] = n("a", {
|
|
166
|
+
href: "https://www.cypress.io/",
|
|
167
|
+
target: "_blank",
|
|
168
|
+
rel: "noopener"
|
|
169
|
+
}, "Cypress", -1)),
|
|
170
|
+
t[16] || (t[16] = o(" / ", -1)),
|
|
171
|
+
t[17] || (t[17] = n("a", {
|
|
172
|
+
href: "https://playwright.dev/",
|
|
173
|
+
target: "_blank",
|
|
174
|
+
rel: "noopener"
|
|
175
|
+
}, "Playwright", -1)),
|
|
176
|
+
t[18] || (t[18] = o(". ", -1)),
|
|
177
|
+
t[19] || (t[19] = n("br", null, null, -1)),
|
|
178
|
+
t[20] || (t[20] = o(" More instructions are available in ", -1)),
|
|
179
|
+
n("a", {
|
|
180
|
+
href: "javascript:void(0)",
|
|
181
|
+
onClick: e
|
|
182
|
+
}, [...t[5] || (t[5] = [
|
|
183
|
+
n("code", null, "README.md", -1)
|
|
184
|
+
])]),
|
|
185
|
+
t[21] || (t[21] = o(". ", -1))
|
|
186
|
+
]),
|
|
187
|
+
_: 1
|
|
188
|
+
}),
|
|
189
|
+
s(d, null, {
|
|
190
|
+
icon: l(() => [
|
|
191
|
+
s(h)
|
|
192
|
+
]),
|
|
193
|
+
heading: l(() => [...t[22] || (t[22] = [
|
|
194
|
+
o("Ecosystem", -1)
|
|
195
|
+
])]),
|
|
196
|
+
default: l(() => [
|
|
197
|
+
t[23] || (t[23] = o(" Get official tools and libraries for your project: ", -1)),
|
|
198
|
+
t[24] || (t[24] = n("a", {
|
|
199
|
+
href: "https://pinia.vuejs.org/",
|
|
200
|
+
target: "_blank",
|
|
201
|
+
rel: "noopener"
|
|
202
|
+
}, "Pinia", -1)),
|
|
203
|
+
t[25] || (t[25] = o(", ", -1)),
|
|
204
|
+
t[26] || (t[26] = n("a", {
|
|
205
|
+
href: "https://router.vuejs.org/",
|
|
206
|
+
target: "_blank",
|
|
207
|
+
rel: "noopener"
|
|
208
|
+
}, "Vue Router", -1)),
|
|
209
|
+
t[27] || (t[27] = o(", ", -1)),
|
|
210
|
+
t[28] || (t[28] = n("a", {
|
|
211
|
+
href: "https://test-utils.vuejs.org/",
|
|
212
|
+
target: "_blank",
|
|
213
|
+
rel: "noopener"
|
|
214
|
+
}, "Vue Test Utils", -1)),
|
|
215
|
+
t[29] || (t[29] = o(", and ", -1)),
|
|
216
|
+
t[30] || (t[30] = n("a", {
|
|
217
|
+
href: "https://github.com/vuejs/devtools",
|
|
218
|
+
target: "_blank",
|
|
219
|
+
rel: "noopener"
|
|
220
|
+
}, "Vue Dev Tools", -1)),
|
|
221
|
+
t[31] || (t[31] = o(". If you need more resources, we suggest paying ", -1)),
|
|
222
|
+
t[32] || (t[32] = n("a", {
|
|
223
|
+
href: "https://github.com/vuejs/awesome-vue",
|
|
224
|
+
target: "_blank",
|
|
225
|
+
rel: "noopener"
|
|
226
|
+
}, "Awesome Vue", -1)),
|
|
227
|
+
t[33] || (t[33] = o(" a visit. ", -1))
|
|
228
|
+
]),
|
|
229
|
+
_: 1
|
|
230
|
+
}),
|
|
231
|
+
s(d, null, {
|
|
232
|
+
icon: l(() => [
|
|
233
|
+
s(w)
|
|
234
|
+
]),
|
|
235
|
+
heading: l(() => [...t[34] || (t[34] = [
|
|
236
|
+
o("Community", -1)
|
|
237
|
+
])]),
|
|
238
|
+
default: l(() => [
|
|
239
|
+
t[35] || (t[35] = o(" Got stuck? Ask your question on ", -1)),
|
|
240
|
+
t[36] || (t[36] = n("a", {
|
|
241
|
+
href: "https://chat.vuejs.org",
|
|
242
|
+
target: "_blank",
|
|
243
|
+
rel: "noopener"
|
|
244
|
+
}, "Vue Land", -1)),
|
|
245
|
+
t[37] || (t[37] = o(" (our official Discord server), or ", -1)),
|
|
246
|
+
t[38] || (t[38] = n("a", {
|
|
247
|
+
href: "https://stackoverflow.com/questions/tagged/vue.js",
|
|
248
|
+
target: "_blank",
|
|
249
|
+
rel: "noopener"
|
|
250
|
+
}, "StackOverflow", -1)),
|
|
251
|
+
t[39] || (t[39] = o(". You should also follow the official ", -1)),
|
|
252
|
+
t[40] || (t[40] = n("a", {
|
|
253
|
+
href: "https://bsky.app/profile/vuejs.org",
|
|
254
|
+
target: "_blank",
|
|
255
|
+
rel: "noopener"
|
|
256
|
+
}, "@vuejs.org", -1)),
|
|
257
|
+
t[41] || (t[41] = o(" Bluesky account or the ", -1)),
|
|
258
|
+
t[42] || (t[42] = n("a", {
|
|
259
|
+
href: "https://x.com/vuejs",
|
|
260
|
+
target: "_blank",
|
|
261
|
+
rel: "noopener"
|
|
262
|
+
}, "@vuejs", -1)),
|
|
263
|
+
t[43] || (t[43] = o(" X account for latest news in the Vue world. ", -1))
|
|
264
|
+
]),
|
|
265
|
+
_: 1
|
|
266
|
+
}),
|
|
267
|
+
s(d, null, {
|
|
268
|
+
icon: l(() => [
|
|
269
|
+
s(M)
|
|
270
|
+
]),
|
|
271
|
+
heading: l(() => [...t[44] || (t[44] = [
|
|
272
|
+
o("Support Vue", -1)
|
|
273
|
+
])]),
|
|
274
|
+
default: l(() => [
|
|
275
|
+
t[45] || (t[45] = o(" As an independent project, Vue relies on community backing for its sustainability. You can help us by ", -1)),
|
|
276
|
+
t[46] || (t[46] = n("a", {
|
|
277
|
+
href: "https://vuejs.org/sponsor/",
|
|
278
|
+
target: "_blank",
|
|
279
|
+
rel: "noopener"
|
|
280
|
+
}, "becoming a sponsor", -1)),
|
|
281
|
+
t[47] || (t[47] = o(". ", -1))
|
|
282
|
+
]),
|
|
283
|
+
_: 1
|
|
284
|
+
})
|
|
285
|
+
], 64));
|
|
286
|
+
}
|
|
287
|
+
}), z = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
288
|
+
__proto__: null,
|
|
289
|
+
HelloWorld: j,
|
|
290
|
+
IconCommunity: w,
|
|
291
|
+
IconDocumentation: f,
|
|
292
|
+
IconEcosystem: h,
|
|
293
|
+
IconSupport: M,
|
|
294
|
+
IconTooling: g,
|
|
295
|
+
TheWelcome: U,
|
|
296
|
+
WelcomeItem: d
|
|
297
|
+
}, Symbol.toStringTag, { value: "Module" })), J = {
|
|
298
|
+
install(r) {
|
|
299
|
+
for (const e in z) {
|
|
300
|
+
const i = z[e];
|
|
301
|
+
i && r.component(e, i);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
export {
|
|
306
|
+
j as HelloWorld,
|
|
307
|
+
w as IconCommunity,
|
|
308
|
+
f as IconDocumentation,
|
|
309
|
+
h as IconEcosystem,
|
|
310
|
+
M as IconSupport,
|
|
311
|
+
g as IconTooling,
|
|
312
|
+
U as TheWelcome,
|
|
313
|
+
d as WelcomeItem,
|
|
314
|
+
J as default
|
|
315
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(r,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.SftgFrondLibrary={},r.Vue))})(this,(function(r,e){"use strict";const h={class:"greetings"},c={class:"green"},N=e.defineComponent({__name:"HelloWorld",props:{msg:{}},setup(n){return(o,l)=>(e.openBlock(),e.createElementBlock("div",h,[e.createElementVNode("h1",c,e.toDisplayString(n.msg),1),l[0]||(l[0]=e.createElementVNode("h3",null,[e.createTextVNode(" You’ve successfully created a project with "),e.createElementVNode("a",{href:"https://vite.dev/",target:"_blank",rel:"noopener"},"Vite"),e.createTextVNode(" + "),e.createElementVNode("a",{href:"https://vuejs.org/",target:"_blank",rel:"noopener"},"Vue 3"),e.createTextVNode(". ")],-1))]))}}),s=(n,o)=>{const l=n.__vccOpts||n;for(const[t,v]of o)l[t]=v;return l},z=s(N,[["__scopeId","data-v-833aa76f"]]),w={},x={class:"item"},E={class:"details"};function k(n,o){return e.openBlock(),e.createElementBlock("div",x,[e.createElementVNode("i",null,[e.renderSlot(n.$slots,"icon",{},void 0,!0)]),e.createElementVNode("div",E,[e.createElementVNode("h3",null,[e.renderSlot(n.$slots,"heading",{},void 0,!0)]),e.renderSlot(n.$slots,"default",{},void 0,!0)])])}const a=s(w,[["render",k],["__scopeId","data-v-b6b7d8ae"]]),T={},M={xmlns:"http://www.w3.org/2000/svg",width:"20",height:"17",fill:"currentColor"};function u(n,o){return e.openBlock(),e.createElementBlock("svg",M,[...o[0]||(o[0]=[e.createElementVNode("path",{d:"M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z"},null,-1)])])}const d=s(T,[["render",u]]),C={},b={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":"true",role:"img",class:"iconify iconify--mdi",width:"24",height:"24",preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 24 24"};function y(n,o){return e.openBlock(),e.createElementBlock("svg",b,[...o[0]||(o[0]=[e.createElementVNode("path",{d:"M20 18v-4h-3v1h-2v-1H9v1H7v-1H4v4h16M6.33 8l-1.74 4H7v-1h2v1h6v-1h2v1h2.41l-1.74-4H6.33M9 5v1h6V5H9m12.84 7.61c.1.22.16.48.16.8V18c0 .53-.21 1-.6 1.41c-.4.4-.85.59-1.4.59H4c-.55 0-1-.19-1.4-.59C2.21 19 2 18.53 2 18v-4.59c0-.32.06-.58.16-.8L4.5 7.22C4.84 6.41 5.45 6 6.33 6H7V5c0-.55.18-1 .57-1.41C7.96 3.2 8.44 3 9 3h6c.56 0 1.04.2 1.43.59c.39.41.57.86.57 1.41v1h.67c.88 0 1.49.41 1.83 1.22l2.34 5.39z",fill:"currentColor"},null,-1)])])}const i=s(C,[["render",y]]),H={},j={xmlns:"http://www.w3.org/2000/svg",width:"18",height:"20",fill:"currentColor"};function I(n,o){return e.openBlock(),e.createElementBlock("svg",j,[...o[0]||(o[0]=[e.createElementVNode("path",{d:"M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z"},null,-1)])])}const m=s(H,[["render",I]]),$={},B={xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"currentColor"};function L(n,o){return e.openBlock(),e.createElementBlock("svg",B,[...o[0]||(o[0]=[e.createElementVNode("path",{d:"M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z"},null,-1)])])}const V=s($,[["render",L]]),S={},A={xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"currentColor"};function D(n,o){return e.openBlock(),e.createElementBlock("svg",A,[...o[0]||(o[0]=[e.createElementVNode("path",{d:"M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z"},null,-1)])])}const p=s(S,[["render",D]]),f=e.defineComponent({__name:"TheWelcome",setup(n){const o=()=>fetch("/__open-in-editor?file=README.md");return(l,t)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(a,null,{icon:e.withCtx(()=>[e.createVNode(d)]),heading:e.withCtx(()=>[...t[0]||(t[0]=[e.createTextVNode("Documentation",-1)])]),default:e.withCtx(()=>[t[1]||(t[1]=e.createTextVNode(" Vue’s ",-1)),t[2]||(t[2]=e.createElementVNode("a",{href:"https://vuejs.org/",target:"_blank",rel:"noopener"},"official documentation",-1)),t[3]||(t[3]=e.createTextVNode(" provides you with all information you need to get started. ",-1))]),_:1}),e.createVNode(a,null,{icon:e.withCtx(()=>[e.createVNode(i)]),heading:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Tooling",-1)])]),default:e.withCtx(()=>[t[6]||(t[6]=e.createTextVNode(" This project is served and bundled with ",-1)),t[7]||(t[7]=e.createElementVNode("a",{href:"https://vite.dev/guide/features.html",target:"_blank",rel:"noopener"},"Vite",-1)),t[8]||(t[8]=e.createTextVNode(". The recommended IDE setup is ",-1)),t[9]||(t[9]=e.createElementVNode("a",{href:"https://code.visualstudio.com/",target:"_blank",rel:"noopener"},"VSCode",-1)),t[10]||(t[10]=e.createTextVNode(" + ",-1)),t[11]||(t[11]=e.createElementVNode("a",{href:"https://github.com/vuejs/language-tools",target:"_blank",rel:"noopener"},"Vue - Official",-1)),t[12]||(t[12]=e.createTextVNode(". If you need to test your components and web pages, check out ",-1)),t[13]||(t[13]=e.createElementVNode("a",{href:"https://vitest.dev/",target:"_blank",rel:"noopener"},"Vitest",-1)),t[14]||(t[14]=e.createTextVNode(" and ",-1)),t[15]||(t[15]=e.createElementVNode("a",{href:"https://www.cypress.io/",target:"_blank",rel:"noopener"},"Cypress",-1)),t[16]||(t[16]=e.createTextVNode(" / ",-1)),t[17]||(t[17]=e.createElementVNode("a",{href:"https://playwright.dev/",target:"_blank",rel:"noopener"},"Playwright",-1)),t[18]||(t[18]=e.createTextVNode(". ",-1)),t[19]||(t[19]=e.createElementVNode("br",null,null,-1)),t[20]||(t[20]=e.createTextVNode(" More instructions are available in ",-1)),e.createElementVNode("a",{href:"javascript:void(0)",onClick:o},[...t[5]||(t[5]=[e.createElementVNode("code",null,"README.md",-1)])]),t[21]||(t[21]=e.createTextVNode(". ",-1))]),_:1}),e.createVNode(a,null,{icon:e.withCtx(()=>[e.createVNode(m)]),heading:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("Ecosystem",-1)])]),default:e.withCtx(()=>[t[23]||(t[23]=e.createTextVNode(" Get official tools and libraries for your project: ",-1)),t[24]||(t[24]=e.createElementVNode("a",{href:"https://pinia.vuejs.org/",target:"_blank",rel:"noopener"},"Pinia",-1)),t[25]||(t[25]=e.createTextVNode(", ",-1)),t[26]||(t[26]=e.createElementVNode("a",{href:"https://router.vuejs.org/",target:"_blank",rel:"noopener"},"Vue Router",-1)),t[27]||(t[27]=e.createTextVNode(", ",-1)),t[28]||(t[28]=e.createElementVNode("a",{href:"https://test-utils.vuejs.org/",target:"_blank",rel:"noopener"},"Vue Test Utils",-1)),t[29]||(t[29]=e.createTextVNode(", and ",-1)),t[30]||(t[30]=e.createElementVNode("a",{href:"https://github.com/vuejs/devtools",target:"_blank",rel:"noopener"},"Vue Dev Tools",-1)),t[31]||(t[31]=e.createTextVNode(". If you need more resources, we suggest paying ",-1)),t[32]||(t[32]=e.createElementVNode("a",{href:"https://github.com/vuejs/awesome-vue",target:"_blank",rel:"noopener"},"Awesome Vue",-1)),t[33]||(t[33]=e.createTextVNode(" a visit. ",-1))]),_:1}),e.createVNode(a,null,{icon:e.withCtx(()=>[e.createVNode(V)]),heading:e.withCtx(()=>[...t[34]||(t[34]=[e.createTextVNode("Community",-1)])]),default:e.withCtx(()=>[t[35]||(t[35]=e.createTextVNode(" Got stuck? Ask your question on ",-1)),t[36]||(t[36]=e.createElementVNode("a",{href:"https://chat.vuejs.org",target:"_blank",rel:"noopener"},"Vue Land",-1)),t[37]||(t[37]=e.createTextVNode(" (our official Discord server), or ",-1)),t[38]||(t[38]=e.createElementVNode("a",{href:"https://stackoverflow.com/questions/tagged/vue.js",target:"_blank",rel:"noopener"},"StackOverflow",-1)),t[39]||(t[39]=e.createTextVNode(". You should also follow the official ",-1)),t[40]||(t[40]=e.createElementVNode("a",{href:"https://bsky.app/profile/vuejs.org",target:"_blank",rel:"noopener"},"@vuejs.org",-1)),t[41]||(t[41]=e.createTextVNode(" Bluesky account or the ",-1)),t[42]||(t[42]=e.createElementVNode("a",{href:"https://x.com/vuejs",target:"_blank",rel:"noopener"},"@vuejs",-1)),t[43]||(t[43]=e.createTextVNode(" X account for latest news in the Vue world. ",-1))]),_:1}),e.createVNode(a,null,{icon:e.withCtx(()=>[e.createVNode(p)]),heading:e.withCtx(()=>[...t[44]||(t[44]=[e.createTextVNode("Support Vue",-1)])]),default:e.withCtx(()=>[t[45]||(t[45]=e.createTextVNode(" As an independent project, Vue relies on community backing for its sustainability. You can help us by ",-1)),t[46]||(t[46]=e.createElementVNode("a",{href:"https://vuejs.org/sponsor/",target:"_blank",rel:"noopener"},"becoming a sponsor",-1)),t[47]||(t[47]=e.createTextVNode(". ",-1))]),_:1})],64))}}),g=Object.freeze(Object.defineProperty({__proto__:null,HelloWorld:z,IconCommunity:V,IconDocumentation:d,IconEcosystem:m,IconSupport:p,IconTooling:i,TheWelcome:f,WelcomeItem:a},Symbol.toStringTag,{value:"Module"})),W={install(n){for(const o in g){const l=g[o];l&&n.component(o,l)}}};r.HelloWorld=z,r.IconCommunity=V,r.IconDocumentation=d,r.IconEcosystem=m,r.IconSupport=p,r.IconTooling=i,r.TheWelcome=f,r.WelcomeItem=a,r.default=W,Object.defineProperties(r,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sftg-frond-library",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/sftg-frond-library.umd.cjs",
|
|
7
|
+
"module": "./dist/sftg-frond-library.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/sftg-frond-library.js",
|
|
16
|
+
"require": "./dist/sftg-frond-library.umd.cjs"
|
|
17
|
+
},
|
|
18
|
+
"./dist/sftg-frond-library.css": "./dist/sftg-frond-library.css"
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "vite",
|
|
25
|
+
"build": "run-p type-check \"build-only {@}\" --",
|
|
26
|
+
"build-lib": "run-p type-check \"build-only-lib {@}\" --",
|
|
27
|
+
"preview": "vite preview",
|
|
28
|
+
"build-only": "vite build",
|
|
29
|
+
"build-only-lib": "vite build --config vite.lib.config.ts",
|
|
30
|
+
"type-check": "vue-tsc --build",
|
|
31
|
+
"lint": "eslint . --fix --cache",
|
|
32
|
+
"format": "prettier --write --experimental-cli src/"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"pinia": "^3.0.4",
|
|
36
|
+
"vue": "^3.5.26"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@tsconfig/node24": "^24.0.3",
|
|
40
|
+
"@types/node": "^24.10.4",
|
|
41
|
+
"@vitejs/plugin-vue": "^6.0.3",
|
|
42
|
+
"@vue/eslint-config-prettier": "^10.2.0",
|
|
43
|
+
"@vue/eslint-config-typescript": "^14.6.0",
|
|
44
|
+
"@vue/tsconfig": "^0.8.1",
|
|
45
|
+
"eslint": "^9.39.2",
|
|
46
|
+
"eslint-plugin-vue": "~10.6.2",
|
|
47
|
+
"jiti": "^2.6.1",
|
|
48
|
+
"npm-run-all2": "^8.0.4",
|
|
49
|
+
"prettier": "3.7.4",
|
|
50
|
+
"typescript": "~5.9.3",
|
|
51
|
+
"vite": "^7.3.0",
|
|
52
|
+
"vite-plugin-dts": "^4.5.4",
|
|
53
|
+
"vite-plugin-vue-devtools": "^8.0.5",
|
|
54
|
+
"vue-tsc": "^3.2.2"
|
|
55
|
+
}
|
|
56
|
+
}
|