jvetrau-ds 0.2.11 → 0.2.12

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.
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ require('./form-message.css');
5
+ var classnames = require('../helpers/classnames');
6
+
7
+ const FormMessageItem = ({
8
+ children,
9
+ className = "",
10
+ ...props
11
+ }) => {
12
+ const classes = classnames.classnames(
13
+ "form-message__item",
14
+ className,
15
+ {}
16
+ );
17
+ return /* @__PURE__ */ jsxRuntime.jsx(
18
+ "p",
19
+ {
20
+ ...props,
21
+ className: classes,
22
+ children
23
+ }
24
+ );
25
+ };
26
+ const FormMessage = ({
27
+ status,
28
+ children,
29
+ className = "",
30
+ ...props
31
+ }) => {
32
+ const classes = classnames.classnames(
33
+ "form-message",
34
+ className,
35
+ {
36
+ "form-message--info": status === "info",
37
+ "form-message--success": status === "success",
38
+ "form-message--warning": status === "warning",
39
+ "form-message--error": status === "error"
40
+ }
41
+ );
42
+ const role = status === "error" ? "alert" : "status";
43
+ return /* @__PURE__ */ jsxRuntime.jsx(
44
+ "div",
45
+ {
46
+ ...props,
47
+ className: classes,
48
+ role,
49
+ children
50
+ }
51
+ );
52
+ };
53
+ FormMessage.Item = FormMessageItem;
54
+ var form_message_default = FormMessage;
55
+
56
+ module.exports = form_message_default;
57
+ //# sourceMappingURL=form-message.cjs.map
58
+ //# sourceMappingURL=form-message.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/form-message/form-message.tsx"],"names":["classnames","jsx"],"mappings":";;;;;;AA4BA,MAAM,kBAEF,CAAC;AAAA,EACH,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,oBAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,uBACEC,cAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,OAAA;AAAA,MAEV;AAAA;AAAA,GACH;AAEJ,CAAA;AAOA,MAAM,cAAoC,CAAC;AAAA,EACzC,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUD,qBAAA;AAAA,IACd,cAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,sBACE,MAAA,KAAW,MAAA;AAAA,MACb,yBACE,MAAA,KAAW,SAAA;AAAA,MACb,yBACE,MAAA,KAAW,SAAA;AAAA,MACb,uBACE,MAAA,KAAW;AAAA;AACf,GACF;AAEA,EAAA,MAAM,IAAA,GACJ,MAAA,KAAW,OAAA,GACP,OAAA,GACA,QAAA;AAEN,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,OAAA;AAAA,MACX,IAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,WAAA,CAAY,IAAA,GAAO,eAAA;AAEnB,IAAO,oBAAA,GAAQ","file":"form-message.cjs","sourcesContent":["import React from 'react';\n\nimport './form-message.css';\nimport { classnames } from '../helpers/classnames';\n\nexport type FormMessageStatus =\n | 'info'\n | 'success'\n | 'warning'\n | 'error';\n\nexport interface FormMessageProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'children'\n > {\n status: FormMessageStatus;\n children: React.ReactNode;\n}\n\nexport interface FormMessageItemProps\n extends Omit<\n React.HTMLAttributes<HTMLParagraphElement>,\n 'children'\n > {\n children: React.ReactNode;\n}\n\nconst FormMessageItem: React.FC<\n FormMessageItemProps\n> = ({\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames(\n 'form-message__item',\n className,\n {},\n );\n\n return (\n <p\n {...props}\n className={classes}\n >\n {children}\n </p>\n );\n};\n\ninterface FormMessageComponent\n extends React.FC<FormMessageProps> {\n Item: React.FC<FormMessageItemProps>;\n}\n\nconst FormMessage: FormMessageComponent = ({\n status,\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames(\n 'form-message',\n className,\n {\n 'form-message--info':\n status === 'info',\n 'form-message--success':\n status === 'success',\n 'form-message--warning':\n status === 'warning',\n 'form-message--error':\n status === 'error',\n },\n );\n\n const role =\n status === 'error'\n ? 'alert'\n : 'status';\n\n return (\n <div\n {...props}\n className={classes}\n role={role}\n >\n {children}\n </div>\n );\n};\n\nFormMessage.Item = FormMessageItem;\n\nexport default FormMessage;\n"]}
@@ -0,0 +1,136 @@
1
+ .form-message {
2
+ /* color */
3
+ --form-message-color:
4
+ var(--color-text);
5
+
6
+ color: var(--form-message-color);
7
+
8
+ /* typography */
9
+ --form-message-font-family:
10
+ var(--font-body-family);
11
+ --form-message-font-size:
12
+ var(--font-body);
13
+ --form-message-font-weight:
14
+ var(--font-body-weight);
15
+ --form-message-line-height:
16
+ var(--font-body-line);
17
+ --form-message-letter-spacing:
18
+ var(--font-body-letter-spacing);
19
+
20
+ font-family:
21
+ var(--form-message-font-family);
22
+ font-size:
23
+ var(--form-message-font-size);
24
+ font-weight:
25
+ var(--form-message-font-weight);
26
+ line-height:
27
+ var(--form-message-line-height);
28
+ letter-spacing:
29
+ var(--form-message-letter-spacing);
30
+
31
+ /* size */
32
+ min-width: 0;
33
+
34
+ /* border */
35
+
36
+ /* depth */
37
+
38
+ /* motion */
39
+ }
40
+
41
+ .form-message--info {
42
+ /* color */
43
+ --form-message-color:
44
+ var(--color-text);
45
+
46
+ /* typography */
47
+
48
+ /* size */
49
+
50
+ /* border */
51
+
52
+ /* depth */
53
+
54
+ /* motion */
55
+ }
56
+
57
+ .form-message--success {
58
+ /* color */
59
+ --form-message-color:
60
+ var(--color-text-good);
61
+
62
+ /* typography */
63
+
64
+ /* size */
65
+
66
+ /* border */
67
+
68
+ /* depth */
69
+
70
+ /* motion */
71
+ }
72
+
73
+ .form-message--warning {
74
+ /* color */
75
+ --form-message-color:
76
+ var(--color-text-med);
77
+
78
+ /* typography */
79
+
80
+ /* size */
81
+
82
+ /* border */
83
+
84
+ /* depth */
85
+
86
+ /* motion */
87
+ }
88
+
89
+ .form-message--error {
90
+ /* color */
91
+ --form-message-color:
92
+ var(--color-text-bad);
93
+
94
+ /* typography */
95
+
96
+ /* size */
97
+
98
+ /* border */
99
+
100
+ /* depth */
101
+
102
+ /* motion */
103
+ }
104
+
105
+ .form-message__item {
106
+ /* color */
107
+ color: inherit;
108
+
109
+ /* typography */
110
+ font: inherit;
111
+ letter-spacing: inherit;
112
+
113
+ /* size */
114
+ margin: 0;
115
+
116
+ /* border */
117
+
118
+ /* depth */
119
+
120
+ /* motion */
121
+ }
122
+
123
+ .form-message__item + .form-message__item {
124
+ /* color */
125
+
126
+ /* typography */
127
+
128
+ /* size */
129
+ margin-top: var(--font-body-margin);
130
+
131
+ /* border */
132
+
133
+ /* depth */
134
+
135
+ /* motion */
136
+ }
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import './form-message.css';
3
+ export type FormMessageStatus = 'info' | 'success' | 'warning' | 'error';
4
+ export interface FormMessageProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
5
+ status: FormMessageStatus;
6
+ children: React.ReactNode;
7
+ }
8
+ export interface FormMessageItemProps extends Omit<React.HTMLAttributes<HTMLParagraphElement>, 'children'> {
9
+ children: React.ReactNode;
10
+ }
11
+ interface FormMessageComponent extends React.FC<FormMessageProps> {
12
+ Item: React.FC<FormMessageItemProps>;
13
+ }
14
+ declare const FormMessage: FormMessageComponent;
15
+ export default FormMessage;
@@ -0,0 +1,56 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import './form-message.css';
3
+ import { classnames } from '../helpers/classnames';
4
+
5
+ const FormMessageItem = ({
6
+ children,
7
+ className = "",
8
+ ...props
9
+ }) => {
10
+ const classes = classnames(
11
+ "form-message__item",
12
+ className,
13
+ {}
14
+ );
15
+ return /* @__PURE__ */ jsx(
16
+ "p",
17
+ {
18
+ ...props,
19
+ className: classes,
20
+ children
21
+ }
22
+ );
23
+ };
24
+ const FormMessage = ({
25
+ status,
26
+ children,
27
+ className = "",
28
+ ...props
29
+ }) => {
30
+ const classes = classnames(
31
+ "form-message",
32
+ className,
33
+ {
34
+ "form-message--info": status === "info",
35
+ "form-message--success": status === "success",
36
+ "form-message--warning": status === "warning",
37
+ "form-message--error": status === "error"
38
+ }
39
+ );
40
+ const role = status === "error" ? "alert" : "status";
41
+ return /* @__PURE__ */ jsx(
42
+ "div",
43
+ {
44
+ ...props,
45
+ className: classes,
46
+ role,
47
+ children
48
+ }
49
+ );
50
+ };
51
+ FormMessage.Item = FormMessageItem;
52
+ var form_message_default = FormMessage;
53
+
54
+ export { form_message_default as default };
55
+ //# sourceMappingURL=form-message.js.map
56
+ //# sourceMappingURL=form-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/form-message/form-message.tsx"],"names":[],"mappings":";;;;AA4BA,MAAM,kBAEF,CAAC;AAAA,EACH,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,oBAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,OAAA;AAAA,MAEV;AAAA;AAAA,GACH;AAEJ,CAAA;AAOA,MAAM,cAAoC,CAAC;AAAA,EACzC,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,cAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,sBACE,MAAA,KAAW,MAAA;AAAA,MACb,yBACE,MAAA,KAAW,SAAA;AAAA,MACb,yBACE,MAAA,KAAW,SAAA;AAAA,MACb,uBACE,MAAA,KAAW;AAAA;AACf,GACF;AAEA,EAAA,MAAM,IAAA,GACJ,MAAA,KAAW,OAAA,GACP,OAAA,GACA,QAAA;AAEN,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,OAAA;AAAA,MACX,IAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,WAAA,CAAY,IAAA,GAAO,eAAA;AAEnB,IAAO,oBAAA,GAAQ","file":"form-message.js","sourcesContent":["import React from 'react';\n\nimport './form-message.css';\nimport { classnames } from '../helpers/classnames';\n\nexport type FormMessageStatus =\n | 'info'\n | 'success'\n | 'warning'\n | 'error';\n\nexport interface FormMessageProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'children'\n > {\n status: FormMessageStatus;\n children: React.ReactNode;\n}\n\nexport interface FormMessageItemProps\n extends Omit<\n React.HTMLAttributes<HTMLParagraphElement>,\n 'children'\n > {\n children: React.ReactNode;\n}\n\nconst FormMessageItem: React.FC<\n FormMessageItemProps\n> = ({\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames(\n 'form-message__item',\n className,\n {},\n );\n\n return (\n <p\n {...props}\n className={classes}\n >\n {children}\n </p>\n );\n};\n\ninterface FormMessageComponent\n extends React.FC<FormMessageProps> {\n Item: React.FC<FormMessageItemProps>;\n}\n\nconst FormMessage: FormMessageComponent = ({\n status,\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames(\n 'form-message',\n className,\n {\n 'form-message--info':\n status === 'info',\n 'form-message--success':\n status === 'success',\n 'form-message--warning':\n status === 'warning',\n 'form-message--error':\n status === 'error',\n },\n );\n\n const role =\n status === 'error'\n ? 'alert'\n : 'status';\n\n return (\n <div\n {...props}\n className={classes}\n role={role}\n >\n {children}\n </div>\n );\n};\n\nFormMessage.Item = FormMessageItem;\n\nexport default FormMessage;\n"]}
@@ -0,0 +1,2 @@
1
+ import type { ComponentMeta } from '../../catalog/types';
2
+ export declare const formMessageMeta: ComponentMeta;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var formMessage = require('./form-message');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var formMessage__default = /*#__PURE__*/_interopDefault(formMessage);
10
+
11
+
12
+
13
+ Object.defineProperty(exports, "FormMessage", {
14
+ enumerable: true,
15
+ get: function () { return formMessage__default.default; }
16
+ });
17
+ Object.defineProperty(exports, "default", {
18
+ enumerable: true,
19
+ get: function () { return formMessage__default.default; }
20
+ });
21
+ //# sourceMappingURL=index.cjs.map
22
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
@@ -0,0 +1,3 @@
1
+ export { default } from './form-message';
2
+ export { default as FormMessage, } from './form-message';
3
+ export type { FormMessageItemProps, FormMessageProps, FormMessageStatus, } from './form-message';
@@ -0,0 +1,3 @@
1
+ export { default as FormMessage, default } from './form-message';
2
+ //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -8,6 +8,8 @@ var dropdown = require('./dropdown/dropdown');
8
8
  var checkbox = require('./checkbox/checkbox');
9
9
  var radio = require('./radio/radio');
10
10
  var field = require('./field/field');
11
+ var fieldGroup = require('./field-group/field-group');
12
+ var formMessage = require('./form-message');
11
13
  var menu = require('./menu/menu');
12
14
  var tabs = require('./tabs/tabs');
13
15
  var tag = require('./tag/tag');
@@ -19,7 +21,6 @@ var logo = require('./logo/logo');
19
21
  var avatar = require('./avatar/avatar');
20
22
  var attach = require('./attach/attach');
21
23
  var actionGroup = require('./action-group/action-group');
22
- var fieldGroup = require('./field-group/field-group');
23
24
  var cardGroup = require('./card-group/card-group');
24
25
  var breadcrumbs = require('./breadcrumbs/breadcrumbs');
25
26
  var markdown = require('./markdown/markdown');
@@ -39,6 +40,8 @@ var dropdown__default = /*#__PURE__*/_interopDefault(dropdown);
39
40
  var checkbox__default = /*#__PURE__*/_interopDefault(checkbox);
40
41
  var radio__default = /*#__PURE__*/_interopDefault(radio);
41
42
  var field__default = /*#__PURE__*/_interopDefault(field);
43
+ var fieldGroup__default = /*#__PURE__*/_interopDefault(fieldGroup);
44
+ var formMessage__default = /*#__PURE__*/_interopDefault(formMessage);
42
45
  var menu__default = /*#__PURE__*/_interopDefault(menu);
43
46
  var tabs__default = /*#__PURE__*/_interopDefault(tabs);
44
47
  var tag__default = /*#__PURE__*/_interopDefault(tag);
@@ -50,7 +53,6 @@ var logo__default = /*#__PURE__*/_interopDefault(logo);
50
53
  var avatar__default = /*#__PURE__*/_interopDefault(avatar);
51
54
  var attach__default = /*#__PURE__*/_interopDefault(attach);
52
55
  var actionGroup__default = /*#__PURE__*/_interopDefault(actionGroup);
53
- var fieldGroup__default = /*#__PURE__*/_interopDefault(fieldGroup);
54
56
  var cardGroup__default = /*#__PURE__*/_interopDefault(cardGroup);
55
57
  var breadcrumbs__default = /*#__PURE__*/_interopDefault(breadcrumbs);
56
58
  var markdown__default = /*#__PURE__*/_interopDefault(markdown);
@@ -97,6 +99,14 @@ Object.defineProperty(exports, "Field", {
97
99
  enumerable: true,
98
100
  get: function () { return field__default.default; }
99
101
  });
102
+ Object.defineProperty(exports, "FieldGroup", {
103
+ enumerable: true,
104
+ get: function () { return fieldGroup__default.default; }
105
+ });
106
+ Object.defineProperty(exports, "FormMessage", {
107
+ enumerable: true,
108
+ get: function () { return formMessage__default.default; }
109
+ });
100
110
  Object.defineProperty(exports, "Menu", {
101
111
  enumerable: true,
102
112
  get: function () { return menu__default.default; }
@@ -141,10 +151,6 @@ Object.defineProperty(exports, "ActionGroup", {
141
151
  enumerable: true,
142
152
  get: function () { return actionGroup__default.default; }
143
153
  });
144
- Object.defineProperty(exports, "FieldGroup", {
145
- enumerable: true,
146
- get: function () { return fieldGroup__default.default; }
147
- });
148
154
  Object.defineProperty(exports, "CardGroup", {
149
155
  enumerable: true,
150
156
  get: function () { return cardGroup__default.default; }
@@ -15,6 +15,10 @@ export { default as Radio } from './radio/radio';
15
15
  export type { RadioProps } from './radio/radio';
16
16
  export { default as Field } from './field/field';
17
17
  export type { FieldProps } from './field/field';
18
+ export { default as FieldGroup } from './field-group/field-group';
19
+ export type { FieldGroupProps } from './field-group/field-group';
20
+ export { default as FormMessage } from './form-message';
21
+ export type { FormMessageItemProps, FormMessageProps, FormMessageStatus, } from './form-message';
18
22
  export { default as Menu } from './menu/menu';
19
23
  export type { MenuItem, MenuProps, } from './menu/menu';
20
24
  export { default as Tabs } from './tabs/tabs';
@@ -37,8 +41,6 @@ export { default as Attach } from './attach/attach';
37
41
  export type { AttachItem, AttachProps, } from './attach/attach';
38
42
  export { default as ActionGroup } from './action-group/action-group';
39
43
  export type { ActionGroupProps } from './action-group/action-group';
40
- export { default as FieldGroup } from './field-group/field-group';
41
- export type { FieldGroupProps } from './field-group/field-group';
42
44
  export { default as CardGroup } from './card-group/card-group';
43
45
  export type { CardGroupProps } from './card-group/card-group';
44
46
  export { default as Breadcrumbs } from './breadcrumbs/breadcrumbs';
@@ -6,6 +6,8 @@ export { default as Dropdown } from './dropdown/dropdown';
6
6
  export { default as Checkbox } from './checkbox/checkbox';
7
7
  export { default as Radio } from './radio/radio';
8
8
  export { default as Field } from './field/field';
9
+ export { default as FieldGroup } from './field-group/field-group';
10
+ export { default as FormMessage } from './form-message';
9
11
  export { default as Menu } from './menu/menu';
10
12
  export { default as Tabs } from './tabs/tabs';
11
13
  export { default as Tag } from './tag/tag';
@@ -17,7 +19,6 @@ export { default as Logo } from './logo/logo';
17
19
  export { default as Avatar } from './avatar/avatar';
18
20
  export { default as Attach } from './attach/attach';
19
21
  export { default as ActionGroup } from './action-group/action-group';
20
- export { default as FieldGroup } from './field-group/field-group';
21
22
  export { default as CardGroup } from './card-group/card-group';
22
23
  export { default as Breadcrumbs } from './breadcrumbs/breadcrumbs';
23
24
  export { default as Markdown } from './markdown/markdown';
package/index.cjs CHANGED
@@ -8,6 +8,8 @@ var dropdown = require('./components/dropdown');
8
8
  var checkbox = require('./components/checkbox');
9
9
  var radio = require('./components/radio');
10
10
  var field = require('./components/field');
11
+ var fieldGroup = require('./components/field-group');
12
+ var formMessage = require('./components/form-message');
11
13
  var menu = require('./components/menu');
12
14
  var tabs = require('./components/tabs');
13
15
  var video = require('./components/video');
@@ -21,7 +23,6 @@ var logo = require('./components/logo');
21
23
  var avatar = require('./components/avatar');
22
24
  var attach = require('./components/attach');
23
25
  var actionGroup = require('./components/action-group');
24
- var fieldGroup = require('./components/field-group');
25
26
  var cardGroup = require('./components/card-group');
26
27
  var breadcrumbs = require('./components/breadcrumbs');
27
28
  var markdown = require('./components/markdown');
@@ -51,6 +52,8 @@ var dropdown__default = /*#__PURE__*/_interopDefault(dropdown);
51
52
  var checkbox__default = /*#__PURE__*/_interopDefault(checkbox);
52
53
  var radio__default = /*#__PURE__*/_interopDefault(radio);
53
54
  var field__default = /*#__PURE__*/_interopDefault(field);
55
+ var fieldGroup__default = /*#__PURE__*/_interopDefault(fieldGroup);
56
+ var formMessage__default = /*#__PURE__*/_interopDefault(formMessage);
54
57
  var menu__default = /*#__PURE__*/_interopDefault(menu);
55
58
  var tabs__default = /*#__PURE__*/_interopDefault(tabs);
56
59
  var video__default = /*#__PURE__*/_interopDefault(video);
@@ -64,7 +67,6 @@ var logo__default = /*#__PURE__*/_interopDefault(logo);
64
67
  var avatar__default = /*#__PURE__*/_interopDefault(avatar);
65
68
  var attach__default = /*#__PURE__*/_interopDefault(attach);
66
69
  var actionGroup__default = /*#__PURE__*/_interopDefault(actionGroup);
67
- var fieldGroup__default = /*#__PURE__*/_interopDefault(fieldGroup);
68
70
  var cardGroup__default = /*#__PURE__*/_interopDefault(cardGroup);
69
71
  var breadcrumbs__default = /*#__PURE__*/_interopDefault(breadcrumbs);
70
72
  var markdown__default = /*#__PURE__*/_interopDefault(markdown);
@@ -121,6 +123,14 @@ Object.defineProperty(exports, "Field", {
121
123
  enumerable: true,
122
124
  get: function () { return field__default.default; }
123
125
  });
126
+ Object.defineProperty(exports, "FieldGroup", {
127
+ enumerable: true,
128
+ get: function () { return fieldGroup__default.default; }
129
+ });
130
+ Object.defineProperty(exports, "FormMessage", {
131
+ enumerable: true,
132
+ get: function () { return formMessage__default.default; }
133
+ });
124
134
  Object.defineProperty(exports, "Menu", {
125
135
  enumerable: true,
126
136
  get: function () { return menu__default.default; }
@@ -173,10 +183,6 @@ Object.defineProperty(exports, "ActionGroup", {
173
183
  enumerable: true,
174
184
  get: function () { return actionGroup__default.default; }
175
185
  });
176
- Object.defineProperty(exports, "FieldGroup", {
177
- enumerable: true,
178
- get: function () { return fieldGroup__default.default; }
179
- });
180
186
  Object.defineProperty(exports, "CardGroup", {
181
187
  enumerable: true,
182
188
  get: function () { return cardGroup__default.default; }
package/index.d.ts CHANGED
@@ -18,6 +18,10 @@ export { default as Radio } from './components/radio';
18
18
  export type { RadioProps } from './components/radio';
19
19
  export { default as Field } from './components/field';
20
20
  export type { FieldProps } from './components/field';
21
+ export { default as FieldGroup } from './components/field-group';
22
+ export type { FieldGroupProps } from './components/field-group';
23
+ export { default as FormMessage } from './components/form-message';
24
+ export type { FormMessageItemProps, FormMessageProps, FormMessageStatus, } from './components/form-message';
21
25
  export { default as Menu } from './components/menu';
22
26
  export type { MenuProps } from './components/menu';
23
27
  export { default as Tabs } from './components/tabs';
@@ -44,8 +48,6 @@ export { default as Attach } from './components/attach';
44
48
  export type { AttachItem, AttachProps, } from './components/attach';
45
49
  export { default as ActionGroup } from './components/action-group';
46
50
  export type { ActionGroupProps } from './components/action-group';
47
- export { default as FieldGroup } from './components/field-group';
48
- export type { FieldGroupProps } from './components/field-group';
49
51
  export { default as CardGroup } from './components/card-group';
50
52
  export type { CardGroupProps } from './components/card-group';
51
53
  export { default as Breadcrumbs } from './components/breadcrumbs';
package/index.js CHANGED
@@ -6,6 +6,8 @@ export { default as Dropdown } from './components/dropdown';
6
6
  export { default as Checkbox } from './components/checkbox';
7
7
  export { default as Radio } from './components/radio';
8
8
  export { default as Field } from './components/field';
9
+ export { default as FieldGroup } from './components/field-group';
10
+ export { default as FormMessage } from './components/form-message';
9
11
  export { default as Menu } from './components/menu';
10
12
  export { default as Tabs } from './components/tabs';
11
13
  export { default as Video } from './components/video';
@@ -19,7 +21,6 @@ export { default as Logo } from './components/logo';
19
21
  export { default as Avatar } from './components/avatar';
20
22
  export { default as Attach } from './components/attach';
21
23
  export { default as ActionGroup } from './components/action-group';
22
- export { default as FieldGroup } from './components/field-group';
23
24
  export { default as CardGroup } from './components/card-group';
24
25
  export { default as Breadcrumbs } from './components/breadcrumbs';
25
26
  export { default as Markdown } from './components/markdown';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jvetrau-ds",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "description": "Multi-brand React design system with semantic tokens",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -2,19 +2,35 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  require('./footer.css');
5
+ var classnames = require('../../components/helpers/classnames');
5
6
 
6
7
  const Footer = ({
7
8
  copyright,
8
9
  links,
9
10
  secondaryLinks,
10
11
  children,
12
+ className = "",
11
13
  ...props
12
14
  }) => {
13
- return /* @__PURE__ */ jsxRuntime.jsxs("footer", { className: "footer", ...props, children: [
14
- copyright && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "footer__copyright", children: copyright }),
15
- (links || children) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "footer__links", children: links || children }),
16
- secondaryLinks && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "footer__links footer__links--secondary", children: secondaryLinks })
17
- ] });
15
+ const classes = classnames.classnames(
16
+ "footer",
17
+ className,
18
+ {
19
+ "footer--without-secondary-links": !secondaryLinks
20
+ }
21
+ );
22
+ return /* @__PURE__ */ jsxRuntime.jsxs(
23
+ "footer",
24
+ {
25
+ ...props,
26
+ className: classes,
27
+ children: [
28
+ copyright && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "footer__copyright", children: copyright }),
29
+ (links || children) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "footer__links", children: links || children }),
30
+ secondaryLinks && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "footer__links footer__links--secondary", children: secondaryLinks })
31
+ ]
32
+ }
33
+ );
18
34
  };
19
35
  var footer_default = Footer;
20
36
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/patterns/footer/footer.tsx"],"names":["jsxs","jsx"],"mappings":";;;;;AASA,MAAM,SAAgC,CAAC;AAAA,EACrC,SAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACEA,eAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAC5B,QAAA,EAAA;AAAA,IAAA,SAAA,oBACCC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,IAAA,CAGA,SAAS,QAAA,qBACTA,cAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EACZ,mBAAS,QAAA,EACZ,CAAA;AAAA,IAGD,cAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CACZ,QAAA,EAAA,cAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"footer.cjs","sourcesContent":["import React from 'react';\nimport './footer.css';\n\nexport interface FooterProps extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n ...props\n}) => {\n return (\n <footer className=\"footer\" {...props}>\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;"]}
1
+ {"version":3,"sources":["../../../src/patterns/footer/footer.tsx"],"names":["classnames","jsxs","jsx"],"mappings":";;;;;;AAYA,MAAM,SAAgC,CAAC;AAAA,EACrC,SAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,QAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,mCACE,CAAC;AAAA;AACL,GACF;AAEA,EAAA,uBACEC,eAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,OAAA;AAAA,MAEV,QAAA,EAAA;AAAA,QAAA,SAAA,oBACCC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,QAAA,CAGA,SAAS,QAAA,qBACTA,cAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EACZ,mBAAS,QAAA,EACZ,CAAA;AAAA,QAGD,cAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CACZ,QAAA,EAAA,cAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"footer.cjs","sourcesContent":["import React from 'react';\n\nimport './footer.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport interface FooterProps\n extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames(\n 'footer',\n className,\n {\n 'footer--without-secondary-links':\n !secondaryLinks,\n },\n );\n\n return (\n <footer\n {...props}\n className={classes}\n >\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;\n"]}
@@ -1,11 +1,9 @@
1
1
  .footer {
2
2
  /* color */
3
- /* color: var(--color-text);
4
- background: var(--color-bg);*/
5
- border-top:
6
- var(--border-size-width-min)
7
- solid
8
- var(--color-line);
3
+ /*
4
+ color: var(--color-text);
5
+ background: var(--color-bg);
6
+ */
9
7
 
10
8
  /* typography */
11
9
  font-family: var(--font-note-family);
@@ -15,9 +13,12 @@
15
13
  letter-spacing: var(--font-note-letter-spacing);
16
14
 
17
15
  /* size */
18
- display: flex;
16
+ display: grid;
17
+ grid-template-columns:
18
+ minmax(0, 1fr)
19
+ auto
20
+ minmax(0, 1fr);
19
21
  align-items: center;
20
- justify-content: space-between;
21
22
  gap: var(--margin-menu);
22
23
 
23
24
  width: 100%;
@@ -28,6 +29,10 @@
28
29
  box-sizing: border-box;
29
30
 
30
31
  /* border */
32
+ border-top:
33
+ var(--border-size-width-min)
34
+ solid
35
+ var(--color-line);
31
36
 
32
37
  /* depth */
33
38
 
@@ -40,10 +45,15 @@
40
45
  /* typography */
41
46
 
42
47
  /* size */
48
+ grid-column: 1;
49
+ justify-self: start;
50
+
43
51
  display: flex;
44
52
  align-items: center;
45
- justify-content: center;
46
- flex-shrink: 0;
53
+ justify-content: flex-start;
54
+
55
+ min-width: 0;
56
+
47
57
  white-space: nowrap;
48
58
 
49
59
  /* border */
@@ -59,11 +69,15 @@
59
69
  /* typography */
60
70
 
61
71
  /* size */
72
+ grid-column: 2;
73
+ justify-self: center;
74
+
62
75
  display: flex;
63
76
  align-items: center;
77
+ justify-content: center;
64
78
  gap: var(--margin-menu);
65
79
 
66
- flex-shrink: 0;
80
+ min-width: 0;
67
81
 
68
82
  white-space: nowrap;
69
83
 
@@ -74,6 +88,40 @@
74
88
  /* motion */
75
89
  }
76
90
 
91
+ .footer__links--secondary {
92
+ /* color */
93
+
94
+ /* typography */
95
+
96
+ /* size */
97
+ grid-column: 3;
98
+ justify-self: end;
99
+ justify-content: flex-end;
100
+
101
+ /* border */
102
+
103
+ /* depth */
104
+
105
+ /* motion */
106
+ }
107
+
108
+ .footer--without-secondary-links .footer__links {
109
+ /* color */
110
+
111
+ /* typography */
112
+
113
+ /* size */
114
+ grid-column: 3;
115
+ justify-self: end;
116
+ justify-content: flex-end;
117
+
118
+ /* border */
119
+
120
+ /* depth */
121
+
122
+ /* motion */
123
+ }
124
+
77
125
  .footer__links > * {
78
126
  display: flex;
79
127
  align-items: center;
@@ -84,8 +132,10 @@
84
132
  color: inherit;
85
133
 
86
134
  /* typography */
87
- /* text-decoration: underline;
88
- text-underline-position: from-font;*/
135
+ /*
136
+ text-decoration: underline;
137
+ text-underline-position: from-font;
138
+ */
89
139
 
90
140
  /* size */
91
141
 
@@ -98,8 +148,9 @@
98
148
 
99
149
  @media (max-width: 1024px) {
100
150
  .footer {
101
- align-items: flex-start;
151
+ display: flex;
102
152
  flex-direction: column;
153
+ align-items: flex-start;
103
154
  justify-content: flex-start;
104
155
  }
105
156
 
@@ -110,5 +161,6 @@
110
161
 
111
162
  .footer__links {
112
163
  flex-wrap: wrap;
164
+ justify-content: flex-start;
113
165
  }
114
166
  }
@@ -1,18 +1,34 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import './footer.css';
3
+ import { classnames } from '../../components/helpers/classnames';
3
4
 
4
5
  const Footer = ({
5
6
  copyright,
6
7
  links,
7
8
  secondaryLinks,
8
9
  children,
10
+ className = "",
9
11
  ...props
10
12
  }) => {
11
- return /* @__PURE__ */ jsxs("footer", { className: "footer", ...props, children: [
12
- copyright && /* @__PURE__ */ jsx("div", { className: "footer__copyright", children: copyright }),
13
- (links || children) && /* @__PURE__ */ jsx("div", { className: "footer__links", children: links || children }),
14
- secondaryLinks && /* @__PURE__ */ jsx("div", { className: "footer__links footer__links--secondary", children: secondaryLinks })
15
- ] });
13
+ const classes = classnames(
14
+ "footer",
15
+ className,
16
+ {
17
+ "footer--without-secondary-links": !secondaryLinks
18
+ }
19
+ );
20
+ return /* @__PURE__ */ jsxs(
21
+ "footer",
22
+ {
23
+ ...props,
24
+ className: classes,
25
+ children: [
26
+ copyright && /* @__PURE__ */ jsx("div", { className: "footer__copyright", children: copyright }),
27
+ (links || children) && /* @__PURE__ */ jsx("div", { className: "footer__links", children: links || children }),
28
+ secondaryLinks && /* @__PURE__ */ jsx("div", { className: "footer__links footer__links--secondary", children: secondaryLinks })
29
+ ]
30
+ }
31
+ );
16
32
  };
17
33
  var footer_default = Footer;
18
34
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/patterns/footer/footer.tsx"],"names":[],"mappings":";;;AASA,MAAM,SAAgC,CAAC;AAAA,EACrC,SAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACE,IAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAC5B,QAAA,EAAA;AAAA,IAAA,SAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,IAAA,CAGA,SAAS,QAAA,qBACT,GAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EACZ,mBAAS,QAAA,EACZ,CAAA;AAAA,IAGD,cAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CACZ,QAAA,EAAA,cAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"footer.js","sourcesContent":["import React from 'react';\nimport './footer.css';\n\nexport interface FooterProps extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n ...props\n}) => {\n return (\n <footer className=\"footer\" {...props}>\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;"]}
1
+ {"version":3,"sources":["../../../src/patterns/footer/footer.tsx"],"names":[],"mappings":";;;;AAYA,MAAM,SAAgC,CAAC;AAAA,EACrC,SAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,QAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,mCACE,CAAC;AAAA;AACL,GACF;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,OAAA;AAAA,MAEV,QAAA,EAAA;AAAA,QAAA,SAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,QAAA,CAGA,SAAS,QAAA,qBACT,GAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EACZ,mBAAS,QAAA,EACZ,CAAA;AAAA,QAGD,cAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CACZ,QAAA,EAAA,cAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"footer.js","sourcesContent":["import React from 'react';\n\nimport './footer.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport interface FooterProps\n extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames(\n 'footer',\n className,\n {\n 'footer--without-secondary-links':\n !secondaryLinks,\n },\n );\n\n return (\n <footer\n {...props}\n className={classes}\n >\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;\n"]}
@@ -0,0 +1,2 @@
1
+ import type { ComponentMeta } from '../../catalog/types';
2
+ export declare const footerMeta: ComponentMeta;
package/styles.css CHANGED
@@ -3153,6 +3153,144 @@
3153
3153
  /* motion */
3154
3154
  }
3155
3155
 
3156
+ /* src/components/form-message/form-message.css */
3157
+ .form-message {
3158
+ /* color */
3159
+ --form-message-color:
3160
+ var(--color-text);
3161
+
3162
+ color: var(--form-message-color);
3163
+
3164
+ /* typography */
3165
+ --form-message-font-family:
3166
+ var(--font-body-family);
3167
+ --form-message-font-size:
3168
+ var(--font-body);
3169
+ --form-message-font-weight:
3170
+ var(--font-body-weight);
3171
+ --form-message-line-height:
3172
+ var(--font-body-line);
3173
+ --form-message-letter-spacing:
3174
+ var(--font-body-letter-spacing);
3175
+
3176
+ font-family:
3177
+ var(--form-message-font-family);
3178
+ font-size:
3179
+ var(--form-message-font-size);
3180
+ font-weight:
3181
+ var(--form-message-font-weight);
3182
+ line-height:
3183
+ var(--form-message-line-height);
3184
+ letter-spacing:
3185
+ var(--form-message-letter-spacing);
3186
+
3187
+ /* size */
3188
+ min-width: 0;
3189
+
3190
+ /* border */
3191
+
3192
+ /* depth */
3193
+
3194
+ /* motion */
3195
+ }
3196
+
3197
+ .form-message--info {
3198
+ /* color */
3199
+ --form-message-color:
3200
+ var(--color-text);
3201
+
3202
+ /* typography */
3203
+
3204
+ /* size */
3205
+
3206
+ /* border */
3207
+
3208
+ /* depth */
3209
+
3210
+ /* motion */
3211
+ }
3212
+
3213
+ .form-message--success {
3214
+ /* color */
3215
+ --form-message-color:
3216
+ var(--color-text-good);
3217
+
3218
+ /* typography */
3219
+
3220
+ /* size */
3221
+
3222
+ /* border */
3223
+
3224
+ /* depth */
3225
+
3226
+ /* motion */
3227
+ }
3228
+
3229
+ .form-message--warning {
3230
+ /* color */
3231
+ --form-message-color:
3232
+ var(--color-text-med);
3233
+
3234
+ /* typography */
3235
+
3236
+ /* size */
3237
+
3238
+ /* border */
3239
+
3240
+ /* depth */
3241
+
3242
+ /* motion */
3243
+ }
3244
+
3245
+ .form-message--error {
3246
+ /* color */
3247
+ --form-message-color:
3248
+ var(--color-text-bad);
3249
+
3250
+ /* typography */
3251
+
3252
+ /* size */
3253
+
3254
+ /* border */
3255
+
3256
+ /* depth */
3257
+
3258
+ /* motion */
3259
+ }
3260
+
3261
+ .form-message__item {
3262
+ /* color */
3263
+ color: inherit;
3264
+
3265
+ /* typography */
3266
+ font: inherit;
3267
+ letter-spacing: inherit;
3268
+
3269
+ /* size */
3270
+ margin: 0;
3271
+
3272
+ /* border */
3273
+
3274
+ /* depth */
3275
+
3276
+ /* motion */
3277
+ }
3278
+
3279
+ .form-message__item + .form-message__item {
3280
+ /* color */
3281
+
3282
+ /* typography */
3283
+
3284
+ /* size */
3285
+ margin-top: var(--font-body-margin);
3286
+
3287
+ /* border */
3288
+
3289
+ /* depth */
3290
+
3291
+ /* motion */
3292
+ }
3293
+
3156
3294
  /* src/components/input/input.css */
3157
3295
  .input {
3158
3296
  /* color */
@@ -5148,12 +5286,10 @@
5148
5286
  /* src/patterns/footer/footer.css */
5149
5287
  .footer {
5150
5288
  /* color */
5151
- /* color: var(--color-text);
5152
- background: var(--color-bg);*/
5153
- border-top:
5154
- var(--border-size-width-min)
5155
- solid
5156
- var(--color-line);
5289
+ /*
5290
+ color: var(--color-text);
5291
+ background: var(--color-bg);
5292
+ */
5157
5293
 
5158
5294
  /* typography */
5159
5295
  font-family: var(--font-note-family);
@@ -5163,9 +5299,12 @@
5163
5299
  letter-spacing: var(--font-note-letter-spacing);
5164
5300
 
5165
5301
  /* size */
5166
- display: flex;
5302
+ display: grid;
5303
+ grid-template-columns:
5304
+ minmax(0, 1fr)
5305
+ auto
5306
+ minmax(0, 1fr);
5167
5307
  align-items: center;
5168
- justify-content: space-between;
5169
5308
  gap: var(--margin-menu);
5170
5309
 
5171
5310
  width: 100%;
@@ -5176,6 +5315,10 @@
5176
5315
  box-sizing: border-box;
5177
5316
 
5178
5317
  /* border */
5318
+ border-top:
5319
+ var(--border-size-width-min)
5320
+ solid
5321
+ var(--color-line);
5179
5322
 
5180
5323
  /* depth */
5181
5324
 
@@ -5188,10 +5331,15 @@
5188
5331
  /* typography */
5189
5332
 
5190
5333
  /* size */
5334
+ grid-column: 1;
5335
+ justify-self: start;
5336
+
5191
5337
  display: flex;
5192
5338
  align-items: center;
5193
- justify-content: center;
5194
- flex-shrink: 0;
5339
+ justify-content: flex-start;
5340
+
5341
+ min-width: 0;
5342
+
5195
5343
  white-space: nowrap;
5196
5344
 
5197
5345
  /* border */
@@ -5207,11 +5355,15 @@
5207
5355
  /* typography */
5208
5356
 
5209
5357
  /* size */
5358
+ grid-column: 2;
5359
+ justify-self: center;
5360
+
5210
5361
  display: flex;
5211
5362
  align-items: center;
5363
+ justify-content: center;
5212
5364
  gap: var(--margin-menu);
5213
5365
 
5214
- flex-shrink: 0;
5366
+ min-width: 0;
5215
5367
 
5216
5368
  white-space: nowrap;
5217
5369
 
@@ -5222,6 +5374,40 @@
5222
5374
  /* motion */
5223
5375
  }
5224
5376
 
5377
+ .footer__links--secondary {
5378
+ /* color */
5379
+
5380
+ /* typography */
5381
+
5382
+ /* size */
5383
+ grid-column: 3;
5384
+ justify-self: end;
5385
+ justify-content: flex-end;
5386
+
5387
+ /* border */
5388
+
5389
+ /* depth */
5390
+
5391
+ /* motion */
5392
+ }
5393
+
5394
+ .footer--without-secondary-links .footer__links {
5395
+ /* color */
5396
+
5397
+ /* typography */
5398
+
5399
+ /* size */
5400
+ grid-column: 3;
5401
+ justify-self: end;
5402
+ justify-content: flex-end;
5403
+
5404
+ /* border */
5405
+
5406
+ /* depth */
5407
+
5408
+ /* motion */
5409
+ }
5410
+
5225
5411
  .footer__links > * {
5226
5412
  display: flex;
5227
5413
  align-items: center;
@@ -5232,8 +5418,10 @@
5232
5418
  color: inherit;
5233
5419
 
5234
5420
  /* typography */
5235
- /* text-decoration: underline;
5236
- text-underline-position: from-font;*/
5421
+ /*
5422
+ text-decoration: underline;
5423
+ text-underline-position: from-font;
5424
+ */
5237
5425
 
5238
5426
  /* size */
5239
5427
 
@@ -5246,8 +5434,9 @@
5246
5434
 
5247
5435
  @media (max-width: 1024px) {
5248
5436
  .footer {
5249
- align-items: flex-start;
5437
+ display: flex;
5250
5438
  flex-direction: column;
5439
+ align-items: flex-start;
5251
5440
  justify-content: flex-start;
5252
5441
  }
5253
5442
 
@@ -5258,6 +5447,7 @@
5258
5447
 
5259
5448
  .footer__links {
5260
5449
  flex-wrap: wrap;
5450
+ justify-content: flex-start;
5261
5451
  }
5262
5452
  }
5263
5453