@inzumer/ui-library 1.4.0 → 2.0.0
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/dist/Select.styles-CeZROqOk.d.ts +8 -0
- package/dist/{chunk-BKPP4D3Q.js → chunk-27HTTVFO.js} +2 -2
- package/dist/{chunk-BKPP4D3Q.js.map → chunk-27HTTVFO.js.map} +1 -1
- package/dist/chunk-4H6VER5P.js +36 -0
- package/dist/chunk-4H6VER5P.js.map +1 -0
- package/dist/chunk-4TPQTZSR.js +76 -0
- package/dist/chunk-4TPQTZSR.js.map +1 -0
- package/dist/{chunk-D4I5OF3C.js → chunk-5LKLTY55.js} +2 -2
- package/dist/{chunk-D4I5OF3C.js.map → chunk-5LKLTY55.js.map} +1 -1
- package/dist/{chunk-WUEVXL76.js → chunk-DIA7L6IA.js} +4 -33
- package/dist/chunk-DIA7L6IA.js.map +1 -0
- package/dist/{chunk-DP274HDM.js → chunk-IY452YEX.js} +14 -4
- package/dist/chunk-IY452YEX.js.map +1 -0
- package/dist/{chunk-W3H7DYWX.js → chunk-J7X6NLSR.js} +30 -12
- package/dist/chunk-J7X6NLSR.js.map +1 -0
- package/dist/{chunk-5IHM2545.js → chunk-KAU7S3D4.js} +2 -2
- package/dist/{chunk-5IHM2545.js.map → chunk-KAU7S3D4.js.map} +1 -1
- package/dist/{chunk-ZABQF65Z.js → chunk-KSNAVEJP.js} +3 -3
- package/dist/{chunk-ZABQF65Z.js.map → chunk-KSNAVEJP.js.map} +1 -1
- package/dist/chunk-LLJXVAR6.js +184 -0
- package/dist/chunk-LLJXVAR6.js.map +1 -0
- package/dist/{chunk-7HQFLM4A.js → chunk-NA7YKEO4.js} +2 -2
- package/dist/{chunk-7HQFLM4A.js.map → chunk-NA7YKEO4.js.map} +1 -1
- package/dist/{chunk-ULLCBART.js → chunk-NTXFFBL6.js} +4 -4
- package/dist/{chunk-ULLCBART.js.map → chunk-NTXFFBL6.js.map} +1 -1
- package/dist/{chunk-P4CV2EPR.js → chunk-SPDOYFCU.js} +2 -2
- package/dist/{chunk-P4CV2EPR.js.map → chunk-SPDOYFCU.js.map} +1 -1
- package/dist/{chunk-VGLFR5SB.js → chunk-TO3FF6FR.js} +4 -4
- package/dist/{chunk-VGLFR5SB.js.map → chunk-TO3FF6FR.js.map} +1 -1
- package/dist/{chunk-UL33H4AD.js → chunk-TRLFK626.js} +24 -4
- package/dist/chunk-TRLFK626.js.map +1 -0
- package/dist/{chunk-3YRDRHO3.js → chunk-UUW7L2AV.js} +3 -3
- package/dist/{chunk-3YRDRHO3.js.map → chunk-UUW7L2AV.js.map} +1 -1
- package/dist/{chunk-PE6XEC7Y.js → chunk-VCJN4FS2.js} +4 -4
- package/dist/{chunk-PE6XEC7Y.js.map → chunk-VCJN4FS2.js.map} +1 -1
- package/dist/chunk-VK24YOIC.js +184 -0
- package/dist/chunk-VK24YOIC.js.map +1 -0
- package/dist/chunk-XUGSIK2P.js +238 -0
- package/dist/chunk-XUGSIK2P.js.map +1 -0
- package/dist/{chunk-N5CLCKR3.js → chunk-ZH2EDGW6.js} +3 -3
- package/dist/{chunk-N5CLCKR3.js.map → chunk-ZH2EDGW6.js.map} +1 -1
- package/dist/components/atoms/Icon/index.js +1 -1
- package/dist/components/atoms/Image/index.js +1 -1
- package/dist/components/atoms/Input/index.js +2 -2
- package/dist/components/atoms/Link/index.js +1 -1
- package/dist/components/atoms/RichText/index.js +1 -1
- package/dist/components/atoms/Select/index.d.ts +1 -5
- package/dist/components/atoms/Select/index.js +3 -2
- package/dist/components/atoms/Switch/index.js +2 -2
- package/dist/components/atoms/Textarea/index.js +2 -2
- package/dist/components/molecules/BottomSheet/index.js +3 -3
- package/dist/components/molecules/Breadcrumbs/index.js +3 -3
- package/dist/components/molecules/Card/index.js +2 -2
- package/dist/components/molecules/Carousel/index.d.ts +61 -0
- package/dist/components/molecules/{CookieBanner → Carousel}/index.js +2 -2
- package/dist/components/molecules/Drawer/index.js +3 -3
- package/dist/components/molecules/Dropdown/index.d.ts +44 -0
- package/dist/components/molecules/Dropdown/index.js +8 -0
- package/dist/components/molecules/MediaCard/index.d.ts +56 -0
- package/dist/components/molecules/MediaCard/index.js +6 -0
- package/dist/components/molecules/MediaCard/index.js.map +1 -0
- package/dist/components/molecules/Modal/index.d.ts +4 -0
- package/dist/components/molecules/Modal/index.js +3 -3
- package/dist/components/molecules/Snackbar/index.js +1 -1
- package/dist/components/molecules/Timeline/index.d.ts +7 -0
- package/dist/components/molecules/Timeline/index.js +3 -2
- package/dist/components/organisms/CookieConsent/index.d.ts +59 -0
- package/dist/components/{molecules/CookiePreferences → organisms/CookieConsent}/index.js +5 -5
- package/dist/components/organisms/CookieConsent/index.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +22 -19
- package/package.json +15 -7
- package/dist/chunk-36CVKI5R.js +0 -79
- package/dist/chunk-36CVKI5R.js.map +0 -1
- package/dist/chunk-DP274HDM.js.map +0 -1
- package/dist/chunk-TR7XKJCO.js +0 -85
- package/dist/chunk-TR7XKJCO.js.map +0 -1
- package/dist/chunk-UL33H4AD.js.map +0 -1
- package/dist/chunk-W3H7DYWX.js.map +0 -1
- package/dist/chunk-WUEVXL76.js.map +0 -1
- package/dist/components/molecules/CookieBanner/index.d.ts +0 -46
- package/dist/components/molecules/CookiePreferences/index.d.ts +0 -34
- /package/dist/components/molecules/{CookieBanner → Carousel}/index.js.map +0 -0
- /package/dist/components/molecules/{CookiePreferences → Dropdown}/index.js.map +0 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { useMediaQuery } from './chunk-2HCMNEIQ.js';
|
|
2
|
+
import { Button } from './chunk-KL6I2JFC.js';
|
|
3
|
+
import { cn } from './chunk-6LLGTBM6.js';
|
|
4
|
+
import { forwardRef, useRef, useState, Children, useCallback, useEffect } from 'react';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var carouselStyles = "relative flex flex-col gap-3";
|
|
9
|
+
var carouselTrackStyles = [
|
|
10
|
+
"flex snap-x snap-mandatory gap-4 overflow-x-auto scroll-px-1 px-1 pb-2",
|
|
11
|
+
"[scrollbar-width:none] [&::-webkit-scrollbar]:hidden"
|
|
12
|
+
].join(" ");
|
|
13
|
+
var carouselSlideStyles = "shrink-0 snap-start";
|
|
14
|
+
var carouselSlideWidthStyles = "w-[80%] sm:w-[45%] lg:w-[31%]";
|
|
15
|
+
var carouselControlsStyles = "flex items-center justify-center gap-3";
|
|
16
|
+
var carouselIndicatorsStyles = "flex flex-wrap items-center justify-center gap-1";
|
|
17
|
+
var carouselIndicatorStyles = [
|
|
18
|
+
"flex h-6 min-w-6 items-center justify-center rounded-full",
|
|
19
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-focus)]"
|
|
20
|
+
].join(" ");
|
|
21
|
+
var carouselDotStyles = cva(
|
|
22
|
+
"block h-2 rounded-full transition-all duration-200 motion-reduce:transition-none",
|
|
23
|
+
{
|
|
24
|
+
variants: {
|
|
25
|
+
active: {
|
|
26
|
+
true: "w-6 bg-[var(--btn-primary-bg)]",
|
|
27
|
+
false: "w-2 bg-[var(--border-strong)] hover:bg-[var(--text-secondary)]"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: {
|
|
31
|
+
active: false
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
var EDGE_TOLERANCE_PX = 4;
|
|
36
|
+
var Carousel = forwardRef(
|
|
37
|
+
({
|
|
38
|
+
label,
|
|
39
|
+
children,
|
|
40
|
+
previousLabel,
|
|
41
|
+
nextLabel,
|
|
42
|
+
slideLabel = (index, total) => `${index + 1} / ${total}`,
|
|
43
|
+
goToLabel = (index) => `Go to slide ${index + 1}`,
|
|
44
|
+
indicatorsLabel,
|
|
45
|
+
indicators = true,
|
|
46
|
+
header,
|
|
47
|
+
slideClassName,
|
|
48
|
+
buttonIds = {},
|
|
49
|
+
className,
|
|
50
|
+
...props
|
|
51
|
+
}, ref) => {
|
|
52
|
+
const trackRef = useRef(null);
|
|
53
|
+
const slideRefs = useRef([]);
|
|
54
|
+
const reducedMotion = useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
55
|
+
const [edges, setEdges] = useState({ start: true, end: false });
|
|
56
|
+
const [active, setActive] = useState(0);
|
|
57
|
+
const slides = Children.toArray(children);
|
|
58
|
+
const behavior = reducedMotion ? "auto" : "smooth";
|
|
59
|
+
const offsetOf = (index) => (slideRefs.current[index]?.offsetLeft ?? 0) - (slideRefs.current[0]?.offsetLeft ?? 0);
|
|
60
|
+
const update = useCallback(() => {
|
|
61
|
+
const track = trackRef.current;
|
|
62
|
+
if (!track) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const max = track.scrollWidth - track.clientWidth;
|
|
66
|
+
const atEnd = track.scrollLeft >= max - EDGE_TOLERANCE_PX;
|
|
67
|
+
setEdges({ start: track.scrollLeft <= EDGE_TOLERANCE_PX, end: atEnd });
|
|
68
|
+
const offsets = slideRefs.current.map(
|
|
69
|
+
(slide) => slide ? slide.offsetLeft - (slideRefs.current[0]?.offsetLeft ?? 0) : 0
|
|
70
|
+
);
|
|
71
|
+
const nearest = offsets.reduce(
|
|
72
|
+
(best, offset, index) => Math.abs(offset - track.scrollLeft) < Math.abs((offsets[best] ?? 0) - track.scrollLeft) ? index : best,
|
|
73
|
+
0
|
|
74
|
+
);
|
|
75
|
+
setActive(atEnd && max > 0 ? offsets.length - 1 : nearest);
|
|
76
|
+
}, []);
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
update();
|
|
79
|
+
const track = trackRef.current;
|
|
80
|
+
if (!track || typeof ResizeObserver === "undefined") {
|
|
81
|
+
return void 0;
|
|
82
|
+
}
|
|
83
|
+
const observer = new ResizeObserver(update);
|
|
84
|
+
observer.observe(track);
|
|
85
|
+
return () => observer.disconnect();
|
|
86
|
+
}, [update, slides.length]);
|
|
87
|
+
const scrollByPage = (direction) => {
|
|
88
|
+
trackRef.current?.scrollBy({
|
|
89
|
+
left: direction * trackRef.current.clientWidth * 0.9,
|
|
90
|
+
behavior
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
const goTo = (index) => {
|
|
94
|
+
trackRef.current?.scrollTo({ left: offsetOf(index), behavior });
|
|
95
|
+
};
|
|
96
|
+
return /* @__PURE__ */ jsxs(
|
|
97
|
+
"section",
|
|
98
|
+
{
|
|
99
|
+
ref,
|
|
100
|
+
"aria-roledescription": "carousel",
|
|
101
|
+
"aria-label": label,
|
|
102
|
+
className: cn(carouselStyles, className),
|
|
103
|
+
...props,
|
|
104
|
+
children: [
|
|
105
|
+
header,
|
|
106
|
+
/* @__PURE__ */ jsx(
|
|
107
|
+
"div",
|
|
108
|
+
{
|
|
109
|
+
ref: trackRef,
|
|
110
|
+
className: carouselTrackStyles,
|
|
111
|
+
"data-carousel-track": "",
|
|
112
|
+
onScroll: update,
|
|
113
|
+
children: slides.map((slide, index) => /* @__PURE__ */ jsx(
|
|
114
|
+
"div",
|
|
115
|
+
{
|
|
116
|
+
ref: (node) => {
|
|
117
|
+
slideRefs.current[index] = node;
|
|
118
|
+
},
|
|
119
|
+
role: "group",
|
|
120
|
+
"aria-roledescription": "slide",
|
|
121
|
+
"aria-label": slideLabel(index, slides.length),
|
|
122
|
+
className: cn(carouselSlideStyles, carouselSlideWidthStyles, slideClassName),
|
|
123
|
+
children: slide
|
|
124
|
+
},
|
|
125
|
+
index
|
|
126
|
+
))
|
|
127
|
+
}
|
|
128
|
+
),
|
|
129
|
+
/* @__PURE__ */ jsxs("div", { className: carouselControlsStyles, children: [
|
|
130
|
+
/* @__PURE__ */ jsx(
|
|
131
|
+
Button,
|
|
132
|
+
{
|
|
133
|
+
id: buttonIds.previous,
|
|
134
|
+
type: "button",
|
|
135
|
+
variant: "secondary",
|
|
136
|
+
size: "icon",
|
|
137
|
+
"aria-label": previousLabel,
|
|
138
|
+
disabled: edges.start,
|
|
139
|
+
onClick: () => scrollByPage(-1),
|
|
140
|
+
children: /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\u2039" })
|
|
141
|
+
}
|
|
142
|
+
),
|
|
143
|
+
indicators && slides.length > 1 && /* @__PURE__ */ jsx("div", { role: "group", "aria-label": indicatorsLabel, className: carouselIndicatorsStyles, children: slides.map((_, index) => /* @__PURE__ */ jsx(
|
|
144
|
+
"button",
|
|
145
|
+
{
|
|
146
|
+
type: "button",
|
|
147
|
+
"aria-label": goToLabel(index, slides.length),
|
|
148
|
+
"aria-current": index === active ? "true" : void 0,
|
|
149
|
+
className: carouselIndicatorStyles,
|
|
150
|
+
onClick: () => goTo(index),
|
|
151
|
+
children: /* @__PURE__ */ jsx(
|
|
152
|
+
"span",
|
|
153
|
+
{
|
|
154
|
+
"aria-hidden": "true",
|
|
155
|
+
className: carouselDotStyles({ active: index === active })
|
|
156
|
+
}
|
|
157
|
+
)
|
|
158
|
+
},
|
|
159
|
+
index
|
|
160
|
+
)) }),
|
|
161
|
+
/* @__PURE__ */ jsx(
|
|
162
|
+
Button,
|
|
163
|
+
{
|
|
164
|
+
id: buttonIds.next,
|
|
165
|
+
type: "button",
|
|
166
|
+
variant: "secondary",
|
|
167
|
+
size: "icon",
|
|
168
|
+
"aria-label": nextLabel,
|
|
169
|
+
disabled: edges.end,
|
|
170
|
+
onClick: () => scrollByPage(1),
|
|
171
|
+
children: /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\u203A" })
|
|
172
|
+
}
|
|
173
|
+
)
|
|
174
|
+
] })
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
Carousel.displayName = "Carousel";
|
|
181
|
+
|
|
182
|
+
export { Carousel };
|
|
183
|
+
//# sourceMappingURL=chunk-LLJXVAR6.js.map
|
|
184
|
+
//# sourceMappingURL=chunk-LLJXVAR6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/molecules/Carousel/Carousel.styles.ts","../src/components/molecules/Carousel/Carousel.tsx"],"names":[],"mappings":"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","file":"chunk-LLJXVAR6.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const carouselStyles = 'relative flex flex-col gap-3';\n\nexport const carouselTrackStyles = [\n 'flex snap-x snap-mandatory gap-4 overflow-x-auto scroll-px-1 px-1 pb-2',\n '[scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\n].join(' ');\n\nexport const carouselSlideStyles = 'shrink-0 snap-start';\n\n/** Default slide widths: most of the screen on mobile, two on tablets, three on desktop. */\nexport const carouselSlideWidthStyles = 'w-[80%] sm:w-[45%] lg:w-[31%]';\n\n/** Previous · indicators · next, centered under the cards. */\nexport const carouselControlsStyles = 'flex items-center justify-center gap-3';\n\nexport const carouselIndicatorsStyles = 'flex flex-wrap items-center justify-center gap-1';\n\n/** 24px hit area around a small dot, so the indicators are easy to tap. */\nexport const carouselIndicatorStyles = [\n 'flex h-6 min-w-6 items-center justify-center rounded-full',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-focus)]',\n].join(' ');\n\nexport const carouselDotStyles = cva(\n 'block h-2 rounded-full transition-all duration-200 motion-reduce:transition-none',\n {\n variants: {\n active: {\n true: 'w-6 bg-[var(--btn-primary-bg)]',\n false: 'w-2 bg-[var(--border-strong)] hover:bg-[var(--text-secondary)]',\n },\n },\n defaultVariants: {\n active: false,\n },\n },\n);\n","import { Button } from '@components';\nimport { useMediaQuery } from '@hooks';\nimport { cn } from '@utils';\nimport {\n Children,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport {\n carouselControlsStyles,\n carouselDotStyles,\n carouselIndicatorsStyles,\n carouselIndicatorStyles,\n carouselSlideStyles,\n carouselSlideWidthStyles,\n carouselStyles,\n carouselTrackStyles,\n} from './Carousel.styles';\n\nexport type CarouselProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {\n /** Accessible name of the carousel, e.g. \"Featured recipes\". */\n label: string;\n /** One child per slide. */\n children: ReactNode;\n previousLabel: string;\n nextLabel: string;\n /** Accessible name of each slide; defaults to \"1 / 6\". */\n slideLabel?: (index: number, total: number) => string;\n /** Accessible name of each indicator; defaults to \"Go to slide 3\". */\n goToLabel?: (index: number, total: number) => string;\n /** Accessible name of the indicators group, e.g. \"Choose a recipe\". */\n indicatorsLabel?: string;\n /** Show the indicators between the buttons (default `true`). */\n indicators?: boolean;\n /** Optional visible heading or \"See all\" link above the cards. */\n header?: ReactNode;\n /** Width classes for each slide (defaults: 80% mobile, 45% tablet, 31% desktop). */\n slideClassName?: string;\n /** Stable ids for the buttons, e.g. for analytics click triggers. */\n buttonIds?: { previous?: string; next?: string };\n};\n\nconst EDGE_TOLERANCE_PX = 4;\n\n/**\n * Horizontal carousel of cards: native scroll with snap (touch and trackpad drag work as usual),\n * and below the cards previous/next buttons around indicators that show the current card and jump\n * to any of them. Tabbing to a card scrolls it into view. No autoplay; the smooth scroll is turned\n * off when the person prefers reduced motion.\n */\nexport const Carousel = forwardRef<HTMLElement, CarouselProps>(\n (\n {\n label,\n children,\n previousLabel,\n nextLabel,\n slideLabel = (index, total) => `${index + 1} / ${total}`,\n goToLabel = (index) => `Go to slide ${index + 1}`,\n indicatorsLabel,\n indicators = true,\n header,\n slideClassName,\n buttonIds = {},\n className,\n ...props\n },\n ref,\n ) => {\n const trackRef = useRef<HTMLDivElement | null>(null);\n const slideRefs = useRef<Array<HTMLDivElement | null>>([]);\n const reducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)');\n const [edges, setEdges] = useState({ start: true, end: false });\n const [active, setActive] = useState(0);\n const slides = Children.toArray(children);\n const behavior = reducedMotion ? 'auto' : 'smooth';\n\n /** Offset of a slide from the start of the track's content. */\n const offsetOf = (index: number) =>\n (slideRefs.current[index]?.offsetLeft ?? 0) - (slideRefs.current[0]?.offsetLeft ?? 0);\n\n const update = useCallback(() => {\n const track = trackRef.current;\n if (!track) {\n return;\n }\n const max = track.scrollWidth - track.clientWidth;\n const atEnd = track.scrollLeft >= max - EDGE_TOLERANCE_PX;\n setEdges({ start: track.scrollLeft <= EDGE_TOLERANCE_PX, end: atEnd });\n const offsets = slideRefs.current.map((slide) =>\n slide ? slide.offsetLeft - (slideRefs.current[0]?.offsetLeft ?? 0) : 0,\n );\n const nearest = offsets.reduce(\n (best, offset, index) =>\n Math.abs(offset - track.scrollLeft) < Math.abs((offsets[best] ?? 0) - track.scrollLeft)\n ? index\n : best,\n 0,\n );\n setActive(atEnd && max > 0 ? offsets.length - 1 : nearest);\n }, []);\n\n useEffect(() => {\n update();\n const track = trackRef.current;\n if (!track || typeof ResizeObserver === 'undefined') {\n return undefined;\n }\n const observer = new ResizeObserver(update);\n observer.observe(track);\n return () => observer.disconnect();\n }, [update, slides.length]);\n\n const scrollByPage = (direction: 1 | -1) => {\n trackRef.current?.scrollBy({\n left: direction * trackRef.current.clientWidth * 0.9,\n behavior,\n });\n };\n\n const goTo = (index: number) => {\n trackRef.current?.scrollTo({ left: offsetOf(index), behavior });\n };\n\n return (\n <section\n ref={ref}\n aria-roledescription=\"carousel\"\n aria-label={label}\n className={cn(carouselStyles, className)}\n {...props}\n >\n {header}\n <div\n ref={trackRef}\n className={carouselTrackStyles}\n data-carousel-track=\"\"\n onScroll={update}\n >\n {slides.map((slide, index) => (\n <div\n key={index}\n ref={(node) => {\n slideRefs.current[index] = node;\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={slideLabel(index, slides.length)}\n className={cn(carouselSlideStyles, carouselSlideWidthStyles, slideClassName)}\n >\n {slide}\n </div>\n ))}\n </div>\n <div className={carouselControlsStyles}>\n <Button\n id={buttonIds.previous}\n type=\"button\"\n variant=\"secondary\"\n size=\"icon\"\n aria-label={previousLabel}\n disabled={edges.start}\n onClick={() => scrollByPage(-1)}\n >\n <span aria-hidden=\"true\">‹</span>\n </Button>\n {indicators && slides.length > 1 && (\n <div role=\"group\" aria-label={indicatorsLabel} className={carouselIndicatorsStyles}>\n {slides.map((_, index) => (\n <button\n key={index}\n type=\"button\"\n aria-label={goToLabel(index, slides.length)}\n aria-current={index === active ? 'true' : undefined}\n className={carouselIndicatorStyles}\n onClick={() => goTo(index)}\n >\n <span\n aria-hidden=\"true\"\n className={carouselDotStyles({ active: index === active })}\n />\n </button>\n ))}\n </div>\n )}\n <Button\n id={buttonIds.next}\n type=\"button\"\n variant=\"secondary\"\n size=\"icon\"\n aria-label={nextLabel}\n disabled={edges.end}\n onClick={() => scrollByPage(1)}\n >\n <span aria-hidden=\"true\">›</span>\n </Button>\n </div>\n </section>\n );\n },\n);\n\nCarousel.displayName = 'Carousel';\n"]}
|
|
@@ -27,5 +27,5 @@ var Icon = ({ icon: IconComponent, size, className, label, ...props }) => /* @__
|
|
|
27
27
|
Icon.displayName = "Icon";
|
|
28
28
|
|
|
29
29
|
export { Icon };
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
30
|
+
//# sourceMappingURL=chunk-NA7YKEO4.js.map
|
|
31
|
+
//# sourceMappingURL=chunk-NA7YKEO4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/atoms/Icon/Icon.styles.ts","../src/components/atoms/Icon/Icon.tsx"],"names":[],"mappings":";;;;AAEO,IAAM,UAAA,GAAa,IAAI,uBAAA,EAAyB;AAAA,EACrD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;ACFM,IAAM,IAAA,GAAO,CAAC,EAAE,IAAA,EAAM,aAAA,EAAe,MAAM,SAAA,EAAW,KAAA,EAAO,GAAG,KAAA,EAAM,qBAC3E,GAAA;AAAA,EAAC,aAAA;AAAA,EAAA;AAAA,IACC,WAAW,EAAA,CAAG,UAAA,CAAW,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,IAC7C,IAAA,EAAM,QAAQ,KAAA,GAAQ,MAAA;AAAA,IACtB,YAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAa,QAAQ,MAAA,GAAY,IAAA;AAAA,IAChC,GAAG;AAAA;AACN;AAGF,IAAA,CAAK,WAAA,GAAc,MAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/atoms/Icon/Icon.styles.ts","../src/components/atoms/Icon/Icon.tsx"],"names":[],"mappings":";;;;AAEO,IAAM,UAAA,GAAa,IAAI,uBAAA,EAAyB;AAAA,EACrD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;ACFM,IAAM,IAAA,GAAO,CAAC,EAAE,IAAA,EAAM,aAAA,EAAe,MAAM,SAAA,EAAW,KAAA,EAAO,GAAG,KAAA,EAAM,qBAC3E,GAAA;AAAA,EAAC,aAAA;AAAA,EAAA;AAAA,IACC,WAAW,EAAA,CAAG,UAAA,CAAW,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,IAC7C,IAAA,EAAM,QAAQ,KAAA,GAAQ,MAAA;AAAA,IACtB,YAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAa,QAAQ,MAAA,GAAY,IAAA;AAAA,IAChC,GAAG;AAAA;AACN;AAGF,IAAA,CAAK,WAAA,GAAc,MAAA","file":"chunk-NA7YKEO4.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const iconStyles = cva('inline-block shrink-0', {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n","import { cn } from '@utils';\nimport type { VariantProps } from 'class-variance-authority';\nimport type { ComponentType, SVGProps } from 'react';\nimport { iconStyles } from './Icon.styles';\n\nexport type IconProps = Omit<SVGProps<SVGSVGElement>, 'children'> &\n VariantProps<typeof iconStyles> & {\n icon: ComponentType<SVGProps<SVGSVGElement>>;\n label?: string;\n };\n\nexport const Icon = ({ icon: IconComponent, size, className, label, ...props }: IconProps) => (\n <IconComponent\n className={cn(iconStyles({ size }), className)}\n role={label ? 'img' : undefined}\n aria-label={label}\n aria-hidden={label ? undefined : true}\n {...props}\n />\n);\n\nIcon.displayName = 'Icon';\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useFocusTrap } from './chunk-QT62VC36.js';
|
|
2
2
|
import { useScrollLock } from './chunk-53YMHM24.js';
|
|
3
|
-
import { useDelayedUnmount } from './chunk-BNEEI7S5.js';
|
|
4
3
|
import { useDismissableLayer } from './chunk-JCJP427C.js';
|
|
4
|
+
import { useDelayedUnmount } from './chunk-BNEEI7S5.js';
|
|
5
5
|
import { useMergedRef } from './chunk-P4Z7HH66.js';
|
|
6
|
-
import { RichText } from './chunk-
|
|
6
|
+
import { RichText } from './chunk-SPDOYFCU.js';
|
|
7
7
|
import { cn } from './chunk-6LLGTBM6.js';
|
|
8
8
|
import { forwardRef, useRef, useId } from 'react';
|
|
9
9
|
import { cva } from 'class-variance-authority';
|
|
@@ -83,5 +83,5 @@ var BottomSheet = forwardRef(
|
|
|
83
83
|
BottomSheet.displayName = "BottomSheet";
|
|
84
84
|
|
|
85
85
|
export { BottomSheet };
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
86
|
+
//# sourceMappingURL=chunk-NTXFFBL6.js.map
|
|
87
|
+
//# sourceMappingURL=chunk-NTXFFBL6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/molecules/BottomSheet/BottomSheet.styles.ts","../src/components/molecules/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":";;;;;;;;;;;AAEO,IAAM,wBAAA,GAA2B,GAAA;AAAA,EACtC;AAAA,IACE,8EAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,sBAAA,GAAyB,GAAA;AAAA,EACpC;AAAA,IACE,+EAAA;AAAA,IACA,6CAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,eAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,uBAAA,GACX,gEAAA;AAEK,IAAM,sBAAA,GAAyB,uDAAA;AAE/B,IAAM,uBAAA,GAA0B,0CAAA;AC1BvC,IAAM,gBAAA,GAAmB,GAAA;AAUlB,IAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CACE,EAAE,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,MAAA,EAAQ,oBAAA,GAAuB,IAAA,EAAM,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,IACrF,GAAA,KACG;AACH,IAAA,MAAM,QAAA,GAAW,OAA8B,IAAI,CAAA;AACnD,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,GAAA,EAAK,QAAQ,CAAA;AAC9C,IAAA,MAAM,UAAU,KAAA,EAAM;AACtB,IAAA,MAAM,EAAE,OAAA,EAAS,OAAA,EAAQ,GAAI,iBAAA,CAAkB,MAAM,gBAAgB,CAAA;AAErE,IAAA,mBAAA,CAAoB,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,oBAAoB,CAAA;AAEjE,IAAA,YAAA,CAAa,IAAA,IAAQ,SAAS,QAAQ,CAAA;AACtC,IAAA,aAAA,CAAc,IAAI,CAAA;AAElB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,yBAAyB,EAAE,OAAA,EAAS,CAAA,EAClD,QAAA,kBAAA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAW,MAAA;AAAA,QACX,iBAAA,EAAiB,QAAQ,OAAA,GAAU,MAAA;AAAA,QACnC,QAAA,EAAU,EAAA;AAAA,QACV,WAAW,EAAA,CAAG,sBAAA,CAAuB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QAC3D,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,SAAA,EAAW,uBAAA,EAAyB,CAAA;AAAA,UACpD,KAAA,oBACC,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,IAAA,EAAK,EAAA,EAAI,OAAA,EAAS,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,sBAAA,EACpD,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,UAED,QAAA;AAAA,UACA,MAAA,oBAAU,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,yBAA0B,QAAA,EAAA,MAAA,EAAO;AAAA;AAAA;AAAA,KAC9D,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/molecules/BottomSheet/BottomSheet.styles.ts","../src/components/molecules/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":";;;;;;;;;;;AAEO,IAAM,wBAAA,GAA2B,GAAA;AAAA,EACtC;AAAA,IACE,8EAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,sBAAA,GAAyB,GAAA;AAAA,EACpC;AAAA,IACE,+EAAA;AAAA,IACA,6CAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,eAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,uBAAA,GACX,gEAAA;AAEK,IAAM,sBAAA,GAAyB,uDAAA;AAE/B,IAAM,uBAAA,GAA0B,0CAAA;AC1BvC,IAAM,gBAAA,GAAmB,GAAA;AAUlB,IAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CACE,EAAE,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,MAAA,EAAQ,oBAAA,GAAuB,IAAA,EAAM,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,IACrF,GAAA,KACG;AACH,IAAA,MAAM,QAAA,GAAW,OAA8B,IAAI,CAAA;AACnD,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,GAAA,EAAK,QAAQ,CAAA;AAC9C,IAAA,MAAM,UAAU,KAAA,EAAM;AACtB,IAAA,MAAM,EAAE,OAAA,EAAS,OAAA,EAAQ,GAAI,iBAAA,CAAkB,MAAM,gBAAgB,CAAA;AAErE,IAAA,mBAAA,CAAoB,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,oBAAoB,CAAA;AAEjE,IAAA,YAAA,CAAa,IAAA,IAAQ,SAAS,QAAQ,CAAA;AACtC,IAAA,aAAA,CAAc,IAAI,CAAA;AAElB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,yBAAyB,EAAE,OAAA,EAAS,CAAA,EAClD,QAAA,kBAAA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAW,MAAA;AAAA,QACX,iBAAA,EAAiB,QAAQ,OAAA,GAAU,MAAA;AAAA,QACnC,QAAA,EAAU,EAAA;AAAA,QACV,WAAW,EAAA,CAAG,sBAAA,CAAuB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QAC3D,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,SAAA,EAAW,uBAAA,EAAyB,CAAA;AAAA,UACpD,KAAA,oBACC,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,IAAA,EAAK,EAAA,EAAI,OAAA,EAAS,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,sBAAA,EACpD,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,UAED,QAAA;AAAA,UACA,MAAA,oBAAU,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,yBAA0B,QAAA,EAAA,MAAA,EAAO;AAAA;AAAA;AAAA,KAC9D,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-NTXFFBL6.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const bottomSheetOverlayStyles = cva(\n [\n 'fixed inset-0 z-50 flex items-end justify-center bg-[var(--surface-overlay)]',\n 'transition-opacity duration-200 ease-out',\n ],\n {\n variants: {\n visible: {\n true: 'opacity-100',\n false: 'opacity-0',\n },\n },\n defaultVariants: {\n visible: false,\n },\n },\n);\n\nexport const bottomSheetPanelStyles = cva(\n [\n 'w-full max-w-md rounded-t-xl border border-b-0 border-[var(--border-default)]',\n 'bg-[var(--surface-secondary)] p-6 shadow-lg',\n 'transition-transform duration-200 ease-out',\n ],\n {\n variants: {\n visible: {\n true: 'translate-y-0',\n false: 'translate-y-full',\n },\n },\n defaultVariants: {\n visible: false,\n },\n },\n);\n\nexport const bottomSheetHandleStyles =\n 'mx-auto mb-4 h-1.5 w-10 rounded-full bg-[var(--border-strong)]';\n\nexport const bottomSheetTitleStyles = 'mb-4 text-lg font-semibold text-[var(--text-primary)]';\n\nexport const bottomSheetFooterStyles = 'mt-6 flex items-center justify-end gap-2';\n","import { RichText } from '@components';\nimport {\n useDelayedUnmount,\n useDismissableLayer,\n useFocusTrap,\n useMergedRef,\n useScrollLock,\n} from '@hooks';\nimport { cn } from '@utils';\nimport { forwardRef, useId, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport {\n bottomSheetFooterStyles,\n bottomSheetHandleStyles,\n bottomSheetOverlayStyles,\n bottomSheetPanelStyles,\n bottomSheetTitleStyles,\n} from './BottomSheet.styles';\n\nconst EXIT_DURATION_MS = 200;\n\nexport type BottomSheetProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n open: boolean;\n onClose: () => void;\n title?: ReactNode;\n footer?: ReactNode;\n closeOnBackdropClick?: boolean;\n};\n\nexport const BottomSheet = forwardRef<HTMLDivElement, BottomSheetProps>(\n (\n { open, onClose, title, footer, closeOnBackdropClick = true, className, children, ...props },\n ref,\n ) => {\n const panelRef = useRef<HTMLDivElement | null>(null);\n const setPanelRef = useMergedRef(ref, panelRef);\n const titleId = useId();\n const { mounted, visible } = useDelayedUnmount(open, EXIT_DURATION_MS);\n\n useDismissableLayer(open, onClose, panelRef, closeOnBackdropClick);\n // The panel mounts one render after `open` flips, so the trap starts once it exists.\n useFocusTrap(open && mounted, panelRef);\n useScrollLock(open);\n\n if (!mounted) {\n return null;\n }\n\n return (\n <div className={bottomSheetOverlayStyles({ visible })}>\n <div\n ref={setPanelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n tabIndex={-1}\n className={cn(bottomSheetPanelStyles({ visible }), className)}\n {...props}\n >\n <div aria-hidden className={bottomSheetHandleStyles} />\n {title && (\n <RichText as=\"h2\" id={titleId} variant=\"s1\" className={bottomSheetTitleStyles}>\n {title}\n </RichText>\n )}\n {children}\n {footer && <div className={bottomSheetFooterStyles}>{footer}</div>}\n </div>\n </div>\n );\n },\n);\n\nBottomSheet.displayName = 'BottomSheet';\n"]}
|
|
@@ -68,5 +68,5 @@ var RichText = forwardRef(
|
|
|
68
68
|
RichText.displayName = "RichText";
|
|
69
69
|
|
|
70
70
|
export { RichText, elementByVariant };
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# sourceMappingURL=chunk-SPDOYFCU.js.map
|
|
72
|
+
//# sourceMappingURL=chunk-SPDOYFCU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/atoms/RichText/RichText.styles.ts","../src/components/atoms/RichText/RichText.tsx"],"names":[],"mappings":";;;;;AAEO,IAAM,cAAA,GAAiB,IAAI,4BAAA,EAA8B;AAAA,EAC9D,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,uBAAA;AAAA,MACJ,EAAA,EAAI,sBAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,0BAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,0BAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,yBAAA;AAAA,MACJ,EAAA,EAAI,2BAAA;AAAA,MACJ,EAAA,EAAI,yBAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,IAAA;AAAA,IACT,MAAA,EAAQ;AAAA;AAEZ,CAAC,CAAA;ACvBM,IAAM,gBAAA,GAAyD;AAAA,EACpE,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAQO,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,MAAM,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC3D,IAAA,MAAM,kBAAkB,OAAA,IAAW,IAAA;AACnC,IAAA,MAAM,OAAA,GAAU,EAAA,IAAM,gBAAA,CAAiB,eAAe,CAAA;AAEtD,IAAA,uBACE,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,cAAA,CAAe,EAAE,OAAA,EAAS,eAAA,EAAiB,QAAQ,IAAA,GAAO,MAAA,GAAS,QAAQ,CAAA;AAAA,UAC3E;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/atoms/RichText/RichText.styles.ts","../src/components/atoms/RichText/RichText.tsx"],"names":[],"mappings":";;;;;AAEO,IAAM,cAAA,GAAiB,IAAI,4BAAA,EAA8B;AAAA,EAC9D,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,uBAAA;AAAA,MACJ,EAAA,EAAI,sBAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,0BAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,0BAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,yBAAA;AAAA,MACJ,EAAA,EAAI,2BAAA;AAAA,MACJ,EAAA,EAAI,yBAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,IAAA;AAAA,IACT,MAAA,EAAQ;AAAA;AAEZ,CAAC,CAAA;ACvBM,IAAM,gBAAA,GAAyD;AAAA,EACpE,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI,GAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAQO,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,MAAM,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC3D,IAAA,MAAM,kBAAkB,OAAA,IAAW,IAAA;AACnC,IAAA,MAAM,OAAA,GAAU,EAAA,IAAM,gBAAA,CAAiB,eAAe,CAAA;AAEtD,IAAA,uBACE,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,cAAA,CAAe,EAAE,OAAA,EAAS,eAAA,EAAiB,QAAQ,IAAA,GAAO,MAAA,GAAS,QAAQ,CAAA;AAAA,UAC3E;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-SPDOYFCU.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const richTextStyles = cva('text-[var(--text-primary)]', {\n variants: {\n variant: {\n h1: 'text-4xl leading-tight',\n h2: 'text-3xl leading-tight',\n h3: 'text-2xl leading-snug',\n h4: 'text-xl leading-snug',\n h5: 'text-lg leading-normal',\n h6: 'text-base leading-normal',\n s1: 'text-lg leading-normal',\n s2: 'text-base leading-normal',\n s3: 'text-sm leading-normal',\n s4: 'text-xs leading-normal',\n p1: 'text-lg leading-relaxed',\n p2: 'text-base leading-relaxed',\n p3: 'text-sm leading-relaxed',\n p4: 'text-xs leading-relaxed',\n },\n weight: {\n light: 'font-light',\n normal: 'font-normal',\n bold: 'font-bold',\n },\n },\n defaultVariants: {\n variant: 'p2',\n weight: 'normal',\n },\n});\n","import { cn } from '@utils';\nimport type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, type ElementType, type HTMLAttributes } from 'react';\nimport { richTextStyles } from './RichText.styles';\n\nexport type RichTextVariant = NonNullable<VariantProps<typeof richTextStyles>['variant']>;\n\nexport const elementByVariant: Record<RichTextVariant, ElementType> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n s1: 'span',\n s2: 'span',\n s3: 'span',\n s4: 'span',\n p1: 'p',\n p2: 'p',\n p3: 'p',\n p4: 'p',\n};\n\nexport type RichTextProps = HTMLAttributes<HTMLElement> &\n VariantProps<typeof richTextStyles> & {\n as?: ElementType;\n bold?: boolean;\n };\n\nexport const RichText = forwardRef<HTMLElement, RichTextProps>(\n ({ as, variant, weight, bold, className, ...props }, ref) => {\n const resolvedVariant = variant ?? 'p2';\n const Element = as ?? elementByVariant[resolvedVariant];\n\n return (\n <Element\n ref={ref}\n className={cn(\n richTextStyles({ variant: resolvedVariant, weight: bold ? 'bold' : weight }),\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nRichText.displayName = 'RichText';\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useFocusTrap } from './chunk-QT62VC36.js';
|
|
2
2
|
import { useScrollLock } from './chunk-53YMHM24.js';
|
|
3
|
-
import { useDelayedUnmount } from './chunk-BNEEI7S5.js';
|
|
4
3
|
import { useDismissableLayer } from './chunk-JCJP427C.js';
|
|
4
|
+
import { useDelayedUnmount } from './chunk-BNEEI7S5.js';
|
|
5
5
|
import { Button } from './chunk-KL6I2JFC.js';
|
|
6
6
|
import { useMergedRef } from './chunk-P4Z7HH66.js';
|
|
7
|
-
import { RichText } from './chunk-
|
|
7
|
+
import { RichText } from './chunk-SPDOYFCU.js';
|
|
8
8
|
import { cn } from './chunk-6LLGTBM6.js';
|
|
9
9
|
import { forwardRef, useRef, useId } from 'react';
|
|
10
10
|
import { cva } from 'class-variance-authority';
|
|
@@ -138,5 +138,5 @@ var Drawer = forwardRef(
|
|
|
138
138
|
Drawer.displayName = "Drawer";
|
|
139
139
|
|
|
140
140
|
export { Drawer };
|
|
141
|
-
//# sourceMappingURL=chunk-
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
141
|
+
//# sourceMappingURL=chunk-TO3FF6FR.js.map
|
|
142
|
+
//# sourceMappingURL=chunk-TO3FF6FR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/molecules/Drawer/Drawer.styles.ts","../src/components/molecules/Drawer/Drawer.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/molecules/Drawer/Drawer.styles.ts","../src/components/molecules/Drawer/Drawer.tsx"],"names":[],"mappings":"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","file":"chunk-TO3FF6FR.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const drawerOverlayStyles = cva(\n 'absolute inset-0 bg-[var(--surface-overlay)] transition-opacity duration-200 ease-out',\n {\n variants: {\n visible: {\n true: 'opacity-100',\n false: 'opacity-0',\n },\n },\n defaultVariants: {\n visible: false,\n },\n },\n);\n\nexport const drawerPanelStyles = cva(\n [\n 'absolute inset-y-0 flex w-full max-w-80 flex-col gap-6 overflow-y-auto',\n 'border-[var(--border-default)] bg-[var(--surface-primary)] p-6 shadow-xl',\n 'transition-transform duration-200 ease-out focus:outline-none',\n ],\n {\n variants: {\n side: {\n left: 'left-0 border-r',\n right: 'right-0 border-l',\n },\n visible: {\n true: 'translate-x-0',\n false: '',\n },\n },\n compoundVariants: [\n { side: 'left', visible: false, className: '-translate-x-full' },\n { side: 'right', visible: false, className: 'translate-x-full' },\n ],\n defaultVariants: {\n side: 'right',\n visible: false,\n },\n },\n);\n\nexport const drawerHeaderStyles = 'flex items-center justify-between gap-4';\n\nexport const drawerTitleStyles = 'text-lg font-semibold text-[var(--text-primary)]';\n\nexport const drawerFooterStyles = 'mt-auto flex flex-col gap-4';\n","import { Button, RichText } from '@components';\nimport {\n useDelayedUnmount,\n useDismissableLayer,\n useFocusTrap,\n useMergedRef,\n useScrollLock,\n} from '@hooks';\nimport { cn } from '@utils';\nimport type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, useId, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport {\n drawerFooterStyles,\n drawerHeaderStyles,\n drawerOverlayStyles,\n drawerPanelStyles,\n drawerTitleStyles,\n} from './Drawer.styles';\n\nconst EXIT_DURATION_MS = 200;\n\nexport type DrawerProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> &\n Pick<VariantProps<typeof drawerPanelStyles>, 'side'> & {\n open: boolean;\n onClose: () => void;\n title?: ReactNode;\n /** Extra classes for the title (e.g. a display font). */\n titleClassName?: string;\n /** Accessible name of the close button; the button is only rendered when this is set. */\n closeLabel?: string;\n /** Pinned to the bottom of the panel (preferences, actions). */\n footer?: ReactNode;\n closeOnBackdropClick?: boolean;\n };\n\n/**\n * A side panel (navigation menus, filters, settings) that slides in from the left or right.\n * Modal dialog semantics: focus moves inside and is trapped, Escape and backdrop clicks close it,\n * the page behind doesn't scroll, and focus returns to the trigger when it closes.\n */\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n onClose,\n side,\n title,\n titleClassName,\n closeLabel,\n footer,\n closeOnBackdropClick = true,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const panelRef = useRef<HTMLDivElement | null>(null);\n const setPanelRef = useMergedRef(ref, panelRef);\n const titleId = useId();\n const { mounted, visible } = useDelayedUnmount(open, EXIT_DURATION_MS);\n\n useDismissableLayer(open, onClose, panelRef, closeOnBackdropClick);\n // The panel mounts one render after `open` flips, so the trap starts once it exists.\n useFocusTrap(open && mounted, panelRef);\n useScrollLock(open);\n\n if (!mounted) {\n return null;\n }\n\n return (\n <div className=\"fixed inset-0 z-50\">\n <div aria-hidden=\"true\" className={drawerOverlayStyles({ visible })} />\n <div\n ref={setPanelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n tabIndex={-1}\n className={cn(drawerPanelStyles({ side, visible }), className)}\n {...props}\n >\n {(title || closeLabel) && (\n <div className={drawerHeaderStyles}>\n {title && (\n <RichText\n as=\"h2\"\n id={titleId}\n variant=\"s1\"\n className={cn(drawerTitleStyles, titleClassName)}\n >\n {title}\n </RichText>\n )}\n {closeLabel && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label={closeLabel}\n onClick={onClose}\n className=\"ml-auto size-11\"\n >\n <svg\n aria-hidden\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n className=\"size-6\"\n >\n <path d=\"M6 6l12 12M18 6L6 18\" />\n </svg>\n </Button>\n )}\n </div>\n )}\n {children}\n {footer && <div className={drawerFooterStyles}>{footer}</div>}\n </div>\n </div>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Image } from './chunk-KAU7S3D4.js';
|
|
2
|
+
import { RichText } from './chunk-SPDOYFCU.js';
|
|
2
3
|
import { cn } from './chunk-6LLGTBM6.js';
|
|
3
4
|
import { forwardRef } from 'react';
|
|
4
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -10,15 +11,34 @@ var timelineNodeStyles = "absolute -left-6 top-1.5 h-2.5 w-2.5 -translate-x-1/2
|
|
|
10
11
|
var timelineTitleStyles = "text-base font-bold text-[var(--text-primary)]";
|
|
11
12
|
var timelineDescriptionListStyles = "mt-1 flex flex-col gap-1";
|
|
12
13
|
var timelineDescriptionStyles = "text-sm text-[var(--text-secondary)]";
|
|
14
|
+
var timelineMediaStyles = "mt-3 w-full max-w-md overflow-hidden rounded-xl border border-[var(--border-default)] bg-[var(--surface-secondary)]";
|
|
15
|
+
var timelineImageStyles = "aspect-[4/3] w-full";
|
|
13
16
|
var Timeline = forwardRef(
|
|
14
17
|
({ items, className, ...props }, ref) => /* @__PURE__ */ jsx("ul", { ref, className: cn(timelineStyles, className), ...props, children: items.map((item, index) => /* @__PURE__ */ jsxs("li", { className: timelineItemStyles, children: [
|
|
15
18
|
/* @__PURE__ */ jsx("span", { className: timelineNodeStyles }),
|
|
16
19
|
/* @__PURE__ */ jsx(RichText, { as: "p", variant: "p2", className: timelineTitleStyles, children: item.title }),
|
|
17
|
-
/* @__PURE__ */ jsx("div", { className: timelineDescriptionListStyles, children: item.description.map((description, descriptionIndex) => /* @__PURE__ */ jsx(
|
|
20
|
+
/* @__PURE__ */ jsx("div", { className: timelineDescriptionListStyles, children: item.description.map((description, descriptionIndex) => /* @__PURE__ */ jsx(
|
|
21
|
+
RichText,
|
|
22
|
+
{
|
|
23
|
+
as: "p",
|
|
24
|
+
variant: "p3",
|
|
25
|
+
className: timelineDescriptionStyles,
|
|
26
|
+
children: description
|
|
27
|
+
},
|
|
28
|
+
descriptionIndex
|
|
29
|
+
)) }),
|
|
30
|
+
(item.media ?? item.image) && /* @__PURE__ */ jsx("div", { className: timelineMediaStyles, children: item.media ?? (item.image && /* @__PURE__ */ jsx(
|
|
31
|
+
Image,
|
|
32
|
+
{
|
|
33
|
+
src: item.image.src,
|
|
34
|
+
alt: item.image.alt,
|
|
35
|
+
className: timelineImageStyles
|
|
36
|
+
}
|
|
37
|
+
)) })
|
|
18
38
|
] }, item.id ?? index)) })
|
|
19
39
|
);
|
|
20
40
|
Timeline.displayName = "Timeline";
|
|
21
41
|
|
|
22
42
|
export { Timeline };
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-TRLFK626.js.map
|
|
44
|
+
//# sourceMappingURL=chunk-TRLFK626.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/molecules/Timeline/Timeline.styles.ts","../src/components/molecules/Timeline/Timeline.tsx"],"names":[],"mappings":";;;;;;;AAAO,IAAM,cAAA,GACX,0KAAA;AAEK,IAAM,kBAAA,GAAqB,UAAA;AAE3B,IAAM,kBAAA,GACX,+FAAA;AAEK,IAAM,mBAAA,GAAsB,gDAAA;AAE5B,IAAM,6BAAA,GAAgC,0BAAA;AAEtC,IAAM,yBAAA,GAA4B,sCAAA;AAGlC,IAAM,mBAAA,GACX,qHAAA;AAEK,IAAM,mBAAA,GAAsB,qBAAA;ACU5B,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,KAAA,EAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC/B,GAAA,CAAC,IAAA,EAAA,EAAG,GAAA,EAAU,SAAA,EAAW,EAAA,CAAG,gBAAgB,SAAS,CAAA,EAAI,GAAG,KAAA,EACzD,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAChB,IAAA,CAAC,IAAA,EAAA,EAA0B,SAAA,EAAW,kBAAA,EACpC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,kBAAA,EAAoB,CAAA;AAAA,oBACrC,GAAA,CAAC,YAAS,EAAA,EAAG,GAAA,EAAI,SAAQ,IAAA,EAAK,SAAA,EAAW,mBAAA,EACtC,QAAA,EAAA,IAAA,CAAK,KAAA,EACR,CAAA;AAAA,oBACA,GAAA,CAAC,SAAI,SAAA,EAAW,6BAAA,EACb,eAAK,WAAA,CAAY,GAAA,CAAI,CAAC,WAAA,EAAa,gBAAA,qBAClC,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,EAAA,EAAG,GAAA;AAAA,QACH,OAAA,EAAQ,IAAA;AAAA,QACR,SAAA,EAAW,yBAAA;AAAA,QAEV,QAAA,EAAA;AAAA,OAAA;AAAA,MALI;AAAA,KAOR,CAAA,EACH,CAAA;AAAA,IAAA,CACE,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,KAAA,qBACnB,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,mBAAA,EACb,QAAA,EAAA,IAAA,CAAK,KAAA,KACH,IAAA,CAAK,KAAA,oBACJ,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,KAAK,KAAA,CAAM,GAAA;AAAA,QAChB,GAAA,EAAK,KAAK,KAAA,CAAM,GAAA;AAAA,QAChB,SAAA,EAAW;AAAA;AAAA,KACb,CAAA,EAEN;AAAA,GAAA,EAAA,EA3BK,IAAA,CAAK,EAAA,IAAM,KA6BpB,CACD,CAAA,EACH;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-TRLFK626.js","sourcesContent":["export const timelineStyles =\n \"relative flex flex-col gap-8 pl-6 before:absolute before:bottom-0 before:left-0 before:top-1.5 before:border-l before:border-[var(--border-default)] before:content-['']\";\n\nexport const timelineItemStyles = 'relative';\n\nexport const timelineNodeStyles =\n 'absolute -left-6 top-1.5 h-2.5 w-2.5 -translate-x-1/2 rounded-full bg-[var(--btn-primary-bg)]';\n\nexport const timelineTitleStyles = 'text-base font-bold text-[var(--text-primary)]';\n\nexport const timelineDescriptionListStyles = 'mt-1 flex flex-col gap-1';\n\nexport const timelineDescriptionStyles = 'text-sm text-[var(--text-secondary)]';\n\n/** Photo of a step (e.g. a recipe step): under the text, rounded, 4:3. */\nexport const timelineMediaStyles =\n 'mt-3 w-full max-w-md overflow-hidden rounded-xl border border-[var(--border-default)] bg-[var(--surface-secondary)]';\n\nexport const timelineImageStyles = 'aspect-[4/3] w-full';\n","import { Image, RichText } from '@components';\nimport { cn } from '@utils';\nimport { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport {\n timelineDescriptionListStyles,\n timelineDescriptionStyles,\n timelineImageStyles,\n timelineItemStyles,\n timelineMediaStyles,\n timelineNodeStyles,\n timelineStyles,\n timelineTitleStyles,\n} from './Timeline.styles';\n\nexport interface TimelineItem {\n id?: string;\n title: ReactNode;\n description: ReactNode[];\n /** Optional photo of the entry, shown under its text (lazy loaded). */\n image?: { src: string; alt: string };\n /** Your own media element instead of `image` (e.g. an optimized `<picture>`). */\n media?: ReactNode;\n}\n\nexport type TimelineProps = HTMLAttributes<HTMLUListElement> & {\n items: TimelineItem[];\n};\n\nexport const Timeline = forwardRef<HTMLUListElement, TimelineProps>(\n ({ items, className, ...props }, ref) => (\n <ul ref={ref} className={cn(timelineStyles, className)} {...props}>\n {items.map((item, index) => (\n <li key={item.id ?? index} className={timelineItemStyles}>\n <span className={timelineNodeStyles} />\n <RichText as=\"p\" variant=\"p2\" className={timelineTitleStyles}>\n {item.title}\n </RichText>\n <div className={timelineDescriptionListStyles}>\n {item.description.map((description, descriptionIndex) => (\n <RichText\n key={descriptionIndex}\n as=\"p\"\n variant=\"p3\"\n className={timelineDescriptionStyles}\n >\n {description}\n </RichText>\n ))}\n </div>\n {(item.media ?? item.image) && (\n <div className={timelineMediaStyles}>\n {item.media ??\n (item.image && (\n <Image\n src={item.image.src}\n alt={item.image.alt}\n className={timelineImageStyles}\n />\n ))}\n </div>\n )}\n </li>\n ))}\n </ul>\n ),\n);\n\nTimeline.displayName = 'Timeline';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { inputLabelStyles, inputErrorStyles, inputHintStyles } from './chunk-FFKHEBQ7.js';
|
|
2
|
-
import { RichText } from './chunk-
|
|
2
|
+
import { RichText } from './chunk-SPDOYFCU.js';
|
|
3
3
|
import { cn } from './chunk-6LLGTBM6.js';
|
|
4
4
|
import { forwardRef, useId } from 'react';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
@@ -75,5 +75,5 @@ var Textarea = forwardRef(
|
|
|
75
75
|
Textarea.displayName = "Textarea";
|
|
76
76
|
|
|
77
77
|
export { Textarea };
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
79
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-UUW7L2AV.js.map
|
|
79
|
+
//# sourceMappingURL=chunk-UUW7L2AV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/atoms/Textarea/Textarea.styles.ts","../src/components/atoms/Textarea/Textarea.tsx"],"names":[],"mappings":";;;;;;;AAEO,IAAM,cAAA,GAAiB,GAAA;AAAA,EAC5B;AAAA,IACE,2CAAA;AAAA,IACA,+CAAA;AAAA,IACA,qCAAA;AAAA,IACA,6CAAA;AAAA,IACA,4CAAA;AAAA,IACA,sHAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,SAAA,EAAW;AAAA,QACT,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO,SAAA;AAAA,MACP,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA;AACV;AAEJ,CAAA;AChBO,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,WAAW,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1F,IAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,aAAA,GAAgB,QAAQ,OAAA,GAAU,KAAA;AAExC,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,oBACC,GAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EACd,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,gBAAA,EACzC,iBACH,CAAA,EACF,CAAA;AAAA,sBAEF,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,EAAA;AAAA,UACA,kBAAA,EAAkB,QAAQ,CAAA,EAAG,EAAE,WAAW,IAAA,GAAO,CAAA,EAAG,EAAE,CAAA,KAAA,CAAA,GAAU,MAAA;AAAA,UAChE,cAAA,EAAc,QAAQ,MAAA,GAAS,MAAA;AAAA,UAC/B,SAAA,EAAW,EAAA,CAAG,cAAA,CAAe,EAAE,KAAA,EAAO,eAAe,SAAA,EAAW,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,UACnF,GAAG;AAAA;AAAA,OACN;AAAA,MACC,KAAA,oBACC,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,GAAA;AAAA,UACH,EAAA,EAAI,GAAG,EAAE,CAAA,MAAA,CAAA;AAAA,UACT,IAAA,EAAK,OAAA;AAAA,UACL,OAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,gBAAA;AAAA,UAEV,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MAED,CAAC,KAAA,IAAS,IAAA,oBACT,GAAA,CAAC,YAAS,EAAA,EAAG,GAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,KAAA,CAAA,EAAS,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,iBACxD,QAAA,EAAA,IAAA,EACH;AAAA,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/atoms/Textarea/Textarea.styles.ts","../src/components/atoms/Textarea/Textarea.tsx"],"names":[],"mappings":";;;;;;;AAEO,IAAM,cAAA,GAAiB,GAAA;AAAA,EAC5B;AAAA,IACE,2CAAA;AAAA,IACA,+CAAA;AAAA,IACA,qCAAA;AAAA,IACA,6CAAA;AAAA,IACA,4CAAA;AAAA,IACA,sHAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,SAAA,EAAW;AAAA,QACT,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO,SAAA;AAAA,MACP,SAAA,EAAW,IAAA;AAAA,MACX,MAAA,EAAQ;AAAA;AACV;AAEJ,CAAA;AChBO,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,WAAW,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1F,IAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,aAAA,GAAgB,QAAQ,OAAA,GAAU,KAAA;AAExC,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,oBACC,GAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EACd,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,gBAAA,EACzC,iBACH,CAAA,EACF,CAAA;AAAA,sBAEF,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,EAAA;AAAA,UACA,kBAAA,EAAkB,QAAQ,CAAA,EAAG,EAAE,WAAW,IAAA,GAAO,CAAA,EAAG,EAAE,CAAA,KAAA,CAAA,GAAU,MAAA;AAAA,UAChE,cAAA,EAAc,QAAQ,MAAA,GAAS,MAAA;AAAA,UAC/B,SAAA,EAAW,EAAA,CAAG,cAAA,CAAe,EAAE,KAAA,EAAO,eAAe,SAAA,EAAW,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,UACnF,GAAG;AAAA;AAAA,OACN;AAAA,MACC,KAAA,oBACC,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,GAAA;AAAA,UACH,EAAA,EAAI,GAAG,EAAE,CAAA,MAAA,CAAA;AAAA,UACT,IAAA,EAAK,OAAA;AAAA,UACL,OAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,gBAAA;AAAA,UAEV,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MAED,CAAC,KAAA,IAAS,IAAA,oBACT,GAAA,CAAC,YAAS,EAAA,EAAG,GAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA,KAAA,CAAA,EAAS,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,iBACxD,QAAA,EAAA,IAAA,EACH;AAAA,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-UUW7L2AV.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const textareaStyles = cva(\n [\n 'flex min-h-24 w-full rounded-md px-3 py-2',\n 'text-[var(--input-text)] bg-[var(--input-bg)]',\n 'border border-[var(--input-border)]',\n 'placeholder:text-[var(--input-placeholder)]',\n 'transition-colors duration-150 ease-in-out',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-focus)] focus-visible:ring-offset-0',\n 'focus-visible:border-[var(--input-border-focus)]',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n ],\n {\n variants: {\n state: {\n default: '',\n error: 'border-[var(--input-border-error)] focus-visible:ring-[var(--border-error)]',\n },\n inputSize: {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n },\n resize: {\n vertical: 'resize-y',\n none: 'resize-none',\n },\n },\n defaultVariants: {\n state: 'default',\n inputSize: 'md',\n resize: 'vertical',\n },\n },\n);\n","import { RichText } from '@components';\nimport { cn } from '@utils';\nimport type { VariantProps } from 'class-variance-authority';\nimport { forwardRef, useId, type TextareaHTMLAttributes } from 'react';\nimport {\n inputErrorStyles,\n inputHintStyles,\n inputLabelStyles,\n} from '@components/atoms/Input/Input.styles';\nimport { textareaStyles } from './Textarea.styles';\n\nexport type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement> &\n VariantProps<typeof textareaStyles> & {\n label?: string;\n hint?: string;\n error?: string;\n };\n\n/** Multi-line text entry with the same label / hint / error contract and look as `Input`. */\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, state, inputSize, resize, label, hint, error, id: idProp, ...props }, ref) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const resolvedState = error ? 'error' : state;\n\n return (\n <div className=\"flex flex-col gap-1.5\">\n {label && (\n <label htmlFor={id}>\n <RichText as=\"span\" variant=\"p3\" className={inputLabelStyles}>\n {label}\n </RichText>\n </label>\n )}\n <textarea\n ref={ref}\n id={id}\n aria-describedby={error ? `${id}-error` : hint ? `${id}-hint` : undefined}\n aria-invalid={error ? 'true' : undefined}\n className={cn(textareaStyles({ state: resolvedState, inputSize, resize }), className)}\n {...props}\n />\n {error && (\n <RichText\n as=\"p\"\n id={`${id}-error`}\n role=\"alert\"\n variant=\"p4\"\n className={inputErrorStyles}\n >\n {error}\n </RichText>\n )}\n {!error && hint && (\n <RichText as=\"p\" id={`${id}-hint`} variant=\"p4\" className={inputHintStyles}>\n {hint}\n </RichText>\n )}\n </div>\n );\n },\n);\n\nTextarea.displayName = 'Textarea';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Link } from './chunk-
|
|
2
|
-
import { RichText } from './chunk-
|
|
1
|
+
import { Link } from './chunk-5LKLTY55.js';
|
|
2
|
+
import { RichText } from './chunk-SPDOYFCU.js';
|
|
3
3
|
import { cn } from './chunk-6LLGTBM6.js';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -23,5 +23,5 @@ var Breadcrumbs = forwardRef(
|
|
|
23
23
|
Breadcrumbs.displayName = "Breadcrumbs";
|
|
24
24
|
|
|
25
25
|
export { Breadcrumbs };
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
27
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-VCJN4FS2.js.map
|
|
27
|
+
//# sourceMappingURL=chunk-VCJN4FS2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/molecules/Breadcrumbs/Breadcrumbs.styles.ts","../src/components/molecules/Breadcrumbs/Breadcrumbs.tsx"],"names":[],"mappings":";;;;;;;AAAO,IAAM,iBAAA,GAAoB,2BAAA;AAE1B,IAAM,qBAAA,GAAwB,yBAAA;AAE9B,IAAM,qBAAA,GAAwB,yBAAA;AAE9B,IAAM,qBAAA,GAAwB,8BAAA;AAE9B,IAAM,0BAAA,GAA6B,6BAAA;AAEnC,IAAM,wBAAA,GAA2B,wCAAA;ACcjC,IAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,SAAA,GAAY,GAAA,EAAK,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACzD,GAAA,CAAC,KAAA,EAAA,EAAI,KAAU,YAAA,EAAW,YAAA,EAAa,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,KAAA,EACtF,QAAA,kBAAA,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,qBAAA,EACZ,QAAA,EAAA;AAAA,IAAA,KAAA,CAAM,IAAI,CAAC,IAAA,EAAM,0BAChB,IAAA,CAAC,IAAA,EAAA,EAA0B,WAAW,qBAAA,EACpC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,QAAK,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,SAAA,EAAU,QAAO,SAAA,EAAW,qBAAA,EACjD,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAG,MAAA,EAAO,OAAA,EAAQ,IAAA,EACzB,QAAA,EAAA,IAAA,CAAK,OACR,CAAA,EACF,CAAA;AAAA,0BACC,MAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAC,SAAA,EAAW,4BAC1B,QAAA,EAAA,SAAA,EACH;AAAA,KAAA,EAAA,EARO,IAAA,CAAK,EAAA,IAAM,KASpB,CACD,CAAA;AAAA,oBACD,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,IAAA,EAAK,cAAA,EAAa,QAAO,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,wBAAA,EAC3D,QAAA,EAAA,OAAA,EACH;AAAA,GAAA,EACF,CAAA,EACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/molecules/Breadcrumbs/Breadcrumbs.styles.ts","../src/components/molecules/Breadcrumbs/Breadcrumbs.tsx"],"names":[],"mappings":";;;;;;;AAAO,IAAM,iBAAA,GAAoB,2BAAA;AAE1B,IAAM,qBAAA,GAAwB,yBAAA;AAE9B,IAAM,qBAAA,GAAwB,yBAAA;AAE9B,IAAM,qBAAA,GAAwB,8BAAA;AAE9B,IAAM,0BAAA,GAA6B,6BAAA;AAEnC,IAAM,wBAAA,GAA2B,wCAAA;ACcjC,IAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,SAAA,GAAY,GAAA,EAAK,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACzD,GAAA,CAAC,KAAA,EAAA,EAAI,KAAU,YAAA,EAAW,YAAA,EAAa,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,KAAA,EACtF,QAAA,kBAAA,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,qBAAA,EACZ,QAAA,EAAA;AAAA,IAAA,KAAA,CAAM,IAAI,CAAC,IAAA,EAAM,0BAChB,IAAA,CAAC,IAAA,EAAA,EAA0B,WAAW,qBAAA,EACpC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,QAAK,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,SAAA,EAAU,QAAO,SAAA,EAAW,qBAAA,EACjD,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAG,MAAA,EAAO,OAAA,EAAQ,IAAA,EACzB,QAAA,EAAA,IAAA,CAAK,OACR,CAAA,EACF,CAAA;AAAA,0BACC,MAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAC,SAAA,EAAW,4BAC1B,QAAA,EAAA,SAAA,EACH;AAAA,KAAA,EAAA,EARO,IAAA,CAAK,EAAA,IAAM,KASpB,CACD,CAAA;AAAA,oBACD,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAG,IAAA,EAAK,cAAA,EAAa,QAAO,OAAA,EAAQ,IAAA,EAAK,SAAA,EAAW,wBAAA,EAC3D,QAAA,EAAA,OAAA,EACH;AAAA,GAAA,EACF,CAAA,EACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-VCJN4FS2.js","sourcesContent":["export const breadcrumbsStyles = 'flex items-center text-sm';\n\nexport const breadcrumbsListStyles = 'flex items-center gap-2';\n\nexport const breadcrumbsItemStyles = 'flex items-center gap-2';\n\nexport const breadcrumbsLinkStyles = 'text-[var(--text-secondary)]';\n\nexport const breadcrumbsSeparatorStyles = 'text-[var(--text-tertiary)]';\n\nexport const breadcrumbsCurrentStyles = 'font-medium text-[var(--text-primary)]';\n","import { Link, RichText } from '@components';\nimport { cn } from '@utils';\nimport { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport {\n breadcrumbsCurrentStyles,\n breadcrumbsItemStyles,\n breadcrumbsLinkStyles,\n breadcrumbsListStyles,\n breadcrumbsSeparatorStyles,\n breadcrumbsStyles,\n} from './Breadcrumbs.styles';\n\nexport interface BreadcrumbItem {\n id?: string;\n label: ReactNode;\n href: string;\n}\n\nexport type BreadcrumbsProps = HTMLAttributes<HTMLElement> & {\n items: BreadcrumbItem[];\n current: ReactNode;\n separator?: ReactNode;\n};\n\nexport const Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n ({ items, current, separator = '/', className, ...props }, ref) => (\n <nav ref={ref} aria-label=\"Breadcrumb\" className={cn(breadcrumbsStyles, className)} {...props}>\n <ol className={breadcrumbsListStyles}>\n {items.map((item, index) => (\n <li key={item.id ?? index} className={breadcrumbsItemStyles}>\n <Link href={item.href} underline=\"none\" className={breadcrumbsLinkStyles}>\n <RichText as=\"span\" variant=\"s3\">\n {item.label}\n </RichText>\n </Link>\n <span aria-hidden className={breadcrumbsSeparatorStyles}>\n {separator}\n </span>\n </li>\n ))}\n <RichText as=\"li\" aria-current=\"page\" variant=\"s3\" className={breadcrumbsCurrentStyles}>\n {current}\n </RichText>\n </ol>\n </nav>\n ),\n);\n\nBreadcrumbs.displayName = 'Breadcrumbs';\n"]}
|