jvetrau-ds 0.2.10 → 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.
@@ -1,8 +1,14 @@
1
1
  .calendar-month {
2
2
  /* color */
3
3
  --calendar-month-color: inherit;
4
- --calendar-month-note-color: var(--color-text-note);
5
- --calendar-month-marker-color: var(--color-primary);
4
+ --calendar-month-weekday-color:
5
+ var(--color-text);
6
+ --calendar-month-marked-bg:
7
+ var(--color-bg-contrast);
8
+ --calendar-month-marked-color:
9
+ var(--color-text-contrast);
10
+ --calendar-month-marker-color:
11
+ var(--color-primary);
6
12
 
7
13
  color: var(--calendar-month-color);
8
14
 
@@ -109,7 +115,6 @@
109
115
 
110
116
  .calendar-month__weekday {
111
117
  /* color */
112
- color: var(--calendar-month-note-color);
113
118
 
114
119
  /* typography */
115
120
  font-family:
@@ -189,11 +194,10 @@
189
194
  var(--calendar-month-date-letter-spacing);
190
195
 
191
196
  /* size */
192
- display: inline-flex;
193
- flex-direction: column;
197
+ position: relative;
198
+ display: flex;
194
199
  align-items: center;
195
200
  justify-content: center;
196
- gap: 0.25rem;
197
201
  width: 100%;
198
202
  height: 100%;
199
203
 
@@ -206,6 +210,10 @@
206
210
 
207
211
  .calendar-month__date--marked {
208
212
  /* color */
213
+ background:
214
+ var(--calendar-month-marked-bg);
215
+ color:
216
+ var(--calendar-month-marked-color);
209
217
 
210
218
  /* typography */
211
219
 
@@ -220,13 +228,20 @@
220
228
 
221
229
  .calendar-month__marker {
222
230
  /* color */
223
- background: var(--calendar-month-marker-color);
231
+ background:
232
+ var(--calendar-month-marker-color);
224
233
 
225
234
  /* typography */
226
235
 
227
236
  /* size */
228
- width: var(--calendar-month-marker-size);
229
- height: var(--calendar-month-marker-size);
237
+ position: absolute;
238
+ bottom: 0.25rem;
239
+ left: 50%;
240
+ width:
241
+ var(--calendar-month-marker-size);
242
+ height:
243
+ var(--calendar-month-marker-size);
244
+ transform: translateX(-50%);
230
245
 
231
246
  /* border */
232
247
  border-radius: 999px;
@@ -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';
@@ -22,9 +22,12 @@ function getClampedValue(value, min, max) {
22
22
  max
23
23
  );
24
24
  }
25
- function formatTime(value) {
25
+ function getTimeParts(value) {
26
26
  if (!Number.isFinite(value)) {
27
- return "0:00";
27
+ return {
28
+ minutes: "0",
29
+ seconds: "00"
30
+ };
28
31
  }
29
32
  const minutes = Math.floor(
30
33
  value / 60
@@ -32,9 +35,22 @@ function formatTime(value) {
32
35
  const seconds = Math.floor(
33
36
  value % 60
34
37
  );
35
- return `${minutes}:${String(
36
- seconds
37
- ).padStart(2, "0")}`;
38
+ return {
39
+ minutes: String(minutes),
40
+ seconds: String(
41
+ seconds
42
+ ).padStart(2, "0")
43
+ };
44
+ }
45
+ function renderTimeDigits(value) {
46
+ return value.split("").map((digit, index) => /* @__PURE__ */ jsxRuntime.jsx(
47
+ "span",
48
+ {
49
+ className: "video__time-digit",
50
+ children: digit
51
+ },
52
+ `${digit}-${index}`
53
+ ));
38
54
  }
39
55
  function getBufferedEnd(video) {
40
56
  if (video.buffered.length === 0) {
@@ -131,6 +147,7 @@ const Video = ({
131
147
  const effectiveMediaKey = mediaKey ?? videoSrc;
132
148
  const qualityOptions = getQualityOptions(qualities);
133
149
  const hasQualityOptions = qualityOptions.length > 0;
150
+ const timeParts = getTimeParts(currentTime);
134
151
  react.useEffect(() => {
135
152
  onPlaybackErrorRef.current = onPlaybackError;
136
153
  }, [onPlaybackError]);
@@ -418,7 +435,15 @@ const Video = ({
418
435
  onClick: handlePlayToggle
419
436
  }
420
437
  ),
421
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "video__time", children: formatTime(currentTime) }),
438
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "video__time", children: [
439
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "video__time-minutes", children: renderTimeDigits(
440
+ timeParts.minutes
441
+ ) }),
442
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "video__time-separator", children: ":" }),
443
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "video__time-seconds", children: renderTimeDigits(
444
+ timeParts.seconds
445
+ ) })
446
+ ] }),
422
447
  /* @__PURE__ */ jsxRuntime.jsx(
423
448
  ProgressBar__default.default,
424
449
  {