spoko-design-system 1.20.0 → 1.21.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/.claude/settings.json +48 -48
- package/.github/dependabot.yml +11 -11
- package/.github/todo.yml +3 -3
- package/.github/workflows/claude.yml +37 -37
- package/.github/workflows/code-quality.yml +72 -72
- package/.github/workflows/deploy.yml +43 -43
- package/.husky/README.md +41 -41
- package/.husky/commit-msg +1 -1
- package/.husky/pre-commit +40 -40
- package/.prettierignore +14 -14
- package/.prettierrc +30 -30
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +4 -4
- package/.vscode/launch.json +11 -11
- package/.vscode/settings.json +21 -21
- package/CHANGELOG.md +476 -462
- package/CLAUDE.md +268 -268
- package/LICENSE +21 -21
- package/README.md +303 -303
- package/TOOLTIPS.md +236 -236
- package/astro.config.mjs +84 -84
- package/commitlint.config.js +3 -3
- package/dev-dist/sw.js +91 -91
- package/dev-dist/workbox-c676b6d3.js +3391 -3391
- package/eslint.config.js +70 -70
- package/icon.config.ts +348 -348
- package/index.ts +78 -78
- package/package.json +160 -160
- package/public/arrow-bottom.svg +7 -7
- package/public/fonts/lg.svg +53 -53
- package/public/fonts/vwhead-bold-demo.html +549 -549
- package/public/fonts/vwhead-regular-demo.html +549 -549
- package/public/fonts/vwtext-bold-demo.html +549 -549
- package/public/fonts/vwtext-regular-demo.html +549 -549
- package/public/github.svg +3 -3
- package/public/grid_dot.svg +4 -4
- package/public/linkedin.svg +44 -44
- package/public/make-scrollable-code-focusable.js +3 -3
- package/public/pagefind.yml +3 -3
- package/public/polo.blue.svg +29 -29
- package/public/spoko.space.svg +71 -71
- package/public/twitter.svg +46 -46
- package/renovate.json +6 -6
- package/sandbox.config.json +11 -11
- package/sonar-project.properties +26 -26
- package/src/components/Category/CategoriesCarousel.astro +3 -7
- package/src/pages/components/badges.mdx +57 -57
- package/src/pages/components/breadcrumbs.mdx +139 -139
- package/src/pages/components/buttons.mdx +359 -359
- package/src/pages/components/card.mdx +294 -294
- package/src/pages/components/carousel.mdx +62 -62
- package/src/pages/components/copyright.mdx +42 -42
- package/src/pages/components/details-list.mdx +207 -207
- package/src/pages/components/features-list.mdx +37 -37
- package/src/pages/components/flags.mdx +49 -49
- package/src/pages/components/fuck-russia.mdx +39 -39
- package/src/pages/components/hand-drive.mdx +78 -78
- package/src/pages/components/headline.mdx +337 -337
- package/src/pages/components/image.mdx +513 -513
- package/src/pages/components/input.mdx +367 -367
- package/src/pages/components/jumbotron.mdx +530 -530
- package/src/pages/components/modal.mdx +212 -212
- package/src/pages/components/post-header.mdx +64 -64
- package/src/pages/components/pr-code.mdx +213 -213
- package/src/pages/components/product-engine.mdx +418 -418
- package/src/pages/components/product-number.mdx +58 -58
- package/src/pages/components/product-tile.mdx +51 -51
- package/src/pages/components/quote.mdx +33 -33
- package/src/pages/components/slimbanner.mdx +260 -260
- package/src/pages/components/table.mdx +108 -108
- package/src/pages/core/colors.mdx +21 -21
- package/src/pages/core/grid.mdx +193 -193
- package/src/pages/core/introduction.mdx +77 -77
- package/src/pages/core/tooltips.mdx +491 -491
- package/src/pages/patterns/introduction.mdx +60 -60
- package/src/styles/_variables.scss +70 -70
- package/tailwind.config.cjs +8 -8
- package/tsconfig.json +28 -28
- package/uno-config/index.ts +269 -269
- package/uno-config/theme/breakpoints.ts +9 -9
- package/uno-config/theme/colors.ts +65 -65
- package/uno-config/theme/dimensions.ts +17 -17
- package/uno-config/theme/effects.ts +14 -14
- package/uno-config/theme/grid.ts +10 -10
- package/uno-config/theme/index.ts +26 -26
- package/uno-config/theme/shortcuts/buttons.ts +53 -53
- package/uno-config/theme/shortcuts/components.ts +124 -124
- package/uno-config/theme/shortcuts/index.ts +20 -20
- package/uno-config/theme/shortcuts/jumbotron.ts +71 -71
- package/uno-config/theme/shortcuts/layout.ts +75 -75
- package/uno-config/theme/typography.ts +29 -29
- package/uno.config.ts +2 -2
package/TOOLTIPS.md
CHANGED
|
@@ -1,236 +1,236 @@
|
|
|
1
|
-
# Tooltip System Documentation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
SDS includes a complete tooltip system built on [Tippy.js](https://atomiks.github.io/tippyjs/) with custom styling and automatic initialization.
|
|
6
|
-
|
|
7
|
-
## Features
|
|
8
|
-
|
|
9
|
-
- 🎨 Custom SDS theme matching design system colors
|
|
10
|
-
- ⚡ Performance-optimized delegation pattern
|
|
11
|
-
- 🔄 Automatic support for Astro View Transitions
|
|
12
|
-
- 🎯 Simple data-attribute API
|
|
13
|
-
- 📦 All dependencies bundled (no need to install tippy.js separately)
|
|
14
|
-
|
|
15
|
-
## Installation
|
|
16
|
-
|
|
17
|
-
**Option 1: Automatic initialization (recommended)**
|
|
18
|
-
|
|
19
|
-
Import the complete tooltip system in your layout's script tag:
|
|
20
|
-
|
|
21
|
-
```astro
|
|
22
|
-
---
|
|
23
|
-
// In your BaseLayout.astro or HeadCommon.astro
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
<head>
|
|
27
|
-
<!-- ... other head elements -->
|
|
28
|
-
<script src="/src/scripts/tooltips.ts"></script>
|
|
29
|
-
</head>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
```ts
|
|
33
|
-
// In your /src/scripts/tooltips.ts
|
|
34
|
-
import 'spoko-design-system/scripts/tooltips';
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Option 2: Manual initialization**
|
|
38
|
-
|
|
39
|
-
If you need more control:
|
|
40
|
-
|
|
41
|
-
```ts
|
|
42
|
-
import { initTooltips } from 'spoko-design-system';
|
|
43
|
-
|
|
44
|
-
// Initialize tooltips manually
|
|
45
|
-
initTooltips();
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Usage
|
|
49
|
-
|
|
50
|
-
Add tooltips to any element using the `data-tippy-content` attribute:
|
|
51
|
-
|
|
52
|
-
```astro
|
|
53
|
-
<span data-tippy-content="This is a tooltip">
|
|
54
|
-
Hover over me
|
|
55
|
-
</span>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### With HTML content
|
|
59
|
-
|
|
60
|
-
```astro
|
|
61
|
-
<span data-tippy-content="<strong>Bold text</strong> and <em>italic</em>">
|
|
62
|
-
Rich tooltip
|
|
63
|
-
</span>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Structured tooltips (like engine codes)
|
|
67
|
-
|
|
68
|
-
The system supports structured tooltips with headers and specs:
|
|
69
|
-
|
|
70
|
-
```astro
|
|
71
|
-
<span
|
|
72
|
-
class="engine-code"
|
|
73
|
-
data-tippy-content={tooltipHTML}
|
|
74
|
-
>
|
|
75
|
-
CAYA
|
|
76
|
-
</span>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Where `tooltipHTML` can be generated using:
|
|
80
|
-
|
|
81
|
-
```ts
|
|
82
|
-
import { getEngineTooltipContent } from 'spoko-design-system';
|
|
83
|
-
|
|
84
|
-
const tooltipHTML = getEngineTooltipContent(engine, translations);
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Components with built-in tooltips
|
|
88
|
-
|
|
89
|
-
These SDS components automatically include tooltip functionality:
|
|
90
|
-
|
|
91
|
-
- `<ProductEngine>` - Engine codes with detailed specs
|
|
92
|
-
- `<ProductEngines>` - List of engine codes
|
|
93
|
-
- `<ProductCodes>` - PR codes (when descriptions are available)
|
|
94
|
-
|
|
95
|
-
## Styling
|
|
96
|
-
|
|
97
|
-
The tooltip theme uses SDS design tokens:
|
|
98
|
-
|
|
99
|
-
- Background: `neutral-lightest` (#f3f4f6)
|
|
100
|
-
- Text: `slate-darkest` (#1e293b)
|
|
101
|
-
- Border: `neutral-lighter` (#e5e7eb)
|
|
102
|
-
- Header (engine tooltips): `accent-deepBlue` (#001e50)
|
|
103
|
-
|
|
104
|
-
To customize, override the `.tippy-box[data-theme~='sds']` class in your project.
|
|
105
|
-
|
|
106
|
-
## Dependencies
|
|
107
|
-
|
|
108
|
-
SDS includes `tippy.js` as a dependency, so your project **does not need to install it separately**.
|
|
109
|
-
|
|
110
|
-
If your project already has `tippy.js` installed, you can safely remove it:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
pnpm remove tippy.js
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## Technical Details
|
|
117
|
-
|
|
118
|
-
### Delegation Pattern
|
|
119
|
-
|
|
120
|
-
The tooltip system uses Tippy.js's delegation pattern for optimal performance:
|
|
121
|
-
|
|
122
|
-
- Single event listener on `body`
|
|
123
|
-
- Targets all `[data-tippy-content]` elements
|
|
124
|
-
- No need to re-initialize when DOM changes
|
|
125
|
-
- Works with dynamically added content
|
|
126
|
-
|
|
127
|
-
### Astro View Transitions
|
|
128
|
-
|
|
129
|
-
The system automatically re-initializes on Astro page navigation:
|
|
130
|
-
|
|
131
|
-
```ts
|
|
132
|
-
document.addEventListener('astro:page-load', () => {
|
|
133
|
-
initTooltips();
|
|
134
|
-
});
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Configuration
|
|
138
|
-
|
|
139
|
-
Default configuration (in `src/scripts/tooltips.ts`):
|
|
140
|
-
|
|
141
|
-
```ts
|
|
142
|
-
{
|
|
143
|
-
target: '[data-tippy-content]',
|
|
144
|
-
allowHTML: true,
|
|
145
|
-
theme: 'sds',
|
|
146
|
-
placement: 'top',
|
|
147
|
-
arrow: true,
|
|
148
|
-
animation: 'shift-away',
|
|
149
|
-
duration: [200, 150],
|
|
150
|
-
maxWidth: 280
|
|
151
|
-
}
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## Troubleshooting
|
|
155
|
-
|
|
156
|
-
### Tooltips not showing
|
|
157
|
-
|
|
158
|
-
1. Verify the script is imported in your layout
|
|
159
|
-
2. Check that elements have `data-tippy-content` attribute
|
|
160
|
-
3. Ensure content is not empty or "undefined"
|
|
161
|
-
4. Check browser console for errors
|
|
162
|
-
|
|
163
|
-
### Double tooltips or conflicts
|
|
164
|
-
|
|
165
|
-
If you see duplicate tooltips:
|
|
166
|
-
|
|
167
|
-
1. Make sure you're only importing the tooltip script once
|
|
168
|
-
2. Don't call `initTooltips()` manually if using auto-initialization
|
|
169
|
-
3. Remove any local tippy.js installations that might conflict
|
|
170
|
-
|
|
171
|
-
### Styling not applied
|
|
172
|
-
|
|
173
|
-
1. Verify SDS theme CSS is imported (included in script import)
|
|
174
|
-
2. Check CSS specificity - SDS uses `!important` for some properties
|
|
175
|
-
3. Ensure your build process handles CSS imports from node_modules
|
|
176
|
-
|
|
177
|
-
## Examples
|
|
178
|
-
|
|
179
|
-
### Basic tooltip
|
|
180
|
-
|
|
181
|
-
```astro
|
|
182
|
-
<button data-tippy-content="Click to save">
|
|
183
|
-
Save
|
|
184
|
-
</button>
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Engine code tooltip
|
|
188
|
-
|
|
189
|
-
```astro
|
|
190
|
-
---
|
|
191
|
-
import { ProductEngine } from 'spoko-design-system';
|
|
192
|
-
|
|
193
|
-
const engine = {
|
|
194
|
-
code: 'CAYA',
|
|
195
|
-
name: '1.6 TDI',
|
|
196
|
-
power: { kw: 55, ps: 75, ps_label: 'PS', label: 'Power' },
|
|
197
|
-
displacement: { value: 1598, label: 'Displacement' },
|
|
198
|
-
euro: { value: 5, label: 'Standard' }
|
|
199
|
-
};
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
<ProductEngine engine={engine} />
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
### Custom structured tooltip
|
|
206
|
-
|
|
207
|
-
```astro
|
|
208
|
-
<span data-tippy-content={`
|
|
209
|
-
<div class="tooltip-header">
|
|
210
|
-
<strong>Custom Header</strong>
|
|
211
|
-
</div>
|
|
212
|
-
<div class="tooltip-specs">
|
|
213
|
-
<div class="tooltip-row">
|
|
214
|
-
<span class="tooltip-label">Label:</span>
|
|
215
|
-
<span class="tooltip-value">Value</span>
|
|
216
|
-
</div>
|
|
217
|
-
</div>
|
|
218
|
-
`}>
|
|
219
|
-
Custom tooltip
|
|
220
|
-
</span>
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
## Migration from standalone Tippy.js
|
|
224
|
-
|
|
225
|
-
If migrating from a direct Tippy.js implementation:
|
|
226
|
-
|
|
227
|
-
1. Remove `tippy.js` from package.json
|
|
228
|
-
2. Remove local tooltip initialization code
|
|
229
|
-
3. Import SDS tooltip script: `import 'spoko-design-system/scripts/tooltips'`
|
|
230
|
-
4. Update elements to use `data-tippy-content` instead of manual initialization
|
|
231
|
-
5. Update custom styles to target `.tippy-box[data-theme~='sds']`
|
|
232
|
-
|
|
233
|
-
## Support
|
|
234
|
-
|
|
235
|
-
For issues or feature requests, please open an issue at:
|
|
236
|
-
https://github.com/polo-blue/sds/issues
|
|
1
|
+
# Tooltip System Documentation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
SDS includes a complete tooltip system built on [Tippy.js](https://atomiks.github.io/tippyjs/) with custom styling and automatic initialization.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- 🎨 Custom SDS theme matching design system colors
|
|
10
|
+
- ⚡ Performance-optimized delegation pattern
|
|
11
|
+
- 🔄 Automatic support for Astro View Transitions
|
|
12
|
+
- 🎯 Simple data-attribute API
|
|
13
|
+
- 📦 All dependencies bundled (no need to install tippy.js separately)
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
**Option 1: Automatic initialization (recommended)**
|
|
18
|
+
|
|
19
|
+
Import the complete tooltip system in your layout's script tag:
|
|
20
|
+
|
|
21
|
+
```astro
|
|
22
|
+
---
|
|
23
|
+
// In your BaseLayout.astro or HeadCommon.astro
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<head>
|
|
27
|
+
<!-- ... other head elements -->
|
|
28
|
+
<script src="/src/scripts/tooltips.ts"></script>
|
|
29
|
+
</head>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
// In your /src/scripts/tooltips.ts
|
|
34
|
+
import 'spoko-design-system/scripts/tooltips';
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Option 2: Manual initialization**
|
|
38
|
+
|
|
39
|
+
If you need more control:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import { initTooltips } from 'spoko-design-system';
|
|
43
|
+
|
|
44
|
+
// Initialize tooltips manually
|
|
45
|
+
initTooltips();
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
Add tooltips to any element using the `data-tippy-content` attribute:
|
|
51
|
+
|
|
52
|
+
```astro
|
|
53
|
+
<span data-tippy-content="This is a tooltip">
|
|
54
|
+
Hover over me
|
|
55
|
+
</span>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### With HTML content
|
|
59
|
+
|
|
60
|
+
```astro
|
|
61
|
+
<span data-tippy-content="<strong>Bold text</strong> and <em>italic</em>">
|
|
62
|
+
Rich tooltip
|
|
63
|
+
</span>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Structured tooltips (like engine codes)
|
|
67
|
+
|
|
68
|
+
The system supports structured tooltips with headers and specs:
|
|
69
|
+
|
|
70
|
+
```astro
|
|
71
|
+
<span
|
|
72
|
+
class="engine-code"
|
|
73
|
+
data-tippy-content={tooltipHTML}
|
|
74
|
+
>
|
|
75
|
+
CAYA
|
|
76
|
+
</span>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Where `tooltipHTML` can be generated using:
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { getEngineTooltipContent } from 'spoko-design-system';
|
|
83
|
+
|
|
84
|
+
const tooltipHTML = getEngineTooltipContent(engine, translations);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Components with built-in tooltips
|
|
88
|
+
|
|
89
|
+
These SDS components automatically include tooltip functionality:
|
|
90
|
+
|
|
91
|
+
- `<ProductEngine>` - Engine codes with detailed specs
|
|
92
|
+
- `<ProductEngines>` - List of engine codes
|
|
93
|
+
- `<ProductCodes>` - PR codes (when descriptions are available)
|
|
94
|
+
|
|
95
|
+
## Styling
|
|
96
|
+
|
|
97
|
+
The tooltip theme uses SDS design tokens:
|
|
98
|
+
|
|
99
|
+
- Background: `neutral-lightest` (#f3f4f6)
|
|
100
|
+
- Text: `slate-darkest` (#1e293b)
|
|
101
|
+
- Border: `neutral-lighter` (#e5e7eb)
|
|
102
|
+
- Header (engine tooltips): `accent-deepBlue` (#001e50)
|
|
103
|
+
|
|
104
|
+
To customize, override the `.tippy-box[data-theme~='sds']` class in your project.
|
|
105
|
+
|
|
106
|
+
## Dependencies
|
|
107
|
+
|
|
108
|
+
SDS includes `tippy.js` as a dependency, so your project **does not need to install it separately**.
|
|
109
|
+
|
|
110
|
+
If your project already has `tippy.js` installed, you can safely remove it:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
pnpm remove tippy.js
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Technical Details
|
|
117
|
+
|
|
118
|
+
### Delegation Pattern
|
|
119
|
+
|
|
120
|
+
The tooltip system uses Tippy.js's delegation pattern for optimal performance:
|
|
121
|
+
|
|
122
|
+
- Single event listener on `body`
|
|
123
|
+
- Targets all `[data-tippy-content]` elements
|
|
124
|
+
- No need to re-initialize when DOM changes
|
|
125
|
+
- Works with dynamically added content
|
|
126
|
+
|
|
127
|
+
### Astro View Transitions
|
|
128
|
+
|
|
129
|
+
The system automatically re-initializes on Astro page navigation:
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
document.addEventListener('astro:page-load', () => {
|
|
133
|
+
initTooltips();
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Configuration
|
|
138
|
+
|
|
139
|
+
Default configuration (in `src/scripts/tooltips.ts`):
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
{
|
|
143
|
+
target: '[data-tippy-content]',
|
|
144
|
+
allowHTML: true,
|
|
145
|
+
theme: 'sds',
|
|
146
|
+
placement: 'top',
|
|
147
|
+
arrow: true,
|
|
148
|
+
animation: 'shift-away',
|
|
149
|
+
duration: [200, 150],
|
|
150
|
+
maxWidth: 280
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Troubleshooting
|
|
155
|
+
|
|
156
|
+
### Tooltips not showing
|
|
157
|
+
|
|
158
|
+
1. Verify the script is imported in your layout
|
|
159
|
+
2. Check that elements have `data-tippy-content` attribute
|
|
160
|
+
3. Ensure content is not empty or "undefined"
|
|
161
|
+
4. Check browser console for errors
|
|
162
|
+
|
|
163
|
+
### Double tooltips or conflicts
|
|
164
|
+
|
|
165
|
+
If you see duplicate tooltips:
|
|
166
|
+
|
|
167
|
+
1. Make sure you're only importing the tooltip script once
|
|
168
|
+
2. Don't call `initTooltips()` manually if using auto-initialization
|
|
169
|
+
3. Remove any local tippy.js installations that might conflict
|
|
170
|
+
|
|
171
|
+
### Styling not applied
|
|
172
|
+
|
|
173
|
+
1. Verify SDS theme CSS is imported (included in script import)
|
|
174
|
+
2. Check CSS specificity - SDS uses `!important` for some properties
|
|
175
|
+
3. Ensure your build process handles CSS imports from node_modules
|
|
176
|
+
|
|
177
|
+
## Examples
|
|
178
|
+
|
|
179
|
+
### Basic tooltip
|
|
180
|
+
|
|
181
|
+
```astro
|
|
182
|
+
<button data-tippy-content="Click to save">
|
|
183
|
+
Save
|
|
184
|
+
</button>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Engine code tooltip
|
|
188
|
+
|
|
189
|
+
```astro
|
|
190
|
+
---
|
|
191
|
+
import { ProductEngine } from 'spoko-design-system';
|
|
192
|
+
|
|
193
|
+
const engine = {
|
|
194
|
+
code: 'CAYA',
|
|
195
|
+
name: '1.6 TDI',
|
|
196
|
+
power: { kw: 55, ps: 75, ps_label: 'PS', label: 'Power' },
|
|
197
|
+
displacement: { value: 1598, label: 'Displacement' },
|
|
198
|
+
euro: { value: 5, label: 'Standard' }
|
|
199
|
+
};
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
<ProductEngine engine={engine} />
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Custom structured tooltip
|
|
206
|
+
|
|
207
|
+
```astro
|
|
208
|
+
<span data-tippy-content={`
|
|
209
|
+
<div class="tooltip-header">
|
|
210
|
+
<strong>Custom Header</strong>
|
|
211
|
+
</div>
|
|
212
|
+
<div class="tooltip-specs">
|
|
213
|
+
<div class="tooltip-row">
|
|
214
|
+
<span class="tooltip-label">Label:</span>
|
|
215
|
+
<span class="tooltip-value">Value</span>
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
`}>
|
|
219
|
+
Custom tooltip
|
|
220
|
+
</span>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Migration from standalone Tippy.js
|
|
224
|
+
|
|
225
|
+
If migrating from a direct Tippy.js implementation:
|
|
226
|
+
|
|
227
|
+
1. Remove `tippy.js` from package.json
|
|
228
|
+
2. Remove local tooltip initialization code
|
|
229
|
+
3. Import SDS tooltip script: `import 'spoko-design-system/scripts/tooltips'`
|
|
230
|
+
4. Update elements to use `data-tippy-content` instead of manual initialization
|
|
231
|
+
5. Update custom styles to target `.tippy-box[data-theme~='sds']`
|
|
232
|
+
|
|
233
|
+
## Support
|
|
234
|
+
|
|
235
|
+
For issues or feature requests, please open an issue at:
|
|
236
|
+
https://github.com/polo-blue/sds/issues
|
package/astro.config.mjs
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
import { defineConfig, sharpImageService } from "astro/config";
|
|
2
|
-
import { iconConfig } from './icon.config';
|
|
3
|
-
import vue from "@astrojs/vue";
|
|
4
|
-
import mdx from '@astrojs/mdx';
|
|
5
|
-
import UnoCSS from '@unocss/astro';
|
|
6
|
-
import icon from "astro-icon";
|
|
7
|
-
import sitemap from "@astrojs/sitemap";
|
|
8
|
-
import pagefind from "astro-pagefind";
|
|
9
|
-
import AstroPWA from '@vite-pwa/astro';
|
|
10
|
-
import metaTags from "astro-meta-tags";
|
|
11
|
-
|
|
12
|
-
import { createSdsConfig } from './uno-config';
|
|
13
|
-
|
|
14
|
-
const unoConfig = createSdsConfig();
|
|
15
|
-
|
|
16
|
-
// https://astro.build/config
|
|
17
|
-
export default defineConfig({
|
|
18
|
-
site: "https://sds.spoko.space/",
|
|
19
|
-
server: {
|
|
20
|
-
port: 1234
|
|
21
|
-
},
|
|
22
|
-
image: {
|
|
23
|
-
service: sharpImageService(),
|
|
24
|
-
domains: ["placehold.co", "api.polo.blue", "polo.blue", "media.istockphoto.com", "freepik.com", "img.freepik.com", "polo6r.pl"]
|
|
25
|
-
},
|
|
26
|
-
integrations: [
|
|
27
|
-
// Enable Vue to support Vue3 components
|
|
28
|
-
vue(),
|
|
29
|
-
mdx(),
|
|
30
|
-
AstroPWA({
|
|
31
|
-
mode: 'production',
|
|
32
|
-
base: '/',
|
|
33
|
-
scope: '/',
|
|
34
|
-
includeAssets: ['favicon.svg', 'safari-pinned-tab.svg', 'brands/*.svg', 'fonts/*.woff2', 'fonts/*.svg', 'vw.svg', 'polo.blue.svg', 'spoko.space.svg'],
|
|
35
|
-
registerType: 'autoUpdate',
|
|
36
|
-
manifest: {
|
|
37
|
-
name: 'Spoko Design System',
|
|
38
|
-
short_name: 'SDS',
|
|
39
|
-
description: 'SDS PWA app description',
|
|
40
|
-
categories: ['multimedia'],
|
|
41
|
-
screenshots: [{
|
|
42
|
-
"src": "pwa-512x512.png",
|
|
43
|
-
"sizes": "512x512",
|
|
44
|
-
"platform": "windows",
|
|
45
|
-
"label": "SDS"
|
|
46
|
-
}],
|
|
47
|
-
theme_color: '#001e50',
|
|
48
|
-
icons: [{
|
|
49
|
-
src: 'pwa-192x192.png',
|
|
50
|
-
sizes: '192x192',
|
|
51
|
-
type: 'image/png'
|
|
52
|
-
}, {
|
|
53
|
-
src: 'pwa-512x512.png',
|
|
54
|
-
sizes: '512x512',
|
|
55
|
-
type: 'image/png'
|
|
56
|
-
}, {
|
|
57
|
-
src: 'pwa-512x512.png',
|
|
58
|
-
sizes: '512x512',
|
|
59
|
-
type: 'image/png',
|
|
60
|
-
purpose: 'any maskable'
|
|
61
|
-
}]
|
|
62
|
-
},
|
|
63
|
-
workbox: {
|
|
64
|
-
navigateFallback: '/',
|
|
65
|
-
globPatterns: ['**/*.{css,js,html,svg,png,ico,txt}']
|
|
66
|
-
},
|
|
67
|
-
devOptions: {
|
|
68
|
-
enabled: false,
|
|
69
|
-
navigateFallbackAllowlist: [/^\//]
|
|
70
|
-
},
|
|
71
|
-
experimental: {
|
|
72
|
-
directoryAndTrailingSlashHandler: true
|
|
73
|
-
}
|
|
74
|
-
}),
|
|
75
|
-
UnoCSS({
|
|
76
|
-
injectReset: true,
|
|
77
|
-
...unoConfig
|
|
78
|
-
}),
|
|
79
|
-
icon(iconConfig),
|
|
80
|
-
metaTags(),
|
|
81
|
-
(await import("@playform/inline")).default(),
|
|
82
|
-
pagefind(),
|
|
83
|
-
sitemap()
|
|
84
|
-
]
|
|
1
|
+
import { defineConfig, sharpImageService } from "astro/config";
|
|
2
|
+
import { iconConfig } from './icon.config';
|
|
3
|
+
import vue from "@astrojs/vue";
|
|
4
|
+
import mdx from '@astrojs/mdx';
|
|
5
|
+
import UnoCSS from '@unocss/astro';
|
|
6
|
+
import icon from "astro-icon";
|
|
7
|
+
import sitemap from "@astrojs/sitemap";
|
|
8
|
+
import pagefind from "astro-pagefind";
|
|
9
|
+
import AstroPWA from '@vite-pwa/astro';
|
|
10
|
+
import metaTags from "astro-meta-tags";
|
|
11
|
+
|
|
12
|
+
import { createSdsConfig } from './uno-config';
|
|
13
|
+
|
|
14
|
+
const unoConfig = createSdsConfig();
|
|
15
|
+
|
|
16
|
+
// https://astro.build/config
|
|
17
|
+
export default defineConfig({
|
|
18
|
+
site: "https://sds.spoko.space/",
|
|
19
|
+
server: {
|
|
20
|
+
port: 1234
|
|
21
|
+
},
|
|
22
|
+
image: {
|
|
23
|
+
service: sharpImageService(),
|
|
24
|
+
domains: ["placehold.co", "api.polo.blue", "polo.blue", "media.istockphoto.com", "freepik.com", "img.freepik.com", "polo6r.pl"]
|
|
25
|
+
},
|
|
26
|
+
integrations: [
|
|
27
|
+
// Enable Vue to support Vue3 components
|
|
28
|
+
vue(),
|
|
29
|
+
mdx(),
|
|
30
|
+
AstroPWA({
|
|
31
|
+
mode: 'production',
|
|
32
|
+
base: '/',
|
|
33
|
+
scope: '/',
|
|
34
|
+
includeAssets: ['favicon.svg', 'safari-pinned-tab.svg', 'brands/*.svg', 'fonts/*.woff2', 'fonts/*.svg', 'vw.svg', 'polo.blue.svg', 'spoko.space.svg'],
|
|
35
|
+
registerType: 'autoUpdate',
|
|
36
|
+
manifest: {
|
|
37
|
+
name: 'Spoko Design System',
|
|
38
|
+
short_name: 'SDS',
|
|
39
|
+
description: 'SDS PWA app description',
|
|
40
|
+
categories: ['multimedia'],
|
|
41
|
+
screenshots: [{
|
|
42
|
+
"src": "pwa-512x512.png",
|
|
43
|
+
"sizes": "512x512",
|
|
44
|
+
"platform": "windows",
|
|
45
|
+
"label": "SDS"
|
|
46
|
+
}],
|
|
47
|
+
theme_color: '#001e50',
|
|
48
|
+
icons: [{
|
|
49
|
+
src: 'pwa-192x192.png',
|
|
50
|
+
sizes: '192x192',
|
|
51
|
+
type: 'image/png'
|
|
52
|
+
}, {
|
|
53
|
+
src: 'pwa-512x512.png',
|
|
54
|
+
sizes: '512x512',
|
|
55
|
+
type: 'image/png'
|
|
56
|
+
}, {
|
|
57
|
+
src: 'pwa-512x512.png',
|
|
58
|
+
sizes: '512x512',
|
|
59
|
+
type: 'image/png',
|
|
60
|
+
purpose: 'any maskable'
|
|
61
|
+
}]
|
|
62
|
+
},
|
|
63
|
+
workbox: {
|
|
64
|
+
navigateFallback: '/',
|
|
65
|
+
globPatterns: ['**/*.{css,js,html,svg,png,ico,txt}']
|
|
66
|
+
},
|
|
67
|
+
devOptions: {
|
|
68
|
+
enabled: false,
|
|
69
|
+
navigateFallbackAllowlist: [/^\//]
|
|
70
|
+
},
|
|
71
|
+
experimental: {
|
|
72
|
+
directoryAndTrailingSlashHandler: true
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
UnoCSS({
|
|
76
|
+
injectReset: true,
|
|
77
|
+
...unoConfig
|
|
78
|
+
}),
|
|
79
|
+
icon(iconConfig),
|
|
80
|
+
metaTags(),
|
|
81
|
+
(await import("@playform/inline")).default(),
|
|
82
|
+
pagefind(),
|
|
83
|
+
sitemap()
|
|
84
|
+
]
|
|
85
85
|
});
|
package/commitlint.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
extends: ['@commitlint/config-conventional'],
|
|
3
|
-
};
|
|
1
|
+
export default {
|
|
2
|
+
extends: ['@commitlint/config-conventional'],
|
|
3
|
+
};
|