glints-aries 4.0.183 → 4.0.185

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 (33) hide show
  1. package/es/@next/RadioButton/RadioButton.js +41 -0
  2. package/es/@next/RadioButton/RadioButton.stories.js +56 -0
  3. package/es/@next/RadioButton/RadioButtonStyle.js +16 -0
  4. package/es/@next/RadioButton/index.js +1 -0
  5. package/es/@next/Tag/Tag.js +20 -3
  6. package/es/@next/Tag/Tag.stories.js +53 -7
  7. package/es/@next/Tag/TagStyle.js +16 -4
  8. package/es/@next/index.js +1 -0
  9. package/es/src/@next/RadioButton/RadioButton.d.ts +14 -0
  10. package/es/src/@next/RadioButton/RadioButton.stories.d.ts +6 -0
  11. package/es/src/@next/RadioButton/RadioButtonStyle.d.ts +3 -0
  12. package/es/src/@next/RadioButton/index.d.ts +1 -0
  13. package/es/src/@next/Tag/Tag.d.ts +5 -1
  14. package/es/src/@next/Tag/Tag.stories.d.ts +2 -1
  15. package/es/src/@next/Tag/TagStyle.d.ts +5 -1
  16. package/es/src/@next/index.d.ts +1 -0
  17. package/lib/@next/RadioButton/RadioButton.js +47 -0
  18. package/lib/@next/RadioButton/RadioButton.stories.js +65 -0
  19. package/lib/@next/RadioButton/RadioButtonStyle.js +24 -0
  20. package/lib/@next/RadioButton/index.js +9 -0
  21. package/lib/@next/Tag/Tag.js +19 -2
  22. package/lib/@next/Tag/Tag.stories.js +58 -10
  23. package/lib/@next/Tag/TagStyle.js +18 -3
  24. package/lib/@next/index.js +4 -1
  25. package/lib/src/@next/RadioButton/RadioButton.d.ts +14 -0
  26. package/lib/src/@next/RadioButton/RadioButton.stories.d.ts +6 -0
  27. package/lib/src/@next/RadioButton/RadioButtonStyle.d.ts +3 -0
  28. package/lib/src/@next/RadioButton/index.d.ts +1 -0
  29. package/lib/src/@next/Tag/Tag.d.ts +5 -1
  30. package/lib/src/@next/Tag/Tag.stories.d.ts +2 -1
  31. package/lib/src/@next/Tag/TagStyle.d.ts +5 -1
  32. package/lib/src/@next/index.d.ts +1 -0
  33. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
+ var _excluded = ["label", "helperText", "disabled", "name", "checked", "value", "onChange"];
4
+ import React from 'react';
5
+ import { LabelWrapper, RadioButtonInput, RadioButtonWrapper } from './RadioButtonStyle';
6
+ import { Typography } from '../Typography';
7
+ import { Colors } from '..';
8
+ /**
9
+ * This is a controlled component, so you need to pass in the `checked` and `onChange` prop to make it work.
10
+ */
11
+ export var RadioButton = function RadioButton(_ref) {
12
+ var label = _ref.label,
13
+ helperText = _ref.helperText,
14
+ disabled = _ref.disabled,
15
+ name = _ref.name,
16
+ checked = _ref.checked,
17
+ value = _ref.value,
18
+ onChange = _ref.onChange,
19
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
20
+ return /*#__PURE__*/React.createElement(RadioButtonWrapper, null, /*#__PURE__*/React.createElement(RadioButtonInput, _extends({
21
+ disabled: disabled,
22
+ name: name,
23
+ checked: checked,
24
+ value: value,
25
+ type: "radio",
26
+ onChange: onChange,
27
+ onMouseDown: function onMouseDown(e) {
28
+ return e.preventDefault();
29
+ }
30
+ }, props)), /*#__PURE__*/React.createElement(LabelWrapper, {
31
+ "data-disabled": disabled
32
+ }, /*#__PURE__*/React.createElement(Typography, {
33
+ variant: "body1",
34
+ as: "span",
35
+ color: Colors.Neutral.B18
36
+ }, label), /*#__PURE__*/React.createElement(Typography, {
37
+ variant: "subtitle2",
38
+ as: "span",
39
+ color: Colors.Neutral.B40
40
+ }, helperText)));
41
+ };
@@ -0,0 +1,56 @@
1
+ import React, { useState } from 'react';
2
+ import { BaseContainer } from '../../Layout/GlintsContainer/GlintsContainer';
3
+ import { RadioButton } from './RadioButton';
4
+ import { Typography } from '../Typography';
5
+ RadioButton.displayName = 'RadioButton';
6
+ export default {
7
+ title: '@next/RadioButton',
8
+ component: RadioButton,
9
+ decorators: [function (Story) {
10
+ return /*#__PURE__*/React.createElement(BaseContainer, null, Story());
11
+ }]
12
+ };
13
+ var Template = function Template(args) {
14
+ return /*#__PURE__*/React.createElement(RadioButton, args);
15
+ };
16
+ export var Interactive = Template.bind({});
17
+ Interactive.args = {
18
+ label: 'Label',
19
+ helperText: 'Helper Text',
20
+ disabled: false,
21
+ name: 'name',
22
+ checked: false,
23
+ value: 'value'
24
+ };
25
+ export var ControlledRadioButton = function ControlledRadioButton() {
26
+ var _useState = useState('1'),
27
+ value = _useState[0],
28
+ setValue = _useState[1];
29
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Typography, {
30
+ variant: "body1"
31
+ }, "Selected value: ", value), /*#__PURE__*/React.createElement(RadioButton, {
32
+ name: "radio-name",
33
+ label: "Label 1",
34
+ value: "1",
35
+ checked: value === '1',
36
+ onChange: function onChange(e) {
37
+ return setValue(e.target.value);
38
+ }
39
+ }), /*#__PURE__*/React.createElement(RadioButton, {
40
+ name: "radio-name",
41
+ label: "Label 2",
42
+ value: "2",
43
+ checked: value === '2',
44
+ onChange: function onChange(e) {
45
+ return setValue(e.target.value);
46
+ }
47
+ }), /*#__PURE__*/React.createElement(RadioButton, {
48
+ name: "radio-name",
49
+ label: "Label 3",
50
+ value: "3",
51
+ checked: value === '3',
52
+ onChange: function onChange(e) {
53
+ return setValue(e.target.value);
54
+ }
55
+ }));
56
+ };
@@ -0,0 +1,16 @@
1
+ import styled from 'styled-components';
2
+ import { Breakpoints, Colors } from '..';
3
+ import { space4, space8 } from '../utilities/spacing';
4
+ import { borderRadiusHalf } from '../utilities/borderRadius';
5
+ export var RadioButtonWrapper = styled.label.withConfig({
6
+ displayName: "RadioButtonStyle__RadioButtonWrapper",
7
+ componentId: "sc-138orlx-0"
8
+ })(["display:flex;align-items:flex-start;gap:", ";padding:", " 0;"], space8, space4);
9
+ export var RadioButtonInput = styled.input.withConfig({
10
+ displayName: "RadioButtonStyle__RadioButtonInput",
11
+ componentId: "sc-138orlx-1"
12
+ })(["cursor:pointer;appearance:none;margin:0;width:18px;height:18px;border:2px solid ", ";border-radius:", ";transform:translateY(1.5px);::after{content:'';display:block;border-radius:", ";width:8px;height:8px;margin:3px;}@media (min-width:", "){width:22px;height:22px;transform:none;::after{width:10px;height:10px;margin:", ";}}:hover{border-color:", ";}:focus-visible{box-shadow:0px 0px 0px 1px ", ",0px 0px 0px 3px ", ";outline:none;}:disabled{cursor:not-allowed;background-color:", ";border-color:", ";}:checked{border-color:", ";::after{background-color:", ";}:disabled{background-color:", ";border-color:", ";::after{background-color:", ";}}}"], Colors.Neutral.B68, borderRadiusHalf, borderRadiusHalf, Breakpoints.large, space4, Colors.Neutral.B68, Colors.Neutral.B100, Colors.Blue.S54, Colors.Neutral.B95, Colors.Neutral.B85, Colors.Blue.S99, Colors.Blue.S99, Colors.Neutral.B95, Colors.Neutral.B85, Colors.Neutral.B85);
13
+ export var LabelWrapper = styled.div.withConfig({
14
+ displayName: "RadioButtonStyle__LabelWrapper",
15
+ componentId: "sc-138orlx-2"
16
+ })(["cursor:pointer;display:flex;flex-direction:column;gap:", ";&[data-disabled='true']{span{color:", ";}cursor:not-allowed;}"], space4, Colors.Neutral.B85);
@@ -0,0 +1 @@
1
+ export * from './RadioButton';
@@ -1,16 +1,33 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
2
- var _excluded = ["children"];
3
+ var _excluded = ["children", "onRemove", "value"];
3
4
  import React from 'react';
5
+ import { Icon } from '../Icon';
4
6
  import { Typography } from '../Typography';
5
7
  import { Neutral } from '../utilities/colors';
6
- import { TagStyle } from './TagStyle';
8
+ import { TagContentStyle, TagIconWrapper, TagRemoveContainerStyle, TagStyle } from './TagStyle';
7
9
  export var Tag = function Tag(_ref) {
8
10
  var children = _ref.children,
11
+ onRemove = _ref.onRemove,
12
+ value = _ref.value,
9
13
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
10
14
  var content = typeof children === 'string' ? /*#__PURE__*/React.createElement(Typography, {
11
15
  variant: "caption",
12
16
  color: Neutral.B18,
13
17
  as: 'span'
14
18
  }, children) : children;
15
- return /*#__PURE__*/React.createElement(TagStyle, props, content);
19
+ var removeButton = onRemove && /*#__PURE__*/React.createElement(TagRemoveContainerStyle, null, /*#__PURE__*/React.createElement(TagIconWrapper, {
20
+ role: "button",
21
+ tabIndex: 0
22
+ }, /*#__PURE__*/React.createElement(Icon, {
23
+ name: "ri-close",
24
+ fill: Neutral.B40,
25
+ height: 20,
26
+ onClick: onRemove
27
+ })));
28
+ return /*#__PURE__*/React.createElement(TagStyle, _extends({}, props, {
29
+ value: value
30
+ }), /*#__PURE__*/React.createElement(TagContentStyle, {
31
+ "data-removeable": !!onRemove
32
+ }, content), removeButton);
16
33
  };
@@ -1,17 +1,63 @@
1
- import React from 'react';
1
+ import React, { useCallback, useState } from 'react';
2
2
  import { BaseContainer } from '../../Layout/GlintsContainer/GlintsContainer';
3
3
  import { Tag } from './Tag';
4
4
  Tag.displayName = 'Tag';
5
- var defaultText = 'Basic Tag';
6
5
  export default {
7
6
  title: '@next/Tag',
8
7
  component: Tag,
9
8
  decorators: [function (Story) {
10
9
  return /*#__PURE__*/React.createElement(BaseContainer, null, Story());
11
- }]
10
+ }],
11
+ argTypes: {
12
+ value: {
13
+ description: 'A value to supply, required when onRemove function is supplied',
14
+ control: {
15
+ type: null
16
+ }
17
+ },
18
+ onRemove: {
19
+ description: 'A function callback to pass in to when the remove icon is pressed',
20
+ control: {
21
+ type: null
22
+ }
23
+ }
24
+ },
25
+ parameters: {
26
+ docs: {
27
+ description: {
28
+ component: 'Tags represent a set of interactive keywords that help label, organize, and categorize objects'
29
+ }
30
+ }
31
+ }
12
32
  };
13
- var Template = function Template(args) {
14
- return /*#__PURE__*/React.createElement(Tag, args, defaultText);
33
+ var DefaultTemplate = function DefaultTemplate() {
34
+ return /*#__PURE__*/React.createElement(Tag, null, "Basic Tag");
15
35
  };
16
- export var Interactive = Template.bind({});
17
- Interactive.args = {};
36
+ var RemoveableTemplate = function RemoveableTemplate() {
37
+ var _useState = useState(['Years of Experience: 0 to 3 Years, 3 to 5 Years', 'Expected Salary: $1.000.000 to $3.000.000', 'Current Location: Agats, Indonesia']),
38
+ selectedTags = _useState[0],
39
+ setSelectedTags = _useState[1];
40
+ var removeTag = useCallback(function (tag) {
41
+ return function () {
42
+ setSelectedTags(function (previousTags) {
43
+ return previousTags.filter(function (previousTag) {
44
+ return previousTag !== tag;
45
+ });
46
+ });
47
+ };
48
+ }, []);
49
+ var tagMarkup = selectedTags.map(function (option) {
50
+ return /*#__PURE__*/React.createElement(Tag, {
51
+ style: {
52
+ marginRight: '4px'
53
+ },
54
+ key: option,
55
+ onRemove: removeTag(option)
56
+ }, option);
57
+ });
58
+ return /*#__PURE__*/React.createElement(React.Fragment, null, tagMarkup);
59
+ };
60
+ export var Default = DefaultTemplate.bind({});
61
+ Default.args = {};
62
+ export var Removeable = RemoveableTemplate.bind({});
63
+ Removeable.args = {};
@@ -1,9 +1,21 @@
1
1
  import styled from 'styled-components';
2
2
  import { Breakpoints } from '..';
3
- import { borderRadius4 } from '../utilities/borderRadius';
4
- import { Blue } from '../utilities/colors';
3
+ import { borderRadius4, borderRadiusHalf } from '../utilities/borderRadius';
4
+ import { Blue, Neutral } from '../utilities/colors';
5
5
  import { space4, space8 } from '../utilities/spacing';
6
+ export var TagContentStyle = styled.span.withConfig({
7
+ displayName: "TagStyle__TagContentStyle",
8
+ componentId: "sc-r1wv7a-0"
9
+ })(["padding:", " ", ";&[data-removeable='true']{padding-right:0;}"], space4, space8);
10
+ export var TagRemoveContainerStyle = styled.div.withConfig({
11
+ displayName: "TagStyle__TagRemoveContainerStyle",
12
+ componentId: "sc-r1wv7a-1"
13
+ })(["padding:", ";display:flex;"], space4);
14
+ export var TagIconWrapper = styled.div.withConfig({
15
+ displayName: "TagStyle__TagIconWrapper",
16
+ componentId: "sc-r1wv7a-2"
17
+ })(["display:flex;justify-content:center;align-items:center;&:focus-visible{margin:-2px;outline:none;border:2px solid ", ";border-radius:", ";}"], Blue.S100, borderRadius4);
6
18
  export var TagStyle = styled.div.withConfig({
7
19
  displayName: "TagStyle",
8
- componentId: "sc-r1wv7a-0"
9
- })(["display:inline-flex;background-color:", ";width:fit-content;padding:", " ", ";border-radius:", ";@media (max-width:", "){font-size:12px;}"], Blue.S08, space4, space8, borderRadius4, Breakpoints.large);
20
+ componentId: "sc-r1wv7a-3"
21
+ })(["display:inline-flex;align-items:center;background-color:", ";border-radius:", ";width:fit-content;@media (max-width:", "){font-size:12px;}& svg{padding:0;}& svg:hover{cursor:pointer;background-color:", ";border-radius:", ";}& svg:active{cursor:pointer;background-color:", ";fill:", ";border-radius:", ";}"], Blue.S08, borderRadius4, Breakpoints.large, Neutral.B95, borderRadiusHalf, Neutral.B40, Neutral.B100, borderRadiusHalf);
package/es/@next/index.js CHANGED
@@ -16,6 +16,7 @@ export { Icon, IconProps } from './Icon';
16
16
  export { IndexTable, IndexTableProps, useIndexResourceState } from './IndexTable';
17
17
  export { Pagination, SimplePagination, PaginationProps } from './Pagination';
18
18
  export { Popover, PopoverProps } from './Popover';
19
+ export { RadioButton, RadioButtonProps } from './RadioButton';
19
20
  export { Tab, TabModel, TabProps, Tabs, TabsProps } from './Tabs';
20
21
  export { Tag, TagProps } from './Tag';
21
22
  export { Typography, TypographyProps } from './Typography';
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export interface RadioButtonProps extends Omit<React.HTMLAttributes<HTMLInputElement>, 'onChange'> {
3
+ label?: string;
4
+ helperText?: string;
5
+ disabled?: boolean;
6
+ name?: string;
7
+ checked?: boolean;
8
+ value?: string;
9
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
10
+ }
11
+ /**
12
+ * This is a controlled component, so you need to pass in the `checked` and `onChange` prop to make it work.
13
+ */
14
+ export declare const RadioButton: ({ label, helperText, disabled, name, checked, value, onChange, ...props }: RadioButtonProps) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { Meta } from '@storybook/react';
3
+ declare const _default: Meta<import("@storybook/react").Args>;
4
+ export default _default;
5
+ export declare const Interactive: any;
6
+ export declare const ControlledRadioButton: () => JSX.Element;
@@ -0,0 +1,3 @@
1
+ export declare const RadioButtonWrapper: import("styled-components").StyledComponent<"label", any, {}, never>;
2
+ export declare const RadioButtonInput: import("styled-components").StyledComponent<"input", any, {}, never>;
3
+ export declare const LabelWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ export * from './RadioButton';
@@ -1,5 +1,9 @@
1
1
  import React from 'react';
2
2
  export interface TagProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  children?: React.ReactNode;
4
+ value?: string;
5
+ onRemove?: (() => void) | null;
4
6
  }
5
- export declare const Tag: ({ children, ...props }: TagProps) => JSX.Element;
7
+ export declare type TagRemoveContainerProps = React.HTMLAttributes<HTMLDivElement>;
8
+ export declare type TagContentProps = React.HTMLAttributes<HTMLSpanElement> & TagProps;
9
+ export declare const Tag: ({ children, onRemove, value, ...props }: TagProps) => JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { Meta } from '@storybook/react';
2
2
  declare const _default: Meta<import("@storybook/react").Args>;
3
3
  export default _default;
4
- export declare const Interactive: any;
4
+ export declare const Default: any;
5
+ export declare const Removeable: any;
@@ -1,2 +1,6 @@
1
- import { TagProps } from './Tag';
1
+ /// <reference types="react" />
2
+ import { TagProps, TagRemoveContainerProps } from './Tag';
3
+ export declare const TagContentStyle: import("styled-components").StyledComponent<"span", any, import("react").HTMLAttributes<HTMLSpanElement> & TagProps, never>;
4
+ export declare const TagRemoveContainerStyle: import("styled-components").StyledComponent<"div", any, TagRemoveContainerProps, never>;
5
+ export declare const TagIconWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
2
6
  export declare const TagStyle: import("styled-components").StyledComponent<"div", any, TagProps, never>;
@@ -15,6 +15,7 @@ export { Icon, IconProps } from './Icon';
15
15
  export { IndexTable, IndexTableProps, useIndexResourceState, } from './IndexTable';
16
16
  export { Pagination, SimplePagination, PaginationProps } from './Pagination';
17
17
  export { Popover, PopoverProps } from './Popover';
18
+ export { RadioButton, RadioButtonProps } from './RadioButton';
18
19
  export { Tab, TabModel, TabProps, Tabs, TabsProps } from './Tabs';
19
20
  export { Tag, TagProps } from './Tag';
20
21
  export { Typography, TypographyProps } from './Typography';
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.RadioButton = void 0;
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _RadioButtonStyle = require("./RadioButtonStyle");
10
+ var _Typography = require("../Typography");
11
+ var _ = require("..");
12
+ var _excluded = ["label", "helperText", "disabled", "name", "checked", "value", "onChange"];
13
+ /**
14
+ * This is a controlled component, so you need to pass in the `checked` and `onChange` prop to make it work.
15
+ */
16
+ var RadioButton = function RadioButton(_ref) {
17
+ var label = _ref.label,
18
+ helperText = _ref.helperText,
19
+ disabled = _ref.disabled,
20
+ name = _ref.name,
21
+ checked = _ref.checked,
22
+ value = _ref.value,
23
+ onChange = _ref.onChange,
24
+ props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
25
+ return /*#__PURE__*/_react["default"].createElement(_RadioButtonStyle.RadioButtonWrapper, null, /*#__PURE__*/_react["default"].createElement(_RadioButtonStyle.RadioButtonInput, (0, _extends2["default"])({
26
+ disabled: disabled,
27
+ name: name,
28
+ checked: checked,
29
+ value: value,
30
+ type: "radio",
31
+ onChange: onChange,
32
+ onMouseDown: function onMouseDown(e) {
33
+ return e.preventDefault();
34
+ }
35
+ }, props)), /*#__PURE__*/_react["default"].createElement(_RadioButtonStyle.LabelWrapper, {
36
+ "data-disabled": disabled
37
+ }, /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
38
+ variant: "body1",
39
+ as: "span",
40
+ color: _.Colors.Neutral.B18
41
+ }, label), /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
42
+ variant: "subtitle2",
43
+ as: "span",
44
+ color: _.Colors.Neutral.B40
45
+ }, helperText)));
46
+ };
47
+ exports.RadioButton = RadioButton;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports["default"] = exports.Interactive = exports.ControlledRadioButton = void 0;
5
+ var _react = _interopRequireWildcard(require("react"));
6
+ var _GlintsContainer = require("../../Layout/GlintsContainer/GlintsContainer");
7
+ var _RadioButton = require("./RadioButton");
8
+ var _Typography = require("../Typography");
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ _RadioButton.RadioButton.displayName = 'RadioButton';
12
+ var _default = {
13
+ title: '@next/RadioButton',
14
+ component: _RadioButton.RadioButton,
15
+ decorators: [function (Story) {
16
+ return /*#__PURE__*/_react["default"].createElement(_GlintsContainer.BaseContainer, null, Story());
17
+ }]
18
+ };
19
+ exports["default"] = _default;
20
+ var Template = function Template(args) {
21
+ return /*#__PURE__*/_react["default"].createElement(_RadioButton.RadioButton, args);
22
+ };
23
+ var Interactive = Template.bind({});
24
+ exports.Interactive = Interactive;
25
+ Interactive.args = {
26
+ label: 'Label',
27
+ helperText: 'Helper Text',
28
+ disabled: false,
29
+ name: 'name',
30
+ checked: false,
31
+ value: 'value'
32
+ };
33
+ var ControlledRadioButton = function ControlledRadioButton() {
34
+ var _useState = (0, _react.useState)('1'),
35
+ value = _useState[0],
36
+ setValue = _useState[1];
37
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
38
+ variant: "body1"
39
+ }, "Selected value: ", value), /*#__PURE__*/_react["default"].createElement(_RadioButton.RadioButton, {
40
+ name: "radio-name",
41
+ label: "Label 1",
42
+ value: "1",
43
+ checked: value === '1',
44
+ onChange: function onChange(e) {
45
+ return setValue(e.target.value);
46
+ }
47
+ }), /*#__PURE__*/_react["default"].createElement(_RadioButton.RadioButton, {
48
+ name: "radio-name",
49
+ label: "Label 2",
50
+ value: "2",
51
+ checked: value === '2',
52
+ onChange: function onChange(e) {
53
+ return setValue(e.target.value);
54
+ }
55
+ }), /*#__PURE__*/_react["default"].createElement(_RadioButton.RadioButton, {
56
+ name: "radio-name",
57
+ label: "Label 3",
58
+ value: "3",
59
+ checked: value === '3',
60
+ onChange: function onChange(e) {
61
+ return setValue(e.target.value);
62
+ }
63
+ }));
64
+ };
65
+ exports.ControlledRadioButton = ControlledRadioButton;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.RadioButtonWrapper = exports.RadioButtonInput = exports.LabelWrapper = void 0;
6
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
7
+ var _ = require("..");
8
+ var _spacing = require("../utilities/spacing");
9
+ var _borderRadius = require("../utilities/borderRadius");
10
+ var RadioButtonWrapper = _styledComponents["default"].label.withConfig({
11
+ displayName: "RadioButtonStyle__RadioButtonWrapper",
12
+ componentId: "sc-138orlx-0"
13
+ })(["display:flex;align-items:flex-start;gap:", ";padding:", " 0;"], _spacing.space8, _spacing.space4);
14
+ exports.RadioButtonWrapper = RadioButtonWrapper;
15
+ var RadioButtonInput = _styledComponents["default"].input.withConfig({
16
+ displayName: "RadioButtonStyle__RadioButtonInput",
17
+ componentId: "sc-138orlx-1"
18
+ })(["cursor:pointer;appearance:none;margin:0;width:18px;height:18px;border:2px solid ", ";border-radius:", ";transform:translateY(1.5px);::after{content:'';display:block;border-radius:", ";width:8px;height:8px;margin:3px;}@media (min-width:", "){width:22px;height:22px;transform:none;::after{width:10px;height:10px;margin:", ";}}:hover{border-color:", ";}:focus-visible{box-shadow:0px 0px 0px 1px ", ",0px 0px 0px 3px ", ";outline:none;}:disabled{cursor:not-allowed;background-color:", ";border-color:", ";}:checked{border-color:", ";::after{background-color:", ";}:disabled{background-color:", ";border-color:", ";::after{background-color:", ";}}}"], _.Colors.Neutral.B68, _borderRadius.borderRadiusHalf, _borderRadius.borderRadiusHalf, _.Breakpoints.large, _spacing.space4, _.Colors.Neutral.B68, _.Colors.Neutral.B100, _.Colors.Blue.S54, _.Colors.Neutral.B95, _.Colors.Neutral.B85, _.Colors.Blue.S99, _.Colors.Blue.S99, _.Colors.Neutral.B95, _.Colors.Neutral.B85, _.Colors.Neutral.B85);
19
+ exports.RadioButtonInput = RadioButtonInput;
20
+ var LabelWrapper = _styledComponents["default"].div.withConfig({
21
+ displayName: "RadioButtonStyle__LabelWrapper",
22
+ componentId: "sc-138orlx-2"
23
+ })(["cursor:pointer;display:flex;flex-direction:column;gap:", ";&[data-disabled='true']{span{color:", ";}cursor:not-allowed;}"], _spacing.space4, _.Colors.Neutral.B85);
24
+ exports.LabelWrapper = LabelWrapper;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _RadioButton = require("./RadioButton");
5
+ Object.keys(_RadioButton).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _RadioButton[key]) return;
8
+ exports[key] = _RadioButton[key];
9
+ });
@@ -3,20 +3,37 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
5
  exports.Tag = void 0;
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
7
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
7
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _Icon = require("../Icon");
8
10
  var _Typography = require("../Typography");
9
11
  var _colors = require("../utilities/colors");
10
12
  var _TagStyle = require("./TagStyle");
11
- var _excluded = ["children"];
13
+ var _excluded = ["children", "onRemove", "value"];
12
14
  var Tag = function Tag(_ref) {
13
15
  var children = _ref.children,
16
+ onRemove = _ref.onRemove,
17
+ value = _ref.value,
14
18
  props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
15
19
  var content = typeof children === 'string' ? /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
16
20
  variant: "caption",
17
21
  color: _colors.Neutral.B18,
18
22
  as: 'span'
19
23
  }, children) : children;
20
- return /*#__PURE__*/_react["default"].createElement(_TagStyle.TagStyle, props, content);
24
+ var removeButton = onRemove && /*#__PURE__*/_react["default"].createElement(_TagStyle.TagRemoveContainerStyle, null, /*#__PURE__*/_react["default"].createElement(_TagStyle.TagIconWrapper, {
25
+ role: "button",
26
+ tabIndex: 0
27
+ }, /*#__PURE__*/_react["default"].createElement(_Icon.Icon, {
28
+ name: "ri-close",
29
+ fill: _colors.Neutral.B40,
30
+ height: 20,
31
+ onClick: onRemove
32
+ })));
33
+ return /*#__PURE__*/_react["default"].createElement(_TagStyle.TagStyle, (0, _extends2["default"])({}, props, {
34
+ value: value
35
+ }), /*#__PURE__*/_react["default"].createElement(_TagStyle.TagContentStyle, {
36
+ "data-removeable": !!onRemove
37
+ }, content), removeButton);
21
38
  };
22
39
  exports.Tag = Tag;
@@ -1,24 +1,72 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  exports.__esModule = true;
5
- exports["default"] = exports.Interactive = void 0;
6
- var _react = _interopRequireDefault(require("react"));
4
+ exports["default"] = exports.Removeable = exports.Default = void 0;
5
+ var _react = _interopRequireWildcard(require("react"));
7
6
  var _GlintsContainer = require("../../Layout/GlintsContainer/GlintsContainer");
8
7
  var _Tag = require("./Tag");
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9
10
  _Tag.Tag.displayName = 'Tag';
10
- var defaultText = 'Basic Tag';
11
11
  var _default = {
12
12
  title: '@next/Tag',
13
13
  component: _Tag.Tag,
14
14
  decorators: [function (Story) {
15
15
  return /*#__PURE__*/_react["default"].createElement(_GlintsContainer.BaseContainer, null, Story());
16
- }]
16
+ }],
17
+ argTypes: {
18
+ value: {
19
+ description: 'A value to supply, required when onRemove function is supplied',
20
+ control: {
21
+ type: null
22
+ }
23
+ },
24
+ onRemove: {
25
+ description: 'A function callback to pass in to when the remove icon is pressed',
26
+ control: {
27
+ type: null
28
+ }
29
+ }
30
+ },
31
+ parameters: {
32
+ docs: {
33
+ description: {
34
+ component: 'Tags represent a set of interactive keywords that help label, organize, and categorize objects'
35
+ }
36
+ }
37
+ }
17
38
  };
18
39
  exports["default"] = _default;
19
- var Template = function Template(args) {
20
- return /*#__PURE__*/_react["default"].createElement(_Tag.Tag, args, defaultText);
40
+ var DefaultTemplate = function DefaultTemplate() {
41
+ return /*#__PURE__*/_react["default"].createElement(_Tag.Tag, null, "Basic Tag");
21
42
  };
22
- var Interactive = Template.bind({});
23
- exports.Interactive = Interactive;
24
- Interactive.args = {};
43
+ var RemoveableTemplate = function RemoveableTemplate() {
44
+ var _useState = (0, _react.useState)(['Years of Experience: 0 to 3 Years, 3 to 5 Years', 'Expected Salary: $1.000.000 to $3.000.000', 'Current Location: Agats, Indonesia']),
45
+ selectedTags = _useState[0],
46
+ setSelectedTags = _useState[1];
47
+ var removeTag = (0, _react.useCallback)(function (tag) {
48
+ return function () {
49
+ setSelectedTags(function (previousTags) {
50
+ return previousTags.filter(function (previousTag) {
51
+ return previousTag !== tag;
52
+ });
53
+ });
54
+ };
55
+ }, []);
56
+ var tagMarkup = selectedTags.map(function (option) {
57
+ return /*#__PURE__*/_react["default"].createElement(_Tag.Tag, {
58
+ style: {
59
+ marginRight: '4px'
60
+ },
61
+ key: option,
62
+ onRemove: removeTag(option)
63
+ }, option);
64
+ });
65
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, tagMarkup);
66
+ };
67
+ var Default = DefaultTemplate.bind({});
68
+ exports.Default = Default;
69
+ Default.args = {};
70
+ var Removeable = RemoveableTemplate.bind({});
71
+ exports.Removeable = Removeable;
72
+ Removeable.args = {};
@@ -2,14 +2,29 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.TagStyle = void 0;
5
+ exports.TagStyle = exports.TagRemoveContainerStyle = exports.TagIconWrapper = exports.TagContentStyle = void 0;
6
6
  var _styledComponents = _interopRequireDefault(require("styled-components"));
7
7
  var _ = require("..");
8
8
  var _borderRadius = require("../utilities/borderRadius");
9
9
  var _colors = require("../utilities/colors");
10
10
  var _spacing = require("../utilities/spacing");
11
+ var TagContentStyle = _styledComponents["default"].span.withConfig({
12
+ displayName: "TagStyle__TagContentStyle",
13
+ componentId: "sc-r1wv7a-0"
14
+ })(["padding:", " ", ";&[data-removeable='true']{padding-right:0;}"], _spacing.space4, _spacing.space8);
15
+ exports.TagContentStyle = TagContentStyle;
16
+ var TagRemoveContainerStyle = _styledComponents["default"].div.withConfig({
17
+ displayName: "TagStyle__TagRemoveContainerStyle",
18
+ componentId: "sc-r1wv7a-1"
19
+ })(["padding:", ";display:flex;"], _spacing.space4);
20
+ exports.TagRemoveContainerStyle = TagRemoveContainerStyle;
21
+ var TagIconWrapper = _styledComponents["default"].div.withConfig({
22
+ displayName: "TagStyle__TagIconWrapper",
23
+ componentId: "sc-r1wv7a-2"
24
+ })(["display:flex;justify-content:center;align-items:center;&:focus-visible{margin:-2px;outline:none;border:2px solid ", ";border-radius:", ";}"], _colors.Blue.S100, _borderRadius.borderRadius4);
25
+ exports.TagIconWrapper = TagIconWrapper;
11
26
  var TagStyle = _styledComponents["default"].div.withConfig({
12
27
  displayName: "TagStyle",
13
- componentId: "sc-r1wv7a-0"
14
- })(["display:inline-flex;background-color:", ";width:fit-content;padding:", " ", ";border-radius:", ";@media (max-width:", "){font-size:12px;}"], _colors.Blue.S08, _spacing.space4, _spacing.space8, _borderRadius.borderRadius4, _.Breakpoints.large);
28
+ componentId: "sc-r1wv7a-3"
29
+ })(["display:inline-flex;align-items:center;background-color:", ";border-radius:", ";width:fit-content;@media (max-width:", "){font-size:12px;}& svg{padding:0;}& svg:hover{cursor:pointer;background-color:", ";border-radius:", ";}& svg:active{cursor:pointer;background-color:", ";fill:", ";border-radius:", ";}"], _colors.Blue.S08, _borderRadius.borderRadius4, _.Breakpoints.large, _colors.Neutral.B95, _borderRadius.borderRadiusHalf, _colors.Neutral.B40, _colors.Neutral.B100, _borderRadius.borderRadiusHalf);
15
30
  exports.TagStyle = TagStyle;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.useIndexResourceState = exports.useAlert = exports.TypographyProps = exports.Typography = exports.TagProps = exports.Tag = exports.TabsProps = exports.Tabs = exports.TabProps = exports.TabModel = exports.Tab = exports.Spacing = exports.SimplePagination = exports.PrimaryButton = exports.PopoverProps = exports.Popover = exports.PaginationProps = exports.Pagination = exports.OutlineMonochromeButton = exports.OutlineButton = exports.IndexTableProps = exports.IndexTable = exports.IconProps = exports.Icon = exports.Fonts = exports.DropShadow = exports.Divider = exports.DestructiveButton = exports.Colors = exports.ButtonProps = exports.ButtonGroupProps = exports.ButtonGroup = exports.Button = exports.Breakpoints = exports.BorderRadius = exports.BannerProps = exports.Banner = exports.BadgeProps = exports.Badge = exports.AvatarProps = exports.Avatar = exports.AlertWithProvider = exports.AlertProvider = exports.AlertProps = exports.AlertContextProps = exports.AlertContext = exports.Alert = void 0;
4
+ exports.useIndexResourceState = exports.useAlert = exports.TypographyProps = exports.Typography = exports.TagProps = exports.Tag = exports.TabsProps = exports.Tabs = exports.TabProps = exports.TabModel = exports.Tab = exports.Spacing = exports.SimplePagination = exports.RadioButtonProps = exports.RadioButton = exports.PrimaryButton = exports.PopoverProps = exports.Popover = exports.PaginationProps = exports.Pagination = exports.OutlineMonochromeButton = exports.OutlineButton = exports.IndexTableProps = exports.IndexTable = exports.IconProps = exports.Icon = exports.Fonts = exports.DropShadow = exports.Divider = exports.DestructiveButton = exports.Colors = exports.ButtonProps = exports.ButtonGroupProps = exports.ButtonGroup = exports.Button = exports.Breakpoints = exports.BorderRadius = exports.BannerProps = exports.Banner = exports.BadgeProps = exports.Badge = exports.AvatarProps = exports.Avatar = exports.AlertWithProvider = exports.AlertProvider = exports.AlertProps = exports.AlertContextProps = exports.AlertContext = exports.Alert = void 0;
5
5
  var BorderRadius = _interopRequireWildcard(require("./utilities/borderRadius"));
6
6
  exports.BorderRadius = BorderRadius;
7
7
  var Breakpoints = _interopRequireWildcard(require("./utilities/breakpoints"));
@@ -57,6 +57,9 @@ exports.PaginationProps = _Pagination.PaginationProps;
57
57
  var _Popover = require("./Popover");
58
58
  exports.Popover = _Popover.Popover;
59
59
  exports.PopoverProps = _Popover.PopoverProps;
60
+ var _RadioButton = require("./RadioButton");
61
+ exports.RadioButton = _RadioButton.RadioButton;
62
+ exports.RadioButtonProps = _RadioButton.RadioButtonProps;
60
63
  var _Tabs = require("./Tabs");
61
64
  exports.Tab = _Tabs.Tab;
62
65
  exports.TabModel = _Tabs.TabModel;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export interface RadioButtonProps extends Omit<React.HTMLAttributes<HTMLInputElement>, 'onChange'> {
3
+ label?: string;
4
+ helperText?: string;
5
+ disabled?: boolean;
6
+ name?: string;
7
+ checked?: boolean;
8
+ value?: string;
9
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
10
+ }
11
+ /**
12
+ * This is a controlled component, so you need to pass in the `checked` and `onChange` prop to make it work.
13
+ */
14
+ export declare const RadioButton: ({ label, helperText, disabled, name, checked, value, onChange, ...props }: RadioButtonProps) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { Meta } from '@storybook/react';
3
+ declare const _default: Meta<import("@storybook/react").Args>;
4
+ export default _default;
5
+ export declare const Interactive: any;
6
+ export declare const ControlledRadioButton: () => JSX.Element;
@@ -0,0 +1,3 @@
1
+ export declare const RadioButtonWrapper: import("styled-components").StyledComponent<"label", any, {}, never>;
2
+ export declare const RadioButtonInput: import("styled-components").StyledComponent<"input", any, {}, never>;
3
+ export declare const LabelWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ export * from './RadioButton';
@@ -1,5 +1,9 @@
1
1
  import React from 'react';
2
2
  export interface TagProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  children?: React.ReactNode;
4
+ value?: string;
5
+ onRemove?: (() => void) | null;
4
6
  }
5
- export declare const Tag: ({ children, ...props }: TagProps) => JSX.Element;
7
+ export declare type TagRemoveContainerProps = React.HTMLAttributes<HTMLDivElement>;
8
+ export declare type TagContentProps = React.HTMLAttributes<HTMLSpanElement> & TagProps;
9
+ export declare const Tag: ({ children, onRemove, value, ...props }: TagProps) => JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { Meta } from '@storybook/react';
2
2
  declare const _default: Meta<import("@storybook/react").Args>;
3
3
  export default _default;
4
- export declare const Interactive: any;
4
+ export declare const Default: any;
5
+ export declare const Removeable: any;
@@ -1,2 +1,6 @@
1
- import { TagProps } from './Tag';
1
+ /// <reference types="react" />
2
+ import { TagProps, TagRemoveContainerProps } from './Tag';
3
+ export declare const TagContentStyle: import("styled-components").StyledComponent<"span", any, import("react").HTMLAttributes<HTMLSpanElement> & TagProps, never>;
4
+ export declare const TagRemoveContainerStyle: import("styled-components").StyledComponent<"div", any, TagRemoveContainerProps, never>;
5
+ export declare const TagIconWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
2
6
  export declare const TagStyle: import("styled-components").StyledComponent<"div", any, TagProps, never>;
@@ -15,6 +15,7 @@ export { Icon, IconProps } from './Icon';
15
15
  export { IndexTable, IndexTableProps, useIndexResourceState, } from './IndexTable';
16
16
  export { Pagination, SimplePagination, PaginationProps } from './Pagination';
17
17
  export { Popover, PopoverProps } from './Popover';
18
+ export { RadioButton, RadioButtonProps } from './RadioButton';
18
19
  export { Tab, TabModel, TabProps, Tabs, TabsProps } from './Tabs';
19
20
  export { Tag, TagProps } from './Tag';
20
21
  export { Typography, TypographyProps } from './Typography';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glints-aries",
3
- "version": "4.0.183",
3
+ "version": "4.0.185",
4
4
  "description": "Glints ui-kit for frontend",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./es/index.js",