@dimasbaguspm/versaur 0.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.
Files changed (260) hide show
  1. package/README.md +81 -0
  2. package/dist/alert-DzSPXqwS.js +167 -0
  3. package/dist/app-bar-B4nQkgdL.js +92 -0
  4. package/dist/avatar-Bsn24V6g.js +91 -0
  5. package/dist/badge-DqLCHm9q.js +184 -0
  6. package/dist/bottom-bar-DOQ3gVwW.js +73 -0
  7. package/dist/breadcrumbs-PJV3izUu.js +59 -0
  8. package/dist/button-C8OibEPE.js +81 -0
  9. package/dist/button-float-B8tdLJkX.js +107 -0
  10. package/dist/button-icon-CWji4cBA.js +89 -0
  11. package/dist/calendar-CkLj89o2.js +112 -0
  12. package/dist/checkbox-input-CSboebwt.js +167 -0
  13. package/dist/chip-input-C1PJPDFq.js +189 -0
  14. package/dist/cn-Ca4KprQ1.js +2730 -0
  15. package/dist/components/alert/alert.atoms.d.ts +6 -0
  16. package/dist/components/alert/alert.d.ts +31 -0
  17. package/dist/components/alert/alert.stories.d.ts +42 -0
  18. package/dist/components/alert/helpers.d.ts +14 -0
  19. package/dist/components/alert/index.d.ts +2 -0
  20. package/dist/components/alert/types.d.ts +50 -0
  21. package/dist/components/alert.js +4 -0
  22. package/dist/components/app-bar/app-bar.atoms.d.ts +21 -0
  23. package/dist/components/app-bar/app-bar.d.ts +8 -0
  24. package/dist/components/app-bar/app-bar.stories.d.ts +19 -0
  25. package/dist/components/app-bar/helpers.d.ts +6 -0
  26. package/dist/components/app-bar/index.d.ts +2 -0
  27. package/dist/components/app-bar/types.d.ts +39 -0
  28. package/dist/components/app-bar.js +4 -0
  29. package/dist/components/avatar/avatar.atoms.d.ts +13 -0
  30. package/dist/components/avatar/avatar.d.ts +24 -0
  31. package/dist/components/avatar/avatar.stories.d.ts +42 -0
  32. package/dist/components/avatar/helpers.d.ts +14 -0
  33. package/dist/components/avatar/index.d.ts +2 -0
  34. package/dist/components/avatar/types.d.ts +46 -0
  35. package/dist/components/avatar.js +4 -0
  36. package/dist/components/badge/badge.d.ts +24 -0
  37. package/dist/components/badge/badge.stories.d.ts +46 -0
  38. package/dist/components/badge/helpers.d.ts +10 -0
  39. package/dist/components/badge/index.d.ts +2 -0
  40. package/dist/components/badge/types.d.ts +44 -0
  41. package/dist/components/badge.js +4 -0
  42. package/dist/components/bottom-bar/bottom-bar.atoms.d.ts +2 -0
  43. package/dist/components/bottom-bar/bottom-bar.d.ts +4 -0
  44. package/dist/components/bottom-bar/bottom-bar.stories.d.ts +6 -0
  45. package/dist/components/bottom-bar/helpers.d.ts +7 -0
  46. package/dist/components/bottom-bar/index.d.ts +2 -0
  47. package/dist/components/bottom-bar/types.d.ts +32 -0
  48. package/dist/components/bottom-bar.js +4 -0
  49. package/dist/components/breadcrumbs/breadcrumbs.atoms.d.ts +9 -0
  50. package/dist/components/breadcrumbs/breadcrumbs.d.ts +16 -0
  51. package/dist/components/breadcrumbs/breadcrumbs.stories.d.ts +7 -0
  52. package/dist/components/breadcrumbs/helpers.d.ts +7 -0
  53. package/dist/components/breadcrumbs/index.d.ts +2 -0
  54. package/dist/components/breadcrumbs/types.d.ts +21 -0
  55. package/dist/components/breadcrumbs.js +4 -0
  56. package/dist/components/button/button.d.ts +3 -0
  57. package/dist/components/button/button.stories.d.ts +50 -0
  58. package/dist/components/button/index.d.ts +2 -0
  59. package/dist/components/button/types.d.ts +30 -0
  60. package/dist/components/button-float/button-float.d.ts +8 -0
  61. package/dist/components/button-float/button-float.stories.d.ts +27 -0
  62. package/dist/components/button-float/helpers.d.ts +4 -0
  63. package/dist/components/button-float/index.d.ts +2 -0
  64. package/dist/components/button-float/types.d.ts +31 -0
  65. package/dist/components/button-float.js +4 -0
  66. package/dist/components/button-icon/button-icon.d.ts +3 -0
  67. package/dist/components/button-icon/button-icon.stories.d.ts +45 -0
  68. package/dist/components/button-icon/index.d.ts +2 -0
  69. package/dist/components/button-icon/types.d.ts +48 -0
  70. package/dist/components/button-icon.js +4 -0
  71. package/dist/components/button.js +4 -0
  72. package/dist/components/calendar/calendar.d.ts +8 -0
  73. package/dist/components/calendar/calendar.stories.d.ts +6 -0
  74. package/dist/components/calendar/index.d.ts +2 -0
  75. package/dist/components/calendar/types.d.ts +20 -0
  76. package/dist/components/calendar.js +4 -0
  77. package/dist/components/checkbox-input/checkbox-input.atoms.d.ts +9 -0
  78. package/dist/components/checkbox-input/checkbox-input.d.ts +5 -0
  79. package/dist/components/checkbox-input/checkbox-input.stories.d.ts +44 -0
  80. package/dist/components/checkbox-input/context.d.ts +10 -0
  81. package/dist/components/checkbox-input/helpers.d.ts +11 -0
  82. package/dist/components/checkbox-input/index.d.ts +2 -0
  83. package/dist/components/checkbox-input/types.d.ts +46 -0
  84. package/dist/components/checkbox-input.js +4 -0
  85. package/dist/components/chip-input/chip-input.atoms.d.ts +10 -0
  86. package/dist/components/chip-input/chip-input.d.ts +5 -0
  87. package/dist/components/chip-input/chip-input.stories.d.ts +12 -0
  88. package/dist/components/chip-input/context.d.ts +11 -0
  89. package/dist/components/chip-input/helpers.d.ts +4 -0
  90. package/dist/components/chip-input/index.d.ts +2 -0
  91. package/dist/components/chip-input/types.d.ts +51 -0
  92. package/dist/components/chip-input.js +4 -0
  93. package/dist/components/date-single-picker-input/date-single-picker-input.atoms.d.ts +13 -0
  94. package/dist/components/date-single-picker-input/date-single-picker-input.d.ts +10 -0
  95. package/dist/components/date-single-picker-input/date-single-picker-input.docked.d.ts +14 -0
  96. package/dist/components/date-single-picker-input/date-single-picker-input.docked.stories.d.ts +10 -0
  97. package/dist/components/date-single-picker-input/date-single-picker-input.modal.d.ts +15 -0
  98. package/dist/components/date-single-picker-input/date-single-picker-input.modal.stories.d.ts +10 -0
  99. package/dist/components/date-single-picker-input/helpers.d.ts +3 -0
  100. package/dist/components/date-single-picker-input/index.d.ts +2 -0
  101. package/dist/components/date-single-picker-input/types.d.ts +75 -0
  102. package/dist/components/date-single-picker-input/use-date-single-picker.d.ts +10 -0
  103. package/dist/components/date-single-picker-input.js +4 -0
  104. package/dist/components/drawer/context.d.ts +11 -0
  105. package/dist/components/drawer/drawer.atoms.d.ts +23 -0
  106. package/dist/components/drawer/drawer.d.ts +16 -0
  107. package/dist/components/drawer/drawer.stories.d.ts +41 -0
  108. package/dist/components/drawer/helpers.d.ts +39 -0
  109. package/dist/components/drawer/index.d.ts +10 -0
  110. package/dist/components/drawer/types.d.ts +93 -0
  111. package/dist/components/drawer.js +9 -0
  112. package/dist/components/icon/helpers.d.ts +4 -0
  113. package/dist/components/icon/icon.d.ts +8 -0
  114. package/dist/components/icon/icon.stories.d.ts +39 -0
  115. package/dist/components/icon/index.d.ts +2 -0
  116. package/dist/components/icon/types.d.ts +13 -0
  117. package/dist/components/icon.js +4 -0
  118. package/dist/components/index.d.ts +29 -0
  119. package/dist/components/loading-indicator/helpers.d.ts +9 -0
  120. package/dist/components/loading-indicator/index.d.ts +1 -0
  121. package/dist/components/loading-indicator/loading-indicator.atoms.d.ts +10 -0
  122. package/dist/components/loading-indicator/loading-indicator.d.ts +7 -0
  123. package/dist/components/loading-indicator/loading-indicator.stories.d.ts +16 -0
  124. package/dist/components/loading-indicator/types.d.ts +29 -0
  125. package/dist/components/loading-indicator.js +4 -0
  126. package/dist/components/menu/context.d.ts +13 -0
  127. package/dist/components/menu/helpers.d.ts +8 -0
  128. package/dist/components/menu/index.d.ts +2 -0
  129. package/dist/components/menu/menu.atoms.d.ts +14 -0
  130. package/dist/components/menu/menu.d.ts +7 -0
  131. package/dist/components/menu/menu.stories.d.ts +22 -0
  132. package/dist/components/menu/types.d.ts +36 -0
  133. package/dist/components/menu/use-menu.d.ts +3 -0
  134. package/dist/components/menu.js +4 -0
  135. package/dist/components/modal/helpers.d.ts +7 -0
  136. package/dist/components/modal/index.d.ts +2 -0
  137. package/dist/components/modal/modal.atoms.d.ts +8 -0
  138. package/dist/components/modal/modal.d.ts +7 -0
  139. package/dist/components/modal/modal.stories.d.ts +13 -0
  140. package/dist/components/modal/types.d.ts +48 -0
  141. package/dist/components/modal/use-escape-close.d.ts +6 -0
  142. package/dist/components/modal/use-focus-trap.d.ts +6 -0
  143. package/dist/components/modal.js +4 -0
  144. package/dist/components/radio-input/context.d.ts +11 -0
  145. package/dist/components/radio-input/helpers.d.ts +11 -0
  146. package/dist/components/radio-input/index.d.ts +2 -0
  147. package/dist/components/radio-input/radio-input.atoms.d.ts +9 -0
  148. package/dist/components/radio-input/radio-input.d.ts +5 -0
  149. package/dist/components/radio-input/radio-input.stories.d.ts +74 -0
  150. package/dist/components/radio-input/types.d.ts +54 -0
  151. package/dist/components/radio-input.js +4 -0
  152. package/dist/components/segment-multiple-input/context.d.ts +12 -0
  153. package/dist/components/segment-multiple-input/helpers.d.ts +15 -0
  154. package/dist/components/segment-multiple-input/index.d.ts +2 -0
  155. package/dist/components/segment-multiple-input/segment-multiple-input.atoms.d.ts +12 -0
  156. package/dist/components/segment-multiple-input/segment-multiple-input.d.ts +7 -0
  157. package/dist/components/segment-multiple-input/segment-multiple-input.stories.d.ts +66 -0
  158. package/dist/components/segment-multiple-input/types.d.ts +55 -0
  159. package/dist/components/segment-multiple-input.js +4 -0
  160. package/dist/components/segment-single-input/context.d.ts +12 -0
  161. package/dist/components/segment-single-input/helpers.d.ts +15 -0
  162. package/dist/components/segment-single-input/index.d.ts +2 -0
  163. package/dist/components/segment-single-input/segment-single-input.atoms.d.ts +11 -0
  164. package/dist/components/segment-single-input/segment-single-input.d.ts +7 -0
  165. package/dist/components/segment-single-input/segment-single-input.stories.d.ts +57 -0
  166. package/dist/components/segment-single-input/types.d.ts +55 -0
  167. package/dist/components/segment-single-input.js +4 -0
  168. package/dist/components/select-input/helpers.d.ts +3 -0
  169. package/dist/components/select-input/index.d.ts +2 -0
  170. package/dist/components/select-input/select-input.d.ts +9 -0
  171. package/dist/components/select-input/select-input.stories.d.ts +50 -0
  172. package/dist/components/select-input/types.d.ts +29 -0
  173. package/dist/components/select-input.js +4 -0
  174. package/dist/components/skeleton/helpers.d.ts +6 -0
  175. package/dist/components/skeleton/index.d.ts +2 -0
  176. package/dist/components/skeleton/skeleton.d.ts +6 -0
  177. package/dist/components/skeleton/skeleton.stories.d.ts +25 -0
  178. package/dist/components/skeleton/types.d.ts +17 -0
  179. package/dist/components/skeleton.js +4 -0
  180. package/dist/components/snackbar/helpers.d.ts +8 -0
  181. package/dist/components/snackbar/index.d.ts +2 -0
  182. package/dist/components/snackbar/snackbar.atoms.d.ts +10 -0
  183. package/dist/components/snackbar/snackbar.d.ts +6 -0
  184. package/dist/components/snackbar/snackbar.stories.d.ts +8 -0
  185. package/dist/components/snackbar/types.d.ts +40 -0
  186. package/dist/components/snackbar.js +4 -0
  187. package/dist/components/switch-input/helpers.d.ts +18 -0
  188. package/dist/components/switch-input/index.d.ts +3 -0
  189. package/dist/components/switch-input/switch-input.atoms.d.ts +28 -0
  190. package/dist/components/switch-input/switch-input.d.ts +6 -0
  191. package/dist/components/switch-input/switch-input.stories.d.ts +10 -0
  192. package/dist/components/switch-input/types.d.ts +49 -0
  193. package/dist/components/switch-input.js +7 -0
  194. package/dist/components/tabs/context.d.ts +3 -0
  195. package/dist/components/tabs/helpers.d.ts +8 -0
  196. package/dist/components/tabs/index.d.ts +2 -0
  197. package/dist/components/tabs/tabs.atoms.d.ts +10 -0
  198. package/dist/components/tabs/tabs.d.ts +5 -0
  199. package/dist/components/tabs/tabs.stories.d.ts +17 -0
  200. package/dist/components/tabs/types.d.ts +41 -0
  201. package/dist/components/tabs/use-tab-indicator.d.ts +13 -0
  202. package/dist/components/tabs.js +4 -0
  203. package/dist/components/text/helpers.d.ts +18 -0
  204. package/dist/components/text/index.d.ts +2 -0
  205. package/dist/components/text/text.d.ts +7 -0
  206. package/dist/components/text/text.stories.d.ts +14 -0
  207. package/dist/components/text/types.d.ts +30 -0
  208. package/dist/components/text-input/helpers.d.ts +3 -0
  209. package/dist/components/text-input/index.d.ts +2 -0
  210. package/dist/components/text-input/text-input.d.ts +9 -0
  211. package/dist/components/text-input/text-input.stories.d.ts +20 -0
  212. package/dist/components/text-input/types.d.ts +33 -0
  213. package/dist/components/text-input.js +4 -0
  214. package/dist/components/text.js +4 -0
  215. package/dist/components/textarea-input/helpers.d.ts +4 -0
  216. package/dist/components/textarea-input/index.d.ts +2 -0
  217. package/dist/components/textarea-input/textarea-input.d.ts +10 -0
  218. package/dist/components/textarea-input/textarea-input.stories.d.ts +50 -0
  219. package/dist/components/textarea-input/types.d.ts +40 -0
  220. package/dist/components/textarea-input.js +4 -0
  221. package/dist/components/tile/helpers.d.ts +8 -0
  222. package/dist/components/tile/index.d.ts +2 -0
  223. package/dist/components/tile/tile.d.ts +11 -0
  224. package/dist/components/tile/tile.stories.d.ts +35 -0
  225. package/dist/components/tile/types.d.ts +23 -0
  226. package/dist/components/tile.js +4 -0
  227. package/dist/components/top-bar/helpers.d.ts +26 -0
  228. package/dist/components/top-bar/index.d.ts +2 -0
  229. package/dist/components/top-bar/top-bar.atoms.d.ts +6 -0
  230. package/dist/components/top-bar/top-bar.d.ts +8 -0
  231. package/dist/components/top-bar/top-bar.stories.d.ts +15 -0
  232. package/dist/components/top-bar/types.d.ts +38 -0
  233. package/dist/components/top-bar.js +4 -0
  234. package/dist/date-single-picker-input--Ew0O9NQ.js +252 -0
  235. package/dist/drawer-DrnAR2a4.js +218 -0
  236. package/dist/helpers-CEDtBUGM.js +37 -0
  237. package/dist/hooks/index.d.ts +1 -0
  238. package/dist/hooks/index.js +1 -0
  239. package/dist/icon-D-lTZMHY.js +44 -0
  240. package/dist/index-DU1SCUkk.js +329 -0
  241. package/dist/index.d.ts +2 -0
  242. package/dist/index.js +68 -0
  243. package/dist/loading-indicator-BZMnT5PA.js +168 -0
  244. package/dist/menu-BZvilMF7.js +174 -0
  245. package/dist/modal-BGAtqMl9.js +149 -0
  246. package/dist/radio-input-BRGoevZY.js +173 -0
  247. package/dist/segment-multiple-input-VwHCqFd6.js +229 -0
  248. package/dist/segment-single-input-Cqoo7-C2.js +228 -0
  249. package/dist/select-input-DCb0usvK.js +108 -0
  250. package/dist/skeleton-D4X5USf_.js +59 -0
  251. package/dist/snackbar-CYias-fJ.js +79 -0
  252. package/dist/styles.css +115 -0
  253. package/dist/switch-input-C5s1lvYh.js +186 -0
  254. package/dist/tabs-C8aRKfxS.js +216 -0
  255. package/dist/text-B7e-au41.js +120 -0
  256. package/dist/text-input-BsWvUk_H.js +73 -0
  257. package/dist/textarea-input-DZExXEE8.js +102 -0
  258. package/dist/tile-Du7YciCG.js +51 -0
  259. package/dist/top-bar-ErHvwR4K.js +62 -0
  260. package/package.json +97 -0
@@ -0,0 +1,16 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import('react').ForwardRefExoticComponent<import('./types').LoadingIndicatorProps & import('react').RefAttributes<HTMLDivElement>>;
5
+ tags: string[];
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ /**
10
+ * Spinner Variants - All colors
11
+ */
12
+ export declare const SpinnerVariants: Story;
13
+ /**
14
+ * Bar Variants - All colors
15
+ */
16
+ export declare const BarVariants: Story;
@@ -0,0 +1,29 @@
1
+ import { HTMLAttributes } from 'react';
2
+ /**
3
+ * LoadingIndicatorProps defines the props for the LoadingIndicator component
4
+ * @property type - Type of loading indicator: spinner (default), bar
5
+ * @property size - Size of the indicator: sm, md, lg
6
+ * @property color - Color variant based on Versaur color system
7
+ * @property ariaLabel - Accessible label for screen readers
8
+ */
9
+ export interface LoadingIndicatorProps extends HTMLAttributes<HTMLDivElement> {
10
+ /**
11
+ * Type of loading indicator: spinner (circular) or bar (linear)
12
+ * Spinner is recommended for desktop, bar for mobile or progress contexts
13
+ */
14
+ type?: 'spinner' | 'bar';
15
+ /**
16
+ * Size of the indicator: sm, md, lg
17
+ */
18
+ size?: 'sm' | 'md' | 'lg';
19
+ /**
20
+ * Color variant based on Versaur color system
21
+ * Core: primary, secondary, tertiary, ghost, neutral
22
+ * Semantic: success, info, warning, danger
23
+ */
24
+ color?: 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'neutral' | 'success' | 'info' | 'warning' | 'danger';
25
+ /**
26
+ * Accessible label for screen readers
27
+ */
28
+ ariaLabel?: string;
29
+ }
@@ -0,0 +1,4 @@
1
+ import { L as r } from "../loading-indicator-BZMnT5PA.js";
2
+ export {
3
+ r as LoadingIndicator
4
+ };
@@ -0,0 +1,13 @@
1
+ import { MenuSize } from './types';
2
+ export interface MenuContextValue {
3
+ /** Whether the menu is open (controlled externally) */
4
+ open: boolean;
5
+ /** Ref to the trigger button */
6
+ triggerRef: React.RefObject<HTMLButtonElement | null>;
7
+ /** Ref to the menu content */
8
+ contentRef: React.RefObject<HTMLDivElement | null>;
9
+ /** Menu size variant */
10
+ size: MenuSize;
11
+ }
12
+ export declare const MenuContext: import('react').Context<MenuContextValue | null>;
13
+ export declare const useMenuContext: () => MenuContextValue;
@@ -0,0 +1,8 @@
1
+ export declare const menuVariants: (props?: ({
2
+ variant?: "default" | "outline" | null | undefined;
3
+ size?: "sm" | "md" | null | undefined;
4
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
+ export declare const menuItemVariants: (props?: ({
6
+ variant?: "default" | "outline" | null | undefined;
7
+ size?: "sm" | "md" | null | undefined;
8
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -0,0 +1,2 @@
1
+ export * from './menu';
2
+ export * from './types';
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { MenuTriggerProps, MenuContentProps, MenuItemProps } from './types';
3
+ /**
4
+ * MenuTrigger: Button to open/close menu
5
+ */
6
+ export declare const MenuTrigger: React.ForwardRefExoticComponent<MenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
7
+ /**
8
+ * MenuContent: Menu popup, positioned below trigger
9
+ */
10
+ export declare const MenuContent: React.ForwardRefExoticComponent<MenuContentProps & React.RefAttributes<HTMLDivElement>>;
11
+ /**
12
+ * MenuItem: Single menu option
13
+ */
14
+ export declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ import { MenuRootProps } from './types';
3
+ export declare const Menu: React.FC<MenuRootProps> & {
4
+ Trigger: React.ForwardRefExoticComponent<import('./types').MenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ Content: React.ForwardRefExoticComponent<import('./types').MenuContentProps & React.RefAttributes<HTMLDivElement>>;
6
+ Item: React.ForwardRefExoticComponent<import('./types').MenuItemProps & React.RefAttributes<HTMLButtonElement>>;
7
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Menu stories for Storybook
3
+ * Group: Menu
4
+ */
5
+ declare const _default: {
6
+ title: string;
7
+ component: import('react').FC<import('./types').MenuRootProps> & {
8
+ Trigger: import('react').ForwardRefExoticComponent<import('./types').MenuTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
9
+ Content: import('react').ForwardRefExoticComponent<import('./types').MenuContentProps & import('react').RefAttributes<HTMLDivElement>>;
10
+ Item: import('react').ForwardRefExoticComponent<import('./types').MenuItemProps & import('react').RefAttributes<HTMLButtonElement>>;
11
+ };
12
+ parameters: {
13
+ docs: {
14
+ description: {
15
+ component: string;
16
+ };
17
+ };
18
+ };
19
+ };
20
+ export default _default;
21
+ export declare const Basic: () => import("react/jsx-runtime").JSX.Element;
22
+ export declare const Sizes: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,36 @@
1
+ import { ReactNode, ButtonHTMLAttributes, HTMLAttributes } from 'react';
2
+ export type MenuSize = 'sm' | 'md';
3
+ /**
4
+ * Props for MenuRoot
5
+ */
6
+ export interface MenuRootProps {
7
+ /** Menu children (Trigger, Content, etc) */
8
+ children: ReactNode;
9
+ /** open state */
10
+ isOpen: boolean;
11
+ /** Callback when open state changes */
12
+ onOutsideClick: () => void;
13
+ /** Menu size variant */
14
+ size?: MenuSize;
15
+ }
16
+ /**
17
+ * Props for MenuTrigger
18
+ */
19
+ export interface MenuTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
20
+ /** Trigger content */
21
+ children: ReactNode;
22
+ }
23
+ /**
24
+ * Props for MenuContent
25
+ */
26
+ export interface MenuContentProps extends HTMLAttributes<HTMLDivElement> {
27
+ /** Menu items */
28
+ children: ReactNode;
29
+ }
30
+ /**
31
+ * Props for MenuItem
32
+ */
33
+ export interface MenuItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
34
+ /** Item content */
35
+ children: ReactNode;
36
+ }
@@ -0,0 +1,3 @@
1
+ export declare function useMenuOutsideClick(isOpen: boolean, contentRef: React.RefObject<HTMLDivElement | null>, triggerRef: React.RefObject<HTMLButtonElement | null>, onOutsideClick: () => void): void;
2
+ export declare function useMenuFocusFirstItem(isOpen: boolean, contentRef: React.RefObject<HTMLDivElement | null>): void;
3
+ export declare function useMenuKeyboardNavigation(isOpen: boolean, contentRef: React.RefObject<HTMLDivElement | null>, triggerRef: React.RefObject<HTMLButtonElement | null>, onOutsideClick: () => void): void;
@@ -0,0 +1,4 @@
1
+ import { M as r } from "../menu-BZvilMF7.js";
2
+ export {
3
+ r as Menu
4
+ };
@@ -0,0 +1,7 @@
1
+ export declare const modalOverlayVariants: (props?: ({
2
+ placement?: "center" | "top" | null | undefined;
3
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
4
+ export declare const modalContentVariants: (props?: ({
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ placement?: "center" | "top" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -0,0 +1,2 @@
1
+ export { Modal } from './modal';
2
+ export * from './types';
@@ -0,0 +1,8 @@
1
+ import { ModalHeaderProps, ModalFooterProps, ModalOverlayProps, ModalBodyProps } from './types';
2
+ export declare const ModalHeader: import('react').ForwardRefExoticComponent<ModalHeaderProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ export declare const ModalFooter: import('react').ForwardRefExoticComponent<ModalFooterProps & import('react').RefAttributes<HTMLDivElement>>;
4
+ export declare const ModalBody: import('react').ForwardRefExoticComponent<ModalBodyProps & import('react').RefAttributes<HTMLDivElement>>;
5
+ /**
6
+ * ModalOverlay atom: handles overlay rendering, click-to-close, and transitions
7
+ */
8
+ export declare const ModalOverlay: import('react').ForwardRefExoticComponent<ModalOverlayProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { ModalRootProps } from './types';
3
+ export declare const Modal: FC<ModalRootProps> & {
4
+ Header: import('react').ForwardRefExoticComponent<import('./types').ModalHeaderProps & import('react').RefAttributes<HTMLDivElement>>;
5
+ Body: import('react').ForwardRefExoticComponent<import('./types').ModalBodyProps & import('react').RefAttributes<HTMLDivElement>>;
6
+ Footer: import('react').ForwardRefExoticComponent<import('./types').ModalFooterProps & import('react').RefAttributes<HTMLDivElement>>;
7
+ };
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ component: React.FC<import('./types').ModalRootProps> & {
5
+ Header: React.ForwardRefExoticComponent<import('./types').ModalHeaderProps & React.RefAttributes<HTMLDivElement>>;
6
+ Body: React.ForwardRefExoticComponent<import('./types').ModalBodyProps & React.RefAttributes<HTMLDivElement>>;
7
+ Footer: React.ForwardRefExoticComponent<import('./types').ModalFooterProps & React.RefAttributes<HTMLDivElement>>;
8
+ };
9
+ };
10
+ export default _default;
11
+ export declare function Default(): import("react/jsx-runtime").JSX.Element;
12
+ export declare const Sizes: () => import("react/jsx-runtime").JSX.Element;
13
+ export declare const Placement: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,48 @@
1
+ import { HTMLAttributes } from 'react';
2
+ /**
3
+ * Modal component prop types
4
+ */
5
+ export type ModalSize = 'sm' | 'md' | 'lg';
6
+ export type ModalPlacement = 'top' | 'center';
7
+ /**
8
+ * Modal compound root
9
+ */
10
+ export interface ModalRootProps {
11
+ /** Controls whether the modal is open */
12
+ isOpen: boolean;
13
+ /** Called when modal requests to close (ESC, overlay click) */
14
+ onOpenChange?: (open: boolean) => void;
15
+ /** Modal size variant */
16
+ size?: ModalSize;
17
+ /** Modal placement variant */
18
+ placement?: ModalPlacement;
19
+ /** Children (Modal compound parts) */
20
+ children: React.ReactNode;
21
+ /** Optional: disables closing on overlay click */
22
+ disableOverlayClose?: boolean;
23
+ /** Optional: disables closing on ESC key */
24
+ disableEscClose?: boolean;
25
+ /** Optional: ARIA label for dialog */
26
+ 'aria-label'?: string;
27
+ /** Optional: ARIA labelledby for dialog */
28
+ 'aria-labelledby'?: string;
29
+ /** Optional: ARIA describedby for dialog */
30
+ 'aria-describedby'?: string;
31
+ }
32
+ /**
33
+ * Props for Modal.Header, Modal.Footer
34
+ */
35
+ export interface ModalHeaderProps extends HTMLAttributes<HTMLDivElement> {
36
+ children: React.ReactNode;
37
+ }
38
+ export interface ModalFooterProps extends HTMLAttributes<HTMLDivElement> {
39
+ children: React.ReactNode;
40
+ }
41
+ export interface ModalBodyProps extends HTMLAttributes<HTMLDivElement> {
42
+ children: React.ReactNode;
43
+ }
44
+ export interface ModalOverlayProps extends HTMLAttributes<HTMLDivElement> {
45
+ children: React.ReactNode;
46
+ placement?: string;
47
+ onOverlayClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
48
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Calls handler when Escape key is pressed and active is true
3
+ * @param active - Whether to listen for Escape key
4
+ * @param handler - Function to call on Escape
5
+ */
6
+ export declare function useEscapeClose(active: boolean, handler: () => void): void;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Focuses the first focusable element inside the given ref when active is true
3
+ * @param ref - The ref to the container element
4
+ * @param active - Whether to activate the focus trap
5
+ */
6
+ export declare function useFocusTrap(ref: React.RefObject<HTMLElement | null>, active: boolean): void;
@@ -0,0 +1,4 @@
1
+ import { M as r } from "../modal-BGAtqMl9.js";
2
+ export {
3
+ r as Modal
4
+ };
@@ -0,0 +1,11 @@
1
+ import { RadioInputProps } from './types';
2
+ interface RadioInputContextValue {
3
+ variant: RadioInputProps['variant'];
4
+ size: RadioInputProps['size'];
5
+ disabled?: boolean;
6
+ error?: boolean;
7
+ name: string;
8
+ }
9
+ export declare const RadioInputContext: import('react').Context<RadioInputContextValue | null>;
10
+ export declare const useRadioInputContext: () => RadioInputContextValue;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ export declare const radioGroupVariants: (props?: ({
2
+ direction?: "horizontal" | "vertical" | null | undefined;
3
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
4
+ export declare const radioOptionVariants: (props?: ({
5
+ variant?: "primary" | "secondary" | "tertiary" | "ghost" | "neutral" | "success" | "info" | "warning" | "danger" | "primary-outline" | "secondary-outline" | "tertiary-outline" | "ghost-outline" | "neutral-outline" | "success-outline" | "info-outline" | "warning-outline" | "danger-outline" | null | undefined;
6
+ size?: "sm" | "md" | "lg" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ export declare const radioLabelVariants: (props?: ({
9
+ size?: "sm" | "md" | "lg" | null | undefined;
10
+ disabled?: boolean | null | undefined;
11
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -0,0 +1,2 @@
1
+ export { RadioInput } from './radio-input';
2
+ export type { RadioInputProps, RadioOptionProps } from './types';
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { RadioOptionProps } from './types';
3
+ /**
4
+ * RadioInput.Option atom component
5
+ *
6
+ * Individual radio option that can be used within RadioInput
7
+ * Features custom styling with ::before pseudo-element for radio dot
8
+ */
9
+ export declare const RadioOption: React.ForwardRefExoticComponent<RadioOptionProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { RadioInputProps } from './types';
3
+ export declare const RadioInput: React.ForwardRefExoticComponent<RadioInputProps & React.RefAttributes<HTMLDivElement>> & {
4
+ Option: React.ForwardRefExoticComponent<import('./types').RadioOptionProps & React.RefAttributes<HTMLInputElement>>;
5
+ };
@@ -0,0 +1,74 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ import { RadioInputProps } from './types';
3
+ /**
4
+ * RadioInput provides a radio button group with Versaur's design system styling.
5
+ * Perfect for single-selection scenarios with clear visual hierarchy and accessibility.
6
+ *
7
+ * This component follows the compound pattern with RadioInput.Option for flexible composition.
8
+ */
9
+ declare const meta: {
10
+ title: string;
11
+ component: import('react').ForwardRefExoticComponent<RadioInputProps & import('react').RefAttributes<HTMLDivElement>> & {
12
+ Option: import('react').ForwardRefExoticComponent<import('./types').RadioOptionProps & import('react').RefAttributes<HTMLInputElement>>;
13
+ };
14
+ parameters: {
15
+ layout: string;
16
+ docs: {
17
+ description: {
18
+ component: string;
19
+ };
20
+ };
21
+ };
22
+ argTypes: {
23
+ variant: {
24
+ control: "select";
25
+ options: string[];
26
+ };
27
+ size: {
28
+ control: "select";
29
+ options: string[];
30
+ };
31
+ direction: {
32
+ control: "select";
33
+ options: string[];
34
+ };
35
+ disabled: {
36
+ control: "boolean";
37
+ };
38
+ };
39
+ tags: string[];
40
+ };
41
+ export default meta;
42
+ type Story = StoryObj<typeof meta>;
43
+ /**
44
+ * Default radio input with primary variant
45
+ */
46
+ export declare const Default: Story;
47
+ /**
48
+ * Radio input with descriptions for each option
49
+ */
50
+ export declare const WithDescriptions: Story;
51
+ /**
52
+ * Horizontal layout radio input
53
+ */
54
+ export declare const Horizontal: Story;
55
+ /**
56
+ * Different size variants
57
+ */
58
+ export declare const Sizes: Story;
59
+ /**
60
+ * Error state with validation message
61
+ */
62
+ export declare const WithError: Story;
63
+ /**
64
+ * Disabled state
65
+ */
66
+ export declare const Disabled: Story;
67
+ /**
68
+ * All color variants showcase
69
+ */
70
+ export declare const ColorVariants: Story;
71
+ /**
72
+ * Semantic variants for different states
73
+ */
74
+ export declare const SemanticVariants: Story;
@@ -0,0 +1,54 @@
1
+ import { InputHTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Props for the RadioInput component
4
+ */
5
+ export interface RadioInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
6
+ /**
7
+ * Visual style variant supporting Versaur color system
8
+ * Core variants: primary (coral), secondary (sage), tertiary (mist), ghost (slate), neutral (light gray)
9
+ * Semantic variants: success, info, warning, danger
10
+ * Each variant supports outline form for flexible design expression
11
+ */
12
+ variant?: 'primary' | 'primary-outline' | 'secondary' | 'secondary-outline' | 'tertiary' | 'tertiary-outline' | 'ghost' | 'ghost-outline' | 'neutral' | 'neutral-outline' | 'success' | 'success-outline' | 'info' | 'info-outline' | 'warning' | 'warning-outline' | 'danger' | 'danger-outline';
13
+ /**
14
+ * Size variant for the radio inputs
15
+ */
16
+ size?: 'sm' | 'md' | 'lg';
17
+ /**
18
+ * Label text to display above the radio group
19
+ */
20
+ label?: ReactNode;
21
+ /**
22
+ * Helper text to display below the radio group
23
+ */
24
+ helperText?: ReactNode;
25
+ /**
26
+ * Error message for invalid state
27
+ */
28
+ error?: ReactNode;
29
+ /**
30
+ * Direction of radio layout
31
+ */
32
+ direction?: 'horizontal' | 'vertical';
33
+ /**
34
+ * The name attribute for the radio group - required for radio functionality
35
+ */
36
+ name: string;
37
+ }
38
+ /**
39
+ * Props for the RadioInput.Option component
40
+ */
41
+ export interface RadioOptionProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'name'> {
42
+ /**
43
+ * The option label content
44
+ */
45
+ children: ReactNode;
46
+ /**
47
+ * Description text below the option label
48
+ */
49
+ description?: ReactNode;
50
+ /**
51
+ * The value for this radio option
52
+ */
53
+ value: string;
54
+ }
@@ -0,0 +1,4 @@
1
+ import { R as p } from "../radio-input-BRGoevZY.js";
2
+ export {
3
+ p as RadioInput
4
+ };
@@ -0,0 +1,12 @@
1
+ import { SegmentMultipleInputProps } from './types';
2
+ export interface SegmentMultipleInputContextValue {
3
+ variant: SegmentMultipleInputProps['variant'];
4
+ size: SegmentMultipleInputProps['size'];
5
+ disabled?: boolean;
6
+ error?: boolean;
7
+ name: string;
8
+ value?: string[];
9
+ onChange?: (value: string[]) => void;
10
+ }
11
+ export declare const SegmentMultipleInputContext: import('react').Context<SegmentMultipleInputContextValue | null>;
12
+ export declare const useSegmentMultipleInputContext: () => SegmentMultipleInputContextValue;
@@ -0,0 +1,15 @@
1
+ export declare const segmentGroupVariants: (props?: ({
2
+ variant?: "primary" | "secondary" | "tertiary" | "ghost" | "neutral" | "success" | "info" | "warning" | "danger" | "primary-outline" | "secondary-outline" | "tertiary-outline" | "ghost-outline" | "neutral-outline" | "success-outline" | "info-outline" | "warning-outline" | "danger-outline" | null | undefined;
3
+ size?: "sm" | "md" | "lg" | null | undefined;
4
+ error?: boolean | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export declare const segmentOptionVariants: (props?: ({
7
+ variant?: "primary" | "secondary" | "tertiary" | "ghost" | "neutral" | "success" | "info" | "warning" | "danger" | "primary-outline" | "secondary-outline" | "tertiary-outline" | "ghost-outline" | "neutral-outline" | "success-outline" | "info-outline" | "warning-outline" | "danger-outline" | null | undefined;
8
+ size?: "sm" | "md" | "lg" | null | undefined;
9
+ rounded?: "first" | "last" | "middle" | "single" | null | undefined;
10
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
11
+ /**
12
+ * Get the selected/checked state classes for segment options
13
+ * Includes hover state overrides to maintain consistent appearance when selected
14
+ */
15
+ export declare const getSegmentSelectedClasses: (variant: string | undefined) => string;
@@ -0,0 +1,2 @@
1
+ export { SegmentMultipleInput } from './segment-multiple-input';
2
+ export type { SegmentMultipleInputProps, SegmentMultipleInputOptionProps, } from './types';
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { SegmentMultipleInputOptionProps } from './types';
3
+ /**
4
+ * SegmentMultipleInput.Option atom component
5
+ *
6
+ * Individual segment option that can be used within SegmentMultipleInput
7
+ * Features tab-like styling with seamless connections between segments
8
+ * Uses checkbox input pattern for multiple selection
9
+ */
10
+ export declare const SegmentOption: React.ForwardRefExoticComponent<SegmentMultipleInputOptionProps & {
11
+ position?: "first" | "middle" | "last" | "single";
12
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ import { SegmentMultipleInputProps } from './types';
3
+ export declare const SegmentMultipleInput: React.ForwardRefExoticComponent<SegmentMultipleInputProps & React.RefAttributes<HTMLDivElement>> & {
4
+ Option: React.ForwardRefExoticComponent<import('./types').SegmentMultipleInputOptionProps & {
5
+ position?: "first" | "middle" | "last" | "single";
6
+ } & React.RefAttributes<HTMLInputElement>>;
7
+ };
@@ -0,0 +1,66 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { SegmentMultipleInput } from './segment-multiple-input';
3
+ /**
4
+ * SegmentMultipleInput provides a tab-like interface for selecting multiple options.
5
+ * Perfect for filters, preferences, or any scenario where users need to choose multiple items from a set.
6
+ *
7
+ * Features:
8
+ * - Multiple selection with checkbox behavior
9
+ * - Users can unselect options by clicking them again
10
+ * - Tab-like visual design with seamless segment connections
11
+ * - Full accessibility support with proper ARIA attributes
12
+ * - Controlled component pattern for React forms
13
+ */
14
+ declare const meta: Meta<typeof SegmentMultipleInput>;
15
+ export default meta;
16
+ type Story = StoryObj<typeof meta>;
17
+ /**
18
+ * Default segment multiple input with primary variant.
19
+ * Users can select multiple options and deselect them by clicking again.
20
+ */
21
+ export declare const Default: Story;
22
+ /**
23
+ * Segment multiple input with multiple selections.
24
+ * Shows how multiple options can be selected simultaneously.
25
+ */
26
+ export declare const MultipleSelected: Story;
27
+ /**
28
+ * Segment multiple input in different sizes.
29
+ * Demonstrates the available size variants.
30
+ */
31
+ export declare const Sizes: Story;
32
+ /**
33
+ * Segment multiple input showing core color variants.
34
+ * Demonstrates the main color options available.
35
+ */
36
+ export declare const CoreVariants: Story;
37
+ /**
38
+ * Segment multiple input showing outline variants.
39
+ * Demonstrates the outline style options.
40
+ */
41
+ export declare const OutlineVariants: Story;
42
+ /**
43
+ * Segment multiple input showing semantic variants.
44
+ * Demonstrates success, info, warning, and danger states.
45
+ */
46
+ export declare const SemanticVariants: Story;
47
+ /**
48
+ * Segment multiple input with error state.
49
+ * Shows how validation errors are displayed.
50
+ */
51
+ export declare const WithError: Story;
52
+ /**
53
+ * Segment multiple input in disabled state.
54
+ * Shows the component when interaction is disabled.
55
+ */
56
+ export declare const Disabled: Story;
57
+ /**
58
+ * Segment multiple input with individual disabled options.
59
+ * Shows how specific options can be disabled while others remain interactive.
60
+ */
61
+ export declare const PartiallyDisabled: Story;
62
+ /**
63
+ * Segment multiple input with single option.
64
+ * Shows how the component adapts to a single option with rounded corners.
65
+ */
66
+ export declare const SingleOption: Story;