@raystack/apsara 0.48.2 → 0.48.4

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 (122) hide show
  1. package/dist/components/avatar/avatar.cjs +1 -1
  2. package/dist/components/avatar/avatar.cjs.map +1 -1
  3. package/dist/components/avatar/avatar.d.ts.map +1 -1
  4. package/dist/components/avatar/avatar.js +1 -1
  5. package/dist/components/avatar/avatar.js.map +1 -1
  6. package/dist/components/breadcrumb/breadcrumb-item.cjs +26 -0
  7. package/dist/components/breadcrumb/breadcrumb-item.cjs.map +1 -0
  8. package/dist/components/breadcrumb/breadcrumb-item.d.ts +14 -0
  9. package/dist/components/breadcrumb/breadcrumb-item.d.ts.map +1 -0
  10. package/dist/components/breadcrumb/breadcrumb-item.js +24 -0
  11. package/dist/components/breadcrumb/breadcrumb-item.js.map +1 -0
  12. package/dist/components/breadcrumb/breadcrumb-misc.cjs +20 -0
  13. package/dist/components/breadcrumb/breadcrumb-misc.cjs.map +1 -0
  14. package/dist/components/breadcrumb/breadcrumb-misc.d.ts +8 -0
  15. package/dist/components/breadcrumb/breadcrumb-misc.d.ts.map +1 -0
  16. package/dist/components/breadcrumb/breadcrumb-misc.js +17 -0
  17. package/dist/components/breadcrumb/breadcrumb-misc.js.map +1 -0
  18. package/dist/components/breadcrumb/breadcrumb-root.cjs +25 -0
  19. package/dist/components/breadcrumb/breadcrumb-root.cjs.map +1 -0
  20. package/dist/components/breadcrumb/breadcrumb-root.d.ts +10 -0
  21. package/dist/components/breadcrumb/breadcrumb-root.d.ts.map +1 -0
  22. package/dist/components/breadcrumb/breadcrumb-root.js +23 -0
  23. package/dist/components/breadcrumb/breadcrumb-root.js.map +1 -0
  24. package/dist/components/breadcrumb/breadcrumb.cjs +7 -53
  25. package/dist/components/breadcrumb/breadcrumb.cjs.map +1 -1
  26. package/dist/components/breadcrumb/breadcrumb.d.ts +5 -27
  27. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  28. package/dist/components/breadcrumb/breadcrumb.js +7 -53
  29. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  30. package/dist/components/breadcrumb/breadcrumb.module.css.cjs +1 -1
  31. package/dist/components/breadcrumb/breadcrumb.module.css.js +1 -1
  32. package/dist/components/breadcrumb/index.d.ts +1 -1
  33. package/dist/components/data-table/utils/filter-operations.cjs +46 -22
  34. package/dist/components/data-table/utils/filter-operations.cjs.map +1 -1
  35. package/dist/components/data-table/utils/filter-operations.d.ts +10 -9
  36. package/dist/components/data-table/utils/filter-operations.d.ts.map +1 -1
  37. package/dist/components/data-table/utils/filter-operations.js +46 -22
  38. package/dist/components/data-table/utils/filter-operations.js.map +1 -1
  39. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs +1 -1
  40. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs.map +1 -1
  41. package/dist/components/dropdown-menu/dropdown-menu-misc.js +1 -1
  42. package/dist/components/dropdown-menu/dropdown-menu-misc.js.map +1 -1
  43. package/dist/components/dropdown-menu/dropdown-menu-root.cjs +10 -10
  44. package/dist/components/dropdown-menu/dropdown-menu-root.cjs.map +1 -1
  45. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +8 -5
  46. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts.map +1 -1
  47. package/dist/components/dropdown-menu/dropdown-menu-root.js +11 -11
  48. package/dist/components/dropdown-menu/dropdown-menu-root.js.map +1 -1
  49. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs +6 -2
  50. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs.map +1 -1
  51. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts +1 -0
  52. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts.map +1 -1
  53. package/dist/components/dropdown-menu/dropdown-menu-trigger.js +6 -2
  54. package/dist/components/dropdown-menu/dropdown-menu-trigger.js.map +1 -1
  55. package/dist/components/dropdown-menu/dropdown-menu.d.ts +1 -1
  56. package/dist/components/filter-chip/filter-chip-operation.cjs +31 -0
  57. package/dist/components/filter-chip/filter-chip-operation.cjs.map +1 -0
  58. package/dist/components/filter-chip/filter-chip-operation.d.ts +11 -0
  59. package/dist/components/filter-chip/filter-chip-operation.d.ts.map +1 -0
  60. package/dist/components/filter-chip/filter-chip-operation.js +29 -0
  61. package/dist/components/filter-chip/filter-chip-operation.js.map +1 -0
  62. package/dist/components/filter-chip/filter-chip.cjs +37 -41
  63. package/dist/components/filter-chip/filter-chip.cjs.map +1 -1
  64. package/dist/components/filter-chip/filter-chip.d.ts +6 -5
  65. package/dist/components/filter-chip/filter-chip.d.ts.map +1 -1
  66. package/dist/components/filter-chip/filter-chip.js +37 -41
  67. package/dist/components/filter-chip/filter-chip.js.map +1 -1
  68. package/dist/components/filter-chip/filter-chip.module.css.cjs +1 -1
  69. package/dist/components/filter-chip/filter-chip.module.css.js +1 -1
  70. package/dist/components/select/select-item.cjs +2 -1
  71. package/dist/components/select/select-item.cjs.map +1 -1
  72. package/dist/components/select/select-item.d.ts.map +1 -1
  73. package/dist/components/select/select-item.js +2 -1
  74. package/dist/components/select/select-item.js.map +1 -1
  75. package/dist/components/select/select-root.cjs +2 -2
  76. package/dist/components/select/select-root.cjs.map +1 -1
  77. package/dist/components/select/select-root.d.ts.map +1 -1
  78. package/dist/components/select/select-root.js +2 -2
  79. package/dist/components/select/select-root.js.map +1 -1
  80. package/dist/components/sidebar/index.d.ts +1 -1
  81. package/dist/components/sidebar/sidebar.cjs +11 -12
  82. package/dist/components/sidebar/sidebar.cjs.map +1 -1
  83. package/dist/components/sidebar/sidebar.d.ts +5 -10
  84. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  85. package/dist/components/sidebar/sidebar.js +12 -13
  86. package/dist/components/sidebar/sidebar.js.map +1 -1
  87. package/dist/components/sidebar/sidebar.module.css.cjs +1 -1
  88. package/dist/components/sidebar/sidebar.module.css.js +1 -1
  89. package/dist/components/tooltip/index.d.ts +1 -1
  90. package/dist/components/tooltip/index.d.ts.map +1 -1
  91. package/dist/components/tooltip/tooltip-provider.cjs +17 -0
  92. package/dist/components/tooltip/tooltip-provider.cjs.map +1 -0
  93. package/dist/components/tooltip/tooltip-provider.d.ts +9 -0
  94. package/dist/components/tooltip/tooltip-provider.d.ts.map +1 -0
  95. package/dist/components/tooltip/tooltip-provider.js +14 -0
  96. package/dist/components/tooltip/tooltip-provider.js.map +1 -0
  97. package/dist/components/tooltip/tooltip-root.cjs +65 -0
  98. package/dist/components/tooltip/tooltip-root.cjs.map +1 -0
  99. package/dist/components/tooltip/tooltip-root.d.ts +29 -0
  100. package/dist/components/tooltip/tooltip-root.d.ts.map +1 -0
  101. package/dist/components/tooltip/tooltip-root.js +62 -0
  102. package/dist/components/tooltip/tooltip-root.js.map +1 -0
  103. package/dist/components/tooltip/tooltip.cjs +4 -50
  104. package/dist/components/tooltip/tooltip.cjs.map +1 -1
  105. package/dist/components/tooltip/tooltip.d.ts +3 -30
  106. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  107. package/dist/components/tooltip/tooltip.js +5 -50
  108. package/dist/components/tooltip/tooltip.js.map +1 -1
  109. package/dist/index.cjs +0 -1
  110. package/dist/index.cjs.map +1 -1
  111. package/dist/index.d.ts +1 -1
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +1 -1
  114. package/dist/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.7_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-tooltip/dist/index.cjs +8 -8
  115. package/dist/style.css +1 -1
  116. package/dist/types/filters.cjs +26 -21
  117. package/dist/types/filters.cjs.map +1 -1
  118. package/dist/types/filters.d.ts +19 -6
  119. package/dist/types/filters.d.ts.map +1 -1
  120. package/dist/types/filters.js +26 -21
  121. package/dist/types/filters.js.map +1 -1
  122. package/package.json +1 -1
@@ -3,6 +3,9 @@
3
3
  var jsxRuntime = require('../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
4
  var index$1 = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
5
5
  var React = require('react');
6
+ var avatar = require('../avatar/avatar.cjs');
7
+ var utils = require('../avatar/utils.cjs');
8
+ var flex = require('../flex/flex.cjs');
6
9
  var tooltip = require('../tooltip/tooltip.cjs');
7
10
  var sidebar_module = require('./sidebar.module.css.cjs');
8
11
  var index = require('../../node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18_qdnr5tshbuses2czt45n43so7q/node_modules/@radix-ui/react-collapsible/dist/index.cjs');
@@ -11,21 +14,16 @@ const SidebarContext = React.createContext({
11
14
  isCollapsed: false
12
15
  });
13
16
  const root = index$1.cva(sidebar_module.default.root);
14
- const SidebarRoot = React.forwardRef(({ className, position = 'left', open, onOpenChange, hideCollapsedItemTooltip, collapsible = true, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx(SidebarContext.Provider, { value: { isCollapsed: !open, hideCollapsedItemTooltip }, children: jsxRuntime.jsxRuntimeExports.jsx(tooltip.TooltipProvider, { children: jsxRuntime.jsxRuntimeExports.jsx(index.Root, { ref: ref, className: root({ className }), "data-position": position, "data-state": open ? 'expanded' : 'collapsed', "data-collapse-disabled": !collapsible, open: open, onOpenChange: collapsible ? onOpenChange : undefined, "aria-label": 'Navigation Sidebar', "aria-expanded": open, role: 'navigation', ...props, asChild: true, children: jsxRuntime.jsxRuntimeExports.jsxs("aside", { children: [collapsible && (jsxRuntime.jsxRuntimeExports.jsx(tooltip.Tooltip, { message: open ? 'Click to collapse' : 'Click to expand', side: position === 'left' ? 'right' : 'left', asChild: true, followCursor: true, sideOffset: 10, children: jsxRuntime.jsxRuntimeExports.jsx("div", { className: sidebar_module.default.resizeHandle, onClick: () => onOpenChange?.(!open), role: 'button', tabIndex: 0, "aria-label": open ? 'Collapse sidebar' : 'Expand sidebar', onKeyDown: e => {
17
+ const SidebarRoot = React.forwardRef(({ className, position = 'left', open, onOpenChange, hideCollapsedItemTooltip, collapsible = true, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx(SidebarContext.Provider, { value: { isCollapsed: !open, hideCollapsedItemTooltip }, children: jsxRuntime.jsxRuntimeExports.jsx(tooltip.Tooltip.Provider, { children: jsxRuntime.jsxRuntimeExports.jsx(index.Root, { ref: ref, className: root({ className }), "data-position": position, "data-state": open ? 'expanded' : 'collapsed', "data-collapse-disabled": !collapsible, open: open, onOpenChange: collapsible ? onOpenChange : undefined, "aria-label": 'Navigation Sidebar', "aria-expanded": open, role: 'navigation', ...props, asChild: true, children: jsxRuntime.jsxRuntimeExports.jsxs("aside", { children: [collapsible && (jsxRuntime.jsxRuntimeExports.jsx(tooltip.Tooltip, { message: open ? 'Click to collapse' : 'Click to expand', side: position === 'left' ? 'right' : 'left', asChild: true, followCursor: true, sideOffset: 10, children: jsxRuntime.jsxRuntimeExports.jsx("div", { className: sidebar_module.default.resizeHandle, onClick: () => onOpenChange?.(!open), role: 'button', tabIndex: 0, "aria-label": open ? 'Collapse sidebar' : 'Expand sidebar', onKeyDown: e => {
15
18
  if (e.key === 'Enter' || e.key === ' ') {
16
19
  e.preventDefault();
17
20
  onOpenChange?.(!open);
18
21
  }
19
22
  } }) })), children] }) }) }) })));
20
- const SidebarHeader = React.forwardRef(({ className, logo, title, onLogoClick, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsxs("div", { ref: ref, className: sidebar_module.default.header, role: 'banner', ...props, children: [jsxRuntime.jsxRuntimeExports.jsx("div", { className: sidebar_module.default.logo, onClick: onLogoClick, role: onLogoClick ? 'button' : undefined, tabIndex: onLogoClick ? 0 : undefined, onKeyDown: e => {
21
- if (onLogoClick && (e.key === 'Enter' || e.key === ' ')) {
22
- e.preventDefault();
23
- onLogoClick();
24
- }
25
- }, style: { cursor: onLogoClick ? 'pointer' : undefined }, children: logo }), jsxRuntime.jsxRuntimeExports.jsx("div", { className: sidebar_module.default.title, role: 'heading', "aria-level": 1, children: title })] })));
26
- const SidebarMain = React.forwardRef(({ className, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx("div", { ref: ref, className: sidebar_module.default.main, role: 'group', "aria-label": 'Main navigation', ...props, children: children })));
27
- const SidebarFooter = React.forwardRef(({ className, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx("div", { ref: ref, className: sidebar_module.default.footer, role: 'group', "aria-label": 'Footer navigation', ...props, children: children })));
28
- const SidebarItem = React.forwardRef(({ classNames, icon, children, active, disabled, as = jsxRuntime.jsxRuntimeExports.jsx("a", {}), ...props }, ref) => {
23
+ const SidebarHeader = React.forwardRef(({ className, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { align: 'center', ref: ref, className: sidebar_module.default.header, role: 'banner', ...props, children: children })));
24
+ const SidebarMain = React.forwardRef(({ className, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { ref: ref, className: sidebar_module.default.main, direction: 'column', role: 'group', "aria-label": 'Main navigation', ...props, children: children })));
25
+ const SidebarFooter = React.forwardRef(({ className, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { ref: ref, className: sidebar_module.default.footer, direction: 'column', role: 'group', "aria-label": 'Footer navigation', ...props, children: children })));
26
+ const SidebarItem = React.forwardRef(({ classNames, leadingIcon, children, active, disabled, as = jsxRuntime.jsxRuntimeExports.jsx("a", {}), ...props }, ref) => {
29
27
  const { isCollapsed, hideCollapsedItemTooltip } = React.useContext(SidebarContext); // To prevent prop drillng
30
28
  const content = React.cloneElement(as, {
31
29
  ref,
@@ -36,13 +34,14 @@ const SidebarItem = React.forwardRef(({ classNames, icon, children, active, disa
36
34
  'aria-current': active ? 'page' : undefined,
37
35
  'aria-disabled': disabled,
38
36
  ...props
39
- }, jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [jsxRuntime.jsxRuntimeExports.jsx("span", { className: index$1.cx(sidebar_module.default['nav-icon'], classNames?.icon), "aria-hidden": 'true', children: icon }), !isCollapsed && jsxRuntime.jsxRuntimeExports.jsx("span", { className: sidebar_module.default['nav-text'], children: children })] }));
37
+ }, jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { align: 'center', gap: 3, className: index$1.cx(sidebar_module.default['nav-leading-icon'], classNames?.leadingIcon), "aria-hidden": 'true', children: leadingIcon ||
38
+ (typeof children === 'string' && children.length > 0 ? (jsxRuntime.jsxRuntimeExports.jsx(avatar.Avatar, { size: 1, variant: 'soft', color: utils.getAvatarColor(children), fallback: children[0].toUpperCase(), style: { cursor: 'pointer' } })) : null) }), !isCollapsed && jsxRuntime.jsxRuntimeExports.jsx("span", { className: sidebar_module.default['nav-text'], children: children })] }));
40
39
  if (isCollapsed && !hideCollapsedItemTooltip) {
41
40
  return (jsxRuntime.jsxRuntimeExports.jsx(tooltip.Tooltip, { message: children, side: 'right', children: content }));
42
41
  }
43
42
  return content;
44
43
  });
45
- const SidebarNavigationGroup = React.forwardRef(({ className, name, icon, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsxs("section", { ref: ref, className: className, "aria-label": name, ...props, children: [jsxRuntime.jsxRuntimeExports.jsxs("div", { className: sidebar_module.default['nav-group-header'], children: [icon && jsxRuntime.jsxRuntimeExports.jsx("span", { className: sidebar_module.default['nav-icon'], children: icon }), jsxRuntime.jsxRuntimeExports.jsx("span", { className: sidebar_module.default['nav-group-name'], children: name })] }), jsxRuntime.jsxRuntimeExports.jsx("div", { className: sidebar_module.default['nav-group-items'], role: 'list', children: children })] })));
44
+ const SidebarNavigationGroup = React.forwardRef(({ className, label, leadingIcon, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsxs("section", { ref: ref, className: index$1.cx(sidebar_module.default['nav-group'], className), "aria-label": label, ...props, children: [jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { align: 'center', gap: 3, className: sidebar_module.default['nav-group-header'], children: [leadingIcon && (jsxRuntime.jsxRuntimeExports.jsx("span", { className: sidebar_module.default['nav-leading-icon'], children: leadingIcon })), jsxRuntime.jsxRuntimeExports.jsx("span", { className: sidebar_module.default['nav-group-label'], children: label })] }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { direction: 'column', className: sidebar_module.default['nav-group-items'], role: 'list', children: children })] })));
46
45
  SidebarRoot.displayName = 'Sidebar.Root';
47
46
  SidebarHeader.displayName = 'Sidebar.Header';
48
47
  SidebarMain.displayName = 'Sidebar.Main';
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.cjs","sources":["../../../components/sidebar/sidebar.tsx"],"sourcesContent":["import { cva, cx } from 'class-variance-authority';\nimport { Collapsible } from 'radix-ui';\nimport {\n ComponentPropsWithoutRef,\n ComponentRef,\n ReactElement,\n ReactNode,\n cloneElement,\n createContext,\n forwardRef,\n useContext\n} from 'react';\nimport { Tooltip, TooltipProvider } from '../tooltip';\nimport styles from './sidebar.module.css';\n\ninterface SidebarContextValue {\n isCollapsed: boolean;\n hideCollapsedItemTooltip?: boolean;\n}\n\nconst SidebarContext = createContext<SidebarContextValue>({\n isCollapsed: false\n});\n\nconst root = cva(styles.root);\n\ninterface SidebarProps\n extends ComponentPropsWithoutRef<typeof Collapsible.Root> {\n position?: 'left' | 'right';\n hideCollapsedItemTooltip?: boolean;\n collapsible?: boolean;\n}\n\ninterface SidebarHeaderProps extends ComponentPropsWithoutRef<'div'> {\n logo: ReactNode;\n title: string;\n onLogoClick?: () => void;\n}\n\ninterface SidebarItemProps extends ComponentPropsWithoutRef<'a'> {\n icon?: ReactNode;\n active?: boolean;\n disabled?: boolean;\n as?: ReactElement;\n classNames?: {\n root?: string;\n icon?: string;\n text?: string;\n };\n}\n\ninterface SidebarFooterProps extends ComponentPropsWithoutRef<'div'> {}\n\ninterface SidebarNavigationGroupProps extends ComponentPropsWithoutRef<'div'> {\n name: string;\n icon?: ReactNode;\n}\n\nconst SidebarRoot = forwardRef<\n ComponentRef<typeof Collapsible.Root>,\n SidebarProps\n>(\n (\n {\n className,\n position = 'left',\n open,\n onOpenChange,\n hideCollapsedItemTooltip,\n collapsible = true,\n children,\n ...props\n },\n ref\n ) => (\n <SidebarContext.Provider\n value={{ isCollapsed: !open, hideCollapsedItemTooltip }}\n >\n <TooltipProvider>\n <Collapsible.Root\n ref={ref}\n className={root({ className })}\n data-position={position}\n data-state={open ? 'expanded' : 'collapsed'}\n data-collapse-disabled={!collapsible}\n open={open}\n onOpenChange={collapsible ? onOpenChange : undefined}\n aria-label='Navigation Sidebar'\n aria-expanded={open}\n role='navigation'\n {...props}\n asChild\n >\n <aside>\n {collapsible && (\n <Tooltip\n message={open ? 'Click to collapse' : 'Click to expand'}\n side={position === 'left' ? 'right' : 'left'}\n asChild\n followCursor\n sideOffset={10}\n >\n <div\n className={styles.resizeHandle}\n onClick={() => onOpenChange?.(!open)}\n role='button'\n tabIndex={0}\n aria-label={open ? 'Collapse sidebar' : 'Expand sidebar'}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onOpenChange?.(!open);\n }\n }}\n />\n </Tooltip>\n )}\n {children}\n </aside>\n </Collapsible.Root>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n);\n\nconst SidebarHeader = forwardRef<HTMLDivElement, SidebarHeaderProps>(\n ({ className, logo, title, onLogoClick, ...props }, ref) => (\n <div ref={ref} className={styles.header} role='banner' {...props}>\n <div\n className={styles.logo}\n onClick={onLogoClick}\n role={onLogoClick ? 'button' : undefined}\n tabIndex={onLogoClick ? 0 : undefined}\n onKeyDown={e => {\n if (onLogoClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onLogoClick();\n }\n }}\n style={{ cursor: onLogoClick ? 'pointer' : undefined }}\n >\n {logo}\n </div>\n <div className={styles.title} role='heading' aria-level={1}>\n {title}\n </div>\n </div>\n )\n);\n\nconst SidebarMain = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={styles.main}\n role='group'\n aria-label='Main navigation'\n {...props}\n >\n {children}\n </div>\n )\n);\n\nconst SidebarFooter = forwardRef<HTMLDivElement, SidebarFooterProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={styles.footer}\n role='group'\n aria-label='Footer navigation'\n {...props}\n >\n {children}\n </div>\n )\n);\n\nconst SidebarItem = forwardRef<HTMLAnchorElement, SidebarItemProps>(\n (\n { classNames, icon, children, active, disabled, as = <a />, ...props },\n ref\n ) => {\n const { isCollapsed, hideCollapsedItemTooltip } =\n useContext(SidebarContext); // To prevent prop drillng\n\n const content = cloneElement(\n as,\n {\n ref,\n className: cx(styles['nav-item'], classNames?.root),\n 'data-active': active,\n 'data-disabled': disabled,\n role: 'menuitem',\n 'aria-current': active ? 'page' : undefined,\n 'aria-disabled': disabled,\n ...props\n },\n <>\n <span\n className={cx(styles['nav-icon'], classNames?.icon)}\n aria-hidden='true'\n >\n {icon}\n </span>\n {!isCollapsed && <span className={styles['nav-text']}>{children}</span>}\n </>\n );\n\n if (isCollapsed && !hideCollapsedItemTooltip) {\n return (\n <Tooltip message={children} side='right'>\n {content}\n </Tooltip>\n );\n }\n\n return content;\n }\n);\n\nconst SidebarNavigationGroup = forwardRef<\n HTMLElement,\n SidebarNavigationGroupProps\n>(({ className, name, icon, children, ...props }, ref) => (\n <section ref={ref} className={className} aria-label={name} {...props}>\n <div className={styles['nav-group-header']}>\n {icon && <span className={styles['nav-icon']}>{icon}</span>}\n <span className={styles['nav-group-name']}>{name}</span>\n </div>\n <div className={styles['nav-group-items']} role='list'>\n {children}\n </div>\n </section>\n));\n\nSidebarRoot.displayName = 'Sidebar.Root';\nSidebarHeader.displayName = 'Sidebar.Header';\nSidebarMain.displayName = 'Sidebar.Main';\nSidebarFooter.displayName = 'Sidebar.Footer';\nSidebarItem.displayName = 'Sidebar.Item';\nSidebarNavigationGroup.displayName = 'Sidebar.Group';\n\nexport const Sidebar = Object.assign(SidebarRoot, {\n Header: SidebarHeader,\n Main: SidebarMain,\n Footer: SidebarFooter,\n Item: SidebarItem,\n Group: SidebarNavigationGroup\n});\n"],"names":["createContext","cva","styles","forwardRef","_jsx","TooltipProvider","Collapsible.Root","_jsxs","Tooltip","useContext","cloneElement","cx"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.cjs","sources":["../../../components/sidebar/sidebar.tsx"],"sourcesContent":["import { cva, cx } from 'class-variance-authority';\nimport { Collapsible } from 'radix-ui';\nimport {\n ComponentPropsWithoutRef,\n ComponentRef,\n ReactElement,\n ReactNode,\n cloneElement,\n createContext,\n forwardRef,\n useContext\n} from 'react';\nimport { Avatar, getAvatarColor } from '../avatar';\nimport { Flex } from '../flex';\nimport { Tooltip } from '../tooltip';\nimport styles from './sidebar.module.css';\n\ninterface SidebarContextValue {\n isCollapsed: boolean;\n hideCollapsedItemTooltip?: boolean;\n}\n\nconst SidebarContext = createContext<SidebarContextValue>({\n isCollapsed: false\n});\n\nconst root = cva(styles.root);\n\ninterface SidebarProps\n extends ComponentPropsWithoutRef<typeof Collapsible.Root> {\n position?: 'left' | 'right';\n hideCollapsedItemTooltip?: boolean;\n collapsible?: boolean;\n}\n\ninterface SidebarItemProps extends ComponentPropsWithoutRef<'a'> {\n leadingIcon?: ReactNode;\n active?: boolean;\n disabled?: boolean;\n as?: ReactElement;\n classNames?: {\n root?: string;\n leadingIcon?: string;\n text?: string;\n };\n}\n\ninterface SidebarFooterProps extends ComponentPropsWithoutRef<'div'> {}\n\ninterface SidebarNavigationGroupProps extends ComponentPropsWithoutRef<'div'> {\n label: string;\n leadingIcon?: ReactNode;\n}\n\nconst SidebarRoot = forwardRef<\n ComponentRef<typeof Collapsible.Root>,\n SidebarProps\n>(\n (\n {\n className,\n position = 'left',\n open,\n onOpenChange,\n hideCollapsedItemTooltip,\n collapsible = true,\n children,\n ...props\n },\n ref\n ) => (\n <SidebarContext.Provider\n value={{ isCollapsed: !open, hideCollapsedItemTooltip }}\n >\n <Tooltip.Provider>\n <Collapsible.Root\n ref={ref}\n className={root({ className })}\n data-position={position}\n data-state={open ? 'expanded' : 'collapsed'}\n data-collapse-disabled={!collapsible}\n open={open}\n onOpenChange={collapsible ? onOpenChange : undefined}\n aria-label='Navigation Sidebar'\n aria-expanded={open}\n role='navigation'\n {...props}\n asChild\n >\n <aside>\n {collapsible && (\n <Tooltip\n message={open ? 'Click to collapse' : 'Click to expand'}\n side={position === 'left' ? 'right' : 'left'}\n asChild\n followCursor\n sideOffset={10}\n >\n <div\n className={styles.resizeHandle}\n onClick={() => onOpenChange?.(!open)}\n role='button'\n tabIndex={0}\n aria-label={open ? 'Collapse sidebar' : 'Expand sidebar'}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onOpenChange?.(!open);\n }\n }}\n />\n </Tooltip>\n )}\n {children}\n </aside>\n </Collapsible.Root>\n </Tooltip.Provider>\n </SidebarContext.Provider>\n )\n);\n\nconst SidebarHeader = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<'div'>\n>(({ className, children, ...props }, ref) => (\n <Flex\n align='center'\n ref={ref}\n className={styles.header}\n role='banner'\n {...props}\n >\n {children}\n </Flex>\n));\n\nconst SidebarMain = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n ({ className, children, ...props }, ref) => (\n <Flex\n ref={ref}\n className={styles.main}\n direction='column'\n role='group'\n aria-label='Main navigation'\n {...props}\n >\n {children}\n </Flex>\n )\n);\n\nconst SidebarFooter = forwardRef<HTMLDivElement, SidebarFooterProps>(\n ({ className, children, ...props }, ref) => (\n <Flex\n ref={ref}\n className={styles.footer}\n direction='column'\n role='group'\n aria-label='Footer navigation'\n {...props}\n >\n {children}\n </Flex>\n )\n);\n\nconst SidebarItem = forwardRef<HTMLAnchorElement, SidebarItemProps>(\n (\n {\n classNames,\n leadingIcon,\n children,\n active,\n disabled,\n as = <a />,\n ...props\n },\n ref\n ) => {\n const { isCollapsed, hideCollapsedItemTooltip } =\n useContext(SidebarContext); // To prevent prop drillng\n\n const content = cloneElement(\n as,\n {\n ref,\n className: cx(styles['nav-item'], classNames?.root),\n 'data-active': active,\n 'data-disabled': disabled,\n role: 'menuitem',\n 'aria-current': active ? 'page' : undefined,\n 'aria-disabled': disabled,\n ...props\n },\n <>\n <Flex\n align='center'\n gap={3}\n className={cx(styles['nav-leading-icon'], classNames?.leadingIcon)}\n aria-hidden='true'\n >\n {leadingIcon ||\n (typeof children === 'string' && children.length > 0 ? (\n <Avatar\n size={1}\n variant='soft'\n color={getAvatarColor(children)}\n fallback={children[0].toUpperCase()}\n style={{ cursor: 'pointer' }}\n />\n ) : null)}\n </Flex>\n {!isCollapsed && <span className={styles['nav-text']}>{children}</span>}\n </>\n );\n\n if (isCollapsed && !hideCollapsedItemTooltip) {\n return (\n <Tooltip message={children} side='right'>\n {content}\n </Tooltip>\n );\n }\n\n return content;\n }\n);\n\nconst SidebarNavigationGroup = forwardRef<\n HTMLElement,\n SidebarNavigationGroupProps\n>(({ className, label, leadingIcon, children, ...props }, ref) => (\n <section\n ref={ref}\n className={cx(styles['nav-group'], className)}\n aria-label={label}\n {...props}\n >\n <Flex align='center' gap={3} className={styles['nav-group-header']}>\n {leadingIcon && (\n <span className={styles['nav-leading-icon']}>{leadingIcon}</span>\n )}\n <span className={styles['nav-group-label']}>{label}</span>\n </Flex>\n <Flex direction='column' className={styles['nav-group-items']} role='list'>\n {children}\n </Flex>\n </section>\n));\n\nSidebarRoot.displayName = 'Sidebar.Root';\nSidebarHeader.displayName = 'Sidebar.Header';\nSidebarMain.displayName = 'Sidebar.Main';\nSidebarFooter.displayName = 'Sidebar.Footer';\nSidebarItem.displayName = 'Sidebar.Item';\nSidebarNavigationGroup.displayName = 'Sidebar.Group';\n\nexport const Sidebar = Object.assign(SidebarRoot, {\n Header: SidebarHeader,\n Main: SidebarMain,\n Footer: SidebarFooter,\n Item: SidebarItem,\n Group: SidebarNavigationGroup\n});\n"],"names":["createContext","cva","styles","forwardRef","_jsx","Tooltip","Collapsible.Root","_jsxs","Flex","useContext","cloneElement","cx","_Fragment","Avatar","getAvatarColor"],"mappings":"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"}
@@ -5,30 +5,25 @@ interface SidebarProps extends ComponentPropsWithoutRef<typeof Collapsible.Root>
5
5
  hideCollapsedItemTooltip?: boolean;
6
6
  collapsible?: boolean;
7
7
  }
8
- interface SidebarHeaderProps extends ComponentPropsWithoutRef<'div'> {
9
- logo: ReactNode;
10
- title: string;
11
- onLogoClick?: () => void;
12
- }
13
8
  interface SidebarItemProps extends ComponentPropsWithoutRef<'a'> {
14
- icon?: ReactNode;
9
+ leadingIcon?: ReactNode;
15
10
  active?: boolean;
16
11
  disabled?: boolean;
17
12
  as?: ReactElement;
18
13
  classNames?: {
19
14
  root?: string;
20
- icon?: string;
15
+ leadingIcon?: string;
21
16
  text?: string;
22
17
  };
23
18
  }
24
19
  interface SidebarFooterProps extends ComponentPropsWithoutRef<'div'> {
25
20
  }
26
21
  interface SidebarNavigationGroupProps extends ComponentPropsWithoutRef<'div'> {
27
- name: string;
28
- icon?: ReactNode;
22
+ label: string;
23
+ leadingIcon?: ReactNode;
29
24
  }
30
25
  export declare const Sidebar: import("react").ForwardRefExoticComponent<SidebarProps & import("react").RefAttributes<HTMLDivElement>> & {
31
- Header: import("react").ForwardRefExoticComponent<SidebarHeaderProps & import("react").RefAttributes<HTMLDivElement>>;
26
+ Header: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
32
27
  Main: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
33
28
  Footer: import("react").ForwardRefExoticComponent<SidebarFooterProps & import("react").RefAttributes<HTMLDivElement>>;
34
29
  Item: import("react").ForwardRefExoticComponent<SidebarItemProps & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../components/sidebar/sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACL,wBAAwB,EAExB,YAAY,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAef,UAAU,YACR,SAAQ,wBAAwB,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,kBAAmB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAClE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,UAAU,gBAAiB,SAAQ,wBAAwB,CAAC,GAAG,CAAC;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,UAAU,kBAAmB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAEvE,UAAU,2BAA4B,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AA2LD,eAAO,MAAM,OAAO;;;;;;CAMlB,CAAC"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../components/sidebar/sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACL,wBAAwB,EAExB,YAAY,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAiBf,UAAU,YACR,SAAQ,wBAAwB,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,gBAAiB,SAAQ,wBAAwB,CAAC,GAAG,CAAC;IAC9D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,UAAU,kBAAmB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;CAAG;AAEvE,UAAU,2BAA4B,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AA6MD,eAAO,MAAM,OAAO;;;;;;CAMlB,CAAC"}
@@ -1,7 +1,10 @@
1
1
  import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
2
  import { cx, cva } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
3
3
  import { createContext, forwardRef, useContext, cloneElement } from 'react';
4
- import { TooltipProvider, Tooltip } from '../tooltip/tooltip.js';
4
+ import { Avatar } from '../avatar/avatar.js';
5
+ import { getAvatarColor } from '../avatar/utils.js';
6
+ import { Flex } from '../flex/flex.js';
7
+ import { Tooltip } from '../tooltip/tooltip.js';
5
8
  import styles from './sidebar.module.css.js';
6
9
  import { Root } from '../../node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18_qdnr5tshbuses2czt45n43so7q/node_modules/@radix-ui/react-collapsible/dist/index.js';
7
10
 
@@ -9,21 +12,16 @@ const SidebarContext = createContext({
9
12
  isCollapsed: false
10
13
  });
11
14
  const root = cva(styles.root);
12
- const SidebarRoot = forwardRef(({ className, position = 'left', open, onOpenChange, hideCollapsedItemTooltip, collapsible = true, children, ...props }, ref) => (jsxRuntimeExports.jsx(SidebarContext.Provider, { value: { isCollapsed: !open, hideCollapsedItemTooltip }, children: jsxRuntimeExports.jsx(TooltipProvider, { children: jsxRuntimeExports.jsx(Root, { ref: ref, className: root({ className }), "data-position": position, "data-state": open ? 'expanded' : 'collapsed', "data-collapse-disabled": !collapsible, open: open, onOpenChange: collapsible ? onOpenChange : undefined, "aria-label": 'Navigation Sidebar', "aria-expanded": open, role: 'navigation', ...props, asChild: true, children: jsxRuntimeExports.jsxs("aside", { children: [collapsible && (jsxRuntimeExports.jsx(Tooltip, { message: open ? 'Click to collapse' : 'Click to expand', side: position === 'left' ? 'right' : 'left', asChild: true, followCursor: true, sideOffset: 10, children: jsxRuntimeExports.jsx("div", { className: styles.resizeHandle, onClick: () => onOpenChange?.(!open), role: 'button', tabIndex: 0, "aria-label": open ? 'Collapse sidebar' : 'Expand sidebar', onKeyDown: e => {
15
+ const SidebarRoot = forwardRef(({ className, position = 'left', open, onOpenChange, hideCollapsedItemTooltip, collapsible = true, children, ...props }, ref) => (jsxRuntimeExports.jsx(SidebarContext.Provider, { value: { isCollapsed: !open, hideCollapsedItemTooltip }, children: jsxRuntimeExports.jsx(Tooltip.Provider, { children: jsxRuntimeExports.jsx(Root, { ref: ref, className: root({ className }), "data-position": position, "data-state": open ? 'expanded' : 'collapsed', "data-collapse-disabled": !collapsible, open: open, onOpenChange: collapsible ? onOpenChange : undefined, "aria-label": 'Navigation Sidebar', "aria-expanded": open, role: 'navigation', ...props, asChild: true, children: jsxRuntimeExports.jsxs("aside", { children: [collapsible && (jsxRuntimeExports.jsx(Tooltip, { message: open ? 'Click to collapse' : 'Click to expand', side: position === 'left' ? 'right' : 'left', asChild: true, followCursor: true, sideOffset: 10, children: jsxRuntimeExports.jsx("div", { className: styles.resizeHandle, onClick: () => onOpenChange?.(!open), role: 'button', tabIndex: 0, "aria-label": open ? 'Collapse sidebar' : 'Expand sidebar', onKeyDown: e => {
13
16
  if (e.key === 'Enter' || e.key === ' ') {
14
17
  e.preventDefault();
15
18
  onOpenChange?.(!open);
16
19
  }
17
20
  } }) })), children] }) }) }) })));
18
- const SidebarHeader = forwardRef(({ className, logo, title, onLogoClick, ...props }, ref) => (jsxRuntimeExports.jsxs("div", { ref: ref, className: styles.header, role: 'banner', ...props, children: [jsxRuntimeExports.jsx("div", { className: styles.logo, onClick: onLogoClick, role: onLogoClick ? 'button' : undefined, tabIndex: onLogoClick ? 0 : undefined, onKeyDown: e => {
19
- if (onLogoClick && (e.key === 'Enter' || e.key === ' ')) {
20
- e.preventDefault();
21
- onLogoClick();
22
- }
23
- }, style: { cursor: onLogoClick ? 'pointer' : undefined }, children: logo }), jsxRuntimeExports.jsx("div", { className: styles.title, role: 'heading', "aria-level": 1, children: title })] })));
24
- const SidebarMain = forwardRef(({ className, children, ...props }, ref) => (jsxRuntimeExports.jsx("div", { ref: ref, className: styles.main, role: 'group', "aria-label": 'Main navigation', ...props, children: children })));
25
- const SidebarFooter = forwardRef(({ className, children, ...props }, ref) => (jsxRuntimeExports.jsx("div", { ref: ref, className: styles.footer, role: 'group', "aria-label": 'Footer navigation', ...props, children: children })));
26
- const SidebarItem = forwardRef(({ classNames, icon, children, active, disabled, as = jsxRuntimeExports.jsx("a", {}), ...props }, ref) => {
21
+ const SidebarHeader = forwardRef(({ className, children, ...props }, ref) => (jsxRuntimeExports.jsx(Flex, { align: 'center', ref: ref, className: styles.header, role: 'banner', ...props, children: children })));
22
+ const SidebarMain = forwardRef(({ className, children, ...props }, ref) => (jsxRuntimeExports.jsx(Flex, { ref: ref, className: styles.main, direction: 'column', role: 'group', "aria-label": 'Main navigation', ...props, children: children })));
23
+ const SidebarFooter = forwardRef(({ className, children, ...props }, ref) => (jsxRuntimeExports.jsx(Flex, { ref: ref, className: styles.footer, direction: 'column', role: 'group', "aria-label": 'Footer navigation', ...props, children: children })));
24
+ const SidebarItem = forwardRef(({ classNames, leadingIcon, children, active, disabled, as = jsxRuntimeExports.jsx("a", {}), ...props }, ref) => {
27
25
  const { isCollapsed, hideCollapsedItemTooltip } = useContext(SidebarContext); // To prevent prop drillng
28
26
  const content = cloneElement(as, {
29
27
  ref,
@@ -34,13 +32,14 @@ const SidebarItem = forwardRef(({ classNames, icon, children, active, disabled,
34
32
  'aria-current': active ? 'page' : undefined,
35
33
  'aria-disabled': disabled,
36
34
  ...props
37
- }, jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: cx(styles['nav-icon'], classNames?.icon), "aria-hidden": 'true', children: icon }), !isCollapsed && jsxRuntimeExports.jsx("span", { className: styles['nav-text'], children: children })] }));
35
+ }, jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Flex, { align: 'center', gap: 3, className: cx(styles['nav-leading-icon'], classNames?.leadingIcon), "aria-hidden": 'true', children: leadingIcon ||
36
+ (typeof children === 'string' && children.length > 0 ? (jsxRuntimeExports.jsx(Avatar, { size: 1, variant: 'soft', color: getAvatarColor(children), fallback: children[0].toUpperCase(), style: { cursor: 'pointer' } })) : null) }), !isCollapsed && jsxRuntimeExports.jsx("span", { className: styles['nav-text'], children: children })] }));
38
37
  if (isCollapsed && !hideCollapsedItemTooltip) {
39
38
  return (jsxRuntimeExports.jsx(Tooltip, { message: children, side: 'right', children: content }));
40
39
  }
41
40
  return content;
42
41
  });
43
- const SidebarNavigationGroup = forwardRef(({ className, name, icon, children, ...props }, ref) => (jsxRuntimeExports.jsxs("section", { ref: ref, className: className, "aria-label": name, ...props, children: [jsxRuntimeExports.jsxs("div", { className: styles['nav-group-header'], children: [icon && jsxRuntimeExports.jsx("span", { className: styles['nav-icon'], children: icon }), jsxRuntimeExports.jsx("span", { className: styles['nav-group-name'], children: name })] }), jsxRuntimeExports.jsx("div", { className: styles['nav-group-items'], role: 'list', children: children })] })));
42
+ const SidebarNavigationGroup = forwardRef(({ className, label, leadingIcon, children, ...props }, ref) => (jsxRuntimeExports.jsxs("section", { ref: ref, className: cx(styles['nav-group'], className), "aria-label": label, ...props, children: [jsxRuntimeExports.jsxs(Flex, { align: 'center', gap: 3, className: styles['nav-group-header'], children: [leadingIcon && (jsxRuntimeExports.jsx("span", { className: styles['nav-leading-icon'], children: leadingIcon })), jsxRuntimeExports.jsx("span", { className: styles['nav-group-label'], children: label })] }), jsxRuntimeExports.jsx(Flex, { direction: 'column', className: styles['nav-group-items'], role: 'list', children: children })] })));
44
43
  SidebarRoot.displayName = 'Sidebar.Root';
45
44
  SidebarHeader.displayName = 'Sidebar.Header';
46
45
  SidebarMain.displayName = 'Sidebar.Main';
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sources":["../../../components/sidebar/sidebar.tsx"],"sourcesContent":["import { cva, cx } from 'class-variance-authority';\nimport { Collapsible } from 'radix-ui';\nimport {\n ComponentPropsWithoutRef,\n ComponentRef,\n ReactElement,\n ReactNode,\n cloneElement,\n createContext,\n forwardRef,\n useContext\n} from 'react';\nimport { Tooltip, TooltipProvider } from '../tooltip';\nimport styles from './sidebar.module.css';\n\ninterface SidebarContextValue {\n isCollapsed: boolean;\n hideCollapsedItemTooltip?: boolean;\n}\n\nconst SidebarContext = createContext<SidebarContextValue>({\n isCollapsed: false\n});\n\nconst root = cva(styles.root);\n\ninterface SidebarProps\n extends ComponentPropsWithoutRef<typeof Collapsible.Root> {\n position?: 'left' | 'right';\n hideCollapsedItemTooltip?: boolean;\n collapsible?: boolean;\n}\n\ninterface SidebarHeaderProps extends ComponentPropsWithoutRef<'div'> {\n logo: ReactNode;\n title: string;\n onLogoClick?: () => void;\n}\n\ninterface SidebarItemProps extends ComponentPropsWithoutRef<'a'> {\n icon?: ReactNode;\n active?: boolean;\n disabled?: boolean;\n as?: ReactElement;\n classNames?: {\n root?: string;\n icon?: string;\n text?: string;\n };\n}\n\ninterface SidebarFooterProps extends ComponentPropsWithoutRef<'div'> {}\n\ninterface SidebarNavigationGroupProps extends ComponentPropsWithoutRef<'div'> {\n name: string;\n icon?: ReactNode;\n}\n\nconst SidebarRoot = forwardRef<\n ComponentRef<typeof Collapsible.Root>,\n SidebarProps\n>(\n (\n {\n className,\n position = 'left',\n open,\n onOpenChange,\n hideCollapsedItemTooltip,\n collapsible = true,\n children,\n ...props\n },\n ref\n ) => (\n <SidebarContext.Provider\n value={{ isCollapsed: !open, hideCollapsedItemTooltip }}\n >\n <TooltipProvider>\n <Collapsible.Root\n ref={ref}\n className={root({ className })}\n data-position={position}\n data-state={open ? 'expanded' : 'collapsed'}\n data-collapse-disabled={!collapsible}\n open={open}\n onOpenChange={collapsible ? onOpenChange : undefined}\n aria-label='Navigation Sidebar'\n aria-expanded={open}\n role='navigation'\n {...props}\n asChild\n >\n <aside>\n {collapsible && (\n <Tooltip\n message={open ? 'Click to collapse' : 'Click to expand'}\n side={position === 'left' ? 'right' : 'left'}\n asChild\n followCursor\n sideOffset={10}\n >\n <div\n className={styles.resizeHandle}\n onClick={() => onOpenChange?.(!open)}\n role='button'\n tabIndex={0}\n aria-label={open ? 'Collapse sidebar' : 'Expand sidebar'}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onOpenChange?.(!open);\n }\n }}\n />\n </Tooltip>\n )}\n {children}\n </aside>\n </Collapsible.Root>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n);\n\nconst SidebarHeader = forwardRef<HTMLDivElement, SidebarHeaderProps>(\n ({ className, logo, title, onLogoClick, ...props }, ref) => (\n <div ref={ref} className={styles.header} role='banner' {...props}>\n <div\n className={styles.logo}\n onClick={onLogoClick}\n role={onLogoClick ? 'button' : undefined}\n tabIndex={onLogoClick ? 0 : undefined}\n onKeyDown={e => {\n if (onLogoClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onLogoClick();\n }\n }}\n style={{ cursor: onLogoClick ? 'pointer' : undefined }}\n >\n {logo}\n </div>\n <div className={styles.title} role='heading' aria-level={1}>\n {title}\n </div>\n </div>\n )\n);\n\nconst SidebarMain = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={styles.main}\n role='group'\n aria-label='Main navigation'\n {...props}\n >\n {children}\n </div>\n )\n);\n\nconst SidebarFooter = forwardRef<HTMLDivElement, SidebarFooterProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={styles.footer}\n role='group'\n aria-label='Footer navigation'\n {...props}\n >\n {children}\n </div>\n )\n);\n\nconst SidebarItem = forwardRef<HTMLAnchorElement, SidebarItemProps>(\n (\n { classNames, icon, children, active, disabled, as = <a />, ...props },\n ref\n ) => {\n const { isCollapsed, hideCollapsedItemTooltip } =\n useContext(SidebarContext); // To prevent prop drillng\n\n const content = cloneElement(\n as,\n {\n ref,\n className: cx(styles['nav-item'], classNames?.root),\n 'data-active': active,\n 'data-disabled': disabled,\n role: 'menuitem',\n 'aria-current': active ? 'page' : undefined,\n 'aria-disabled': disabled,\n ...props\n },\n <>\n <span\n className={cx(styles['nav-icon'], classNames?.icon)}\n aria-hidden='true'\n >\n {icon}\n </span>\n {!isCollapsed && <span className={styles['nav-text']}>{children}</span>}\n </>\n );\n\n if (isCollapsed && !hideCollapsedItemTooltip) {\n return (\n <Tooltip message={children} side='right'>\n {content}\n </Tooltip>\n );\n }\n\n return content;\n }\n);\n\nconst SidebarNavigationGroup = forwardRef<\n HTMLElement,\n SidebarNavigationGroupProps\n>(({ className, name, icon, children, ...props }, ref) => (\n <section ref={ref} className={className} aria-label={name} {...props}>\n <div className={styles['nav-group-header']}>\n {icon && <span className={styles['nav-icon']}>{icon}</span>}\n <span className={styles['nav-group-name']}>{name}</span>\n </div>\n <div className={styles['nav-group-items']} role='list'>\n {children}\n </div>\n </section>\n));\n\nSidebarRoot.displayName = 'Sidebar.Root';\nSidebarHeader.displayName = 'Sidebar.Header';\nSidebarMain.displayName = 'Sidebar.Main';\nSidebarFooter.displayName = 'Sidebar.Footer';\nSidebarItem.displayName = 'Sidebar.Item';\nSidebarNavigationGroup.displayName = 'Sidebar.Group';\n\nexport const Sidebar = Object.assign(SidebarRoot, {\n Header: SidebarHeader,\n Main: SidebarMain,\n Footer: SidebarFooter,\n Item: SidebarItem,\n Group: SidebarNavigationGroup\n});\n"],"names":["_jsx","Collapsible.Root","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","sources":["../../../components/sidebar/sidebar.tsx"],"sourcesContent":["import { cva, cx } from 'class-variance-authority';\nimport { Collapsible } from 'radix-ui';\nimport {\n ComponentPropsWithoutRef,\n ComponentRef,\n ReactElement,\n ReactNode,\n cloneElement,\n createContext,\n forwardRef,\n useContext\n} from 'react';\nimport { Avatar, getAvatarColor } from '../avatar';\nimport { Flex } from '../flex';\nimport { Tooltip } from '../tooltip';\nimport styles from './sidebar.module.css';\n\ninterface SidebarContextValue {\n isCollapsed: boolean;\n hideCollapsedItemTooltip?: boolean;\n}\n\nconst SidebarContext = createContext<SidebarContextValue>({\n isCollapsed: false\n});\n\nconst root = cva(styles.root);\n\ninterface SidebarProps\n extends ComponentPropsWithoutRef<typeof Collapsible.Root> {\n position?: 'left' | 'right';\n hideCollapsedItemTooltip?: boolean;\n collapsible?: boolean;\n}\n\ninterface SidebarItemProps extends ComponentPropsWithoutRef<'a'> {\n leadingIcon?: ReactNode;\n active?: boolean;\n disabled?: boolean;\n as?: ReactElement;\n classNames?: {\n root?: string;\n leadingIcon?: string;\n text?: string;\n };\n}\n\ninterface SidebarFooterProps extends ComponentPropsWithoutRef<'div'> {}\n\ninterface SidebarNavigationGroupProps extends ComponentPropsWithoutRef<'div'> {\n label: string;\n leadingIcon?: ReactNode;\n}\n\nconst SidebarRoot = forwardRef<\n ComponentRef<typeof Collapsible.Root>,\n SidebarProps\n>(\n (\n {\n className,\n position = 'left',\n open,\n onOpenChange,\n hideCollapsedItemTooltip,\n collapsible = true,\n children,\n ...props\n },\n ref\n ) => (\n <SidebarContext.Provider\n value={{ isCollapsed: !open, hideCollapsedItemTooltip }}\n >\n <Tooltip.Provider>\n <Collapsible.Root\n ref={ref}\n className={root({ className })}\n data-position={position}\n data-state={open ? 'expanded' : 'collapsed'}\n data-collapse-disabled={!collapsible}\n open={open}\n onOpenChange={collapsible ? onOpenChange : undefined}\n aria-label='Navigation Sidebar'\n aria-expanded={open}\n role='navigation'\n {...props}\n asChild\n >\n <aside>\n {collapsible && (\n <Tooltip\n message={open ? 'Click to collapse' : 'Click to expand'}\n side={position === 'left' ? 'right' : 'left'}\n asChild\n followCursor\n sideOffset={10}\n >\n <div\n className={styles.resizeHandle}\n onClick={() => onOpenChange?.(!open)}\n role='button'\n tabIndex={0}\n aria-label={open ? 'Collapse sidebar' : 'Expand sidebar'}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onOpenChange?.(!open);\n }\n }}\n />\n </Tooltip>\n )}\n {children}\n </aside>\n </Collapsible.Root>\n </Tooltip.Provider>\n </SidebarContext.Provider>\n )\n);\n\nconst SidebarHeader = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<'div'>\n>(({ className, children, ...props }, ref) => (\n <Flex\n align='center'\n ref={ref}\n className={styles.header}\n role='banner'\n {...props}\n >\n {children}\n </Flex>\n));\n\nconst SidebarMain = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n ({ className, children, ...props }, ref) => (\n <Flex\n ref={ref}\n className={styles.main}\n direction='column'\n role='group'\n aria-label='Main navigation'\n {...props}\n >\n {children}\n </Flex>\n )\n);\n\nconst SidebarFooter = forwardRef<HTMLDivElement, SidebarFooterProps>(\n ({ className, children, ...props }, ref) => (\n <Flex\n ref={ref}\n className={styles.footer}\n direction='column'\n role='group'\n aria-label='Footer navigation'\n {...props}\n >\n {children}\n </Flex>\n )\n);\n\nconst SidebarItem = forwardRef<HTMLAnchorElement, SidebarItemProps>(\n (\n {\n classNames,\n leadingIcon,\n children,\n active,\n disabled,\n as = <a />,\n ...props\n },\n ref\n ) => {\n const { isCollapsed, hideCollapsedItemTooltip } =\n useContext(SidebarContext); // To prevent prop drillng\n\n const content = cloneElement(\n as,\n {\n ref,\n className: cx(styles['nav-item'], classNames?.root),\n 'data-active': active,\n 'data-disabled': disabled,\n role: 'menuitem',\n 'aria-current': active ? 'page' : undefined,\n 'aria-disabled': disabled,\n ...props\n },\n <>\n <Flex\n align='center'\n gap={3}\n className={cx(styles['nav-leading-icon'], classNames?.leadingIcon)}\n aria-hidden='true'\n >\n {leadingIcon ||\n (typeof children === 'string' && children.length > 0 ? (\n <Avatar\n size={1}\n variant='soft'\n color={getAvatarColor(children)}\n fallback={children[0].toUpperCase()}\n style={{ cursor: 'pointer' }}\n />\n ) : null)}\n </Flex>\n {!isCollapsed && <span className={styles['nav-text']}>{children}</span>}\n </>\n );\n\n if (isCollapsed && !hideCollapsedItemTooltip) {\n return (\n <Tooltip message={children} side='right'>\n {content}\n </Tooltip>\n );\n }\n\n return content;\n }\n);\n\nconst SidebarNavigationGroup = forwardRef<\n HTMLElement,\n SidebarNavigationGroupProps\n>(({ className, label, leadingIcon, children, ...props }, ref) => (\n <section\n ref={ref}\n className={cx(styles['nav-group'], className)}\n aria-label={label}\n {...props}\n >\n <Flex align='center' gap={3} className={styles['nav-group-header']}>\n {leadingIcon && (\n <span className={styles['nav-leading-icon']}>{leadingIcon}</span>\n )}\n <span className={styles['nav-group-label']}>{label}</span>\n </Flex>\n <Flex direction='column' className={styles['nav-group-items']} role='list'>\n {children}\n </Flex>\n </section>\n));\n\nSidebarRoot.displayName = 'Sidebar.Root';\nSidebarHeader.displayName = 'Sidebar.Header';\nSidebarMain.displayName = 'Sidebar.Main';\nSidebarFooter.displayName = 'Sidebar.Footer';\nSidebarItem.displayName = 'Sidebar.Item';\nSidebarNavigationGroup.displayName = 'Sidebar.Group';\n\nexport const Sidebar = Object.assign(SidebarRoot, {\n Header: SidebarHeader,\n Main: SidebarMain,\n Footer: SidebarFooter,\n Item: SidebarItem,\n Group: SidebarNavigationGroup\n});\n"],"names":["_jsx","Collapsible.Root","_jsxs","_Fragment"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var styles = {"root":"sidebar-module_root__EkOqU","header":"sidebar-module_header__KmG4y","logo":"sidebar-module_logo__-kVeR","title":"sidebar-module_title__yuqlh","main":"sidebar-module_main__qDvo4","footer":"sidebar-module_footer__uSfma","nav-item":"sidebar-module_nav-item__vd4i1","nav-icon":"sidebar-module_nav-icon__tNLs5","nav-text":"sidebar-module_nav-text__LTn8p","resizeHandle":"sidebar-module_resizeHandle__6zeTV","account":"sidebar-module_account__sKj0f","nav-group-header":"sidebar-module_nav-group-header__doG8b","nav-group-name":"sidebar-module_nav-group-name__msG9y","nav-group-items":"sidebar-module_nav-group-items__hMXBY","nav___item":"sidebar-module_nav-item__vd4i1","nav___icon":"sidebar-module_nav-icon__tNLs5","nav___text":"sidebar-module_nav-text__LTn8p","nav___group___header":"sidebar-module_nav-group-header__doG8b","nav___group___name":"sidebar-module_nav-group-name__msG9y","nav___group___items":"sidebar-module_nav-group-items__hMXBY"};
5
+ var styles = {"root":"sidebar-module_root__EkOqU","header":"sidebar-module_header__KmG4y","main":"sidebar-module_main__qDvo4","footer":"sidebar-module_footer__uSfma","nav-item":"sidebar-module_nav-item__vd4i1","nav-leading-icon":"sidebar-module_nav-leading-icon__OyAl-","nav-text":"sidebar-module_nav-text__LTn8p","resizeHandle":"sidebar-module_resizeHandle__6zeTV","nav-group":"sidebar-module_nav-group__-7EWF","nav-group-header":"sidebar-module_nav-group-header__doG8b","nav-group-label":"sidebar-module_nav-group-label__3wOAj","nav-group-items":"sidebar-module_nav-group-items__hMXBY","nav___item":"sidebar-module_nav-item__vd4i1","nav___leading___icon":"sidebar-module_nav-leading-icon__OyAl-","nav___text":"sidebar-module_nav-text__LTn8p","nav___group":"sidebar-module_nav-group__-7EWF","nav___group___header":"sidebar-module_nav-group-header__doG8b","nav___group___label":"sidebar-module_nav-group-label__3wOAj","nav___group___items":"sidebar-module_nav-group-items__hMXBY"};
6
6
 
7
7
  exports.default = styles;
8
8
  //# sourceMappingURL=sidebar.module.css.cjs.map
@@ -1,4 +1,4 @@
1
- var styles = {"root":"sidebar-module_root__EkOqU","header":"sidebar-module_header__KmG4y","logo":"sidebar-module_logo__-kVeR","title":"sidebar-module_title__yuqlh","main":"sidebar-module_main__qDvo4","footer":"sidebar-module_footer__uSfma","nav-item":"sidebar-module_nav-item__vd4i1","nav-icon":"sidebar-module_nav-icon__tNLs5","nav-text":"sidebar-module_nav-text__LTn8p","resizeHandle":"sidebar-module_resizeHandle__6zeTV","account":"sidebar-module_account__sKj0f","nav-group-header":"sidebar-module_nav-group-header__doG8b","nav-group-name":"sidebar-module_nav-group-name__msG9y","nav-group-items":"sidebar-module_nav-group-items__hMXBY","nav___item":"sidebar-module_nav-item__vd4i1","nav___icon":"sidebar-module_nav-icon__tNLs5","nav___text":"sidebar-module_nav-text__LTn8p","nav___group___header":"sidebar-module_nav-group-header__doG8b","nav___group___name":"sidebar-module_nav-group-name__msG9y","nav___group___items":"sidebar-module_nav-group-items__hMXBY"};
1
+ var styles = {"root":"sidebar-module_root__EkOqU","header":"sidebar-module_header__KmG4y","main":"sidebar-module_main__qDvo4","footer":"sidebar-module_footer__uSfma","nav-item":"sidebar-module_nav-item__vd4i1","nav-leading-icon":"sidebar-module_nav-leading-icon__OyAl-","nav-text":"sidebar-module_nav-text__LTn8p","resizeHandle":"sidebar-module_resizeHandle__6zeTV","nav-group":"sidebar-module_nav-group__-7EWF","nav-group-header":"sidebar-module_nav-group-header__doG8b","nav-group-label":"sidebar-module_nav-group-label__3wOAj","nav-group-items":"sidebar-module_nav-group-items__hMXBY","nav___item":"sidebar-module_nav-item__vd4i1","nav___leading___icon":"sidebar-module_nav-leading-icon__OyAl-","nav___text":"sidebar-module_nav-text__LTn8p","nav___group":"sidebar-module_nav-group__-7EWF","nav___group___header":"sidebar-module_nav-group-header__doG8b","nav___group___label":"sidebar-module_nav-group-label__3wOAj","nav___group___items":"sidebar-module_nav-group-items__hMXBY"};
2
2
 
3
3
  export { styles as default };
4
4
  //# sourceMappingURL=sidebar.module.css.js.map
@@ -1,2 +1,2 @@
1
- export { Tooltip, TooltipProvider } from "./tooltip";
1
+ export { Tooltip } from './tooltip';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/tooltip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/tooltip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
+ var React = require('react');
5
+ var index = require('../../node_modules/.pnpm/@radix-ui_react-tooltip@1.2.7_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-tooltip/dist/index.cjs');
6
+
7
+ const TooltipProviderContext = React.createContext(undefined);
8
+ const useTooltipProvider = () => {
9
+ return React.useContext(TooltipProviderContext);
10
+ };
11
+ const TooltipProvider = ({ delayDuration = 200, skipDelayDuration = 200, ...props }) => {
12
+ return (jsxRuntime.jsxRuntimeExports.jsx(TooltipProviderContext.Provider, { value: { delayDuration, skipDelayDuration, ...props }, children: jsxRuntime.jsxRuntimeExports.jsx(index.Provider, { delayDuration: delayDuration, skipDelayDuration: skipDelayDuration, ...props }) }));
13
+ };
14
+
15
+ exports.TooltipProvider = TooltipProvider;
16
+ exports.useTooltipProvider = useTooltipProvider;
17
+ //# sourceMappingURL=tooltip-provider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-provider.cjs","sources":["../../../components/tooltip/tooltip-provider.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { createContext, useContext } from 'react';\n\ninterface TooltipProviderContextValue\n extends Omit<TooltipPrimitive.TooltipProviderProps, 'children'> {}\n\nconst TooltipProviderContext = createContext<\n TooltipProviderContextValue | undefined\n>(undefined);\n\nexport const useTooltipProvider = () => {\n return useContext(TooltipProviderContext);\n};\n\nexport interface TooltipProviderProps\n extends TooltipPrimitive.TooltipProviderProps {}\n\nexport const TooltipProvider = ({\n delayDuration = 200,\n skipDelayDuration = 200,\n ...props\n}: TooltipProviderProps) => {\n return (\n <TooltipProviderContext.Provider\n value={{ delayDuration, skipDelayDuration, ...props }}\n >\n <TooltipPrimitive.Provider\n delayDuration={delayDuration}\n skipDelayDuration={skipDelayDuration}\n {...props}\n />\n </TooltipProviderContext.Provider>\n );\n};\n"],"names":["createContext","useContext","_jsx","TooltipPrimitive.Provider"],"mappings":";;;;;;AAMA,MAAM,sBAAsB,GAAGA,mBAAa,CAE1C,SAAS,CAAC,CAAC;AAEN,MAAM,kBAAkB,GAAG,MAAK;AACrC,IAAA,OAAOC,gBAAU,CAAC,sBAAsB,CAAC,CAAC;AAC5C,EAAE;AAKW,MAAA,eAAe,GAAG,CAAC,EAC9B,aAAa,GAAG,GAAG,EACnB,iBAAiB,GAAG,GAAG,EACvB,GAAG,KAAK,EACa,KAAI;AACzB,IAAA,QACEC,gCAAA,CAAC,sBAAsB,CAAC,QAAQ,EAC9B,EAAA,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,KAAK,EAAE,EAAA,QAAA,EAErDA,gCAAC,CAAAC,cAAyB,EACxB,EAAA,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EAChC,GAAA,KAAK,EACT,CAAA,EAAA,CAC8B,EAClC;AACJ;;;;;"}
@@ -0,0 +1,9 @@
1
+ import { Tooltip as TooltipPrimitive } from 'radix-ui';
2
+ interface TooltipProviderContextValue extends Omit<TooltipPrimitive.TooltipProviderProps, 'children'> {
3
+ }
4
+ export declare const useTooltipProvider: () => TooltipProviderContextValue | undefined;
5
+ export interface TooltipProviderProps extends TooltipPrimitive.TooltipProviderProps {
6
+ }
7
+ export declare const TooltipProvider: ({ delayDuration, skipDelayDuration, ...props }: TooltipProviderProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=tooltip-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-provider.d.ts","sourceRoot":"","sources":["../../../components/tooltip/tooltip-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,2BACR,SAAQ,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAU,CAAC;CAAG;AAMpE,eAAO,MAAM,kBAAkB,+CAE9B,CAAC;AAEF,MAAM,WAAW,oBACf,SAAQ,gBAAgB,CAAC,oBAAoB;CAAG;AAElD,eAAO,MAAM,eAAe,mDAIzB,oBAAoB,4CAYtB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
+ import { createContext, useContext } from 'react';
3
+ import { Provider } from '../../node_modules/.pnpm/@radix-ui_react-tooltip@1.2.7_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-tooltip/dist/index.js';
4
+
5
+ const TooltipProviderContext = createContext(undefined);
6
+ const useTooltipProvider = () => {
7
+ return useContext(TooltipProviderContext);
8
+ };
9
+ const TooltipProvider = ({ delayDuration = 200, skipDelayDuration = 200, ...props }) => {
10
+ return (jsxRuntimeExports.jsx(TooltipProviderContext.Provider, { value: { delayDuration, skipDelayDuration, ...props }, children: jsxRuntimeExports.jsx(Provider, { delayDuration: delayDuration, skipDelayDuration: skipDelayDuration, ...props }) }));
11
+ };
12
+
13
+ export { TooltipProvider, useTooltipProvider };
14
+ //# sourceMappingURL=tooltip-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-provider.js","sources":["../../../components/tooltip/tooltip-provider.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { createContext, useContext } from 'react';\n\ninterface TooltipProviderContextValue\n extends Omit<TooltipPrimitive.TooltipProviderProps, 'children'> {}\n\nconst TooltipProviderContext = createContext<\n TooltipProviderContextValue | undefined\n>(undefined);\n\nexport const useTooltipProvider = () => {\n return useContext(TooltipProviderContext);\n};\n\nexport interface TooltipProviderProps\n extends TooltipPrimitive.TooltipProviderProps {}\n\nexport const TooltipProvider = ({\n delayDuration = 200,\n skipDelayDuration = 200,\n ...props\n}: TooltipProviderProps) => {\n return (\n <TooltipProviderContext.Provider\n value={{ delayDuration, skipDelayDuration, ...props }}\n >\n <TooltipPrimitive.Provider\n delayDuration={delayDuration}\n skipDelayDuration={skipDelayDuration}\n {...props}\n />\n </TooltipProviderContext.Provider>\n );\n};\n"],"names":["_jsx","TooltipPrimitive.Provider"],"mappings":";;;;AAMA,MAAM,sBAAsB,GAAG,aAAa,CAE1C,SAAS,CAAC,CAAC;AAEN,MAAM,kBAAkB,GAAG,MAAK;AACrC,IAAA,OAAO,UAAU,CAAC,sBAAsB,CAAC,CAAC;AAC5C,EAAE;AAKW,MAAA,eAAe,GAAG,CAAC,EAC9B,aAAa,GAAG,GAAG,EACnB,iBAAiB,GAAG,GAAG,EACvB,GAAG,KAAK,EACa,KAAI;AACzB,IAAA,QACEA,qBAAA,CAAC,sBAAsB,CAAC,QAAQ,EAC9B,EAAA,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,KAAK,EAAE,EAAA,QAAA,EAErDA,qBAAC,CAAAC,QAAyB,EACxB,EAAA,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EAChC,GAAA,KAAK,EACT,CAAA,EAAA,CAC8B,EAClC;AACJ;;;;"}
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
+ var index$1 = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
5
+ var React = require('react');
6
+ var useMouse = require('../../hooks/useMouse.cjs');
7
+ var text = require('../text/text.cjs');
8
+ var tooltipProvider = require('./tooltip-provider.cjs');
9
+ var tooltip_module = require('./tooltip.module.css.cjs');
10
+ var utils = require('./utils.cjs');
11
+ var index = require('../../node_modules/.pnpm/@radix-ui_react-tooltip@1.2.7_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-tooltip/dist/index.cjs');
12
+
13
+ const tooltip = index$1.cva(tooltip_module.default.content, {
14
+ variants: {
15
+ side: {
16
+ top: tooltip_module.default['side-top'],
17
+ right: tooltip_module.default['side-right'],
18
+ bottom: tooltip_module.default['side-bottom'],
19
+ left: tooltip_module.default['side-left'],
20
+ 'top-left': tooltip_module.default['side-top-left'],
21
+ 'top-right': tooltip_module.default['side-top-right'],
22
+ 'bottom-left': tooltip_module.default['side-bottom-left'],
23
+ 'bottom-right': tooltip_module.default['side-bottom-right']
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ side: 'top'
28
+ }
29
+ });
30
+ const TooltipBase = ({ children, message, disabled, side = 'top', classNames, triggerStyle, contentStyle, 'aria-label': ariaLabel, asChild = true, showArrow = true, id, followCursor = false, sideOffset = 4, alignOffset = 0, open, defaultOpen, delayDuration = 200, onOpenChange, disableHoverableContent, ...props }) => {
31
+ const generatedId = React.useId();
32
+ const tooltipId = id ?? generatedId;
33
+ const { ref, value: mouseValue, reset } = useMouse.useMouse({
34
+ resetOnExit: false,
35
+ enabled: followCursor
36
+ });
37
+ const computedSide = React.useMemo(() => (side?.split('-')[0] || 'top'), [side]);
38
+ const computedAlign = React.useMemo(() => (side?.includes('-')
39
+ ? side.split('-')[1] === 'left'
40
+ ? 'start'
41
+ : 'end'
42
+ : 'center'), [side]);
43
+ if (disabled)
44
+ return children;
45
+ return (jsxRuntime.jsxRuntimeExports.jsxs(index.Root, { open: open, defaultOpen: defaultOpen, onOpenChange: onOpenChange, delayDuration: delayDuration, disableHoverableContent: disableHoverableContent, children: [jsxRuntime.jsxRuntimeExports.jsx(index.Trigger, { "aria-describedby": tooltipId, asChild: asChild, onFocus: followCursor ? reset : undefined, children: jsxRuntime.jsxRuntimeExports.jsx("div", { ref: ref, className: index$1.cx(tooltip_module.default.trigger, classNames?.trigger), style: triggerStyle, children: children }) }), jsxRuntime.jsxRuntimeExports.jsx(index.Portal, { children: jsxRuntime.jsxRuntimeExports.jsxs(index.Content, { id: tooltipId, role: 'tooltip', "aria-label": ariaLabel || (typeof message === 'string' ? message : undefined), side: computedSide, align: computedAlign, alignOffset: alignOffset, sideOffset: sideOffset, className: tooltip({ side, className: classNames?.content }), "data-follow-cursor": followCursor, style: {
46
+ ...contentStyle,
47
+ pointerEvents: followCursor ? 'none' : undefined,
48
+ transform: followCursor && mouseValue
49
+ ? utils.getTransformForPlacement(computedSide, computedAlign, mouseValue)
50
+ : undefined
51
+ }, ...props, children: [typeof message === 'string' ? jsxRuntime.jsxRuntimeExports.jsx(text.Text, { children: message }) : message, showArrow && (jsxRuntime.jsxRuntimeExports.jsx(index.Arrow, { className: index$1.cx(tooltip_module.default.arrow, classNames?.arrow), width: 7, height: 7 }))] }) })] }));
52
+ };
53
+ const TooltipRoot = (props) => {
54
+ const provider = tooltipProvider.useTooltipProvider();
55
+ // If already inside a provider, just return the tooltip
56
+ if (provider)
57
+ return jsxRuntime.jsxRuntimeExports.jsx(TooltipBase, { ...props });
58
+ // If not inside a provider, wrap with our own provider
59
+ return (jsxRuntime.jsxRuntimeExports.jsx(tooltipProvider.TooltipProvider, { children: jsxRuntime.jsxRuntimeExports.jsx(TooltipBase, { ...props }) }));
60
+ };
61
+ TooltipRoot.displayName = 'TooltipRoot';
62
+
63
+ exports.TooltipBase = TooltipBase;
64
+ exports.TooltipRoot = TooltipRoot;
65
+ //# sourceMappingURL=tooltip-root.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-root.cjs","sources":["../../../components/tooltip/tooltip-root.tsx"],"sourcesContent":["import { VariantProps, cva, cx } from 'class-variance-authority';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { CSSProperties, ReactNode, useId, useMemo } from 'react';\nimport { useMouse } from '~/hooks';\nimport { Text } from '../text';\nimport { TooltipProvider, useTooltipProvider } from './tooltip-provider';\nimport styles from './tooltip.module.css';\nimport { getTransformForPlacement } from './utils';\n\nconst tooltip = cva(styles.content, {\n variants: {\n side: {\n top: styles['side-top'],\n right: styles['side-right'],\n bottom: styles['side-bottom'],\n left: styles['side-left'],\n 'top-left': styles['side-top-left'],\n 'top-right': styles['side-top-right'],\n 'bottom-left': styles['side-bottom-left'],\n 'bottom-right': styles['side-bottom-right']\n }\n },\n defaultVariants: {\n side: 'top'\n }\n});\n\nexport interface TooltipProps\n extends TooltipPrimitive.TooltipProps,\n Omit<TooltipPrimitive.TooltipContentProps, 'side' | 'align'>,\n VariantProps<typeof tooltip> {\n disabled?: boolean;\n message: ReactNode;\n classNames?: {\n trigger?: string;\n content?: string;\n arrow?: string;\n };\n triggerStyle?: CSSProperties;\n contentStyle?: CSSProperties;\n 'aria-label'?: string;\n asChild?: boolean;\n id?: string;\n showArrow?: boolean;\n followCursor?: boolean;\n}\ntype TooltipSide = NonNullable<TooltipPrimitive.TooltipContentProps['side']>;\ntype TooltipAlign = NonNullable<TooltipPrimitive.TooltipContentProps['align']>;\n\nexport const TooltipBase = ({\n children,\n message,\n disabled,\n side = 'top',\n classNames,\n triggerStyle,\n contentStyle,\n 'aria-label': ariaLabel,\n asChild = true,\n showArrow = true,\n id,\n followCursor = false,\n sideOffset = 4,\n alignOffset = 0,\n open,\n defaultOpen,\n delayDuration = 200,\n onOpenChange,\n disableHoverableContent,\n ...props\n}: TooltipProps) => {\n const generatedId = useId();\n const tooltipId = id ?? generatedId;\n const {\n ref,\n value: mouseValue,\n reset\n } = useMouse<HTMLDivElement>({\n resetOnExit: false,\n enabled: followCursor\n });\n\n const computedSide = useMemo(\n () => (side?.split('-')[0] || 'top') as TooltipSide,\n [side]\n );\n const computedAlign = useMemo(\n () =>\n (side?.includes('-')\n ? side.split('-')[1] === 'left'\n ? 'start'\n : 'end'\n : 'center') as TooltipAlign,\n [side]\n );\n\n if (disabled) return children;\n\n return (\n <TooltipPrimitive.Root\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n delayDuration={delayDuration}\n disableHoverableContent={disableHoverableContent}\n >\n <TooltipPrimitive.Trigger\n aria-describedby={tooltipId}\n asChild={asChild}\n onFocus={followCursor ? reset : undefined}\n >\n <div\n ref={ref}\n className={cx(styles.trigger, classNames?.trigger)}\n style={triggerStyle}\n >\n {children}\n </div>\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n id={tooltipId}\n role='tooltip'\n aria-label={\n ariaLabel || (typeof message === 'string' ? message : undefined)\n }\n side={computedSide}\n align={computedAlign}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={tooltip({ side, className: classNames?.content })}\n data-follow-cursor={followCursor}\n style={{\n ...contentStyle,\n pointerEvents: followCursor ? 'none' : undefined,\n transform:\n followCursor && mouseValue\n ? getTransformForPlacement(\n computedSide,\n computedAlign,\n mouseValue\n )\n : undefined\n }}\n {...props}\n >\n {typeof message === 'string' ? <Text>{message}</Text> : message}\n {showArrow && (\n <TooltipPrimitive.Arrow\n className={cx(styles.arrow, classNames?.arrow)}\n width={7}\n height={7}\n />\n )}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n};\n\nexport const TooltipRoot = (props: TooltipProps) => {\n const provider = useTooltipProvider();\n\n // If already inside a provider, just return the tooltip\n if (provider) return <TooltipBase {...props} />;\n\n // If not inside a provider, wrap with our own provider\n return (\n <TooltipProvider>\n <TooltipBase {...props} />\n </TooltipProvider>\n );\n};\n\nTooltipRoot.displayName = 'TooltipRoot';\n"],"names":["cva","styles","useId","useMouse","useMemo","_jsxs","TooltipPrimitive.Root","_jsx","TooltipPrimitive.Trigger","cx","TooltipPrimitive.Portal","TooltipPrimitive.Content","getTransformForPlacement","Text","TooltipPrimitive.Arrow","useTooltipProvider","TooltipProvider"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Tooltip as TooltipPrimitive } from 'radix-ui';
3
+ import { CSSProperties, ReactNode } from 'react';
4
+ declare const tooltip: (props?: ({
5
+ side?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface TooltipProps extends TooltipPrimitive.TooltipProps, Omit<TooltipPrimitive.TooltipContentProps, 'side' | 'align'>, VariantProps<typeof tooltip> {
8
+ disabled?: boolean;
9
+ message: ReactNode;
10
+ classNames?: {
11
+ trigger?: string;
12
+ content?: string;
13
+ arrow?: string;
14
+ };
15
+ triggerStyle?: CSSProperties;
16
+ contentStyle?: CSSProperties;
17
+ 'aria-label'?: string;
18
+ asChild?: boolean;
19
+ id?: string;
20
+ showArrow?: boolean;
21
+ followCursor?: boolean;
22
+ }
23
+ export declare const TooltipBase: ({ children, message, disabled, side, classNames, triggerStyle, contentStyle, "aria-label": ariaLabel, asChild, showArrow, id, followCursor, sideOffset, alignOffset, open, defaultOpen, delayDuration, onOpenChange, disableHoverableContent, ...props }: TooltipProps) => string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | null | undefined;
24
+ export declare const TooltipRoot: {
25
+ (props: TooltipProps): import("react/jsx-runtime").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ export {};
29
+ //# sourceMappingURL=tooltip-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-root.d.ts","sourceRoot":"","sources":["../../../components/tooltip/tooltip-root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAOjE,QAAA,MAAM,OAAO;;8EAgBX,CAAC;AAEH,MAAM,WAAW,YACf,SAAQ,gBAAgB,CAAC,YAAY,EACnC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,EAC5D,YAAY,CAAC,OAAO,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAID,eAAO,MAAM,WAAW,6PAqBrB,YAAY,iHAwFd,CAAC;AAEF,eAAO,MAAM,WAAW;YAAW,YAAY;;CAY9C,CAAC"}