@neumorphism-ui/elements 1.0.0-next.0 → 1.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +12 -1
  2. package/cdn/neu.min.js +184 -51
  3. package/custom-elements.json +2232 -282
  4. package/dist/all.d.ts +8 -0
  5. package/dist/all.js +8 -0
  6. package/dist/checkbox.d.ts +3 -0
  7. package/dist/checkbox.js +4 -0
  8. package/dist/components/button/button.d.ts +0 -2
  9. package/dist/components/button/button.js +3 -36
  10. package/dist/components/checkbox/checkbox.d.ts +44 -0
  11. package/dist/components/checkbox/checkbox.def.d.ts +31 -0
  12. package/dist/components/checkbox/checkbox.def.js +37 -0
  13. package/dist/components/checkbox/checkbox.js +40 -0
  14. package/dist/components/checkbox/checkbox.styles.d.ts +1 -0
  15. package/dist/components/checkbox/checkbox.styles.js +28 -0
  16. package/dist/components/icon/system-icons.d.ts +10 -0
  17. package/dist/components/icon/system-icons.js +22 -11
  18. package/dist/components/number-field/number-field.d.ts +84 -0
  19. package/dist/components/number-field/number-field.def.d.ts +125 -0
  20. package/dist/components/number-field/number-field.def.js +62 -0
  21. package/dist/components/number-field/number-field.js +121 -0
  22. package/dist/components/number-field/number-field.styles.d.ts +1 -0
  23. package/dist/components/number-field/number-field.styles.js +15 -0
  24. package/dist/components/option/option-data.d.ts +8 -0
  25. package/dist/components/option/option-data.js +12 -0
  26. package/dist/components/option/option.d.ts +19 -0
  27. package/dist/components/option/option.def.d.ts +10 -0
  28. package/dist/components/option/option.def.js +19 -0
  29. package/dist/components/option/option.js +17 -0
  30. package/dist/components/option/option.styles.d.ts +2 -0
  31. package/dist/components/option/option.styles.js +5 -0
  32. package/dist/components/radio/radio-link.d.ts +11 -0
  33. package/dist/components/radio/radio-link.js +5 -0
  34. package/dist/components/radio/radio.d.ts +29 -0
  35. package/dist/components/radio/radio.def.d.ts +11 -0
  36. package/dist/components/radio/radio.def.js +25 -0
  37. package/dist/components/radio/radio.js +43 -0
  38. package/dist/components/radio/radio.styles.d.ts +1 -0
  39. package/dist/components/radio/radio.styles.js +21 -0
  40. package/dist/components/radio-group/radio-group.d.ts +77 -0
  41. package/dist/components/radio-group/radio-group.def.d.ts +40 -0
  42. package/dist/components/radio-group/radio-group.def.js +55 -0
  43. package/dist/components/radio-group/radio-group.js +184 -0
  44. package/dist/components/radio-group/radio-group.styles.d.ts +1 -0
  45. package/dist/components/radio-group/radio-group.styles.js +15 -0
  46. package/dist/components/select/select.d.ts +119 -0
  47. package/dist/components/select/select.def.d.ts +38 -0
  48. package/dist/components/select/select.def.js +59 -0
  49. package/dist/components/select/select.js +385 -0
  50. package/dist/components/select/select.styles.d.ts +1 -0
  51. package/dist/components/select/select.styles.js +39 -0
  52. package/dist/components/shared/checkable.d.ts +45 -0
  53. package/dist/components/shared/checkable.js +108 -0
  54. package/dist/components/shared/field.styles.d.ts +1 -0
  55. package/dist/components/shared/field.styles.js +36 -0
  56. package/dist/components/shared/press.d.ts +7 -0
  57. package/dist/components/shared/press.js +42 -0
  58. package/dist/components/shared/step.d.ts +2 -0
  59. package/dist/components/shared/step.js +2 -0
  60. package/dist/components/shared/text-control.d.ts +72 -0
  61. package/dist/components/shared/text-control.js +191 -0
  62. package/dist/components/slider/slider.d.ts +69 -0
  63. package/dist/components/slider/slider.def.d.ts +39 -0
  64. package/dist/components/slider/slider.def.js +76 -0
  65. package/dist/components/slider/slider.js +170 -0
  66. package/dist/components/slider/slider.styles.d.ts +1 -0
  67. package/dist/components/slider/slider.styles.js +16 -0
  68. package/dist/components/switch/switch.d.ts +4 -30
  69. package/dist/components/switch/switch.js +5 -117
  70. package/dist/components/text-field/implicit-submit.d.ts +5 -0
  71. package/dist/components/text-field/implicit-submit.js +8 -3
  72. package/dist/components/text-field/text-field.d.ts +9 -36
  73. package/dist/components/text-field/text-field.js +21 -178
  74. package/dist/components/text-field/text-field.styles.d.ts +1 -1
  75. package/dist/components/text-field/text-field.styles.js +2 -35
  76. package/dist/components/textarea/textarea.d.ts +98 -0
  77. package/dist/components/textarea/textarea.def.d.ts +139 -0
  78. package/dist/components/textarea/textarea.def.js +65 -0
  79. package/dist/components/textarea/textarea.js +101 -0
  80. package/dist/components/textarea/textarea.styles.d.ts +1 -0
  81. package/dist/components/textarea/textarea.styles.js +9 -0
  82. package/dist/core/define.d.ts +16 -1
  83. package/dist/core/form-control.js +3 -1
  84. package/dist/core/validation.d.ts +6 -2
  85. package/dist/core/validation.js +15 -8
  86. package/dist/number-field.d.ts +3 -0
  87. package/dist/number-field.js +4 -0
  88. package/dist/option.d.ts +3 -0
  89. package/dist/option.js +4 -0
  90. package/dist/radio-group.d.ts +4 -0
  91. package/dist/radio-group.js +6 -0
  92. package/dist/radio.d.ts +3 -0
  93. package/dist/radio.js +4 -0
  94. package/dist/select.d.ts +3 -0
  95. package/dist/select.js +4 -0
  96. package/dist/slider.d.ts +3 -0
  97. package/dist/slider.js +4 -0
  98. package/dist/ssr.d.ts +9 -5
  99. package/dist/ssr.js +25 -5
  100. package/dist/textarea.d.ts +3 -0
  101. package/dist/textarea.js +4 -0
  102. package/package.json +41 -1
package/dist/ssr.js CHANGED
@@ -2,15 +2,24 @@ 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';
22
+ export { optionLabel } from './components/option/option-data.js';
14
23
  export { attributeName, coerceProperty, parseAttribute, parseProps, 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([
@@ -18,24 +27,35 @@ export const definitions = /* @__PURE__ */ new Map([
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
- /** The `<template shadowrootmode>` for one element, or '' for tags this library does not own. */
35
- export function renderDSD(tag, attrs) {
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
  }
@@ -0,0 +1,3 @@
1
+ import { NeuTextarea } from './components/textarea/textarea.js';
2
+ export { NeuTextarea };
3
+ export { textareaDef } from './components/textarea/textarea.def.js';
@@ -0,0 +1,4 @@
1
+ import { NeuTextarea } from './components/textarea/textarea.js';
2
+ NeuTextarea.define();
3
+ export { NeuTextarea };
4
+ export { textareaDef } from './components/textarea/textarea.def.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neumorphism-ui/elements",
3
- "version": "1.0.0-next.0",
3
+ "version": "1.0.0-next.2",
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"
@@ -81,13 +113,21 @@
81
113
  "./dist/badge.js",
82
114
  "./dist/button.js",
83
115
  "./dist/button-group.js",
116
+ "./dist/checkbox.js",
84
117
  "./dist/divider.js",
85
118
  "./dist/icon.js",
86
119
  "./dist/icon-button.js",
120
+ "./dist/number-field.js",
121
+ "./dist/option.js",
122
+ "./dist/radio.js",
123
+ "./dist/radio-group.js",
124
+ "./dist/select.js",
125
+ "./dist/slider.js",
87
126
  "./dist/spinner.js",
88
127
  "./dist/surface.js",
89
128
  "./dist/switch.js",
90
129
  "./dist/text-field.js",
130
+ "./dist/textarea.js",
91
131
  "./dist/all.js",
92
132
  "./cdn/neu.min.js"
93
133
  ],