lime-elements-vue 1.0.10 → 1.2.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 CHANGED
@@ -1,156 +1,134 @@
1
- # lime-elements-vue
1
+ # Lime Elements Vue
2
2
 
3
- Vue 3 wrapper for [@limetech/lime-elements](https://github.com/Lundalogik/lime-elements) web components.
3
+ Vue 3 wrapper for [Lime Elements](https://github.com/Lundalogik/lime-elements) web components.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
- npm install lime-elements-vue
8
+ npm install @limetech/lime-elements-vue
9
9
  ```
10
10
 
11
11
  ## Usage
12
12
 
13
- ### 1. Configure Vite (Required)
14
-
15
- Add this to your `vite.config.ts`:
16
-
17
13
  ```typescript
18
- import { defineConfig } from 'vite'
19
- import vue from '@vitejs/plugin-vue'
20
- import { viteStaticCopy } from 'vite-plugin-static-copy'
21
-
22
- export default defineConfig({
23
- plugins: [
24
- vue({
25
- template: {
26
- compilerOptions: {
27
- // Tell Vue that all tags with a hyphen are custom elements
28
- isCustomElement: (tag) => tag.includes('-')
29
- }
30
- }
31
- }),
32
- // Copy lime-elements ESM files to assets folder
33
- viteStaticCopy({
34
- targets: [
35
- {
36
- src: 'node_modules/@limetech/lime-elements/dist/esm/*',
37
- dest: 'assets/'
38
- }
39
- ]
40
- })
41
- ],
42
- optimizeDeps: {
43
- // Don't pre-bundle lime-elements to allow dynamic imports to work
44
- exclude: ['@limetech/lime-elements']
45
- }
46
- })
14
+ // main.ts
15
+ import { createApp } from 'vue';
16
+ import App from './App.vue';
17
+ import { LimeElementsVue } from '@limetech/lime-elements-vue';
18
+ import '@limetech/lime-elements-vue/css/lime-elements.css';
19
+
20
+ const app = createApp(App);
21
+ app.use(LimeElementsVue);
22
+ app.mount('#app');
47
23
  ```
48
24
 
49
- **Install the required plugin:**
25
+ Then in your components:
50
26
 
51
- ```bash
52
- npm install -D vite-plugin-static-copy
27
+ ```vue
28
+ <template>
29
+ <limel-button label="Click me" :primary="true" @click="handleClick" />
30
+ <limel-checkbox label="Check me" :checked="checked" @change="handleChange" />
31
+ </template>
53
32
  ```
54
33
 
55
- ### 2. Register the plugin globally
34
+ ### Vite Configuration
56
35
 
57
- **Important:** Set `resourcesUrl` to match where you copied the files in your Vite config.
36
+ Add custom elements support to your Vite config:
58
37
 
59
38
  ```typescript
60
- import { createApp } from 'vue'
61
- import { LimeElementsVue } from 'lime-elements-vue'
62
- import App from './App.vue'
39
+ // vite.config.ts
40
+ import vue from '@vitejs/plugin-vue';
63
41
 
64
- const app = createApp(App)
65
-
66
- // Match this to your viteStaticCopy dest path
67
- app.use(LimeElementsVue, {
68
- resourcesUrl: '/assets/' // Must match the 'dest' in viteStaticCopy config
69
- })
70
-
71
- app.mount('#app')
42
+ export default defineConfig({
43
+ plugins: [
44
+ vue({
45
+ template: {
46
+ compilerOptions: {
47
+ isCustomElement: (tag) => tag.startsWith('limel-'),
48
+ },
49
+ },
50
+ }),
51
+ ],
52
+ });
72
53
  ```
73
54
 
74
- ### 3. Use components in your templates
55
+ ## Development
75
56
 
76
- ```vue
77
- <template>
78
- <div>
79
- <limel-button label="Click me" @click="handleClick" />
80
- <limel-input-field v-model="value" label="Enter text" />
81
- </div>
82
- </template>
57
+ ### Prerequisites
83
58
 
84
- <script setup lang="ts">
85
- import { ref } from 'vue'
59
+ - Node.js 18+
60
+ - npm 8+
61
+ - Python 3.8+ (for orchestration script)
86
62
 
87
- const value = ref('')
63
+ ### Setup
88
64
 
89
- const handleClick = () => {
90
- console.log('Button clicked!')
91
- }
92
- </script>
93
- ```
94
-
95
- ## Configuration Options
96
-
97
- ### Development vs Production
98
-
99
- - **Development**: The default `resourcesUrl` points to `/node_modules/@limetech/lime-elements/dist/` which works with Vite's dev server
100
- - **Production**: You **must** configure `resourcesUrl` to match where you copy the assets using `vite-plugin-static-copy`
101
-
102
- ### Alternative: Copy to different location
65
+ ```bash
66
+ # Clone with submodules
67
+ git clone --recurse-submodules https://github.com/Lundalogik/lime-elements-vue.git
68
+ cd lime-elements-vue
103
69
 
104
- If you prefer a different location:
70
+ # Or if already cloned
71
+ git submodule update --init --recursive
105
72
 
106
- ```typescript
107
- // In vite.config.ts
108
- viteStaticCopy({
109
- targets: [
110
- {
111
- src: 'node_modules/@limetech/lime-elements/dist/esm/*',
112
- dest: 'lime-elements/' // Custom destination
113
- }
114
- ]
115
- })
116
-
117
- // In your app
118
- app.use(LimeElementsVue, {
119
- resourcesUrl: '/lime-elements/' // Must match!
120
- })
73
+ # Install dependencies
74
+ npm install
75
+ cd demo && npm install && cd ..
121
76
  ```
122
77
 
123
- ### Using a CDN
78
+ ### Build
124
79
 
125
- ```typescript
126
- app.use(LimeElementsVue, {
127
- resourcesUrl: 'https://your-cdn.com/lime-elements/'
128
- })
129
- ```
80
+ ```bash
81
+ # Full build
82
+ ./build.sh
130
83
 
131
- ## Available Components
84
+ # Or using Python orchestrator
85
+ python run.py build
86
+ ```
132
87
 
133
- This package provides Vue 3 wrappers for all lime-elements components. For detailed documentation on each component, please refer to the [lime-elements documentation](https://lundalogik.github.io/lime-elements/).
88
+ ### Development
134
89
 
135
- ## Troubleshooting
90
+ ```bash
91
+ # Start demo app
92
+ python run.py dev
136
93
 
137
- ### 404 errors for component files
94
+ # Or manually
95
+ cd demo && npm run dev
96
+ ```
138
97
 
139
- If you see 404 errors like `GET http://localhost:xxxx/limel-checkbox.entry.js 404 (Not Found)`:
98
+ ### Commands (run.py)
140
99
 
141
- 1. **Check your `resourcesUrl`** - It must match the `dest` path in `viteStaticCopy` config
142
- 2. **Ensure you're copying the right files** - Use `dist/esm/*` not just `dist`
143
- 3. **Include trailing slash** - `resourcesUrl: '/assets/'` not `/assets`
144
- 4. **Configure Vite properly**:
145
- - `optimizeDeps.exclude: ['@limetech/lime-elements']`
146
- - `isCustomElement: (tag) => tag.includes('-')`
100
+ | Command | Description |
101
+ | --------- | ------------------------------------------ |
102
+ | `setup` | Install all dependencies |
103
+ | `build` | Full build process |
104
+ | `dev` | Start demo in dev mode |
105
+ | `clean` | Clean all build artifacts |
106
+ | `publish` | Publish to NPM (dry-run) |
107
+ | `all` | Setup + Build |
108
+ | `test` | Build and start demo |
147
109
 
148
- ### Development mode 404 errors
110
+ ## Project Structure
149
111
 
150
- For development, either:
151
- - Use the default (no resourcesUrl option) which points to `/node_modules/@limetech/lime-elements/dist/`
152
- - Or configure Vite's server to serve node_modules
112
+ ```
113
+ lime-elements-vue-transpiled/
114
+ ├── lime-elements/ # Git submodule (source components)
115
+ ├── src/
116
+ │ ├── index.ts # Main entry point
117
+ │ └── components.ts # Generated Vue proxies
118
+ ├── config/
119
+ │ └── stencil.config.vue.ts
120
+ ├── scripts/
121
+ │ └── post-process.js
122
+ ├── dist/ # Build output
123
+ │ ├── index.esm.js
124
+ │ ├── index.cjs.js
125
+ │ └── css/
126
+ ├── demo/ # Vue 3 demo app
127
+ ├── build.sh
128
+ ├── run.py
129
+ └── package.json
130
+ ```
153
131
 
154
132
  ## License
155
133
 
156
- MIT
134
+ Apache-2.0
@@ -1,72 +1,178 @@
1
- import { type StencilVueComponent } from '@stencil/vue-output-target/runtime';
2
- import type { JSX } from '@limetech/lime-elements';
3
- export declare const Limel3dHoverEffectGlow: StencilVueComponent<JSX.Limel3dHoverEffectGlow>;
4
- export declare const LimelActionBar: StencilVueComponent<JSX.LimelActionBar>;
5
- export declare const LimelActionBarItem: StencilVueComponent<JSX.LimelActionBarItem>;
6
- export declare const LimelActionBarOverflowMenu: StencilVueComponent<JSX.LimelActionBarOverflowMenu>;
7
- export declare const LimelAiAvatar: StencilVueComponent<JSX.LimelAiAvatar>;
8
- export declare const LimelBadge: StencilVueComponent<JSX.LimelBadge>;
9
- export declare const LimelBanner: StencilVueComponent<JSX.LimelBanner>;
10
- export declare const LimelBreadcrumbs: StencilVueComponent<JSX.LimelBreadcrumbs>;
11
- export declare const LimelButton: StencilVueComponent<JSX.LimelButton>;
12
- export declare const LimelButtonGroup: StencilVueComponent<JSX.LimelButtonGroup>;
13
- export declare const LimelCallout: StencilVueComponent<JSX.LimelCallout>;
14
- export declare const LimelCard: StencilVueComponent<JSX.LimelCard>;
15
- export declare const LimelChart: StencilVueComponent<JSX.LimelChart>;
16
- export declare const LimelCheckbox: StencilVueComponent<JSX.LimelCheckbox>;
17
- export declare const LimelChip: StencilVueComponent<JSX.LimelChip>;
18
- export declare const LimelChipSet: StencilVueComponent<JSX.LimelChipSet>;
19
- export declare const LimelCircularProgress: StencilVueComponent<JSX.LimelCircularProgress>;
20
- export declare const LimelCodeEditor: StencilVueComponent<JSX.LimelCodeEditor>;
21
- export declare const LimelCollapsibleSection: StencilVueComponent<JSX.LimelCollapsibleSection>;
22
- export declare const LimelColorPicker: StencilVueComponent<JSX.LimelColorPicker>;
23
- export declare const LimelColorPickerPalette: StencilVueComponent<JSX.LimelColorPickerPalette>;
24
- export declare const LimelConfig: StencilVueComponent<JSX.LimelConfig>;
25
- export declare const LimelDatePicker: StencilVueComponent<JSX.LimelDatePicker>;
26
- export declare const LimelDialog: StencilVueComponent<JSX.LimelDialog>;
27
- export declare const LimelDock: StencilVueComponent<JSX.LimelDock>;
28
- export declare const LimelDockButton: StencilVueComponent<JSX.LimelDockButton>;
29
- export declare const LimelDynamicLabel: StencilVueComponent<JSX.LimelDynamicLabel>;
30
- export declare const LimelFile: StencilVueComponent<JSX.LimelFile>;
31
- export declare const LimelFileDropzone: StencilVueComponent<JSX.LimelFileDropzone>;
32
- export declare const LimelFileInput: StencilVueComponent<JSX.LimelFileInput>;
33
- export declare const LimelFileViewer: StencilVueComponent<JSX.LimelFileViewer>;
34
- export declare const LimelFlatpickrAdapter: StencilVueComponent<JSX.LimelFlatpickrAdapter>;
35
- export declare const LimelFlexContainer: StencilVueComponent<JSX.LimelFlexContainer>;
36
- export declare const LimelGrid: StencilVueComponent<JSX.LimelGrid>;
37
- export declare const LimelHeader: StencilVueComponent<JSX.LimelHeader>;
38
- export declare const LimelHelp: StencilVueComponent<JSX.LimelHelp>;
39
- export declare const LimelHelpContent: StencilVueComponent<JSX.LimelHelpContent>;
40
- export declare const LimelHelperLine: StencilVueComponent<JSX.LimelHelperLine>;
41
- export declare const LimelIcon: StencilVueComponent<JSX.LimelIcon>;
42
- export declare const LimelIconButton: StencilVueComponent<JSX.LimelIconButton>;
43
- export declare const LimelInfoTile: StencilVueComponent<JSX.LimelInfoTile>;
44
- export declare const LimelInputField: StencilVueComponent<JSX.LimelInputField>;
45
- export declare const LimelLinearProgress: StencilVueComponent<JSX.LimelLinearProgress>;
46
- export declare const LimelList: StencilVueComponent<JSX.LimelList>;
47
- export declare const LimelMarkdown: StencilVueComponent<JSX.LimelMarkdown>;
48
- export declare const LimelMenu: StencilVueComponent<JSX.LimelMenu>;
49
- export declare const LimelMenuList: StencilVueComponent<JSX.LimelMenuList>;
50
- export declare const LimelMenuSurface: StencilVueComponent<JSX.LimelMenuSurface>;
51
- export declare const LimelNotchedOutline: StencilVueComponent<JSX.LimelNotchedOutline>;
52
- export declare const LimelPicker: StencilVueComponent<JSX.LimelPicker>;
53
- export declare const LimelPopover: StencilVueComponent<JSX.LimelPopover>;
54
- export declare const LimelPopoverSurface: StencilVueComponent<JSX.LimelPopoverSurface>;
55
- export declare const LimelPortal: StencilVueComponent<JSX.LimelPortal>;
56
- export declare const LimelProgressFlow: StencilVueComponent<JSX.LimelProgressFlow>;
57
- export declare const LimelProgressFlowItem: StencilVueComponent<JSX.LimelProgressFlowItem>;
58
- export declare const LimelProsemirrorAdapter: StencilVueComponent<JSX.LimelProsemirrorAdapter>;
59
- export declare const LimelSelect: StencilVueComponent<JSX.LimelSelect>;
60
- export declare const LimelShortcut: StencilVueComponent<JSX.LimelShortcut>;
61
- export declare const LimelSlider: StencilVueComponent<JSX.LimelSlider>;
62
- export declare const LimelSnackbar: StencilVueComponent<JSX.LimelSnackbar>;
63
- export declare const LimelSpinner: StencilVueComponent<JSX.LimelSpinner>;
64
- export declare const LimelSplitButton: StencilVueComponent<JSX.LimelSplitButton>;
65
- export declare const LimelSwitch: StencilVueComponent<JSX.LimelSwitch>;
66
- export declare const LimelTabBar: StencilVueComponent<JSX.LimelTabBar>;
67
- export declare const LimelTabPanel: StencilVueComponent<JSX.LimelTabPanel>;
68
- export declare const LimelTable: StencilVueComponent<JSX.LimelTable>;
69
- export declare const LimelTextEditor: StencilVueComponent<JSX.LimelTextEditor>;
70
- export declare const LimelTextEditorLinkMenu: StencilVueComponent<JSX.LimelTextEditorLinkMenu>;
71
- export declare const LimelTooltip: StencilVueComponent<JSX.LimelTooltip>;
72
- export declare const LimelTooltipContent: StencilVueComponent<JSX.LimelTooltipContent>;
1
+ /**
2
+ * Global component type declarations for Vue 3 IDE support.
3
+ *
4
+ * Usage: Add this to your project's .d.ts file or reference in tsconfig:
5
+ *
6
+ * /// <reference types="lime-elements-vue/dist/components" />
7
+ */
8
+ import type {
9
+ Limel3dHoverEffectGlow,
10
+ LimelActionBar,
11
+ LimelActionBarItem,
12
+ LimelActionBarOverflowMenu,
13
+ LimelAiAvatar,
14
+ LimelBadge,
15
+ LimelBanner,
16
+ LimelBreadcrumbs,
17
+ LimelButton,
18
+ LimelButtonGroup,
19
+ LimelCallout,
20
+ LimelCard,
21
+ LimelChart,
22
+ LimelCheckbox,
23
+ LimelChip,
24
+ LimelChipSet,
25
+ LimelCircularProgress,
26
+ LimelCodeDiff,
27
+ LimelCodeEditor,
28
+ LimelCollapsibleSection,
29
+ LimelColorPicker,
30
+ LimelColorPickerPalette,
31
+ LimelConfig,
32
+ LimelDatePicker,
33
+ LimelDialog,
34
+ LimelDock,
35
+ LimelDockButton,
36
+ LimelDragHandle,
37
+ LimelDynamicLabel,
38
+ LimelEmailViewer,
39
+ LimelFile,
40
+ LimelFileDropzone,
41
+ LimelFileInput,
42
+ LimelFileViewer,
43
+ LimelFlatpickrAdapter,
44
+ LimelFlexContainer,
45
+ LimelForm,
46
+ LimelGrid,
47
+ LimelHeader,
48
+ LimelHelp,
49
+ LimelHelpContent,
50
+ LimelHelperLine,
51
+ LimelHotkey,
52
+ LimelIcon,
53
+ LimelIconButton,
54
+ LimelInfoTile,
55
+ LimelInputField,
56
+ LimelLinearProgress,
57
+ LimelList,
58
+ LimelListItem,
59
+ LimelMarkdown,
60
+ LimelMasonryLayout,
61
+ LimelMenu,
62
+ LimelMenuItemMeta,
63
+ LimelMenuList,
64
+ LimelMenuSurface,
65
+ LimelNotchedOutline,
66
+ LimelPicker,
67
+ LimelPopover,
68
+ LimelPopoverSurface,
69
+ LimelPortal,
70
+ LimelProfilePicture,
71
+ LimelProgressFlow,
72
+ LimelProgressFlowItem,
73
+ LimelProsemirrorAdapter,
74
+ LimelRadioButton,
75
+ LimelRadioButtonGroup,
76
+ LimelSelect,
77
+ LimelShortcut,
78
+ LimelSlider,
79
+ LimelSnackbar,
80
+ LimelSpinner,
81
+ LimelSplitButton,
82
+ LimelSwitch,
83
+ LimelTabBar,
84
+ LimelTable,
85
+ LimelTabPanel,
86
+ LimelTextEditor,
87
+ LimelTextEditorLinkMenu,
88
+ LimelTooltip,
89
+ LimelTooltipContent,
90
+ } from './index';
91
+
92
+ declare module 'vue' {
93
+ export interface GlobalComponents {
94
+ Limel3dHoverEffectGlow: typeof Limel3dHoverEffectGlow
95
+ LimelActionBar: typeof LimelActionBar
96
+ LimelActionBarItem: typeof LimelActionBarItem
97
+ LimelActionBarOverflowMenu: typeof LimelActionBarOverflowMenu
98
+ LimelAiAvatar: typeof LimelAiAvatar
99
+ LimelBadge: typeof LimelBadge
100
+ LimelBanner: typeof LimelBanner
101
+ LimelBreadcrumbs: typeof LimelBreadcrumbs
102
+ LimelButton: typeof LimelButton
103
+ LimelButtonGroup: typeof LimelButtonGroup
104
+ LimelCallout: typeof LimelCallout
105
+ LimelCard: typeof LimelCard
106
+ LimelChart: typeof LimelChart
107
+ LimelCheckbox: typeof LimelCheckbox
108
+ LimelChip: typeof LimelChip
109
+ LimelChipSet: typeof LimelChipSet
110
+ LimelCircularProgress: typeof LimelCircularProgress
111
+ LimelCodeDiff: typeof LimelCodeDiff
112
+ LimelCodeEditor: typeof LimelCodeEditor
113
+ LimelCollapsibleSection: typeof LimelCollapsibleSection
114
+ LimelColorPicker: typeof LimelColorPicker
115
+ LimelColorPickerPalette: typeof LimelColorPickerPalette
116
+ LimelConfig: typeof LimelConfig
117
+ LimelDatePicker: typeof LimelDatePicker
118
+ LimelDialog: typeof LimelDialog
119
+ LimelDock: typeof LimelDock
120
+ LimelDockButton: typeof LimelDockButton
121
+ LimelDragHandle: typeof LimelDragHandle
122
+ LimelDynamicLabel: typeof LimelDynamicLabel
123
+ LimelEmailViewer: typeof LimelEmailViewer
124
+ LimelFile: typeof LimelFile
125
+ LimelFileDropzone: typeof LimelFileDropzone
126
+ LimelFileInput: typeof LimelFileInput
127
+ LimelFileViewer: typeof LimelFileViewer
128
+ LimelFlatpickrAdapter: typeof LimelFlatpickrAdapter
129
+ LimelFlexContainer: typeof LimelFlexContainer
130
+ LimelForm: typeof LimelForm
131
+ LimelGrid: typeof LimelGrid
132
+ LimelHeader: typeof LimelHeader
133
+ LimelHelp: typeof LimelHelp
134
+ LimelHelpContent: typeof LimelHelpContent
135
+ LimelHelperLine: typeof LimelHelperLine
136
+ LimelHotkey: typeof LimelHotkey
137
+ LimelIcon: typeof LimelIcon
138
+ LimelIconButton: typeof LimelIconButton
139
+ LimelInfoTile: typeof LimelInfoTile
140
+ LimelInputField: typeof LimelInputField
141
+ LimelLinearProgress: typeof LimelLinearProgress
142
+ LimelList: typeof LimelList
143
+ LimelListItem: typeof LimelListItem
144
+ LimelMarkdown: typeof LimelMarkdown
145
+ LimelMasonryLayout: typeof LimelMasonryLayout
146
+ LimelMenu: typeof LimelMenu
147
+ LimelMenuItemMeta: typeof LimelMenuItemMeta
148
+ LimelMenuList: typeof LimelMenuList
149
+ LimelMenuSurface: typeof LimelMenuSurface
150
+ LimelNotchedOutline: typeof LimelNotchedOutline
151
+ LimelPicker: typeof LimelPicker
152
+ LimelPopover: typeof LimelPopover
153
+ LimelPopoverSurface: typeof LimelPopoverSurface
154
+ LimelPortal: typeof LimelPortal
155
+ LimelProfilePicture: typeof LimelProfilePicture
156
+ LimelProgressFlow: typeof LimelProgressFlow
157
+ LimelProgressFlowItem: typeof LimelProgressFlowItem
158
+ LimelProsemirrorAdapter: typeof LimelProsemirrorAdapter
159
+ LimelRadioButton: typeof LimelRadioButton
160
+ LimelRadioButtonGroup: typeof LimelRadioButtonGroup
161
+ LimelSelect: typeof LimelSelect
162
+ LimelShortcut: typeof LimelShortcut
163
+ LimelSlider: typeof LimelSlider
164
+ LimelSnackbar: typeof LimelSnackbar
165
+ LimelSpinner: typeof LimelSpinner
166
+ LimelSplitButton: typeof LimelSplitButton
167
+ LimelSwitch: typeof LimelSwitch
168
+ LimelTabBar: typeof LimelTabBar
169
+ LimelTable: typeof LimelTable
170
+ LimelTabPanel: typeof LimelTabPanel
171
+ LimelTextEditor: typeof LimelTextEditor
172
+ LimelTextEditorLinkMenu: typeof LimelTextEditorLinkMenu
173
+ LimelTooltip: typeof LimelTooltip
174
+ LimelTooltipContent: typeof LimelTooltipContent
175
+ }
176
+ }
177
+
178
+ export {};