@c2n/button 0.0.6 → 0.0.7
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/dist/button.js +3 -2
- package/package.json +18 -6
- package/react.d.ts +24 -0
- package/react.js +3 -0
- package/types/src/button.d.ts +6 -0
- package/types/src/button.d.ts.map +1 -1
- package/vue.d.ts +29 -0
- package/vue.js +3 -0
package/dist/button.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
2
|
-
import {
|
|
2
|
+
import { property } from "lit/decorators.js";
|
|
3
|
+
import { customElement } from "@c2n/core/element-helper.js";
|
|
3
4
|
//#region src/button.scss?inline
|
|
4
|
-
var button_default = "/* ex : var((width: 24px), width, c2-checkbox) returns var(--c2-checkbox-width, 24px) */\n:host {\n display: inline-flex;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.c2-button {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n gap: var(--c2-button__container--gap,8px);\n height: var(--c2-button__container--height,36px);\n padding-left: var(--c2-button__container--padding-left,16px);\n padding-right: var(--c2-button__container--padding-right,16px);\n border: var(--c2-button__container--border,1px solid transparent);\n border-radius: var(--c2-button__container--border-radius,6px);\n background-color: var(--c2-button__container--background-color,rgb(2, 101, 220));\n color: var(--c2-button__container--color,#ffffff);\n font-family: inherit;\n font-size: var(--c2-button__container--font-size,14px);\n font-weight: var(--c2-button__container--font-weight,500);\n line-height: 1;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n will-change: background-color, color, border-color;\n transition: background-color 250ms cubic-bezier(0.2, 0, 0, 1), color 250ms cubic-bezier(0.2, 0, 0, 1), border-color 250ms cubic-bezier(0.2, 0, 0, 1);\n}\n.c2-button:hover:not(:disabled) {\n background-color: var(--c2-button__container__hover--background-color,var(--c2-button__container--background-color,rgb(1, 84, 184)));\n color: var(--c2-button__container__hover--color,var(--c2-button__container--color,#ffffff));\n border: var(--c2-button__container__hover--border,var(--c2-button__container--border,1px solid transparent));\n}\n.c2-button:active:not(:disabled) {\n background-color: var(--c2-button__container__active--background-color,var(--c2-button__container__hover--background-color,var(--c2-button__container--background-color,rgb(1, 70, 154))));\n}\n.c2-button:focus-visible {\n outline: var(--c2-button__container__focus--outline,2px solid rgba(2, 101, 220, 0.4));\n outline-offset: var(--c2-button__container__focus--outline-offset,2px);\n}\n\n:host([selected]) .c2-button,\n:host([selected]) .c2-button:hover:not(:disabled) {\n background-color: var(--c2-button__container__selected--background-color,var(--c2-button__container__hover--background-color,var(--c2-button__container--background-color,rgb(1, 84, 184))));\n color: var(--c2-button__container__selected--color,var(--c2-button__container--color,#ffffff));\n border: var(--c2-button__container__selected--border,var(--c2-button__container--border,1px solid transparent));\n}\n\n:host([disabled]) .c2-button {\n cursor: default;\n opacity: var(--c2-button__container__disabled--opacity,0.38);\n}\n\n:host([running]) .c2-button {\n cursor: progress;\n}\n\n.label {\n display: inline-flex;\n align-items: center;\n}\n\n.icon::slotted(*) {\n flex-shrink: 0;\n width: var(--c2-button__icon--size,18px);\n height: var(--c2-button__icon--size,18px);\n color: var(--c2-button__icon--color,var(--c2-button__container--color,#ffffff));\n --c2-feather-icon--size: var(--c2-button__icon--size,18px);\n --c2-mat-icon--font-size: var(--c2-button__icon--size,18px);\n}\n\n.running-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--c2-button__running-icon--size,18px);\n height: var(--c2-button__running-icon--size,18px);\n color: var(--c2-button__running-icon--color,var(--c2-button__container--color,#ffffff));\n --c2-feather-icon--size: var(--c2-button__running-icon--size,18px);\n --c2-mat-icon--font-size: var(--c2-button__running-icon--size,18px);\n animation: c2-button-spin var(--c2-button__running-icon--animation-duration,800ms) linear infinite;\n}\n\n.running-icon ::slotted(*),\n.running-icon svg {\n width: 100%;\n height: 100%;\n}\n\n@keyframes c2-button-spin {\n to {\n transform: rotate(360deg);\n }\n}";
|
|
5
|
+
var button_default = "/* ex : var((width: 24px), width, c2-checkbox) returns var(--c2-checkbox-width, 24px) */\n:host {\n display: inline-flex;\n width: var(--c2-button__container--width,auto);\n border-radius: var(--c2-button__container--border-radius,6px);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.c2-button {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex: 1;\n align-items: center;\n justify-content: var(--c2-button__container--justify-content,center);\n gap: var(--c2-button__container--gap,8px);\n height: var(--c2-button__container--height,36px);\n padding-left: var(--c2-button__container--padding-left,16px);\n padding-right: var(--c2-button__container--padding-right,16px);\n border: var(--c2-button__container--border,1px solid transparent);\n border-radius: var(--c2-button__container--border-radius,6px);\n background-color: var(--c2-button__container--background-color,rgb(2, 101, 220));\n color: var(--c2-button__container--color,#ffffff);\n font-family: inherit;\n font-size: var(--c2-button__container--font-size,14px);\n font-weight: var(--c2-button__container--font-weight,500);\n line-height: 1;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n will-change: background-color, color, border-color;\n transition: background-color 250ms cubic-bezier(0.2, 0, 0, 1), color 250ms cubic-bezier(0.2, 0, 0, 1), border-color 250ms cubic-bezier(0.2, 0, 0, 1);\n}\n.c2-button:hover:not(:disabled) {\n background-color: var(--c2-button__container__hover--background-color,var(--c2-button__container--background-color,rgb(1, 84, 184)));\n color: var(--c2-button__container__hover--color,var(--c2-button__container--color,#ffffff));\n border: var(--c2-button__container__hover--border,var(--c2-button__container--border,1px solid transparent));\n}\n.c2-button:active:not(:disabled) {\n background-color: var(--c2-button__container__active--background-color,var(--c2-button__container__hover--background-color,var(--c2-button__container--background-color,rgb(1, 70, 154))));\n}\n.c2-button:focus-visible {\n outline: var(--c2-button__container__focus--outline,2px solid rgba(2, 101, 220, 0.4));\n outline-offset: var(--c2-button__container__focus--outline-offset,2px);\n}\n\n:host([selected]) .c2-button,\n:host([selected]) .c2-button:hover:not(:disabled) {\n background-color: var(--c2-button__container__selected--background-color,var(--c2-button__container__hover--background-color,var(--c2-button__container--background-color,rgb(1, 84, 184))));\n color: var(--c2-button__container__selected--color,var(--c2-button__container--color,#ffffff));\n border: var(--c2-button__container__selected--border,var(--c2-button__container--border,1px solid transparent));\n}\n\n:host([disabled]) .c2-button {\n cursor: default;\n opacity: var(--c2-button__container__disabled--opacity,0.38);\n}\n\n:host([running]) .c2-button {\n cursor: progress;\n}\n\n.label {\n display: inline-flex;\n align-items: center;\n flex-grow: var(--c2-button__label--flex-grow,0);\n justify-content: var(--c2-button__label--justify-content,center);\n}\n\n.icon::slotted(*) {\n flex-shrink: 0;\n width: var(--c2-button__icon--size,18px);\n height: var(--c2-button__icon--size,18px);\n color: var(--c2-button__icon--color,var(--c2-button__container--color,#ffffff));\n --c2-feather-icon--size: var(--c2-button__icon--size,18px);\n --c2-mat-icon--font-size: var(--c2-button__icon--size,18px);\n}\n\n.running-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--c2-button__running-icon--size,18px);\n height: var(--c2-button__running-icon--size,18px);\n color: var(--c2-button__running-icon--color,var(--c2-button__container--color,#ffffff));\n --c2-feather-icon--size: var(--c2-button__running-icon--size,18px);\n --c2-mat-icon--font-size: var(--c2-button__running-icon--size,18px);\n animation: c2-button-spin var(--c2-button__running-icon--animation-duration,800ms) linear infinite;\n}\n\n.running-icon ::slotted(*),\n.running-icon svg {\n width: 100%;\n height: 100%;\n}\n\n@keyframes c2-button-spin {\n to {\n transform: rotate(360deg);\n }\n}";
|
|
5
6
|
//#endregion
|
|
6
7
|
//#region \0@oxc-project+runtime@0.148.0/helpers/esm/decorate.js
|
|
7
8
|
function __decorate(decorators, target, key, desc) {
|
package/package.json
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c2n/button",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/button.js",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
8
|
+
"types": "./types/src/button.d.ts",
|
|
9
|
+
"default": "./dist/button.js"
|
|
10
|
+
},
|
|
11
|
+
"./react": {
|
|
12
|
+
"types": "./react.d.ts",
|
|
13
|
+
"default": "./react.js"
|
|
14
|
+
},
|
|
15
|
+
"./vue": {
|
|
16
|
+
"types": "./vue.d.ts",
|
|
17
|
+
"default": "./vue.js"
|
|
10
18
|
},
|
|
11
19
|
"./custom-elements.json": "./custom-elements.json"
|
|
12
20
|
},
|
|
13
21
|
"files": [
|
|
14
22
|
"dist",
|
|
15
|
-
"types"
|
|
23
|
+
"types",
|
|
24
|
+
"react.d.ts",
|
|
25
|
+
"react.js",
|
|
26
|
+
"vue.d.ts",
|
|
27
|
+
"vue.js"
|
|
16
28
|
],
|
|
17
29
|
"keywords": [
|
|
18
30
|
"button",
|
|
@@ -50,12 +62,12 @@
|
|
|
50
62
|
}
|
|
51
63
|
},
|
|
52
64
|
"dependencies": {
|
|
53
|
-
"@c2n/core": "0.0.
|
|
65
|
+
"@c2n/core": "0.0.7",
|
|
54
66
|
"lit": "3.3.3"
|
|
55
67
|
},
|
|
56
68
|
"devDependencies": {
|
|
57
69
|
"@c2n/config": "*"
|
|
58
70
|
},
|
|
59
71
|
"customElements": "custom-elements.json",
|
|
60
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "c8db398a27f7cd417d665fdf5da455fee2d4e910"
|
|
61
73
|
}
|
package/react.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// GENERATED by @c2n/framework-types. Do not edit by hand.
|
|
2
|
+
//
|
|
3
|
+
// JSX types for the custom elements of @c2n/button. Import once, anywhere in the program:
|
|
4
|
+
//
|
|
5
|
+
// import '@c2n/button/react'
|
|
6
|
+
//
|
|
7
|
+
// Register the elements at module scope before React renders, or React writes an object prop as an
|
|
8
|
+
// attribute and it stringifies.
|
|
9
|
+
|
|
10
|
+
import type { DetailedHTMLProps, HTMLAttributes } from 'react'
|
|
11
|
+
import type { Button } from '@c2n/button'
|
|
12
|
+
|
|
13
|
+
/** Standard React host-element attributes plus the element's own public properties. */
|
|
14
|
+
type C2Props<T> = DetailedHTMLProps<HTMLAttributes<T>, T> & Partial<Omit<T, keyof HTMLElement>>
|
|
15
|
+
|
|
16
|
+
declare module 'react' {
|
|
17
|
+
namespace JSX {
|
|
18
|
+
interface IntrinsicElements {
|
|
19
|
+
'c2-button': C2Props<Button>
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export {}
|
package/react.js
ADDED
package/types/src/button.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
/**
|
|
3
|
+
* Action button with optional leading/trailing icons, busy state and toggle-button semantics.
|
|
4
|
+
*
|
|
3
5
|
* @tag c2-button
|
|
4
6
|
*
|
|
5
7
|
* @slot default - Button label text.
|
|
@@ -8,6 +10,10 @@ import { LitElement } from 'lit';
|
|
|
8
10
|
* @slot running-icon - Icon shown in place of the prefix icon while `running` is set. Defaults to a spinner; the slot wrapper rotates, so slotted content spins too.
|
|
9
11
|
*
|
|
10
12
|
* @cssproperty {pixel} [--c2-button__container--height=36px]
|
|
13
|
+
* @cssproperty {width} [--c2-button__container--width=auto] - Width of the host. `100%` makes a full-width button.
|
|
14
|
+
* @cssproperty {justify-content} [--c2-button__container--justify-content=center] - How the label and its icons sit in the button. `flex-start` for a row-shaped button (a list entry, a group header), `space-between` to push a trailing hint to the far edge.
|
|
15
|
+
* @cssproperty {number} [--c2-button__label--flex-grow=0] - Whether the label takes the leftover width. `1` pushes a suffix icon to the far edge of a fixed-width button.
|
|
16
|
+
* @cssproperty {justify-content} [--c2-button__label--justify-content=center] - How the label sits once it has grown. `flex-start` keeps the text next to a prefix icon.
|
|
11
17
|
* @cssproperty {padding} [--c2-button__container--padding-left=16px]
|
|
12
18
|
* @cssproperty {padding} [--c2-button__container--padding-right=16px]
|
|
13
19
|
* @cssproperty {pixel} [--c2-button__container--gap=8px]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAA;AAK1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,0BAAoB;IAE1C,OAAgB,iBAAiB,EAAE,cAAc,CAA4D;IAE7G,gFAAgF;IACpC,QAAQ,UAAQ;IAE5D,yGAAyG;IAC7D,OAAO,UAAQ;IAE3D,oHAAoH;IACxE,QAAQ,UAAQ;IAE5D,wIAAwI;IAC5F,MAAM,UAAQ;IAEjD,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,MAAM,CAAA;KACpB;CACF"}
|
package/vue.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// GENERATED by @c2n/framework-types. Do not edit by hand.
|
|
2
|
+
//
|
|
3
|
+
// Vue template types for the custom elements of @c2n/button. Import once, anywhere in the program:
|
|
4
|
+
//
|
|
5
|
+
// import '@c2n/button/vue'
|
|
6
|
+
//
|
|
7
|
+
// Tell the compiler about the tags as well, or every c2-* tag is resolved as a Vue component and renders
|
|
8
|
+
// nothing: template.compilerOptions.isCustomElement = (tag) => tag.startsWith('c2-') in vite.config.ts.
|
|
9
|
+
|
|
10
|
+
import type { DefineComponent, HTMLAttributes } from 'vue'
|
|
11
|
+
import type { Button } from '@c2n/button'
|
|
12
|
+
|
|
13
|
+
/** The element's own public properties, plus every attribute Vue understands on a host element. */
|
|
14
|
+
type C2Props<T> = Partial<Omit<T, keyof HTMLElement>> & HTMLAttributes
|
|
15
|
+
|
|
16
|
+
declare module 'vue' {
|
|
17
|
+
interface GlobalComponents {
|
|
18
|
+
'c2-button': DefineComponent<C2Props<Button>>
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
declare module '@vue/runtime-dom' {
|
|
23
|
+
interface HTMLAttributes {
|
|
24
|
+
/** Vue's own definition omits it, and slotting a plain element into a component needs it. */
|
|
25
|
+
slot?: string
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export {}
|
package/vue.js
ADDED