@raystack/apsara 0.46.0-rc.3 → 0.46.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/style.css +1 -1
- package/dist/v1/components/avatar/avatar.cjs +18 -2
- package/dist/v1/components/avatar/avatar.cjs.map +1 -1
- package/dist/v1/components/avatar/avatar.d.ts +2 -1
- package/dist/v1/components/avatar/avatar.d.ts.map +1 -1
- package/dist/v1/components/avatar/avatar.js +18 -3
- package/dist/v1/components/avatar/avatar.js.map +1 -1
- package/dist/v1/components/avatar/utils.cjs +14 -34
- package/dist/v1/components/avatar/utils.cjs.map +1 -1
- package/dist/v1/components/avatar/utils.d.ts +1 -4
- package/dist/v1/components/avatar/utils.d.ts.map +1 -1
- package/dist/v1/components/avatar/utils.js +15 -34
- package/dist/v1/components/avatar/utils.js.map +1 -1
- package/dist/v1/components/breadcrumb/breadcrumb.cjs +41 -24
- package/dist/v1/components/breadcrumb/breadcrumb.cjs.map +1 -1
- package/dist/v1/components/breadcrumb/breadcrumb.d.ts +16 -13
- package/dist/v1/components/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/v1/components/breadcrumb/breadcrumb.js +43 -26
- package/dist/v1/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/v1/components/data-table/components/filters.cjs +14 -14
- package/dist/v1/components/data-table/components/filters.cjs.map +1 -1
- package/dist/v1/components/data-table/components/filters.d.ts.map +1 -1
- package/dist/v1/components/data-table/components/filters.js +14 -14
- package/dist/v1/components/data-table/components/filters.js.map +1 -1
- package/dist/v1/components/dropdown-menu/dropdown-menu-content.cjs +5 -5
- package/dist/v1/components/dropdown-menu/dropdown-menu-content.cjs.map +1 -1
- package/dist/v1/components/dropdown-menu/dropdown-menu-content.d.ts +3 -3
- package/dist/v1/components/dropdown-menu/dropdown-menu-content.d.ts.map +1 -1
- package/dist/v1/components/dropdown-menu/dropdown-menu-content.js +5 -5
- package/dist/v1/components/dropdown-menu/dropdown-menu-content.js.map +1 -1
- package/dist/v1/components/select/select-content.cjs +16 -7
- package/dist/v1/components/select/select-content.cjs.map +1 -1
- package/dist/v1/components/select/select-content.d.ts +1 -1
- package/dist/v1/components/select/select-content.d.ts.map +1 -1
- package/dist/v1/components/select/select-content.js +16 -7
- package/dist/v1/components/select/select-content.js.map +1 -1
- package/dist/v1/components/select/select-item.cjs +19 -18
- package/dist/v1/components/select/select-item.cjs.map +1 -1
- package/dist/v1/components/select/select-item.d.ts +1 -3
- package/dist/v1/components/select/select-item.d.ts.map +1 -1
- package/dist/v1/components/select/select-item.js +19 -18
- package/dist/v1/components/select/select-item.js.map +1 -1
- package/dist/v1/components/select/select-multiple-value.cjs +67 -0
- package/dist/v1/components/select/select-multiple-value.cjs.map +1 -0
- package/dist/v1/components/select/select-multiple-value.d.ts +8 -0
- package/dist/v1/components/select/select-multiple-value.d.ts.map +1 -0
- package/dist/v1/components/select/select-multiple-value.js +65 -0
- package/dist/v1/components/select/select-multiple-value.js.map +1 -0
- package/dist/v1/components/select/select-root.cjs +64 -22
- package/dist/v1/components/select/select-root.cjs.map +1 -1
- package/dist/v1/components/select/select-root.d.ts +25 -26
- package/dist/v1/components/select/select-root.d.ts.map +1 -1
- package/dist/v1/components/select/select-root.js +64 -22
- package/dist/v1/components/select/select-root.js.map +1 -1
- package/dist/v1/components/select/select-trigger.cjs +18 -20
- package/dist/v1/components/select/select-trigger.cjs.map +1 -1
- package/dist/v1/components/select/select-trigger.d.ts +10 -18
- package/dist/v1/components/select/select-trigger.d.ts.map +1 -1
- package/dist/v1/components/select/select-trigger.js +16 -18
- package/dist/v1/components/select/select-trigger.js.map +1 -1
- package/dist/v1/components/select/select-value.cjs +23 -7
- package/dist/v1/components/select/select-value.cjs.map +1 -1
- package/dist/v1/components/select/select-value.d.ts +8 -2
- package/dist/v1/components/select/select-value.d.ts.map +1 -1
- package/dist/v1/components/select/select-value.js +22 -6
- package/dist/v1/components/select/select-value.js.map +1 -1
- package/dist/v1/components/select/select.d.ts +11 -9
- package/dist/v1/components/select/select.d.ts.map +1 -1
- package/dist/v1/components/select/select.module.css.cjs +1 -1
- package/dist/v1/components/select/select.module.css.js +1 -1
- package/dist/v1/components/select/types.d.ts +7 -0
- package/dist/v1/components/select/types.d.ts.map +1 -0
- package/dist/v1/components/tooltip/tooltip.cjs +20 -12
- package/dist/v1/components/tooltip/tooltip.cjs.map +1 -1
- package/dist/v1/components/tooltip/tooltip.d.ts +4 -3
- package/dist/v1/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/v1/components/tooltip/tooltip.js +21 -13
- package/dist/v1/components/tooltip/tooltip.js.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@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-select/dist/index.cjs +0 -2
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@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-select/dist/index.cjs.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@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-select/dist/index.js +1 -2
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@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-select/dist/index.js.map +1 -1
- package/dist/v1/style.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../../v1/components/breadcrumb/breadcrumb.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../../../v1/components/breadcrumb/breadcrumb.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAW,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAEL,YAAY,EAIb,MAAM,OAAO,CAAC;AAIf,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD,UAAU,cAAe,SAAQ,kBAAkB;IACjD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACrC,EAAE,CAAC,EAAE,YAAY,CAAC;CACnB;AAED,UAAU,mBAAoB,SAAQ,cAAc;IAClD,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9C;AAED,QAAA,MAAM,cAAc,kCAIjB,mBAAmB,4CAqDrB,CAAC;AAuBF,eAAO,MAAM,UAAU;;;WARd,cAAc,EAAE;;gBAEX,MAAM,SAAS;0BACN,cAAc,KAAK,IAAI;;;kDAyD7C,CAAC"}
|
|
@@ -1,41 +1,58 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
|
|
2
2
|
import { DotsHorizontalIcon, ChevronDownIcon } from '../../node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
|
|
3
|
-
import { cva } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
|
|
4
|
-
import { forwardRef } from 'react';
|
|
3
|
+
import { cx, cva } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
|
|
4
|
+
import { forwardRef, useMemo, cloneElement } from 'react';
|
|
5
5
|
import { DropdownMenu } from '../dropdown-menu/dropdown-menu.js';
|
|
6
6
|
import styles from './breadcrumb.module.css.js';
|
|
7
7
|
|
|
8
|
-
const
|
|
8
|
+
const BreadcrumbItem = ({ as = jsxRuntimeExports.jsx("a", {}), onItemClick, ...props }) => {
|
|
9
|
+
const { label, href, icon, dropdownItems, isActive } = props;
|
|
10
|
+
if (label === 'ellipsis') {
|
|
11
|
+
return (jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-ellipsis'], children: jsxRuntimeExports.jsx(DotsHorizontalIcon, {}) }));
|
|
12
|
+
}
|
|
13
|
+
if (dropdownItems) {
|
|
14
|
+
return (jsxRuntimeExports.jsxs(DropdownMenu, { children: [jsxRuntimeExports.jsxs(DropdownMenu.Trigger, { className: styles['breadcrumb-dropdown-trigger'], children: [icon && jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-icon'], children: icon }), jsxRuntimeExports.jsx("span", { children: label }), jsxRuntimeExports.jsx(ChevronDownIcon, { className: styles['breadcrumb-dropdown-icon'] })] }), jsxRuntimeExports.jsx(DropdownMenu.Content, { className: styles['breadcrumb-dropdown-content'], children: dropdownItems.map((dropdownItem, dropdownIndex) => (jsxRuntimeExports.jsx(DropdownMenu.Item, { className: styles['breadcrumb-dropdown-item'], onSelect: () => onItemClick?.(dropdownItem), children: dropdownItem.label }, dropdownIndex))) })] }));
|
|
15
|
+
}
|
|
16
|
+
return cloneElement(as, {
|
|
17
|
+
className: cx(styles['breadcrumb-link'], isActive && styles['breadcrumb-link-active']),
|
|
18
|
+
onClick: (e) => {
|
|
19
|
+
if (onItemClick && href !== '#') {
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
onItemClick(props);
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
href,
|
|
25
|
+
...as.props
|
|
26
|
+
}, jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [icon && jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-icon'], children: icon }), jsxRuntimeExports.jsx("span", { children: label })] }));
|
|
27
|
+
};
|
|
28
|
+
const breadcrumbVariants = cva(styles['breadcrumb'], {
|
|
9
29
|
variants: {
|
|
10
30
|
size: {
|
|
11
|
-
small: styles[
|
|
12
|
-
medium: styles[
|
|
13
|
-
}
|
|
31
|
+
small: styles['breadcrumb-small'],
|
|
32
|
+
medium: styles['breadcrumb-medium']
|
|
33
|
+
}
|
|
14
34
|
},
|
|
15
35
|
defaultVariants: {
|
|
16
|
-
size:
|
|
17
|
-
}
|
|
36
|
+
size: 'medium'
|
|
37
|
+
}
|
|
18
38
|
});
|
|
19
39
|
const Breadcrumb = forwardRef(({ className, size = 'medium', items, maxVisibleItems, separator = '/', onItemClick, ...props }, ref) => {
|
|
20
|
-
const visibleItems =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
}, children: [item.icon && jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-icon'], children: item.icon }), jsxRuntimeExports.jsx("span", { children: item.label })] })), !isLast && jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-separator'], children: separator })] }, index));
|
|
36
|
-
return (jsxRuntimeExports.jsx("nav", { className: breadcrumb({ size: size, className }), ref: ref, ...props, children: jsxRuntimeExports.jsx("ol", { className: styles['breadcrumb-list'], children: visibleItems.map((item, index) => renderItem(item, index, index === visibleItems.length - 1)) }) }));
|
|
40
|
+
const visibleItems = useMemo(() => {
|
|
41
|
+
if (maxVisibleItems && items.length > maxVisibleItems) {
|
|
42
|
+
return [
|
|
43
|
+
...items.slice(0, 1),
|
|
44
|
+
{ label: 'ellipsis', href: '#' },
|
|
45
|
+
...items.slice(-Math.min(maxVisibleItems - 1, items.length - 1))
|
|
46
|
+
];
|
|
47
|
+
}
|
|
48
|
+
return items;
|
|
49
|
+
}, [maxVisibleItems, items]);
|
|
50
|
+
return (jsxRuntimeExports.jsx("nav", { className: breadcrumbVariants({ size, className }), ref: ref, ...props, children: jsxRuntimeExports.jsx("ol", { className: styles['breadcrumb-list'], children: visibleItems.map((item, index) => {
|
|
51
|
+
const isLast = index === visibleItems.length - 1;
|
|
52
|
+
return (jsxRuntimeExports.jsxs("li", { className: styles['breadcrumb-item'], children: [jsxRuntimeExports.jsx(BreadcrumbItem, { ...item, isActive: isLast, onItemClick: onItemClick }), !isLast && (jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-separator'], children: separator }))] }, index));
|
|
53
|
+
}) }) }));
|
|
37
54
|
});
|
|
38
|
-
Breadcrumb.displayName =
|
|
55
|
+
Breadcrumb.displayName = 'Breadcrumb';
|
|
39
56
|
|
|
40
57
|
export { Breadcrumb };
|
|
41
58
|
//# sourceMappingURL=breadcrumb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.js","sources":["../../../../v1/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["import { ChevronDownIcon,DotsHorizontalIcon } from
|
|
1
|
+
{"version":3,"file":"breadcrumb.js","sources":["../../../../v1/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["import { ChevronDownIcon, DotsHorizontalIcon } from '@radix-ui/react-icons';\nimport { type VariantProps, cva, cx } from 'class-variance-authority';\nimport {\n MouseEvent,\n ReactElement,\n cloneElement,\n forwardRef,\n useMemo\n} from 'react';\nimport { DropdownMenu } from '../dropdown-menu';\nimport styles from './breadcrumb.module.css';\n\ninterface BreadcrumbItemBase {\n label: string;\n href?: string;\n}\ninterface BreadcrumbItem extends BreadcrumbItemBase {\n icon?: React.ReactNode;\n dropdownItems?: BreadcrumbItemBase[];\n as?: ReactElement;\n}\n\ninterface BreadcrumbItemProps extends BreadcrumbItem {\n isActive: boolean;\n onItemClick?: (item: BreadcrumbItem) => void;\n}\n\nconst BreadcrumbItem = ({\n as = <a />,\n onItemClick,\n ...props\n}: BreadcrumbItemProps) => {\n const { label, href, icon, dropdownItems, isActive } = props;\n\n if (label === 'ellipsis') {\n return (\n <span className={styles['breadcrumb-ellipsis']}>\n <DotsHorizontalIcon />\n </span>\n );\n }\n if (dropdownItems) {\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger className={styles['breadcrumb-dropdown-trigger']}>\n {icon && <span className={styles['breadcrumb-icon']}>{icon}</span>}\n <span>{label}</span>\n <ChevronDownIcon className={styles['breadcrumb-dropdown-icon']} />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content className={styles['breadcrumb-dropdown-content']}>\n {dropdownItems.map((dropdownItem, dropdownIndex) => (\n <DropdownMenu.Item\n key={dropdownIndex}\n className={styles['breadcrumb-dropdown-item']}\n onSelect={() => onItemClick?.(dropdownItem)}\n >\n {dropdownItem.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n }\n return cloneElement(\n as,\n {\n className: cx(\n styles['breadcrumb-link'],\n isActive && styles['breadcrumb-link-active']\n ),\n onClick: (e: MouseEvent) => {\n if (onItemClick && href !== '#') {\n e.preventDefault();\n onItemClick(props);\n }\n },\n href,\n ...as.props\n },\n <>\n {icon && <span className={styles['breadcrumb-icon']}>{icon}</span>}\n <span>{label}</span>\n </>\n );\n};\n\nconst breadcrumbVariants = cva(styles['breadcrumb'], {\n variants: {\n size: {\n small: styles['breadcrumb-small'],\n medium: styles['breadcrumb-medium']\n }\n },\n defaultVariants: {\n size: 'medium'\n }\n});\n\ntype BreadcrumbProps = VariantProps<typeof breadcrumbVariants> & {\n items: BreadcrumbItem[];\n maxVisibleItems?: number;\n separator?: React.ReactNode;\n onItemClick?: (item: BreadcrumbItem) => void;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nexport const Breadcrumb = forwardRef<HTMLDivElement, BreadcrumbProps>(\n (\n {\n className,\n size = 'medium',\n items,\n maxVisibleItems,\n separator = '/',\n onItemClick,\n ...props\n },\n ref\n ) => {\n const visibleItems = useMemo(() => {\n if (maxVisibleItems && items.length > maxVisibleItems) {\n return [\n ...items.slice(0, 1),\n { label: 'ellipsis', href: '#' },\n ...items.slice(-Math.min(maxVisibleItems - 1, items.length - 1))\n ];\n }\n return items;\n }, [maxVisibleItems, items]);\n\n return (\n <nav\n className={breadcrumbVariants({ size, className })}\n ref={ref}\n {...props}\n >\n <ol className={styles['breadcrumb-list']}>\n {visibleItems.map((item, index) => {\n const isLast = index === visibleItems.length - 1;\n return (\n <li className={styles['breadcrumb-item']} key={index}>\n <BreadcrumbItem\n {...item}\n isActive={isLast}\n onItemClick={onItemClick}\n />\n {!isLast && (\n <span className={styles['breadcrumb-separator']}>\n {separator}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\n\nBreadcrumb.displayName = 'Breadcrumb';\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;AA2BA,MAAM,cAAc,GAAG,CAAC,EACtB,EAAE,GAAGA,qBAAA,CAAA,GAAA,EAAA,EAAA,CAAK,EACV,WAAW,EACX,GAAG,KAAK,EACY,KAAI;AACxB,IAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAE7D,IAAA,IAAI,KAAK,KAAK,UAAU,EAAE;AACxB,QAAA,QACEA,qBAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,EAAA,QAAA,EAC5CA,qBAAC,CAAA,kBAAkB,EAAG,EAAA,CAAA,EAAA,CACjB,EACP;KACH;IACD,IAAI,aAAa,EAAE;QACjB,QACEC,uBAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACXA,uBAAC,YAAY,CAAC,OAAO,EAAA,EAAC,SAAS,EAAE,MAAM,CAAC,6BAA6B,CAAC,EACnE,QAAA,EAAA,CAAA,IAAI,IAAID,qBAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAG,QAAA,EAAA,IAAI,GAAQ,EAClEA,qBAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,EAAQ,CAAA,EACpBA,qBAAC,CAAA,eAAe,EAAC,EAAA,SAAS,EAAE,MAAM,CAAC,0BAA0B,CAAC,EAAI,CAAA,CAAA,EAAA,CAC7C,EACvBA,qBAAC,CAAA,YAAY,CAAC,OAAO,EAAC,EAAA,SAAS,EAAE,MAAM,CAAC,6BAA6B,CAAC,EAAA,QAAA,EACnE,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,MAC7CA,qBAAC,CAAA,YAAY,CAAC,IAAI,EAAA,EAEhB,SAAS,EAAE,MAAM,CAAC,0BAA0B,CAAC,EAC7C,QAAQ,EAAE,MAAM,WAAW,GAAG,YAAY,CAAC,YAE1C,YAAY,CAAC,KAAK,EAAA,EAJd,aAAa,CAKA,CACrB,CAAC,EAAA,CACmB,CACV,EAAA,CAAA,EACf;KACH;IACD,OAAO,YAAY,CACjB,EAAE,EACF;AACE,QAAA,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,iBAAiB,CAAC,EACzB,QAAQ,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAC7C;AACD,QAAA,OAAO,EAAE,CAAC,CAAa,KAAI;AACzB,YAAA,IAAI,WAAW,IAAI,IAAI,KAAK,GAAG,EAAE;gBAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,WAAW,CAAC,KAAK,CAAC,CAAC;aACpB;SACF;QACD,IAAI;QACJ,GAAG,EAAE,CAAC,KAAK;AACZ,KAAA,EACDC,gEACG,IAAI,IAAID,gCAAM,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAG,QAAA,EAAA,IAAI,GAAQ,EAClEA,qBAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,EAAQ,CAAA,CAAA,EAAA,CACnB,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AACnD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC;AACjC,YAAA,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACpC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,QAAQ;AACf,KAAA;AACF,CAAA,CAAC,CAAC;AAWI,MAAM,UAAU,GAAG,UAAU,CAClC,CACE,EACE,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,eAAe,EACf,SAAS,GAAG,GAAG,EACf,WAAW,EACX,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAK;QAChC,IAAI,eAAe,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe,EAAE;YACrD,OAAO;AACL,gBAAA,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,gBAAA,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE;AAChC,gBAAA,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACjE,CAAC;SACH;AACD,QAAA,OAAO,KAAK,CAAC;AACf,KAAC,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7B,IAAA,QACEA,qBACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAClD,GAAG,EAAE,GAAG,EACJ,GAAA,KAAK,EAET,QAAA,EAAAA,qBAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,EACrC,QAAA,EAAA,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBAChC,MAAM,MAAM,GAAG,KAAK,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,gBAAA,QACEC,sBAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,CACtCD,sBAAC,cAAc,EAAA,EAAA,GACT,IAAI,EACR,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,CAAA,EACD,CAAC,MAAM,KACNA,qBAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAC5C,SAAS,EACL,CAAA,CACR,KAV4C,KAAK,CAW/C,EACL;AACJ,aAAC,CAAC,EAAA,CACC,EACD,CAAA,EACN;AACJ,CAAC,EACD;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY;;;;"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
|
|
4
|
+
var filter = require('../../../icons/assets/filter.svg.cjs');
|
|
5
|
+
var filters = require('../../../types/filters.cjs');
|
|
4
6
|
var button = require('../../button/button.cjs');
|
|
5
7
|
var dropdownMenu = require('../../dropdown-menu/dropdown-menu.cjs');
|
|
6
8
|
var filterChip = require('../../filter-chip/filter-chip.cjs');
|
|
7
9
|
var flex = require('../../flex/flex.cjs');
|
|
8
10
|
var iconButton = require('../../icon-button/icon-button.cjs');
|
|
9
|
-
var filter = require('../../../icons/assets/filter.svg.cjs');
|
|
10
11
|
var useDataTable = require('../hooks/useDataTable.cjs');
|
|
11
|
-
var filters = require('../../../types/filters.cjs');
|
|
12
12
|
var useFilters = require('../hooks/useFilters.cjs');
|
|
13
13
|
|
|
14
|
-
function AddFilter({ columnList = [], appliedFiltersSet, onAddFilter
|
|
15
|
-
const availableFilters = columnList?.filter(
|
|
16
|
-
return availableFilters.length > 0 ? (jsxRuntime.jsxRuntimeExports.jsxs(dropdownMenu.DropdownMenu, { children: [jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Trigger, { asChild: true, children: appliedFiltersSet.size > 0 ? (jsxRuntime.jsxRuntimeExports.jsx(iconButton.IconButton, { size: 4, children: jsxRuntime.jsxRuntimeExports.jsx(filter.ReactComponent, {}) })) : (jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant:
|
|
14
|
+
function AddFilter({ columnList = [], appliedFiltersSet, onAddFilter }) {
|
|
15
|
+
const availableFilters = columnList?.filter(col => !appliedFiltersSet.has(col.id));
|
|
16
|
+
return availableFilters.length > 0 ? (jsxRuntime.jsxRuntimeExports.jsxs(dropdownMenu.DropdownMenu, { children: [jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Trigger, { asChild: true, children: appliedFiltersSet.size > 0 ? (jsxRuntime.jsxRuntimeExports.jsx(iconButton.IconButton, { size: 4, children: jsxRuntime.jsxRuntimeExports.jsx(filter.ReactComponent, {}) })) : (jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: 'text', size: 'small', leadingIcon: jsxRuntime.jsxRuntimeExports.jsx(filter.ReactComponent, {}), children: "Filter" })) }), jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Content, { children: availableFilters?.map(column => {
|
|
17
17
|
const columnDef = column.columnDef;
|
|
18
18
|
const id = columnDef.accessorKey || column.id;
|
|
19
|
-
return (jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Item, {
|
|
19
|
+
return (jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Item, { onClick: () => onAddFilter(column), children: columnDef.header || id }, id));
|
|
20
20
|
}) })] })) : null;
|
|
21
21
|
}
|
|
22
22
|
function Filters() {
|
|
23
23
|
const { table, tableQuery } = useDataTable.useDataTable();
|
|
24
24
|
const columns = table?.getAllColumns();
|
|
25
|
-
const { onAddFilter, handleRemoveFilter, handleFilterValueChange, handleFilterOperationChange
|
|
26
|
-
const columnList = columns?.filter(
|
|
27
|
-
const appliedFiltersSet = new Set(tableQuery?.filters?.map(
|
|
28
|
-
const appliedFilters = tableQuery?.filters?.map(
|
|
29
|
-
const columnDef = columns?.find(
|
|
25
|
+
const { onAddFilter, handleRemoveFilter, handleFilterValueChange, handleFilterOperationChange } = useFilters.useFilters();
|
|
26
|
+
const columnList = columns?.filter(column => column.columnDef.enableColumnFilter);
|
|
27
|
+
const appliedFiltersSet = new Set(tableQuery?.filters?.map(filter => filter.name));
|
|
28
|
+
const appliedFilters = tableQuery?.filters?.map(filter => {
|
|
29
|
+
const columnDef = columns?.find(col => {
|
|
30
30
|
const columnDef = col.columnDef;
|
|
31
31
|
const id = columnDef.accessorKey || col.id;
|
|
32
32
|
return id === filter.name;
|
|
33
33
|
})?.columnDef;
|
|
34
34
|
return {
|
|
35
35
|
filterType: columnDef?.filterType || filters.FilterType.string,
|
|
36
|
-
label: columnDef?.header ||
|
|
36
|
+
label: columnDef?.header || '',
|
|
37
37
|
options: columnDef?.filterOptions || [],
|
|
38
|
-
...filter
|
|
38
|
+
...filter
|
|
39
39
|
};
|
|
40
40
|
}) || [];
|
|
41
|
-
return (jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { gap: 3, children: [jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { gap: 3, children: appliedFilters.map(
|
|
41
|
+
return (jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { gap: 3, children: [jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { gap: 3, children: appliedFilters.map(filter => (jsxRuntime.jsxRuntimeExports.jsx(filterChip.FilterChip, { label: filter.label, value: filter.value, onRemove: () => handleRemoveFilter(filter.name), onValueChange: value => handleFilterValueChange(filter.name, value), onOperationChange: operator => handleFilterOperationChange(filter.name, operator), columnType: filter.filterType, options: filter.options }, filter.name))) }), jsxRuntime.jsxRuntimeExports.jsx(AddFilter, { columnList: columnList, appliedFiltersSet: appliedFiltersSet, onAddFilter: onAddFilter })] }));
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
exports.Filters = Filters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.cjs","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"sourcesContent":["import { Button } from
|
|
1
|
+
{"version":3,"file":"filters.cjs","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"sourcesContent":["import { FilterIcon } from '~/icons';\nimport { FilterOperatorTypes, FilterType } from '~/v1/types/filters';\nimport { Button } from '../../button';\nimport { DropdownMenu } from '../../dropdown-menu';\nimport { FilterChip } from '../../filter-chip';\nimport { Flex } from '../../flex';\nimport { IconButton } from '../../icon-button';\nimport { DataTableColumn } from '../data-table.types';\nimport { useDataTable } from '../hooks/useDataTable';\nimport { useFilters } from '../hooks/useFilters';\n\ninterface AddFilterProps<TData, TValue> {\n columnList: DataTableColumn<TData, TValue>[];\n appliedFiltersSet: Set<string>;\n onAddFilter: (column: DataTableColumn<TData, TValue>) => void;\n}\n\nfunction AddFilter<TData, TValue>({\n columnList = [],\n appliedFiltersSet,\n onAddFilter\n}: AddFilterProps<TData, TValue>) {\n const availableFilters = columnList?.filter(\n col => !appliedFiltersSet.has(col.id)\n );\n\n return availableFilters.length > 0 ? (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n {appliedFiltersSet.size > 0 ? (\n <IconButton size={4}>\n <FilterIcon />\n </IconButton>\n ) : (\n <Button variant={'text'} size={'small'} leadingIcon={<FilterIcon />}>\n Filter\n </Button>\n )}\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n {availableFilters?.map(column => {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n return (\n <DropdownMenu.Item key={id} onClick={() => onAddFilter(column)}>\n {columnDef.header || id}\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu>\n ) : null;\n}\n\nexport function Filters<TData, TValue>() {\n const { table, tableQuery } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange\n } = useFilters<TData, TValue>();\n\n const columnList = columns?.filter(\n column => column.columnDef.enableColumnFilter\n );\n\n const appliedFiltersSet = new Set(\n tableQuery?.filters?.map(filter => filter.name)\n );\n\n const appliedFilters =\n tableQuery?.filters?.map(filter => {\n const columnDef = columns?.find(col => {\n const columnDef = col.columnDef;\n const id = columnDef.accessorKey || col.id;\n return id === filter.name;\n })?.columnDef;\n return {\n filterType: columnDef?.filterType || FilterType.string,\n label: (columnDef?.header as string) || '',\n options: columnDef?.filterOptions || [],\n ...filter\n };\n }) || [];\n\n return (\n <Flex gap={3}>\n <Flex gap={3}>\n {appliedFilters.map(filter => (\n <FilterChip\n key={filter.name}\n label={filter.label}\n value={filter.value}\n onRemove={() => handleRemoveFilter(filter.name)}\n onValueChange={value => handleFilterValueChange(filter.name, value)}\n onOperationChange={operator =>\n handleFilterOperationChange(\n filter.name,\n operator as FilterOperatorTypes\n )\n }\n columnType={filter.filterType}\n options={filter.options}\n />\n ))}\n </Flex>\n <AddFilter\n columnList={columnList}\n appliedFiltersSet={appliedFiltersSet}\n onAddFilter={onAddFilter}\n />\n </Flex>\n );\n}\n"],"names":["_jsxs","DropdownMenu","_jsx","IconButton","FilterIcon","Button","useDataTable","useFilters","FilterType","Flex","FilterChip"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"names":[],"mappings":"AAsDA,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"names":[],"mappings":"AAsDA,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,6CA8DpC"}
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from '../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
|
|
2
|
+
import { ReactComponent as SvgFilter } from '../../../icons/assets/filter.svg.js';
|
|
3
|
+
import { FilterType } from '../../../types/filters.js';
|
|
2
4
|
import { Button } from '../../button/button.js';
|
|
3
5
|
import { DropdownMenu } from '../../dropdown-menu/dropdown-menu.js';
|
|
4
6
|
import { FilterChip } from '../../filter-chip/filter-chip.js';
|
|
5
7
|
import { Flex } from '../../flex/flex.js';
|
|
6
8
|
import { IconButton } from '../../icon-button/icon-button.js';
|
|
7
|
-
import { ReactComponent as SvgFilter } from '../../../icons/assets/filter.svg.js';
|
|
8
9
|
import { useDataTable } from '../hooks/useDataTable.js';
|
|
9
|
-
import { FilterType } from '../../../types/filters.js';
|
|
10
10
|
import { useFilters } from '../hooks/useFilters.js';
|
|
11
11
|
|
|
12
|
-
function AddFilter({ columnList = [], appliedFiltersSet, onAddFilter
|
|
13
|
-
const availableFilters = columnList?.filter(
|
|
14
|
-
return availableFilters.length > 0 ? (jsxRuntimeExports.jsxs(DropdownMenu, { children: [jsxRuntimeExports.jsx(DropdownMenu.Trigger, { asChild: true, children: appliedFiltersSet.size > 0 ? (jsxRuntimeExports.jsx(IconButton, { size: 4, children: jsxRuntimeExports.jsx(SvgFilter, {}) })) : (jsxRuntimeExports.jsx(Button, { variant:
|
|
12
|
+
function AddFilter({ columnList = [], appliedFiltersSet, onAddFilter }) {
|
|
13
|
+
const availableFilters = columnList?.filter(col => !appliedFiltersSet.has(col.id));
|
|
14
|
+
return availableFilters.length > 0 ? (jsxRuntimeExports.jsxs(DropdownMenu, { children: [jsxRuntimeExports.jsx(DropdownMenu.Trigger, { asChild: true, children: appliedFiltersSet.size > 0 ? (jsxRuntimeExports.jsx(IconButton, { size: 4, children: jsxRuntimeExports.jsx(SvgFilter, {}) })) : (jsxRuntimeExports.jsx(Button, { variant: 'text', size: 'small', leadingIcon: jsxRuntimeExports.jsx(SvgFilter, {}), children: "Filter" })) }), jsxRuntimeExports.jsx(DropdownMenu.Content, { children: availableFilters?.map(column => {
|
|
15
15
|
const columnDef = column.columnDef;
|
|
16
16
|
const id = columnDef.accessorKey || column.id;
|
|
17
|
-
return (jsxRuntimeExports.jsx(DropdownMenu.Item, {
|
|
17
|
+
return (jsxRuntimeExports.jsx(DropdownMenu.Item, { onClick: () => onAddFilter(column), children: columnDef.header || id }, id));
|
|
18
18
|
}) })] })) : null;
|
|
19
19
|
}
|
|
20
20
|
function Filters() {
|
|
21
21
|
const { table, tableQuery } = useDataTable();
|
|
22
22
|
const columns = table?.getAllColumns();
|
|
23
|
-
const { onAddFilter, handleRemoveFilter, handleFilterValueChange, handleFilterOperationChange
|
|
24
|
-
const columnList = columns?.filter(
|
|
25
|
-
const appliedFiltersSet = new Set(tableQuery?.filters?.map(
|
|
26
|
-
const appliedFilters = tableQuery?.filters?.map(
|
|
27
|
-
const columnDef = columns?.find(
|
|
23
|
+
const { onAddFilter, handleRemoveFilter, handleFilterValueChange, handleFilterOperationChange } = useFilters();
|
|
24
|
+
const columnList = columns?.filter(column => column.columnDef.enableColumnFilter);
|
|
25
|
+
const appliedFiltersSet = new Set(tableQuery?.filters?.map(filter => filter.name));
|
|
26
|
+
const appliedFilters = tableQuery?.filters?.map(filter => {
|
|
27
|
+
const columnDef = columns?.find(col => {
|
|
28
28
|
const columnDef = col.columnDef;
|
|
29
29
|
const id = columnDef.accessorKey || col.id;
|
|
30
30
|
return id === filter.name;
|
|
31
31
|
})?.columnDef;
|
|
32
32
|
return {
|
|
33
33
|
filterType: columnDef?.filterType || FilterType.string,
|
|
34
|
-
label: columnDef?.header ||
|
|
34
|
+
label: columnDef?.header || '',
|
|
35
35
|
options: columnDef?.filterOptions || [],
|
|
36
|
-
...filter
|
|
36
|
+
...filter
|
|
37
37
|
};
|
|
38
38
|
}) || [];
|
|
39
|
-
return (jsxRuntimeExports.jsxs(Flex, { gap: 3, children: [jsxRuntimeExports.jsx(Flex, { gap: 3, children: appliedFilters.map(
|
|
39
|
+
return (jsxRuntimeExports.jsxs(Flex, { gap: 3, children: [jsxRuntimeExports.jsx(Flex, { gap: 3, children: appliedFilters.map(filter => (jsxRuntimeExports.jsx(FilterChip, { label: filter.label, value: filter.value, onRemove: () => handleRemoveFilter(filter.name), onValueChange: value => handleFilterValueChange(filter.name, value), onOperationChange: operator => handleFilterOperationChange(filter.name, operator), columnType: filter.filterType, options: filter.options }, filter.name))) }), jsxRuntimeExports.jsx(AddFilter, { columnList: columnList, appliedFiltersSet: appliedFiltersSet, onAddFilter: onAddFilter })] }));
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
export { Filters };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"sourcesContent":["import { Button } from
|
|
1
|
+
{"version":3,"file":"filters.js","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"sourcesContent":["import { FilterIcon } from '~/icons';\nimport { FilterOperatorTypes, FilterType } from '~/v1/types/filters';\nimport { Button } from '../../button';\nimport { DropdownMenu } from '../../dropdown-menu';\nimport { FilterChip } from '../../filter-chip';\nimport { Flex } from '../../flex';\nimport { IconButton } from '../../icon-button';\nimport { DataTableColumn } from '../data-table.types';\nimport { useDataTable } from '../hooks/useDataTable';\nimport { useFilters } from '../hooks/useFilters';\n\ninterface AddFilterProps<TData, TValue> {\n columnList: DataTableColumn<TData, TValue>[];\n appliedFiltersSet: Set<string>;\n onAddFilter: (column: DataTableColumn<TData, TValue>) => void;\n}\n\nfunction AddFilter<TData, TValue>({\n columnList = [],\n appliedFiltersSet,\n onAddFilter\n}: AddFilterProps<TData, TValue>) {\n const availableFilters = columnList?.filter(\n col => !appliedFiltersSet.has(col.id)\n );\n\n return availableFilters.length > 0 ? (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n {appliedFiltersSet.size > 0 ? (\n <IconButton size={4}>\n <FilterIcon />\n </IconButton>\n ) : (\n <Button variant={'text'} size={'small'} leadingIcon={<FilterIcon />}>\n Filter\n </Button>\n )}\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n {availableFilters?.map(column => {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n return (\n <DropdownMenu.Item key={id} onClick={() => onAddFilter(column)}>\n {columnDef.header || id}\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu>\n ) : null;\n}\n\nexport function Filters<TData, TValue>() {\n const { table, tableQuery } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange\n } = useFilters<TData, TValue>();\n\n const columnList = columns?.filter(\n column => column.columnDef.enableColumnFilter\n );\n\n const appliedFiltersSet = new Set(\n tableQuery?.filters?.map(filter => filter.name)\n );\n\n const appliedFilters =\n tableQuery?.filters?.map(filter => {\n const columnDef = columns?.find(col => {\n const columnDef = col.columnDef;\n const id = columnDef.accessorKey || col.id;\n return id === filter.name;\n })?.columnDef;\n return {\n filterType: columnDef?.filterType || FilterType.string,\n label: (columnDef?.header as string) || '',\n options: columnDef?.filterOptions || [],\n ...filter\n };\n }) || [];\n\n return (\n <Flex gap={3}>\n <Flex gap={3}>\n {appliedFilters.map(filter => (\n <FilterChip\n key={filter.name}\n label={filter.label}\n value={filter.value}\n onRemove={() => handleRemoveFilter(filter.name)}\n onValueChange={value => handleFilterValueChange(filter.name, value)}\n onOperationChange={operator =>\n handleFilterOperationChange(\n filter.name,\n operator as FilterOperatorTypes\n )\n }\n columnType={filter.filterType}\n options={filter.options}\n />\n ))}\n </Flex>\n <AddFilter\n columnList={columnList}\n appliedFiltersSet={appliedFiltersSet}\n onAddFilter={onAddFilter}\n />\n </Flex>\n );\n}\n"],"names":["_jsxs","_jsx","FilterIcon"],"mappings":"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"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
|
|
4
|
-
var React = require('react');
|
|
5
4
|
var VIIRIBF3 = require('../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/__chunks/VIIRIBF3.cjs');
|
|
6
5
|
var menu = require('../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/menu/menu.cjs');
|
|
7
6
|
var combobox = require('../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/combobox/combobox.cjs');
|
|
8
7
|
var MAXQOH4L = require('../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/__chunks/MAXQOH4L.cjs');
|
|
9
|
-
var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
|
|
10
|
-
var dropdownMenu_module = require('./dropdown-menu.module.css.cjs');
|
|
11
8
|
var index$1 = require('../../node_modules/.pnpm/@radix-ui_react-slot@1.0.2_@types_react@18.2.12_react@18.2.0/node_modules/@radix-ui/react-slot/dist/index.cjs');
|
|
9
|
+
var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
|
|
10
|
+
var React = require('react');
|
|
12
11
|
var dropdownMenuRoot = require('./dropdown-menu-root.cjs');
|
|
12
|
+
var dropdownMenu_module = require('./dropdown-menu.module.css.cjs');
|
|
13
13
|
|
|
14
|
-
const DropdownMenuContent = React.forwardRef(({ className, children, asChild, searchPlaceholder =
|
|
14
|
+
const DropdownMenuContent = React.forwardRef(({ className, children, asChild, searchPlaceholder = 'Search...', ...props }, ref) => {
|
|
15
15
|
const menu$1 = VIIRIBF3.useMenuContext();
|
|
16
16
|
const { autocomplete } = dropdownMenuRoot.useDropdownContext();
|
|
17
17
|
const isSubMenu = !!menu$1?.parent;
|
|
18
18
|
const comboboxRef = React.useRef(null);
|
|
19
|
-
return (jsxRuntime.jsxRuntimeExports.jsx(menu.Menu, { ref: ref, modal: true, portal: true, portalElement: typeof window ===
|
|
19
|
+
return (jsxRuntime.jsxRuntimeExports.jsx(menu.Menu, { ref: ref, modal: true, portal: true, portalElement: typeof window === 'undefined' ? null : window?.document?.body, unmountOnHide: true, gutter: isSubMenu ? 2 : 4, className: index.cx(dropdownMenu_module.default.content, autocomplete && dropdownMenu_module.default.comboboxContainer, className), render: asChild ? jsxRuntime.jsxRuntimeExports.jsx(index$1.Slot, {}) : undefined, ...props, children: autocomplete ? (jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [jsxRuntime.jsxRuntimeExports.jsx(combobox.Combobox, { ref: comboboxRef, placeholder: searchPlaceholder, className: dropdownMenu_module.default.comboboxInput, autoSelect: true, onPointerEnter: e => {
|
|
20
20
|
if (document && document.activeElement !== comboboxRef.current)
|
|
21
21
|
comboboxRef.current?.focus();
|
|
22
22
|
} }), jsxRuntime.jsxRuntimeExports.jsx(MAXQOH4L.ComboboxList, { className: dropdownMenu_module.default.comboboxContent, children: children })] })) : (children) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu-content.cjs","sources":["../../../../v1/components/dropdown-menu/dropdown-menu-content.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"dropdown-menu-content.cjs","sources":["../../../../v1/components/dropdown-menu/dropdown-menu-content.tsx"],"sourcesContent":["import { Menu, MenuProps, useMenuContext } from '@ariakit/react';\nimport { Combobox, ComboboxList } from '@ariakit/react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cx } from 'class-variance-authority';\nimport { ElementRef, forwardRef, useRef } from 'react';\nimport { useDropdownContext } from './dropdown-menu-root';\nimport styles from './dropdown-menu.module.css';\nimport { WithAsChild } from './types';\n\nexport interface MenuContentProps extends WithAsChild<MenuProps> {\n searchPlaceholder?: string;\n}\n\nexport const DropdownMenuContent = forwardRef<\n ElementRef<typeof Menu>,\n MenuContentProps\n>(\n (\n { className, children, asChild, searchPlaceholder = 'Search...', ...props },\n ref\n ) => {\n const menu = useMenuContext();\n const { autocomplete } = useDropdownContext();\n const isSubMenu = !!menu?.parent;\n const comboboxRef = useRef<HTMLInputElement>(null);\n\n return (\n <Menu\n ref={ref}\n modal\n portal\n portalElement={\n typeof window === 'undefined' ? null : window?.document?.body\n }\n unmountOnHide\n gutter={isSubMenu ? 2 : 4}\n className={cx(\n styles.content,\n autocomplete && styles.comboboxContainer,\n className\n )}\n render={asChild ? <Slot /> : undefined}\n {...props}\n >\n {autocomplete ? (\n <>\n <Combobox\n ref={comboboxRef}\n placeholder={searchPlaceholder}\n className={styles.comboboxInput}\n autoSelect\n onPointerEnter={e => {\n if (document && document.activeElement !== comboboxRef.current)\n comboboxRef.current?.focus();\n }}\n />\n <ComboboxList className={styles.comboboxContent}>\n {children}\n </ComboboxList>\n </>\n ) : (\n children\n )}\n </Menu>\n );\n }\n);\n"],"names":["forwardRef","menu","useMenuContext","useDropdownContext","useRef","_jsx","Menu","cx","styles","Slot","_jsxs","_Fragment","Combobox","ComboboxList"],"mappings":";;;;;;;;;;;;;AAaa,MAAA,mBAAmB,GAAGA,gBAAU,CAI3C,CACE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW,EAAE,GAAG,KAAK,EAAE,EAC3E,GAAG,KACD;AACF,IAAA,MAAMC,MAAI,GAAGC,uBAAc,EAAE,CAAC;AAC9B,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,mCAAkB,EAAE,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,CAAC,CAACF,MAAI,EAAE,MAAM,CAAC;AACjC,IAAA,MAAM,WAAW,GAAGG,YAAM,CAAmB,IAAI,CAAC,CAAC;IAEnD,QACEC,iCAACC,SAAI,EAAA,EACH,GAAG,EAAE,GAAG,EACR,KAAK,EACL,IAAA,EAAA,MAAM,QACN,aAAa,EACX,OAAO,MAAM,KAAK,WAAW,GAAG,IAAI,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAE/D,aAAa,QACb,MAAM,EAAE,SAAS,GAAG,CAAC,GAAG,CAAC,EACzB,SAAS,EAAEC,QAAE,CACXC,2BAAM,CAAC,OAAO,EACd,YAAY,IAAIA,2BAAM,CAAC,iBAAiB,EACxC,SAAS,CACV,EACD,MAAM,EAAE,OAAO,GAAGH,gCAAC,CAAAI,YAAI,EAAG,EAAA,CAAA,GAAG,SAAS,EAClC,GAAA,KAAK,EAER,QAAA,EAAA,YAAY,IACXC,iCAAA,CAAAC,qCAAA,EAAA,EAAA,QAAA,EAAA,CACEN,gCAAC,CAAAO,iBAAQ,EACP,EAAA,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAEJ,2BAAM,CAAC,aAAa,EAC/B,UAAU,QACV,cAAc,EAAE,CAAC,IAAG;wBAClB,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,CAAC,OAAO;AAC5D,4BAAA,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;qBAChC,EAAA,CACD,EACFH,gCAAC,CAAAQ,qBAAY,IAAC,SAAS,EAAEL,2BAAM,CAAC,eAAe,EAAA,QAAA,EAC5C,QAAQ,EACI,CAAA,CAAA,EAAA,CACd,KAEH,QAAQ,CACT,EACI,CAAA,EACP;AACJ,CAAC;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MenuProps } from
|
|
2
|
-
import { WithAsChild } from
|
|
3
|
-
export interface MenuContentProps extends
|
|
1
|
+
import { MenuProps } from '@ariakit/react';
|
|
2
|
+
import { WithAsChild } from './types';
|
|
3
|
+
export interface MenuContentProps extends WithAsChild<MenuProps> {
|
|
4
4
|
searchPlaceholder?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare const DropdownMenuContent: import("react").ForwardRefExoticComponent<Omit<MenuContentProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu-content.d.ts","sourceRoot":"","sources":["../../../../v1/components/dropdown-menu/dropdown-menu-content.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dropdown-menu-content.d.ts","sourceRoot":"","sources":["../../../../v1/components/dropdown-menu/dropdown-menu-content.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAOjE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,gBAAiB,SAAQ,WAAW,CAAC,SAAS,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,0HAqD/B,CAAC"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
|
|
2
|
-
import { forwardRef, useRef } from 'react';
|
|
3
2
|
import { useMenuContext } from '../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/__chunks/VIIRIBF3.js';
|
|
4
3
|
import { Menu } from '../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/menu/menu.js';
|
|
5
4
|
import { Combobox } from '../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/combobox/combobox.js';
|
|
6
5
|
import { ComboboxList } from '../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/__chunks/MAXQOH4L.js';
|
|
7
|
-
import { cx } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
|
|
8
|
-
import styles from './dropdown-menu.module.css.js';
|
|
9
6
|
import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../node_modules/.pnpm/@radix-ui_react-slot@1.0.2_@types_react@18.2.12_react@18.2.0/node_modules/@radix-ui/react-slot/dist/index.js';
|
|
7
|
+
import { cx } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
|
|
8
|
+
import { forwardRef, useRef } from 'react';
|
|
10
9
|
import { useDropdownContext } from './dropdown-menu-root.js';
|
|
10
|
+
import styles from './dropdown-menu.module.css.js';
|
|
11
11
|
|
|
12
|
-
const DropdownMenuContent = forwardRef(({ className, children, asChild, searchPlaceholder =
|
|
12
|
+
const DropdownMenuContent = forwardRef(({ className, children, asChild, searchPlaceholder = 'Search...', ...props }, ref) => {
|
|
13
13
|
const menu = useMenuContext();
|
|
14
14
|
const { autocomplete } = useDropdownContext();
|
|
15
15
|
const isSubMenu = !!menu?.parent;
|
|
16
16
|
const comboboxRef = useRef(null);
|
|
17
|
-
return (jsxRuntimeExports.jsx(Menu, { ref: ref, modal: true, portal: true, portalElement: typeof window ===
|
|
17
|
+
return (jsxRuntimeExports.jsx(Menu, { ref: ref, modal: true, portal: true, portalElement: typeof window === 'undefined' ? null : window?.document?.body, unmountOnHide: true, gutter: isSubMenu ? 2 : 4, className: cx(styles.content, autocomplete && styles.comboboxContainer, className), render: asChild ? jsxRuntimeExports.jsx($5e63c961fc1ce211$export$8c6ed5c666ac1360, {}) : undefined, ...props, children: autocomplete ? (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Combobox, { ref: comboboxRef, placeholder: searchPlaceholder, className: styles.comboboxInput, autoSelect: true, onPointerEnter: e => {
|
|
18
18
|
if (document && document.activeElement !== comboboxRef.current)
|
|
19
19
|
comboboxRef.current?.focus();
|
|
20
20
|
} }), jsxRuntimeExports.jsx(ComboboxList, { className: styles.comboboxContent, children: children })] })) : (children) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu-content.js","sources":["../../../../v1/components/dropdown-menu/dropdown-menu-content.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"dropdown-menu-content.js","sources":["../../../../v1/components/dropdown-menu/dropdown-menu-content.tsx"],"sourcesContent":["import { Menu, MenuProps, useMenuContext } from '@ariakit/react';\nimport { Combobox, ComboboxList } from '@ariakit/react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cx } from 'class-variance-authority';\nimport { ElementRef, forwardRef, useRef } from 'react';\nimport { useDropdownContext } from './dropdown-menu-root';\nimport styles from './dropdown-menu.module.css';\nimport { WithAsChild } from './types';\n\nexport interface MenuContentProps extends WithAsChild<MenuProps> {\n searchPlaceholder?: string;\n}\n\nexport const DropdownMenuContent = forwardRef<\n ElementRef<typeof Menu>,\n MenuContentProps\n>(\n (\n { className, children, asChild, searchPlaceholder = 'Search...', ...props },\n ref\n ) => {\n const menu = useMenuContext();\n const { autocomplete } = useDropdownContext();\n const isSubMenu = !!menu?.parent;\n const comboboxRef = useRef<HTMLInputElement>(null);\n\n return (\n <Menu\n ref={ref}\n modal\n portal\n portalElement={\n typeof window === 'undefined' ? null : window?.document?.body\n }\n unmountOnHide\n gutter={isSubMenu ? 2 : 4}\n className={cx(\n styles.content,\n autocomplete && styles.comboboxContainer,\n className\n )}\n render={asChild ? <Slot /> : undefined}\n {...props}\n >\n {autocomplete ? (\n <>\n <Combobox\n ref={comboboxRef}\n placeholder={searchPlaceholder}\n className={styles.comboboxInput}\n autoSelect\n onPointerEnter={e => {\n if (document && document.activeElement !== comboboxRef.current)\n comboboxRef.current?.focus();\n }}\n />\n <ComboboxList className={styles.comboboxContent}>\n {children}\n </ComboboxList>\n </>\n ) : (\n children\n )}\n </Menu>\n );\n }\n);\n"],"names":["_jsx","Slot","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;AAaa,MAAA,mBAAmB,GAAG,UAAU,CAI3C,CACE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW,EAAE,GAAG,KAAK,EAAE,EAC3E,GAAG,KACD;AACF,IAAA,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;AAC9B,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;AACjC,IAAA,MAAM,WAAW,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEnD,QACEA,sBAAC,IAAI,EAAA,EACH,GAAG,EAAE,GAAG,EACR,KAAK,EACL,IAAA,EAAA,MAAM,QACN,aAAa,EACX,OAAO,MAAM,KAAK,WAAW,GAAG,IAAI,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAE/D,aAAa,QACb,MAAM,EAAE,SAAS,GAAG,CAAC,GAAG,CAAC,EACzB,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,OAAO,EACd,YAAY,IAAI,MAAM,CAAC,iBAAiB,EACxC,SAAS,CACV,EACD,MAAM,EAAE,OAAO,GAAGA,qBAAC,CAAAC,yCAAI,EAAG,EAAA,CAAA,GAAG,SAAS,EAClC,GAAA,KAAK,EAER,QAAA,EAAA,YAAY,IACXC,sBAAA,CAAAC,0BAAA,EAAA,EAAA,QAAA,EAAA,CACEH,qBAAC,CAAA,QAAQ,EACP,EAAA,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,MAAM,CAAC,aAAa,EAC/B,UAAU,QACV,cAAc,EAAE,CAAC,IAAG;wBAClB,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,CAAC,OAAO;AAC5D,4BAAA,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;qBAChC,EAAA,CACD,EACFA,qBAAC,CAAA,YAAY,IAAC,SAAS,EAAE,MAAM,CAAC,eAAe,EAAA,QAAA,EAC5C,QAAQ,EACI,CAAA,CAAA,EAAA,CACd,KAEH,QAAQ,CACT,EACI,CAAA,EACP;AACJ,CAAC;;;;"}
|
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
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-select@2.2.4_@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-select/dist/index.cjs');
|
|
6
4
|
var combobox = require('../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/combobox/combobox.cjs');
|
|
7
5
|
var MAXQOH4L = require('../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/__chunks/MAXQOH4L.cjs');
|
|
6
|
+
var index = require('../../node_modules/.pnpm/@radix-ui_react-select@2.2.4_@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-select/dist/index.cjs');
|
|
7
|
+
var index$2 = require('../../node_modules/.pnpm/@radix-ui_react-slot@1.0.2_@types_react@18.2.12_react@18.2.0/node_modules/@radix-ui/react-slot/dist/index.cjs');
|
|
8
8
|
var index$1 = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
|
|
9
|
-
var
|
|
9
|
+
var React = require('react');
|
|
10
10
|
var selectRoot = require('./select-root.cjs');
|
|
11
|
+
var select_module = require('./select.module.css.cjs');
|
|
11
12
|
|
|
12
|
-
const SelectContent = React.forwardRef(({ className, children, position =
|
|
13
|
-
const { autocomplete } = selectRoot.useSelectContext();
|
|
14
|
-
|
|
13
|
+
const SelectContent = React.forwardRef(({ className, children, position = 'popper', searchPlaceholder = 'Search...', sideOffset = 4, asChild, onEscapeKeyDown: providedOnEscapeKeyDown, onPointerDownOutside: providedOnPointerDownOutside, ...props }, ref) => {
|
|
14
|
+
const { autocomplete, multiple, updateSelectionInProgress } = selectRoot.useSelectContext();
|
|
15
|
+
const onPointerDownOutside = React.useCallback(event => {
|
|
16
|
+
updateSelectionInProgress(false);
|
|
17
|
+
providedOnPointerDownOutside?.(event);
|
|
18
|
+
}, [updateSelectionInProgress, providedOnPointerDownOutside]);
|
|
19
|
+
const onEscapeKeyDown = React.useCallback(event => {
|
|
20
|
+
updateSelectionInProgress(false);
|
|
21
|
+
providedOnEscapeKeyDown?.(event);
|
|
22
|
+
}, [updateSelectionInProgress, providedOnEscapeKeyDown]);
|
|
23
|
+
return (jsxRuntime.jsxRuntimeExports.jsx(index.Portal, { children: jsxRuntime.jsxRuntimeExports.jsx(index.Content, { ref: ref, position: position, sideOffset: sideOffset, className: index$1.cx(select_module.default.content, className), onEscapeKeyDown: multiple ? onEscapeKeyDown : providedOnEscapeKeyDown, onPointerDownOutside: multiple ? onPointerDownOutside : providedOnPointerDownOutside, role: autocomplete ? 'dialog' : 'listbox', "aria-multiselectable": !autocomplete && multiple ? true : undefined, "data-multiselectable": multiple ? true : undefined, ...props, children: jsxRuntime.jsxRuntimeExports.jsx(index.Viewport, { className: index$1.cx(select_module.default.viewport, autocomplete && select_module.default.comboboxViewport), asChild: !autocomplete ? asChild : undefined, children: autocomplete ? (jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [jsxRuntime.jsxRuntimeExports.jsx(combobox.Combobox, { autoSelect: true, placeholder: searchPlaceholder, className: select_module.default.comboboxInput, onBlurCapture: event => {
|
|
15
24
|
event.preventDefault();
|
|
16
25
|
event.stopPropagation();
|
|
17
|
-
} }), jsxRuntime.jsxRuntimeExports.jsx(MAXQOH4L.ComboboxList, { className: select_module.default.comboboxContent, children: children })] })) : (children) }) }) }));
|
|
26
|
+
} }), jsxRuntime.jsxRuntimeExports.jsx(MAXQOH4L.ComboboxList, { className: select_module.default.comboboxContent, "aria-multiselectable": multiple ? true : undefined, render: asChild ? jsxRuntime.jsxRuntimeExports.jsx(index$2.Slot, {}) : undefined, children: children })] })) : (children) }) }) }));
|
|
18
27
|
});
|
|
19
28
|
SelectContent.displayName = index.Content.displayName;
|
|
20
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-content.cjs","sources":["../../../../v1/components/select/select-content.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"select-content.cjs","sources":["../../../../v1/components/select/select-content.tsx"],"sourcesContent":["import { Combobox, ComboboxList } from '@ariakit/react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cx } from 'class-variance-authority';\nimport { ElementRef, forwardRef, useCallback } from 'react';\nimport { useSelectContext } from './select-root';\nimport styles from './select.module.css';\n\nexport interface SelectContentProps extends SelectPrimitive.SelectContentProps {\n searchPlaceholder?: string;\n}\n\nexport const SelectContent = forwardRef<\n ElementRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(\n (\n {\n className,\n children,\n position = 'popper',\n searchPlaceholder = 'Search...',\n sideOffset = 4,\n asChild,\n onEscapeKeyDown: providedOnEscapeKeyDown,\n onPointerDownOutside: providedOnPointerDownOutside,\n ...props\n },\n ref\n ) => {\n const { autocomplete, multiple, updateSelectionInProgress } =\n useSelectContext();\n\n const onPointerDownOutside = useCallback<\n NonNullable<SelectContentProps['onPointerDownOutside']>\n >(\n event => {\n updateSelectionInProgress(false);\n providedOnPointerDownOutside?.(event);\n },\n [updateSelectionInProgress, providedOnPointerDownOutside]\n );\n\n const onEscapeKeyDown = useCallback<\n NonNullable<SelectContentProps['onEscapeKeyDown']>\n >(\n event => {\n updateSelectionInProgress(false);\n providedOnEscapeKeyDown?.(event);\n },\n [updateSelectionInProgress, providedOnEscapeKeyDown]\n );\n\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n position={position}\n sideOffset={sideOffset}\n className={cx(styles.content, className)}\n onEscapeKeyDown={multiple ? onEscapeKeyDown : providedOnEscapeKeyDown}\n onPointerDownOutside={\n multiple ? onPointerDownOutside : providedOnPointerDownOutside\n }\n role={autocomplete ? 'dialog' : 'listbox'}\n aria-multiselectable={!autocomplete && multiple ? true : undefined}\n data-multiselectable={multiple ? true : undefined}\n {...props}\n >\n <SelectPrimitive.Viewport\n className={cx(\n styles.viewport,\n autocomplete && styles.comboboxViewport\n )}\n asChild={!autocomplete ? asChild : undefined}\n >\n {autocomplete ? (\n <>\n <Combobox\n autoSelect\n placeholder={searchPlaceholder}\n className={styles.comboboxInput}\n onBlurCapture={event => {\n event.preventDefault();\n event.stopPropagation();\n }}\n />\n <ComboboxList\n className={styles.comboboxContent}\n aria-multiselectable={multiple ? true : undefined}\n render={asChild ? <Slot /> : undefined}\n >\n {children}\n </ComboboxList>\n </>\n ) : (\n children\n )}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n }\n);\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n"],"names":["forwardRef","useSelectContext","useCallback","_jsx","SelectPrimitive.Portal","SelectPrimitive.Content","cx","styles","SelectPrimitive.Viewport","_jsxs","_Fragment","Combobox","ComboboxList","Slot"],"mappings":";;;;;;;;;;;;AAYa,MAAA,aAAa,GAAGA,gBAAU,CAIrC,CACE,EACE,SAAS,EACT,QAAQ,EACR,QAAQ,GAAG,QAAQ,EACnB,iBAAiB,GAAG,WAAW,EAC/B,UAAU,GAAG,CAAC,EACd,OAAO,EACP,eAAe,EAAE,uBAAuB,EACxC,oBAAoB,EAAE,4BAA4B,EAClD,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,yBAAyB,EAAE,GACzDC,2BAAgB,EAAE,CAAC;AAErB,IAAA,MAAM,oBAAoB,GAAGC,iBAAW,CAGtC,KAAK,IAAG;QACN,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,4BAA4B,GAAG,KAAK,CAAC,CAAC;AACxC,KAAC,EACD,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAC1D,CAAC;AAEF,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAGjC,KAAK,IAAG;QACN,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC;AACnC,KAAC,EACD,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,CACrD,CAAC;AAEF,IAAA,QACEC,gCAAA,CAACC,YAAsB,EACrB,EAAA,QAAA,EAAAD,gCAAA,CAACE,aAAuB,EACtB,EAAA,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAEC,UAAE,CAACC,qBAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EACxC,eAAe,EAAE,QAAQ,GAAG,eAAe,GAAG,uBAAuB,EACrE,oBAAoB,EAClB,QAAQ,GAAG,oBAAoB,GAAG,4BAA4B,EAEhE,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,EACnB,sBAAA,EAAA,CAAC,YAAY,IAAI,QAAQ,GAAG,IAAI,GAAG,SAAS,0BAC5C,QAAQ,GAAG,IAAI,GAAG,SAAS,KAC7C,KAAK,EAAA,QAAA,EAETJ,gCAAC,CAAAK,cAAwB,EAAA,EACvB,SAAS,EAAEF,UAAE,CACXC,qBAAM,CAAC,QAAQ,EACf,YAAY,IAAIA,qBAAM,CAAC,gBAAgB,CACxC,EACD,OAAO,EAAE,CAAC,YAAY,GAAG,OAAO,GAAG,SAAS,YAE3C,YAAY,IACXE,iCACE,CAAAC,qCAAA,EAAA,EAAA,QAAA,EAAA,CAAAP,gCAAA,CAACQ,iBAAQ,EAAA,EACP,UAAU,EACV,IAAA,EAAA,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAEJ,qBAAM,CAAC,aAAa,EAC/B,aAAa,EAAE,KAAK,IAAG;gCACrB,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,KAAK,CAAC,eAAe,EAAE,CAAC;6BACzB,EAAA,CACD,EACFJ,gCAAC,CAAAS,qBAAY,IACX,SAAS,EAAEL,qBAAM,CAAC,eAAe,EAAA,sBAAA,EACX,QAAQ,GAAG,IAAI,GAAG,SAAS,EACjD,MAAM,EAAE,OAAO,GAAGJ,iCAACU,YAAI,EAAA,EAAA,CAAG,GAAG,SAAS,EAAA,QAAA,EAErC,QAAQ,EAAA,CACI,IACd,KAEH,QAAQ,CACT,EACwB,CAAA,EAAA,CACH,EACH,CAAA,EACzB;AACJ,CAAC,EACD;AACF,aAAa,CAAC,WAAW,GAAGR,aAAuB,CAAC,WAAW;;;;"}
|