lapikit 0.0.0-insiders.c8d4fe2 → 0.0.0-insiders.c8fbb29
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 +117 -1
- package/bin/configuration.js +17 -12
- package/bin/helper.js +0 -38
- package/bin/index.js +1 -9
- package/bin/presets.js +2 -1
- package/bin/prompts.js +46 -79
- package/dist/actions/accordion.svelte.d.ts +9 -0
- package/dist/actions/index.d.ts +2 -1
- package/dist/actions/index.js +2 -1
- package/dist/actions/use-theme.d.ts +1 -0
- package/dist/actions/use-theme.js +18 -0
- package/dist/components/accordion/accordion.css +0 -77
- package/dist/components/accordion/accordion.svelte +5 -3
- package/dist/components/accordion/modules/accordion-item.css +68 -0
- package/dist/components/accordion/modules/accordion-item.svelte +4 -4
- package/dist/components/accordion/types.d.ts +1 -1
- package/dist/components/alert/alert.css +11 -18
- package/dist/components/alert/alert.svelte +4 -4
- package/dist/components/alert/types.d.ts +1 -1
- package/dist/components/app/app.css +12 -2
- package/dist/components/app/app.svelte +68 -32
- package/dist/components/app/app.svelte.d.ts +2 -5
- package/dist/components/app/types.d.ts +7 -1
- package/dist/components/appbar/appbar.css +8 -18
- package/dist/components/appbar/appbar.svelte +4 -4
- package/dist/components/appbar/types.d.ts +1 -1
- package/dist/components/aspect-ratio/aspect-ratio.svelte +0 -22
- package/dist/components/aspect-ratio/types.d.ts +1 -1
- package/dist/components/avatar/avatar.css +7 -14
- package/dist/components/avatar/avatar.svelte +4 -4
- package/dist/components/avatar/types.d.ts +1 -1
- package/dist/components/button/button.css +29 -36
- package/dist/components/button/button.svelte +5 -5
- package/dist/components/button/types.d.ts +1 -1
- package/dist/components/card/card.css +10 -20
- package/dist/components/card/card.svelte +9 -5
- package/dist/components/card/types.d.ts +3 -1
- package/dist/components/chip/chip.css +26 -33
- package/dist/components/chip/chip.svelte +5 -5
- package/dist/components/chip/types.d.ts +1 -1
- package/dist/components/dialog/dialog.css +13 -20
- package/dist/components/dialog/dialog.svelte +5 -5
- package/dist/components/dialog/types.d.ts +1 -1
- package/dist/components/dropdown/dropdown.css +3 -12
- package/dist/components/dropdown/dropdown.svelte +6 -7
- package/dist/components/dropdown/types.d.ts +1 -1
- package/dist/components/icon/icon.css +11 -12
- package/dist/components/icon/icon.svelte +2 -2
- package/dist/components/icon/types.d.ts +1 -1
- package/dist/components/list/list.css +19 -91
- package/dist/components/list/list.svelte +4 -4
- package/dist/components/list/modules/list-item.css +67 -0
- package/dist/components/list/modules/list-item.svelte +5 -5
- package/dist/components/list/types.d.ts +1 -1
- package/dist/components/modal/modal.css +15 -23
- package/dist/components/modal/modal.svelte +4 -5
- package/dist/components/modal/types.d.ts +1 -1
- package/dist/components/popover/popover.css +3 -12
- package/dist/components/popover/popover.svelte +6 -6
- package/dist/components/popover/types.d.ts +1 -1
- package/dist/components/separator/separator.css +19 -23
- package/dist/components/separator/separator.svelte +6 -6
- package/dist/components/separator/types.d.ts +6 -2
- package/dist/components/spacer/types.d.ts +1 -1
- package/dist/components/textfield/textfield.css +16 -23
- package/dist/components/textfield/textfield.svelte +4 -4
- package/dist/components/textfield/textfield.svelte.d.ts +1 -1
- package/dist/components/textfield/types.d.ts +1 -1
- package/dist/components/toolbar/toolbar.css +11 -34
- package/dist/components/toolbar/toolbar.svelte +4 -4
- package/dist/components/toolbar/types.d.ts +1 -1
- package/dist/components/tooltip/tooltip.css +5 -13
- package/dist/components/tooltip/tooltip.svelte +5 -5
- package/dist/components/tooltip/types.d.ts +1 -1
- package/dist/entry-bundler.d.ts +12 -0
- package/dist/entry-bundler.js +107 -0
- package/dist/index.d.ts +2 -9
- package/dist/index.js +15 -5
- package/dist/internal/config/presets.d.ts +149 -0
- package/dist/internal/config/presets.js +169 -0
- package/dist/internal/config/variables.d.ts +3 -0
- package/dist/internal/config/variables.js +3 -0
- package/dist/internal/{assets.svelte.js → core/actions/assets.svelte.js} +4 -4
- package/dist/internal/core/actions/dropdown.svelte.d.ts +7 -0
- package/dist/internal/core/actions/popover.svelte.d.ts +7 -0
- package/dist/internal/core/actions/tooltip.svelte.d.ts +7 -0
- package/dist/internal/{ripple.js → core/animations/ripple.js} +3 -3
- package/dist/internal/core/css.d.ts +1 -0
- package/dist/internal/core/css.js +16 -0
- package/dist/internal/core/formatter/component.d.ts +5 -0
- package/dist/internal/core/formatter/component.js +60 -0
- package/dist/internal/core/formatter/device.d.ts +5 -0
- package/dist/internal/core/formatter/device.js +66 -0
- package/dist/internal/core/formatter/index.d.ts +7 -0
- package/dist/internal/core/formatter/index.js +35 -0
- package/dist/internal/core/formatter/style.d.ts +4 -0
- package/dist/internal/core/formatter/style.js +15 -0
- package/dist/internal/core/formatter/theme.d.ts +5 -0
- package/dist/internal/core/formatter/theme.js +44 -0
- package/dist/internal/core/formatter/typography.d.ts +5 -0
- package/dist/internal/core/formatter/typography.js +12 -0
- package/dist/internal/core/standard-colors.d.ts +75 -0
- package/dist/internal/core/standard-colors.js +75 -0
- package/dist/internal/helpers/colors.d.ts +1 -0
- package/dist/internal/{colors.js → helpers/colors.js} +2 -2
- package/dist/internal/helpers/convert.d.ts +1 -0
- package/dist/internal/helpers/convert.js +17 -0
- package/dist/internal/helpers/parser.d.ts +10 -0
- package/dist/internal/helpers/parser.js +93 -0
- package/dist/internal/{scroll.js → helpers/scroll.js} +1 -2
- package/dist/internal/plugins/vite.d.ts +8 -0
- package/dist/internal/plugins/vite.js +33 -0
- package/dist/internal/types/components.d.ts +14 -0
- package/dist/internal/types/configuration.d.ts +63 -0
- package/dist/internal/types/configuration.js +1 -0
- package/dist/internal/types/index.d.ts +2 -0
- package/dist/internal/types/index.js +2 -0
- package/dist/labs/components/button/button.svelte +24 -0
- package/dist/labs/components/button/button.svelte.d.ts +5 -0
- package/dist/labs/components/index.d.ts +1 -0
- package/dist/labs/components/index.js +2 -0
- package/dist/stores/breakpoints.d.ts +1 -1
- package/dist/stores/breakpoints.js +7 -16
- package/dist/stores/components.d.ts +8 -0
- package/dist/stores/components.js +26 -0
- package/dist/stores/devices.d.ts +6 -0
- package/dist/stores/devices.js +9 -0
- package/dist/stores/index.d.ts +4 -10
- package/dist/stores/index.js +4 -47
- package/dist/stores/themes.d.ts +2 -0
- package/dist/stores/themes.js +4 -0
- package/dist/stores/viewport.d.ts +7 -0
- package/dist/stores/viewport.js +7 -0
- package/dist/styles/animation.css +33 -0
- package/dist/styles/keyframes.css +30 -0
- package/dist/{style/normalize.css → styles/reset.css} +15 -7
- package/dist/styles.css.d.ts +4 -0
- package/dist/themes.css +0 -0
- package/dist/themes.css.d.ts +4 -0
- package/package.json +135 -95
- package/bin/lapikit.js +0 -86
- package/bin/legacy.js +0 -34
- package/bin/modules/adapter.js +0 -52
- package/bin/modules/plugin.js +0 -223
- package/bin/modules/preset.js +0 -11
- package/dist/app.d.ts +0 -13
- package/dist/app.html +0 -12
- package/dist/internal/colors.d.ts +0 -1
- package/dist/internal/index.d.ts +0 -4
- package/dist/internal/index.js +0 -4
- package/dist/internal/types.d.ts +0 -57
- package/dist/internal/unit.d.ts +0 -1
- package/dist/internal/unit.js +0 -11
- package/dist/plugin/modules/config.d.ts +0 -2
- package/dist/plugin/modules/config.js +0 -54
- package/dist/plugin/modules/importer.d.ts +0 -1
- package/dist/plugin/modules/importer.js +0 -15
- package/dist/plugin/vitejs.d.ts +0 -6
- package/dist/plugin/vitejs.js +0 -26
- package/dist/preset.d.ts +0 -2
- package/dist/preset.js +0 -92
- package/dist/style/animation.css +0 -62
- package/dist/style/css.d.ts +0 -2
- package/dist/style/css.js +0 -34
- package/dist/style/parser/color.d.ts +0 -5
- package/dist/style/parser/color.js +0 -88
- package/dist/style/parser/component.d.ts +0 -2
- package/dist/style/parser/component.js +0 -115
- package/dist/style/parser/device.d.ts +0 -2
- package/dist/style/parser/device.js +0 -40
- package/dist/style/parser/index.d.ts +0 -4
- package/dist/style/parser/index.js +0 -4
- package/dist/style/parser/variable.d.ts +0 -2
- package/dist/style/parser/variable.js +0 -25
- package/dist/style/variable.css +0 -12
- /package/dist/{components/accordion → actions}/accordion.svelte.js +0 -0
- /package/dist/internal/{assets.svelte.d.ts → core/actions/assets.svelte.d.ts} +0 -0
- /package/dist/{components/dropdown → internal/core/actions}/dropdown.svelte.js +0 -0
- /package/dist/{components/popover → internal/core/actions}/popover.svelte.js +0 -0
- /package/dist/{components/tooltip → internal/core/actions}/tooltip.svelte.js +0 -0
- /package/dist/internal/{ripple.d.ts → core/animations/ripple.d.ts} +0 -0
- /package/dist/internal/{ansi.d.ts → core/bin/ansi.d.ts} +0 -0
- /package/dist/internal/{ansi.js → core/bin/ansi.js} +0 -0
- /package/dist/internal/{terminal.d.ts → core/bin/terminal.d.ts} +0 -0
- /package/dist/internal/{terminal.js → core/bin/terminal.js} +0 -0
- /package/dist/internal/{minify.d.ts → core/minify.d.ts} +0 -0
- /package/dist/internal/{minify.js → core/minify.js} +0 -0
- /package/dist/{utils/x11.d.ts → internal/core/x11-colors.d.ts} +0 -0
- /package/dist/{utils/x11.js → internal/core/x11-colors.js} +0 -0
- /package/dist/internal/{deepMerge.d.ts → helpers/deep-merge.d.ts} +0 -0
- /package/dist/internal/{deepMerge.js → helpers/deep-merge.js} +0 -0
- /package/dist/internal/{clickOutside.d.ts → helpers/outside.d.ts} +0 -0
- /package/dist/internal/{clickOutside.js → helpers/outside.js} +0 -0
- /package/dist/internal/{scroll.d.ts → helpers/scroll.d.ts} +0 -0
- /package/dist/internal/{types.js → types/components.js} +0 -0
package/README.md
CHANGED
|
@@ -1 +1,117 @@
|
|
|
1
|
-
|
|
1
|
+
<a href="https://lapikit.dev">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/Nycolaide/lapikit/main/.github/lapikit.svg" alt="Lapikit Logo" width="125">
|
|
3
|
+
</a>
|
|
4
|
+
|
|
5
|
+
# Lapikit - Svelte components library
|
|
6
|
+
|
|
7
|
+
[![][discover-lapikit-npm]](https://www.npmjs.com/package/lapikit)
|
|
8
|
+
[![][subscribe-to-instagram]](https://www.instagram.com/lapikit/)
|
|
9
|
+
[![][join-discord-lapikit]](https://discord.gg/gn9ZGtDtK4)
|
|
10
|
+
|
|
11
|
+
[![][version]](https://github.com/nycolaide/lapikit/releases?q=lapikit&expanded=true)
|
|
12
|
+
[![][installs]](https://www.npmjs.com/package/lapikit)
|
|
13
|
+
[![][installs-this-month]](https://www.npmjs.com/package/lapikit)
|
|
14
|
+
[![][license]](https://github.com/nycolaide/lapikit/blob/main/LICENSE)
|
|
15
|
+
[![][discord]](https://discord.gg/gn9ZGtDtK4)
|
|
16
|
+
|
|
17
|
+
Lapikit is a comprehensive Svelte components library that provides developers with a wide range of pre-built, customizable UI components to streamline the development process. Whether you're building a simple website or a complex web application, Lapikit has the tools you need to create beautiful and functional user interfaces with ease.
|
|
18
|
+
|
|
19
|
+
## 🖥️ Documentation
|
|
20
|
+
|
|
21
|
+
To check out the documentation, visit [lapikit.dev](https://lapikit.dev)
|
|
22
|
+
|
|
23
|
+
## ✨Quick Start
|
|
24
|
+
|
|
25
|
+
Getting started with Lapikit is easy. After create you SvelteKit project, you can install Lapikit using your preferred package manager:
|
|
26
|
+
|
|
27
|
+
Usage [bun](https://bun.sh/):
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bun add -d lapikit
|
|
31
|
+
npx lapikit
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Using [npm](https://www.npmjs.com/):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm i -D lapikit
|
|
38
|
+
npx lapikit
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Using [yarn](https://yarnpkg.com/):
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
yarn add -D lapikit
|
|
45
|
+
npx lapikit
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Using [pnpm](https://pnpm.io/):
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pnpm add -D lapikit
|
|
52
|
+
npx lapikit
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 🚩Table of Contents
|
|
56
|
+
|
|
57
|
+
- [Lapikit - Svelte components library](#lapikit---svelte-components-library)
|
|
58
|
+
- [🖥️ Documentation](#️-documentation)
|
|
59
|
+
- [✨Quick Start](#quick-start)
|
|
60
|
+
- [🚩Table of Contents](#table-of-contents)
|
|
61
|
+
- [🤯Motivation](#motivation)
|
|
62
|
+
- [💖Community](#community)
|
|
63
|
+
- [💁♂️Contributing](#️contributing)
|
|
64
|
+
- [🖖Core Team Lapikit](#core-team-lapikit)
|
|
65
|
+
- [📄License](#license)
|
|
66
|
+
- [🪧We support these projects](#we-support-these-projects)
|
|
67
|
+
|
|
68
|
+
## 🤯Motivation
|
|
69
|
+
|
|
70
|
+
Lapikit has created to help Svelte developers save time and effort when building user interfaces. By providing a wide range of pre-built components, Lapikit allows developers to focus on building their applications rather than spending time designing and coding UI elements from scratch.
|
|
71
|
+
|
|
72
|
+
## 💖Community
|
|
73
|
+
|
|
74
|
+
Join our growing community on [Discord](https://discord.gg/gn9ZGtDtK4) and [GitHub Discussions](https://github.com/nycolaide/lapikit/discussions) where we discuss and collaborate on all things Lapikit. Don't be shy, jump right in and be part of the discussion!
|
|
75
|
+
|
|
76
|
+
## 💁♂️Contributing
|
|
77
|
+
|
|
78
|
+
Be part of the next revolution in code editing by contributing to the project. This is a community-led effort, so we welcome as many contributors who can help. Read the Contribution Guide for more information.
|
|
79
|
+
|
|
80
|
+
## 🖖Core Team Lapikit
|
|
81
|
+
|
|
82
|
+
[@Nycolaide](https://github.com/Nycolaide)
|
|
83
|
+
[@Simone](https://github.com/fersimone)
|
|
84
|
+
|
|
85
|
+
## 📄License
|
|
86
|
+
|
|
87
|
+
Licensed under the [MIT license](https://github.com/nycolaide/lapikit/blob/main/LICENSE).
|
|
88
|
+
|
|
89
|
+
Copyright © 2025 Nycolaide
|
|
90
|
+
|
|
91
|
+
## 🪧We support these projects
|
|
92
|
+
|
|
93
|
+
We are proud supporters of the open-source community and contribute to several projects that help make the web a better place. Here are some of the projects we support:
|
|
94
|
+
|
|
95
|
+
<table>
|
|
96
|
+
<tr>
|
|
97
|
+
<td>
|
|
98
|
+
<a href="https://www.w3.org/">
|
|
99
|
+
<img src="https://raw.githubusercontent.com/Nycolaide/lapikit/main/.github/w3c.svg" alt="W3C" width="75">
|
|
100
|
+
</a>
|
|
101
|
+
</td>
|
|
102
|
+
<td>
|
|
103
|
+
<a href="https://humanstxt.org/">
|
|
104
|
+
<img src="https://raw.githubusercontent.com/Nycolaide/lapikit/main/.github/humans.png" alt="Humans.txt" width="115">
|
|
105
|
+
</a>
|
|
106
|
+
</td>
|
|
107
|
+
</tr>
|
|
108
|
+
</table>
|
|
109
|
+
|
|
110
|
+
[discover-lapikit-npm]: https://img.shields.io/badge/Lapikit-black.svg?style=for-the-badge&logo=NPM
|
|
111
|
+
[join-discord-lapikit]: https://img.shields.io/badge/Join%20the%20community-black.svg?style=for-the-badge&logo=Discord
|
|
112
|
+
[subscribe-to-instagram]: https://img.shields.io/badge/Follow%20@Lapikit-black.svg?style=for-the-badge&logo=Instagram
|
|
113
|
+
[version]: https://img.shields.io/npm/v/lapikit.svg?label=Version&color=f58142
|
|
114
|
+
[license]: https://badgen.net/github/license/nycolaide/lapikit?label=License&color=cc5640
|
|
115
|
+
[installs]: https://badgen.net/npm/dt/lapikit?label=NPM%20installs&color=40ba12
|
|
116
|
+
[installs-this-month]: https://badgen.net/npm/dm/lapikit?label=NPM%20installs&color=40ba12
|
|
117
|
+
[discord]: https://img.shields.io/discord/1383879204671721492?color=5865F2&label=Discord&logo=discord&logoColor=white
|
package/bin/configuration.js
CHANGED
|
@@ -11,7 +11,6 @@ async function findReferenceFile(projectPath) {
|
|
|
11
11
|
await fs.access(routesPath);
|
|
12
12
|
} catch {
|
|
13
13
|
terminal('error', `Lapikit cannot find the routes/ directory.`);
|
|
14
|
-
// throw new Error('Lapikit cannot find the routes/ directory.');
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
const layoutFile = path.join(routesPath, '+layout.svelte');
|
|
@@ -133,10 +132,12 @@ async function findViteConfigFile(projectPath, typescript) {
|
|
|
133
132
|
}
|
|
134
133
|
}
|
|
135
134
|
|
|
136
|
-
async function addLapikitToViteConfig(viteConfigFile) {
|
|
135
|
+
async function addLapikitToViteConfig(viteConfigFile, pathConfig, typescript) {
|
|
137
136
|
try {
|
|
138
137
|
const content = await fs.readFile(viteConfigFile, 'utf-8');
|
|
139
138
|
const lapikitImport = `import { lapikit } from 'lapikit/vite';`;
|
|
139
|
+
const configPath = `${pathConfig}/lapikit.${typescript ? 'ts' : 'js'}`;
|
|
140
|
+
const lapikitPlugin = `lapikit({ config: '${configPath}' })`;
|
|
140
141
|
|
|
141
142
|
// Check if lapikit import already exists
|
|
142
143
|
if (content.includes(lapikitImport) || content.includes(`from 'lapikit/vite'`)) {
|
|
@@ -183,10 +184,10 @@ async function addLapikitToViteConfig(viteConfigFile) {
|
|
|
183
184
|
const pluginMatch = line.match(/plugins:\s*\[(.*)\]/);
|
|
184
185
|
if (pluginMatch) {
|
|
185
186
|
const pluginsContent = pluginMatch[1];
|
|
186
|
-
if (!pluginsContent.includes('lapikit
|
|
187
|
+
if (!pluginsContent.includes('lapikit')) {
|
|
187
188
|
const newPluginsContent = pluginsContent.replace(
|
|
188
189
|
/sveltekit\(\)/,
|
|
189
|
-
|
|
190
|
+
`sveltekit(), ${lapikitPlugin}`
|
|
190
191
|
);
|
|
191
192
|
lines[i] = line.replace(pluginsContent, newPluginsContent);
|
|
192
193
|
pluginAdded = true;
|
|
@@ -200,24 +201,24 @@ async function addLapikitToViteConfig(viteConfigFile) {
|
|
|
200
201
|
const pluginLine = lines[j].trim();
|
|
201
202
|
|
|
202
203
|
if (pluginLine.includes('sveltekit()') && !pluginAdded) {
|
|
203
|
-
// Check if lapikit
|
|
204
|
+
// Check if lapikit is not already present
|
|
204
205
|
let hasLapikit = false;
|
|
205
206
|
for (let k = i; k < lines.length && !lines[k].includes(']'); k++) {
|
|
206
|
-
if (lines[k].includes('lapikit
|
|
207
|
+
if (lines[k].includes('lapikit')) {
|
|
207
208
|
hasLapikit = true;
|
|
208
209
|
break;
|
|
209
210
|
}
|
|
210
211
|
}
|
|
211
212
|
|
|
212
213
|
if (!hasLapikit) {
|
|
213
|
-
// Add lapikit
|
|
214
|
+
// Add lapikit after sveltekit()
|
|
214
215
|
if (pluginLine.includes(',')) {
|
|
215
|
-
lines[j] = lines[j].replace('sveltekit()',
|
|
216
|
+
lines[j] = lines[j].replace('sveltekit()', `sveltekit(), ${lapikitPlugin}`);
|
|
216
217
|
} else {
|
|
217
218
|
lines[j] = lines[j].replace('sveltekit()', 'sveltekit(),');
|
|
218
|
-
// Insert lapikit
|
|
219
|
+
// Insert lapikit on the next line with proper indentation
|
|
219
220
|
const indentation = lines[j].match(/^\s*/)[0];
|
|
220
|
-
lines.splice(j + 1, 0, `${indentation}
|
|
221
|
+
lines.splice(j + 1, 0, `${indentation}${lapikitPlugin}`);
|
|
221
222
|
}
|
|
222
223
|
pluginAdded = true;
|
|
223
224
|
}
|
|
@@ -246,7 +247,7 @@ async function addLapikitToViteConfig(viteConfigFile) {
|
|
|
246
247
|
}
|
|
247
248
|
|
|
248
249
|
export async function initConfiguration(options) {
|
|
249
|
-
const { typescript, pathConfig, formatCSS } = options;
|
|
250
|
+
const { typescript, pathConfig, formatCSS, pathCSS } = options;
|
|
250
251
|
const ext = typescript ? 'ts' : 'js';
|
|
251
252
|
const targetDir = path.resolve(process.cwd(), pathConfig);
|
|
252
253
|
const targetFile = path.join(targetDir, `lapikit.${ext}`);
|
|
@@ -287,10 +288,14 @@ export async function initConfiguration(options) {
|
|
|
287
288
|
throw error;
|
|
288
289
|
}
|
|
289
290
|
|
|
291
|
+
// Add Import Lapikit css
|
|
292
|
+
if (formatCSS !== 'css') {
|
|
293
|
+
console.log('need custom import (Preview)', pathCSS);
|
|
294
|
+
}
|
|
290
295
|
// Add lapikit to vite.config file
|
|
291
296
|
try {
|
|
292
297
|
const viteConfigFile = await findViteConfigFile(process.cwd(), typescript);
|
|
293
|
-
await addLapikitToViteConfig(viteConfigFile);
|
|
298
|
+
await addLapikitToViteConfig(viteConfigFile, pathConfig, typescript);
|
|
294
299
|
} catch (error) {
|
|
295
300
|
terminal('warn', `Warning: Could not update vite.config file: ${error.message}`);
|
|
296
301
|
terminal('error', `Error adding lapikit to vite config: ${error.message}`);
|
package/bin/helper.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { promises as fs } from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
|
|
4
1
|
const color = {
|
|
5
2
|
red: (text) => `\x1b[31m${text}\x1b[0m`,
|
|
6
3
|
green: (text) => `\x1b[32m${text}\x1b[0m`,
|
|
@@ -60,38 +57,3 @@ export const terminal = (type = 'info', msg) => {
|
|
|
60
57
|
else if (type === 'none') console.log(msg);
|
|
61
58
|
else console.log(name, ansi.bold.blue('[info]'), msg);
|
|
62
59
|
};
|
|
63
|
-
|
|
64
|
-
export function getCssPathFromArgs() {
|
|
65
|
-
const args = process.argv.slice(2);
|
|
66
|
-
return args[1] || 'src/app.css';
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export function getLapikitPathFromArgs() {
|
|
70
|
-
const args = process.argv.slice(2);
|
|
71
|
-
// Search argument after --plugin-path or -p
|
|
72
|
-
const pluginPathIndex = args.findIndex((arg) => arg === '--plugin-path' || arg === '-p');
|
|
73
|
-
if (pluginPathIndex !== -1 && args[pluginPathIndex + 1]) {
|
|
74
|
-
return args[pluginPathIndex + 1];
|
|
75
|
-
}
|
|
76
|
-
return 'src/plugin';
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export function validatePluginPath(pluginPath) {
|
|
80
|
-
if (!pluginPath.startsWith('src/')) {
|
|
81
|
-
return {
|
|
82
|
-
valid: false,
|
|
83
|
-
error: 'The path must start with "src/"'
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
return { valid: true };
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export async function envTypescript() {
|
|
90
|
-
const directory = process.cwd();
|
|
91
|
-
try {
|
|
92
|
-
await fs.readFile(path.resolve(directory, 'tsconfig.json'), 'utf-8');
|
|
93
|
-
return true;
|
|
94
|
-
} catch {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
}
|
package/bin/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { initConfiguration } from './configuration.js';
|
|
3
3
|
import { ansi, terminal } from './helper.js';
|
|
4
|
-
import { legacyConfiguration } from './legacy.js';
|
|
5
4
|
import { initPrompts } from './prompts.js';
|
|
6
5
|
|
|
7
6
|
async function run() {
|
|
@@ -18,14 +17,7 @@ async function run() {
|
|
|
18
17
|
|
|
19
18
|
const promptsConfig = await initPrompts();
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
await legacyConfiguration(promptsConfig);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (promptsConfig.env === 'experimental') {
|
|
26
|
-
terminal('warn', `Experimental mode is not yet implemented.`);
|
|
27
|
-
await initConfiguration(promptsConfig);
|
|
28
|
-
}
|
|
20
|
+
await initConfiguration(promptsConfig);
|
|
29
21
|
}
|
|
30
22
|
|
|
31
23
|
run()
|
package/bin/presets.js
CHANGED
|
@@ -8,7 +8,8 @@ function presets({ adapterCSS }) {
|
|
|
8
8
|
|
|
9
9
|
if (adapterCSS === 'css') {
|
|
10
10
|
content += `// Styles\n`;
|
|
11
|
-
content += `import 'lapikit/
|
|
11
|
+
content += `import 'lapikit/styles';\n`;
|
|
12
|
+
content += `import 'lapikit/themes';\n\n`;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
content += `// Composables\n`;
|
package/bin/prompts.js
CHANGED
|
@@ -16,85 +16,52 @@ export async function initPrompts() {
|
|
|
16
16
|
terminal('warn', `installation canceled.`);
|
|
17
17
|
process.exit(0);
|
|
18
18
|
}
|
|
19
|
-
// temps with legacy and new process install
|
|
20
|
-
const { type } = await prompts({
|
|
21
|
-
type: 'select',
|
|
22
|
-
name: 'type',
|
|
23
|
-
message: 'Select installation type:',
|
|
24
|
-
choices: [
|
|
25
|
-
{ title: 'Classic install with lapikit.config.js', value: 'current' },
|
|
26
|
-
{
|
|
27
|
-
title: 'Preview install with new plugin/lapikit.(js|ts) <experimental>',
|
|
28
|
-
value: 'experimental'
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
if (type === 'current') {
|
|
34
|
-
// Classic install
|
|
35
|
-
const settings = await prompts([
|
|
36
|
-
{
|
|
37
|
-
type: 'text',
|
|
38
|
-
name: 'pathCSS',
|
|
39
|
-
message: 'Where would you like to import the lapikit CSS files?',
|
|
40
|
-
initial: 'src/app.css',
|
|
41
|
-
validate: (value) =>
|
|
42
|
-
value.startsWith('src/') ? true : 'Please provide a valid path starting with src/'
|
|
43
|
-
}
|
|
44
|
-
]);
|
|
45
19
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
initial: 'src/app.css',
|
|
90
|
-
validate: (value) =>
|
|
91
|
-
value.startsWith('src/') ? true : 'Please provide a valid path starting with src/'
|
|
92
|
-
}
|
|
93
|
-
]);
|
|
20
|
+
// Preview install
|
|
21
|
+
const settings = await prompts([
|
|
22
|
+
{
|
|
23
|
+
type: 'text',
|
|
24
|
+
name: 'pathConfig',
|
|
25
|
+
message: 'Where would you like to install the lapikit configuration files?',
|
|
26
|
+
initial: 'src/plugins',
|
|
27
|
+
validate: (value) =>
|
|
28
|
+
value.startsWith('src/') ? true : 'Please provide a valid path starting with src/'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: 'toggle',
|
|
32
|
+
name: 'typescript',
|
|
33
|
+
message: 'Use TypeScript?',
|
|
34
|
+
initial: true,
|
|
35
|
+
active: 'Yes',
|
|
36
|
+
inactive: 'No'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
type: 'select',
|
|
40
|
+
name: 'formatCSS',
|
|
41
|
+
message: 'What is your CSS format used on your app?',
|
|
42
|
+
choices: [
|
|
43
|
+
{ title: 'Basic (classic import)', value: 'css' },
|
|
44
|
+
{
|
|
45
|
+
title: 'TailwindCSS (v4)',
|
|
46
|
+
value: 'tailwind-v4'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: 'UnoCSS',
|
|
50
|
+
value: 'unocss'
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
type: (prev) => (prev !== 'css' ? 'text' : null),
|
|
56
|
+
name: 'pathCSS',
|
|
57
|
+
message: 'Where would you like to import the lapikit CSS files?',
|
|
58
|
+
initial: 'src/app.css',
|
|
59
|
+
validate: (value) =>
|
|
60
|
+
value.startsWith('src/') ? true : 'Please provide a valid path starting with src/'
|
|
61
|
+
}
|
|
62
|
+
]);
|
|
94
63
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
};
|
|
99
|
-
}
|
|
64
|
+
return {
|
|
65
|
+
...settings
|
|
66
|
+
};
|
|
100
67
|
}
|
package/dist/actions/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from '
|
|
1
|
+
export * from './accordion.svelte.js';
|
|
2
|
+
export * from './use-theme.js';
|
package/dist/actions/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from '
|
|
1
|
+
export * from './accordion.svelte.js';
|
|
2
|
+
export * from './use-theme.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useTheme(name: string, key?: string): void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { theme } from '../stores/themes.js';
|
|
2
|
+
// states
|
|
3
|
+
const isBrowser = typeof window !== 'undefined';
|
|
4
|
+
export function useTheme(name, key = '@lapikit/theme') {
|
|
5
|
+
theme.update(() => {
|
|
6
|
+
if (isBrowser) {
|
|
7
|
+
const html = document.documentElement;
|
|
8
|
+
html.classList.forEach((cls) => {
|
|
9
|
+
if (cls.startsWith('kit-theme--')) {
|
|
10
|
+
html.classList.remove(cls);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
html.classList.add(`kit-theme--${name}`);
|
|
14
|
+
localStorage.setItem(key, name);
|
|
15
|
+
}
|
|
16
|
+
return name;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
.kit-accordion {
|
|
2
|
-
--accordion-color: var(--on, var(--kit-on-container));
|
|
3
|
-
--accordion-background: var(--base, var(--kit-container));
|
|
4
|
-
--accordion-radius: var(--shape, var(--kit-radius-md));
|
|
5
|
-
|
|
6
2
|
display: flex;
|
|
7
3
|
flex-wrap: wrap;
|
|
8
4
|
justify-content: center;
|
|
@@ -38,76 +34,3 @@
|
|
|
38
34
|
pointer-events: none;
|
|
39
35
|
user-select: none;
|
|
40
36
|
}
|
|
41
|
-
|
|
42
|
-
/* item */
|
|
43
|
-
.kit-accordion .kit-accordion-item {
|
|
44
|
-
flex: 1 0 100%;
|
|
45
|
-
max-width: 100%;
|
|
46
|
-
position: relative;
|
|
47
|
-
transition: 0.3s all cubic-bezier(0.4, 0, 0.2, 1);
|
|
48
|
-
transition-property: margin-top, border-radius, border, max-width;
|
|
49
|
-
border-radius: var(--shape, var(--accordion-radius, var(--kit-radius-md)));
|
|
50
|
-
color: var(--on, var(--accordion-color, var(--kit-on-container)));
|
|
51
|
-
background-color: var(--base, var(--accordion-background, var(--kit-container)));
|
|
52
|
-
/* transition:
|
|
53
|
-
color 0.5s,
|
|
54
|
-
background-color 0.5s; */
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.kit-accordion .kit-accordion-item > button,
|
|
58
|
-
.kit-accordion .kit-accordion-item > [type='button'] {
|
|
59
|
-
font: inherit;
|
|
60
|
-
overflow: visible;
|
|
61
|
-
background-color: transparent;
|
|
62
|
-
border-style: none;
|
|
63
|
-
cursor: pointer;
|
|
64
|
-
color: inherit;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--title {
|
|
68
|
-
align-items: center;
|
|
69
|
-
text-align: start;
|
|
70
|
-
border-radius: inherit;
|
|
71
|
-
display: flex;
|
|
72
|
-
font-size: 0.9375rem;
|
|
73
|
-
min-height: 3rem;
|
|
74
|
-
outline: none;
|
|
75
|
-
padding: 1rem 1.5rem;
|
|
76
|
-
position: relative;
|
|
77
|
-
transition: 0.3s min-height margin-bottom margin-top border-radius cubic-bezier(0.4, 0, 0.2, 1);
|
|
78
|
-
width: 100%;
|
|
79
|
-
justify-content: space-between;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--text {
|
|
83
|
-
display: flex;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--text .kit-accordion-item--text-wrapper {
|
|
87
|
-
padding: 0.5rem 1.5rem 1rem;
|
|
88
|
-
flex: 1 1 auto;
|
|
89
|
-
max-width: 100%;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--icon {
|
|
93
|
-
display: inline-flex;
|
|
94
|
-
margin-bottom: -0.25rem;
|
|
95
|
-
margin-top: -0.25rem;
|
|
96
|
-
-webkit-user-select: none;
|
|
97
|
-
user-select: none;
|
|
98
|
-
margin-inline-start: auto;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/* disabled */
|
|
102
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--title.kit-accordion-item--disabled,
|
|
103
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--title[disabled],
|
|
104
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--title:disabled {
|
|
105
|
-
pointer-events: none;
|
|
106
|
-
user-select: none;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--title.kit-accordion-item--disabled > *,
|
|
110
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--title[disabled] > *,
|
|
111
|
-
.kit-accordion .kit-accordion-item .kit-accordion-item--title:disabled > * {
|
|
112
|
-
opacity: 0.6;
|
|
113
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { getAssets } from '../../internal/assets.svelte.js';
|
|
2
|
+
import { getAssets } from '../../internal/core/actions/assets.svelte.js';
|
|
3
3
|
import type { AccordionProps } from './types.js';
|
|
4
4
|
|
|
5
5
|
let {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
background,
|
|
13
13
|
spacer,
|
|
14
14
|
hideIcon,
|
|
15
|
+
rounded,
|
|
15
16
|
...rest
|
|
16
17
|
}: AccordionProps = $props();
|
|
17
18
|
|
|
@@ -30,8 +31,9 @@
|
|
|
30
31
|
dark && 'dark',
|
|
31
32
|
rest.class
|
|
32
33
|
]}
|
|
33
|
-
style:--
|
|
34
|
-
style:--
|
|
34
|
+
style:--accordion-shape={assets.shape(rounded)}
|
|
35
|
+
style:--accordion-background={assets.color(background)}
|
|
36
|
+
style:--accordion-color={assets.color(color)}
|
|
35
37
|
>
|
|
36
38
|
{@render children?.()}
|
|
37
39
|
</svelte:element>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
.kit-accordion-item {
|
|
2
|
+
flex: 1 0 100%;
|
|
3
|
+
max-width: 100%;
|
|
4
|
+
position: relative;
|
|
5
|
+
transition: 0.3s all cubic-bezier(0.4, 0, 0.2, 1);
|
|
6
|
+
transition-property: margin-top, border-radius, border, max-width;
|
|
7
|
+
border-radius: var(--accordion-shape, var(--system-shape-md));
|
|
8
|
+
color: var(--accordion-color, var(--kit-label-primary));
|
|
9
|
+
background-color: var(--accordion-background, var(--kit-background-grouped-primary));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.kit-accordion-item > button,
|
|
13
|
+
.kit-accordion-item > [type='button'] {
|
|
14
|
+
font: inherit;
|
|
15
|
+
overflow: visible;
|
|
16
|
+
background-color: transparent;
|
|
17
|
+
border-style: none;
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
color: inherit;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.kit-accordion-item .kit-accordion-item--title {
|
|
23
|
+
align-items: center;
|
|
24
|
+
text-align: start;
|
|
25
|
+
border-radius: inherit;
|
|
26
|
+
display: flex;
|
|
27
|
+
font-size: 0.9375rem;
|
|
28
|
+
min-height: 3rem;
|
|
29
|
+
outline: none;
|
|
30
|
+
padding: 1rem 1.5rem;
|
|
31
|
+
position: relative;
|
|
32
|
+
transition: 0.3s min-height margin-bottom margin-top border-radius cubic-bezier(0.4, 0, 0.2, 1);
|
|
33
|
+
width: 100%;
|
|
34
|
+
justify-content: space-between;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.kit-accordion-item .kit-accordion-item--text {
|
|
38
|
+
display: flex;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.kit-accordion-item .kit-accordion-item--text .kit-accordion-item--text-wrapper {
|
|
42
|
+
padding: 0.5rem 1.5rem 1rem;
|
|
43
|
+
flex: 1 1 auto;
|
|
44
|
+
max-width: 100%;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.kit-accordion-item .kit-accordion-item--icon {
|
|
48
|
+
display: inline-flex;
|
|
49
|
+
margin-bottom: -0.25rem;
|
|
50
|
+
margin-top: -0.25rem;
|
|
51
|
+
-webkit-user-select: none;
|
|
52
|
+
user-select: none;
|
|
53
|
+
margin-inline-start: auto;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* disabled */
|
|
57
|
+
.kit-accordion-item .kit-accordion-item--title.kit-accordion-item--disabled,
|
|
58
|
+
.kit-accordion-item .kit-accordion-item--title[disabled],
|
|
59
|
+
.kit-accordion-item .kit-accordion-item--title:disabled {
|
|
60
|
+
pointer-events: none;
|
|
61
|
+
user-select: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.kit-accordion-item .kit-accordion-item--title.kit-accordion-item--disabled > *,
|
|
65
|
+
.kit-accordion-item .kit-accordion-item--title[disabled] > *,
|
|
66
|
+
.kit-accordion-item .kit-accordion-item--title:disabled > * {
|
|
67
|
+
opacity: 0.6;
|
|
68
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { getAssets } from '../../../internal/assets.svelte.js';
|
|
2
|
+
import { getAssets } from '../../../internal/core/actions/assets.svelte.js';
|
|
3
3
|
import type { AccordionItemProps, ModelAccordionItemProps } from '../types.js';
|
|
4
4
|
|
|
5
5
|
// components
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
open && 'kit-accordion-item--active',
|
|
50
50
|
rest.class
|
|
51
51
|
]}
|
|
52
|
-
style:--
|
|
53
|
-
style:--
|
|
54
|
-
style:--
|
|
52
|
+
style:--accordion--item-shape={assets.shape(rounded)}
|
|
53
|
+
style:--accordion--item-background={assets.color(background)}
|
|
54
|
+
style:--accordion--item-color={assets.color(color)}
|
|
55
55
|
>
|
|
56
56
|
<button
|
|
57
57
|
class={[
|