krl-alfred 2.24.7 → 2.24.9

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 (147) hide show
  1. package/dist/components/ActionButton/ActionButton.styled.js +3 -3
  2. package/dist/components/ActionButton/stories/ActionButton.stories.js +2 -2
  3. package/dist/components/AddressCard/AddressCard.styled.js +1 -1
  4. package/dist/components/AddressCard/stories/AddressCard.stories.js +1 -1
  5. package/dist/components/Agreement/Agreement.styled.js +1 -1
  6. package/dist/components/Alert/Alert.styled.js +1 -1
  7. package/dist/components/AutocompleteInput/AutocompleteInput.js +1 -1
  8. package/dist/components/AutocompleteInput/AutocompleteInput.styled.js +4 -4
  9. package/dist/components/Badges/layouts/text/text.styled.js +4 -4
  10. package/dist/components/Badges/stories/Badges.stories.js +2 -2
  11. package/dist/components/BannerCard/BannerCard.styled.js +1 -1
  12. package/dist/components/BannerCard/BannerCard.test.d.ts +1 -0
  13. package/dist/components/BannerCard/BannerCard.test.js +109 -0
  14. package/dist/components/BannerCard/stories/BannerCard.stories.js +1 -1
  15. package/dist/components/BlogCard/BlogCard.styled.js +1 -1
  16. package/dist/components/Breadcrumbs/Breadcrumbs.styled.js +4 -4
  17. package/dist/components/Button/Button.styled.js +6 -6
  18. package/dist/components/Button/Button.test.d.ts +1 -0
  19. package/dist/components/Button/Button.test.js +125 -0
  20. package/dist/components/CategoryMenu/CategoryMenu.styled.js +3 -3
  21. package/dist/components/Checkbox/Checkbox.styled.js +3 -3
  22. package/dist/components/CheckboxGroup/CheckboxGroup.styled.js +1 -1
  23. package/dist/components/CheckboxGroup/stories/CheckboxGroup.stories.js +1 -1
  24. package/dist/components/CircleProgress/CircleProgress.js +1 -1
  25. package/dist/components/CircleProgress/CircleProgress.styled.js +1 -1
  26. package/dist/components/CircleProgressPro/CircleProgressPro.styled.js +1 -1
  27. package/dist/components/CircleProgressPro/stories/CircleProgressPro.stories.js +1 -1
  28. package/dist/components/ColorCard/ColorCard.d.ts +1 -1
  29. package/dist/components/ColorCard/ColorCard.js +14 -4
  30. package/dist/components/ColorCard/ColorCard.styled.d.ts +4 -0
  31. package/dist/components/ColorCard/ColorCard.styled.js +13 -9
  32. package/dist/components/ColorCard/ColorCard.test.js +82 -2
  33. package/dist/components/ColorCard/props.d.ts +5 -0
  34. package/dist/components/ColorCard/props.js +5 -0
  35. package/dist/components/ColorCard/stories/ColorCard.stories.d.ts +74 -0
  36. package/dist/components/ColorCard/stories/ColorCard.stories.js +25 -1
  37. package/dist/components/ColorPalette/ColorPalette.styled.js +3 -3
  38. package/dist/components/ColorPalette/ColorPalette.test.js +29 -0
  39. package/dist/components/CouponCode/CouponCode.styled.js +1 -1
  40. package/dist/components/DescriptionCard/DescriptionCard.js +1 -1
  41. package/dist/components/DescriptionCard/DescriptionCard.styled.js +17 -17
  42. package/dist/components/DescriptionCard/stories/DescriptionCard.stories.js +5 -5
  43. package/dist/components/Divider/Divider.styled.js +1 -1
  44. package/dist/components/Dropdown/Dropdown.styled.js +1 -1
  45. package/dist/components/Dropdown/stories/Dropdown.stories.js +2 -2
  46. package/dist/components/DropdownButton/DropdownButton.styled.js +2 -2
  47. package/dist/components/DropdownButton/stories/DropdownButton.stories.js +1 -1
  48. package/dist/components/Icon/iconList/CheckboxElementChecked.js +1 -1
  49. package/dist/components/Icon/iconList/CheckboxElementDisabled.js +1 -1
  50. package/dist/components/Icon/iconList/CheckboxElementUncheck.js +1 -1
  51. package/dist/components/Icon/iconList/CreditCard.js +1 -1
  52. package/dist/components/Icon/iconList/RadioButtonElementChecked.js +1 -1
  53. package/dist/components/Icon/iconList/RadioButtonElementDisabled.js +1 -1
  54. package/dist/components/Icon/iconList/RadioButtonElementUnchecked.js +1 -1
  55. package/dist/components/Icon/iconList/RotateRightSm.d.ts +3 -0
  56. package/dist/components/Icon/iconList/RotateRightSm.js +40 -0
  57. package/dist/components/Icon/iconList/index.d.ts +5 -1
  58. package/dist/components/Icon/iconList/index.js +7 -1
  59. package/dist/components/InfoBox/InfoBox.styled.js +6 -6
  60. package/dist/components/InlineProgress/stories/InlineProgress.stories.js +1 -1
  61. package/dist/components/Input/Input.js +2 -2
  62. package/dist/components/Input/Input.styled.d.ts +1 -0
  63. package/dist/components/Input/Input.styled.js +18 -17
  64. package/dist/components/Input/Input.test.js +19 -0
  65. package/dist/components/InstallmentBox/InstallmentBox.styled.js +1 -1
  66. package/dist/components/InstallmentBox/stories/InstallmentBox.stories.js +1 -1
  67. package/dist/components/InsuranceBox/InsuranceBox.styled.js +2 -2
  68. package/dist/components/InsuranceBox/stories/InsuranceBox.stories.js +1 -1
  69. package/dist/components/ListGroup/ListGroup.styled.js +1 -1
  70. package/dist/components/ListGroup/stories/ListGroup.stories.js +1 -1
  71. package/dist/components/Modal/Modal.styled.js +2 -2
  72. package/dist/components/OptionMenu/OptionMenu.styled.js +3 -3
  73. package/dist/components/OtpInput/OtpInput.styled.js +3 -3
  74. package/dist/components/OtpInput/stories/OtpInput.stories.js +1 -1
  75. package/dist/components/Pagination/Pagination.styled.js +1 -1
  76. package/dist/components/Pagination/stories/Pagination.stories.js +1 -1
  77. package/dist/components/PaymentCart/PaymentCart.styled.js +1 -1
  78. package/dist/components/PaymentCart/stories/PaymentCart.stories.js +1 -1
  79. package/dist/components/ProductCardCheckbox/ProductCardCheckbox.styled.js +3 -3
  80. package/dist/components/ProductCardHorizontal/ProductCardHorizontal.styled.js +1 -1
  81. package/dist/components/ProductCardHorizontalMd/ProductCardHorizontalMd.styled.js +8 -8
  82. package/dist/components/ProductCardHorizontalSm/ProductCardHorizontalSm.styled.js +6 -6
  83. package/dist/components/ProductCardRadio/ProductCardRadio.styled.js +3 -3
  84. package/dist/components/ProductCardVertical/ProductCardVertical.styled.js +8 -8
  85. package/dist/components/ProductCardVertical/ProductCardVertical.test.js +20 -0
  86. package/dist/components/QuantitySelector/QuantitySelector.styled.js +4 -4
  87. package/dist/components/QuantitySelector/QuantitySelector.test.d.ts +1 -0
  88. package/dist/components/QuantitySelector/QuantitySelector.test.js +114 -0
  89. package/dist/components/RadioButton/RadioButton.test.js +10 -0
  90. package/dist/components/RadioButton/RadioIndicator.js +1 -1
  91. package/dist/components/RadioButton/layouts/basic/Basic.styled.js +2 -2
  92. package/dist/components/RadioButton/layouts/boxed/Boxed.styled.js +2 -2
  93. package/dist/components/RadioButton/layouts/boxedMd/BoxedMd.styled.js +4 -4
  94. package/dist/components/RadioButton/layouts/boxedMd/BoxedMd.test.js +5 -5
  95. package/dist/components/RadioButton/layouts/boxedSm/BoxedSm.styled.js +2 -2
  96. package/dist/components/RadioButton/layouts/boxedWithIcon/BoxedWithIcon.styled.js +4 -4
  97. package/dist/components/RadioButton/layouts/color/Color.styled.js +2 -2
  98. package/dist/components/RadioButton/layouts/horizontal/Horizontal.styled.js +8 -8
  99. package/dist/components/RadioButton/layouts/horizontal/Horizontal.test.js +8 -0
  100. package/dist/components/RadioButton/stories/RadioButton.stories.js +4 -4
  101. package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
  102. package/dist/components/RadioGroup/RadioGroup.js +2 -2
  103. package/dist/components/RadioGroup/RadioGroup.styled.d.ts +1 -0
  104. package/dist/components/RadioGroup/RadioGroup.styled.js +11 -10
  105. package/dist/components/RadioGroup/RadioGroup.test.js +41 -0
  106. package/dist/components/RadioGroup/props.d.ts +1 -0
  107. package/dist/components/RadioGroup/props.js +1 -0
  108. package/dist/components/RadioGroup/stories/RadioGroup.stories.d.ts +82 -1
  109. package/dist/components/RadioGroup/stories/RadioGroup.stories.js +52 -3
  110. package/dist/components/RadioScale/RadioScale.styled.js +1 -1
  111. package/dist/components/ReviewBlock/ReviewBlock.js +1 -1
  112. package/dist/components/ReviewBlock/ReviewBlock.styled.js +9 -9
  113. package/dist/components/ReviewBlock/ReviewBlock.test.d.ts +1 -0
  114. package/dist/components/ReviewBlock/ReviewBlock.test.js +58 -0
  115. package/dist/components/ReviewCard/ReviewCard.js +1 -1
  116. package/dist/components/ReviewCard/ReviewCard.styled.js +7 -7
  117. package/dist/components/ReviewCard/ReviewCard.test.d.ts +1 -0
  118. package/dist/components/ReviewCard/ReviewCard.test.js +95 -0
  119. package/dist/components/RichTextEditor/RichTextEditor.styled.js +10 -10
  120. package/dist/components/RichTextEditor/stories/RichTextEditor.stories.js +4 -4
  121. package/dist/components/SearchBox/SearchBox.styled.js +1 -1
  122. package/dist/components/SelectBox/SelectBox.js +3 -3
  123. package/dist/components/SelectBox/SelectBox.styled.js +11 -11
  124. package/dist/components/SelectBox/SelectBox.test.js +1 -1
  125. package/dist/components/ShoppingCartProduct/ShoppingCartProduct.styled.js +16 -16
  126. package/dist/components/SkeletonLoader/SkeletonLoader.styled.js +1 -1
  127. package/dist/components/SkeletonLoader/stories/SkeletonLoader.stories.js +1 -1
  128. package/dist/components/StepSlider/StepSlider.styled.js +4 -4
  129. package/dist/components/Stepper/Stepper.styled.js +2 -2
  130. package/dist/components/SuggestBox/SuggestBox.styled.js +1 -1
  131. package/dist/components/SuggestBox/stories/SuggestBox.stories.js +3 -3
  132. package/dist/components/Table/Table.styled.js +3 -3
  133. package/dist/components/Tabs/Tabs.styled.js +1 -1
  134. package/dist/components/Tag/Tag.styled.js +4 -4
  135. package/dist/components/TagInput/TagInput.styled.js +2 -2
  136. package/dist/components/TextLink/TextLink.styled.js +3 -3
  137. package/dist/components/Textarea/Textarea.styled.js +1 -1
  138. package/dist/components/Toast/Toast.styled.js +1 -1
  139. package/dist/components/Tooltip/Tooltip.styled.js +1 -1
  140. package/dist/components/Typography/Typography.styled.js +1 -1
  141. package/dist/components/Uploader/Uploader.styled.js +6 -6
  142. package/dist/i18n/locales/english.json +1 -0
  143. package/dist/i18n/locales/turkish.json +1 -0
  144. package/dist/jsons/colors.json +123 -5
  145. package/dist/style/style.min.css +1 -1
  146. package/dist/style/style.min.css.map +1 -1
  147. package/package.json +1 -1
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var jsx_runtime_1 = require("react/jsx-runtime");
54
+ var react_1 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
56
+ var Button_1 = __importDefault(require("./Button"));
57
+ var props_1 = require("./props");
58
+ var renderButton = function (props) {
59
+ if (props === void 0) { props = {}; }
60
+ return (0, react_1.render)((0, jsx_runtime_1.jsx)(Button_1.default, __assign({}, props_1.ButtonDefault, props, { children: "Click" })));
61
+ };
62
+ var declaredColors = function (element) {
63
+ var colors = [];
64
+ Array.from(document.styleSheets).forEach(function (sheet) {
65
+ Array.from(sheet.cssRules).forEach(function (rule) {
66
+ if (!(rule instanceof CSSStyleRule) || !rule.style.color) {
67
+ return;
68
+ }
69
+ try {
70
+ if (element.matches(rule.selectorText)) {
71
+ colors.push(rule.style.color);
72
+ }
73
+ }
74
+ catch (_a) {
75
+ // ignore selectors jsdom cannot parse
76
+ }
77
+ });
78
+ });
79
+ return colors;
80
+ };
81
+ describe('Button', function () {
82
+ it('renders children', function () {
83
+ renderButton();
84
+ expect(react_1.screen.getByRole('button', { name: 'Click' })).toBeInTheDocument();
85
+ });
86
+ it('calls onClick when clicked', function () { return __awaiter(void 0, void 0, void 0, function () {
87
+ var onClick;
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0:
91
+ onClick = jest.fn();
92
+ renderButton({ onClick: onClick });
93
+ return [4 /*yield*/, user_event_1.default.click(react_1.screen.getByRole('button', { name: 'Click' }))];
94
+ case 1:
95
+ _a.sent();
96
+ expect(onClick).toHaveBeenCalledTimes(1);
97
+ return [2 /*return*/];
98
+ }
99
+ });
100
+ }); });
101
+ it('does not call onClick when disabled', function () { return __awaiter(void 0, void 0, void 0, function () {
102
+ var onClick;
103
+ return __generator(this, function (_a) {
104
+ switch (_a.label) {
105
+ case 0:
106
+ onClick = jest.fn();
107
+ renderButton({ onClick: onClick, disabled: true });
108
+ return [4 /*yield*/, user_event_1.default.click(react_1.screen.getByRole('button', { name: 'Click' }))];
109
+ case 1:
110
+ _a.sent();
111
+ expect(onClick).not.toHaveBeenCalled();
112
+ return [2 /*return*/];
113
+ }
114
+ });
115
+ }); });
116
+ it('paints primary label with --on-primary', function () {
117
+ renderButton({ variant: 'primary' });
118
+ expect(declaredColors(react_1.screen.getByRole('button', { name: 'Click' }))).toContain('var(--on-primary)');
119
+ });
120
+ it('keeps success label on hardcoded white', function () {
121
+ renderButton({ variant: 'success' });
122
+ expect(declaredColors(react_1.screen.getByRole('button', { name: 'Click' }))).toContain('white');
123
+ expect(declaredColors(react_1.screen.getByRole('button', { name: 'Click' }))).not.toContain('var(--on-primary)');
124
+ });
125
+ });
@@ -30,9 +30,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.SubMenu = exports.CategoryItemButtonTitle = exports.CategoryItemButtonBadgeSm = exports.CategoryItemButtonBadge = exports.CategoryItemButtonIcon = exports.CategoryItemButtonInner = exports.CategoryItem = exports.CategoryMenuWrapper = void 0;
31
31
  var styled_components_1 = __importStar(require("styled-components"));
32
32
  exports.CategoryMenuWrapper = styled_components_1.default.ul(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n gap: ", ";\n width: 100%;\n padding:0;\n margin: 12.5px auto;\n max-width: 1050px;\n a {\n text-decoration:none;\n &:not([href]){\n cursor: initial;\n *{\n cursor: initial;\n }\n }\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: ", ";\n gap: ", ";\n width: 100%;\n padding:0;\n margin: 12.5px auto;\n max-width: 1050px;\n a {\n text-decoration:none;\n &:not([href]){\n cursor: initial;\n *{\n cursor: initial;\n }\n }\n }\n"])), function (props) { return props.$hasFewCategories ? 'flex-start' : 'space-between'; }, function (props) { return props.$hasFewCategories ? '2rem' : '0'; });
33
- var hoverAndActive = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: var(--dark);\n &:before{\n border-color: var(--grey-10);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n color: var(--dark);\n }\n"], ["\n color: var(--dark);\n &:before{\n border-color: var(--grey-10);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n color: var(--dark);\n }\n"])));
34
- exports.CategoryItem = styled_components_1.default.li(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: block;\n position: relative;\n margin: 0;\n padding-bottom: 8px;\n padding-top: 8px;\n &:not(:last-child):not(:nth-last-child(2)){\n path, circle, rect {\n color : var(--dark-opacity-75);\n }\n }\n &:hover{\n &:not(:last-child):not(:nth-last-child(2)){\n path , circle, rect {\n color : var(--dark);\n }\n }\n > ul{\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n transition-delay: 0.3s;\n }\n .componentWrapper {\n > span{\n ", "\n }\n }\n }\n &:last-child , &:nth-last-child(2){\n ul{\n left: auto;\n right: 0;\n }\n }\n ", "\n ", "\n"], ["\n display: block;\n position: relative;\n margin: 0;\n padding-bottom: 8px;\n padding-top: 8px;\n &:not(:last-child):not(:nth-last-child(2)){\n path, circle, rect {\n color : var(--dark-opacity-75);\n }\n }\n &:hover{\n &:not(:last-child):not(:nth-last-child(2)){\n path , circle, rect {\n color : var(--dark);\n }\n }\n > ul{\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n transition-delay: 0.3s;\n }\n .componentWrapper {\n > span{\n ", "\n }\n }\n }\n &:last-child , &:nth-last-child(2){\n ul{\n left: auto;\n right: 0;\n }\n }\n ", "\n ", "\n"])), hoverAndActive, function (props) { return props.$isActiveCategory ? "\n .componentWrapper > span{\n ".concat(hoverAndActive, "\n }\n ") : ""; }, function (props) { return props.$hasCustomItem ? "\n display: flex;\n align-items: center;\n justify-content: center;\n &:before{\n content: '';\n background-color:var(--grey-10);\n height: 39px;\n width: 2px;\n display: block;\n vertical-align: middle;\n border-radius: 8px;\n margin-right: 6px;\n margin-left: 6px;\n }\n " : ""; });
35
- exports.CategoryItemButtonInner = styled_components_1.default.span(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n text-decoration: none;\n padding: 12px 16px;\n color: var(--dark-opacity-75);\n margin: 0;\n transition: all 0.2s ease-in-out;\n text-align: center;\n outline: none;\n display: block;\n position: relative;\n border: 0;\n background: transparent;\n outline: 0;\n width: 100%;\n font-family:inherit;\n cursor:pointer;\n box-sizing: border-box;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n border: 1px solid transparent;\n color: var(--dark-opacity-75);\n background-color: transparent;\n border-radius: 0.5rem;\n z-index: -1;\n transition: all 0.2s ease-in-out;\n }\n"], ["\n text-decoration: none;\n padding: 12px 16px;\n color: var(--dark-opacity-75);\n margin: 0;\n transition: all 0.2s ease-in-out;\n text-align: center;\n outline: none;\n display: block;\n position: relative;\n border: 0;\n background: transparent;\n outline: 0;\n width: 100%;\n font-family:inherit;\n cursor:pointer;\n box-sizing: border-box;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n border: 1px solid transparent;\n color: var(--dark-opacity-75);\n background-color: transparent;\n border-radius: 0.5rem;\n z-index: -1;\n transition: all 0.2s ease-in-out;\n }\n"])));
33
+ var hoverAndActive = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: var(--text);\n &:before{\n border-color: var(--border);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n color: var(--text);\n }\n"], ["\n color: var(--text);\n &:before{\n border-color: var(--border);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n color: var(--text);\n }\n"])));
34
+ exports.CategoryItem = styled_components_1.default.li(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: block;\n position: relative;\n margin: 0;\n padding-bottom: 8px;\n padding-top: 8px;\n &:not(:last-child):not(:nth-last-child(2)){\n path, circle, rect {\n color : var(--text-muted);\n }\n }\n &:hover{\n &:not(:last-child):not(:nth-last-child(2)){\n path , circle, rect {\n color : var(--text);\n }\n }\n > ul{\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n transition-delay: 0.3s;\n }\n .componentWrapper {\n > span{\n ", "\n }\n }\n }\n &:last-child , &:nth-last-child(2){\n ul{\n left: auto;\n right: 0;\n }\n }\n ", "\n ", "\n"], ["\n display: block;\n position: relative;\n margin: 0;\n padding-bottom: 8px;\n padding-top: 8px;\n &:not(:last-child):not(:nth-last-child(2)){\n path, circle, rect {\n color : var(--text-muted);\n }\n }\n &:hover{\n &:not(:last-child):not(:nth-last-child(2)){\n path , circle, rect {\n color : var(--text);\n }\n }\n > ul{\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n transition-delay: 0.3s;\n }\n .componentWrapper {\n > span{\n ", "\n }\n }\n }\n &:last-child , &:nth-last-child(2){\n ul{\n left: auto;\n right: 0;\n }\n }\n ", "\n ", "\n"])), hoverAndActive, function (props) { return props.$isActiveCategory ? "\n .componentWrapper > span{\n ".concat(hoverAndActive, "\n }\n ") : ""; }, function (props) { return props.$hasCustomItem ? "\n display: flex;\n align-items: center;\n justify-content: center;\n &:before{\n content: '';\n background-color:var(--border);\n height: 39px;\n width: 2px;\n display: block;\n vertical-align: middle;\n border-radius: 8px;\n margin-right: 6px;\n margin-left: 6px;\n }\n " : ""; });
35
+ exports.CategoryItemButtonInner = styled_components_1.default.span(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n text-decoration: none;\n padding: 12px 16px;\n color: var(--text-muted);\n margin: 0;\n transition: all 0.2s ease-in-out;\n text-align: center;\n outline: none;\n display: block;\n position: relative;\n border: 0;\n background: transparent;\n outline: 0;\n width: 100%;\n font-family:inherit;\n cursor:pointer;\n box-sizing: border-box;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n border: 1px solid transparent;\n color: var(--text-muted);\n background-color: transparent;\n border-radius: 0.5rem;\n z-index: -1;\n transition: all 0.2s ease-in-out;\n }\n"], ["\n text-decoration: none;\n padding: 12px 16px;\n color: var(--text-muted);\n margin: 0;\n transition: all 0.2s ease-in-out;\n text-align: center;\n outline: none;\n display: block;\n position: relative;\n border: 0;\n background: transparent;\n outline: 0;\n width: 100%;\n font-family:inherit;\n cursor:pointer;\n box-sizing: border-box;\n &:before{\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n border: 1px solid transparent;\n color: var(--text-muted);\n background-color: transparent;\n border-radius: 0.5rem;\n z-index: -1;\n transition: all 0.2s ease-in-out;\n }\n"])));
36
36
  exports.CategoryItemButtonIcon = styled_components_1.default.span(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n @keyframes tada_category {\n 0% {\n transform: scaleX(1)\n }\n\n 10%,20% {\n transform: rotate(-2deg)\n }\n\n 30%,50%,70%,90% {\n transform: rotate(2deg)\n }\n\n 40%,60%,80% {\n transform: rotate(-2deg)\n }\n\n to {\n transform: scaleX(1)\n }\n }\n\n ", "\n height: 24px;\n display:flex;\n position: relative;\n align-items: center;\n justify-content: center;\n"], ["\n @keyframes tada_category {\n 0% {\n transform: scaleX(1)\n }\n\n 10%,20% {\n transform: rotate(-2deg)\n }\n\n 30%,50%,70%,90% {\n transform: rotate(2deg)\n }\n\n 40%,60%,80% {\n transform: rotate(-2deg)\n }\n\n to {\n transform: scaleX(1)\n }\n }\n\n ", "\n height: 24px;\n display:flex;\n position: relative;\n align-items: center;\n justify-content: center;\n"])), function (props) { return props.$hasAnimation ? "\n animation: tada_category 1.5s infinite;\n animation-iteration-count: 10;\n " : ""; });
37
37
  exports.CategoryItemButtonBadge = styled_components_1.default.span(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n font: var(--caption-bold-10-12);\n line-height: 17px;\n border-radius: 3px;\n background-color: var(--primary);\n color: white;\n padding: 0 0.5rem;\n display: inline-block;\n margin-top: 2px;\n"], ["\n font: var(--caption-bold-10-12);\n line-height: 17px;\n border-radius: 3px;\n background-color: var(--primary);\n color: white;\n padding: 0 0.5rem;\n display: inline-block;\n margin-top: 2px;\n"])));
38
38
  exports.CategoryItemButtonBadgeSm = styled_components_1.default.span(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n position: absolute;\n right: 8px;\n top: 8px;\n"], ["\n position: absolute;\n right: 8px;\n top: 8px;\n"])));
@@ -49,8 +49,8 @@ exports.CheckboxIndicator = styled_components_1.default.span(templateObject_4 ||
49
49
  exports.CheckboxInput = styled_components_1.default.input(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: 0;\n width: 0;\n opacity: 0;\n z-index: -1;\n position: absolute;\n\n &:checked:not(:disabled) + ", " {\n ", " {\n display: block;\n }\n\n ", " {\n display: none;\n }\n }\n"], ["\n height: 0;\n width: 0;\n opacity: 0;\n z-index: -1;\n position: absolute;\n\n &:checked:not(:disabled) + ", " {\n ", " {\n display: block;\n }\n\n ", " {\n display: none;\n }\n }\n"])), exports.CheckboxIndicator, exports.CheckboxIndicatorChecked, exports.CheckboxIndicatorIdle);
50
50
  exports.LabelsWrapper = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n position: relative;\n display: grid;\n row-gap: 8px;\n cursor: ", ";\n margin: 0;\n color: ", ";\n\n * {\n ", ";\n }\n"], ["\n position: relative;\n display: grid;\n row-gap: 8px;\n cursor: ", ";\n margin: 0;\n color: ", ";\n\n * {\n ", ";\n }\n"])), function (props) { return getCheckboxCursor(props); }, function (props) {
51
51
  if (props.disabled)
52
- return 'var(--dark-opacity-25)';
53
- return props.$valid ? 'var(--dark)' : 'var(--red)';
52
+ return 'var(--text-disabled)';
53
+ return props.$valid ? 'var(--text)' : 'var(--red)';
54
54
  }, function (props) { return !props.disabled && !props.$valid && 'color: var(--red)'; });
55
- exports.CheckboxLabel = styled_components_1.default.label(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: block;\n margin: 0;\n cursor: inherit;\n font: ", ";\n\n b {\n font-weight: bold;\n color: var(--dark-opacity-50);\n }\n"], ["\n display: block;\n margin: 0;\n cursor: inherit;\n font: ", ";\n\n b {\n font-weight: bold;\n color: var(--dark-opacity-50);\n }\n"])), function (props) { return getLabelFont(props.$textSize); });
55
+ exports.CheckboxLabel = styled_components_1.default.label(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: block;\n margin: 0;\n cursor: inherit;\n font: ", ";\n\n b {\n font-weight: bold;\n color: var(--text-soft);\n }\n"], ["\n display: block;\n margin: 0;\n cursor: inherit;\n font: ", ";\n\n b {\n font-weight: bold;\n color: var(--text-soft);\n }\n"])), function (props) { return getLabelFont(props.$textSize); });
56
56
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -9,5 +9,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.CheckboxGroupStyled = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
- exports.CheckboxGroupStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n\n .top {\n display: flex;\n margin-bottom: 1rem;\n font: var(--caption-bold-12-15);\n\n label {\n margin: 0;\n color: var(--dark-opacity-50);\n display: block;\n }\n }\n\n .checkboxesWrapper {\n display: flex;\n flex-direction: ", ";\n gap: ", ";\n flex-wrap: ", ";\n }\n"], ["\n display: flex;\n flex-direction: column;\n\n .top {\n display: flex;\n margin-bottom: 1rem;\n font: var(--caption-bold-12-15);\n\n label {\n margin: 0;\n color: var(--dark-opacity-50);\n display: block;\n }\n }\n\n .checkboxesWrapper {\n display: flex;\n flex-direction: ", ";\n gap: ", ";\n flex-wrap: ", ";\n }\n"])), function (props) { return props.$layout === "horizontal" ? "row" : "column"; }, function (props) { return props.$gap || "1rem"; }, function (props) { return props.$layout === "horizontal" ? "wrap" : "nowrap"; });
12
+ exports.CheckboxGroupStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n\n .top {\n display: flex;\n margin-bottom: 1rem;\n font: var(--caption-bold-12-15);\n\n label {\n margin: 0;\n color: var(--text-soft);\n display: block;\n }\n }\n\n .checkboxesWrapper {\n display: flex;\n flex-direction: ", ";\n gap: ", ";\n flex-wrap: ", ";\n }\n"], ["\n display: flex;\n flex-direction: column;\n\n .top {\n display: flex;\n margin-bottom: 1rem;\n font: var(--caption-bold-12-15);\n\n label {\n margin: 0;\n color: var(--text-soft);\n display: block;\n }\n }\n\n .checkboxesWrapper {\n display: flex;\n flex-direction: ", ";\n gap: ", ";\n flex-wrap: ", ";\n }\n"])), function (props) { return props.$layout === "horizontal" ? "row" : "column"; }, function (props) { return props.$gap || "1rem"; }, function (props) { return props.$layout === "horizontal" ? "wrap" : "nowrap"; });
13
13
  var templateObject_1;
@@ -137,7 +137,7 @@ exports.AllSizes = {
137
137
  };
138
138
  var InteractiveStory = function (args) {
139
139
  var _a = react_1.default.useState(args.value || []), value = _a[0], setValue = _a[1];
140
- return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { maxWidth: 520 } }, { children: [(0, jsx_runtime_1.jsx)(CheckboxGroup_1.default, __assign({}, args, { value: value, onChange: setValue })), (0, jsx_runtime_1.jsxs)("p", __assign({ style: { marginTop: 16, font: "var(--caption-medium-11-13)", color: "var(--dark-opacity-50)" } }, { children: ["Se\u00E7ili: ", value.length ? value.join(", ") : "—"] }))] })));
140
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { maxWidth: 520 } }, { children: [(0, jsx_runtime_1.jsx)(CheckboxGroup_1.default, __assign({}, args, { value: value, onChange: setValue })), (0, jsx_runtime_1.jsxs)("p", __assign({ style: { marginTop: 16, font: "var(--caption-medium-11-13)", color: "var(--text-soft)" } }, { children: ["Se\u00E7ili: ", value.length ? value.join(", ") : "—"] }))] })));
141
141
  };
142
142
  exports.Interactive = {
143
143
  render: function (args) { return (0, jsx_runtime_1.jsx)(InteractiveStory, __assign({}, args)); },
@@ -20,7 +20,7 @@ var CircleProgress = function (_a) {
20
20
  var currentStep = steps.find(function (p) { return p.index === activeStep; });
21
21
  return ((0, jsx_runtime_1.jsxs)(CircleProgress_styled_1.CircleProgressStyled, { children: [(0, jsx_runtime_1.jsx)("div", __assign({ className: "icon" }, { children: (0, jsx_runtime_1.jsx)(react_circular_progressbar_1.CircularProgressbarWithChildren, __assign({ styles: (0, react_circular_progressbar_1.buildStyles)({
22
22
  pathColor: "var(--primary)",
23
- trailColor: "var(--dark-opacity-5)"
23
+ trailColor: "var(--surface)"
24
24
  }), strokeWidth: 12, value: activeStep / steps.length * 100 }, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ className: "text" }, { children: [(0, jsx_runtime_1.jsxs)("span", { children: [activeStep, "/"] }), steps.length] })) })) })), (0, jsx_runtime_1.jsxs)("div", __assign({ className: "info" }, { children: [(0, jsx_runtime_1.jsx)("h1", { children: currentStep === null || currentStep === void 0 ? void 0 : currentStep.text }), (0, jsx_runtime_1.jsx)("p", { children: currentStep === null || currentStep === void 0 ? void 0 : currentStep.textSm })] }))] }));
25
25
  };
26
26
  exports.default = CircleProgress;
@@ -9,5 +9,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.CircleProgressStyled = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
- exports.CircleProgressStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n min-width: 280px;\n display: flex;\n justify-content: space-between;\n font-family: var(--theme-font);\n div.icon {\n width: 56px;\n height: 56px;\n }\n\n div.info {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n \n h1 {\n color: var(--dark);\n margin: 0 0 4px;\n font:var(--title-bold-16-19);\n }\n p {\n color: var(--dark-opacity-50);\n margin: 0;\n font:var(--body-regular-13-16);\n }\n }\n \n div.text {\n color: var(--dark);\n font:var(--body-bold-14-17);\n span{\n font:var(--title-bold-16-19);\n }\n }\n\n\n .CircularProgressbar {\n width: 100%;\n vertical-align: middle;\n\n .CircularProgressbar-path {\n stroke-linecap: round;\n -webkit-transition: stroke-dashoffset 0.5s ease 0s;\n transition: stroke-dashoffset 0.5s ease 0s;\n }\n\n .CircularProgressbar-trail {\n stroke-linecap: round;\n }\n\n .CircularProgressbar-text {\n dominant-baseline: middle;\n text-anchor: middle;\n }\n\n \n }\n\n .CircularProgressbar.CircularProgressbar-inverted {\n\n .CircularProgressbar-trail {\n stroke: transparent;\n }\n }\n\n"], ["\n min-width: 280px;\n display: flex;\n justify-content: space-between;\n font-family: var(--theme-font);\n div.icon {\n width: 56px;\n height: 56px;\n }\n\n div.info {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n \n h1 {\n color: var(--dark);\n margin: 0 0 4px;\n font:var(--title-bold-16-19);\n }\n p {\n color: var(--dark-opacity-50);\n margin: 0;\n font:var(--body-regular-13-16);\n }\n }\n \n div.text {\n color: var(--dark);\n font:var(--body-bold-14-17);\n span{\n font:var(--title-bold-16-19);\n }\n }\n\n\n .CircularProgressbar {\n width: 100%;\n vertical-align: middle;\n\n .CircularProgressbar-path {\n stroke-linecap: round;\n -webkit-transition: stroke-dashoffset 0.5s ease 0s;\n transition: stroke-dashoffset 0.5s ease 0s;\n }\n\n .CircularProgressbar-trail {\n stroke-linecap: round;\n }\n\n .CircularProgressbar-text {\n dominant-baseline: middle;\n text-anchor: middle;\n }\n\n \n }\n\n .CircularProgressbar.CircularProgressbar-inverted {\n\n .CircularProgressbar-trail {\n stroke: transparent;\n }\n }\n\n"])));
12
+ exports.CircleProgressStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n min-width: 280px;\n display: flex;\n justify-content: space-between;\n font-family: var(--theme-font);\n div.icon {\n width: 56px;\n height: 56px;\n }\n\n div.info {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n \n h1 {\n color: var(--text);\n margin: 0 0 4px;\n font:var(--title-bold-16-19);\n }\n p {\n color: var(--text-soft);\n margin: 0;\n font:var(--body-regular-13-16);\n }\n }\n \n div.text {\n color: var(--text);\n font:var(--body-bold-14-17);\n span{\n font:var(--title-bold-16-19);\n }\n }\n\n\n .CircularProgressbar {\n width: 100%;\n vertical-align: middle;\n\n .CircularProgressbar-path {\n stroke-linecap: round;\n -webkit-transition: stroke-dashoffset 0.5s ease 0s;\n transition: stroke-dashoffset 0.5s ease 0s;\n }\n\n .CircularProgressbar-trail {\n stroke-linecap: round;\n }\n\n .CircularProgressbar-text {\n dominant-baseline: middle;\n text-anchor: middle;\n }\n\n \n }\n\n .CircularProgressbar.CircularProgressbar-inverted {\n\n .CircularProgressbar-trail {\n stroke: transparent;\n }\n }\n\n"], ["\n min-width: 280px;\n display: flex;\n justify-content: space-between;\n font-family: var(--theme-font);\n div.icon {\n width: 56px;\n height: 56px;\n }\n\n div.info {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n \n h1 {\n color: var(--text);\n margin: 0 0 4px;\n font:var(--title-bold-16-19);\n }\n p {\n color: var(--text-soft);\n margin: 0;\n font:var(--body-regular-13-16);\n }\n }\n \n div.text {\n color: var(--text);\n font:var(--body-bold-14-17);\n span{\n font:var(--title-bold-16-19);\n }\n }\n\n\n .CircularProgressbar {\n width: 100%;\n vertical-align: middle;\n\n .CircularProgressbar-path {\n stroke-linecap: round;\n -webkit-transition: stroke-dashoffset 0.5s ease 0s;\n transition: stroke-dashoffset 0.5s ease 0s;\n }\n\n .CircularProgressbar-trail {\n stroke-linecap: round;\n }\n\n .CircularProgressbar-text {\n dominant-baseline: middle;\n text-anchor: middle;\n }\n\n \n }\n\n .CircularProgressbar.CircularProgressbar-inverted {\n\n .CircularProgressbar-trail {\n stroke: transparent;\n }\n }\n\n"])));
13
13
  var templateObject_1;
@@ -9,7 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.ProgressWrapperStyled = exports.SummaryInfoTitleStyled = exports.SummaryInfoStyled = exports.SummaryBodyStyled = exports.DropdownToggleButton = exports.DropdownWrapperStyled = exports.BadgeWrapperStyled = exports.SummaryHeaderRightContentStyled = exports.TitleStyled = exports.SummaryHeaderStyled = exports.CircleProgressProStyled = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
- exports.CircleProgressProStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: 1px solid var(--dark-opacity-10);\n border-radius: 0.5rem;\n padding: 1.5rem;\n"], ["\n border: 1px solid var(--dark-opacity-10);\n border-radius: 0.5rem;\n padding: 1.5rem;\n"])));
12
+ exports.CircleProgressProStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: 1px solid var(--border);\n border-radius: 0.5rem;\n padding: 1.5rem;\n"], ["\n border: 1px solid var(--border);\n border-radius: 0.5rem;\n padding: 1.5rem;\n"])));
13
13
  exports.SummaryHeaderStyled = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n"])));
14
14
  exports.TitleStyled = styled_components_1.default.strong(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n font: var(--title-bold-16-19);\n"], ["\n font: var(--title-bold-16-19);\n"])));
15
15
  exports.SummaryHeaderRightContentStyled = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n"])));
@@ -56,6 +56,6 @@ exports.OnMutedBackground = {
56
56
  maxWidth: 400,
57
57
  padding: 24,
58
58
  borderRadius: 8,
59
- background: "var(--dark-opacity-3)",
59
+ background: "var(--surface-subtle)",
60
60
  } }, { children: (0, jsx_runtime_1.jsx)(CircleProgressPro_1.default, {}) }))); },
61
61
  };
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { ColorCardProps } from './props';
3
- declare const ColorCard: ({ title, hint, value, placeholder, hasError, errorMessage, disabled, name, id, onChange, }: ColorCardProps) => React.JSX.Element;
3
+ declare const ColorCard: ({ title, hint, value, placeholder, hasError, errorMessage, disabled, name, id, hasBadge, badgeText, hasResetLink, resetLinkText, onReset, onChange, }: ColorCardProps) => React.JSX.Element;
4
4
  export default ColorCard;
@@ -20,17 +20,22 @@ var react_i18next_1 = require("react-i18next");
20
20
  var props_1 = require("./props");
21
21
  var ColorCard_styled_1 = require("./ColorCard.styled");
22
22
  var Input_1 = __importDefault(require("../Input"));
23
+ var Badges_1 = __importDefault(require("../Badges"));
24
+ var TextLink_1 = __importDefault(require("../TextLink"));
23
25
  var ColorPicker_1 = __importDefault(require("./ColorPicker"));
24
26
  var useOnClickOutside_1 = __importDefault(require("../../hooks/useOnClickOutside"));
25
27
  var color_1 = require("./utils/color");
26
28
  var ColorCard = function (_a) {
27
- var _b = _a.title, title = _b === void 0 ? props_1.ColorCardDefault.title : _b, _c = _a.hint, hint = _c === void 0 ? props_1.ColorCardDefault.hint : _c, _d = _a.value, value = _d === void 0 ? props_1.ColorCardDefault.value : _d, _e = _a.placeholder, placeholder = _e === void 0 ? props_1.ColorCardDefault.placeholder : _e, _f = _a.hasError, hasError = _f === void 0 ? props_1.ColorCardDefault.hasError : _f, _g = _a.errorMessage, errorMessage = _g === void 0 ? props_1.ColorCardDefault.errorMessage : _g, _h = _a.disabled, disabled = _h === void 0 ? props_1.ColorCardDefault.disabled : _h, _j = _a.name, name = _j === void 0 ? props_1.ColorCardDefault.name : _j, _k = _a.id, id = _k === void 0 ? props_1.ColorCardDefault.id : _k, _l = _a.onChange, onChange = _l === void 0 ? props_1.ColorCardDefault.onChange : _l;
29
+ var _b = _a.title, title = _b === void 0 ? props_1.ColorCardDefault.title : _b, _c = _a.hint, hint = _c === void 0 ? props_1.ColorCardDefault.hint : _c, _d = _a.value, value = _d === void 0 ? props_1.ColorCardDefault.value : _d, _e = _a.placeholder, placeholder = _e === void 0 ? props_1.ColorCardDefault.placeholder : _e, _f = _a.hasError, hasError = _f === void 0 ? props_1.ColorCardDefault.hasError : _f, _g = _a.errorMessage, errorMessage = _g === void 0 ? props_1.ColorCardDefault.errorMessage : _g, _h = _a.disabled, disabled = _h === void 0 ? props_1.ColorCardDefault.disabled : _h, _j = _a.name, name = _j === void 0 ? props_1.ColorCardDefault.name : _j, _k = _a.id, id = _k === void 0 ? props_1.ColorCardDefault.id : _k, _l = _a.hasBadge, hasBadge = _l === void 0 ? props_1.ColorCardDefault.hasBadge : _l, _m = _a.badgeText, badgeText = _m === void 0 ? props_1.ColorCardDefault.badgeText : _m, _o = _a.hasResetLink, hasResetLink = _o === void 0 ? props_1.ColorCardDefault.hasResetLink : _o, _p = _a.resetLinkText, resetLinkText = _p === void 0 ? props_1.ColorCardDefault.resetLinkText : _p, _q = _a.onReset, onReset = _q === void 0 ? props_1.ColorCardDefault.onReset : _q, _r = _a.onChange, onChange = _r === void 0 ? props_1.ColorCardDefault.onChange : _r;
28
30
  var t = (0, react_i18next_1.useTranslation)().t;
29
31
  var pickerRef = (0, react_1.useRef)(null);
30
- var _m = (0, react_1.useState)(false), isOpen = _m[0], setIsOpen = _m[1];
31
- var _o = (0, react_1.useState)(function () { return (0, color_1.formatHexInput)(value); }), hex = _o[0], setHex = _o[1];
32
+ var _s = (0, react_1.useState)(false), isOpen = _s[0], setIsOpen = _s[1];
33
+ var _t = (0, react_1.useState)(function () { return (0, color_1.formatHexInput)(value); }), hex = _t[0], setHex = _t[1];
32
34
  var swatchColor = (0, color_1.toSwatchColor)(hex);
33
35
  var pickerValue = (0, color_1.normalizeHex)(hex) || '#000000';
36
+ var showResetLink = Boolean(hasResetLink);
37
+ var showBadge = !showResetLink && hasBadge && Boolean(badgeText);
38
+ var showHeader = Boolean(title || showBadge || showResetLink);
34
39
  (0, useOnClickOutside_1.default)(pickerRef, function () { return setIsOpen(false); }, true);
35
40
  (0, react_1.useEffect)(function () {
36
41
  setHex((0, color_1.formatHexInput)(value));
@@ -64,6 +69,11 @@ var ColorCard = function (_a) {
64
69
  if (disabled)
65
70
  return;
66
71
  setIsOpen(function (open) { return !open; });
67
- } }), isOpen && !disabled && ((0, jsx_runtime_1.jsx)(ColorCard_styled_1.ColorPickerPopover, __assign({ role: "dialog", "aria-label": t('pickColor') }, { children: (0, jsx_runtime_1.jsx)(ColorPicker_1.default, { value: pickerValue, onChange: emitHex }) })))] })), (0, jsx_runtime_1.jsx)(ColorCard_styled_1.ColorCardField, __assign({ onBlur: handleHexBlur }, { children: (0, jsx_runtime_1.jsx)(Input_1.default, { label: title, description: hint, value: hex, placeholder: placeholder, hasError: hasError, errorMessage: errorMessage, disabled: disabled, name: name, id: id, mask: null, format: null, maxLength: 7, onChange: function (event) { var _a; return emitHex((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.value); }, width: "100%" }) }))] }));
72
+ } }), isOpen && !disabled && ((0, jsx_runtime_1.jsx)(ColorCard_styled_1.ColorPickerPopover, __assign({ role: "dialog", "aria-label": t('pickColor') }, { children: (0, jsx_runtime_1.jsx)(ColorPicker_1.default, { value: pickerValue, onChange: emitHex }) })))] })), (0, jsx_runtime_1.jsxs)(ColorCard_styled_1.ColorCardField, __assign({ onBlur: handleHexBlur }, { children: [showHeader && ((0, jsx_runtime_1.jsxs)(ColorCard_styled_1.Header, { children: [title ? (0, jsx_runtime_1.jsx)(ColorCard_styled_1.Label, __assign({ htmlFor: id }, { children: title })) : (0, jsx_runtime_1.jsx)("span", {}), showResetLink && ((0, jsx_runtime_1.jsx)(ColorCard_styled_1.ResetLinkWrap, { children: (0, jsx_runtime_1.jsx)(TextLink_1.default, __assign({ variant: "primary", size: "small", icon: "RotateRightSm", iconDirection: "left", onClick: function (event) {
73
+ event.preventDefault();
74
+ if (disabled)
75
+ return;
76
+ onReset === null || onReset === void 0 ? void 0 : onReset(event);
77
+ } }, { children: resetLinkText || t('resetToAutomatic') })) })), showBadge && ((0, jsx_runtime_1.jsx)(ColorCard_styled_1.BadgeWrap, { children: (0, jsx_runtime_1.jsx)(Badges_1.default, { layout: "text", variant: "secondary", title: badgeText }) }))] })), (0, jsx_runtime_1.jsx)(Input_1.default, { label: "", description: hint, value: hex, placeholder: placeholder, hasError: hasError, errorMessage: errorMessage, disabled: disabled, name: name, id: id, mask: null, format: null, maxLength: 7, onChange: function (event) { var _a; return emitHex((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.value); }, width: "100%" })] }))] }));
68
78
  };
69
79
  exports.default = ColorCard;
@@ -4,6 +4,10 @@ export declare const ColorCardStyled: import("styled-components/dist/types").ISt
4
4
  export declare const SwatchWrap: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
5
5
  export declare const ColorSwatch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof ColorCardStyledProps> & ColorCardStyledProps, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof ColorCardStyledProps> & ColorCardStyledProps, never>>> & string;
6
6
  export declare const ColorCardField: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
7
+ export declare const Header: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
8
+ export declare const Label: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, never>>> & string;
9
+ export declare const BadgeWrap: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
10
+ export declare const ResetLinkWrap: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
7
11
  export declare const ColorPickerPopover: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
8
12
  export declare const PickerBody: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
9
13
  export declare const Saturation: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$hue"> & {
@@ -7,15 +7,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.Thumb = exports.HueSlider = exports.Saturation = exports.PickerBody = exports.ColorPickerPopover = exports.ColorCardField = exports.ColorSwatch = exports.SwatchWrap = exports.ColorCardStyled = void 0;
10
+ exports.Thumb = exports.HueSlider = exports.Saturation = exports.PickerBody = exports.ColorPickerPopover = exports.ResetLinkWrap = exports.BadgeWrap = exports.Label = exports.Header = exports.ColorCardField = exports.ColorSwatch = exports.SwatchWrap = exports.ColorCardStyled = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
- exports.ColorCardStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 1.5rem;\n padding: 1.5rem;\n border-radius: 0.5rem;\n border: 1px solid var(--dark-opacity-10);\n background: var(--theme-bg-color);\n box-sizing: border-box;\n background: var(--dark-opacity-3);\n"], ["\n display: flex;\n align-items: center;\n gap: 1.5rem;\n padding: 1.5rem;\n border-radius: 0.5rem;\n border: 1px solid var(--dark-opacity-10);\n background: var(--theme-bg-color);\n box-sizing: border-box;\n background: var(--dark-opacity-3);\n"])));
13
- exports.SwatchWrap = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n flex-shrink: 0;\n width: 56px;\n height: 56px;\n border: 1px solid var(--dark-opacity-10);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n"], ["\n position: relative;\n flex-shrink: 0;\n width: 56px;\n height: 56px;\n border: 1px solid var(--dark-opacity-10);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n"])));
12
+ exports.ColorCardStyled = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 1.5rem;\n padding: 1.5rem;\n border-radius: 0.5rem;\n border: 1px solid var(--border);\n background: var(--surface-subtle);\n box-sizing: border-box;\n"], ["\n display: flex;\n align-items: center;\n gap: 1.5rem;\n padding: 1.5rem;\n border-radius: 0.5rem;\n border: 1px solid var(--border);\n background: var(--surface-subtle);\n box-sizing: border-box;\n"])));
13
+ exports.SwatchWrap = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n flex-shrink: 0;\n width: 56px;\n height: 56px;\n border: 1px solid var(--border);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n"], ["\n position: relative;\n flex-shrink: 0;\n width: 56px;\n height: 56px;\n border: 1px solid var(--border);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n"])));
14
14
  exports.ColorSwatch = styled_components_1.default.button(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 40px;\n height: 40px;\n padding: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n border-radius: 0.25rem;\n border: none;\n background-color: ", ";\n opacity: ", ";\n cursor: ", ";\n appearance: none;\n\n &:focus-visible {\n outline: 2px solid var(--primary);\n outline-offset: 2px;\n }\n"], ["\n width: 40px;\n height: 40px;\n padding: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n border-radius: 0.25rem;\n border: none;\n background-color: ", ";\n opacity: ", ";\n cursor: ", ";\n appearance: none;\n\n &:focus-visible {\n outline: 2px solid var(--primary);\n outline-offset: 2px;\n }\n"])), function (props) { return props.$color || 'transparent'; }, function (props) { return props.$disabled ? 0.4 : 1; }, function (props) { return props.$disabled ? 'not-allowed' : 'pointer'; });
15
15
  exports.ColorCardField = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n flex: 1;\n min-width: 0;\n"], ["\n flex: 1;\n min-width: 0;\n"])));
16
- exports.ColorPickerPopover = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 9;\n padding: 1rem;\n border-radius: 0.5rem;\n border: 1px solid var(--dark-opacity-10);\n background: var(--theme-bg-color);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n box-sizing: border-box;\n user-select: none;\n"], ["\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 9;\n padding: 1rem;\n border-radius: 0.5rem;\n border: 1px solid var(--dark-opacity-10);\n background: var(--theme-bg-color);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n box-sizing: border-box;\n user-select: none;\n"])));
17
- exports.PickerBody = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 1rem;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 1rem;\n"])));
18
- exports.Saturation = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n position: relative;\n width: 192px;\n height: 140px;\n border-radius: 0.5rem;\n cursor: crosshair;\n touch-action: none;\n background:\n linear-gradient(to top, #000, transparent),\n linear-gradient(to right, #fff, hsl(", ", 100%, 50%));\n"], ["\n position: relative;\n width: 192px;\n height: 140px;\n border-radius: 0.5rem;\n cursor: crosshair;\n touch-action: none;\n background:\n linear-gradient(to top, #000, transparent),\n linear-gradient(to right, #fff, hsl(", ", 100%, 50%));\n"])), function (props) { return props.$hue; });
19
- exports.HueSlider = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n position: relative;\n width: 192px;\n height: 12px;\n border-radius: 0.5rem;\n cursor: pointer;\n touch-action: none;\n background: linear-gradient(to right, #F00, #FF0, #0F0, #0FF, #00F, #F0F, #F00);\n"], ["\n position: relative;\n width: 192px;\n height: 12px;\n border-radius: 0.5rem;\n cursor: pointer;\n touch-action: none;\n background: linear-gradient(to right, #F00, #FF0, #0F0, #0FF, #00F, #F0F, #F00);\n"])));
20
- exports.Thumb = styled_components_1.default.span(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n position: absolute;\n left: ", "%;\n top: ", "%;\n width: 16px;\n height: 16px;\n border: 2px solid white;\n border-radius: 50%;\n box-shadow: 0 0 0 1px var(--dark-opacity-25);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-sizing: border-box;\n"], ["\n position: absolute;\n left: ", "%;\n top: ", "%;\n width: 16px;\n height: 16px;\n border: 2px solid white;\n border-radius: 50%;\n box-shadow: 0 0 0 1px var(--dark-opacity-25);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-sizing: border-box;\n"])), function (props) { return props.$x * 100; }, function (props) { return props.$y * 100; });
21
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
16
+ exports.Header = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n margin-bottom: 16px;\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n margin-bottom: 16px;\n"])));
17
+ exports.Label = styled_components_1.default.label(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n margin: 0;\n min-width: 0;\n color: var(--text-soft);\n display: block;\n font: var(--caption-bold-12-15);\n"], ["\n margin: 0;\n min-width: 0;\n color: var(--text-soft);\n display: block;\n font: var(--caption-bold-12-15);\n"])));
18
+ exports.BadgeWrap = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n flex-shrink: 0;\n"], ["\n flex-shrink: 0;\n"])));
19
+ exports.ResetLinkWrap = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n flex-shrink: 0;\n font: var(--caption-bold-12-15);\n white-space: nowrap;\n"], ["\n flex-shrink: 0;\n font: var(--caption-bold-12-15);\n white-space: nowrap;\n"])));
20
+ exports.ColorPickerPopover = styled_components_1.default.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 9;\n padding: 1rem;\n border-radius: 0.5rem;\n border: 1px solid var(--border);\n background: var(--bg);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n box-sizing: border-box;\n user-select: none;\n"], ["\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 9;\n padding: 1rem;\n border-radius: 0.5rem;\n border: 1px solid var(--border);\n background: var(--bg);\n box-shadow: 0 6px 30px 0 var(--box-shadow-color);\n box-sizing: border-box;\n user-select: none;\n"])));
21
+ exports.PickerBody = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 1rem;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 1rem;\n"])));
22
+ exports.Saturation = styled_components_1.default.div(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n position: relative;\n width: 192px;\n height: 140px;\n border-radius: 0.5rem;\n cursor: crosshair;\n touch-action: none;\n background:\n linear-gradient(to top, #000, transparent),\n linear-gradient(to right, #fff, hsl(", ", 100%, 50%));\n"], ["\n position: relative;\n width: 192px;\n height: 140px;\n border-radius: 0.5rem;\n cursor: crosshair;\n touch-action: none;\n background:\n linear-gradient(to top, #000, transparent),\n linear-gradient(to right, #fff, hsl(", ", 100%, 50%));\n"])), function (props) { return props.$hue; });
23
+ exports.HueSlider = styled_components_1.default.div(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n position: relative;\n width: 192px;\n height: 12px;\n border-radius: 0.5rem;\n cursor: pointer;\n touch-action: none;\n background: linear-gradient(to right, #F00, #FF0, #0F0, #0FF, #00F, #F0F, #F00);\n"], ["\n position: relative;\n width: 192px;\n height: 12px;\n border-radius: 0.5rem;\n cursor: pointer;\n touch-action: none;\n background: linear-gradient(to right, #F00, #FF0, #0F0, #0FF, #00F, #F0F, #F00);\n"])));
24
+ exports.Thumb = styled_components_1.default.span(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n position: absolute;\n left: ", "%;\n top: ", "%;\n width: 16px;\n height: 16px;\n border: 2px solid white;\n border-radius: 50%;\n box-shadow: 0 0 0 1px var(--text-disabled);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-sizing: border-box;\n"], ["\n position: absolute;\n left: ", "%;\n top: ", "%;\n width: 16px;\n height: 16px;\n border: 2px solid white;\n border-radius: 50%;\n box-shadow: 0 0 0 1px var(--text-disabled);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-sizing: border-box;\n"])), function (props) { return props.$x * 100; }, function (props) { return props.$y * 100; });
25
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13;
@@ -242,16 +242,96 @@ describe('ColorCard', function () {
242
242
  renderColorCard({ hasError: true, errorMessage: 'Geçersiz renk' });
243
243
  expect(react_1.screen.getByText('Geçersiz renk')).toBeInTheDocument();
244
244
  });
245
- it('renders title, hint and value as text, not HTML', function () {
245
+ it('renders a secondary text badge aligned with the label', function () {
246
+ renderColorCard({ hasBadge: true, badgeText: 'Önerilen' });
247
+ var badge = react_1.screen.getByText('Önerilen');
248
+ var label = react_1.screen.getByText('Birincil renk');
249
+ expect(badge).toBeInTheDocument();
250
+ expect(badge.parentElement).toHaveStyle({
251
+ backgroundColor: 'var(--primary-opacity-10)',
252
+ });
253
+ expect(label.parentElement).toHaveStyle({
254
+ display: 'flex',
255
+ alignItems: 'center',
256
+ justifyContent: 'space-between',
257
+ });
258
+ });
259
+ it('does not render the badge when hasBadge is false', function () {
260
+ renderColorCard({ hasBadge: false, badgeText: 'Önerilen' });
261
+ expect(react_1.screen.queryByText('Önerilen')).not.toBeInTheDocument();
262
+ expect(react_1.screen.getByText('Birincil renk')).toBeInTheDocument();
263
+ });
264
+ it('replaces the badge with a reset text link when hasResetLink is true', function () {
265
+ renderColorCard({
266
+ hasBadge: true,
267
+ badgeText: 'Önerilen',
268
+ hasResetLink: true,
269
+ resetLinkText: 'Otomatiğe dön',
270
+ });
271
+ expect(react_1.screen.queryByText('Önerilen')).not.toBeInTheDocument();
272
+ expect(react_1.screen.getByText('Otomatiğe dön')).toBeInTheDocument();
273
+ });
274
+ it('calls onReset when the reset text link is clicked', function () { return __awaiter(void 0, void 0, void 0, function () {
275
+ var user, onReset;
276
+ return __generator(this, function (_a) {
277
+ switch (_a.label) {
278
+ case 0:
279
+ user = user_event_1.default.setup();
280
+ onReset = jest.fn();
281
+ renderColorCard({
282
+ hasResetLink: true,
283
+ resetLinkText: 'Otomatiğe dön',
284
+ onReset: onReset,
285
+ });
286
+ return [4 /*yield*/, user.click(react_1.screen.getByText('Otomatiğe dön'))];
287
+ case 1:
288
+ _a.sent();
289
+ expect(onReset).toHaveBeenCalledTimes(1);
290
+ return [2 /*return*/];
291
+ }
292
+ });
293
+ }); });
294
+ it('does not call onReset when disabled', function () { return __awaiter(void 0, void 0, void 0, function () {
295
+ var user, onReset;
296
+ return __generator(this, function (_a) {
297
+ switch (_a.label) {
298
+ case 0:
299
+ user = user_event_1.default.setup();
300
+ onReset = jest.fn();
301
+ renderColorCard({
302
+ disabled: true,
303
+ hasResetLink: true,
304
+ resetLinkText: 'Otomatiğe dön',
305
+ onReset: onReset,
306
+ });
307
+ return [4 /*yield*/, user.click(react_1.screen.getByText('Otomatiğe dön'))];
308
+ case 1:
309
+ _a.sent();
310
+ expect(onReset).not.toHaveBeenCalled();
311
+ return [2 /*return*/];
312
+ }
313
+ });
314
+ }); });
315
+ it('renders title, hint, value and badge text as text, not HTML', function () {
246
316
  renderColorCard({
247
317
  title: '<script>alert(1)</script>',
248
318
  hint: '<img src=x onerror=alert(1)>',
249
319
  value: '<script>alert(1)</script>',
320
+ hasBadge: true,
321
+ badgeText: '<img src=x onerror=alert(1)>',
250
322
  });
251
323
  expect(react_1.screen.getByText('<script>alert(1)</script>')).toBeInTheDocument();
252
- expect(react_1.screen.getByText('<img src=x onerror=alert(1)>')).toBeInTheDocument();
324
+ expect(react_1.screen.getAllByText('<img src=x onerror=alert(1)>')).toHaveLength(2);
253
325
  expect(react_1.screen.getByDisplayValue(/^#[0-9A-Fa-f]{0,6}$/)).toBeInTheDocument();
254
326
  expect(document.querySelector('script')).not.toBeInTheDocument();
255
327
  expect(document.querySelector('img')).not.toBeInTheDocument();
256
328
  });
329
+ it('renders reset link text as text, not HTML', function () {
330
+ renderColorCard({
331
+ hasResetLink: true,
332
+ resetLinkText: '<img src=x onerror=alert(1)>',
333
+ });
334
+ expect(react_1.screen.getByText('<img src=x onerror=alert(1)>')).toBeInTheDocument();
335
+ expect(document.querySelector('img')).not.toBeInTheDocument();
336
+ });
257
337
  });
@@ -8,6 +8,11 @@ export interface ColorCard {
8
8
  disabled?: boolean;
9
9
  name?: string;
10
10
  id?: string;
11
+ hasBadge?: boolean;
12
+ badgeText?: string;
13
+ hasResetLink?: boolean;
14
+ resetLinkText?: string;
15
+ onReset?(e: any): void;
11
16
  onChange?(e: any): void;
12
17
  }
13
18
  export interface ColorCardStyledProps {
@@ -11,5 +11,10 @@ exports.ColorCardDefault = {
11
11
  disabled: false,
12
12
  name: null,
13
13
  id: null,
14
+ hasBadge: false,
15
+ badgeText: '',
16
+ hasResetLink: false,
17
+ resetLinkText: '',
18
+ onReset: null,
14
19
  onChange: null,
15
20
  };