jvetrau-ds 0.1.18 → 0.1.20

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 (93) hide show
  1. package/components/action-group/action-group.cjs +32 -0
  2. package/components/action-group/action-group.cjs.map +1 -0
  3. package/components/action-group/action-group.css +24 -0
  4. package/components/action-group/action-group.d.cts +9 -0
  5. package/components/action-group/action-group.d.ts +9 -0
  6. package/components/action-group/action-group.js +30 -0
  7. package/components/action-group/action-group.js.map +1 -0
  8. package/components/action-group/index.cjs +13 -0
  9. package/components/action-group/index.cjs.map +1 -0
  10. package/components/action-group/index.d.cts +2 -0
  11. package/components/action-group/index.d.ts +2 -0
  12. package/components/action-group/index.js +3 -0
  13. package/components/action-group/index.js.map +1 -0
  14. package/components/field/field.css +3 -3
  15. package/components/index.cjs +24 -0
  16. package/components/index.d.cts +5 -1
  17. package/components/index.d.ts +5 -1
  18. package/components/index.js +4 -0
  19. package/components/tabs/index.d.cts +1 -1
  20. package/components/tabs/index.d.ts +1 -1
  21. package/components/tabs/tabs.cjs +50 -3
  22. package/components/tabs/tabs.cjs.map +1 -1
  23. package/components/tabs/tabs.css +90 -64
  24. package/components/tabs/tabs.d.cts +9 -1
  25. package/components/tabs/tabs.d.ts +9 -1
  26. package/components/tabs/tabs.js +50 -3
  27. package/components/tabs/tabs.js.map +1 -1
  28. package/index.cjs +6 -0
  29. package/index.d.cts +3 -2
  30. package/index.d.ts +3 -2
  31. package/index.js +1 -0
  32. package/package.json +1 -1
  33. package/styles.css +118 -66
  34. package/themes/base/desktop.css +1 -1
  35. package/themes/base/desktop.md +1 -1
  36. package/themes/base/desktop.scoped.css +1 -1
  37. package/themes/base/diagram.css +1 -1
  38. package/themes/base/diagram.md +1 -1
  39. package/themes/base/diagram.scoped.css +1 -1
  40. package/themes/base/mobile.css +1 -1
  41. package/themes/base/mobile.md +1 -1
  42. package/themes/base/mobile.scoped.css +1 -1
  43. package/themes/brandcopilot/desktop.css +1 -1
  44. package/themes/brandcopilot/desktop.md +1 -1
  45. package/themes/brandcopilot/desktop.scoped.css +1 -1
  46. package/themes/brandcopilot/diagram.css +1 -1
  47. package/themes/brandcopilot/diagram.md +1 -1
  48. package/themes/brandcopilot/diagram.scoped.css +1 -1
  49. package/themes/brandcopilot/mobile.css +1 -1
  50. package/themes/brandcopilot/mobile.md +1 -1
  51. package/themes/brandcopilot/mobile.scoped.css +1 -1
  52. package/themes/dmpatterns/desktop.css +1 -1
  53. package/themes/dmpatterns/desktop.md +1 -1
  54. package/themes/dmpatterns/desktop.scoped.css +1 -1
  55. package/themes/dmpatterns/diagram.css +1 -1
  56. package/themes/dmpatterns/diagram.md +1 -1
  57. package/themes/dmpatterns/diagram.scoped.css +1 -1
  58. package/themes/dmpatterns/mobile.css +1 -1
  59. package/themes/dmpatterns/mobile.md +1 -1
  60. package/themes/dmpatterns/mobile.scoped.css +1 -1
  61. package/themes/pdigest/desktop.css +1 -1
  62. package/themes/pdigest/desktop.md +1 -1
  63. package/themes/pdigest/desktop.scoped.css +1 -1
  64. package/themes/pdigest/diagram.css +1 -1
  65. package/themes/pdigest/diagram.md +1 -1
  66. package/themes/pdigest/diagram.scoped.css +1 -1
  67. package/themes/pdigest/mobile.css +1 -1
  68. package/themes/pdigest/mobile.md +1 -1
  69. package/themes/pdigest/mobile.scoped.css +1 -1
  70. package/themes/redesigntrack/desktop.css +1 -1
  71. package/themes/redesigntrack/desktop.md +1 -1
  72. package/themes/redesigntrack/desktop.scoped.css +1 -1
  73. package/themes/redesigntrack/diagram.css +1 -1
  74. package/themes/redesigntrack/diagram.md +1 -1
  75. package/themes/redesigntrack/diagram.scoped.css +1 -1
  76. package/themes/redesigntrack/mobile.css +1 -1
  77. package/themes/redesigntrack/mobile.md +1 -1
  78. package/themes/redesigntrack/mobile.scoped.css +1 -1
  79. package/tokens/themes/base/dist/desktop.json +1 -1
  80. package/tokens/themes/base/dist/diagram.json +1 -1
  81. package/tokens/themes/base/dist/mobile.json +1 -1
  82. package/tokens/themes/brandcopilot/dist/desktop.json +1 -1
  83. package/tokens/themes/brandcopilot/dist/diagram.json +1 -1
  84. package/tokens/themes/brandcopilot/dist/mobile.json +1 -1
  85. package/tokens/themes/dmpatterns/dist/desktop.json +1 -1
  86. package/tokens/themes/dmpatterns/dist/diagram.json +1 -1
  87. package/tokens/themes/dmpatterns/dist/mobile.json +1 -1
  88. package/tokens/themes/pdigest/dist/desktop.json +1 -1
  89. package/tokens/themes/pdigest/dist/diagram.json +1 -1
  90. package/tokens/themes/pdigest/dist/mobile.json +1 -1
  91. package/tokens/themes/redesigntrack/dist/desktop.json +1 -1
  92. package/tokens/themes/redesigntrack/dist/diagram.json +1 -1
  93. package/tokens/themes/redesigntrack/dist/mobile.json +1 -1
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ require('./action-group.css');
5
+ var classnames = require('../helpers/classnames');
6
+
7
+ const ActionGroup = ({
8
+ direction = "row",
9
+ align = "start",
10
+ className = "",
11
+ children,
12
+ ...props
13
+ }) => {
14
+ const classes = classnames.classnames("action-group", className, {
15
+ "action-group--row": direction === "row",
16
+ "action-group--column": direction === "column",
17
+ "action-group--end": align === "end"
18
+ });
19
+ return /* @__PURE__ */ jsxRuntime.jsx(
20
+ "div",
21
+ {
22
+ className: classes,
23
+ ...props,
24
+ children
25
+ }
26
+ );
27
+ };
28
+ var action_group_default = ActionGroup;
29
+
30
+ module.exports = action_group_default;
31
+ //# sourceMappingURL=action-group.cjs.map
32
+ //# sourceMappingURL=action-group.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/action-group/action-group.tsx"],"names":["classnames","jsx"],"mappings":";;;;;;AAUA,MAAM,cAA0C,CAAC;AAAA,EAC/C,SAAA,GAAY,KAAA;AAAA,EACZ,KAAA,GAAQ,OAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA,CAAW,cAAA,EAAgB,SAAA,EAAW;AAAA,IACpD,qBAAqB,SAAA,KAAc,KAAA;AAAA,IACnC,wBAAwB,SAAA,KAAc,QAAA;AAAA,IACtC,qBAAqB,KAAA,KAAU;AAAA,GAChC,CAAA;AAED,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,oBAAA,GAAQ","file":"action-group.cjs","sourcesContent":["import React from 'react';\nimport './action-group.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface ActionGroupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'row' | 'column';\n align?: 'start' | 'end';\n}\n\nconst ActionGroup: React.FC<ActionGroupProps> = ({\n direction = 'row',\n align = 'start',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('action-group', className, {\n 'action-group--row': direction === 'row',\n 'action-group--column': direction === 'column',\n 'action-group--end': align === 'end',\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default ActionGroup;"]}
@@ -0,0 +1,24 @@
1
+ .action-group {
2
+ display: flex;
3
+ gap: var(--margin-control);
4
+ }
5
+
6
+ .action-group--row {
7
+ flex-direction: row;
8
+ align-items: center;
9
+ flex-wrap: wrap;
10
+ }
11
+
12
+ .action-group--column {
13
+ flex-direction: column;
14
+ align-items: flex-start;
15
+ }
16
+
17
+ .action-group--end {
18
+ justify-content: flex-end;
19
+ }
20
+
21
+ .action-group--column.action-group--end {
22
+ align-items: flex-end;
23
+ justify-content: flex-start;
24
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+
3
+ interface ActionGroupProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ direction?: 'row' | 'column';
5
+ align?: 'start' | 'end';
6
+ }
7
+ declare const ActionGroup: React.FC<ActionGroupProps>;
8
+
9
+ export { type ActionGroupProps, ActionGroup as default };
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+
3
+ interface ActionGroupProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ direction?: 'row' | 'column';
5
+ align?: 'start' | 'end';
6
+ }
7
+ declare const ActionGroup: React.FC<ActionGroupProps>;
8
+
9
+ export { type ActionGroupProps, ActionGroup as default };
@@ -0,0 +1,30 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import './action-group.css';
3
+ import { classnames } from '../helpers/classnames';
4
+
5
+ const ActionGroup = ({
6
+ direction = "row",
7
+ align = "start",
8
+ className = "",
9
+ children,
10
+ ...props
11
+ }) => {
12
+ const classes = classnames("action-group", className, {
13
+ "action-group--row": direction === "row",
14
+ "action-group--column": direction === "column",
15
+ "action-group--end": align === "end"
16
+ });
17
+ return /* @__PURE__ */ jsx(
18
+ "div",
19
+ {
20
+ className: classes,
21
+ ...props,
22
+ children
23
+ }
24
+ );
25
+ };
26
+ var action_group_default = ActionGroup;
27
+
28
+ export { action_group_default as default };
29
+ //# sourceMappingURL=action-group.js.map
30
+ //# sourceMappingURL=action-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/action-group/action-group.tsx"],"names":[],"mappings":";;;;AAUA,MAAM,cAA0C,CAAC;AAAA,EAC/C,SAAA,GAAY,KAAA;AAAA,EACZ,KAAA,GAAQ,OAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,cAAA,EAAgB,SAAA,EAAW;AAAA,IACpD,qBAAqB,SAAA,KAAc,KAAA;AAAA,IACnC,wBAAwB,SAAA,KAAc,QAAA;AAAA,IACtC,qBAAqB,KAAA,KAAU;AAAA,GAChC,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,oBAAA,GAAQ","file":"action-group.js","sourcesContent":["import React from 'react';\nimport './action-group.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface ActionGroupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'row' | 'column';\n align?: 'start' | 'end';\n}\n\nconst ActionGroup: React.FC<ActionGroupProps> = ({\n direction = 'row',\n align = 'start',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('action-group', className, {\n 'action-group--row': direction === 'row',\n 'action-group--column': direction === 'column',\n 'action-group--end': align === 'end',\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default ActionGroup;"]}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var actionGroup = require('./action-group');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var actionGroup__default = /*#__PURE__*/_interopDefault(actionGroup);
8
+
9
+
10
+
11
+ module.exports = actionGroup__default.default;
12
+ //# sourceMappingURL=index.cjs.map
13
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
@@ -0,0 +1,2 @@
1
+ export { ActionGroupProps, default } from './action-group.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { ActionGroupProps, default } from './action-group.js';
2
+ import 'react';
@@ -0,0 +1,3 @@
1
+ export { default } from './action-group';
2
+ //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -1,10 +1,10 @@
1
1
  .field {
2
2
  /* color */
3
- --field-label-color: var(--color-text);
3
+ /* --field-label-color: var(--color-text);*/
4
4
  --field-message-color: var(--color-text-note);
5
5
  --field-error-color: var(--color-line-bad);
6
6
 
7
- color: var(--field-label-color);
7
+ /* color: var(--field-label-color);*/
8
8
 
9
9
  /* typography */
10
10
  --field-label-font-family: var(--font-body-family);
@@ -39,7 +39,7 @@
39
39
 
40
40
  .field__label {
41
41
  /* color */
42
- color: var(--field-label-color);
42
+ /* color: var(--field-label-color);*/
43
43
 
44
44
  /* typography */
45
45
  font-family: var(--field-label-font-family);
@@ -9,13 +9,17 @@ var dropdown = require('./dropdown/dropdown');
9
9
  var checkbox = require('./checkbox/checkbox');
10
10
  var radio = require('./radio/radio');
11
11
  var field = require('./field/field');
12
+ var menu = require('./menu/menu');
13
+ var tabs = require('./tabs/tabs');
12
14
  var tag = require('./tag/tag');
13
15
  var progressbar = require('./progressbar/progressbar');
14
16
  var card = require('./card/card');
15
17
  var panel = require('./panel/panel');
18
+ var video = require('./video/video');
16
19
  var logo = require('./logo/logo');
17
20
  var avatar = require('./avatar/avatar');
18
21
  var attach = require('./attach/attach');
22
+ var actionGroup = require('./action-group/action-group');
19
23
 
20
24
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
21
25
 
@@ -28,13 +32,17 @@ var dropdown__default = /*#__PURE__*/_interopDefault(dropdown);
28
32
  var checkbox__default = /*#__PURE__*/_interopDefault(checkbox);
29
33
  var radio__default = /*#__PURE__*/_interopDefault(radio);
30
34
  var field__default = /*#__PURE__*/_interopDefault(field);
35
+ var menu__default = /*#__PURE__*/_interopDefault(menu);
36
+ var tabs__default = /*#__PURE__*/_interopDefault(tabs);
31
37
  var tag__default = /*#__PURE__*/_interopDefault(tag);
32
38
  var progressbar__default = /*#__PURE__*/_interopDefault(progressbar);
33
39
  var card__default = /*#__PURE__*/_interopDefault(card);
34
40
  var panel__default = /*#__PURE__*/_interopDefault(panel);
41
+ var video__default = /*#__PURE__*/_interopDefault(video);
35
42
  var logo__default = /*#__PURE__*/_interopDefault(logo);
36
43
  var avatar__default = /*#__PURE__*/_interopDefault(avatar);
37
44
  var attach__default = /*#__PURE__*/_interopDefault(attach);
45
+ var actionGroup__default = /*#__PURE__*/_interopDefault(actionGroup);
38
46
 
39
47
 
40
48
 
@@ -74,6 +82,14 @@ Object.defineProperty(exports, "Field", {
74
82
  enumerable: true,
75
83
  get: function () { return field__default.default; }
76
84
  });
85
+ Object.defineProperty(exports, "Menu", {
86
+ enumerable: true,
87
+ get: function () { return menu__default.default; }
88
+ });
89
+ Object.defineProperty(exports, "Tabs", {
90
+ enumerable: true,
91
+ get: function () { return tabs__default.default; }
92
+ });
77
93
  Object.defineProperty(exports, "Tag", {
78
94
  enumerable: true,
79
95
  get: function () { return tag__default.default; }
@@ -90,6 +106,10 @@ Object.defineProperty(exports, "Panel", {
90
106
  enumerable: true,
91
107
  get: function () { return panel__default.default; }
92
108
  });
109
+ Object.defineProperty(exports, "Video", {
110
+ enumerable: true,
111
+ get: function () { return video__default.default; }
112
+ });
93
113
  Object.defineProperty(exports, "Logo", {
94
114
  enumerable: true,
95
115
  get: function () { return logo__default.default; }
@@ -102,5 +122,9 @@ Object.defineProperty(exports, "Attach", {
102
122
  enumerable: true,
103
123
  get: function () { return attach__default.default; }
104
124
  });
125
+ Object.defineProperty(exports, "ActionGroup", {
126
+ enumerable: true,
127
+ get: function () { return actionGroup__default.default; }
128
+ });
105
129
  //# sourceMappingURL=index.cjs.map
106
130
  //# sourceMappingURL=index.cjs.map
@@ -7,12 +7,16 @@ export { default as Dropdown, DropdownProps } from './dropdown/dropdown.cjs';
7
7
  export { default as Checkbox, CheckboxProps } from './checkbox/checkbox.cjs';
8
8
  export { default as Radio, RadioProps } from './radio/radio.cjs';
9
9
  export { default as Field, FieldProps } from './field/field.cjs';
10
+ export { default as Menu, MenuItem, MenuProps } from './menu/menu.cjs';
11
+ export { TabItem, default as Tabs, TabsProps } from './tabs/tabs.cjs';
10
12
  export { default as Tag, TagProps } from './tag/tag.cjs';
11
13
  export { default as ProgressBar, ProgressBarProps } from './progressbar/progressbar.cjs';
12
14
  export { default as Card, CardProps } from './card/card.cjs';
13
15
  export { default as Panel, PanelProps } from './panel/panel.cjs';
16
+ export { default as Video, VideoProps, VideoQuality } from './video/video.cjs';
14
17
  export { default as Logo, LogoProps } from './logo/logo.cjs';
15
18
  export { default as Avatar, AvatarProps } from './avatar/avatar.cjs';
16
- export { default as Attach, AttachProps } from './attach/attach.cjs';
19
+ export { default as Attach, AttachItem, AttachProps } from './attach/attach.cjs';
20
+ export { default as ActionGroup, ActionGroupProps } from './action-group/action-group.cjs';
17
21
  import 'react';
18
22
  import '../types-DboVOY__.cjs';
@@ -7,12 +7,16 @@ export { default as Dropdown, DropdownProps } from './dropdown/dropdown.js';
7
7
  export { default as Checkbox, CheckboxProps } from './checkbox/checkbox.js';
8
8
  export { default as Radio, RadioProps } from './radio/radio.js';
9
9
  export { default as Field, FieldProps } from './field/field.js';
10
+ export { default as Menu, MenuItem, MenuProps } from './menu/menu.js';
11
+ export { TabItem, default as Tabs, TabsProps } from './tabs/tabs.js';
10
12
  export { default as Tag, TagProps } from './tag/tag.js';
11
13
  export { default as ProgressBar, ProgressBarProps } from './progressbar/progressbar.js';
12
14
  export { default as Card, CardProps } from './card/card.js';
13
15
  export { default as Panel, PanelProps } from './panel/panel.js';
16
+ export { default as Video, VideoProps, VideoQuality } from './video/video.js';
14
17
  export { default as Logo, LogoProps } from './logo/logo.js';
15
18
  export { default as Avatar, AvatarProps } from './avatar/avatar.js';
16
- export { default as Attach, AttachProps } from './attach/attach.js';
19
+ export { default as Attach, AttachItem, AttachProps } from './attach/attach.js';
20
+ export { default as ActionGroup, ActionGroupProps } from './action-group/action-group.js';
17
21
  import 'react';
18
22
  import '../types-DboVOY__.js';
@@ -7,12 +7,16 @@ export { default as Dropdown } from './dropdown/dropdown';
7
7
  export { default as Checkbox } from './checkbox/checkbox';
8
8
  export { default as Radio } from './radio/radio';
9
9
  export { default as Field } from './field/field';
10
+ export { default as Menu } from './menu/menu';
11
+ export { default as Tabs } from './tabs/tabs';
10
12
  export { default as Tag } from './tag/tag';
11
13
  export { default as ProgressBar } from './progressbar/progressbar';
12
14
  export { default as Card } from './card/card';
13
15
  export { default as Panel } from './panel/panel';
16
+ export { default as Video } from './video/video';
14
17
  export { default as Logo } from './logo/logo';
15
18
  export { default as Avatar } from './avatar/avatar';
16
19
  export { default as Attach } from './attach/attach';
20
+ export { default as ActionGroup } from './action-group/action-group';
17
21
  //# sourceMappingURL=index.js.map
18
22
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- export { TabsProps, default } from './tabs.cjs';
1
+ export { TabItem, TabsProps, default } from './tabs.cjs';
2
2
  import 'react';
@@ -1,2 +1,2 @@
1
- export { TabsProps, default } from './tabs.js';
1
+ export { TabItem, TabsProps, default } from './tabs.js';
2
2
  import 'react';
@@ -5,12 +5,59 @@ var classnames = require('../helpers/classnames');
5
5
  require('./tabs.css');
6
6
 
7
7
  const Tabs = ({
8
+ items,
9
+ value,
8
10
  className = "",
9
- children,
11
+ onValueChange,
10
12
  ...props
11
13
  }) => {
12
- const classes = classnames.classnames("tabs", className);
13
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes, ...props, children });
14
+ const classes = classnames.classnames("tabs", className, {});
15
+ return /* @__PURE__ */ jsxRuntime.jsx(
16
+ "div",
17
+ {
18
+ className: classes,
19
+ ...props,
20
+ children: /* @__PURE__ */ jsxRuntime.jsx(
21
+ "div",
22
+ {
23
+ className: "tabs__list",
24
+ role: "tablist",
25
+ "aria-label": "Tabs",
26
+ children: items.map((item) => {
27
+ const isSelected = item.value === value;
28
+ const tabClasses = classnames.classnames("tabs__tab", {
29
+ "tabs__tab--selected": isSelected
30
+ });
31
+ if (item.href) {
32
+ return /* @__PURE__ */ jsxRuntime.jsx(
33
+ "a",
34
+ {
35
+ className: tabClasses,
36
+ href: item.href,
37
+ "aria-current": isSelected ? "page" : void 0,
38
+ onClick: () => onValueChange?.(item.value),
39
+ children: item.label
40
+ },
41
+ item.value
42
+ );
43
+ }
44
+ return /* @__PURE__ */ jsxRuntime.jsx(
45
+ "button",
46
+ {
47
+ className: tabClasses,
48
+ type: "button",
49
+ role: "tab",
50
+ "aria-selected": isSelected,
51
+ onClick: () => onValueChange?.(item.value),
52
+ children: item.label
53
+ },
54
+ item.value
55
+ );
56
+ })
57
+ }
58
+ )
59
+ }
60
+ );
14
61
  };
15
62
  var tabs_default = Tabs;
16
63
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tabs/tabs.tsx"],"names":["classnames"],"mappings":";;;;;;AAMA,MAAM,OAA4B,CAAC;AAAA,EACjC,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA,CAAW,MAAA,EAAQ,SAAS,CAAA;AAE5C,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,EAAU,GAAG,OAC1B,QAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ","file":"tabs.cjs","sourcesContent":["import React from 'react';\nimport { classnames } from '../helpers/classnames';\nimport './tabs.css';\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Tabs: React.FC<TabsProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tabs', className);\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n};\n\nexport default Tabs;"]}
1
+ {"version":3,"sources":["../../../src/components/tabs/tabs.tsx"],"names":["classnames","jsx"],"mappings":";;;;;;AAiBA,MAAM,OAA4B,CAAC;AAAA,EACjC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,aAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA,CAAW,MAAA,EAAQ,SAAA,EAAW,EAAE,CAAA;AAEhD,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,YAAA;AAAA,UACV,IAAA,EAAK,SAAA;AAAA,UACL,YAAA,EAAW,MAAA;AAAA,UAEV,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,YAAA,MAAM,UAAA,GAAa,KAAK,KAAA,KAAU,KAAA;AAElC,YAAA,MAAM,UAAA,GAAaD,sBAAW,WAAA,EAAa;AAAA,cACzC,qBAAA,EAAuB;AAAA,aACxB,CAAA;AAED,YAAA,IAAI,KAAK,IAAA,EAAM;AACb,cAAA,uBACEC,cAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAW,UAAA;AAAA,kBACX,MAAM,IAAA,CAAK,IAAA;AAAA,kBACX,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,kBACpC,OAAA,EAAS,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAK,CAAA;AAAA,kBAExC,QAAA,EAAA,IAAA,CAAK;AAAA,iBAAA;AAAA,gBAND,IAAA,CAAK;AAAA,eAOZ;AAAA,YAEJ;AAEA,YAAA,uBACEA,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBAEC,SAAA,EAAW,UAAA;AAAA,gBACX,IAAA,EAAK,QAAA;AAAA,gBACL,IAAA,EAAK,KAAA;AAAA,gBACL,eAAA,EAAe,UAAA;AAAA,gBACf,OAAA,EAAS,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAK,CAAA;AAAA,gBAExC,QAAA,EAAA,IAAA,CAAK;AAAA,eAAA;AAAA,cAPD,IAAA,CAAK;AAAA,aAQZ;AAAA,UAEJ,CAAC;AAAA;AAAA;AACH;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ","file":"tabs.cjs","sourcesContent":["import React from 'react';\nimport { classnames } from '../helpers/classnames';\nimport './tabs.css';\n\nexport interface TabItem {\n value: string;\n label: React.ReactNode;\n href?: string;\n}\n\nexport interface TabsProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: TabItem[];\n value: string;\n onValueChange?: (value: string) => void;\n}\n\nconst Tabs: React.FC<TabsProps> = ({\n items,\n value,\n className = '',\n onValueChange,\n ...props\n}) => {\n const classes = classnames('tabs', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <div\n className=\"tabs__list\"\n role=\"tablist\"\n aria-label=\"Tabs\"\n >\n {items.map((item) => {\n const isSelected = item.value === value;\n\n const tabClasses = classnames('tabs__tab', {\n 'tabs__tab--selected': isSelected,\n });\n\n if (item.href) {\n return (\n <a\n key={item.value}\n className={tabClasses}\n href={item.href}\n aria-current={isSelected ? 'page' : undefined}\n onClick={() => onValueChange?.(item.value)}\n >\n {item.label}\n </a>\n );\n }\n\n return (\n <button\n key={item.value}\n className={tabClasses}\n type=\"button\"\n role=\"tab\"\n aria-selected={isSelected}\n onClick={() => onValueChange?.(item.value)}\n >\n {item.label}\n </button>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default Tabs;"]}
@@ -1,67 +1,48 @@
1
1
  .tabs {
2
2
  /* color */
3
- --component-bg: transparent;
4
- --component-text: inherit;
3
+ --tabs-color: var(--color-link);
5
4
 
6
- background: var(--component-bg);
7
- color: var(--component-text);
5
+ color: var(--tabs-color);
8
6
 
9
7
  /* typography */
10
- --component-font-family: inherit;
11
- --component-font-weight: inherit;
12
- --component-font-size: inherit;
13
- --component-line-height: inherit;
14
- --component-letter-spacing: inherit;
15
-
16
- font-family: var(--component-font-family);
17
- font-size: var(--component-font-size);
18
- font-weight: var(--component-font-weight);
19
- line-height: var(--component-line-height);
20
- letter-spacing: var(--component-letter-spacing);
8
+ --tabs-font-family: var(--font-body-family);
9
+ --tabs-font-weight: var(--font-body-weight);
10
+ --tabs-font-size: var(--font-body);
11
+ --tabs-line-height: var(--font-body-line);
12
+ --tabs-letter-spacing: var(--font-body-letter-spacing);
13
+
14
+ font-family: var(--tabs-font-family);
15
+ font-size: var(--tabs-font-size);
16
+ font-weight: var(--tabs-font-weight);
17
+ line-height: var(--tabs-line-height);
18
+ letter-spacing: var(--tabs-letter-spacing);
21
19
 
22
20
  /* size */
23
- --component-width: auto;
24
- --component-height: auto;
25
- --component-gap: 0;
26
- --component-padding-x: 0;
27
- --component-padding-y: 0;
28
-
29
- width: var(--component-width);
30
- min-height: var(--component-height);
31
- gap: var(--component-gap);
32
- padding: var(--component-padding-y) var(--component-padding-x);
21
+ --tabs-gap: var(--margin-tab);
33
22
 
34
23
  display: flex;
35
- align-items: center;
24
+ flex-direction: column;
25
+ gap: var(--tabs-gap);
36
26
 
37
27
  /* border */
38
- --component-border-width: 0;
39
- --component-border-radius: 0;
40
- --component-border-color: transparent;
41
-
42
- border: var(--component-border-width) solid var(--component-border-color);
43
- border-radius: var(--component-border-radius);
44
- outline: none;
45
28
 
46
29
  /* depth */
47
30
 
48
31
  /* motion */
49
- --component-opacity-disabled: 0.6;
50
- --component-transition-duration: 0.2s;
51
-
52
- transition:
53
- border-color var(--component-transition-duration) ease,
54
- opacity var(--component-transition-duration) ease,
55
- background-color var(--component-transition-duration) ease,
56
- color var(--component-transition-duration) ease;
57
32
  }
58
33
 
59
- .tabs__part {
34
+ .tabs__list {
60
35
  /* color */
61
36
 
62
37
  /* typography */
63
38
 
64
39
  /* size */
40
+ --tabs-list-gap: var(--margin-tab);
41
+
42
+ display: inline-flex;
43
+ align-items: center;
44
+ gap: var(--tabs-list-gap);
45
+ width: fit-content;
65
46
 
66
47
  /* border */
67
48
 
@@ -70,38 +51,83 @@
70
51
  /* motion */
71
52
  }
72
53
 
73
- .tabs:hover {
74
- }
54
+ .tabs__tab {
55
+ /* color */
56
+ --tabs-tab-bg: transparent;
57
+ --tabs-tab-color: var(--color-link);
58
+ --tabs-tab-bg-selected: var(--color-secondary);
59
+ --tabs-tab-color-selected: var(--color-text-secondary);
60
+ --tabs-tab-color-disabled: var(--color-text-note);
75
61
 
76
- .tabs:focus {
77
- }
62
+ background: var(--tabs-tab-bg);
63
+ color: var(--tabs-tab-color);
78
64
 
79
- .tabs:focus-visible {
80
- }
65
+ /* typography */
66
+ font: inherit;
67
+ text-align: center;
68
+ white-space: nowrap;
81
69
 
82
- .tabs:active {
83
- }
70
+ /* size */
71
+ --tabs-tab-height: var(--size-tab-height);
72
+ --tabs-tab-padding-x: var(--padding-tab);
84
73
 
85
- .tabs:disabled {
86
- }
74
+ display: inline-flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ min-height: var(--tabs-tab-height);
78
+ padding: 0 var(--tabs-tab-padding-x);
79
+
80
+ /* border */
81
+ --tabs-tab-radius: var(--radius-flowchart);
82
+ --tabs-tab-border-width: var(--size-border-width-min);
83
+ --tabs-tab-border-color: transparent;
84
+
85
+ border:
86
+ var(--tabs-tab-border-width)
87
+ solid
88
+ var(--tabs-tab-border-color);
89
+ border-radius: var(--tabs-tab-radius);
90
+
91
+ /* depth */
87
92
 
88
- .tabs--variant {
93
+ /* motion */
94
+ --tabs-transition-duration: var(--motion-duration1);
95
+
96
+ cursor: pointer;
97
+ transition:
98
+ background var(--tabs-transition-duration),
99
+ color var(--tabs-transition-duration),
100
+ border-color var(--tabs-transition-duration);
89
101
  }
90
102
 
91
- .tabs--state {
103
+ .tabs__tab,
104
+ .tabs__tab:active,
105
+ .tabs__tab:focus,
106
+ .tabs__tab:hover {
107
+ /* typography */
108
+ text-decoration: none;
92
109
  }
93
110
 
94
- .tabs > a {
95
- display: inline-flex;
96
- align-items: center;
97
- justify-content: center;
98
- min-height: 40px;
99
- padding: 0 12px;
111
+ .tabs__tab--selected {
112
+ /* color */
113
+ --tabs-tab-bg: var(--tabs-tab-bg-selected);
114
+ --tabs-tab-color: var(--tabs-tab-color-selected);
100
115
 
101
- text-decoration: none;
102
- cursor: pointer;
116
+ /* border */
117
+ --tabs-tab-border-color: var(--color-line);
103
118
  }
104
119
 
105
- .tabs > a[aria-current='page'] {
106
- font-weight: 600;
120
+ .tabs__panel {
121
+ /* color */
122
+
123
+ /* typography */
124
+
125
+ /* size */
126
+ width: 100%;
127
+
128
+ /* border */
129
+
130
+ /* depth */
131
+
132
+ /* motion */
107
133
  }
@@ -1,7 +1,15 @@
1
1
  import React from 'react';
2
2
 
3
+ interface TabItem {
4
+ value: string;
5
+ label: React.ReactNode;
6
+ href?: string;
7
+ }
3
8
  interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ items: TabItem[];
10
+ value: string;
11
+ onValueChange?: (value: string) => void;
4
12
  }
5
13
  declare const Tabs: React.FC<TabsProps>;
6
14
 
7
- export { type TabsProps, Tabs as default };
15
+ export { type TabItem, type TabsProps, Tabs as default };
@@ -1,7 +1,15 @@
1
1
  import React from 'react';
2
2
 
3
+ interface TabItem {
4
+ value: string;
5
+ label: React.ReactNode;
6
+ href?: string;
7
+ }
3
8
  interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ items: TabItem[];
10
+ value: string;
11
+ onValueChange?: (value: string) => void;
4
12
  }
5
13
  declare const Tabs: React.FC<TabsProps>;
6
14
 
7
- export { type TabsProps, Tabs as default };
15
+ export { type TabItem, type TabsProps, Tabs as default };