asheeui 0.7.0 → 1.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 (266) hide show
  1. package/dist/AsheeUIProvider.d.ts.map +1 -1
  2. package/dist/AsheeUIProvider.js +22 -15
  3. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  4. package/dist/components/accordion/Accordion.js +9 -7
  5. package/dist/components/alert/Alert.d.ts +88 -0
  6. package/dist/components/alert/Alert.d.ts.map +1 -0
  7. package/dist/components/alert/Alert.js +61 -0
  8. package/dist/components/alert/alert-config.d.ts +56 -0
  9. package/dist/components/alert/alert-config.d.ts.map +1 -0
  10. package/dist/components/alert/alert-config.js +14 -0
  11. package/dist/components/alert/alert-styles.d.ts +32 -0
  12. package/dist/components/alert/alert-styles.d.ts.map +1 -0
  13. package/dist/components/alert/alert-styles.js +20 -0
  14. package/dist/components/alert/index.d.ts +3 -0
  15. package/dist/components/alert/index.d.ts.map +1 -0
  16. package/dist/components/alert/index.js +3 -0
  17. package/dist/components/autocomplete/Autocomplete.d.ts +6 -6
  18. package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
  19. package/dist/components/autocomplete/Autocomplete.js +94 -58
  20. package/dist/components/autocomplete/autocomplete-config.d.ts +1 -1
  21. package/dist/components/autocomplete/autocomplete-config.d.ts.map +1 -1
  22. package/dist/components/avatar/Avatar.d.ts +87 -0
  23. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  24. package/dist/components/avatar/Avatar.js +43 -0
  25. package/dist/components/avatar/avatar-config.d.ts +48 -0
  26. package/dist/components/avatar/avatar-config.d.ts.map +1 -0
  27. package/dist/components/avatar/avatar-config.js +14 -0
  28. package/dist/components/avatar/avatar-styles.d.ts +21 -0
  29. package/dist/components/avatar/avatar-styles.d.ts.map +1 -0
  30. package/dist/components/avatar/avatar-styles.js +13 -0
  31. package/dist/components/avatar/avatar.helpers.d.ts +19 -0
  32. package/dist/components/avatar/avatar.helpers.d.ts.map +1 -0
  33. package/dist/components/avatar/avatar.helpers.js +11 -0
  34. package/dist/components/avatar/index.d.ts +3 -0
  35. package/dist/components/avatar/index.d.ts.map +1 -0
  36. package/dist/components/avatar/index.js +4 -0
  37. package/dist/components/badge/Badge.d.ts +69 -0
  38. package/dist/components/badge/Badge.d.ts.map +1 -0
  39. package/dist/components/badge/Badge.js +39 -0
  40. package/dist/components/badge/badge-config.d.ts +63 -0
  41. package/dist/components/badge/badge-config.d.ts.map +1 -0
  42. package/dist/components/badge/badge-config.js +15 -0
  43. package/dist/components/badge/badge-styles.d.ts +27 -0
  44. package/dist/components/badge/badge-styles.d.ts.map +1 -0
  45. package/dist/components/badge/badge-styles.js +25 -0
  46. package/dist/components/badge/index.d.ts +3 -0
  47. package/dist/components/badge/index.d.ts.map +1 -0
  48. package/dist/components/badge/index.js +3 -0
  49. package/dist/components/breadcrumb/Breadcrumb.d.ts +106 -0
  50. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -0
  51. package/dist/components/breadcrumb/Breadcrumb.js +52 -0
  52. package/dist/components/breadcrumb/breadcrumb-config.d.ts +41 -0
  53. package/dist/components/breadcrumb/breadcrumb-config.d.ts.map +1 -0
  54. package/dist/components/breadcrumb/breadcrumb-config.js +10 -0
  55. package/dist/components/breadcrumb/breadcrumb-styles.d.ts +28 -0
  56. package/dist/components/breadcrumb/breadcrumb-styles.d.ts.map +1 -0
  57. package/dist/components/breadcrumb/breadcrumb-styles.js +17 -0
  58. package/dist/components/breadcrumb/index.d.ts +3 -0
  59. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  60. package/dist/components/breadcrumb/index.js +3 -0
  61. package/dist/components/button/Button.d.ts.map +1 -1
  62. package/dist/components/button/Button.js +10 -7
  63. package/dist/components/{date-picker/DatePicker.d.ts → calendar/Calendar.d.ts} +21 -21
  64. package/dist/components/calendar/Calendar.d.ts.map +1 -0
  65. package/dist/components/{date-picker/DatePicker.js → calendar/Calendar.js} +11 -11
  66. package/dist/components/{date-picker/Calendar.d.ts → calendar/DateGrid.d.ts} +7 -7
  67. package/dist/components/calendar/DateGrid.d.ts.map +1 -0
  68. package/dist/components/calendar/DateGrid.js +194 -0
  69. package/dist/components/calendar/TimeSpinner.d.ts.map +1 -0
  70. package/dist/components/{date-picker → calendar}/TimeSpinner.js +3 -3
  71. package/dist/components/{date-picker/date-picker-config.d.ts → calendar/calendar-config.d.ts} +17 -17
  72. package/dist/components/calendar/calendar-config.d.ts.map +1 -0
  73. package/dist/components/{date-picker/date-picker-config.js → calendar/calendar-config.js} +3 -3
  74. package/dist/components/{date-picker/date-picker-styles.d.ts → calendar/calendar-styles.d.ts} +1 -1
  75. package/dist/components/calendar/calendar-styles.d.ts.map +1 -0
  76. package/dist/components/{date-picker/date-picker-styles.js → calendar/calendar-styles.js} +1 -1
  77. package/dist/components/{date-picker/date-picker.helpers.d.ts → calendar/calendar.helpers.d.ts} +9 -9
  78. package/dist/components/calendar/calendar.helpers.d.ts.map +1 -0
  79. package/dist/components/{date-picker/date-picker.helpers.js → calendar/calendar.helpers.js} +4 -4
  80. package/dist/components/calendar/index.d.ts +3 -0
  81. package/dist/components/calendar/index.d.ts.map +1 -0
  82. package/dist/components/calendar/index.js +6 -0
  83. package/dist/components/card/Card.d.ts +6 -6
  84. package/dist/components/card/Card.d.ts.map +1 -1
  85. package/dist/components/card/Card.js +8 -8
  86. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  87. package/dist/components/carousel/Carousel.js +85 -83
  88. package/dist/components/carousel/carousel-styles.d.ts +1 -20
  89. package/dist/components/carousel/carousel-styles.d.ts.map +1 -1
  90. package/dist/components/chip/Chip.js +5 -5
  91. package/dist/components/drawer/Drawer.d.ts +8 -4
  92. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  93. package/dist/components/drawer/Drawer.js +54 -38
  94. package/dist/components/{select/Select.d.ts → dropmenu/Dropmenu.d.ts} +21 -21
  95. package/dist/components/{select/Select.d.ts.map → dropmenu/Dropmenu.d.ts.map} +1 -1
  96. package/dist/components/dropmenu/Dropmenu.js +102 -0
  97. package/dist/components/{select/select-config.d.ts → dropmenu/dropmenu-config.d.ts} +8 -8
  98. package/dist/components/dropmenu/dropmenu-config.d.ts.map +1 -0
  99. package/dist/components/{select/select-config.js → dropmenu/dropmenu-config.js} +3 -3
  100. package/dist/components/{select/select-styles.d.ts → dropmenu/dropmenu-styles.d.ts} +1 -1
  101. package/dist/components/dropmenu/dropmenu-styles.d.ts.map +1 -0
  102. package/dist/components/{select/select-styles.js → dropmenu/dropmenu-styles.js} +1 -1
  103. package/dist/components/dropmenu/index.d.ts +3 -0
  104. package/dist/components/dropmenu/index.d.ts.map +1 -0
  105. package/dist/components/dropmenu/index.js +3 -0
  106. package/dist/components/field/FieldShell.d.ts +13 -1
  107. package/dist/components/field/FieldShell.d.ts.map +1 -1
  108. package/dist/components/field/FieldShell.js +16 -15
  109. package/dist/components/form/Form.d.ts +109 -0
  110. package/dist/components/form/Form.d.ts.map +1 -0
  111. package/dist/components/form/Form.js +42 -0
  112. package/dist/components/form/form-config.d.ts +57 -0
  113. package/dist/components/form/form-config.d.ts.map +1 -0
  114. package/dist/components/form/form-config.js +12 -0
  115. package/dist/components/form/form-styles.d.ts +27 -0
  116. package/dist/components/form/form-styles.d.ts.map +1 -0
  117. package/dist/components/form/form-styles.js +5 -0
  118. package/dist/components/form/index.d.ts +3 -0
  119. package/dist/components/form/index.d.ts.map +1 -0
  120. package/dist/components/form/index.js +3 -0
  121. package/dist/components/image/Image.d.ts +4 -5
  122. package/dist/components/image/Image.d.ts.map +1 -1
  123. package/dist/components/image/Image.js +5 -5
  124. package/dist/components/input/Input.js +5 -5
  125. package/dist/components/link/Link.d.ts +12 -10
  126. package/dist/components/link/Link.d.ts.map +1 -1
  127. package/dist/components/link/Link.js +1 -1
  128. package/dist/components/marquee/Marquee.d.ts.map +1 -1
  129. package/dist/components/marquee/Marquee.js +36 -33
  130. package/dist/components/{select-menu/SelectMenu.d.ts → menu/Menu.d.ts} +52 -19
  131. package/dist/components/menu/Menu.d.ts.map +1 -0
  132. package/dist/components/menu/Menu.js +161 -0
  133. package/dist/components/menu/index.d.ts +5 -0
  134. package/dist/components/menu/index.d.ts.map +1 -0
  135. package/dist/components/menu/index.js +4 -0
  136. package/dist/components/{select-menu/select-menu-config.d.ts → menu/menu-config.d.ts} +5 -5
  137. package/dist/components/menu/menu-config.d.ts.map +1 -0
  138. package/dist/components/{select-menu/select-menu-config.js → menu/menu-config.js} +2 -2
  139. package/dist/components/menu/menu-navigation.d.ts +38 -0
  140. package/dist/components/menu/menu-navigation.d.ts.map +1 -0
  141. package/dist/components/menu/menu-navigation.js +20 -0
  142. package/dist/components/{select-menu/use-select-floating.d.ts → menu/use-menu-floating.d.ts} +10 -10
  143. package/dist/components/menu/use-menu-floating.d.ts.map +1 -0
  144. package/dist/components/{select-menu/use-select-floating.js → menu/use-menu-floating.js} +2 -2
  145. package/dist/components/modal/Modal.d.ts +6 -1
  146. package/dist/components/modal/Modal.d.ts.map +1 -1
  147. package/dist/components/modal/Modal.js +62 -45
  148. package/dist/components/multi-select/MultiSelect.d.ts +11 -10
  149. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  150. package/dist/components/multi-select/MultiSelect.js +99 -86
  151. package/dist/components/multi-select/multi-select-config.d.ts +1 -1
  152. package/dist/components/multi-select/multi-select-config.d.ts.map +1 -1
  153. package/dist/components/pagination/Pagination.d.ts +91 -0
  154. package/dist/components/pagination/Pagination.d.ts.map +1 -0
  155. package/dist/components/pagination/Pagination.js +66 -0
  156. package/dist/components/pagination/index.d.ts +3 -0
  157. package/dist/components/pagination/index.d.ts.map +1 -0
  158. package/dist/components/pagination/index.js +4 -0
  159. package/dist/components/pagination/pagination-config.d.ts +66 -0
  160. package/dist/components/pagination/pagination-config.d.ts.map +1 -0
  161. package/dist/components/pagination/pagination-config.js +19 -0
  162. package/dist/components/pagination/pagination-styles.d.ts +19 -0
  163. package/dist/components/pagination/pagination-styles.d.ts.map +1 -0
  164. package/dist/components/pagination/pagination-styles.js +5 -0
  165. package/dist/components/pagination/pagination.helpers.d.ts +26 -0
  166. package/dist/components/pagination/pagination.helpers.d.ts.map +1 -0
  167. package/dist/components/pagination/pagination.helpers.js +12 -0
  168. package/dist/components/radio/Radio.d.ts +53 -107
  169. package/dist/components/radio/Radio.d.ts.map +1 -1
  170. package/dist/components/radio/Radio.js +50 -36
  171. package/dist/components/radio/RadioGroup.d.ts +107 -53
  172. package/dist/components/radio/RadioGroup.d.ts.map +1 -1
  173. package/dist/components/radio/RadioGroup.js +43 -49
  174. package/dist/components/radio/index.d.ts +0 -1
  175. package/dist/components/radio/index.d.ts.map +1 -1
  176. package/dist/components/resizable-screen/ResizableScreen.d.ts +4 -4
  177. package/dist/components/scrollbar/index.js +1 -0
  178. package/dist/components/scrollbar/scrollbar-config.js +13 -0
  179. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  180. package/dist/components/sidebar/Sidebar.js +92 -90
  181. package/dist/components/skeleton/Skeleton.d.ts +65 -0
  182. package/dist/components/skeleton/Skeleton.d.ts.map +1 -0
  183. package/dist/components/skeleton/Skeleton.js +29 -0
  184. package/dist/components/skeleton/index.d.ts +3 -0
  185. package/dist/components/skeleton/index.d.ts.map +1 -0
  186. package/dist/components/skeleton/index.js +3 -0
  187. package/dist/components/skeleton/skeleton-config.d.ts +40 -0
  188. package/dist/components/skeleton/skeleton-config.d.ts.map +1 -0
  189. package/dist/components/skeleton/skeleton-config.js +13 -0
  190. package/dist/components/skeleton/skeleton-styles.d.ts +19 -0
  191. package/dist/components/skeleton/skeleton-styles.d.ts.map +1 -0
  192. package/dist/components/skeleton/skeleton-styles.js +5 -0
  193. package/dist/components/switch/Switch.d.ts.map +1 -1
  194. package/dist/components/switch/Switch.js +7 -5
  195. package/dist/components/table/Table.js +3 -3
  196. package/dist/components/tabs/Tabs.js +3 -3
  197. package/dist/components/textarea/Textarea.d.ts +10 -10
  198. package/dist/components/textarea/Textarea.js +7 -7
  199. package/dist/components/textarea/textarea-config.d.ts +2 -2
  200. package/dist/components/toast/ToastItem.d.ts.map +1 -1
  201. package/dist/components/toast/ToastItem.js +8 -7
  202. package/dist/components/tooltip/Tooltip.js +5 -5
  203. package/dist/components/typography/Typography.d.ts +60 -0
  204. package/dist/components/typography/Typography.d.ts.map +1 -0
  205. package/dist/components/typography/Typography.js +28 -0
  206. package/dist/components/typography/index.d.ts +3 -0
  207. package/dist/components/typography/index.d.ts.map +1 -0
  208. package/dist/components/typography/index.js +3 -0
  209. package/dist/components/typography/typography-config.d.ts +54 -0
  210. package/dist/components/typography/typography-config.d.ts.map +1 -0
  211. package/dist/components/typography/typography-config.js +12 -0
  212. package/dist/components/typography/typography-styles.d.ts +21 -0
  213. package/dist/components/typography/typography-styles.d.ts.map +1 -0
  214. package/dist/components/typography/typography-styles.js +19 -0
  215. package/dist/config/default-config.d.ts.map +1 -1
  216. package/dist/config/default-config.js +2 -2
  217. package/dist/config/index.js +1 -0
  218. package/dist/config/validate-config.d.ts +34 -0
  219. package/dist/config/validate-config.d.ts.map +1 -0
  220. package/dist/config/validate-config.js +190 -0
  221. package/dist/index.d.ts +15 -17
  222. package/dist/index.d.ts.map +1 -1
  223. package/dist/index.js +61 -47
  224. package/dist/libs/index.js +3 -0
  225. package/dist/libs/use-body-scroll-lock.d.ts +21 -0
  226. package/dist/libs/use-body-scroll-lock.d.ts.map +1 -0
  227. package/dist/libs/use-body-scroll-lock.js +27 -0
  228. package/dist/libs/use-dialog-overlay.d.ts +21 -0
  229. package/dist/libs/use-dialog-overlay.d.ts.map +1 -0
  230. package/dist/libs/use-dialog-overlay.js +21 -0
  231. package/dist/libs/use-prefers-reduced-motion.d.ts +23 -0
  232. package/dist/libs/use-prefers-reduced-motion.d.ts.map +1 -0
  233. package/dist/libs/use-prefers-reduced-motion.js +19 -0
  234. package/dist/scripts/AsheeThemeScript.js +43 -8
  235. package/dist/shared/index.d.ts +1 -0
  236. package/dist/shared/index.d.ts.map +1 -1
  237. package/dist/shared/typography.d.ts +81 -0
  238. package/dist/shared/typography.d.ts.map +1 -0
  239. package/dist/shared/typography.js +137 -0
  240. package/dist/utils/stacking.d.ts +2 -2
  241. package/dist/utils/stacking.d.ts.map +1 -1
  242. package/package.json +13 -6
  243. package/dist/components/date-picker/Calendar.d.ts.map +0 -1
  244. package/dist/components/date-picker/Calendar.js +0 -143
  245. package/dist/components/date-picker/DatePicker.d.ts.map +0 -1
  246. package/dist/components/date-picker/TimeSpinner.d.ts.map +0 -1
  247. package/dist/components/date-picker/date-picker-config.d.ts.map +0 -1
  248. package/dist/components/date-picker/date-picker-styles.d.ts.map +0 -1
  249. package/dist/components/date-picker/date-picker.helpers.d.ts.map +0 -1
  250. package/dist/components/date-picker/index.d.ts +0 -3
  251. package/dist/components/date-picker/index.d.ts.map +0 -1
  252. package/dist/components/date-picker/index.js +0 -6
  253. package/dist/components/select/Select.js +0 -98
  254. package/dist/components/select/index.d.ts +0 -3
  255. package/dist/components/select/index.d.ts.map +0 -1
  256. package/dist/components/select/index.js +0 -3
  257. package/dist/components/select/select-config.d.ts.map +0 -1
  258. package/dist/components/select/select-styles.d.ts.map +0 -1
  259. package/dist/components/select-menu/SelectMenu.d.ts.map +0 -1
  260. package/dist/components/select-menu/SelectMenu.js +0 -104
  261. package/dist/components/select-menu/index.d.ts +0 -4
  262. package/dist/components/select-menu/index.d.ts.map +0 -1
  263. package/dist/components/select-menu/index.js +0 -3
  264. package/dist/components/select-menu/select-menu-config.d.ts.map +0 -1
  265. package/dist/components/select-menu/use-select-floating.d.ts.map +0 -1
  266. /package/dist/components/{date-picker → calendar}/TimeSpinner.d.ts +0 -0
@@ -1,15 +1,15 @@
1
1
  "use client";
2
2
  "use client";
3
3
  import { cn as e } from "../../utils/cn.js";
4
- import { useAsheeConfig as t } from "../../libs/context.js";
5
- import { ChevronDownIcon as n } from "../../icons/ChevronDownIcon.js";
6
- import { RADIUS_CLASS as ee } from "../../shared/radius.js";
4
+ import { RADIUS_CLASS as t } from "../../shared/radius.js";
5
+ import { useAsheeConfig as n } from "../../libs/context.js";
6
+ import { ChevronDownIcon as ee } from "../../icons/ChevronDownIcon.js";
7
7
  import { resolveCascade as r, resolveClassKey as i, resolveRadiusKey as a } from "../../utils/resolve-token.js";
8
- import { FieldShell as te } from "../field/FieldShell.js";
9
- import { Button as ne } from "../button/Button.js";
10
- import { SelectMenu as o } from "../select-menu/SelectMenu.js";
11
- import { useSelectFloating as s } from "../select-menu/use-select-floating.js";
12
- import { CloseIcon as re } from "../../icons/CloseIcon.js";
8
+ import { CloseIcon as te } from "../../icons/CloseIcon.js";
9
+ import { FieldShell as ne } from "../field/FieldShell.js";
10
+ import { Button as o } from "../button/Button.js";
11
+ import { Menu as s } from "../menu/Menu.js";
12
+ import { useMenuFloating as re } from "../menu/use-menu-floating.js";
13
13
  import { Chip as ie } from "../chip/Chip.js";
14
14
  import { FALLBACK_MULTI_SELECT_CONFIG as c } from "./multi-select-config.js";
15
15
  import { MULTI_SELECT_FONT_CLASS as ae, MULTI_SELECT_HEIGHT_CLASS as oe, MULTI_SELECT_PADDING_CLASS as se, STATUS_BORDER_CLASS as ce } from "./multi-select-styles.js";
@@ -17,127 +17,140 @@ import { forwardRef as l, useCallback as u, useId as d, useMemo as f, useState a
17
17
  import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
18
18
  import { useClick as le, useDismiss as ue, useInteractions as de, useRole as fe } from "@floating-ui/react";
19
19
  //#region src/components/multi-select/MultiSelect.tsx
20
- var _ = l(({ options: l = [], value: _, onChange: v, InputLabel: y = "Select Options...", isSearch: pe = !0, searchPlaceholder: me = "Search...", searchInputName: he = "multiselect-search", belowList: ge, chipOptions: b, handleRemoveChip: x, handleAddChip: S, chipLabel: C, disableChipDisplay: w = !1, variant: T, color: E, size: D, radius: O, status: k, label: A, labelAlign: j, description: M, message: N, required: P, isLoading: F, disabled: I, containerClassName: L, id: _e, className: ve, menu: ye, chip: R, style: be, startContent: xe, endContent: Se }, z) => {
21
- let B = t(), V = B.components?.multiSelect, Ce = d(), H = _e ?? Ce, [U, we] = p(!1), [Te, Ee] = p(""), W = r(D, V?.size, void 0, c.size), De = r(T, V?.variant, B.defaultVariant, c.variant), G = r(E, V?.color, B.defaultColor, c.color), K = a(O, V?.radius, B.defaultRadius, c.radius), Oe = R?.className, ke = r(R?.color, V?.chip?.color, G, c.chip.color), Ae = r(R?.size, V?.chip?.size, void 0, c.chip.size), je = a(R?.radius, V?.chip?.radius, K, c.chip.radius), q = k ?? c.status, Me = q === "error" ? "danger" : q === "success" ? "success" : q === "warning" ? "warning" : G, Ne = r(j, V?.labelAlign, void 0, c.labelAlign), Pe = i(W, oe, c.size), Fe = i(W, se, c.size), Ie = i(W, ae, c.size), Le = i(je, ee, c.chip.radius), { refs: J, context: Y, isPositioned: X, floatingStyles: Re } = s({
22
- isOpen: U,
23
- onOpenChange: we,
24
- disabled: I
25
- }), ze = le(Y, { enabled: !I }), Be = ue(Y), Ve = fe(Y, { role: "listbox" }), { getReferenceProps: He, getFloatingProps: Ue } = de([
26
- ze,
27
- Be,
28
- Ve
29
- ]), Z = f(() => b === void 0 ? Array.isArray(_) ? l.filter((e) => _.includes(e.value)) : [] : b, [
20
+ var _ = l(({ options: l = [], value: _, onChange: v, InputLabel: y = "Dropmenu Options...", isSearch: pe = !0, searchPlaceholder: me = "Search...", searchInputName: he = "multiselect-search", belowList: ge, chipOptions: b, handleRemoveChip: x, handleAddChip: S, chipLabel: C, disableChipDisplay: _e = !1, variant: ve, color: ye, size: be, radius: xe, status: Se, label: w, labelAlign: T, description: E, message: D, required: O, isLoading: k, disabled: A, containerClassName: j, id: Ce, className: we, menu: Te, chip: M, style: Ee, startContent: De, endContent: Oe }, N) => {
21
+ let P = n(), F = P.components?.multiSelect, ke = d(), I = Ce ?? ke, [L, R] = p(!1), [Ae, je] = p(""), [Me, z] = p([]), B = _ !== void 0, V = _ ?? Me, H = r(be, F?.size, void 0, c.size), Ne = r(ve, F?.variant, P.defaultVariant, c.variant), U = r(ye, F?.color, P.defaultColor, c.color), W = a(xe, F?.radius, P.defaultRadius, c.radius), Pe = M?.className, Fe = r(M?.color, F?.chip?.color, U, c.chip.color), Ie = r(M?.size, F?.chip?.size, void 0, c.chip.size), Le = a(M?.radius, F?.chip?.radius, W, c.chip.radius), G = Se ?? c.status, Re = G === "error" ? "danger" : G === "success" ? "success" : G === "warning" ? "warning" : U, ze = r(T, F?.labelAlign, void 0, c.labelAlign), Be = i(H, oe, c.size), Ve = i(H, se, c.size), He = i(H, ae, c.size), Ue = i(Le, t, c.chip.radius), { refs: K, context: q, isPositioned: We, floatingStyles: Ge } = re({
22
+ isOpen: L,
23
+ onOpenChange: R,
24
+ disabled: A
25
+ }), Ke = le(q, { enabled: !A }), qe = ue(q), Je = fe(q, { role: "listbox" }), { getReferenceProps: Ye, getFloatingProps: J } = de([
26
+ Ke,
27
+ qe,
28
+ Je
29
+ ]), Y = f(() => b === void 0 ? l.filter((e) => V.includes(e.value)) : b, [
30
30
  b,
31
- _,
31
+ V,
32
32
  l
33
- ]), Q = u((e) => Z.some((t) => t.value === e), [Z]), We = u((e) => {
34
- let t = Q(e.value);
35
- if (S || x) t ? x?.(e.value) : S?.(e);
36
- else if (v) {
37
- let n = _ ?? [];
38
- v(t ? n.filter((t) => t !== e.value) : [...n, e.value]);
33
+ ]), X = u((e) => Y.some((t) => t.value === e), [Y]), Xe = u((e) => {
34
+ let t = X(e.value);
35
+ if (S || x) {
36
+ t ? x?.(e.value) : S?.(e);
37
+ return;
39
38
  }
39
+ let n = t ? V.filter((t) => t !== e.value) : [...V, e.value];
40
+ B || z(n), v?.(n);
40
41
  }, [
41
- Q,
42
+ X,
42
43
  S,
43
44
  x,
45
+ B,
44
46
  v,
45
- _
46
- ]), $ = u((e) => {
47
- x ? x(e) : v && Array.isArray(_) && v(_.filter((t) => t !== e));
47
+ V
48
+ ]), Z = u((e) => {
49
+ if (x) {
50
+ x(e);
51
+ return;
52
+ }
53
+ let t = V.filter((t) => t !== e);
54
+ B || z(t), v?.(t);
48
55
  }, [
49
56
  x,
57
+ B,
50
58
  v,
51
- _
52
- ]), Ge = f(() => Z.map((e) => e.value), [Z]), Ke = f(() => Z.length > 0 ? `${Z.length} selected` : y, [Z.length, y]), qe = He();
53
- return /* @__PURE__ */ h(te, {
54
- id: H,
55
- label: A,
56
- labelAlign: Ne,
57
- description: M,
58
- descriptionId: M ? `${H}-description` : void 0,
59
- message: N,
60
- messageId: N ? `${H}-message` : void 0,
61
- status: q,
62
- required: P,
63
- isLoading: F,
59
+ V
60
+ ]), Ze = f(() => Y.map((e) => e.value), [Y]), Qe = f(() => Y.length > 0 ? `${Y.length} selected` : y, [Y.length, y]), Q = E ? `${I}-description` : void 0, $ = D ? `${I}-message` : void 0, $e = [Q, $].filter(Boolean).join(" ") || void 0, et = Ye({ onKeyDown: u((e) => {
61
+ A || (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), R(!0));
62
+ }, [A]) });
63
+ return /* @__PURE__ */ h(ne, {
64
+ id: I,
65
+ label: w,
66
+ labelAlign: ze,
67
+ description: E,
68
+ descriptionId: Q,
69
+ message: D,
70
+ messageId: $,
71
+ status: G,
72
+ required: O,
73
+ isLoading: k,
64
74
  children: /* @__PURE__ */ g("div", {
65
- className: e("w-full flex flex-col gap-3", L),
66
- style: be,
75
+ className: e("w-full flex flex-col gap-3", j),
76
+ style: Ee,
67
77
  children: [/* @__PURE__ */ g("div", {
68
78
  className: "relative w-full",
69
- children: [/* @__PURE__ */ h(ne, {
79
+ children: [/* @__PURE__ */ h(o, {
70
80
  ref: (e) => {
71
- J.setReference(e), typeof z == "function" ? z(e) : z && (z.current = e);
81
+ K.setReference(e), typeof N == "function" ? N(e) : N && (N.current = e);
72
82
  },
73
83
  type: "button",
74
- variant: De,
75
- color: Me,
76
- size: W,
77
- radius: K,
78
- isDisabled: I,
79
- isLoading: F,
84
+ id: I,
85
+ variant: Ne,
86
+ color: Re,
87
+ size: H,
88
+ radius: W,
89
+ isDisabled: A,
90
+ isLoading: k,
80
91
  fullWidth: !0,
81
92
  animate: !1,
82
- "aria-expanded": U,
93
+ "aria-expanded": L,
83
94
  "aria-haspopup": "listbox",
84
- "aria-invalid": q === "error",
85
- "aria-describedby": [M ? `${H}-description` : void 0].filter(Boolean).join(" ") || void 0,
86
- className: e("font-normal text-left justify-between", ce[q], Pe, Fe, Ie, ve),
87
- startContent: xe,
88
- endContent: /* @__PURE__ */ g(m, { children: [Se, /* @__PURE__ */ h(n, { className: e("shrink-0 text-foreground/70 transition-transform duration-200", U && "rotate-180") })] }),
89
- ...qe,
95
+ "aria-invalid": G === "error",
96
+ "aria-describedby": $e,
97
+ className: e("font-normal text-left justify-between", ce[G], Be, Ve, He, we),
98
+ startContent: De,
99
+ endContent: /* @__PURE__ */ g(m, { children: [Oe, /* @__PURE__ */ h(ee, { className: e("shrink-0 text-foreground/70 transition-transform duration-200", L && "rotate-180") })] }),
100
+ ...et,
90
101
  children: /* @__PURE__ */ h("span", {
91
- className: e("truncate", Z.length > 0 ? "text-foreground" : "text-foreground/70"),
92
- children: Ke
102
+ className: e("truncate", Y.length > 0 ? "text-foreground" : "text-foreground/70"),
103
+ children: Qe
93
104
  })
94
- }), /* @__PURE__ */ h(o, {
95
- isOpen: U,
96
- floatingStyles: Re,
97
- context: Y,
98
- getFloatingProps: Ue,
99
- setFloatingRef: J.setFloating,
100
- isPositioned: X,
105
+ }), /* @__PURE__ */ h(s, {
106
+ isOpen: L,
107
+ floatingStyles: Ge,
108
+ context: q,
109
+ getFloatingProps: J,
110
+ setFloatingRef: K.setFloating,
111
+ isPositioned: We,
112
+ isMultiSelectable: !0,
113
+ returnFocus: !0,
101
114
  options: l,
102
- selectedValues: Ge,
103
- onSelectMenuOption: We,
115
+ selectedValues: Ze,
116
+ onOptionSelect: Xe,
104
117
  isSearch: pe,
105
118
  searchPlaceholder: me,
106
119
  searchInputName: he,
107
- searchQuery: Te,
108
- onSearchChange: Ee,
120
+ searchQuery: Ae,
121
+ onSearchChange: je,
109
122
  belowList: ge,
110
- menuProps: ye,
111
- menuConfig: V?.menu
123
+ menuProps: Te,
124
+ menuConfig: F?.menu
112
125
  })]
113
- }), !w && /* @__PURE__ */ g("div", {
126
+ }), !_e && /* @__PURE__ */ g("div", {
114
127
  className: "flex flex-col gap-1.5",
115
128
  children: [C && /* @__PURE__ */ h("span", {
116
129
  className: "text-xs font-medium text-foreground/70",
117
130
  children: C
118
131
  }), /* @__PURE__ */ h("div", {
119
132
  className: "flex flex-wrap gap-1.5 p-2 min-h-12 bg-secondary/20 border border-dashed border-border rounded-lg items-center",
120
- children: Z.length === 0 ? /* @__PURE__ */ h("span", {
133
+ children: Y.length === 0 ? /* @__PURE__ */ h("span", {
121
134
  className: "text-xs text-foreground/70 px-2 py-1",
122
135
  children: "No selections made"
123
- }) : Z.map((t) => /* @__PURE__ */ g(ie, {
136
+ }) : Y.map((t) => /* @__PURE__ */ g(ie, {
124
137
  variant: "bordered",
125
- color: ke,
126
- size: Ae,
127
- isDisabled: I,
128
- className: e("inline-flex items-center gap-1.5 font-medium shadow-xs", Le, Oe),
138
+ color: Fe,
139
+ size: Ie,
140
+ isDisabled: A,
141
+ className: e("inline-flex items-center gap-1.5 font-medium shadow-xs", Ue, Pe),
129
142
  children: [/* @__PURE__ */ h("span", { children: t.label }), /* @__PURE__ */ h("button", {
130
143
  type: "button",
131
- tabIndex: I ? -1 : 0,
144
+ tabIndex: A ? -1 : 0,
132
145
  onClick: (e) => {
133
- e.stopPropagation(), I || $(t.value);
146
+ e.stopPropagation(), A || Z(t.value);
134
147
  },
135
148
  onKeyDown: (e) => {
136
- (e.key === "Enter" || e.key === " ") && !I && (e.stopPropagation(), $(t.value));
149
+ (e.key === "Enter" || e.key === " ") && !A && (e.stopPropagation(), Z(t.value));
137
150
  },
138
151
  "aria-label": `Remove ${t.label}`,
139
- className: "inline-flex items-center justify-center h-3.5 w-3.5 rounded-full hover:bg-black/20 dark:hover:bg-white/20 transition-colors cursor-pointer shrink-0",
140
- children: /* @__PURE__ */ h(re, { className: "w-3 h-3" })
152
+ className: "inline-flex items-center justify-center h-3.5 w-3.5 rounded-full hover:bg-foreground/20 transition-colors cursor-pointer shrink-0",
153
+ children: /* @__PURE__ */ h(te, { className: "w-3 h-3" })
141
154
  })]
142
155
  }, String(t.value)))
143
156
  })]
@@ -1,6 +1,6 @@
1
1
  import { Color, Radius, Size, Variant } from '../../shared';
2
2
  import { InputConfig } from '../input';
3
- import { MenuConfig } from '../select-menu';
3
+ import { MenuConfig } from '../menu';
4
4
  /**
5
5
  * Configuration for selected value chips.
6
6
  * Controls the appearance of chips in the selected values section.
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select-config.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select/multi-select-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAKtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;CAQ/B,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,WAAW,EAAE,iBAAiB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"multi-select-config.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select/multi-select-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAKtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;CAQ/B,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,WAAW,EAAE,iBAAiB,CAAC;KAChC;CACF"}
@@ -0,0 +1,91 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { PaginationConfig } from './pagination-config';
3
+ type BasePaginationProps = PaginationConfig & Omit<HTMLAttributes<HTMLElement>, "color" | "onChange">;
4
+ /**
5
+ * Configuration options for the Pagination component.
6
+ */
7
+ export interface PaginationProps extends BasePaginationProps {
8
+ /**
9
+ * The current page, counted from one.
10
+ */
11
+ page: number;
12
+ /**
13
+ * How many pages the collection has.
14
+ */
15
+ pageCount: number;
16
+ /**
17
+ * Called with the page the consumer chose.
18
+ * It is not called when the chosen page is already the current page.
19
+ */
20
+ onPageChange?: (page: number) => void;
21
+ /**
22
+ * Builds the destination of a page.
23
+ *
24
+ * Supplying it renders every control as a link rather than as a button,
25
+ * which is what a paginated collection with real addresses wants. Without
26
+ * it the controls are buttons that report the chosen page through
27
+ * `onPageChange`.
28
+ */
29
+ hrefForPage?: (page: number) => string;
30
+ /**
31
+ * Name of the navigation landmark.
32
+ *
33
+ * @default "Pagination"
34
+ */
35
+ label?: string;
36
+ /**
37
+ * Whether the controls are unavailable, for example while a page loads.
38
+ *
39
+ * @default false
40
+ */
41
+ isDisabled?: boolean;
42
+ }
43
+ /**
44
+ * A set of controls for moving through a paged collection.
45
+ *
46
+ * Pagination shows the current page, a range of pages around it, and the
47
+ * controls that move between them. The first and last pages are always
48
+ * offered, a longer range becomes an ellipsis, and the current page carries
49
+ * `aria-current="page"` so assistive technology can announce where the reader
50
+ * is in the collection.
51
+ *
52
+ * The controls are links when the consumer supplies `hrefForPage`, which is
53
+ * what a collection with real addresses wants, and buttons that report the
54
+ * chosen page through `onPageChange` otherwise. The current page is never
55
+ * reported as a change, because it is already where the reader is.
56
+ *
57
+ * Size, variant, colour and radius resolve through the standard AsheeUI
58
+ * cascade: prop, component config, global theme defaults, and the built-in
59
+ * fallback.
60
+ *
61
+ * @param props - Pagination configuration options and navigation attributes.
62
+ * @param props.page - The current page, counted from one.
63
+ * @param props.pageCount - How many pages the collection has.
64
+ * @param props.onPageChange - Called with the page the consumer chose.
65
+ * @param props.hrefForPage - Builds a page's destination, which renders links.
66
+ * @param props.label - Name of the navigation landmark. Defaults to "Pagination".
67
+ * @param props.siblingCount - Pages shown each side of the current page. Defaults to 1.
68
+ * @param props.showEdges - Whether first and last page controls are shown. Defaults to false.
69
+ * @param props.isDisabled - Whether the controls are unavailable. Defaults to false.
70
+ * @param props.size - Size of the controls. Defaults to "md".
71
+ * @param props.variant - Visual style of the controls. Defaults to the configured value.
72
+ * @param props.color - Accent colour of the controls. Defaults to the configured value.
73
+ * @param props.radius - Corner rounding of the controls. Defaults to "md".
74
+ * @param props.className - Extra classes applied last.
75
+ *
76
+ * @example
77
+ * ```tsx
78
+ * <Pagination page={3} pageCount={42} onPageChange={setPage} />
79
+ * ```
80
+ *
81
+ * @example
82
+ * ```tsx
83
+ * // Real addresses, so every control is a link.
84
+ * <Pagination page={3} pageCount={42} hrefForPage={(page) => `/invoices?page=${page}`} />
85
+ * ```
86
+ *
87
+ * @see PaginationConfig - The configuration type for component defaults.
88
+ */
89
+ export declare const Pagination: import('react').ForwardRefExoticComponent<PaginationProps & import('react').RefAttributes<HTMLElement>>;
90
+ export {};
91
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,OAAO,CAAC;AAUf,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAQ7B,KAAK,mBAAmB,GAAG,gBAAgB,GACzC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,UAAU,yGAgMtB,CAAC"}
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ "use client";
3
+ import { cn as e } from "../../utils/cn.js";
4
+ import { RADIUS_CLASS as t } from "../../shared/radius.js";
5
+ import { resolveVariantClass as n } from "../../shared/variant.js";
6
+ import { useAsheeConfig as r } from "../../libs/context.js";
7
+ import { resolveCascade as i, resolveRadiusKey as a } from "../../utils/resolve-token.js";
8
+ import { Button as o } from "../button/Button.js";
9
+ import { ChevronRightIcon as s } from "../../icons/ChevronRightIcon.js";
10
+ import { Link as c } from "../link/Link.js";
11
+ import { ChevronLeftIcon as l } from "../../icons/ChevronLeftIcon.js";
12
+ import { FALLBACK_PAGINATION_CONFIG as u } from "./pagination-config.js";
13
+ import { PAGINATION_BASE_CLASS as d, PAGINATION_GAP_CLASS as f, PAGINATION_LIST_CLASS as p } from "./pagination-styles.js";
14
+ import { getPaginationRange as m } from "./pagination.helpers.js";
15
+ import { forwardRef as h } from "react";
16
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
17
+ //#region src/components/pagination/Pagination.tsx
18
+ var v = h(({ page: h, pageCount: v, onPageChange: y, hrefForPage: b, label: x = "Pagination", size: S, variant: C, color: w, radius: T, siblingCount: E, showEdges: D, isDisabled: O = !1, className: k, ...A }, j) => {
19
+ let M = r(), N = M.components?.pagination, P = i(S, N?.size, void 0, u.size), F = i(C, N?.variant, M.defaultVariant, u.variant), I = i(w, N?.color, M.defaultColor, u.color), L = a(T, N?.radius, M.defaultRadius, u.radius), R = i(E, N?.siblingCount, void 0, u.siblingCount), z = i(D, N?.showEdges, void 0, u.showEdges), B = Math.min(Math.max(h, 1), Math.max(v, 1)), V = Math.max(v, 1), H = (e) => {
20
+ e === B || e < 1 || e > v || y?.(e);
21
+ }, U = (r, i, a, s = !1) => {
22
+ let l = r < 1 || r > v;
23
+ return b ? /* @__PURE__ */ g(c, {
24
+ href: b(r),
25
+ "aria-label": i,
26
+ "aria-current": s ? "page" : void 0,
27
+ "aria-disabled": O || l ? !0 : void 0,
28
+ className: e("inline-flex items-center justify-center min-w-8 h-8 px-2", t[L], n(F, I), (O || l) && "opacity-50 pointer-events-none cursor-not-allowed"),
29
+ children: a
30
+ }) : /* @__PURE__ */ g(o, {
31
+ type: "button",
32
+ size: P,
33
+ variant: F,
34
+ color: I,
35
+ radius: L,
36
+ "aria-label": i,
37
+ "aria-current": s ? "page" : void 0,
38
+ isDisabled: O || l,
39
+ onClick: () => H(r),
40
+ children: a
41
+ });
42
+ }, W = m(B, v, R);
43
+ return /* @__PURE__ */ g("nav", {
44
+ ref: j,
45
+ "aria-label": x,
46
+ className: e(d, k),
47
+ ...A,
48
+ children: /* @__PURE__ */ _("ul", {
49
+ className: p,
50
+ children: [
51
+ z && /* @__PURE__ */ g("li", { children: U(1, "First page", /* @__PURE__ */ g(l, { "aria-hidden": "true" })) }),
52
+ /* @__PURE__ */ g("li", { children: U(B - 1, "Previous page", /* @__PURE__ */ g(l, { "aria-hidden": "true" })) }),
53
+ W.map((e, t) => e === "ellipsis" ? /* @__PURE__ */ g("li", { children: /* @__PURE__ */ g("span", {
54
+ "aria-hidden": "true",
55
+ className: f,
56
+ children: "…"
57
+ }) }, `gap-${t}`) : /* @__PURE__ */ g("li", { children: U(e, `Page ${e}`, e, e === B) }, e)),
58
+ /* @__PURE__ */ g("li", { children: U(B + 1, "Next page", /* @__PURE__ */ g(s, { "aria-hidden": "true" })) }),
59
+ z && /* @__PURE__ */ g("li", { children: U(V, "Last page", /* @__PURE__ */ g(s, { "aria-hidden": "true" })) })
60
+ ]
61
+ })
62
+ });
63
+ });
64
+ v.displayName = "Pagination";
65
+ //#endregion
66
+ export { v as Pagination };
@@ -0,0 +1,3 @@
1
+ export * from './Pagination';
2
+ export * from './pagination-config';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./Pagination.js";
2
+ export * from "./pagination-config.js";
3
+ export * from "./pagination-styles.js";
4
+ export * from "./pagination.helpers.js";
@@ -0,0 +1,66 @@
1
+ import { Color, Radius, Size, Variant } from '../../shared';
2
+ /**
3
+ * Theme configuration options for the Pagination component.
4
+ *
5
+ * Set under `components.pagination` in the AsheeUI config. Values feed the
6
+ * component-level fallback tier of the theme cascade.
7
+ */
8
+ export interface PaginationConfig {
9
+ /**
10
+ * Size of the page controls.
11
+ *
12
+ * @default "md"
13
+ */
14
+ size?: Size;
15
+ /**
16
+ * Visual style variant of the page controls.
17
+ *
18
+ * @default "bordered"
19
+ */
20
+ variant?: Variant;
21
+ /**
22
+ * Theme accent colour of the page controls.
23
+ *
24
+ * @default "primary"
25
+ */
26
+ color?: Color;
27
+ /**
28
+ * Corner rounding of the page controls.
29
+ *
30
+ * @default "md"
31
+ */
32
+ radius?: Radius;
33
+ /**
34
+ * How many pages to show on each side of the current page.
35
+ * A wider range shows more of the collection at once; a narrower range keeps
36
+ * the trail short.
37
+ *
38
+ * @default 1
39
+ */
40
+ siblingCount?: number;
41
+ /**
42
+ * Whether the trail offers controls for the first and last page.
43
+ *
44
+ * @default false
45
+ */
46
+ showEdges?: boolean;
47
+ }
48
+ /**
49
+ * Default config values registered for the Pagination component.
50
+ *
51
+ * `variant` and `color` are intentionally absent so they inherit from the
52
+ * global `defaultVariant` and `defaultColor`.
53
+ */
54
+ export declare const defaultPaginationConfig: PaginationConfig;
55
+ /**
56
+ * Hard fallback values used when no config tier provides a value.
57
+ * These values are used when instance props, component config,
58
+ * and global defaults are all undefined.
59
+ */
60
+ export declare const FALLBACK_PAGINATION_CONFIG: Required<PaginationConfig>;
61
+ declare module "../../libs/registry" {
62
+ interface ComponentTypeConfigRegistry {
63
+ pagination: PaginationConfig;
64
+ }
65
+ }
66
+ //# sourceMappingURL=pagination-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-config.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAKrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,gBAAgB,CAOxD,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,UAAU,EAAE,gBAAgB,CAAC;KAC9B;CACF"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { registerComponentDefaults as e } from "../../libs/registry.js";
3
+ //#region src/components/pagination/pagination-config.ts
4
+ var t = {
5
+ size: "md",
6
+ radius: "md",
7
+ siblingCount: 1,
8
+ showEdges: !1
9
+ }, n = {
10
+ size: "md",
11
+ variant: "bordered",
12
+ color: "primary",
13
+ radius: "md",
14
+ siblingCount: 1,
15
+ showEdges: !1
16
+ };
17
+ e("pagination", t);
18
+ //#endregion
19
+ export { n as FALLBACK_PAGINATION_CONFIG, t as defaultPaginationConfig };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Pagination component styles for AsheeUI.
3
+ * This file provides the static classes the Pagination component is built
4
+ * from.
5
+ */
6
+ /**
7
+ * Base classes for the navigation landmark.
8
+ */
9
+ export declare const PAGINATION_BASE_CLASS = "w-full";
10
+ /**
11
+ * Classes for the ordered list that holds the page controls.
12
+ */
13
+ export declare const PAGINATION_LIST_CLASS = "flex items-center flex-wrap list-none p-0 m-0 gap-1";
14
+ /**
15
+ * Classes for a gap in the page range.
16
+ * A gap conveys nothing on its own, so it is not focusable and not announced.
17
+ */
18
+ export declare const PAGINATION_GAP_CLASS = "inline-flex items-center justify-center min-w-7 px-1 select-none text-foreground/60";
19
+ //# sourceMappingURL=pagination-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-styles.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,qBAAqB,wDACqB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,wFACsD,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ //#region src/components/pagination/pagination-styles.ts
3
+ var e = "w-full", t = "flex items-center flex-wrap list-none p-0 m-0 gap-1", n = "inline-flex items-center justify-center min-w-7 px-1 select-none text-foreground/60";
4
+ //#endregion
5
+ export { e as PAGINATION_BASE_CLASS, n as PAGINATION_GAP_CLASS, t as PAGINATION_LIST_CLASS };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Pagination helpers for AsheeUI.
3
+ * This file provides the pure range calculation the Pagination component is
4
+ * built on, kept apart from the component so the arithmetic can be reasoned
5
+ * about and tested on its own.
6
+ */
7
+ /**
8
+ * One entry in a pagination range.
9
+ * An ellipsis stands for the pages a range leaves out.
10
+ */
11
+ export type PaginationRangeItem = number | "ellipsis";
12
+ /**
13
+ * Calculates the page controls a range shows.
14
+ *
15
+ * The first and last pages are always offered, the current page is always
16
+ * shown with `siblingCount` pages on either side of it, and a gap between two
17
+ * shown pages becomes an ellipsis. A collection short enough to show in full
18
+ * is shown in full.
19
+ *
20
+ * @param page - The current page, counted from one.
21
+ * @param pageCount - How many pages the collection has.
22
+ * @param siblingCount - How many pages to show on each side of the current page.
23
+ * @returns The controls to render, in order.
24
+ */
25
+ export declare function getPaginationRange(page: number, pageCount: number, siblingCount?: number): PaginationRangeItem[];
26
+ //# sourceMappingURL=pagination.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.helpers.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/pagination.helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,SAAI,GACf,mBAAmB,EAAE,CAuBvB"}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ //#region src/components/pagination/pagination.helpers.ts
3
+ function e(e, t, n = 1) {
4
+ if (t <= 0) return [];
5
+ if (t === 1) return [1];
6
+ let r = Math.min(Math.max(e, 1), t), i = Math.max(n, 0), a = Math.max(r - i, 2), o = Math.min(r + i, t - 1), s = [1];
7
+ a > 2 && s.push("ellipsis");
8
+ for (let e = a; e <= o; e += 1) s.push(e);
9
+ return o < t - 1 && s.push("ellipsis"), s.push(t), s;
10
+ }
11
+ //#endregion
12
+ export { e as getPaginationRange };