@warp-ds/elements 2.8.2-next.6 → 2.9.0-next.2

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.
Files changed (32) hide show
  1. package/dist/custom-elements.json +61 -9
  2. package/dist/index.d.ts +28 -8
  3. package/dist/packages/alert/alert.test.js +1 -1
  4. package/dist/packages/attention/attention.d.ts +0 -1
  5. package/dist/packages/attention/attention.js +507 -234
  6. package/dist/packages/attention/attention.js.map +4 -4
  7. package/dist/packages/button/button.d.ts +8 -17
  8. package/dist/packages/button/button.js +494 -221
  9. package/dist/packages/button/button.js.map +4 -4
  10. package/dist/packages/button/button.react.stories.d.ts +1 -1
  11. package/dist/packages/button/styles/w-button.styles.d.ts +1 -0
  12. package/dist/packages/button/styles/w-button.styles.js +282 -0
  13. package/dist/packages/datepicker/DatePicker.test.js +5 -5
  14. package/dist/packages/datepicker/datepicker.js +8 -15
  15. package/dist/packages/datepicker/datepicker.js.map +2 -2
  16. package/dist/packages/datepicker/styles/w-datepicker.styles.js +3 -9
  17. package/dist/packages/link/link.js +197 -217
  18. package/dist/packages/link/link.js.map +4 -4
  19. package/dist/packages/link/link.test.js +0 -14
  20. package/dist/packages/link/styles/w-link.styles.js +213 -0
  21. package/dist/packages/slider/slider.js +18 -17
  22. package/dist/packages/slider/slider.js.map +3 -3
  23. package/dist/packages/slider/slider.react.stories.js +6 -2
  24. package/dist/packages/slider/slider.stories.js +18 -12
  25. package/dist/packages/slider-thumb/slider-thumb.js +12 -12
  26. package/dist/packages/slider-thumb/slider-thumb.js.map +2 -2
  27. package/dist/web-types.json +22 -6
  28. package/package.json +20 -22
  29. package/dist/packages/link/styles.js +0 -236
  30. package/dist/packages/utils/index.d.ts +0 -10
  31. package/dist/packages/utils/index.js +0 -37
  32. /package/dist/packages/link/{styles.d.ts → styles/w-link.styles.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@warp-ds/elements",
4
- "version": "2.8.2-next.5",
4
+ "version": "2.9.0-next.1",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -181,13 +181,17 @@
181
181
  {
182
182
  "name": "variant",
183
183
  "value": {
184
- "type": "'negative' | 'primary' | 'secondary' | 'utility' | 'pill' | 'link'"
184
+ "type": "'negative' | 'primary' | 'secondary' | 'negativeQuiet' | 'utility' | 'quiet' | 'utilityQuiet' | 'overlay' | 'overlayInverted' | 'overlayQuiet' | 'overlayInvertedQuiet' | 'pill' | 'link'"
185
185
  }
186
186
  },
187
187
  {
188
188
  "name": "quiet",
189
189
  "value": { "type": "boolean", "default": "false" }
190
190
  },
191
+ {
192
+ "name": "icon-only",
193
+ "value": { "type": "boolean", "default": "false" }
194
+ },
191
195
  {
192
196
  "name": "small",
193
197
  "value": { "type": "boolean", "default": "false" }
@@ -198,6 +202,10 @@
198
202
  },
199
203
  { "name": "href", "value": { "type": "string" } },
200
204
  { "name": "target", "value": { "type": "string" } },
205
+ {
206
+ "name": "disabled",
207
+ "value": { "type": "boolean", "default": "false" }
208
+ },
201
209
  { "name": "rel", "value": { "type": "string" } },
202
210
  {
203
211
  "name": "full-width",
@@ -214,13 +222,15 @@
214
222
  { "name": "autofocus", "type": "boolean" },
215
223
  {
216
224
  "name": "variant",
217
- "type": "'negative' | 'primary' | 'secondary' | 'utility' | 'pill' | 'link'"
225
+ "type": "'negative' | 'primary' | 'secondary' | 'negativeQuiet' | 'utility' | 'quiet' | 'utilityQuiet' | 'overlay' | 'overlayInverted' | 'overlayQuiet' | 'overlayInvertedQuiet' | 'pill' | 'link'"
218
226
  },
219
227
  { "name": "quiet", "type": "boolean" },
228
+ { "name": "iconOnly", "type": "boolean" },
220
229
  { "name": "small", "type": "boolean" },
221
230
  { "name": "loading", "type": "boolean" },
222
231
  { "name": "href", "type": "string" },
223
232
  { "name": "target", "type": "string" },
233
+ { "name": "disabled", "type": "boolean" },
224
234
  { "name": "rel", "type": "string" },
225
235
  { "name": "fullWidth", "type": "boolean" },
226
236
  { "name": "buttonClass", "type": "string" },
@@ -1436,7 +1446,7 @@
1436
1446
  },
1437
1447
  {
1438
1448
  "name": "w-slider-thumb",
1439
- "description": "Component to place inside a `<w-slider>`.\n\n[See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-slider-and-range-slider--docs)\n---\n\n\n### **Events:**\n - **slidervalidity**",
1449
+ "description": "Component to place inside a `<w-slider>`.\n\n[See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-slider-and-range-slider--docs)\n---\n\n\n### **Events:**\n - **thumbreset**\n- **slidervalidity**",
1440
1450
  "doc-url": "",
1441
1451
  "attributes": [
1442
1452
  { "name": "aria-label", "value": { "type": "string" } },
@@ -1445,7 +1455,10 @@
1445
1455
  { "name": "value", "value": { "type": "string" } },
1446
1456
  { "name": "placeholder", "value": { "type": "string" } }
1447
1457
  ],
1448
- "events": [{ "name": "slidervalidity", "type": "CustomEvent" }],
1458
+ "events": [
1459
+ { "name": "thumbreset", "type": "CustomEvent" },
1460
+ { "name": "slidervalidity", "type": "CustomEvent" }
1461
+ ],
1449
1462
  "js": {
1450
1463
  "properties": [
1451
1464
  { "name": "ariaLabel", "type": "string" },
@@ -1468,7 +1481,10 @@
1468
1481
  },
1469
1482
  { "name": "ariaDescriptionText" }
1470
1483
  ],
1471
- "events": [{ "name": "slidervalidity", "type": "CustomEvent" }]
1484
+ "events": [
1485
+ { "name": "thumbreset", "type": "CustomEvent" },
1486
+ { "name": "slidervalidity", "type": "CustomEvent" }
1487
+ ]
1472
1488
  }
1473
1489
  },
1474
1490
  {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@warp-ds/elements",
3
3
  "type": "module",
4
- "version": "2.8.2-next.6",
5
- "packageManager": "pnpm@10.30.3",
4
+ "version": "2.9.0-next.2",
5
+ "packageManager": "pnpm@10.33.0",
6
6
  "description": "Custom elements for Warp",
7
7
  "exports": {
8
8
  ".": {
@@ -319,25 +319,23 @@
319
319
  "@rollup/plugin-commonjs": "^29.0.0",
320
320
  "@rollup/plugin-node-resolve": "^16.0.1",
321
321
  "@rollup/plugin-replace": "^6.0.2",
322
- "@rollup/plugin-terser": "^0.4.4",
322
+ "@rollup/plugin-terser": "^1.0.0",
323
323
  "@semantic-release/changelog": "6.0.3",
324
324
  "@semantic-release/git": "10.0.1",
325
- "@storybook/addon-a11y": "^9.1.4",
326
- "@storybook/addon-docs": "^9.1.4",
327
- "@storybook/addon-essentials": "^8.6.14",
328
- "@storybook/addon-interactions": "^8.6.14",
329
- "@storybook/builder-vite": "^9.1.4",
330
- "@storybook/react": "^9.1.10",
331
- "@storybook/react-vite": "^9.1.10",
332
- "@storybook/web-components": "^9.1.4",
333
- "@storybook/web-components-vite": "^9.1.4",
325
+ "@storybook/addon-a11y": "^10.3.5",
326
+ "@storybook/addon-docs": "^10.3.5",
327
+ "@storybook/builder-vite": "^10.3.5",
328
+ "@storybook/react": "^10.3.5",
329
+ "@storybook/react-vite": "^10.3.5",
330
+ "@storybook/web-components": "^10.3.5",
331
+ "@storybook/web-components-vite": "^10.3.5",
334
332
  "@types/node": "24.10.15",
335
333
  "@types/react": "^19.2.0",
336
334
  "@types/react-dom": "^19.2.0",
337
- "@unocss/core": "^66.5.0",
338
- "@vitejs/plugin-react": "^5.0.2",
339
- "@vitest/browser": "^3.2.4",
340
- "@vitest/utils": "^3.2.4",
335
+ "@vitejs/plugin-react": "^6.0.1",
336
+ "@vitest/browser": "^4.1.4",
337
+ "@vitest/browser-playwright": "^4.1.4",
338
+ "@vitest/utils": "^4.1.4",
341
339
  "@warp-ds/core": "1.1.8",
342
340
  "@warp-ds/css": "2.1.1",
343
341
  "@warp-ds/uno": "2.1.0",
@@ -366,14 +364,14 @@
366
364
  "rollup": "^4.52.3",
367
365
  "scroll-doctor": "2.0.2",
368
366
  "semantic-release": "25.0.3",
369
- "storybook": "^9.1.4",
367
+ "storybook": "^10.3.5",
370
368
  "tslib": "^2.8.1",
371
369
  "typescript": "5.5.3",
372
- "unocss": "0.x",
373
- "vite": "^6.0.0",
374
- "vitest": "^3.2.4",
375
- "vitest-browser-lit": "^0.1.0",
376
- "vitest-browser-react": "^1.0.1"
370
+ "unocss": "^66.6.8",
371
+ "vite": "^8.0.8",
372
+ "vitest": "^4.1.4",
373
+ "vitest-browser-lit": "^1.0.1",
374
+ "vitest-browser-react": "^2.2.0"
377
375
  },
378
376
  "dependencies": {
379
377
  "@lit/react": "^1.0.8",
@@ -1,236 +0,0 @@
1
- import { css } from 'lit';
2
- export const styles = css `.w-button,
3
- .w-button--secondary {
4
- /* Local scoped variables, given the default button (the secondary variant) as a default */
5
- --_background: var(--background, var(--w-s-color-background));
6
- --_background-hover: var(--background-hover, var(--w-s-color-background-hover));
7
- --_background-active: var(--background-active, var(--w-s-color-background-active));
8
- --_text-color: var(--color, var(--w-s-color-text-link));
9
- --_border-width: var(--border-width, 2px);
10
- --_border: var(--border, var(--w-s-color-border));
11
- --_border-hover: var(--border-hover, var(--w-s-color-border-hover));
12
- --_border-active: var(--border-active, var(--w-s-color-border-active));
13
- --_border-radius: var(--w-button-radius-default, 8px);
14
- --_font-size: var(--font-size, var(--w-font-size-m));
15
- --_line-height: var(--line-height, var(--w-line-height-m));
16
- --_font-weight: var(--font-weight, bold);
17
- --_padding-x: var(--padding-x, 16px);
18
- --_padding-y: var(--padding-y, 13px);
19
-
20
- /* Base setup for all buttons */
21
- display: inline-flex;
22
- justify-content: center;
23
- align-items: center;
24
- text-align: center;
25
- cursor: pointer;
26
- transition:
27
- color 150ms cubic-bezier(0.4, 0, 0.2, 1),
28
- background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
29
- border-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
30
- fill 150ms cubic-bezier(0.4, 0, 0.2, 1),
31
- stroke 150ms cubic-bezier(0.4, 0, 0.2, 1);
32
-
33
- /* Hook the local vars up to the button stuff */
34
- background-color: var(--_background);
35
- color: var(--_text-color);
36
- border: var(--_border-width) solid var(--_border);
37
- border-radius: var(--_border-radius);
38
- padding: calc(var(--_padding-y) - var(--_border-width)) calc(var(--_padding-x) - var(--_border-width));
39
- font-size: var(--_font-size);
40
- line-height: var(--_line-height);
41
- font-weight: var(--_font-weight);
42
- }
43
-
44
- .w-button:hover {
45
- background-color: var(--_background-hover);
46
- border-color: var(--_border-hover);
47
- }
48
-
49
- .w-button:active {
50
- background-color: var(--_background-active);
51
- border-color: var(--_border-active);
52
- }
53
-
54
- .w-button:focus-visible {
55
- outline: 2px solid var(--w-s-color-border-focus);
56
- outline-offset: var(--w-outline-offset, 1px);
57
- }
58
-
59
- /* Variants config */
60
- .w-button--primary {
61
- --background: var(--w-color-button-primary-background);
62
- --background-hover: var(--w-color-button-primary-background-hover);
63
- --background-active: var(--w-color-button-primary-background-active);
64
- --color: var(--w-s-color-text-inverted);
65
- --border-width: 0px;
66
- }
67
- .w-button--negative {
68
- --background: var(--w-s-color-background-negative);
69
- --background-hover: var(--w-s-color-background-negative-hover);
70
- --background-active: var(--w-s-color-background-negative-active);
71
- --color: var(--w-s-color-text-inverted);
72
- --border-width: 0px;
73
- }
74
- .w-button--negative-quiet {
75
- --background: transparent;
76
- --background-hover: var(--w-s-color-background-negative-subtle-hover);
77
- --background-active: var(--w-s-color-background-negative-subtle-active);
78
- --color: var(--w-s-color-text-negative);
79
- --border-width: 0px;
80
- }
81
- .w-button--utility {
82
- --background: var(--w-s-color-background);
83
- --background-hover: var(--w-s-color-background-hover);
84
- --background-active: var(--w-s-color-background-active);
85
- --color: var(--w-s-color-text);
86
- --border-radius: var(--w-button-radius-utility, 4px);
87
- --border-width: 1px;
88
- }
89
- .w-button--utility-quiet {
90
- --background: transparent;
91
- --color: var(--w-s-color-text);
92
- --border-width: 0px;
93
- }
94
- .w-button--quiet {
95
- --background: transparent;
96
- --border-width: 0px;
97
- }
98
- .w-button--overlay {
99
- --background: var(--w-color-background);
100
- --background-hover: var(--w-color-background-hover);
101
- --background-active: var(--w-color-background-active);
102
- --color: var(--w-s-color-text);
103
- --border-radius: 9999px;
104
- --border-width: 0px;
105
- }
106
- .w-button--overlay-quiet {
107
- --background: transparent;
108
- --background-hover: var(--w-s-color-background-hover);
109
- --background-active: var(--w-s-color-background-active);
110
- --color: var(--w-s-color-text);
111
- --border-radius: 9999px;
112
- --border-width: 0px;
113
- }
114
- .w-button--overlay-inverted {
115
- --background: var(--w-s-color-background-inverted);
116
- --background-hover: var(--w-s-color-background-inverted-hover);
117
- --background-active: var(--w-s-color-background-inverted-active);
118
- --color: var(--w-s-color-text-inverted);
119
- --border-radius: 9999px;
120
- --border-width: 0px;
121
- }
122
- .w-button--overlay-inverted-quiet {
123
- --background: transparent;
124
- --background-hover: var(--w-s-color-background-inverted-hover);
125
- --background-active: var(--w-s-color-background-inverted-active);
126
- --color: var(--w-s-color-text-inverted);
127
- --border-radius: 9999px;
128
- --border-width: 0px;
129
- }
130
-
131
- .w-button--link {
132
- --background: none;
133
- --background-hover: none;
134
- --background-active: none;
135
- --border-width: 0;
136
- --font-weight: normal;
137
- display: inline;
138
- }
139
- .w-button--overlay {
140
- --background: var(--w-color-background);
141
- --background-hover: var(--w-color-background-hover);
142
- --background-active: var(--w-color-background-active);
143
- --color: var(--w-s-color-text);
144
- --border-radius: 9999px;
145
- --border-width: 0px;
146
- }
147
- .w-button--overlay-quiet {
148
- --background: transparent;
149
- --background-hover: var(--w-s-color-background-hover);
150
- --background-active: var(--w-s-color-background-active);
151
- --color: var(--w-s-color-text);
152
- --border-radius: 9999px;
153
- --border-width: 0px;
154
- }
155
- .w-button--overlay-inverted {
156
- --background: var(--w-s-color-background-inverted);
157
- --background-hover: var(--w-s-color-background-inverted-hover);
158
- --background-active: var(--w-s-color-background-inverted-active);
159
- --color: var(--w-s-color-text-inverted);
160
- --border-radius: 9999px;
161
- --border-width: 0px;
162
- }
163
- .w-button--overlay-inverted-quiet {
164
- --background: transparent;
165
- --background-hover: var(--w-s-color-background-inverted-hover);
166
- --background-active: var(--w-s-color-background-inverted-active);
167
- --color: var(--w-s-color-text-inverted);
168
- --border-radius: 9999px;
169
- --border-width: 0px;
170
- }
171
-
172
- /* States config, selects --loading as well since loading is always supposed to be disabled */
173
- .w-button:disabled,
174
- .w-button--disabled,
175
- .w-button--loading {
176
- --background: var(--w-s-color-background-disabled);
177
- --background-hover: var(--w-s-color-background-disabled);
178
- --background-active: var(--w-s-color-background-disabled);
179
- --color: var(--w-s-color-text-inverted);
180
- --border-width: 0px;
181
- pointer-events: none;
182
- }
183
-
184
- .w-button--link:hover {
185
- text-decoration: underline;
186
- }
187
-
188
- /* Sizes config */
189
- .w-button--small {
190
- --padding-x: 12px;
191
- --padding-y: 8px;
192
- --font-size: var(--w-font-size-xs);
193
- --line-height: var(--w-line-height-xs);
194
- }
195
-
196
- /* Width config */
197
- .w-button--full-width {
198
- width: 100%;
199
- max-width: 100%;
200
- }
201
-
202
- .w-button--has-icon-only {
203
- width: auto;
204
- max-width: none;
205
- --_padding-x: var(--_padding-y);
206
- aspect-ratio: 1 / 1;
207
- }
208
-
209
- a.w-button {
210
- text-decoration: none !important;
211
- }
212
-
213
- /* Copy of loading animation from warp */
214
- .w-button--loading {
215
- background-image: linear-gradient(
216
- 135deg,
217
- rgba(0, 0, 0, 0.05) 25%,
218
- transparent 25%,
219
- transparent 50%,
220
- rgba(0, 0, 0, 0.05) 50%,
221
- rgba(0, 0, 0, 0.05) 75%,
222
- transparent 75%,
223
- transparent
224
- );
225
- background-size: 30px 30px;
226
- animation: animate-inprogress 3s linear infinite;
227
- }
228
-
229
- @keyframes animate-inprogress {
230
- 0% {
231
- background-position: 0 0;
232
- }
233
- 100% {
234
- background-position: 60px 0;
235
- }
236
- }`;
@@ -1,10 +0,0 @@
1
- export function kebabCaseAttributes(constructor: any): {
2
- new (): {
3
- [x: string]: any;
4
- };
5
- [x: string]: any;
6
- createProperty(name: any, options: any): void;
7
- };
8
- export function classes(defn: any): string;
9
- export function fclasses(definition: any): import("lit/async-directive.js").DirectiveResult<typeof import("lit/directives/class-map.js").ClassMapDirective>;
10
- export function generateRandomId(): string;
@@ -1,37 +0,0 @@
1
- import { classMap } from 'lit/directives/class-map.js';
2
- const camelCaseToKebabCase = (str) => str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
3
- // Source: https://medium.com/@dayton-bobbitt/generating-attributes-for-litelement-properties-f972ef658137
4
- export function kebabCaseAttributes(constructor) {
5
- return class extends constructor {
6
- static createProperty(name, options) {
7
- let customOptions = options;
8
- // derive the attribute name if not already defined or disabled
9
- if (typeof options?.attribute === 'undefined' || options?.attribute === true) {
10
- customOptions = Object.assign({}, options, {
11
- attribute: camelCaseToKebabCase(name.toString()),
12
- });
13
- }
14
- super.createProperty(name, customOptions);
15
- }
16
- };
17
- }
18
- export function classes(defn) {
19
- const classes = [];
20
- for (const [key, value] of Object.entries(defn)) {
21
- if (value)
22
- classes.push(key);
23
- }
24
- return classes.join(' ');
25
- }
26
- export function fclasses(definition) {
27
- const defn = {};
28
- for (const [key, value] of Object.entries(definition)) {
29
- for (const className of key.split(' ')) {
30
- defn[className] = value;
31
- }
32
- }
33
- return classMap(defn);
34
- }
35
- export function generateRandomId() {
36
- return `m${Math.random().toString(36).slice(2)}`;
37
- }