@once-ui-system/core 1.4.32 → 1.5.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.
Files changed (189) hide show
  1. package/.eslintrc.json +3 -3
  2. package/{LICENSE → LICENSE.md} +1 -1
  3. package/dist/components/Animation.d.ts +34 -0
  4. package/dist/components/Animation.d.ts.map +1 -0
  5. package/dist/components/Animation.js +230 -0
  6. package/dist/components/Animation.js.map +1 -0
  7. package/dist/components/ArrowNavigationContext.d.ts.map +1 -1
  8. package/dist/components/ArrowNavigationContext.js +2 -1
  9. package/dist/components/ArrowNavigationContext.js.map +1 -1
  10. package/dist/components/AutoScroll.module.scss +8 -8
  11. package/dist/components/Background.d.ts.map +1 -1
  12. package/dist/components/Background.js +23 -15
  13. package/dist/components/Background.js.map +1 -1
  14. package/dist/components/Button.d.ts +1 -0
  15. package/dist/components/Button.d.ts.map +1 -1
  16. package/dist/components/Button.js +2 -2
  17. package/dist/components/Button.js.map +1 -1
  18. package/dist/components/Card.d.ts.map +1 -1
  19. package/dist/components/Card.js +2 -4
  20. package/dist/components/Card.js.map +1 -1
  21. package/dist/components/Card.module.scss +4 -2
  22. package/dist/components/Carousel.module.scss +31 -31
  23. package/dist/components/ClientFlex.d.ts.map +1 -1
  24. package/dist/components/ClientFlex.js +8 -58
  25. package/dist/components/ClientFlex.js.map +1 -1
  26. package/dist/components/ClientGrid.d.ts.map +1 -1
  27. package/dist/components/ClientGrid.js +8 -58
  28. package/dist/components/ClientGrid.js.map +1 -1
  29. package/dist/components/ColorInput.d.ts.map +1 -1
  30. package/dist/components/ColorInput.js +5 -19
  31. package/dist/components/ColorInput.js.map +1 -1
  32. package/dist/components/CompareImage.d.ts.map +1 -1
  33. package/dist/components/CompareImage.js +1 -1
  34. package/dist/components/CompareImage.js.map +1 -1
  35. package/dist/components/Dialog.module.scss +32 -32
  36. package/dist/components/DropdownWrapper.d.ts.map +1 -1
  37. package/dist/components/DropdownWrapper.js +144 -30
  38. package/dist/components/DropdownWrapper.js.map +1 -1
  39. package/dist/components/EmojiPicker.d.ts.map +1 -1
  40. package/dist/components/EmojiPicker.js +14 -12
  41. package/dist/components/EmojiPicker.js.map +1 -1
  42. package/dist/components/EmojiPicker.module.scss +14 -0
  43. package/dist/components/EmojiPickerDropdown.d.ts.map +1 -1
  44. package/dist/components/EmojiPickerDropdown.js +1 -1
  45. package/dist/components/EmojiPickerDropdown.js.map +1 -1
  46. package/dist/components/Flex.d.ts.map +1 -1
  47. package/dist/components/Flex.js +1 -80
  48. package/dist/components/Flex.js.map +1 -1
  49. package/dist/components/Grid.d.ts.map +1 -1
  50. package/dist/components/Grid.js +1 -80
  51. package/dist/components/Grid.js.map +1 -1
  52. package/dist/components/Hover.d.ts +14 -0
  53. package/dist/components/Hover.d.ts.map +1 -0
  54. package/dist/components/Hover.js +99 -0
  55. package/dist/components/Hover.js.map +1 -0
  56. package/dist/components/Hover.module.scss +12 -0
  57. package/dist/components/HoverCard.d.ts +5 -0
  58. package/dist/components/HoverCard.d.ts.map +1 -0
  59. package/dist/components/HoverCard.js +10 -0
  60. package/dist/components/HoverCard.js.map +1 -0
  61. package/dist/components/HoverCard.module.scss +12 -0
  62. package/dist/components/Icon.d.ts.map +1 -1
  63. package/dist/components/Icon.js +8 -19
  64. package/dist/components/Icon.js.map +1 -1
  65. package/dist/components/IconButton.d.ts.map +1 -1
  66. package/dist/components/IconButton.js +9 -20
  67. package/dist/components/IconButton.js.map +1 -1
  68. package/dist/components/IconButton.module.scss +0 -24
  69. package/dist/components/Input.d.ts +1 -0
  70. package/dist/components/Input.d.ts.map +1 -1
  71. package/dist/components/Input.js +6 -2
  72. package/dist/components/Input.js.map +1 -1
  73. package/dist/components/MatrixFx.d.ts +15 -0
  74. package/dist/components/MatrixFx.d.ts.map +1 -0
  75. package/dist/components/MatrixFx.js +307 -0
  76. package/dist/components/MatrixFx.js.map +1 -0
  77. package/dist/components/Option.d.ts.map +1 -1
  78. package/dist/components/Option.js +38 -7
  79. package/dist/components/Option.js.map +1 -1
  80. package/dist/components/Option.module.scss +13 -10
  81. package/dist/components/Particle.d.ts +2 -1
  82. package/dist/components/Particle.d.ts.map +1 -1
  83. package/dist/components/Particle.js +27 -6
  84. package/dist/components/Particle.js.map +1 -1
  85. package/dist/components/Select.d.ts.map +1 -1
  86. package/dist/components/Select.js +41 -31
  87. package/dist/components/Select.js.map +1 -1
  88. package/dist/components/ServerFlex.d.ts +1 -0
  89. package/dist/components/ServerFlex.d.ts.map +1 -1
  90. package/dist/components/ServerFlex.js +37 -22
  91. package/dist/components/ServerFlex.js.map +1 -1
  92. package/dist/components/ServerGrid.d.ts +1 -0
  93. package/dist/components/ServerGrid.d.ts.map +1 -1
  94. package/dist/components/ServerGrid.js +7 -2
  95. package/dist/components/ServerGrid.js.map +1 -1
  96. package/dist/components/SharedInteractiveStyles.module.scss +1 -1
  97. package/dist/components/ShineFx.d.ts +11 -0
  98. package/dist/components/ShineFx.d.ts.map +1 -0
  99. package/dist/components/ShineFx.js +15 -0
  100. package/dist/components/ShineFx.js.map +1 -0
  101. package/dist/components/ShineFx.module.scss +33 -0
  102. package/dist/components/Swiper.d.ts +17 -0
  103. package/dist/components/Swiper.d.ts.map +1 -0
  104. package/dist/components/Swiper.js +170 -0
  105. package/dist/components/Swiper.js.map +1 -0
  106. package/dist/components/Swiper.module.scss +31 -0
  107. package/dist/components/Switch.module.scss +1 -1
  108. package/dist/components/Textarea.d.ts +1 -0
  109. package/dist/components/Textarea.d.ts.map +1 -1
  110. package/dist/components/Textarea.js +6 -2
  111. package/dist/components/Textarea.js.map +1 -1
  112. package/dist/components/TiltFx.d.ts +1 -0
  113. package/dist/components/TiltFx.d.ts.map +1 -1
  114. package/dist/components/TiltFx.js +5 -4
  115. package/dist/components/TiltFx.js.map +1 -1
  116. package/dist/components/Timeline.d.ts +18 -0
  117. package/dist/components/Timeline.d.ts.map +1 -0
  118. package/dist/components/Timeline.js +28 -0
  119. package/dist/components/Timeline.js.map +1 -0
  120. package/dist/components/Tooltip.d.ts +2 -2
  121. package/dist/components/Tooltip.d.ts.map +1 -1
  122. package/dist/components/Tooltip.js +4 -3
  123. package/dist/components/Tooltip.js.map +1 -1
  124. package/dist/components/Tooltip.module.scss +14 -0
  125. package/dist/components/TypeFx.d.ts +15 -0
  126. package/dist/components/TypeFx.d.ts.map +1 -0
  127. package/dist/components/TypeFx.js +105 -0
  128. package/dist/components/TypeFx.js.map +1 -0
  129. package/dist/components/UserMenu.d.ts.map +1 -1
  130. package/dist/components/UserMenu.js +3 -3
  131. package/dist/components/UserMenu.js.map +1 -1
  132. package/dist/components/index.d.ts +8 -0
  133. package/dist/components/index.d.ts.map +1 -1
  134. package/dist/components/index.js +8 -0
  135. package/dist/components/index.js.map +1 -1
  136. package/dist/contexts/LayoutProvider.d.ts +1 -0
  137. package/dist/contexts/LayoutProvider.d.ts.map +1 -1
  138. package/dist/contexts/LayoutProvider.js +30 -4
  139. package/dist/contexts/LayoutProvider.js.map +1 -1
  140. package/dist/css/styles.css +1 -1
  141. package/dist/css/styles.css.map +1 -1
  142. package/dist/css/tokens.css +1 -1
  143. package/dist/css/tokens.css.map +1 -1
  144. package/dist/data/emoji-data.json +0 -8
  145. package/dist/hooks/useResponsiveClasses.d.ts +9 -0
  146. package/dist/hooks/useResponsiveClasses.d.ts.map +1 -0
  147. package/dist/hooks/useResponsiveClasses.js +250 -0
  148. package/dist/hooks/useResponsiveClasses.js.map +1 -0
  149. package/dist/icons.d.ts.map +1 -1
  150. package/dist/icons.js +3 -1
  151. package/dist/icons.js.map +1 -1
  152. package/dist/interfaces.d.ts +1 -0
  153. package/dist/interfaces.d.ts.map +1 -1
  154. package/dist/modules/code/CodeBlock.d.ts.map +1 -1
  155. package/dist/modules/code/CodeBlock.js +17 -7
  156. package/dist/modules/code/CodeBlock.js.map +1 -1
  157. package/dist/modules/code/LineNumber.css +34 -34
  158. package/dist/modules/navigation/HeadingLink.d.ts +2 -2
  159. package/dist/modules/navigation/HeadingLink.d.ts.map +1 -1
  160. package/dist/modules/navigation/HeadingLink.js +3 -3
  161. package/dist/modules/navigation/HeadingLink.js.map +1 -1
  162. package/dist/modules/navigation/HeadingLink.module.scss +5 -14
  163. package/dist/modules/navigation/HeadingNav.d.ts +1 -0
  164. package/dist/modules/navigation/HeadingNav.d.ts.map +1 -1
  165. package/dist/modules/navigation/HeadingNav.js +32 -30
  166. package/dist/modules/navigation/HeadingNav.js.map +1 -1
  167. package/dist/modules/navigation/Kbar.d.ts.map +1 -1
  168. package/dist/modules/navigation/Kbar.js +40 -99
  169. package/dist/modules/navigation/Kbar.js.map +1 -1
  170. package/dist/modules/navigation/MegaMenu.d.ts +1 -0
  171. package/dist/modules/navigation/MegaMenu.d.ts.map +1 -1
  172. package/dist/modules/navigation/MegaMenu.js +121 -44
  173. package/dist/modules/navigation/MegaMenu.js.map +1 -1
  174. package/dist/package.json +10 -1
  175. package/dist/styles/border.scss +36 -0
  176. package/dist/styles/breakpoints.scss +7 -0
  177. package/dist/styles/display.scss +64 -0
  178. package/dist/styles/flex.scss +87 -0
  179. package/dist/styles/global.scss +3 -24
  180. package/dist/styles/grid.scss +58 -0
  181. package/dist/styles/position.scss +310 -0
  182. package/dist/styles/typography.scss +36 -10
  183. package/dist/tokens/border.scss +28 -4
  184. package/dist/tokens/theme.scss +2 -0
  185. package/dist/tokens/typography.scss +5 -1
  186. package/package.json +10 -1
  187. package/README.md +0 -159
  188. package/USAGE.md +0 -55
  189. package/dist/README.md +0 -159
@@ -0,0 +1,170 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Flex, Media, Column, Row, IconButton } from ".";
4
+ import { useEffect, useState, useRef, useCallback } from "react";
5
+ import styles from "./Swiper.module.scss";
6
+ const Swiper = ({ items = [], fill = false, controls = true, priority = false, indicator = true, aspectRatio = "16 / 9", sizes, ...rest }) => {
7
+ const [activeIndex, setActiveIndex] = useState(0);
8
+ const [isDragging, setIsDragging] = useState(false);
9
+ const scrollContainerRef = useRef(null);
10
+ const slideRefs = useRef([]);
11
+ const isScrollingProgrammatically = useRef(false);
12
+ const dragStartX = useRef(0);
13
+ const scrollStartLeft = useRef(0);
14
+ const [scrollSnapType, setScrollSnapType] = useState("x mandatory");
15
+ // Observe scroll position to update active index
16
+ useEffect(() => {
17
+ const container = scrollContainerRef.current;
18
+ if (!container)
19
+ return;
20
+ const handleScroll = () => {
21
+ if (isScrollingProgrammatically.current)
22
+ return;
23
+ const scrollLeft = container.scrollLeft;
24
+ const slideWidth = container.clientWidth;
25
+ const newIndex = Math.round(scrollLeft / slideWidth);
26
+ if (newIndex !== activeIndex && newIndex >= 0 && newIndex < items.length) {
27
+ setActiveIndex(newIndex);
28
+ }
29
+ };
30
+ // Use Intersection Observer for more accurate detection
31
+ const observerOptions = {
32
+ root: container,
33
+ threshold: 0.5,
34
+ };
35
+ const observer = new IntersectionObserver((entries) => {
36
+ entries.forEach((entry) => {
37
+ if (entry.isIntersecting) {
38
+ const index = slideRefs.current.indexOf(entry.target);
39
+ if (index !== -1 && index !== activeIndex) {
40
+ setActiveIndex(index);
41
+ }
42
+ }
43
+ });
44
+ }, observerOptions);
45
+ slideRefs.current.forEach((slide) => {
46
+ if (slide)
47
+ observer.observe(slide);
48
+ });
49
+ container.addEventListener("scroll", handleScroll, { passive: true });
50
+ return () => {
51
+ observer.disconnect();
52
+ container.removeEventListener("scroll", handleScroll);
53
+ };
54
+ }, [activeIndex, items.length]);
55
+ const scrollToIndex = useCallback((index) => {
56
+ const container = scrollContainerRef.current;
57
+ if (!container)
58
+ return;
59
+ isScrollingProgrammatically.current = true;
60
+ const slideWidth = container.clientWidth;
61
+ container.scrollTo({
62
+ left: slideWidth * index,
63
+ behavior: "smooth",
64
+ });
65
+ // Reset flag after scroll animation completes
66
+ setTimeout(() => {
67
+ isScrollingProgrammatically.current = false;
68
+ setActiveIndex(index);
69
+ }, 500);
70
+ }, []);
71
+ const handlePrevClick = () => {
72
+ if (activeIndex > 0) {
73
+ scrollToIndex(activeIndex - 1);
74
+ }
75
+ };
76
+ const handleNextClick = () => {
77
+ if (activeIndex < items.length - 1) {
78
+ scrollToIndex(activeIndex + 1);
79
+ }
80
+ };
81
+ const handleDotClick = (index) => {
82
+ scrollToIndex(index);
83
+ };
84
+ // Drag-to-scroll handlers
85
+ const handleMouseDown = (e) => {
86
+ const container = scrollContainerRef.current;
87
+ if (!container)
88
+ return;
89
+ setIsDragging(true);
90
+ setScrollSnapType("none"); // Disable snap during drag
91
+ dragStartX.current = e.pageX;
92
+ scrollStartLeft.current = container.scrollLeft;
93
+ };
94
+ // Use native event listeners for global mouse tracking
95
+ useEffect(() => {
96
+ if (!isDragging)
97
+ return;
98
+ const container = scrollContainerRef.current;
99
+ if (!container)
100
+ return;
101
+ const handleMouseMove = (e) => {
102
+ e.preventDefault();
103
+ const x = e.pageX;
104
+ const walk = (dragStartX.current - x) * 1.5; // Drag sensitivity
105
+ container.scrollLeft = scrollStartLeft.current + walk;
106
+ };
107
+ const handleMouseUp = () => {
108
+ // Find the nearest slide and snap to it
109
+ const slideWidth = container.clientWidth;
110
+ const currentScroll = container.scrollLeft;
111
+ const nearestIndex = Math.round(currentScroll / slideWidth);
112
+ const targetScroll = nearestIndex * slideWidth;
113
+ // Smooth scroll to nearest slide
114
+ container.scrollTo({
115
+ left: targetScroll,
116
+ behavior: 'smooth'
117
+ });
118
+ setActiveIndex(nearestIndex);
119
+ setIsDragging(false);
120
+ // Re-enable snap after a brief delay to let smooth scroll complete
121
+ setTimeout(() => {
122
+ setScrollSnapType("x mandatory");
123
+ }, 300);
124
+ };
125
+ // Add global listeners to track mouse anywhere
126
+ document.addEventListener("mousemove", handleMouseMove);
127
+ document.addEventListener("mouseup", handleMouseUp);
128
+ return () => {
129
+ document.removeEventListener("mousemove", handleMouseMove);
130
+ document.removeEventListener("mouseup", handleMouseUp);
131
+ };
132
+ }, [isDragging]);
133
+ if (items.length === 0) {
134
+ return null;
135
+ }
136
+ return (_jsxs(Column, { fillWidth: true, fillHeight: fill, aspectRatio: undefined, style: { isolation: "isolate" }, ...rest, children: [_jsxs(Flex, { fillWidth: true, fillHeight: fill, aspectRatio: aspectRatio === "original" ? undefined : aspectRatio, className: styles.carouselContainer, children: [_jsx(Flex, { fillWidth: true, fillHeight: fill, radius: rest.radius || "l", border: rest.border || "neutral-alpha-weak", overflow: "hidden", children: _jsx(Row, { ref: scrollContainerRef, fillWidth: true, fillHeight: fill, className: styles.scrollContainer, onMouseDown: handleMouseDown, overflowX: "auto", style: {
137
+ scrollSnapType: scrollSnapType,
138
+ scrollbarWidth: "none",
139
+ msOverflowStyle: "none",
140
+ WebkitOverflowScrolling: "touch",
141
+ cursor: isDragging ? "grabbing" : "grab",
142
+ userSelect: "none",
143
+ }, children: items.map((item, index) => (_jsx(Flex, { ref: (el) => {
144
+ slideRefs.current[index] = el;
145
+ }, fillWidth: true, fillHeight: fill, className: styles.slide, style: {
146
+ scrollSnapAlign: "start",
147
+ scrollSnapStop: "always",
148
+ flexShrink: 0,
149
+ }, children: typeof item.slide === "string" ? (_jsx(Media, { fill: fill, sizes: sizes, priority: priority && index === 0, aspectRatio: fill ? undefined : aspectRatio === "auto" ? undefined : aspectRatio, src: item.slide, alt: item.alt || "", onDragStart: (e) => e.preventDefault(), style: {
150
+ userSelect: "none",
151
+ } })) : (_jsx(Flex, { fill: true, aspectRatio: fill ? undefined : aspectRatio === "auto" ? undefined : aspectRatio, onDragStart: (e) => e.preventDefault(), style: {
152
+ userSelect: "none",
153
+ }, children: item.slide })) }, index))) }) }), controls && items.length > 1 && (_jsxs(_Fragment, { children: [activeIndex > 0 && (_jsx(Flex, { position: "absolute", left: "16", zIndex: 1, className: styles.navButton, style: { top: "50%", transform: "translateY(-50%)" }, children: _jsx(Flex, { radius: "l", background: "surface", overflow: "hidden", children: _jsx(IconButton, { onClick: handlePrevClick, variant: "secondary", icon: "chevronLeft", "aria-label": "Previous slide" }) }) })), activeIndex < items.length - 1 && (_jsx(Flex, { position: "absolute", right: "16", zIndex: 1, className: styles.navButton, style: { top: "50%", transform: "translateY(-50%)" }, children: _jsx(Flex, { radius: "l", background: "surface", overflow: "hidden", children: _jsx(IconButton, { onClick: handleNextClick, variant: "secondary", icon: "chevronRight", "aria-label": "Next slide" }) }) }))] }))] }), indicator && items.length > 1 && (_jsx(Row, { gap: "8", fillWidth: true, horizontal: "center", paddingX: "16", paddingTop: controls === "contained" ? undefined : "12", position: controls === "contained" ? "absolute" : "relative", bottom: controls === "contained" ? "16" : undefined, style: {
154
+ transform: controls === "contained" ? "translateY(-100%)" : undefined,
155
+ }, children: items.map((_, index) => (_jsx(Flex, { radius: "full", cursor: "interactive", onClick: () => handleDotClick(index), width: "8", height: "8", style: {
156
+ background: activeIndex === index
157
+ ? "var(--neutral-on-background-strong)"
158
+ : "var(--neutral-alpha-medium)",
159
+ transition: "background 0.3s ease, transform 0.3s ease",
160
+ transform: activeIndex === index ? "scale(1.2)" : "scale(1)",
161
+ }, "aria-label": `Go to slide ${index + 1}`, role: "button", tabIndex: 0, onKeyDown: (e) => {
162
+ if (e.key === "Enter" || e.key === " ") {
163
+ e.preventDefault();
164
+ handleDotClick(index);
165
+ }
166
+ } }, index))) }))] }));
167
+ };
168
+ Swiper.displayName = "Swiper";
169
+ export { Swiper };
170
+ //# sourceMappingURL=Swiper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Swiper.js","sourceRoot":"","sources":["../../src/components/Swiper.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ .scrollContainer {
2
+ &::-webkit-scrollbar {
3
+ display: none;
4
+ }
5
+ }
6
+
7
+ .slide {
8
+ flex-shrink: 0;
9
+ user-select: none;
10
+ -webkit-user-drag: none;
11
+ }
12
+
13
+ .carouselContainer {
14
+ @media (hover: hover) and (pointer: fine) {
15
+ &:hover .navButton,
16
+ &:focus-within .navButton {
17
+ opacity: 1;
18
+ pointer-events: auto;
19
+ }
20
+ }
21
+ }
22
+
23
+ .navButton {
24
+ opacity: 0;
25
+ transition: opacity 0.3s ease;
26
+ pointer-events: none;
27
+
28
+ @media (hover: none) {
29
+ display: none;
30
+ }
31
+ }
@@ -78,7 +78,7 @@
78
78
  }
79
79
 
80
80
  .container:hover .element::before,
81
- .element:focus-within::before {
81
+ .element:focus-visible::before {
82
82
  content: '';
83
83
  position: absolute;
84
84
  top: 50%;
@@ -11,6 +11,7 @@ interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
11
11
  className?: string;
12
12
  hasPrefix?: ReactNode;
13
13
  hasSuffix?: ReactNode;
14
+ characterCount?: boolean;
14
15
  resize?: "horizontal" | "vertical" | "both" | "none";
15
16
  validate?: (value: ReactNode) => ReactNode | null;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/components/Textarea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAIZ,sBAAsB,EAEtB,SAAS,EACV,MAAM,OAAO,CAAC;AAMf,UAAU,aAAc,SAAQ,sBAAsB,CAAC,mBAAmB,CAAC;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EACH,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,UAAU,GACV,WAAW,GACX,cAAc,GACd,aAAa,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,GAAG,IAAI,CAAC;CACnD;AAED,QAAA,MAAM,QAAQ,2FA8Lb,CAAC;AAIF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/components/Textarea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAIZ,sBAAsB,EAEtB,SAAS,EACV,MAAM,OAAO,CAAC;AAMf,UAAU,aAAc,SAAQ,sBAAsB,CAAC,mBAAmB,CAAC;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EACH,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,UAAU,GACV,WAAW,GACX,cAAc,GACd,aAAa,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,GAAG,IAAI,CAAC;CACnD;AAED,QAAA,MAAM,QAAQ,2FA+Mb,CAAC;AAIF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -5,7 +5,7 @@ import classNames from "classnames";
5
5
  import { Column, Row, Text } from ".";
6
6
  import styles from "./Input.module.scss";
7
7
  import { useDebounce } from "../hooks/useDebounce";
8
- const Textarea = forwardRef(({ id, label, placeholder, lines = 3, error = false, errorMessage, description, radius, className, hasPrefix, hasSuffix, resize = "vertical", validate, children, onFocus, onBlur, onChange, style, ...props }, ref) => {
8
+ const Textarea = forwardRef(({ id, label, placeholder, lines = 3, error = false, errorMessage, description, radius, className, hasPrefix, hasSuffix, characterCount, resize = "vertical", validate, children, onFocus, onBlur, onChange, style, ...props }, ref) => {
9
9
  const [isFocused, setIsFocused] = useState(false);
10
10
  const [isFilled, setIsFilled] = useState(!!props.value);
11
11
  const [validationError, setValidationError] = useState(null);
@@ -88,7 +88,11 @@ const Textarea = forwardRef(({ id, label, placeholder, lines = 3, error = false,
88
88
  height: height ? `${height}rem` : "auto",
89
89
  }, onChange: handleChange }), !placeholder && (_jsx(Text, { as: "label", variant: "label-default-m", htmlFor: id, className: classNames(styles.label, styles.textareaLabel, {
90
90
  [styles.floating]: isFocused || isFilled,
91
- }), children: label })), children] }), hasSuffix && (_jsx(Row, { paddingRight: "12", className: styles.suffix, children: hasSuffix }))] }), displayError && errorMessage !== false && (_jsx(Row, { paddingX: "16", id: `${id}-error`, textVariant: "body-default-s", onBackground: "danger-weak", children: displayError })), description && (_jsx(Row, { paddingX: "16", id: `${id}-description`, textVariant: "body-default-s", onBackground: "neutral-weak", children: description }))] }));
91
+ }), children: label })), children, characterCount && props.maxLength && (_jsx(Row, { fillWidth: true, paddingLeft: "16", paddingY: "8", className: styles.suffix, children: _jsx(Text, { variant: "label-default-s", onBackground: props.maxLength - String(props.value || '').length <= 5
92
+ ? "danger-weak"
93
+ : props.maxLength - String(props.value || '').length <= 10
94
+ ? "warning-weak"
95
+ : "neutral-weak", children: props.maxLength - String(props.value || '').length }) }))] }), hasSuffix && (_jsx(Row, { paddingRight: "12", className: styles.suffix, children: hasSuffix }))] }), displayError && errorMessage !== false && (_jsx(Row, { paddingX: "16", id: `${id}-error`, textVariant: "body-default-s", onBackground: "danger-weak", children: displayError })), description && (_jsx(Row, { paddingX: "16", id: `${id}-description`, textVariant: "body-default-s", onBackground: "neutral-weak", children: description }))] }));
92
96
  });
93
97
  Textarea.displayName = "Textarea";
94
98
  export { Textarea };
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/components/Textarea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/components/Textarea.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import { Flex } from ".";
3
3
  interface TiltFxProps extends React.ComponentProps<typeof Flex> {
4
4
  children: React.ReactNode;
5
+ intensity?: number;
5
6
  }
6
7
  declare const TiltFx: React.FC<TiltFxProps>;
7
8
  export { TiltFx };
@@ -1 +1 @@
1
- {"version":3,"file":"TiltFx.d.ts","sourceRoot":"","sources":["../../src/components/TiltFx.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAEzB,UAAU,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAC7D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2DjC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"TiltFx.d.ts","sourceRoot":"","sources":["../../src/components/TiltFx.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAEzB,UAAU,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAC7D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4DjC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useRef } from "react";
4
4
  import styles from "./TiltFx.module.scss";
5
5
  import { Flex } from ".";
6
- const TiltFx = ({ children, ...rest }) => {
6
+ const TiltFx = ({ children, intensity = 1, ...rest }) => {
7
7
  const ref = useRef(null);
8
8
  let lastCall = 0;
9
9
  let resetTimeout;
@@ -25,10 +25,11 @@ const TiltFx = ({ children, ...rest }) => {
25
25
  const centerY = rect.height / 2;
26
26
  const deltaX = (offsetX - centerX) / centerX;
27
27
  const deltaY = (offsetY - centerY) / centerY;
28
- const rotateX = -deltaY * 2;
29
- const rotateY = -deltaX * 2;
28
+ const rotateX = -deltaY * 2 * intensity;
29
+ const rotateY = -deltaX * 2 * intensity;
30
+ const translateZ = 30 * intensity;
30
31
  window.requestAnimationFrame(() => {
31
- element.style.transform = `perspective(1000px) translate3d(0, 0, 30px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
32
+ element.style.transform = `perspective(1000px) translate3d(0, 0, ${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
32
33
  });
33
34
  };
34
35
  const handleMouseLeave = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"TiltFx.js","sourceRoot":"","sources":["../../src/components/TiltFx.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAMzB,MAAM,MAAM,GAA0B,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA4B,CAAC;IAEjC,MAAM,eAAe,GAAG,CAAC,CAAmC,EAAE,EAAE;QAC9D,IAAI,cAAc,IAAI,MAAM;YAAE,OAAO;QAErC,YAAY,CAAC,YAAY,CAAC,CAAC;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,QAAQ,GAAG,EAAE;YAAE,OAAO;QAChC,QAAQ,GAAG,GAAG,CAAC;QAEf,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QAErC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;QAE7C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5B,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,uDAAuD,OAAO,gBAAgB,OAAO,MAAM,CAAC;QACxH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,cAAc,IAAI,MAAM;YAAE,OAAO;QAErC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,SAAS;oBACrB,sEAAsE,CAAC;YAC3E,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,QAAQ,EAAC,QAAQ,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,gBAAgB,KAC1B,IAAI,YAEP,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"TiltFx.js","sourceRoot":"","sources":["../../src/components/TiltFx.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAOzB,MAAM,MAAM,GAA0B,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC7E,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA4B,CAAC;IAEjC,MAAM,eAAe,GAAG,CAAC,CAAmC,EAAE,EAAE;QAC9D,IAAI,cAAc,IAAI,MAAM;YAAE,OAAO;QAErC,YAAY,CAAC,YAAY,CAAC,CAAC;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,QAAQ,GAAG,EAAE;YAAE,OAAO;QAChC,QAAQ,GAAG,GAAG,CAAC;QAEf,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QAErC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;QAE7C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;QACxC,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;QACxC,MAAM,UAAU,GAAG,EAAE,GAAG,SAAS,CAAC;QAElC,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,yCAAyC,UAAU,eAAe,OAAO,gBAAgB,OAAO,MAAM,CAAC;QACnI,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,cAAc,IAAI,MAAM;YAAE,OAAO;QAErC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,SAAS;oBACrB,sEAAsE,CAAC;YAC3E,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,QAAQ,EAAC,QAAQ,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,gBAAgB,KAC1B,IAAI,YAEP,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { Flex } from ".";
3
+ import { TShirtSizes } from "@/types";
4
+ export interface TimelineItem {
5
+ label?: React.ReactNode;
6
+ description?: React.ReactNode;
7
+ state?: "default" | "active" | "success" | "danger";
8
+ marker?: React.ReactNode;
9
+ children?: React.ReactNode;
10
+ }
11
+ interface TimelineProps extends Omit<React.ComponentProps<typeof Flex>, 'children'> {
12
+ items: TimelineItem[];
13
+ alignment?: "left" | "right";
14
+ size?: TShirtSizes;
15
+ }
16
+ declare const Timeline: React.FC<TimelineProps>;
17
+ export { Timeline };
18
+ //# sourceMappingURL=Timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../src/components/Timeline.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAU,IAAI,EAAc,MAAM,GAAG,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,UAAU,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,UAAU,CAAC;IACjF,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4GrC,CAAC;AAIF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Column, Flex, Line, Text } from ".";
4
+ const Timeline = ({ items, alignment = "left", size = "m", ...flex }) => {
5
+ // Helper to get color variable for state
6
+ const getStateColor = (state) => {
7
+ switch (state) {
8
+ case "active": return "var(--brand-solid-strong)";
9
+ case "success": return "var(--success-solid-strong)";
10
+ case "danger": return "var(--danger-solid-strong)";
11
+ default: return "var(--neutral-solid-strong)";
12
+ }
13
+ };
14
+ return (_jsx(Column, { ...flex, children: items.map((item, index) => {
15
+ const state = item.state || "default";
16
+ const nextState = index < items.length - 1 ? (items[index + 1].state || "default") : state;
17
+ const currentColor = getStateColor(state);
18
+ const nextColor = getStateColor(nextState);
19
+ const isHorizontal = flex.direction === "row";
20
+ const gradientToNext = isHorizontal
21
+ ? `linear-gradient(to right, ${currentColor}, ${nextColor})`
22
+ : `linear-gradient(to bottom, ${currentColor}, ${nextColor})`;
23
+ return (_jsxs(Flex, { direction: isHorizontal ? "column" : alignment === "right" ? "row-reverse" : undefined, fillWidth: true, children: [_jsxs(Column, { fillWidth: true, horizontal: "center", marginTop: isHorizontal ? undefined : index === 0 ? (size === "xl" ? "8" : size === "l" ? "12" : size === "m" ? "16" : size === "s" ? "20" : "16") : undefined, vertical: isHorizontal ? "center" : undefined, direction: isHorizontal ? "row" : "column", minWidth: !isHorizontal ? (size === "xs" ? "8" : size === "s" ? "24" : size === "m" ? "32" : size === "l" ? "40" : "48") : undefined, maxWidth: !isHorizontal ? (size === "xs" ? "8" : size === "s" ? "24" : size === "m" ? "32" : size === "l" ? "40" : "48") : undefined, children: [index !== 0 && (_jsx(Line, { vert: !isHorizontal, background: undefined, solid: state === "active" ? "brand-strong" : state === "success" ? "success-strong" : state === "danger" ? "danger-strong" : "neutral-strong", minHeight: flex.direction === "row" ? undefined : "8", maxHeight: flex.direction === "row" ? undefined : "8" })), _jsx(Flex, { fillWidth: true, center: true, radius: "full", solid: state === "active" ? "brand-strong" : state === "success" ? "success-strong" : state === "danger" ? "danger-strong" : undefined, background: state === "default" ? "neutral-weak" : undefined, border: state === "success" ? "success-strong" : state === "danger" ? "danger-strong" : state === "active" ? "brand-strong" : "neutral-strong", minHeight: size === "xs" ? "8" : size === "s" ? "24" : size === "m" ? "32" : size === "l" ? "40" : "48", maxHeight: size === "xs" ? "8" : size === "s" ? "24" : size === "m" ? "32" : size === "l" ? "40" : "48", minWidth: size === "xs" ? "8" : size === "s" ? "24" : size === "m" ? "32" : size === "l" ? "40" : "48", maxWidth: size === "xs" ? "8" : size === "s" ? "24" : size === "m" ? "32" : size === "l" ? "40" : "48", children: item.marker && (_jsx(Flex, { center: true, onSolid: state === "active" ? "brand-strong" : state === "success" ? "success-strong" : state === "danger" ? "danger-strong" : undefined, onBackground: state === "default" ? "neutral-weak" : undefined, textVariant: "label-default-m", children: item.marker })) }), index !== items.length - 1 && (_jsx(Line, { vert: !isHorizontal, background: undefined, style: { background: gradientToNext } }))] }), _jsx(Column, { fillWidth: true, paddingX: "20", paddingTop: "12", paddingBottom: "24", horizontal: isHorizontal && index === 0 ? "start" : isHorizontal && index === items.length - 1 ? "end" : isHorizontal ? "center" : undefined, align: isHorizontal && index === 0 ? "left" : isHorizontal && index === items.length - 1 ? "right" : isHorizontal ? "center" : alignment === "right" ? "right" : undefined, gap: "2", children: _jsxs(_Fragment, { children: [item.label && (_jsx(Text, { variant: "label-default-m", onBackground: state === "danger" ? "danger-weak" : undefined, children: item.label })), item.description && (_jsx(Text, { variant: "body-default-s", onBackground: state === "danger" ? "danger-weak" : "neutral-weak", children: item.description })), item.children] }) })] }, index));
24
+ }) }));
25
+ };
26
+ Timeline.displayName = "Timeline";
27
+ export { Timeline };
28
+ //# sourceMappingURL=Timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline.js","sourceRoot":"","sources":["../../src/components/Timeline.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React, { ReactNode } from "react";
2
- import { Flex } from ".";
2
+ import { Row } from ".";
3
3
  import { IconName } from "../icons";
4
- interface TooltipProps extends React.ComponentProps<typeof Flex> {
4
+ interface TooltipProps extends React.ComponentProps<typeof Row> {
5
5
  label: ReactNode;
6
6
  prefixIcon?: IconName;
7
7
  suffixIcon?: IconName;
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,IAAI,EAAQ,MAAM,GAAG,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,UAAU,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAC9D,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,OAAO,kGAoCZ,CAAC;AAIF,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAQ,GAAG,EAAE,MAAM,GAAG,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,UAAU,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC;IAC7D,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,OAAO,kGAoCZ,CAAC;AAIF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import classNames from "classnames";
4
- import { Flex, Icon } from ".";
4
+ import { Icon, Row } from ".";
5
+ import styles from "./Tooltip.module.scss";
5
6
  const Tooltip = forwardRef(({ label, prefixIcon, suffixIcon, className, style, ...flex }, ref) => {
6
- return (_jsxs(Flex, { m: { hide: true }, ref: ref, style: {
7
+ return (_jsxs(Row, { m: { hide: true }, ref: ref, style: {
7
8
  whiteSpace: "nowrap",
8
9
  userSelect: "none",
9
10
  ...style,
10
- }, vertical: "center", gap: "4", zIndex: 1, background: "surface", paddingY: "4", paddingX: "8", radius: "s", border: "neutral-medium", role: "tooltip", className: classNames(className), ...flex, children: [prefixIcon && _jsx(Icon, { name: prefixIcon, size: "xs" }), _jsx(Flex, { paddingX: "2", vertical: "center", textVariant: "body-default-xs", onBackground: "neutral-strong", children: label }), suffixIcon && _jsx(Icon, { name: suffixIcon, size: "xs" })] }));
11
+ }, vertical: "center", gap: "4", zIndex: 1, background: "surface", paddingY: "4", paddingX: "8", radius: "s", border: "neutral-medium", role: "tooltip", className: classNames(styles.fadeIn, className), ...flex, children: [prefixIcon && _jsx(Icon, { name: prefixIcon, size: "xs" }), _jsx(Row, { paddingX: "2", vertical: "center", textVariant: "body-default-xs", onBackground: "neutral-strong", children: label }), suffixIcon && _jsx(Icon, { name: suffixIcon, size: "xs" })] }));
11
12
  });
12
13
  Tooltip.displayName = "Tooltip";
13
14
  export { Tooltip };
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AACrD,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAW/B,MAAM,OAAO,GAAG,UAAU,CACxB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACpE,OAAO,CACL,MAAC,IAAI,IACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACjB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,MAAM;YAClB,GAAG,KAAK;SACT,EACD,QAAQ,EAAC,QAAQ,EACjB,GAAG,EAAC,GAAG,EACP,MAAM,EAAE,CAAC,EACT,UAAU,EAAC,SAAS,EACpB,QAAQ,EAAC,GAAG,EACZ,QAAQ,EAAC,GAAG,EACZ,MAAM,EAAC,GAAG,EACV,MAAM,EAAC,gBAAgB,EACvB,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,KAC5B,IAAI,aAEP,UAAU,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,IAAI,GAAG,EACnD,KAAC,IAAI,IACH,QAAQ,EAAC,GAAG,EACZ,QAAQ,EAAC,QAAQ,EACjB,WAAW,EAAC,iBAAiB,EAC7B,YAAY,EAAC,gBAAgB,YAE5B,KAAK,GACD,EACN,UAAU,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,IAAI,GAAG,IAC9C,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AACrD,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;AAE9B,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAU3C,MAAM,OAAO,GAAG,UAAU,CACxB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACpE,OAAO,CACL,MAAC,GAAG,IACF,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EACjB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,MAAM;YAClB,GAAG,KAAK;SACT,EACD,QAAQ,EAAC,QAAQ,EACjB,GAAG,EAAC,GAAG,EACP,MAAM,EAAE,CAAC,EACT,UAAU,EAAC,SAAS,EACpB,QAAQ,EAAC,GAAG,EACZ,QAAQ,EAAC,GAAG,EACZ,MAAM,EAAC,GAAG,EACV,MAAM,EAAC,gBAAgB,EACvB,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAC3C,IAAI,aAEP,UAAU,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,IAAI,GAAG,EACnD,KAAC,GAAG,IACF,QAAQ,EAAC,GAAG,EACZ,QAAQ,EAAC,QAAQ,EACjB,WAAW,EAAC,iBAAiB,EAC7B,YAAY,EAAC,gBAAgB,YAE5B,KAAK,GACF,EACL,UAAU,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,IAAI,GAAG,IAC/C,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ @keyframes tooltipFadeIn {
2
+ from {
3
+ opacity: 0;
4
+ transform: scale(0.9);
5
+ }
6
+ to {
7
+ opacity: 1;
8
+ transform: scale(1);
9
+ }
10
+ }
11
+
12
+ .fadeIn {
13
+ animation: tooltipFadeIn 0.15s ease-in;
14
+ }
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import { Text } from ".";
3
+ export interface TypeFxProps extends Omit<React.ComponentProps<typeof Text>, 'children'> {
4
+ words: string | string[];
5
+ speed?: number;
6
+ delay?: number;
7
+ hold?: number;
8
+ trigger?: "instant" | "custom";
9
+ onTrigger?: (triggerFn: () => void) => void;
10
+ loop?: boolean;
11
+ children?: React.ReactNode;
12
+ }
13
+ declare const TypeFx: React.FC<TypeFxProps>;
14
+ export { TypeFx };
15
+ //# sourceMappingURL=TypeFx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeFx.d.ts","sourceRoot":"","sources":["../../src/components/TypeFx.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAEzB,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,UAAU,CAAC;IACtF,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAiIjC,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,105 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useEffect, useRef, useCallback } from "react";
4
+ import { Text } from ".";
5
+ const TypeFx = ({ words, speed = 100, delay = 0, hold = 2000, trigger = "instant", onTrigger, loop = true, children, ...text }) => {
6
+ const [displayText, setDisplayText] = useState("");
7
+ const [isComplete, setIsComplete] = useState(false);
8
+ const isRunningRef = useRef(false);
9
+ const timeoutRef = useRef(null);
10
+ const hasTriggeredRef = useRef(false);
11
+ const prevWordsRef = useRef(words);
12
+ // Store config in refs to avoid re-creating typeText on every prop change
13
+ const configRef = useRef({ speed, delay, hold, loop });
14
+ configRef.current = { speed, delay, hold, loop };
15
+ const wordsRef = useRef(Array.isArray(words) ? words : [words]);
16
+ wordsRef.current = Array.isArray(words) ? words : [words];
17
+ const typeText = useCallback(async () => {
18
+ if (isRunningRef.current)
19
+ return;
20
+ hasTriggeredRef.current = true;
21
+ isRunningRef.current = true;
22
+ const wordsArray = wordsRef.current;
23
+ const isSingleWord = wordsArray.length === 1;
24
+ const { speed, delay, hold, loop } = configRef.current;
25
+ // Initial delay
26
+ if (delay > 0) {
27
+ await new Promise((resolve) => {
28
+ timeoutRef.current = window.setTimeout(resolve, delay);
29
+ });
30
+ }
31
+ let currentIndex = 0;
32
+ while (true) {
33
+ const currentWord = wordsArray[currentIndex];
34
+ // Type out the word
35
+ for (let i = 0; i <= currentWord.length; i++) {
36
+ if (!isRunningRef.current)
37
+ return;
38
+ setDisplayText(currentWord.substring(0, i));
39
+ await new Promise((resolve) => {
40
+ timeoutRef.current = window.setTimeout(resolve, speed);
41
+ });
42
+ }
43
+ // If single word, stop here
44
+ if (isSingleWord) {
45
+ setIsComplete(true);
46
+ isRunningRef.current = false;
47
+ return;
48
+ }
49
+ // Hold the complete text
50
+ await new Promise((resolve) => {
51
+ timeoutRef.current = window.setTimeout(resolve, hold);
52
+ });
53
+ // Delete the word
54
+ for (let i = currentWord.length; i >= 0; i--) {
55
+ if (!isRunningRef.current)
56
+ return;
57
+ setDisplayText(currentWord.substring(0, i));
58
+ await new Promise((resolve) => {
59
+ timeoutRef.current = window.setTimeout(resolve, speed / 2); // Delete faster
60
+ });
61
+ }
62
+ // Move to next word
63
+ currentIndex = (currentIndex + 1) % wordsArray.length;
64
+ // If not looping and we're back at the start, stop
65
+ if (!loop && currentIndex === 0) {
66
+ isRunningRef.current = false;
67
+ return;
68
+ }
69
+ // Small pause before typing next word
70
+ await new Promise((resolve) => {
71
+ timeoutRef.current = window.setTimeout(resolve, speed);
72
+ });
73
+ }
74
+ }, []); // Empty deps since all values are in refs
75
+ useEffect(() => {
76
+ if (trigger === "instant" && !hasTriggeredRef.current) {
77
+ hasTriggeredRef.current = true;
78
+ typeText();
79
+ }
80
+ else if (trigger === "custom" && onTrigger && !hasTriggeredRef.current) {
81
+ hasTriggeredRef.current = true;
82
+ onTrigger(typeText);
83
+ }
84
+ // eslint-disable-next-line react-hooks/exhaustive-deps
85
+ }, []); // Only run on mount - typeText is stable via useCallback
86
+ // Reset when words actually change
87
+ useEffect(() => {
88
+ // Check if words actually changed
89
+ const wordsChanged = prevWordsRef.current !== words;
90
+ if (!wordsChanged)
91
+ return;
92
+ prevWordsRef.current = words;
93
+ isRunningRef.current = false;
94
+ hasTriggeredRef.current = false;
95
+ if (timeoutRef.current !== null) {
96
+ clearTimeout(timeoutRef.current);
97
+ }
98
+ setDisplayText("");
99
+ setIsComplete(false);
100
+ }, [words]);
101
+ return (_jsxs(Text, { ...text, children: [children, displayText, !isComplete && _jsx("span", { style: { opacity: 0.5 }, children: "|" })] }));
102
+ };
103
+ TypeFx.displayName = "TypeFx";
104
+ export { TypeFx };
105
+ //# sourceMappingURL=TypeFx.js.map