asheeui 0.6.2 → 0.6.3

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 (281) hide show
  1. package/dist/AsheeUIProvider.d.ts +34 -0
  2. package/dist/AsheeUIProvider.d.ts.map +1 -1
  3. package/dist/components/accordion/Accordion.d.ts +55 -44
  4. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  5. package/dist/components/accordion/Accordion.js +27 -27
  6. package/dist/components/accordion/accordion-config.d.ts +41 -12
  7. package/dist/components/accordion/accordion-config.d.ts.map +1 -1
  8. package/dist/components/accordion/accordion-styles.d.ts +20 -0
  9. package/dist/components/accordion/accordion-styles.d.ts.map +1 -1
  10. package/dist/components/accordion/accordion-styles.js +1 -1
  11. package/dist/components/autocomplete/Autocomplete.d.ts +59 -39
  12. package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
  13. package/dist/components/autocomplete/Autocomplete.js +98 -91
  14. package/dist/components/autocomplete/autocomplete-config.d.ts +9 -62
  15. package/dist/components/autocomplete/autocomplete-config.d.ts.map +1 -1
  16. package/dist/components/autocomplete/autocomplete-config.js +6 -21
  17. package/dist/components/button/Button.d.ts +50 -51
  18. package/dist/components/button/Button.d.ts.map +1 -1
  19. package/dist/components/button/Button.js +19 -19
  20. package/dist/components/button/button-config.d.ts +23 -15
  21. package/dist/components/button/button-config.d.ts.map +1 -1
  22. package/dist/components/button/button-styles.d.ts +11 -1
  23. package/dist/components/button/button-styles.d.ts.map +1 -1
  24. package/dist/components/card/Card.d.ts +85 -43
  25. package/dist/components/card/Card.d.ts.map +1 -1
  26. package/dist/components/card/Card.js +49 -49
  27. package/dist/components/card/card-config.d.ts +35 -18
  28. package/dist/components/card/card-config.d.ts.map +1 -1
  29. package/dist/components/card/card-config.js +0 -2
  30. package/dist/components/card/card-styles.d.ts +17 -1
  31. package/dist/components/card/card-styles.d.ts.map +1 -1
  32. package/dist/components/carousel/Carousel.d.ts +107 -12
  33. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  34. package/dist/components/carousel/Carousel.js +63 -64
  35. package/dist/components/carousel/carousel-config.d.ts +94 -7
  36. package/dist/components/carousel/carousel-config.d.ts.map +1 -1
  37. package/dist/components/carousel/carousel-config.js +6 -4
  38. package/dist/components/carousel/carousel-styles.d.ts +32 -1
  39. package/dist/components/carousel/carousel-styles.d.ts.map +1 -1
  40. package/dist/components/chip/Chip.d.ts +55 -34
  41. package/dist/components/chip/Chip.d.ts.map +1 -1
  42. package/dist/components/chip/Chip.js +71 -72
  43. package/dist/components/chip/chip-config.d.ts +29 -15
  44. package/dist/components/chip/chip-config.d.ts.map +1 -1
  45. package/dist/components/chip/chip-config.js +5 -6
  46. package/dist/components/chip/chip-styles.d.ts +21 -1
  47. package/dist/components/chip/chip-styles.d.ts.map +1 -1
  48. package/dist/components/date-picker/DatePicker.d.ts +166 -2
  49. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  50. package/dist/components/date-picker/DatePicker.js +110 -99
  51. package/dist/components/date-picker/date-picker-config.d.ts +31 -0
  52. package/dist/components/date-picker/date-picker-config.d.ts.map +1 -1
  53. package/dist/components/date-picker/date-picker-config.js +8 -16
  54. package/dist/components/date-picker/date-picker-styles.d.ts +21 -1
  55. package/dist/components/date-picker/date-picker-styles.d.ts.map +1 -1
  56. package/dist/components/date-picker/date-picker-styles.js +7 -11
  57. package/dist/components/drawer/Drawer.d.ts +97 -7
  58. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  59. package/dist/components/drawer/Drawer.js +9 -9
  60. package/dist/components/drawer/drawer-config.d.ts +54 -1
  61. package/dist/components/drawer/drawer-config.d.ts.map +1 -1
  62. package/dist/components/drawer/drawer-styles.d.ts +21 -0
  63. package/dist/components/drawer/drawer-styles.d.ts.map +1 -1
  64. package/dist/components/field/FieldShell.d.ts +86 -0
  65. package/dist/components/field/FieldShell.d.ts.map +1 -1
  66. package/dist/components/field/field-config.d.ts +66 -3
  67. package/dist/components/field/field-config.d.ts.map +1 -1
  68. package/dist/components/field/field-config.js +2 -1
  69. package/dist/components/field/field-styles.d.ts +22 -0
  70. package/dist/components/field/field-styles.d.ts.map +1 -1
  71. package/dist/components/field/field-styles.js +10 -0
  72. package/dist/components/field/index.js +1 -0
  73. package/dist/components/image/Image.d.ts +35 -28
  74. package/dist/components/image/Image.d.ts.map +1 -1
  75. package/dist/components/image/Image.js +7 -7
  76. package/dist/components/image/image-config.d.ts +25 -7
  77. package/dist/components/image/image-config.d.ts.map +1 -1
  78. package/dist/components/image/image-styles.d.ts +9 -0
  79. package/dist/components/image/image-styles.d.ts.map +1 -1
  80. package/dist/components/input/Input.d.ts +117 -10
  81. package/dist/components/input/Input.d.ts.map +1 -1
  82. package/dist/components/input/Input.js +20 -20
  83. package/dist/components/input/PasswordInput.d.ts +48 -0
  84. package/dist/components/input/PasswordInput.d.ts.map +1 -1
  85. package/dist/components/input/input-config.d.ts +10 -1
  86. package/dist/components/input/input-config.d.ts.map +1 -1
  87. package/dist/components/input/input-config.js +5 -8
  88. package/dist/components/input/input-styles.d.ts +10 -0
  89. package/dist/components/input/input-styles.d.ts.map +1 -1
  90. package/dist/components/input/input-styles.js +5 -9
  91. package/dist/components/keyboard/OnScreenKeyboard.d.ts +58 -8
  92. package/dist/components/keyboard/OnScreenKeyboard.d.ts.map +1 -1
  93. package/dist/components/keyboard/OnScreenKeyboard.js +49 -48
  94. package/dist/components/keyboard/index.js +1 -1
  95. package/dist/components/keyboard/keyboard-config.d.ts +88 -3
  96. package/dist/components/keyboard/keyboard-config.d.ts.map +1 -1
  97. package/dist/components/keyboard/{default-keyboard-config.js → keyboard-config.js} +7 -1
  98. package/dist/components/keyboard/keyboard-context.d.ts +103 -13
  99. package/dist/components/keyboard/keyboard-context.d.ts.map +1 -1
  100. package/dist/components/keyboard/keyboard-context.js +66 -68
  101. package/dist/components/keyboard/use-keyboard-field.d.ts +37 -0
  102. package/dist/components/keyboard/use-keyboard-field.d.ts.map +1 -1
  103. package/dist/components/link/Link.d.ts +118 -9
  104. package/dist/components/link/Link.d.ts.map +1 -1
  105. package/dist/components/link/Link.js +29 -30
  106. package/dist/components/link/link-config.d.ts +58 -5
  107. package/dist/components/link/link-config.d.ts.map +1 -1
  108. package/dist/components/link/link-styles.d.ts +24 -4
  109. package/dist/components/link/link-styles.d.ts.map +1 -1
  110. package/dist/components/marquee/Marquee.d.ts +77 -8
  111. package/dist/components/marquee/Marquee.d.ts.map +1 -1
  112. package/dist/components/marquee/Marquee.js +5 -5
  113. package/dist/components/marquee/marquee-config.d.ts +74 -0
  114. package/dist/components/marquee/marquee-config.d.ts.map +1 -1
  115. package/dist/components/marquee/marquee-styles.d.ts +12 -0
  116. package/dist/components/marquee/marquee-styles.d.ts.map +1 -1
  117. package/dist/components/modal/Modal.d.ts +113 -25
  118. package/dist/components/modal/Modal.d.ts.map +1 -1
  119. package/dist/components/modal/Modal.js +75 -82
  120. package/dist/components/modal/modal-config.d.ts +59 -1
  121. package/dist/components/modal/modal-config.d.ts.map +1 -1
  122. package/dist/components/modal/modal-styles.d.ts +8 -1
  123. package/dist/components/modal/modal-styles.d.ts.map +1 -1
  124. package/dist/components/modal/modal-styles.js +4 -11
  125. package/dist/components/multi-select/MultiSelect.d.ts +152 -23
  126. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  127. package/dist/components/multi-select/MultiSelect.js +195 -217
  128. package/dist/components/multi-select/multi-select-config.d.ts +61 -23
  129. package/dist/components/multi-select/multi-select-config.d.ts.map +1 -1
  130. package/dist/components/multi-select/multi-select-config.js +16 -25
  131. package/dist/components/multi-select/multi-select-styles.d.ts +17 -0
  132. package/dist/components/multi-select/multi-select-styles.d.ts.map +1 -1
  133. package/dist/components/multi-select/multi-select-styles.js +9 -13
  134. package/dist/components/radio/Radio.d.ts +137 -13
  135. package/dist/components/radio/Radio.d.ts.map +1 -1
  136. package/dist/components/radio/Radio.js +66 -141
  137. package/dist/components/radio/RadioGroup.d.ts +88 -23
  138. package/dist/components/radio/RadioGroup.d.ts.map +1 -1
  139. package/dist/components/radio/RadioGroup.js +141 -66
  140. package/dist/components/radio/radio-config.d.ts +36 -11
  141. package/dist/components/radio/radio-config.d.ts.map +1 -1
  142. package/dist/components/radio/radio-config.js +9 -11
  143. package/dist/components/radio/radio-context.d.ts +44 -1
  144. package/dist/components/radio/radio-context.d.ts.map +1 -1
  145. package/dist/components/radio/radio-styles.d.ts +24 -1
  146. package/dist/components/radio/radio-styles.d.ts.map +1 -1
  147. package/dist/components/resizable-screen/ResizableScreen.d.ts +79 -32
  148. package/dist/components/resizable-screen/ResizableScreen.d.ts.map +1 -1
  149. package/dist/components/resizable-screen/ResizableScreen.js +77 -72
  150. package/dist/components/resizable-screen/resizable-screen-config.d.ts +62 -0
  151. package/dist/components/resizable-screen/resizable-screen-config.d.ts.map +1 -1
  152. package/dist/components/scrollbar/scrollbar-config.d.ts +44 -9
  153. package/dist/components/scrollbar/scrollbar-config.d.ts.map +1 -1
  154. package/dist/components/select/Select.d.ts +157 -17
  155. package/dist/components/select/Select.d.ts.map +1 -1
  156. package/dist/components/select/Select.js +141 -152
  157. package/dist/components/select/select-config.d.ts +26 -19
  158. package/dist/components/select/select-config.d.ts.map +1 -1
  159. package/dist/components/select/select-config.js +5 -21
  160. package/dist/components/select/select-styles.d.ts +10 -0
  161. package/dist/components/select/select-styles.d.ts.map +1 -1
  162. package/dist/components/select/select-styles.js +5 -9
  163. package/dist/components/select-menu/SelectMenu.d.ts +125 -8
  164. package/dist/components/select-menu/SelectMenu.d.ts.map +1 -1
  165. package/dist/components/select-menu/SelectMenu.js +107 -79
  166. package/dist/components/select-menu/index.d.ts +2 -0
  167. package/dist/components/select-menu/index.d.ts.map +1 -1
  168. package/dist/components/select-menu/index.js +1 -0
  169. package/dist/components/select-menu/select-menu-config.d.ts +82 -0
  170. package/dist/components/select-menu/select-menu-config.d.ts.map +1 -0
  171. package/dist/components/select-menu/select-menu-config.js +12 -0
  172. package/dist/components/sidebar/Sidebar.d.ts +151 -51
  173. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  174. package/dist/components/sidebar/Sidebar.js +211 -232
  175. package/dist/components/sidebar/sidebar-config.d.ts +140 -21
  176. package/dist/components/sidebar/sidebar-config.d.ts.map +1 -1
  177. package/dist/components/sidebar/sidebar-config.js +9 -12
  178. package/dist/components/sidebar/sidebar-styles.d.ts +24 -0
  179. package/dist/components/sidebar/sidebar-styles.d.ts.map +1 -1
  180. package/dist/components/spinner/spinner-config.d.ts +15 -9
  181. package/dist/components/spinner/spinner-config.d.ts.map +1 -1
  182. package/dist/components/spinner/spinner-styles.d.ts +10 -3
  183. package/dist/components/spinner/spinner-styles.d.ts.map +1 -1
  184. package/dist/components/spinner/spinner.d.ts +27 -20
  185. package/dist/components/spinner/spinner.d.ts.map +1 -1
  186. package/dist/components/spinner/spinner.js +18 -18
  187. package/dist/components/switch/Switch.d.ts +109 -9
  188. package/dist/components/switch/Switch.d.ts.map +1 -1
  189. package/dist/components/switch/Switch.js +19 -19
  190. package/dist/components/switch/switch-config.d.ts +20 -6
  191. package/dist/components/switch/switch-config.d.ts.map +1 -1
  192. package/dist/components/switch/switch-config.js +8 -16
  193. package/dist/components/switch/switch-styles.d.ts +17 -0
  194. package/dist/components/switch/switch-styles.d.ts.map +1 -1
  195. package/dist/components/table/Table.d.ts +101 -28
  196. package/dist/components/table/Table.d.ts.map +1 -1
  197. package/dist/components/table/Table.js +56 -56
  198. package/dist/components/table/table-config.d.ts +75 -8
  199. package/dist/components/table/table-config.d.ts.map +1 -1
  200. package/dist/components/table/table-styles.d.ts +25 -6
  201. package/dist/components/table/table-styles.d.ts.map +1 -1
  202. package/dist/components/tabs/Tabs.d.ts +84 -31
  203. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  204. package/dist/components/tabs/Tabs.js +44 -44
  205. package/dist/components/tabs/tabs-config.d.ts +102 -9
  206. package/dist/components/tabs/tabs-config.d.ts.map +1 -1
  207. package/dist/components/tabs/tabs-styles.d.ts +16 -4
  208. package/dist/components/tabs/tabs-styles.d.ts.map +1 -1
  209. package/dist/components/textarea/Textarea.d.ts +105 -11
  210. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  211. package/dist/components/textarea/Textarea.js +27 -24
  212. package/dist/components/textarea/textarea-config.d.ts +21 -0
  213. package/dist/components/textarea/textarea-config.d.ts.map +1 -1
  214. package/dist/components/textarea/textarea-config.js +8 -16
  215. package/dist/components/textarea/textarea-styles.d.ts +9 -0
  216. package/dist/components/textarea/textarea-styles.d.ts.map +1 -1
  217. package/dist/components/textarea/textarea-styles.js +5 -9
  218. package/dist/components/toast/ToastItem.d.ts +58 -4
  219. package/dist/components/toast/ToastItem.d.ts.map +1 -1
  220. package/dist/components/toast/ToastItem.js +18 -18
  221. package/dist/components/toast/toast-config.d.ts +104 -6
  222. package/dist/components/toast/toast-config.d.ts.map +1 -1
  223. package/dist/components/toast/toast-context.d.ts +123 -11
  224. package/dist/components/toast/toast-context.d.ts.map +1 -1
  225. package/dist/components/toast/toast-context.js +19 -19
  226. package/dist/components/toast/toast-styles.d.ts +27 -5
  227. package/dist/components/toast/toast-styles.d.ts.map +1 -1
  228. package/dist/components/toast/use-pausable-timeout.d.ts +29 -0
  229. package/dist/components/toast/use-pausable-timeout.d.ts.map +1 -1
  230. package/dist/components/tooltip/Tooltip.d.ts +76 -16
  231. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  232. package/dist/components/tooltip/Tooltip.js +25 -25
  233. package/dist/components/tooltip/tooltip-config.d.ts +73 -3
  234. package/dist/components/tooltip/tooltip-config.d.ts.map +1 -1
  235. package/dist/components/tooltip/tooltip-styles.d.ts +12 -0
  236. package/dist/components/tooltip/tooltip-styles.d.ts.map +1 -1
  237. package/dist/config/config.d.ts +50 -2
  238. package/dist/config/config.d.ts.map +1 -1
  239. package/dist/config/default-config.d.ts +5 -0
  240. package/dist/config/default-config.d.ts.map +1 -1
  241. package/dist/config/default-config.js +23 -0
  242. package/dist/config/define-config.d.ts +23 -0
  243. package/dist/config/define-config.d.ts.map +1 -1
  244. package/dist/config/resolve-color.d.ts +25 -0
  245. package/dist/config/resolve-color.d.ts.map +1 -1
  246. package/dist/config/resolve-config.d.ts +23 -0
  247. package/dist/config/resolve-config.d.ts.map +1 -1
  248. package/dist/index.css +43 -7
  249. package/dist/index.d.ts +30 -2
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +120 -115
  252. package/dist/libs/context.d.ts +50 -1
  253. package/dist/libs/context.d.ts.map +1 -1
  254. package/dist/libs/registry.d.ts +61 -5
  255. package/dist/libs/registry.d.ts.map +1 -1
  256. package/dist/libs/use-isomorphic-layout-effect.d.ts +18 -0
  257. package/dist/libs/use-isomorphic-layout-effect.d.ts.map +1 -1
  258. package/dist/shared/index.d.ts +3 -0
  259. package/dist/shared/index.d.ts.map +1 -0
  260. package/dist/shared/radius.d.ts +37 -1
  261. package/dist/shared/radius.d.ts.map +1 -1
  262. package/dist/shared/variant.d.ts +31 -0
  263. package/dist/shared/variant.d.ts.map +1 -1
  264. package/dist/shared/variant.js +132 -45
  265. package/dist/theme/color.d.ts +89 -1
  266. package/dist/theme/color.d.ts.map +1 -1
  267. package/dist/theme/controller.d.ts +121 -0
  268. package/dist/theme/controller.d.ts.map +1 -1
  269. package/dist/theme/controller.js +84 -0
  270. package/dist/theme/useTheme.d.ts +68 -0
  271. package/dist/theme/useTheme.d.ts.map +1 -1
  272. package/dist/theme/useTheme.js +23 -0
  273. package/dist/utils/index.d.ts +0 -7
  274. package/dist/utils/index.d.ts.map +1 -1
  275. package/dist/utils/resolve-token.d.ts +101 -0
  276. package/dist/utils/resolve-token.d.ts.map +1 -1
  277. package/package.json +1 -1
  278. package/dist/components/keyboard/default-keyboard-config.d.ts +0 -10
  279. package/dist/components/keyboard/default-keyboard-config.d.ts.map +0 -1
  280. package/dist/shared/size.d.ts +0 -2
  281. package/dist/shared/size.d.ts.map +0 -1
@@ -1,178 +1,169 @@
1
1
  "use client";
2
- import { jsx as f, jsxs as z } from "react/jsx-runtime";
3
- import { useFloating as Le, autoUpdate as Ee, offset as Ie, flip as we, shift as _e, useClick as ze, useDismiss as Fe, useRole as Me, useInteractions as ke } from "@floating-ui/react";
4
- import { forwardRef as Ke, useId as Ne, useState as F, useMemo as y, useCallback as Oe } from "react";
5
- import { ChevronDownIcon as Te } from "../../icons/ChevronDownIcon.js";
6
- import { useAsheeConfig as De } from "../../libs/context.js";
2
+ import { jsx as f, jsxs as w } from "react/jsx-runtime";
3
+ import { useFloating as Se, autoUpdate as ve, offset as be, flip as ye, shift as xe, size as ge, useClick as he, useDismiss as Ae, useRole as Re, useInteractions as Le } from "@floating-ui/react";
4
+ import { forwardRef as Ee, useId as Ie, useState as _, useMemo as y, useCallback as we } from "react";
5
+ import { ChevronDownIcon as _e } from "../../icons/ChevronDownIcon.js";
6
+ import { useAsheeConfig as Fe } from "../../libs/context.js";
7
+ import { resolveCascade as m, resolveRadiusKey as Ke, resolveClassKey as Oe } from "../../utils/resolve-token.js";
8
+ import { FieldShell as ke } from "../field/FieldShell.js";
9
+ import { SelectMenu as Ce } from "../select-menu/SelectMenu.js";
10
+ import { FALLBACK_SELECT_CONFIG as s } from "./select-config.js";
11
+ import { SELECT_STATUS_BORDER_CLASS as Ne, SELECT_SIZE_CLASS as ze } from "./select-styles.js";
12
+ import { resolveVariantClass as Te } from "../../shared/variant.js";
7
13
  import { RADIUS_CLASS as je } from "../../shared/radius.js";
8
- import { resolveVariantClass as Ue } from "../../shared/variant.js";
9
- import { resolveCascade as r, resolveRadiusKey as M, resolveClassKey as ge } from "../../utils/resolve-token.js";
10
- import { FieldShell as Be } from "../field/FieldShell.js";
11
- import { SelectMenu as Pe } from "../select-menu/SelectMenu.js";
12
- import { FALLBACK_SELECT_CONFIG as t } from "./select-config.js";
13
- import { SELECT_STATUS_BORDER_CLASS as Qe, SELECT_SIZE_CLASS as Ge } from "./select-styles.js";
14
- import { cn as k } from "../../utils/cn.js";
15
- const Ze = Ke(
14
+ import { cn as F } from "../../utils/cn.js";
15
+ const De = Ee(
16
16
  ({
17
17
  options: p = [],
18
- value: o,
19
- onChange: v,
20
- onValueChange: a,
18
+ value: r,
19
+ onChange: S,
20
+ onValueChange: l,
21
21
  size: K,
22
- radius: N,
23
- variant: O,
24
- color: T,
25
- status: D,
26
- label: j,
27
- labelAlign: U,
28
- description: g,
29
- message: B,
30
- required: P,
31
- isLoading: Q,
32
- disabled: S,
33
- isSearch: G = !1,
34
- searchPlaceholder: Z = "Search options...",
35
- searchInputName: $ = "select-search",
22
+ radius: O,
23
+ variant: k,
24
+ color: C,
25
+ status: N,
26
+ label: z,
27
+ labelAlign: T,
28
+ description: j,
29
+ message: D,
30
+ required: M,
31
+ isLoading: P,
32
+ disabled: v,
33
+ isSearch: U = !1,
34
+ searchPlaceholder: B = "Search options...",
35
+ searchInputName: Q = "select-search",
36
36
  initialValue: n,
37
- belowList: q,
37
+ belowList: $,
38
38
  placeholder: x = "Select...",
39
- buttonColor: R,
40
- className: H,
41
- dropdownClassName: J,
42
- id: W,
39
+ buttonColor: g,
40
+ className: G,
41
+ dropdownClassName: H,
42
+ id: Z,
43
43
  name: h,
44
- menuVariant: X,
45
- menuColor: Y,
46
- menuRadius: C,
47
- menuSize: V,
48
- style: ee
49
- }, i) => {
50
- var _;
51
- const d = De(), e = (_ = d.components) == null ? void 0 : _.select, se = Ne(), te = W ?? se, [c, A] = F(!1), [re, L] = F(""), { refs: E, floatingStyles: oe, context: u } = Le({
44
+ menu: q,
45
+ style: J
46
+ }, a) => {
47
+ var I;
48
+ const i = Fe(), e = (I = i.components) == null ? void 0 : I.select, W = Ie(), X = Z ?? W, [c, A] = _(!1), [Y, R] = _(""), { refs: L, floatingStyles: V, context: d } = Se({
52
49
  open: c,
53
- onOpenChange: (s) => !S && A(s),
50
+ onOpenChange: (t) => !v && A(t),
54
51
  placement: "bottom-start",
55
- whileElementsMounted: Ee,
56
- middleware: [Ie(4), we(), _e({ padding: 8 })]
57
- }), le = ze(u, { enabled: !S }), ae = Fe(u), ne = Me(u, { role: "listbox" }), { getReferenceProps: ie, getFloatingProps: de } = ke([
58
- le,
59
- ae,
60
- ne
61
- ]), ce = r(
52
+ whileElementsMounted: ve,
53
+ middleware: [
54
+ be(4),
55
+ ye(),
56
+ xe({ padding: 8 }),
57
+ ge({
58
+ apply({ availableHeight: t, elements: b }) {
59
+ Object.assign(b.floating.style, {
60
+ maxHeight: `${t}px`
61
+ });
62
+ }
63
+ })
64
+ ]
65
+ }), ee = he(d, { enabled: !v }), te = Ae(d), se = Re(d, { role: "listbox" }), { getReferenceProps: re, getFloatingProps: oe } = Le([
66
+ ee,
67
+ te,
68
+ se
69
+ ]), le = m(
62
70
  K,
63
71
  e == null ? void 0 : e.size,
64
72
  void 0,
65
- t.size
66
- ), b = r(
67
- O,
73
+ s.size
74
+ ), E = m(
75
+ k,
68
76
  e == null ? void 0 : e.variant,
69
- d.defaultVariant,
70
- t.variant
71
- ), I = r(
72
- T,
77
+ i.defaultVariant,
78
+ s.variant
79
+ ), ne = m(
80
+ C,
73
81
  e == null ? void 0 : e.color,
74
- d.defaultColor,
75
- t.color
76
- ), w = M(
77
- N,
82
+ i.defaultColor,
83
+ s.color
84
+ ), ae = Ke(
85
+ O,
78
86
  e == null ? void 0 : e.radius,
79
- d.defaultRadius,
80
- t.radius
81
- ), m = D ?? t.status, ue = r(
82
- U,
87
+ i.defaultRadius,
88
+ s.radius
89
+ ), u = N ?? s.status, ie = m(
90
+ T,
83
91
  e == null ? void 0 : e.labelAlign,
84
92
  void 0,
85
- t.labelAlign
86
- ), me = r(
87
- X,
88
- e == null ? void 0 : e.menuVariant,
89
- void 0,
90
- b
91
- ), fe = r(
92
- Y,
93
- e == null ? void 0 : e.menuColor,
94
- void 0,
95
- I
96
- ), pe = M(
97
- C,
98
- e == null ? void 0 : e.menuRadius,
99
- w,
100
- t.radius
101
- ), ve = r(
102
- V,
103
- e == null ? void 0 : e.menuSize,
104
- void 0,
105
- t.menuSize
106
- ), Se = Ue(b, I), be = m !== "default" ? Qe[m] : "", ye = b === "underlined" ? "rounded-none" : ge(
107
- w,
93
+ s.labelAlign
94
+ ), ce = Te(
95
+ E,
96
+ ne
97
+ ), de = u !== "default" ? Ne[u] : "", ue = E === "underlined" ? "rounded-none" : Oe(
98
+ ae,
108
99
  je,
109
- t.radius
110
- ), l = y(
111
- () => p.find((s) => s.value === o),
112
- [p, o]
113
- ), xe = Oe(
114
- (s) => {
115
- if (a == null || a(s.value), v) {
116
- const Ae = {
117
- target: { value: s.value, name: h ?? "" }
100
+ s.radius
101
+ ), o = y(
102
+ () => p.find((t) => t.value === r),
103
+ [p, r]
104
+ ), fe = we(
105
+ (t) => {
106
+ if (l == null || l(t.value), S) {
107
+ const b = {
108
+ target: { value: t.value, name: h ?? "" }
118
109
  };
119
- v(Ae);
110
+ S(b);
120
111
  }
121
- A(!1), L("");
112
+ A(!1), R("");
122
113
  },
123
- [h, v, a]
124
- ), Re = y(() => l != null && l.label ? l.label : n !== void 0 ? String(n) : x, [l, n, x]), he = y(
125
- () => o != null ? [o] : [],
126
- [o]
114
+ [h, S, l]
115
+ ), me = y(() => o != null && o.label ? o.label : n !== void 0 ? String(n) : x, [o, n, x]), pe = y(
116
+ () => r != null ? [r] : [],
117
+ [r]
127
118
  );
128
119
  return /* @__PURE__ */ f(
129
- Be,
120
+ ke,
130
121
  {
131
- id: te,
132
- label: j,
133
- labelAlign: ue,
134
- description: g,
135
- message: B,
136
- status: m,
137
- required: P,
138
- isLoading: Q,
139
- children: /* @__PURE__ */ z("div", { className: "w-full relative inline-block", children: [
140
- /* @__PURE__ */ z(
122
+ id: X,
123
+ label: z,
124
+ labelAlign: ie,
125
+ description: j,
126
+ message: D,
127
+ status: u,
128
+ required: M,
129
+ isLoading: P,
130
+ children: /* @__PURE__ */ w("div", { className: "w-full relative inline-block", children: [
131
+ /* @__PURE__ */ w(
141
132
  "button",
142
133
  {
143
- ref: (s) => {
144
- E.setReference(s), typeof i == "function" ? i(s) : i && (i.current = s);
134
+ ref: (t) => {
135
+ L.setReference(t), typeof a == "function" ? a(t) : a && (a.current = t);
145
136
  },
146
137
  type: "button",
147
- disabled: S,
138
+ disabled: v,
148
139
  "aria-expanded": c,
149
140
  "aria-haspopup": "listbox",
150
- "aria-invalid": m === "error",
151
- className: k(
141
+ "aria-invalid": u === "error",
142
+ className: F(
152
143
  "w-full flex items-center justify-between font-normal text-left text-foreground transition-colors outline-none select-none cursor-pointer shrink-0",
153
144
  "focus-visible:ring-2 focus-visible:ring-offset-2",
154
145
  "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed",
155
- Ge[ce],
156
- Se,
157
- be,
158
- ye,
159
- R && `bg-[${R}]`,
160
- H
146
+ ze[le],
147
+ ce,
148
+ de,
149
+ ue,
150
+ g && `bg-[${g}]`,
151
+ G
161
152
  ),
162
- style: ee,
163
- ...ie(),
153
+ style: J,
154
+ ...re(),
164
155
  children: [
165
156
  /* @__PURE__ */ f(
166
157
  "span",
167
158
  {
168
- className: l || n ? "text-foreground" : "text-foreground/70",
169
- children: Re
159
+ className: o || n ? "text-foreground" : "text-foreground/70",
160
+ children: me
170
161
  }
171
162
  ),
172
163
  /* @__PURE__ */ f(
173
- Te,
164
+ _e,
174
165
  {
175
- className: k(
166
+ className: F(
176
167
  "ml-2 shrink-0 text-foreground/70 transition-transform duration-200",
177
168
  c && "rotate-180"
178
169
  )
@@ -182,27 +173,25 @@ const Ze = Ke(
182
173
  }
183
174
  ),
184
175
  /* @__PURE__ */ f(
185
- Pe,
176
+ Ce,
186
177
  {
187
178
  isOpen: c,
188
- context: u,
189
- floatingStyles: oe,
190
- getFloatingProps: de,
191
- setFloatingRef: E.setFloating,
179
+ context: d,
180
+ floatingStyles: V,
181
+ getFloatingProps: oe,
182
+ setFloatingRef: L.setFloating,
192
183
  options: p,
193
- selectedValues: he,
194
- onSelectOption: xe,
195
- isSearch: G,
196
- searchPlaceholder: Z,
197
- searchInputName: $,
198
- searchQuery: re,
199
- onSearchChange: L,
200
- belowList: q,
201
- dropdownClassName: J,
202
- variant: me,
203
- color: fe,
204
- radius: pe,
205
- size: ve
184
+ selectedValues: pe,
185
+ onSelectOption: fe,
186
+ isSearch: U,
187
+ searchPlaceholder: B,
188
+ searchInputName: Q,
189
+ searchQuery: Y,
190
+ onSearchChange: R,
191
+ belowList: $,
192
+ dropdownClassName: H,
193
+ menuProps: q,
194
+ menuConfig: e
206
195
  }
207
196
  )
208
197
  ] })
@@ -210,7 +199,7 @@ const Ze = Ke(
210
199
  );
211
200
  }
212
201
  );
213
- Ze.displayName = "Select";
202
+ De.displayName = "Select";
214
203
  export {
215
- Ze as Select
204
+ De as Select
216
205
  };
@@ -1,24 +1,31 @@
1
- import { Radius } from '../../shared/radius';
2
- import { Size } from '../../shared/size';
3
- import { Color, Variant } from '../../shared/variant';
4
- import { FieldConfig, FieldSizeKey } from '../field/field-config';
5
- export type SelectSizeKey = FieldSizeKey;
6
- export interface SelectOption {
7
- label: string;
8
- value: string | number;
9
- disabled?: boolean;
10
- [key: string]: unknown;
11
- }
12
- export interface SelectConfig extends Omit<FieldConfig, "size"> {
13
- size?: SelectSizeKey;
14
- radius?: Radius;
15
- menuVariant?: Variant;
16
- menuColor?: Color;
17
- menuRadius?: Radius;
18
- menuSize?: Size;
1
+ import { FieldConfig } from '../field/field-config';
2
+ import { SelectMenuConfig } from '../select-menu';
3
+ /**
4
+ * Theme configuration options for the Select component.
5
+ *
6
+ * Inherits the shared field config (label handling) and adds trigger
7
+ * and dropdown-menu overrides. Set under `components.select` in
8
+ * the AsheeUI config.
9
+ */
10
+ export interface SelectConfig extends FieldConfig {
11
+ /**
12
+ * Configuration for the dropdown menu.
13
+ * Controls the menu's visual appearance and behavior.
14
+ */
15
+ menu?: SelectMenuConfig;
19
16
  }
17
+ /**
18
+ * Default config values registered for the Select component.
19
+ *
20
+ * Inherits field label defaults from `FALLBACK_FIELD_CONFIG`.
21
+ */
20
22
  export declare const defaultSelectConfig: SelectConfig;
21
- export declare const FALLBACK_SELECT_CONFIG: Required<SelectConfig>;
23
+ /**
24
+ * Hard fallback values used when no config tier provides a value.
25
+ * These values are used when instance props, component config,
26
+ * and global defaults are all undefined.
27
+ */
28
+ export declare const FALLBACK_SELECT_CONFIG: Required<FieldConfig>;
22
29
  declare module "../../libs/registry" {
23
30
  interface ComponentTypeConfigRegistry {
24
31
  select: SelectConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"select-config.d.ts","sourceRoot":"","sources":["../../../src/components/select/select-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7D,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,mBAAmB,EAAE,YAIjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,YAAY,CAYzD,CAAC;AAEF,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,MAAM,EAAE,YAAY,CAAC;KACtB;CACF"}
1
+ {"version":3,"file":"select-config.d.ts","sourceRoot":"","sources":["../../../src/components/select/select-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAiC,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,uBAAwB,CAAC;AAE5D,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,MAAM,EAAE,YAAY,CAAC;KACtB;CACF"}
@@ -1,25 +1,9 @@
1
1
  "use client";
2
2
  import { registerComponentDefaults as e } from "../../libs/registry.js";
3
- import { FALLBACK_FIELD_CONFIG as r } from "../field/field-config.js";
4
- const t = {
5
- size: "md",
6
- labelAlign: "left",
7
- variant: "bordered"
8
- }, i = {
9
- ...r,
10
- size: "md",
11
- radius: "md",
12
- variant: "bordered",
13
- color: "primary",
14
- status: "default",
15
- labelAlign: "left",
16
- menuVariant: "solid",
17
- menuColor: "secondary",
18
- menuRadius: "md",
19
- menuSize: "lg"
20
- };
21
- e("select", t);
3
+ import { FALLBACK_FIELD_CONFIG as t, defaultFieldConfig as o } from "../field/field-config.js";
4
+ const C = o, l = t;
5
+ e("select", C);
22
6
  export {
23
- i as FALLBACK_SELECT_CONFIG,
24
- t as defaultSelectConfig
7
+ l as FALLBACK_SELECT_CONFIG,
8
+ C as defaultSelectConfig
25
9
  };
@@ -1,4 +1,14 @@
1
1
  import { FieldSizeKey, FieldStatus } from '../field/field-config';
2
+ /**
3
+ * CSS classes for select trigger size.
4
+ * Maps size keys to Tailwind classes that control height,
5
+ * padding, and font size.
6
+ */
2
7
  export declare const SELECT_SIZE_CLASS: Record<FieldSizeKey, string>;
8
+ /**
9
+ * CSS classes for select status border styles.
10
+ * Maps status values to Tailwind classes for border and
11
+ * focus ring colors. Re-exports FIELD_STATUS_BORDER_CLASS.
12
+ */
3
13
  export declare const SELECT_STATUS_BORDER_CLASS: Record<FieldStatus, string>;
4
14
  //# sourceMappingURL=select-styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-styles.d.ts","sourceRoot":"","sources":["../../../src/components/select/select-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAI1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAQlE,CAAC"}
1
+ {"version":3,"file":"select-styles.d.ts","sourceRoot":"","sources":["../../../src/components/select/select-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGvE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAI1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CACxC,CAAC"}
@@ -1,15 +1,11 @@
1
1
  "use client";
2
- const s = {
2
+ import { FIELD_STATUS_BORDER_CLASS as S } from "../field/field-styles.js";
3
+ const x = {
3
4
  sm: "h-8 px-2.5 text-xs",
4
5
  md: "h-10 px-3 text-sm",
5
6
  lg: "h-12 px-4 text-base"
6
- }, e = {
7
- default: "",
8
- error: "border-danger focus-visible:border-danger focus-visible:ring-danger/20",
9
- warning: "border-warning focus-visible:border-warning focus-visible:ring-warning/20",
10
- success: "border-success focus-visible:border-success focus-visible:ring-success/20"
11
- };
7
+ }, E = S;
12
8
  export {
13
- s as SELECT_SIZE_CLASS,
14
- e as SELECT_STATUS_BORDER_CLASS
9
+ x as SELECT_SIZE_CLASS,
10
+ E as SELECT_STATUS_BORDER_CLASS
15
11
  };
@@ -1,40 +1,157 @@
1
1
  import { FloatingContext } from '@floating-ui/react';
2
2
  import { ReactNode } from 'react';
3
- import { Radius } from '../../shared/radius';
4
- import { Size } from '../../shared/size';
5
- import { Color, Variant } from '../../shared/variant';
3
+ import { SelectMenuConfig } from './select-menu-config';
4
+ /**
5
+ * Type alias for a select option.
6
+ * Each option must have a label and a unique value.
7
+ */
6
8
  export interface SelectOption {
7
9
  label: string;
8
10
  value: string | number;
9
11
  disabled?: boolean;
10
12
  [key: string]: unknown;
11
13
  }
14
+ /**
15
+ * Props for the SelectMenu component.
16
+ */
12
17
  export interface SelectMenuProps {
18
+ /**
19
+ * Whether the menu is open.
20
+ */
13
21
  isOpen: boolean;
22
+ /**
23
+ * Floating UI context from the parent component.
24
+ */
14
25
  context: FloatingContext;
26
+ /**
27
+ * CSS styles for positioning from Floating UI.
28
+ */
15
29
  floatingStyles: React.CSSProperties;
30
+ /**
31
+ * Props getter for floating element from Floating UI.
32
+ */
16
33
  getFloatingProps: (userProps?: Record<string, unknown>) => Record<string, unknown>;
34
+ /**
35
+ * Ref setter for the floating element.
36
+ */
17
37
  setFloatingRef: (node: HTMLElement | null) => void;
38
+ /**
39
+ * Available options to display in the menu.
40
+ */
18
41
  options: SelectOption[];
42
+ /**
43
+ * Currently selected values.
44
+ * Used to highlight selected options with a checkmark.
45
+ */
19
46
  selectedValues?: (string | number)[];
47
+ /**
48
+ * Callback fired when an option is selected.
49
+ * Receives the selected option object.
50
+ */
20
51
  onSelectOption: (option: SelectOption) => void;
52
+ /**
53
+ * Whether search input is shown in the menu.
54
+ * @default true
55
+ */
21
56
  isSearch?: boolean;
57
+ /**
58
+ * Placeholder text for the search input.
59
+ * @default "Search..."
60
+ */
22
61
  searchPlaceholder?: string;
62
+ /**
63
+ * Name attribute for the search input.
64
+ * @default "select-menu-search"
65
+ */
23
66
  searchInputName?: string;
67
+ /**
68
+ * Controlled search query value.
69
+ */
24
70
  searchQuery?: string;
71
+ /**
72
+ * Callback fired when the search query changes.
73
+ */
25
74
  onSearchChange?: (query: string) => void;
75
+ /**
76
+ * Content rendered below the options list.
77
+ */
26
78
  belowList?: ReactNode;
79
+ /**
80
+ * Extra CSS classes for the dropdown.
81
+ */
27
82
  dropdownClassName?: string;
28
- variant?: Variant;
29
- color?: Color;
30
- size?: Size;
31
- radius?: Radius;
83
+ /**
84
+ * Configuration for menu items from the parent component.
85
+ */
86
+ menuConfig?: SelectMenuConfig;
87
+ /**
88
+ * Props override for menu configuration.
89
+ */
90
+ menuProps?: SelectMenuConfig;
91
+ /**
92
+ * Custom render function for each option.
93
+ * Receives the option and a boolean indicating if it's selected.
94
+ */
32
95
  renderOption?: (option: SelectOption, isSelected: boolean) => ReactNode;
96
+ /**
97
+ * Initial focus target for the FloatingFocusManager.
98
+ */
33
99
  initialFocus?: number | React.RefObject<HTMLElement>;
100
+ /**
101
+ * Whether to return focus to the trigger after closing.
102
+ * @default false
103
+ */
34
104
  returnFocus?: boolean;
35
105
  }
106
+ /**
107
+ * A reusable dropdown menu for selecting options from a list.
108
+ *
109
+ * SelectMenu renders a floating dropdown with search, option list, and
110
+ * selection state management. It is designed to be used as the dropdown
111
+ * implementation for Select, MultiSelect, and Autocomplete components.
112
+ *
113
+ * The component uses Floating UI for positioning and accessibility, and
114
+ * supports custom option rendering, search filtering, and configurable
115
+ * item styles through the cascade resolution system.
116
+ *
117
+ * @param props - SelectMenu configuration options.
118
+ * @param props.isOpen - Whether the menu is open.
119
+ * @param props.context - Floating UI context.
120
+ * @param props.floatingStyles - CSS styles for positioning.
121
+ * @param props.getFloatingProps - Props getter for the floating element.
122
+ * @param props.setFloatingRef - Ref setter for the floating element.
123
+ * @param props.options - Available options to display.
124
+ * @param props.selectedValues - Currently selected values.
125
+ * @param props.onSelectOption - Callback fired when an option is selected.
126
+ * @param props.isSearch - Whether search is enabled. Defaults to true.
127
+ * @param props.searchPlaceholder - Search placeholder. Defaults to "Search...".
128
+ * @param props.belowList - Content below the options list.
129
+ * @param props.dropdownClassName - Extra classes for the dropdown.
130
+ * @param props.menuConfig - Configuration for menu items.
131
+ * @param props.menuProps - Props override for menu configuration.
132
+ * @param props.renderOption - Custom render function for options.
133
+ *
134
+ * @example
135
+ * ```tsx
136
+ * const { refs, floatingStyles, context } = useFloating(...);
137
+ *
138
+ * <SelectMenu
139
+ * isOpen={isOpen}
140
+ * context={context}
141
+ * floatingStyles={floatingStyles}
142
+ * getFloatingProps={getFloatingProps}
143
+ * setFloatingRef={refs.setFloating}
144
+ * options={options}
145
+ * selectedValues={selectedValues}
146
+ * onSelectOption={handleSelect}
147
+ * />
148
+ * ```
149
+ *
150
+ * @see SelectMenuConfig - The configuration type for menu items.
151
+ * @see Button - The button component used for menu items.
152
+ */
36
153
  export declare const SelectMenu: {
37
- ({ isOpen, context, floatingStyles, getFloatingProps, setFloatingRef, options, selectedValues, onSelectOption, isSearch, searchPlaceholder, searchInputName, searchQuery, onSearchChange, belowList, dropdownClassName, variant, color, size, radius, renderOption, initialFocus, returnFocus, }: SelectMenuProps): import("react").JSX.Element | null;
154
+ ({ isOpen, context, floatingStyles, getFloatingProps, setFloatingRef, options, selectedValues, onSelectOption, isSearch, searchPlaceholder, searchInputName, searchQuery, onSearchChange, belowList, dropdownClassName, menuConfig, menuProps, renderOption, initialFocus, returnFocus, }: SelectMenuProps): import("react").JSX.Element | null;
38
155
  displayName: string;
39
156
  };
40
157
  //# sourceMappingURL=SelectMenu.d.ts.map