@justeattakeaway/pie-button 0.23.0 → 0.24.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/.eslintignore +2 -0
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +23 -0
- package/README.md +8 -8
- package/dist/index.js +53 -44
- package/dist/types/packages/components/pie-button/src/defs.d.ts +1 -1
- package/dist/types/packages/components/pie-button/src/defs.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/button.scss +58 -28
- package/src/defs.ts +3 -1
package/.eslintignore
CHANGED
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
[
|
|
1
|
+
[2:03:50 PM] @custom-elements-manifest/analyzer: Created new manifest.
|
|
2
2
|
react wrapper has been added!
|
|
3
3
|
[36mvite v4.3.9 [32mbuilding for production...[36m[39m
|
|
4
4
|
transforming...
|
|
5
5
|
[32m✓[39m 22 modules transformed.
|
|
6
6
|
rendering chunks...
|
|
7
7
|
computing gzip size...
|
|
8
|
-
[2mdist/[22m[36mindex.js [39m[1m[
|
|
8
|
+
[2mdist/[22m[36mindex.js [39m[1m[2m14.78 kB[22m[1m[22m[2m │ gzip: 2.72 kB[22m
|
|
9
9
|
[2mdist/[22m[36mreact.js [39m[1m[2m59.01 kB[22m[1m[22m[2m │ gzip: 15.91 kB[22m
|
|
10
10
|
[32m
|
|
11
11
|
[36m[vite:dts][32m Start generate declaration files...[39m
|
|
12
|
-
[32m✓ built in
|
|
13
|
-
[32m[36m[vite:dts][32m Declaration files built in
|
|
12
|
+
[32m✓ built in 46.23s[39m
|
|
13
|
+
[32m[36m[vite:dts][32m Declaration files built in 42885ms.
|
|
14
14
|
[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.24.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [Changed] - use latest pie-design-tokens ([#716](https://github.com/justeattakeaway/pie/pull/716)) by [@xander-marjoram](https://github.com/xander-marjoram)
|
|
8
|
+
|
|
9
|
+
## 0.24.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [Added] - destructive and destructive-ghost button variants ([#686](https://github.com/justeattakeaway/pie/pull/686)) by [@xander-marjoram](https://github.com/xander-marjoram)
|
|
14
|
+
|
|
15
|
+
[Fixed] - hover and active colours for ghost-inverse variant
|
|
16
|
+
[Added] - mixin for reassigning button spinner HSL custom properties
|
|
17
|
+
|
|
18
|
+
- [Added] - `font-size` function added & tests ([#681](https://github.com/justeattakeaway/pie/pull/681)) by [@ashleynolan](https://github.com/ashleynolan)
|
|
19
|
+
|
|
20
|
+
[Added] - adding pie-css to pie-button
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- [Changed] - use latest pie-design-tokens ([#694](https://github.com/justeattakeaway/pie/pull/694)) by [@xander-marjoram](https://github.com/xander-marjoram)
|
|
25
|
+
|
|
3
26
|
## 0.23.0
|
|
4
27
|
|
|
5
28
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -65,14 +65,14 @@ import { PieButton } from '@justeattakeaway/pie-button/dist/react';
|
|
|
65
65
|
|
|
66
66
|
## Props
|
|
67
67
|
|
|
68
|
-
| Property | Type | Default
|
|
69
|
-
|
|
70
|
-
| size | `String` | `medium`
|
|
71
|
-
| type | `String` | `submit`
|
|
72
|
-
| variant | `String` | `primary`
|
|
73
|
-
| disabled | `Boolean` | `false`
|
|
74
|
-
| isFullWidth | `Boolean` | `false`
|
|
75
|
-
| isLoading | `Boolean` | `false`
|
|
68
|
+
| Property | Type | Default | Description |
|
|
69
|
+
|-------------|-----------|-----------|-------------------------------------------------------------------------------------------------------------------|
|
|
70
|
+
| size | `String` | `medium` | Size of the button, one of `sizes` – `xsmall`, `small-expressive`, `small-productive`, `medium`, `large` |
|
|
71
|
+
| type | `String` | `submit` | Type of the button, one of `types` – `submit`, `button`, `reset`, `menu` |
|
|
72
|
+
| variant | `String` | `primary` | Variant of the button, one of `variants` – `primary`, `secondary`, `outline`, `ghost`, `destructive`, `destructive-ghost`, `inverse`, `ghost-inverse` |
|
|
73
|
+
| disabled | `Boolean` | `false` | If `true`, disables the button. |
|
|
74
|
+
| isFullWidth | `Boolean` | `false` | If `true`, sets the button width to 100% of its container. |
|
|
75
|
+
| isLoading | `Boolean` | `false` | If `true`, displays a loading indicator inside the button. |
|
|
76
76
|
|
|
77
77
|
In your markup or JSX, you can then use these to set the properties for the `pie-button` component:
|
|
78
78
|
|
package/dist/index.js
CHANGED
|
@@ -1,30 +1,39 @@
|
|
|
1
|
-
import { unsafeCSS as h, LitElement as
|
|
2
|
-
import { property as
|
|
1
|
+
import { unsafeCSS as h, LitElement as m, html as f } from "lit";
|
|
2
|
+
import { property as c } from "lit/decorators.js";
|
|
3
3
|
import "lit/decorators/property.js";
|
|
4
|
-
const b = (l, r, t) => function(o,
|
|
5
|
-
const
|
|
6
|
-
Object.defineProperty(o,
|
|
4
|
+
const b = (l, r, t) => function(o, e) {
|
|
5
|
+
const i = `#${e}`;
|
|
6
|
+
Object.defineProperty(o, e, {
|
|
7
7
|
get() {
|
|
8
|
-
return this[
|
|
8
|
+
return this[i];
|
|
9
9
|
},
|
|
10
10
|
set(v) {
|
|
11
|
-
const p = this[
|
|
12
|
-
r.includes(v) ? this[
|
|
13
|
-
`<${l}> Invalid value "${v}" provided for property "${
|
|
11
|
+
const p = this[i];
|
|
12
|
+
r.includes(v) ? this[i] = v : (console.error(
|
|
13
|
+
`<${l}> Invalid value "${v}" provided for property "${e}".`,
|
|
14
14
|
`Must be one of: ${r.join(" | ")}.`,
|
|
15
15
|
`Falling back to default value: "${t}"`
|
|
16
|
-
), this[
|
|
16
|
+
), this[i] = t), this.requestUpdate(e, p);
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
-
}, m = `*,*:before,*:after{box-sizing:border-box}@keyframes rotate360{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.o-btn{--btn-border-radius: var(--dt-radius-rounded-e);--btn-font-family: var(--dt-font-interactive-m-family);--btn-font-weight: var(--dt-font-interactive-m-weight);--btn-padding: 10px var(--dt-spacing-e);--btn-font-size: calc(var(--dt-font-size-20) * 1px);--btn-line-height: calc(var(--dt-font-size-20-line-height) * 1px);--btn-bg-color: var(--dt-color-interactive-brand);--btn-text-color: var(--dt-color-content-interactive-primary);--btn-icon-size: 24px;--spinner-size-s: 20px;--spinner-size-m: 24px;--spinner-border-width-s: 2.5px;--spinner-border-width-m: 3px;--spinner-size: var(--spinner-size-m);--spinner-border-width: var(--spinner-border-width-m);--spinner-base-color-h: var(--dt-color-content-interactive-primary-h);--spinner-base-color-s: var(--dt-color-content-interactive-primary-s);--spinner-base-color-l: var(--dt-color-content-interactive-primary-l);--spinner-left-color-opacity: .35;--spinner-left-color: hsl(var(--spinner-base-color-h), var(--spinner-base-color-s), var(--spinner-base-color-l), var(--spinner-left-color-opacity));--spinner-right-color: hsl(var(--spinner-base-color-h), var(--spinner-base-color-s), var(--spinner-base-color-l), 1);--spinner-animation-duration: 1.15s;--spinner-animation-timing-function: linear;--spinner-animation-iteration-count: infinite;position:relative;display:flex;gap:var(--dt-spacing-b);align-items:center;justify-content:center;box-sizing:border-box;padding:var(--btn-padding);border:none;border-radius:var(--btn-border-radius);outline:none;background-color:var(--btn-bg-color);font-family:var(--btn-font-family);font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);color:var(--btn-text-color);line-height:var(--btn-line-height);cursor:pointer;user-select:none;inline-size:var(--btn-inline-size);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased}.o-btn:focus-visible{box-shadow:0 0 0 2px var(--dt-color-focus-inner);outline:none;position:relative}.o-btn:focus-visible:after{content:"";display:block;position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;border-radius:var(--btn-border-radius);box-shadow:0 0 0 2px var(--dt-color-focus-outer)}.o-btn[variant=primary]:hover:not(:disabled){background-color:hsl(var(--dt-color-interactive-brand-h),var(--dt-color-interactive-brand-s),calc(var(--dt-color-interactive-brand-l) - var(--dt-color-hover-01)))}.o-btn[variant=primary]:active:not(:disabled){background-color:hsl(var(--dt-color-interactive-brand-h),var(--dt-color-interactive-brand-s),calc(var(--dt-color-interactive-brand-l) - var(--dt-color-active-01)))}.o-btn[variant=primary][size=xsmall],.o-btn[variant=primary][size=small-productive]{--btn-bg-color: var(--dt-color-interactive-primary)}.o-btn[variant=primary][size=xsmall]:hover:not(:disabled),.o-btn[variant=primary][size=small-productive]:hover:not(:disabled){background-color:hsl(var(--dt-color-interactive-primary-h),var(--dt-color-interactive-primary-s),calc(var(--dt-color-interactive-primary-l) - var(--dt-color-hover-01)))}.o-btn[variant=primary][size=xsmall]:active:not(:disabled),.o-btn[variant=primary][size=small-productive]:active:not(:disabled){background-color:hsl(var(--dt-color-interactive-primary-h),var(--dt-color-interactive-primary-s),calc(var(--dt-color-interactive-primary-l) - var(--dt-color-active-01)))}.o-btn[variant=secondary]{--btn-bg-color: var(--dt-color-interactive-secondary);--btn-text-color: var(--dt-color-content-interactive-secondary);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=secondary]:hover:not(:disabled){background-color:hsl(var(--dt-color-interactive-secondary-h),var(--dt-color-interactive-secondary-s),calc(var(--dt-color-interactive-secondary-l) - var(--dt-color-hover-01)))}.o-btn[variant=secondary]:active:not(:disabled){background-color:hsl(var(--dt-color-interactive-secondary-h),var(--dt-color-interactive-secondary-s),calc(var(--dt-color-interactive-secondary-l) - var(--dt-color-active-01)))}.o-btn[variant=outline]{--btn-bg-color: var(--dt-color-container-default);--btn-text-color: var(--dt-color-content-interactive-secondary);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l);border:1px solid var(--dt-color-border-strong)}.o-btn[variant=outline]:hover:not(:disabled){background-color:hsl(var(--dt-color-container-default-h),var(--dt-color-container-default-s),calc(var(--dt-color-container-default-l) - var(--dt-color-hover-01)))}.o-btn[variant=outline]:active:not(:disabled){background-color:hsl(var(--dt-color-container-default-h),var(--dt-color-container-default-s),calc(var(--dt-color-container-default-l) - var(--dt-color-active-01)))}.o-btn[variant=ghost]{--btn-bg-color: transparent;--btn-text-color: var(--dt-color-content-link);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=ghost]:hover:not(:disabled){background-color:hsl(var(--dt-color-container-default-h),var(--dt-color-container-default-s),calc(var(--dt-color-container-default-l) - var(--dt-color-hover-01)))}.o-btn[variant=ghost]:active:not(:disabled){background-color:hsl(var(--dt-color-container-default-h),var(--dt-color-container-default-s),calc(var(--dt-color-container-default-l) - var(--dt-color-active-01)))}.o-btn[variant=inverse]{--btn-bg-color: var(--dt-color-interactive-inverse);--btn-text-color: var(--dt-color-content-interactive-secondary);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=inverse]:hover:not(:disabled){background-color:hsl(var(--dt-color-interactive-inverse-h),var(--dt-color-interactive-inverse-s),calc(var(--dt-color-interactive-inverse-l) - var(--dt-color-hover-01)))}.o-btn[variant=inverse]:active:not(:disabled){background-color:hsl(var(--dt-color-interactive-inverse-h),var(--dt-color-interactive-inverse-s),calc(var(--dt-color-interactive-inverse-l) - var(--dt-color-active-01)))}.o-btn[variant=ghost-inverse]{--btn-bg-color: transparent;--btn-text-color: var(--dt-color-content-interactive-primary);--spinner-base-color-h: var(--dt-color-content-interactive-primary-h);--spinner-base-color-s: var(--dt-color-content-interactive-primary-s);--spinner-base-color-l: var(--dt-color-content-interactive-primary-l)}.o-btn[variant=ghost-inverse]:hover:not(:disabled){background-color:hsl(var(--dt-color-container-inverse-h),var(--dt-color-container-inverse-s),calc(var(--dt-color-container-inverse-l) - var(--dt-color-hover-01)))}.o-btn[variant=ghost-inverse]:active:not(:disabled){background-color:hsl(var(--dt-color-container-inverse-h),var(--dt-color-container-inverse-s),calc(var(--dt-color-container-inverse-l) - var(--dt-color-active-01)))}.o-btn[isFullWidth]{--btn-inline-size: 100%}.o-btn[disabled]{--btn-text-color: var(--dt-color-content-disabled) !important;cursor:not-allowed}.o-btn[disabled]:not([variant=ghost],[variant=ghost-inverse]){--btn-bg-color: var(--dt-color-disabled-01) !important}.o-btn[disabled][variant=outline]{border-color:var(--dt-color-disabled-01)!important}.o-btn[size=xsmall]{--btn-padding: 6px var(--dt-spacing-b);--btn-font-size: calc(var(--dt-font-size-14) * 1px);--btn-line-height: calc(var(--dt-font-size-14-line-height) * 1px);--btn-icon-size: 16px;--spinner-size: var(--spinner-size-s);--spinner-border-width: var(--spinner-border-width-s)}.o-btn[size=small-expressive]{--btn-padding: 6px var(--dt-spacing-d);--btn-font-size: calc(var(--dt-font-size-20) * 1px);--btn-line-height: calc(var(--dt-font-size-20-line-height) * 1px);--btn-icon-size: 20px;--spinner-size: var(--spinner-size-s);--spinner-border-width: var(--spinner-border-width-s)}.o-btn[size=small-productive]{--btn-padding: 8px var(--dt-spacing-d);--btn-font-size: calc(var(--dt-font-size-16) * 1px);--btn-line-height: calc(var(--dt-font-size-16-line-height) * 1px);--btn-icon-size: 20px;--spinner-size: var(--spinner-size-s);--spinner-border-width: var(--spinner-border-width-s)}.o-btn[size=large]{--btn-padding: 14px var(--dt-spacing-e);--btn-font-size: calc(var(--dt-font-size-20) * 1px);--btn-line-height: calc(var(--dt-font-size-20-line-height) * 1px);--spinner-size: var(--spinner-size-m);--spinner-border-width: var(--spinner-border-width-m)}.o-btn:before{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;height:var(--spinner-size);width:var(--spinner-size);display:block;background-color:transparent;border-radius:50%;border-color:var(--spinner-left-color) var(--spinner-right-color) var(--spinner-right-color) var(--spinner-left-color);border-width:var(--spinner-border-width);border-style:solid;will-change:transform;opacity:0}.o-btn .o-btn-text{flex-grow:1}.o-btn[isLoading]:before{animation:rotate360 var(--spinner-animation-duration) var(--spinner-animation-timing-function) var(--spinner-animation-iteration-count);opacity:1}.o-btn[isLoading] .o-btn-text{opacity:0}::slotted(svg){height:var(--btn-icon-size);width:var(--btn-icon-size)}
|
|
20
|
-
`,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
}, g = `*,*:before,*:after{box-sizing:border-box}@keyframes rotate360{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.o-btn{--btn-border-radius: var(--dt-radius-rounded-e);--btn-font-family: var(--dt-font-interactive-m-family);--btn-font-weight: var(--dt-font-interactive-m-weight);--btn-padding: 10px var(--dt-spacing-e);--btn-font-size: calc(var(--dt-font-size-20) * 1px);--btn-line-height: calc(var(--dt-font-size-20-line-height) * 1px);--btn-bg-color: var(--dt-color-interactive-brand);--btn-text-color: var(--dt-color-content-interactive-primary);--btn-icon-size: 24px;--spinner-size-s: 20px;--spinner-size-m: 24px;--spinner-border-width-s: 2.5px;--spinner-border-width-m: 3px;--spinner-size: var(--spinner-size-m);--spinner-border-width: var(--spinner-border-width-m);--spinner-base-color-h: var(--dt-color-content-interactive-primary-h);--spinner-base-color-s: var(--dt-color-content-interactive-primary-s);--spinner-base-color-l: var(--dt-color-content-interactive-primary-l);--spinner-left-color-opacity: .35;--spinner-left-color: hsl(var(--spinner-base-color-h), var(--spinner-base-color-s), var(--spinner-base-color-l), var(--spinner-left-color-opacity));--spinner-right-color: hsl(var(--spinner-base-color-h), var(--spinner-base-color-s), var(--spinner-base-color-l), 1);--spinner-animation-duration: 1.15s;--spinner-animation-timing-function: linear;--spinner-animation-iteration-count: infinite;position:relative;display:flex;gap:var(--dt-spacing-b);align-items:center;justify-content:center;box-sizing:border-box;padding:var(--btn-padding);border:none;border-radius:var(--btn-border-radius);outline:none;background-color:var(--btn-bg-color);font-family:var(--btn-font-family);font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);color:var(--btn-text-color);line-height:var(--btn-line-height);cursor:pointer;user-select:none;inline-size:var(--btn-inline-size);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased}.o-btn:focus-visible{box-shadow:0 0 0 2px var(--dt-color-focus-inner);outline:none;position:relative}.o-btn:focus-visible:after{content:"";display:block;position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;border-radius:var(--btn-border-radius);box-shadow:0 0 0 2px var(--dt-color-focus-outer)}.o-btn[variant=primary]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-interactive-brand-h), var(--dt-color-interactive-brand-s), calc(var(--dt-color-interactive-brand-l) + var(--hover-modifier)))}.o-btn[variant=primary]:active:not(:disabled),.o-btn[variant=primary][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-interactive-brand-h), var(--dt-color-interactive-brand-s), calc(var(--dt-color-interactive-brand-l) + var(--active-modifier)))}.o-btn[variant=primary][size=xsmall],.o-btn[variant=primary][size=small-productive]{--btn-bg-color: var(--dt-color-interactive-primary)}.o-btn[variant=primary][size=xsmall]:hover:not(:disabled),.o-btn[variant=primary][size=small-productive]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-interactive-primary-h), var(--dt-color-interactive-primary-s), calc(var(--dt-color-interactive-primary-l) + var(--hover-modifier)))}.o-btn[variant=primary][size=xsmall]:active:not(:disabled),.o-btn[variant=primary][size=xsmall][isLoading]:not(:disabled),.o-btn[variant=primary][size=small-productive]:active:not(:disabled),.o-btn[variant=primary][size=small-productive][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-interactive-primary-h), var(--dt-color-interactive-primary-s), calc(var(--dt-color-interactive-primary-l) + var(--active-modifier)))}.o-btn[variant=secondary]{--btn-bg-color: var(--dt-color-interactive-secondary);--btn-text-color: var(--dt-color-content-interactive-secondary);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=secondary]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-interactive-secondary-h), var(--dt-color-interactive-secondary-s), calc(var(--dt-color-interactive-secondary-l) + var(--hover-modifier)))}.o-btn[variant=secondary]:active:not(:disabled),.o-btn[variant=secondary][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-interactive-secondary-h), var(--dt-color-interactive-secondary-s), calc(var(--dt-color-interactive-secondary-l) + var(--active-modifier)))}.o-btn[variant=outline]{--btn-bg-color: var(--dt-color-container-default);--btn-text-color: var(--dt-color-content-interactive-secondary);border:1px solid var(--dt-color-border-strong);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=outline]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--hover-modifier)))}.o-btn[variant=outline]:active:not(:disabled),.o-btn[variant=outline][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--active-modifier)))}.o-btn[variant=ghost]{--btn-bg-color: transparent;--btn-text-color: var(--dt-color-content-link);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=ghost]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--hover-modifier)))}.o-btn[variant=ghost]:active:not(:disabled),.o-btn[variant=ghost][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--active-modifier)))}.o-btn[variant=inverse]{--btn-bg-color: var(--dt-color-interactive-inverse);--btn-text-color: var(--dt-color-content-interactive-secondary);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=inverse]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-interactive-inverse-h), var(--dt-color-interactive-inverse-s), calc(var(--dt-color-interactive-inverse-l) + var(--hover-modifier)))}.o-btn[variant=inverse]:active:not(:disabled),.o-btn[variant=inverse][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-interactive-inverse-h), var(--dt-color-interactive-inverse-s), calc(var(--dt-color-interactive-inverse-l) + var(--active-modifier)))}.o-btn[variant=ghost-inverse]{--btn-bg-color: transparent;--btn-text-color: var(--dt-color-content-interactive-primary)}.o-btn[variant=ghost-inverse]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--hover-modifier: var(--dt-color-hover-02);--btn-bg-color: hsl(var(--dt-color-container-inverse-h), var(--dt-color-container-inverse-s), calc(var(--dt-color-container-inverse-l) + var(--hover-modifier)))}.o-btn[variant=ghost-inverse]:active:not(:disabled),.o-btn[variant=ghost-inverse][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--active-modifier: var(--dt-color-active-02);--btn-bg-color: hsl(var(--dt-color-container-inverse-h), var(--dt-color-container-inverse-s), calc(var(--dt-color-container-inverse-l) + var(--active-modifier)))}.o-btn[variant=destructive]{--btn-bg-color: var(--dt-color-support-error)}.o-btn[variant=destructive]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-support-error-h), var(--dt-color-support-error-s), calc(var(--dt-color-support-error-l) + var(--hover-modifier)))}.o-btn[variant=destructive]:active:not(:disabled),.o-btn[variant=destructive][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-support-error-h), var(--dt-color-support-error-s), calc(var(--dt-color-support-error-l) + var(--active-modifier)))}.o-btn[variant=destructive-ghost]{--btn-bg-color: transparent;--btn-text-color: var(--dt-color-content-interactive-error);--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l)}.o-btn[variant=destructive-ghost]:hover:not(:disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--btn-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--hover-modifier)))}.o-btn[variant=destructive-ghost]:active:not(:disabled),.o-btn[variant=destructive-ghost][isLoading]:not(:disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--btn-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--active-modifier)))}.o-btn[isFullWidth]{--btn-inline-size: 100%}.o-btn[disabled]{--btn-text-color: var(--dt-color-content-disabled) !important;cursor:not-allowed}.o-btn[disabled]:not([variant=ghost],[variant=ghost-inverse],[variant=destructive-ghost]){--btn-bg-color: var(--dt-color-disabled-01) !important}.o-btn[disabled][variant=outline]{border-color:var(--dt-color-disabled-01)!important}.o-btn[size=xsmall]{--btn-padding: 6px var(--dt-spacing-b);--btn-font-size: calc(var(--dt-font-size-14) * 1px);--btn-line-height: calc(var(--dt-font-size-14-line-height) * 1px);--btn-icon-size: 16px;--spinner-size: var(--spinner-size-s);--spinner-border-width: var(--spinner-border-width-s)}.o-btn[size=small-expressive]{--btn-padding: 6px var(--dt-spacing-d);--btn-font-size: calc(var(--dt-font-size-20) * 1px);--btn-line-height: calc(var(--dt-font-size-20-line-height) * 1px);--btn-icon-size: 20px;--spinner-size: var(--spinner-size-s);--spinner-border-width: var(--spinner-border-width-s)}.o-btn[size=small-productive]{--btn-padding: 8px var(--dt-spacing-d);--btn-font-size: calc(var(--dt-font-size-16) * 1px);--btn-line-height: calc(var(--dt-font-size-16-line-height) * 1px);--btn-icon-size: 20px;--spinner-size: var(--spinner-size-s);--spinner-border-width: var(--spinner-border-width-s)}.o-btn[size=large]{--btn-padding: 14px var(--dt-spacing-e);--btn-font-size: calc(var(--dt-font-size-20) * 1px);--btn-line-height: calc(var(--dt-font-size-20-line-height) * 1px);--spinner-size: var(--spinner-size-m);--spinner-border-width: var(--spinner-border-width-m)}.o-btn:before{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;height:var(--spinner-size);width:var(--spinner-size);display:block;background-color:transparent;border-radius:50%;border-color:var(--spinner-left-color) var(--spinner-right-color) var(--spinner-right-color) var(--spinner-left-color);border-width:var(--spinner-border-width);border-style:solid;will-change:transform;opacity:0}.o-btn .o-btn-text{flex-grow:1}.o-btn[isLoading]:before{animation:rotate360 var(--spinner-animation-duration) var(--spinner-animation-timing-function) var(--spinner-animation-iteration-count);opacity:1}.o-btn[isLoading] .o-btn-text{opacity:0}::slotted(svg){height:var(--btn-icon-size);width:var(--btn-icon-size)}
|
|
20
|
+
`, u = ["xsmall", "small-productive", "small-expressive", "medium", "large"], y = ["submit", "button", "reset", "menu"], x = [
|
|
21
|
+
"primary",
|
|
22
|
+
"secondary",
|
|
23
|
+
"outline",
|
|
24
|
+
"ghost",
|
|
25
|
+
"inverse",
|
|
26
|
+
"ghost-inverse",
|
|
27
|
+
"destructive",
|
|
28
|
+
"destructive-ghost"
|
|
29
|
+
];
|
|
30
|
+
var z = Object.defineProperty, w = Object.getOwnPropertyDescriptor, s = (l, r, t, a) => {
|
|
31
|
+
for (var o = a > 1 ? void 0 : a ? w(r, t) : r, e = l.length - 1, i; e >= 0; e--)
|
|
32
|
+
(i = l[e]) && (o = (a ? i(r, t, o) : i(o)) || o);
|
|
24
33
|
return a && o && z(r, t, o), o;
|
|
25
34
|
};
|
|
26
35
|
const d = "pie-button";
|
|
27
|
-
class
|
|
36
|
+
class n extends m {
|
|
28
37
|
constructor() {
|
|
29
38
|
super(...arguments), this.size = "medium", this.type = "submit", this.variant = "primary", this.disabled = !1, this.isLoading = !1, this.isFullWidth = !1;
|
|
30
39
|
}
|
|
@@ -34,18 +43,18 @@ class i extends u {
|
|
|
34
43
|
disabled: t,
|
|
35
44
|
isFullWidth: a,
|
|
36
45
|
variant: o,
|
|
37
|
-
size:
|
|
38
|
-
isLoading:
|
|
46
|
+
size: e,
|
|
47
|
+
isLoading: i
|
|
39
48
|
} = this;
|
|
40
|
-
return
|
|
49
|
+
return f`
|
|
41
50
|
<button
|
|
42
51
|
class="o-btn"
|
|
43
52
|
type=${r}
|
|
44
53
|
variant=${o}
|
|
45
|
-
size=${
|
|
54
|
+
size=${e}
|
|
46
55
|
?disabled=${t}
|
|
47
56
|
?isFullWidth=${a}
|
|
48
|
-
?isLoading=${
|
|
57
|
+
?isLoading=${i}>
|
|
49
58
|
<slot name="icon-leading"></slot>
|
|
50
59
|
<span class="o-btn-text"><slot></slot></span>
|
|
51
60
|
<slot name="icon-trailing"></slot>
|
|
@@ -56,32 +65,32 @@ class i extends u {
|
|
|
56
65
|
(t = (r = this.shadowRoot) == null ? void 0 : r.querySelector("button")) == null || t.focus();
|
|
57
66
|
}
|
|
58
67
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
b(d,
|
|
63
|
-
],
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
n.styles = h(g);
|
|
69
|
+
s([
|
|
70
|
+
c(),
|
|
71
|
+
b(d, u, "medium")
|
|
72
|
+
], n.prototype, "size", 2);
|
|
73
|
+
s([
|
|
74
|
+
c(),
|
|
66
75
|
b(d, y, "submit")
|
|
67
|
-
],
|
|
68
|
-
|
|
69
|
-
|
|
76
|
+
], n.prototype, "type", 2);
|
|
77
|
+
s([
|
|
78
|
+
c(),
|
|
70
79
|
b(d, x, "primary")
|
|
71
|
-
],
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
],
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
],
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
],
|
|
81
|
-
customElements.define(d,
|
|
80
|
+
], n.prototype, "variant", 2);
|
|
81
|
+
s([
|
|
82
|
+
c({ type: Boolean })
|
|
83
|
+
], n.prototype, "disabled", 2);
|
|
84
|
+
s([
|
|
85
|
+
c({ type: Boolean, reflect: !0 })
|
|
86
|
+
], n.prototype, "isLoading", 2);
|
|
87
|
+
s([
|
|
88
|
+
c({ type: Boolean })
|
|
89
|
+
], n.prototype, "isFullWidth", 2);
|
|
90
|
+
customElements.define(d, n);
|
|
82
91
|
export {
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
n as PieButton,
|
|
93
|
+
u as sizes,
|
|
85
94
|
y as types,
|
|
86
95
|
x as variants
|
|
87
96
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const sizes: readonly ["xsmall", "small-productive", "small-expressive", "medium", "large"];
|
|
2
2
|
export declare const types: readonly ["submit", "button", "reset", "menu"];
|
|
3
|
-
export declare const variants: readonly ["primary", "secondary", "outline", "ghost", "inverse", "ghost-inverse"];
|
|
3
|
+
export declare const variants: readonly ["primary", "secondary", "outline", "ghost", "inverse", "ghost-inverse", "destructive", "destructive-ghost"];
|
|
4
4
|
export type Variant = typeof variants[number];
|
|
5
5
|
export interface ButtonProps {
|
|
6
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../src/defs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,gFAAiF,CAAC;AACpG,eAAO,MAAM,KAAK,gDAAiD,CAAC;AACpE,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../src/defs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,gFAAiF,CAAC;AACpG,eAAO,MAAM,KAAK,gDAAiD,CAAC;AACpE,eAAO,MAAM,QAAQ,uHAEX,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B;;OAEG;IACH,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justeattakeaway/pie-button",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.1",
|
|
4
4
|
"description": "PIE design system button built using web components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,8 +23,9 @@
|
|
|
23
23
|
"author": "JustEatTakeaway - Design System Web Team",
|
|
24
24
|
"license": "Apache-2.0",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@justeat/pie-design-tokens": "5.
|
|
26
|
+
"@justeat/pie-design-tokens": "5.5.0",
|
|
27
27
|
"@justeattakeaway/pie-components-config": "workspace:*",
|
|
28
|
+
"@justeattakeaway/pie-css": "workspace:*",
|
|
28
29
|
"@justeattakeaway/pie-webc-core": "workspace:*"
|
|
29
30
|
},
|
|
30
31
|
"volta": {
|
package/src/button.scss
CHANGED
|
@@ -1,21 +1,49 @@
|
|
|
1
|
+
@use '@justeattakeaway/pie-css/scss' as p;
|
|
2
|
+
|
|
1
3
|
*,
|
|
2
4
|
*:before,
|
|
3
5
|
*:after {
|
|
4
6
|
box-sizing: border-box;
|
|
5
7
|
}
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Defines button interactive states for hover, active and loading.
|
|
11
|
+
* Takes the interactive color name as an argument, and whether the color
|
|
12
|
+
* should be lightened or darkened.
|
|
13
|
+
*/
|
|
14
|
+
@mixin button-interactive-states($bg-color, $lighten: false) {
|
|
10
15
|
&:hover:not(:disabled) {
|
|
11
|
-
|
|
16
|
+
--hover-modifier: calc(-1 * var(--dt-color-hover-01));
|
|
17
|
+
|
|
18
|
+
@if $lighten {
|
|
19
|
+
--hover-modifier: var(--dt-color-hover-02);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
--btn-bg-color: hsl(var(#{$bg-color}-h), var(#{$bg-color}-s), calc(var(#{$bg-color}-l) + var(--hover-modifier)));
|
|
12
23
|
}
|
|
13
24
|
|
|
14
|
-
&:active:not(:disabled)
|
|
15
|
-
|
|
25
|
+
&:active:not(:disabled),
|
|
26
|
+
&[isLoading]:not(:disabled) {
|
|
27
|
+
--active-modifier: calc(-1 * var(--dt-color-active-01));
|
|
28
|
+
|
|
29
|
+
@if $lighten {
|
|
30
|
+
--active-modifier: var(--dt-color-active-02);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
--btn-bg-color: hsl(var(#{$bg-color}-h), var(#{$bg-color}-s), calc(var(#{$bg-color}-l) + var(--active-modifier)));
|
|
16
34
|
}
|
|
17
35
|
}
|
|
18
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Shorthand mixin for updating the HSL custom properties for the loading spinner.
|
|
39
|
+
* Takes in the name of the color to be split into its HSL components.
|
|
40
|
+
*/
|
|
41
|
+
@mixin spinner-base-colors($color) {
|
|
42
|
+
--spinner-base-color-h: var(#{$color}-h);
|
|
43
|
+
--spinner-base-color-s: var(#{$color}-s);
|
|
44
|
+
--spinner-base-color-l: var(#{$color}-l);
|
|
45
|
+
}
|
|
46
|
+
|
|
19
47
|
// Spin animation for loading state
|
|
20
48
|
@keyframes rotate360 {
|
|
21
49
|
from {
|
|
@@ -37,7 +65,7 @@
|
|
|
37
65
|
|
|
38
66
|
// The base values are set to the size default, which is for the medium button size
|
|
39
67
|
--btn-padding: 10px var(--dt-spacing-e);
|
|
40
|
-
--btn-font-size:
|
|
68
|
+
--btn-font-size: #{p.font-size(--dt-font-size-20)};
|
|
41
69
|
--btn-line-height: calc(var(--dt-font-size-20-line-height) * 1px);
|
|
42
70
|
|
|
43
71
|
// The following values set to default background and color
|
|
@@ -57,9 +85,8 @@
|
|
|
57
85
|
--spinner-border-width: var(--spinner-border-width-m);
|
|
58
86
|
|
|
59
87
|
// Spinner colors - currently set for the primary button styles
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
--spinner-base-color-l: var(--dt-color-content-interactive-primary-l);
|
|
88
|
+
@include spinner-base-colors(--dt-color-content-interactive-primary);
|
|
89
|
+
|
|
63
90
|
--spinner-left-color-opacity: 0.35;
|
|
64
91
|
--spinner-left-color: hsl(var(--spinner-base-color-h), var(--spinner-base-color-s), var(--spinner-base-color-l), var(--spinner-left-color-opacity));
|
|
65
92
|
--spinner-right-color: hsl(var(--spinner-base-color-h), var(--spinner-base-color-s), var(--spinner-base-color-l), 1);
|
|
@@ -156,53 +183,56 @@
|
|
|
156
183
|
&[variant='secondary'] {
|
|
157
184
|
--btn-bg-color: var(--dt-color-interactive-secondary);
|
|
158
185
|
--btn-text-color: var(--dt-color-content-interactive-secondary);
|
|
159
|
-
--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);
|
|
160
|
-
--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);
|
|
161
|
-
--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l);
|
|
162
186
|
|
|
163
187
|
@include button-interactive-states('--dt-color-interactive-secondary');
|
|
188
|
+
@include spinner-base-colors('--dt-color-content-interactive-secondary');
|
|
164
189
|
}
|
|
165
190
|
|
|
166
191
|
&[variant='outline'] {
|
|
167
192
|
--btn-bg-color: var(--dt-color-container-default);
|
|
168
193
|
--btn-text-color: var(--dt-color-content-interactive-secondary);
|
|
169
|
-
--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);
|
|
170
|
-
--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);
|
|
171
|
-
--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l);
|
|
172
194
|
|
|
173
195
|
border: 1px solid var(--dt-color-border-strong);
|
|
174
196
|
|
|
175
197
|
@include button-interactive-states('--dt-color-container-default');
|
|
198
|
+
@include spinner-base-colors('--dt-color-content-interactive-secondary');
|
|
176
199
|
}
|
|
177
200
|
|
|
178
201
|
&[variant='ghost'] {
|
|
179
202
|
--btn-bg-color: transparent;
|
|
180
203
|
--btn-text-color: var(--dt-color-content-link);
|
|
181
|
-
--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);
|
|
182
|
-
--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);
|
|
183
|
-
--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l);
|
|
184
204
|
|
|
185
205
|
@include button-interactive-states('--dt-color-container-default');
|
|
206
|
+
@include spinner-base-colors('--dt-color-content-interactive-secondary');
|
|
186
207
|
}
|
|
187
208
|
|
|
188
209
|
&[variant='inverse'] {
|
|
189
210
|
--btn-bg-color: var(--dt-color-interactive-inverse);
|
|
190
211
|
--btn-text-color: var(--dt-color-content-interactive-secondary);
|
|
191
|
-
--spinner-base-color-h: var(--dt-color-content-interactive-secondary-h);
|
|
192
|
-
--spinner-base-color-s: var(--dt-color-content-interactive-secondary-s);
|
|
193
|
-
--spinner-base-color-l: var(--dt-color-content-interactive-secondary-l);
|
|
194
212
|
|
|
195
213
|
@include button-interactive-states('--dt-color-interactive-inverse');
|
|
214
|
+
@include spinner-base-colors('--dt-color-content-interactive-secondary');
|
|
196
215
|
}
|
|
197
216
|
|
|
198
217
|
&[variant='ghost-inverse'] {
|
|
199
218
|
--btn-bg-color: transparent;
|
|
200
219
|
--btn-text-color: var(--dt-color-content-interactive-primary);
|
|
201
|
-
--spinner-base-color-h: var(--dt-color-content-interactive-primary-h);
|
|
202
|
-
--spinner-base-color-s: var(--dt-color-content-interactive-primary-s);
|
|
203
|
-
--spinner-base-color-l: var(--dt-color-content-interactive-primary-l);
|
|
204
220
|
|
|
205
|
-
@include button-interactive-states('--dt-color-container-inverse');
|
|
221
|
+
@include button-interactive-states('--dt-color-container-inverse', true);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
&[variant='destructive'] {
|
|
225
|
+
--btn-bg-color: var(--dt-color-support-error);
|
|
226
|
+
|
|
227
|
+
@include button-interactive-states('--dt-color-support-error');
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
&[variant='destructive-ghost'] {
|
|
231
|
+
--btn-bg-color: transparent;
|
|
232
|
+
--btn-text-color: var(--dt-color-content-interactive-error);
|
|
233
|
+
|
|
234
|
+
@include button-interactive-states('--dt-color-container-default');
|
|
235
|
+
@include spinner-base-colors('--dt-color-content-interactive-secondary');
|
|
206
236
|
}
|
|
207
237
|
|
|
208
238
|
// Additional modifiers
|
|
@@ -215,8 +245,8 @@
|
|
|
215
245
|
|
|
216
246
|
cursor: not-allowed;
|
|
217
247
|
|
|
218
|
-
// For every variant except ghost
|
|
219
|
-
&:not([variant='ghost'], [variant='ghost-inverse']) {
|
|
248
|
+
// For every variant (except ghost variants) set the disabled background color
|
|
249
|
+
&:not([variant='ghost'], [variant='ghost-inverse'], [variant='destructive-ghost']) {
|
|
220
250
|
--btn-bg-color: var(--dt-color-disabled-01) !important;
|
|
221
251
|
}
|
|
222
252
|
|
package/src/defs.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export const sizes = ['xsmall', 'small-productive', 'small-expressive', 'medium', 'large'] as const;
|
|
2
2
|
export const types = ['submit', 'button', 'reset', 'menu'] as const;
|
|
3
|
-
export const variants = [
|
|
3
|
+
export const variants = [
|
|
4
|
+
'primary', 'secondary', 'outline', 'ghost', 'inverse', 'ghost-inverse', 'destructive', 'destructive-ghost',
|
|
5
|
+
] as const;
|
|
4
6
|
|
|
5
7
|
export type Variant = typeof variants[number];
|
|
6
8
|
|