@candy.thieves/ui-kit-lumos 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +141 -0
- package/dist/.storybook/main.d.ts +3 -0
- package/dist/.storybook/preview.d.ts +6 -0
- package/dist/favicon.svg +1 -0
- package/dist/icons.svg +24 -0
- package/dist/index.css +2 -0
- package/dist/index.js +307 -0
- package/dist/index.js.map +1 -0
- package/dist/src/assets/icons/ArrowBackOutline.d.ts +3 -0
- package/dist/src/assets/icons/ArrowForwardOutline.d.ts +3 -0
- package/dist/src/assets/icons/ArrowIosBack.d.ts +3 -0
- package/dist/src/assets/icons/ArrowIosBackOutline.d.ts +3 -0
- package/dist/src/assets/icons/ArrowIosDownOutline.d.ts +3 -0
- package/dist/src/assets/icons/ArrowIosForward.d.ts +3 -0
- package/dist/src/assets/icons/ArrowIosForwardOutline.d.ts +3 -0
- package/dist/src/assets/icons/ArrowIosUp.d.ts +3 -0
- package/dist/src/assets/icons/Block.d.ts +3 -0
- package/dist/src/assets/icons/BlockOutline.d.ts +3 -0
- package/dist/src/assets/icons/Bookmark.d.ts +3 -0
- package/dist/src/assets/icons/BookmarkOutline.d.ts +3 -0
- package/dist/src/assets/icons/Brave.d.ts +3 -0
- package/dist/src/assets/icons/Calendar.d.ts +3 -0
- package/dist/src/assets/icons/CalendarOutline.d.ts +3 -0
- package/dist/src/assets/icons/CheckmarkOutline.d.ts +3 -0
- package/dist/src/assets/icons/Close.d.ts +3 -0
- package/dist/src/assets/icons/CloseOutline.d.ts +3 -0
- package/dist/src/assets/icons/ColorPaletteOutline.d.ts +3 -0
- package/dist/src/assets/icons/Copy.d.ts +3 -0
- package/dist/src/assets/icons/CopyOutline.d.ts +3 -0
- package/dist/src/assets/icons/CreditCard.d.ts +3 -0
- package/dist/src/assets/icons/CreditCardOutline.d.ts +3 -0
- package/dist/src/assets/icons/DoneAllOutline.d.ts +3 -0
- package/dist/src/assets/icons/Edit.d.ts +3 -0
- package/dist/src/assets/icons/EditOutline.d.ts +3 -0
- package/dist/src/assets/icons/Email.d.ts +3 -0
- package/dist/src/assets/icons/EmailOutline.d.ts +3 -0
- package/dist/src/assets/icons/Expand.d.ts +3 -0
- package/dist/src/assets/icons/ExpandOutline.d.ts +3 -0
- package/dist/src/assets/icons/Explorer.d.ts +3 -0
- package/dist/src/assets/icons/Eye.d.ts +3 -0
- package/dist/src/assets/icons/EyeOff.d.ts +3 -0
- package/dist/src/assets/icons/EyeOffOutline.d.ts +3 -0
- package/dist/src/assets/icons/EyeOutline.d.ts +3 -0
- package/dist/src/assets/icons/Facebook.d.ts +3 -0
- package/dist/src/assets/icons/FillBell.d.ts +3 -0
- package/dist/src/assets/icons/Firefox.d.ts +3 -0
- package/dist/src/assets/icons/FlagEng.d.ts +3 -0
- package/dist/src/assets/icons/FlagRus.d.ts +3 -0
- package/dist/src/assets/icons/GithubRepo.d.ts +3 -0
- package/dist/src/assets/icons/Google.d.ts +3 -0
- package/dist/src/assets/icons/Heart.d.ts +3 -0
- package/dist/src/assets/icons/HeartOutline.d.ts +3 -0
- package/dist/src/assets/icons/Home.d.ts +3 -0
- package/dist/src/assets/icons/HomeOutline.d.ts +3 -0
- package/dist/src/assets/icons/Image.d.ts +3 -0
- package/dist/src/assets/icons/ImageOutline.d.ts +3 -0
- package/dist/src/assets/icons/Layers.d.ts +3 -0
- package/dist/src/assets/icons/LayersOutline.d.ts +3 -0
- package/dist/src/assets/icons/LogOut.d.ts +3 -0
- package/dist/src/assets/icons/LogOutOutline.d.ts +3 -0
- package/dist/src/assets/icons/Maximize.d.ts +3 -0
- package/dist/src/assets/icons/MaximizeOutline.d.ts +3 -0
- package/dist/src/assets/icons/MenuOutline.d.ts +3 -0
- package/dist/src/assets/icons/MessageCircle.d.ts +3 -0
- package/dist/src/assets/icons/MessageCircleOutline.d.ts +3 -0
- package/dist/src/assets/icons/Mic.d.ts +3 -0
- package/dist/src/assets/icons/MicOutline.d.ts +3 -0
- package/dist/src/assets/icons/MicrosoftEdge.d.ts +3 -0
- package/dist/src/assets/icons/MoreHorizontal.d.ts +3 -0
- package/dist/src/assets/icons/MoreHorizontalOutline.d.ts +3 -0
- package/dist/src/assets/icons/Opera.d.ts +3 -0
- package/dist/src/assets/icons/OutlineBell.d.ts +8 -0
- package/dist/src/assets/icons/Paid.d.ts +3 -0
- package/dist/src/assets/icons/PaperPlane.d.ts +3 -0
- package/dist/src/assets/icons/PaperPlaneOutline.d.ts +3 -0
- package/dist/src/assets/icons/PauseCircle.d.ts +3 -0
- package/dist/src/assets/icons/PauseCircleOutline.d.ts +3 -0
- package/dist/src/assets/icons/Paypal.d.ts +3 -0
- package/dist/src/assets/icons/Person.d.ts +3 -0
- package/dist/src/assets/icons/PersonAdd.d.ts +3 -0
- package/dist/src/assets/icons/PersonAddOutline.d.ts +3 -0
- package/dist/src/assets/icons/PersonOutline.d.ts +3 -0
- package/dist/src/assets/icons/PersonRemove.d.ts +3 -0
- package/dist/src/assets/icons/PersonRemoveOutline.d.ts +3 -0
- package/dist/src/assets/icons/Pin.d.ts +3 -0
- package/dist/src/assets/icons/PinOutline.d.ts +3 -0
- package/dist/src/assets/icons/PlayCircle.d.ts +3 -0
- package/dist/src/assets/icons/PlayCircleOutline.d.ts +3 -0
- package/dist/src/assets/icons/PlusCircle.d.ts +3 -0
- package/dist/src/assets/icons/PlusCircleOutline.d.ts +3 -0
- package/dist/src/assets/icons/PlusSquare.d.ts +3 -0
- package/dist/src/assets/icons/PlusSquareOutline.d.ts +3 -0
- package/dist/src/assets/icons/RadioButtonChecked.d.ts +3 -0
- package/dist/src/assets/icons/RadioButtonUnchecked.d.ts +3 -0
- package/dist/src/assets/icons/RecaptchaLogo.d.ts +3 -0
- package/dist/src/assets/icons/Safari.d.ts +3 -0
- package/dist/src/assets/icons/Search.d.ts +3 -0
- package/dist/src/assets/icons/SearchOutline.d.ts +3 -0
- package/dist/src/assets/icons/Settings.d.ts +3 -0
- package/dist/src/assets/icons/SettingsOutline.d.ts +3 -0
- package/dist/src/assets/icons/Stripe.d.ts +3 -0
- package/dist/src/assets/icons/Trash.d.ts +3 -0
- package/dist/src/assets/icons/TrashOutline.d.ts +3 -0
- package/dist/src/assets/icons/TrendingUp.d.ts +3 -0
- package/dist/src/assets/icons/TrendingUpOutline.d.ts +3 -0
- package/dist/src/assets/icons/UcBrowser.d.ts +3 -0
- package/dist/src/assets/icons/Yandex.d.ts +3 -0
- package/dist/src/assets/icons/index.d.ts +99 -0
- package/dist/src/components/RadioGroup/RadioGroup.d.ts +15 -0
- package/dist/src/components/RadioGroup/index.d.ts +1 -0
- package/dist/src/components/TestMixins/TestMixins.d.ts +1 -0
- package/dist/src/components/TestMixins/index.d.ts +1 -0
- package/dist/src/components/Typography/Typography.d.ts +26 -0
- package/dist/src/components/Typography/index.d.ts +1 -0
- package/dist/src/components/index.d.ts +3 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/stories/assets/ArrowBackOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/ArrowForwardOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/ArrowIosBack.stories.d.ts +60 -0
- package/dist/src/stories/assets/ArrowIosBackOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/ArrowIosDownOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/ArrowIosForward.stories.d.ts +60 -0
- package/dist/src/stories/assets/ArrowIosForwardOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/ArrowIosUp.stories.d.ts +60 -0
- package/dist/src/stories/assets/Block.stories.d.ts +60 -0
- package/dist/src/stories/assets/BlockOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Bookmark.stories.d.ts +60 -0
- package/dist/src/stories/assets/BookmarkOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Brave.stories.d.ts +60 -0
- package/dist/src/stories/assets/Calendar.stories.d.ts +60 -0
- package/dist/src/stories/assets/CalendarOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/CheckmarkOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Close.stories.d.ts +60 -0
- package/dist/src/stories/assets/CloseOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/ColorPaletteOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Copy.stories.d.ts +60 -0
- package/dist/src/stories/assets/CopyOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/CreditCard.stories.d.ts +60 -0
- package/dist/src/stories/assets/CreditCardOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/DoneAllOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Edit.stories.d.ts +60 -0
- package/dist/src/stories/assets/EditOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Email.stories.d.ts +60 -0
- package/dist/src/stories/assets/EmailOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Expand.stories.d.ts +60 -0
- package/dist/src/stories/assets/ExpandOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Explorer.stories.d.ts +60 -0
- package/dist/src/stories/assets/Eye.stories.d.ts +60 -0
- package/dist/src/stories/assets/EyeOff.stories.d.ts +60 -0
- package/dist/src/stories/assets/EyeOffOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/EyeOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Facebook.stories.d.ts +47 -0
- package/dist/src/stories/assets/FillBell.stories.d.ts +60 -0
- package/dist/src/stories/assets/Firefox.stories.d.ts +60 -0
- package/dist/src/stories/assets/FlagEng.stories.d.ts +47 -0
- package/dist/src/stories/assets/FlagRus.stories.d.ts +47 -0
- package/dist/src/stories/assets/GithubRepo.stories.d.ts +60 -0
- package/dist/src/stories/assets/Google.stories.d.ts +47 -0
- package/dist/src/stories/assets/Heart.stories.d.ts +60 -0
- package/dist/src/stories/assets/HeartOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Home.stories.d.ts +60 -0
- package/dist/src/stories/assets/HomeOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/ImageIcon.stories.d.ts +60 -0
- package/dist/src/stories/assets/ImageOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Layers.stories.d.ts +60 -0
- package/dist/src/stories/assets/LayersOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/LogOut.stories.d.ts +60 -0
- package/dist/src/stories/assets/LogOutOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Maximize.stories.d.ts +60 -0
- package/dist/src/stories/assets/MaximizeOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/MenuOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/MessageCircle.stories.d.ts +60 -0
- package/dist/src/stories/assets/MessageCircleOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Mic.stories.d.ts +60 -0
- package/dist/src/stories/assets/MicOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/MicrosoftEdge.stories.d.ts +60 -0
- package/dist/src/stories/assets/MoreHorizontal.stories.d.ts +60 -0
- package/dist/src/stories/assets/MoreHorizontalOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Opera.stories.d.ts +60 -0
- package/dist/src/stories/assets/OutlineBell.stories.d.ts +69 -0
- package/dist/src/stories/assets/Paid.stories.d.ts +47 -0
- package/dist/src/stories/assets/PaperPlane.stories.d.ts +60 -0
- package/dist/src/stories/assets/PaperPlaneOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/PauseCircle.stories.d.ts +60 -0
- package/dist/src/stories/assets/PauseCircleOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Paypal.stories.d.ts +45 -0
- package/dist/src/stories/assets/Person.stories.d.ts +60 -0
- package/dist/src/stories/assets/PersonAdd.stories.d.ts +60 -0
- package/dist/src/stories/assets/PersonAddOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/PersonOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/PersonRemove.stories.d.ts +60 -0
- package/dist/src/stories/assets/PersonRemoveOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Pin.stories.d.ts +60 -0
- package/dist/src/stories/assets/PinOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/PlayCircle.stories.d.ts +60 -0
- package/dist/src/stories/assets/PlayCircleOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/PlusCircle.stories.d.ts +60 -0
- package/dist/src/stories/assets/PlusCircleOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/PlusSquare.stories.d.ts +60 -0
- package/dist/src/stories/assets/PlusSquareOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/RadioButtonChecked.stories.d.ts +60 -0
- package/dist/src/stories/assets/RadioButtonUnchecked.stories.d.ts +60 -0
- package/dist/src/stories/assets/RecaptchaLogo.stories.d.ts +47 -0
- package/dist/src/stories/assets/Safari.stories.d.ts +60 -0
- package/dist/src/stories/assets/Search.stories.d.ts +60 -0
- package/dist/src/stories/assets/SearchOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Settings.stories.d.ts +60 -0
- package/dist/src/stories/assets/SettingsOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/Stripe.stories.d.ts +47 -0
- package/dist/src/stories/assets/Trash.stories.d.ts +60 -0
- package/dist/src/stories/assets/TrashOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/TrendingUp.stories.d.ts +60 -0
- package/dist/src/stories/assets/TrendingUpOutline.stories.d.ts +60 -0
- package/dist/src/stories/assets/UcBrowser.stories.d.ts +60 -0
- package/dist/src/stories/assets/Yandex.stories.d.ts +60 -0
- package/dist/src/stories/components/RadioGroup.stories.d.ts +53 -0
- package/dist/src/stories/components/TestMixins/TestMixins.stories.d.ts +11 -0
- package/dist/src/stories/components/Typography/Typography.stories.d.ts +239 -0
- package/dist/src/stories/constants.d.ts +45 -0
- package/dist/src/stories/palette/ColorPalette.stories.d.ts +10 -0
- package/dist/src/storybook-utils/assets/coloredIconMeta.d.ts +38 -0
- package/dist/src/storybook-utils/assets/iconMeta.d.ts +51 -0
- package/dist/src/storybook-utils/assets/logoMeta.d.ts +32 -0
- package/dist/src/storybook-utils/index.d.ts +3 -0
- package/dist/src/utils/ColorIconBase.d.ts +7 -0
- package/dist/src/utils/ColorIconBaseSmall.d.ts +7 -0
- package/dist/src/utils/IconBase.d.ts +12 -0
- package/dist/src/utils/index.d.ts +3 -0
- package/package.json +91 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import e, { clsx as t } from "clsx";
|
|
2
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as i, useId as a, useState as o } from "react";
|
|
4
|
+
import * as s from "@radix-ui/react-radio-group";
|
|
5
|
+
var c = {
|
|
6
|
+
typography: "_typography_1hhu5_1",
|
|
7
|
+
"align-left": "_align-left_1hhu5_5",
|
|
8
|
+
"align-center": "_align-center_1hhu5_9",
|
|
9
|
+
"align-right": "_align-right_1hhu5_13",
|
|
10
|
+
"align-justify": "_align-justify_1hhu5_17",
|
|
11
|
+
noWrap: "_noWrap_1hhu5_21",
|
|
12
|
+
gutterBottom: "_gutterBottom_1hhu5_27"
|
|
13
|
+
}, l = {
|
|
14
|
+
large: "h1",
|
|
15
|
+
h1: "h1",
|
|
16
|
+
h2: "h2",
|
|
17
|
+
h3: "h3",
|
|
18
|
+
subtitle1: "h4",
|
|
19
|
+
subtitle2: "h5",
|
|
20
|
+
body1: "p",
|
|
21
|
+
body2: "p",
|
|
22
|
+
body3: "p",
|
|
23
|
+
caption1: "span",
|
|
24
|
+
caption2: "span",
|
|
25
|
+
link: "a",
|
|
26
|
+
"subtitle-link": "a",
|
|
27
|
+
caution: "div",
|
|
28
|
+
"caution-error": "div",
|
|
29
|
+
signature: "span",
|
|
30
|
+
"signature-legal": "span"
|
|
31
|
+
}, u = (t) => {
|
|
32
|
+
let { ref: r, children: i, variant: a = "body1", color: o, className: s, style: u, noWrap: d, mb: f, ml: p, mr: m, mt: h, mx: g, my: _, gutterBottom: v, align: y, href: b, target: x, rel: S, ...C } = t, w = l[a] || "div", T = e(c.typography, `typography-${a}`, y && c[`align-${y}`], d && c.noWrap, v && c.gutterBottom, s), E = a === "link" || a === "subtitle-link" || w === "a" ? {
|
|
33
|
+
href: b,
|
|
34
|
+
target: x,
|
|
35
|
+
rel: S
|
|
36
|
+
} : {};
|
|
37
|
+
return /* @__PURE__ */ n(w, {
|
|
38
|
+
ref: r,
|
|
39
|
+
className: T,
|
|
40
|
+
style: {
|
|
41
|
+
marginLeft: g ?? p ?? 0,
|
|
42
|
+
marginRight: g ?? m ?? 0,
|
|
43
|
+
marginTop: _ ?? h ?? 0,
|
|
44
|
+
marginBottom: _ ?? f ?? 0,
|
|
45
|
+
color: o ?? "inherit",
|
|
46
|
+
...u
|
|
47
|
+
},
|
|
48
|
+
...E,
|
|
49
|
+
...C,
|
|
50
|
+
children: i
|
|
51
|
+
});
|
|
52
|
+
}, d = {
|
|
53
|
+
"typography-large": "_typography-large_q4wf2_82",
|
|
54
|
+
"typography-h1": "_typography-h1_q4wf2_90",
|
|
55
|
+
"typography-h2": "_typography-h2_q4wf2_98",
|
|
56
|
+
"typography-h3": "_typography-h3_q4wf2_106",
|
|
57
|
+
"typography-subtitle1": "_typography-subtitle1_q4wf2_114",
|
|
58
|
+
"typography-subtitle2": "_typography-subtitle2_q4wf2_122",
|
|
59
|
+
"typography-body1": "_typography-body1_q4wf2_130",
|
|
60
|
+
"typography-body2": "_typography-body2_q4wf2_146",
|
|
61
|
+
"typography-body3": "_typography-body3_q4wf2_154",
|
|
62
|
+
"typography-caption1": "_typography-caption1_q4wf2_162",
|
|
63
|
+
"typography-caption2": "_typography-caption2_q4wf2_170",
|
|
64
|
+
"typography-link": "_typography-link_q4wf2_178",
|
|
65
|
+
"typography-subtitle-link": "_typography-subtitle-link_q4wf2_188",
|
|
66
|
+
"typography-caution": "_typography-caution_q4wf2_198",
|
|
67
|
+
"typography-caution-error": "_typography-caution-error_q4wf2_206",
|
|
68
|
+
"typography-signature": "_typography-signature_q4wf2_215",
|
|
69
|
+
"typography-signature-legal": "_typography-signature-legal_q4wf2_223",
|
|
70
|
+
testContainer: "_testContainer_q4wf2_231",
|
|
71
|
+
header: "_header_q4wf2_236",
|
|
72
|
+
container: "_container_q4wf2_23",
|
|
73
|
+
main: "_main_q4wf2_270",
|
|
74
|
+
content: "_content_q4wf2_274",
|
|
75
|
+
testSection: "_testSection_q4wf2_279",
|
|
76
|
+
breakpointIndicators: "_breakpointIndicators_q4wf2_293",
|
|
77
|
+
desktopIndicator: "_desktopIndicator_q4wf2_307",
|
|
78
|
+
tabletIndicator: "_tabletIndicator_q4wf2_321",
|
|
79
|
+
mobileIndicator: "_mobileIndicator_q4wf2_335",
|
|
80
|
+
modalSizes: "_modalSizes_q4wf2_349",
|
|
81
|
+
modalXs: "_modalXs_q4wf2_363",
|
|
82
|
+
modalS: "_modalS_q4wf2_349",
|
|
83
|
+
modalM: "_modalM_q4wf2_375",
|
|
84
|
+
modalL: "_modalL_q4wf2_381",
|
|
85
|
+
modalXl: "_modalXl_q4wf2_387",
|
|
86
|
+
openModalBtn: "_openModalBtn_q4wf2_393",
|
|
87
|
+
hoverTest: "_hoverTest_q4wf2_406",
|
|
88
|
+
hoverButton: "_hoverButton_q4wf2_413",
|
|
89
|
+
hoverCard: "_hoverCard_q4wf2_439",
|
|
90
|
+
modalOverlay: "_modalOverlay_q4wf2_462",
|
|
91
|
+
modal: "_modal_q4wf2_349",
|
|
92
|
+
closeBtn: "_closeBtn_q4wf2_508",
|
|
93
|
+
utilityGrid: "_utilityGrid_q4wf2_551",
|
|
94
|
+
flexBox: "_flexBox_q4wf2_556",
|
|
95
|
+
square: "_square_q4wf2_570",
|
|
96
|
+
positionWrapper: "_positionWrapper_q4wf2_580",
|
|
97
|
+
topLeft: "_topLeft_q4wf2_586",
|
|
98
|
+
topRight: "_topRight_q4wf2_595",
|
|
99
|
+
typographyExample: "_typographyExample_q4wf2_604",
|
|
100
|
+
transitionBox: "_transitionBox_q4wf2_612",
|
|
101
|
+
prefixBox: "_prefixBox_q4wf2_622"
|
|
102
|
+
}, f = () => {
|
|
103
|
+
let [e, t] = o(!1);
|
|
104
|
+
return /* @__PURE__ */ r("div", {
|
|
105
|
+
className: d.testContainer,
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ n("header", {
|
|
108
|
+
className: d.header,
|
|
109
|
+
children: /* @__PURE__ */ r("div", {
|
|
110
|
+
className: d.container,
|
|
111
|
+
children: [/* @__PURE__ */ n("h1", { children: "Testing All Mixins" }), /* @__PURE__ */ n("p", { children: "Resize your browser to see responsive behavior" })]
|
|
112
|
+
})
|
|
113
|
+
}),
|
|
114
|
+
/* @__PURE__ */ n("main", {
|
|
115
|
+
className: d.main,
|
|
116
|
+
children: /* @__PURE__ */ r("div", {
|
|
117
|
+
className: d.content,
|
|
118
|
+
children: [
|
|
119
|
+
/* @__PURE__ */ r("section", {
|
|
120
|
+
className: d.testSection,
|
|
121
|
+
children: [/* @__PURE__ */ n("h2", { children: "Responsive Breakpoints" }), /* @__PURE__ */ r("div", {
|
|
122
|
+
className: d.breakpointIndicators,
|
|
123
|
+
children: [
|
|
124
|
+
/* @__PURE__ */ n("div", {
|
|
125
|
+
className: d.desktopIndicator,
|
|
126
|
+
children: "Desktop (≥1280px)"
|
|
127
|
+
}),
|
|
128
|
+
/* @__PURE__ */ n("div", {
|
|
129
|
+
className: d.tabletIndicator,
|
|
130
|
+
children: "Tablet (768-1279px)"
|
|
131
|
+
}),
|
|
132
|
+
/* @__PURE__ */ n("div", {
|
|
133
|
+
className: d.mobileIndicator,
|
|
134
|
+
children: "Mobile (≤360px)"
|
|
135
|
+
})
|
|
136
|
+
]
|
|
137
|
+
})]
|
|
138
|
+
}),
|
|
139
|
+
/* @__PURE__ */ r("section", {
|
|
140
|
+
className: d.testSection,
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ n("h2", { children: "Modal Widths" }),
|
|
143
|
+
/* @__PURE__ */ r("div", {
|
|
144
|
+
className: d.modalSizes,
|
|
145
|
+
children: [
|
|
146
|
+
/* @__PURE__ */ n("div", {
|
|
147
|
+
className: d.modalXs,
|
|
148
|
+
children: "XS (366px)"
|
|
149
|
+
}),
|
|
150
|
+
/* @__PURE__ */ n("div", {
|
|
151
|
+
className: d.modalS,
|
|
152
|
+
children: "S (378px)"
|
|
153
|
+
}),
|
|
154
|
+
/* @__PURE__ */ n("div", {
|
|
155
|
+
className: d.modalM,
|
|
156
|
+
children: "M (492px)"
|
|
157
|
+
}),
|
|
158
|
+
/* @__PURE__ */ n("div", {
|
|
159
|
+
className: d.modalL,
|
|
160
|
+
children: "L (644px)"
|
|
161
|
+
}),
|
|
162
|
+
/* @__PURE__ */ n("div", {
|
|
163
|
+
className: d.modalXl,
|
|
164
|
+
children: "XL (972px)"
|
|
165
|
+
})
|
|
166
|
+
]
|
|
167
|
+
}),
|
|
168
|
+
/* @__PURE__ */ n("button", {
|
|
169
|
+
type: "button",
|
|
170
|
+
className: d.openModalBtn,
|
|
171
|
+
onClick: () => t(!0),
|
|
172
|
+
children: "Open Modal"
|
|
173
|
+
})
|
|
174
|
+
]
|
|
175
|
+
}),
|
|
176
|
+
/* @__PURE__ */ r("section", {
|
|
177
|
+
className: d.testSection,
|
|
178
|
+
children: [/* @__PURE__ */ n("h2", { children: "Hover & Touch Testing" }), /* @__PURE__ */ r("div", {
|
|
179
|
+
className: d.hoverTest,
|
|
180
|
+
children: [/* @__PURE__ */ n("button", {
|
|
181
|
+
type: "button",
|
|
182
|
+
className: d.hoverButton,
|
|
183
|
+
children: "Hover me (desktop) / Tap me (mobile)"
|
|
184
|
+
}), /* @__PURE__ */ n("div", {
|
|
185
|
+
className: d.hoverCard,
|
|
186
|
+
children: /* @__PURE__ */ n("p", { children: "Hover effects change on touch devices" })
|
|
187
|
+
})]
|
|
188
|
+
})]
|
|
189
|
+
}),
|
|
190
|
+
/* @__PURE__ */ r("section", {
|
|
191
|
+
className: d.testSection,
|
|
192
|
+
children: [/* @__PURE__ */ n("h2", { children: "Utility Mixins" }), /* @__PURE__ */ r("div", {
|
|
193
|
+
className: d.utilityGrid,
|
|
194
|
+
children: [
|
|
195
|
+
/* @__PURE__ */ r("div", {
|
|
196
|
+
className: d.flexBox,
|
|
197
|
+
children: [
|
|
198
|
+
/* @__PURE__ */ n("div", { children: "Flexbox" }),
|
|
199
|
+
/* @__PURE__ */ n("div", { children: "1" }),
|
|
200
|
+
/* @__PURE__ */ n("div", { children: "2" }),
|
|
201
|
+
/* @__PURE__ */ n("div", { children: "3" })
|
|
202
|
+
]
|
|
203
|
+
}),
|
|
204
|
+
/* @__PURE__ */ n("div", {
|
|
205
|
+
className: d.square,
|
|
206
|
+
children: "width-height"
|
|
207
|
+
}),
|
|
208
|
+
/* @__PURE__ */ r("div", {
|
|
209
|
+
className: d.positionWrapper,
|
|
210
|
+
children: [/* @__PURE__ */ n("div", {
|
|
211
|
+
className: d.topLeft,
|
|
212
|
+
children: "Top Left"
|
|
213
|
+
}), /* @__PURE__ */ n("div", {
|
|
214
|
+
className: d.topRight,
|
|
215
|
+
children: "Top Right"
|
|
216
|
+
})]
|
|
217
|
+
}),
|
|
218
|
+
/* @__PURE__ */ n("p", {
|
|
219
|
+
className: d.typographyExample,
|
|
220
|
+
children: "Typography mixin example"
|
|
221
|
+
}),
|
|
222
|
+
/* @__PURE__ */ n("div", {
|
|
223
|
+
className: d.transitionBox,
|
|
224
|
+
children: "Hover me (transition-basic mixin)"
|
|
225
|
+
}),
|
|
226
|
+
/* @__PURE__ */ n("div", {
|
|
227
|
+
className: d.prefixBox,
|
|
228
|
+
children: "Prefix mixin"
|
|
229
|
+
})
|
|
230
|
+
]
|
|
231
|
+
})]
|
|
232
|
+
})
|
|
233
|
+
]
|
|
234
|
+
})
|
|
235
|
+
}),
|
|
236
|
+
e && /* @__PURE__ */ n("div", {
|
|
237
|
+
className: d.modalOverlay,
|
|
238
|
+
onClick: () => t(!1),
|
|
239
|
+
children: /* @__PURE__ */ r("div", {
|
|
240
|
+
className: d.modal,
|
|
241
|
+
onClick: (e) => e.stopPropagation(),
|
|
242
|
+
children: [
|
|
243
|
+
/* @__PURE__ */ n("button", {
|
|
244
|
+
type: "button",
|
|
245
|
+
className: d.closeBtn,
|
|
246
|
+
onClick: () => t(!1),
|
|
247
|
+
children: "×"
|
|
248
|
+
}),
|
|
249
|
+
/* @__PURE__ */ n("h2", { children: "Responsive Modal" }),
|
|
250
|
+
/* @__PURE__ */ n("p", { children: "Modal width changes based on screen size" }),
|
|
251
|
+
/* @__PURE__ */ r("div", {
|
|
252
|
+
className: d.modalSizes,
|
|
253
|
+
children: [
|
|
254
|
+
/* @__PURE__ */ n("span", { children: "XS: 366px" }),
|
|
255
|
+
/* @__PURE__ */ n("span", { children: "S: 378px" }),
|
|
256
|
+
/* @__PURE__ */ n("span", { children: "M: 492px" }),
|
|
257
|
+
/* @__PURE__ */ n("span", { children: "L: 644px" }),
|
|
258
|
+
/* @__PURE__ */ n("span", { children: "XL: 972px" })
|
|
259
|
+
]
|
|
260
|
+
})
|
|
261
|
+
]
|
|
262
|
+
})
|
|
263
|
+
})
|
|
264
|
+
]
|
|
265
|
+
});
|
|
266
|
+
}, p = {
|
|
267
|
+
root: "_root_1rwph_55",
|
|
268
|
+
option: "_option_1rwph_61",
|
|
269
|
+
item: "_item_1rwph_67",
|
|
270
|
+
radio: "_radio_1rwph_94",
|
|
271
|
+
indicator: "_indicator_1rwph_112",
|
|
272
|
+
label: "_label_1rwph_130",
|
|
273
|
+
disabled: "_disabled_1rwph_135"
|
|
274
|
+
}, m = i(({ className: t, options: i, disabled: o, ...c }, l) => {
|
|
275
|
+
let u = a();
|
|
276
|
+
return /* @__PURE__ */ n(s.Root, {
|
|
277
|
+
ref: l,
|
|
278
|
+
disabled: o,
|
|
279
|
+
className: e(p.root, t, o && p.groupDisabled),
|
|
280
|
+
...c,
|
|
281
|
+
children: i.map((t) => {
|
|
282
|
+
let i = `${u}-${t.value}`, a = o || t.disabled;
|
|
283
|
+
return /* @__PURE__ */ r("div", {
|
|
284
|
+
className: e(p.option, a && p.disabled),
|
|
285
|
+
children: [/* @__PURE__ */ n(s.Item, {
|
|
286
|
+
id: i,
|
|
287
|
+
className: p.item,
|
|
288
|
+
value: t.value,
|
|
289
|
+
disabled: a,
|
|
290
|
+
children: /* @__PURE__ */ n("span", {
|
|
291
|
+
className: p.radio,
|
|
292
|
+
children: /* @__PURE__ */ n(s.Indicator, { className: p.indicator })
|
|
293
|
+
})
|
|
294
|
+
}), t.label && /* @__PURE__ */ n("label", {
|
|
295
|
+
htmlFor: i,
|
|
296
|
+
className: p.label,
|
|
297
|
+
children: t.label
|
|
298
|
+
})]
|
|
299
|
+
}, t.value);
|
|
300
|
+
})
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
m.displayName = "RadioGroup";
|
|
304
|
+
//#endregion
|
|
305
|
+
export { m as RadioGroup, f as TestMixins, u as Typography, t as clsx };
|
|
306
|
+
|
|
307
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/components/Typography/Typography.module.scss","../src/components/Typography/Typography.tsx","../src/components/TestMixins/TestMixins.module.scss","../src/components/TestMixins/TestMixins.tsx","../src/components/RadioGroup/RadioGroup.module.scss","../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":[".typography {\n font-style: normal;\n}\n\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n.align-justify {\n text-align: justify;\n}\n\n.noWrap {\n overflow: hidden;\n text-overflow: ellipsis; // if we need\n white-space: nowrap;\n}\n\n.gutterBottom {\n margin-bottom: 0.35em;\n}\n","import type { ComponentPropsWithRef, CSSProperties, ElementType, ReactNode } from 'react'\nimport clsx from 'clsx'\nimport s from './Typography.module.scss'\n\ntype TypographyVariant =\n | 'body1'\n | 'body2'\n | 'body3'\n | 'caption1'\n | 'caption2'\n | 'caution'\n | 'caution-error'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'large'\n | 'link'\n | 'signature'\n | 'signature-legal'\n | 'subtitle1'\n | 'subtitle2'\n | 'subtitle-link'\n\ntype TypographyAlign = 'center' | 'justify' | 'left' | 'right'\n\ntype MarginProps = {\n mt?: CSSProperties['marginTop']\n mb?: CSSProperties['marginBottom']\n ml?: CSSProperties['marginLeft']\n mr?: CSSProperties['marginRight']\n mx?: CSSProperties['marginLeft']\n my?: CSSProperties['marginTop']\n}\n\nconst tagMapping: Record<TypographyVariant, ElementType> = {\n large: 'h1',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n subtitle1: 'h4',\n subtitle2: 'h5',\n body1: 'p',\n body2: 'p',\n body3: 'p',\n caption1: 'span',\n caption2: 'span',\n link: 'a',\n 'subtitle-link': 'a',\n // The following is used in reCAPTCHA\n caution: 'div',\n 'caution-error': 'div',\n signature: 'span',\n 'signature-legal': 'span',\n}\n\ntype TypographyProps<T extends ElementType = 'div'> = {\n variant?: TypographyVariant\n children: ReactNode\n color?: CSSProperties['color']\n className?: string\n style?: CSSProperties\n noWrap?: boolean\n gutterBottom?: boolean\n align?: TypographyAlign\n href?: string\n target?: '_blank' | '_parent' | '_self' | '_top'\n rel?: string\n} & MarginProps &\n Omit<\n ComponentPropsWithRef<T>,\n | 'align'\n | 'color'\n | 'gutterBottom'\n | 'href'\n | 'noWrap'\n | 'rel'\n | 'style'\n | 'target'\n | keyof MarginProps\n >\n\nexport const Typography = <C extends ElementType = 'div'>(props: TypographyProps<C>) => {\n const {\n ref,\n children,\n variant = 'body1',\n color,\n className,\n style,\n noWrap,\n mb,\n ml,\n mr,\n mt,\n mx,\n my,\n gutterBottom,\n align,\n href,\n target,\n rel,\n ...rest\n } = props\n\n const Component = tagMapping[variant] || 'div'\n\n const classes = clsx(\n s.typography,\n `typography-${variant}`,\n align && s[`align-${align}`],\n noWrap && s.noWrap,\n gutterBottom && s.gutterBottom,\n className\n )\n\n const isLink = variant === 'link' || variant === 'subtitle-link' || Component === 'a'\n const linkProps = isLink ? { href, target, rel } : {}\n\n const styles = {\n marginLeft: mx ?? ml ?? 0,\n marginRight: mx ?? mr ?? 0,\n marginTop: my ?? mt ?? 0,\n marginBottom: my ?? mb ?? 0,\n color: color ?? 'inherit',\n ...style,\n }\n\n return (\n <Component ref={ref} className={classes} style={styles} {...linkProps} {...rest}>\n {children}\n </Component>\n )\n}\n","@use '../../styles/mixins' as *;\n@use '../../styles/typography' as *;\n\n// Component styles\n.testContainer {\n min-height: 100vh;\n background: #f5f5f5;\n}\n\n// Test container mixin\n.header {\n padding: 2rem 0;\n color: white;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n}\n\n.container {\n @include container;\n\n padding: 2rem;\n border-radius: 8px;\n background: rgb(255 255 255 / 10%);\n\n h1 {\n margin: 0;\n font-size: 2.5rem;\n }\n\n p {\n margin: 0.5rem 0 0;\n opacity: 0.9;\n }\n}\n\n// Test content mixin\n.main {\n padding: 2rem 0;\n}\n\n.content {\n @include content;\n}\n\n.testSection {\n margin-bottom: 2rem;\n padding: 2rem;\n border-radius: 8px;\n\n background: white;\n box-shadow: 0 2px 4px rgb(0 0 0 / 10%);\n\n h2 {\n margin-top: 0;\n padding-bottom: 0.5rem;\n border-bottom: 2px solid #667eea;\n color: #333;\n }\n}\n\n// Breakpoint indicators\n.breakpointIndicators {\n display: flex;\n flex-wrap: wrap;\n gap: 1rem;\n\n > div {\n flex: 1;\n\n min-width: 150px;\n padding: 1rem;\n border-radius: 4px;\n\n font-weight: bold;\n text-align: center;\n }\n}\n\n.desktopIndicator {\n color: white;\n background: #4caf50;\n\n @include media-desktop {\n color: white;\n background: #ff9800;\n\n &::after {\n content: ' (Active)';\n }\n }\n}\n\n.tabletIndicator {\n color: white;\n background: #ff9800;\n\n @include media-tablet {\n color: white;\n background: #2196f3;\n\n &::after {\n content: ' (Active)';\n }\n }\n}\n\n.mobileIndicator {\n color: white;\n background: #2196f3;\n\n @include media-mobile {\n color: white;\n background: #f44336;\n\n &::after {\n content: ' (Active)';\n }\n }\n}\n\n// Modal sizes preview\n.modalSizes {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n margin: 1rem 0;\n\n > div {\n padding: 0.5rem 1rem;\n border: 2px solid transparent;\n border-radius: 4px;\n\n font-size: 0.9rem;\n\n background: #e0e0e0;\n }\n}\n\n.modalXs {\n width: $modal-width-xs;\n border-color: #2196f3;\n background: #e3f2fd;\n}\n\n.modalS {\n width: $modal-width-s;\n border-color: #4caf50;\n background: #e8f5e9;\n}\n\n.modalM {\n width: $modal-width-m;\n border-color: #ff9800;\n background: #fff3e0;\n}\n\n.modalL {\n width: $modal-width-l;\n border-color: #f44336;\n background: #fce4ec;\n}\n\n.modalXl {\n width: $modal-width-xl;\n border-color: #9c27b0;\n background: #f3e5f5;\n}\n\n.openModalBtn {\n cursor: pointer;\n\n padding: 0.75rem 1.5rem;\n border: none;\n border-radius: 4px;\n\n font-size: 1rem;\n color: white;\n\n background: #667eea;\n\n &:hover {\n background: #764ba2;\n }\n}\n\n// No-hover mixin test\n.hoverTest {\n display: flex;\n flex-wrap: wrap;\n gap: 2rem;\n margin-top: 1rem;\n}\n\n.hoverButton {\n cursor: pointer;\n\n padding: 1rem 2rem;\n border: none;\n border-radius: 4px;\n\n font-size: 1rem;\n color: white;\n\n background: #764ba2;\n\n transition: all 0.3s;\n\n &:hover {\n transform: scale(1.05);\n background: #667eea;\n box-shadow: 0 4px 8px rgb(0 0 0 / 20%);\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n // No hover on touch devices\n @include no-hover-mobile {\n &:hover {\n transform: none;\n background: #764ba2;\n box-shadow: none;\n }\n }\n}\n\n.hoverCard {\n min-width: 200px;\n padding: 2rem;\n border-radius: 8px;\n\n text-align: center;\n\n background: #e0e0e0;\n\n transition: all 0.3s;\n\n &:hover {\n transform: translateY(-5px);\n color: white;\n background: #667eea;\n box-shadow: 0 8px 16px rgb(0 0 0 / 20%);\n }\n\n // No hover on touch devices\n @include no-hover-mobile {\n &:hover {\n transform: none;\n color: inherit;\n background: #e0e0e0;\n box-shadow: none;\n }\n }\n}\n\n// Modal styles\n.modalOverlay {\n position: fixed;\n z-index: 1000;\n inset: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n background: rgb(0 0 0 / 70%);\n}\n\n.modal {\n position: relative;\n\n overflow-y: auto;\n\n // Responsive modal widths\n width: $modal-width-m; // Default medium\n max-height: 80vh;\n padding: 2rem;\n border-radius: 8px;\n\n background: white;\n\n @include media-desktop {\n width: $modal-width-xl;\n }\n\n @include media-tablet {\n width: $modal-width-l;\n }\n\n @include media-mobile {\n width: $modal-width-s;\n }\n\n // Individual width tests\n .modalSizes {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n\n span {\n padding: 0.25rem 0.5rem;\n border-radius: 3px;\n font-size: 0.8rem;\n background: #f0f0f0;\n }\n }\n}\n\n.closeBtn {\n cursor: pointer;\n\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n\n padding: 0.5rem;\n border: none;\n\n font-size: 2rem;\n line-height: 1;\n color: #999;\n\n background: none;\n\n &:hover {\n color: #333;\n }\n}\n\n// Responsive adjustments for the component itself\n@include media-tablet {\n .container {\n padding: 1rem;\n }\n\n .testSection {\n padding: 1.5rem;\n }\n\n .breakpointIndicators {\n > div {\n min-width: 120px;\n font-size: 0.9rem;\n }\n }\n}\n\n@include media-mobile {\n .header h1 {\n font-size: 1.8rem;\n }\n\n .testSection {\n padding: 1rem;\n }\n\n .modalSizes {\n > div {\n padding: 0.25rem 0.5rem;\n font-size: 0.8rem;\n }\n }\n\n .hoverTest {\n flex-direction: column;\n }\n}\n\n// Flex\n.utilityGrid {\n display: grid;\n gap: 2rem;\n}\n\n.flexBox {\n @include flex(flex, center, center);\n\n gap: 1rem;\n padding: 1rem;\n background: #eee;\n\n div {\n padding: 1rem;\n color: white;\n background: #667eea;\n }\n}\n\n// width-height\n.square {\n @include width-height(120px);\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n color: white;\n\n background: #4caf50;\n}\n\n// top-left / top-right\n.positionWrapper {\n position: relative;\n height: 120px;\n background: #f3f3f3;\n}\n\n.topLeft {\n @include top-left(10px);\n\n position: absolute;\n padding: 0.5rem;\n color: white;\n background: #2196f3;\n}\n\n.topRight {\n @include top-right(10px);\n\n position: absolute;\n padding: 0.5rem;\n color: white;\n background: #f44336;\n}\n\n// Typography\n.typographyExample {\n @include typography(24px, 32px, 700);\n}\n\n// Transition-basic\n.transitionBox {\n padding: 1rem;\n background: #ff9800;\n\n @include transition-basic(background, transform);\n\n &:hover {\n transform: scale(1.05);\n background: #4caf50;\n }\n}\n\n// Prefix\n.prefixBox {\n padding: 1rem;\n background: #ddd;\n\n @include prefix(user-select, none, (webkit, moz, ms));\n}\n\n// see in DevTools:\n// -webkit-user-select: none;\n// -moz-user-select: none;\n// -ms-user-select: none;\n// user-select: none;\n","import { useState } from 'react'\nimport s from './TestMixins.module.scss'\n\nexport const TestMixins = () => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n return (\n <div className={s.testContainer}>\n {/* Test container mixin */}\n <header className={s.header}>\n <div className={s.container}>\n <h1>Testing All Mixins</h1>\n <p>Resize your browser to see responsive behavior</p>\n </div>\n </header>\n\n {/* Test content mixin */}\n <main className={s.main}>\n <div className={s.content}>\n <section className={s.testSection}>\n <h2>Responsive Breakpoints</h2>\n <div className={s.breakpointIndicators}>\n <div className={s.desktopIndicator}>Desktop (≥1280px)</div>\n <div className={s.tabletIndicator}>Tablet (768-1279px)</div>\n <div className={s.mobileIndicator}>Mobile (≤360px)</div>\n </div>\n </section>\n\n {/* Test modal widths */}\n <section className={s.testSection}>\n <h2>Modal Widths</h2>\n <div className={s.modalSizes}>\n <div className={s.modalXs}>XS (366px)</div>\n <div className={s.modalS}>S (378px)</div>\n <div className={s.modalM}>M (492px)</div>\n <div className={s.modalL}>L (644px)</div>\n <div className={s.modalXl}>XL (972px)</div>\n </div>\n <button type={'button'} className={s.openModalBtn} onClick={() => setIsModalOpen(true)}>\n Open Modal\n </button>\n </section>\n\n {/* Test no-hover mixin */}\n <section className={s.testSection}>\n <h2>Hover & Touch Testing</h2>\n <div className={s.hoverTest}>\n <button type={'button'} className={s.hoverButton}>\n Hover me (desktop) / Tap me (mobile)\n </button>\n <div className={s.hoverCard}>\n <p>Hover effects change on touch devices</p>\n </div>\n </div>\n </section>\n\n {/* Test flex, width-height, top-left, top-right, Typography, prefix, transition-basic */}\n <section className={s.testSection}>\n <h2>Utility Mixins</h2>\n\n <div className={s.utilityGrid}>\n <div className={s.flexBox}>\n <div>Flexbox</div>\n <div>1</div>\n <div>2</div>\n <div>3</div>\n </div>\n\n <div className={s.square}>width-height</div>\n\n <div className={s.positionWrapper}>\n <div className={s.topLeft}>Top Left</div>\n <div className={s.topRight}>Top Right</div>\n </div>\n\n <p className={s.typographyExample}>Typography mixin example</p>\n\n <div className={s.transitionBox}>Hover me (transition-basic mixin)</div>\n\n <div className={s.prefixBox}>Prefix mixin</div>\n </div>\n </section>\n </div>\n </main>\n\n {/* Modal with responsive widths */}\n {isModalOpen && (\n <div className={s.modalOverlay} onClick={() => setIsModalOpen(false)}>\n <div className={s.modal} onClick={e => e.stopPropagation()}>\n <button type={'button'} className={s.closeBtn} onClick={() => setIsModalOpen(false)}>\n ×\n </button>\n <h2>Responsive Modal</h2>\n <p>Modal width changes based on screen size</p>\n <div className={s.modalSizes}>\n <span>XS: 366px</span>\n <span>S: 378px</span>\n <span>M: 492px</span>\n <span>L: 644px</span>\n <span>XL: 972px</span>\n </div>\n </div>\n </div>\n )}\n </div>\n )\n}\n","@use '../../styles/mixins' as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.option {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n\n.item {\n @include flex(flex, center, center);\n\n @include width-height(2.25rem);\n\n cursor: pointer;\n\n padding: 0;\n border: none;\n border-radius: 50%;\n\n background-color: transparent;\n\n @include transition-basic(background-color);\n\n &:hover:not([data-disabled]) {\n background-color: var(--color-dark-300);\n }\n\n &:active:not([data-disabled]) {\n background-color: var(--color-dark-100);\n }\n\n &:focus-visible {\n background-color: var(--color-dark-500);\n outline: none;\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n }\n}\n\n.radio {\n @include flex(flex, center, center);\n\n @include width-height(20px);\n\n border: 2px solid var(--color-light-100);\n border-radius: 50%;\n background-color: transparent;\n\n @include transition-basic(background-color);\n\n .item[data-state='checked'] & {\n border-color: var(--color-light-100);\n }\n\n .item[data-disabled] & {\n border-color: var(--color-dark-100);\n }\n}\n\n.indicator {\n @include flex(flex, center, center);\n\n @include width-height(100%);\n\n &::after {\n content: '';\n border-radius: 50%;\n background-color: var(--color-light-100);\n\n @include width-height(10px);\n }\n\n .item[data-disabled] &::after {\n background-color: var(--color-dark-100);\n }\n}\n\n.label {\n cursor: pointer;\n user-select: none;\n color: var(--color-light-100);\n\n .disabled & {\n cursor: not-allowed;\n color: var(--color-dark-100);\n }\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport clsx from 'clsx'\nimport { forwardRef, useId } from 'react'\nimport s from './RadioGroup.module.scss'\n\nexport type RadioOption = {\n disabled?: boolean\n label?: ReactNode\n value: string\n}\n\nexport type RadioGroupProps = Omit<\n ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>,\n 'children'\n> & {\n className?: string\n options: RadioOption[]\n}\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n ({ className, options, disabled, ...props }, ref) => {\n const id = useId()\n\n return (\n <RadioGroupPrimitive.Root\n ref={ref}\n disabled={disabled}\n className={clsx(s.root, className, disabled && s.groupDisabled)}\n {...props}\n >\n {options.map(option => {\n const itemId = `${id}-${option.value}`\n const isDisabled = disabled || option.disabled\n\n return (\n <div key={option.value} className={clsx(s.option, isDisabled && s.disabled)}>\n <RadioGroupPrimitive.Item\n id={itemId}\n className={s.item}\n value={option.value}\n disabled={isDisabled}\n >\n <span className={s.radio}>\n <RadioGroupPrimitive.Indicator className={s.indicator} />\n </span>\n </RadioGroupPrimitive.Item>\n\n {option.label && (\n <label htmlFor={itemId} className={s.label}>\n {option.label}\n </label>\n )}\n </div>\n )\n })}\n </RadioGroupPrimitive.Root>\n )\n }\n)\n\nRadioGroup.displayName = 'RadioGroup'\n"],"mappings":"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"}
|