@donotdev/components 0.0.13 → 0.0.15

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 (209) hide show
  1. package/dist/advanced/Code/CodeContent.d.ts.map +1 -1
  2. package/dist/advanced/Code/CodeContent.js +5 -1
  3. package/dist/advanced/Code/CodeSkeleton.d.ts.map +1 -1
  4. package/dist/advanced/Code/CodeSkeleton.js +2 -1
  5. package/dist/advanced/ImageGallery/ImageGallery.d.ts +39 -0
  6. package/dist/advanced/ImageGallery/ImageGallery.d.ts.map +1 -0
  7. package/dist/advanced/ImageGallery/ImageGallery.js +138 -0
  8. package/dist/advanced/ImageGallery/index.d.ts +3 -0
  9. package/dist/advanced/ImageGallery/index.d.ts.map +1 -0
  10. package/dist/advanced/ImageGallery/index.js +2 -0
  11. package/dist/advanced/JsonViewer/JsonViewer.d.ts.map +1 -1
  12. package/dist/advanced/JsonViewer/JsonViewer.js +2 -1
  13. package/dist/advanced/index.d.ts +2 -0
  14. package/dist/advanced/index.d.ts.map +1 -1
  15. package/dist/advanced/index.js +1 -0
  16. package/dist/atomic/Accordion/AccordionPrimitive.d.ts +1 -1
  17. package/dist/atomic/Accordion/AccordionPrimitive.d.ts.map +1 -1
  18. package/dist/atomic/Accordion/AccordionPrimitive.js +1 -1
  19. package/dist/atomic/Accordion/index.d.ts.map +1 -1
  20. package/dist/atomic/Accordion/index.js +1 -1
  21. package/dist/atomic/AlertDialog/AlertDialogPrimitive.d.ts +1 -1
  22. package/dist/atomic/AlertDialog/AlertDialogPrimitive.d.ts.map +1 -1
  23. package/dist/atomic/AlertDialog/AlertDialogPrimitive.js +1 -1
  24. package/dist/atomic/AlertDialog/index.d.ts.map +1 -1
  25. package/dist/atomic/AlertDialog/index.js +1 -1
  26. package/dist/atomic/Avatar/AvatarPrimitive.d.ts +1 -2
  27. package/dist/atomic/Avatar/AvatarPrimitive.d.ts.map +1 -1
  28. package/dist/atomic/Avatar/AvatarPrimitive.js +1 -2
  29. package/dist/atomic/Avatar/index.d.ts +1 -1
  30. package/dist/atomic/Avatar/index.d.ts.map +1 -1
  31. package/dist/atomic/Avatar/index.js +1 -1
  32. package/dist/atomic/Badge/index.d.ts +1 -1
  33. package/dist/atomic/Button/index.d.ts +1 -1
  34. package/dist/atomic/Button/index.d.ts.map +1 -1
  35. package/dist/atomic/Checkbox/CheckboxPrimitive.d.ts +1 -1
  36. package/dist/atomic/Checkbox/CheckboxPrimitive.d.ts.map +1 -1
  37. package/dist/atomic/Checkbox/CheckboxPrimitive.js +1 -1
  38. package/dist/atomic/Checkbox/index.d.ts +17 -3
  39. package/dist/atomic/Checkbox/index.d.ts.map +1 -1
  40. package/dist/atomic/Checkbox/index.js +21 -5
  41. package/dist/atomic/Collapsible/CollapsiblePrimitive.d.ts +1 -2
  42. package/dist/atomic/Collapsible/CollapsiblePrimitive.d.ts.map +1 -1
  43. package/dist/atomic/Collapsible/CollapsiblePrimitive.js +1 -2
  44. package/dist/atomic/Collapsible/index.d.ts.map +1 -1
  45. package/dist/atomic/Collapsible/index.js +6 -2
  46. package/dist/atomic/ContextMenu/ContextMenuPrimitive.d.ts +1 -1
  47. package/dist/atomic/ContextMenu/ContextMenuPrimitive.d.ts.map +1 -1
  48. package/dist/atomic/ContextMenu/ContextMenuPrimitive.js +1 -1
  49. package/dist/atomic/ContextMenu/index.d.ts.map +1 -1
  50. package/dist/atomic/ContextMenu/index.js +1 -1
  51. package/dist/atomic/Dialog/DialogPrimitive.d.ts +1 -1
  52. package/dist/atomic/Dialog/DialogPrimitive.d.ts.map +1 -1
  53. package/dist/atomic/Dialog/DialogPrimitive.js +1 -1
  54. package/dist/atomic/DropdownMenu/DropdownMenuPrimitive.d.ts +1 -1
  55. package/dist/atomic/DropdownMenu/DropdownMenuPrimitive.d.ts.map +1 -1
  56. package/dist/atomic/DropdownMenu/DropdownMenuPrimitive.js +1 -1
  57. package/dist/atomic/DropdownMenu/index.d.ts.map +1 -1
  58. package/dist/atomic/DropdownMenu/index.js +1 -1
  59. package/dist/atomic/HoverCard/HoverCardPrimitive.d.ts +1 -1
  60. package/dist/atomic/HoverCard/HoverCardPrimitive.d.ts.map +1 -1
  61. package/dist/atomic/HoverCard/HoverCardPrimitive.js +1 -1
  62. package/dist/atomic/HoverCard/index.d.ts.map +1 -1
  63. package/dist/atomic/HoverCard/index.js +1 -1
  64. package/dist/atomic/Icons/Partner/providerIcons.d.ts.map +1 -1
  65. package/dist/atomic/Icons/Partner/providerIcons.js +17 -1
  66. package/dist/atomic/Input/index.d.ts +6 -1
  67. package/dist/atomic/Input/index.d.ts.map +1 -1
  68. package/dist/atomic/Input/index.js +10 -5
  69. package/dist/atomic/Label/FloatingLabel.d.ts +3 -1
  70. package/dist/atomic/Label/FloatingLabel.d.ts.map +1 -1
  71. package/dist/atomic/Label/FloatingLabel.js +2 -2
  72. package/dist/atomic/Label/LabelPrimitive.d.ts +1 -1
  73. package/dist/atomic/Label/LabelPrimitive.d.ts.map +1 -1
  74. package/dist/atomic/Label/LabelPrimitive.js +1 -1
  75. package/dist/atomic/Label/index.d.ts.map +1 -1
  76. package/dist/atomic/Label/index.js +1 -1
  77. package/dist/atomic/NavigationMenu/NavigationMenuPrimitive.d.ts +1 -1
  78. package/dist/atomic/NavigationMenu/NavigationMenuPrimitive.d.ts.map +1 -1
  79. package/dist/atomic/NavigationMenu/NavigationMenuPrimitive.js +1 -1
  80. package/dist/atomic/NavigationMenu/index.d.ts +1 -1
  81. package/dist/atomic/NavigationMenu/index.d.ts.map +1 -1
  82. package/dist/atomic/NavigationMenu/index.js +1 -1
  83. package/dist/atomic/Pagination/index.d.ts +7 -29
  84. package/dist/atomic/Pagination/index.d.ts.map +1 -1
  85. package/dist/atomic/Pagination/index.js +101 -71
  86. package/dist/atomic/PasswordInput/index.d.ts.map +1 -1
  87. package/dist/atomic/PasswordInput/index.js +1 -1
  88. package/dist/atomic/Popover/PopoverPrimitive.d.ts +1 -1
  89. package/dist/atomic/Popover/PopoverPrimitive.d.ts.map +1 -1
  90. package/dist/atomic/Popover/PopoverPrimitive.js +1 -1
  91. package/dist/atomic/Popover/index.d.ts.map +1 -1
  92. package/dist/atomic/Popover/index.js +1 -1
  93. package/dist/atomic/Portal/PortalPrimitive.d.ts +1 -1
  94. package/dist/atomic/Portal/PortalPrimitive.d.ts.map +1 -1
  95. package/dist/atomic/Portal/PortalPrimitive.js +1 -1
  96. package/dist/atomic/Portal/index.d.ts +1 -1
  97. package/dist/atomic/Portal/index.d.ts.map +1 -1
  98. package/dist/atomic/Portal/index.js +1 -1
  99. package/dist/atomic/Progress/ProgressPrimitive.d.ts +1 -1
  100. package/dist/atomic/Progress/ProgressPrimitive.d.ts.map +1 -1
  101. package/dist/atomic/Progress/ProgressPrimitive.js +1 -1
  102. package/dist/atomic/Progress/index.d.ts +1 -1
  103. package/dist/atomic/Progress/index.d.ts.map +1 -1
  104. package/dist/atomic/Progress/index.js +1 -1
  105. package/dist/atomic/RadioGroup/RadioGroupPrimitive.d.ts +1 -1
  106. package/dist/atomic/RadioGroup/RadioGroupPrimitive.d.ts.map +1 -1
  107. package/dist/atomic/RadioGroup/RadioGroupPrimitive.js +1 -1
  108. package/dist/atomic/RadioGroup/index.d.ts.map +1 -1
  109. package/dist/atomic/RadioGroup/index.js +1 -1
  110. package/dist/atomic/RangeInput/index.d.ts +45 -0
  111. package/dist/atomic/RangeInput/index.d.ts.map +1 -0
  112. package/dist/atomic/RangeInput/index.js +63 -0
  113. package/dist/atomic/Rating/index.d.ts +39 -0
  114. package/dist/atomic/Rating/index.d.ts.map +1 -0
  115. package/dist/atomic/Rating/index.js +115 -0
  116. package/dist/atomic/ScrollArea/ScrollAreaPrimitive.d.ts +1 -1
  117. package/dist/atomic/ScrollArea/ScrollAreaPrimitive.d.ts.map +1 -1
  118. package/dist/atomic/ScrollArea/ScrollAreaPrimitive.js +1 -1
  119. package/dist/atomic/ScrollArea/index.d.ts +1 -1
  120. package/dist/atomic/ScrollArea/index.d.ts.map +1 -1
  121. package/dist/atomic/ScrollArea/index.js +1 -1
  122. package/dist/atomic/Section/index.d.ts.map +1 -1
  123. package/dist/atomic/Section/index.js +1 -1
  124. package/dist/atomic/Select/SelectPrimitive.d.ts +1 -1
  125. package/dist/atomic/Select/SelectPrimitive.d.ts.map +1 -1
  126. package/dist/atomic/Select/SelectPrimitive.js +1 -1
  127. package/dist/atomic/Select/index.d.ts +2 -2
  128. package/dist/atomic/Select/index.d.ts.map +1 -1
  129. package/dist/atomic/Select/index.js +3 -3
  130. package/dist/atomic/Separator/SeparatorPrimitive.d.ts +1 -1
  131. package/dist/atomic/Separator/SeparatorPrimitive.d.ts.map +1 -1
  132. package/dist/atomic/Separator/SeparatorPrimitive.js +1 -1
  133. package/dist/atomic/Separator/index.d.ts +1 -1
  134. package/dist/atomic/Separator/index.d.ts.map +1 -1
  135. package/dist/atomic/Separator/index.js +1 -1
  136. package/dist/atomic/Sheet/SheetPrimitive.d.ts +1 -1
  137. package/dist/atomic/Sheet/SheetPrimitive.d.ts.map +1 -1
  138. package/dist/atomic/Sheet/SheetPrimitive.js +1 -1
  139. package/dist/atomic/Slider/SliderPrimitive.d.ts +1 -1
  140. package/dist/atomic/Slider/SliderPrimitive.d.ts.map +1 -1
  141. package/dist/atomic/Slider/SliderPrimitive.js +1 -1
  142. package/dist/atomic/Slider/index.d.ts +3 -2
  143. package/dist/atomic/Slider/index.d.ts.map +1 -1
  144. package/dist/atomic/Slider/index.js +9 -6
  145. package/dist/atomic/Stepper/index.d.ts +1 -1
  146. package/dist/atomic/Switch/SwitchPrimitive.d.ts +1 -1
  147. package/dist/atomic/Switch/SwitchPrimitive.d.ts.map +1 -1
  148. package/dist/atomic/Switch/SwitchPrimitive.js +1 -1
  149. package/dist/atomic/Switch/index.d.ts +1 -1
  150. package/dist/atomic/Switch/index.d.ts.map +1 -1
  151. package/dist/atomic/Switch/index.js +1 -1
  152. package/dist/atomic/Table/index.d.ts +18 -5
  153. package/dist/atomic/Table/index.d.ts.map +1 -1
  154. package/dist/atomic/Table/index.js +91 -31
  155. package/dist/atomic/Tabs/TabsPrimitive.d.ts +1 -2
  156. package/dist/atomic/Tabs/TabsPrimitive.d.ts.map +1 -1
  157. package/dist/atomic/Tabs/TabsPrimitive.js +1 -2
  158. package/dist/atomic/Tabs/index.d.ts +2 -2
  159. package/dist/atomic/Tabs/index.d.ts.map +1 -1
  160. package/dist/atomic/Tabs/index.js +1 -1
  161. package/dist/atomic/Text/index.d.ts +6 -0
  162. package/dist/atomic/Text/index.d.ts.map +1 -1
  163. package/dist/atomic/Text/index.js +2 -1
  164. package/dist/atomic/Textarea/index.d.ts +4 -0
  165. package/dist/atomic/Textarea/index.d.ts.map +1 -1
  166. package/dist/atomic/Textarea/index.js +3 -3
  167. package/dist/atomic/Toaster/Toast.types.d.ts +17 -0
  168. package/dist/atomic/Toaster/Toast.types.d.ts.map +1 -0
  169. package/dist/atomic/Toaster/Toast.types.js +2 -0
  170. package/dist/atomic/Toaster/ToastPrimitive.d.ts +2 -2
  171. package/dist/atomic/Toaster/ToastPrimitive.d.ts.map +1 -1
  172. package/dist/atomic/Toaster/ToastPrimitive.js +1 -1
  173. package/dist/atomic/Toaster/index.js +1 -1
  174. package/dist/atomic/Toggle/TogglePrimitive.d.ts +0 -1
  175. package/dist/atomic/Toggle/TogglePrimitive.d.ts.map +1 -1
  176. package/dist/atomic/Toggle/TogglePrimitive.js +0 -1
  177. package/dist/atomic/Toggle/index.d.ts +2 -2
  178. package/dist/atomic/Toggle/index.d.ts.map +1 -1
  179. package/dist/atomic/Toggle/index.js +1 -1
  180. package/dist/atomic/ToggleGroup/ToggleGroupPrimitive.d.ts +1 -1
  181. package/dist/atomic/ToggleGroup/ToggleGroupPrimitive.d.ts.map +1 -1
  182. package/dist/atomic/ToggleGroup/ToggleGroupPrimitive.js +1 -1
  183. package/dist/atomic/ToggleGroup/index.d.ts.map +1 -1
  184. package/dist/atomic/ToggleGroup/index.js +1 -1
  185. package/dist/atomic/Tooltip/TooltipPrimitive.d.ts +1 -1
  186. package/dist/atomic/Tooltip/TooltipPrimitive.d.ts.map +1 -1
  187. package/dist/atomic/Tooltip/TooltipPrimitive.js +1 -1
  188. package/dist/atomic/Tooltip/index.d.ts.map +1 -1
  189. package/dist/atomic/Tooltip/index.js +1 -1
  190. package/dist/atomic/VideoPlayer/index.d.ts +11 -1
  191. package/dist/atomic/VideoPlayer/index.d.ts.map +1 -1
  192. package/dist/atomic/VideoPlayer/index.js +6 -8
  193. package/dist/atomic/VisuallyHidden/VisuallyHiddenPrimitive.d.ts +0 -1
  194. package/dist/atomic/VisuallyHidden/VisuallyHiddenPrimitive.d.ts.map +1 -1
  195. package/dist/atomic/VisuallyHidden/VisuallyHiddenPrimitive.js +0 -1
  196. package/dist/atomic/index.d.ts +7 -0
  197. package/dist/atomic/index.d.ts.map +1 -1
  198. package/dist/atomic/index.js +5 -0
  199. package/dist/hooks/index.d.ts +2 -1
  200. package/dist/hooks/index.d.ts.map +1 -1
  201. package/dist/hooks/useToast.d.ts +1 -8
  202. package/dist/hooks/useToast.d.ts.map +1 -1
  203. package/dist/hooks/useToast.js +1 -0
  204. package/dist/index.d.ts +2 -0
  205. package/dist/index.d.ts.map +1 -1
  206. package/dist/index.js +4 -4
  207. package/dist/styles/index.css +365 -72
  208. package/dist/utils/variants.d.ts +1 -1
  209. package/package.json +5 -5
@@ -1,77 +1,107 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // packages/components/src/atomic/Pagination/index.tsx
3
- /**
4
- * @fileoverview Pagination component
5
- * @description Accessible pagination component with props-based API
6
- *
7
- * @version 0.0.1
8
- * @since 0.0.1
9
- * @author AMBROISE PARK Consulting
10
- */
3
+ import { useMemo, useState } from 'react';
11
4
  import { ChevronLeft, ChevronRight } from 'lucide-react';
12
- import { useMemo } from 'react';
13
- import { cn } from '../../utils/helpers';
14
- import Stack from '../Stack';
15
5
  import './Pagination.css';
16
- /**
17
- * Accessible pagination component with props-based API.
18
- * Handles page number generation, ellipsis truncation, and navigation controls.
19
- *
20
- * React 19: ref is a native prop, no forwardRef needed.
21
- *
22
- * @component
23
- * @example
24
- * ```tsx
25
- * <Pagination
26
- * currentPage={1}
27
- * totalPages={10}
28
- * onPageChange={handlePageChange}
29
- * />
30
- * ```
31
- * @param {PaginationProps} props - The props for the pagination
32
- * @returns {JSX.Element} The rendered pagination
33
- */
34
- const Pagination = ({ currentPage, totalPages, onPageChange, maxVisible = 7, showNavigation = true, previousLabel = 'Previous', nextLabel = 'Next', className, ...props }) => {
35
- // Memoize page number calculation to avoid recalculation on every render
6
+ import Button from '../Button';
7
+ import Select from '../Select';
8
+ import Text from '../Text';
9
+ import { cn } from '../../utils/helpers';
10
+ const Pagination = ({ currentPage, totalPages, onPageChange, pageSize: pageSizeProp, total: totalProp, onPageSizeChange, maxVisible = 5, // Default to 5 to fit safe on mobile (48px * 7 items ~= 336px)
11
+ showNavigation = true, previousLabel = 'Previous', nextLabel = 'Next', itemsPerPagePlaceholder = 'Items per page', showingLabel, className, }) => {
12
+ const [internalPageSize, setInternalPageSize] = useState(12);
13
+ const pageSize = pageSizeProp ?? internalPageSize;
14
+ const total = totalProp;
15
+ const handlePageSizeChange = (value) => {
16
+ const newPageSize = value === 'all' ? 0 : Number(value);
17
+ if (onPageSizeChange) {
18
+ onPageSizeChange(newPageSize);
19
+ }
20
+ else {
21
+ setInternalPageSize(newPageSize);
22
+ }
23
+ onPageChange(1);
24
+ };
25
+ const isShowingAll = pageSize === 0;
26
+ const effectiveTotalPages = isShowingAll
27
+ ? 1
28
+ : total && total > 0
29
+ ? Math.ceil(total / pageSize)
30
+ : totalPages;
31
+ const selectValue = isShowingAll ? 'all' : String(pageSize);
32
+ let pageSizeOptions = [];
33
+ if (typeof total === 'number' && total > 0) {
34
+ if (total < 12) {
35
+ pageSizeOptions = [];
36
+ }
37
+ else if (total < 36) {
38
+ pageSizeOptions = [
39
+ { value: '12', label: '12' },
40
+ { value: 'all', label: String(total) },
41
+ ];
42
+ }
43
+ else if (total < 120) {
44
+ pageSizeOptions = [
45
+ { value: '12', label: '12' },
46
+ { value: '36', label: '36' },
47
+ { value: 'ALL', label: String(total) },
48
+ ];
49
+ }
50
+ else {
51
+ pageSizeOptions = [
52
+ { value: '12', label: '12' },
53
+ { value: '36', label: '36' },
54
+ { value: '120', label: '120' },
55
+ { value: 'all', label: String(total) },
56
+ ];
57
+ }
58
+ }
59
+ else {
60
+ pageSizeOptions = [
61
+ { value: '12', label: '12' },
62
+ { value: '36', label: '36' },
63
+ { value: '120', label: '120' },
64
+ { value: 'all', label: 'All' },
65
+ ];
66
+ }
67
+ const showPageSizeSelector = pageSizeOptions.length > 1;
36
68
  const pageNumbers = useMemo(() => {
37
- const getPageNumbers = () => {
38
- if (totalPages <= maxVisible) {
39
- return Array.from({ length: totalPages }, (_, i) => i + 1);
40
- }
41
- const pages = [];
42
- const half = Math.floor(maxVisible / 2);
43
- if (currentPage <= half + 1) {
44
- for (let i = 1; i <= maxVisible - 2; i++) {
45
- pages.push(i);
46
- }
47
- pages.push('ellipsis');
48
- pages.push(totalPages);
49
- }
50
- else if (currentPage >= totalPages - half) {
51
- pages.push(1);
52
- pages.push('ellipsis');
53
- for (let i = totalPages - (maxVisible - 3); i <= totalPages; i++) {
54
- pages.push(i);
55
- }
56
- }
57
- else {
58
- pages.push(1);
59
- pages.push('ellipsis');
60
- for (let i = currentPage - 1; i <= currentPage + 1; i++) {
61
- pages.push(i);
62
- }
63
- pages.push('ellipsis');
64
- pages.push(totalPages);
65
- }
66
- return pages;
67
- };
68
- return getPageNumbers();
69
- }, [currentPage, totalPages, maxVisible]);
70
- return (_jsx("nav", { role: "navigation", "aria-label": "pagination", className: cn('dndev-pagination', className), ...props, children: _jsxs("ul", { className: "dndev-pagination-list", children: [showNavigation && currentPage > 1 && (_jsx("li", { className: "dndev-pagination-item", children: _jsx("button", { type: "button", onClick: () => onPageChange(Math.max(1, currentPage - 1)), className: "dndev-pagination-button", "aria-label": previousLabel, children: _jsx(ChevronLeft, { className: "dndev-size-md" }) }) }, "previous")), pageNumbers.map((page, index) => {
71
- if (page === 'ellipsis') {
72
- return (_jsx("li", { className: "dndev-pagination-item", children: _jsx("span", { "aria-hidden": true, className: "dndev-pagination-ellipsis", children: "..." }) }, `ellipsis-${index}`));
73
- }
74
- return (_jsx("li", { className: "dndev-pagination-item", children: _jsx("button", { type: "button", onClick: () => onPageChange(page), "aria-current": page === currentPage ? 'page' : undefined, "aria-label": `Page ${page}`, className: "dndev-pagination-button", children: page }) }, page));
75
- }), showNavigation && currentPage < totalPages && (_jsx("li", { className: "dndev-pagination-item", children: _jsx("button", { type: "button", onClick: () => onPageChange(Math.min(totalPages, currentPage + 1)), className: "dndev-pagination-button", "aria-label": nextLabel, children: _jsx(ChevronRight, { className: "dndev-size-md" }) }) }, "next"))] }) }));
69
+ if (isShowingAll)
70
+ return [1];
71
+ if (effectiveTotalPages <= maxVisible) {
72
+ return Array.from({ length: effectiveTotalPages }, (_, i) => i + 1);
73
+ }
74
+ const pages = [];
75
+ const half = Math.floor(maxVisible / 2);
76
+ if (currentPage <= half + 1) {
77
+ for (let i = 1; i <= maxVisible - 2; i++)
78
+ pages.push(i);
79
+ pages.push('ellipsis', effectiveTotalPages);
80
+ }
81
+ else if (currentPage >= effectiveTotalPages - half) {
82
+ pages.push(1, 'ellipsis');
83
+ for (let i = effectiveTotalPages - (maxVisible - 3); i <= effectiveTotalPages; i++)
84
+ pages.push(i);
85
+ }
86
+ else {
87
+ pages.push(1, 'ellipsis');
88
+ for (let i = currentPage - 1; i <= currentPage + 1; i++)
89
+ pages.push(i);
90
+ pages.push('ellipsis', effectiveTotalPages);
91
+ }
92
+ return pages;
93
+ }, [currentPage, effectiveTotalPages, maxVisible, isShowingAll]);
94
+ const startItem = (currentPage - 1) * pageSize + 1;
95
+ const endItem = Math.min(currentPage * pageSize, total || 0);
96
+ const showInfo = typeof total === 'number' && total > 0;
97
+ const showingText = showInfo && showingLabel
98
+ ? showingLabel
99
+ .replace('{{from}}', String(startItem))
100
+ .replace('{{to}}', String(endItem))
101
+ .replace('{{total}}', String(total))
102
+ : showInfo
103
+ ? `Showing ${startItem}-${endItem} of ${total}`
104
+ : null;
105
+ return (_jsxs("nav", { role: "navigation", "aria-label": "pagination", className: cn('dndev-pagination', className), children: [_jsx("div", { className: "dndev-pagination-info", children: showingText && (_jsx(Text, { level: "small", variant: "muted", children: showingText })) }), _jsx("div", { className: "dndev-pagination-size", children: showPageSizeSelector && (_jsxs(_Fragment, { children: [_jsx("span", { className: "dndev-pagination-size-label", children: _jsx(Text, { level: "small", variant: "muted", children: itemsPerPagePlaceholder }) }), _jsx(Select, { value: selectValue, onValueChange: handlePageSizeChange, options: pageSizeOptions, placeholder: String(pageSize) })] })) }), _jsxs("div", { className: "dndev-pagination-nav", children: [showNavigation && (_jsx(Button, { variant: "ghost", className: "dndev-pagination-button", icon: ChevronLeft, onClick: () => onPageChange(Math.max(1, currentPage - 1)), disabled: currentPage <= 1, "aria-label": previousLabel })), _jsx("ul", { className: "dndev-pagination-list", children: pageNumbers.map((page, index) => page === 'ellipsis' ? (_jsx("li", { children: _jsx("div", { className: "dndev-pagination-button", children: _jsx(Text, { level: "small", variant: "muted", children: "..." }) }) }, `ellipsis-${index}`)) : (_jsx("li", { children: _jsx(Button, { variant: page === currentPage ? 'default' : 'ghost', className: "dndev-pagination-button", onClick: () => onPageChange(page), "aria-current": page === currentPage ? 'page' : undefined, "aria-label": `Page ${page}`, children: page }) }, page))) }), showNavigation && (_jsx(Button, { variant: "ghost", className: "dndev-pagination-button", icon: ChevronRight, onClick: () => onPageChange(Math.min(effectiveTotalPages, currentPage + 1)), disabled: currentPage >= effectiveTotalPages, "aria-label": nextLabel }))] })] }));
76
106
  };
77
107
  export default Pagination;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/PasswordInput/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,CACP;IACC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,QAAA,MAAM,aAAa,GAAI,kHAUpB,kBAAkB,4CAmEpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/PasswordInput/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,CACP;IACC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,QAAA,MAAM,aAAa,GAAI,kHAUpB,kBAAkB,4CAoEpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -55,7 +55,7 @@ const PasswordInput = ({ className, visible: controlledVisible, onVisibilityChan
55
55
  }
56
56
  onVisibilityChange?.(newVisible);
57
57
  };
58
- const inputContent = (_jsxs("div", { className: "dndev-relative", children: [_jsx("input", { id: id, type: isVisible ? 'text' : 'password', value: value, className: cn('dndev-input', 'dndev-password-input-with-toggle', className), onFocus: onFocus, onBlur: onBlur, required: required, ...props }), _jsx("button", { type: "button", className: "dndev-password-toggle-button", onClick: toggleVisibility, "aria-label": isVisible ? 'Hide password' : 'Show password', "aria-describedby": props['aria-describedby'], tabIndex: -1, children: isVisible ? (_jsx(EyeOff, { className: "dndev-size-md dndev-password-toggle-icon" })) : (_jsx(Eye, { className: "dndev-size-md dndev-password-toggle-icon" })) })] }));
58
+ const inputContent = (_jsxs("div", { className: "dndev-relative", children: [_jsx("input", { id: id, type: isVisible ? 'text' : 'password', value: value, className: cn('dndev-input', 'dndev-password-input-with-toggle', className), "data-bare": hasLabel || undefined, onFocus: onFocus, onBlur: onBlur, required: required, ...props }), _jsx("button", { type: "button", className: "dndev-password-toggle-button", onClick: toggleVisibility, "aria-label": isVisible ? 'Hide password' : 'Show password', "aria-describedby": props['aria-describedby'], tabIndex: -1, children: isVisible ? (_jsx(EyeOff, { className: "dndev-size-md dndev-password-toggle-icon" })) : (_jsx(Eye, { className: "dndev-size-md dndev-password-toggle-icon" })) })] }));
59
59
  if (!hasLabel) {
60
60
  return inputContent;
61
61
  }
@@ -14,6 +14,6 @@ declare const PopoverContent: ({ className, align, side, sideOffset, onCloseAuto
14
14
  onCloseAutoFocus?: (event: Event) => void;
15
15
  onInteractOutside?: (event: Event) => void;
16
16
  }) => import("react/jsx-runtime").JSX.Element;
17
- export default Popover;
17
+ export { Popover as PopoverPrimitive };
18
18
  export { PopoverTrigger, PopoverContent };
19
19
  //# sourceMappingURL=PopoverPrimitive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Popover/PopoverPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,QAAA,MAAM,OAAO,mDAAwB,CAAC;AAEtC,QAAA,MAAM,cAAc,oIAA2B,CAAC;AAEhD,QAAA,MAAM,cAAc,GAAI,uFAQrB,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG;IACnD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5C,4CA0BA,CAAC;AAEF,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"PopoverPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Popover/PopoverPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,QAAA,MAAM,OAAO,mDAAwB,CAAC;AAEtC,QAAA,MAAM,cAAc,oIAA2B,CAAC;AAEhD,QAAA,MAAM,cAAc,GAAI,uFAQrB,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG;IACnD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5C,4CA0BA,CAAC;AAEF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
@@ -25,5 +25,5 @@ const PopoverContent = ({ className, align = 'start', side = 'bottom', sideOffse
25
25
  }
26
26
  : undefined, className: cn(className), ...props }) }));
27
27
  };
28
- export default Popover;
28
+ export { Popover as PopoverPrimitive };
29
29
  export { PopoverTrigger, PopoverContent };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Popover/index.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG/E;;GAEG;AACH,QAAA,MAAM,WAAW,oEAAmB,CAAC;AACrC,QAAA,MAAM,uBAAuB,qJAAiB,CAAC;AAC/C,QAAA,MAAM,uBAAuB;oBAK1B,CAAA;qBAA6C,CAAC;6CALH,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;CAAmB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,OAAO;wHAYV,YAAY;;;;wBAzDZ,CAAA;yBAA6C,CAAC;;CA2EhD,CAAC;wBAMwB,OAAO,OAAO,GAAG;IACzC,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,OAAO,EAAE,OAAO,uBAAuB,CAAC;CACzC;AAJD,wBAIE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Popover/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG/E;;GAEG;AACH,QAAA,MAAM,WAAW,oEAAmB,CAAC;AACrC,QAAA,MAAM,uBAAuB,qJAAiB,CAAC;AAC/C,QAAA,MAAM,uBAAuB;oBAK5B,CAAA;qBAA6C,CAAC;6CALD,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;CAAmB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,OAAO;wHAYV,YAAY;;;;wBAzDd,CAAA;yBAA6C,CAAC;;CA2E9C,CAAC;wBAMwB,OAAO,OAAO,GAAG;IACzC,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,OAAO,EAAE,OAAO,uBAAuB,CAAC;CACzC;AAJD,wBAIE"}
@@ -8,7 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  * @since 0.0.1
9
9
  * @author AMBROISE PARK Consulting
10
10
  */
11
- import PopoverPrimitive, { PopoverTrigger, PopoverContent, } from './PopoverPrimitive';
11
+ import { PopoverPrimitive, PopoverTrigger, PopoverContent, } from './PopoverPrimitive';
12
12
  import { FLOATING_VARIANT } from '../../utils/constants';
13
13
  import { cn, getVariantDataAttrs } from '../../utils/helpers';
14
14
  /**
@@ -20,5 +20,5 @@ export interface PortalPrimitiveProps extends ComponentProps<typeof PortalPrimit
20
20
  * @returns {JSX.Element} The rendered portal
21
21
  */
22
22
  declare const PortalPrimitiveComponent: ({ className, children, ...props }: PortalPrimitiveProps) => import("react/jsx-runtime").JSX.Element;
23
- export default PortalPrimitiveComponent;
23
+ export { PortalPrimitiveComponent as PortalPrimitive };
24
24
  //# sourceMappingURL=PortalPrimitive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PortalPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Portal/PortalPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAC1D,OAAO,eAAe,CAAC,IAAI,CAC5B;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,wBAAwB,GAAI,mCAI/B,oBAAoB,4CAEtB,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"PortalPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Portal/PortalPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAC1D,OAAO,eAAe,CAAC,IAAI,CAC5B;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,wBAAwB,GAAI,mCAI/B,oBAAoB,4CAEtB,CAAC;AAEF,OAAO,EAAE,wBAAwB,IAAI,eAAe,EAAE,CAAC"}
@@ -18,4 +18,4 @@ import * as PortalPrimitive from '@radix-ui/react-portal';
18
18
  * @returns {JSX.Element} The rendered portal
19
19
  */
20
20
  const PortalPrimitiveComponent = ({ className, children, ...props }) => (_jsx(PortalPrimitive.Root, { ...props, children: children }));
21
- export default PortalPrimitiveComponent;
21
+ export { PortalPrimitiveComponent as PortalPrimitive };
@@ -6,6 +6,6 @@
6
6
  * @since 0.0.1
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
9
- export { default } from './PortalPrimitive';
9
+ export { PortalPrimitive as default } from './PortalPrimitive';
10
10
  export type { PortalPrimitiveProps as PortalProps } from './PortalPrimitive';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Portal/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,YAAY,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Portal/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -7,4 +7,4 @@
7
7
  * @since 0.0.1
8
8
  * @author AMBROISE PARK Consulting
9
9
  */
10
- export { default } from './PortalPrimitive';
10
+ export { PortalPrimitive as default } from './PortalPrimitive';
@@ -27,5 +27,5 @@ export interface ProgressPrimitiveProps extends ComponentProps<typeof ProgressPr
27
27
  * @returns {JSX.Element} The rendered progress bar
28
28
  */
29
29
  declare const ProgressPrimitiveComponent: ({ className, value, variant, ...props }: ProgressPrimitiveProps) => import("react/jsx-runtime").JSX.Element;
30
- export default ProgressPrimitiveComponent;
30
+ export { ProgressPrimitiveComponent as ProgressPrimitive };
31
31
  //# sourceMappingURL=ProgressPrimitive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Progress/ProgressPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,sBAAuB,SAAQ,cAAc,CAC5D,OAAO,iBAAiB,CAAC,IAAI,CAC9B;IACC;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;CACxE;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,0BAA0B,GAAI,yCAKjC,sBAAsB,4CAkBxB,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"ProgressPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Progress/ProgressPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,sBAAuB,SAAQ,cAAc,CAC5D,OAAO,iBAAiB,CAAC,IAAI,CAC9B;IACC;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;CACxE;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,0BAA0B,GAAI,yCAKjC,sBAAsB,4CAkBxB,CAAC;AAEF,OAAO,EAAE,0BAA0B,IAAI,iBAAiB,EAAE,CAAC"}
@@ -25,4 +25,4 @@ const ProgressPrimitiveComponent = ({ className, value, variant = 'default', ...
25
25
  const variantAttrs = getVariantDataAttrs({ variant });
26
26
  return (_jsx(ProgressPrimitive.Root, { value: value, "aria-valuenow": value ?? 0, "aria-valuemin": 0, "aria-valuemax": 100, className: cn(className), ...props, children: _jsx(ProgressPrimitive.Indicator, { ...variantAttrs, style: { transform: `translateX(-${100 - (value || 0)}%)` } }) }));
27
27
  };
28
- export default ProgressPrimitiveComponent;
28
+ export { ProgressPrimitiveComponent as ProgressPrimitive };
@@ -6,7 +6,7 @@
6
6
  * @since 0.0.1
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
9
- import ProgressPrimitive, { type ProgressPrimitiveProps } from './ProgressPrimitive';
9
+ import { ProgressPrimitive, type ProgressPrimitiveProps } from './ProgressPrimitive';
10
10
  declare const Progress: ({ className, ...props }: ProgressPrimitiveProps) => import("react/jsx-runtime").JSX.Element;
11
11
  export default Progress;
12
12
  export { ProgressPrimitive };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Progress/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,iBAAiB,EAAE,EACxB,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,QAAA,MAAM,QAAQ,GAAI,yBAAyB,sBAAsB,4CAEhE,CAAC;AAEF,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,YAAY,EAAE,sBAAsB,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Progress/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,QAAA,MAAM,QAAQ,GAAI,yBAAyB,sBAAsB,4CAEhE,CAAC;AAEF,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,YAAY,EAAE,sBAAsB,IAAI,aAAa,EAAE,CAAC"}
@@ -8,7 +8,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
8
8
  * @since 0.0.1
9
9
  * @author AMBROISE PARK Consulting
10
10
  */
11
- import ProgressPrimitive, {} from './ProgressPrimitive';
11
+ import { ProgressPrimitive, } from './ProgressPrimitive';
12
12
  import { cn } from '../../utils/helpers';
13
13
  const Progress = ({ className, ...props }) => (_jsx(ProgressPrimitive, { className: cn('dndev-progress', className), ...props }));
14
14
  export default Progress;
@@ -22,7 +22,7 @@ export interface RadioOption {
22
22
  declare const RadioGroupRootPrimitive: import("react").ForwardRefExoticComponent<RadixRadioGroup.RadioGroupProps & import("react").RefAttributes<HTMLDivElement>>;
23
23
  declare const RadioGroupItemPrimitive: ({ className, ...props }: ComponentProps<typeof RadixRadioGroup.Item>) => import("react/jsx-runtime").JSX.Element;
24
24
  declare const RadioGroupIndicatorPrimitive: ({ className, ...props }: ComponentProps<typeof RadixRadioGroup.Indicator>) => import("react/jsx-runtime").JSX.Element;
25
- export default RadioGroupRootPrimitive;
25
+ export { RadioGroupRootPrimitive as RadioGroupPrimitive };
26
26
  export { RadioGroupRootPrimitive, RadioGroupItemPrimitive, RadioGroupIndicatorPrimitive, };
27
27
  export type RadioGroupRootProps = ComponentProps<typeof RadixRadioGroup.Root>;
28
28
  export type RadioGroupItemProps = ComponentProps<typeof RadixRadioGroup.Item>;
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroupPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/RadioGroup/RadioGroupPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,QAAA,MAAM,uBAAuB,4HAAuB,CAAC;AAErD,QAAA,MAAM,uBAAuB,GAAI,yBAG9B,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,4CAM7C,CAAC;AAEF,QAAA,MAAM,4BAA4B,GAAI,yBAGnC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,4CAElD,CAAC;AAEF,eAAe,uBAAuB,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,GAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,OAAO,eAAe,CAAC,SAAS,CACjC,CAAC"}
1
+ {"version":3,"file":"RadioGroupPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/RadioGroup/RadioGroupPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,QAAA,MAAM,uBAAuB,4HAAuB,CAAC;AAErD,QAAA,MAAM,uBAAuB,GAAI,yBAG9B,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,4CAM7C,CAAC;AAEF,QAAA,MAAM,4BAA4B,GAAI,yBAGnC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,4CAElD,CAAC;AAEF,OAAO,EAAE,uBAAuB,IAAI,mBAAmB,EAAE,CAAC;AAC1D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,GAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,OAAO,eAAe,CAAC,SAAS,CACjC,CAAC"}
@@ -13,5 +13,5 @@ import { cn } from '../../utils/helpers';
13
13
  const RadioGroupRootPrimitive = RadixRadioGroup.Root;
14
14
  const RadioGroupItemPrimitive = ({ className, ...props }) => (_jsx(RadixRadioGroup.Item, { className: cn(className), "data-type": "radio", ...props }));
15
15
  const RadioGroupIndicatorPrimitive = ({ className, ...props }) => (_jsx(RadixRadioGroup.Indicator, { className: cn(className), ...props }));
16
- export default RadioGroupRootPrimitive;
16
+ export { RadioGroupRootPrimitive as RadioGroupPrimitive };
17
17
  export { RadioGroupRootPrimitive, RadioGroupItemPrimitive, RadioGroupIndicatorPrimitive, };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/RadioGroup/index.tsx"],"names":[],"mappings":"AAcA,OAA4B,EAI1B,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,kBAAkB,CAAC;AAoB1B,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAC5E,6BAA6B;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU,GAAG,WAAW,CAAC;IACtE,iDAAiD;IACjD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,UAAU,GAAI,6DAOjB,eAAe,4CAyBjB,CAAC;AAEF,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,cAAc,IAAI,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/RadioGroup/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,kBAAkB,CAAC;AAoB1B,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAC5E,6BAA6B;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU,GAAG,WAAW,CAAC;IACtE,iDAAiD;IACjD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,UAAU,GAAI,6DAOjB,eAAe,4CAyBjB,CAAC;AAEF,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,cAAc,IAAI,iBAAiB,EAAE,CAAC"}
@@ -10,7 +10,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  * @author AMBROISE PARK Consulting
11
11
  */
12
12
  import { cva } from 'class-variance-authority';
13
- import RadioGroupPrimitive, { RadioGroupRootPrimitive, RadioGroupItemPrimitive, RadioGroupIndicatorPrimitive, } from './RadioGroupPrimitive';
13
+ import { RadioGroupPrimitive, RadioGroupRootPrimitive, RadioGroupItemPrimitive, RadioGroupIndicatorPrimitive, } from './RadioGroupPrimitive';
14
14
  import { CONTROL_VARIANT } from '../../utils/constants';
15
15
  import { cn, getVariantDataAttrs } from '../../utils/helpers';
16
16
  import './RadioGroup.css';
@@ -0,0 +1,45 @@
1
+ import type { InputHTMLAttributes } from 'react';
2
+ import './RangeInput.css';
3
+ export interface RangeInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value'> {
4
+ /** Label for the range (single FloatingLabel wrapping both inputs) */
5
+ label?: string;
6
+ /** Placeholder for min input */
7
+ minPlaceholder?: string;
8
+ /** Placeholder for max input */
9
+ maxPlaceholder?: string;
10
+ /** Current min value */
11
+ minValue?: string;
12
+ /** Current max value */
13
+ maxValue?: string;
14
+ /** Actual min value from data (for auto-populate on focus) */
15
+ actualMin?: string | number;
16
+ /** Actual max value from data (for auto-populate on focus) */
17
+ actualMax?: string | number;
18
+ /** Change handler: (min, max) => void */
19
+ onChange: (min: string, max: string) => void;
20
+ /** Clear handler - required, X button always visible */
21
+ onClear: () => void;
22
+ }
23
+ /**
24
+ * RangeInput - Two-input component for min/max ranges
25
+ *
26
+ * Features:
27
+ * - Single FloatingLabel wrapping both inputs (when label provided)
28
+ * - Auto-populates with actual data min/max on focus if empty
29
+ * - Selects all text on focus
30
+ * - Clear button always visible (disabled when empty)
31
+ *
32
+ * @component
33
+ * @example
34
+ * ```tsx
35
+ * <RangeInput
36
+ * type="number"
37
+ * label="Price"
38
+ * onChange={(min, max) => setFilter({ min, max })}
39
+ * onClear={() => setFilter({ min: '', max: '' })}
40
+ * />
41
+ * ```
42
+ */
43
+ export declare function RangeInput({ type, label, minPlaceholder, maxPlaceholder, minValue, maxValue, actualMin, actualMax, min, max, onChange, onClear, ...props }: RangeInputProps): import("react/jsx-runtime").JSX.Element;
44
+ export default RangeInput;
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/RangeInput/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,UAAU,GAAG,OAAO,CACrB;IACC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,yCAAyC;IACzC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,wDAAwD;IACxD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAe,EACf,KAAK,EACL,cAAsB,EACtB,cAAsB,EACtB,QAAa,EACb,QAAa,EACb,SAAS,EACT,SAAS,EACT,GAAG,EACH,GAAG,EACH,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe,2CA+EjB;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // packages/components/src/atomic/RangeInput/index.tsx
3
+ /**
4
+ * @fileoverview RangeInput component
5
+ * @description Two-input range component for min/max values (e.g., price ranges, date ranges)
6
+ *
7
+ * @version 0.0.2
8
+ * @since 0.0.1
9
+ * @author AMBROISE PARK Consulting
10
+ */
11
+ import { X } from 'lucide-react';
12
+ import Button from '../Button';
13
+ import Input from '../Input';
14
+ import { FloatingLabel } from '../Label';
15
+ import Text from '../Text';
16
+ import './RangeInput.css';
17
+ /**
18
+ * RangeInput - Two-input component for min/max ranges
19
+ *
20
+ * Features:
21
+ * - Single FloatingLabel wrapping both inputs (when label provided)
22
+ * - Auto-populates with actual data min/max on focus if empty
23
+ * - Selects all text on focus
24
+ * - Clear button always visible (disabled when empty)
25
+ *
26
+ * @component
27
+ * @example
28
+ * ```tsx
29
+ * <RangeInput
30
+ * type="number"
31
+ * label="Price"
32
+ * onChange={(min, max) => setFilter({ min, max })}
33
+ * onClear={() => setFilter({ min: '', max: '' })}
34
+ * />
35
+ * ```
36
+ */
37
+ export function RangeInput({ type = 'number', label, minPlaceholder = 'Min', maxPlaceholder = 'Max', minValue = '', maxValue = '', actualMin, actualMax, min, max, onChange, onClear, ...props }) {
38
+ const handleMinFocus = (e) => {
39
+ e.target.select();
40
+ if (!minValue &&
41
+ actualMin !== null &&
42
+ actualMin !== undefined &&
43
+ actualMin !== '') {
44
+ onChange(String(actualMin), maxValue);
45
+ }
46
+ };
47
+ const handleMaxFocus = (e) => {
48
+ e.target.select();
49
+ if (!maxValue &&
50
+ actualMax !== null &&
51
+ actualMax !== undefined &&
52
+ actualMax !== '') {
53
+ onChange(minValue, String(actualMax));
54
+ }
55
+ };
56
+ const hasValue = !!(minValue || maxValue);
57
+ const inputs = (_jsxs(_Fragment, { children: [_jsx(Input, { type: type, placeholder: minPlaceholder, value: minValue, min: min, max: max, bare: true, onFocus: handleMinFocus, onChange: (e) => onChange(e.target.value, maxValue), ...props }), _jsx(Text, { level: "small", variant: "muted", className: "dndev-range-input-separator", children: "\u2013" }), _jsx(Input, { type: type, placeholder: maxPlaceholder, value: maxValue, min: min, max: max, bare: true, onFocus: handleMaxFocus, onChange: (e) => onChange(minValue, e.target.value), ...props }), _jsx(Button, { icon: X, variant: "ghost", display: "compact", onClick: onClear, disabled: !hasValue, "aria-label": "Clear", className: "dndev-range-input-clear" })] }));
58
+ if (label) {
59
+ return (_jsx(FloatingLabel, { label: label, className: "dndev-range-input", children: inputs }));
60
+ }
61
+ return _jsx("div", { className: "dndev-range-input", children: inputs });
62
+ }
63
+ export default RangeInput;
@@ -0,0 +1,39 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import { CONTROL_VARIANT, type ControlVariant } from '../../utils/constants';
3
+ import './Rating.css';
4
+ import type { HTMLAttributes } from 'react';
5
+ declare const ratingVariants: (props?: ({
6
+ variant?: "default" | "primary" | "destructive" | "warning" | "success" | "muted" | "secondary" | "accent" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, VariantProps<typeof ratingVariants> {
9
+ /** Current rating value (1-5, supports decimals for display) */
10
+ value?: number;
11
+ /** Callback when rating changes (only fires whole numbers 1-5) */
12
+ onChange?: (value: number) => void;
13
+ /** Maximum rating value */
14
+ max?: number;
15
+ /** Read-only mode (no interaction) */
16
+ readonly?: boolean;
17
+ /** Disabled state */
18
+ disabled?: boolean;
19
+ /** Accessible label */
20
+ 'aria-label'?: string;
21
+ /** Show numeric value next to stars */
22
+ showValue?: boolean;
23
+ }
24
+ /**
25
+ * Rating component for star-based ratings
26
+ *
27
+ * @example
28
+ * // Interactive (form input)
29
+ * <Rating value={rating} onChange={setRating} />
30
+ *
31
+ * @example
32
+ * // Display only (average rating)
33
+ * <Rating value={4.3} readonly />
34
+ */
35
+ declare const Rating: ({ value, onChange, max, readonly, disabled, variant, className, showValue, "aria-label": ariaLabel, ...props }: RatingProps) => import("react/jsx-runtime").JSX.Element;
36
+ export default Rating;
37
+ export { ratingVariants, CONTROL_VARIANT as RATING_VARIANT };
38
+ export type { ControlVariant as RatingVariant };
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Rating/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,OAAO,CAAC;AAE3D,QAAA,MAAM,cAAc;;8EAgBlB,CAAC;AAEH,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACtD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiBD;;;;;;;;;;GAUG;AACH,QAAA,MAAM,MAAM,GAAI,gHAWb,WAAW,4CAoHb,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,eAAe,IAAI,cAAc,EAAE,CAAC;AAC7D,YAAY,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC"}