@kushagradhawan/kookie-ui 0.1.28 → 0.1.29

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 (39) hide show
  1. package/components.css +452 -249
  2. package/dist/cjs/components/accordion.d.ts +22 -0
  3. package/dist/cjs/components/accordion.d.ts.map +1 -0
  4. package/dist/cjs/components/accordion.js +2 -0
  5. package/dist/cjs/components/accordion.js.map +7 -0
  6. package/dist/cjs/components/accordion.props.d.ts +88 -0
  7. package/dist/cjs/components/accordion.props.d.ts.map +1 -0
  8. package/dist/cjs/components/accordion.props.js +2 -0
  9. package/dist/cjs/components/accordion.props.js.map +7 -0
  10. package/dist/cjs/components/dialog.props.d.ts +1 -1
  11. package/dist/cjs/components/index.d.ts +1 -0
  12. package/dist/cjs/components/index.d.ts.map +1 -1
  13. package/dist/cjs/components/index.js +1 -1
  14. package/dist/cjs/components/index.js.map +3 -3
  15. package/dist/cjs/helpers/extract-margin-props.d.ts +7 -7
  16. package/dist/esm/components/accordion.d.ts +22 -0
  17. package/dist/esm/components/accordion.d.ts.map +1 -0
  18. package/dist/esm/components/accordion.js +2 -0
  19. package/dist/esm/components/accordion.js.map +7 -0
  20. package/dist/esm/components/accordion.props.d.ts +88 -0
  21. package/dist/esm/components/accordion.props.d.ts.map +1 -0
  22. package/dist/esm/components/accordion.props.js +2 -0
  23. package/dist/esm/components/accordion.props.js.map +7 -0
  24. package/dist/esm/components/dialog.props.d.ts +1 -1
  25. package/dist/esm/components/index.d.ts +1 -0
  26. package/dist/esm/components/index.d.ts.map +1 -1
  27. package/dist/esm/components/index.js +1 -1
  28. package/dist/esm/components/index.js.map +3 -3
  29. package/dist/esm/helpers/extract-margin-props.d.ts +7 -7
  30. package/package.json +1 -1
  31. package/src/components/_internal/base-sidebar-menu.css +223 -0
  32. package/src/components/_internal/base-sidebar.css +141 -0
  33. package/src/components/accordion.css +254 -0
  34. package/src/components/accordion.props.tsx +84 -0
  35. package/src/components/accordion.tsx +162 -0
  36. package/src/components/index.css +1 -0
  37. package/src/components/index.tsx +1 -0
  38. package/src/components/sidebar.css +180 -635
  39. package/styles.css +452 -249
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/index.tsx"],
4
- "sourcesContent": ["export { AccessibleIcon, type AccessibleIconProps } from './accessible-icon.js';\nexport * as AlertDialog from './alert-dialog.js';\nexport { AspectRatio, type AspectRatioProps } from './aspect-ratio.js';\nexport { Avatar, type AvatarProps } from './avatar.js';\nexport { Badge, type BadgeProps } from './badge.js';\nexport { Blockquote, type BlockquoteProps } from './blockquote.js';\nexport { Box, type BoxProps } from './box.js';\nexport { Button, type ButtonProps } from './button.js';\nexport * as Callout from './callout.js';\nexport { Card, type CardProps } from './card.js';\nexport * as CheckboxCards from './checkbox-cards.js';\nexport * as CheckboxGroup from './checkbox-group.js';\nexport { Checkbox, type CheckboxProps } from './checkbox.js';\nexport { Code, type CodeProps } from './code.js';\nexport { Container, type ContainerProps } from './container.js';\nexport * as ContextMenu from './context-menu.js';\nexport * as DataList from './data-list.js';\nexport * as Dialog from './dialog.js';\nexport * as DropdownMenu from './dropdown-menu.js';\nexport { Em, type EmProps } from './em.js';\nexport { Flex, type FlexProps } from './flex.js';\nexport { Grid, type GridProps } from './grid.js';\nexport { Heading, type HeadingProps } from './heading.js';\nexport * as HoverCard from './hover-card.js';\nexport { IconButton, type IconButtonProps } from './icon-button.js';\nexport {\n type IconProps,\n ChevronDownIcon,\n ThickCheckIcon,\n ThickChevronRightIcon,\n ThickDividerHorizontalIcon,\n} from './icons.js';\nexport { Image, type ImageProps } from './image.js';\nexport { Inset, type InsetProps } from './inset.js';\nexport { Kbd, type KbdProps } from './kbd.js';\nexport { Link, type LinkProps } from './link.js';\nexport * as Popover from './popover.js';\nexport { Portal, type PortalProps } from './portal.js';\nexport { Progress, type ProgressProps } from './progress.js';\nexport { Quote, type QuoteProps } from './quote.js';\nexport * as RadioCards from './radio-cards.js';\nexport * as RadioGroup from './radio-group.js';\nexport { Radio, type RadioProps } from './radio.js';\nexport { Reset, type ResetProps } from './reset.js';\nexport { ScrollArea, type ScrollAreaProps } from './scroll-area.js';\nexport * as SegmentedControl from './segmented-control.js';\nexport { Section, type SectionProps } from './section.js';\nexport * as Select from './select.js';\nexport { Separator, type SeparatorProps } from './separator.js';\nexport { Skeleton, type SkeletonProps } from './skeleton.js';\nexport { Slider, type SliderProps } from './slider.js';\nexport { Slot, Slottable } from './slot.js';\nexport { Spinner, type SpinnerProps } from './spinner.js';\nexport { Strong, type StrongProps } from './strong.js';\nexport { Switch, type SwitchProps } from './switch.js';\nexport * as TabNav from './tab-nav.js';\nexport * as Table from './table.js';\nexport * as Tabs from './tabs.js';\nexport { TextArea, type TextAreaProps } from './text-area.js';\nexport * as TextField from './text-field.js';\nexport { Text, type TextProps } from './text.js';\nexport { ThemePanel, type ThemePanelProps } from './theme-panel.js';\nexport { Theme, ThemeContext, type ThemeProps, useThemeContext } from './theme.js';\nexport { ToggleButton, type ToggleButtonProps } from './toggle-button.js';\nexport { ToggleIconButton, type ToggleIconButtonProps } from './toggle-icon-button.js';\nexport { Tooltip, type TooltipProps } from './tooltip.js';\nexport { UserCard, type UserCardProps } from './user-card.js';\nexport { VisuallyHidden, type VisuallyHiddenProps } from './visually-hidden.js';\nexport * as Sidebar from './sidebar.js';\n"],
5
- "mappings": "AAAA,OAAS,kBAAAA,MAAgD,uBACzD,UAAYC,MAAiB,oBAC7B,OAAS,eAAAC,MAA0C,oBACnD,OAAS,UAAAC,MAAgC,cACzC,OAAS,SAAAC,MAA8B,aACvC,OAAS,cAAAC,MAAwC,kBACjD,OAAS,OAAAC,MAA0B,WACnC,OAAS,UAAAC,MAAgC,cACzC,UAAYC,MAAa,eACzB,OAAS,QAAAC,MAA4B,YACrC,UAAYC,MAAmB,sBAC/B,UAAYC,MAAmB,sBAC/B,OAAS,YAAAC,MAAoC,gBAC7C,OAAS,QAAAC,MAA4B,YACrC,OAAS,aAAAC,MAAsC,iBAC/C,UAAYC,MAAiB,oBAC7B,UAAYC,MAAc,iBAC1B,UAAYC,MAAY,cACxB,UAAYC,MAAkB,qBAC9B,OAAS,MAAAC,MAAwB,UACjC,OAAS,QAAAC,MAA4B,YACrC,OAAS,QAAAC,MAA4B,YACrC,OAAS,WAAAC,MAAkC,eAC3C,UAAYC,MAAe,kBAC3B,OAAS,cAAAC,MAAwC,mBACjD,OAEE,mBAAAC,EACA,kBAAAC,EACA,yBAAAC,EACA,8BAAAC,MACK,aACP,OAAS,SAAAC,MAA8B,aACvC,OAAS,SAAAC,MAA8B,aACvC,OAAS,OAAAC,MAA0B,WACnC,OAAS,QAAAC,OAA4B,YACrC,UAAYC,OAAa,eACzB,OAAS,UAAAC,OAAgC,cACzC,OAAS,YAAAC,OAAoC,gBAC7C,OAAS,SAAAC,OAA8B,aACvC,UAAYC,OAAgB,mBAC5B,UAAYC,OAAgB,mBAC5B,OAAS,SAAAC,OAA8B,aACvC,OAAS,SAAAC,OAA8B,aACvC,OAAS,cAAAC,OAAwC,mBACjD,UAAYC,OAAsB,yBAClC,OAAS,WAAAC,OAAkC,eAC3C,UAAYC,OAAY,cACxB,OAAS,aAAAC,OAAsC,iBAC/C,OAAS,YAAAC,OAAoC,gBAC7C,OAAS,UAAAC,OAAgC,cACzC,OAAS,QAAAC,GAAM,aAAAC,OAAiB,YAChC,OAAS,WAAAC,OAAkC,eAC3C,OAAS,UAAAC,OAAgC,cACzC,OAAS,UAAAC,OAAgC,cACzC,UAAYC,OAAY,eACxB,UAAYC,OAAW,aACvB,UAAYC,OAAU,YACtB,OAAS,YAAAC,OAAoC,iBAC7C,UAAYC,OAAe,kBAC3B,OAAS,QAAAC,OAA4B,YACrC,OAAS,cAAAC,OAAwC,mBACjD,OAAS,SAAAC,GAAO,gBAAAC,GAA+B,mBAAAC,OAAuB,aACtE,OAAS,gBAAAC,OAA4C,qBACrD,OAAS,oBAAAC,OAAoD,0BAC7D,OAAS,WAAAC,OAAkC,eAC3C,OAAS,YAAAC,OAAoC,iBAC7C,OAAS,kBAAAC,OAAgD,uBACzD,UAAYC,OAAa",
6
- "names": ["AccessibleIcon", "AlertDialog", "AspectRatio", "Avatar", "Badge", "Blockquote", "Box", "Button", "Callout", "Card", "CheckboxCards", "CheckboxGroup", "Checkbox", "Code", "Container", "ContextMenu", "DataList", "Dialog", "DropdownMenu", "Em", "Flex", "Grid", "Heading", "HoverCard", "IconButton", "ChevronDownIcon", "ThickCheckIcon", "ThickChevronRightIcon", "ThickDividerHorizontalIcon", "Image", "Inset", "Kbd", "Link", "Popover", "Portal", "Progress", "Quote", "RadioCards", "RadioGroup", "Radio", "Reset", "ScrollArea", "SegmentedControl", "Section", "Select", "Separator", "Skeleton", "Slider", "Slot", "Slottable", "Spinner", "Strong", "Switch", "TabNav", "Table", "Tabs", "TextArea", "TextField", "Text", "ThemePanel", "Theme", "ThemeContext", "useThemeContext", "ToggleButton", "ToggleIconButton", "Tooltip", "UserCard", "VisuallyHidden", "Sidebar"]
4
+ "sourcesContent": ["export { AccessibleIcon, type AccessibleIconProps } from './accessible-icon.js';\nexport * as Accordion from './accordion.js';\nexport * as AlertDialog from './alert-dialog.js';\nexport { AspectRatio, type AspectRatioProps } from './aspect-ratio.js';\nexport { Avatar, type AvatarProps } from './avatar.js';\nexport { Badge, type BadgeProps } from './badge.js';\nexport { Blockquote, type BlockquoteProps } from './blockquote.js';\nexport { Box, type BoxProps } from './box.js';\nexport { Button, type ButtonProps } from './button.js';\nexport * as Callout from './callout.js';\nexport { Card, type CardProps } from './card.js';\nexport * as CheckboxCards from './checkbox-cards.js';\nexport * as CheckboxGroup from './checkbox-group.js';\nexport { Checkbox, type CheckboxProps } from './checkbox.js';\nexport { Code, type CodeProps } from './code.js';\nexport { Container, type ContainerProps } from './container.js';\nexport * as ContextMenu from './context-menu.js';\nexport * as DataList from './data-list.js';\nexport * as Dialog from './dialog.js';\nexport * as DropdownMenu from './dropdown-menu.js';\nexport { Em, type EmProps } from './em.js';\nexport { Flex, type FlexProps } from './flex.js';\nexport { Grid, type GridProps } from './grid.js';\nexport { Heading, type HeadingProps } from './heading.js';\nexport * as HoverCard from './hover-card.js';\nexport { IconButton, type IconButtonProps } from './icon-button.js';\nexport {\n type IconProps,\n ChevronDownIcon,\n ThickCheckIcon,\n ThickChevronRightIcon,\n ThickDividerHorizontalIcon,\n} from './icons.js';\nexport { Image, type ImageProps } from './image.js';\nexport { Inset, type InsetProps } from './inset.js';\nexport { Kbd, type KbdProps } from './kbd.js';\nexport { Link, type LinkProps } from './link.js';\nexport * as Popover from './popover.js';\nexport { Portal, type PortalProps } from './portal.js';\nexport { Progress, type ProgressProps } from './progress.js';\nexport { Quote, type QuoteProps } from './quote.js';\nexport * as RadioCards from './radio-cards.js';\nexport * as RadioGroup from './radio-group.js';\nexport { Radio, type RadioProps } from './radio.js';\nexport { Reset, type ResetProps } from './reset.js';\nexport { ScrollArea, type ScrollAreaProps } from './scroll-area.js';\nexport * as SegmentedControl from './segmented-control.js';\nexport { Section, type SectionProps } from './section.js';\nexport * as Select from './select.js';\nexport { Separator, type SeparatorProps } from './separator.js';\nexport { Skeleton, type SkeletonProps } from './skeleton.js';\nexport { Slider, type SliderProps } from './slider.js';\nexport { Slot, Slottable } from './slot.js';\nexport { Spinner, type SpinnerProps } from './spinner.js';\nexport { Strong, type StrongProps } from './strong.js';\nexport { Switch, type SwitchProps } from './switch.js';\nexport * as TabNav from './tab-nav.js';\nexport * as Table from './table.js';\nexport * as Tabs from './tabs.js';\nexport { TextArea, type TextAreaProps } from './text-area.js';\nexport * as TextField from './text-field.js';\nexport { Text, type TextProps } from './text.js';\nexport { ThemePanel, type ThemePanelProps } from './theme-panel.js';\nexport { Theme, ThemeContext, type ThemeProps, useThemeContext } from './theme.js';\nexport { ToggleButton, type ToggleButtonProps } from './toggle-button.js';\nexport { ToggleIconButton, type ToggleIconButtonProps } from './toggle-icon-button.js';\nexport { Tooltip, type TooltipProps } from './tooltip.js';\nexport { UserCard, type UserCardProps } from './user-card.js';\nexport { VisuallyHidden, type VisuallyHiddenProps } from './visually-hidden.js';\nexport * as Sidebar from './sidebar.js';\n"],
5
+ "mappings": "AAAA,OAAS,kBAAAA,MAAgD,uBACzD,UAAYC,MAAe,iBAC3B,UAAYC,MAAiB,oBAC7B,OAAS,eAAAC,MAA0C,oBACnD,OAAS,UAAAC,MAAgC,cACzC,OAAS,SAAAC,MAA8B,aACvC,OAAS,cAAAC,MAAwC,kBACjD,OAAS,OAAAC,MAA0B,WACnC,OAAS,UAAAC,MAAgC,cACzC,UAAYC,MAAa,eACzB,OAAS,QAAAC,MAA4B,YACrC,UAAYC,MAAmB,sBAC/B,UAAYC,MAAmB,sBAC/B,OAAS,YAAAC,MAAoC,gBAC7C,OAAS,QAAAC,MAA4B,YACrC,OAAS,aAAAC,MAAsC,iBAC/C,UAAYC,MAAiB,oBAC7B,UAAYC,MAAc,iBAC1B,UAAYC,MAAY,cACxB,UAAYC,MAAkB,qBAC9B,OAAS,MAAAC,MAAwB,UACjC,OAAS,QAAAC,MAA4B,YACrC,OAAS,QAAAC,MAA4B,YACrC,OAAS,WAAAC,MAAkC,eAC3C,UAAYC,MAAe,kBAC3B,OAAS,cAAAC,MAAwC,mBACjD,OAEE,mBAAAC,EACA,kBAAAC,EACA,yBAAAC,EACA,8BAAAC,MACK,aACP,OAAS,SAAAC,MAA8B,aACvC,OAAS,SAAAC,MAA8B,aACvC,OAAS,OAAAC,MAA0B,WACnC,OAAS,QAAAC,OAA4B,YACrC,UAAYC,OAAa,eACzB,OAAS,UAAAC,OAAgC,cACzC,OAAS,YAAAC,OAAoC,gBAC7C,OAAS,SAAAC,OAA8B,aACvC,UAAYC,OAAgB,mBAC5B,UAAYC,OAAgB,mBAC5B,OAAS,SAAAC,OAA8B,aACvC,OAAS,SAAAC,OAA8B,aACvC,OAAS,cAAAC,OAAwC,mBACjD,UAAYC,OAAsB,yBAClC,OAAS,WAAAC,OAAkC,eAC3C,UAAYC,OAAY,cACxB,OAAS,aAAAC,OAAsC,iBAC/C,OAAS,YAAAC,OAAoC,gBAC7C,OAAS,UAAAC,OAAgC,cACzC,OAAS,QAAAC,GAAM,aAAAC,OAAiB,YAChC,OAAS,WAAAC,OAAkC,eAC3C,OAAS,UAAAC,OAAgC,cACzC,OAAS,UAAAC,OAAgC,cACzC,UAAYC,OAAY,eACxB,UAAYC,OAAW,aACvB,UAAYC,OAAU,YACtB,OAAS,YAAAC,OAAoC,iBAC7C,UAAYC,OAAe,kBAC3B,OAAS,QAAAC,OAA4B,YACrC,OAAS,cAAAC,OAAwC,mBACjD,OAAS,SAAAC,GAAO,gBAAAC,GAA+B,mBAAAC,OAAuB,aACtE,OAAS,gBAAAC,OAA4C,qBACrD,OAAS,oBAAAC,OAAoD,0BAC7D,OAAS,WAAAC,OAAkC,eAC3C,OAAS,YAAAC,OAAoC,iBAC7C,OAAS,kBAAAC,OAAgD,uBACzD,UAAYC,OAAa",
6
+ "names": ["AccessibleIcon", "Accordion", "AlertDialog", "AspectRatio", "Avatar", "Badge", "Blockquote", "Box", "Button", "Callout", "Card", "CheckboxCards", "CheckboxGroup", "Checkbox", "Code", "Container", "ContextMenu", "DataList", "Dialog", "DropdownMenu", "Em", "Flex", "Grid", "Heading", "HoverCard", "IconButton", "ChevronDownIcon", "ThickCheckIcon", "ThickChevronRightIcon", "ThickDividerHorizontalIcon", "Image", "Inset", "Kbd", "Link", "Popover", "Portal", "Progress", "Quote", "RadioCards", "RadioGroup", "Radio", "Reset", "ScrollArea", "SegmentedControl", "Section", "Select", "Separator", "Skeleton", "Slider", "Slot", "Slottable", "Spinner", "Strong", "Switch", "TabNav", "Table", "Tabs", "TextArea", "TextField", "Text", "ThemePanel", "Theme", "ThemeContext", "useThemeContext", "ToggleButton", "ToggleIconButton", "Tooltip", "UserCard", "VisuallyHidden", "Sidebar"]
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import type { MarginProps } from '../props/margin.props.js';
2
2
  export declare function extractMarginProps<T extends MarginProps>(props: T): {
3
- m: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
4
- mx: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
5
- my: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
6
- mt: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
7
- mr: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
8
- mb: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
9
- ml: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
3
+ m: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "1" | "2" | "3" | "4" | "0" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
4
+ mx: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "1" | "2" | "3" | "4" | "0" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
5
+ my: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "1" | "2" | "3" | "4" | "0" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
6
+ mt: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "1" | "2" | "3" | "4" | "0" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
7
+ mr: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "1" | "2" | "3" | "4" | "0" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
8
+ mb: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "1" | "2" | "3" | "4" | "0" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
9
+ ml: import("../props/prop-def.js").Responsive<import("../props/prop-def.js").Union<string, "1" | "2" | "3" | "4" | "0" | "5" | "6" | "7" | "8" | "9" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9">> | undefined;
10
10
  rest: Omit<T, "m" | "ml" | "mr" | "mt" | "mb" | "mx" | "my">;
11
11
  };
12
12
  //# sourceMappingURL=extract-margin-props.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kushagradhawan/kookie-ui",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "description": "A modern React component library with beautiful design tokens, flexible theming, and comprehensive docs",
5
5
  "keywords": [
6
6
  "react",
@@ -0,0 +1,223 @@
1
+ /* Base Sidebar Menu Styles */
2
+
3
+ /* Sidebar Menu - based on rt-BaseMenuViewport */
4
+ .rt-SidebarMenu {
5
+ flex: 1;
6
+ display: flex;
7
+ flex-direction: column;
8
+ padding: var(--base-menu-content-padding);
9
+ box-sizing: border-box;
10
+ list-style: none;
11
+ margin: 0;
12
+ min-height: 0;
13
+
14
+ :where(.rt-SidebarContent:has(.rt-ScrollAreaScrollbar[data-orientation='vertical'])) & {
15
+ padding-right: var(--space-3);
16
+ }
17
+ }
18
+
19
+ /* Sidebar Menu Item */
20
+ .rt-SidebarMenuItem {
21
+ list-style: none;
22
+ }
23
+
24
+ /* Sidebar Menu Button - inherit from BaseMenuItem */
25
+ .rt-SidebarMenuButton {
26
+ display: flex;
27
+ align-items: center;
28
+ gap: var(--space-2); /* Will be overridden by size-specific gap */
29
+ min-height: var(--base-menu-item-height);
30
+ padding-top: var(--base-menu-item-padding-y);
31
+ padding-bottom: var(--base-menu-item-padding-y);
32
+ padding-left: var(--base-menu-item-padding-left);
33
+ padding-right: var(--base-menu-item-padding-right);
34
+ box-sizing: border-box;
35
+ position: relative;
36
+ outline: none;
37
+ scroll-margin: var(--base-menu-content-padding) 0;
38
+ background: none;
39
+ border: none;
40
+ width: 100%;
41
+ text-align: left;
42
+ /* No default border radius - inherited from size-specific rules */
43
+
44
+ /* Transitions - inherit from base menu */
45
+ transition: var(--transition-menu);
46
+
47
+ /* Fix sticky text highlighting after selection in Firefox */
48
+ user-select: none;
49
+
50
+ /* Cursors */
51
+ cursor: var(--cursor-menu-item);
52
+ &:where([data-disabled]) {
53
+ cursor: default;
54
+ color: var(--gray-a8);
55
+ }
56
+
57
+ /* Active navigation state - always accent-based */
58
+ &:where([data-active], .rt-active) {
59
+ background-color: var(--accent-a3);
60
+ color: var(--accent-a12);
61
+ }
62
+
63
+ /* Focus state */
64
+ &:where(:focus-visible) {
65
+ outline: 2px solid var(--focus-8);
66
+ outline-offset: 2px;
67
+ }
68
+
69
+ /* Accent color support */
70
+ &:where([data-accent-color]) {
71
+ color: var(--accent-a11);
72
+ }
73
+
74
+ /* Gray text support - inherit from base menu */
75
+ & :where(.rt-Text[data-accent-color='gray'], [data-accent-color='gray']:not(.rt-Badge)) {
76
+ color: var(--gray-a10);
77
+ }
78
+
79
+ /* Ensure shortcuts inherit color in disabled/highlighted/active states */
80
+ &:where([data-disabled], [data-highlighted], [data-active]) {
81
+ & :where(.rt-SidebarMenuShortcut) {
82
+ color: inherit;
83
+ }
84
+ }
85
+
86
+ /* Reduced motion support */
87
+ @media (prefers-reduced-motion: reduce) {
88
+ transition: none;
89
+ }
90
+ }
91
+
92
+ /* Sidebar Menu Sub Components - Radix Accordion */
93
+ .rt-SidebarMenuSubTrigger {
94
+ justify-content: space-between;
95
+ }
96
+
97
+ /* Accordion trigger icon rotation */
98
+ .rt-SidebarMenuSubTrigger {
99
+ & :where(.rt-SidebarMenuSubTriggerIcon) {
100
+ transition: transform 0.2s ease;
101
+ }
102
+
103
+ &:where([data-state="open"]) :where(.rt-SidebarMenuSubTriggerIcon) {
104
+ transform: rotate(90deg);
105
+ }
106
+ }
107
+
108
+ .rt-SidebarMenuSubContent {
109
+ overflow: hidden;
110
+
111
+ /* Allow focus outlines to show */
112
+ &:where(:focus-within) {
113
+ overflow: visible;
114
+ }
115
+
116
+ /* Radix Accordion animation support */
117
+ &:where([data-state="open"]) {
118
+ animation: rt-sidebar-slide-down 200ms ease-out;
119
+ }
120
+
121
+ &:where([data-state="closed"]) {
122
+ animation: rt-sidebar-slide-up 200ms ease-out;
123
+ }
124
+ }
125
+
126
+ @keyframes rt-sidebar-slide-down {
127
+ from {
128
+ height: 0;
129
+ }
130
+ to {
131
+ height: var(--radix-accordion-content-height);
132
+ }
133
+ }
134
+
135
+ @keyframes rt-sidebar-slide-up {
136
+ from {
137
+ height: var(--radix-accordion-content-height);
138
+ }
139
+ to {
140
+ height: 0;
141
+ }
142
+ }
143
+
144
+ .rt-SidebarMenuSubList {
145
+ padding-left: var(--space-4);
146
+ border-left: 1px solid var(--gray-a5);
147
+ margin-left: var(--space-3);
148
+ }
149
+
150
+ /* Sub-menu items have consistent heights based on size - match dropdown menu exactly */
151
+ :where(.rt-SidebarContent.rt-r-size-1) :where(.rt-SidebarMenuSubList) .rt-SidebarMenuButton {
152
+ padding-left: var(--space-3);
153
+ padding-top: calc(var(--space-1) * 0.75);
154
+ padding-bottom: calc(var(--space-1) * 0.75);
155
+ min-height: var(--space-5); /* 20px */
156
+ font-size: var(--font-size-1);
157
+ }
158
+
159
+ :where(.rt-SidebarContent.rt-r-size-2) :where(.rt-SidebarMenuSubList) .rt-SidebarMenuButton {
160
+ padding-left: var(--space-3);
161
+ padding-top: var(--space-1);
162
+ padding-bottom: var(--space-1);
163
+ min-height: var(--space-6); /* 24px */
164
+ font-size: var(--font-size-2);
165
+ }
166
+
167
+ /* Sidebar Group Components - identical to base menu */
168
+ .rt-SidebarGroup {
169
+ /* No styling - purely semantic like BaseMenuGroup */
170
+ }
171
+
172
+ .rt-SidebarGroupLabel {
173
+ /* Inherit all BaseMenuLabel styles */
174
+ display: flex;
175
+ align-items: center;
176
+ min-height: var(--base-menu-item-height);
177
+ padding-top: var(--base-menu-item-padding-y);
178
+ padding-bottom: var(--base-menu-item-padding-y);
179
+ padding-left: var(--base-menu-item-padding-left);
180
+ padding-right: var(--base-menu-item-padding-right);
181
+ box-sizing: border-box;
182
+ color: var(--gray-a10);
183
+ user-select: none;
184
+ cursor: default;
185
+
186
+ /* Add margin-top when following menu items - identical to BaseMenuLabel */
187
+ :where(.rt-SidebarMenuItem) + & {
188
+ margin-top: var(--space-2);
189
+ }
190
+ }
191
+
192
+ /* Reduce right padding on menu buttons with trailing elements */
193
+ .rt-SidebarMenuButton:where(:has(.rt-SidebarMenuShortcut, .rt-SidebarMenuBadge)) {
194
+ /* Use base menu padding tokens */
195
+ :where(.rt-SidebarContent.rt-r-size-1) & {
196
+ padding-right: var(--base-menu-item-padding-y); /* Matches top/bottom padding */
197
+ }
198
+
199
+ :where(.rt-SidebarContent.rt-r-size-2) & {
200
+ padding-right: var(--base-menu-item-padding-y); /* Matches top/bottom padding */
201
+ }
202
+ }
203
+
204
+ .rt-SidebarMenuShortcut {
205
+ display: flex;
206
+ align-items: center;
207
+ margin-left: auto;
208
+ padding-left: var(--space-4);
209
+ color: var(--gray-a11);
210
+ }
211
+
212
+ .rt-SidebarMenuBadge {
213
+ display: flex;
214
+ align-items: center;
215
+ margin-left: auto;
216
+ padding-left: var(--space-2);
217
+ }
218
+
219
+ /* Add balanced spacing for sidebar menu items while preserving base menu border radius */
220
+ .rt-SidebarContent :where(.rt-BaseMenuItem) {
221
+ margin-top: calc(var(--space-1) / 2);
222
+ margin-bottom: calc(var(--space-1) / 2);
223
+ }
@@ -0,0 +1,141 @@
1
+ /* Base Sidebar Layout and Container Styles */
2
+
3
+ /* Sidebar Provider - handles positioning */
4
+ .rt-SidebarProvider {
5
+ /* Positioning based on side */
6
+ &:where([data-side="left"]) {
7
+ /* Left side is default - no additional positioning needed */
8
+ order: -1; /* Ensure it appears first in flex container */
9
+ }
10
+
11
+ &:where([data-side="right"]) {
12
+ /* Position on the right side */
13
+ order: 999; /* Push to end in flex container */
14
+ }
15
+ }
16
+
17
+ /* Sidebar Root Container */
18
+ .rt-SidebarRoot {
19
+ --sidebar-width: 16rem; /* Fixed width */
20
+ --sidebar-base-border-radius: 0; /* Default to no radius */
21
+
22
+ width: var(--sidebar-width);
23
+ height: 100%;
24
+ flex-shrink: 0;
25
+ display: flex;
26
+ flex-direction: column;
27
+
28
+ /* Make sure Theme wrapper also participates in flex layout */
29
+ & :where(.radix-themes) {
30
+ display: flex;
31
+ flex-direction: column;
32
+ flex: 1;
33
+ height: 100%;
34
+ }
35
+
36
+ /* Floating type - ONLY visual changes */
37
+ &:where([data-type="floating"]) {
38
+ border-radius: var(--sidebar-base-border-radius);
39
+ margin: var(--space-2);
40
+ height: calc(100% - var(--space-4));
41
+ overflow: visible; /* Ensure shadow is not clipped */
42
+ position: relative; /* Ensure proper stacking context for floating sidebars */
43
+
44
+ /* Ensure Theme wrapper has proper border radius in floating mode */
45
+ & :where(.radix-themes) {
46
+ border-radius: inherit;
47
+ }
48
+ }
49
+ }
50
+
51
+ /* Set border radius for floating sidebars based on size - set on the root where it's used */
52
+ .rt-SidebarRoot:where([data-type="floating"]) {
53
+ /* Default radius for floating sidebars */
54
+ --sidebar-base-border-radius: var(--radius-5);
55
+
56
+ &:where(.rt-r-size-1) {
57
+ --sidebar-base-border-radius: var(--radius-5);
58
+ }
59
+
60
+ &:where(.rt-r-size-2) {
61
+ --sidebar-base-border-radius: var(--radius-6);
62
+ }
63
+ }
64
+
65
+ /* Sidebar Container */
66
+ .rt-SidebarContainer {
67
+ --sidebar-base-border-radius: 0; /* Default to no radius */
68
+ display: flex;
69
+ flex-direction: column;
70
+ height: 100%;
71
+ width: 100%;
72
+ background-color: var(--color-panel);
73
+ backdrop-filter: var(--backdrop-filter-panel);
74
+ border-radius: inherit;
75
+ flex: 1;
76
+ }
77
+
78
+ /* Sidebar Header */
79
+ .rt-SidebarHeader {
80
+ display: flex;
81
+ flex-direction: column;
82
+ flex-shrink: 0;
83
+ border-radius: var(--sidebar-base-border-radius) var(--sidebar-base-border-radius) 0 0;
84
+ }
85
+
86
+ /* Sidebar Content - based on rt-BaseMenuContent */
87
+ .rt-SidebarContent {
88
+ --scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);
89
+ --scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);
90
+ --scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);
91
+ --scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding);
92
+
93
+ display: flex;
94
+ flex-direction: column;
95
+ flex: 1;
96
+ box-sizing: border-box;
97
+ min-height: 0; /* Critical for flex children to shrink */
98
+
99
+ /* Override base menu styling that's not appropriate for sidebars */
100
+ background-color: transparent !important;
101
+ backdrop-filter: none !important;
102
+ box-shadow: none !important;
103
+ border-radius: 0 !important;
104
+
105
+ /* Ensure ScrollArea takes full height within SidebarContent */
106
+ & :where(.rt-ScrollAreaRoot) {
107
+ flex: 1;
108
+ display: flex;
109
+ flex-direction: column;
110
+ min-height: 0;
111
+ }
112
+
113
+ & :where(.rt-ScrollAreaViewport) {
114
+ flex: 1;
115
+ display: flex;
116
+ flex-direction: column;
117
+ min-height: 0;
118
+ }
119
+ }
120
+
121
+ /* Sidebar Footer */
122
+ .rt-SidebarFooter {
123
+ display: flex;
124
+ flex-direction: column;
125
+ flex-shrink: 0;
126
+ margin-top: auto;
127
+ border-radius: 0 0 var(--sidebar-base-border-radius) var(--sidebar-base-border-radius);
128
+ }
129
+
130
+ /* Sidebar Separator - ensure full width and proper spacing */
131
+ .rt-SidebarSeparator {
132
+ width: 100%;
133
+ margin: var(--space-2) 0;
134
+ }
135
+
136
+ /* Responsive behavior */
137
+ @media (max-width: 768px) {
138
+ .rt-SidebarRoot {
139
+ display: none;
140
+ }
141
+ }