@neumorphism-ui/elements 1.0.0-next.1 → 1.0.0-next.3
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 +12 -1
- package/cdn/neu.min.js +176 -51
- package/custom-elements.json +2555 -358
- package/dist/all.d.ts +8 -0
- package/dist/all.js +8 -0
- package/dist/checkbox.d.ts +3 -0
- package/dist/checkbox.js +4 -0
- package/dist/components/avatar/avatar.d.ts +0 -3
- package/dist/components/avatar/avatar.def.d.ts +0 -3
- package/dist/components/avatar/avatar.def.js +4 -18
- package/dist/components/avatar/avatar.docs.d.ts +2 -0
- package/dist/components/avatar/avatar.docs.js +22 -0
- package/dist/components/avatar/avatar.js +7 -1
- package/dist/components/badge/badge.d.ts +0 -2
- package/dist/components/badge/badge.def.d.ts +0 -2
- package/dist/components/badge/badge.def.js +1 -14
- package/dist/components/badge/badge.docs.d.ts +2 -0
- package/dist/components/badge/badge.docs.js +17 -0
- package/dist/components/button/button.d.ts +0 -2
- package/dist/components/button/button.def.d.ts +0 -5
- package/dist/components/button/button.def.js +3 -25
- package/dist/components/button/button.docs.d.ts +2 -0
- package/dist/components/button/button.docs.js +29 -0
- package/dist/components/button/button.js +3 -36
- package/dist/components/button-group/button-group.d.ts +0 -2
- package/dist/components/button-group/button-group.def.d.ts +0 -2
- package/dist/components/button-group/button-group.def.js +1 -10
- package/dist/components/button-group/button-group.docs.d.ts +2 -0
- package/dist/components/button-group/button-group.docs.js +13 -0
- package/dist/components/checkbox/checkbox.d.ts +40 -0
- package/dist/components/checkbox/checkbox.def.d.ts +27 -0
- package/dist/components/checkbox/checkbox.def.js +21 -0
- package/dist/components/checkbox/checkbox.docs.d.ts +2 -0
- package/dist/components/checkbox/checkbox.docs.js +27 -0
- package/dist/components/checkbox/checkbox.js +40 -0
- package/dist/components/checkbox/checkbox.styles.d.ts +1 -0
- package/dist/components/checkbox/checkbox.styles.js +28 -0
- package/dist/components/divider/divider.d.ts +0 -1
- package/dist/components/divider/divider.def.d.ts +0 -1
- package/dist/components/divider/divider.def.js +0 -9
- package/dist/components/divider/divider.docs.d.ts +2 -0
- package/dist/components/divider/divider.docs.js +12 -0
- package/dist/components/icon/icon.d.ts +0 -3
- package/dist/components/icon/icon.def.d.ts +0 -3
- package/dist/components/icon/icon.def.js +3 -10
- package/dist/components/icon/icon.docs.d.ts +2 -0
- package/dist/components/icon/icon.docs.js +13 -0
- package/dist/components/icon/system-icons.d.ts +10 -0
- package/dist/components/icon/system-icons.js +22 -11
- package/dist/components/icon-button/icon-button.d.ts +0 -5
- package/dist/components/icon-button/icon-button.def.d.ts +0 -5
- package/dist/components/icon-button/icon-button.def.js +3 -17
- package/dist/components/icon-button/icon-button.docs.d.ts +2 -0
- package/dist/components/icon-button/icon-button.docs.js +26 -0
- package/dist/components/number-field/number-field.d.ts +79 -0
- package/dist/components/number-field/number-field.def.d.ts +115 -0
- package/dist/components/number-field/number-field.def.js +40 -0
- package/dist/components/number-field/number-field.docs.d.ts +2 -0
- package/dist/components/number-field/number-field.docs.js +45 -0
- package/dist/components/number-field/number-field.js +121 -0
- package/dist/components/number-field/number-field.styles.d.ts +1 -0
- package/dist/components/number-field/number-field.styles.js +15 -0
- package/dist/components/option/option-data.d.ts +8 -0
- package/dist/components/option/option-data.js +12 -0
- package/dist/components/option/option.d.ts +17 -0
- package/dist/components/option/option.def.d.ts +8 -0
- package/dist/components/option/option.def.js +12 -0
- package/dist/components/option/option.docs.d.ts +2 -0
- package/dist/components/option/option.docs.js +12 -0
- package/dist/components/option/option.js +17 -0
- package/dist/components/option/option.styles.d.ts +2 -0
- package/dist/components/option/option.styles.js +5 -0
- package/dist/components/radio/radio-link.d.ts +11 -0
- package/dist/components/radio/radio-link.js +5 -0
- package/dist/components/radio/radio.d.ts +27 -0
- package/dist/components/radio/radio.def.d.ts +9 -0
- package/dist/components/radio/radio.def.js +12 -0
- package/dist/components/radio/radio.docs.d.ts +2 -0
- package/dist/components/radio/radio.docs.js +18 -0
- package/dist/components/radio/radio.js +43 -0
- package/dist/components/radio/radio.styles.d.ts +1 -0
- package/dist/components/radio/radio.styles.js +21 -0
- package/dist/components/radio-group/radio-group.d.ts +76 -0
- package/dist/components/radio-group/radio-group.def.d.ts +36 -0
- package/dist/components/radio-group/radio-group.def.js +40 -0
- package/dist/components/radio-group/radio-group.docs.d.ts +2 -0
- package/dist/components/radio-group/radio-group.docs.js +37 -0
- package/dist/components/radio-group/radio-group.js +208 -0
- package/dist/components/radio-group/radio-group.styles.d.ts +1 -0
- package/dist/components/radio-group/radio-group.styles.js +13 -0
- package/dist/components/select/select.d.ts +115 -0
- package/dist/components/select/select.def.d.ts +34 -0
- package/dist/components/select/select.def.js +35 -0
- package/dist/components/select/select.docs.d.ts +2 -0
- package/dist/components/select/select.docs.js +65 -0
- package/dist/components/select/select.js +391 -0
- package/dist/components/select/select.styles.d.ts +1 -0
- package/dist/components/select/select.styles.js +35 -0
- package/dist/components/shared/checkable.d.ts +45 -0
- package/dist/components/shared/checkable.js +108 -0
- package/dist/components/shared/field.styles.d.ts +1 -0
- package/dist/components/shared/field.styles.js +34 -0
- package/dist/components/shared/press.d.ts +7 -0
- package/dist/components/shared/press.js +42 -0
- package/dist/components/shared/step.d.ts +2 -0
- package/dist/components/shared/step.js +2 -0
- package/dist/components/shared/text-control.d.ts +72 -0
- package/dist/components/shared/text-control.js +191 -0
- package/dist/components/slider/slider.d.ts +67 -0
- package/dist/components/slider/slider.def.d.ts +37 -0
- package/dist/components/slider/slider.def.js +54 -0
- package/dist/components/slider/slider.docs.d.ts +2 -0
- package/dist/components/slider/slider.docs.js +45 -0
- package/dist/components/slider/slider.js +170 -0
- package/dist/components/slider/slider.styles.d.ts +1 -0
- package/dist/components/slider/slider.styles.js +16 -0
- package/dist/components/spinner/spinner.d.ts +0 -1
- package/dist/components/spinner/spinner.def.d.ts +0 -1
- package/dist/components/spinner/spinner.def.js +1 -13
- package/dist/components/spinner/spinner.docs.d.ts +2 -0
- package/dist/components/spinner/spinner.docs.js +17 -0
- package/dist/components/surface/surface.d.ts +0 -4
- package/dist/components/surface/surface.def.d.ts +0 -4
- package/dist/components/surface/surface.def.js +3 -12
- package/dist/components/surface/surface.docs.d.ts +2 -0
- package/dist/components/surface/surface.docs.js +15 -0
- package/dist/components/switch/switch.d.ts +4 -35
- package/dist/components/switch/switch.def.d.ts +0 -5
- package/dist/components/switch/switch.def.js +5 -21
- package/dist/components/switch/switch.docs.d.ts +2 -0
- package/dist/components/switch/switch.docs.js +26 -0
- package/dist/components/switch/switch.js +5 -117
- package/dist/components/text-field/implicit-submit.d.ts +5 -0
- package/dist/components/text-field/implicit-submit.js +8 -3
- package/dist/components/text-field/text-field.d.ts +9 -42
- package/dist/components/text-field/text-field.def.d.ts +0 -12
- package/dist/components/text-field/text-field.def.js +5 -30
- package/dist/components/text-field/text-field.docs.d.ts +2 -0
- package/dist/components/text-field/text-field.docs.js +45 -0
- package/dist/components/text-field/text-field.js +21 -178
- package/dist/components/text-field/text-field.styles.d.ts +1 -1
- package/dist/components/text-field/text-field.styles.js +2 -35
- package/dist/components/textarea/textarea.d.ts +92 -0
- package/dist/components/textarea/textarea.def.d.ts +127 -0
- package/dist/components/textarea/textarea.def.js +44 -0
- package/dist/components/textarea/textarea.docs.d.ts +2 -0
- package/dist/components/textarea/textarea.docs.js +40 -0
- package/dist/components/textarea/textarea.js +101 -0
- package/dist/components/textarea/textarea.styles.d.ts +1 -0
- package/dist/components/textarea/textarea.styles.js +9 -0
- package/dist/components/theme-docs.d.ts +3 -0
- package/dist/components/theme-docs.js +8 -0
- package/dist/core/define.d.ts +20 -2
- package/dist/core/dom.d.ts +4 -0
- package/dist/core/dom.js +7 -0
- package/dist/core/form-control.js +6 -1
- package/dist/core/neu-element.d.ts +2 -2
- package/dist/core/neu-element.js +10 -7
- package/dist/core/props.d.ts +13 -1
- package/dist/core/props.js +13 -3
- package/dist/core/styles.d.ts +0 -2
- package/dist/core/styles.js +0 -7
- package/dist/core/validation.d.ts +6 -2
- package/dist/core/validation.js +15 -8
- package/dist/docs.d.ts +3 -0
- package/dist/docs.js +41 -0
- package/dist/number-field.d.ts +3 -0
- package/dist/number-field.js +4 -0
- package/dist/option.d.ts +3 -0
- package/dist/option.js +4 -0
- package/dist/radio-group.d.ts +4 -0
- package/dist/radio-group.js +6 -0
- package/dist/radio.d.ts +3 -0
- package/dist/radio.js +4 -0
- package/dist/select.d.ts +3 -0
- package/dist/select.js +4 -0
- package/dist/slider.d.ts +3 -0
- package/dist/slider.js +4 -0
- package/dist/ssr.d.ts +10 -6
- package/dist/ssr.js +26 -6
- package/dist/textarea.d.ts +3 -0
- package/dist/textarea.js +4 -0
- package/package.json +45 -1
package/dist/core/styles.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type { DocEntry } from './define.js';
|
|
2
1
|
/**
|
|
3
2
|
* Re-declares the derived theme values on every host (spec §5.3). Fallbacks are the light
|
|
4
3
|
* defaults from @neumorphism-ui/tokens so components still look right without the tokens stylesheet;
|
|
5
4
|
* styles.test.ts keeps the two in sync.
|
|
6
5
|
*/
|
|
7
6
|
export declare const hostTheme = "\n:host {\n --_neu-bg: var(--neu-bg, #e0e5ec);\n --_neu-accent-c: var(--neu-accent, #6d5dfc);\n --_neu-d: var(--neu-distance, 6px);\n --_neu-k: var(--neu-intensity, 1);\n --_neu-r: var(--neu-radius, 12px);\n --_neu-danger: var(--neu-danger, #e5484d);\n --_neu-dur: var(--neu-duration, 150ms);\n --_neu-sd: var(--neu-shadow-dark, color-mix(in oklab, var(--_neu-bg), black min(100%, calc(var(--_neu-shade, 18%) * var(--_neu-k)))));\n --_neu-sl: var(--neu-shadow-light, color-mix(in oklab, var(--_neu-bg), white min(100%, calc(var(--_neu-light, 100%) * var(--_neu-k)))));\n --_neu-fg: var(--neu-fg, color-mix(in oklab, var(--_neu-bg), var(--_neu-ink, black) var(--_neu-fg-mix, 32%)));\n --_neu-fg-muted: var(--neu-fg-muted, color-mix(in oklab, var(--_neu-bg), var(--_neu-ink, black) var(--_neu-fg-muted-mix, 18%)));\n --_neu-accent-soft: color-mix(in oklab, var(--_neu-accent-c) 25%, var(--_neu-bg));\n --_neu-focus: 0 0 0 3px color-mix(in oklab, var(--_neu-accent-c) 45%, transparent);\n --_neu-raised: var(--_neu-d) var(--_neu-d) calc(var(--_neu-d) * 2) var(--_neu-sd), calc(var(--_neu-d) * -1) calc(var(--_neu-d) * -1) calc(var(--_neu-d) * 2) var(--_neu-sl);\n --_neu-raised-sm: calc(var(--_neu-d) * 0.5) calc(var(--_neu-d) * 0.5) var(--_neu-d) var(--_neu-sd), calc(var(--_neu-d) * -0.5) calc(var(--_neu-d) * -0.5) var(--_neu-d) var(--_neu-sl);\n --_neu-inset: inset var(--_neu-d) var(--_neu-d) calc(var(--_neu-d) * 2) var(--_neu-sd), inset calc(var(--_neu-d) * -1) calc(var(--_neu-d) * -1) calc(var(--_neu-d) * 2) var(--_neu-sl);\n --_neu-inset-sm: inset calc(var(--_neu-d) * 0.5) calc(var(--_neu-d) * 0.5) var(--_neu-d) var(--_neu-sd), inset calc(var(--_neu-d) * -0.5) calc(var(--_neu-d) * -0.5) var(--_neu-d) var(--_neu-sl);\n font-family: var(--neu-font);\n color: var(--_neu-fg);\n -webkit-tap-highlight-color: transparent;\n}\n:host(:not(:defined)) { visibility: inherit !important; min-block-size: auto !important; }\n:host([hidden]) { display: none !important; }\n:host(:focus) { outline: none; }\n*, *::before, *::after { box-sizing: border-box; }\n";
|
|
8
|
-
export declare const themeCssProperties: readonly DocEntry[];
|
package/dist/core/styles.js
CHANGED
|
@@ -31,10 +31,3 @@ export const hostTheme = `
|
|
|
31
31
|
:host(:focus) { outline: none; }
|
|
32
32
|
*, *::before, *::after { box-sizing: border-box; }
|
|
33
33
|
`;
|
|
34
|
-
export const themeCssProperties = [
|
|
35
|
-
{ name: '--neu-bg', description: 'Surface colour; shadows and text are derived from it.' },
|
|
36
|
-
{ name: '--neu-accent', description: 'Accent colour.' },
|
|
37
|
-
{ name: '--neu-distance', description: 'Shadow distance for the md size.' },
|
|
38
|
-
{ name: '--neu-intensity', description: 'Shadow strength multiplier.' },
|
|
39
|
-
{ name: '--neu-radius', description: 'Corner radius for the md size.' },
|
|
40
|
-
];
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The browser's own, localised "value missing" message, borrowed once from a required native
|
|
3
|
+
* control: an input of type `kind` ("checkbox", "radio") or, for "select", a select. `fallback`
|
|
4
|
+
* covers a browser that reports none.
|
|
5
|
+
*/
|
|
6
|
+
export declare function requiredMessage(kind: 'checkbox' | 'radio' | 'select', fallback: string): string;
|
|
3
7
|
/** Copies a native input's validity so the host can report the same errors. */
|
|
4
8
|
export declare function copyValidity(validity: ValidityState): ValidityStateFlags;
|
package/dist/core/validation.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
const missing = new Map();
|
|
2
|
+
/**
|
|
3
|
+
* The browser's own, localised "value missing" message, borrowed once from a required native
|
|
4
|
+
* control: an input of type `kind` ("checkbox", "radio") or, for "select", a select. `fallback`
|
|
5
|
+
* covers a browser that reports none.
|
|
6
|
+
*/
|
|
7
|
+
export function requiredMessage(kind, fallback) {
|
|
8
|
+
let message = missing.get(kind);
|
|
9
|
+
if (message === undefined) {
|
|
10
|
+
const probe = kind === 'select'
|
|
11
|
+
? document.createElement('select')
|
|
12
|
+
: Object.assign(document.createElement('input'), { type: kind });
|
|
7
13
|
probe.required = true;
|
|
8
|
-
|
|
14
|
+
message = probe.validationMessage || fallback;
|
|
15
|
+
missing.set(kind, message);
|
|
9
16
|
}
|
|
10
|
-
return
|
|
17
|
+
return message;
|
|
11
18
|
}
|
|
12
19
|
/** Copies a native input's validity so the host can report the same errors. */
|
|
13
20
|
export function copyValidity(validity) {
|
package/dist/docs.d.ts
ADDED
package/dist/docs.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { avatarDocs } from './components/avatar/avatar.docs.js';
|
|
2
|
+
import { badgeDocs } from './components/badge/badge.docs.js';
|
|
3
|
+
import { buttonDocs } from './components/button/button.docs.js';
|
|
4
|
+
import { buttonGroupDocs } from './components/button-group/button-group.docs.js';
|
|
5
|
+
import { checkboxDocs } from './components/checkbox/checkbox.docs.js';
|
|
6
|
+
import { dividerDocs } from './components/divider/divider.docs.js';
|
|
7
|
+
import { iconDocs } from './components/icon/icon.docs.js';
|
|
8
|
+
import { iconButtonDocs } from './components/icon-button/icon-button.docs.js';
|
|
9
|
+
import { numberFieldDocs } from './components/number-field/number-field.docs.js';
|
|
10
|
+
import { optionDocs } from './components/option/option.docs.js';
|
|
11
|
+
import { radioDocs } from './components/radio/radio.docs.js';
|
|
12
|
+
import { radioGroupDocs } from './components/radio-group/radio-group.docs.js';
|
|
13
|
+
import { selectDocs } from './components/select/select.docs.js';
|
|
14
|
+
import { sliderDocs } from './components/slider/slider.docs.js';
|
|
15
|
+
import { spinnerDocs } from './components/spinner/spinner.docs.js';
|
|
16
|
+
import { surfaceDocs } from './components/surface/surface.docs.js';
|
|
17
|
+
import { switchDocs } from './components/switch/switch.docs.js';
|
|
18
|
+
import { textFieldDocs } from './components/text-field/text-field.docs.js';
|
|
19
|
+
import { textareaDocs } from './components/textarea/textarea.docs.js';
|
|
20
|
+
/** The documentation of every component by tag, for tools. DOM-free; never part of the runtime bundles. */
|
|
21
|
+
export const componentDocs = new Map([
|
|
22
|
+
['neu-avatar', avatarDocs],
|
|
23
|
+
['neu-badge', badgeDocs],
|
|
24
|
+
['neu-button', buttonDocs],
|
|
25
|
+
['neu-button-group', buttonGroupDocs],
|
|
26
|
+
['neu-checkbox', checkboxDocs],
|
|
27
|
+
['neu-divider', dividerDocs],
|
|
28
|
+
['neu-icon', iconDocs],
|
|
29
|
+
['neu-icon-button', iconButtonDocs],
|
|
30
|
+
['neu-number-field', numberFieldDocs],
|
|
31
|
+
['neu-option', optionDocs],
|
|
32
|
+
['neu-radio', radioDocs],
|
|
33
|
+
['neu-radio-group', radioGroupDocs],
|
|
34
|
+
['neu-select', selectDocs],
|
|
35
|
+
['neu-slider', sliderDocs],
|
|
36
|
+
['neu-spinner', spinnerDocs],
|
|
37
|
+
['neu-surface', surfaceDocs],
|
|
38
|
+
['neu-switch', switchDocs],
|
|
39
|
+
['neu-text-field', textFieldDocs],
|
|
40
|
+
['neu-textarea', textareaDocs],
|
|
41
|
+
]);
|
package/dist/option.d.ts
ADDED
package/dist/option.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// A group is unusable without its radios (tokens hide undefined neu-radio), so define both.
|
|
2
|
+
import './radio.js';
|
|
3
|
+
import { NeuRadioGroup } from './components/radio-group/radio-group.js';
|
|
4
|
+
NeuRadioGroup.define();
|
|
5
|
+
export { NeuRadioGroup };
|
|
6
|
+
export { radioGroupDef } from './components/radio-group/radio-group.def.js';
|
package/dist/radio.d.ts
ADDED
package/dist/radio.js
ADDED
package/dist/select.d.ts
ADDED
package/dist/select.js
ADDED
package/dist/slider.d.ts
ADDED
package/dist/slider.js
ADDED
package/dist/ssr.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type { ComponentDef } from './core/define.js';
|
|
2
|
-
export type { ComponentDef, ComponentDocs, DocEntry, FormDef } from './core/define.js';
|
|
1
|
+
import type { ComponentDef, TemplateContext } from './core/define.js';
|
|
2
|
+
export type { ComponentDef, ComponentDocs, DocEntry, FormDef, OptionData, TemplateContext, } from './core/define.js';
|
|
3
3
|
export { formDefaultProp } from './core/define.js';
|
|
4
|
+
export { optionLabel } from './components/option/option-data.js';
|
|
4
5
|
export type { InferProps, PropDecl, PropsSchema, PropValue } from './core/props.js';
|
|
5
|
-
export { attributeName, coerceProperty, parseAttribute, parseProps, serializeAttribute, } from './core/props.js';
|
|
6
|
+
export { attributeName, coerceProperty, parseAttribute, parseProps, reflects, serializeAttribute, } from './core/props.js';
|
|
6
7
|
/** Every component definition by tag. DOM-free: safe to import in Node. */
|
|
7
8
|
export declare const definitions: ReadonlyMap<string, ComponentDef>;
|
|
8
9
|
/** Inner HTML of a declarative shadow root: inline styles, then the template. */
|
|
9
|
-
export declare function renderShadowContents(def: ComponentDef, attrs: Readonly<Record<string, string
|
|
10
|
-
/**
|
|
11
|
-
|
|
10
|
+
export declare function renderShadowContents(def: ComponentDef, attrs: Readonly<Record<string, string>>, ctx?: TemplateContext): string;
|
|
11
|
+
/**
|
|
12
|
+
* The `<template shadowrootmode>` for one element, or '' for tags this library does not own.
|
|
13
|
+
* `ctx` carries what the attributes cannot, such as the options of a select (spec §8.2).
|
|
14
|
+
*/
|
|
15
|
+
export declare function renderDSD(tag: string, attrs: Readonly<Record<string, string>>, ctx?: TemplateContext): string;
|
package/dist/ssr.js
CHANGED
|
@@ -2,40 +2,60 @@ import { avatarDef } from './components/avatar/avatar.def.js';
|
|
|
2
2
|
import { badgeDef } from './components/badge/badge.def.js';
|
|
3
3
|
import { buttonDef } from './components/button/button.def.js';
|
|
4
4
|
import { buttonGroupDef } from './components/button-group/button-group.def.js';
|
|
5
|
+
import { checkboxDef } from './components/checkbox/checkbox.def.js';
|
|
5
6
|
import { dividerDef } from './components/divider/divider.def.js';
|
|
6
7
|
import { iconDef } from './components/icon/icon.def.js';
|
|
7
8
|
import { iconButtonDef } from './components/icon-button/icon-button.def.js';
|
|
9
|
+
import { numberFieldDef } from './components/number-field/number-field.def.js';
|
|
10
|
+
import { optionDef } from './components/option/option.def.js';
|
|
11
|
+
import { radioDef } from './components/radio/radio.def.js';
|
|
12
|
+
import { radioGroupDef } from './components/radio-group/radio-group.def.js';
|
|
13
|
+
import { selectDef } from './components/select/select.def.js';
|
|
14
|
+
import { sliderDef } from './components/slider/slider.def.js';
|
|
8
15
|
import { spinnerDef } from './components/spinner/spinner.def.js';
|
|
9
16
|
import { surfaceDef } from './components/surface/surface.def.js';
|
|
10
17
|
import { switchDef } from './components/switch/switch.def.js';
|
|
11
18
|
import { textFieldDef } from './components/text-field/text-field.def.js';
|
|
19
|
+
import { textareaDef } from './components/textarea/textarea.def.js';
|
|
12
20
|
import { parseProps } from './core/props.js';
|
|
13
21
|
export { formDefaultProp } from './core/define.js';
|
|
14
|
-
export {
|
|
22
|
+
export { optionLabel } from './components/option/option-data.js';
|
|
23
|
+
export { attributeName, coerceProperty, parseAttribute, parseProps, reflects, serializeAttribute, } from './core/props.js';
|
|
15
24
|
/** Every component definition by tag. DOM-free: safe to import in Node. */
|
|
16
25
|
export const definitions = /* @__PURE__ */ new Map([
|
|
17
26
|
[avatarDef.tag, avatarDef],
|
|
18
27
|
[badgeDef.tag, badgeDef],
|
|
19
28
|
[buttonDef.tag, buttonDef],
|
|
20
29
|
[buttonGroupDef.tag, buttonGroupDef],
|
|
30
|
+
[checkboxDef.tag, checkboxDef],
|
|
21
31
|
[dividerDef.tag, dividerDef],
|
|
22
32
|
[iconDef.tag, iconDef],
|
|
23
33
|
[iconButtonDef.tag, iconButtonDef],
|
|
34
|
+
[numberFieldDef.tag, numberFieldDef],
|
|
35
|
+
[optionDef.tag, optionDef],
|
|
36
|
+
[radioDef.tag, radioDef],
|
|
37
|
+
[radioGroupDef.tag, radioGroupDef],
|
|
38
|
+
[selectDef.tag, selectDef],
|
|
39
|
+
[sliderDef.tag, sliderDef],
|
|
24
40
|
[spinnerDef.tag, spinnerDef],
|
|
25
41
|
[surfaceDef.tag, surfaceDef],
|
|
26
42
|
[switchDef.tag, switchDef],
|
|
27
43
|
[textFieldDef.tag, textFieldDef],
|
|
44
|
+
[textareaDef.tag, textareaDef],
|
|
28
45
|
]);
|
|
29
46
|
/** Inner HTML of a declarative shadow root: inline styles, then the template. */
|
|
30
|
-
export function renderShadowContents(def, attrs) {
|
|
47
|
+
export function renderShadowContents(def, attrs, ctx) {
|
|
31
48
|
const props = parseProps(def.props, (name) => (Object.hasOwn(attrs, name) ? attrs[name] : null));
|
|
32
|
-
return `<style data-neu-ssr>${def.styles}</style>${def.template(props).value}`;
|
|
49
|
+
return `<style data-neu-ssr>${def.styles}</style>${def.template(props, ctx).value}`;
|
|
33
50
|
}
|
|
34
|
-
/**
|
|
35
|
-
|
|
51
|
+
/**
|
|
52
|
+
* The `<template shadowrootmode>` for one element, or '' for tags this library does not own.
|
|
53
|
+
* `ctx` carries what the attributes cannot, such as the options of a select (spec §8.2).
|
|
54
|
+
*/
|
|
55
|
+
export function renderDSD(tag, attrs, ctx) {
|
|
36
56
|
const def = definitions.get(tag.toLowerCase());
|
|
37
57
|
if (!def)
|
|
38
58
|
return '';
|
|
39
59
|
const delegates = def.delegatesFocus ? ' shadowrootdelegatesfocus' : '';
|
|
40
|
-
return `<template shadowrootmode="open"${delegates}>${renderShadowContents(def, attrs)}</template>`;
|
|
60
|
+
return `<template shadowrootmode="open"${delegates}>${renderShadowContents(def, attrs, ctx)}</template>`;
|
|
41
61
|
}
|
package/dist/textarea.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neumorphism-ui/elements",
|
|
3
|
-
"version": "1.0.0-next.
|
|
3
|
+
"version": "1.0.0-next.3",
|
|
4
4
|
"description": "Neumorphism UI web components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
"types": "./dist/button-group.d.ts",
|
|
33
33
|
"default": "./dist/button-group.js"
|
|
34
34
|
},
|
|
35
|
+
"./checkbox.js": {
|
|
36
|
+
"types": "./dist/checkbox.d.ts",
|
|
37
|
+
"default": "./dist/checkbox.js"
|
|
38
|
+
},
|
|
35
39
|
"./icon-button.js": {
|
|
36
40
|
"types": "./dist/icon-button.d.ts",
|
|
37
41
|
"default": "./dist/icon-button.js"
|
|
@@ -48,6 +52,30 @@
|
|
|
48
52
|
"types": "./dist/icons.d.ts",
|
|
49
53
|
"default": "./dist/icons.js"
|
|
50
54
|
},
|
|
55
|
+
"./number-field.js": {
|
|
56
|
+
"types": "./dist/number-field.d.ts",
|
|
57
|
+
"default": "./dist/number-field.js"
|
|
58
|
+
},
|
|
59
|
+
"./option.js": {
|
|
60
|
+
"types": "./dist/option.d.ts",
|
|
61
|
+
"default": "./dist/option.js"
|
|
62
|
+
},
|
|
63
|
+
"./radio.js": {
|
|
64
|
+
"types": "./dist/radio.d.ts",
|
|
65
|
+
"default": "./dist/radio.js"
|
|
66
|
+
},
|
|
67
|
+
"./radio-group.js": {
|
|
68
|
+
"types": "./dist/radio-group.d.ts",
|
|
69
|
+
"default": "./dist/radio-group.js"
|
|
70
|
+
},
|
|
71
|
+
"./select.js": {
|
|
72
|
+
"types": "./dist/select.d.ts",
|
|
73
|
+
"default": "./dist/select.js"
|
|
74
|
+
},
|
|
75
|
+
"./slider.js": {
|
|
76
|
+
"types": "./dist/slider.d.ts",
|
|
77
|
+
"default": "./dist/slider.js"
|
|
78
|
+
},
|
|
51
79
|
"./spinner.js": {
|
|
52
80
|
"types": "./dist/spinner.d.ts",
|
|
53
81
|
"default": "./dist/spinner.js"
|
|
@@ -60,6 +88,10 @@
|
|
|
60
88
|
"types": "./dist/switch.d.ts",
|
|
61
89
|
"default": "./dist/switch.js"
|
|
62
90
|
},
|
|
91
|
+
"./textarea.js": {
|
|
92
|
+
"types": "./dist/textarea.d.ts",
|
|
93
|
+
"default": "./dist/textarea.js"
|
|
94
|
+
},
|
|
63
95
|
"./text-field.js": {
|
|
64
96
|
"types": "./dist/text-field.d.ts",
|
|
65
97
|
"default": "./dist/text-field.js"
|
|
@@ -68,6 +100,10 @@
|
|
|
68
100
|
"types": "./dist/all.d.ts",
|
|
69
101
|
"default": "./dist/all.js"
|
|
70
102
|
},
|
|
103
|
+
"./docs.js": {
|
|
104
|
+
"types": "./dist/docs.d.ts",
|
|
105
|
+
"default": "./dist/docs.js"
|
|
106
|
+
},
|
|
71
107
|
"./ssr.js": {
|
|
72
108
|
"types": "./dist/ssr.d.ts",
|
|
73
109
|
"default": "./dist/ssr.js"
|
|
@@ -81,13 +117,21 @@
|
|
|
81
117
|
"./dist/badge.js",
|
|
82
118
|
"./dist/button.js",
|
|
83
119
|
"./dist/button-group.js",
|
|
120
|
+
"./dist/checkbox.js",
|
|
84
121
|
"./dist/divider.js",
|
|
85
122
|
"./dist/icon.js",
|
|
86
123
|
"./dist/icon-button.js",
|
|
124
|
+
"./dist/number-field.js",
|
|
125
|
+
"./dist/option.js",
|
|
126
|
+
"./dist/radio.js",
|
|
127
|
+
"./dist/radio-group.js",
|
|
128
|
+
"./dist/select.js",
|
|
129
|
+
"./dist/slider.js",
|
|
87
130
|
"./dist/spinner.js",
|
|
88
131
|
"./dist/surface.js",
|
|
89
132
|
"./dist/switch.js",
|
|
90
133
|
"./dist/text-field.js",
|
|
134
|
+
"./dist/textarea.js",
|
|
91
135
|
"./dist/all.js",
|
|
92
136
|
"./cdn/neu.min.js"
|
|
93
137
|
],
|