@linyao.tw/ui 0.0.0-snapshot.07df57
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/LICENSE +201 -0
- package/README.md +85 -0
- package/dist/components/date-time/calendar.d.ts +20 -0
- package/dist/components/date-time/calendar.js +102 -0
- package/dist/components/date-time/calendar.js.map +1 -0
- package/dist/components/date-time/date-field.d.ts +11 -0
- package/dist/components/date-time/date-field.js +44 -0
- package/dist/components/date-time/date-field.js.map +1 -0
- package/dist/components/date-time/date-picker.d.ts +28 -0
- package/dist/components/date-time/date-picker.js +74 -0
- package/dist/components/date-time/date-picker.js.map +1 -0
- package/dist/components/date-time/date-range-picker.d.ts +11 -0
- package/dist/components/date-time/date-range-picker.js +79 -0
- package/dist/components/date-time/date-range-picker.js.map +1 -0
- package/dist/components/date-time/date-types.d.ts +110 -0
- package/dist/components/date-time/index.d.ts +8 -0
- package/dist/components/date-time/index.js +8 -0
- package/dist/components/date-time/shared.d.ts +25 -0
- package/dist/components/date-time/shared.js +53 -0
- package/dist/components/date-time/shared.js.map +1 -0
- package/dist/components/date-time/time-field.d.ts +13 -0
- package/dist/components/date-time/time-field.js +52 -0
- package/dist/components/date-time/time-field.js.map +1 -0
- package/dist/components/feedback/alert.d.ts +21 -0
- package/dist/components/feedback/alert.js +44 -0
- package/dist/components/feedback/alert.js.map +1 -0
- package/dist/components/feedback/banner.d.ts +8 -0
- package/dist/components/feedback/banner.js +20 -0
- package/dist/components/feedback/banner.js.map +1 -0
- package/dist/components/feedback/empty-state.d.ts +12 -0
- package/dist/components/feedback/empty-state.js +48 -0
- package/dist/components/feedback/empty-state.js.map +1 -0
- package/dist/components/feedback/feedback.module.js +42 -0
- package/dist/components/feedback/feedback.module.js.map +1 -0
- package/dist/components/feedback/feedback.types.d.ts +8 -0
- package/dist/components/feedback/feedback.types.js +24 -0
- package/dist/components/feedback/feedback.types.js.map +1 -0
- package/dist/components/feedback/index.d.ts +9 -0
- package/dist/components/feedback/meter.d.ts +12 -0
- package/dist/components/feedback/meter.js +28 -0
- package/dist/components/feedback/meter.js.map +1 -0
- package/dist/components/feedback/progress.d.ts +12 -0
- package/dist/components/feedback/progress.js +28 -0
- package/dist/components/feedback/progress.js.map +1 -0
- package/dist/components/feedback/skeleton.d.ts +5 -0
- package/dist/components/feedback/skeleton.js +18 -0
- package/dist/components/feedback/skeleton.js.map +1 -0
- package/dist/components/feedback/spinner.d.ts +23 -0
- package/dist/components/feedback/spinner.js +35 -0
- package/dist/components/feedback/spinner.js.map +1 -0
- package/dist/components/feedback/toast.d.ts +33 -0
- package/dist/components/feedback/toast.js +76 -0
- package/dist/components/feedback/toast.js.map +1 -0
- package/dist/components/forms/CodeField.d.ts +23 -0
- package/dist/components/forms/CodeField.js +63 -0
- package/dist/components/forms/CodeField.js.map +1 -0
- package/dist/components/forms/FileUpload.d.ts +34 -0
- package/dist/components/forms/FileUpload.js +319 -0
- package/dist/components/forms/FileUpload.js.map +1 -0
- package/dist/components/forms/Input.d.ts +14 -0
- package/dist/components/forms/Input.js +33 -0
- package/dist/components/forms/Input.js.map +1 -0
- package/dist/components/forms/NumberField.d.ts +15 -0
- package/dist/components/forms/NumberField.js +71 -0
- package/dist/components/forms/NumberField.js.map +1 -0
- package/dist/components/forms/OTPField.d.ts +15 -0
- package/dist/components/forms/OTPField.js +54 -0
- package/dist/components/forms/OTPField.js.map +1 -0
- package/dist/components/forms/TextField.d.ts +61 -0
- package/dist/components/forms/TextField.js +199 -0
- package/dist/components/forms/TextField.js.map +1 -0
- package/dist/components/forms/index.d.ts +7 -0
- package/dist/components/forms/internal.d.ts +33 -0
- package/dist/components/forms/internal.js +61 -0
- package/dist/components/forms/internal.js.map +1 -0
- package/dist/components/foundations/Avatar.d.ts +33 -0
- package/dist/components/foundations/Avatar.js +45 -0
- package/dist/components/foundations/Avatar.js.map +1 -0
- package/dist/components/foundations/Badge.d.ts +15 -0
- package/dist/components/foundations/Badge.js +32 -0
- package/dist/components/foundations/Badge.js.map +1 -0
- package/dist/components/foundations/Button.d.ts +18 -0
- package/dist/components/foundations/Button.js +47 -0
- package/dist/components/foundations/Button.js.map +1 -0
- package/dist/components/foundations/Card.d.ts +47 -0
- package/dist/components/foundations/Card.js +57 -0
- package/dist/components/foundations/Card.js.map +1 -0
- package/dist/components/foundations/IconButton.d.ts +25 -0
- package/dist/components/foundations/IconButton.js +19 -0
- package/dist/components/foundations/IconButton.js.map +1 -0
- package/dist/components/foundations/Link.d.ts +19 -0
- package/dist/components/foundations/Link.js +40 -0
- package/dist/components/foundations/Link.js.map +1 -0
- package/dist/components/foundations/ListCell.d.ts +68 -0
- package/dist/components/foundations/ListCell.js +105 -0
- package/dist/components/foundations/ListCell.js.map +1 -0
- package/dist/components/foundations/SectionHeading.d.ts +17 -0
- package/dist/components/foundations/SectionHeading.js +50 -0
- package/dist/components/foundations/SectionHeading.js.map +1 -0
- package/dist/components/foundations/Separator.d.ts +11 -0
- package/dist/components/foundations/Separator.js +21 -0
- package/dist/components/foundations/Separator.js.map +1 -0
- package/dist/components/foundations/index.d.ts +9 -0
- package/dist/components/foundations/shared.d.ts +5 -0
- package/dist/components/foundations/shared.js +8 -0
- package/dist/components/foundations/shared.js.map +1 -0
- package/dist/components/navigation-data/breadcrumb-pagination.d.ts +34 -0
- package/dist/components/navigation-data/breadcrumb-pagination.js +161 -0
- package/dist/components/navigation-data/breadcrumb-pagination.js.map +1 -0
- package/dist/components/navigation-data/command-palette.d.ts +35 -0
- package/dist/components/navigation-data/command-palette.js +151 -0
- package/dist/components/navigation-data/command-palette.js.map +1 -0
- package/dist/components/navigation-data/header-tab-bar.d.ts +23 -0
- package/dist/components/navigation-data/header-tab-bar.js +102 -0
- package/dist/components/navigation-data/header-tab-bar.js.map +1 -0
- package/dist/components/navigation-data/index.d.ts +7 -0
- package/dist/components/navigation-data/menubar-toolbar.d.ts +26 -0
- package/dist/components/navigation-data/menubar-toolbar.js +161 -0
- package/dist/components/navigation-data/menubar-toolbar.js.map +1 -0
- package/dist/components/navigation-data/navigation-menu.d.ts +14 -0
- package/dist/components/navigation-data/navigation-menu.js +87 -0
- package/dist/components/navigation-data/navigation-menu.js.map +1 -0
- package/dist/components/navigation-data/scroll-area.d.ts +6 -0
- package/dist/components/navigation-data/scroll-area.js +52 -0
- package/dist/components/navigation-data/scroll-area.js.map +1 -0
- package/dist/components/navigation-data/table-collection.d.ts +61 -0
- package/dist/components/navigation-data/table-collection.js +181 -0
- package/dist/components/navigation-data/table-collection.js.map +1 -0
- package/dist/components/navigation-data/utils.d.ts +2 -0
- package/dist/components/navigation-data/utils.js +11 -0
- package/dist/components/navigation-data/utils.js.map +1 -0
- package/dist/components/overlays/class-names.d.ts +6 -0
- package/dist/components/overlays/class-names.js +11 -0
- package/dist/components/overlays/class-names.js.map +1 -0
- package/dist/components/overlays/dialog.d.ts +98 -0
- package/dist/components/overlays/dialog.js +158 -0
- package/dist/components/overlays/dialog.js.map +1 -0
- package/dist/components/overlays/disclosure.d.ts +40 -0
- package/dist/components/overlays/disclosure.js +138 -0
- package/dist/components/overlays/disclosure.js.map +1 -0
- package/dist/components/overlays/drawer.d.ts +88 -0
- package/dist/components/overlays/drawer.js +192 -0
- package/dist/components/overlays/drawer.js.map +1 -0
- package/dist/components/overlays/floating.d.ts +83 -0
- package/dist/components/overlays/floating.js +220 -0
- package/dist/components/overlays/floating.js.map +1 -0
- package/dist/components/overlays/index.d.ts +4 -0
- package/dist/components/selection/classnames.d.ts +4 -0
- package/dist/components/selection/classnames.js +14 -0
- package/dist/components/selection/classnames.js.map +1 -0
- package/dist/components/selection/combobox.d.ts +118 -0
- package/dist/components/selection/combobox.js +284 -0
- package/dist/components/selection/combobox.js.map +1 -0
- package/dist/components/selection/controls.d.ts +65 -0
- package/dist/components/selection/controls.js +171 -0
- package/dist/components/selection/controls.js.map +1 -0
- package/dist/components/selection/index.d.ts +7 -0
- package/dist/components/selection/menu.d.ts +87 -0
- package/dist/components/selection/menu.js +157 -0
- package/dist/components/selection/menu.js.map +1 -0
- package/dist/components/selection/select.d.ts +55 -0
- package/dist/components/selection/select.js +138 -0
- package/dist/components/selection/select.js.map +1 -0
- package/dist/components/selection/selection.module.js +51 -0
- package/dist/components/selection/selection.module.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +52 -0
- package/dist/styles.css +2 -0
- package/package.json +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floating.js","names":[],"sources":["../../../src/components/overlays/floating.tsx"],"sourcesContent":["import {\n\tPopover as BasePopover,\n\ttype PopoverCloseProps as BasePopoverCloseProps,\n\ttype PopoverArrowProps,\n\ttype PopoverBackdropProps,\n\ttype PopoverDescriptionProps,\n\ttype PopoverPopupProps,\n\ttype PopoverPortalProps,\n\ttype PopoverPositionerProps,\n\ttype PopoverRootProps,\n\ttype PopoverTitleProps,\n\ttype PopoverTriggerProps,\n\ttype PopoverViewportProps\n} from \"@base-ui/react/popover\";\nimport {\n\tPreviewCard as BasePreviewCard,\n\ttype PreviewCardArrowProps,\n\ttype PreviewCardBackdropProps,\n\ttype PreviewCardPopupProps,\n\ttype PreviewCardPortalProps,\n\ttype PreviewCardPositionerProps,\n\ttype PreviewCardRootProps,\n\ttype PreviewCardTriggerProps,\n\ttype PreviewCardViewportProps\n} from \"@base-ui/react/preview-card\";\nimport {\n\tTooltip as BaseTooltip,\n\ttype TooltipPopupProps as BaseTooltipPopupProps,\n\ttype TooltipRootProps as BaseTooltipRootProps,\n\ttype TooltipArrowProps,\n\ttype TooltipPortalProps,\n\ttype TooltipPositionerProps,\n\ttype TooltipProviderProps,\n\ttype TooltipTriggerProps,\n\ttype TooltipViewportProps\n} from \"@base-ui/react/tooltip\";\nimport { XIcon } from \"@phosphor-icons/react/dist/csr/X\";\nimport { createContext, forwardRef, useContext, useId, type JSX, type RefAttributes } from \"react\";\n\nimport { mergeClassName } from \"./class-names\";\n\nexport type { PopoverRootChangeEventDetails } from \"@base-ui/react/popover\";\nexport type { PreviewCardRootChangeEventDetails } from \"@base-ui/react/preview-card\";\nexport type { TooltipRootChangeEventDetails } from \"@base-ui/react/tooltip\";\n\nconst TooltipDescriptionContext = createContext<string | undefined>(undefined);\n\nfunction CloseGlyph(): JSX.Element {\n\treturn <XIcon aria-hidden=\"true\" className=\"lyds-overlayClose__glyph\" weight=\"bold\" />;\n}\n\nexport function TooltipProvider(props: TooltipProviderProps): JSX.Element {\n\treturn <BaseTooltip.Provider {...props} />;\n}\n\nexport interface TooltipRootProps<Payload = unknown> extends BaseTooltipRootProps<Payload> {\n\t/** 將觸發項目與 Tooltip 說明關聯的穩定 id。 */\n\tdescriptionId?: string;\n}\n\nexport type TooltipPopupProps = Omit<BaseTooltipPopupProps, \"id\" | \"role\">;\n\nexport function TooltipRoot<Payload = unknown>({ descriptionId, ...props }: TooltipRootProps<Payload>): JSX.Element {\n\tconst generatedId = useId();\n\treturn (\n\t\t<TooltipDescriptionContext.Provider value={descriptionId ?? `lyds-tooltip-${generatedId}`}>\n\t\t\t<BaseTooltip.Root {...props} />\n\t\t</TooltipDescriptionContext.Provider>\n\t);\n}\n\nexport function TooltipTrigger<Payload = unknown>({ className, ...props }: TooltipTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element {\n\tconst descriptionId = useContext(TooltipDescriptionContext);\n\tconst describedBy = [props[\"aria-describedby\"], descriptionId].filter(Boolean).join(\" \") || undefined;\n\treturn <BaseTooltip.Trigger {...props} aria-describedby={describedBy} className={mergeClassName(\"lyds-tooltip__trigger\", className)} />;\n}\n\nexport const TooltipPortal = forwardRef<HTMLDivElement, TooltipPortalProps>(function TooltipPortal(props, ref) {\n\treturn <BaseTooltip.Portal {...props} ref={ref} />;\n});\n\nexport const TooltipPositioner = forwardRef<HTMLDivElement, TooltipPositionerProps>(function TooltipPositioner({ className, sideOffset = 8, ...props }, ref) {\n\treturn <BaseTooltip.Positioner {...props} ref={ref} sideOffset={sideOffset} className={mergeClassName(\"lyds-tooltip__positioner\", className)} />;\n});\n\nexport const TooltipPopup = forwardRef<HTMLDivElement, TooltipPopupProps>(function TooltipPopup({ className, ...props }, ref) {\n\tconst descriptionId = useContext(TooltipDescriptionContext);\n\treturn <BaseTooltip.Popup {...props} ref={ref} id={descriptionId} role=\"tooltip\" className={mergeClassName(\"lyds-tooltip__popup\", className)} />;\n});\n\nexport const TooltipArrow = forwardRef<HTMLDivElement, TooltipArrowProps>(function TooltipArrow({ className, ...props }, ref) {\n\treturn <BaseTooltip.Arrow {...props} ref={ref} className={mergeClassName(\"lyds-tooltip__arrow\", className)} />;\n});\n\nexport const TooltipViewport = forwardRef<HTMLDivElement, TooltipViewportProps>(function TooltipViewport({ className, ...props }, ref) {\n\treturn <BaseTooltip.Viewport {...props} ref={ref} className={mergeClassName(\"lyds-tooltip__viewport\", className)} />;\n});\n\nexport const Tooltip = {\n\tProvider: TooltipProvider,\n\tRoot: TooltipRoot,\n\tTrigger: TooltipTrigger,\n\tPortal: TooltipPortal,\n\tPositioner: TooltipPositioner,\n\tPopup: TooltipPopup,\n\tArrow: TooltipArrow,\n\tViewport: TooltipViewport,\n\tcreateHandle: BaseTooltip.createHandle,\n\tHandle: BaseTooltip.Handle\n} as const;\n\nexport function PopoverRoot<Payload = unknown>(props: PopoverRootProps<Payload>): JSX.Element {\n\treturn <BasePopover.Root {...props} />;\n}\n\nexport function PopoverTrigger<Payload = unknown>({ className, ...props }: PopoverTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element {\n\treturn <BasePopover.Trigger {...props} className={mergeClassName(\"lyds-popover__trigger\", className)} />;\n}\n\nexport const PopoverPortal = forwardRef<HTMLDivElement, PopoverPortalProps>(function PopoverPortal(props, ref) {\n\treturn <BasePopover.Portal {...props} ref={ref} />;\n});\n\nexport const PopoverPositioner = forwardRef<HTMLDivElement, PopoverPositionerProps>(function PopoverPositioner({ className, sideOffset = 10, ...props }, ref) {\n\treturn <BasePopover.Positioner {...props} ref={ref} sideOffset={sideOffset} className={mergeClassName(\"lyds-popover__positioner\", className)} />;\n});\n\nexport const PopoverBackdrop = forwardRef<HTMLDivElement, PopoverBackdropProps>(function PopoverBackdrop({ className, ...props }, ref) {\n\treturn <BasePopover.Backdrop {...props} ref={ref} className={mergeClassName(\"lyds-popover__backdrop\", className)} />;\n});\n\nexport const PopoverPopup = forwardRef<HTMLDivElement, PopoverPopupProps>(function PopoverPopup({ className, ...props }, ref) {\n\treturn <BasePopover.Popup {...props} ref={ref} className={mergeClassName(\"lyds-popover__popup\", className)} />;\n});\n\nexport const PopoverArrow = forwardRef<HTMLDivElement, PopoverArrowProps>(function PopoverArrow({ className, ...props }, ref) {\n\treturn <BasePopover.Arrow {...props} ref={ref} className={mergeClassName(\"lyds-popover__arrow\", className)} />;\n});\n\nexport const PopoverTitle = forwardRef<HTMLHeadingElement, PopoverTitleProps>(function PopoverTitle({ className, ...props }, ref) {\n\treturn <BasePopover.Title {...props} ref={ref} className={mergeClassName(\"lyds-popover__title\", className)} />;\n});\n\nexport const PopoverDescription = forwardRef<HTMLParagraphElement, PopoverDescriptionProps>(function PopoverDescription({ className, ...props }, ref) {\n\treturn <BasePopover.Description {...props} ref={ref} className={mergeClassName(\"lyds-popover__description\", className)} />;\n});\n\nexport interface PopoverCloseProps extends BasePopoverCloseProps {\n\t/** 圖示控制項位於面板角落;動作控制項則參與內容排版。 */\n\tvariant?: \"icon\" | \"action\";\n}\n\nexport const PopoverClose = forwardRef<HTMLButtonElement, PopoverCloseProps>(function PopoverClose(\n\t{ \"aria-label\": ariaLabel, children, className, variant = children == null ? \"icon\" : \"action\", ...props },\n\tref\n) {\n\treturn (\n\t\t<BasePopover.Close\n\t\t\t{...props}\n\t\t\tref={ref}\n\t\t\taria-label={ariaLabel ?? (children == null ? \"關閉彈出視窗\" : undefined)}\n\t\t\tclassName={mergeClassName(variant === \"icon\" ? \"lyds-overlayClose\" : \"lyds-overlayCloseAction\", className)}\n\t\t>\n\t\t\t{children ?? <CloseGlyph />}\n\t\t</BasePopover.Close>\n\t);\n});\n\nexport const PopoverViewport = forwardRef<HTMLDivElement, PopoverViewportProps>(function PopoverViewport({ className, ...props }, ref) {\n\treturn <BasePopover.Viewport {...props} ref={ref} className={mergeClassName(\"lyds-popover__viewport\", className)} />;\n});\n\nexport const Popover = {\n\tRoot: PopoverRoot,\n\tTrigger: PopoverTrigger,\n\tPortal: PopoverPortal,\n\tPositioner: PopoverPositioner,\n\tBackdrop: PopoverBackdrop,\n\tPopup: PopoverPopup,\n\tArrow: PopoverArrow,\n\tTitle: PopoverTitle,\n\tDescription: PopoverDescription,\n\tClose: PopoverClose,\n\tViewport: PopoverViewport,\n\tcreateHandle: BasePopover.createHandle,\n\tHandle: BasePopover.Handle\n} as const;\n\nexport function PreviewCardRoot<Payload = unknown>(props: PreviewCardRootProps<Payload>): JSX.Element {\n\treturn <BasePreviewCard.Root {...props} />;\n}\n\nexport function PreviewCardTrigger<Payload = unknown>({ className, ...props }: PreviewCardTriggerProps<Payload> & RefAttributes<HTMLElement>): JSX.Element {\n\treturn <BasePreviewCard.Trigger {...props} className={mergeClassName(\"lyds-previewCard__trigger\", className)} />;\n}\n\nexport const PreviewCardPortal = forwardRef<HTMLDivElement, PreviewCardPortalProps>(function PreviewCardPortal(props, ref) {\n\treturn <BasePreviewCard.Portal {...props} ref={ref} />;\n});\n\nexport const PreviewCardPositioner = forwardRef<HTMLDivElement, PreviewCardPositionerProps>(function PreviewCardPositioner({ className, sideOffset = 10, ...props }, ref) {\n\treturn <BasePreviewCard.Positioner {...props} ref={ref} sideOffset={sideOffset} className={mergeClassName(\"lyds-previewCard__positioner\", className)} />;\n});\n\n/** PreviewCard 僅補充觸發項目的資訊;必要內容仍應顯示於頁面中。 */\nexport const PreviewCardPopup = forwardRef<HTMLDivElement, PreviewCardPopupProps>(function PreviewCardPopup({ className, ...props }, ref) {\n\treturn <BasePreviewCard.Popup {...props} ref={ref} className={mergeClassName(\"lyds-previewCard__popup\", className)} />;\n});\n\nexport const PreviewCardArrow = forwardRef<HTMLDivElement, PreviewCardArrowProps>(function PreviewCardArrow({ className, ...props }, ref) {\n\treturn <BasePreviewCard.Arrow {...props} ref={ref} className={mergeClassName(\"lyds-previewCard__arrow\", className)} />;\n});\n\nexport const PreviewCardBackdrop = forwardRef<HTMLDivElement, PreviewCardBackdropProps>(function PreviewCardBackdrop({ className, ...props }, ref) {\n\treturn <BasePreviewCard.Backdrop {...props} ref={ref} className={mergeClassName(\"lyds-previewCard__backdrop\", className)} />;\n});\n\nexport const PreviewCardViewport = forwardRef<HTMLDivElement, PreviewCardViewportProps>(function PreviewCardViewport({ className, ...props }, ref) {\n\treturn <BasePreviewCard.Viewport {...props} ref={ref} className={mergeClassName(\"lyds-previewCard__viewport\", className)} />;\n});\n\nexport const PreviewCard = {\n\tRoot: PreviewCardRoot,\n\tTrigger: PreviewCardTrigger,\n\tPortal: PreviewCardPortal,\n\tPositioner: PreviewCardPositioner,\n\tPopup: PreviewCardPopup,\n\tArrow: PreviewCardArrow,\n\tBackdrop: PreviewCardBackdrop,\n\tViewport: PreviewCardViewport,\n\tcreateHandle: BasePreviewCard.createHandle,\n\tHandle: BasePreviewCard.Handle\n} as const;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type StateClassName<State> = string | ((state: State) => string | undefined);
|
|
2
|
+
export declare function cx(...values: Array<string | false | null | undefined>): string;
|
|
3
|
+
export declare function mergeStateClassName<State>(base: string, className?: StateClassName<State>): StateClassName<State>;
|
|
4
|
+
export declare function combineStateClassNames<State>(first?: StateClassName<State>, second?: StateClassName<State>): StateClassName<State>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/components/selection/classnames.ts
|
|
2
|
+
function e(...e) {
|
|
3
|
+
return e.filter(Boolean).join(" ");
|
|
4
|
+
}
|
|
5
|
+
function t(t, n) {
|
|
6
|
+
return typeof n == "function" ? (r) => e(t, n(r)) : e(t, n);
|
|
7
|
+
}
|
|
8
|
+
function n(t, n) {
|
|
9
|
+
return typeof t == "function" || typeof n == "function" ? (r) => e(typeof t == "function" ? t(r) : t, typeof n == "function" ? n(r) : n) : e(t, n);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { n as combineStateClassNames, e as cx, t as mergeStateClassName };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=classnames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classnames.js","names":[],"sources":["../../../src/components/selection/classnames.ts"],"sourcesContent":["export type StateClassName<State> = string | ((state: State) => string | undefined);\n\nexport function cx(...values: Array<string | false | null | undefined>): string {\n\treturn values.filter(Boolean).join(\" \");\n}\n\nexport function mergeStateClassName<State>(base: string, className?: StateClassName<State>): StateClassName<State> {\n\tif (typeof className === \"function\") {\n\t\treturn state => cx(base, className(state));\n\t}\n\n\treturn cx(base, className);\n}\n\nexport function combineStateClassNames<State>(first?: StateClassName<State>, second?: StateClassName<State>): StateClassName<State> {\n\tif (typeof first === \"function\" || typeof second === \"function\") {\n\t\treturn state => cx(typeof first === \"function\" ? first(state) : first, typeof second === \"function\" ? second(state) : second);\n\t}\n\n\treturn cx(first, second);\n}\n"],"mappings":";AAEA,SAAgB,EAAG,GAAG,GAA0D;CAC/E,OAAO,EAAO,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AACvC;AAEA,SAAgB,EAA2B,GAAc,GAA0D;CAKlH,OAJI,OAAO,KAAc,cACjB,MAAS,EAAG,GAAM,EAAU,CAAK,CAAC,IAGnC,EAAG,GAAM,CAAS;AAC1B;AAEA,SAAgB,EAA8B,GAA+B,GAAuD;CAKnI,OAJI,OAAO,KAAU,cAAc,OAAO,KAAW,cAC7C,MAAS,EAAG,OAAO,KAAU,aAAa,EAAM,CAAK,IAAI,GAAO,OAAO,KAAW,aAAa,EAAO,CAAK,IAAI,CAAM,IAGtH,EAAG,GAAO,CAAM;AACxB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Autocomplete as BaseAutocomplete, AutocompleteInputGroupProps, AutocompleteItemProps, AutocompleteRootProps } from '@base-ui/react/autocomplete';
|
|
2
|
+
import { Combobox as BaseCombobox, ComboboxClearProps, ComboboxEmptyProps, ComboboxInputGroupProps, ComboboxInputProps, ComboboxItemIndicatorProps, ComboboxItemProps, ComboboxListProps, ComboboxPopupProps, ComboboxPositionerProps, ComboboxRootProps, ComboboxTriggerProps } from '@base-ui/react/combobox';
|
|
3
|
+
import { Key, ReactNode } from 'react';
|
|
4
|
+
export declare const ComboboxInputGroup: import('react').ForwardRefExoticComponent<Omit<ComboboxInputGroupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export declare const ComboboxInput: import('react').ForwardRefExoticComponent<Omit<ComboboxInputProps, "ref"> & import('react').RefAttributes<HTMLInputElement>>;
|
|
6
|
+
export declare const ComboboxTrigger: import('react').ForwardRefExoticComponent<Omit<ComboboxTriggerProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export declare const ComboboxClear: import('react').ForwardRefExoticComponent<Omit<ComboboxClearProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
8
|
+
export declare const ComboboxPositioner: import('react').ForwardRefExoticComponent<Omit<ComboboxPositionerProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const ComboboxPopup: import('react').ForwardRefExoticComponent<Omit<ComboboxPopupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const ComboboxList: import('react').ForwardRefExoticComponent<Omit<ComboboxListProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export declare const ComboboxItem: import('react').ForwardRefExoticComponent<Omit<ComboboxItemProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
12
|
+
export declare const ComboboxItemIndicator: import('react').ForwardRefExoticComponent<Omit<ComboboxItemIndicatorProps, "ref"> & import('react').RefAttributes<HTMLSpanElement>>;
|
|
13
|
+
export declare const ComboboxEmpty: import('react').ForwardRefExoticComponent<Omit<ComboboxEmptyProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
14
|
+
export interface ComboboxOption<Value> {
|
|
15
|
+
description?: ReactNode;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
key?: Key;
|
|
18
|
+
label: ReactNode;
|
|
19
|
+
textValue?: string;
|
|
20
|
+
value: Value;
|
|
21
|
+
}
|
|
22
|
+
export interface ComboboxProps<Value> extends Omit<ComboboxRootProps<Value, false>, "children" | "items" | "multiple"> {
|
|
23
|
+
"aria-describedby"?: string;
|
|
24
|
+
"aria-label"?: string;
|
|
25
|
+
"aria-labelledby"?: string;
|
|
26
|
+
className?: string;
|
|
27
|
+
clearLabel?: string;
|
|
28
|
+
emptyMessage?: ReactNode;
|
|
29
|
+
inputProps?: Omit<ComboboxInputProps, "className" | "placeholder">;
|
|
30
|
+
invalid?: boolean;
|
|
31
|
+
options: readonly ComboboxOption<Value>[];
|
|
32
|
+
placeholder?: string;
|
|
33
|
+
popupProps?: ComboboxPopupProps;
|
|
34
|
+
positionerProps?: ComboboxPositionerProps;
|
|
35
|
+
triggerLabel?: string;
|
|
36
|
+
}
|
|
37
|
+
declare function ComboboxComponent<Value>({ "aria-describedby": ariaDescribedby, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, className, clearLabel, emptyMessage, inputProps, invalid, itemToStringLabel, options, placeholder, popupProps, positionerProps, triggerLabel, ...rootProps }: ComboboxProps<Value>): import("react").JSX.Element;
|
|
38
|
+
export declare const Combobox: typeof ComboboxComponent & {
|
|
39
|
+
Arrow: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteArrowProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
40
|
+
Backdrop: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteBackdropProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
41
|
+
Chip: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').ComboboxChipProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
42
|
+
ChipRemove: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').ComboboxChipRemoveProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
43
|
+
Chips: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').ComboboxChipsProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
44
|
+
Clear: import('react').ForwardRefExoticComponent<Omit<ComboboxClearProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
45
|
+
Collection: typeof BaseAutocomplete.Collection;
|
|
46
|
+
Empty: import('react').ForwardRefExoticComponent<Omit<ComboboxEmptyProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
47
|
+
Group: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteGroupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
48
|
+
GroupLabel: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteGroupLabelProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
49
|
+
Icon: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteIconProps, "ref"> & import('react').RefAttributes<HTMLSpanElement>>;
|
|
50
|
+
Input: import('react').ForwardRefExoticComponent<Omit<ComboboxInputProps, "ref"> & import('react').RefAttributes<HTMLInputElement>>;
|
|
51
|
+
InputGroup: import('react').ForwardRefExoticComponent<Omit<ComboboxInputGroupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
52
|
+
Item: import('react').ForwardRefExoticComponent<Omit<ComboboxItemProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
53
|
+
ItemIndicator: import('react').ForwardRefExoticComponent<Omit<ComboboxItemIndicatorProps, "ref"> & import('react').RefAttributes<HTMLSpanElement>>;
|
|
54
|
+
Label: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').ComboboxLabelProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
55
|
+
List: import('react').ForwardRefExoticComponent<Omit<ComboboxListProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
56
|
+
Popup: import('react').ForwardRefExoticComponent<Omit<ComboboxPopupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
57
|
+
Portal: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompletePortalProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
58
|
+
Positioner: import('react').ForwardRefExoticComponent<Omit<ComboboxPositionerProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
59
|
+
Root: typeof BaseCombobox.Root;
|
|
60
|
+
Row: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteRowProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
61
|
+
Separator: import('react').ForwardRefExoticComponent<import('@base-ui/react').ComboboxSeparatorProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
62
|
+
Status: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteStatusProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
63
|
+
Trigger: import('react').ForwardRefExoticComponent<Omit<ComboboxTriggerProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
64
|
+
Value: typeof BaseCombobox.Value;
|
|
65
|
+
useFilter: typeof BaseCombobox.useFilter;
|
|
66
|
+
useFilteredItems: typeof BaseAutocomplete.useFilteredItems;
|
|
67
|
+
};
|
|
68
|
+
export declare const AutocompleteInputGroup: import('react').ForwardRefExoticComponent<Omit<AutocompleteInputGroupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
69
|
+
export declare const AutocompleteItem: import('react').ForwardRefExoticComponent<Omit<AutocompleteItemProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
70
|
+
export interface AutocompleteOption<Value> {
|
|
71
|
+
disabled?: boolean;
|
|
72
|
+
key?: Key;
|
|
73
|
+
label: ReactNode;
|
|
74
|
+
textValue?: string;
|
|
75
|
+
value: Value;
|
|
76
|
+
}
|
|
77
|
+
export interface AutocompleteProps<ItemValue> extends Omit<AutocompleteRootProps<ItemValue>, "children" | "items"> {
|
|
78
|
+
"aria-describedby"?: string;
|
|
79
|
+
"aria-label"?: string;
|
|
80
|
+
"aria-labelledby"?: string;
|
|
81
|
+
className?: string;
|
|
82
|
+
clearLabel?: string;
|
|
83
|
+
emptyMessage?: ReactNode;
|
|
84
|
+
inputProps?: Omit<ComboboxInputProps, "className" | "placeholder">;
|
|
85
|
+
invalid?: boolean;
|
|
86
|
+
options: readonly AutocompleteOption<ItemValue>[];
|
|
87
|
+
placeholder?: string;
|
|
88
|
+
popupProps?: ComboboxPopupProps;
|
|
89
|
+
positionerProps?: ComboboxPositionerProps;
|
|
90
|
+
triggerLabel?: string;
|
|
91
|
+
}
|
|
92
|
+
declare function AutocompleteComponent<ItemValue>({ "aria-describedby": ariaDescribedby, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, className, clearLabel, emptyMessage, inputProps, invalid, itemToStringValue, options, placeholder, popupProps, positionerProps, triggerLabel, ...rootProps }: AutocompleteProps<ItemValue>): import("react").JSX.Element;
|
|
93
|
+
export declare const Autocomplete: typeof AutocompleteComponent & {
|
|
94
|
+
Arrow: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteArrowProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
95
|
+
Backdrop: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteBackdropProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
96
|
+
Clear: import('react').ForwardRefExoticComponent<Omit<ComboboxClearProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
97
|
+
Collection: typeof BaseAutocomplete.Collection;
|
|
98
|
+
Empty: import('react').ForwardRefExoticComponent<Omit<ComboboxEmptyProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
99
|
+
Group: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteGroupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
100
|
+
GroupLabel: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteGroupLabelProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
101
|
+
Icon: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteIconProps, "ref"> & import('react').RefAttributes<HTMLSpanElement>>;
|
|
102
|
+
Input: import('react').ForwardRefExoticComponent<Omit<ComboboxInputProps, "ref"> & import('react').RefAttributes<HTMLInputElement>>;
|
|
103
|
+
InputGroup: import('react').ForwardRefExoticComponent<Omit<AutocompleteInputGroupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
104
|
+
Item: import('react').ForwardRefExoticComponent<Omit<AutocompleteItemProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
105
|
+
List: import('react').ForwardRefExoticComponent<Omit<ComboboxListProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
106
|
+
Popup: import('react').ForwardRefExoticComponent<Omit<ComboboxPopupProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
107
|
+
Portal: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompletePortalProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
108
|
+
Positioner: import('react').ForwardRefExoticComponent<Omit<ComboboxPositionerProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
109
|
+
Root: typeof BaseAutocomplete.Root;
|
|
110
|
+
Row: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteRowProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
111
|
+
Separator: import('react').ForwardRefExoticComponent<import('@base-ui/react').AutocompleteSeparatorProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
112
|
+
Status: import('react').ForwardRefExoticComponent<Omit<import('@base-ui/react').AutocompleteStatusProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
113
|
+
Trigger: BaseAutocomplete.Trigger;
|
|
114
|
+
Value: typeof BaseAutocomplete.Value;
|
|
115
|
+
useFilter: typeof import('@base-ui/react/internals/filter').getFilter;
|
|
116
|
+
useFilteredItems: typeof BaseAutocomplete.useFilteredItems;
|
|
117
|
+
};
|
|
118
|
+
export {};
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import e from "./selection.module.js";
|
|
2
|
+
import { mergeStateClassName as t } from "./classnames.js";
|
|
3
|
+
import { forwardRef as n, useMemo as r } from "react";
|
|
4
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
5
|
+
import { XIcon as o } from "@phosphor-icons/react/dist/csr/X";
|
|
6
|
+
import { Combobox as s } from "@base-ui/react/combobox";
|
|
7
|
+
import { CheckIcon as c } from "@phosphor-icons/react/dist/csr/Check";
|
|
8
|
+
import { CaretDownIcon as l } from "@phosphor-icons/react/dist/csr/CaretDown";
|
|
9
|
+
import { Autocomplete as u } from "@base-ui/react/autocomplete";
|
|
10
|
+
//#region src/components/selection/combobox.tsx
|
|
11
|
+
var d = n(function({ className: n, ...r }, a) {
|
|
12
|
+
return /* @__PURE__ */ i(s.InputGroup, {
|
|
13
|
+
...r,
|
|
14
|
+
className: t(e.comboboxInputGroup, n),
|
|
15
|
+
ref: a
|
|
16
|
+
});
|
|
17
|
+
}), f = n(function({ className: n, ...r }, a) {
|
|
18
|
+
return /* @__PURE__ */ i(s.Input, {
|
|
19
|
+
...r,
|
|
20
|
+
className: t(e.comboboxInput, n),
|
|
21
|
+
ref: a
|
|
22
|
+
});
|
|
23
|
+
}), p = n(function({ className: n, ...r }, a) {
|
|
24
|
+
return /* @__PURE__ */ i(s.Trigger, {
|
|
25
|
+
...r,
|
|
26
|
+
className: t(e.comboboxTrigger, n),
|
|
27
|
+
ref: a
|
|
28
|
+
});
|
|
29
|
+
}), m = n(function({ className: n, ...r }, a) {
|
|
30
|
+
return /* @__PURE__ */ i(s.Clear, {
|
|
31
|
+
...r,
|
|
32
|
+
className: t(e.comboboxClear, n),
|
|
33
|
+
ref: a
|
|
34
|
+
});
|
|
35
|
+
}), h = n(function({ className: n, ...r }, a) {
|
|
36
|
+
return /* @__PURE__ */ i(s.Positioner, {
|
|
37
|
+
...r,
|
|
38
|
+
className: t(e.positioner, n),
|
|
39
|
+
ref: a
|
|
40
|
+
});
|
|
41
|
+
}), g = n(function({ className: n, ...r }, a) {
|
|
42
|
+
return /* @__PURE__ */ i(s.Popup, {
|
|
43
|
+
...r,
|
|
44
|
+
className: t(e.popup, n),
|
|
45
|
+
ref: a
|
|
46
|
+
});
|
|
47
|
+
}), _ = n(function({ className: n, ...r }, a) {
|
|
48
|
+
return /* @__PURE__ */ i(s.List, {
|
|
49
|
+
...r,
|
|
50
|
+
className: t(e.optionList, n),
|
|
51
|
+
ref: a
|
|
52
|
+
});
|
|
53
|
+
}), v = n(function({ className: n, ...r }, a) {
|
|
54
|
+
return /* @__PURE__ */ i(s.Item, {
|
|
55
|
+
...r,
|
|
56
|
+
className: t(e.option, n),
|
|
57
|
+
ref: a
|
|
58
|
+
});
|
|
59
|
+
}), y = n(function({ className: n, ...r }, a) {
|
|
60
|
+
return /* @__PURE__ */ i(s.ItemIndicator, {
|
|
61
|
+
...r,
|
|
62
|
+
className: t(e.optionIndicator, n),
|
|
63
|
+
ref: a
|
|
64
|
+
});
|
|
65
|
+
}), b = n(function({ className: n, ...r }, a) {
|
|
66
|
+
return /* @__PURE__ */ i(s.Empty, {
|
|
67
|
+
...r,
|
|
68
|
+
className: t(e.emptyOption, n),
|
|
69
|
+
ref: a
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
function x(e) {
|
|
73
|
+
let t = [], n = /* @__PURE__ */ new Map(), r, i;
|
|
74
|
+
return e.forEach((e, a) => {
|
|
75
|
+
let o = e.value, s = {
|
|
76
|
+
option: e,
|
|
77
|
+
sourceIndex: a
|
|
78
|
+
};
|
|
79
|
+
if (t.push(o), typeof o == "number" && o === 0) {
|
|
80
|
+
Object.is(o, -0) ? r ??= s : i ??= s;
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
n.has(o) || n.set(o, s);
|
|
84
|
+
}), {
|
|
85
|
+
values: t,
|
|
86
|
+
get(e) {
|
|
87
|
+
return typeof e == "number" && e === 0 ? Object.is(e, -0) ? r : i : n.get(e);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function S({ "aria-describedby": t, "aria-label": n, "aria-labelledby": u, className: S, clearLabel: C = "清除選取", emptyMessage: w = "找不到符合的選項", inputProps: T, invalid: E = !1, itemToStringLabel: D, options: O, placeholder: k, popupProps: A, positionerProps: j, triggerLabel: M = "顯示選項", ...N }) {
|
|
92
|
+
let P = r(() => x(O), [O]), F = r(() => D ?? ((e) => {
|
|
93
|
+
let t = P.get(e)?.option;
|
|
94
|
+
return t?.textValue ?? (typeof t?.label == "string" ? t.label : String(e));
|
|
95
|
+
}), [D, P]);
|
|
96
|
+
return /* @__PURE__ */ a(s.Root, {
|
|
97
|
+
...N,
|
|
98
|
+
itemToStringLabel: F,
|
|
99
|
+
items: P.values,
|
|
100
|
+
children: [/* @__PURE__ */ a(d, {
|
|
101
|
+
className: S,
|
|
102
|
+
children: [
|
|
103
|
+
/* @__PURE__ */ i(f, {
|
|
104
|
+
...T,
|
|
105
|
+
"aria-describedby": t ?? T?.["aria-describedby"],
|
|
106
|
+
"aria-invalid": E || T?.["aria-invalid"] || void 0,
|
|
107
|
+
"aria-label": n ?? T?.["aria-label"],
|
|
108
|
+
"aria-labelledby": u ?? T?.["aria-labelledby"],
|
|
109
|
+
autoComplete: T?.autoComplete ?? "off",
|
|
110
|
+
placeholder: k
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ i(m, {
|
|
113
|
+
"aria-label": C,
|
|
114
|
+
children: /* @__PURE__ */ i(o, {
|
|
115
|
+
"aria-hidden": "true",
|
|
116
|
+
weight: "bold"
|
|
117
|
+
})
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ i(p, {
|
|
120
|
+
"aria-label": M,
|
|
121
|
+
children: /* @__PURE__ */ i(l, {
|
|
122
|
+
"aria-hidden": "true",
|
|
123
|
+
weight: "bold"
|
|
124
|
+
})
|
|
125
|
+
})
|
|
126
|
+
]
|
|
127
|
+
}), /* @__PURE__ */ i(s.Portal, { children: /* @__PURE__ */ i(h, {
|
|
128
|
+
...j,
|
|
129
|
+
children: /* @__PURE__ */ a(g, {
|
|
130
|
+
...A,
|
|
131
|
+
children: [/* @__PURE__ */ i(_, { children: (t, n) => {
|
|
132
|
+
let r = P.get(t);
|
|
133
|
+
if (!r) return null;
|
|
134
|
+
let { option: o, sourceIndex: s } = r;
|
|
135
|
+
return /* @__PURE__ */ a(v, {
|
|
136
|
+
disabled: o.disabled,
|
|
137
|
+
index: n,
|
|
138
|
+
value: t,
|
|
139
|
+
children: [/* @__PURE__ */ i(y, { children: /* @__PURE__ */ i(c, {
|
|
140
|
+
"aria-hidden": "true",
|
|
141
|
+
weight: "bold"
|
|
142
|
+
}) }), /* @__PURE__ */ a("span", {
|
|
143
|
+
className: e.optionText,
|
|
144
|
+
children: [/* @__PURE__ */ i("span", { children: o.label }), o.description ? /* @__PURE__ */ i("span", {
|
|
145
|
+
className: e.optionDescription,
|
|
146
|
+
children: o.description
|
|
147
|
+
}) : null]
|
|
148
|
+
})]
|
|
149
|
+
}, o.key ?? o.textValue ?? s);
|
|
150
|
+
} }), /* @__PURE__ */ i(b, { children: w })]
|
|
151
|
+
})
|
|
152
|
+
}) })]
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
var C = Object.assign(S, {
|
|
156
|
+
Arrow: s.Arrow,
|
|
157
|
+
Backdrop: s.Backdrop,
|
|
158
|
+
Chip: s.Chip,
|
|
159
|
+
ChipRemove: s.ChipRemove,
|
|
160
|
+
Chips: s.Chips,
|
|
161
|
+
Clear: m,
|
|
162
|
+
Collection: s.Collection,
|
|
163
|
+
Empty: b,
|
|
164
|
+
Group: s.Group,
|
|
165
|
+
GroupLabel: s.GroupLabel,
|
|
166
|
+
Icon: s.Icon,
|
|
167
|
+
Input: f,
|
|
168
|
+
InputGroup: d,
|
|
169
|
+
Item: v,
|
|
170
|
+
ItemIndicator: y,
|
|
171
|
+
Label: s.Label,
|
|
172
|
+
List: _,
|
|
173
|
+
Popup: g,
|
|
174
|
+
Portal: s.Portal,
|
|
175
|
+
Positioner: h,
|
|
176
|
+
Root: s.Root,
|
|
177
|
+
Row: s.Row,
|
|
178
|
+
Separator: s.Separator,
|
|
179
|
+
Status: s.Status,
|
|
180
|
+
Trigger: p,
|
|
181
|
+
Value: s.Value,
|
|
182
|
+
useFilter: s.useFilter,
|
|
183
|
+
useFilteredItems: s.useFilteredItems
|
|
184
|
+
}), w = n(function({ className: n, ...r }, a) {
|
|
185
|
+
return /* @__PURE__ */ i(u.InputGroup, {
|
|
186
|
+
...r,
|
|
187
|
+
className: t(e.comboboxInputGroup, n),
|
|
188
|
+
ref: a
|
|
189
|
+
});
|
|
190
|
+
}), T = n(function({ className: n, ...r }, a) {
|
|
191
|
+
return /* @__PURE__ */ i(u.Item, {
|
|
192
|
+
...r,
|
|
193
|
+
className: t(e.option, n),
|
|
194
|
+
ref: a
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
function E({ "aria-describedby": t, "aria-label": n, "aria-labelledby": s, className: c, clearLabel: d = "清除搜尋內容", emptyMessage: p = "找不到建議項目", inputProps: v, invalid: y = !1, itemToStringValue: S, options: C, placeholder: E, popupProps: D, positionerProps: O, triggerLabel: k = "顯示建議項目", ...A }) {
|
|
198
|
+
let j = r(() => x(C), [C]), M = r(() => S ?? ((e) => {
|
|
199
|
+
let t = j.get(e)?.option;
|
|
200
|
+
return t?.textValue ?? (typeof t?.label == "string" ? t.label : String(e));
|
|
201
|
+
}), [S, j]);
|
|
202
|
+
return /* @__PURE__ */ a(u.Root, {
|
|
203
|
+
...A,
|
|
204
|
+
itemToStringValue: M,
|
|
205
|
+
items: j.values,
|
|
206
|
+
children: [/* @__PURE__ */ a(w, {
|
|
207
|
+
className: c,
|
|
208
|
+
children: [
|
|
209
|
+
/* @__PURE__ */ i(f, {
|
|
210
|
+
...v,
|
|
211
|
+
"aria-describedby": t ?? v?.["aria-describedby"],
|
|
212
|
+
"aria-invalid": y || v?.["aria-invalid"] || void 0,
|
|
213
|
+
"aria-label": n ?? v?.["aria-label"],
|
|
214
|
+
"aria-labelledby": s ?? v?.["aria-labelledby"],
|
|
215
|
+
autoComplete: v?.autoComplete ?? "off",
|
|
216
|
+
placeholder: E
|
|
217
|
+
}),
|
|
218
|
+
/* @__PURE__ */ i(m, {
|
|
219
|
+
"aria-label": d,
|
|
220
|
+
children: /* @__PURE__ */ i(o, {
|
|
221
|
+
"aria-hidden": "true",
|
|
222
|
+
weight: "bold"
|
|
223
|
+
})
|
|
224
|
+
}),
|
|
225
|
+
/* @__PURE__ */ i(u.Trigger, {
|
|
226
|
+
"aria-label": k,
|
|
227
|
+
className: e.comboboxTrigger,
|
|
228
|
+
children: /* @__PURE__ */ i(l, {
|
|
229
|
+
"aria-hidden": "true",
|
|
230
|
+
weight: "bold"
|
|
231
|
+
})
|
|
232
|
+
})
|
|
233
|
+
]
|
|
234
|
+
}), /* @__PURE__ */ i(u.Portal, { children: /* @__PURE__ */ i(h, {
|
|
235
|
+
...O,
|
|
236
|
+
children: /* @__PURE__ */ a(g, {
|
|
237
|
+
...D,
|
|
238
|
+
children: [/* @__PURE__ */ i(_, { children: (t, n) => {
|
|
239
|
+
let r = j.get(t);
|
|
240
|
+
if (!r) return null;
|
|
241
|
+
let { option: a, sourceIndex: o } = r;
|
|
242
|
+
return /* @__PURE__ */ i(T, {
|
|
243
|
+
disabled: a.disabled,
|
|
244
|
+
index: n,
|
|
245
|
+
value: t,
|
|
246
|
+
children: /* @__PURE__ */ i("span", {
|
|
247
|
+
className: e.optionText,
|
|
248
|
+
children: a.label
|
|
249
|
+
})
|
|
250
|
+
}, a.key ?? a.textValue ?? o);
|
|
251
|
+
} }), /* @__PURE__ */ i(b, { children: p })]
|
|
252
|
+
})
|
|
253
|
+
}) })]
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
var D = Object.assign(E, {
|
|
257
|
+
Arrow: u.Arrow,
|
|
258
|
+
Backdrop: u.Backdrop,
|
|
259
|
+
Clear: m,
|
|
260
|
+
Collection: u.Collection,
|
|
261
|
+
Empty: b,
|
|
262
|
+
Group: u.Group,
|
|
263
|
+
GroupLabel: u.GroupLabel,
|
|
264
|
+
Icon: u.Icon,
|
|
265
|
+
Input: f,
|
|
266
|
+
InputGroup: w,
|
|
267
|
+
Item: T,
|
|
268
|
+
List: _,
|
|
269
|
+
Popup: g,
|
|
270
|
+
Portal: u.Portal,
|
|
271
|
+
Positioner: h,
|
|
272
|
+
Root: u.Root,
|
|
273
|
+
Row: u.Row,
|
|
274
|
+
Separator: u.Separator,
|
|
275
|
+
Status: u.Status,
|
|
276
|
+
Trigger: u.Trigger,
|
|
277
|
+
Value: u.Value,
|
|
278
|
+
useFilter: u.useFilter,
|
|
279
|
+
useFilteredItems: u.useFilteredItems
|
|
280
|
+
});
|
|
281
|
+
//#endregion
|
|
282
|
+
export { D as Autocomplete, w as AutocompleteInputGroup, T as AutocompleteItem, C as Combobox, m as ComboboxClear, b as ComboboxEmpty, f as ComboboxInput, d as ComboboxInputGroup, v as ComboboxItem, y as ComboboxItemIndicator, _ as ComboboxList, g as ComboboxPopup, h as ComboboxPositioner, p as ComboboxTrigger };
|
|
283
|
+
|
|
284
|
+
//# sourceMappingURL=combobox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox.js","names":[],"sources":["../../../src/components/selection/combobox.tsx"],"sourcesContent":["import { Autocomplete as BaseAutocomplete, type AutocompleteInputGroupProps, type AutocompleteItemProps, type AutocompleteRootProps } from \"@base-ui/react/autocomplete\";\nimport {\n\tCombobox as BaseCombobox,\n\ttype ComboboxClearProps,\n\ttype ComboboxEmptyProps,\n\ttype ComboboxInputGroupProps,\n\ttype ComboboxInputProps,\n\ttype ComboboxItemIndicatorProps,\n\ttype ComboboxItemProps,\n\ttype ComboboxListProps,\n\ttype ComboboxPopupProps,\n\ttype ComboboxPositionerProps,\n\ttype ComboboxRootProps,\n\ttype ComboboxTriggerProps\n} from \"@base-ui/react/combobox\";\nimport { CaretDownIcon } from \"@phosphor-icons/react/dist/csr/CaretDown\";\nimport { CheckIcon } from \"@phosphor-icons/react/dist/csr/Check\";\nimport { XIcon } from \"@phosphor-icons/react/dist/csr/X\";\nimport { forwardRef, useMemo, type Key, type ReactNode } from \"react\";\n\nimport { mergeStateClassName } from \"./classnames\";\nimport styles from \"./selection.module.css\";\n\nexport const ComboboxInputGroup = forwardRef<HTMLDivElement, ComboboxInputGroupProps>(function ComboboxInputGroup({ className, ...props }, ref) {\n\treturn <BaseCombobox.InputGroup {...props} className={mergeStateClassName(styles.comboboxInputGroup, className)} ref={ref} />;\n});\n\nexport const ComboboxInput = forwardRef<HTMLInputElement, ComboboxInputProps>(function ComboboxInput({ className, ...props }, ref) {\n\treturn <BaseCombobox.Input {...props} className={mergeStateClassName(styles.comboboxInput, className)} ref={ref} />;\n});\n\nexport const ComboboxTrigger = forwardRef<HTMLButtonElement, ComboboxTriggerProps>(function ComboboxTrigger({ className, ...props }, ref) {\n\treturn <BaseCombobox.Trigger {...props} className={mergeStateClassName(styles.comboboxTrigger, className)} ref={ref} />;\n});\n\nexport const ComboboxClear = forwardRef<HTMLButtonElement, ComboboxClearProps>(function ComboboxClear({ className, ...props }, ref) {\n\treturn <BaseCombobox.Clear {...props} className={mergeStateClassName(styles.comboboxClear, className)} ref={ref} />;\n});\n\nexport const ComboboxPositioner = forwardRef<HTMLDivElement, ComboboxPositionerProps>(function ComboboxPositioner({ className, ...props }, ref) {\n\treturn <BaseCombobox.Positioner {...props} className={mergeStateClassName(styles.positioner, className)} ref={ref} />;\n});\n\nexport const ComboboxPopup = forwardRef<HTMLDivElement, ComboboxPopupProps>(function ComboboxPopup({ className, ...props }, ref) {\n\treturn <BaseCombobox.Popup {...props} className={mergeStateClassName(styles.popup, className)} ref={ref} />;\n});\n\nexport const ComboboxList = forwardRef<HTMLDivElement, ComboboxListProps>(function ComboboxList({ className, ...props }, ref) {\n\treturn <BaseCombobox.List {...props} className={mergeStateClassName(styles.optionList, className)} ref={ref} />;\n});\n\nexport const ComboboxItem = forwardRef<HTMLDivElement, ComboboxItemProps>(function ComboboxItem({ className, ...props }, ref) {\n\treturn <BaseCombobox.Item {...props} className={mergeStateClassName(styles.option, className)} ref={ref} />;\n});\n\nexport const ComboboxItemIndicator = forwardRef<HTMLSpanElement, ComboboxItemIndicatorProps>(function ComboboxItemIndicator({ className, ...props }, ref) {\n\treturn <BaseCombobox.ItemIndicator {...props} className={mergeStateClassName(styles.optionIndicator, className)} ref={ref} />;\n});\n\nexport const ComboboxEmpty = forwardRef<HTMLDivElement, ComboboxEmptyProps>(function ComboboxEmpty({ className, ...props }, ref) {\n\treturn <BaseCombobox.Empty {...props} className={mergeStateClassName(styles.emptyOption, className)} ref={ref} />;\n});\n\nexport interface ComboboxOption<Value> {\n\tdescription?: ReactNode;\n\tdisabled?: boolean;\n\tkey?: Key;\n\tlabel: ReactNode;\n\ttextValue?: string;\n\tvalue: Value;\n}\n\ninterface IndexedOption<Option> {\n\toption: Option;\n\tsourceIndex: number;\n}\n\nfunction createOptionIndex<Value, Option extends { value: Value }>(options: readonly Option[]) {\n\tconst values: Value[] = [];\n\tconst lookup = new Map<Value, IndexedOption<Option>>();\n\tlet negativeZero: IndexedOption<Option> | undefined;\n\tlet positiveZero: IndexedOption<Option> | undefined;\n\n\toptions.forEach((option, sourceIndex) => {\n\t\tconst value = option.value;\n\t\tconst indexed = { option, sourceIndex };\n\t\tvalues.push(value);\n\n\t\tif (typeof value === \"number\" && value === 0) {\n\t\t\tif (Object.is(value, -0)) negativeZero ??= indexed;\n\t\t\telse positiveZero ??= indexed;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!lookup.has(value)) lookup.set(value, indexed);\n\t});\n\n\treturn {\n\t\tvalues,\n\t\tget(value: Value) {\n\t\t\tif (typeof value === \"number\" && value === 0) {\n\t\t\t\treturn Object.is(value, -0) ? negativeZero : positiveZero;\n\t\t\t}\n\t\t\treturn lookup.get(value);\n\t\t}\n\t};\n}\n\nexport interface ComboboxProps<Value> extends Omit<ComboboxRootProps<Value, false>, \"children\" | \"items\" | \"multiple\"> {\n\t\"aria-describedby\"?: string;\n\t\"aria-label\"?: string;\n\t\"aria-labelledby\"?: string;\n\tclassName?: string;\n\tclearLabel?: string;\n\temptyMessage?: ReactNode;\n\tinputProps?: Omit<ComboboxInputProps, \"className\" | \"placeholder\">;\n\tinvalid?: boolean;\n\toptions: readonly ComboboxOption<Value>[];\n\tplaceholder?: string;\n\tpopupProps?: ComboboxPopupProps;\n\tpositionerProps?: ComboboxPositionerProps;\n\ttriggerLabel?: string;\n}\n\nfunction ComboboxComponent<Value>({\n\t\"aria-describedby\": ariaDescribedby,\n\t\"aria-label\": ariaLabel,\n\t\"aria-labelledby\": ariaLabelledby,\n\tclassName,\n\tclearLabel = \"清除選取\",\n\temptyMessage = \"找不到符合的選項\",\n\tinputProps,\n\tinvalid = false,\n\titemToStringLabel,\n\toptions,\n\tplaceholder,\n\tpopupProps,\n\tpositionerProps,\n\ttriggerLabel = \"顯示選項\",\n\t...rootProps\n}: ComboboxProps<Value>) {\n\tconst optionIndex = useMemo(() => createOptionIndex<Value, ComboboxOption<Value>>(options), [options]);\n\tconst stringify = useMemo(\n\t\t() =>\n\t\t\titemToStringLabel ??\n\t\t\t((itemValue: Value) => {\n\t\t\t\tconst option = optionIndex.get(itemValue)?.option;\n\t\t\t\treturn option?.textValue ?? (typeof option?.label === \"string\" ? option.label : String(itemValue));\n\t\t\t}),\n\t\t[itemToStringLabel, optionIndex]\n\t);\n\n\treturn (\n\t\t<BaseCombobox.Root {...rootProps} itemToStringLabel={stringify} items={optionIndex.values}>\n\t\t\t<ComboboxInputGroup className={className}>\n\t\t\t\t<ComboboxInput\n\t\t\t\t\t{...inputProps}\n\t\t\t\t\taria-describedby={ariaDescribedby ?? inputProps?.[\"aria-describedby\"]}\n\t\t\t\t\taria-invalid={invalid || inputProps?.[\"aria-invalid\"] || undefined}\n\t\t\t\t\taria-label={ariaLabel ?? inputProps?.[\"aria-label\"]}\n\t\t\t\t\taria-labelledby={ariaLabelledby ?? inputProps?.[\"aria-labelledby\"]}\n\t\t\t\t\tautoComplete={inputProps?.autoComplete ?? \"off\"}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t/>\n\t\t\t\t<ComboboxClear aria-label={clearLabel}>\n\t\t\t\t\t<XIcon aria-hidden=\"true\" weight=\"bold\" />\n\t\t\t\t</ComboboxClear>\n\t\t\t\t<ComboboxTrigger aria-label={triggerLabel}>\n\t\t\t\t\t<CaretDownIcon aria-hidden=\"true\" weight=\"bold\" />\n\t\t\t\t</ComboboxTrigger>\n\t\t\t</ComboboxInputGroup>\n\t\t\t<BaseCombobox.Portal>\n\t\t\t\t<ComboboxPositioner {...positionerProps}>\n\t\t\t\t\t<ComboboxPopup {...popupProps}>\n\t\t\t\t\t\t<ComboboxList>\n\t\t\t\t\t\t\t{(value: Value, index: number) => {\n\t\t\t\t\t\t\t\tconst indexed = optionIndex.get(value);\n\t\t\t\t\t\t\t\tif (!indexed) return null;\n\t\t\t\t\t\t\t\tconst { option, sourceIndex } = indexed;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ComboboxItem disabled={option.disabled} index={index} key={option.key ?? option.textValue ?? sourceIndex} value={value}>\n\t\t\t\t\t\t\t\t\t\t<ComboboxItemIndicator>\n\t\t\t\t\t\t\t\t\t\t\t<CheckIcon aria-hidden=\"true\" weight=\"bold\" />\n\t\t\t\t\t\t\t\t\t\t</ComboboxItemIndicator>\n\t\t\t\t\t\t\t\t\t\t<span className={styles.optionText}>\n\t\t\t\t\t\t\t\t\t\t\t<span>{option.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t{option.description ? <span className={styles.optionDescription}>{option.description}</span> : null}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ComboboxList>\n\t\t\t\t\t\t<ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n\t\t\t\t\t</ComboboxPopup>\n\t\t\t\t</ComboboxPositioner>\n\t\t\t</BaseCombobox.Portal>\n\t\t</BaseCombobox.Root>\n\t);\n}\n\nexport const Combobox = Object.assign(ComboboxComponent, {\n\tArrow: BaseCombobox.Arrow,\n\tBackdrop: BaseCombobox.Backdrop,\n\tChip: BaseCombobox.Chip,\n\tChipRemove: BaseCombobox.ChipRemove,\n\tChips: BaseCombobox.Chips,\n\tClear: ComboboxClear,\n\tCollection: BaseCombobox.Collection,\n\tEmpty: ComboboxEmpty,\n\tGroup: BaseCombobox.Group,\n\tGroupLabel: BaseCombobox.GroupLabel,\n\tIcon: BaseCombobox.Icon,\n\tInput: ComboboxInput,\n\tInputGroup: ComboboxInputGroup,\n\tItem: ComboboxItem,\n\tItemIndicator: ComboboxItemIndicator,\n\tLabel: BaseCombobox.Label,\n\tList: ComboboxList,\n\tPopup: ComboboxPopup,\n\tPortal: BaseCombobox.Portal,\n\tPositioner: ComboboxPositioner,\n\tRoot: BaseCombobox.Root,\n\tRow: BaseCombobox.Row,\n\tSeparator: BaseCombobox.Separator,\n\tStatus: BaseCombobox.Status,\n\tTrigger: ComboboxTrigger,\n\tValue: BaseCombobox.Value,\n\tuseFilter: BaseCombobox.useFilter,\n\tuseFilteredItems: BaseCombobox.useFilteredItems\n});\n\nexport const AutocompleteInputGroup = forwardRef<HTMLDivElement, AutocompleteInputGroupProps>(function AutocompleteInputGroup({ className, ...props }, ref) {\n\treturn <BaseAutocomplete.InputGroup {...props} className={mergeStateClassName(styles.comboboxInputGroup, className)} ref={ref} />;\n});\n\nexport const AutocompleteItem = forwardRef<HTMLDivElement, AutocompleteItemProps>(function AutocompleteItem({ className, ...props }, ref) {\n\treturn <BaseAutocomplete.Item {...props} className={mergeStateClassName(styles.option, className)} ref={ref} />;\n});\n\nexport interface AutocompleteOption<Value> {\n\tdisabled?: boolean;\n\tkey?: Key;\n\tlabel: ReactNode;\n\ttextValue?: string;\n\tvalue: Value;\n}\n\nexport interface AutocompleteProps<ItemValue> extends Omit<AutocompleteRootProps<ItemValue>, \"children\" | \"items\"> {\n\t\"aria-describedby\"?: string;\n\t\"aria-label\"?: string;\n\t\"aria-labelledby\"?: string;\n\tclassName?: string;\n\tclearLabel?: string;\n\temptyMessage?: ReactNode;\n\tinputProps?: Omit<ComboboxInputProps, \"className\" | \"placeholder\">;\n\tinvalid?: boolean;\n\toptions: readonly AutocompleteOption<ItemValue>[];\n\tplaceholder?: string;\n\tpopupProps?: ComboboxPopupProps;\n\tpositionerProps?: ComboboxPositionerProps;\n\ttriggerLabel?: string;\n}\n\nfunction AutocompleteComponent<ItemValue>({\n\t\"aria-describedby\": ariaDescribedby,\n\t\"aria-label\": ariaLabel,\n\t\"aria-labelledby\": ariaLabelledby,\n\tclassName,\n\tclearLabel = \"清除搜尋內容\",\n\temptyMessage = \"找不到建議項目\",\n\tinputProps,\n\tinvalid = false,\n\titemToStringValue,\n\toptions,\n\tplaceholder,\n\tpopupProps,\n\tpositionerProps,\n\ttriggerLabel = \"顯示建議項目\",\n\t...rootProps\n}: AutocompleteProps<ItemValue>) {\n\tconst optionIndex = useMemo(() => createOptionIndex<ItemValue, AutocompleteOption<ItemValue>>(options), [options]);\n\tconst stringify = useMemo(\n\t\t() =>\n\t\t\titemToStringValue ??\n\t\t\t((itemValue: ItemValue) => {\n\t\t\t\tconst option = optionIndex.get(itemValue)?.option;\n\t\t\t\treturn option?.textValue ?? (typeof option?.label === \"string\" ? option.label : String(itemValue));\n\t\t\t}),\n\t\t[itemToStringValue, optionIndex]\n\t);\n\n\treturn (\n\t\t<BaseAutocomplete.Root {...rootProps} itemToStringValue={stringify} items={optionIndex.values}>\n\t\t\t<AutocompleteInputGroup className={className}>\n\t\t\t\t<ComboboxInput\n\t\t\t\t\t{...inputProps}\n\t\t\t\t\taria-describedby={ariaDescribedby ?? inputProps?.[\"aria-describedby\"]}\n\t\t\t\t\taria-invalid={invalid || inputProps?.[\"aria-invalid\"] || undefined}\n\t\t\t\t\taria-label={ariaLabel ?? inputProps?.[\"aria-label\"]}\n\t\t\t\t\taria-labelledby={ariaLabelledby ?? inputProps?.[\"aria-labelledby\"]}\n\t\t\t\t\tautoComplete={inputProps?.autoComplete ?? \"off\"}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t/>\n\t\t\t\t<ComboboxClear aria-label={clearLabel}>\n\t\t\t\t\t<XIcon aria-hidden=\"true\" weight=\"bold\" />\n\t\t\t\t</ComboboxClear>\n\t\t\t\t<BaseAutocomplete.Trigger aria-label={triggerLabel} className={styles.comboboxTrigger}>\n\t\t\t\t\t<CaretDownIcon aria-hidden=\"true\" weight=\"bold\" />\n\t\t\t\t</BaseAutocomplete.Trigger>\n\t\t\t</AutocompleteInputGroup>\n\t\t\t<BaseAutocomplete.Portal>\n\t\t\t\t<ComboboxPositioner {...positionerProps}>\n\t\t\t\t\t<ComboboxPopup {...popupProps}>\n\t\t\t\t\t\t<ComboboxList>\n\t\t\t\t\t\t\t{(value: ItemValue, index: number) => {\n\t\t\t\t\t\t\t\tconst indexed = optionIndex.get(value);\n\t\t\t\t\t\t\t\tif (!indexed) return null;\n\t\t\t\t\t\t\t\tconst { option, sourceIndex } = indexed;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<AutocompleteItem disabled={option.disabled} index={index} key={option.key ?? option.textValue ?? sourceIndex} value={value}>\n\t\t\t\t\t\t\t\t\t\t<span className={styles.optionText}>{option.label}</span>\n\t\t\t\t\t\t\t\t\t</AutocompleteItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ComboboxList>\n\t\t\t\t\t\t<ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n\t\t\t\t\t</ComboboxPopup>\n\t\t\t\t</ComboboxPositioner>\n\t\t\t</BaseAutocomplete.Portal>\n\t\t</BaseAutocomplete.Root>\n\t);\n}\n\nexport const Autocomplete = Object.assign(AutocompleteComponent, {\n\tArrow: BaseAutocomplete.Arrow,\n\tBackdrop: BaseAutocomplete.Backdrop,\n\tClear: ComboboxClear,\n\tCollection: BaseAutocomplete.Collection,\n\tEmpty: ComboboxEmpty,\n\tGroup: BaseAutocomplete.Group,\n\tGroupLabel: BaseAutocomplete.GroupLabel,\n\tIcon: BaseAutocomplete.Icon,\n\tInput: ComboboxInput,\n\tInputGroup: AutocompleteInputGroup,\n\tItem: AutocompleteItem,\n\tList: ComboboxList,\n\tPopup: ComboboxPopup,\n\tPortal: BaseAutocomplete.Portal,\n\tPositioner: ComboboxPositioner,\n\tRoot: BaseAutocomplete.Root,\n\tRow: BaseAutocomplete.Row,\n\tSeparator: BaseAutocomplete.Separator,\n\tStatus: BaseAutocomplete.Status,\n\tTrigger: BaseAutocomplete.Trigger,\n\tValue: BaseAutocomplete.Value,\n\tuseFilter: BaseAutocomplete.useFilter,\n\tuseFilteredItems: BaseAutocomplete.useFilteredItems\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { CheckboxRootProps } from '@base-ui/react/checkbox';
|
|
2
|
+
import { CheckboxGroupProps as BaseCheckboxGroupProps } from '@base-ui/react/checkbox-group';
|
|
3
|
+
import { RadioRootProps } from '@base-ui/react/radio';
|
|
4
|
+
import { RadioGroupProps as BaseRadioGroupProps } from '@base-ui/react/radio-group';
|
|
5
|
+
import { SliderRootProps } from '@base-ui/react/slider';
|
|
6
|
+
import { SwitchRootProps } from '@base-ui/react/switch';
|
|
7
|
+
import { ToggleProps as BaseToggleProps } from '@base-ui/react/toggle';
|
|
8
|
+
import { ToggleGroup as BaseToggleGroup, ToggleGroupProps as BaseToggleGroupProps } from '@base-ui/react/toggle-group';
|
|
9
|
+
import { JSX, ReactNode, RefAttributes } from 'react';
|
|
10
|
+
export interface CheckboxProps extends CheckboxRootProps {
|
|
11
|
+
indicator?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export declare const Checkbox: import('react').ForwardRefExoticComponent<Omit<CheckboxProps, "ref"> & RefAttributes<HTMLElement>>;
|
|
14
|
+
export type CheckboxGroupProps = BaseCheckboxGroupProps;
|
|
15
|
+
export declare const CheckboxGroup: import('react').ForwardRefExoticComponent<Omit<BaseCheckboxGroupProps, "ref"> & RefAttributes<HTMLDivElement>>;
|
|
16
|
+
export interface CheckboxItemProps extends CheckboxProps {
|
|
17
|
+
label: ReactNode;
|
|
18
|
+
description?: ReactNode;
|
|
19
|
+
wrapperClassName?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const CheckboxItem: import('react').ForwardRefExoticComponent<Omit<CheckboxItemProps, "ref"> & RefAttributes<HTMLElement>>;
|
|
22
|
+
export type RadioGroupProps<Value = string> = BaseRadioGroupProps<Value>;
|
|
23
|
+
type RadioGroupComponent = <Value = string>(props: RadioGroupProps<Value> & RefAttributes<HTMLDivElement>) => JSX.Element;
|
|
24
|
+
export declare const RadioGroup: RadioGroupComponent;
|
|
25
|
+
export type RadioProps<Value = string> = RadioRootProps<Value>;
|
|
26
|
+
type RadioComponent = <Value = string>(props: RadioProps<Value> & RefAttributes<HTMLElement>) => JSX.Element;
|
|
27
|
+
export declare const Radio: RadioComponent;
|
|
28
|
+
export interface RadioItemProps<Value = string> extends RadioProps<Value> {
|
|
29
|
+
label: ReactNode;
|
|
30
|
+
description?: ReactNode;
|
|
31
|
+
wrapperClassName?: string;
|
|
32
|
+
}
|
|
33
|
+
type RadioItemComponent = <Value = string>(props: RadioItemProps<Value> & RefAttributes<HTMLElement>) => JSX.Element;
|
|
34
|
+
export declare const RadioItem: RadioItemComponent;
|
|
35
|
+
export interface SwitchProps extends SwitchRootProps {
|
|
36
|
+
children?: ReactNode;
|
|
37
|
+
}
|
|
38
|
+
export declare const Switch: import('react').ForwardRefExoticComponent<Omit<SwitchProps, "ref"> & RefAttributes<HTMLElement>>;
|
|
39
|
+
export interface SliderProps<Value extends number | readonly number[] = number> extends SliderRootProps<Value> {
|
|
40
|
+
getAriaLabel?: (index: number) => string;
|
|
41
|
+
getAriaValueText?: (formattedValue: string, value: number, index: number) => string;
|
|
42
|
+
showValue?: boolean;
|
|
43
|
+
}
|
|
44
|
+
type SliderComponent = <Value extends number | readonly number[] = number>(props: SliderProps<Value> & RefAttributes<HTMLDivElement>) => JSX.Element;
|
|
45
|
+
export declare const Slider: SliderComponent;
|
|
46
|
+
export interface ToggleProps<Value extends string = string> extends BaseToggleProps<Value> {
|
|
47
|
+
variant?: "standard" | "quiet";
|
|
48
|
+
}
|
|
49
|
+
type ToggleComponent = <Value extends string = string>(props: ToggleProps<Value> & RefAttributes<HTMLButtonElement>) => JSX.Element;
|
|
50
|
+
export declare const Toggle: ToggleComponent;
|
|
51
|
+
export type ToggleGroupProps<Value extends string = string> = BaseToggleGroupProps<Value>;
|
|
52
|
+
type ToggleGroupComponent = <Value extends string = string>(props: ToggleGroupProps<Value> & RefAttributes<HTMLDivElement>) => JSX.Element;
|
|
53
|
+
export declare const ToggleGroup: ToggleGroupComponent;
|
|
54
|
+
export interface SegmentedControlProps<Value extends string = string> extends Omit<BaseToggleGroupProps<Value>, "aria-readonly" | "defaultValue" | "multiple" | "onValueChange" | "value"> {
|
|
55
|
+
allowEmpty?: boolean;
|
|
56
|
+
defaultValue?: Value | null;
|
|
57
|
+
name?: string;
|
|
58
|
+
onValueChange?: (value: Value | null, details: BaseToggleGroup.ChangeEventDetails) => void;
|
|
59
|
+
size?: "sm" | "md";
|
|
60
|
+
value?: Value | null;
|
|
61
|
+
}
|
|
62
|
+
type SegmentedControlComponent = <Value extends string = string>(props: SegmentedControlProps<Value> & RefAttributes<HTMLDivElement>) => JSX.Element;
|
|
63
|
+
export declare const SegmentedControl: SegmentedControlComponent;
|
|
64
|
+
export declare const SegmentedControlItem: ToggleComponent;
|
|
65
|
+
export {};
|