@pure-ds/core 0.3.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/CSS-INTELLISENSE-LIMITATION.md +98 -0
- package/CSS-INTELLISENSE-QUICK-REF.md +238 -0
- package/INTELLISENSE.md +384 -0
- package/LICENSE +15 -0
- package/custom-elements-manifest.config.js +30 -0
- package/custom-elements.json +2003 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/packages/pds-configurator/src/figma-export.d.ts +13 -0
- package/dist/types/packages/pds-configurator/src/figma-export.d.ts.map +1 -0
- package/dist/types/packages/pds-configurator/src/pds-config-form.d.ts +2 -0
- package/dist/types/packages/pds-configurator/src/pds-config-form.d.ts.map +1 -0
- package/dist/types/packages/pds-configurator/src/pds-configurator.d.ts +2 -0
- package/dist/types/packages/pds-configurator/src/pds-configurator.d.ts.map +1 -0
- package/dist/types/packages/pds-configurator/src/pds-demo.d.ts +2 -0
- package/dist/types/packages/pds-configurator/src/pds-demo.d.ts.map +1 -0
- package/dist/types/pds.config.d.ts +13 -0
- package/dist/types/pds.config.d.ts.map +1 -0
- package/dist/types/pds.d.ts +408 -0
- package/dist/types/public/assets/js/app.d.ts +2 -0
- package/dist/types/public/assets/js/app.d.ts.map +1 -0
- package/dist/types/public/assets/js/pds.d.ts +23 -0
- package/dist/types/public/assets/js/pds.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-calendar.d.ts +23 -0
- package/dist/types/public/assets/pds/components/pds-calendar.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-drawer.d.ts +2 -0
- package/dist/types/public/assets/pds/components/pds-drawer.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-icon.d.ts +53 -0
- package/dist/types/public/assets/pds/components/pds-icon.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-jsonform.d.ts +104 -0
- package/dist/types/public/assets/pds/components/pds-jsonform.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-richtext.d.ts +121 -0
- package/dist/types/public/assets/pds/components/pds-richtext.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-scrollrow.d.ts +61 -0
- package/dist/types/public/assets/pds/components/pds-scrollrow.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-splitpanel.d.ts +1 -0
- package/dist/types/public/assets/pds/components/pds-splitpanel.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-tabstrip.d.ts +39 -0
- package/dist/types/public/assets/pds/components/pds-tabstrip.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-toaster.d.ts +111 -0
- package/dist/types/public/assets/pds/components/pds-toaster.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-upload.d.ts +83 -0
- package/dist/types/public/assets/pds/components/pds-upload.d.ts.map +1 -0
- package/dist/types/src/js/app.d.ts +2 -0
- package/dist/types/src/js/app.d.ts.map +1 -0
- package/dist/types/src/js/common/ask.d.ts +22 -0
- package/dist/types/src/js/common/ask.d.ts.map +1 -0
- package/dist/types/src/js/common/common.d.ts +3 -0
- package/dist/types/src/js/common/common.d.ts.map +1 -0
- package/dist/types/src/js/common/font-loader.d.ts +24 -0
- package/dist/types/src/js/common/font-loader.d.ts.map +1 -0
- package/dist/types/src/js/common/msg.d.ts +3 -0
- package/dist/types/src/js/common/msg.d.ts.map +1 -0
- package/dist/types/src/js/lit.d.ts +25 -0
- package/dist/types/src/js/lit.d.ts.map +1 -0
- package/dist/types/src/js/pds-configurator/figma-export.d.ts +13 -0
- package/dist/types/src/js/pds-configurator/figma-export.d.ts.map +1 -0
- package/dist/types/src/js/pds-configurator/pds-config-form.d.ts +2 -0
- package/dist/types/src/js/pds-configurator/pds-config-form.d.ts.map +1 -0
- package/dist/types/src/js/pds-configurator/pds-configurator.d.ts +2 -0
- package/dist/types/src/js/pds-configurator/pds-configurator.d.ts.map +1 -0
- package/dist/types/src/js/pds-configurator/pds-demo.d.ts +2 -0
- package/dist/types/src/js/pds-configurator/pds-demo.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-config.d.ts +758 -0
- package/dist/types/src/js/pds-core/pds-config.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-enhancer-metadata.d.ts +6 -0
- package/dist/types/src/js/pds-core/pds-enhancer-metadata.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-enhancers.d.ts +14 -0
- package/dist/types/src/js/pds-core/pds-enhancers.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-enums.d.ts +87 -0
- package/dist/types/src/js/pds-core/pds-enums.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-generator.d.ts +741 -0
- package/dist/types/src/js/pds-core/pds-generator.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-ontology.d.ts +48 -0
- package/dist/types/src/js/pds-core/pds-ontology.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-paths.d.ts +37 -0
- package/dist/types/src/js/pds-core/pds-paths.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-query.d.ts +102 -0
- package/dist/types/src/js/pds-core/pds-query.d.ts.map +1 -0
- package/dist/types/src/js/pds-core/pds-registry.d.ts +40 -0
- package/dist/types/src/js/pds-core/pds-registry.d.ts.map +1 -0
- package/dist/types/src/js/pds.d.ts +109 -0
- package/dist/types/src/js/pds.d.ts.map +1 -0
- package/dist/types/src/pds-core/pds-api.d.ts +31 -0
- package/dist/types/src/pds-core/pds-api.d.ts.map +1 -0
- package/package.json +104 -0
- package/packages/pds-cli/README.md +15 -0
- package/packages/pds-cli/bin/generate-css-data.js +565 -0
- package/packages/pds-cli/bin/generate-manifest.js +352 -0
- package/packages/pds-cli/bin/pds-build-icons.js +152 -0
- package/packages/pds-cli/bin/pds-dx.js +114 -0
- package/packages/pds-cli/bin/pds-static.js +556 -0
- package/packages/pds-cli/bin/pds.js +127 -0
- package/packages/pds-cli/bin/postinstall.js +380 -0
- package/packages/pds-cli/bin/sync-assets.js +252 -0
- package/packages/pds-cli/lib/asset-roots.js +47 -0
- package/packages/pds-cli/lib/fs-writer.js +75 -0
- package/pds.css-data.json +5 -0
- package/pds.html-data.json +5 -0
- package/public/assets/js/app.js +5719 -0
- package/public/assets/js/lit.js +131 -0
- package/public/assets/js/pds.js +3423 -0
- package/public/assets/pds/components/pds-calendar.js +837 -0
- package/public/assets/pds/components/pds-drawer.js +857 -0
- package/public/assets/pds/components/pds-icon.js +338 -0
- package/public/assets/pds/components/pds-jsonform.js +1775 -0
- package/public/assets/pds/components/pds-richtext.js +1035 -0
- package/public/assets/pds/components/pds-scrollrow.js +331 -0
- package/public/assets/pds/components/pds-splitpanel.js +401 -0
- package/public/assets/pds/components/pds-tabstrip.js +251 -0
- package/public/assets/pds/components/pds-toaster.js +446 -0
- package/public/assets/pds/components/pds-upload.js +657 -0
- package/public/assets/pds/custom-elements.json +2003 -0
- package/public/assets/pds/icons/pds-icons.svg +498 -0
- package/public/assets/pds/pds-css-complete.json +1861 -0
- package/public/assets/pds/pds.css-data.json +2152 -0
- package/public/assets/pds/vscode-custom-data.json +824 -0
- package/readme.md +1870 -0
- package/src/js/pds-core/pds-config.js +1162 -0
- package/src/js/pds-core/pds-enhancer-metadata.js +75 -0
- package/src/js/pds-core/pds-enhancers.js +357 -0
- package/src/js/pds-core/pds-enums.js +86 -0
- package/src/js/pds-core/pds-generator.js +5317 -0
- package/src/js/pds-core/pds-ontology.js +256 -0
- package/src/js/pds-core/pds-paths.js +109 -0
- package/src/js/pds-core/pds-query.js +571 -0
- package/src/js/pds-core/pds-registry.js +129 -0
- package/src/js/pds-core/pds.d.ts +129 -0
- package/src/js/pds.d.ts +408 -0
- package/src/js/pds.js +1579 -0
package/INTELLISENSE.md
ADDED
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
# IntelliSense & IDE Support
|
|
2
|
+
|
|
3
|
+
Pure Design System provides comprehensive IntelliSense support for both HTML and CSS, making development faster and reducing errors. This guide covers setup for VS Code, WebStorm, and other editors.
|
|
4
|
+
|
|
5
|
+
## 🎯 What You Get
|
|
6
|
+
|
|
7
|
+
### HTML IntelliSense
|
|
8
|
+
- ✅ Web component autocomplete (`<pds-drawer>`, `<pds-icon>`, etc.)
|
|
9
|
+
- ✅ Attribute suggestions with descriptions
|
|
10
|
+
- ✅ Enum value autocomplete (e.g., `position="left|right|top|bottom"`)
|
|
11
|
+
- ✅ Property and method documentation on hover
|
|
12
|
+
- ✅ Icon name autocomplete (all available icons)
|
|
13
|
+
|
|
14
|
+
### CSS IntelliSense
|
|
15
|
+
- ✅ CSS custom property autocomplete (`--color-primary-500`, `--spacing-4`)
|
|
16
|
+
- ✅ Token documentation and value previews
|
|
17
|
+
- ✅ Utility class suggestions (`.flex`, `.gap-4`, `.border-gradient`)
|
|
18
|
+
- ✅ Primitive class suggestions (`.card`, `.badge`, `.surface`)
|
|
19
|
+
- ✅ Data attribute enhancements (`data-dropdown`, `data-toggle`)
|
|
20
|
+
|
|
21
|
+
## 📦 Generation
|
|
22
|
+
|
|
23
|
+
IntelliSense data is automatically generated when you export PDS assets:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Generate all IntelliSense data (recommended)
|
|
27
|
+
npm run pds:dx
|
|
28
|
+
|
|
29
|
+
# Or as part of full export
|
|
30
|
+
npm run pds:export
|
|
31
|
+
|
|
32
|
+
# Or generate individually
|
|
33
|
+
npm run pds:manifest # HTML IntelliSense only
|
|
34
|
+
npm run pds:css-data # CSS IntelliSense only
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Generated Files
|
|
38
|
+
|
|
39
|
+
After running generation, you'll have:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
public/assets/pds/
|
|
43
|
+
├── custom-elements.json # Standard Custom Elements Manifest
|
|
44
|
+
├── vscode-custom-data.json # VS Code HTML custom data
|
|
45
|
+
├── pds.css-data.json # VS Code CSS custom data
|
|
46
|
+
└── pds-css-complete.json # Standard CSS data (all editors)
|
|
47
|
+
|
|
48
|
+
# Root reference files for easy setup
|
|
49
|
+
pds.html-data.json # Points to vscode-custom-data.json
|
|
50
|
+
pds.css-data.json # Points to pds.css-data.json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## ⚙️ VS Code Setup
|
|
54
|
+
|
|
55
|
+
### Recommended: Workspace Settings
|
|
56
|
+
|
|
57
|
+
Create or update `.vscode/settings.json` in your project:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"html.customData": [
|
|
62
|
+
"node_modules/pure-ds/public/assets/pds/vscode-custom-data.json"
|
|
63
|
+
],
|
|
64
|
+
"css.customData": [
|
|
65
|
+
"node_modules/pure-ds/public/assets/pds/pds.css-data.json"
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Alternative** (if PDS is in your repo):
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"html.customData": ["./pds.html-data.json"],
|
|
74
|
+
"css.customData": ["./pds.css-data.json"]
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Reload VS Code
|
|
79
|
+
|
|
80
|
+
After adding settings:
|
|
81
|
+
1. Press `Ctrl+Shift+P` (or `Cmd+Shift+P` on Mac)
|
|
82
|
+
2. Type "Developer: Reload Window"
|
|
83
|
+
3. Press Enter
|
|
84
|
+
|
|
85
|
+
## 🔧 WebStorm / IntelliJ IDEA Setup
|
|
86
|
+
|
|
87
|
+
WebStorm automatically recognizes `custom-elements.json` in your `node_modules/pure-ds/` directory for HTML IntelliSense.
|
|
88
|
+
|
|
89
|
+
### For CSS IntelliSense
|
|
90
|
+
|
|
91
|
+
Add the CSS data file to your project settings:
|
|
92
|
+
|
|
93
|
+
1. Go to **Settings** → **Languages & Frameworks** → **Style Sheets** → **CSS**
|
|
94
|
+
2. Under **Custom Data**, add:
|
|
95
|
+
```
|
|
96
|
+
node_modules/pure-ds/public/assets/pds/pds-css-complete.json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 🌐 Other Editors
|
|
100
|
+
|
|
101
|
+
### Sublime Text
|
|
102
|
+
|
|
103
|
+
Install the [LSP](https://packagecontrol.io/packages/LSP) package and configure custom data paths.
|
|
104
|
+
|
|
105
|
+
### Vim/Neovim
|
|
106
|
+
|
|
107
|
+
Use [coc-css](https://github.com/neoclide/coc-css) or [coc-html](https://github.com/neoclide/coc-html) with custom data configuration.
|
|
108
|
+
|
|
109
|
+
### Emacs
|
|
110
|
+
|
|
111
|
+
Configure [lsp-mode](https://emacs-lsp.github.io/lsp-mode/) with CSS and HTML language servers.
|
|
112
|
+
|
|
113
|
+
## 📝 Usage Examples
|
|
114
|
+
|
|
115
|
+
### HTML IntelliSense in Action
|
|
116
|
+
|
|
117
|
+
Type `<pds-` and see all available components:
|
|
118
|
+
|
|
119
|
+
```html
|
|
120
|
+
<!-- Autocomplete suggests: pds-drawer, pds-icon, pds-upload, etc. -->
|
|
121
|
+
<pds-drawer
|
|
122
|
+
position="right" <!-- Autocomplete: bottom|top|left|right -->
|
|
123
|
+
open <!-- Boolean attributes suggested -->
|
|
124
|
+
max-height="80vh">
|
|
125
|
+
|
|
126
|
+
<!-- Slots are documented -->
|
|
127
|
+
<div slot="drawer-header">Settings</div>
|
|
128
|
+
<div slot="drawer-content">Content</div>
|
|
129
|
+
</pds-drawer>
|
|
130
|
+
|
|
131
|
+
<!-- Icon autocomplete suggests all available icons -->
|
|
132
|
+
<pds-icon icon="star"></pds-icon>
|
|
133
|
+
<pds-icon icon="bell-ringing"></pds-icon>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### CSS IntelliSense in Action
|
|
137
|
+
|
|
138
|
+
#### CSS Custom Properties
|
|
139
|
+
|
|
140
|
+
**✅ Works in .css files:**
|
|
141
|
+
```css
|
|
142
|
+
.my-component {
|
|
143
|
+
/* Type var(-- and see all tokens with autocomplete */
|
|
144
|
+
background: var(--color-primary-500);
|
|
145
|
+
color: var(--color-gray-50);
|
|
146
|
+
padding: var(--spacing-4);
|
|
147
|
+
border-radius: var(--radius-md);
|
|
148
|
+
box-shadow: var(--shadow-lg);
|
|
149
|
+
|
|
150
|
+
/* Hover over any token to see its value */
|
|
151
|
+
transition: var(--transition-normal);
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**✅ Works in `<style>` tags:**
|
|
156
|
+
```html
|
|
157
|
+
<style>
|
|
158
|
+
.custom {
|
|
159
|
+
color: var(--color-primary-500);
|
|
160
|
+
padding: var(--spacing-4);
|
|
161
|
+
}
|
|
162
|
+
</style>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**❌ Does NOT work in inline `style` attributes** (VS Code limitation):
|
|
166
|
+
```html
|
|
167
|
+
<!-- No IntelliSense here - use <style> tag or utility classes instead -->
|
|
168
|
+
<div style="color: var(--)"></div>
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
#### Utility Classes
|
|
172
|
+
|
|
173
|
+
```html
|
|
174
|
+
<!-- Class autocomplete in HTML -->
|
|
175
|
+
<div class="flex gap-4 items-center">
|
|
176
|
+
<div class="card surface-elevated">
|
|
177
|
+
<!-- Primitives and utilities autocomplete -->
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<button class="border-gradient-primary">
|
|
182
|
+
Fancy Button
|
|
183
|
+
</button>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
#### Data Attributes
|
|
187
|
+
|
|
188
|
+
Progressive enhancement attributes with example code:
|
|
189
|
+
|
|
190
|
+
```html
|
|
191
|
+
<!-- Type data-dr to see data-dropdown suggestion with example -->
|
|
192
|
+
<nav data-dropdown>
|
|
193
|
+
<button>Menu</button>
|
|
194
|
+
<menu>
|
|
195
|
+
<li><a href="#">Item 1</a></li>
|
|
196
|
+
<li><a href="#">Item 2</a></li>
|
|
197
|
+
</menu>
|
|
198
|
+
</nav>
|
|
199
|
+
|
|
200
|
+
<!-- Type data-to to see data-toggle suggestion with example -->
|
|
201
|
+
<label data-toggle>
|
|
202
|
+
<span data-label>Enable notifications</span>
|
|
203
|
+
<input type="checkbox">
|
|
204
|
+
</label>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**IntelliSense shows:**
|
|
208
|
+
- Attribute name (`data-dropdown`, `data-toggle`)
|
|
209
|
+
- Description of what it does
|
|
210
|
+
- Complete example markup from the enhancer's `demoHtml`
|
|
211
|
+
|
|
212
|
+
## 🎨 What's Included
|
|
213
|
+
|
|
214
|
+
### CSS Custom Properties (150+ tokens)
|
|
215
|
+
|
|
216
|
+
- **Colors**: `--color-{name}-{50-900}` (primary, secondary, accent, gray, etc.)
|
|
217
|
+
- **Spacing**: `--spacing-{xs|sm|md|lg|xl|2xl|...}`
|
|
218
|
+
- **Typography**: `--font-family-{heading|body|mono}`, `--font-size-*`, `--font-weight-*`
|
|
219
|
+
- **Borders**: `--radius-{sm|md|lg|xl|full}`, `--border-width-{thin|medium|thick}`
|
|
220
|
+
- **Shadows**: `--shadow-{sm|md|lg|xl|2xl}`
|
|
221
|
+
- **Transitions**: `--transition-{fast|normal|slow}`
|
|
222
|
+
- **Layout**: `--breakpoint-{sm|md|lg|xl}`, `--z-{dropdown|modal|tooltip|...}`
|
|
223
|
+
- **Surfaces**: `--surface-bg`, `--surface-text`, `--surface-border`, etc.
|
|
224
|
+
|
|
225
|
+
### CSS Classes (50+ utilities)
|
|
226
|
+
|
|
227
|
+
**Primitives**:
|
|
228
|
+
- `.badge`, `.card`, `.surface`, `.alert`, `.dialog`, `.table`, `.button`
|
|
229
|
+
|
|
230
|
+
**Layout**:
|
|
231
|
+
- `.flex`, `.grid`, `.grid-cols-{1-6}`, `.grid-auto-{sm|md|lg|xl}`, `.container`
|
|
232
|
+
|
|
233
|
+
**Utilities**:
|
|
234
|
+
- `.gap-{0-12}`, `.items-{start|end|center|baseline|stretch}`
|
|
235
|
+
- `.justify-{start|end|center|between|around|evenly}`
|
|
236
|
+
- `.border-gradient`, `.border-gradient-{primary|accent|secondary}`
|
|
237
|
+
- `.border-glow`, `.border-glow-{sm|lg}`, `.border-glow-{color}`
|
|
238
|
+
|
|
239
|
+
### Data Attributes (5+ enhancements)
|
|
240
|
+
|
|
241
|
+
- `data-dropdown` - Auto-enhance navigation with dropdowns
|
|
242
|
+
- `data-toggle` - Transform checkboxes into toggle switches
|
|
243
|
+
- `data-tabs` - Tab interface enhancement
|
|
244
|
+
- `data-modal` - Modal dialog behavior
|
|
245
|
+
- `data-tooltip` - Tooltip enhancement
|
|
246
|
+
|
|
247
|
+
## 🔍 Troubleshooting
|
|
248
|
+
|
|
249
|
+
### CSS IntelliSense Not Working in Inline Styles
|
|
250
|
+
|
|
251
|
+
**This is expected!** VS Code's CSS custom data **only works in:**
|
|
252
|
+
- ✅ `.css` files
|
|
253
|
+
- ✅ `<style>` tags in HTML
|
|
254
|
+
- ❌ **NOT** in inline `style` attributes
|
|
255
|
+
|
|
256
|
+
**Workarounds:**
|
|
257
|
+
```html
|
|
258
|
+
<!-- ❌ Won't work -->
|
|
259
|
+
<div style="padding: var(--)"></div>
|
|
260
|
+
|
|
261
|
+
<!-- ✅ Use <style> tag -->
|
|
262
|
+
<style>
|
|
263
|
+
.my-padding { padding: var(--spacing-4); }
|
|
264
|
+
</style>
|
|
265
|
+
<div class="my-padding"></div>
|
|
266
|
+
|
|
267
|
+
<!-- ✅ Or use utility classes -->
|
|
268
|
+
<div class="gap-4 flex"></div>
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### IntelliSense Not Working in CSS Files
|
|
272
|
+
|
|
273
|
+
1. **Verify files exist**:
|
|
274
|
+
```bash
|
|
275
|
+
ls -la node_modules/pure-ds/public/assets/pds/
|
|
276
|
+
# Should show: vscode-custom-data.json, pds.css-data.json
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
2. **Check settings path**: Ensure paths in `.vscode/settings.json` are correct
|
|
280
|
+
|
|
281
|
+
3. **Reload VS Code**: Always reload after changing settings (Ctrl+Shift+P → "Developer: Reload Window")
|
|
282
|
+
|
|
283
|
+
4. **Test in a CSS file**: Create a `.css` file and type `var(--` to see if autocomplete appears
|
|
284
|
+
|
|
285
|
+
5. **Clear cache**: Try deleting `.vscode/` folder and recreating settings
|
|
286
|
+
|
|
287
|
+
### Partial Autocomplete
|
|
288
|
+
|
|
289
|
+
If you only see some suggestions:
|
|
290
|
+
- HTML works but CSS doesn't → Check `css.customData` setting and reload
|
|
291
|
+
- CSS works but HTML doesn't → Check `html.customData` setting and reload
|
|
292
|
+
- CSS works in files but not inline → This is normal (VS Code limitation)
|
|
293
|
+
|
|
294
|
+
### Consuming Project Setup
|
|
295
|
+
|
|
296
|
+
If PDS is installed as a dependency:
|
|
297
|
+
|
|
298
|
+
```json
|
|
299
|
+
{
|
|
300
|
+
"html.customData": [
|
|
301
|
+
"node_modules/pure-ds/public/assets/pds/vscode-custom-data.json"
|
|
302
|
+
],
|
|
303
|
+
"css.customData": [
|
|
304
|
+
"node_modules/pure-ds/public/assets/pds/pds.css-data.json"
|
|
305
|
+
]
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
If you've copied PDS assets to your project:
|
|
310
|
+
|
|
311
|
+
```json
|
|
312
|
+
{
|
|
313
|
+
"html.customData": [
|
|
314
|
+
"public/assets/pds/vscode-custom-data.json"
|
|
315
|
+
],
|
|
316
|
+
"css.customData": [
|
|
317
|
+
"public/assets/pds/pds.css-data.json"
|
|
318
|
+
]
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## 📚 Standards Compliance
|
|
323
|
+
|
|
324
|
+
PDS IntelliSense follows these standards:
|
|
325
|
+
|
|
326
|
+
- **Custom Elements Manifest**: [Web Component Standard](https://github.com/webcomponents/custom-elements-manifest)
|
|
327
|
+
- **VS Code Custom Data**: [VS Code HTML/CSS Data Format](https://github.com/microsoft/vscode-custom-data)
|
|
328
|
+
- **Cross-editor compatibility**: Standard JSON formats work with LSP-compliant editors
|
|
329
|
+
|
|
330
|
+
## 🚀 Advanced Usage
|
|
331
|
+
|
|
332
|
+
### TypeScript Support
|
|
333
|
+
|
|
334
|
+
PDS also provides TypeScript definitions for full type safety:
|
|
335
|
+
|
|
336
|
+
```typescript
|
|
337
|
+
import { PDS } from 'pure-ds';
|
|
338
|
+
|
|
339
|
+
// TypeScript knows all methods and properties
|
|
340
|
+
const pds = new PDS({
|
|
341
|
+
preset: 'default',
|
|
342
|
+
design: {
|
|
343
|
+
colors: {
|
|
344
|
+
primary: '#007acc'
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
// Fully typed
|
|
350
|
+
pds.compiled.tokens.colors.primary[500];
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Custom Data Generation
|
|
354
|
+
|
|
355
|
+
To generate custom data with your own configuration:
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# Generate with custom target directory
|
|
359
|
+
npm run pds:dx public/my-assets
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
## 💡 Tips
|
|
363
|
+
|
|
364
|
+
1. **Type less**: Let IntelliSense do the work - type `--col` and pick from suggestions
|
|
365
|
+
2. **Explore tokens**: Hover over variables to see actual values
|
|
366
|
+
3. **Discover utilities**: Type `.` in class attribute to browse all available classes
|
|
367
|
+
4. **Icon discovery**: Use `icon="` and browse all icon names with descriptions
|
|
368
|
+
5. **Learn by browsing**: IntelliSense descriptions teach you the design system
|
|
369
|
+
|
|
370
|
+
## 🤝 Contributing
|
|
371
|
+
|
|
372
|
+
Found missing autocomplete entries? The data is generated from:
|
|
373
|
+
- `src/js/pds-core/pds-ontology.js` - Class definitions and enhancements
|
|
374
|
+
- `src/js/pds-core/pds-generator.js` - Token generation
|
|
375
|
+
- Component JSDoc comments - HTML element documentation
|
|
376
|
+
|
|
377
|
+
Submit PRs to improve coverage!
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
**Next Steps**:
|
|
382
|
+
- [Getting Started](./readme.md#getting-started)
|
|
383
|
+
- [Configuration Guide](./readme.md#configuration)
|
|
384
|
+
- [Component Documentation](./packages/pds-storybook/README.md)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025, mvneerven
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
copyright notice and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
11
|
+
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
13
|
+
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
14
|
+
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
|
15
|
+
THIS SOFTWARE.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Elements Manifest Configuration
|
|
3
|
+
* Generates metadata for all PDS web components
|
|
4
|
+
*/
|
|
5
|
+
export default {
|
|
6
|
+
globs: ['public/assets/pds/components/pds-*.js'],
|
|
7
|
+
exclude: [],
|
|
8
|
+
outdir: '.',
|
|
9
|
+
dev: false,
|
|
10
|
+
watch: false,
|
|
11
|
+
dependencies: true,
|
|
12
|
+
packagejson: true,
|
|
13
|
+
litelement: true,
|
|
14
|
+
plugins: [
|
|
15
|
+
{
|
|
16
|
+
name: 'exclude-private-members',
|
|
17
|
+
// Remove private fields and methods from the manifest
|
|
18
|
+
moduleLinkPhase({moduleDoc}) {
|
|
19
|
+
moduleDoc.declarations?.forEach(declaration => {
|
|
20
|
+
if (declaration.members) {
|
|
21
|
+
declaration.members = declaration.members.filter(member => {
|
|
22
|
+
// Exclude members marked as private or starting with #
|
|
23
|
+
return member.privacy !== 'private' && !member.name?.startsWith('#');
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|