jvetrau-ds 0.2.1 → 0.2.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.
Files changed (46) hide show
  1. package/components/button/button-presentation.cjs +17 -0
  2. package/components/button/button-presentation.cjs.map +1 -0
  3. package/components/button/button-presentation.d.ts +1 -0
  4. package/components/button/button-presentation.js +15 -0
  5. package/components/button/button-presentation.js.map +1 -0
  6. package/components/button/button.css +146 -0
  7. package/components/button/index.cjs +11 -1
  8. package/components/button/index.d.ts +1 -0
  9. package/components/button/index.js +1 -0
  10. package/components/checkbox/checkbox.cjs +3 -1
  11. package/components/checkbox/checkbox.cjs.map +1 -1
  12. package/components/checkbox/checkbox.css +24 -1
  13. package/components/checkbox/checkbox.d.ts +1 -0
  14. package/components/checkbox/checkbox.js +3 -1
  15. package/components/checkbox/checkbox.js.map +1 -1
  16. package/components/field/field.cjs +37 -17
  17. package/components/field/field.cjs.map +1 -1
  18. package/components/field/field.css +17 -0
  19. package/components/field/field.d.ts +2 -2
  20. package/components/field/field.js +37 -17
  21. package/components/field/field.js.map +1 -1
  22. package/components/flip-list/flip-list.cjs +5 -5
  23. package/components/flip-list/flip-list.cjs.map +1 -1
  24. package/components/flip-list/flip-list.css +20 -24
  25. package/components/flip-list/flip-list.js +4 -5
  26. package/components/flip-list/flip-list.js.map +1 -1
  27. package/components/index.cjs +5 -1
  28. package/components/index.d.ts +3 -2
  29. package/components/index.js +1 -1
  30. package/components/radio/radio.cjs +3 -1
  31. package/components/radio/radio.cjs.map +1 -1
  32. package/components/radio/radio.css +24 -1
  33. package/components/radio/radio.d.ts +1 -0
  34. package/components/radio/radio.js +3 -1
  35. package/components/radio/radio.js.map +1 -1
  36. package/components/tag/tag.cjs +9 -4
  37. package/components/tag/tag.cjs.map +1 -1
  38. package/components/tag/tag.css +40 -27
  39. package/components/tag/tag.d.ts +2 -1
  40. package/components/tag/tag.js +9 -4
  41. package/components/tag/tag.js.map +1 -1
  42. package/index.cjs +4 -0
  43. package/index.d.ts +2 -2
  44. package/index.js +1 -1
  45. package/package.json +1 -1
  46. package/styles.css +270 -52
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var classnames = require('../helpers/classnames');
4
+
5
+ function buttonLink(className = "") {
6
+ return classnames.classnames(
7
+ "button",
8
+ className,
9
+ {
10
+ "button--link": true
11
+ }
12
+ );
13
+ }
14
+
15
+ exports.buttonLink = buttonLink;
16
+ //# sourceMappingURL=button-presentation.cjs.map
17
+ //# sourceMappingURL=button-presentation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/button/button-presentation.ts"],"names":["classnames"],"mappings":";;;;AAEO,SAAS,UAAA,CACd,YAAY,EAAA,EACJ;AACR,EAAA,OAAOA,qBAAA;AAAA,IACL,QAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,cAAA,EAAgB;AAAA;AAClB,GACF;AACF","file":"button-presentation.cjs","sourcesContent":["import { classnames } from '../helpers/classnames';\n\nexport function buttonLink(\n className = '',\n): string {\n return classnames(\n 'button',\n className,\n {\n 'button--link': true,\n },\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function buttonLink(className?: string): string;
@@ -0,0 +1,15 @@
1
+ import { classnames } from '../helpers/classnames';
2
+
3
+ function buttonLink(className = "") {
4
+ return classnames(
5
+ "button",
6
+ className,
7
+ {
8
+ "button--link": true
9
+ }
10
+ );
11
+ }
12
+
13
+ export { buttonLink };
14
+ //# sourceMappingURL=button-presentation.js.map
15
+ //# sourceMappingURL=button-presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/button/button-presentation.ts"],"names":[],"mappings":";;AAEO,SAAS,UAAA,CACd,YAAY,EAAA,EACJ;AACR,EAAA,OAAO,UAAA;AAAA,IACL,QAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,cAAA,EAAgB;AAAA;AAClB,GACF;AACF","file":"button-presentation.js","sourcesContent":["import { classnames } from '../helpers/classnames';\n\nexport function buttonLink(\n className = '',\n): string {\n return classnames(\n 'button',\n className,\n {\n 'button--link': true,\n },\n );\n}\n"]}
@@ -83,25 +83,69 @@
83
83
  }
84
84
 
85
85
  .button:hover {
86
+ /* color */
87
+
88
+ /* typography */
89
+
90
+ /* size */
91
+
92
+ /* border */
93
+
94
+ /* depth */
95
+
96
+ /* motion */
86
97
  opacity: var(--button-opacity-hover);
87
98
  }
88
99
 
89
100
  .button:focus-visible {
101
+ /* color */
102
+
103
+ /* typography */
104
+
105
+ /* size */
106
+
107
+ /* border */
90
108
  outline:
91
109
  var(--button-focus-width)
92
110
  solid
93
111
  var(--button-focus-color);
94
112
  outline-offset: var(--button-focus-offset);
113
+
114
+ /* depth */
115
+
116
+ /* motion */
95
117
  }
96
118
 
97
119
  .button:active {
120
+ /* color */
121
+
122
+ /* typography */
123
+
124
+ /* size */
125
+
126
+ /* border */
127
+
128
+ /* depth */
129
+
130
+ /* motion */
98
131
  opacity: var(--button-opacity-active);
99
132
  }
100
133
 
101
134
  .button:disabled,
102
135
  .button--disabled {
136
+ /* color */
103
137
  background: var(--button-bg-disabled);
104
138
  color: var(--button-color-disabled);
139
+
140
+ /* typography */
141
+
142
+ /* size */
143
+
144
+ /* border */
145
+
146
+ /* depth */
147
+
148
+ /* motion */
105
149
  opacity: var(--button-opacity-disabled);
106
150
  cursor: not-allowed;
107
151
  }
@@ -109,25 +153,66 @@
109
153
  /* Rank */
110
154
 
111
155
  .button--primary {
156
+ /* color */
112
157
  --button-bg: var(--color-primary-2);
113
158
  --button-color: var(--color-text-primary-2);
114
159
  --button-focus-color: var(--color-primary-2);
160
+
161
+ /* typography */
162
+
163
+ /* size */
164
+
165
+ /* border */
166
+
167
+ /* depth */
168
+
169
+ /* motion */
115
170
  }
116
171
 
117
172
  .button--link {
173
+ /* color */
118
174
  --button-bg: transparent;
119
175
  --button-color: var(--color-link);
120
176
  --button-focus-color: var(--color-link);
177
+
178
+ /* typography */
179
+
180
+ /* size */
181
+ height: auto;
182
+ min-height: 0;
183
+ padding: 0;
184
+
185
+ /* border */
186
+
187
+ /* depth */
188
+
189
+ /* motion */
121
190
  }
122
191
 
123
192
  .button--link:disabled,
124
193
  .button--link.button--disabled {
194
+ /* color */
125
195
  background: transparent;
196
+
197
+ /* typography */
198
+
199
+ /* size */
200
+
201
+ /* border */
202
+
203
+ /* depth */
204
+
205
+ /* motion */
126
206
  }
127
207
 
128
208
  /* Density */
129
209
 
130
210
  .button--compact {
211
+ /* color */
212
+
213
+ /* typography */
214
+
215
+ /* size */
131
216
  /*
132
217
  * Compact presentation is intentionally left
133
218
  * token-driven but visually unfinished.
@@ -135,27 +220,66 @@
135
220
  * Add compact control dimensions when the
136
221
  * corresponding semantic tokens are available.
137
222
  */
223
+
224
+ /* border */
225
+
226
+ /* depth */
227
+
228
+ /* motion */
138
229
  }
139
230
 
140
231
  /* Mode */
141
232
 
142
233
  .button--toolbar {
234
+ /* color */
143
235
  --button-bg: transparent;
144
236
  --button-color: var(--color-text);
145
237
  --button-focus-color: var(--color-text);
146
238
 
147
239
  background: transparent;
240
+
241
+ /* typography */
242
+
243
+ /* size */
148
244
  padding-inline: 0;
245
+
246
+ /* border */
247
+
248
+ /* depth */
249
+
250
+ /* motion */
149
251
  }
150
252
 
151
253
  .button--toolbar:disabled,
152
254
  .button--toolbar.button--disabled {
255
+ /* color */
153
256
  background: transparent;
257
+
258
+ /* typography */
259
+
260
+ /* size */
261
+
262
+ /* border */
263
+
264
+ /* depth */
265
+
266
+ /* motion */
154
267
  }
155
268
 
156
269
  /* State */
157
270
 
158
271
  .button--loading {
272
+ /* color */
273
+
274
+ /* typography */
275
+
276
+ /* size */
277
+
278
+ /* border */
279
+
280
+ /* depth */
281
+
282
+ /* motion */
159
283
  /*
160
284
  * Loading behavior is already defined by the
161
285
  * component contract:
@@ -169,9 +293,31 @@
169
293
  /* Content */
170
294
 
171
295
  .button--icon-only {
296
+ /* color */
297
+
298
+ /* typography */
299
+
300
+ /* size */
172
301
  padding-inline: var(--button-padding-icon-only);
302
+
303
+ /* border */
304
+
305
+ /* depth */
306
+
307
+ /* motion */
173
308
  }
174
309
 
175
310
  .button--toolbar.button--icon-only {
311
+ /* color */
312
+
313
+ /* typography */
314
+
315
+ /* size */
176
316
  padding-inline: 0;
317
+
318
+ /* border */
319
+
320
+ /* depth */
321
+
322
+ /* motion */
177
323
  }
@@ -1,6 +1,9 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
3
5
  var button = require('./button');
6
+ var buttonPresentation = require('./button-presentation');
4
7
 
5
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
9
 
@@ -8,6 +11,13 @@ var button__default = /*#__PURE__*/_interopDefault(button);
8
11
 
9
12
 
10
13
 
11
- module.exports = button__default.default;
14
+ Object.defineProperty(exports, "default", {
15
+ enumerable: true,
16
+ get: function () { return button__default.default; }
17
+ });
18
+ Object.defineProperty(exports, "buttonLink", {
19
+ enumerable: true,
20
+ get: function () { return buttonPresentation.buttonLink; }
21
+ });
12
22
  //# sourceMappingURL=index.cjs.map
13
23
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,3 @@
1
1
  export { default } from './button';
2
2
  export type { ButtonProps } from './button';
3
+ export { buttonLink } from './button-presentation';
@@ -1,3 +1,4 @@
1
1
  export { default } from './button';
2
+ export { buttonLink } from './button-presentation';
2
3
  //# sourceMappingURL=index.js.map
3
4
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var classnames = require('../helpers/classnames');
5
+ require('./checkbox.css');
5
6
 
6
7
  const Checkbox = ({
7
8
  label,
@@ -16,6 +17,7 @@ const Checkbox = ({
16
17
  "checkbox--disabled": disabled
17
18
  }
18
19
  );
20
+ const hasLabel = label !== null && label !== void 0;
19
21
  return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: classes, children: [
20
22
  /* @__PURE__ */ jsxRuntime.jsx(
21
23
  "input",
@@ -26,7 +28,7 @@ const Checkbox = ({
26
28
  ...props
27
29
  }
28
30
  ),
29
- label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "checkbox__label", children: label })
31
+ hasLabel ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "checkbox__label", children: label }) : null
30
32
  ] });
31
33
  };
32
34
  var checkbox_default = Checkbox;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/checkbox/checkbox.tsx"],"names":["classnames","jsxs","jsx"],"mappings":";;;;;AASA,MAAM,WAAoC,CAAC;AAAA,EACzC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,UAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,oBAAA,EAAsB;AAAA;AACxB,GACF;AAEA,EAAA,uBACEC,eAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,iBAAA;AAAA,QACV,IAAA,EAAK,UAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IACC,KAAA,oBAASA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACrD,CAAA;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ","file":"checkbox.cjs","sourcesContent":["import React from 'react';\n//import './checkbox.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"checkbox__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Checkbox;"]}
1
+ {"version":3,"sources":["../../../src/components/checkbox/checkbox.tsx"],"names":["classnames","jsxs","jsx"],"mappings":";;;;;;AAUA,MAAM,WAAoC,CAAC;AAAA,EACzC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,UAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,oBAAA,EAAsB;AAAA;AACxB,GACF;AAEA,EAAA,MAAM,QAAA,GACJ,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA;AAE9B,EAAA,uBACEC,eAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,iBAAA;AAAA,QACV,IAAA,EAAK,UAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IAEC,2BACCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EACb,iBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ","file":"checkbox.cjs","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\nimport './checkbox.css';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n },\n );\n\n const hasLabel =\n label !== null && label !== undefined;\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n\n {hasLabel ? (\n <span className=\"checkbox__label\">\n {label}\n </span>\n ) : null}\n </label>\n );\n};\n\nexport default Checkbox;\n"]}
@@ -1,6 +1,6 @@
1
1
  .checkbox {
2
2
  /* color */
3
- --checkbox-label-color: var(--color-text);
3
+ --checkbox-label-color: inherit;
4
4
 
5
5
  color: var(--checkbox-label-color);
6
6
 
@@ -34,6 +34,7 @@
34
34
 
35
35
  .checkbox__input {
36
36
  /* color */
37
+ accent-color: var(--color-primary-2);
37
38
 
38
39
  /* typography */
39
40
 
@@ -71,10 +72,32 @@
71
72
  }
72
73
 
73
74
  .checkbox--disabled {
75
+ /* color */
76
+
77
+ /* typography */
78
+
79
+ /* size */
80
+
81
+ /* border */
82
+
83
+ /* depth */
84
+
85
+ /* motion */
74
86
  opacity: var(--checkbox-opacity-disabled);
75
87
  cursor: not-allowed;
76
88
  }
77
89
 
78
90
  .checkbox__input:disabled {
91
+ /* color */
92
+
93
+ /* typography */
94
+
95
+ /* size */
96
+
97
+ /* border */
98
+
99
+ /* depth */
100
+
101
+ /* motion */
79
102
  cursor: not-allowed;
80
103
  }
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import './checkbox.css';
2
3
  export interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
4
  label?: React.ReactNode;
4
5
  }
@@ -1,5 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { classnames } from '../helpers/classnames';
3
+ import './checkbox.css';
3
4
 
4
5
  const Checkbox = ({
5
6
  label,
@@ -14,6 +15,7 @@ const Checkbox = ({
14
15
  "checkbox--disabled": disabled
15
16
  }
16
17
  );
18
+ const hasLabel = label !== null && label !== void 0;
17
19
  return /* @__PURE__ */ jsxs("label", { className: classes, children: [
18
20
  /* @__PURE__ */ jsx(
19
21
  "input",
@@ -24,7 +26,7 @@ const Checkbox = ({
24
26
  ...props
25
27
  }
26
28
  ),
27
- label && /* @__PURE__ */ jsx("span", { className: "checkbox__label", children: label })
29
+ hasLabel ? /* @__PURE__ */ jsx("span", { className: "checkbox__label", children: label }) : null
28
30
  ] });
29
31
  };
30
32
  var checkbox_default = Checkbox;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/checkbox/checkbox.tsx"],"names":[],"mappings":";;;AASA,MAAM,WAAoC,CAAC;AAAA,EACzC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,UAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,oBAAA,EAAsB;AAAA;AACxB,GACF;AAEA,EAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,iBAAA;AAAA,QACV,IAAA,EAAK,UAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IACC,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACrD,CAAA;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ","file":"checkbox.js","sourcesContent":["import React from 'react';\n//import './checkbox.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"checkbox__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Checkbox;"]}
1
+ {"version":3,"sources":["../../../src/components/checkbox/checkbox.tsx"],"names":[],"mappings":";;;;AAUA,MAAM,WAAoC,CAAC;AAAA,EACzC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,UAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,oBAAA,EAAsB;AAAA;AACxB,GACF;AAEA,EAAA,MAAM,QAAA,GACJ,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA;AAE9B,EAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,iBAAA;AAAA,QACV,IAAA,EAAK,UAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IAEC,2BACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EACb,iBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ","file":"checkbox.js","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\nimport './checkbox.css';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n },\n );\n\n const hasLabel =\n label !== null && label !== undefined;\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n\n {hasLabel ? (\n <span className=\"checkbox__label\">\n {label}\n </span>\n ) : null}\n </label>\n );\n};\n\nexport default Checkbox;\n"]}
@@ -3,39 +3,59 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var classnames = require('../helpers/classnames');
5
5
 
6
+ function hasContent(value) {
7
+ return value !== null && value !== void 0;
8
+ }
6
9
  const Field = ({
7
10
  label,
8
11
  hint,
9
12
  error,
13
+ action,
10
14
  required = false,
11
15
  disabled = false,
12
16
  htmlFor,
13
17
  className = "",
14
- children
18
+ children,
19
+ ...props
15
20
  }) => {
21
+ const hasLabel = hasContent(label);
22
+ const hasError = hasContent(error);
23
+ const hasHint = hasContent(hint);
24
+ const hasAction = hasContent(action);
16
25
  const classes = classnames.classnames(
17
26
  "field",
18
27
  className,
19
28
  {
20
29
  "field--disabled": disabled,
21
- "field--error": !!error
30
+ "field--error": hasError
31
+ }
32
+ );
33
+ return /* @__PURE__ */ jsxRuntime.jsxs(
34
+ "div",
35
+ {
36
+ className: classes,
37
+ ...props,
38
+ children: [
39
+ hasLabel && /* @__PURE__ */ jsxRuntime.jsxs(
40
+ "label",
41
+ {
42
+ className: "field__label",
43
+ htmlFor,
44
+ children: [
45
+ label,
46
+ required && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "field__required", children: [
47
+ " ",
48
+ "*"
49
+ ] })
50
+ ]
51
+ }
52
+ ),
53
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "field__control", children }),
54
+ hasError ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "field__message field__message--error", children: error }) : hasHint ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "field__message", children: hint }) : null,
55
+ hasAction && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "field__action", children: action })
56
+ ]
22
57
  }
23
58
  );
24
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes, children: [
25
- label && /* @__PURE__ */ jsxRuntime.jsxs(
26
- "label",
27
- {
28
- className: "field__label",
29
- htmlFor,
30
- children: [
31
- label,
32
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "field__required", children: " *" })
33
- ]
34
- }
35
- ),
36
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "field__control", children }),
37
- error ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "field__message field__message--error", children: error }) : hint ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "field__message", children: hint }) : null
38
- ] });
39
59
  };
40
60
  var field_default = Field;
41
61
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/field/field.tsx"],"names":["classnames","jsxs","jsx"],"mappings":";;;;;AAeA,MAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB,QAAA;AAAA,MACnB,cAAA,EAAgB,CAAC,CAAC;AAAA;AACpB,GACF;AAEA,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,EACb,QAAA,EAAA;AAAA,IAAA,KAAA,oBACCA,eAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,cAAA;AAAA,QACV,OAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,QAAA,oBAAYC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAkB,QAAA,EAAA,IAAA,EAAE;AAAA;AAAA;AAAA,KACnD;AAAA,oBAGFA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EACH,CAAA;AAAA,IAEC,KAAA,mBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sCAAA,EACZ,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA,mBACFA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,gBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"field.cjs","sourcesContent":["import React from 'react';\n//import './field.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n}) => {\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': !!error,\n }\n );\n\n return (\n <div className={classes}>\n {label && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n {required && <span className=\"field__required\"> *</span>}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {error ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default Field;"]}
1
+ {"version":3,"sources":["../../../src/components/field/field.tsx"],"names":["classnames","jsxs","jsx"],"mappings":";;;;;AAmBA,SAAS,WACP,KAAA,EAIA;AACA,EAAA,OAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA;AACrC;AAEA,MAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,QAAA,GAAW,WAAW,KAAK,CAAA;AACjC,EAAA,MAAM,QAAA,GAAW,WAAW,KAAK,CAAA;AACjC,EAAA,MAAM,OAAA,GAAU,WAAW,IAAI,CAAA;AAC/B,EAAA,MAAM,SAAA,GAAY,WAAW,MAAM,CAAA;AAEnC,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB,QAAA;AAAA,MACnB,cAAA,EAAgB;AAAA;AAClB,GACF;AAEA,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBACCA,eAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,cAAA;AAAA,YACV,OAAA;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cAEA,QAAA,oBACCA,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,gBAAA,GAAA;AAAA,gBAAI;AAAA,eAAA,EAEP;AAAA;AAAA;AAAA,SAEJ;AAAA,wBAGFC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EACH,CAAA;AAAA,QAEC,QAAA,mBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sCAAA,EACZ,QAAA,EAAA,KAAA,EACH,CAAA,GACE,OAAA,mBACFA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,gBACH,CAAA,GACE,IAAA;AAAA,QAEH,SAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"field.cjs","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'children'\n > {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n action?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n children: React.ReactNode;\n}\n\nfunction hasContent(\n value: React.ReactNode,\n): value is Exclude<\n React.ReactNode,\n null | undefined\n> {\n return value !== null && value !== undefined;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n action,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n ...props\n}) => {\n const hasLabel = hasContent(label);\n const hasError = hasContent(error);\n const hasHint = hasContent(hint);\n const hasAction = hasContent(action);\n\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': hasError,\n },\n );\n\n return (\n <div\n className={classes}\n {...props}\n >\n {hasLabel && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n\n {required && (\n <span className=\"field__required\">\n {' '}\n *\n </span>\n )}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {hasError ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hasHint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n\n {hasAction && (\n <div className=\"field__action\">\n {action}\n </div>\n )}\n </div>\n );\n};\n\nexport default Field;\n"]}
@@ -108,6 +108,23 @@
108
108
  /* motion */
109
109
  }
110
110
 
111
+ .field__action {
112
+ /* color */
113
+
114
+ /* typography */
115
+
116
+ /* size */
117
+ display: flex;
118
+ align-items: flex-start;
119
+ width: 100%;
120
+
121
+ /* border */
122
+
123
+ /* depth */
124
+
125
+ /* motion */
126
+ }
127
+
111
128
  .field--disabled {
112
129
  opacity: var(--field-opacity-disabled);
113
130
  }
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
- export interface FieldProps {
2
+ export interface FieldProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
3
3
  label?: React.ReactNode;
4
4
  hint?: React.ReactNode;
5
5
  error?: React.ReactNode;
6
+ action?: React.ReactNode;
6
7
  required?: boolean;
7
8
  disabled?: boolean;
8
9
  htmlFor?: string;
9
- className?: string;
10
10
  children: React.ReactNode;
11
11
  }
12
12
  declare const Field: React.FC<FieldProps>;
@@ -1,39 +1,59 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { classnames } from '../helpers/classnames';
3
3
 
4
+ function hasContent(value) {
5
+ return value !== null && value !== void 0;
6
+ }
4
7
  const Field = ({
5
8
  label,
6
9
  hint,
7
10
  error,
11
+ action,
8
12
  required = false,
9
13
  disabled = false,
10
14
  htmlFor,
11
15
  className = "",
12
- children
16
+ children,
17
+ ...props
13
18
  }) => {
19
+ const hasLabel = hasContent(label);
20
+ const hasError = hasContent(error);
21
+ const hasHint = hasContent(hint);
22
+ const hasAction = hasContent(action);
14
23
  const classes = classnames(
15
24
  "field",
16
25
  className,
17
26
  {
18
27
  "field--disabled": disabled,
19
- "field--error": !!error
28
+ "field--error": hasError
29
+ }
30
+ );
31
+ return /* @__PURE__ */ jsxs(
32
+ "div",
33
+ {
34
+ className: classes,
35
+ ...props,
36
+ children: [
37
+ hasLabel && /* @__PURE__ */ jsxs(
38
+ "label",
39
+ {
40
+ className: "field__label",
41
+ htmlFor,
42
+ children: [
43
+ label,
44
+ required && /* @__PURE__ */ jsxs("span", { className: "field__required", children: [
45
+ " ",
46
+ "*"
47
+ ] })
48
+ ]
49
+ }
50
+ ),
51
+ /* @__PURE__ */ jsx("div", { className: "field__control", children }),
52
+ hasError ? /* @__PURE__ */ jsx("div", { className: "field__message field__message--error", children: error }) : hasHint ? /* @__PURE__ */ jsx("div", { className: "field__message", children: hint }) : null,
53
+ hasAction && /* @__PURE__ */ jsx("div", { className: "field__action", children: action })
54
+ ]
20
55
  }
21
56
  );
22
- return /* @__PURE__ */ jsxs("div", { className: classes, children: [
23
- label && /* @__PURE__ */ jsxs(
24
- "label",
25
- {
26
- className: "field__label",
27
- htmlFor,
28
- children: [
29
- label,
30
- required && /* @__PURE__ */ jsx("span", { className: "field__required", children: " *" })
31
- ]
32
- }
33
- ),
34
- /* @__PURE__ */ jsx("div", { className: "field__control", children }),
35
- error ? /* @__PURE__ */ jsx("div", { className: "field__message field__message--error", children: error }) : hint ? /* @__PURE__ */ jsx("div", { className: "field__message", children: hint }) : null
36
- ] });
37
57
  };
38
58
  var field_default = Field;
39
59
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/field/field.tsx"],"names":[],"mappings":";;;AAeA,MAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB,QAAA;AAAA,MACnB,cAAA,EAAgB,CAAC,CAAC;AAAA;AACpB,GACF;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,EACb,QAAA,EAAA;AAAA,IAAA,KAAA,oBACC,IAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,cAAA;AAAA,QACV,OAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,QAAA,oBAAY,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAkB,QAAA,EAAA,IAAA,EAAE;AAAA;AAAA;AAAA,KACnD;AAAA,oBAGF,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EACH,CAAA;AAAA,IAEC,KAAA,mBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sCAAA,EACZ,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA,mBACF,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,gBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"field.js","sourcesContent":["import React from 'react';\n//import './field.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n}) => {\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': !!error,\n }\n );\n\n return (\n <div className={classes}>\n {label && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n {required && <span className=\"field__required\"> *</span>}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {error ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default Field;"]}
1
+ {"version":3,"sources":["../../../src/components/field/field.tsx"],"names":[],"mappings":";;;AAmBA,SAAS,WACP,KAAA,EAIA;AACA,EAAA,OAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA;AACrC;AAEA,MAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,QAAA,GAAW,WAAW,KAAK,CAAA;AACjC,EAAA,MAAM,QAAA,GAAW,WAAW,KAAK,CAAA;AACjC,EAAA,MAAM,OAAA,GAAU,WAAW,IAAI,CAAA;AAC/B,EAAA,MAAM,SAAA,GAAY,WAAW,MAAM,CAAA;AAEnC,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB,QAAA;AAAA,MACnB,cAAA,EAAgB;AAAA;AAClB,GACF;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBACC,IAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,cAAA;AAAA,YACV,OAAA;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cAEA,QAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,gBAAA,GAAA;AAAA,gBAAI;AAAA,eAAA,EAEP;AAAA;AAAA;AAAA,SAEJ;AAAA,wBAGF,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EACH,CAAA;AAAA,QAEC,QAAA,mBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sCAAA,EACZ,QAAA,EAAA,KAAA,EACH,CAAA,GACE,OAAA,mBACF,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,gBACH,CAAA,GACE,IAAA;AAAA,QAEH,SAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"field.js","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'children'\n > {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n action?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n children: React.ReactNode;\n}\n\nfunction hasContent(\n value: React.ReactNode,\n): value is Exclude<\n React.ReactNode,\n null | undefined\n> {\n return value !== null && value !== undefined;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n action,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n ...props\n}) => {\n const hasLabel = hasContent(label);\n const hasError = hasContent(error);\n const hasHint = hasContent(hint);\n const hasAction = hasContent(action);\n\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': hasError,\n },\n );\n\n return (\n <div\n className={classes}\n {...props}\n >\n {hasLabel && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n\n {required && (\n <span className=\"field__required\">\n {' '}\n *\n </span>\n )}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {hasError ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hasHint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n\n {hasAction && (\n <div className=\"field__action\">\n {action}\n </div>\n )}\n </div>\n );\n};\n\nexport default Field;\n"]}