@sixthshift/design-system 0.2.1 → 0.3.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 (288) hide show
  1. package/README.md +135 -28
  2. package/dist/components/Badge/Badge.d.ts +5 -2
  3. package/dist/components/Badge/Badge.d.ts.map +1 -1
  4. package/dist/components/Badge/Badge.js +5 -3
  5. package/dist/components/Badge/Badge.js.map +1 -1
  6. package/dist/components/BarChart/BarChart.d.ts +8 -2
  7. package/dist/components/BarChart/BarChart.d.ts.map +1 -1
  8. package/dist/components/BarChart/BarChart.js +5 -3
  9. package/dist/components/BarChart/BarChart.js.map +1 -1
  10. package/dist/components/Calendar/Calendar.d.ts +17 -1
  11. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  12. package/dist/components/Calendar/Calendar.js +80 -225
  13. package/dist/components/Calendar/Calendar.js.map +1 -1
  14. package/dist/components/Calendar/CalendarView.d.ts +15 -0
  15. package/dist/components/Calendar/CalendarView.d.ts.map +1 -0
  16. package/dist/components/Calendar/CalendarView.js +255 -0
  17. package/dist/components/Calendar/CalendarView.js.map +1 -0
  18. package/dist/components/Calendar/calendar.types.d.ts +78 -27
  19. package/dist/components/Calendar/calendar.types.d.ts.map +1 -1
  20. package/dist/components/Calendar/calendar.types.js +10 -3
  21. package/dist/components/Calendar/calendar.types.js.map +1 -1
  22. package/dist/components/Calendar/index.d.ts +16 -2
  23. package/dist/components/Calendar/index.d.ts.map +1 -1
  24. package/dist/components/Calendar/index.js +15 -1
  25. package/dist/components/Calendar/index.js.map +1 -1
  26. package/dist/components/ColorDot/ColorDot.d.ts +9 -3
  27. package/dist/components/ColorDot/ColorDot.d.ts.map +1 -1
  28. package/dist/components/ColorDot/ColorDot.js +5 -3
  29. package/dist/components/ColorDot/ColorDot.js.map +1 -1
  30. package/dist/components/DatePicker/DatePicker.d.ts +2 -2
  31. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  32. package/dist/components/DatePicker/DatePicker.js +65 -10
  33. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  34. package/dist/components/DatePicker/datepicker.types.d.ts +34 -36
  35. package/dist/components/DatePicker/datepicker.types.d.ts.map +1 -1
  36. package/dist/components/DatePicker/datepicker.types.js +5 -3
  37. package/dist/components/DatePicker/datepicker.types.js.map +1 -1
  38. package/dist/components/DatePicker/index.d.ts +10 -1
  39. package/dist/components/DatePicker/index.d.ts.map +1 -1
  40. package/dist/components/DatePicker/index.js +8 -0
  41. package/dist/components/DatePicker/index.js.map +1 -1
  42. package/dist/components/DateRangePicker/DateRangePicker.d.ts +3 -2
  43. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  44. package/dist/components/DateRangePicker/DateRangePicker.js +17 -21
  45. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
  46. package/dist/components/DateRangePicker/daterangepicker.types.d.ts +20 -20
  47. package/dist/components/DateRangePicker/daterangepicker.types.d.ts.map +1 -1
  48. package/dist/components/DateRangePicker/daterangepicker.types.js +6 -0
  49. package/dist/components/DateRangePicker/daterangepicker.types.js.map +1 -1
  50. package/dist/components/DateRangePicker/index.d.ts +8 -1
  51. package/dist/components/DateRangePicker/index.d.ts.map +1 -1
  52. package/dist/components/DateRangePicker/index.js +6 -0
  53. package/dist/components/DateRangePicker/index.js.map +1 -1
  54. package/dist/components/DateTimePicker/DateTimePicker.d.ts +3 -3
  55. package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +1 -1
  56. package/dist/components/DateTimePicker/DateTimePicker.js +30 -12
  57. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  58. package/dist/components/DateTimePicker/datetimepicker.types.d.ts +20 -17
  59. package/dist/components/DateTimePicker/datetimepicker.types.d.ts.map +1 -1
  60. package/dist/components/DateTimePicker/datetimepicker.types.js +10 -0
  61. package/dist/components/DateTimePicker/datetimepicker.types.js.map +1 -1
  62. package/dist/components/DateTimePicker/index.d.ts +8 -1
  63. package/dist/components/DateTimePicker/index.d.ts.map +1 -1
  64. package/dist/components/DateTimePicker/index.js +6 -0
  65. package/dist/components/DateTimePicker/index.js.map +1 -1
  66. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts +3 -3
  67. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
  68. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js +41 -20
  69. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js.map +1 -1
  70. package/dist/components/DateTimeRangePicker/datetimerangepicker.types.d.ts +22 -18
  71. package/dist/components/DateTimeRangePicker/datetimerangepicker.types.d.ts.map +1 -1
  72. package/dist/components/DateTimeRangePicker/datetimerangepicker.types.js +8 -0
  73. package/dist/components/DateTimeRangePicker/datetimerangepicker.types.js.map +1 -1
  74. package/dist/components/DateTimeRangePicker/index.d.ts +8 -0
  75. package/dist/components/DateTimeRangePicker/index.d.ts.map +1 -1
  76. package/dist/components/DateTimeRangePicker/index.js +7 -0
  77. package/dist/components/DateTimeRangePicker/index.js.map +1 -1
  78. package/dist/components/EmptyState/EmptyState.d.ts +16 -5
  79. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  80. package/dist/components/EmptyState/EmptyState.js +5 -3
  81. package/dist/components/EmptyState/EmptyState.js.map +1 -1
  82. package/dist/components/Field/Field.d.ts +3 -3
  83. package/dist/components/Field/Field.d.ts.map +1 -1
  84. package/dist/components/Field/Field.js +6 -4
  85. package/dist/components/Field/Field.js.map +1 -1
  86. package/dist/components/LineChart/LineChart.d.ts +18 -2
  87. package/dist/components/LineChart/LineChart.d.ts.map +1 -1
  88. package/dist/components/LineChart/LineChart.js +5 -3
  89. package/dist/components/LineChart/LineChart.js.map +1 -1
  90. package/dist/components/Markdown/Markdown.d.ts +2 -4
  91. package/dist/components/Markdown/Markdown.d.ts.map +1 -1
  92. package/dist/components/Markdown/Markdown.js +3 -2
  93. package/dist/components/Markdown/Markdown.js.map +1 -1
  94. package/dist/components/Message/Message.d.ts.map +1 -1
  95. package/dist/components/Message/Message.js +16 -1
  96. package/dist/components/Message/Message.js.map +1 -1
  97. package/dist/components/MetricList/MetricList.d.ts +3 -3
  98. package/dist/components/MetricList/MetricList.d.ts.map +1 -1
  99. package/dist/components/MetricList/MetricList.js +5 -3
  100. package/dist/components/MetricList/MetricList.js.map +1 -1
  101. package/dist/components/Modal/Modal.d.ts +24 -5
  102. package/dist/components/Modal/Modal.d.ts.map +1 -1
  103. package/dist/components/Modal/Modal.js +16 -6
  104. package/dist/components/Modal/Modal.js.map +1 -1
  105. package/dist/components/Modal/components/ModalContext.d.ts +14 -0
  106. package/dist/components/Modal/components/ModalContext.d.ts.map +1 -1
  107. package/dist/components/Modal/components/ModalContext.js.map +1 -1
  108. package/dist/components/Modal/components/ModalHeader.d.ts.map +1 -1
  109. package/dist/components/Modal/components/ModalHeader.js +13 -2
  110. package/dist/components/Modal/components/ModalHeader.js.map +1 -1
  111. package/dist/components/NavBottom/NavBottom.d.ts +2 -1
  112. package/dist/components/NavBottom/NavBottom.d.ts.map +1 -1
  113. package/dist/components/NavBottom/NavBottom.js +6 -4
  114. package/dist/components/NavBottom/NavBottom.js.map +1 -1
  115. package/dist/components/NavSide/NavItem.js +1 -1
  116. package/dist/components/NavSide/NavItem.js.map +1 -1
  117. package/dist/components/NavSide/NavSide.d.ts +2 -1
  118. package/dist/components/NavSide/NavSide.d.ts.map +1 -1
  119. package/dist/components/NavSide/NavSide.js +5 -3
  120. package/dist/components/NavSide/NavSide.js.map +1 -1
  121. package/dist/components/Popover/Popover.d.ts.map +1 -1
  122. package/dist/components/Popover/Popover.js +7 -0
  123. package/dist/components/Popover/Popover.js.map +1 -1
  124. package/dist/components/Popover/components/PopoverBody.d.ts.map +1 -1
  125. package/dist/components/Popover/components/PopoverBody.js +5 -2
  126. package/dist/components/Popover/components/PopoverBody.js.map +1 -1
  127. package/dist/components/Popover/components/PopoverContext.d.ts +1 -0
  128. package/dist/components/Popover/components/PopoverContext.d.ts.map +1 -1
  129. package/dist/components/Popover/components/PopoverContext.js.map +1 -1
  130. package/dist/components/Popover/components/PopoverTrigger.d.ts.map +1 -1
  131. package/dist/components/Popover/components/PopoverTrigger.js +2 -2
  132. package/dist/components/Popover/components/PopoverTrigger.js.map +1 -1
  133. package/dist/components/ProgressBar/ProgressBar.d.ts +2 -1
  134. package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -1
  135. package/dist/components/ProgressBar/ProgressBar.js +5 -3
  136. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  137. package/dist/components/Select/Select.d.ts +11 -2
  138. package/dist/components/Select/Select.d.ts.map +1 -1
  139. package/dist/components/Select/Select.js +64 -18
  140. package/dist/components/Select/Select.js.map +1 -1
  141. package/dist/components/Select/SelectDropdown.d.ts +14 -2
  142. package/dist/components/Select/SelectDropdown.d.ts.map +1 -1
  143. package/dist/components/Select/SelectDropdown.js +19 -4
  144. package/dist/components/Select/SelectDropdown.js.map +1 -1
  145. package/dist/components/Select/SelectTrigger.d.ts +10 -3
  146. package/dist/components/Select/SelectTrigger.d.ts.map +1 -1
  147. package/dist/components/Select/SelectTrigger.js +12 -3
  148. package/dist/components/Select/SelectTrigger.js.map +1 -1
  149. package/dist/components/Select/useSelectKeyboard.d.ts +15 -1
  150. package/dist/components/Select/useSelectKeyboard.d.ts.map +1 -1
  151. package/dist/components/Select/useSelectKeyboard.js +73 -65
  152. package/dist/components/Select/useSelectKeyboard.js.map +1 -1
  153. package/dist/components/Sheet/Sheet.d.ts +19 -5
  154. package/dist/components/Sheet/Sheet.d.ts.map +1 -1
  155. package/dist/components/Sheet/Sheet.js +18 -6
  156. package/dist/components/Sheet/Sheet.js.map +1 -1
  157. package/dist/components/Sheet/components/SheetContext.d.ts +10 -0
  158. package/dist/components/Sheet/components/SheetContext.d.ts.map +1 -1
  159. package/dist/components/Sheet/components/SheetContext.js.map +1 -1
  160. package/dist/components/Sheet/components/SheetHeader.d.ts.map +1 -1
  161. package/dist/components/Sheet/components/SheetHeader.js +11 -2
  162. package/dist/components/Sheet/components/SheetHeader.js.map +1 -1
  163. package/dist/components/Skeleton/Skeleton.d.ts +2 -1
  164. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  165. package/dist/components/Skeleton/Skeleton.js +5 -3
  166. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  167. package/dist/components/Sparkline/Sparkline.d.ts +10 -2
  168. package/dist/components/Sparkline/Sparkline.d.ts.map +1 -1
  169. package/dist/components/Sparkline/Sparkline.js +5 -3
  170. package/dist/components/Sparkline/Sparkline.js.map +1 -1
  171. package/dist/components/StatsCard/StatsCard.d.ts +4 -4
  172. package/dist/components/StatsCard/StatsCard.d.ts.map +1 -1
  173. package/dist/components/StatsCard/StatsCard.js +5 -3
  174. package/dist/components/StatsCard/StatsCard.js.map +1 -1
  175. package/dist/components/Tabs/Tabs.d.ts +2 -2
  176. package/dist/components/Tabs/components/TabsList.d.ts +1 -1
  177. package/dist/components/Tabs/components/TabsList.d.ts.map +1 -1
  178. package/dist/components/Tabs/components/TabsList.js +5 -4
  179. package/dist/components/Tabs/components/TabsList.js.map +1 -1
  180. package/dist/components/Tabs/components/TabsPanels.d.ts +1 -1
  181. package/dist/components/Tabs/components/TabsPanels.d.ts.map +1 -1
  182. package/dist/components/Tabs/components/TabsPanels.js +5 -3
  183. package/dist/components/Tabs/components/TabsPanels.js.map +1 -1
  184. package/dist/components/TagChip/TagChip.d.ts +2 -1
  185. package/dist/components/TagChip/TagChip.d.ts.map +1 -1
  186. package/dist/components/TagChip/TagChip.js +5 -3
  187. package/dist/components/TagChip/TagChip.js.map +1 -1
  188. package/dist/components/TagInput/TagInput.d.ts +1 -1
  189. package/dist/components/TagInput/TagInput.d.ts.map +1 -1
  190. package/dist/components/TagInput/TagInput.js +5 -4
  191. package/dist/components/TagInput/TagInput.js.map +1 -1
  192. package/dist/components/TimePicker/TimePicker.d.ts +2 -2
  193. package/dist/components/TimePicker/TimePicker.d.ts.map +1 -1
  194. package/dist/components/TimePicker/TimePicker.js +27 -11
  195. package/dist/components/TimePicker/TimePicker.js.map +1 -1
  196. package/dist/components/TimePicker/timepicker.types.d.ts +14 -13
  197. package/dist/components/TimePicker/timepicker.types.d.ts.map +1 -1
  198. package/dist/components/TimePicker/timepicker.types.js +4 -3
  199. package/dist/components/TimePicker/timepicker.types.js.map +1 -1
  200. package/dist/date-time/index.d.ts +2 -0
  201. package/dist/date-time/index.d.ts.map +1 -1
  202. package/dist/date-time/index.js +9 -0
  203. package/dist/date-time/index.js.map +1 -1
  204. package/dist/date-time/iso.d.ts +261 -0
  205. package/dist/date-time/iso.d.ts.map +1 -0
  206. package/dist/date-time/iso.js +358 -0
  207. package/dist/date-time/iso.js.map +1 -0
  208. package/dist/date-time/now.d.ts +7 -6
  209. package/dist/date-time/now.d.ts.map +1 -1
  210. package/dist/date-time/now.js +3 -3
  211. package/dist/date-time/now.js.map +1 -1
  212. package/dist/theme/index.d.ts +4 -3
  213. package/dist/theme/index.d.ts.map +1 -1
  214. package/dist/theme/index.js +3 -2
  215. package/dist/theme/index.js.map +1 -1
  216. package/dist/theme/schema.d.ts +70 -32
  217. package/dist/theme/schema.d.ts.map +1 -1
  218. package/dist/theme/schema.js +36 -18
  219. package/dist/theme/schema.js.map +1 -1
  220. package/package.json +9 -15
  221. package/src/components/Badge/Badge.tsx +5 -4
  222. package/src/components/BarChart/BarChart.tsx +25 -30
  223. package/src/components/Calendar/Calendar.tsx +91 -401
  224. package/src/components/Calendar/CalendarView.tsx +445 -0
  225. package/src/components/Calendar/calendar.types.ts +94 -29
  226. package/src/components/Calendar/index.ts +16 -17
  227. package/src/components/ColorDot/ColorDot.tsx +6 -4
  228. package/src/components/DatePicker/DatePicker.tsx +92 -16
  229. package/src/components/DatePicker/datepicker.types.ts +38 -39
  230. package/src/components/DatePicker/index.ts +11 -10
  231. package/src/components/DateRangePicker/DateRangePicker.tsx +17 -21
  232. package/src/components/DateRangePicker/daterangepicker.types.ts +22 -22
  233. package/src/components/DateRangePicker/index.ts +9 -1
  234. package/src/components/DateTimePicker/DateTimePicker.tsx +46 -18
  235. package/src/components/DateTimePicker/datetimepicker.types.ts +22 -18
  236. package/src/components/DateTimePicker/index.ts +9 -1
  237. package/src/components/DateTimeRangePicker/DateTimeRangePicker.tsx +62 -28
  238. package/src/components/DateTimeRangePicker/datetimerangepicker.types.ts +24 -19
  239. package/src/components/DateTimeRangePicker/index.ts +9 -0
  240. package/src/components/EmptyState/EmptyState.tsx +8 -7
  241. package/src/components/Field/Field.tsx +7 -6
  242. package/src/components/LineChart/LineChart.tsx +147 -141
  243. package/src/components/Markdown/Markdown.tsx +4 -3
  244. package/src/components/Message/Message.tsx +17 -1
  245. package/src/components/MetricList/MetricList.tsx +10 -5
  246. package/src/components/Modal/Modal.tsx +119 -87
  247. package/src/components/Modal/components/ModalContext.tsx +14 -0
  248. package/src/components/Modal/components/ModalHeader.tsx +14 -2
  249. package/src/components/NavBottom/NavBottom.tsx +6 -4
  250. package/src/components/NavSide/NavItem.tsx +1 -1
  251. package/src/components/NavSide/NavSide.tsx +5 -3
  252. package/src/components/Popover/Popover.tsx +7 -0
  253. package/src/components/Popover/components/PopoverBody.tsx +6 -1
  254. package/src/components/Popover/components/PopoverContext.tsx +1 -0
  255. package/src/components/Popover/components/PopoverTrigger.tsx +2 -1
  256. package/src/components/ProgressBar/ProgressBar.tsx +32 -28
  257. package/src/components/Select/Select.tsx +76 -19
  258. package/src/components/Select/SelectDropdown.tsx +32 -3
  259. package/src/components/Select/SelectTrigger.tsx +26 -3
  260. package/src/components/Select/useSelectKeyboard.ts +20 -10
  261. package/src/components/Sheet/Sheet.tsx +108 -83
  262. package/src/components/Sheet/components/SheetContext.tsx +10 -0
  263. package/src/components/Sheet/components/SheetHeader.tsx +17 -2
  264. package/src/components/Skeleton/Skeleton.tsx +5 -3
  265. package/src/components/Sparkline/Sparkline.tsx +29 -36
  266. package/src/components/StatsCard/StatsCard.tsx +7 -6
  267. package/src/components/Tabs/components/TabsList.tsx +5 -3
  268. package/src/components/Tabs/components/TabsPanels.tsx +5 -3
  269. package/src/components/TagChip/TagChip.tsx +10 -3
  270. package/src/components/TagInput/TagInput.tsx +5 -3
  271. package/src/components/TimePicker/TimePicker.tsx +31 -13
  272. package/src/components/TimePicker/timepicker.types.ts +14 -13
  273. package/src/date-time/index.ts +61 -0
  274. package/src/date-time/iso.ts +511 -0
  275. package/src/date-time/now.ts +10 -9
  276. package/src/theme/index.ts +11 -3
  277. package/src/theme/schema.ts +82 -54
  278. package/src/theme/tokens.css +807 -0
  279. package/dist/styles.css +0 -2
  280. package/dist/theme.generated.css +0 -438
  281. package/src/styles/base.css +0 -41
  282. package/src/theme/palette.json +0 -100
  283. package/src/theme/palette.schema.json +0 -40
  284. package/src/theme/theme.json +0 -349
  285. package/src/theme/theme.schema.json +0 -876
  286. package/src/theme/typography.json +0 -7
  287. package/src/theme/typography.schema.json +0 -36
  288. package/tailwind.config.ts +0 -261
@@ -4,7 +4,10 @@ import { cn } from "@sixthshift/design-system/utils";
4
4
  import * as React from "react";
5
5
  import { usePopoverContext } from "./PopoverContext.js";
6
6
  export const PopoverBody = React.forwardRef(({ className, children, ...props }, forwardedRef) => {
7
- const { open, refs, floatingStyles, getFloatingProps, contentId } = usePopoverContext();
7
+ const { open, refs, floatingStyles, getFloatingProps, contentId, triggerId } = usePopoverContext();
8
+ // `aria-labelledby` outranks `aria-label` in the name computation, so the
9
+ // trigger only names the dialog when the caller hasn't named it themselves.
10
+ const hasOwnLabel = props["aria-label"] !== undefined || props["aria-labelledby"] !== undefined;
8
11
  if (!open)
9
12
  return null;
10
13
  return (_jsx(FloatingPortal, { children: _jsx("div", { ref: (node) => {
@@ -13,7 +16,7 @@ export const PopoverBody = React.forwardRef(({ className, children, ...props },
13
16
  forwardedRef(node);
14
17
  else if (forwardedRef)
15
18
  forwardedRef.current = node;
16
- }, id: contentId, role: "dialog", style: floatingStyles, className: cn("z-popover rounded-lg border border-border-normal bg-bg-normal p-4 shadow-lg", className), ...getFloatingProps(props), children: children }) }));
19
+ }, id: contentId, role: "dialog", "aria-labelledby": hasOwnLabel ? undefined : triggerId, style: floatingStyles, className: cn("z-popover rounded-lg border border-border-normal bg-bg-normal p-4 shadow-lg", className), ...getFloatingProps(props), children: children }) }));
17
20
  });
18
21
  PopoverBody.displayName = "PopoverBody";
19
22
  //# sourceMappingURL=PopoverBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverBody.js","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverBody.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAmC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE;IAChI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAExF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,cAAc,cACb,cACE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,OAAO,YAAY,KAAK,UAAU;oBAAE,YAAY,CAAC,IAAI,CAAC,CAAC;qBACtD,IAAI,YAAY;oBAAE,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YACrD,CAAC,EACD,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,EAAE,CAAC,6EAA6E,EAAE,SAAS,CAAC,KACnG,gBAAgB,CAAC,KAAK,CAAC,YAE1B,QAAQ,GACL,GACS,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"PopoverBody.js","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverBody.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAmC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE;IAChI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEnG,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC;IAEhG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,cAAc,cACb,cACE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,OAAO,YAAY,KAAK,UAAU;oBAAE,YAAY,CAAC,IAAI,CAAC,CAAC;qBACtD,IAAI,YAAY;oBAAE,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YACrD,CAAC,EACD,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,QAAQ,qBACI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACpD,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,EAAE,CAAC,6EAA6E,EAAE,SAAS,CAAC,KACnG,gBAAgB,CAAC,KAAK,CAAC,YAE1B,QAAQ,GACL,GACS,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
@@ -9,6 +9,7 @@ export type PopoverContextValue = {
9
9
  getReferenceProps: (props?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
10
10
  getFloatingProps: (props?: React.HTMLProps<HTMLElement>) => Record<string, unknown>;
11
11
  contentId: string;
12
+ triggerId: string;
12
13
  };
13
14
  export declare const PopoverContext: import("react").Context<PopoverContextValue | null>;
14
15
  export declare function usePopoverContext(): PopoverContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverContext.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE;QACJ,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;QACjD,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;KACjD,CAAC;IACF,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,iBAAiB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrF,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpF,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,cAAc,qDAAkD,CAAC;AAE9E,wBAAgB,iBAAiB,wBAMhC"}
1
+ {"version":3,"file":"PopoverContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverContext.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE;QACJ,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;QACjD,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;KACjD,CAAC;IACF,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,iBAAiB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrF,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,cAAc,qDAAkD,CAAC;AAE9E,wBAAgB,iBAAiB,wBAMhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverContext.js","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAelD,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC;AAE9E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"PopoverContext.js","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAgBlD,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC;AAE9E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAChF,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,cAAc;IAJzB,8BAA8B;cACpB,OAAO;2CAuBjB,CAAC"}
1
+ {"version":3,"file":"PopoverTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAChF,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,cAAc;IAJzB,8BAA8B;cACpB,OAAO;2CAwBjB,CAAC"}
@@ -3,7 +3,7 @@ import * as React from "react";
3
3
  import { Slot } from "../../../internal/Slot.js";
4
4
  import { usePopoverContext } from "./PopoverContext.js";
5
5
  export const PopoverTrigger = React.forwardRef(({ asChild = false, children, ...props }, forwardedRef) => {
6
- const { refs, getReferenceProps, contentId, open } = usePopoverContext();
6
+ const { refs, getReferenceProps, contentId, triggerId, open } = usePopoverContext();
7
7
  const Comp = asChild ? Slot : "button";
8
8
  return (_jsx(Comp, { ref: (node) => {
9
9
  refs.setReference(node);
@@ -11,7 +11,7 @@ export const PopoverTrigger = React.forwardRef(({ asChild = false, children, ...
11
11
  forwardedRef(node);
12
12
  else if (forwardedRef)
13
13
  forwardedRef.current = node;
14
- }, type: asChild ? undefined : "button", "aria-haspopup": "dialog", "aria-expanded": open, "aria-controls": open ? contentId : undefined, ...getReferenceProps(props), children: children }));
14
+ }, type: asChild ? undefined : "button", id: triggerId, "aria-haspopup": "dialog", "aria-expanded": open, "aria-controls": open ? contentId : undefined, ...getReferenceProps(props), children: children }));
15
15
  });
16
16
  PopoverTrigger.displayName = "PopoverTrigger";
17
17
  //# sourceMappingURL=PopoverTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverTrigger.js","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverTrigger.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAyC,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE;IAC/I,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvC,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,CAAC,IAA8B,EAAE,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,OAAO,YAAY,KAAK,UAAU;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAC;iBACtD,IAAI,YAAY;gBAAE,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QACrD,CAAC,EACD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,mBACtB,QAAQ,mBACP,IAAI,mBACJ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACvC,iBAAiB,CAAC,KAAK,CAAC,YAE3B,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"PopoverTrigger.js","sourceRoot":"","sources":["../../../../src/components/Popover/components/PopoverTrigger.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAyC,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE;IAC/I,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACpF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvC,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,CAAC,IAA8B,EAAE,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,OAAO,YAAY,KAAK,UAAU;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAC;iBACtD,IAAI,YAAY;gBAAE,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QACrD,CAAC,EACD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACpC,EAAE,EAAE,SAAS,mBACC,QAAQ,mBACP,IAAI,mBACJ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACvC,iBAAiB,CAAC,KAAK,CAAC,YAE3B,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  export type ProgressBarProps = {
2
3
  completed: number;
3
4
  total: number;
@@ -6,5 +7,5 @@ export type ProgressBarProps = {
6
7
  label?: string;
7
8
  className?: string;
8
9
  };
9
- export declare const ProgressBar: ({ completed, total, showFraction, label, className }: ProgressBarProps) => import("react").JSX.Element;
10
+ export declare const ProgressBar: React.ForwardRefExoticComponent<ProgressBarProps & React.RefAttributes<HTMLDivElement>>;
10
11
  //# sourceMappingURL=ProgressBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/components/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,WAAW,yDAA8E,gBAAgB,gCA6BrH,CAAC"}
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/components/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,WAAW,yFA+BvB,CAAC"}
@@ -1,12 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Caption } from "@sixthshift/design-system/caption";
3
3
  import { cn } from "@sixthshift/design-system/utils";
4
- export const ProgressBar = ({ completed, total, showFraction = true, label = "Progress", className }) => {
4
+ import * as React from "react";
5
+ export const ProgressBar = React.forwardRef(({ completed, total, showFraction = true, label = "Progress", className }, ref) => {
5
6
  // A caller can hand us anything; the bar must not render an out-of-range
6
7
  // width (a negative `width` is invalid CSS) or report impossible progress.
7
8
  const isMeasurable = total > 0;
8
9
  const clamped = isMeasurable ? Math.min(Math.max(completed, 0), total) : 0;
9
10
  const percentage = isMeasurable ? (clamped / total) * 100 : 0;
10
- return (_jsxs("div", { className: cn("flex items-center gap-3", className), children: [_jsx("div", { role: "progressbar", "aria-label": label, "aria-valuemin": 0, "aria-valuemax": isMeasurable ? total : undefined, "aria-valuenow": isMeasurable ? clamped : undefined, "aria-valuetext": isMeasurable ? `${clamped} of ${total}` : undefined, className: "h-2 flex-1 overflow-hidden rounded-full bg-bg-strong", children: _jsx("div", { className: "h-full rounded-full bg-fg-success transition-all", style: { width: `${percentage}%` } }) }), showFraction && (_jsxs(Caption, { className: "shrink-0", children: [completed, "/", total] }))] }));
11
- };
11
+ return (_jsxs("div", { ref: ref, className: cn("flex items-center gap-3", className), children: [_jsx("div", { role: "progressbar", "aria-label": label, "aria-valuemin": 0, "aria-valuemax": isMeasurable ? total : undefined, "aria-valuenow": isMeasurable ? clamped : undefined, "aria-valuetext": isMeasurable ? `${clamped} of ${total}` : undefined, className: "h-2 flex-1 overflow-hidden rounded-full bg-bg-strong", children: _jsx("div", { className: "h-full rounded-full bg-fg-success transition-all", style: { width: `${percentage}%` } }) }), showFraction && (_jsxs(Caption, { className: "shrink-0", children: [completed, "/", total] }))] }));
12
+ });
13
+ ProgressBar.displayName = "ProgressBar";
12
14
  //# sourceMappingURL=ProgressBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../src/components/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AAWrD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,KAAK,GAAG,UAAU,EAAE,SAAS,EAAoB,EAAE,EAAE;IACxH,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,aACtD,cACE,IAAI,EAAC,aAAa,gBACN,KAAK,mBACF,CAAC,mBACD,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,mBAGhC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,oBACjC,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EACnE,SAAS,EAAC,sDAAsD,YAEhE,cAAK,SAAS,EAAC,kDAAkD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,GAAG,EAAE,GAAI,GACpG,EACL,YAAY,IAAI,CACf,MAAC,OAAO,IAAC,SAAS,EAAC,UAAU,aAC1B,SAAS,OAAG,KAAK,IACV,CACX,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../src/components/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACzC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,KAAK,GAAG,UAAU,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE;IAChF,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,aAChE,cACE,IAAI,EAAC,aAAa,gBACN,KAAK,mBACF,CAAC,mBACD,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,mBAGhC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,oBACjC,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EACnE,SAAS,EAAC,sDAAsD,YAEhE,cAAK,SAAS,EAAC,kDAAkD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,GAAG,EAAE,GAAI,GACpG,EACL,YAAY,IAAI,CACf,MAAC,OAAO,IAAC,SAAS,EAAC,UAAU,aAC1B,SAAS,OAAG,KAAK,IACV,CACX,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes } from "react";
1
+ import { type HTMLAttributes, type ReactElement, type Ref } from "react";
2
2
  export type SelectOption<T extends string = string> = {
3
3
  value: T;
4
4
  label: string;
@@ -26,6 +26,15 @@ type SelectMultipleProps<T extends string = string> = SelectBaseProps<T> & {
26
26
  onValueChange?: (value: T[]) => void;
27
27
  };
28
28
  export type SelectProps<T extends string = string> = SelectSingleProps<T> | SelectMultipleProps<T>;
29
- export declare const Select: <T extends string = string>(props: SelectProps<T>) => import("react").JSX.Element;
29
+ /**
30
+ * The trigger is the ref target: `register` from a form library and
31
+ * scroll-into-view both want it, and it is a `<div>` in both the button and the
32
+ * searchable variants. It does swap nodes when the searchable trigger replaces
33
+ * the button one, so a callback ref sees null and then the new element — normal
34
+ * for conditional rendering, but worth knowing if you cache the node.
35
+ */
36
+ export declare const Select: <T extends string = string>(props: SelectProps<T> & {
37
+ ref?: Ref<HTMLDivElement>;
38
+ }) => ReactElement;
30
39
  export {};
31
40
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAA4D,MAAM,OAAO,CAAC;AAKtG,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC,GAAG;IAC3H,OAAO,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;IACvE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAEnG,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,kBAAkB,WAAW,CAAC,CAAC,CAAC,gCAyPtE,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,GAAG,EAA4D,MAAM,OAAO,CAAC;AAK/I,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC,GAAG;IAC3H,OAAO,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;IACvE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AA6SnG;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,KAAK,YAAY,CAAC"}
@@ -1,11 +1,17 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { autoUpdate, flip, offset, shift, size, useFloating } from "@floating-ui/react";
3
3
  import { useControllableState } from "@sixthshift/design-system/hooks";
4
- import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
5
- import { SelectDropdown } from "./SelectDropdown.js";
4
+ import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
5
+ import { SelectDropdown, selectOptionId } from "./SelectDropdown.js";
6
6
  import { SelectTriggerButton, SelectTriggerSearch } from "./SelectTrigger.js";
7
7
  import { useSelectKeyboard } from "./useSelectKeyboard.js";
8
- export const Select = (props) => {
8
+ /**
9
+ * `forwardRef` erases the generic, so the implementation takes the ref as an
10
+ * ordinary second argument and the exported `Select` re-declares the generic
11
+ * signature over it. Consumers keep `Select<"a" | "b">` inference *and* get a
12
+ * ref; without the cast they would have to choose.
13
+ */
14
+ const SelectRoot = forwardRef(function SelectRoot(props, rootRef) {
9
15
  const { options, onBlur, onFocus, collapsed = false, className, disabled = false, placeholder = "Select...", searchable = false, clearable = false, ...restProps } = props;
10
16
  const isMultiple = props.mode === "multiple";
11
17
  // Single-mode state
@@ -24,6 +30,11 @@ export const Select = (props) => {
24
30
  const [highlightedIndex, setHighlightedIndex] = useState(-1);
25
31
  const [searchValue, setSearchValue] = useState("");
26
32
  const listboxRef = useRef(null);
33
+ // Also held in state: the listbox is portalled, and FloatingPortal creates its
34
+ // container in an effect, so the node lands a commit after `open` flips. A ref
35
+ // alone is still null when the open effect runs — state re-renders us when the
36
+ // node actually arrives.
37
+ const [listboxNode, setListboxNode] = useState(null);
27
38
  const inputRef = useRef(null);
28
39
  const optionRefs = useRef(new Map());
29
40
  const wasOpenRef = useRef(false);
@@ -58,6 +69,10 @@ export const Select = (props) => {
58
69
  ],
59
70
  whileElementsMounted: autoUpdate,
60
71
  });
72
+ const setListbox = useCallback((node) => {
73
+ listboxRef.current = node;
74
+ setListboxNode(node);
75
+ }, []);
61
76
  const focusTrigger = useCallback(() => {
62
77
  refs.reference.current?.focus();
63
78
  }, [refs.reference]);
@@ -82,17 +97,36 @@ export const Select = (props) => {
82
97
  setSingleValue("");
83
98
  }
84
99
  }, [isMultiple, setMultiValue, setSingleValue]);
100
+ const handleListKeyDown = useSelectKeyboard({
101
+ open,
102
+ searchable,
103
+ searchValue,
104
+ highlightedIndex,
105
+ displayOptions: filteredOptions,
106
+ setOpen,
107
+ setHighlightedIndex,
108
+ setSearchValue,
109
+ handleSelect,
110
+ focusTrigger,
111
+ });
85
112
  const handleTriggerKeyDown = useCallback((event) => {
86
113
  if (disabled || collapsed)
87
114
  return;
88
115
  if (!open && (event.key === "ArrowDown" || event.key === "ArrowUp" || event.key === "Enter" || event.key === " ")) {
89
116
  event.preventDefault();
90
117
  setOpen(true);
118
+ return;
91
119
  }
92
120
  if (searchable && !open && event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
93
121
  setOpen(true);
122
+ return;
94
123
  }
95
- }, [disabled, collapsed, open, setOpen, searchable]);
124
+ // Focus normally moves into the listbox as it opens, but it can still be
125
+ // on the trigger — the frame the dropdown mounts in, or after the user
126
+ // shift-tabs back to it. Handle navigation here too rather than dropping
127
+ // the keystroke.
128
+ handleListKeyDown(event);
129
+ }, [disabled, collapsed, open, setOpen, searchable, handleListKeyDown]);
96
130
  const handleSearchChange = useCallback((val) => {
97
131
  setSearchValue(val);
98
132
  setHighlightedIndex(0);
@@ -124,6 +158,14 @@ export const Select = (props) => {
124
158
  }
125
159
  wasOpenRef.current = open;
126
160
  }, [open, filteredOptions, searchable, selectedValues]);
161
+ // Non-searchable: focus the listbox itself, so arrow keys reach the scoped
162
+ // keydown handler and a screen reader follows aria-activedescendant. The
163
+ // searchable variant keeps focus in its input instead.
164
+ useEffect(() => {
165
+ if (!open || searchable)
166
+ return;
167
+ listboxNode?.focus();
168
+ }, [open, searchable, listboxNode]);
127
169
  // Scroll highlighted option into view
128
170
  useEffect(() => {
129
171
  if (open && highlightedIndex >= 0) {
@@ -154,24 +196,28 @@ export const Select = (props) => {
154
196
  document.addEventListener("mousedown", handler);
155
197
  return () => document.removeEventListener("mousedown", handler);
156
198
  }, [open, setOpen, refs]);
157
- useSelectKeyboard({
158
- open,
159
- searchable,
160
- searchValue,
161
- highlightedIndex,
162
- displayOptions: filteredOptions,
163
- setOpen,
164
- setHighlightedIndex,
165
- setSearchValue,
166
- handleSelect,
167
- focusTrigger,
168
- });
169
199
  // The listbox id must be unique per instance: it is referenced by
170
200
  // aria-controls, and a hardcoded value meant two Selects on one page
171
201
  // produced duplicate ids and cross-wired ARIA.
172
202
  const listboxId = useId();
203
+ const activeOptionId = open && highlightedIndex >= 0 && highlightedIndex < filteredOptions.length ? selectOptionId(listboxId, highlightedIndex) : undefined;
173
204
  // Strip mode from DOM props
174
205
  const { mode: _, value: _v, defaultValue: _dv, onValueChange: _oc, ...htmlProps } = restProps;
175
- return (_jsxs(_Fragment, { children: [searchable && open && !collapsed ? (_jsx(SelectTriggerSearch, { setReference: refs.setReference, inputRef: inputRef, searchValue: searchValue, disabled: disabled, displayLabel: displayLabel, open: open, className: className, onSearchChange: handleSearchChange, listboxId: listboxId, props: htmlProps })) : (_jsx(SelectTriggerButton, { setReference: refs.setReference, open: open, disabled: disabled, collapsed: collapsed, displayLabel: displayLabel, showClearButton: Boolean(showClearButton), className: className, onToggle: () => !disabled && !collapsed && setOpen(!open), onKeyDown: handleTriggerKeyDown, onClear: handleClear, listboxId: listboxId, props: htmlProps })), open && !collapsed && (_jsx(SelectDropdown, { setFloating: refs.setFloating, listboxId: listboxId, listboxRef: listboxRef, floatingStyles: floatingStyles, displayOptions: filteredOptions, highlightedIndex: highlightedIndex, selectedValues: selectedValues, searchValue: searchValue, optionRefs: optionRefs, multiple: isMultiple, onSelect: handleSelect, onHighlight: setHighlightedIndex }))] }));
176
- };
206
+ // `role="listbox"` requires an accessible name of its own, and the trigger
207
+ // can't supply one: its label is the current *value*, and in searchable mode
208
+ // it is an input whose name would resolve to whatever has been typed. Use the
209
+ // caller's `aria-label` when there is one, else the placeholder — the closest
210
+ // thing this component has to a field label.
211
+ const listboxLabel = typeof htmlProps["aria-label"] === "string" ? htmlProps["aria-label"] : placeholder;
212
+ return (_jsxs(_Fragment, { children: [searchable && open && !collapsed ? (_jsx(SelectTriggerSearch, { setReference: refs.setReference, rootRef: rootRef, inputRef: inputRef, searchValue: searchValue, disabled: disabled, displayLabel: displayLabel, open: open, className: className, onSearchChange: handleSearchChange, onKeyDown: handleListKeyDown, listboxId: listboxId, activeOptionId: activeOptionId, props: htmlProps })) : (_jsx(SelectTriggerButton, { setReference: refs.setReference, rootRef: rootRef, open: open, disabled: disabled, collapsed: collapsed, displayLabel: displayLabel, showClearButton: Boolean(showClearButton), className: className, onToggle: () => !disabled && !collapsed && setOpen(!open), onKeyDown: handleTriggerKeyDown, onClear: handleClear, listboxId: listboxId, props: htmlProps })), open && !collapsed && (_jsx(SelectDropdown, { setFloating: refs.setFloating, listboxId: listboxId, setListbox: setListbox, label: listboxLabel, activeOptionId: activeOptionId, floatingStyles: floatingStyles, displayOptions: filteredOptions, highlightedIndex: highlightedIndex, selectedValues: selectedValues, searchValue: searchValue, optionRefs: optionRefs, multiple: isMultiple, onSelect: handleSelect, onHighlight: setHighlightedIndex, onKeyDown: handleListKeyDown }))] }));
213
+ });
214
+ SelectRoot.displayName = "Select";
215
+ /**
216
+ * The trigger is the ref target: `register` from a form library and
217
+ * scroll-into-view both want it, and it is a `<div>` in both the button and the
218
+ * searchable variants. It does swap nodes when the searchable trigger replaces
219
+ * the button one, so a callback ref sees null and then the new element — normal
220
+ * for conditional rendering, but worth knowing if you cache the node.
221
+ */
222
+ export const Select = SelectRoot;
177
223
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,20 @@
1
1
  import type React from "react";
2
2
  import type { WritableRefObject } from "../../internal/types.js";
3
+ /**
4
+ * Options are addressed by id, not by focus: the listbox (or the search input)
5
+ * keeps focus and points `aria-activedescendant` at the highlighted option, so
6
+ * both sides need to agree on the id.
7
+ */
8
+ export declare const selectOptionId: (listboxId: string, index: number) => string;
3
9
  interface SelectDropdownProps<T extends string> {
4
10
  setFloating: (node: HTMLElement | null) => void;
5
11
  listboxId: string;
6
- listboxRef: WritableRefObject<HTMLDivElement | null>;
12
+ /** Publishes the listbox node upward — Select focuses it and scrolls it. */
13
+ setListbox: (node: HTMLDivElement | null) => void;
14
+ /** Names the listbox — a bare `role="listbox"` has no accessible name. */
15
+ label: string;
16
+ /** The highlighted option's id, or undefined when nothing is highlighted. */
17
+ activeOptionId: string | undefined;
7
18
  floatingStyles: React.CSSProperties;
8
19
  displayOptions: readonly {
9
20
  value: T;
@@ -16,7 +27,8 @@ interface SelectDropdownProps<T extends string> {
16
27
  multiple: boolean;
17
28
  onSelect: (value: T) => void;
18
29
  onHighlight: (index: number) => void;
30
+ onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
19
31
  }
20
- export declare const SelectDropdown: <T extends string>({ setFloating, listboxId, listboxRef, floatingStyles, displayOptions, highlightedIndex, selectedValues, searchValue, optionRefs, multiple, onSelect, onHighlight, }: SelectDropdownProps<T>) => React.JSX.Element;
32
+ export declare const SelectDropdown: <T extends string>({ setFloating, listboxId, setListbox, label, activeOptionId, floatingStyles, displayOptions, highlightedIndex, selectedValues, searchValue, optionRefs, multiple, onSelect, onHighlight, onKeyDown, }: SelectDropdownProps<T>) => React.JSX.Element;
21
33
  export {};
22
34
  //# sourceMappingURL=SelectDropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectDropdown.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,UAAU,mBAAmB,CAAC,CAAC,SAAS,MAAM;IAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,cAAc,EAAE,SAAS;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC9D,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,uKAa5C,mBAAmB,CAAC,CAAC,CAAC,sBAuDxB,CAAC"}
1
+ {"version":3,"file":"SelectDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectDropdown.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,cAAc,cAAe,MAAM,SAAS,MAAM,WAAmC,CAAC;AAEnG,UAAU,mBAAmB,CAAC,CAAC,SAAS,MAAM;IAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,cAAc,EAAE,SAAS;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC9D,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC9D;AAED,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,yMAgB5C,mBAAmB,CAAC,CAAC,CAAC,sBAoExB,CAAC"}
@@ -2,16 +2,31 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { FloatingPortal } from "@floating-ui/react";
3
3
  import { cn } from "@sixthshift/design-system/utils";
4
4
  import { Check } from "lucide-react";
5
- export const SelectDropdown = ({ setFloating, listboxId, listboxRef, floatingStyles, displayOptions, highlightedIndex, selectedValues, searchValue, optionRefs, multiple, onSelect, onHighlight, }) => (_jsx(FloatingPortal, { children: _jsx("div", { ref: (node) => {
5
+ /**
6
+ * Options are addressed by id, not by focus: the listbox (or the search input)
7
+ * keeps focus and points `aria-activedescendant` at the highlighted option, so
8
+ * both sides need to agree on the id.
9
+ */
10
+ export const selectOptionId = (listboxId, index) => `${listboxId}-option-${index}`;
11
+ export const SelectDropdown = ({ setFloating, listboxId, setListbox, label, activeOptionId, floatingStyles, displayOptions, highlightedIndex, selectedValues, searchValue, optionRefs, multiple, onSelect, onHighlight, onKeyDown, }) => (_jsx(FloatingPortal, { children: _jsx("div", { ref: (node) => {
6
12
  setFloating(node);
7
- listboxRef.current = node;
8
- }, id: listboxId, role: "listbox", "aria-multiselectable": multiple || undefined, tabIndex: -1, style: floatingStyles, className: "z-popover max-h-60 overflow-y-auto rounded-md border border-border-normal bg-bg-normal shadow-lg", children: displayOptions.length === 0 ? (_jsx("div", { className: "px-3 py-2 text-center text-fg-subtle text-sm", children: searchValue ? `No results for "${searchValue}"` : "No options available" })) : (displayOptions.map((option, index) => {
13
+ setListbox(node);
14
+ }, id: listboxId, role: "listbox", "aria-label": label, "aria-multiselectable": multiple || undefined, "aria-activedescendant": activeOptionId,
15
+ // Focus lands here when the dropdown opens (the searchable variant keeps
16
+ // it in the input instead), which is what makes `aria-activedescendant`
17
+ // and the scoped keydown handler work.
18
+ tabIndex: -1, onKeyDown: onKeyDown, style: floatingStyles, className: "z-popover max-h-60 overflow-y-auto rounded-md border border-border-normal bg-bg-normal shadow-lg", children: displayOptions.length === 0 ? (_jsx("div", { className: "px-3 py-2 text-center text-fg-subtle text-sm", children: searchValue ? `No results for "${searchValue}"` : "No options available" })) : (displayOptions.map((option, index) => {
9
19
  const isSelected = selectedValues.has(option.value);
10
20
  return (_jsxs("button", { ref: (el) => {
11
21
  if (el)
12
22
  optionRefs.current.set(index, el);
13
23
  else
14
24
  optionRefs.current.delete(index);
15
- }, type: "button", role: "option", "aria-selected": isSelected, onClick: () => onSelect(option.value), onMouseEnter: () => onHighlight(index), className: cn(`flex w-full cursor-pointer items-center px-3 py-2 text-fg-normal text-sm transition-colors`, multiple && "gap-2", highlightedIndex === index && "bg-bg-subtle", isSelected ? "font-medium text-fg-normal" : "text-fg-subtle"), children: [multiple && (_jsx("span", { className: cn("flex h-4 w-4 shrink-0 items-center justify-center rounded-xs border", isSelected ? "border-border-brand bg-bg-brand text-fg-on-brand" : "border-border-normal"), children: isSelected && _jsx(Check, { className: "h-3 w-3" }) })), option.label] }, option.value));
25
+ }, type: "button", id: selectOptionId(listboxId, index), role: "option", "aria-selected": isSelected,
26
+ // The options are not tab stops and must not steal focus: the
27
+ // listbox holds it and delegates via aria-activedescendant, so a
28
+ // click that moved focus onto the option would strand the keyboard
29
+ // handler with nothing listening.
30
+ tabIndex: -1, onMouseDown: (event) => event.preventDefault(), onClick: () => onSelect(option.value), onMouseEnter: () => onHighlight(index), className: cn(`flex w-full cursor-pointer items-center px-3 py-2 text-fg-normal text-sm transition-colors`, multiple && "gap-2", highlightedIndex === index && "bg-bg-subtle", isSelected ? "font-medium text-fg-normal" : "text-fg-subtle"), children: [multiple && (_jsx("span", { className: cn("flex h-4 w-4 shrink-0 items-center justify-center rounded-xs border", isSelected ? "border-border-brand bg-bg-brand text-fg-on-brand" : "border-border-normal"), children: isSelected && _jsx(Check, { className: "h-3 w-3" }) })), option.label] }, option.value));
16
31
  })) }) }));
17
32
  //# sourceMappingURL=SelectDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdown.js","sourceRoot":"","sources":["../../../src/components/Select/SelectDropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAmBrC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAmB,EAC/C,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,GACY,EAAE,EAAE,CAAC,CAC5B,KAAC,cAAc,cACb,cACE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACZ,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,CAAC,EACD,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,SAAS,0BACQ,QAAQ,IAAI,SAAS,EAC3C,QAAQ,EAAE,CAAC,CAAC,EACZ,KAAK,EAAE,cAAc,EACrB,SAAS,EAAC,kGAAkG,YAE3G,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC7B,cAAK,SAAS,EAAC,8CAA8C,YAAE,WAAW,CAAC,CAAC,CAAC,mBAAmB,WAAW,GAAG,CAAC,CAAC,CAAC,sBAAsB,GAAO,CAC/I,CAAC,CAAC,CAAC,CACF,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,CACL,kBAEE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;oBACV,IAAI,EAAE;wBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;wBACrC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC,EACD,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,mBACE,UAAU,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACrC,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACtC,SAAS,EAAE,EAAE,CACX,4FAA4F,EAC5F,QAAQ,IAAI,OAAO,EACnB,gBAAgB,KAAK,KAAK,IAAI,cAAc,EAC5C,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,gBAAgB,CAC7D,aAEA,QAAQ,IAAI,CACX,eACE,SAAS,EAAE,EAAE,CACX,qEAAqE,EACrE,UAAU,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,sBAAsB,CACzF,YAEA,UAAU,IAAI,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,GAAG,GACvC,CACR,EACA,MAAM,CAAC,KAAK,KA3BR,MAAM,CAAC,KAAK,CA4BV,CACV,CAAC;QACJ,CAAC,CAAC,CACH,GACG,GACS,CAClB,CAAC"}
1
+ {"version":3,"file":"SelectDropdown.js","sourceRoot":"","sources":["../../../src/components/Select/SelectDropdown.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import type { HTMLAttributes } from "react";
1
+ import type { HTMLAttributes, Ref } from "react";
2
2
  interface SelectTriggerButtonProps {
3
3
  setReference: (node: HTMLElement | null) => void;
4
+ /** Consumer ref from Select, attached to this trigger's root element. */
5
+ rootRef?: Ref<HTMLDivElement>;
4
6
  listboxId: string;
5
7
  open: boolean;
6
8
  disabled: boolean;
@@ -13,10 +15,14 @@ interface SelectTriggerButtonProps {
13
15
  onClear: (e: React.MouseEvent) => void;
14
16
  props: HTMLAttributes<HTMLElement>;
15
17
  }
16
- export declare const SelectTriggerButton: ({ setReference, listboxId, open, disabled, collapsed, displayLabel, showClearButton, className, onToggle, onKeyDown, onClear, props, }: SelectTriggerButtonProps) => import("react").JSX.Element;
18
+ export declare const SelectTriggerButton: ({ setReference, rootRef, listboxId, open, disabled, collapsed, displayLabel, showClearButton, className, onToggle, onKeyDown, onClear, props, }: SelectTriggerButtonProps) => import("react").JSX.Element;
17
19
  interface SelectTriggerSearchProps {
18
20
  setReference: (node: HTMLElement | null) => void;
21
+ /** Consumer ref from Select, attached to this trigger's root element. */
22
+ rootRef?: Ref<HTMLDivElement>;
19
23
  listboxId: string;
24
+ /** Id of the highlighted option — the input keeps focus and delegates to it. */
25
+ activeOptionId: string | undefined;
20
26
  inputRef: React.RefObject<HTMLInputElement | null>;
21
27
  searchValue: string;
22
28
  disabled: boolean;
@@ -24,8 +30,9 @@ interface SelectTriggerSearchProps {
24
30
  open: boolean;
25
31
  className: string | undefined;
26
32
  onSearchChange: (value: string) => void;
33
+ onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
27
34
  props: React.InputHTMLAttributes<HTMLInputElement>;
28
35
  }
29
- export declare const SelectTriggerSearch: ({ setReference, listboxId, inputRef, searchValue, disabled, displayLabel, open, className, onSearchChange, props, }: SelectTriggerSearchProps) => import("react").JSX.Element;
36
+ export declare const SelectTriggerSearch: ({ setReference, rootRef, listboxId, activeOptionId, inputRef, searchValue, disabled, displayLabel, open, className, onSearchChange, onKeyDown, props, }: SelectTriggerSearchProps) => import("react").JSX.Element;
30
37
  export {};
31
38
  //# sourceMappingURL=SelectTrigger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectTrigger.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,UAAU,wBAAwB;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,mBAAmB,2IAa7B,wBAAwB,gCAmD1B,CAAC;AAEF,UAAU,wBAAwB;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,mBAAmB,wHAW7B,wBAAwB,gCAoB1B,CAAC"}
1
+ {"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectTrigger.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGjD,UAAU,wBAAwB;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,yEAAyE;IACzE,OAAO,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,mBAAmB,oJAc7B,wBAAwB,gCAmD1B,CAAC;AAEF,UAAU,wBAAwB;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,yEAAyE;IACzE,OAAO,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,mBAAmB,4JAc7B,wBAAwB,gCA+B1B,CAAC"}
@@ -1,12 +1,21 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from "@sixthshift/design-system/utils";
3
3
  import { ChevronDown, X } from "lucide-react";
4
- export const SelectTriggerButton = ({ setReference, listboxId, open, disabled, collapsed, displayLabel, showClearButton, className, onToggle, onKeyDown, onClear, props, }) => {
4
+ export const SelectTriggerButton = ({ setReference, rootRef, listboxId, open, disabled, collapsed, displayLabel, showClearButton, className, onToggle, onKeyDown, onClear, props, }) => {
5
5
  // The clear button must be a sibling of the trigger, not a descendant: nesting
6
6
  // one interactive control inside another is invalid HTML and leaves assistive
7
7
  // tech unable to reach the inner control (axe: nested-interactive).
8
8
  const showClear = showClearButton && !collapsed;
9
- return (_jsxs("div", { className: "relative w-full", children: [_jsx("button", { ref: setReference, type: "button", onClick: onToggle, onKeyDown: onKeyDown, disabled: disabled, className: cn(`flex w-full cursor-pointer items-center gap-2 rounded-md border border-border-normal bg-bg-normal px-3 py-2 font-medium text-fg-normal text-sm transition-colors hover:bg-bg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring disabled:cursor-not-allowed disabled:opacity-50`, collapsed ? "justify-center" : "justify-between", showClear && "pr-9", className), title: collapsed ? displayLabel : undefined, "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": open ? listboxId : undefined, ...props, children: collapsed ? (_jsx("span", { className: "font-bold text-xs", children: displayLabel.charAt(0) })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", children: displayLabel }), _jsx("span", { className: "flex shrink-0 items-center gap-1", children: _jsx(ChevronDown, { className: cn("h-4 w-4 text-fg-subtle transition-transform", open && "rotate-180") }) })] })) }), showClear && (_jsx("button", { type: "button", onClick: onClear, disabled: disabled, className: "absolute top-1/2 right-8 -translate-y-1/2 rounded-sm p-0.5 text-fg-subtle hover:bg-bg-subtle hover:text-fg-normal focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring", "aria-label": "Clear selection", children: _jsx(X, { className: "h-3.5 w-3.5" }) }))] }));
9
+ return (_jsxs("div", { ref: rootRef, className: "relative w-full", children: [_jsx("button", { ref: setReference, type: "button", onClick: onToggle, onKeyDown: onKeyDown, disabled: disabled, className: cn(`flex w-full cursor-pointer items-center gap-2 rounded-md border border-border-normal bg-bg-normal px-3 py-2 font-medium text-fg-normal text-sm transition-colors hover:bg-bg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring disabled:cursor-not-allowed disabled:opacity-50`, collapsed ? "justify-center" : "justify-between", showClear && "pr-9", className), title: collapsed ? displayLabel : undefined, "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": open ? listboxId : undefined, ...props, children: collapsed ? (_jsx("span", { className: "font-bold text-xs", children: displayLabel.charAt(0) })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", children: displayLabel }), _jsx("span", { className: "flex shrink-0 items-center gap-1", children: _jsx(ChevronDown, { className: cn("h-4 w-4 text-fg-subtle transition-transform", open && "rotate-180") }) })] })) }), showClear && (_jsx("button", { type: "button", onClick: onClear, disabled: disabled, className: "absolute top-1/2 right-8 -translate-y-1/2 rounded-sm p-0.5 text-fg-subtle hover:bg-bg-subtle hover:text-fg-normal focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring", "aria-label": "Clear selection", children: _jsx(X, { className: "h-3.5 w-3.5" }) }))] }));
10
10
  };
11
- export const SelectTriggerSearch = ({ setReference, listboxId, inputRef, searchValue, disabled, displayLabel, open, className, onSearchChange, props, }) => (_jsxs("div", { ref: setReference, className: cn("relative flex w-full items-center", className), children: [_jsx("input", { ref: inputRef, type: "text", value: searchValue, onChange: (e) => onSearchChange(e.target.value), placeholder: displayLabel, disabled: disabled, className: cn(`flex-1 rounded-md border border-border-normal bg-bg-normal px-3 py-2 font-medium text-fg-normal text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring disabled:cursor-not-allowed disabled:opacity-50`), role: "combobox", "aria-expanded": open, "aria-controls": listboxId, "aria-autocomplete": "list", ...props }), _jsx(ChevronDown, { className: "pointer-events-none absolute right-3 h-4 w-4 text-fg-subtle" })] }));
11
+ export const SelectTriggerSearch = ({ setReference, rootRef, listboxId, activeOptionId, inputRef, searchValue, disabled, displayLabel, open, className, onSearchChange, onKeyDown, props, }) => (
12
+ // floating-ui anchors to this element and the consumer may also want it, so
13
+ // both refs run off one callback rather than one silently winning.
14
+ _jsxs("div", { ref: (node) => {
15
+ setReference(node);
16
+ if (typeof rootRef === "function")
17
+ rootRef(node);
18
+ else if (rootRef)
19
+ rootRef.current = node;
20
+ }, className: cn("relative flex w-full items-center", className), children: [_jsx("input", { ref: inputRef, type: "text", value: searchValue, onChange: (e) => onSearchChange(e.target.value), onKeyDown: onKeyDown, placeholder: displayLabel, disabled: disabled, className: cn(`flex-1 rounded-md border border-border-normal bg-bg-normal px-3 py-2 font-medium text-fg-normal text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring disabled:cursor-not-allowed disabled:opacity-50`), role: "combobox", "aria-expanded": open, "aria-controls": listboxId, "aria-activedescendant": activeOptionId, "aria-autocomplete": "list", ...props }), _jsx(ChevronDown, { className: "pointer-events-none absolute right-3 h-4 w-4 text-fg-subtle" })] }));
12
21
  //# sourceMappingURL=SelectTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger.js","sourceRoot":"","sources":["../../../src/components/Select/SelectTrigger.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAkB9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,GACoB,EAAE,EAAE;IAC7B,+EAA+E;IAC/E,8EAA8E;IAC9E,oEAAoE;IACpE,MAAM,SAAS,GAAG,eAAe,IAAI,CAAC,SAAS,CAAC;IAEhD,OAAO,CACL,eAAK,SAAS,EAAC,iBAAiB,aAC9B,iBACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,mTAAmT,EACnT,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,EAChD,SAAS,IAAI,MAAM,EACnB,SAAS,CACV,EACD,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,mBAC7B,SAAS,mBACR,IAAI,mBAEJ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KACvC,KAAK,YAER,SAAS,CAAC,CAAC,CAAC,CACX,eAAM,SAAS,EAAC,mBAAmB,YAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,GAAQ,CACpE,CAAC,CAAC,CAAC,CACF,8BACE,eAAM,SAAS,EAAC,UAAU,YAAE,YAAY,GAAQ,EAChD,eAAM,SAAS,EAAC,kCAAkC,YAChD,KAAC,WAAW,IAAC,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,IAAI,IAAI,YAAY,CAAC,GAAI,GAC9F,IACN,CACJ,GACM,EACR,SAAS,IAAI,CACZ,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,iMAAiM,gBAChM,iBAAiB,YAE5B,KAAC,CAAC,IAAC,SAAS,EAAC,aAAa,GAAG,GACtB,CACV,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,KAAK,GACoB,EAAE,EAAE,CAAC,CAC9B,eAAK,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,aACnF,gBACE,GAAG,EAAE,QAA6C,EAClD,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAE,YAAY,EACzB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,yPAAyP,CAC1P,EACD,IAAI,EAAC,UAAU,mBACA,IAAI,mBACJ,SAAS,uBACN,MAAM,KACpB,KAAK,GACT,EACF,KAAC,WAAW,IAAC,SAAS,EAAC,6DAA6D,GAAG,IACnF,CACP,CAAC"}
1
+ {"version":3,"file":"SelectTrigger.js","sourceRoot":"","sources":["../../../src/components/Select/SelectTrigger.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,20 @@ interface UseSelectKeyboardOptions<T extends string> {
11
11
  handleSelect: (value: T) => void;
12
12
  focusTrigger: () => void;
13
13
  }
14
- export declare function useSelectKeyboard<T extends string>({ open, searchable, searchValue, highlightedIndex, displayOptions, setOpen, setHighlightedIndex, setSearchValue, handleSelect, focusTrigger, }: UseSelectKeyboardOptions<T>): void;
14
+ /**
15
+ * Returns the keydown handler for an open Select. It is attached to the element
16
+ * that actually holds focus — the listbox, or the search input in searchable
17
+ * mode — rather than to `document`.
18
+ *
19
+ * A document-level listener fired for every keystroke on the page while any
20
+ * Select was open, which meant a Select could swallow Escape or an arrow key
21
+ * from an overlay stacked above it, and two open Selects raced each other. It
22
+ * also decoupled key handling from focus, so nothing guaranteed the element the
23
+ * user was typing into was the one being navigated. Scoping the handler to the
24
+ * focused element makes both problems structurally impossible and is what lets
25
+ * `aria-activedescendant` mean something: the focused element owns the active
26
+ * option.
27
+ */
28
+ export declare function useSelectKeyboard<T extends string>({ open, searchable, searchValue, highlightedIndex, displayOptions, setOpen, setHighlightedIndex, setSearchValue, handleSelect, focusTrigger, }: UseSelectKeyboardOptions<T>): (event: React.KeyboardEvent<HTMLElement>) => void;
15
29
  export {};
16
30
  //# sourceMappingURL=useSelectKeyboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectKeyboard.d.ts","sourceRoot":"","sources":["../../../src/components/Select/useSelectKeyboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,UAAU,wBAAwB,CAAC,CAAC,SAAS,MAAM;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,EAClD,IAAI,EACJ,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,YAAY,GACb,EAAE,wBAAwB,CAAC,CAAC,CAAC,QAmF7B"}
1
+ {"version":3,"file":"useSelectKeyboard.d.ts","sourceRoot":"","sources":["../../../src/components/Select/useSelectKeyboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,UAAU,wBAAwB,CAAC,CAAC,SAAS,MAAM;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,EAClD,IAAI,EACJ,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,YAAY,GACb,EAAE,wBAAwB,CAAC,CAAC,CAAC,WAElB,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,UA6E3C"}