diff --git a/.changeset/gentle-islands-search.md b/.changeset/gentle-islands-search.md
new file mode 100644
index 000000000..c0ef91211
--- /dev/null
+++ b/.changeset/gentle-islands-search.md
@@ -0,0 +1,5 @@
+---
+"@hopper-ui/components": patch
+---
+
+There is no longer a generic Section component. We now have ListBoxSection, SelectSection and ComboBoxSection.
diff --git a/apps/docs/content/components/collections/Listbox.mdx b/apps/docs/content/components/collections/Listbox.mdx
index 4b9560939..f57446e5c 100644
--- a/apps/docs/content/components/collections/Listbox.mdx
+++ b/apps/docs/content/components/collections/Listbox.mdx
@@ -35,7 +35,7 @@ links:
A `ListBox` uses the following components.
-
+
## Usage
@@ -170,6 +170,10 @@ List box items can vary in sizes.
+### ListBoxSection
+
+
+
### ListBoxItem
diff --git a/apps/docs/content/components/collections/Section.mdx b/apps/docs/content/components/collections/Section.mdx
deleted file mode 100644
index f4ac59823..000000000
--- a/apps/docs/content/components/collections/Section.mdx
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: Section
-description: A Section serves as a versatile container component, encapsulating an HTML section element.
-category: "collections"
-links:
- source: https://github.com/gsoft-inc/wl-hopper/blob/main/packages/components/src/Section/src/Section.tsx
----
-
-Section is a subcomponent of [Listbox](./Listbox), it's used within [Combobox](./ComboBox) and [Select](./Select).
-
-
-
-
- ## Guidelines
-
- TODO: If we have some guidelines about this component's usage
-
- ### Accessibility ?
-
- TODO: If we have some guidelines about this component and accessibility
-
-
-## Anatomy
-
-### Composed Components
-
-A `Section` is used in the following components.
-
-
-
-
-
- TODO: We have anatomy screenshots from the Figma, we could most likely use them here
-
- ### Concepts
-
- TODO: links to related concepts
-
-
-
- ## Advanced customization
-
- ### Contexts
- TODO: Example of context + content about the context
-
- ### Custom Children
-
- TODO: Example of passing custom childrens to the components to fake a slot
-
- ### Custom Component
-
- TODO: Example of creating a custom version of this component
-
-
-## Props
-
-
diff --git a/apps/docs/content/components/pickers/ComboBox.mdx b/apps/docs/content/components/pickers/ComboBox.mdx
index 218de98c8..6c39f259b 100644
--- a/apps/docs/content/components/pickers/ComboBox.mdx
+++ b/apps/docs/content/components/pickers/ComboBox.mdx
@@ -42,7 +42,7 @@ The Section component represents a `section` within a Hopper container.
A `ComboBox` uses the following components.
-
+
## Usage
@@ -197,5 +197,15 @@ A combo box item can have a description.
## Props
+### ComboBox
+
+### ComboBoxSection
+
+
+
+### ComboBoxItem
+
+
+
diff --git a/apps/docs/content/components/pickers/Select.mdx b/apps/docs/content/components/pickers/Select.mdx
index df304820c..b36b72a3f 100644
--- a/apps/docs/content/components/pickers/Select.mdx
+++ b/apps/docs/content/components/pickers/Select.mdx
@@ -41,7 +41,7 @@ The Section component represents a `section` within a Hopper container.
A `Select` uses the following components.
-
+
## Usage
@@ -198,8 +198,18 @@ A select item can have a description.
## Props
+### Select
+
+### SelectSection
+
+
+
+### SelectItem
+
+
+
## Migration Notes
diff --git a/apps/docs/examples/Preview.ts b/apps/docs/examples/Preview.ts
index 754b7a66a..75e6cf828 100644
--- a/apps/docs/examples/Preview.ts
+++ b/apps/docs/examples/Preview.ts
@@ -152,9 +152,6 @@ export const Previews: Record = {
"ListBox/docs/multipleSizes": {
component: lazy(() => import("@/../../packages/components/src/ListBox/docs/multipleSizes.tsx"))
},
- "Section/docs/preview": {
- component: lazy(() => import("@/../../packages/components/src/Section/docs/preview.tsx"))
- },
"tag/docs/preview": {
component: lazy(() => import("@/../../packages/components/src/tag/docs/preview.tsx"))
},
diff --git a/packages/components/src/ComboBox/docs/ComboBoxOption/dynamicLists.tsx b/packages/components/src/ComboBox/docs/ComboBoxOption/dynamicLists.tsx
index 5115c8819..b7984e91f 100644
--- a/packages/components/src/ComboBox/docs/ComboBoxOption/dynamicLists.tsx
+++ b/packages/components/src/ComboBox/docs/ComboBoxOption/dynamicLists.tsx
@@ -1,4 +1,4 @@
-import { Collection, ComboBox, ComboBoxItem, Header, Inline, Section } from "@hopper-ui/components";
+import { Collection, ComboBox, ComboBoxItem, ComboBoxSection, Header, Inline } from "@hopper-ui/components";
interface ListItemProps {
id: number | string;
@@ -57,12 +57,12 @@ export default function Example() {
const { role: sectionName, children } = section;
return (
-
+
{item => {item.role}}
-
+
);
}}
diff --git a/packages/components/src/ComboBox/docs/ComboBoxOption/section.tsx b/packages/components/src/ComboBox/docs/ComboBoxOption/section.tsx
index ffefb1fe5..685ae932d 100644
--- a/packages/components/src/ComboBox/docs/ComboBoxOption/section.tsx
+++ b/packages/components/src/ComboBox/docs/ComboBoxOption/section.tsx
@@ -1,21 +1,21 @@
-import { ComboBox, ComboBoxItem, Header, Section } from "@hopper-ui/components";
+import { ComboBox, ComboBoxItem, ComboBoxSection, Header } from "@hopper-ui/components";
export default function Example() {
return (
Developer
Manager
-
+
Project Coordinator
QA Specialist
-
-
+
+
Designer
Copywriter
UX Researcher
-
+
);
}
diff --git a/packages/components/src/ComboBox/docs/allowCustomValue.tsx b/packages/components/src/ComboBox/docs/allowCustomValue.tsx
index 13fc9e9cf..78562b830 100644
--- a/packages/components/src/ComboBox/docs/allowCustomValue.tsx
+++ b/packages/components/src/ComboBox/docs/allowCustomValue.tsx
@@ -1,13 +1,13 @@
-import { ComboBox, ComboBoxItem, Header, Section } from "@hopper-ui/components";
+import { ComboBox, ComboBoxItem, ComboBoxSection, Header } from "@hopper-ui/components";
export default function Example() {
return (
-
+
Designer
Content creator
-
+
Manager
);
diff --git a/packages/components/src/ComboBox/docs/controlled.tsx b/packages/components/src/ComboBox/docs/controlled.tsx
index 81bcffdda..032be4c3a 100644
--- a/packages/components/src/ComboBox/docs/controlled.tsx
+++ b/packages/components/src/ComboBox/docs/controlled.tsx
@@ -1,4 +1,4 @@
-import { ComboBox, ComboBoxItem, Header, type Key, Section } from "@hopper-ui/components";
+import { ComboBox, ComboBoxItem, ComboBoxSection, Header, type Key } from "@hopper-ui/components";
import { useState } from "react";
export default function Example() {
@@ -14,11 +14,11 @@ export default function Example() {
return (
-
+
Project Coordinator
QA Specialist
-
+
Manager
);
diff --git a/packages/components/src/ComboBox/src/ComboBox.tsx b/packages/components/src/ComboBox/src/ComboBox.tsx
index 7de157898..843a20892 100644
--- a/packages/components/src/ComboBox/src/ComboBox.tsx
+++ b/packages/components/src/ComboBox/src/ComboBox.tsx
@@ -24,6 +24,7 @@ import { useFormProps } from "../../Form/index.ts";
import { HelperMessage } from "../../HelperMessage/index.ts";
import { Footer } from "../../layout/index.ts";
import { ListBox, ListBoxItem, type ListBoxProps, type SelectionIndicator } from "../../ListBox/index.ts";
+import { ListBoxSection } from "../../ListBoxSection/index.ts";
import { Popover, type PopoverProps } from "../../overlays/index.ts";
import { ToggleArrow } from "../../ToggleArrow/index.ts";
import { Label, TextContext } from "../../typography/index.ts";
@@ -383,4 +384,4 @@ const _ComboBox = forwardRef(ComboBox) as (
) => ReturnType;
(_ComboBox as NamedExoticComponent).displayName = "ComboBox";
-export { _ComboBox as ComboBox, ListBoxItem as ComboBoxItem };
+export { _ComboBox as ComboBox, ListBoxItem as ComboBoxItem, ListBoxSection as ComboBoxSection };
diff --git a/packages/components/src/ComboBox/tests/chromatic/ComboBox.stories.tsx b/packages/components/src/ComboBox/tests/chromatic/ComboBox.stories.tsx
index a31da6e83..bdf8ae6a4 100644
--- a/packages/components/src/ComboBox/tests/chromatic/ComboBox.stories.tsx
+++ b/packages/components/src/ComboBox/tests/chromatic/ComboBox.stories.tsx
@@ -1,4 +1,4 @@
-import { Button, ComboBox, ComboBoxItem, type ComboBoxProps, Header, Inline, Section, Stack, Text } from "@hopper-ui/components";
+import { Button, ComboBox, ComboBoxItem, type ComboBoxProps, ComboBoxSection, Header, Inline, Stack, Text } from "@hopper-ui/components";
import { AddIcon, SparklesIcon } from "@hopper-ui/icons";
import { Div } from "@hopper-ui/styled-system";
import type { Meta, StoryFn, StoryObj } from "@storybook/react";
@@ -62,19 +62,19 @@ export const OnlyItems = {
export const Sections = {
render: args => (
-
+
Zoomy
Voodoo
Dusty
Rengar
-
-
+
+
Teemo
Scooter
Prince
-
+
),
play: playFn,
@@ -112,19 +112,19 @@ export const FieldHelperMessage = {
export const Footer = {
render: args => (
-
+
Zoomy
Voodoo
Dusty
Rengar
-
-
+
+
Teemo
Scooter
Prince
-
+
),
play: playFn,
@@ -138,19 +138,19 @@ export const Small = {
play: playFn,
render: args => (
-
+
Zoomy
Voodoo
Dusty
Rengar
-
-
+
+
Teemo
Scooter
Prince
-
+
),
args: {
@@ -165,19 +165,19 @@ export const Medium = {
play: playFn,
render: args => (
-
+
Zoomy
Voodoo
Dusty
Rengar
-
-
+
+
Teemo
Scooter
Prince
-
+
),
args: {
diff --git a/packages/components/src/ListBox/docs/ListBox.stories.tsx b/packages/components/src/ListBox/docs/ListBox.stories.tsx
index 550c11240..50167dd86 100644
--- a/packages/components/src/ListBox/docs/ListBox.stories.tsx
+++ b/packages/components/src/ListBox/docs/ListBox.stories.tsx
@@ -8,7 +8,7 @@ import { Badge } from "../../Badge/index.ts";
import { Header } from "../../Header/index.ts";
import { IconList } from "../../IconList/index.ts";
import { Inline } from "../../layout/index.ts";
-import { Section } from "../../Section/index.ts";
+import { ListBoxSection } from "../../ListBoxSection/index.ts";
import { Text } from "../../typography/Text/index.ts";
import { ListBox, ListBoxItem } from "../src/index.ts";
@@ -159,13 +159,13 @@ export const MultipleSelection = {
Item 3
Item 4
Item 5
-
+
Item 6
Item 7
Item 8
Item 9
Item 10
-
+
);
},
@@ -357,22 +357,22 @@ export const Sections = {
Item 3
Item 4
Item 5
-
+
Item 6
Item 7
Item 8
Item 9
Item 10
-
-
+
+
Item 11
Item 12
Item 13
Item 14
Item 15
-
+
Item 16
);
@@ -432,12 +432,12 @@ export const DynamicLists = {
const listSection = section as ListSectionProps;
return (
-
+
{item => {item.name}}
-
+
);
}}
diff --git a/packages/components/src/ListBox/docs/dynamicLists.tsx b/packages/components/src/ListBox/docs/dynamicLists.tsx
index 04a517b82..d07191e92 100644
--- a/packages/components/src/ListBox/docs/dynamicLists.tsx
+++ b/packages/components/src/ListBox/docs/dynamicLists.tsx
@@ -1,4 +1,4 @@
-import { Header, Inline, ListBox, ListBoxItem, Section, Collection } from "@hopper-ui/components";
+import { Collection, Header, Inline, ListBox, ListBoxItem, ListBoxSection } from "@hopper-ui/components";
interface ListItemProps {
id: number | string;
@@ -59,12 +59,12 @@ export default function Example() {
const listSection = section as ListSectionProps;
return (
-
+
{item => {item.name}}
-
+
);
}}
diff --git a/packages/components/src/ListBox/docs/multipleSelected.tsx b/packages/components/src/ListBox/docs/multipleSelected.tsx
index 9c0db7c7f..e77012570 100644
--- a/packages/components/src/ListBox/docs/multipleSelected.tsx
+++ b/packages/components/src/ListBox/docs/multipleSelected.tsx
@@ -1,4 +1,4 @@
-import { ListBox, ListBoxItem, Section, Header } from "@hopper-ui/components";
+import { Header, ListBox, ListBoxItem, ListBoxSection } from "@hopper-ui/components";
import { useState } from "react";
import type { Selection } from "react-aria-components";
@@ -12,18 +12,18 @@ export default function Example() {
selectedKeys={selectedKeys}
onSelectionChange={setSelectedKeys}
>
-
+
Overdue
In progress
Submitted
-
-
+
+
Overdue
In progress
Submitted
-
+
);
}
diff --git a/packages/components/src/ListBox/docs/section.tsx b/packages/components/src/ListBox/docs/section.tsx
index feaca1a00..84f5dee2b 100644
--- a/packages/components/src/ListBox/docs/section.tsx
+++ b/packages/components/src/ListBox/docs/section.tsx
@@ -1,21 +1,21 @@
-import { Header, ListBox, ListBoxItem, Section } from "@hopper-ui/components";
+import { Header, ListBox, ListBoxItem, ListBoxSection } from "@hopper-ui/components";
export default function Example() {
return (
Developer
Manager
-
+
Designer
Copywriter
UX Researcher
-
-
+
+
Project Coordinator
QA Specialist
-
+
Product Owner
);
diff --git a/packages/components/src/ListBox/src/ListBox.tsx b/packages/components/src/ListBox/src/ListBox.tsx
index dad4f3a3c..bd3fd81f8 100644
--- a/packages/components/src/ListBox/src/ListBox.tsx
+++ b/packages/components/src/ListBox/src/ListBox.tsx
@@ -6,7 +6,7 @@ import { Collection, composeRenderProps, type ListBoxRenderProps, ListBox as RAC
import { HeaderContext } from "../../Header/index.ts";
import { useLocalizedString } from "../../i18n/index.ts";
-import { SectionContext } from "../../Section/index.ts";
+import { ListBoxSectionContext } from "../../ListBoxSection/index.ts";
import { Text, type TextSize } from "../../typography/Text/index.ts";
import { composeClassnameRenderProps, cssModule, isFunction, type SizeAdapter, SlotProvider } from "../../utils/index.ts";
@@ -147,7 +147,7 @@ function ListBox(props: ListBoxProps, ref: ForwardedRef(
(_ListBox as NamedExoticComponent).displayName = "ListBox";
export { _ListBox as ListBox };
+
diff --git a/packages/components/src/ListBox/tests/chromatic/ListBox.stories.tsx b/packages/components/src/ListBox/tests/chromatic/ListBox.stories.tsx
index 811779915..d0d49ab22 100644
--- a/packages/components/src/ListBox/tests/chromatic/ListBox.stories.tsx
+++ b/packages/components/src/ListBox/tests/chromatic/ListBox.stories.tsx
@@ -8,7 +8,7 @@ import { Badge } from "../../../Badge/index.ts";
import { Header } from "../../../Header/index.ts";
import { IconList } from "../../../IconList/index.ts";
import { Inline, Stack } from "../../../layout/index.ts";
-import { Section } from "../../../Section/index.ts";
+import { ListBoxSection } from "../../../ListBoxSection/index.ts";
import { Text } from "../../../typography/Text/index.ts";
import { ListBox, ListBoxItem, type ListBoxProps } from "../../index.ts";
@@ -81,31 +81,31 @@ export const Default = {
Sections
-
-
+
+
Jupiter
Mercury
Neptune
Uranus
-
+
Mixed Section and Items
Earth
Mars
Saturn
-
+
Jupiter
Mercury
Neptune
-
+
Uranus
Items with Start Icon
diff --git a/packages/components/src/Section/index.ts b/packages/components/src/ListBoxSection/index.ts
similarity index 100%
rename from packages/components/src/Section/index.ts
rename to packages/components/src/ListBoxSection/index.ts
diff --git a/packages/components/src/Section/src/Section.tsx b/packages/components/src/ListBoxSection/src/ListBoxSection.tsx
similarity index 52%
rename from packages/components/src/Section/src/Section.tsx
rename to packages/components/src/ListBoxSection/src/ListBoxSection.tsx
index a3f55a1cd..3f2d7ba07 100644
--- a/packages/components/src/Section/src/Section.tsx
+++ b/packages/components/src/ListBoxSection/src/ListBoxSection.tsx
@@ -1,16 +1,16 @@
import { useStyledSystem, type StyledComponentProps } from "@hopper-ui/styled-system";
import clsx from "clsx";
import { forwardRef, type CSSProperties, type ForwardedRef, type NamedExoticComponent } from "react";
-import { ListBoxSection as RACSection, useContextProps, type SectionProps as RACSectionProps } from "react-aria-components";
+import { ListBoxSection as RACListBoxSection, useContextProps, type SectionProps as RACSectionProps } from "react-aria-components";
-import { SectionContext } from "./SectionContext.ts";
+import { ListBoxSectionContext } from "./ListBoxSectionContext.ts";
-export const GlobalSectionCssSelector = "hop-Section";
+export const GlobalSectionCssSelector = "hop-ListBoxSection";
-export interface SectionProps extends StyledComponentProps> {}
+export interface ListBoxSectionProps extends StyledComponentProps> {}
-function Section(props: SectionProps, ref: ForwardedRef) {
- [props, ref] = useContextProps(props, ref, SectionContext);
+function ListBoxSection(props: ListBoxSectionProps, ref: ForwardedRef) {
+ [props, ref] = useContextProps(props, ref, ListBoxSectionContext);
const { stylingProps, ...ownProps } = useStyledSystem(props);
const {
className,
@@ -31,14 +31,14 @@ function Section(props: SectionProps, ref: ForwardedRef
{children}
-
+
);
}
@@ -47,9 +47,9 @@ function Section(props: SectionProps, ref: ForwardedRef(
- props: SectionProps & { ref?: ForwardedRef }
-) => ReturnType;
-(_Section as NamedExoticComponent).displayName = "Section";
+const _ListBoxSection = forwardRef(ListBoxSection) as (
+ props: ListBoxSectionProps & { ref?: ForwardedRef }
+) => ReturnType;
+(_ListBoxSection as NamedExoticComponent).displayName = "ListBoxSection";
-export { _Section as Section };
+export { _ListBoxSection as ListBoxSection };
diff --git a/packages/components/src/ListBoxSection/src/ListBoxSectionContext.ts b/packages/components/src/ListBoxSection/src/ListBoxSectionContext.ts
new file mode 100644
index 000000000..4694c8038
--- /dev/null
+++ b/packages/components/src/ListBoxSection/src/ListBoxSectionContext.ts
@@ -0,0 +1,10 @@
+import { createContext } from "react";
+import type { ContextValue } from "react-aria-components";
+
+import type { ListBoxSectionProps } from "./ListBoxSection.tsx";
+
+// any is what's used in RAC
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export const ListBoxSectionContext = createContext, HTMLElement>>({});
+
+ListBoxSectionContext.displayName = "ListBoxSectionContext";
diff --git a/packages/components/src/ListBoxSection/src/index.ts b/packages/components/src/ListBoxSection/src/index.ts
new file mode 100644
index 000000000..a40cedf44
--- /dev/null
+++ b/packages/components/src/ListBoxSection/src/index.ts
@@ -0,0 +1,3 @@
+export * from "./ListBoxSection.tsx";
+export * from "./ListBoxSectionContext.ts";
+
diff --git a/packages/components/src/Section/tests/jest/Section.ssr.test.tsx b/packages/components/src/ListBoxSection/tests/jest/ListBoxSection.ssr.test.tsx
similarity index 71%
rename from packages/components/src/Section/tests/jest/Section.ssr.test.tsx
rename to packages/components/src/ListBoxSection/tests/jest/ListBoxSection.ssr.test.tsx
index f1ba31edd..2bab769fd 100644
--- a/packages/components/src/Section/tests/jest/Section.ssr.test.tsx
+++ b/packages/components/src/ListBoxSection/tests/jest/ListBoxSection.ssr.test.tsx
@@ -3,13 +3,13 @@
*/
import { renderToString } from "react-dom/server";
-import { Section } from "../../src/Section.tsx";
+import { ListBoxSection } from "../../src/ListBoxSection.tsx";
describe("Section", () => {
it("should render on the server", () => {
const renderOnServer = () =>
renderToString(
-
+ Text
);
expect(renderOnServer).not.toThrow();
diff --git a/packages/components/src/Section/tests/jest/Section.test.tsx b/packages/components/src/ListBoxSection/tests/jest/ListBoxSection.test.tsx
similarity index 55%
rename from packages/components/src/Section/tests/jest/Section.test.tsx
rename to packages/components/src/ListBoxSection/tests/jest/ListBoxSection.test.tsx
index 20aa220ab..ba9703503 100644
--- a/packages/components/src/Section/tests/jest/Section.test.tsx
+++ b/packages/components/src/ListBoxSection/tests/jest/ListBoxSection.test.tsx
@@ -2,33 +2,33 @@ import { render, screen } from "@hopper-ui/test-utils";
import { createRef } from "react";
import { ListBox } from "react-aria-components";
-import { Section } from "../../src/Section.tsx";
+import { ListBoxSection } from "../../src/ListBoxSection.tsx";
-describe("Section", () => {
+describe("ListBoxSection", () => {
it("should render with default class", () => {
- render();
+ render(Test);
const element = screen.getByRole("group");
- expect(element).toHaveClass("hop-Section");
+ expect(element).toHaveClass("hop-ListBoxSection");
});
it("should support custom class", () => {
- render();
+ render(Test);
const element = screen.getByRole("group");
- expect(element).toHaveClass("hop-Section");
+ expect(element).toHaveClass("hop-ListBoxSection");
expect(element).toHaveClass("test");
});
it("should support custom style", () => {
- render();
+ render(Test);
const element = screen.getByRole("group");
expect(element).toHaveStyle({ marginTop: "var(--hop-space-stack-sm)", marginBottom: "13px" });
});
it("should support DOM props", () => {
- render();
+ render(Test);
const element = screen.getByRole("group");
expect(element).toHaveAttribute("data-foo", "bar");
@@ -36,7 +36,7 @@ describe("Section", () => {
it("should support refs", () => {
const ref = createRef();
- render();
+ render(Test);
expect(ref.current).not.toBeNull();
expect(ref.current instanceof HTMLElement).toBeTruthy();
diff --git a/packages/components/src/Section/docs/preview.tsx b/packages/components/src/Section/docs/preview.tsx
deleted file mode 100644
index fd7aae93f..000000000
--- a/packages/components/src/Section/docs/preview.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Header, ListBox, ListBoxItem, Section } from "@hopper-ui/components";
-
-export default function Example() {
- return (
-
-
-
- Designer
- Copywriter
- UX Researcher
-
-
- );
-}
diff --git a/packages/components/src/Section/src/SectionContext.ts b/packages/components/src/Section/src/SectionContext.ts
deleted file mode 100644
index 8536733bd..000000000
--- a/packages/components/src/Section/src/SectionContext.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { createContext } from "react";
-import type { ContextValue } from "react-aria-components";
-
-import type { SectionProps } from "./Section.tsx";
-
-// any is what's used in RAC
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export const SectionContext = createContext, HTMLElement>>({});
-
-SectionContext.displayName = "SectionContext";
diff --git a/packages/components/src/Section/src/index.ts b/packages/components/src/Section/src/index.ts
deleted file mode 100644
index 7049f42e5..000000000
--- a/packages/components/src/Section/src/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./Section.tsx";
-export * from "./SectionContext.ts";
diff --git a/packages/components/src/Select/docs/controlled.tsx b/packages/components/src/Select/docs/controlled.tsx
index ae9224098..a4d67ce26 100644
--- a/packages/components/src/Select/docs/controlled.tsx
+++ b/packages/components/src/Select/docs/controlled.tsx
@@ -1,4 +1,4 @@
-import { Header, Section, Select, SelectItem, type Key } from "@hopper-ui/components";
+import { Header, Select, SelectItem, SelectSection, type Key } from "@hopper-ui/components";
import { useState } from "react";
export default function Example() {
@@ -14,11 +14,11 @@ export default function Example() {
return (
);
diff --git a/packages/components/src/Select/docs/selectDropdown/dynamicLists.tsx b/packages/components/src/Select/docs/selectDropdown/dynamicLists.tsx
index b5beb53cf..2c1bb6ffe 100644
--- a/packages/components/src/Select/docs/selectDropdown/dynamicLists.tsx
+++ b/packages/components/src/Select/docs/selectDropdown/dynamicLists.tsx
@@ -1,4 +1,4 @@
-import { Collection, Header, Inline, Section, Select, SelectItem } from "@hopper-ui/components";
+import { Collection, Header, Inline, Select, SelectItem, SelectSection } from "@hopper-ui/components";
interface ListItemProps {
id: number | string;
@@ -51,12 +51,12 @@ export default function Example() {
const { role: sectionName, children } = section;
return (
-
+
{item => {item.role}}
-
+
);
}}
diff --git a/packages/components/src/Select/docs/selectDropdown/section.tsx b/packages/components/src/Select/docs/selectDropdown/section.tsx
index 9246c097f..64463d58b 100644
--- a/packages/components/src/Select/docs/selectDropdown/section.tsx
+++ b/packages/components/src/Select/docs/selectDropdown/section.tsx
@@ -1,21 +1,21 @@
-import { Header, Section, Select, SelectItem } from "@hopper-ui/components";
+import { Header, Select, SelectItem, SelectSection } from "@hopper-ui/components";
export default function Example() {
return (
);
diff --git a/packages/components/src/Select/src/Select.tsx b/packages/components/src/Select/src/Select.tsx
index 1cb15422b..a6e90e3b3 100644
--- a/packages/components/src/Select/src/Select.tsx
+++ b/packages/components/src/Select/src/Select.tsx
@@ -20,6 +20,7 @@ import { useFormProps } from "../../Form/index.ts";
import { HelperMessage } from "../../HelperMessage/index.ts";
import { Footer } from "../../layout/index.ts";
import { ListBox, ListBoxItem, type ListBoxProps, type SelectionIndicator } from "../../ListBox/index.ts";
+import { ListBoxSection } from "../../ListBoxSection/index.ts";
import { Popover, type PopoverProps } from "../../overlays/index.ts";
import { ToggleArrow } from "../../ToggleArrow/index.ts";
import { Label, TextContext } from "../../typography/index.ts";
@@ -313,4 +314,4 @@ const _Select = forwardRef(Select) as (
) => ReturnType;
(_Select as NamedExoticComponent).displayName = "Select";
-export { _Select as Select, ListBoxItem as SelectItem };
+export { _Select as Select, ListBoxItem as SelectItem, ListBoxSection as SelectSection };
diff --git a/packages/components/src/Select/tests/chromatic/Select.stories.tsx b/packages/components/src/Select/tests/chromatic/Select.stories.tsx
index 7c54ce296..31f50c1d7 100644
--- a/packages/components/src/Select/tests/chromatic/Select.stories.tsx
+++ b/packages/components/src/Select/tests/chromatic/Select.stories.tsx
@@ -1,4 +1,4 @@
-import { Select, SelectItem, type SelectProps } from "@hopper-ui/components";
+import { Select, SelectItem, type SelectProps, SelectSection } from "@hopper-ui/components";
import { AddIcon, SparklesIcon } from "@hopper-ui/icons";
import { Div } from "@hopper-ui/styled-system";
import type { Meta, StoryFn, StoryObj } from "@storybook/react";
@@ -7,7 +7,6 @@ import { userEvent, within } from "@storybook/test";
import { Button } from "../../../buttons/index.ts";
import { Header } from "../../../Header/index.ts";
import { Inline, Stack } from "../../../layout/index.ts";
-import { Section } from "../../../Section/index.ts";
import { Text } from "../../../typography/Text/index.ts";
const meta = {
@@ -68,19 +67,19 @@ export const OnlyItems = {
export const Sections = {
render: args => (
),
play: playFn,
@@ -90,19 +89,19 @@ export const Sections = {
export const Footer = {
render: args => (
),
play: playFn,
@@ -112,19 +111,19 @@ export const Footer = {
export const TextFooter = {
render: args => (
),
play: playFn,
@@ -134,19 +133,19 @@ export const TextFooter = {
export const Small = {
render: args => (
),
args: {
@@ -160,19 +159,19 @@ export const Small = {
export const Medium = {
render: args => (
),
args: {
diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts
index ef6646513..82700efca 100644
--- a/packages/components/src/index.ts
+++ b/packages/components/src/index.ts
@@ -16,9 +16,9 @@ export * from "./inputs/index.ts";
export * from "./layout/index.ts";
export * from "./Link/index.ts";
export * from "./ListBox/index.ts";
+export * from "./ListBoxSection/index.ts";
export * from "./overlays/Popover/index.ts";
export * from "./radio/index.ts";
-export * from "./Section/index.ts";
export * from "./Select/index.ts";
export * from "./Spinner/index.ts";
export * from "./switch/index.ts";