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.
- package/dist/AccordionItem.css.d.ts +13 -0
- package/dist/{CategoryFilters-CIWwf9VY.js → CategoryFilters-Dvx_tFs9.js} +1 -1
- package/dist/{CategoryFilters-CvmFCE3e.cjs → CategoryFilters-jaBdSByQ.cjs} +1 -1
- package/dist/CategoryFilters.css.d.ts +31 -0
- package/dist/FormField-BO1hKjUb.js +228 -0
- package/dist/FormField-wfYSN1Vd.cjs +1 -0
- package/dist/FormField.css +1 -0
- package/dist/FormField.css.d.ts +22 -0
- package/dist/HeroSubComponents.css.d.ts +30 -0
- package/dist/NavLink.css.d.ts +72 -0
- package/dist/core/components/Accordion/Accordion.test.cjs +1 -1
- package/dist/core/components/Accordion/Accordion.test.mjs +1 -1
- package/dist/core/components/Accordion/AccordionItem.test.cjs +1 -1
- package/dist/core/components/Accordion/AccordionItem.test.mjs +1 -1
- package/dist/core/components/Avatar/Avatar.test.cjs +1 -1
- package/dist/core/components/Avatar/Avatar.test.mjs +1 -1
- package/dist/core/components/Badge/Badge.test.cjs +1 -1
- package/dist/core/components/Badge/Badge.test.mjs +1 -1
- package/dist/core/components/Badge/index.cjs +1 -1
- package/dist/core/components/Badge/index.mjs +1 -1
- package/dist/core/components/Box/Box.test.cjs +1 -1
- package/dist/core/components/Box/Box.test.mjs +1 -1
- package/dist/core/components/Box/index.cjs +1 -1
- package/dist/core/components/Box/index.mjs +1 -1
- package/dist/core/components/Breadcrumbs/Breadcrumbs.test.cjs +1 -1
- package/dist/core/components/Breadcrumbs/Breadcrumbs.test.mjs +1 -1
- package/dist/core/components/Breadcrumbs/index.cjs +1 -1
- package/dist/core/components/Breadcrumbs/index.mjs +1 -1
- package/dist/core/components/Button/Button.test.cjs +1 -1
- package/dist/core/components/Button/Button.test.mjs +2 -2
- package/dist/core/components/Button/index.cjs +1 -1
- package/dist/core/components/Button/index.mjs +1 -1
- package/dist/core/components/ButtonGroup/ButtonGroup.test.cjs +1 -1
- package/dist/core/components/ButtonGroup/ButtonGroup.test.mjs +1 -1
- package/dist/core/components/Calendar/Calendar.test.cjs +1 -1
- package/dist/core/components/Calendar/Calendar.test.mjs +2 -2
- package/dist/core/components/Calendar/index.cjs +1 -1
- package/dist/core/components/Calendar/index.mjs +1 -1
- package/dist/core/components/Card/Card.test.cjs +1 -1
- package/dist/core/components/Card/Card.test.mjs +1 -1
- package/dist/core/components/Card/index.cjs +1 -1
- package/dist/core/components/Card/index.mjs +1 -1
- package/dist/core/components/Carousel/Carousel.test.cjs +1 -1
- package/dist/core/components/Carousel/Carousel.test.mjs +1 -1
- package/dist/core/components/Checkbox/Checkbox.test.cjs +1 -1
- package/dist/core/components/Checkbox/Checkbox.test.mjs +1 -1
- package/dist/core/components/Container/Container.test.cjs +1 -1
- package/dist/core/components/Container/Container.test.mjs +1 -1
- package/dist/core/components/Container/index.cjs +1 -1
- package/dist/core/components/Container/index.mjs +1 -1
- package/dist/core/components/DatePicker/DatePicker.test.cjs +1 -1
- package/dist/core/components/DatePicker/DatePicker.test.mjs +2 -2
- package/dist/core/components/DatePicker/index.cjs +1 -1
- package/dist/core/components/DatePicker/index.mjs +2 -2
- package/dist/core/components/Divider/Divider.test.cjs +1 -1
- package/dist/core/components/Divider/Divider.test.mjs +1 -1
- package/dist/core/components/Divider/index.cjs +1 -1
- package/dist/core/components/Divider/index.mjs +1 -1
- package/dist/core/components/Drawer/Drawer.test.cjs +1 -1
- package/dist/core/components/Drawer/Drawer.test.mjs +1 -1
- package/dist/core/components/Drawer/index.cjs +1 -1
- package/dist/core/components/Drawer/index.mjs +1 -1
- package/dist/core/components/Fieldset/Fieldset.test.cjs +1 -1
- package/dist/core/components/Fieldset/Fieldset.test.mjs +1 -1
- package/dist/core/components/Fieldset/index.cjs +1 -1
- package/dist/core/components/Fieldset/index.mjs +1 -1
- package/dist/core/components/FileUpload/FileUpload.test.cjs +1 -1
- package/dist/core/components/FileUpload/FileUpload.test.mjs +1 -1
- package/dist/core/components/FileUpload/index.cjs +1 -1
- package/dist/core/components/FileUpload/index.mjs +1 -1
- package/dist/core/components/FloatingActionButton/FloatingActionButton.test.cjs +1 -1
- package/dist/core/components/FloatingActionButton/FloatingActionButton.test.mjs +1 -1
- package/dist/core/components/FloatingActionButton/index.cjs +1 -1
- package/dist/core/components/FloatingActionButton/index.mjs +1 -1
- package/dist/core/components/Footer/Footer.test.cjs +1 -1
- package/dist/core/components/Footer/Footer.test.mjs +1 -1
- package/dist/core/components/Footer/index.cjs +1 -1
- package/dist/core/components/Footer/index.mjs +2 -2
- package/dist/core/components/Form/Form.test.cjs +1 -1
- package/dist/core/components/Form/Form.test.mjs +1 -1
- package/dist/core/components/Form/index.cjs +1 -1
- package/dist/core/components/Form/index.mjs +1 -1
- package/dist/core/components/Grid/Grid.test.cjs +1 -1
- package/dist/core/components/Grid/Grid.test.mjs +1 -1
- package/dist/core/components/Heading/Heading.test.cjs +1 -1
- package/dist/core/components/Heading/Heading.test.mjs +1 -1
- package/dist/core/components/Input/Input.test.cjs +1 -1
- package/dist/core/components/Input/Input.test.mjs +1 -1
- package/dist/core/components/Input/index.cjs +1 -1
- package/dist/core/components/Input/index.mjs +25 -31
- package/dist/core/components/Label/Label.test.cjs +1 -1
- package/dist/core/components/Label/Label.test.mjs +1 -1
- package/dist/core/components/Label/index.cjs +1 -1
- package/dist/core/components/Label/index.mjs +1 -1
- package/dist/core/components/List/List.test.cjs +1 -1
- package/dist/core/components/List/List.test.mjs +1 -1
- package/dist/core/components/List/index.cjs +1 -1
- package/dist/core/components/List/index.mjs +1 -1
- package/dist/core/components/Modal/Modal.test.cjs +1 -1
- package/dist/core/components/Modal/Modal.test.mjs +1 -1
- package/dist/core/components/Modal/index.cjs +1 -1
- package/dist/core/components/Modal/index.mjs +1 -1
- package/dist/core/components/NavBar/NavBar.test.cjs +1 -1
- package/dist/core/components/NavBar/NavBar.test.mjs +1 -1
- package/dist/core/components/NavBar/index.cjs +1 -1
- package/dist/core/components/NavBar/index.mjs +1 -1
- package/dist/core/components/Notification/Notification.test.cjs +1 -1
- package/dist/core/components/Notification/Notification.test.mjs +1 -1
- package/dist/core/components/Notification/index.cjs +1 -1
- package/dist/core/components/Notification/index.mjs +1 -1
- package/dist/core/components/NotificationContainer/NotificationContainer.test.cjs +1 -1
- package/dist/core/components/NotificationContainer/NotificationContainer.test.mjs +1 -1
- package/dist/core/components/NotificationContainer/index.cjs +1 -1
- package/dist/core/components/NotificationContainer/index.mjs +1 -1
- package/dist/core/components/ProgressBar/ProgressBar.test.cjs +1 -1
- package/dist/core/components/ProgressBar/ProgressBar.test.mjs +1 -1
- package/dist/core/components/ProgressBar/index.cjs +1 -1
- package/dist/core/components/ProgressBar/index.mjs +1 -1
- package/dist/core/components/Radio/Radio.test.cjs +1 -1
- package/dist/core/components/Radio/Radio.test.mjs +1 -1
- package/dist/core/components/Radio/index.cjs +1 -1
- package/dist/core/components/Radio/index.mjs +1 -1
- package/dist/core/components/Range/Range.test.cjs +1 -1
- package/dist/core/components/Range/Range.test.mjs +1 -1
- package/dist/core/components/Range/index.cjs +1 -1
- package/dist/core/components/Range/index.mjs +1 -1
- package/dist/core/components/Select/Select.test.cjs +1 -1
- package/dist/core/components/Select/Select.test.mjs +176 -106
- package/dist/core/components/Select/index.cjs +1 -1
- package/dist/core/components/Select/index.mjs +100 -80
- package/dist/core/components/Sidebar/Sidebar.test.cjs +1 -1
- package/dist/core/components/Sidebar/Sidebar.test.mjs +1 -1
- package/dist/core/components/Sidebar/index.cjs +1 -1
- package/dist/core/components/Sidebar/index.mjs +1 -1
- package/dist/core/components/Skeleton/Skeleton.test.cjs +1 -1
- package/dist/core/components/Skeleton/Skeleton.test.mjs +1 -1
- package/dist/core/components/Spacer/Spacer.test.cjs +1 -1
- package/dist/core/components/Spacer/Spacer.test.mjs +1 -1
- package/dist/core/components/Spinner/Spinner.test.cjs +1 -1
- package/dist/core/components/Spinner/Spinner.test.mjs +1 -1
- package/dist/core/components/Stack/Stack.test.cjs +1 -1
- package/dist/core/components/Stack/Stack.test.mjs +1 -1
- package/dist/core/components/Switch/Switch.test.cjs +1 -1
- package/dist/core/components/Switch/Switch.test.mjs +1 -1
- package/dist/core/components/Table/Table.test.cjs +1 -1
- package/dist/core/components/Table/Table.test.mjs +1 -1
- package/dist/core/components/Tabs/Tabs.test.cjs +1 -1
- package/dist/core/components/Tabs/Tabs.test.mjs +1 -1
- package/dist/core/components/Text/Text.test.cjs +1 -1
- package/dist/core/components/Text/Text.test.mjs +1 -1
- package/dist/core/components/Textarea/Textarea.test.cjs +1 -1
- package/dist/core/components/Textarea/Textarea.test.mjs +1 -1
- package/dist/core/components/Textarea/index.cjs +1 -1
- package/dist/core/components/Textarea/index.mjs +1 -1
- package/dist/core/components/Tooltip/Tooltip.test.cjs +1 -1
- package/dist/core/components/Tooltip/Tooltip.test.mjs +1 -1
- package/dist/core/components/Tooltip/index.cjs +1 -1
- package/dist/core/components/Tooltip/index.mjs +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +30 -43
- package/dist/core.mjs +42 -44
- package/dist/{index-BQV8LRFm.js → index-Ck6GdALV.js} +0 -1
- package/dist/{index-DITXfOUM.cjs → index-CvpbNrYS.cjs} +16 -16
- package/dist/{index-2ZLA4POI.js → index-DTDGFsW8.js} +1 -1
- package/dist/{index-D0ylyll7.cjs → index-hPJqlEOh.cjs} +1 -1
- package/dist/{index-CnlJ2RgH.js → index-paelIj6o.js} +1 -1
- package/dist/{index-odc0vuSq.cjs → index-rFLvzU5A.cjs} +1 -1
- package/dist/index.css.d.ts +1 -0
- package/dist/index10.css.d.ts +7 -0
- package/dist/index11.css.d.ts +26 -0
- package/dist/index12.css.d.ts +24 -0
- package/dist/index13.css.d.ts +33 -0
- package/dist/index14.css.d.ts +10 -0
- package/dist/index15.css.d.ts +18 -0
- package/dist/index16.css.d.ts +38 -0
- package/dist/index17.css.d.ts +16 -0
- package/dist/index18.css.d.ts +14 -0
- package/dist/index19.css.d.ts +17 -0
- package/dist/index2.css.d.ts +9 -0
- package/dist/index20.css.d.ts +13 -0
- package/dist/index21.css.d.ts +25 -0
- package/dist/index22.css.d.ts +5 -0
- package/dist/index23.css.d.ts +19 -0
- package/dist/index24.css.d.ts +21 -0
- package/dist/index25.css +1 -1
- package/dist/index25.css.d.ts +16 -0
- package/dist/index26.css.d.ts +10 -0
- package/dist/index27.css.d.ts +18 -0
- package/dist/index28.css.d.ts +16 -0
- package/dist/index29.css.d.ts +10 -0
- package/dist/index3.css.d.ts +12 -0
- package/dist/index30.css.d.ts +19 -0
- package/dist/index31.css.d.ts +15 -0
- package/dist/index32.css.d.ts +22 -0
- package/dist/index33.css.d.ts +15 -0
- package/dist/index34.css +1 -1
- package/dist/index34.css.d.ts +14 -0
- package/dist/index35.css +1 -1
- package/dist/index35.css.d.ts +23 -0
- package/dist/index36.css +1 -1
- package/dist/index36.css.d.ts +14 -0
- package/dist/index37.css +1 -1
- package/dist/index37.css.d.ts +18 -0
- package/dist/index38.css +1 -1
- package/dist/index38.css.d.ts +21 -0
- package/dist/index39.css +1 -1
- package/dist/index39.css.d.ts +20 -0
- package/dist/index4.css.d.ts +10 -0
- package/dist/index40.css +1 -1
- package/dist/index40.css.d.ts +17 -0
- package/dist/index41.css +1 -1
- package/dist/index41.css.d.ts +14 -0
- package/dist/index42.css +1 -1
- package/dist/index42.css.d.ts +22 -0
- package/dist/index43.css +1 -1
- package/dist/index43.css.d.ts +35 -0
- package/dist/index44.css +1 -1
- package/dist/index44.css.d.ts +13 -0
- package/dist/index45.css +1 -1
- package/dist/index45.css.d.ts +23 -0
- package/dist/index46.css +1 -1
- package/dist/index46.css.d.ts +12 -0
- package/dist/index47.css +1 -1
- package/dist/index47.css.d.ts +19 -0
- package/dist/index48.css +1 -1
- package/dist/index48.css.d.ts +20 -0
- package/dist/index49.css +1 -1
- package/dist/index49.css.d.ts +20 -0
- package/dist/index5.css.d.ts +22 -0
- package/dist/index50.css +1 -1
- package/dist/index50.css.d.ts +27 -0
- package/dist/index51.css +1 -1
- package/dist/index51.css.d.ts +17 -0
- package/dist/index52.css +1 -1
- package/dist/index52.css.d.ts +11 -0
- package/dist/index53.css.d.ts +12 -0
- package/dist/index54.css.d.ts +14 -0
- package/dist/index55.css.d.ts +20 -0
- package/dist/index56.css.d.ts +25 -0
- package/dist/index57.css.d.ts +13 -0
- package/dist/index58.css +1 -1
- package/dist/index58.css.d.ts +12 -0
- package/dist/index59.css +1 -1
- package/dist/index59.css.d.ts +20 -0
- package/dist/index6.css.d.ts +19 -0
- package/dist/index60.css +1 -1
- package/dist/index60.css.d.ts +20 -0
- package/dist/index61.css +1 -1
- package/dist/index61.css.d.ts +18 -0
- package/dist/index62.css +1 -1
- package/dist/index62.css.d.ts +22 -0
- package/dist/index63.css +1 -1
- package/dist/index63.css.d.ts +28 -0
- package/dist/index64.css +1 -1
- package/dist/index64.css.d.ts +26 -0
- package/dist/index65.css +1 -1
- package/dist/index65.css.d.ts +19 -0
- package/dist/index7.css.d.ts +40 -0
- package/dist/index8.css.d.ts +32 -0
- package/dist/index9.css.d.ts +9 -0
- package/dist/main.cjs +1 -1
- package/dist/main.d.ts +48 -43
- package/dist/main.mjs +94 -94
- package/dist/next/blocks/DocumentListBlock/CategoryFilters.cjs +1 -1
- package/dist/next/blocks/DocumentListBlock/CategoryFilters.mjs +2 -2
- package/dist/next/blocks/DocumentListBlock/index.cjs +1 -1
- package/dist/next/blocks/DocumentListBlock/index.mjs +2 -2
- package/dist/next/blocks/FormBlock/FormField.cjs +1 -0
- package/dist/next/blocks/FormBlock/FormField.mjs +13 -0
- package/dist/next/blocks/FormBlock/index.cjs +1 -0
- package/dist/next/blocks/FormBlock/index.mjs +192 -0
- package/dist/next/blocks/FormBlock/validate.cjs +1 -0
- package/dist/next/blocks/FormBlock/validate.mjs +76 -0
- package/dist/next/blocks/TabsBlock/index.cjs +1 -1
- package/dist/next/blocks/TabsBlock/index.mjs +1 -1
- package/dist/next/blocks/WasHelpfulBlock/index.cjs +1 -1
- package/dist/next/blocks/WasHelpfulBlock/index.mjs +1 -1
- package/dist/next/cards/BlogArticleCard/index.cjs +1 -1
- package/dist/next/cards/BlogArticleCard/index.mjs +1 -1
- package/dist/next/cards/SpotlightCard/index.cjs +1 -1
- package/dist/next/cards/SpotlightCard/index.mjs +1 -1
- package/dist/next/ui/CallToAction/index.cjs +1 -1
- package/dist/next/ui/CallToAction/index.mjs +1 -1
- package/dist/next.cjs +1 -1
- package/dist/next.d.ts +18 -0
- package/dist/next.mjs +45 -43
- package/dist/styles.css.d.ts +1 -0
- package/dist/tokens.css.d.ts +1 -0
- package/package.json +1 -1
- package/dist/core/components/MultiSelect/MultiSelect.test.cjs +0 -6
- package/dist/core/components/MultiSelect/MultiSelect.test.mjs +0 -3518
- package/dist/core/components/MultiSelect/__mocks__/styles.module.css.cjs +0 -1
- package/dist/core/components/MultiSelect/__mocks__/styles.module.css.mjs +0 -14
- package/dist/core/components/MultiSelect/index.cjs +0 -1
- package/dist/core/components/MultiSelect/index.mjs +0 -94
- package/dist/index66.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const l=require("react/jsx-runtime"),e=require("../../../index-
|
|
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
|
|
2
|
-
import { v as p, d as c, i as
|
|
3
|
-
import { Select as
|
|
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:
|
|
6
|
-
|
|
7
|
-
e && /* @__PURE__ */
|
|
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
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
/* @__PURE__ */
|
|
35
|
-
), t(i.getByLabelText("Choose")).toBeInTheDocument(),
|
|
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
|
-
}),
|
|
39
|
-
|
|
40
|
-
}),
|
|
41
|
-
const { container: e } =
|
|
42
|
-
t(
|
|
43
|
-
}),
|
|
44
|
-
const { container: e } =
|
|
45
|
-
/* @__PURE__ */
|
|
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
|
-
}),
|
|
49
|
-
|
|
50
|
-
}),
|
|
51
|
-
const { container: e } =
|
|
52
|
-
/* @__PURE__ */
|
|
53
|
-
),
|
|
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(
|
|
56
|
+
t(r).toBeInTheDocument(), t(r).toHaveTextContent("Pick one");
|
|
57
57
|
});
|
|
58
58
|
}), c("Option Groups", () => {
|
|
59
|
-
|
|
60
|
-
const { container: e } =
|
|
61
|
-
/* @__PURE__ */
|
|
62
|
-
),
|
|
63
|
-
t(
|
|
64
|
-
}),
|
|
65
|
-
|
|
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
|
-
|
|
73
|
-
const { container: e } =
|
|
74
|
-
t(
|
|
75
|
-
}),
|
|
76
|
-
const { container: e } =
|
|
77
|
-
t(
|
|
78
|
-
}),
|
|
79
|
-
const { container: e } =
|
|
80
|
-
t(
|
|
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
|
-
|
|
84
|
-
|
|
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
|
-
}),
|
|
88
|
-
|
|
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
|
-
|
|
94
|
-
const { container: e } =
|
|
95
|
-
t(
|
|
96
|
-
}),
|
|
97
|
-
|
|
98
|
-
}),
|
|
99
|
-
|
|
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
|
-
}),
|
|
103
|
-
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
}),
|
|
111
|
-
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
/* @__PURE__ */
|
|
122
|
-
|
|
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:
|
|
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
|
-
}),
|
|
135
|
-
|
|
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
|
-
|
|
141
|
+
s("calls onChange handler", () => {
|
|
142
142
|
const e = p.fn();
|
|
143
|
-
|
|
144
|
-
/* @__PURE__ */
|
|
145
|
-
|
|
143
|
+
n(
|
|
144
|
+
/* @__PURE__ */ o(
|
|
145
|
+
a,
|
|
146
146
|
{
|
|
147
147
|
id: "select2",
|
|
148
148
|
name: "test",
|
|
149
149
|
label: "Pick",
|
|
150
|
-
options:
|
|
150
|
+
options: l,
|
|
151
151
|
onChange: e
|
|
152
152
|
}
|
|
153
153
|
)
|
|
154
154
|
);
|
|
155
|
-
const
|
|
156
|
-
|
|
155
|
+
const r = i.getByRole("combobox");
|
|
156
|
+
d.change(r, { target: { value: "b" } }), t(e).toHaveBeenCalled();
|
|
157
157
|
});
|
|
158
158
|
}), c("Multiple Selection", () => {
|
|
159
|
-
|
|
160
|
-
|
|
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
|
-
}),
|
|
164
|
-
const { container: e } =
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
173
|
-
const { container: e } =
|
|
174
|
-
t(
|
|
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
|
-
|
|
178
|
-
|
|
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
|
|
253
|
+
const r = i.getByRole("option", {
|
|
184
254
|
name: "Option B"
|
|
185
255
|
});
|
|
186
|
-
t(
|
|
256
|
+
t(r.disabled).toBe(!0);
|
|
187
257
|
});
|
|
188
258
|
}), c("Accessibility", () => {
|
|
189
|
-
|
|
190
|
-
|
|
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
|
-
}),
|
|
194
|
-
|
|
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
|
-
|
|
200
|
-
|
|
201
|
-
/* @__PURE__ */
|
|
202
|
-
|
|
269
|
+
s("forwards HTML attributes", () => {
|
|
270
|
+
n(
|
|
271
|
+
/* @__PURE__ */ o(
|
|
272
|
+
a,
|
|
203
273
|
{
|
|
204
|
-
options:
|
|
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
|
-
}),
|
|
213
|
-
|
|
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
|
-
|
|
219
|
-
const { container: e } =
|
|
220
|
-
t(
|
|
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
|
-
|
|
224
|
-
const { container: e } =
|
|
225
|
-
/* @__PURE__ */
|
|
226
|
-
),
|
|
227
|
-
t(
|
|
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
|
|
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;
|