quirk-ui 0.1.73 → 0.1.76

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 (296) hide show
  1. package/dist/AccordionItem.css.d.ts +13 -0
  2. package/dist/{CategoryFilters-CIWwf9VY.js → CategoryFilters-Dvx_tFs9.js} +1 -1
  3. package/dist/{CategoryFilters-CvmFCE3e.cjs → CategoryFilters-jaBdSByQ.cjs} +1 -1
  4. package/dist/CategoryFilters.css.d.ts +31 -0
  5. package/dist/FormField-BO1hKjUb.js +228 -0
  6. package/dist/FormField-wfYSN1Vd.cjs +1 -0
  7. package/dist/FormField.css +1 -0
  8. package/dist/FormField.css.d.ts +22 -0
  9. package/dist/HeroSubComponents.css.d.ts +30 -0
  10. package/dist/NavLink.css.d.ts +72 -0
  11. package/dist/core/components/Accordion/Accordion.test.cjs +1 -1
  12. package/dist/core/components/Accordion/Accordion.test.mjs +1 -1
  13. package/dist/core/components/Accordion/AccordionItem.test.cjs +1 -1
  14. package/dist/core/components/Accordion/AccordionItem.test.mjs +1 -1
  15. package/dist/core/components/Avatar/Avatar.test.cjs +1 -1
  16. package/dist/core/components/Avatar/Avatar.test.mjs +1 -1
  17. package/dist/core/components/Badge/Badge.test.cjs +1 -1
  18. package/dist/core/components/Badge/Badge.test.mjs +1 -1
  19. package/dist/core/components/Badge/index.cjs +1 -1
  20. package/dist/core/components/Badge/index.mjs +1 -1
  21. package/dist/core/components/Box/Box.test.cjs +1 -1
  22. package/dist/core/components/Box/Box.test.mjs +1 -1
  23. package/dist/core/components/Box/index.cjs +1 -1
  24. package/dist/core/components/Box/index.mjs +1 -1
  25. package/dist/core/components/Breadcrumbs/Breadcrumbs.test.cjs +1 -1
  26. package/dist/core/components/Breadcrumbs/Breadcrumbs.test.mjs +1 -1
  27. package/dist/core/components/Breadcrumbs/index.cjs +1 -1
  28. package/dist/core/components/Breadcrumbs/index.mjs +1 -1
  29. package/dist/core/components/Button/Button.test.cjs +1 -1
  30. package/dist/core/components/Button/Button.test.mjs +2 -2
  31. package/dist/core/components/Button/index.cjs +1 -1
  32. package/dist/core/components/Button/index.mjs +1 -1
  33. package/dist/core/components/ButtonGroup/ButtonGroup.test.cjs +1 -1
  34. package/dist/core/components/ButtonGroup/ButtonGroup.test.mjs +1 -1
  35. package/dist/core/components/Calendar/Calendar.test.cjs +1 -1
  36. package/dist/core/components/Calendar/Calendar.test.mjs +2 -2
  37. package/dist/core/components/Calendar/index.cjs +1 -1
  38. package/dist/core/components/Calendar/index.mjs +1 -1
  39. package/dist/core/components/Card/Card.test.cjs +1 -1
  40. package/dist/core/components/Card/Card.test.mjs +1 -1
  41. package/dist/core/components/Card/index.cjs +1 -1
  42. package/dist/core/components/Card/index.mjs +1 -1
  43. package/dist/core/components/Carousel/Carousel.test.cjs +1 -1
  44. package/dist/core/components/Carousel/Carousel.test.mjs +1 -1
  45. package/dist/core/components/Checkbox/Checkbox.test.cjs +1 -1
  46. package/dist/core/components/Checkbox/Checkbox.test.mjs +1 -1
  47. package/dist/core/components/Container/Container.test.cjs +1 -1
  48. package/dist/core/components/Container/Container.test.mjs +1 -1
  49. package/dist/core/components/Container/index.cjs +1 -1
  50. package/dist/core/components/Container/index.mjs +1 -1
  51. package/dist/core/components/DatePicker/DatePicker.test.cjs +1 -1
  52. package/dist/core/components/DatePicker/DatePicker.test.mjs +2 -2
  53. package/dist/core/components/DatePicker/index.cjs +1 -1
  54. package/dist/core/components/DatePicker/index.mjs +2 -2
  55. package/dist/core/components/Divider/Divider.test.cjs +1 -1
  56. package/dist/core/components/Divider/Divider.test.mjs +1 -1
  57. package/dist/core/components/Divider/index.cjs +1 -1
  58. package/dist/core/components/Divider/index.mjs +1 -1
  59. package/dist/core/components/Drawer/Drawer.test.cjs +1 -1
  60. package/dist/core/components/Drawer/Drawer.test.mjs +1 -1
  61. package/dist/core/components/Drawer/index.cjs +1 -1
  62. package/dist/core/components/Drawer/index.mjs +1 -1
  63. package/dist/core/components/Fieldset/Fieldset.test.cjs +1 -1
  64. package/dist/core/components/Fieldset/Fieldset.test.mjs +1 -1
  65. package/dist/core/components/Fieldset/index.cjs +1 -1
  66. package/dist/core/components/Fieldset/index.mjs +1 -1
  67. package/dist/core/components/FileUpload/FileUpload.test.cjs +1 -1
  68. package/dist/core/components/FileUpload/FileUpload.test.mjs +1 -1
  69. package/dist/core/components/FileUpload/index.cjs +1 -1
  70. package/dist/core/components/FileUpload/index.mjs +1 -1
  71. package/dist/core/components/FloatingActionButton/FloatingActionButton.test.cjs +1 -1
  72. package/dist/core/components/FloatingActionButton/FloatingActionButton.test.mjs +1 -1
  73. package/dist/core/components/FloatingActionButton/index.cjs +1 -1
  74. package/dist/core/components/FloatingActionButton/index.mjs +1 -1
  75. package/dist/core/components/Footer/Footer.test.cjs +1 -1
  76. package/dist/core/components/Footer/Footer.test.mjs +1 -1
  77. package/dist/core/components/Footer/index.cjs +1 -1
  78. package/dist/core/components/Footer/index.mjs +2 -2
  79. package/dist/core/components/Form/Form.test.cjs +1 -1
  80. package/dist/core/components/Form/Form.test.mjs +1 -1
  81. package/dist/core/components/Form/index.cjs +1 -1
  82. package/dist/core/components/Form/index.mjs +1 -1
  83. package/dist/core/components/Grid/Grid.test.cjs +1 -1
  84. package/dist/core/components/Grid/Grid.test.mjs +1 -1
  85. package/dist/core/components/Heading/Heading.test.cjs +1 -1
  86. package/dist/core/components/Heading/Heading.test.mjs +1 -1
  87. package/dist/core/components/Input/Input.test.cjs +1 -1
  88. package/dist/core/components/Input/Input.test.mjs +1 -1
  89. package/dist/core/components/Input/index.cjs +1 -1
  90. package/dist/core/components/Input/index.mjs +25 -31
  91. package/dist/core/components/Label/Label.test.cjs +1 -1
  92. package/dist/core/components/Label/Label.test.mjs +1 -1
  93. package/dist/core/components/Label/index.cjs +1 -1
  94. package/dist/core/components/Label/index.mjs +1 -1
  95. package/dist/core/components/List/List.test.cjs +1 -1
  96. package/dist/core/components/List/List.test.mjs +1 -1
  97. package/dist/core/components/List/index.cjs +1 -1
  98. package/dist/core/components/List/index.mjs +1 -1
  99. package/dist/core/components/Modal/Modal.test.cjs +1 -1
  100. package/dist/core/components/Modal/Modal.test.mjs +1 -1
  101. package/dist/core/components/Modal/index.cjs +1 -1
  102. package/dist/core/components/Modal/index.mjs +1 -1
  103. package/dist/core/components/NavBar/NavBar.test.cjs +1 -1
  104. package/dist/core/components/NavBar/NavBar.test.mjs +1 -1
  105. package/dist/core/components/NavBar/index.cjs +1 -1
  106. package/dist/core/components/NavBar/index.mjs +1 -1
  107. package/dist/core/components/Notification/Notification.test.cjs +1 -1
  108. package/dist/core/components/Notification/Notification.test.mjs +1 -1
  109. package/dist/core/components/Notification/index.cjs +1 -1
  110. package/dist/core/components/Notification/index.mjs +1 -1
  111. package/dist/core/components/NotificationContainer/NotificationContainer.test.cjs +1 -1
  112. package/dist/core/components/NotificationContainer/NotificationContainer.test.mjs +1 -1
  113. package/dist/core/components/NotificationContainer/index.cjs +1 -1
  114. package/dist/core/components/NotificationContainer/index.mjs +1 -1
  115. package/dist/core/components/ProgressBar/ProgressBar.test.cjs +1 -1
  116. package/dist/core/components/ProgressBar/ProgressBar.test.mjs +1 -1
  117. package/dist/core/components/ProgressBar/index.cjs +1 -1
  118. package/dist/core/components/ProgressBar/index.mjs +1 -1
  119. package/dist/core/components/Radio/Radio.test.cjs +1 -1
  120. package/dist/core/components/Radio/Radio.test.mjs +1 -1
  121. package/dist/core/components/Radio/index.cjs +1 -1
  122. package/dist/core/components/Radio/index.mjs +1 -1
  123. package/dist/core/components/Range/Range.test.cjs +1 -1
  124. package/dist/core/components/Range/Range.test.mjs +1 -1
  125. package/dist/core/components/Range/index.cjs +1 -1
  126. package/dist/core/components/Range/index.mjs +1 -1
  127. package/dist/core/components/Select/Select.test.cjs +1 -1
  128. package/dist/core/components/Select/Select.test.mjs +176 -106
  129. package/dist/core/components/Select/index.cjs +1 -1
  130. package/dist/core/components/Select/index.mjs +100 -80
  131. package/dist/core/components/Sidebar/Sidebar.test.cjs +1 -1
  132. package/dist/core/components/Sidebar/Sidebar.test.mjs +1 -1
  133. package/dist/core/components/Sidebar/index.cjs +1 -1
  134. package/dist/core/components/Sidebar/index.mjs +1 -1
  135. package/dist/core/components/Skeleton/Skeleton.test.cjs +1 -1
  136. package/dist/core/components/Skeleton/Skeleton.test.mjs +1 -1
  137. package/dist/core/components/Spacer/Spacer.test.cjs +1 -1
  138. package/dist/core/components/Spacer/Spacer.test.mjs +1 -1
  139. package/dist/core/components/Spinner/Spinner.test.cjs +1 -1
  140. package/dist/core/components/Spinner/Spinner.test.mjs +1 -1
  141. package/dist/core/components/Stack/Stack.test.cjs +1 -1
  142. package/dist/core/components/Stack/Stack.test.mjs +1 -1
  143. package/dist/core/components/Switch/Switch.test.cjs +1 -1
  144. package/dist/core/components/Switch/Switch.test.mjs +1 -1
  145. package/dist/core/components/Table/Table.test.cjs +1 -1
  146. package/dist/core/components/Table/Table.test.mjs +1 -1
  147. package/dist/core/components/Tabs/Tabs.test.cjs +1 -1
  148. package/dist/core/components/Tabs/Tabs.test.mjs +1 -1
  149. package/dist/core/components/Text/Text.test.cjs +1 -1
  150. package/dist/core/components/Text/Text.test.mjs +1 -1
  151. package/dist/core/components/Textarea/Textarea.test.cjs +1 -1
  152. package/dist/core/components/Textarea/Textarea.test.mjs +1 -1
  153. package/dist/core/components/Textarea/index.cjs +1 -1
  154. package/dist/core/components/Textarea/index.mjs +1 -1
  155. package/dist/core/components/Tooltip/Tooltip.test.cjs +1 -1
  156. package/dist/core/components/Tooltip/Tooltip.test.mjs +1 -1
  157. package/dist/core/components/Tooltip/index.cjs +1 -1
  158. package/dist/core/components/Tooltip/index.mjs +1 -1
  159. package/dist/core.cjs +1 -1
  160. package/dist/core.d.ts +30 -43
  161. package/dist/core.mjs +42 -44
  162. package/dist/{index-BQV8LRFm.js → index-Ck6GdALV.js} +0 -1
  163. package/dist/{index-DITXfOUM.cjs → index-CvpbNrYS.cjs} +16 -16
  164. package/dist/{index-2ZLA4POI.js → index-DTDGFsW8.js} +1 -1
  165. package/dist/{index-D0ylyll7.cjs → index-hPJqlEOh.cjs} +1 -1
  166. package/dist/{index-CnlJ2RgH.js → index-paelIj6o.js} +1 -1
  167. package/dist/{index-odc0vuSq.cjs → index-rFLvzU5A.cjs} +1 -1
  168. package/dist/index.css.d.ts +1 -0
  169. package/dist/index10.css.d.ts +7 -0
  170. package/dist/index11.css.d.ts +26 -0
  171. package/dist/index12.css.d.ts +24 -0
  172. package/dist/index13.css.d.ts +33 -0
  173. package/dist/index14.css.d.ts +10 -0
  174. package/dist/index15.css.d.ts +18 -0
  175. package/dist/index16.css.d.ts +38 -0
  176. package/dist/index17.css.d.ts +16 -0
  177. package/dist/index18.css.d.ts +14 -0
  178. package/dist/index19.css.d.ts +17 -0
  179. package/dist/index2.css.d.ts +9 -0
  180. package/dist/index20.css.d.ts +13 -0
  181. package/dist/index21.css.d.ts +25 -0
  182. package/dist/index22.css.d.ts +5 -0
  183. package/dist/index23.css.d.ts +19 -0
  184. package/dist/index24.css.d.ts +21 -0
  185. package/dist/index25.css +1 -1
  186. package/dist/index25.css.d.ts +16 -0
  187. package/dist/index26.css.d.ts +10 -0
  188. package/dist/index27.css.d.ts +18 -0
  189. package/dist/index28.css.d.ts +16 -0
  190. package/dist/index29.css.d.ts +10 -0
  191. package/dist/index3.css.d.ts +12 -0
  192. package/dist/index30.css.d.ts +19 -0
  193. package/dist/index31.css.d.ts +15 -0
  194. package/dist/index32.css.d.ts +22 -0
  195. package/dist/index33.css.d.ts +15 -0
  196. package/dist/index34.css +1 -1
  197. package/dist/index34.css.d.ts +14 -0
  198. package/dist/index35.css +1 -1
  199. package/dist/index35.css.d.ts +23 -0
  200. package/dist/index36.css +1 -1
  201. package/dist/index36.css.d.ts +14 -0
  202. package/dist/index37.css +1 -1
  203. package/dist/index37.css.d.ts +18 -0
  204. package/dist/index38.css +1 -1
  205. package/dist/index38.css.d.ts +21 -0
  206. package/dist/index39.css +1 -1
  207. package/dist/index39.css.d.ts +20 -0
  208. package/dist/index4.css.d.ts +10 -0
  209. package/dist/index40.css +1 -1
  210. package/dist/index40.css.d.ts +17 -0
  211. package/dist/index41.css +1 -1
  212. package/dist/index41.css.d.ts +14 -0
  213. package/dist/index42.css +1 -1
  214. package/dist/index42.css.d.ts +22 -0
  215. package/dist/index43.css +1 -1
  216. package/dist/index43.css.d.ts +35 -0
  217. package/dist/index44.css +1 -1
  218. package/dist/index44.css.d.ts +13 -0
  219. package/dist/index45.css +1 -1
  220. package/dist/index45.css.d.ts +23 -0
  221. package/dist/index46.css +1 -1
  222. package/dist/index46.css.d.ts +12 -0
  223. package/dist/index47.css +1 -1
  224. package/dist/index47.css.d.ts +19 -0
  225. package/dist/index48.css +1 -1
  226. package/dist/index48.css.d.ts +20 -0
  227. package/dist/index49.css +1 -1
  228. package/dist/index49.css.d.ts +20 -0
  229. package/dist/index5.css.d.ts +22 -0
  230. package/dist/index50.css +1 -1
  231. package/dist/index50.css.d.ts +27 -0
  232. package/dist/index51.css +1 -1
  233. package/dist/index51.css.d.ts +17 -0
  234. package/dist/index52.css +1 -1
  235. package/dist/index52.css.d.ts +11 -0
  236. package/dist/index53.css.d.ts +12 -0
  237. package/dist/index54.css.d.ts +14 -0
  238. package/dist/index55.css.d.ts +20 -0
  239. package/dist/index56.css.d.ts +25 -0
  240. package/dist/index57.css.d.ts +13 -0
  241. package/dist/index58.css +1 -1
  242. package/dist/index58.css.d.ts +12 -0
  243. package/dist/index59.css +1 -1
  244. package/dist/index59.css.d.ts +20 -0
  245. package/dist/index6.css.d.ts +19 -0
  246. package/dist/index60.css +1 -1
  247. package/dist/index60.css.d.ts +20 -0
  248. package/dist/index61.css +1 -1
  249. package/dist/index61.css.d.ts +18 -0
  250. package/dist/index62.css +1 -1
  251. package/dist/index62.css.d.ts +22 -0
  252. package/dist/index63.css +1 -1
  253. package/dist/index63.css.d.ts +28 -0
  254. package/dist/index64.css +1 -1
  255. package/dist/index64.css.d.ts +26 -0
  256. package/dist/index65.css +1 -1
  257. package/dist/index65.css.d.ts +19 -0
  258. package/dist/index7.css.d.ts +40 -0
  259. package/dist/index8.css.d.ts +32 -0
  260. package/dist/index9.css.d.ts +9 -0
  261. package/dist/main.cjs +1 -1
  262. package/dist/main.d.ts +48 -43
  263. package/dist/main.mjs +94 -94
  264. package/dist/next/blocks/DocumentListBlock/CategoryFilters.cjs +1 -1
  265. package/dist/next/blocks/DocumentListBlock/CategoryFilters.mjs +2 -2
  266. package/dist/next/blocks/DocumentListBlock/index.cjs +1 -1
  267. package/dist/next/blocks/DocumentListBlock/index.mjs +2 -2
  268. package/dist/next/blocks/FormBlock/FormField.cjs +1 -0
  269. package/dist/next/blocks/FormBlock/FormField.mjs +13 -0
  270. package/dist/next/blocks/FormBlock/index.cjs +1 -0
  271. package/dist/next/blocks/FormBlock/index.mjs +192 -0
  272. package/dist/next/blocks/FormBlock/validate.cjs +1 -0
  273. package/dist/next/blocks/FormBlock/validate.mjs +76 -0
  274. package/dist/next/blocks/TabsBlock/index.cjs +1 -1
  275. package/dist/next/blocks/TabsBlock/index.mjs +1 -1
  276. package/dist/next/blocks/WasHelpfulBlock/index.cjs +1 -1
  277. package/dist/next/blocks/WasHelpfulBlock/index.mjs +1 -1
  278. package/dist/next/cards/BlogArticleCard/index.cjs +1 -1
  279. package/dist/next/cards/BlogArticleCard/index.mjs +1 -1
  280. package/dist/next/cards/SpotlightCard/index.cjs +1 -1
  281. package/dist/next/cards/SpotlightCard/index.mjs +1 -1
  282. package/dist/next/ui/CallToAction/index.cjs +1 -1
  283. package/dist/next/ui/CallToAction/index.mjs +1 -1
  284. package/dist/next.cjs +1 -1
  285. package/dist/next.d.ts +18 -0
  286. package/dist/next.mjs +45 -43
  287. package/dist/styles.css.d.ts +1 -0
  288. package/dist/tokens.css.d.ts +1 -0
  289. package/package.json +1 -1
  290. package/dist/core/components/MultiSelect/MultiSelect.test.cjs +0 -6
  291. package/dist/core/components/MultiSelect/MultiSelect.test.mjs +0 -3518
  292. package/dist/core/components/MultiSelect/__mocks__/styles.module.css.cjs +0 -1
  293. package/dist/core/components/MultiSelect/__mocks__/styles.module.css.mjs +0 -14
  294. package/dist/core/components/MultiSelect/index.cjs +0 -1
  295. package/dist/core/components/MultiSelect/index.mjs +0 -94
  296. package/dist/index66.css +0 -1
@@ -1 +1 @@
1
- "use strict";const l=require("react/jsx-runtime"),e=require("../../../index-DITXfOUM.cjs"),s=require("./index.cjs");e.vi.mock("../Label",()=>({Label:({children:r,htmlFor:c,required:t,className:o})=>l.jsxs("label",{htmlFor:c,className:o,children:[r,t&&l.jsx("span",{className:"required",children:"*"})]})}));e.describe("Select",()=>{const r=[{label:"Option A",value:"a"},{label:"Option B",value:"b"},{label:"Option C",value:"c"}],c=[{label:"Group 1",options:[{label:"Option 1A",value:"1a"},{label:"Option 1B",value:"1b"}]},{label:"Group 2",options:[{label:"Option 2A",value:"2a"},{label:"Option 2B",value:"2b"}]}];e.describe("Rendering",()=>{e.it("renders label and options",()=>{e.render(l.jsx(s.Select,{id:"select1",name:"test",label:"Choose",options:r})),e.globalExpect(e.screen.getByLabelText("Choose")).toBeInTheDocument(),r.forEach(({label:t})=>e.globalExpect(e.screen.getByRole("option",{name:t})).toBeInTheDocument())}),e.it("renders without label",()=>{e.render(l.jsx(s.Select,{id:"select-no-label",name:"test",options:r})),e.globalExpect(e.screen.getByRole("combobox")).toBeInTheDocument()}),e.it("generates id when not provided",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r})),o=t.querySelector("select");e.globalExpect(o).toHaveAttribute("id"),e.globalExpect(o==null?void 0:o.id).toMatch(/select-/)}),e.it("applies custom className",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r,className:"custom-select"}));e.globalExpect(t.querySelector(".custom-select")).toBeInTheDocument()}),e.it("shows required asterisk",()=>{e.render(l.jsx(s.Select,{label:"Required",options:r,required:!0})),e.globalExpect(e.screen.getByText("*")).toBeInTheDocument()}),e.it("renders placeholder option",()=>{const{container:t}=e.render(l.jsx(s.Select,{label:"Choose",options:r,placeholder:"Pick one"})),o=t.querySelector('option[value=""][disabled][hidden]');e.globalExpect(o).toBeInTheDocument(),e.globalExpect(o).toHaveTextContent("Pick one")})}),e.describe("Option Groups",()=>{e.it("renders option groups",()=>{const{container:t}=e.render(l.jsx(s.Select,{label:"Grouped",options:c})),o=t.querySelectorAll("optgroup");e.globalExpect(o).toHaveLength(2),e.globalExpect(o[0]).toHaveAttribute("label","Group 1"),e.globalExpect(o[1]).toHaveAttribute("label","Group 2")}),e.it("renders options within groups",()=>{e.render(l.jsx(s.Select,{label:"Grouped",options:c})),e.globalExpect(e.screen.getByRole("option",{name:"Option 1A"})).toBeInTheDocument(),e.globalExpect(e.screen.getByRole("option",{name:"Option 2B"})).toBeInTheDocument()})}),e.describe("Sizes",()=>{e.it("applies small size class",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r,size:"sm"})),o=t.querySelector("select");e.globalExpect(o).toHaveClass("sm")}),e.it("applies medium size by default",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r})),o=t.querySelector("select");e.globalExpect(o).toHaveClass("md")}),e.it("applies large size class",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r,size:"lg"})),o=t.querySelector("select");e.globalExpect(o).toHaveClass("lg")})}),e.describe("States",()=>{e.it("can be disabled",()=>{e.render(l.jsx(s.Select,{label:"Disabled",options:r,disabled:!0}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toBeDisabled()}),e.it("can be required",()=>{e.render(l.jsx(s.Select,{label:"Required",options:r,required:!0}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toBeRequired()})}),e.describe("Error State",()=>{e.it("applies error class when error is boolean",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r,error:!0})),o=t.querySelector("select");e.globalExpect(o).toHaveClass("error")}),e.it("shows error message when error is string",()=>{e.render(l.jsx(s.Select,{options:r,error:"Please select an option"})),e.globalExpect(e.screen.getByText("Please select an option")).toBeInTheDocument()}),e.it("sets aria-invalid when error",()=>{e.render(l.jsx(s.Select,{options:r,error:!0}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("aria-invalid","true")}),e.it("displays error text with error styling",()=>{e.render(l.jsx(s.Select,{options:r,error:"Error message"}));const t=e.screen.getByText("Error message");e.globalExpect(t).toHaveClass("errorText")})}),e.describe("Helper Text",()=>{e.it("displays helper text",()=>{e.render(l.jsx(s.Select,{options:r,helperText:"Choose wisely"})),e.globalExpect(e.screen.getByText("Choose wisely")).toBeInTheDocument()}),e.it("links helper text with aria-describedby",()=>{e.render(l.jsx(s.Select,{id:"help-select",options:r,helperText:"Helper"}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("aria-describedby","help-select-description")})}),e.describe("Value Handling",()=>{e.it("respects default value",()=>{e.render(l.jsx(s.Select,{id:"select3",name:"test",label:"Choose",options:r,defaultValue:"b"}));const t=e.screen.getByRole("combobox");e.globalExpect(t.value).toBe("b")}),e.it("renders with controlled value",()=>{e.render(l.jsx(s.Select,{options:r,value:"c",onChange:()=>{}}));const t=e.screen.getByRole("combobox");e.globalExpect(t.value).toBe("c")})}),e.describe("Event Handlers",()=>{e.it("calls onChange handler",()=>{const t=e.vi.fn();e.render(l.jsx(s.Select,{id:"select2",name:"test",label:"Pick",options:r,onChange:t}));const o=e.screen.getByRole("combobox");e.fireEvent.change(o,{target:{value:"b"}}),e.globalExpect(t).toHaveBeenCalled()})}),e.describe("Multiple Selection",()=>{e.it("renders multiple select",()=>{e.render(l.jsx(s.Select,{options:r,multiple:!0}));const t=e.screen.getByRole("listbox");e.globalExpect(t).toHaveAttribute("multiple")}),e.it("does not show arrow for multiple select",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r,multiple:!0})),o=t.querySelector(".arrow");e.globalExpect(o).not.toBeInTheDocument()}),e.it("does not show placeholder for multiple select",()=>{e.render(l.jsx(s.Select,{options:r,multiple:!0,placeholder:"Pick multiple"})),e.globalExpect(e.screen.queryByRole("option",{name:"Pick multiple"})).not.toBeInTheDocument()})}),e.describe("Full Width",()=>{e.it("applies fullWidth class",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r,fullWidth:!0})),o=t.querySelector(".wrapper");e.globalExpect(o).toHaveClass("fullWidth")})}),e.describe("Disabled Options",()=>{e.it("renders disabled options",()=>{const t=[{label:"Option A",value:"a"},{label:"Option B",value:"b",disabled:!0},{label:"Option C",value:"c"}];e.render(l.jsx(s.Select,{options:t}));const o=e.screen.getByRole("option",{name:"Option B"});e.globalExpect(o.disabled).toBe(!0)})}),e.describe("Accessibility",()=>{e.it("associates label with select",()=>{e.render(l.jsx(s.Select,{id:"labeled",label:"Choose",options:r}));const t=e.screen.getByLabelText("Choose");e.globalExpect(t).toHaveAttribute("id","labeled")}),e.it("links description when helper text present",()=>{e.render(l.jsx(s.Select,{id:"desc",options:r,helperText:"Helper"}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("aria-describedby","desc-description")})}),e.describe("Props Forwarding",()=>{e.it("forwards HTML attributes",()=>{e.render(l.jsx(s.Select,{options:r,"data-testid":"custom-select","aria-label":"Custom"}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("data-testid","custom-select"),e.globalExpect(t).toHaveAttribute("aria-label","Custom")}),e.it("forwards name attribute",()=>{e.render(l.jsx(s.Select,{name:"country",options:r}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("name","country")})}),e.describe("Custom Arrow",()=>{e.it("renders custom arrow for single select",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r})),o=t.querySelector(".arrow");e.globalExpect(o).toBeInTheDocument(),e.globalExpect(o).toHaveAttribute("aria-hidden","true")})}),e.describe("Style Prop",()=>{e.it("applies custom style",()=>{const{container:t}=e.render(l.jsx(s.Select,{options:r,style:{maxWidth:"300px"}})),o=t.querySelector(".wrapper");e.globalExpect(o).toHaveStyle({maxWidth:"300px"})})})});
1
+ "use strict";const l=require("react/jsx-runtime"),e=require("../../../index-CvpbNrYS.cjs"),r=require("./index.cjs");e.vi.mock("../Label",()=>({Label:({children:o,htmlFor:c,required:t,className:s})=>l.jsxs("label",{htmlFor:c,className:s,children:[o,t&&l.jsx("span",{className:"required",children:"*"})]})}));e.describe("Select",()=>{const o=[{label:"Option A",value:"a"},{label:"Option B",value:"b"},{label:"Option C",value:"c"}],c=[{label:"Group 1",options:[{label:"Option 1A",value:"1a"},{label:"Option 1B",value:"1b"}]},{label:"Group 2",options:[{label:"Option 2A",value:"2a"},{label:"Option 2B",value:"2b"}]}];e.describe("Rendering",()=>{e.it("renders label and options",()=>{e.render(l.jsx(r.Select,{id:"select1",name:"test",label:"Choose",options:o})),e.globalExpect(e.screen.getByLabelText("Choose")).toBeInTheDocument(),o.forEach(({label:t})=>e.globalExpect(e.screen.getByRole("option",{name:t})).toBeInTheDocument())}),e.it("renders without label",()=>{e.render(l.jsx(r.Select,{id:"select-no-label",name:"test",options:o})),e.globalExpect(e.screen.getByRole("combobox")).toBeInTheDocument()}),e.it("generates id when not provided",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o})),s=t.querySelector("select");e.globalExpect(s).toHaveAttribute("id"),e.globalExpect(s==null?void 0:s.id).toMatch(/select-/)}),e.it("applies custom className",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o,className:"custom-select"}));e.globalExpect(t.querySelector(".custom-select")).toBeInTheDocument()}),e.it("shows required asterisk",()=>{e.render(l.jsx(r.Select,{label:"Required",options:o,required:!0})),e.globalExpect(e.screen.getByText("*")).toBeInTheDocument()}),e.it("renders placeholder option",()=>{const{container:t}=e.render(l.jsx(r.Select,{label:"Choose",options:o,placeholder:"Pick one"})),s=t.querySelector('option[value=""][disabled][hidden]');e.globalExpect(s).toBeInTheDocument(),e.globalExpect(s).toHaveTextContent("Pick one")})}),e.describe("Option Groups",()=>{e.it("renders option groups",()=>{const{container:t}=e.render(l.jsx(r.Select,{label:"Grouped",options:c})),s=t.querySelectorAll("optgroup");e.globalExpect(s).toHaveLength(2),e.globalExpect(s[0]).toHaveAttribute("label","Group 1"),e.globalExpect(s[1]).toHaveAttribute("label","Group 2")}),e.it("renders options within groups",()=>{e.render(l.jsx(r.Select,{label:"Grouped",options:c})),e.globalExpect(e.screen.getByRole("option",{name:"Option 1A"})).toBeInTheDocument(),e.globalExpect(e.screen.getByRole("option",{name:"Option 2B"})).toBeInTheDocument()})}),e.describe("Sizes",()=>{e.it("applies small size class",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o,size:"sm"})),s=t.querySelector("select");e.globalExpect(s).toHaveClass("sm")}),e.it("applies medium size by default",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o})),s=t.querySelector("select");e.globalExpect(s).toHaveClass("md")}),e.it("applies large size class",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o,size:"lg"})),s=t.querySelector("select");e.globalExpect(s).toHaveClass("lg")})}),e.describe("States",()=>{e.it("can be disabled",()=>{e.render(l.jsx(r.Select,{label:"Disabled",options:o,disabled:!0}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toBeDisabled()}),e.it("can be required",()=>{e.render(l.jsx(r.Select,{label:"Required",options:o,required:!0}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toBeRequired()})}),e.describe("Error State",()=>{e.it("applies error class when error is boolean",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o,error:!0})),s=t.querySelector("select");e.globalExpect(s).toHaveClass("error")}),e.it("shows error message when error is string",()=>{e.render(l.jsx(r.Select,{options:o,error:"Please select an option"})),e.globalExpect(e.screen.getByText("Please select an option")).toBeInTheDocument()}),e.it("sets aria-invalid when error",()=>{e.render(l.jsx(r.Select,{options:o,error:!0}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("aria-invalid","true")}),e.it("displays error text with error styling",()=>{e.render(l.jsx(r.Select,{options:o,error:"Error message"}));const t=e.screen.getByText("Error message");e.globalExpect(t).toHaveClass("errorText")})}),e.describe("Helper Text",()=>{e.it("displays helper text",()=>{e.render(l.jsx(r.Select,{options:o,helperText:"Choose wisely"})),e.globalExpect(e.screen.getByText("Choose wisely")).toBeInTheDocument()}),e.it("links helper text with aria-describedby",()=>{e.render(l.jsx(r.Select,{id:"help-select",options:o,helperText:"Helper"}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("aria-describedby","help-select-description")})}),e.describe("Value Handling",()=>{e.it("respects default value",()=>{e.render(l.jsx(r.Select,{id:"select3",name:"test",label:"Choose",options:o,defaultValue:"b"}));const t=e.screen.getByRole("combobox");e.globalExpect(t.value).toBe("b")}),e.it("renders with controlled value",()=>{e.render(l.jsx(r.Select,{options:o,value:"c",onChange:()=>{}}));const t=e.screen.getByRole("combobox");e.globalExpect(t.value).toBe("c")})}),e.describe("Event Handlers",()=>{e.it("calls onChange handler",()=>{const t=e.vi.fn();e.render(l.jsx(r.Select,{id:"select2",name:"test",label:"Pick",options:o,onChange:t}));const s=e.screen.getByRole("combobox");e.fireEvent.change(s,{target:{value:"b"}}),e.globalExpect(t).toHaveBeenCalled()})}),e.describe("Multiple Selection",()=>{e.it("renders multiple select",()=>{e.render(l.jsx(r.Select,{options:o,multiple:!0,value:[],onChange:()=>{}}));const t=e.screen.getByRole("listbox");e.globalExpect(t).toHaveAttribute("multiple")}),e.it("does not show arrow for multiple select",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o,multiple:!0,value:[],onChange:()=>{}})),s=t.querySelector(".arrow");e.globalExpect(s).not.toBeInTheDocument()}),e.it("does not show placeholder for multiple select",()=>{e.render(l.jsx(r.Select,{options:o,multiple:!0,value:[],onChange:()=>{},placeholder:"Pick multiple"})),e.globalExpect(e.screen.queryByRole("option",{name:"Pick multiple"})).not.toBeInTheDocument()}),e.it("calls onChange with array of selected values",()=>{const t=e.vi.fn();e.render(l.jsx(r.Select,{options:o,multiple:!0,value:[],onChange:t}));const s=e.screen.getByRole("listbox"),n=e.screen.getByRole("option",{name:"Option A"}),a=e.screen.getByRole("option",{name:"Option B"});n.selected=!0,a.selected=!0,e.fireEvent.change(s),e.globalExpect(t).toHaveBeenCalledWith(["a","b"])}),e.it("shows selected count when showSelectedCount is true",()=>{e.render(l.jsx(r.Select,{options:o,multiple:!0,value:["a","b"],onChange:()=>{},showSelectedCount:!0})),e.globalExpect(e.screen.getByText("2 items selected")).toBeInTheDocument()}),e.it("shows singular count when one item selected",()=>{e.render(l.jsx(r.Select,{options:o,multiple:!0,value:["a"],onChange:()=>{},showSelectedCount:!0})),e.globalExpect(e.screen.getByText("1 item selected")).toBeInTheDocument()}),e.it("does not show count when showSelectedCount is false",()=>{e.render(l.jsx(r.Select,{options:o,multiple:!0,value:["a"],onChange:()=>{}})),e.globalExpect(e.screen.queryByText(/selected/)).not.toBeInTheDocument()})}),e.describe("Full Width",()=>{e.it("applies fullWidth class",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o,fullWidth:!0})),s=t.querySelector(".wrapper");e.globalExpect(s).toHaveClass("fullWidth")})}),e.describe("Disabled Options",()=>{e.it("renders disabled options",()=>{const t=[{label:"Option A",value:"a"},{label:"Option B",value:"b",disabled:!0},{label:"Option C",value:"c"}];e.render(l.jsx(r.Select,{options:t}));const s=e.screen.getByRole("option",{name:"Option B"});e.globalExpect(s.disabled).toBe(!0)})}),e.describe("Accessibility",()=>{e.it("associates label with select",()=>{e.render(l.jsx(r.Select,{id:"labeled",label:"Choose",options:o}));const t=e.screen.getByLabelText("Choose");e.globalExpect(t).toHaveAttribute("id","labeled")}),e.it("links description when helper text present",()=>{e.render(l.jsx(r.Select,{id:"desc",options:o,helperText:"Helper"}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("aria-describedby","desc-description")})}),e.describe("Props Forwarding",()=>{e.it("forwards HTML attributes",()=>{e.render(l.jsx(r.Select,{options:o,"data-testid":"custom-select","aria-label":"Custom"}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("data-testid","custom-select"),e.globalExpect(t).toHaveAttribute("aria-label","Custom")}),e.it("forwards name attribute",()=>{e.render(l.jsx(r.Select,{name:"country",options:o}));const t=e.screen.getByRole("combobox");e.globalExpect(t).toHaveAttribute("name","country")})}),e.describe("Custom Arrow",()=>{e.it("renders custom arrow for single select",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o})),s=t.querySelector(".arrow");e.globalExpect(s).toBeInTheDocument(),e.globalExpect(s).toHaveAttribute("aria-hidden","true")})}),e.describe("Style Prop",()=>{e.it("applies custom style",()=>{const{container:t}=e.render(l.jsx(r.Select,{options:o,style:{maxWidth:"300px"}})),s=t.querySelector(".wrapper");e.globalExpect(s).toHaveStyle({maxWidth:"300px"})})})});
@@ -1,14 +1,14 @@
1
- import { jsxs as d, jsx as l } from "react/jsx-runtime";
2
- import { v as p, d as c, i as r, r as a, g as t, s as i, f as b } from "../../../index-BQV8LRFm.js";
3
- import { Select as n } from "./index.mjs";
1
+ import { jsxs as m, jsx as o } from "react/jsx-runtime";
2
+ import { v as p, d as c, i as s, r as n, g as t, s as i, f as d } from "../../../index-Ck6GdALV.js";
3
+ import { Select as a } from "./index.mjs";
4
4
  p.mock("../Label", () => ({
5
- Label: ({ children: s, htmlFor: u, required: e, className: o }) => /* @__PURE__ */ d("label", { htmlFor: u, className: o, children: [
6
- s,
7
- e && /* @__PURE__ */ l("span", { className: "required", children: "*" })
5
+ Label: ({ children: l, htmlFor: u, required: e, className: r }) => /* @__PURE__ */ m("label", { htmlFor: u, className: r, children: [
6
+ l,
7
+ e && /* @__PURE__ */ o("span", { className: "required", children: "*" })
8
8
  ] })
9
9
  }));
10
10
  c("Select", () => {
11
- const s = [
11
+ const l = [
12
12
  { label: "Option A", value: "a" },
13
13
  { label: "Option B", value: "b" },
14
14
  { label: "Option C", value: "c" }
@@ -29,86 +29,86 @@ c("Select", () => {
29
29
  }
30
30
  ];
31
31
  c("Rendering", () => {
32
- r("renders label and options", () => {
33
- a(
34
- /* @__PURE__ */ l(n, { id: "select1", name: "test", label: "Choose", options: s })
35
- ), t(i.getByLabelText("Choose")).toBeInTheDocument(), s.forEach(
32
+ s("renders label and options", () => {
33
+ n(
34
+ /* @__PURE__ */ o(a, { id: "select1", name: "test", label: "Choose", options: l })
35
+ ), t(i.getByLabelText("Choose")).toBeInTheDocument(), l.forEach(
36
36
  ({ label: e }) => t(i.getByRole("option", { name: e })).toBeInTheDocument()
37
37
  );
38
- }), r("renders without label", () => {
39
- a(/* @__PURE__ */ l(n, { id: "select-no-label", name: "test", options: s })), t(i.getByRole("combobox")).toBeInTheDocument();
40
- }), r("generates id when not provided", () => {
41
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s })), o = e.querySelector("select");
42
- t(o).toHaveAttribute("id"), t(o == null ? void 0 : o.id).toMatch(/select-/);
43
- }), r("applies custom className", () => {
44
- const { container: e } = a(
45
- /* @__PURE__ */ l(n, { options: s, className: "custom-select" })
38
+ }), s("renders without label", () => {
39
+ n(/* @__PURE__ */ o(a, { id: "select-no-label", name: "test", options: l })), t(i.getByRole("combobox")).toBeInTheDocument();
40
+ }), s("generates id when not provided", () => {
41
+ const { container: e } = n(/* @__PURE__ */ o(a, { options: l })), r = e.querySelector("select");
42
+ t(r).toHaveAttribute("id"), t(r == null ? void 0 : r.id).toMatch(/select-/);
43
+ }), s("applies custom className", () => {
44
+ const { container: e } = n(
45
+ /* @__PURE__ */ o(a, { options: l, className: "custom-select" })
46
46
  );
47
47
  t(e.querySelector(".custom-select")).toBeInTheDocument();
48
- }), r("shows required asterisk", () => {
49
- a(/* @__PURE__ */ l(n, { label: "Required", options: s, required: !0 })), t(i.getByText("*")).toBeInTheDocument();
50
- }), r("renders placeholder option", () => {
51
- const { container: e } = a(
52
- /* @__PURE__ */ l(n, { label: "Choose", options: s, placeholder: "Pick one" })
53
- ), o = e.querySelector(
48
+ }), s("shows required asterisk", () => {
49
+ n(/* @__PURE__ */ o(a, { label: "Required", options: l, required: !0 })), t(i.getByText("*")).toBeInTheDocument();
50
+ }), s("renders placeholder option", () => {
51
+ const { container: e } = n(
52
+ /* @__PURE__ */ o(a, { label: "Choose", options: l, placeholder: "Pick one" })
53
+ ), r = e.querySelector(
54
54
  'option[value=""][disabled][hidden]'
55
55
  );
56
- t(o).toBeInTheDocument(), t(o).toHaveTextContent("Pick one");
56
+ t(r).toBeInTheDocument(), t(r).toHaveTextContent("Pick one");
57
57
  });
58
58
  }), c("Option Groups", () => {
59
- r("renders option groups", () => {
60
- const { container: e } = a(
61
- /* @__PURE__ */ l(n, { label: "Grouped", options: u })
62
- ), o = e.querySelectorAll("optgroup");
63
- t(o).toHaveLength(2), t(o[0]).toHaveAttribute("label", "Group 1"), t(o[1]).toHaveAttribute("label", "Group 2");
64
- }), r("renders options within groups", () => {
65
- a(/* @__PURE__ */ l(n, { label: "Grouped", options: u })), t(
59
+ s("renders option groups", () => {
60
+ const { container: e } = n(
61
+ /* @__PURE__ */ o(a, { label: "Grouped", options: u })
62
+ ), r = e.querySelectorAll("optgroup");
63
+ t(r).toHaveLength(2), t(r[0]).toHaveAttribute("label", "Group 1"), t(r[1]).toHaveAttribute("label", "Group 2");
64
+ }), s("renders options within groups", () => {
65
+ n(/* @__PURE__ */ o(a, { label: "Grouped", options: u })), t(
66
66
  i.getByRole("option", { name: "Option 1A" })
67
67
  ).toBeInTheDocument(), t(
68
68
  i.getByRole("option", { name: "Option 2B" })
69
69
  ).toBeInTheDocument();
70
70
  });
71
71
  }), c("Sizes", () => {
72
- r("applies small size class", () => {
73
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s, size: "sm" })), o = e.querySelector("select");
74
- t(o).toHaveClass("sm");
75
- }), r("applies medium size by default", () => {
76
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s })), o = e.querySelector("select");
77
- t(o).toHaveClass("md");
78
- }), r("applies large size class", () => {
79
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s, size: "lg" })), o = e.querySelector("select");
80
- t(o).toHaveClass("lg");
72
+ s("applies small size class", () => {
73
+ const { container: e } = n(/* @__PURE__ */ o(a, { options: l, size: "sm" })), r = e.querySelector("select");
74
+ t(r).toHaveClass("sm");
75
+ }), s("applies medium size by default", () => {
76
+ const { container: e } = n(/* @__PURE__ */ o(a, { options: l })), r = e.querySelector("select");
77
+ t(r).toHaveClass("md");
78
+ }), s("applies large size class", () => {
79
+ const { container: e } = n(/* @__PURE__ */ o(a, { options: l, size: "lg" })), r = e.querySelector("select");
80
+ t(r).toHaveClass("lg");
81
81
  });
82
82
  }), c("States", () => {
83
- r("can be disabled", () => {
84
- a(/* @__PURE__ */ l(n, { label: "Disabled", options: s, disabled: !0 }));
83
+ s("can be disabled", () => {
84
+ n(/* @__PURE__ */ o(a, { label: "Disabled", options: l, disabled: !0 }));
85
85
  const e = i.getByRole("combobox");
86
86
  t(e).toBeDisabled();
87
- }), r("can be required", () => {
88
- a(/* @__PURE__ */ l(n, { label: "Required", options: s, required: !0 }));
87
+ }), s("can be required", () => {
88
+ n(/* @__PURE__ */ o(a, { label: "Required", options: l, required: !0 }));
89
89
  const e = i.getByRole("combobox");
90
90
  t(e).toBeRequired();
91
91
  });
92
92
  }), c("Error State", () => {
93
- r("applies error class when error is boolean", () => {
94
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s, error: !0 })), o = e.querySelector("select");
95
- t(o).toHaveClass("error");
96
- }), r("shows error message when error is string", () => {
97
- a(/* @__PURE__ */ l(n, { options: s, error: "Please select an option" })), t(i.getByText("Please select an option")).toBeInTheDocument();
98
- }), r("sets aria-invalid when error", () => {
99
- a(/* @__PURE__ */ l(n, { options: s, error: !0 }));
93
+ s("applies error class when error is boolean", () => {
94
+ const { container: e } = n(/* @__PURE__ */ o(a, { options: l, error: !0 })), r = e.querySelector("select");
95
+ t(r).toHaveClass("error");
96
+ }), s("shows error message when error is string", () => {
97
+ n(/* @__PURE__ */ o(a, { options: l, error: "Please select an option" })), t(i.getByText("Please select an option")).toBeInTheDocument();
98
+ }), s("sets aria-invalid when error", () => {
99
+ n(/* @__PURE__ */ o(a, { options: l, error: !0 }));
100
100
  const e = i.getByRole("combobox");
101
101
  t(e).toHaveAttribute("aria-invalid", "true");
102
- }), r("displays error text with error styling", () => {
103
- a(/* @__PURE__ */ l(n, { options: s, error: "Error message" }));
102
+ }), s("displays error text with error styling", () => {
103
+ n(/* @__PURE__ */ o(a, { options: l, error: "Error message" }));
104
104
  const e = i.getByText("Error message");
105
105
  t(e).toHaveClass("errorText");
106
106
  });
107
107
  }), c("Helper Text", () => {
108
- r("displays helper text", () => {
109
- a(/* @__PURE__ */ l(n, { options: s, helperText: "Choose wisely" })), t(i.getByText("Choose wisely")).toBeInTheDocument();
110
- }), r("links helper text with aria-describedby", () => {
111
- a(/* @__PURE__ */ l(n, { id: "help-select", options: s, helperText: "Helper" }));
108
+ s("displays helper text", () => {
109
+ n(/* @__PURE__ */ o(a, { options: l, helperText: "Choose wisely" })), t(i.getByText("Choose wisely")).toBeInTheDocument();
110
+ }), s("links helper text with aria-describedby", () => {
111
+ n(/* @__PURE__ */ o(a, { id: "help-select", options: l, helperText: "Helper" }));
112
112
  const e = i.getByRole("combobox");
113
113
  t(e).toHaveAttribute(
114
114
  "aria-describedby",
@@ -116,92 +116,162 @@ c("Select", () => {
116
116
  );
117
117
  });
118
118
  }), c("Value Handling", () => {
119
- r("respects default value", () => {
120
- a(
121
- /* @__PURE__ */ l(
122
- n,
119
+ s("respects default value", () => {
120
+ n(
121
+ /* @__PURE__ */ o(
122
+ a,
123
123
  {
124
124
  id: "select3",
125
125
  name: "test",
126
126
  label: "Choose",
127
- options: s,
127
+ options: l,
128
128
  defaultValue: "b"
129
129
  }
130
130
  )
131
131
  );
132
132
  const e = i.getByRole("combobox");
133
133
  t(e.value).toBe("b");
134
- }), r("renders with controlled value", () => {
135
- a(/* @__PURE__ */ l(n, { options: s, value: "c", onChange: () => {
134
+ }), s("renders with controlled value", () => {
135
+ n(/* @__PURE__ */ o(a, { options: l, value: "c", onChange: () => {
136
136
  } }));
137
137
  const e = i.getByRole("combobox");
138
138
  t(e.value).toBe("c");
139
139
  });
140
140
  }), c("Event Handlers", () => {
141
- r("calls onChange handler", () => {
141
+ s("calls onChange handler", () => {
142
142
  const e = p.fn();
143
- a(
144
- /* @__PURE__ */ l(
145
- n,
143
+ n(
144
+ /* @__PURE__ */ o(
145
+ a,
146
146
  {
147
147
  id: "select2",
148
148
  name: "test",
149
149
  label: "Pick",
150
- options: s,
150
+ options: l,
151
151
  onChange: e
152
152
  }
153
153
  )
154
154
  );
155
- const o = i.getByRole("combobox");
156
- b.change(o, { target: { value: "b" } }), t(e).toHaveBeenCalled();
155
+ const r = i.getByRole("combobox");
156
+ d.change(r, { target: { value: "b" } }), t(e).toHaveBeenCalled();
157
157
  });
158
158
  }), c("Multiple Selection", () => {
159
- r("renders multiple select", () => {
160
- a(/* @__PURE__ */ l(n, { options: s, multiple: !0 }));
159
+ s("renders multiple select", () => {
160
+ n(
161
+ /* @__PURE__ */ o(a, { options: l, multiple: !0, value: [], onChange: () => {
162
+ } })
163
+ );
161
164
  const e = i.getByRole("listbox");
162
165
  t(e).toHaveAttribute("multiple");
163
- }), r("does not show arrow for multiple select", () => {
164
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s, multiple: !0 })), o = e.querySelector(".arrow");
165
- t(o).not.toBeInTheDocument();
166
- }), r("does not show placeholder for multiple select", () => {
167
- a(/* @__PURE__ */ l(n, { options: s, multiple: !0, placeholder: "Pick multiple" })), t(
166
+ }), s("does not show arrow for multiple select", () => {
167
+ const { container: e } = n(
168
+ /* @__PURE__ */ o(a, { options: l, multiple: !0, value: [], onChange: () => {
169
+ } })
170
+ ), r = e.querySelector(".arrow");
171
+ t(r).not.toBeInTheDocument();
172
+ }), s("does not show placeholder for multiple select", () => {
173
+ n(
174
+ /* @__PURE__ */ o(
175
+ a,
176
+ {
177
+ options: l,
178
+ multiple: !0,
179
+ value: [],
180
+ onChange: () => {
181
+ },
182
+ placeholder: "Pick multiple"
183
+ }
184
+ )
185
+ ), t(
168
186
  i.queryByRole("option", { name: "Pick multiple" })
169
187
  ).not.toBeInTheDocument();
188
+ }), s("calls onChange with array of selected values", () => {
189
+ const e = p.fn();
190
+ n(
191
+ /* @__PURE__ */ o(
192
+ a,
193
+ {
194
+ options: l,
195
+ multiple: !0,
196
+ value: [],
197
+ onChange: e
198
+ }
199
+ )
200
+ );
201
+ const r = i.getByRole("listbox"), b = i.getByRole("option", {
202
+ name: "Option A"
203
+ }), h = i.getByRole("option", {
204
+ name: "Option B"
205
+ });
206
+ b.selected = !0, h.selected = !0, d.change(r), t(e).toHaveBeenCalledWith(["a", "b"]);
207
+ }), s("shows selected count when showSelectedCount is true", () => {
208
+ n(
209
+ /* @__PURE__ */ o(
210
+ a,
211
+ {
212
+ options: l,
213
+ multiple: !0,
214
+ value: ["a", "b"],
215
+ onChange: () => {
216
+ },
217
+ showSelectedCount: !0
218
+ }
219
+ )
220
+ ), t(i.getByText("2 items selected")).toBeInTheDocument();
221
+ }), s("shows singular count when one item selected", () => {
222
+ n(
223
+ /* @__PURE__ */ o(
224
+ a,
225
+ {
226
+ options: l,
227
+ multiple: !0,
228
+ value: ["a"],
229
+ onChange: () => {
230
+ },
231
+ showSelectedCount: !0
232
+ }
233
+ )
234
+ ), t(i.getByText("1 item selected")).toBeInTheDocument();
235
+ }), s("does not show count when showSelectedCount is false", () => {
236
+ n(
237
+ /* @__PURE__ */ o(a, { options: l, multiple: !0, value: ["a"], onChange: () => {
238
+ } })
239
+ ), t(i.queryByText(/selected/)).not.toBeInTheDocument();
170
240
  });
171
241
  }), c("Full Width", () => {
172
- r("applies fullWidth class", () => {
173
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s, fullWidth: !0 })), o = e.querySelector(".wrapper");
174
- t(o).toHaveClass("fullWidth");
242
+ s("applies fullWidth class", () => {
243
+ const { container: e } = n(/* @__PURE__ */ o(a, { options: l, fullWidth: !0 })), r = e.querySelector(".wrapper");
244
+ t(r).toHaveClass("fullWidth");
175
245
  });
176
246
  }), c("Disabled Options", () => {
177
- r("renders disabled options", () => {
178
- a(/* @__PURE__ */ l(n, { options: [
247
+ s("renders disabled options", () => {
248
+ n(/* @__PURE__ */ o(a, { options: [
179
249
  { label: "Option A", value: "a" },
180
250
  { label: "Option B", value: "b", disabled: !0 },
181
251
  { label: "Option C", value: "c" }
182
252
  ] }));
183
- const o = i.getByRole("option", {
253
+ const r = i.getByRole("option", {
184
254
  name: "Option B"
185
255
  });
186
- t(o.disabled).toBe(!0);
256
+ t(r.disabled).toBe(!0);
187
257
  });
188
258
  }), c("Accessibility", () => {
189
- r("associates label with select", () => {
190
- a(/* @__PURE__ */ l(n, { id: "labeled", label: "Choose", options: s }));
259
+ s("associates label with select", () => {
260
+ n(/* @__PURE__ */ o(a, { id: "labeled", label: "Choose", options: l }));
191
261
  const e = i.getByLabelText("Choose");
192
262
  t(e).toHaveAttribute("id", "labeled");
193
- }), r("links description when helper text present", () => {
194
- a(/* @__PURE__ */ l(n, { id: "desc", options: s, helperText: "Helper" }));
263
+ }), s("links description when helper text present", () => {
264
+ n(/* @__PURE__ */ o(a, { id: "desc", options: l, helperText: "Helper" }));
195
265
  const e = i.getByRole("combobox");
196
266
  t(e).toHaveAttribute("aria-describedby", "desc-description");
197
267
  });
198
268
  }), c("Props Forwarding", () => {
199
- r("forwards HTML attributes", () => {
200
- a(
201
- /* @__PURE__ */ l(
202
- n,
269
+ s("forwards HTML attributes", () => {
270
+ n(
271
+ /* @__PURE__ */ o(
272
+ a,
203
273
  {
204
- options: s,
274
+ options: l,
205
275
  "data-testid": "custom-select",
206
276
  "aria-label": "Custom"
207
277
  }
@@ -209,22 +279,22 @@ c("Select", () => {
209
279
  );
210
280
  const e = i.getByRole("combobox");
211
281
  t(e).toHaveAttribute("data-testid", "custom-select"), t(e).toHaveAttribute("aria-label", "Custom");
212
- }), r("forwards name attribute", () => {
213
- a(/* @__PURE__ */ l(n, { name: "country", options: s }));
282
+ }), s("forwards name attribute", () => {
283
+ n(/* @__PURE__ */ o(a, { name: "country", options: l }));
214
284
  const e = i.getByRole("combobox");
215
285
  t(e).toHaveAttribute("name", "country");
216
286
  });
217
287
  }), c("Custom Arrow", () => {
218
- r("renders custom arrow for single select", () => {
219
- const { container: e } = a(/* @__PURE__ */ l(n, { options: s })), o = e.querySelector(".arrow");
220
- t(o).toBeInTheDocument(), t(o).toHaveAttribute("aria-hidden", "true");
288
+ s("renders custom arrow for single select", () => {
289
+ const { container: e } = n(/* @__PURE__ */ o(a, { options: l })), r = e.querySelector(".arrow");
290
+ t(r).toBeInTheDocument(), t(r).toHaveAttribute("aria-hidden", "true");
221
291
  });
222
292
  }), c("Style Prop", () => {
223
- r("applies custom style", () => {
224
- const { container: e } = a(
225
- /* @__PURE__ */ l(n, { options: s, style: { maxWidth: "300px" } })
226
- ), o = e.querySelector(".wrapper");
227
- t(o).toHaveStyle({ maxWidth: "300px" });
293
+ s("applies custom style", () => {
294
+ const { container: e } = n(
295
+ /* @__PURE__ */ o(a, { options: l, style: { maxWidth: "300px" } })
296
+ ), r = e.querySelector(".wrapper");
297
+ t(r).toHaveStyle({ maxWidth: "300px" });
228
298
  });
229
299
  });
230
300
  });
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../../index25.css');const r=require("react/jsx-runtime"),C=require("../Label/index.cjs"),N="_wrapper_1i56r_1",W="_fullWidth_1i56r_8",M="_selectContainer_1i56r_13",O="_select_1i56r_13",q="_sm_1i56r_63",L="_md_1i56r_70",E="_lg_1i56r_77",F="_arrow_1i56r_104",G="_error_1i56r_124",I="_helperText_1i56r_134",P="_errorText_1i56r_140",e={wrapper:N,fullWidth:W,selectContainer:M,select:O,sm:q,md:L,lg:E,arrow:F,error:G,helperText:I,errorText:P};function k(o){return"options"in o}function z({id:o,name:p,label:u,placeholder:h="Select an option",options:b,value:m,defaultValue:x,required:f=!1,disabled:l=!1,error:c=!1,helperText:a,size:$="md",fullWidth:j=!1,multiple:d=!1,className:v,style:w,onChange:T,...S}){const n=o??p??`select-${Math.random().toString(36).slice(2)}`,i=!!c,_=typeof c=="string"?c:void 0,y={sm:e.sm,md:e.md,lg:e.lg}[$],g=s=>s.map(t=>r.jsx("option",{value:t.value,disabled:t.disabled,children:t.label},t.value));return r.jsxs("div",{className:`${v??""} ${e.wrapper} ${j?e.fullWidth:""}`.trim(),style:w,children:[u&&r.jsx(C.Label,{htmlFor:n,size:$,intent:i?"error":l?"disabled":"default",required:f,disabled:l,children:u}),r.jsxs("div",{className:e.selectContainer,children:[r.jsxs("select",{id:n,name:p,value:m,defaultValue:x,required:f,disabled:l,multiple:d,onChange:T,className:`${e.select} ${y} ${i?e.error:""}`.trim(),"aria-invalid":i,"aria-describedby":_||a?`${n}-description`:void 0,...S,children:[!d&&h&&!m&&!x&&r.jsx("option",{value:"",disabled:!0,hidden:!0,children:h}),b.map((s,t)=>k(s)?r.jsx("optgroup",{label:s.label,children:g(s.options)},t):g([s])[0])]}),!d&&r.jsx("span",{className:e.arrow,"aria-hidden":"true",children:"▼"})]}),(_||a)&&r.jsx("div",{id:`${n}-description`,className:`${e.helperText} ${i?e.errorText:""}`.trim(),children:_||a})]})}exports.Select=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../../index25.css');const t=require("react/jsx-runtime"),z=require("../Label/index.cjs"),H="_wrapper_1tffa_1",L="_fullWidth_1tffa_8",P="_selectContainer_1tffa_13",E="_select_1tffa_13",F="_sm_1tffa_63",G="_md_1tffa_70",I="_lg_1tffa_77",V="_arrow_1tffa_104",k="_error_1tffa_124",D="_helperText_1tffa_134",J="_errorText_1tffa_140",K="_selectedCount_1tffa_179",e={wrapper:H,fullWidth:L,selectContainer:P,select:E,sm:F,md:G,lg:I,arrow:V,error:k,helperText:D,errorText:J,selectedCount:K};function Q(c){return"options"in c}function R(c){const{id:T,name:h,label:m,placeholder:x="Select an option",options:w,required:b=!1,disabled:d=!1,error:f=!1,helperText:u,size:g="md",fullWidth:S=!1,showSelectedCount:N=!1,minHeight:j,maxHeight:v,className:W,style:$,multiple:l,value:o,defaultValue:y,onChange:a,...q}=c,n=T??h??`select-${Math.random().toString(36).slice(2)}`,i=!!f,_=typeof f=="string"?f:void 0,O={sm:e.sm,md:e.md,lg:e.lg}[g],A={...j&&{minHeight:j},...v&&{maxHeight:v}},B=r=>{if(l){const s=Array.from(r.target.selectedOptions).map(M=>M.value);a==null||a(s)}else a==null||a(r)},C=r=>r.map(s=>t.jsx("option",{value:s.value,disabled:s.disabled,children:s.label},s.value)),p=l&&Array.isArray(o)?o.length:0;return t.jsxs("div",{className:[W??"",e.wrapper,S?e.fullWidth:""].filter(Boolean).join(" "),style:$,children:[m&&t.jsx(z.Label,{htmlFor:n,size:g,intent:i?"error":d?"disabled":"default",required:b,disabled:d,children:m}),t.jsxs("div",{className:e.selectContainer,children:[t.jsxs("select",{id:n,name:h,value:o,defaultValue:y,required:b,disabled:d,multiple:l,onChange:B,className:[e.select,O,i?e.error:""].filter(Boolean).join(" "),style:A,"aria-invalid":i,"aria-describedby":_||u?`${n}-description`:void 0,...q,children:[!l&&x&&!o&&!y&&t.jsx("option",{value:"",disabled:!0,hidden:!0,children:x}),w.map((r,s)=>Q(r)?t.jsx("optgroup",{label:r.label,children:C(r.options)},s):C([r])[0])]}),!l&&t.jsx("span",{className:e.arrow,"aria-hidden":"true",children:"▼"})]}),(_||u)&&t.jsx("div",{id:`${n}-description`,className:[e.helperText,i?e.errorText:""].filter(Boolean).join(" "),children:_||u}),l&&N&&p>0&&t.jsxs("div",{className:e.selectedCount,children:[p," ",p===1?"item":"items"," selected"]})]})}exports.Select=R;