@avenue-ticketing/ui 0.11.0 → 0.12.0-beta.1
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/README.md +47 -0
- package/dist/badge-types-B67wcd4m.d.ts +22 -0
- package/dist/react/app-store-buttons-outline.d.ts +17 -0
- package/dist/react/app-store-buttons-outline.js +582 -0
- package/dist/react/app-store-buttons-outline.js.map +1 -0
- package/dist/react/app-store-buttons.d.ts +20 -0
- package/dist/react/app-store-buttons.js +817 -0
- package/dist/react/app-store-buttons.js.map +1 -0
- package/dist/react/avatar-label-group.d.ts +14 -0
- package/dist/react/avatar-label-group.js +183 -0
- package/dist/react/avatar-label-group.js.map +1 -0
- package/dist/react/avatar-profile-photo.d.ts +9 -0
- package/dist/react/avatar-profile-photo.js +202 -0
- package/dist/react/avatar-profile-photo.js.map +1 -0
- package/dist/react/avatar.d.ts +66 -40
- package/dist/react/avatar.js +159 -149
- package/dist/react/avatar.js.map +1 -1
- package/dist/react/badge-groups.d.ts +25 -0
- package/dist/react/badge-groups.js +162 -0
- package/dist/react/badge-groups.js.map +1 -0
- package/dist/react/badge.d.ts +123 -59
- package/dist/react/badge.js +314 -86
- package/dist/react/badge.js.map +1 -1
- package/dist/react/button-group.d.ts +43 -0
- package/dist/react/button-group.js +108 -0
- package/dist/react/button-group.js.map +1 -0
- package/dist/react/button-utility.d.ts +47 -0
- package/dist/react/button-utility.js +158 -0
- package/dist/react/button-utility.js.map +1 -0
- package/dist/react/button.d.ts +112 -37
- package/dist/react/button.js +270 -55
- package/dist/react/button.js.map +1 -1
- package/dist/react/checkbox.d.ts +25 -8
- package/dist/react/checkbox.js +112 -110
- package/dist/react/checkbox.js.map +1 -1
- package/dist/react/close-button.d.ts +25 -0
- package/dist/react/close-button.js +54 -0
- package/dist/react/close-button.js.map +1 -0
- package/dist/react/combobox.d.ts +17 -0
- package/dist/react/combobox.js +322 -0
- package/dist/react/combobox.js.map +1 -0
- package/dist/react/dialog.d.ts +15 -15
- package/dist/react/dialog.js +43 -108
- package/dist/react/dialog.js.map +1 -1
- package/dist/react/dropdown-account-breadcrumb.d.ts +5 -0
- package/dist/react/dropdown-account-breadcrumb.js +319 -0
- package/dist/react/dropdown-account-breadcrumb.js.map +1 -0
- package/dist/react/dropdown-account-button.d.ts +5 -0
- package/dist/react/dropdown-account-button.js +773 -0
- package/dist/react/dropdown-account-button.js.map +1 -0
- package/dist/react/dropdown-account-card-md.d.ts +5 -0
- package/dist/react/dropdown-account-card-md.js +549 -0
- package/dist/react/dropdown-account-card-md.js.map +1 -0
- package/dist/react/dropdown-account-card-sm.d.ts +5 -0
- package/dist/react/dropdown-account-card-sm.js +527 -0
- package/dist/react/dropdown-account-card-sm.js.map +1 -0
- package/dist/react/dropdown-account-card-xs.d.ts +5 -0
- package/dist/react/dropdown-account-card-xs.js +507 -0
- package/dist/react/dropdown-account-card-xs.js.map +1 -0
- package/dist/react/dropdown-avatar.d.ts +5 -0
- package/dist/react/dropdown-avatar.js +790 -0
- package/dist/react/dropdown-avatar.js.map +1 -0
- package/dist/react/dropdown-button-advanced.d.ts +5 -0
- package/dist/react/dropdown-button-advanced.js +799 -0
- package/dist/react/dropdown-button-advanced.js.map +1 -0
- package/dist/react/dropdown-button-link.d.ts +5 -0
- package/dist/react/dropdown-button-link.js +501 -0
- package/dist/react/dropdown-button-link.js.map +1 -0
- package/dist/react/dropdown-button-simple.d.ts +5 -0
- package/dist/react/dropdown-button-simple.js +754 -0
- package/dist/react/dropdown-button-simple.js.map +1 -0
- package/dist/react/dropdown-icon-advanced.d.ts +5 -0
- package/dist/react/dropdown-icon-advanced.js +543 -0
- package/dist/react/dropdown-icon-advanced.js.map +1 -0
- package/dist/react/dropdown-icon-simple.d.ts +5 -0
- package/dist/react/dropdown-icon-simple.js +505 -0
- package/dist/react/dropdown-icon-simple.js.map +1 -0
- package/dist/react/dropdown-integration.d.ts +5 -0
- package/dist/react/dropdown-integration.js +1325 -0
- package/dist/react/dropdown-integration.js.map +1 -0
- package/dist/react/dropdown-search-advanced.d.ts +5 -0
- package/dist/react/dropdown-search-advanced.js +998 -0
- package/dist/react/dropdown-search-advanced.js.map +1 -0
- package/dist/react/dropdown-search-simple.d.ts +5 -0
- package/dist/react/dropdown-search-simple.js +960 -0
- package/dist/react/dropdown-search-simple.js.map +1 -0
- package/dist/react/dropdown.d.ts +32 -133
- package/dist/react/dropdown.js +404 -1351
- package/dist/react/dropdown.js.map +1 -1
- package/dist/react/file-upload-trigger.d.ts +34 -0
- package/dist/react/file-upload-trigger.js +39 -0
- package/dist/react/file-upload-trigger.js.map +1 -0
- package/dist/react/form.d.ts +10 -0
- package/dist/react/form.js +11 -0
- package/dist/react/form.js.map +1 -0
- package/dist/react/hint-text.d.ts +17 -0
- package/dist/react/hint-text.js +36 -0
- package/dist/react/hint-text.js.map +1 -0
- package/dist/react/hook-form.d.ts +35 -0
- package/dist/react/hook-form.js +50 -0
- package/dist/react/hook-form.js.map +1 -0
- package/dist/react/input-date.d.ts +43 -0
- package/dist/react/input-date.js +306 -0
- package/dist/react/input-date.js.map +1 -0
- package/dist/react/input-file.d.ts +45 -0
- package/dist/react/input-file.js +748 -0
- package/dist/react/input-file.js.map +1 -0
- package/dist/react/input-group.d.ts +37 -0
- package/dist/react/input-group.js +251 -0
- package/dist/react/input-group.js.map +1 -0
- package/dist/react/input-number.d.ts +32 -0
- package/dist/react/input-number.js +553 -0
- package/dist/react/input-number.js.map +1 -0
- package/dist/react/input-payment.d.ts +16 -0
- package/dist/react/input-payment.js +593 -0
- package/dist/react/input-payment.js.map +1 -0
- package/dist/react/input-tags-outer.d.ts +53 -0
- package/dist/react/input-tags-outer.js +607 -0
- package/dist/react/input-tags-outer.js.map +1 -0
- package/dist/react/input-tags.d.ts +53 -0
- package/dist/react/input-tags.js +565 -0
- package/dist/react/input-tags.js.map +1 -0
- package/dist/react/input.d.ts +71 -22
- package/dist/react/input.js +332 -45
- package/dist/react/input.js.map +1 -1
- package/dist/react/label.d.ts +18 -0
- package/dist/react/label.js +112 -0
- package/dist/react/label.js.map +1 -0
- package/dist/react/multi-select.d.ts +89 -0
- package/dist/react/multi-select.js +1036 -0
- package/dist/react/multi-select.js.map +1 -0
- package/dist/react/pin-input.d.ts +59 -0
- package/dist/react/pin-input.js +229 -0
- package/dist/react/pin-input.js.map +1 -0
- package/dist/react/popover.d.ts +7 -73
- package/dist/react/popover.js +23 -569
- package/dist/react/popover.js.map +1 -1
- package/dist/react/progress-circle.d.ts +9 -0
- package/dist/react/progress-circle.js +36 -0
- package/dist/react/progress-circle.js.map +1 -0
- package/dist/react/progress-circles.d.ts +14 -0
- package/dist/react/progress-circles.js +160 -0
- package/dist/react/progress-circles.js.map +1 -0
- package/dist/react/progress-indicators.d.ts +52 -0
- package/dist/react/progress-indicators.js +78 -0
- package/dist/react/progress-indicators.js.map +1 -0
- package/dist/react/radio-buttons.d.ts +35 -0
- package/dist/react/radio-buttons.js +116 -0
- package/dist/react/radio-buttons.js.map +1 -0
- package/dist/react/scroll-header.d.ts +6 -0
- package/dist/react/scroll-header.js +42 -61
- package/dist/react/scroll-header.js.map +1 -1
- package/dist/react/scroll-wheel.d.ts +4 -5
- package/dist/react/scroll-wheel.js +19 -15
- package/dist/react/scroll-wheel.js.map +1 -1
- package/dist/react/select-item.d.ts +13 -0
- package/dist/react/select-item.js +336 -0
- package/dist/react/select-item.js.map +1 -0
- package/dist/react/select-native.d.ts +17 -0
- package/dist/react/select-native.js +203 -0
- package/dist/react/select-native.js.map +1 -0
- package/dist/react/select.d.ts +18 -61
- package/dist/react/select.js +625 -923
- package/dist/react/select.js.map +1 -1
- package/dist/react/sheet.d.ts +19 -19
- package/dist/react/sheet.js +97 -219
- package/dist/react/sheet.js.map +1 -1
- package/dist/react/slider.d.ts +15 -0
- package/dist/react/slider.js +66 -0
- package/dist/react/slider.js.map +1 -0
- package/dist/react/social-button.d.ts +55 -0
- package/dist/react/social-button.js +263 -0
- package/dist/react/social-button.js.map +1 -0
- package/dist/react/social-logos.d.ts +20 -0
- package/dist/react/social-logos.js +131 -0
- package/dist/react/social-logos.js.map +1 -0
- package/dist/react/switch.d.ts +21 -36
- package/dist/react/switch.js +121 -109
- package/dist/react/switch.js.map +1 -1
- package/dist/react/tag-select.d.ts +44 -0
- package/dist/react/tag-select.js +1062 -0
- package/dist/react/tag-select.js.map +1 -0
- package/dist/react/tags.d.ts +30 -0
- package/dist/react/tags.js +228 -0
- package/dist/react/tags.js.map +1 -0
- package/dist/react/textarea.d.ts +40 -4
- package/dist/react/textarea.js +193 -27
- package/dist/react/textarea.js.map +1 -1
- package/dist/react/tooltip.d.ts +30 -43
- package/dist/react/tooltip.js +65 -521
- package/dist/react/tooltip.js.map +1 -1
- package/dist/select-shared-B3Y5SMXU.d.ts +62 -0
- package/package.json +28 -21
- package/source.css +2 -13
- package/theme.css +883 -79
- package/dist/react/calendar.d.ts +0 -13
- package/dist/react/calendar.js +0 -4639
- package/dist/react/calendar.js.map +0 -1
- package/dist/react/card.d.ts +0 -11
- package/dist/react/card.js +0 -113
- package/dist/react/card.js.map +0 -1
- package/dist/react/datetime-picker.d.ts +0 -21
- package/dist/react/datetime-picker.js +0 -6142
- package/dist/react/datetime-picker.js.map +0 -1
- package/dist/react/pagination.d.ts +0 -28
- package/dist/react/pagination.js +0 -262
- package/dist/react/pagination.js.map +0 -1
- package/dist/react/table-pagination.d.ts +0 -15
- package/dist/react/table-pagination.js +0 -1247
- package/dist/react/table-pagination.js.map +0 -1
- package/dist/react/table-view/column-menu.d.ts +0 -15
- package/dist/react/table-view/column-menu.js +0 -1049
- package/dist/react/table-view/column-menu.js.map +0 -1
- package/dist/react/table-view/index.d.ts +0 -70
- package/dist/react/table-view/index.js +0 -2284
- package/dist/react/table-view/index.js.map +0 -1
- package/dist/react/table.d.ts +0 -86
- package/dist/react/table.js +0 -414
- package/dist/react/table.js.map +0 -1
- package/dist/react/tabs.d.ts +0 -34
- package/dist/react/tabs.js +0 -423
- package/dist/react/tabs.js.map +0 -1
- package/dist/react/time-picker.d.ts +0 -22
- package/dist/react/time-picker.js +0 -856
- package/dist/react/time-picker.js.map +0 -1
package/dist/react/select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/utils.ts","../../src/react/button.tsx","../../src/lib/typeahead.ts","../../src/react/select.tsx"],"names":["React","jsx","SelectTrigger"],"mappings":"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","file":"select.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nconst sizeClass = {\n xs: \"h-8 min-h-8 gap-2 px-4 text-sm has-[>svg]:px-3 [&_svg:not([class*='size-'])]:size-3\",\n default:\n \"h-10 min-h-10 gap-2 px-5 text-sm has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-4\",\n lg: \"h-11 min-h-11 gap-2 px-6 text-base has-[>svg]:px-5 [&_svg:not([class*='size-'])]:size-5\",\n} as const;\n\n/** Square hit targets for `iconOnly` — same keys as `sizeClass` (`default` | `lg`). */\nconst iconOnlySizeClass = {\n xs: \"size-8 min-h-8 min-w-8 gap-0 p-0 [&_svg:not([class*='size-'])]:size-3\",\n default:\n \"size-10 min-h-10 min-w-10 gap-0 p-0 [&_svg:not([class*='size-'])]:size-4\",\n lg: \"size-11 min-h-11 min-w-11 gap-0 p-0 [&_svg:not([class*='size-'])]:size-5\",\n} as const;\n\nconst roundedClass = {\n full: \"rounded-full\",\n lg: \"rounded-lg\",\n md: \"rounded-md\",\n} as const;\n\nconst variantClass = {\n primary:\n \"bg-primary text-background border border-transparent hover:bg-primary/90 active:bg-primary/85\",\n secondary:\n \"bg-background text-primary border border-primary/10 hover:bg-primary/5\",\n destructive:\n \"bg-background text-red-500 border border-red-500/25 hover:bg-red-500/5\",\n success:\n \"bg-background text-green-500 border border-green-500/25 hover:bg-green-500/5\",\n} as const;\n\nexport type ButtonProps = React.ComponentProps<\"button\"> & {\n /**\n * Visual style: neutral (`secondary`, `primary`), or outline (`destructive`,\n * `success`) using Tailwind `red-500` / `green-500` text and matching borders on\n * `bg-background` (no solid fill).\n */\n variant?: keyof typeof variantClass;\n /**\n * Corner radius. Labeled buttons default to `full` (pill). `iconOnly` buttons\n * default to `md` (square corners) unless you pass `rounded` explicitly.\n */\n rounded?: keyof typeof roundedClass;\n /** Height and horizontal padding: `default` or `lg` only. */\n size?: keyof typeof sizeClass;\n /**\n * Square icon-only control; same `size` presets (`default` | `lg`). Pair with\n * `aria-label` (or `title`) when there is no visible text.\n */\n iconOnly?: boolean;\n};\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n type = \"button\",\n variant = \"secondary\",\n rounded: roundedProp,\n size = \"default\",\n iconOnly = false,\n disabled,\n ...props\n },\n ref,\n ) => {\n const rounded = roundedProp ?? (iconOnly ? \"md\" : \"full\");\n\n return (\n <button\n type={type}\n disabled={disabled}\n data-slot=\"button\"\n data-icon-only={iconOnly ? \"\" : undefined}\n className={cn(\n \"inline-flex shrink-0 cursor-pointer items-center justify-center whitespace-nowrap outline-none scale-100 transition-[color,background-color,box-shadow,transform] duration-150 ease-out active:scale-[0.98] active:duration-100 active:ease-linear [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:border-ring font-medium lg:tracking-wide focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n iconOnly ? iconOnlySizeClass[size] : sizeClass[size],\n roundedClass[rounded],\n variantClass[variant],\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button };\n","/** How long typed characters accumulate before the search buffer resets. */\nexport const TYPEAHEAD_TIMEOUT_MS = 500;\n\nexport type TypeaheadState = {\n search: string;\n timer: ReturnType<typeof setTimeout> | null;\n};\n\nexport function createTypeaheadState(): TypeaheadState {\n return { search: \"\", timer: null };\n}\n\nexport function resetTypeahead(state: TypeaheadState): void {\n state.search = \"\";\n if (state.timer) {\n clearTimeout(state.timer);\n state.timer = null;\n }\n}\n\nexport function getItemLabel(item: HTMLElement): string {\n const aria = item.getAttribute(\"aria-label\")?.trim();\n if (aria) return aria;\n\n const marked = item.querySelector<HTMLElement>(\"[data-menu-label]\");\n if (marked?.textContent) return marked.textContent.replace(/\\s+/g, \" \").trim();\n\n return (item.textContent ?? \"\").replace(/\\s+/g, \" \").trim();\n}\n\nfunction normalizeSearch(value: string): string {\n return value.trim().toLocaleLowerCase();\n}\n\nfunction isTypeaheadTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return true;\n if (target.isContentEditable) return false;\n const tag = target.tagName;\n return tag !== \"INPUT\" && tag !== \"TEXTAREA\" && tag !== \"SELECT\";\n}\n\n/**\n * Focus the next matching item for printable keys.\n * Returns `true` when the key was consumed.\n */\nexport function handleTypeaheadKeyDown(\n event: KeyboardEvent,\n items: HTMLElement[],\n state: TypeaheadState,\n options?: { enabled?: boolean; timeoutMs?: number },\n): boolean {\n if (options?.enabled === false || items.length === 0) return false;\n if (event.ctrlKey || event.metaKey || event.altKey) return false;\n if (event.key.length !== 1 || !isTypeaheadTarget(event.target)) return false;\n\n event.preventDefault();\n\n const timeoutMs = options?.timeoutMs ?? TYPEAHEAD_TIMEOUT_MS;\n const char = event.key;\n const prevSearch = state.search;\n const repeatSingleChar =\n prevSearch.length === 1 && prevSearch === char;\n\n if (repeatSingleChar) {\n state.search = prevSearch;\n } else {\n state.search = prevSearch + char;\n }\n\n if (state.timer) clearTimeout(state.timer);\n state.timer = setTimeout(() => {\n state.search = \"\";\n state.timer = null;\n }, timeoutMs);\n\n const labels = items.map((item) => normalizeSearch(getItemLabel(item)));\n let needle = normalizeSearch(state.search);\n\n let matches = items\n .map((item, index) => ({ item, index, label: labels[index]! }))\n .filter(({ label }) => label.startsWith(needle));\n\n if (matches.length === 0 && state.search.length > 1) {\n state.search = char;\n needle = normalizeSearch(char);\n matches = items\n .map((item, index) => ({ item, index, label: labels[index]! }))\n .filter(({ label }) => label.startsWith(needle));\n }\n\n if (matches.length === 0) return true;\n\n const focused = document.activeElement as HTMLElement | null;\n const focusedIndex = focused ? items.indexOf(focused) : -1;\n\n if (repeatSingleChar && focusedIndex !== -1) {\n const currentMatch = matches.findIndex(\n ({ index }) => index === focusedIndex,\n );\n if (currentMatch !== -1) {\n const next = matches[(currentMatch + 1) % matches.length];\n next?.item.focus();\n return true;\n }\n }\n\n if (focusedIndex !== -1) {\n const nextAfterFocus = matches.find(({ index }) => index > focusedIndex);\n if (nextAfterFocus) {\n nextAfterFocus.item.focus();\n return true;\n }\n }\n\n matches[0]?.item.focus();\n return true;\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Check, ChevronDown, X } from \"lucide-react\";\n\nimport { Button, type ButtonProps } from \"./button\";\nimport {\n createTypeaheadState,\n handleTypeaheadKeyDown,\n resetTypeahead,\n} from \"../lib/typeahead\";\nimport { cn } from \"../lib/utils\";\n\nconst PANEL_OPEN_EASING = \"cubic-bezier(0,0.55,0.45,1)\";\nconst PANEL_CLOSE_EASING = \"cubic-bezier(0.55,0,1,0.45)\";\nconst MOBILE_SHEET_MAX_PX = 1024;\nconst MOBILE_SHEET_MS = 175;\nconst MOBILE_SHEET_IN = \"cubic-bezier(0.85, 0, 0.15, 1)\";\nconst MOBILE_SHEET_OUT = \"cubic-bezier(0.85, 0, 1, 0.15)\";\nconst SLIDE_DEFAULT_PX = 120;\nconst SHEET_MENU_TEXT = \"max-[1024px]:text-base\";\nconst SHEET_MENU_SHORTCUT = \"max-[1024px]:text-sm\";\n/** Shrink on the preferred side until space drops below ~2 rows; then allow flip. */\nconst SELECT_FLIP_MIN_SPACE_PX = 100;\n\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\n\ntype Pos = {\n top: number;\n left: number;\n side: Side;\n maxHeight?: number;\n};\n\nconst CONTENT_ORIGIN: Record<Side, string> = {\n bottom: \"top center\",\n top: \"bottom center\",\n left: \"right center\",\n right: \"left center\",\n};\n\nconst CONTENT_HIDDEN: Record<Side, string> = {\n bottom: \"translateY(-4px) scale(0.97)\",\n top: \"translateY(4px) scale(0.97)\",\n left: \"translateX(4px) scale(0.97)\",\n right: \"translateX(-4px) scale(0.97)\",\n};\n\nfunction computeMenuPosition(\n trigger: HTMLElement,\n menu: HTMLElement,\n side: Side,\n align: Align,\n offset: number,\n pad: number,\n): Pos {\n const tr = trigger.getBoundingClientRect();\n const mr = menu.getBoundingClientRect();\n const contentHeight = menu.scrollHeight;\n const vh = window.innerHeight;\n const vw = window.innerWidth;\n const sx = window.scrollX;\n const sy = window.scrollY;\n\n let top = 0;\n let left = 0;\n let effectiveSide = side;\n let maxHeight: number | undefined;\n\n const placeVertical = (s: Side, height: number) => {\n if (s === \"bottom\") top = tr.bottom + sy + offset;\n else top = tr.top + sy - height - offset;\n if (align === \"start\") left = tr.left + sx;\n else if (align === \"end\") left = tr.right + sx - mr.width;\n else left = tr.left + sx + tr.width / 2 - mr.width / 2;\n };\n\n const place = (s: Side, height = contentHeight) => {\n switch (s) {\n case \"bottom\":\n case \"top\":\n placeVertical(s, height);\n break;\n case \"right\":\n left = tr.right + sx + offset;\n if (align === \"start\") top = tr.top + sy;\n else if (align === \"end\") top = tr.bottom + sy - mr.height;\n else top = tr.top + sy + tr.height / 2 - mr.height / 2;\n break;\n case \"left\":\n left = tr.left + sx - mr.width - offset;\n if (align === \"start\") top = tr.top + sy;\n else if (align === \"end\") top = tr.bottom + sy - mr.height;\n else top = tr.top + sy + tr.height / 2 - mr.height / 2;\n break;\n }\n };\n\n place(side);\n\n const spaceBelow = Math.max(0, vh - pad - tr.bottom - offset);\n const spaceAbove = Math.max(0, tr.top - offset - pad);\n\n if (side === \"bottom\" || side === \"top\") {\n const primarySpace = side === \"bottom\" ? spaceBelow : spaceAbove;\n const alternateSpace = side === \"bottom\" ? spaceAbove : spaceBelow;\n const alternateSide: Side = side === \"bottom\" ? \"top\" : \"bottom\";\n\n if (contentHeight > primarySpace) {\n maxHeight = Math.min(contentHeight, primarySpace);\n place(side, maxHeight);\n }\n\n if (\n contentHeight > primarySpace &&\n primarySpace < SELECT_FLIP_MIN_SPACE_PX &&\n alternateSpace > primarySpace\n ) {\n effectiveSide = alternateSide;\n maxHeight = Math.min(contentHeight, alternateSpace);\n place(alternateSide, maxHeight);\n }\n } else if (side === \"right\" && left + mr.width > vw + sx - pad) {\n const flip = tr.left + sx - mr.width - offset;\n if (flip >= sx + pad) {\n effectiveSide = \"left\";\n left = flip;\n }\n } else if (side === \"left\" && left < sx + pad) {\n const flip = tr.right + sx + offset;\n if (flip + mr.width <= vw + sx - pad) {\n effectiveSide = \"right\";\n left = flip;\n }\n }\n\n return { top, left, side: effectiveSide, maxHeight };\n}\n\nfunction useNarrowSheetViewport(breakpoint = 1025) {\n const [narrow, setNarrow] = useState(false);\n useEffect(() => {\n const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);\n setNarrow(mq.matches);\n const h = (e: MediaQueryListEvent) => setNarrow(e.matches);\n mq.addEventListener(\"change\", h);\n return () => mq.removeEventListener(\"change\", h);\n }, [breakpoint]);\n return narrow;\n}\n\nfunction plainTextFromNode(node: React.ReactNode): string {\n if (node == null || node === false || node === true) return \"\";\n if (typeof node === \"string\" || typeof node === \"number\")\n return String(node);\n if (Array.isArray(node)) return node.map(plainTextFromNode).join(\"\");\n if (React.isValidElement(node)) {\n return plainTextFromNode(\n (node.props as { children?: React.ReactNode }).children,\n );\n }\n return \"\";\n}\n\n// ----- value context -----\n\ntype ItemRegistration = { value: string; label: React.ReactNode; disabled?: boolean };\n\ntype ValueCtx = {\n native: boolean;\n value: string;\n setValue: (v: string) => void;\n disabled: boolean;\n setLabel: (v: string, n: React.ReactNode) => void;\n clearLabel: (v: string) => void;\n registerNativeItem: (e: ItemRegistration) => void;\n unregisterNativeItem: (v: string) => void;\n labelFor: (v: string) => React.ReactNode | undefined;\n placeholder: string;\n};\n\nconst ValueContext = React.createContext<ValueCtx | null>(null);\n\nfunction useSelectValue() {\n const c = React.useContext(ValueContext);\n if (!c) throw new Error(\"Select subcomponents must be used within <Select>\");\n return c;\n}\n\n// ----- open context (custom mode only) -----\n\ntype OpenCtx = {\n open: boolean;\n setOpen: (v: boolean) => void;\n triggerRef: React.RefObject<HTMLElement | null>;\n};\n\nconst OpenContext = React.createContext<OpenCtx | null>(null);\n\nfunction useSelectOpen() {\n const c = React.useContext(OpenContext);\n if (!c)\n throw new Error(\n \"Select.Trigger, SelectContent, and SelectItem need <Select> without native\",\n );\n return c;\n}\n\n// ----- root -----\n\nexport type SelectProps = {\n children: React.ReactNode;\n className?: string;\n value?: string;\n defaultValue?: string;\n onValueChange?: (v: string) => void;\n /** native `<select>`; default `false` — custom trigger + list / sheet. */\n native?: boolean;\n disabled?: boolean;\n name?: string;\n id?: string;\n placeholder?: string;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nexport const Select = ({\n children,\n className,\n value: valueProp,\n defaultValue = \"\",\n onValueChange,\n native: nativeProp = false,\n disabled = false,\n name,\n id: idAttr,\n placeholder = \"Select\",\n open: openProp,\n onOpenChange,\n}: SelectProps) => {\n const isValueControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue);\n const value = isValueControlled ? (valueProp as string) : internalValue;\n\n const [labels, setLabels] = useState<Record<string, React.ReactNode>>({});\n const [nativeMeta, setNativeMeta] = useState<\n Record<string, { label: React.ReactNode; disabled?: boolean }>\n >({});\n const [nativeOrder, setNativeOrder] = useState<string[]>([]);\n\n const setValue = useCallback(\n (v: string) => {\n if (!isValueControlled) setInternalValue(v);\n onValueChange?.(v);\n },\n [isValueControlled, onValueChange],\n );\n\n const setLabel = useCallback((v: string, n: React.ReactNode) => {\n setLabels((p) => (p[v] === n ? p : { ...p, [v]: n }));\n }, []);\n\n const clearLabel = useCallback((v: string) => {\n setLabels((p) => {\n if (!(v in p)) return p;\n const n = { ...p };\n delete n[v];\n return n;\n });\n }, []);\n\n // labelFor keeps [] deps and reads labelsRef so selectitem effect deps stay stable;\n // valueCtx still lists `labels` so provider value updates and selectvalue re-renders\n const labelsRef = useRef(labels);\n labelsRef.current = labels;\n const labelFor = useCallback(\n (v: string) => labelsRef.current[v] as React.ReactNode | undefined,\n [],\n );\n\n const registerNativeItem = useCallback(\n (e: ItemRegistration) => {\n setLabel(e.value, e.label);\n setNativeMeta((p) => ({ ...p, [e.value]: { label: e.label, disabled: e.disabled } }));\n setNativeOrder((o) => (o.includes(e.value) ? o : [...o, e.value]));\n },\n [setLabel],\n );\n\n const unregisterNativeItem = useCallback(\n (v: string) => {\n setNativeMeta((p) => {\n if (!(v in p)) return p;\n const n = { ...p };\n delete n[v];\n return n;\n });\n setNativeOrder((o) => o.filter((x) => x !== v));\n clearLabel(v);\n },\n [clearLabel],\n );\n\n const valueCtx: ValueCtx = useMemo(\n () => ({\n native: nativeProp,\n value,\n setValue,\n disabled,\n setLabel,\n clearLabel,\n registerNativeItem,\n unregisterNativeItem,\n labelFor,\n placeholder,\n }),\n [\n nativeProp,\n value,\n setValue,\n disabled,\n labels,\n setLabel,\n clearLabel,\n registerNativeItem,\n unregisterNativeItem,\n labelFor,\n placeholder,\n ],\n );\n\n if (nativeProp) {\n return (\n <ValueContext.Provider value={valueCtx}>\n <div\n className={cn(\n \"group relative inline-block w-max min-w-0 max-w-full\",\n className,\n )}\n >\n <select\n id={idAttr}\n name={name}\n className={cn(\n \"peer\",\n \"border-primary/10 bg-background text-primary w-full min-w-0 max-w-full cursor-pointer appearance-none border pr-9 pl-3 outline-none\",\n \"h-10 min-h-10 text-sm font-medium\",\n \"rounded-full transition-[color,background-color,box-shadow,transform] duration-150\",\n \"focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"active:scale-[0.99]\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n value={value}\n disabled={disabled}\n onChange={(ev) => setValue(ev.target.value)}\n >\n <option value=\"\" disabled>\n {placeholder}\n </option>\n {nativeOrder.map((key) => {\n const m = nativeMeta[key];\n if (!m) return null;\n return (\n <option key={key} value={key} disabled={m.disabled}>\n {plainTextFromNode(m.label)}\n </option>\n );\n })}\n </select>\n <ChevronDown\n aria-hidden\n className=\"text-primary/50 pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 peer-disabled:opacity-50\"\n />\n </div>\n {children}\n </ValueContext.Provider>\n );\n }\n\n return (\n <ValueContext.Provider value={valueCtx}>\n <SelectOpenBridge open={openProp} onOpenChange={onOpenChange}>\n <div className={cn(\"inline-block min-w-0 max-w-full\", className)}>{children}</div>\n </SelectOpenBridge>\n </ValueContext.Provider>\n );\n};\n\nfunction SelectOpenBridge({\n children,\n open: controlled,\n onOpenChange,\n}: {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (o: boolean) => void;\n}) {\n const [inner, setInner] = useState(false);\n const isControlled = controlled !== undefined;\n const open = isControlled ? (controlled as boolean) : inner;\n const setOpen = useCallback(\n (o: boolean) => {\n if (!isControlled) setInner(o);\n onOpenChange?.(o);\n },\n [isControlled, onOpenChange],\n );\n const triggerRef = useRef<HTMLElement | null>(null);\n const ctx = useMemo(\n () => ({ open, setOpen, triggerRef }) satisfies OpenCtx,\n [open, setOpen],\n );\n return <OpenContext.Provider value={ctx}>{children}</OpenContext.Provider>;\n}\n\n// ----- mobile sheet -----\n\nconst SheetClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, type = \"button\", ...p }, ref) => (\n <button\n ref={ref}\n type={type}\n className={cn(\n \"z-100 flex size-12 shrink-0 cursor-pointer items-center justify-center rounded-full transition-all hover:bg-secondary-background active:scale-[0.96]\",\n className,\n )}\n {...p}\n >\n <X className=\"size-5.5\" />\n <span className=\"sr-only\">Close</span>\n </button>\n));\nSheetClose.displayName = \"SelectSheetClose\";\n\nexport type SelectMobileSheetOptions = {\n sheet?: boolean;\n title?: string;\n className?: string;\n contentClassName?: string;\n};\n\nfunction resolveSheetOpts(o?: SelectMobileSheetOptions) {\n return {\n sheet: o?.sheet ?? true,\n title: o?.title,\n panelClass: o?.className,\n bodyClass: o?.contentClassName,\n };\n}\n\ntype SheetPortalProps = React.HTMLAttributes<HTMLDivElement> & {\n open: boolean;\n isAnimating: boolean;\n slideEntrance: boolean;\n slideOffsetPx: number;\n sheetTitle?: string;\n sheetPanelClassName?: string;\n contentClassName?: string;\n onRequestClose: () => void;\n menuRef: React.RefObject<HTMLDivElement | null>;\n};\n\nfunction MobileSheetPortal({\n open,\n isAnimating,\n slideEntrance,\n slideOffsetPx,\n sheetTitle,\n sheetPanelClassName,\n contentClassName,\n onRequestClose,\n menuRef,\n children,\n className,\n style,\n ...rest\n}: SheetPortalProps) {\n const ease = open ? MOBILE_SHEET_IN : MOBILE_SHEET_OUT;\n const hiddenY = slideEntrance ? `translateY(${slideOffsetPx}px)` : \"translateY(100%)\";\n return createPortal(\n <div className=\"fixed inset-0 z-50 flex items-end justify-center p-0\">\n <div\n className={cn(\n \"fixed inset-0 bg-black/40 dark:bg-primary/4\",\n isAnimating ? \"opacity-100\" : \"opacity-0\",\n )}\n style={{\n transition: `opacity ${MOBILE_SHEET_MS}ms ${ease}`,\n }}\n onClick={onRequestClose}\n />\n <div\n {...rest}\n ref={menuRef}\n className={cn(\n \"bg-background border-primary/10 relative z-10 flex w-full max-h-[min(90dvh,calc(100dvh-env(safe-area-inset-bottom,0px)))] flex-col overflow-hidden shadow-2xl outline-none\",\n \"rounded-t-2xl rounded-b-none border-x-0 border-b-0 border-t\",\n sheetPanelClassName,\n className,\n )}\n style={{\n transform: isAnimating ? \"translateY(0)\" : hiddenY,\n opacity: isAnimating ? 1 : 0,\n transition: `transform ${MOBILE_SHEET_MS}ms ${ease}, opacity ${MOBILE_SHEET_MS}ms ${ease}`,\n ...style,\n }}\n >\n <div\n className={cn(\n \"flex w-full shrink-0 items-center py-2 pl-4 pr-2\",\n sheetTitle ? \"justify-between gap-3\" : \"justify-end\",\n )}\n >\n {sheetTitle ? (\n <p className=\"text-foreground min-w-0 flex-1 truncate text-base font-semibold\">\n {sheetTitle}\n </p>\n ) : null}\n <SheetClose\n onClick={(e) => {\n e.stopPropagation();\n onRequestClose();\n }}\n />\n </div>\n <div\n className={cn(\n \"min-h-0 flex-1 overflow-y-auto pb-[calc(5rem+env(safe-area-inset-bottom,0px))]\",\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n\n// ----- list helpers -----\n\nfunction listFocusableItems(host: HTMLElement): HTMLElement[] {\n return Array.from(\n host.querySelectorAll<HTMLElement>(\n '[data-select-item=\"true\"]:not([aria-disabled=\"true\"])',\n ),\n );\n}\n\n// ----- content -----\n\nexport type SelectContentProps = React.HTMLAttributes<HTMLDivElement> & {\n side?: Side;\n align?: Align;\n offset?: number;\n duration?: number;\n viewportPadding?: number;\n closeOnEscape?: boolean;\n minWidth?: number | \"trigger\";\n loop?: boolean;\n /** Type characters to jump to matching options (default true). */\n typeahead?: boolean;\n mobileOptions?: SelectMobileSheetOptions;\n slideEntrance?: boolean;\n slideEntranceOffsetPx?: number;\n};\n\nexport const SelectContent: React.FC<SelectContentProps> = ({\n children,\n side = \"bottom\",\n align = \"start\",\n offset = 10,\n duration = 80,\n viewportPadding = 8,\n closeOnEscape = true,\n minWidth = \"trigger\",\n loop = true,\n typeahead = true,\n mobileOptions,\n slideEntrance = true,\n slideEntranceOffsetPx: slidePxProp,\n className,\n style,\n ...rest\n}) => {\n const narrow = useNarrowSheetViewport(MOBILE_SHEET_MAX_PX + 1);\n const { open, setOpen, triggerRef } = useSelectOpen();\n const [show, setShow] = useState(false);\n const [anim, setAnim] = useState(false);\n const [pos, setPos] = useState<Pos>({ top: -9999, left: -9999, side });\n const [triggerW, setTriggerW] = useState(0);\n const menuRef = useRef<HTMLDivElement>(null);\n const typeaheadStateRef = useRef(createTypeaheadState());\n const sheet = useMemo(() => resolveSheetOpts(mobileOptions), [mobileOptions]);\n const slidePx = slidePxProp ?? SLIDE_DEFAULT_PX;\n const closeMs = narrow && sheet.sheet ? MOBILE_SHEET_MS : duration;\n const close = useCallback(() => setOpen(false), [setOpen]);\n const [portalReady, setPortalReady] = useState(false);\n useLayoutEffect(() => {\n setPortalReady(true);\n }, []);\n\n useEffect(() => {\n if (open) {\n setShow(true);\n } else {\n setAnim(false);\n const t = setTimeout(() => setShow(false), closeMs);\n return () => clearTimeout(t);\n }\n }, [open, closeMs]);\n\n useEffect(() => {\n if (!show || !open) return;\n let r2 = 0;\n const r1 = requestAnimationFrame(() => {\n r2 = requestAnimationFrame(() => setAnim(true));\n });\n return () => {\n cancelAnimationFrame(r1);\n if (r2) cancelAnimationFrame(r2);\n };\n }, [show, open]);\n\n useLayoutEffect(() => {\n if (!triggerRef.current || !menuRef.current) return;\n if (!open && !show) return;\n const run = () => {\n if (!triggerRef.current || !menuRef.current) return;\n setTriggerW(triggerRef.current.getBoundingClientRect().width);\n setPos(\n computeMenuPosition(\n triggerRef.current,\n menuRef.current,\n side,\n align,\n offset,\n viewportPadding,\n ),\n );\n };\n run();\n window.addEventListener(\"resize\", run);\n window.addEventListener(\"scroll\", run, true);\n return () => {\n window.removeEventListener(\"resize\", run);\n window.removeEventListener(\"scroll\", run, true);\n };\n }, [open, show, side, align, offset, viewportPadding, triggerRef]);\n\n useEffect(() => {\n if (anim && menuRef.current) menuRef.current.focus();\n }, [anim]);\n\n useEffect(() => {\n if (!open) resetTypeahead(typeaheadStateRef.current);\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n const onDoc = (e: MouseEvent) => {\n const t = e.target as Node;\n if (menuRef.current?.contains(t) || triggerRef.current?.contains(t)) return;\n setOpen(false);\n };\n document.addEventListener(\"mousedown\", onDoc);\n return () => document.removeEventListener(\"mousedown\", onDoc);\n }, [open, setOpen, triggerRef]);\n\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => {\n const m = menuRef.current;\n if (!m) return;\n const active = document.activeElement as HTMLElement | null;\n if (active && !m.contains(active) && !triggerRef.current?.contains(active))\n return;\n const items = listFocusableItems(m);\n const i = items.indexOf(active!);\n switch (e.key) {\n case \"Escape\":\n if (closeOnEscape) {\n e.preventDefault();\n setOpen(false);\n triggerRef.current?.focus();\n }\n break;\n case \"ArrowDown\":\n e.preventDefault();\n if (!items.length) break;\n if (i === -1 || (i === items.length - 1 && loop)) items[0]?.focus();\n else if (i < items.length - 1) items[i + 1]?.focus();\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (!items.length) break;\n if (i <= 0 && loop) items[items.length - 1]?.focus();\n else if (i > 0) items[i - 1]?.focus();\n break;\n case \"Home\":\n e.preventDefault();\n items[0]?.focus();\n break;\n case \"End\":\n e.preventDefault();\n items[items.length - 1]?.focus();\n break;\n case \"Tab\":\n setOpen(false);\n break;\n default:\n handleTypeaheadKeyDown(e, items, typeaheadStateRef.current, {\n enabled: typeahead,\n });\n break;\n }\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [open, closeOnEscape, loop, typeahead, setOpen, triggerRef]);\n\n const lockBodyScroll = (open || show) && narrow && sheet.sheet;\n useEffect(() => {\n if (!lockBodyScroll) return;\n const prev = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = prev;\n };\n }, [lockBodyScroll]);\n\n if (narrow && sheet.sheet) {\n if (!open && !show) {\n const registrationSlot = (\n <div className=\"sr-only pointer-events-none\" aria-hidden>\n {children}\n </div>\n );\n if (!portalReady) return registrationSlot;\n return createPortal(registrationSlot, document.body);\n }\n return (\n <MobileSheetPortal\n {...rest}\n open={open}\n isAnimating={anim}\n slideEntrance={slideEntrance}\n slideOffsetPx={slidePx}\n sheetTitle={sheet.title}\n sheetPanelClassName={sheet.panelClass}\n contentClassName={sheet.bodyClass}\n onRequestClose={close}\n menuRef={menuRef}\n className={className}\n style={style}\n role=\"listbox\"\n tabIndex={-1}\n aria-label={sheet.title}\n >\n {children}\n </MobileSheetPortal>\n );\n }\n\n const resolvedMin =\n minWidth === \"trigger\" ? (triggerW > 0 ? triggerW : undefined) : minWidth;\n\n const listbox = (\n <div\n {...rest}\n ref={menuRef}\n role=\"listbox\"\n tabIndex={-1}\n aria-hidden={!open}\n className={cn(\n \"bg-background border-primary/10 absolute z-50 rounded-xl border py-1.5 shadow-xl outline-none\",\n className,\n pos.maxHeight != null ? \"overflow-y-auto overscroll-contain\" : \"overflow-hidden\",\n )}\n style={{\n position: \"absolute\",\n top: pos.top,\n left: pos.left,\n ...(typeof resolvedMin === \"number\" ? { minWidth: resolvedMin } : {}),\n maxHeight: pos.maxHeight,\n transformOrigin: CONTENT_ORIGIN[pos.side],\n transform: anim ? \"none\" : CONTENT_HIDDEN[pos.side],\n opacity: anim ? 1 : 0,\n pointerEvents: !open ? \"none\" : \"auto\",\n transitionProperty: \"opacity, transform\",\n transitionDuration: `${duration}ms`,\n transitionTimingFunction: anim ? PANEL_OPEN_EASING : PANEL_CLOSE_EASING,\n ...style,\n }}\n >\n {children}\n </div>\n );\n\n if (!portalReady) {\n return listbox;\n }\n return createPortal(listbox, document.body);\n};\n\n// ----- trigger + chevron -----\n\nexport type SelectTriggerProps = Omit<ButtonProps, \"type\"> & { asChild?: boolean };\n\nfunction mergeRef(\n store: React.RefObject<HTMLElement | null>,\n node: HTMLElement | null,\n fromChild?: React.Ref<HTMLElement> | null,\n) {\n store.current = node;\n if (typeof fromChild === \"function\") fromChild(node);\n else if (fromChild && typeof fromChild === \"object\")\n (fromChild as React.MutableRefObject<HTMLElement | null>).current = node;\n}\n\nexport const SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n function SelectTrigger(\n { children, asChild, className, onClick, disabled, ...buttonProps },\n ref,\n ) {\n const { open, setOpen, triggerRef } = useSelectOpen();\n const triggerVariant =\n (buttonProps as { variant?: ButtonProps[\"variant\"] }).variant ?? \"secondary\";\n\n const onPress = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n (onClick as React.MouseEventHandler<HTMLButtonElement> | undefined)?.(\n e as React.MouseEvent<HTMLButtonElement>,\n );\n e.stopPropagation();\n if (disabled) return;\n setOpen(!open);\n },\n [onClick, disabled, open, setOpen],\n );\n\n const setBtnRef = useCallback(\n (el: HTMLButtonElement | null) => {\n mergeRef(triggerRef, el, null);\n if (typeof ref === \"function\") ref(el);\n else if (ref) (ref as React.MutableRefObject<HTMLButtonElement | null>).current = el;\n },\n [ref, triggerRef],\n );\n\n if (asChild && React.isValidElement(children)) {\n const ch = children as React.ReactElement<{\n onClick?: React.MouseEventHandler<HTMLElement>;\n className?: string;\n }>;\n const childRef = (ch as { ref?: React.Ref<HTMLElement> | null }).ref;\n return React.cloneElement(ch, {\n ref: (n: HTMLElement | null) => mergeRef(triggerRef, n, childRef),\n className: cn(\"group w-fit max-w-full min-w-0 justify-start gap-2\", ch.props.className),\n onClick: (e: React.MouseEvent<HTMLElement>) => {\n ch.props.onClick?.(e);\n onPress(e);\n },\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-variant\": triggerVariant,\n ...((disabled !== undefined\n ? { \"aria-disabled\": disabled }\n : {}) as Record<string, unknown>),\n } as Partial<typeof ch.props>);\n }\n\n return (\n <Button\n ref={setBtnRef}\n type=\"button\"\n {...buttonProps}\n disabled={disabled}\n className={cn(\"group w-fit max-w-full min-w-0 justify-start gap-2\", className)}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n data-state={open ? \"open\" : \"closed\"}\n data-variant={triggerVariant}\n onClick={onPress as React.MouseEventHandler<HTMLButtonElement>}\n >\n {children}\n </Button>\n );\n },\n);\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport const SelectChevron: React.FC<React.ComponentProps<typeof ChevronDown>> = ({\n className,\n ...props\n}) => {\n const { open } = useSelectOpen();\n return (\n <ChevronDown\n aria-hidden\n className={cn(\"size-4 shrink-0\", open && \"rotate-180\", className)}\n {...props}\n />\n );\n};\n\n// ----- value display -----\n\nexport const SelectValue: React.FC<{\n placeholder?: string;\n className?: string;\n}> = ({ placeholder, className }) => {\n const c = useSelectValue();\n if (c.native) return null;\n const ph = placeholder ?? c.placeholder;\n const text = c.value ? c.labelFor(c.value) : undefined;\n const isEmpty = !c.value;\n // trigger sets `data-variant` so we can override the button’s full-strength `text-*`\n return (\n <span\n data-slot=\"select-value\"\n className={cn(\n \"min-w-0 flex-1 truncate text-left\",\n isEmpty &&\n cn(\n \"group-data-[variant=primary]:!text-background/50\",\n \"group-data-[variant=secondary]:!text-primary/50\",\n \"group-data-[variant=destructive]:!text-red-500/50\",\n \"group-data-[variant=success]:!text-green-500/50\",\n ),\n className,\n )}\n >\n {text != null ? text : ph}\n </span>\n );\n};\n\n// ----- items -----\n\nexport type SelectItemProps = React.HTMLAttributes<HTMLDivElement> & {\n value: string;\n children: React.ReactNode;\n disabled?: boolean;\n shortcut?: string;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n};\n\nconst SelectItemRow: React.FC<SelectItemProps> = ({\n value: v,\n children,\n disabled,\n shortcut,\n className,\n onClick: userClick,\n ...divProps\n}) => {\n const c = useSelectValue();\n const { setOpen } = useSelectOpen();\n const selected = c.value === v;\n\n const click: React.MouseEventHandler<HTMLDivElement> = (e) => {\n if (disabled) return;\n c.setValue(v);\n userClick?.(e);\n setOpen(false);\n };\n\n const keyDown: React.KeyboardEventHandler<HTMLDivElement> = (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n click(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n };\n\n return (\n <div\n {...divProps}\n data-select-item=\"true\"\n role=\"option\"\n aria-selected={selected}\n tabIndex={disabled ? undefined : -1}\n aria-disabled={disabled}\n onClick={click}\n onKeyDown={keyDown}\n className={cn(\n \"relative mx-1.5 flex items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors duration-0 outline-none select-none\",\n SHEET_MENU_TEXT,\n !disabled &&\n \"text-foreground hover:bg-primary/8 focus-visible:bg-primary/8 dark:hover:bg-primary/4 dark:focus-visible:bg-primary/4\",\n disabled &&\n \"lg:cursor-not-allowed text-foreground/45 dark:text-foreground/50\",\n !disabled && \"cursor-pointer\",\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\" data-menu-label>\n {children}\n </span>\n {shortcut ? (\n <span\n className={cn(\n \"shrink-0 text-xs tracking-widest opacity-40\",\n SHEET_MENU_SHORTCUT,\n )}\n >\n {shortcut}\n </span>\n ) : null}\n <span className=\"flex size-4 shrink-0 items-center justify-center\" aria-hidden>\n {selected ? <Check className=\"size-3.5\" strokeWidth={2.5} /> : null}\n </span>\n </div>\n );\n};\n\nexport const SelectItem: React.FC<SelectItemProps> = ({\n value: v,\n children,\n disabled,\n ...rest\n}) => {\n const {\n native,\n setLabel,\n clearLabel,\n registerNativeItem,\n unregisterNativeItem,\n } = useSelectValue();\n useLayoutEffect(() => {\n setLabel(v, children);\n if (native) registerNativeItem({ value: v, label: children, disabled });\n return () => {\n clearLabel(v);\n if (native) unregisterNativeItem(v);\n };\n }, [\n v,\n children,\n disabled,\n native,\n setLabel,\n clearLabel,\n registerNativeItem,\n unregisterNativeItem,\n ]);\n\n if (native) return null;\n return (\n <SelectItemRow value={v} disabled={disabled} {...rest}>\n {children}\n </SelectItemRow>\n );\n};\nSelectItem.displayName = \"SelectItem\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../utils/cx.ts","../../../../components/base/tooltip/tooltip.tsx","../../../../components/base/avatar/base-components/avatar-online-indicator.tsx","../../../../components/base/avatar/base-components/verified-tick.tsx","../../../../components/base/avatar/base-components/avatar-count.tsx","../../../../components/base/avatar/avatar.tsx","../../../../components/base/input/hint-text.tsx","../../../../components/base/input/label.tsx","../../../../components/base/input/input.tsx","../../../../utils/is-react-component.ts","../../../../components/base/select/popover.tsx","../../../../components/base/select/select-shared.tsx","../../../../hooks/use-resize-observer.ts","../../../../components/base/select/combobox.tsx","../../../../components/base/checkbox/checkbox.tsx","../../../../components/base/select/select-item.tsx","../../../../components/base/select/select.tsx"],"names":["AriaTooltipTrigger","AriaTooltip","AriaOverlayArrow","AriaButton","jsx","jsxs","sizes","User01","AriaText","AriaLabel","HelpCircle","AriaPopover","createContext","useContext","AriaGroup","SearchLg","AriaInput","useState","AriaComboBox","AriaListBox","useRef","AriaListBoxItem","isValidElement","Check","AriaSelectValue","Fragment","ChevronDown","AriaSelect"],"mappings":"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","file":"select.js","sourcesContent":["import { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: {\n text: [\"display-xs\", \"display-sm\", \"display-md\", \"display-lg\", \"display-xl\", \"display-2xl\"],\n },\n },\n});\n\n/**\n * This function is a wrapper around the twMerge function.\n * It is used to merge the classes inside style objects.\n */\nexport const cx = twMerge;\n\n/**\n * This function does nothing besides helping us to be able to\n * sort the classes inside style objects which is not supported\n * by the Tailwind IntelliSense by default.\n */\nexport function sortCx<T extends Record<string, string | number | Record<string, string | number | Record<string, string | number>>>>(classes: T): T {\n return classes;\n}\n","\"use client\";\n\n/** Figma: Tooltip (1052:485) */\n\nimport type { ReactNode } from \"react\";\nimport type {\n ButtonProps as AriaButtonProps,\n TooltipProps as AriaTooltipProps,\n TooltipTriggerComponentProps as AriaTooltipTriggerComponentProps,\n} from \"react-aria-components\";\nimport { Button as AriaButton, OverlayArrow as AriaOverlayArrow, Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\ninterface TooltipProps extends AriaTooltipTriggerComponentProps, Omit<AriaTooltipProps, \"children\"> {\n /**\n * The title of the tooltip.\n */\n title: ReactNode;\n /**\n * The description of the tooltip.\n */\n description?: ReactNode;\n /**\n * Whether to show the arrow on the tooltip.\n *\n * @default false\n */\n arrow?: boolean;\n /**\n * Delay in milliseconds before the tooltip is shown on first hover.\n *\n * @default 100\n */\n delay?: number;\n}\n\nexport const Tooltip = ({\n title,\n description,\n children,\n arrow = false,\n delay = 100,\n closeDelay = 0,\n trigger,\n isDisabled,\n isOpen,\n defaultOpen,\n offset = 6,\n crossOffset,\n placement = \"top\",\n onOpenChange,\n ...tooltipProps\n}: TooltipProps) => {\n const isTopOrBottomLeft = [\"top left\", \"top end\", \"bottom left\", \"bottom end\"].includes(placement);\n const isTopOrBottomRight = [\"top right\", \"top start\", \"bottom right\", \"bottom start\"].includes(placement);\n // Set negative cross offset for left and right placement to visually balance the tooltip.\n const calculatedCrossOffset = isTopOrBottomLeft ? -12 : isTopOrBottomRight ? 12 : 0;\n\n return (\n <AriaTooltipTrigger {...{ trigger, delay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange }}>\n {children}\n\n <AriaTooltip\n {...tooltipProps}\n offset={offset}\n placement={placement}\n crossOffset={crossOffset ?? calculatedCrossOffset}\n className={({ isEntering, isExiting }) => cx(isEntering && \"ease-out animate-in\", isExiting && \"ease-in animate-out\")}\n >\n {({ isEntering, isExiting }) => (\n <div\n className={cx(\n \"z-50 flex max-w-xs origin-(--trigger-anchor-point) flex-col items-start gap-1 rounded-lg bg-primary-solid px-3 shadow-lg will-change-transform\",\n description ? \"py-3\" : \"py-2\",\n\n isEntering &&\n \"ease-out animate-in fade-in zoom-in-95 in-placement-left:slide-in-from-right-0.5 in-placement-right:slide-in-from-left-0.5 in-placement-top:slide-in-from-bottom-0.5 in-placement-bottom:slide-in-from-top-0.5\",\n isExiting &&\n \"ease-in animate-out fade-out zoom-out-95 in-placement-left:slide-out-to-right-0.5 in-placement-right:slide-out-to-left-0.5 in-placement-top:slide-out-to-bottom-0.5 in-placement-bottom:slide-out-to-top-0.5\",\n )}\n >\n <span className=\"text-xs font-semibold text-white\">{title}</span>\n\n {description && <span className=\"text-xs font-medium text-tooltip-supporting-text\">{description}</span>}\n\n {arrow && (\n <AriaOverlayArrow>\n <svg\n viewBox=\"0 0 100 100\"\n className=\"size-2.5 fill-bg-primary-solid in-placement-left:-rotate-90 in-placement-right:rotate-90 in-placement-top:rotate-0 in-placement-bottom:rotate-180\"\n >\n <path d=\"M0,0 L35.858,35.858 Q50,50 64.142,35.858 L100,0 Z\" />\n </svg>\n </AriaOverlayArrow>\n )}\n </div>\n )}\n </AriaTooltip>\n </AriaTooltipTrigger>\n );\n};\n\ninterface TooltipTriggerProps extends AriaButtonProps {}\n\nexport const TooltipTrigger = ({ children, className, ...buttonProps }: TooltipTriggerProps) => {\n return (\n <AriaButton {...buttonProps} className={(values) => cx(\"h-max w-max outline-hidden\", typeof className === \"function\" ? className(values) : className)}>\n {children}\n </AriaButton>\n );\n};\n","\"use client\";\n\nimport { cx } from \"@/utils/cx\";\n\nconst sizes = {\n xs: \"size-1.5\",\n sm: \"size-2\",\n md: \"size-2.5\",\n lg: \"size-3\",\n xl: \"size-3.5\",\n \"2xl\": \"size-4\",\n \"3xl\": \"size-4.5\",\n \"4xl\": \"size-5\",\n};\n\ninterface AvatarOnlineIndicatorProps {\n size: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\";\n status: \"online\" | \"offline\";\n className?: string;\n}\n\nexport const AvatarOnlineIndicator = ({ size, status, className }: AvatarOnlineIndicatorProps) => (\n <span\n className={cx(\n \"absolute right-0 bottom-0 flex justify-center rounded-full ring-[1.5px] ring-bg-primary\",\n status === \"online\" ? \"bg-fg-success-secondary\" : \"bg-utility-neutral-300\",\n sizes[size],\n className,\n )}\n style={{\n backgroundImage:\n \"radial-gradient(43.75% 43.75% at 50% 28.75%, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.00) 100%), radial-gradient(50% 50% at 50% 50%, rgba(255, 255, 255, 0.00) 74.66%, rgba(255, 255, 255, 0.18) 100%), radial-gradient(75% 75% at 50% 0%, rgba(255, 255, 255, 0.00) 0%, rgba(255, 255, 255, 0.00) 50%, rgba(255, 255, 255, 0.08) 99%, rgba(255, 255, 255, 0.00) 100%)\",\n }}\n >\n {/* Reflection */}\n <svg viewBox=\"0 0 7.2 2.85\" fill=\"none\" className=\"mt-[10%] h-[20%] w-[60%]\">\n <path\n d=\"M7.2 1.83107C7.2 2.84235 5.58823 2.19729 3.6 2.19729C1.61177 2.19729 0 2.84235 0 1.83107C0 0.8198 1.61177 0 3.6 0C5.58823 0 7.2 0.8198 7.2 1.83107Z\"\n fill=\"url(#reflection-gradient)\"\n fillOpacity=\"0.4\"\n />\n <defs>\n <linearGradient id=\"reflection-gradient\" x1=\"3.6\" y1=\"0\" x2=\"3.6\" y2=\"2.4\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0.1\" />\n </linearGradient>\n </defs>\n </svg>\n </span>\n);\n","\"use client\";\n\nimport { cx } from \"@/utils/cx\";\n\nconst sizes = {\n xs: \"size-2.5\",\n sm: \"size-3\",\n md: \"size-3.5\",\n lg: \"size-4\",\n xl: \"size-4.5\",\n \"2xl\": \"size-5\",\n \"3xl\": \"size-6\",\n \"4xl\": \"size-8\",\n};\n\ninterface VerifiedTickProps {\n size: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\";\n className?: string;\n}\n\nexport const VerifiedTick = ({ size, className }: VerifiedTickProps) => (\n <svg className={cx(\"z-10 text-utility-blue-500\", sizes[size], className)} viewBox=\"0 0 10 10\" fill=\"none\">\n <path\n d=\"M7.72237 1.77098C7.81734 2.00068 7.99965 2.18326 8.2292 2.27858L9.03413 2.61199C9.26384 2.70714 9.44635 2.88965 9.5415 3.11936C9.63665 3.34908 9.63665 3.60718 9.5415 3.83689L9.20833 4.64125C9.11313 4.87106 9.113 5.12943 9.20863 5.35913L9.54122 6.16325C9.58839 6.27702 9.61268 6.39897 9.6127 6.52214C9.61272 6.6453 9.58847 6.76726 9.54134 6.88105C9.4942 6.99484 9.42511 7.09823 9.33801 7.18531C9.2509 7.27238 9.14749 7.34144 9.03369 7.38854L8.22934 7.72171C7.99964 7.81669 7.81706 7.99899 7.72174 8.22855L7.38833 9.03348C7.29318 9.26319 7.11067 9.4457 6.88096 9.54085C6.65124 9.636 6.39314 9.636 6.16343 9.54085L5.35907 9.20767C5.12935 9.11276 4.87134 9.11295 4.64177 9.20821L3.83684 9.54115C3.60725 9.63608 3.34937 9.636 3.11984 9.54092C2.89032 9.44585 2.70791 9.26356 2.6127 9.03409L2.27918 8.22892C2.18421 7.99923 2.0019 7.81665 1.77235 7.72133L0.967421 7.38792C0.737807 7.29281 0.555355 7.11041 0.460169 6.88083C0.364983 6.65125 0.364854 6.39327 0.45981 6.16359L0.792984 5.35924C0.8879 5.12952 0.887707 4.87151 0.792445 4.64193L0.459749 3.83642C0.41258 3.72265 0.388291 3.60069 0.388272 3.47753C0.388252 3.35436 0.412501 3.2324 0.459634 3.11861C0.506767 3.00482 0.57586 2.90144 0.662965 2.81436C0.75007 2.72728 0.853479 2.65822 0.967283 2.61113L1.77164 2.27795C2.00113 2.18306 2.1836 2.00099 2.27899 1.7717L2.6124 0.966768C2.70755 0.737054 2.89006 0.554547 3.11978 0.459397C3.34949 0.364246 3.60759 0.364246 3.83731 0.459397L4.64166 0.792571C4.87138 0.887487 5.12939 0.887293 5.35897 0.792031L6.16424 0.459913C6.39392 0.364816 6.65197 0.364836 6.88164 0.459968C7.11131 0.555099 7.29379 0.737554 7.38895 0.967208L7.72247 1.77238L7.72237 1.77098Z\"\n className=\"fill-current\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.95829 3.68932C7.02509 3.58439 7.04747 3.45723 7.02051 3.3358C6.99356 3.21437 6.91946 3.10862 6.81454 3.04182C6.70961 2.97502 6.58245 2.95264 6.46102 2.97959C6.33959 3.00655 6.23384 3.08064 6.16704 3.18557L4.33141 6.06995L3.49141 5.01995C3.41375 4.92281 3.30069 4.8605 3.17709 4.84673C3.05349 4.83296 2.92949 4.86885 2.83235 4.94651C2.73522 5.02417 2.67291 5.13723 2.65914 5.26083C2.64536 5.38443 2.68125 5.50843 2.75891 5.60557L4.00891 7.16807C4.0555 7.22638 4.11533 7.27271 4.18344 7.30323C4.25154 7.33375 4.32595 7.34757 4.40047 7.34353C4.47499 7.3395 4.54747 7.31773 4.61188 7.28004C4.67629 7.24234 4.73077 7.18981 4.77079 7.12682L6.95829 3.68932Z\"\n fill=\"white\"\n />\n </svg>\n);\n","\"use client\";\n\nimport { cx } from \"@/utils/cx\";\n\ninterface AvatarCountProps {\n count: number;\n className?: string;\n}\n\nexport const AvatarCount = ({ count, className }: AvatarCountProps) => (\n <div className={cx(\"absolute right-0 bottom-0 p-px\", className)}>\n <div className=\"flex size-3.5 items-center justify-center rounded-full bg-fg-error-primary text-center text-[10px] leading-[13px] font-bold text-white\">\n {count}\n </div>\n </div>\n);\n","\"use client\";\n\n/** Figma: Avatar (18:1350) */\n\nimport { type FC, type ReactNode, useState } from \"react\";\nimport { UserIcon as User01 } from \"@phosphor-icons/react/dist/csr/User\";\nimport { cx } from \"@/utils/cx\";\nimport { AvatarOnlineIndicator, VerifiedTick } from \"./base-components\";\nimport { AvatarCount } from \"./base-components/avatar-count\";\n\nexport interface AvatarProps {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n className?: string;\n /**\n * The class name for the main child of the avatar.\n */\n contentClassName?: string;\n src?: string | null;\n alt?: string;\n /**\n * Display an inner contrast border around the avatar image.\n */\n contrastBorder?: boolean;\n /**\n * Whether the avatar should be rounded.\n * @default true\n */\n rounded?: boolean;\n /**\n * Display an outer border around the avatar.\n */\n border?: boolean;\n /**\n * Display a badge (i.e. company logo).\n */\n badge?: ReactNode;\n /**\n * Display a status indicator.\n */\n status?: \"online\" | \"offline\";\n /**\n * Display a verified tick icon.\n *\n * @default false\n */\n verified?: boolean;\n /**\n * Display a count badge.\n */\n count?: number;\n /**\n * The initials of the user to display if no image is available.\n */\n initials?: string;\n /**\n * An icon to display if no image is available.\n */\n placeholderIcon?: FC<{ className?: string }>;\n /**\n * A placeholder to display if no image is available.\n */\n placeholder?: ReactNode;\n\n /**\n * Whether the avatar should show a focus ring when the parent group is in focus.\n * For example, when the avatar is wrapped inside a link.\n *\n * @default false\n */\n focusable?: boolean;\n}\n\nconst styles = {\n xs: { root: \"size-6\", rootWithBorder: \"p-px\", initials: \"text-xs font-semibold\", icon: \"size-4\" },\n sm: { root: \"size-8\", rootWithBorder: \"p-px\", initials: \"text-sm font-semibold\", icon: \"size-5\" },\n md: { root: \"size-10\", rootWithBorder: \"p-px\", initials: \"text-md font-semibold\", icon: \"size-6\" },\n lg: { root: \"size-12\", rootWithBorder: \"p-[1.5px]\", initials: \"text-lg font-semibold\", icon: \"size-7\" },\n xl: { root: \"size-14\", rootWithBorder: \"p-0.5\", initials: \"text-xl font-semibold\", icon: \"size-8\" },\n \"2xl\": { root: \"size-16\", rootWithBorder: \"p-0.5\", initials: \"text-display-xs font-semibold\", icon: \"size-8\" },\n};\n\nexport const Avatar = ({\n size = \"md\",\n src,\n alt,\n initials,\n placeholder,\n placeholderIcon: PlaceholderIcon,\n border,\n badge,\n status,\n verified,\n count,\n focusable = false,\n rounded = true,\n className,\n contentClassName,\n}: AvatarProps) => {\n const [isFailed, setIsFailed] = useState(false);\n\n const canShowImage = src && !isFailed;\n\n const renderMainContent = () => {\n if (canShowImage) {\n return <img data-avatar-img className=\"size-full object-cover\" src={src} alt={alt} onError={() => setIsFailed(true)} />;\n }\n\n if (initials) {\n return <span className={cx(\"text-quaternary\", styles[size].initials)}>{initials}</span>;\n }\n\n if (PlaceholderIcon) {\n return <PlaceholderIcon className={cx(\"text-fg-quaternary\", styles[size].icon)} />;\n }\n\n return placeholder || <User01 className={cx(\"text-fg-quaternary\", styles[size].icon)} />;\n };\n\n const renderBadgeContent = () => {\n if (status) {\n return <AvatarOnlineIndicator status={status} size={size} />;\n }\n\n if (verified) {\n return <VerifiedTick size={size} className={cx(\"absolute right-0 bottom-0\", size === \"xs\" && \"-right-px -bottom-px\")} />;\n }\n\n if (count) {\n return <AvatarCount count={count} />;\n }\n\n return badge;\n };\n\n return (\n <div\n data-avatar\n className={cx(\n \"relative inline-flex shrink-0 rounded-[7px]\",\n rounded && \"rounded-full\",\n // Focus styles\n focusable &&\n \"outline-none group-focus-visible:[box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]\",\n border && \"ring-1 ring-secondary_alt\",\n border && styles[size].rootWithBorder,\n styles[size].root,\n className,\n )}\n >\n <div\n className={cx(\n \"relative inline-flex size-full shrink-0 items-center justify-center overflow-hidden rounded-md bg-tertiary outline-[0.5px] -outline-offset-[0.5px] outline-black/16 before:inset-[0.5px]\",\n rounded && \"rounded-full\",\n canShowImage &&\n size !== \"xs\" &&\n \"before:absolute before:inset-0 before:rounded-[inherit] before:border before:border-white/32 before:mask-[linear-gradient(to_bottom,black_0%,transparent_25%,transparent_75%,black_100%)]\",\n contentClassName,\n )}\n >\n {renderMainContent()}\n </div>\n {renderBadgeContent()}\n </div>\n );\n};\n","\"use client\";\n\nimport type { ReactNode, Ref } from \"react\";\nimport type { TextProps as AriaTextProps } from \"react-aria-components\";\nimport { Text as AriaText } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\ninterface HintTextProps extends AriaTextProps {\n /** Indicates that the hint text is an error message. */\n isInvalid?: boolean;\n ref?: Ref<HTMLElement>;\n size?: \"sm\" | \"md\";\n children: ReactNode;\n}\n\nexport const HintText = ({ isInvalid, className, size = \"md\", ...props }: HintTextProps) => {\n return (\n <AriaText\n {...props}\n slot={isInvalid ? \"errorMessage\" : \"description\"}\n className={cx(\n \"text-sm text-tertiary\",\n\n // Size\n size === \"sm\" && \"text-xs\",\n \"in-data-[input-size=sm]:text-xs\",\n\n // Invalid state\n isInvalid && \"text-error-primary\",\n \"group-invalid:text-error-primary\",\n\n className,\n )}\n />\n );\n};\n\nHintText.displayName = \"HintText\";\n","\"use client\";\n\nimport type { ReactNode, Ref } from \"react\";\nimport { QuestionIcon as HelpCircle } from \"@phosphor-icons/react/dist/csr/Question\";\nimport type { LabelProps as AriaLabelProps } from \"react-aria-components\";\nimport { Label as AriaLabel } from \"react-aria-components\";\nimport { Tooltip, TooltipTrigger } from \"@/components/base/tooltip/tooltip\";\nimport { cx } from \"@/utils/cx\";\n\ninterface LabelProps extends AriaLabelProps {\n children: ReactNode;\n isInvalid?: boolean;\n isRequired?: boolean;\n tooltip?: string;\n tooltipDescription?: string;\n ref?: Ref<HTMLLabelElement>;\n}\n\nexport const Label = ({ isInvalid, isRequired, tooltip, tooltipDescription, className, ...props }: LabelProps) => {\n return (\n <AriaLabel\n // Used for conditionally hiding/showing the label element via CSS:\n // <Input label=\"Visible only on mobile\" className=\"lg:**:data-label:hidden\" />\n // or\n // <Input label=\"Visible only on mobile\" className=\"lg:label:hidden\" />\n data-label=\"true\"\n {...props}\n className={cx(\"flex cursor-default items-center gap-0.5 text-sm font-medium text-secondary\", className)}\n >\n {props.children}\n\n <span\n className={cx(\n \"hidden text-brand-tertiary\",\n isRequired && \"block\",\n typeof isRequired === \"undefined\" && \"group-required:block\",\n\n isInvalid && \"text-error-primary\",\n typeof isInvalid === \"undefined\" && \"group-invalid:text-error-primary\",\n )}\n >\n *\n </span>\n\n {tooltip && (\n <Tooltip title={tooltip} description={tooltipDescription} placement=\"top\">\n <TooltipTrigger\n // `TooltipTrigger` inherits the disabled state from the parent form field\n // but we don't that. We want the tooltip be enabled even if the parent\n // field is disabled.\n isDisabled={false}\n className=\"cursor-pointer text-fg-quaternary transition duration-200 hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover\"\n >\n <HelpCircle className=\"size-4\" />\n </TooltipTrigger>\n </Tooltip>\n )}\n </AriaLabel>\n );\n};\n\nLabel.displayName = \"Label\";\n","\"use client\";\n\nimport { type ComponentType, type HTMLAttributes, type ReactNode, type Ref, createContext, useContext, useState } from \"react\";\nimport { EyeIcon as Eye } from \"@phosphor-icons/react/dist/csr/Eye\";\nimport { EyeSlashIcon as EyeOff } from \"@phosphor-icons/react/dist/csr/EyeSlash\";\nimport { QuestionIcon as HelpCircle } from \"@phosphor-icons/react/dist/csr/Question\";\nimport { InfoIcon as InfoCircle } from \"@phosphor-icons/react/dist/csr/Info\";\nimport type { InputProps as AriaInputProps, TextFieldProps as AriaTextFieldProps } from \"react-aria-components\";\nimport { Button as AriaButton, Group as AriaGroup, Input as AriaInput, TextField as AriaTextField } from \"react-aria-components\";\nimport { HintText } from \"@/components/base/input/hint-text\";\nimport { Label } from \"@/components/base/input/label\";\nimport { Tooltip, TooltipTrigger } from \"@/components/base/tooltip/tooltip\";\nimport { cx, sortCx } from \"@/utils/cx\";\n\n/**\n * Figma: Inputs (85:1269)\n *\n * Default: border (1px) border-primary + shadow-xs.\n * Focus: 1px border-brand + inset ring-brand (2px visual, no layout shift from border-2).\n * Error default: border-error_subtle; error focus: border-error + inset ring-error.\n */\nexport const inputFocusRingShadow = \"border-brand ring-1 ring-inset ring-brand\";\nexport const inputErrorFocusRingShadow = \"border-error ring-1 ring-inset ring-error\";\n/** Shell focus overlay — border + inset ring on one ::after above children (no host border-brand; avoids double-ring gap). */\nexport const inputFocusRingShellOverlay =\n \"after:pointer-events-none after:absolute after:-inset-px after:z-10 after:rounded-lg after:border after:border-solid after:border-brand after:ring-1 after:ring-inset after:ring-brand after:content-['']\";\nexport const inputErrorFocusRingShellOverlay =\n \"after:pointer-events-none after:absolute after:-inset-px after:z-10 after:rounded-lg after:border after:border-solid after:border-error after:ring-1 after:ring-inset after:ring-error after:content-['']\";\nexport const inputErrorFocusRingGroupInvalidShellOverlay =\n \"group-invalid:focus-within:after:pointer-events-none group-invalid:focus-within:after:absolute group-invalid:focus-within:after:-inset-px group-invalid:focus-within:after:z-10 group-invalid:focus-within:after:rounded-lg group-invalid:focus-within:after:border group-invalid:focus-within:after:border-solid group-invalid:focus-within:after:border-error group-invalid:focus-within:after:ring-1 group-invalid:focus-within:after:ring-inset group-invalid:focus-within:after:ring-error group-invalid:focus-within:after:content-['']\";\nexport const inputFocusVisibleRingShadow =\n \"focus-visible:outline-none focus-visible:border-brand focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-brand\";\nexport const inputErrorFocusVisibleRingShadow =\n \"focus-visible:outline-none focus-visible:border-error focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-error\";\n\nexport interface InputBaseProps extends Omit<AriaInputProps, \"size\"> {\n /** Tooltip message on hover. */\n tooltip?: string;\n /** Whether the input is invalid. */\n isInvalid?: boolean;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input is required. */\n isRequired?: boolean;\n /**\n * Input size.\n * @default \"sm\"\n */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Placeholder text. */\n placeholder?: string;\n /** Class name for the icon. */\n iconClassName?: string;\n /** Class name for the input. */\n inputClassName?: string;\n /** Class name for the input wrapper. */\n wrapperClassName?: string;\n /** Class name for the tooltip. */\n tooltipClassName?: string;\n /** Keyboard shortcut to display. */\n shortcut?: string | boolean;\n ref?: Ref<HTMLInputElement>;\n groupRef?: Ref<HTMLDivElement>;\n /** Icon component to display on the left side of the input. */\n icon?: ComponentType<HTMLAttributes<HTMLOrSVGElement>>;\n}\n\nexport const InputBase = ({\n ref,\n tooltip,\n shortcut,\n groupRef,\n size = \"md\",\n isInvalid,\n isDisabled,\n isRequired,\n icon: Icon,\n placeholder,\n wrapperClassName,\n tooltipClassName,\n inputClassName,\n iconClassName,\n type = \"text\",\n ...inputProps\n}: InputBaseProps) => {\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n\n // Check if the input has a leading icon or tooltip\n const hasTrailingIcon = tooltip || isInvalid;\n const hasLeadingIcon = Icon;\n\n // If the input is inside a `TextFieldContext`, use its context to simplify applying styles\n const context = useContext(TextFieldContext);\n\n const inputSize = context?.size || size;\n\n const sizes = sortCx({\n sm: {\n root: cx(\"px-3 py-2 text-sm\", hasLeadingIcon && \"pl-9\", hasTrailingIcon && \"pr-9\"),\n iconLeading: \"left-3 size-4 stroke-[2.25px]\",\n iconTrailing: \"right-3\",\n shortcut: \"pr-1.5\",\n },\n md: {\n root: cx(\"px-3 py-2 text-md\", hasLeadingIcon && \"pl-10\", hasTrailingIcon && \"pr-9\"),\n iconLeading: \"left-3 size-5\",\n iconTrailing: \"right-3\",\n shortcut: \"pr-2\",\n },\n lg: {\n root: cx(\"px-3.5 py-2.5 text-md\", hasLeadingIcon && \"pl-10.5\", hasTrailingIcon && \"pr-9.5\"),\n iconLeading: \"left-3.5 size-5\",\n iconTrailing: \"right-3.5\",\n shortcut: \"pr-2.5\",\n },\n });\n\n return (\n <AriaGroup\n {...{ isDisabled, isInvalid }}\n ref={groupRef}\n className={({ isFocusWithin, isDisabled, isInvalid }) =>\n cx(\n \"group/input relative flex w-full flex-row place-content-center place-items-center rounded-lg border border-solid border-primary bg-primary shadow-xs transition-[border-color,box-shadow] duration-100 ease-linear\",\n\n isFocusWithin && !isDisabled && !isInvalid && inputFocusRingShadow,\n\n // Disabled state styles\n isDisabled && \"cursor-not-allowed opacity-50\",\n \"group-disabled:cursor-not-allowed group-disabled:opacity-50\",\n\n // Invalid state styles\n isInvalid && !isFocusWithin && \"border-error_subtle\",\n \"group-invalid:border-error_subtle\",\n \"group-invalid:focus-within:border-error group-invalid:focus-within:ring-1 group-invalid:focus-within:ring-inset group-invalid:focus-within:ring-error\",\n\n // Invalid + focus — darker error stroke (not brand)\n isInvalid && isFocusWithin && inputErrorFocusRingShadow,\n\n context?.wrapperClassName,\n wrapperClassName,\n )\n }\n >\n {/* Leading icon and Payment icon */}\n {Icon && (\n <Icon className={cx(\"pointer-events-none absolute text-fg-quaternary\", sizes[inputSize].iconLeading, context?.iconClassName, iconClassName)} />\n )}\n\n {/* Input field */}\n <AriaInput\n {...(inputProps as AriaInputProps)}\n ref={ref}\n required={isRequired}\n type={type === \"password\" && isPasswordVisible ? \"text\" : type}\n placeholder={placeholder}\n className={cx(\n \"m-0 w-full bg-transparent text-primary ring-0 outline-hidden placeholder:text-placeholder autofill:rounded-lg autofill:text-primary disabled:cursor-not-allowed\",\n sizes[inputSize].root,\n context?.inputClassName,\n inputClassName,\n )}\n />\n\n {/* Tooltip and help icon */}\n {tooltip && type !== \"password\" && (\n <Tooltip title={tooltip} placement=\"top\">\n <TooltipTrigger\n className={cx(\n \"absolute cursor-pointer text-fg-quaternary transition duration-100 ease-linear group-invalid/input:hidden hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover\",\n sizes[inputSize].iconTrailing,\n context?.tooltipClassName,\n tooltipClassName,\n )}\n >\n <HelpCircle className=\"size-4 stroke-[2.25px]\" />\n </TooltipTrigger>\n </Tooltip>\n )}\n\n {/* Invalid icon */}\n {type !== \"password\" && (\n <InfoCircle\n className={cx(\n \"pointer-events-none absolute hidden size-4 stroke-[2.25px] text-fg-error-secondary group-invalid/input:block\",\n sizes[inputSize].iconTrailing,\n context?.tooltipClassName,\n tooltipClassName,\n )}\n />\n )}\n\n {/* Password visibility toggle */}\n {type === \"password\" && (\n <AriaButton\n aria-label=\"Toggle password visibility\"\n onClick={() => setIsPasswordVisible(!isPasswordVisible)}\n className={cx(\n \"absolute flex cursor-pointer items-center justify-center text-fg-quaternary transition duration-100 ease-linear hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover focus:outline-hidden\",\n sizes[inputSize].iconTrailing,\n )}\n >\n {isPasswordVisible ? <EyeOff className=\"size-4 stroke-[2.25px]\" /> : <Eye className=\"size-4 stroke-[2.25px]\" />}\n </AriaButton>\n )}\n\n {/* Shortcut */}\n {shortcut && (\n <div\n className={cx(\n \"pointer-events-none absolute inset-y-0.5 right-0.5 z-10 hidden items-center rounded-r-[inherit] bg-linear-to-r from-transparent to-bg-primary to-40% pl-8 md:flex\",\n sizes[inputSize].shortcut,\n )}\n >\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none rounded px-1 py-px text-xs font-medium text-quaternary ring-1 ring-secondary select-none ring-inset\"\n >\n {typeof shortcut === \"string\" ? shortcut : \"⌘K\"}\n </span>\n </div>\n )}\n </AriaGroup>\n );\n};\n\nInputBase.displayName = \"InputBase\";\n\ninterface TextFieldContextProps extends Partial<Pick<InputBaseProps, \"size\" | \"wrapperClassName\" | \"inputClassName\" | \"iconClassName\" | \"tooltipClassName\">> {}\n\nconst TextFieldContext = createContext<TextFieldContextProps>({});\n\nexport interface TextFieldProps extends AriaTextFieldProps, TextFieldContextProps {}\n\nexport const TextField = ({ className, size = \"md\", inputClassName, wrapperClassName, iconClassName, tooltipClassName, ...props }: TextFieldProps) => {\n return (\n <TextFieldContext.Provider value={{ inputClassName, wrapperClassName, iconClassName, tooltipClassName, size }}>\n <AriaTextField\n {...props}\n data-input-wrapper\n data-input-size={size}\n className={(state) =>\n cx(\"group flex h-max w-full flex-col items-start justify-start gap-1.5\", typeof className === \"function\" ? className(state) : className)\n }\n />\n </TextFieldContext.Provider>\n );\n};\n\nTextField.displayName = \"TextField\";\n\nexport interface InputProps\n extends\n AriaTextFieldProps,\n Pick<\n InputBaseProps,\n | \"ref\"\n | \"placeholder\"\n | \"icon\"\n | \"shortcut\"\n | \"tooltip\"\n | \"groupRef\"\n | \"size\"\n | \"wrapperClassName\"\n | \"inputClassName\"\n | \"iconClassName\"\n | \"tooltipClassName\"\n > {\n /** Label text for the input */\n label?: string;\n /** Helper text displayed below the input */\n hint?: ReactNode;\n /** Whether to hide required indicator from label */\n hideRequiredIndicator?: boolean;\n}\n\nexport const Input = ({\n size = \"md\",\n placeholder,\n icon: Icon,\n label,\n hint,\n shortcut,\n hideRequiredIndicator,\n className,\n ref,\n groupRef,\n tooltip,\n iconClassName,\n inputClassName,\n wrapperClassName,\n tooltipClassName,\n type = \"text\",\n ...props\n}: InputProps) => {\n return (\n <TextField aria-label={!label ? placeholder : undefined} {...props} size={size} className={className}>\n {({ isRequired, isInvalid }) => (\n <>\n {label && (\n <Label isRequired={hideRequiredIndicator ? !hideRequiredIndicator : isRequired} isInvalid={isInvalid}>\n {label}\n </Label>\n )}\n\n <InputBase\n {...{\n ref,\n groupRef,\n size,\n placeholder,\n icon: Icon,\n shortcut,\n iconClassName,\n inputClassName,\n wrapperClassName,\n tooltipClassName,\n tooltip,\n type,\n isInvalid,\n }}\n />\n\n {hint && <HintText isInvalid={isInvalid}>{hint}</HintText>}\n </>\n )}\n </TextField>\n );\n};\n\nInput.displayName = \"Input\";\n","/* We cannot use type `unknown` instead of `any` here because it will break the type assertion `isReactComponent` function is providing. */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type React from \"react\";\n\ntype ReactComponent = React.FC<any> | React.ComponentClass<any, any>;\n\n/**\n * Checks if a given value is a function component.\n */\nexport const isFunctionComponent = (component: any): component is React.FC<any> => {\n return typeof component === \"function\";\n};\n\n/**\n * Checks if a given value is a class component.\n */\nexport const isClassComponent = (component: any): component is React.ComponentClass<any, any> => {\n return typeof component === \"function\" && component.prototype && (!!component.prototype.isReactComponent || !!component.prototype.render);\n};\n\n/**\n * Checks if a given value is a forward ref component.\n */\nexport const isForwardRefComponent = (component: any): component is React.ForwardRefExoticComponent<any> => {\n return typeof component === \"object\" && component !== null && component.$$typeof.toString() === \"Symbol(react.forward_ref)\";\n};\n\n/**\n * Checks if a given value is a valid React component.\n */\nexport const isReactComponent = (component: any): component is ReactComponent => {\n return isFunctionComponent(component) || isForwardRefComponent(component) || isClassComponent(component);\n};\n","\"use client\";\n\n/** Figma: Select menu popover (11132:11643) — floating menu border + shadow. */\n\nimport type { RefAttributes } from \"react\";\nimport type { PopoverProps as AriaPopoverProps } from \"react-aria-components\";\nimport { Popover as AriaPopover } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\ninterface PopoverProps extends AriaPopoverProps, RefAttributes<HTMLElement> {\n size: \"sm\" | \"md\" | \"lg\";\n}\n\nexport const Popover = (props: PopoverProps) => {\n return (\n <AriaPopover\n placement=\"bottom\"\n containerPadding={0}\n offset={4}\n {...props}\n className={(state) =>\n cx(\n \"w-(--trigger-width) origin-(--trigger-anchor-point) overflow-x-hidden overflow-y-auto rounded-lg bg-primary py-1 shadow-lg ring-1 ring-secondary_alt outline-hidden will-change-transform\",\n\n state.isEntering &&\n \"duration-150 ease-out animate-in fade-in placement-right:slide-in-from-left-0.5 placement-top:slide-in-from-bottom-0.5 placement-bottom:slide-in-from-top-0.5\",\n state.isExiting &&\n \"duration-100 ease-in animate-out fade-out placement-right:slide-out-to-left-0.5 placement-top:slide-out-to-bottom-0.5 placement-bottom:slide-out-to-top-0.5\",\n\n props.size === \"sm\" && \"max-h-56!\",\n props.size === \"md\" && \"max-h-64!\",\n props.size === \"lg\" && \"max-h-80!\",\n\n typeof props.className === \"function\" ? props.className(state) : props.className,\n )\n }\n />\n );\n};\n","\"use client\";\n\nimport type { FC, ReactNode } from \"react\";\nimport { createContext } from \"react\";\n\nexport type SelectItemType = {\n /** Unique identifier for the item. */\n id: string | number;\n /** The primary display text. */\n label?: string;\n /** Avatar image URL. */\n avatarUrl?: string;\n /** Whether the item is disabled. */\n isDisabled?: boolean;\n /** Secondary text displayed alongside the label. */\n supportingText?: string;\n /** Leading icon component or element. */\n icon?: FC | ReactNode;\n};\n\nexport interface CommonProps {\n /** Helper text displayed below the input. */\n hint?: string;\n /** Field label displayed above the input. */\n label?: string;\n /** Tooltip text for the help icon next to the label. */\n tooltip?: string;\n /**\n * The size of the component.\n * @default \"md\"\n */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Placeholder text when no value is selected. */\n placeholder?: string;\n /** Whether to hide the required indicator from the label. */\n hideRequiredIndicator?: boolean;\n}\n\nexport const sizes = {\n sm: {\n root: \"py-2 pl-3 pr-2.5 gap-2 *:data-icon:size-4 *:data-icon:stroke-[2.25px]\",\n withIcon: \"\",\n text: \"text-sm\",\n textContainer: \"gap-x-1.5\",\n shortcut: \"pr-2.5\",\n },\n md: { root: \"py-2 px-3 gap-2 *:data-icon:size-5\", withIcon: \"\", text: \"text-md\", textContainer: \"gap-x-1.5\", shortcut: \"pr-2.5\" },\n lg: { root: \"py-2.5 px-3.5 gap-2 *:data-icon:size-5\", withIcon: \"\", text: \"text-md\", textContainer: \"gap-x-1.5\", shortcut: \"pr-3\" },\n};\n\nexport const SelectContext = createContext<{ size: \"sm\" | \"md\" | \"lg\" }>({ size: \"md\" });\n","import { useEffect } from \"react\";\nimport type { RefObject } from \"@react-types/shared\";\n\n/**\n * Checks if the ResizeObserver API is supported.\n * @returns True if the ResizeObserver API is supported, false otherwise.\n */\nfunction hasResizeObserver() {\n return typeof window.ResizeObserver !== \"undefined\";\n}\n\n/**\n * The options for the useResizeObserver hook.\n */\ntype useResizeObserverOptionsType<T> = {\n /**\n * The ref to the element to observe.\n */\n ref: RefObject<T | undefined | null> | undefined;\n /**\n * The box to observe.\n */\n box?: ResizeObserverBoxOptions;\n /**\n * The callback function to call when the size changes.\n */\n onResize: () => void;\n};\n\n/**\n * A hook that observes the size of an element and calls a callback function when the size changes.\n * @param options - The options for the hook.\n */\nexport function useResizeObserver<T extends Element>(options: useResizeObserverOptionsType<T>) {\n const { ref, box, onResize } = options;\n\n useEffect(() => {\n const element = ref?.current;\n if (!element) {\n return;\n }\n\n if (!hasResizeObserver()) {\n window.addEventListener(\"resize\", onResize, false);\n\n return () => {\n window.removeEventListener(\"resize\", onResize, false);\n };\n } else {\n const resizeObserverInstance = new window.ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n\n onResize();\n });\n\n resizeObserverInstance.observe(element, { box });\n\n return () => {\n if (element) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }\n }, [onResize, ref, box]);\n}\n","\"use client\";\n\n/** Figma: Select / ComboBox (11132:11643) */\n\nimport type { FC, FocusEventHandler, PointerEventHandler, ReactNode, Ref, RefAttributes } from \"react\";\nimport { isValidElement, useCallback, useContext, useRef, useState } from \"react\";\nimport { MagnifyingGlassIcon as SearchLg } from \"@phosphor-icons/react/dist/csr/MagnifyingGlass\";\nimport type { ComboBoxProps as AriaComboBoxProps, GroupProps as AriaGroupProps, ListBoxProps as AriaListBoxProps } from \"react-aria-components\";\nimport { ComboBox as AriaComboBox, Group as AriaGroup, Input as AriaInput, ListBox as AriaListBox, ComboBoxStateContext } from \"react-aria-components\";\nimport { HintText } from \"@/components/base/input/hint-text\";\nimport { Label } from \"@/components/base/input/label\";\nimport { Popover } from \"@/components/base/select/popover\";\nimport { type CommonProps, SelectContext, type SelectItemType, sizes } from \"@/components/base/select/select-shared\";\nimport { useResizeObserver } from \"@/hooks/use-resize-observer\";\nimport { cx } from \"@/utils/cx\";\nimport { inputErrorFocusRingShadow, inputFocusRingShadow } from \"@/components/base/input/input\";\nimport { isReactComponent } from \"@/utils/is-react-component\";\n\ninterface ComboBoxProps extends Omit<AriaComboBoxProps<SelectItemType>, \"children\" | \"items\">, RefAttributes<HTMLDivElement>, CommonProps {\n shortcut?: boolean;\n items?: SelectItemType[];\n popoverClassName?: string;\n shortcutClassName?: string;\n /** Leading icon component displayed before the input. */\n icon?: FC | ReactNode;\n children: AriaListBoxProps<SelectItemType>[\"children\"];\n}\n\ninterface ComboBoxValueProps extends AriaGroupProps {\n size: \"sm\" | \"md\" | \"lg\";\n shortcut: boolean;\n placeholder?: string;\n shortcutClassName?: string;\n icon?: FC | ReactNode;\n isInvalid?: boolean;\n onFocus?: FocusEventHandler;\n onPointerEnter?: PointerEventHandler;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst ComboBoxValue = ({ size, shortcut, placeholder, shortcutClassName, icon: IconProp, isInvalid, ref, ...otherProps }: ComboBoxValueProps) => {\n const state = useContext(ComboBoxStateContext);\n\n const value = state?.selectedItem?.value || null;\n const inputValue = state?.inputValue || null;\n\n const first = inputValue?.split(value?.supportingText)?.[0] || \"\";\n const last = inputValue?.split(first)[1];\n\n return (\n <AriaGroup\n ref={ref}\n {...otherProps}\n isInvalid={isInvalid}\n className={({ isFocusWithin, isDisabled, isInvalid: isGroupInvalid }) =>\n cx(\n \"relative flex w-full items-center gap-2 rounded-lg border border-solid border-primary bg-primary shadow-xs outline-hidden transition-[border-color,box-shadow] duration-100 ease-linear\",\n isDisabled && \"cursor-not-allowed opacity-50\",\n !isGroupInvalid && isFocusWithin && inputFocusRingShadow,\n isGroupInvalid && !isFocusWithin && \"border-error_subtle\",\n isGroupInvalid && isFocusWithin && inputErrorFocusRingShadow,\n\n // Icon styles\n \"*:data-icon:shrink-0 *:data-icon:text-fg-quaternary\",\n\n sizes[size].root,\n )\n }\n >\n {isReactComponent(IconProp) ? (\n <IconProp data-icon className=\"pointer-events-none\" aria-hidden=\"true\" />\n ) : isValidElement(IconProp) ? (\n IconProp\n ) : (\n <SearchLg data-icon className=\"pointer-events-none\" aria-hidden=\"true\" />\n )}\n\n <div className=\"relative flex w-full items-center\">\n {inputValue && (\n <span className={cx(\"absolute top-1/2 z-0 inline-flex w-full -translate-y-1/2 truncate\", sizes[size].textContainer)} aria-hidden=\"true\">\n <p className={cx(\"font-medium text-primary\", sizes[size].text)}>{first}</p>\n {last && <p className={cx(\"-ml-0.75 text-tertiary\", sizes[size].text)}>{last}</p>}\n </span>\n )}\n\n <AriaInput\n placeholder={placeholder}\n className={cx(\n \"z-10 w-full appearance-none bg-transparent text-transparent caret-alpha-black/90 placeholder:text-placeholder focus:outline-hidden disabled:cursor-not-allowed\",\n sizes[size].text,\n )}\n />\n </div>\n\n {shortcut && (\n <div\n className={cx(\n \"absolute inset-y-0.5 right-0.5 z-10 hidden items-center rounded-r-[inherit] bg-linear-to-r from-transparent to-bg-primary to-40% pl-8 md:flex\",\n sizes[size].shortcut,\n shortcutClassName,\n )}\n >\n <span\n className=\"pointer-events-none rounded px-1 py-px text-xs font-medium text-quaternary ring-1 ring-secondary select-none ring-inset\"\n aria-hidden=\"true\"\n >\n ⌘K\n </span>\n </div>\n )}\n </AriaGroup>\n );\n};\n\nexport const ComboBox = ({\n placeholder = \"Search\",\n shortcut = true,\n size = \"md\",\n children,\n items,\n shortcutClassName,\n icon,\n hideRequiredIndicator,\n ...otherProps\n}: ComboBoxProps) => {\n const placeholderRef = useRef<HTMLDivElement>(null);\n const [popoverWidth, setPopoverWidth] = useState(\"\");\n\n // Resize observer for popover width\n const onResize = useCallback(() => {\n if (!placeholderRef.current) return;\n\n const divRect = placeholderRef.current?.getBoundingClientRect();\n\n setPopoverWidth(divRect.width + \"px\");\n }, [placeholderRef, setPopoverWidth]);\n\n useResizeObserver({\n ref: placeholderRef,\n box: \"border-box\",\n onResize,\n });\n\n return (\n <SelectContext.Provider value={{ size }}>\n <AriaComboBox menuTrigger=\"focus\" {...otherProps}>\n {(state) => (\n <div className=\"flex flex-col gap-1.5\">\n {otherProps.label && (\n <Label isRequired={hideRequiredIndicator ? false : state.isRequired} tooltip={otherProps.tooltip}>\n {otherProps.label}\n </Label>\n )}\n\n <ComboBoxValue\n ref={placeholderRef}\n placeholder={placeholder}\n shortcut={shortcut}\n shortcutClassName={shortcutClassName}\n icon={icon}\n size={size}\n isInvalid={state.isInvalid}\n // This is a workaround to correctly calculating the trigger width\n // while using ResizeObserver wasn't 100% reliable.\n onFocus={onResize}\n onPointerEnter={onResize}\n />\n\n <Popover size={size} triggerRef={placeholderRef} style={{ width: popoverWidth }} className={otherProps.popoverClassName}>\n <AriaListBox items={items} className=\"size-full outline-hidden\">\n {children}\n </AriaListBox>\n </Popover>\n\n {otherProps.hint && (\n <HintText isInvalid={state.isInvalid} className={cx(size === \"sm\" && \"text-xs\")}>\n {otherProps.hint}\n </HintText>\n )}\n </div>\n )}\n </AriaComboBox>\n </SelectContext.Provider>\n );\n};\n","\"use client\";\n\nimport { useLayoutEffect, useRef, type ReactNode, type Ref } from \"react\";\nimport { Checkbox as AriaCheckbox, type CheckboxProps as AriaCheckboxProps } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\nconst CHECKBOX_TICK_DELAY_MS = 60;\nconst CHECKBOX_TICK_DRAW_MS = 100;\n\n/** Draw-on-check tick animation — remounts when checked so it replays each time. */\nfunction CheckboxAnimatedCheckMark({ className }: { className?: string }) {\n const pathRef = useRef<SVGPathElement>(null);\n\n useLayoutEffect(() => {\n const path = pathRef.current;\n if (!path || typeof path.getTotalLength !== \"function\") return;\n const len = path.getTotalLength();\n if (len <= 0) return;\n\n path.style.strokeDasharray = `${len}`;\n path.style.strokeDashoffset = `${len}`;\n\n if (typeof path.animate !== \"function\") {\n path.style.strokeDashoffset = \"0\";\n return;\n }\n\n const anim = path.animate([{ strokeDashoffset: len }, { strokeDashoffset: 0 }], {\n duration: CHECKBOX_TICK_DRAW_MS,\n delay: CHECKBOX_TICK_DELAY_MS,\n easing: \"cubic-bezier(0.45, 0, 0.2, 1)\",\n fill: \"forwards\",\n });\n return () => anim.cancel();\n }, []);\n\n return (\n <svg aria-hidden=\"true\" viewBox=\"0 0 14 14\" fill=\"none\" className={cx(\"block shrink-0\", className)}>\n <path\n ref={pathRef}\n d=\"M2.33325 7L5.24992 9.91667L11.6666 3.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\n/** Figma Focus rings/focus-ring — 2px surface gap + 4px brand ring (matches Button). */\nconst focusRingShadow =\n \"outline-none [box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]\";\n\nexport interface CheckboxBaseProps {\n size?: \"sm\" | \"md\";\n className?: string;\n isFocusVisible?: boolean;\n isSelected?: boolean;\n isDisabled?: boolean;\n isIndeterminate?: boolean;\n}\n\nexport const CheckboxBase = ({ className, isSelected, isDisabled, isIndeterminate, size = \"sm\", isFocusVisible = false }: CheckboxBaseProps) => {\n const isChecked = isSelected || isIndeterminate;\n const iconClassName = size === \"sm\" ? \"size-2.5\" : \"size-3.5\";\n\n return (\n <div\n className={cx(\n \"relative flex shrink-0 cursor-pointer appearance-none items-center justify-center border border-solid border-primary\",\n size === \"sm\" ? \"size-4 rounded-xs\" : \"size-5 rounded-sm\",\n isChecked ? \"border-transparent bg-brand-solid\" : \"bg-primary\",\n isDisabled && \"cursor-not-allowed opacity-50\",\n isDisabled && !isChecked && \"bg-tertiary\",\n isFocusVisible && !isDisabled && focusRingShadow,\n className,\n )}\n >\n {isIndeterminate && (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n className={cx(\"pointer-events-none block shrink-0 text-fg-white\", iconClassName)}\n >\n <path d=\"M2.91675 7H11.0834\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n\n {isSelected && !isIndeterminate && (\n <CheckboxAnimatedCheckMark className={cx(\"pointer-events-none text-fg-white\", iconClassName)} />\n )}\n </div>\n );\n};\nCheckboxBase.displayName = \"CheckboxBase\";\n\ninterface CheckboxProps extends AriaCheckboxProps {\n ref?: Ref<HTMLLabelElement>;\n size?: \"sm\" | \"md\";\n label?: ReactNode;\n hint?: ReactNode;\n}\n\nexport const Checkbox = ({ label, hint, size = \"sm\", className, ...ariaCheckboxProps }: CheckboxProps) => {\n const sizes = {\n sm: {\n root: \"gap-2\",\n textWrapper: \"\",\n label: \"text-sm font-medium\",\n hint: \"text-sm\",\n },\n md: {\n root: \"gap-3\",\n textWrapper: \"gap-0.5 break-words\",\n label: \"text-md font-medium\",\n hint: \"text-md\",\n },\n };\n\n return (\n <AriaCheckbox\n {...ariaCheckboxProps}\n className={(state) =>\n cx(\n \"relative flex items-start\",\n state.isDisabled && \"cursor-not-allowed\",\n sizes[size].root,\n typeof className === \"function\" ? className(state) : className,\n )\n }\n >\n {({ isSelected, isIndeterminate, isDisabled, isFocusVisible }) => (\n <>\n <CheckboxBase\n size={size}\n isSelected={isSelected}\n isIndeterminate={isIndeterminate}\n isDisabled={isDisabled}\n isFocusVisible={isFocusVisible}\n className={label || hint ? \"mt-0.5\" : \"\"}\n />\n {(label || hint) && (\n <div className={cx(\"inline-flex flex-col\", sizes[size].textWrapper)}>\n {label && <p className={cx(\"text-secondary select-none\", sizes[size].label)}>{label}</p>}\n {hint && (\n <span className={cx(\"text-tertiary\", sizes[size].hint)} onClick={(event) => event.stopPropagation()}>\n {hint}\n </span>\n )}\n </div>\n )}\n </>\n )}\n </AriaCheckbox>\n );\n};\nCheckbox.displayName = \"Checkbox\";\n","\"use client\";\n\n/** Figma: Select item (11132:11643) — hover/focus use bg-primary_hover; checkbox uses CheckboxBase. */\n\nimport { isValidElement, useContext } from \"react\";\nimport { CheckIcon as Check } from \"@phosphor-icons/react/dist/csr/Check\";\nimport type { ListBoxItemProps as AriaListBoxItemProps } from \"react-aria-components\";\nimport { ListBoxItem as AriaListBoxItem, Text as AriaText } from \"react-aria-components\";\nimport { Avatar } from \"@/components/base/avatar/avatar\";\nimport { CheckboxBase } from \"@/components/base/checkbox/checkbox\";\nimport { cx } from \"@/utils/cx\";\nimport { isReactComponent } from \"@/utils/is-react-component\";\nimport type { SelectItemType } from \"./select-shared\";\nimport { SelectContext } from \"./select-shared\";\n\nconst sizes = {\n sm: {\n root: \"p-2 pr-2.5 gap-2 *:data-icon:size-4 *:data-icon:stroke-[2.25px]\",\n text: \"text-sm\",\n textContainer: \"gap-x-1.5\",\n check: \"size-4 stroke-[2.25px]\",\n checkbox: \"sm\" as const,\n },\n md: {\n root: \"p-2 pr-2.5 gap-2 *:data-icon:size-5\",\n text: \"text-md\",\n textContainer: \"gap-x-2\",\n check: \"size-5\",\n checkbox: \"sm\" as const,\n },\n lg: {\n root: \"p-2.5 pl-2 gap-2 *:data-icon:size-5\",\n text: \"text-md\",\n textContainer: \"gap-x-2\",\n check: \"size-5\",\n checkbox: \"md\" as const,\n },\n};\n\ninterface SelectItemProps extends Omit<AriaListBoxItemProps<SelectItemType>, \"id\">, SelectItemType {\n /** The selection indicator to be displayed on the item. */\n selectionIndicator?: \"checkmark\" | \"checkbox\" | \"none\";\n /** The alignment of the selection indicator. */\n selectionIndicatorAlign?: \"left\" | \"right\";\n}\n\nexport const SelectItem = ({\n label,\n id,\n value,\n avatarUrl,\n supportingText,\n isDisabled,\n icon: Icon,\n className,\n children,\n selectionIndicator = \"checkmark\",\n selectionIndicatorAlign = \"right\",\n ...props\n}: SelectItemProps) => {\n const { size } = useContext(SelectContext);\n\n const labelOrChildren = label || (typeof children === \"string\" ? children : \"\");\n const textValue = supportingText ? labelOrChildren + \" \" + supportingText : labelOrChildren;\n\n const isLeft = selectionIndicatorAlign === \"left\";\n\n return (\n <AriaListBoxItem\n id={id}\n value={\n value ?? {\n id,\n label: labelOrChildren,\n avatarUrl,\n supportingText,\n isDisabled,\n icon: Icon,\n }\n }\n textValue={textValue}\n isDisabled={isDisabled}\n {...props}\n className={(state) =>\n cx(\"w-full py-px outline-hidden\", size === \"sm\" ? \"px-1\" : \"px-1.5\", typeof className === \"function\" ? className(state) : className)\n }\n >\n {(state) => (\n <div\n className={cx(\n \"flex cursor-pointer items-center rounded-md outline-hidden select-none\",\n (state.isFocused || state.isHovered || (state.isSelected && selectionIndicator !== \"checkbox\")) && \"bg-primary_hover\",\n state.isDisabled && \"cursor-not-allowed opacity-50\",\n\n // Icon styles\n \"*:data-icon:shrink-0 *:data-icon:text-fg-quaternary\",\n\n sizes[size].root,\n )}\n >\n {isLeft && selectionIndicator === \"checkbox\" && (\n <CheckboxBase size={sizes[size].checkbox} isSelected={state.isSelected} isDisabled={state.isDisabled} />\n )}\n\n {avatarUrl ? (\n <Avatar aria-hidden=\"true\" size=\"xs\" src={avatarUrl} alt={label} className={cx(size === \"sm\" && \"size-5\")} />\n ) : isReactComponent(Icon) ? (\n <Icon data-icon aria-hidden=\"true\" />\n ) : isValidElement(Icon) ? (\n Icon\n ) : null}\n\n <div className={cx(\"flex w-full min-w-0 flex-1 flex-wrap\", sizes[size].textContainer)}>\n <AriaText slot=\"label\" className={cx(\"truncate font-medium whitespace-nowrap text-primary\", sizes[size].text)}>\n {label || (typeof children === \"function\" ? children(state) : children)}\n </AriaText>\n\n {supportingText && (\n <AriaText slot=\"description\" className={cx(\"whitespace-nowrap text-tertiary\", sizes[size].text)}>\n {supportingText}\n </AriaText>\n )}\n </div>\n\n {state.isSelected && selectionIndicator === \"checkmark\" && (\n <Check aria-hidden=\"true\" className={cx(\"ml-auto text-fg-brand-primary\", sizes[size].check)} />\n )}\n\n {!isLeft && selectionIndicator === \"checkbox\" && (\n <CheckboxBase size={sizes[size].checkbox} isSelected={state.isSelected} isDisabled={state.isDisabled} className=\"ml-auto\" />\n )}\n </div>\n )}\n </AriaListBoxItem>\n );\n};\n","\"use client\";\n\n/** Figma: Select trigger (11132:11643) — inset ring focus; error focus uses border-error. */\n\nimport type { FC, ReactNode, Ref, RefAttributes } from \"react\";\nimport { isValidElement } from \"react\";\nimport { CaretDownIcon as ChevronDown } from \"@phosphor-icons/react/dist/csr/CaretDown\";\nimport type { SelectProps as AriaSelectProps } from \"react-aria-components\";\nimport { Button as AriaButton, ListBox as AriaListBox, Select as AriaSelect, SelectValue as AriaSelectValue } from \"react-aria-components\";\nimport { Avatar } from \"@/components/base/avatar/avatar\";\nimport { HintText } from \"@/components/base/input/hint-text\";\nimport { Label } from \"@/components/base/input/label\";\nimport { cx } from \"@/utils/cx\";\nimport { inputErrorFocusRingShadow, inputFocusRingShadow } from \"@/components/base/input/input\";\nimport { isReactComponent } from \"@/utils/is-react-component\";\nimport { ComboBox } from \"./combobox\";\nimport { Popover } from \"./popover\";\nimport { SelectItem } from \"./select-item\";\nimport { type CommonProps, SelectContext, type SelectItemType, sizes } from \"./select-shared\";\n\nexport { SelectContext, sizes, type CommonProps, type SelectItemType } from \"./select-shared\";\n\nexport interface SelectProps extends Omit<AriaSelectProps<SelectItemType>, \"children\" | \"items\">, RefAttributes<HTMLDivElement>, CommonProps {\n items?: SelectItemType[];\n popoverClassName?: string;\n icon?: FC | ReactNode;\n children: ReactNode | ((item: SelectItemType) => ReactNode);\n}\n\ninterface SelectValueProps {\n isOpen: boolean;\n size: \"sm\" | \"md\" | \"lg\";\n isFocused: boolean;\n isDisabled: boolean;\n isInvalid?: boolean;\n placeholder?: string;\n ref?: Ref<HTMLButtonElement>;\n icon?: FC | ReactNode;\n}\n\nconst SelectValue = ({ isOpen, isFocused, isDisabled, isInvalid, size, placeholder, icon, ref }: SelectValueProps) => {\n const isActive = isFocused || isOpen;\n\n return (\n <AriaButton\n ref={ref}\n className={cx(\n \"relative flex w-full cursor-pointer items-center rounded-lg border border-solid border-primary bg-primary shadow-xs outline-hidden transition-[border-color,box-shadow] duration-100 ease-linear\",\n !isInvalid && isActive && inputFocusRingShadow,\n isInvalid && !isActive && \"border-error_subtle\",\n isInvalid && isActive && inputErrorFocusRingShadow,\n isDisabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n <AriaSelectValue<SelectItemType>\n className={(state) =>\n cx(\n \"flex h-max w-full items-center justify-start truncate text-left align-middle\",\n\n sizes[size].root,\n\n // With icon\n (state.selectedItems[0]?.icon || icon) && sizes[size].withIcon,\n\n // Icon styles\n \"*:data-icon:shrink-0 *:data-icon:text-fg-quaternary\",\n )\n }\n >\n {(state) => {\n const selectedItem = state.selectedItems[0];\n const Icon = selectedItem?.icon || icon;\n\n return (\n <>\n {selectedItem?.avatarUrl ? (\n <Avatar size=\"xs\" src={selectedItem.avatarUrl} alt={selectedItem.label} className={cx(size === \"sm\" && \"size-5\")} />\n ) : isReactComponent(Icon) ? (\n <Icon data-icon aria-hidden=\"true\" />\n ) : isValidElement(Icon) ? (\n Icon\n ) : null}\n\n {selectedItem ? (\n <section className={cx(\"flex w-full truncate\", sizes[size].textContainer)}>\n <p className={cx(\"truncate font-medium text-primary\", sizes[size].text)}>{selectedItem?.label}</p>\n {selectedItem?.supportingText && <p className={cx(\"text-tertiary\", sizes[size].text)}>{selectedItem?.supportingText}</p>}\n </section>\n ) : (\n <p className={cx(\"text-placeholder\", sizes[size].text)}>{placeholder}</p>\n )}\n\n <ChevronDown\n aria-hidden=\"true\"\n className={cx(\"ml-auto shrink-0 text-fg-quaternary\", size === \"lg\" ? \"size-5\" : \"size-4 stroke-[2.25px]\")}\n />\n </>\n );\n }}\n </AriaSelectValue>\n </AriaButton>\n );\n};\n\nconst Select = ({ placeholder = \"Select\", icon, size = \"md\", children, items, label, hint, tooltip, hideRequiredIndicator, className, ...rest }: SelectProps) => {\n return (\n <SelectContext.Provider value={{ size }}>\n <AriaSelect {...rest} className={(state) => cx(\"flex flex-col gap-1.5\", typeof className === \"function\" ? className(state) : className)}>\n {(state) => (\n <>\n {label && (\n <Label isRequired={hideRequiredIndicator ? false : state.isRequired} tooltip={tooltip}>\n {label}\n </Label>\n )}\n\n <SelectValue {...state} {...{ size, placeholder }} icon={icon} />\n\n <Popover size={size} className={rest.popoverClassName}>\n <AriaListBox items={items} className=\"size-full outline-hidden\">\n {children}\n </AriaListBox>\n </Popover>\n\n {hint && (\n <HintText isInvalid={state.isInvalid} className={cx(size === \"sm\" && \"text-xs\")}>\n {hint}\n </HintText>\n )}\n </>\n )}\n </AriaSelect>\n </SelectContext.Provider>\n );\n};\n\nconst _Select = Select as typeof Select & {\n ComboBox: typeof ComboBox;\n Item: typeof SelectItem;\n};\n_Select.ComboBox = ComboBox;\n_Select.Item = SelectItem;\n\nexport { _Select as Select };\n"]}
|
package/dist/react/sheet.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react__default from 'react';
|
|
2
2
|
|
|
3
|
-
declare const SheetBoundary:
|
|
4
|
-
children:
|
|
3
|
+
declare const SheetBoundary: react__default.FC<react__default.HTMLAttributes<HTMLDivElement> & {
|
|
4
|
+
children: react__default.ReactNode;
|
|
5
5
|
}>;
|
|
6
|
-
declare const Sheet:
|
|
7
|
-
children:
|
|
6
|
+
declare const Sheet: react__default.FC<{
|
|
7
|
+
children: react__default.ReactNode;
|
|
8
8
|
open?: boolean;
|
|
9
9
|
onOpenChange?: (open: boolean) => void;
|
|
10
10
|
/**
|
|
@@ -13,17 +13,17 @@ declare const Sheet: React__default.FC<{
|
|
|
13
13
|
*/
|
|
14
14
|
showBackdrop?: boolean;
|
|
15
15
|
}>;
|
|
16
|
-
declare const SheetTrigger:
|
|
17
|
-
children:
|
|
16
|
+
declare const SheetTrigger: react__default.FC<{
|
|
17
|
+
children: react__default.ReactNode;
|
|
18
18
|
asChild?: boolean;
|
|
19
19
|
}>;
|
|
20
|
-
declare const SheetClose:
|
|
21
|
-
children:
|
|
20
|
+
declare const SheetClose: react__default.FC<{
|
|
21
|
+
children: react__default.ReactNode;
|
|
22
22
|
asChild?: boolean;
|
|
23
23
|
afterClose?: () => void;
|
|
24
24
|
}>;
|
|
25
25
|
type SheetCloseButtonSide = "top" | "right" | "bottom" | "left";
|
|
26
|
-
interface SheetCloseButtonProps extends
|
|
26
|
+
interface SheetCloseButtonProps extends react__default.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
27
27
|
/**
|
|
28
28
|
* Desktop offset matches {@link SheetContent} for the same `side`; default
|
|
29
29
|
* `right` matches `SheetContent` default.
|
|
@@ -35,8 +35,8 @@ interface SheetCloseButtonProps extends React__default.ButtonHTMLAttributes<HTML
|
|
|
35
35
|
* for the given `side`; pass `className` to adjust or replace positioning.
|
|
36
36
|
* When `onClick` is omitted, uses sheet context to call `setOpen(false)`.
|
|
37
37
|
*/
|
|
38
|
-
declare const SheetCloseButton:
|
|
39
|
-
interface SheetContentProps extends
|
|
38
|
+
declare const SheetCloseButton: react__default.ForwardRefExoticComponent<SheetCloseButtonProps & react__default.RefAttributes<HTMLButtonElement>>;
|
|
39
|
+
interface SheetContentProps extends react__default.HTMLAttributes<HTMLDivElement> {
|
|
40
40
|
side?: "top" | "right" | "bottom" | "left";
|
|
41
41
|
size?: "sm" | "md" | "lg" | "xl" | "full";
|
|
42
42
|
closeThreshold?: number;
|
|
@@ -45,15 +45,15 @@ interface SheetContentProps extends React__default.HTMLAttributes<HTMLDivElement
|
|
|
45
45
|
showClose?: boolean;
|
|
46
46
|
duration?: number;
|
|
47
47
|
}
|
|
48
|
-
declare const SheetContent:
|
|
49
|
-
declare const SheetHeader:
|
|
48
|
+
declare const SheetContent: react__default.FC<SheetContentProps>;
|
|
49
|
+
declare const SheetHeader: react__default.FC<react__default.HTMLAttributes<HTMLDivElement> & {
|
|
50
50
|
fixed?: boolean;
|
|
51
51
|
}>;
|
|
52
|
-
declare const SheetFooter:
|
|
52
|
+
declare const SheetFooter: react__default.FC<react__default.HTMLAttributes<HTMLDivElement> & {
|
|
53
53
|
fixed?: boolean;
|
|
54
54
|
}>;
|
|
55
|
-
declare const SheetTitle:
|
|
56
|
-
declare const SheetDescription:
|
|
55
|
+
declare const SheetTitle: react__default.FC<react__default.HTMLAttributes<HTMLHeadingElement>>;
|
|
56
|
+
declare const SheetDescription: react__default.FC<react__default.HTMLAttributes<HTMLParagraphElement>>;
|
|
57
57
|
/**
|
|
58
58
|
* Circular back control for nested sheets (arrow, same footprint as the default
|
|
59
59
|
* sheet close icon). Wraps `SheetClose` with `asChild`.
|
|
@@ -63,8 +63,8 @@ declare const SheetDescription: React__default.FC<React__default.HTMLAttributes<
|
|
|
63
63
|
* over a delayed `onClick` when opening another sheet so the exit uses the
|
|
64
64
|
* handoff timing built into `Sheet`.
|
|
65
65
|
*/
|
|
66
|
-
declare const SheetNestedClose:
|
|
67
|
-
children?:
|
|
66
|
+
declare const SheetNestedClose: react__default.FC<react__default.ComponentPropsWithoutRef<"button"> & {
|
|
67
|
+
children?: react__default.ReactNode;
|
|
68
68
|
/**
|
|
69
69
|
* Runs after the close animation when chaining another sheet. Uses a shorter
|
|
70
70
|
* exit (see `SheetSetOpenOptions.afterClose`).
|