@phcdevworks/spectre-components 0.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -40
- package/dist/base-2rD8EmdC.d.cts +32 -0
- package/dist/base-2rD8EmdC.d.ts +32 -0
- package/dist/button.cjs +295 -170
- package/dist/button.cjs.map +1 -1
- package/dist/button.d.cts +30 -61
- package/dist/button.d.ts +30 -61
- package/dist/button.js +296 -171
- package/dist/button.js.map +1 -1
- package/dist/checkbox.cjs +286 -71
- package/dist/checkbox.cjs.map +1 -1
- package/dist/checkbox.d.cts +38 -43
- package/dist/checkbox.d.ts +38 -43
- package/dist/checkbox.js +287 -72
- package/dist/checkbox.js.map +1 -1
- package/dist/fieldset.cjs +233 -88
- package/dist/fieldset.cjs.map +1 -1
- package/dist/fieldset.d.cts +23 -40
- package/dist/fieldset.d.ts +23 -40
- package/dist/fieldset.js +233 -88
- package/dist/fieldset.js.map +1 -1
- package/dist/form-iI7vV-3W.d.cts +6 -0
- package/dist/form-iI7vV-3W.d.ts +6 -0
- package/dist/index.cjs +564 -1029
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +566 -1030
- package/dist/index.js.map +1 -1
- package/dist/input.cjs +232 -119
- package/dist/input.cjs.map +1 -1
- package/dist/input.d.cts +52 -68
- package/dist/input.d.ts +52 -68
- package/dist/input.js +232 -119
- package/dist/input.js.map +1 -1
- package/dist/label.cjs +232 -73
- package/dist/label.cjs.map +1 -1
- package/dist/label.d.cts +13 -22
- package/dist/label.d.ts +13 -22
- package/dist/label.js +232 -73
- package/dist/label.js.map +1 -1
- package/dist/projectable-BzDQ4xp_.d.cts +17 -0
- package/dist/projectable-s3SgvjGX.d.ts +17 -0
- package/dist/radio.cjs +286 -71
- package/dist/radio.cjs.map +1 -1
- package/dist/radio.d.cts +38 -43
- package/dist/radio.d.ts +38 -43
- package/dist/radio.js +287 -72
- package/dist/radio.js.map +1 -1
- package/dist/select.cjs +292 -163
- package/dist/select.cjs.map +1 -1
- package/dist/select.d.cts +35 -58
- package/dist/select.d.ts +35 -58
- package/dist/select.js +293 -163
- package/dist/select.js.map +1 -1
- package/dist/textarea.cjs +191 -290
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.d.cts +41 -58
- package/dist/textarea.d.ts +41 -58
- package/dist/textarea.js +191 -290
- package/dist/textarea.js.map +1 -1
- package/package.json +13 -12
package/README.md
CHANGED
|
@@ -48,22 +48,30 @@ Use the components in markup:
|
|
|
48
48
|
<sp-button variant="primary" size="md">Save</sp-button>
|
|
49
49
|
<sp-button variant="ghost" size="sm">Cancel</sp-button>
|
|
50
50
|
<sp-input name="email" type="email" placeholder="Email address"></sp-input>
|
|
51
|
+
<sp-textarea name="bio" rows="4" placeholder="Short bio"></sp-textarea>
|
|
52
|
+
<sp-select name="role">
|
|
53
|
+
<option value="admin">Admin</option>
|
|
54
|
+
<option value="user">User</option>
|
|
55
|
+
</sp-select>
|
|
56
|
+
<sp-checkbox name="terms" value="accepted">Accept terms</sp-checkbox>
|
|
57
|
+
<sp-radio name="plan" value="monthly">Monthly</sp-radio>
|
|
58
|
+
<sp-label for="email">Email address</sp-label>
|
|
59
|
+
<sp-fieldset legend="Contact preferences">
|
|
60
|
+
<sp-checkbox name="email-updates">Email updates</sp-checkbox>
|
|
61
|
+
</sp-fieldset>
|
|
51
62
|
```
|
|
52
63
|
|
|
53
|
-
Register only
|
|
64
|
+
Register only what you need using the per-component entry points:
|
|
54
65
|
|
|
55
66
|
```ts
|
|
56
67
|
import { defineSpectreButton } from "@phcdevworks/spectre-components/button";
|
|
57
|
-
|
|
58
|
-
defineSpectreButton();
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Register only the input when you want the input-only entry point:
|
|
62
|
-
|
|
63
|
-
```ts
|
|
64
68
|
import { defineSpectreInput } from "@phcdevworks/spectre-components/input";
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
import { defineSpectreTextarea } from "@phcdevworks/spectre-components/textarea";
|
|
70
|
+
import { defineSpectreSelect } from "@phcdevworks/spectre-components/select";
|
|
71
|
+
import { defineSpectreCheckbox } from "@phcdevworks/spectre-components/checkbox";
|
|
72
|
+
import { defineSpectreRadio } from "@phcdevworks/spectre-components/radio";
|
|
73
|
+
import { defineSpectreLabel } from "@phcdevworks/spectre-components/label";
|
|
74
|
+
import { defineSpectreFieldset } from "@phcdevworks/spectre-components/fieldset";
|
|
67
75
|
```
|
|
68
76
|
|
|
69
77
|
## What this package owns
|
|
@@ -91,32 +99,95 @@ contracts locally.
|
|
|
91
99
|
|
|
92
100
|
### Root package
|
|
93
101
|
|
|
94
|
-
`@phcdevworks/spectre-components` exports
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- `
|
|
100
|
-
- `
|
|
101
|
-
- `
|
|
102
|
-
- `
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
- `
|
|
107
|
-
- `
|
|
102
|
+
`@phcdevworks/spectre-components` exports everything from all component entry
|
|
103
|
+
points plus the `defineSpectreComponents()` bulk registration helper.
|
|
104
|
+
|
|
105
|
+
**Registration helpers**
|
|
106
|
+
|
|
107
|
+
- `defineSpectreComponents()` — registers all components at once
|
|
108
|
+
- `defineSpectreButton()`, `defineSpectreInput()`, `defineSpectreTextarea()`
|
|
109
|
+
- `defineSpectreSelect()`, `defineSpectreCheckbox()`, `defineSpectreRadio()`
|
|
110
|
+
- `defineSpectreLabel()`, `defineSpectreFieldset()`
|
|
111
|
+
|
|
112
|
+
**Element classes**
|
|
113
|
+
|
|
114
|
+
- `SpectreButtonElement`, `SpectreInputElement`, `SpectreTextareaElement`
|
|
115
|
+
- `SpectreSelectElement`, `SpectreCheckboxElement`, `SpectreRadioElement`
|
|
116
|
+
- `SpectreLabelElement`, `SpectreFieldsetElement`
|
|
117
|
+
|
|
118
|
+
**Constants and types (button)**
|
|
119
|
+
|
|
120
|
+
- `spectreButtonVariants`, `spectreButtonSizes`, `spectreButtonTypes`
|
|
121
|
+
- `SpectreButtonVariant`, `SpectreButtonSize`, `SpectreButtonType`
|
|
122
|
+
- `SpectreButtonProps`
|
|
123
|
+
|
|
124
|
+
**Constants and types (input / textarea / select)**
|
|
125
|
+
|
|
126
|
+
- `spectreInputSizes`, `spectreInputTypes`
|
|
127
|
+
- `SpectreInputSize`, `SpectreInputType`
|
|
128
|
+
- `SpectreInputProps`, `SpectreTextareaProps`, `SpectreSelectProps`
|
|
129
|
+
|
|
130
|
+
**Props interfaces (checkbox / radio / label / fieldset)**
|
|
131
|
+
|
|
132
|
+
- `SpectreCheckboxProps`, `SpectreRadioProps`
|
|
133
|
+
- `SpectreLabelProps`, `SpectreFieldsetProps`
|
|
108
134
|
|
|
109
135
|
### Button entry point
|
|
110
136
|
|
|
111
|
-
`@phcdevworks/spectre-components/button`
|
|
112
|
-
|
|
113
|
-
|
|
137
|
+
`@phcdevworks/spectre-components/button` — registers only `sp-button`.
|
|
138
|
+
|
|
139
|
+
Exports: `defineSpectreButton`, `SpectreButtonElement`, `SpectreButtonProps`,
|
|
140
|
+
`spectreButtonVariants`, `spectreButtonSizes`, `spectreButtonTypes`,
|
|
141
|
+
`SpectreButtonVariant`, `SpectreButtonSize`, `SpectreButtonType`.
|
|
114
142
|
|
|
115
143
|
### Input entry point
|
|
116
144
|
|
|
117
|
-
`@phcdevworks/spectre-components/input`
|
|
118
|
-
|
|
119
|
-
|
|
145
|
+
`@phcdevworks/spectre-components/input` — registers only `sp-input`.
|
|
146
|
+
|
|
147
|
+
Exports: `defineSpectreInput`, `SpectreInputElement`, `SpectreInputProps`,
|
|
148
|
+
`spectreInputSizes`, `spectreInputTypes`, `SpectreInputSize`, `SpectreInputType`.
|
|
149
|
+
|
|
150
|
+
### Textarea entry point
|
|
151
|
+
|
|
152
|
+
`@phcdevworks/spectre-components/textarea` — registers only `sp-textarea`.
|
|
153
|
+
|
|
154
|
+
Exports: `defineSpectreTextarea`, `SpectreTextareaElement`, `SpectreTextareaProps`.
|
|
155
|
+
|
|
156
|
+
Size constants shared with input: import `spectreInputSizes` / `SpectreInputSize`
|
|
157
|
+
from `@phcdevworks/spectre-components/input`.
|
|
158
|
+
|
|
159
|
+
### Select entry point
|
|
160
|
+
|
|
161
|
+
`@phcdevworks/spectre-components/select` — registers only `sp-select`.
|
|
162
|
+
|
|
163
|
+
Exports: `defineSpectreSelect`, `SpectreSelectElement`, `SpectreSelectProps`.
|
|
164
|
+
|
|
165
|
+
Size constants shared with input: import `spectreInputSizes` / `SpectreInputSize`
|
|
166
|
+
from `@phcdevworks/spectre-components/input`.
|
|
167
|
+
|
|
168
|
+
### Checkbox entry point
|
|
169
|
+
|
|
170
|
+
`@phcdevworks/spectre-components/checkbox` — registers only `sp-checkbox`.
|
|
171
|
+
|
|
172
|
+
Exports: `defineSpectreCheckbox`, `SpectreCheckboxElement`, `SpectreCheckboxProps`.
|
|
173
|
+
|
|
174
|
+
### Radio entry point
|
|
175
|
+
|
|
176
|
+
`@phcdevworks/spectre-components/radio` — registers only `sp-radio`.
|
|
177
|
+
|
|
178
|
+
Exports: `defineSpectreRadio`, `SpectreRadioElement`, `SpectreRadioProps`.
|
|
179
|
+
|
|
180
|
+
### Label entry point
|
|
181
|
+
|
|
182
|
+
`@phcdevworks/spectre-components/label` — registers only `sp-label`.
|
|
183
|
+
|
|
184
|
+
Exports: `defineSpectreLabel`, `SpectreLabelElement`, `SpectreLabelProps`.
|
|
185
|
+
|
|
186
|
+
### Fieldset entry point
|
|
187
|
+
|
|
188
|
+
`@phcdevworks/spectre-components/fieldset` — registers only `sp-fieldset`.
|
|
189
|
+
|
|
190
|
+
Exports: `defineSpectreFieldset`, `SpectreFieldsetElement`, `SpectreFieldsetProps`.
|
|
120
191
|
|
|
121
192
|
## Relationship to the rest of Spectre
|
|
122
193
|
|
|
@@ -132,16 +203,18 @@ Spectre keeps responsibilities separate:
|
|
|
132
203
|
That separation keeps visual meaning centralized, styling contracts stable, and
|
|
133
204
|
component behavior reusable across frameworks.
|
|
134
205
|
|
|
135
|
-
##
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
206
|
+
## Components
|
|
207
|
+
|
|
208
|
+
| Element | Tag | Description |
|
|
209
|
+
|---|---|---|
|
|
210
|
+
| `SpectreButtonElement` | `sp-button` | Button with variant, size, loading, and pill support |
|
|
211
|
+
| `SpectreInputElement` | `sp-input` | Text input with state, size, and type support |
|
|
212
|
+
| `SpectreTextareaElement` | `sp-textarea` | Multiline text input with resizable rows |
|
|
213
|
+
| `SpectreSelectElement` | `sp-select` | Native select with projected option elements |
|
|
214
|
+
| `SpectreCheckboxElement` | `sp-checkbox` | Checkbox with projected or property-based label |
|
|
215
|
+
| `SpectreRadioElement` | `sp-radio` | Radio button with projected or property-based label |
|
|
216
|
+
| `SpectreLabelElement` | `sp-label` | Accessible label with `for` forwarding |
|
|
217
|
+
| `SpectreFieldsetElement` | `sp-fieldset` | Fieldset group with legend text and slot support |
|
|
145
218
|
|
|
146
219
|
## Development
|
|
147
220
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LitElement, PropertyDeclarations } from 'lit';
|
|
2
|
+
|
|
3
|
+
declare class SpectreBaseElement extends LitElement {
|
|
4
|
+
static properties: PropertyDeclarations;
|
|
5
|
+
private _ariaLabel;
|
|
6
|
+
private _ariaLabelledBy;
|
|
7
|
+
private _ariaDescribedBy;
|
|
8
|
+
private _title;
|
|
9
|
+
private _id;
|
|
10
|
+
get ariaLabel(): string | null;
|
|
11
|
+
set ariaLabel(value: string | null);
|
|
12
|
+
get ariaLabelledBy(): string | null;
|
|
13
|
+
set ariaLabelledBy(value: string | null);
|
|
14
|
+
get ariaDescribedBy(): string | null;
|
|
15
|
+
set ariaDescribedBy(value: string | null);
|
|
16
|
+
get title(): string;
|
|
17
|
+
set title(value: string | undefined | null);
|
|
18
|
+
get id(): string;
|
|
19
|
+
set id(value: string | undefined | null);
|
|
20
|
+
createRenderRoot(): this;
|
|
21
|
+
connectedCallback(): void;
|
|
22
|
+
getAttribute(qualifiedName: string): string | null;
|
|
23
|
+
hasAttribute(qualifiedName: string): boolean;
|
|
24
|
+
setAttribute(qualifiedName: string, value: string): void;
|
|
25
|
+
removeAttribute(qualifiedName: string): void;
|
|
26
|
+
private _removeHostAttribute;
|
|
27
|
+
protected get forwardedAriaLabel(): string | undefined;
|
|
28
|
+
protected get forwardedAriaLabelledBy(): string | undefined;
|
|
29
|
+
protected get forwardedAriaDescribedBy(): string | undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { SpectreBaseElement as S };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LitElement, PropertyDeclarations } from 'lit';
|
|
2
|
+
|
|
3
|
+
declare class SpectreBaseElement extends LitElement {
|
|
4
|
+
static properties: PropertyDeclarations;
|
|
5
|
+
private _ariaLabel;
|
|
6
|
+
private _ariaLabelledBy;
|
|
7
|
+
private _ariaDescribedBy;
|
|
8
|
+
private _title;
|
|
9
|
+
private _id;
|
|
10
|
+
get ariaLabel(): string | null;
|
|
11
|
+
set ariaLabel(value: string | null);
|
|
12
|
+
get ariaLabelledBy(): string | null;
|
|
13
|
+
set ariaLabelledBy(value: string | null);
|
|
14
|
+
get ariaDescribedBy(): string | null;
|
|
15
|
+
set ariaDescribedBy(value: string | null);
|
|
16
|
+
get title(): string;
|
|
17
|
+
set title(value: string | undefined | null);
|
|
18
|
+
get id(): string;
|
|
19
|
+
set id(value: string | undefined | null);
|
|
20
|
+
createRenderRoot(): this;
|
|
21
|
+
connectedCallback(): void;
|
|
22
|
+
getAttribute(qualifiedName: string): string | null;
|
|
23
|
+
hasAttribute(qualifiedName: string): boolean;
|
|
24
|
+
setAttribute(qualifiedName: string, value: string): void;
|
|
25
|
+
removeAttribute(qualifiedName: string): void;
|
|
26
|
+
private _removeHostAttribute;
|
|
27
|
+
protected get forwardedAriaLabel(): string | undefined;
|
|
28
|
+
protected get forwardedAriaLabelledBy(): string | undefined;
|
|
29
|
+
protected get forwardedAriaDescribedBy(): string | undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { SpectreBaseElement as S };
|