Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
a2bc0ac
Add Inlaid Panel to Lab
wemmyo Mar 10, 2026
200ab7b
Stylling improvements
wemmyo Mar 11, 2026
442d636
style improvements
wemmyo Mar 11, 2026
31808da
Refactor stories to use core components
wemmyo Mar 11, 2026
547b2bc
Improve animation and focus management
wemmyo Mar 11, 2026
87b4d0c
improve inlaid panel props and ref forwarding
wemmyo Mar 11, 2026
770bd9d
Improve trigger
wemmyo Mar 12, 2026
1d3aaa3
Remove close button component and improve animation
wemmyo Mar 13, 2026
5ec256d
Improve open and close animation
wemmyo Mar 13, 2026
3e8f547
Fix animation causing scrollbar to appear
wemmyo Mar 13, 2026
73fed1c
Rename components
wemmyo Mar 16, 2026
b3fb878
create css variable for width and height
wemmyo Mar 16, 2026
f3f1a8e
Simplify api
wemmyo Mar 16, 2026
24c0f18
Improve examples
wemmyo Mar 17, 2026
59f1f05
change role to region and prefers-reduced-motion support
wemmyo Mar 17, 2026
fa37828
Handle focus management with floating ui
wemmyo Mar 17, 2026
c88824c
label region by header title
wemmyo Mar 17, 2026
f1cad5a
Fix Escape to close not working
wemmyo Mar 17, 2026
642fee4
Add basic tests
wemmyo Mar 17, 2026
6102bd1
Rename to side panel
wemmyo Mar 18, 2026
be0a701
Reduce css specificity
wemmyo Mar 18, 2026
a701608
Add site docs biolerplate
wemmyo Mar 18, 2026
526f946
Add exaxmples to site docs
wemmyo Mar 18, 2026
125586f
Default close examples
wemmyo Mar 18, 2026
105adfc
Lint fix
wemmyo Mar 18, 2026
6a610a1
Remove triggger add variants
wemmyo Mar 20, 2026
af32023
Add height and width props
wemmyo Mar 23, 2026
201498b
feat(side-panel): enhance side panel functionality with grouping and …
wemmyo Mar 24, 2026
a6b5ea8
Update failing test
wemmyo Mar 24, 2026
f9e5367
Rename side prop to position
wemmyo Mar 25, 2026
04c6c24
simplify refs handling and improve context usage
wemmyo Mar 25, 2026
35c7c85
Update initial dimensions to 300
wemmyo Mar 26, 2026
f1c6c83
Update default side to right
wemmyo Mar 26, 2026
0365cec
Initial examples and docs update
wemmyo Mar 26, 2026
386444b
Lint fix
wemmyo Mar 26, 2026
d31ab2d
Remove div from SidePanelGroup
wemmyo Mar 26, 2026
9a6e8f1
Remove width and height props, simplify default and table examples
wemmyo Mar 27, 2026
c2fac99
Spell check fix
wemmyo Mar 27, 2026
3ee9801
Remove top and bottom positions, simplify examples
wemmyo Mar 27, 2026
ce102b8
Code clean up and site docs update
wemmyo Mar 30, 2026
c3b1bad
Enhance SidePanel accessibility and focus management
wemmyo Mar 30, 2026
77cd265
Add SidePanelTrigger and improve code structure
wemmyo Mar 30, 2026
6882b38
Refactor SidePanelCloseButton and SidePanelGroupContext to use option…
wemmyo Mar 30, 2026
028112e
Update SidePanel stories and tests to use Default panel instead of Ri…
wemmyo Mar 30, 2026
ffbe3f6
Enhance Left and Default panel tests to verify aria-expanded attribut…
wemmyo Mar 30, 2026
1a36acf
Use optional chaining for setOpen in SidePanelTrigger
wemmyo Mar 30, 2026
962a5a5
lint fix
wemmyo Mar 30, 2026
8bc37a5
Update version of @salt-ds/lab to minor and add SidePanel
wemmyo Mar 30, 2026
c730426
Improve test structure
wemmyo Mar 31, 2026
756ef3a
Add interactive elements to app header example
wemmyo Mar 31, 2026
18ad38f
Add accessible name to table action button
wemmyo Mar 31, 2026
d54819c
Update storybook app header example
wemmyo Apr 1, 2026
12c7da9
Update docs and examples
wemmyo Apr 1, 2026
98e9aa2
Rename Default to Variants example
wemmyo Apr 1, 2026
666a1c1
Update business pattern
wemmyo Apr 2, 2026
3925d8d
Refactor SidePanel component: replace SidePanelCloseButton with SideP…
wemmyo Apr 2, 2026
2432cca
remove height token
wemmyo Apr 2, 2026
adc78b7
feat(lab): add SidePanel
mark-tate Apr 7, 2026
565c2c3
remove floating-ui's onClick as that creates toggle behaviour
mark-tate Apr 8, 2026
c31f534
update examples
mark-tate Apr 8, 2026
23e95cc
code-review: add feedback
mark-tate Apr 8, 2026
f76f512
code-review: improved usage doc
mark-tate Apr 9, 2026
6f83ba0
code-review: polish examples
mark-tate Apr 10, 2026
73b43e0
Merge branch 'main' into create-inlaid-panel-polish
mark-tate Apr 21, 2026
f9ec125
Add appearance prop
wemmyo Apr 21, 2026
9f072b5
Improve variant and appearance ts docs
wemmyo Apr 21, 2026
16b6296
Merge branch 'main' into create-inlaid-panel-polish
mark-tate Apr 22, 2026
a7dbc83
Update usage.mdx
navkaur76 Apr 22, 2026
062ab77
Remove Escape key global listener, only close panel with focus within
wemmyo Apr 22, 2026
633b113
Merge branch 'create-inlaid-panel-polish' of https://github.com/jpmor…
wemmyo Apr 22, 2026
514d208
Move Escape key capture to panel container
wemmyo Apr 23, 2026
5fbd1c7
a11y-review: polish a11y support (#6360)
mark-tate Apr 23, 2026
432edca
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 23, 2026
58e317e
Enhance SidePanel a11y with aria-controls and panelId integration
wemmyo Apr 23, 2026
6313236
Ensure focus always moves into side panel with multiple triggers
wemmyo Apr 23, 2026
a6f003c
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 23, 2026
f46550e
Refactor SidePanel accessibility attributes and remove unused panelHe…
wemmyo Apr 24, 2026
2f011c9
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 24, 2026
6f8d11b
Enhance SidePanel accessibility and focus management; update usage do…
wemmyo Apr 24, 2026
16f1859
Skip focus movement on first render when open
wemmyo Apr 24, 2026
2cfcdd5
lint fix
wemmyo Apr 24, 2026
34e5154
Prettier fix
wemmyo Apr 24, 2026
3027c1f
Refactor SidePanel tests for improved clarity
wemmyo Apr 24, 2026
c2824c9
Add 'none' variant to SidePanel and update related tests and stories
wemmyo Apr 24, 2026
e27914c
Update initialFocus logic and add tests for Edit button interactions
wemmyo Apr 24, 2026
c3d577a
Refactor side panel trigger buttons to use context for state management
wemmyo Apr 27, 2026
ea8bbaa
Ignore biome warnings in examples
wemmyo Apr 27, 2026
9099829
Code clean-up
wemmyo Apr 27, 2026
6cf2830
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 27, 2026
c6363d8
Remove unused images
wemmyo Apr 27, 2026
cc62246
Fix provider scoping issue in examples
wemmyo Apr 27, 2026
5ff7034
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 27, 2026
abebb66
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 27, 2026
7765c8a
Rename SidePanelProvider interface and remove redundant tabIndex on c…
wemmyo Apr 27, 2026
a4cae28
Merge branch 'create-inlaid-panel-polish' of https://github.com/jpmor…
wemmyo Apr 27, 2026
d6e01dd
Address docs feedback
wemmyo Apr 27, 2026
350edc7
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 28, 2026
70806ed
Remove unnecessary key in Table example
wemmyo Apr 28, 2026
516ee6a
Merge branch 'create-inlaid-panel-polish' of https://github.com/jpmor…
wemmyo Apr 28, 2026
6b1869e
Merge branch 'main' into create-inlaid-panel-polish
mark-tate Apr 28, 2026
d2e0020
Refactor Cards story to improve layout structure
wemmyo Apr 29, 2026
35d3713
Refactor skipInitialFocus logic for improved focus handling
wemmyo Apr 29, 2026
accd5bd
Fix typo in side panel docs
wemmyo Apr 29, 2026
65ae32e
Improve docs
wemmyo Apr 29, 2026
ebe32b8
Refactor SidePanelProvider to use useMemo for context value
wemmyo Apr 29, 2026
6241316
Improve DesktopAppHeader accessibility labels
wemmyo Apr 29, 2026
70559fb
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 29, 2026
88d55f0
Add side panel header and title components, remove header prop
wemmyo Apr 29, 2026
1f944d2
Remove useCallback where not necessary and docs improvements
wemmyo Apr 29, 2026
872055a
Use consistent language and ocs clean up
wemmyo Apr 29, 2026
8a0d8d6
Rename internal css variable
wemmyo Apr 29, 2026
f26043a
Rename animated to disableAnimation
wemmyo Apr 29, 2026
4e01f83
Remove separable token usage
wemmyo Apr 29, 2026
4158b2f
Resolve local component name lint error
wemmyo Apr 29, 2026
61039b4
Flatten side panel test describe blocks
wemmyo Apr 29, 2026
3ecde95
Remove conditional aria label
wemmyo Apr 29, 2026
5ae49d0
Address a11y comments on close button and toggle for table
wemmyo Apr 30, 2026
c8778e0
Merge branch 'create-inlaid-panel-polish' of https://github.com/jpmor…
wemmyo Apr 30, 2026
68901e3
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 30, 2026
5848664
Replace visually hidden span with hidden attribute
wemmyo Apr 30, 2026
6a5fbe9
Merge branch 'create-inlaid-panel-polish' of https://github.com/jpmor…
wemmyo Apr 30, 2026
cccdc9a
Separate internal and public context
wemmyo Apr 30, 2026
d8507cc
Remove conditional button labels
wemmyo Apr 30, 2026
d64e6ed
Merge branch 'main' into create-inlaid-panel-polish
wemmyo Apr 30, 2026
d0dbe0e
Polish side panel follow up (#6448)
wemmyo May 1, 2026
47c0923
Merge branch 'main' into create-inlaid-panel-polish
wemmyo May 1, 2026
6b5301b
lint
mark-tate May 1, 2026
5d4ca7c
Merge branch 'main' into create-inlaid-panel-polish
joshwooding May 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .changeset/sweet-snails-sneeze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
"@salt-ds/lab": minor
---

Added `SidePanel`.

`SidePanel` is a collapsible container that slides in from an edge of its parent, providing supplementary content or controls without disrupting the main layout.

Use `SidePanelProvider` to manage open state, `SidePanelTrigger` to toggle the panel, `SidePanelTitle` provides the accessible name for the panel region automatically and `useSidePanel` to access `setOpen` for programmatic close.

```tsx
const PanelContent = () => {
const { CloseIcon } = useIcon();
const { setOpen } = useSidePanel();
return (
<SidePanel>
<SidePanelHeader>
<SidePanelTitle>
<H2>Panel Title</H2>
</SidePanelTitle>
<Button
aria-label="Close"
appearance="transparent"
onClick={() => setOpen(false)}
>
<CloseIcon aria-hidden />
</Button>
</SidePanelHeader>
<SidePanelContent>
<Text>Panel body content.</Text>
</SidePanelContent>
</SidePanel>
);
};

<SidePanelProvider>
<SidePanelTrigger>
<Button>Open Panel</Button>
</SidePanelTrigger>
<PanelContent />
</SidePanelProvider>;
```
18 changes: 14 additions & 4 deletions docs/components/QAContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ const withBaseName = makePrefixer("saltQAContainer");
export interface QAContainerProps extends ComponentPropsWithoutRef<"div"> {
cols?: number;
densities?: Array<(typeof DensityValues)[number]>;
height?: number;
height?: number | string;
enableStyleInjection?: boolean;
itemPadding?: number;
itemWidthAuto?: boolean;
transposeDensity?: boolean;
vertical?: boolean;
width?: number;
width?: number | string;
}

const BackgroundBlock = ({ children }: ComponentPropsWithoutRef<"div">) => (
Expand Down Expand Up @@ -82,8 +82,18 @@ export const QAContainer = ({
}: QAContainerProps) => {
const style = {
"--qaContainer-cols": cols,
"--qaContainer-height": height === undefined ? undefined : `${height}px`,
"--qaContainer-width": width === undefined ? undefined : `${width}px`,
"--qaContainer-height":
height === undefined
? undefined
: typeof height === "number"
? `${height}px`
: height,
"--qaContainer-width":
width === undefined
? undefined
: typeof width === "number"
? `${width}px`
: width,
"--qaContainer-item-padding":
itemPadding === undefined ? undefined : `${itemPadding}px`,
"--qaContainer-item-width": itemWidthAuto ? "auto" : undefined,
Expand Down
Loading
Loading