jvetrau-ds 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/button/button-presentation.cjs +17 -0
- package/components/button/button-presentation.cjs.map +1 -0
- package/components/button/button-presentation.d.ts +1 -0
- package/components/button/button-presentation.js +15 -0
- package/components/button/button-presentation.js.map +1 -0
- package/components/button/button.css +146 -0
- package/components/button/index.cjs +11 -1
- package/components/button/index.d.ts +1 -0
- package/components/button/index.js +1 -0
- package/components/checkbox/checkbox.cjs +3 -1
- package/components/checkbox/checkbox.cjs.map +1 -1
- package/components/checkbox/checkbox.css +24 -1
- package/components/checkbox/checkbox.d.ts +1 -0
- package/components/checkbox/checkbox.js +3 -1
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/field/field.cjs +37 -17
- package/components/field/field.cjs.map +1 -1
- package/components/field/field.css +17 -0
- package/components/field/field.d.ts +2 -2
- package/components/field/field.js +37 -17
- package/components/field/field.js.map +1 -1
- package/components/flip-list/flip-list.cjs +5 -5
- package/components/flip-list/flip-list.cjs.map +1 -1
- package/components/flip-list/flip-list.css +20 -24
- package/components/flip-list/flip-list.js +4 -5
- package/components/flip-list/flip-list.js.map +1 -1
- package/components/index.cjs +5 -1
- package/components/index.d.ts +3 -2
- package/components/index.js +1 -1
- package/components/radio/radio.cjs +3 -1
- package/components/radio/radio.cjs.map +1 -1
- package/components/radio/radio.css +24 -1
- package/components/radio/radio.d.ts +1 -0
- package/components/radio/radio.js +3 -1
- package/components/radio/radio.js.map +1 -1
- package/components/tag/tag.cjs +9 -4
- package/components/tag/tag.cjs.map +1 -1
- package/components/tag/tag.css +40 -27
- package/components/tag/tag.d.ts +2 -1
- package/components/tag/tag.js +9 -4
- package/components/tag/tag.js.map +1 -1
- package/index.cjs +4 -0
- package/index.d.ts +2 -2
- package/index.js +1 -1
- package/package.json +1 -1
- package/styles.css +270 -52
|
@@ -4,10 +4,12 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
require('./flip-list.css');
|
|
6
6
|
var classnames = require('../helpers/classnames');
|
|
7
|
+
var Tag = require('../tag');
|
|
7
8
|
|
|
8
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
10
|
|
|
10
11
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
12
|
+
var Tag__default = /*#__PURE__*/_interopDefault(Tag);
|
|
11
13
|
|
|
12
14
|
function hasContent(value) {
|
|
13
15
|
return value !== null && value !== void 0;
|
|
@@ -111,6 +113,7 @@ const FlipList = ({
|
|
|
111
113
|
ref: item.id === initialOpenItemIdRef.current ? initialOpenItemRef : void 0,
|
|
112
114
|
className: itemClasses,
|
|
113
115
|
children: [
|
|
116
|
+
hasStatus && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flip-list__status", children: /* @__PURE__ */ jsxRuntime.jsx(Tag__default.default, { children: item.status }) }),
|
|
114
117
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
115
118
|
"button",
|
|
116
119
|
{
|
|
@@ -121,11 +124,8 @@ const FlipList = ({
|
|
|
121
124
|
"aria-controls": contentId,
|
|
122
125
|
onClick: () => toggleItem(item.id),
|
|
123
126
|
children: [
|
|
124
|
-
|
|
125
|
-
/* @__PURE__ */ jsxRuntime.
|
|
126
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flip-list__title", children: item.title }),
|
|
127
|
-
hasMeta && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flip-list__meta", children: item.meta })
|
|
128
|
-
] })
|
|
127
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flip-list__title", children: item.title }),
|
|
128
|
+
hasMeta && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flip-list__meta", children: item.meta })
|
|
129
129
|
]
|
|
130
130
|
}
|
|
131
131
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/flip-list/flip-list.tsx"],"names":["React","classnames","jsx","jsxs"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/flip-list/flip-list.tsx"],"names":["React","classnames","jsx","jsxs","Tag"],"mappings":"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","file":"flip-list.cjs","sourcesContent":["import React from 'react';\n\nimport './flip-list.css';\nimport { classnames } from '../helpers/classnames';\nimport Tag from '../tag';\n\nexport interface FlipListItem {\n id: React.Key;\n title: React.ReactNode;\n status?: React.ReactNode;\n meta?: React.ReactNode;\n content: React.ReactNode;\n}\n\nexport interface FlipListProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'children'\n > {\n items: FlipListItem[];\n\n /**\n * Currently opened item in controlled mode.\n *\n * `null` means that all items are closed.\n *\n * When this prop is provided, FlipList does not\n * own the opened-item state.\n */\n openId?: React.Key | null;\n\n /**\n * Item opened during the initial render\n * in uncontrolled mode.\n *\n * Later changes to this prop do not control\n * the component state.\n */\n defaultOpenId?: React.Key;\n\n /**\n * Called when the user requests a change\n * of the opened item.\n *\n * Receives the item id when an item is opened,\n * and `null` when the currently opened item\n * is closed.\n */\n onOpenChange?: (\n id: React.Key | null,\n ) => void;\n\n /**\n * Scrolls the item that is open during\n * the initial render into view once.\n *\n * In uncontrolled mode, the initial item comes\n * from `defaultOpenId`.\n *\n * In controlled mode, the initial item comes\n * from `openId`.\n *\n * Later state changes never trigger scrolling.\n */\n scrollToInitialOpen?: boolean;\n}\n\ntype OpenItemId = React.Key | null;\n\nfunction hasContent(\n value: React.ReactNode,\n): value is Exclude<\n React.ReactNode,\n null | undefined\n> {\n return value !== null && value !== undefined;\n}\n\nfunction normalizeOpenItemId(\n items: FlipListItem[],\n openId: OpenItemId | undefined,\n): OpenItemId {\n if (\n openId === null ||\n openId === undefined\n ) {\n return null;\n }\n\n const hasMatchingItem = items.some(\n (item) => item.id === openId,\n );\n\n return hasMatchingItem\n ? openId\n : null;\n}\n\nconst FlipList: React.FC<FlipListProps> = ({\n items,\n openId,\n defaultOpenId,\n onOpenChange,\n scrollToInitialOpen = false,\n className = '',\n ...props\n}) => {\n const componentId = React.useId();\n\n const isControlled =\n openId !== undefined;\n\n const initialOpenItemIdRef =\n React.useRef<OpenItemId>(\n normalizeOpenItemId(\n items,\n isControlled\n ? openId\n : defaultOpenId,\n ),\n );\n\n const shouldScrollInitiallyRef =\n React.useRef(scrollToInitialOpen);\n\n const initialOpenItemRef =\n React.useRef<HTMLDivElement | null>(\n null,\n );\n\n const hasScrolledInitiallyRef =\n React.useRef(false);\n\n const [\n uncontrolledOpenItemId,\n setUncontrolledOpenItemId,\n ] = React.useState<OpenItemId>(() =>\n normalizeOpenItemId(\n items,\n defaultOpenId,\n ),\n );\n\n const resolvedOpenItemId =\n normalizeOpenItemId(\n items,\n isControlled\n ? openId\n : uncontrolledOpenItemId,\n );\n\n React.useEffect(() => {\n if (\n hasScrolledInitiallyRef.current ||\n !shouldScrollInitiallyRef.current ||\n initialOpenItemIdRef.current === null ||\n !initialOpenItemRef.current\n ) {\n return;\n }\n\n hasScrolledInitiallyRef.current = true;\n\n initialOpenItemRef.current.scrollIntoView({\n behavior: 'auto',\n block: 'start',\n });\n }, []);\n\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames(\n 'flip-list',\n className,\n {},\n );\n\n const toggleItem = (\n itemId: React.Key,\n ) => {\n const nextOpenItemId =\n resolvedOpenItemId === itemId\n ? null\n : itemId;\n\n if (!isControlled) {\n setUncontrolledOpenItemId(\n nextOpenItemId,\n );\n }\n\n onOpenChange?.(nextOpenItemId);\n };\n\n return (\n <div\n className={classes}\n {...props}\n >\n <div className=\"flip-list__items\">\n {items.map((item, itemIndex) => {\n const isOpen =\n resolvedOpenItemId === item.id;\n\n const hasStatus = hasContent(\n item.status,\n );\n\n const hasMeta = hasContent(\n item.meta,\n );\n\n const triggerId =\n `${componentId}-trigger-${itemIndex}`;\n\n const contentId =\n `${componentId}-content-${itemIndex}`;\n\n const itemClasses = classnames(\n 'flip-list__item',\n '',\n {\n 'flip-list__item--open':\n isOpen,\n },\n );\n\n return (\n <div\n key={item.id}\n ref={\n item.id ===\n initialOpenItemIdRef.current\n ? initialOpenItemRef\n : undefined\n }\n className={itemClasses}\n >\n {hasStatus && (\n <div className=\"flip-list__status\">\n <Tag>\n {item.status}\n </Tag>\n </div>\n )}\n\n <button\n className=\"flip-list__trigger\"\n id={triggerId}\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={contentId}\n onClick={() =>\n toggleItem(item.id)\n }\n >\n <span className=\"flip-list__title\">\n {item.title}\n </span>\n\n {hasMeta && (\n <span className=\"flip-list__meta\">\n {item.meta}\n </span>\n )}\n </button>\n\n <div\n className=\"flip-list__content\"\n id={contentId}\n aria-labelledby={triggerId}\n hidden={!isOpen}\n >\n {item.content}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default FlipList;\n"]}
|
|
@@ -113,7 +113,6 @@
|
|
|
113
113
|
/* typography */
|
|
114
114
|
|
|
115
115
|
/* size */
|
|
116
|
-
gap: var(--flip-list-open-content-gap);
|
|
117
116
|
|
|
118
117
|
/* border */
|
|
119
118
|
|
|
@@ -133,8 +132,9 @@
|
|
|
133
132
|
|
|
134
133
|
/* size */
|
|
135
134
|
display: flex;
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
align-items: center;
|
|
136
|
+
justify-content: space-between;
|
|
137
|
+
gap: var(--flip-list-trigger-column-gap);
|
|
138
138
|
width: 100%;
|
|
139
139
|
min-width: 0;
|
|
140
140
|
max-width: 100%;
|
|
@@ -195,27 +195,6 @@
|
|
|
195
195
|
/* motion */
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
.flip-list__main {
|
|
199
|
-
/* color */
|
|
200
|
-
|
|
201
|
-
/* typography */
|
|
202
|
-
|
|
203
|
-
/* size */
|
|
204
|
-
display: flex;
|
|
205
|
-
align-items: flex-start;
|
|
206
|
-
justify-content: space-between;
|
|
207
|
-
gap: var(--flip-list-trigger-column-gap);
|
|
208
|
-
width: 100%;
|
|
209
|
-
min-width: 0;
|
|
210
|
-
max-width: 100%;
|
|
211
|
-
|
|
212
|
-
/* border */
|
|
213
|
-
|
|
214
|
-
/* depth */
|
|
215
|
-
|
|
216
|
-
/* motion */
|
|
217
|
-
}
|
|
218
|
-
|
|
219
198
|
.flip-list__title {
|
|
220
199
|
/* color */
|
|
221
200
|
color: inherit;
|
|
@@ -384,6 +363,23 @@
|
|
|
384
363
|
/* motion */
|
|
385
364
|
}
|
|
386
365
|
|
|
366
|
+
.flip-list__item--open
|
|
367
|
+
.flip-list__content {
|
|
368
|
+
/* color */
|
|
369
|
+
|
|
370
|
+
/* typography */
|
|
371
|
+
|
|
372
|
+
/* size */
|
|
373
|
+
margin-top:
|
|
374
|
+
var(--flip-list-open-content-gap);
|
|
375
|
+
|
|
376
|
+
/* border */
|
|
377
|
+
|
|
378
|
+
/* depth */
|
|
379
|
+
|
|
380
|
+
/* motion */
|
|
381
|
+
}
|
|
382
|
+
|
|
387
383
|
.flip-list__content[hidden] {
|
|
388
384
|
/* color */
|
|
389
385
|
|
|
@@ -2,6 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './flip-list.css';
|
|
4
4
|
import { classnames } from '../helpers/classnames';
|
|
5
|
+
import Tag from '../tag';
|
|
5
6
|
|
|
6
7
|
function hasContent(value) {
|
|
7
8
|
return value !== null && value !== void 0;
|
|
@@ -105,6 +106,7 @@ const FlipList = ({
|
|
|
105
106
|
ref: item.id === initialOpenItemIdRef.current ? initialOpenItemRef : void 0,
|
|
106
107
|
className: itemClasses,
|
|
107
108
|
children: [
|
|
109
|
+
hasStatus && /* @__PURE__ */ jsx("div", { className: "flip-list__status", children: /* @__PURE__ */ jsx(Tag, { children: item.status }) }),
|
|
108
110
|
/* @__PURE__ */ jsxs(
|
|
109
111
|
"button",
|
|
110
112
|
{
|
|
@@ -115,11 +117,8 @@ const FlipList = ({
|
|
|
115
117
|
"aria-controls": contentId,
|
|
116
118
|
onClick: () => toggleItem(item.id),
|
|
117
119
|
children: [
|
|
118
|
-
|
|
119
|
-
/* @__PURE__ */
|
|
120
|
-
/* @__PURE__ */ jsx("span", { className: "flip-list__title", children: item.title }),
|
|
121
|
-
hasMeta && /* @__PURE__ */ jsx("span", { className: "flip-list__meta", children: item.meta })
|
|
122
|
-
] })
|
|
120
|
+
/* @__PURE__ */ jsx("span", { className: "flip-list__title", children: item.title }),
|
|
121
|
+
hasMeta && /* @__PURE__ */ jsx("span", { className: "flip-list__meta", children: item.meta })
|
|
123
122
|
]
|
|
124
123
|
}
|
|
125
124
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/flip-list/flip-list.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/flip-list/flip-list.tsx"],"names":[],"mappings":"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","file":"flip-list.js","sourcesContent":["import React from 'react';\n\nimport './flip-list.css';\nimport { classnames } from '../helpers/classnames';\nimport Tag from '../tag';\n\nexport interface FlipListItem {\n id: React.Key;\n title: React.ReactNode;\n status?: React.ReactNode;\n meta?: React.ReactNode;\n content: React.ReactNode;\n}\n\nexport interface FlipListProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'children'\n > {\n items: FlipListItem[];\n\n /**\n * Currently opened item in controlled mode.\n *\n * `null` means that all items are closed.\n *\n * When this prop is provided, FlipList does not\n * own the opened-item state.\n */\n openId?: React.Key | null;\n\n /**\n * Item opened during the initial render\n * in uncontrolled mode.\n *\n * Later changes to this prop do not control\n * the component state.\n */\n defaultOpenId?: React.Key;\n\n /**\n * Called when the user requests a change\n * of the opened item.\n *\n * Receives the item id when an item is opened,\n * and `null` when the currently opened item\n * is closed.\n */\n onOpenChange?: (\n id: React.Key | null,\n ) => void;\n\n /**\n * Scrolls the item that is open during\n * the initial render into view once.\n *\n * In uncontrolled mode, the initial item comes\n * from `defaultOpenId`.\n *\n * In controlled mode, the initial item comes\n * from `openId`.\n *\n * Later state changes never trigger scrolling.\n */\n scrollToInitialOpen?: boolean;\n}\n\ntype OpenItemId = React.Key | null;\n\nfunction hasContent(\n value: React.ReactNode,\n): value is Exclude<\n React.ReactNode,\n null | undefined\n> {\n return value !== null && value !== undefined;\n}\n\nfunction normalizeOpenItemId(\n items: FlipListItem[],\n openId: OpenItemId | undefined,\n): OpenItemId {\n if (\n openId === null ||\n openId === undefined\n ) {\n return null;\n }\n\n const hasMatchingItem = items.some(\n (item) => item.id === openId,\n );\n\n return hasMatchingItem\n ? openId\n : null;\n}\n\nconst FlipList: React.FC<FlipListProps> = ({\n items,\n openId,\n defaultOpenId,\n onOpenChange,\n scrollToInitialOpen = false,\n className = '',\n ...props\n}) => {\n const componentId = React.useId();\n\n const isControlled =\n openId !== undefined;\n\n const initialOpenItemIdRef =\n React.useRef<OpenItemId>(\n normalizeOpenItemId(\n items,\n isControlled\n ? openId\n : defaultOpenId,\n ),\n );\n\n const shouldScrollInitiallyRef =\n React.useRef(scrollToInitialOpen);\n\n const initialOpenItemRef =\n React.useRef<HTMLDivElement | null>(\n null,\n );\n\n const hasScrolledInitiallyRef =\n React.useRef(false);\n\n const [\n uncontrolledOpenItemId,\n setUncontrolledOpenItemId,\n ] = React.useState<OpenItemId>(() =>\n normalizeOpenItemId(\n items,\n defaultOpenId,\n ),\n );\n\n const resolvedOpenItemId =\n normalizeOpenItemId(\n items,\n isControlled\n ? openId\n : uncontrolledOpenItemId,\n );\n\n React.useEffect(() => {\n if (\n hasScrolledInitiallyRef.current ||\n !shouldScrollInitiallyRef.current ||\n initialOpenItemIdRef.current === null ||\n !initialOpenItemRef.current\n ) {\n return;\n }\n\n hasScrolledInitiallyRef.current = true;\n\n initialOpenItemRef.current.scrollIntoView({\n behavior: 'auto',\n block: 'start',\n });\n }, []);\n\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames(\n 'flip-list',\n className,\n {},\n );\n\n const toggleItem = (\n itemId: React.Key,\n ) => {\n const nextOpenItemId =\n resolvedOpenItemId === itemId\n ? null\n : itemId;\n\n if (!isControlled) {\n setUncontrolledOpenItemId(\n nextOpenItemId,\n );\n }\n\n onOpenChange?.(nextOpenItemId);\n };\n\n return (\n <div\n className={classes}\n {...props}\n >\n <div className=\"flip-list__items\">\n {items.map((item, itemIndex) => {\n const isOpen =\n resolvedOpenItemId === item.id;\n\n const hasStatus = hasContent(\n item.status,\n );\n\n const hasMeta = hasContent(\n item.meta,\n );\n\n const triggerId =\n `${componentId}-trigger-${itemIndex}`;\n\n const contentId =\n `${componentId}-content-${itemIndex}`;\n\n const itemClasses = classnames(\n 'flip-list__item',\n '',\n {\n 'flip-list__item--open':\n isOpen,\n },\n );\n\n return (\n <div\n key={item.id}\n ref={\n item.id ===\n initialOpenItemIdRef.current\n ? initialOpenItemRef\n : undefined\n }\n className={itemClasses}\n >\n {hasStatus && (\n <div className=\"flip-list__status\">\n <Tag>\n {item.status}\n </Tag>\n </div>\n )}\n\n <button\n className=\"flip-list__trigger\"\n id={triggerId}\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={contentId}\n onClick={() =>\n toggleItem(item.id)\n }\n >\n <span className=\"flip-list__title\">\n {item.title}\n </span>\n\n {hasMeta && (\n <span className=\"flip-list__meta\">\n {item.meta}\n </span>\n )}\n </button>\n\n <div\n className=\"flip-list__content\"\n id={contentId}\n aria-labelledby={triggerId}\n hidden={!isOpen}\n >\n {item.content}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default FlipList;\n"]}
|
package/components/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var button = require('./button
|
|
3
|
+
var button = require('./button');
|
|
4
4
|
var input = require('./input/input');
|
|
5
5
|
var textarea = require('./textarea/textarea');
|
|
6
6
|
var select = require('./select/select');
|
|
@@ -65,6 +65,10 @@ Object.defineProperty(exports, "Button", {
|
|
|
65
65
|
enumerable: true,
|
|
66
66
|
get: function () { return button__default.default; }
|
|
67
67
|
});
|
|
68
|
+
Object.defineProperty(exports, "buttonLink", {
|
|
69
|
+
enumerable: true,
|
|
70
|
+
get: function () { return button.buttonLink; }
|
|
71
|
+
});
|
|
68
72
|
Object.defineProperty(exports, "Input", {
|
|
69
73
|
enumerable: true,
|
|
70
74
|
get: function () { return input__default.default; }
|
package/components/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { default as Button } from './button
|
|
2
|
-
export
|
|
1
|
+
export { default as Button } from './button';
|
|
2
|
+
export { buttonLink, } from './button';
|
|
3
|
+
export type { ButtonProps, } from './button';
|
|
3
4
|
export { default as Input } from './input/input';
|
|
4
5
|
export type { InputProps } from './input/input';
|
|
5
6
|
export { default as Textarea } from './textarea/textarea';
|
package/components/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as Button } from './button
|
|
1
|
+
export { default as Button, buttonLink } from './button';
|
|
2
2
|
export { default as Input } from './input/input';
|
|
3
3
|
export { default as Textarea } from './textarea/textarea';
|
|
4
4
|
export { default as Select } from './select/select';
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var classnames = require('../helpers/classnames');
|
|
5
|
+
require('./radio.css');
|
|
5
6
|
|
|
6
7
|
const Radio = ({
|
|
7
8
|
label,
|
|
@@ -16,6 +17,7 @@ const Radio = ({
|
|
|
16
17
|
"radio--disabled": disabled
|
|
17
18
|
}
|
|
18
19
|
);
|
|
20
|
+
const hasLabel = label !== null && label !== void 0;
|
|
19
21
|
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: classes, children: [
|
|
20
22
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21
23
|
"input",
|
|
@@ -26,7 +28,7 @@ const Radio = ({
|
|
|
26
28
|
...props
|
|
27
29
|
}
|
|
28
30
|
),
|
|
29
|
-
|
|
31
|
+
hasLabel ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "radio__label", children: label }) : null
|
|
30
32
|
] });
|
|
31
33
|
};
|
|
32
34
|
var radio_default = Radio;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/radio/radio.tsx"],"names":["classnames","jsxs","jsx"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/radio/radio.tsx"],"names":["classnames","jsxs","jsx"],"mappings":";;;;;;AAUA,MAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB;AAAA;AACrB,GACF;AAEA,EAAA,MAAM,QAAA,GACJ,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA;AAE9B,EAAA,uBACEC,eAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,cAAA;AAAA,QACV,IAAA,EAAK,OAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IAEC,2BACCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EACb,iBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"radio.cjs","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\nimport './radio.css';\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Radio: React.FC<RadioProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'radio',\n className,\n {\n 'radio--disabled': disabled,\n },\n );\n\n const hasLabel =\n label !== null && label !== undefined;\n\n return (\n <label className={classes}>\n <input\n className=\"radio__input\"\n type=\"radio\"\n disabled={disabled}\n {...props}\n />\n\n {hasLabel ? (\n <span className=\"radio__label\">\n {label}\n </span>\n ) : null}\n </label>\n );\n};\n\nexport default Radio;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.radio {
|
|
2
2
|
/* color */
|
|
3
|
-
--radio-label-color:
|
|
3
|
+
--radio-label-color: auto;
|
|
4
4
|
|
|
5
5
|
color: var(--radio-label-color);
|
|
6
6
|
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
|
|
41
41
|
.radio__input {
|
|
42
42
|
/* color */
|
|
43
|
+
accent-color: var(--color-primary-2);
|
|
43
44
|
|
|
44
45
|
/* typography */
|
|
45
46
|
|
|
@@ -71,10 +72,32 @@
|
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
.radio--disabled {
|
|
75
|
+
/* color */
|
|
76
|
+
|
|
77
|
+
/* typography */
|
|
78
|
+
|
|
79
|
+
/* size */
|
|
80
|
+
|
|
81
|
+
/* border */
|
|
82
|
+
|
|
83
|
+
/* depth */
|
|
84
|
+
|
|
85
|
+
/* motion */
|
|
74
86
|
opacity: var(--radio-opacity-disabled);
|
|
75
87
|
cursor: not-allowed;
|
|
76
88
|
}
|
|
77
89
|
|
|
78
90
|
.radio__input:disabled {
|
|
91
|
+
/* color */
|
|
92
|
+
|
|
93
|
+
/* typography */
|
|
94
|
+
|
|
95
|
+
/* size */
|
|
96
|
+
|
|
97
|
+
/* border */
|
|
98
|
+
|
|
99
|
+
/* depth */
|
|
100
|
+
|
|
101
|
+
/* motion */
|
|
79
102
|
cursor: not-allowed;
|
|
80
103
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { classnames } from '../helpers/classnames';
|
|
3
|
+
import './radio.css';
|
|
3
4
|
|
|
4
5
|
const Radio = ({
|
|
5
6
|
label,
|
|
@@ -14,6 +15,7 @@ const Radio = ({
|
|
|
14
15
|
"radio--disabled": disabled
|
|
15
16
|
}
|
|
16
17
|
);
|
|
18
|
+
const hasLabel = label !== null && label !== void 0;
|
|
17
19
|
return /* @__PURE__ */ jsxs("label", { className: classes, children: [
|
|
18
20
|
/* @__PURE__ */ jsx(
|
|
19
21
|
"input",
|
|
@@ -24,7 +26,7 @@ const Radio = ({
|
|
|
24
26
|
...props
|
|
25
27
|
}
|
|
26
28
|
),
|
|
27
|
-
|
|
29
|
+
hasLabel ? /* @__PURE__ */ jsx("span", { className: "radio__label", children: label }) : null
|
|
28
30
|
] });
|
|
29
31
|
};
|
|
30
32
|
var radio_default = Radio;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":";;;;AAUA,MAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB;AAAA;AACrB,GACF;AAEA,EAAA,MAAM,QAAA,GACJ,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA;AAE9B,EAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,cAAA;AAAA,QACV,IAAA,EAAK,OAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IAEC,2BACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EACb,iBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"radio.js","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\nimport './radio.css';\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Radio: React.FC<RadioProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'radio',\n className,\n {\n 'radio--disabled': disabled,\n },\n );\n\n const hasLabel =\n label !== null && label !== undefined;\n\n return (\n <label className={classes}>\n <input\n className=\"radio__input\"\n type=\"radio\"\n disabled={disabled}\n {...props}\n />\n\n {hasLabel ? (\n <span className=\"radio__label\">\n {label}\n </span>\n ) : null}\n </label>\n );\n};\n\nexport default Radio;\n"]}
|
package/components/tag/tag.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var classnames = require('../helpers/classnames');
|
|
5
|
+
require('./tag.css');
|
|
5
6
|
|
|
6
7
|
const Tag = ({
|
|
7
8
|
context = "success",
|
|
@@ -9,11 +10,15 @@ const Tag = ({
|
|
|
9
10
|
children,
|
|
10
11
|
...props
|
|
11
12
|
}) => {
|
|
12
|
-
const classes = classnames.classnames(
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const classes = classnames.classnames(
|
|
14
|
+
"tag",
|
|
15
|
+
className,
|
|
16
|
+
{
|
|
17
|
+
[`tag--context-${context}`]: Boolean(context)
|
|
18
|
+
}
|
|
19
|
+
);
|
|
15
20
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16
|
-
"
|
|
21
|
+
"span",
|
|
17
22
|
{
|
|
18
23
|
className: classes,
|
|
19
24
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/tag/tag.tsx"],"names":["classnames","jsx"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/tag/tag.tsx"],"names":["classnames","jsx"],"mappings":";;;;;;AAUA,MAAM,MAA0B,CAAC;AAAA,EAC/B,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA;AAAA,IACd,KAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,CAAC,CAAA,aAAA,EAAgB,OAAO,CAAA,CAAE,GACxB,QAAQ,OAAO;AAAA;AACnB,GACF;AAEA,EAAA,uBACEC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,WAAA,GAAQ","file":"tag.cjs","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\nimport './tag.css';\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLSpanElement> {\n context?: 'success' | 'error' | 'warning';\n}\n\nconst Tag: React.FC<TagProps> = ({\n context = 'success',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames(\n 'tag',\n className,\n {\n [`tag--context-${context}`]:\n Boolean(context),\n },\n );\n\n return (\n <span\n className={classes}\n {...props}\n >\n {children}\n </span>\n );\n};\n\nexport default Tag;\n"]}
|
package/components/tag/tag.css
CHANGED
|
@@ -10,34 +10,43 @@
|
|
|
10
10
|
--tag-font-family: var(--font-note-family);
|
|
11
11
|
--tag-font-weight: var(--font-note-weight);
|
|
12
12
|
--tag-font-size: var(--font-note-size);
|
|
13
|
-
--tag-line-height:
|
|
14
|
-
|
|
13
|
+
--tag-line-height:
|
|
14
|
+
var(--font-note-line-height);
|
|
15
|
+
--tag-letter-spacing:
|
|
16
|
+
var(--font-note-letter-spacing);
|
|
15
17
|
|
|
16
18
|
font-family: var(--tag-font-family);
|
|
17
19
|
font-size: var(--tag-font-size);
|
|
18
20
|
font-weight: var(--tag-font-weight);
|
|
19
21
|
line-height: var(--tag-line-height);
|
|
20
|
-
letter-spacing:
|
|
22
|
+
letter-spacing:
|
|
23
|
+
var(--tag-letter-spacing);
|
|
21
24
|
|
|
22
25
|
/* size */
|
|
23
26
|
--tag-gap: 0;
|
|
24
27
|
--tag-height: auto;
|
|
25
|
-
--tag-padding-x:
|
|
26
|
-
|
|
28
|
+
--tag-padding-x:
|
|
29
|
+
var(--padding-tag-horz);
|
|
30
|
+
--tag-padding-y:
|
|
31
|
+
var(--padding-tag-vert);
|
|
27
32
|
|
|
28
33
|
display: inline-flex;
|
|
29
34
|
align-items: center;
|
|
30
35
|
gap: var(--tag-gap);
|
|
31
36
|
min-height: var(--tag-height);
|
|
32
|
-
padding:
|
|
37
|
+
padding:
|
|
38
|
+
var(--tag-padding-y)
|
|
39
|
+
var(--tag-padding-x);
|
|
33
40
|
|
|
34
41
|
/* border */
|
|
35
42
|
--tag-border-width: 0;
|
|
36
|
-
--tag-border-radius:
|
|
43
|
+
--tag-border-radius:
|
|
44
|
+
var(--radius-control);
|
|
37
45
|
--tag-border-color: transparent;
|
|
38
46
|
|
|
39
47
|
border: none;
|
|
40
|
-
border-radius:
|
|
48
|
+
border-radius:
|
|
49
|
+
var(--tag-border-radius);
|
|
41
50
|
outline: none;
|
|
42
51
|
|
|
43
52
|
/* depth */
|
|
@@ -46,14 +55,23 @@
|
|
|
46
55
|
--tag-transition-duration: 0.2s;
|
|
47
56
|
|
|
48
57
|
transition:
|
|
49
|
-
border-color
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
border-color
|
|
59
|
+
var(--tag-transition-duration)
|
|
60
|
+
ease,
|
|
61
|
+
background-color
|
|
62
|
+
var(--tag-transition-duration)
|
|
63
|
+
ease,
|
|
64
|
+
color
|
|
65
|
+
var(--tag-transition-duration)
|
|
66
|
+
ease,
|
|
67
|
+
opacity
|
|
68
|
+
var(--tag-transition-duration)
|
|
69
|
+
ease;
|
|
53
70
|
}
|
|
54
71
|
|
|
55
|
-
.
|
|
72
|
+
.tag--context-error {
|
|
56
73
|
/* color */
|
|
74
|
+
--tag-bg: var(--color-bad);
|
|
57
75
|
|
|
58
76
|
/* typography */
|
|
59
77
|
|
|
@@ -66,22 +84,17 @@
|
|
|
66
84
|
/* motion */
|
|
67
85
|
}
|
|
68
86
|
|
|
69
|
-
.tag
|
|
70
|
-
|
|
87
|
+
.tag--context-warning {
|
|
88
|
+
/* color */
|
|
89
|
+
--tag-bg: var(--color-med);
|
|
71
90
|
|
|
72
|
-
|
|
73
|
-
}
|
|
91
|
+
/* typography */
|
|
74
92
|
|
|
75
|
-
|
|
76
|
-
}
|
|
93
|
+
/* size */
|
|
77
94
|
|
|
78
|
-
|
|
79
|
-
}
|
|
95
|
+
/* border */
|
|
80
96
|
|
|
81
|
-
|
|
82
|
-
--tag-bg: var(--color-bad);
|
|
83
|
-
}
|
|
97
|
+
/* depth */
|
|
84
98
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
99
|
+
/* motion */
|
|
100
|
+
}
|
package/components/tag/tag.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
import './tag.css';
|
|
3
|
+
export interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
3
4
|
context?: 'success' | 'error' | 'warning';
|
|
4
5
|
}
|
|
5
6
|
declare const Tag: React.FC<TagProps>;
|
package/components/tag/tag.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { classnames } from '../helpers/classnames';
|
|
3
|
+
import './tag.css';
|
|
3
4
|
|
|
4
5
|
const Tag = ({
|
|
5
6
|
context = "success",
|
|
@@ -7,11 +8,15 @@ const Tag = ({
|
|
|
7
8
|
children,
|
|
8
9
|
...props
|
|
9
10
|
}) => {
|
|
10
|
-
const classes = classnames(
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const classes = classnames(
|
|
12
|
+
"tag",
|
|
13
|
+
className,
|
|
14
|
+
{
|
|
15
|
+
[`tag--context-${context}`]: Boolean(context)
|
|
16
|
+
}
|
|
17
|
+
);
|
|
13
18
|
return /* @__PURE__ */ jsx(
|
|
14
|
-
"
|
|
19
|
+
"span",
|
|
15
20
|
{
|
|
16
21
|
className: classes,
|
|
17
22
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/tag/tag.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/tag/tag.tsx"],"names":[],"mappings":";;;;AAUA,MAAM,MAA0B,CAAC;AAAA,EAC/B,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,KAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,CAAC,CAAA,aAAA,EAAgB,OAAO,CAAA,CAAE,GACxB,QAAQ,OAAO;AAAA;AACnB,GACF;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,WAAA,GAAQ","file":"tag.js","sourcesContent":["import React from 'react';\n\nimport { classnames } from '../helpers/classnames';\nimport './tag.css';\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLSpanElement> {\n context?: 'success' | 'error' | 'warning';\n}\n\nconst Tag: React.FC<TagProps> = ({\n context = 'success',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames(\n 'tag',\n className,\n {\n [`tag--context-${context}`]:\n Boolean(context),\n },\n );\n\n return (\n <span\n className={classes}\n {...props}\n >\n {children}\n </span>\n );\n};\n\nexport default Tag;\n"]}
|
package/index.cjs
CHANGED
|
@@ -89,6 +89,10 @@ Object.defineProperty(exports, "Button", {
|
|
|
89
89
|
enumerable: true,
|
|
90
90
|
get: function () { return button__default.default; }
|
|
91
91
|
});
|
|
92
|
+
Object.defineProperty(exports, "buttonLink", {
|
|
93
|
+
enumerable: true,
|
|
94
|
+
get: function () { return button.buttonLink; }
|
|
95
|
+
});
|
|
92
96
|
Object.defineProperty(exports, "Input", {
|
|
93
97
|
enumerable: true,
|
|
94
98
|
get: function () { return input__default.default; }
|
package/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Public API of the design system
|
|
3
3
|
* Components and patterns only
|
|
4
4
|
*/
|
|
5
|
-
export { default as Button } from './components/button';
|
|
6
|
-
export type { ButtonProps } from './components/button';
|
|
5
|
+
export { default as Button, buttonLink, } from './components/button';
|
|
6
|
+
export type { ButtonProps, } from './components/button';
|
|
7
7
|
export { default as Input } from './components/input';
|
|
8
8
|
export type { InputProps } from './components/input';
|
|
9
9
|
export { default as Textarea } from './components/textarea';
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as Button } from './components/button';
|
|
1
|
+
export { default as Button, buttonLink } from './components/button';
|
|
2
2
|
export { default as Input } from './components/input';
|
|
3
3
|
export { default as Textarea } from './components/textarea';
|
|
4
4
|
export { default as Select } from './components/select';
|