@nuka-ui/core 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -15
- package/dist/bundle.css +1 -1
- package/dist/components/Accordion/Accordion.cjs +1 -1
- package/dist/components/Accordion/Accordion.cjs.map +1 -1
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.js +2 -0
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/AccordionItem.cjs +1 -1
- package/dist/components/Accordion/AccordionItem.cjs.map +1 -1
- package/dist/components/Accordion/AccordionItem.d.ts.map +1 -1
- package/dist/components/Accordion/AccordionItem.js +1 -0
- package/dist/components/Accordion/AccordionItem.js.map +1 -1
- package/dist/components/Accordion/AccordionTrigger.cjs +1 -1
- package/dist/components/Accordion/AccordionTrigger.cjs.map +1 -1
- package/dist/components/Accordion/AccordionTrigger.js +1 -0
- package/dist/components/Accordion/AccordionTrigger.js.map +1 -1
- package/dist/components/Alert/Alert.cjs +1 -1
- package/dist/components/Alert/Alert.cjs.map +1 -1
- package/dist/components/Alert/Alert.d.ts.map +1 -1
- package/dist/components/Alert/Alert.js +1 -0
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppShell/AppShell.cjs +1 -1
- package/dist/components/AppShell/AppShell.cjs.map +1 -1
- package/dist/components/AppShell/AppShell.d.ts.map +1 -1
- package/dist/components/AppShell/AppShell.js +2 -0
- package/dist/components/AppShell/AppShell.js.map +1 -1
- package/dist/components/AppShell/AppShellBody.cjs +1 -1
- package/dist/components/AppShell/AppShellBody.cjs.map +1 -1
- package/dist/components/AppShell/AppShellBody.d.ts.map +1 -1
- package/dist/components/AppShell/AppShellBody.js +2 -0
- package/dist/components/AppShell/AppShellBody.js.map +1 -1
- package/dist/components/AppShell/AppShellHeader.cjs +1 -1
- package/dist/components/AppShell/AppShellHeader.cjs.map +1 -1
- package/dist/components/AppShell/AppShellHeader.d.ts.map +1 -1
- package/dist/components/AppShell/AppShellHeader.js +2 -0
- package/dist/components/AppShell/AppShellHeader.js.map +1 -1
- package/dist/components/AppShell/AppShellMain.cjs +1 -1
- package/dist/components/AppShell/AppShellMain.cjs.map +1 -1
- package/dist/components/AppShell/AppShellMain.d.ts.map +1 -1
- package/dist/components/AppShell/AppShellMain.js +2 -0
- package/dist/components/AppShell/AppShellMain.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.cjs +1 -1
- package/dist/components/AspectRatio/AspectRatio.cjs.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.js +1 -0
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/Avatar/Avatar.variants.cjs +1 -1
- package/dist/components/Avatar/Avatar.variants.cjs.map +1 -1
- package/dist/components/Avatar/Avatar.variants.js +1 -1
- package/dist/components/Avatar/Avatar.variants.js.map +1 -1
- package/dist/components/Badge/Badge.cjs +1 -1
- package/dist/components/Badge/Badge.cjs.map +1 -1
- package/dist/components/Badge/Badge.d.ts.map +1 -1
- package/dist/components/Badge/Badge.js +1 -0
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Badge/Badge.variants.cjs +1 -1
- package/dist/components/Badge/Badge.variants.cjs.map +1 -1
- package/dist/components/Badge/Badge.variants.js +1 -1
- package/dist/components/Badge/Badge.variants.js.map +1 -1
- package/dist/components/Banner/Banner.cjs +1 -1
- package/dist/components/Banner/Banner.cjs.map +1 -1
- package/dist/components/Banner/Banner.d.ts.map +1 -1
- package/dist/components/Banner/Banner.js +1 -0
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.cjs +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.js +2 -0
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.cjs +1 -1
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.cjs.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.d.ts.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.js +2 -0
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.js.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbItem.cjs +1 -1
- package/dist/components/Breadcrumb/BreadcrumbItem.cjs.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbItem.d.ts.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbItem.js +2 -0
- package/dist/components/Breadcrumb/BreadcrumbItem.js.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbLink.cjs +1 -1
- package/dist/components/Breadcrumb/BreadcrumbLink.cjs.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbLink.d.ts.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbLink.js +2 -0
- package/dist/components/Breadcrumb/BreadcrumbLink.js.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbList.cjs +1 -1
- package/dist/components/Breadcrumb/BreadcrumbList.cjs.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbList.d.ts.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbList.js +2 -0
- package/dist/components/Breadcrumb/BreadcrumbList.js.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbPage.cjs +1 -1
- package/dist/components/Breadcrumb/BreadcrumbPage.cjs.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbPage.d.ts.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbPage.js +3 -1
- package/dist/components/Breadcrumb/BreadcrumbPage.js.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbSeparator.cjs +1 -1
- package/dist/components/Breadcrumb/BreadcrumbSeparator.cjs.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbSeparator.d.ts.map +1 -1
- package/dist/components/Breadcrumb/BreadcrumbSeparator.js +3 -1
- package/dist/components/Breadcrumb/BreadcrumbSeparator.js.map +1 -1
- package/dist/components/Button/Button.cjs +1 -1
- package/dist/components/Button/Button.cjs.map +1 -1
- package/dist/components/Button/Button.d.ts +2 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.js +4 -3
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Button/Button.variants.cjs +1 -1
- package/dist/components/Button/Button.variants.cjs.map +1 -1
- package/dist/components/Button/Button.variants.js +1 -1
- package/dist/components/Button/Button.variants.js.map +1 -1
- package/dist/components/Callout/Callout.cjs +2 -0
- package/dist/components/Callout/Callout.cjs.map +1 -0
- package/dist/components/Callout/Callout.d.ts +13 -0
- package/dist/components/Callout/Callout.d.ts.map +1 -0
- package/dist/components/Callout/Callout.js +37 -0
- package/dist/components/Callout/Callout.js.map +1 -0
- package/dist/components/Callout/Callout.variants.cjs +2 -0
- package/dist/components/Callout/Callout.variants.cjs.map +1 -0
- package/dist/components/Callout/Callout.variants.d.ts +8 -0
- package/dist/components/Callout/Callout.variants.d.ts.map +1 -0
- package/dist/components/Callout/Callout.variants.js +42 -0
- package/dist/components/Callout/Callout.variants.js.map +1 -0
- package/dist/components/Callout/index.d.ts +4 -0
- package/dist/components/Callout/index.d.ts.map +1 -0
- package/dist/components/Card/Card.cjs +1 -1
- package/dist/components/Card/Card.cjs.map +1 -1
- package/dist/components/Card/Card.d.ts +9 -3
- package/dist/components/Card/Card.d.ts.map +1 -1
- package/dist/components/Card/Card.js +28 -11
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Card/index.d.ts +1 -1
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.cjs +1 -1
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +4 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.variants.cjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.variants.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.variants.js.map +1 -1
- package/dist/components/Chip/Chip.cjs +1 -1
- package/dist/components/Chip/Chip.cjs.map +1 -1
- package/dist/components/Chip/Chip.d.ts.map +1 -1
- package/dist/components/Chip/Chip.js +1 -0
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/Chip/Chip.variants.cjs +1 -1
- package/dist/components/Chip/Chip.variants.cjs.map +1 -1
- package/dist/components/Chip/Chip.variants.js +1 -1
- package/dist/components/Chip/Chip.variants.js.map +1 -1
- package/dist/components/Code/Code.cjs +1 -1
- package/dist/components/Code/Code.cjs.map +1 -1
- package/dist/components/Code/Code.d.ts.map +1 -1
- package/dist/components/Code/Code.js +1 -0
- package/dist/components/Code/Code.js.map +1 -1
- package/dist/components/Collapsible/Collapsible.cjs +1 -1
- package/dist/components/Collapsible/Collapsible.cjs.map +1 -1
- package/dist/components/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/components/Collapsible/Collapsible.js +1 -0
- package/dist/components/Collapsible/Collapsible.js.map +1 -1
- package/dist/components/Collapsible/CollapsibleContent.cjs +1 -1
- package/dist/components/Collapsible/CollapsibleContent.cjs.map +1 -1
- package/dist/components/Collapsible/CollapsibleContent.d.ts.map +1 -1
- package/dist/components/Collapsible/CollapsibleContent.js +2 -0
- package/dist/components/Collapsible/CollapsibleContent.js.map +1 -1
- package/dist/components/Collapsible/CollapsibleTrigger.cjs +1 -1
- package/dist/components/Collapsible/CollapsibleTrigger.cjs.map +1 -1
- package/dist/components/Collapsible/CollapsibleTrigger.d.ts.map +1 -1
- package/dist/components/Collapsible/CollapsibleTrigger.js +1 -0
- package/dist/components/Collapsible/CollapsibleTrigger.js.map +1 -1
- package/dist/components/Combobox/ComboboxContent.cjs +1 -1
- package/dist/components/Combobox/ComboboxContent.cjs.map +1 -1
- package/dist/components/Combobox/ComboboxContent.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxContent.js +2 -0
- package/dist/components/Combobox/ComboboxContent.js.map +1 -1
- package/dist/components/Combobox/ComboboxEmpty.cjs +1 -1
- package/dist/components/Combobox/ComboboxEmpty.cjs.map +1 -1
- package/dist/components/Combobox/ComboboxEmpty.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxEmpty.js +1 -0
- package/dist/components/Combobox/ComboboxEmpty.js.map +1 -1
- package/dist/components/Combobox/ComboboxGroup.cjs +1 -1
- package/dist/components/Combobox/ComboboxGroup.cjs.map +1 -1
- package/dist/components/Combobox/ComboboxGroup.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxGroup.js +1 -0
- package/dist/components/Combobox/ComboboxGroup.js.map +1 -1
- package/dist/components/Combobox/ComboboxInput.cjs +1 -1
- package/dist/components/Combobox/ComboboxInput.cjs.map +1 -1
- package/dist/components/Combobox/ComboboxInput.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxInput.js +2 -0
- package/dist/components/Combobox/ComboboxInput.js.map +1 -1
- package/dist/components/Combobox/ComboboxListbox.cjs +1 -1
- package/dist/components/Combobox/ComboboxListbox.cjs.map +1 -1
- package/dist/components/Combobox/ComboboxListbox.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxListbox.js +1 -0
- package/dist/components/Combobox/ComboboxListbox.js.map +1 -1
- package/dist/components/Combobox/ComboboxOption.cjs +1 -1
- package/dist/components/Combobox/ComboboxOption.cjs.map +1 -1
- package/dist/components/Combobox/ComboboxOption.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxOption.js +1 -0
- package/dist/components/Combobox/ComboboxOption.js.map +1 -1
- package/dist/components/Combobox/ComboboxTrigger.cjs +1 -1
- package/dist/components/Combobox/ComboboxTrigger.cjs.map +1 -1
- package/dist/components/Combobox/ComboboxTrigger.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxTrigger.js +1 -0
- package/dist/components/Combobox/ComboboxTrigger.js.map +1 -1
- package/dist/components/CommandMenu/CommandMenu.cjs +1 -1
- package/dist/components/CommandMenu/CommandMenu.cjs.map +1 -1
- package/dist/components/CommandMenu/CommandMenu.d.ts.map +1 -1
- package/dist/components/CommandMenu/CommandMenu.js +2 -0
- package/dist/components/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/CommandMenu/CommandMenuEmpty.cjs +1 -1
- package/dist/components/CommandMenu/CommandMenuEmpty.cjs.map +1 -1
- package/dist/components/CommandMenu/CommandMenuEmpty.d.ts.map +1 -1
- package/dist/components/CommandMenu/CommandMenuEmpty.js +1 -0
- package/dist/components/CommandMenu/CommandMenuEmpty.js.map +1 -1
- package/dist/components/CommandMenu/CommandMenuGroup.cjs +1 -1
- package/dist/components/CommandMenu/CommandMenuGroup.cjs.map +1 -1
- package/dist/components/CommandMenu/CommandMenuGroup.d.ts.map +1 -1
- package/dist/components/CommandMenu/CommandMenuGroup.js +3 -1
- package/dist/components/CommandMenu/CommandMenuGroup.js.map +1 -1
- package/dist/components/CommandMenu/CommandMenuInput.cjs +1 -1
- package/dist/components/CommandMenu/CommandMenuInput.cjs.map +1 -1
- package/dist/components/CommandMenu/CommandMenuInput.d.ts.map +1 -1
- package/dist/components/CommandMenu/CommandMenuInput.js +2 -0
- package/dist/components/CommandMenu/CommandMenuInput.js.map +1 -1
- package/dist/components/CommandMenu/CommandMenuItem.cjs +1 -1
- package/dist/components/CommandMenu/CommandMenuItem.cjs.map +1 -1
- package/dist/components/CommandMenu/CommandMenuItem.d.ts.map +1 -1
- package/dist/components/CommandMenu/CommandMenuItem.js +1 -0
- package/dist/components/CommandMenu/CommandMenuItem.js.map +1 -1
- package/dist/components/CommandMenu/CommandMenuList.cjs +1 -1
- package/dist/components/CommandMenu/CommandMenuList.cjs.map +1 -1
- package/dist/components/CommandMenu/CommandMenuList.d.ts.map +1 -1
- package/dist/components/CommandMenu/CommandMenuList.js +1 -0
- package/dist/components/CommandMenu/CommandMenuList.js.map +1 -1
- package/dist/components/CommandMenu/CommandMenuShortcut.cjs +1 -1
- package/dist/components/CommandMenu/CommandMenuShortcut.cjs.map +1 -1
- package/dist/components/CommandMenu/CommandMenuShortcut.d.ts.map +1 -1
- package/dist/components/CommandMenu/CommandMenuShortcut.js +2 -0
- package/dist/components/CommandMenu/CommandMenuShortcut.js.map +1 -1
- package/dist/components/Container/Container.cjs +1 -1
- package/dist/components/Container/Container.cjs.map +1 -1
- package/dist/components/Container/Container.d.ts +11 -3
- package/dist/components/Container/Container.d.ts.map +1 -1
- package/dist/components/Container/Container.js +5 -4
- package/dist/components/Container/Container.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenuContent.cjs +1 -1
- package/dist/components/ContextMenu/ContextMenuContent.cjs.map +1 -1
- package/dist/components/ContextMenu/ContextMenuContent.d.ts.map +1 -1
- package/dist/components/ContextMenu/ContextMenuContent.js +1 -0
- package/dist/components/ContextMenu/ContextMenuContent.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenuTrigger.cjs +1 -1
- package/dist/components/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
- package/dist/components/ContextMenu/ContextMenuTrigger.d.ts.map +1 -1
- package/dist/components/ContextMenu/ContextMenuTrigger.js +1 -0
- package/dist/components/ContextMenu/ContextMenuTrigger.js.map +1 -1
- package/dist/components/DatePicker/DatePickerCalendar.cjs +1 -1
- package/dist/components/DatePicker/DatePickerCalendar.cjs.map +1 -1
- package/dist/components/DatePicker/DatePickerCalendar.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePickerCalendar.js +12 -0
- package/dist/components/DatePicker/DatePickerCalendar.js.map +1 -1
- package/dist/components/DatePicker/DatePickerInput.cjs +1 -1
- package/dist/components/DatePicker/DatePickerInput.cjs.map +1 -1
- package/dist/components/DatePicker/DatePickerInput.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePickerInput.js +4 -1
- package/dist/components/DatePicker/DatePickerInput.js.map +1 -1
- package/dist/components/Dialog/Dialog.cjs +1 -1
- package/dist/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.js +2 -0
- package/dist/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/Divider/Divider.cjs +1 -1
- package/dist/components/Divider/Divider.cjs.map +1 -1
- package/dist/components/Divider/Divider.d.ts.map +1 -1
- package/dist/components/Divider/Divider.js +1 -0
- package/dist/components/Divider/Divider.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuContent.cjs +1 -1
- package/dist/components/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuContent.js +1 -0
- package/dist/components/DropdownMenu/DropdownMenuContent.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
- package/dist/components/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuTrigger.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuTrigger.js +1 -0
- package/dist/components/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.cjs +1 -1
- package/dist/components/EmptyState/EmptyState.cjs.map +1 -1
- package/dist/components/EmptyState/EmptyState.d.ts +4 -1
- package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.js +17 -8
- package/dist/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/components/Eyebrow/Eyebrow.cjs +1 -1
- package/dist/components/Eyebrow/Eyebrow.cjs.map +1 -1
- package/dist/components/Eyebrow/Eyebrow.d.ts +1 -1
- package/dist/components/Eyebrow/Eyebrow.d.ts.map +1 -1
- package/dist/components/Eyebrow/Eyebrow.js +7 -3
- package/dist/components/Eyebrow/Eyebrow.js.map +1 -1
- package/dist/components/Eyebrow/Eyebrow.variants.cjs +1 -1
- package/dist/components/Eyebrow/Eyebrow.variants.cjs.map +1 -1
- package/dist/components/Eyebrow/Eyebrow.variants.d.ts +2 -1
- package/dist/components/Eyebrow/Eyebrow.variants.d.ts.map +1 -1
- package/dist/components/Eyebrow/Eyebrow.variants.js +28 -7
- package/dist/components/Eyebrow/Eyebrow.variants.js.map +1 -1
- package/dist/components/FileInput/FileInput.cjs +1 -1
- package/dist/components/FileInput/FileInput.cjs.map +1 -1
- package/dist/components/FileInput/FileInput.d.ts.map +1 -1
- package/dist/components/FileInput/FileInput.js +10 -2
- package/dist/components/FileInput/FileInput.js.map +1 -1
- package/dist/components/FormField/FormField.cjs +1 -1
- package/dist/components/FormField/FormField.cjs.map +1 -1
- package/dist/components/FormField/FormField.d.ts.map +1 -1
- package/dist/components/FormField/FormField.js +3 -0
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/Grid/Grid.cjs +1 -1
- package/dist/components/Grid/Grid.cjs.map +1 -1
- package/dist/components/Grid/Grid.d.ts +11 -3
- package/dist/components/Grid/Grid.d.ts.map +1 -1
- package/dist/components/Grid/Grid.js +5 -4
- package/dist/components/Grid/Grid.js.map +1 -1
- package/dist/components/Heading/Heading.cjs +1 -1
- package/dist/components/Heading/Heading.cjs.map +1 -1
- package/dist/components/Heading/Heading.d.ts.map +1 -1
- package/dist/components/Heading/Heading.js +1 -0
- package/dist/components/Heading/Heading.js.map +1 -1
- package/dist/components/Heading/Heading.variants.cjs +1 -1
- package/dist/components/Heading/Heading.variants.cjs.map +1 -1
- package/dist/components/Heading/Heading.variants.d.ts +1 -1
- package/dist/components/Heading/Heading.variants.d.ts.map +1 -1
- package/dist/components/Heading/Heading.variants.js +7 -2
- package/dist/components/Heading/Heading.variants.js.map +1 -1
- package/dist/components/Icon/Icon.cjs +1 -1
- package/dist/components/Icon/Icon.cjs.map +1 -1
- package/dist/components/Icon/Icon.d.ts.map +1 -1
- package/dist/components/Icon/Icon.js +1 -0
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/Icon/Icon.variants.cjs.map +1 -1
- package/dist/components/Icon/Icon.variants.d.ts.map +1 -1
- package/dist/components/Icon/Icon.variants.js.map +1 -1
- package/dist/components/Kbd/Kbd.cjs +1 -1
- package/dist/components/Kbd/Kbd.cjs.map +1 -1
- package/dist/components/Kbd/Kbd.d.ts.map +1 -1
- package/dist/components/Kbd/Kbd.js +1 -0
- package/dist/components/Kbd/Kbd.js.map +1 -1
- package/dist/components/Kbd/Kbd.variants.cjs.map +1 -1
- package/dist/components/Kbd/Kbd.variants.d.ts.map +1 -1
- package/dist/components/Kbd/Kbd.variants.js.map +1 -1
- package/dist/components/Label/Label.cjs +1 -1
- package/dist/components/Label/Label.cjs.map +1 -1
- package/dist/components/Label/Label.d.ts +4 -1
- package/dist/components/Label/Label.d.ts.map +1 -1
- package/dist/components/Label/Label.js +21 -10
- package/dist/components/Label/Label.js.map +1 -1
- package/dist/components/Menu/MenuCheckboxItemBase.cjs +1 -1
- package/dist/components/Menu/MenuCheckboxItemBase.cjs.map +1 -1
- package/dist/components/Menu/MenuCheckboxItemBase.d.ts.map +1 -1
- package/dist/components/Menu/MenuCheckboxItemBase.js +3 -0
- package/dist/components/Menu/MenuCheckboxItemBase.js.map +1 -1
- package/dist/components/Menu/MenuContentBase.cjs +1 -1
- package/dist/components/Menu/MenuContentBase.cjs.map +1 -1
- package/dist/components/Menu/MenuContentBase.d.ts.map +1 -1
- package/dist/components/Menu/MenuContentBase.js +1 -0
- package/dist/components/Menu/MenuContentBase.js.map +1 -1
- package/dist/components/Menu/MenuItemBase.cjs +1 -1
- package/dist/components/Menu/MenuItemBase.cjs.map +1 -1
- package/dist/components/Menu/MenuItemBase.d.ts.map +1 -1
- package/dist/components/Menu/MenuItemBase.js +2 -0
- package/dist/components/Menu/MenuItemBase.js.map +1 -1
- package/dist/components/Menu/MenuLabelBase.cjs +1 -1
- package/dist/components/Menu/MenuLabelBase.cjs.map +1 -1
- package/dist/components/Menu/MenuLabelBase.d.ts.map +1 -1
- package/dist/components/Menu/MenuLabelBase.js +2 -0
- package/dist/components/Menu/MenuLabelBase.js.map +1 -1
- package/dist/components/Menu/MenuRadioGroupBase.cjs +1 -1
- package/dist/components/Menu/MenuRadioGroupBase.cjs.map +1 -1
- package/dist/components/Menu/MenuRadioGroupBase.d.ts.map +1 -1
- package/dist/components/Menu/MenuRadioGroupBase.js +2 -0
- package/dist/components/Menu/MenuRadioGroupBase.js.map +1 -1
- package/dist/components/Menu/MenuRadioItemBase.cjs +1 -1
- package/dist/components/Menu/MenuRadioItemBase.cjs.map +1 -1
- package/dist/components/Menu/MenuRadioItemBase.d.ts.map +1 -1
- package/dist/components/Menu/MenuRadioItemBase.js +3 -0
- package/dist/components/Menu/MenuRadioItemBase.js.map +1 -1
- package/dist/components/Menu/MenuSeparatorBase.cjs +1 -1
- package/dist/components/Menu/MenuSeparatorBase.cjs.map +1 -1
- package/dist/components/Menu/MenuSeparatorBase.d.ts.map +1 -1
- package/dist/components/Menu/MenuSeparatorBase.js +2 -0
- package/dist/components/Menu/MenuSeparatorBase.js.map +1 -1
- package/dist/components/Menu/menuItemVariants.cjs +1 -1
- package/dist/components/Menu/menuItemVariants.cjs.map +1 -1
- package/dist/components/Menu/menuItemVariants.js +1 -1
- package/dist/components/Menu/menuItemVariants.js.map +1 -1
- package/dist/components/Menubar/Menubar.cjs +1 -1
- package/dist/components/Menubar/Menubar.cjs.map +1 -1
- package/dist/components/Menubar/Menubar.d.ts.map +1 -1
- package/dist/components/Menubar/Menubar.js +1 -0
- package/dist/components/Menubar/Menubar.js.map +1 -1
- package/dist/components/Menubar/MenubarContent.cjs +1 -1
- package/dist/components/Menubar/MenubarContent.cjs.map +1 -1
- package/dist/components/Menubar/MenubarContent.d.ts.map +1 -1
- package/dist/components/Menubar/MenubarContent.js +1 -0
- package/dist/components/Menubar/MenubarContent.js.map +1 -1
- package/dist/components/Menubar/MenubarTrigger.cjs +1 -1
- package/dist/components/Menubar/MenubarTrigger.cjs.map +1 -1
- package/dist/components/Menubar/MenubarTrigger.d.ts.map +1 -1
- package/dist/components/Menubar/MenubarTrigger.js +2 -1
- package/dist/components/Menubar/MenubarTrigger.js.map +1 -1
- package/dist/components/Nav/Nav.cjs +1 -1
- package/dist/components/Nav/Nav.cjs.map +1 -1
- package/dist/components/Nav/Nav.d.ts.map +1 -1
- package/dist/components/Nav/Nav.js +2 -0
- package/dist/components/Nav/Nav.js.map +1 -1
- package/dist/components/Nav/NavItem.cjs +1 -1
- package/dist/components/Nav/NavItem.cjs.map +1 -1
- package/dist/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/components/Nav/NavItem.js +2 -0
- package/dist/components/Nav/NavItem.js.map +1 -1
- package/dist/components/Nav/NavLink.cjs +1 -1
- package/dist/components/Nav/NavLink.cjs.map +1 -1
- package/dist/components/Nav/NavLink.d.ts.map +1 -1
- package/dist/components/Nav/NavLink.js +3 -1
- package/dist/components/Nav/NavLink.js.map +1 -1
- package/dist/components/Nav/NavList.cjs +1 -1
- package/dist/components/Nav/NavList.cjs.map +1 -1
- package/dist/components/Nav/NavList.d.ts.map +1 -1
- package/dist/components/Nav/NavList.js +2 -0
- package/dist/components/Nav/NavList.js.map +1 -1
- package/dist/components/Nav/NavSubmenu.cjs +1 -1
- package/dist/components/Nav/NavSubmenu.cjs.map +1 -1
- package/dist/components/Nav/NavSubmenu.d.ts.map +1 -1
- package/dist/components/Nav/NavSubmenu.js +2 -0
- package/dist/components/Nav/NavSubmenu.js.map +1 -1
- package/dist/components/Nav/NavTrigger.cjs +1 -1
- package/dist/components/Nav/NavTrigger.cjs.map +1 -1
- package/dist/components/Nav/NavTrigger.d.ts.map +1 -1
- package/dist/components/Nav/NavTrigger.js +4 -1
- package/dist/components/Nav/NavTrigger.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.cjs +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.d.ts.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.js +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuContent.cjs +1 -1
- package/dist/components/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuContent.d.ts.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuContent.js +1 -0
- package/dist/components/NavigationMenu/NavigationMenuContent.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuItem.cjs +1 -1
- package/dist/components/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuItem.d.ts.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuItem.js +1 -0
- package/dist/components/NavigationMenu/NavigationMenuItem.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuLink.cjs +1 -1
- package/dist/components/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuLink.d.ts.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuLink.js +2 -1
- package/dist/components/NavigationMenu/NavigationMenuLink.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuList.cjs +1 -1
- package/dist/components/NavigationMenu/NavigationMenuList.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuList.d.ts.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuList.js +2 -0
- package/dist/components/NavigationMenu/NavigationMenuList.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuTrigger.cjs +1 -1
- package/dist/components/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuTrigger.d.ts.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenuTrigger.js +2 -1
- package/dist/components/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
- package/dist/components/NumberInput/NumberInput.cjs +1 -1
- package/dist/components/NumberInput/NumberInput.cjs.map +1 -1
- package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/components/NumberInput/NumberInput.js +3 -0
- package/dist/components/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/Pagination/Pagination.cjs +1 -1
- package/dist/components/Pagination/Pagination.cjs.map +1 -1
- package/dist/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.js +2 -0
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Pagination/PaginationContent.cjs +1 -1
- package/dist/components/Pagination/PaginationContent.cjs.map +1 -1
- package/dist/components/Pagination/PaginationContent.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationContent.js +2 -0
- package/dist/components/Pagination/PaginationContent.js.map +1 -1
- package/dist/components/Pagination/PaginationEllipsis.cjs +1 -1
- package/dist/components/Pagination/PaginationEllipsis.cjs.map +1 -1
- package/dist/components/Pagination/PaginationEllipsis.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationEllipsis.js +2 -0
- package/dist/components/Pagination/PaginationEllipsis.js.map +1 -1
- package/dist/components/Pagination/PaginationItem.cjs +1 -1
- package/dist/components/Pagination/PaginationItem.cjs.map +1 -1
- package/dist/components/Pagination/PaginationItem.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationItem.js +2 -0
- package/dist/components/Pagination/PaginationItem.js.map +1 -1
- package/dist/components/Pagination/PaginationLink.cjs +1 -1
- package/dist/components/Pagination/PaginationLink.cjs.map +1 -1
- package/dist/components/Pagination/PaginationLink.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationLink.js +2 -0
- package/dist/components/Pagination/PaginationLink.js.map +1 -1
- package/dist/components/Pagination/PaginationNext.cjs +1 -1
- package/dist/components/Pagination/PaginationNext.cjs.map +1 -1
- package/dist/components/Pagination/PaginationNext.d.ts +8 -1
- package/dist/components/Pagination/PaginationNext.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationNext.js +21 -18
- package/dist/components/Pagination/PaginationNext.js.map +1 -1
- package/dist/components/Pagination/PaginationPrevious.cjs +1 -1
- package/dist/components/Pagination/PaginationPrevious.cjs.map +1 -1
- package/dist/components/Pagination/PaginationPrevious.d.ts +8 -1
- package/dist/components/Pagination/PaginationPrevious.d.ts.map +1 -1
- package/dist/components/Pagination/PaginationPrevious.js +21 -18
- package/dist/components/Pagination/PaginationPrevious.js.map +1 -1
- package/dist/components/Popover/PopoverContent.cjs +1 -1
- package/dist/components/Popover/PopoverContent.cjs.map +1 -1
- package/dist/components/Popover/PopoverContent.d.ts.map +1 -1
- package/dist/components/Popover/PopoverContent.js +1 -0
- package/dist/components/Popover/PopoverContent.js.map +1 -1
- package/dist/components/Popover/PopoverTrigger.cjs +1 -1
- package/dist/components/Popover/PopoverTrigger.cjs.map +1 -1
- package/dist/components/Popover/PopoverTrigger.d.ts.map +1 -1
- package/dist/components/Popover/PopoverTrigger.js +1 -0
- package/dist/components/Popover/PopoverTrigger.js.map +1 -1
- package/dist/components/Progress/Progress.variants.cjs.map +1 -1
- package/dist/components/Progress/Progress.variants.d.ts.map +1 -1
- package/dist/components/Progress/Progress.variants.js.map +1 -1
- package/dist/components/RadioGroup/Radio.cjs +1 -1
- package/dist/components/RadioGroup/Radio.cjs.map +1 -1
- package/dist/components/RadioGroup/Radio.d.ts.map +1 -1
- package/dist/components/RadioGroup/Radio.js +4 -0
- package/dist/components/RadioGroup/Radio.js.map +1 -1
- package/dist/components/RadioGroup/Radio.variants.cjs.map +1 -1
- package/dist/components/RadioGroup/Radio.variants.d.ts.map +1 -1
- package/dist/components/RadioGroup/Radio.variants.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.cjs +1 -1
- package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.js +1 -0
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.cjs +1 -1
- package/dist/components/ScrollArea/ScrollArea.cjs.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.js +2 -0
- package/dist/components/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/components/Section/Section.cjs +1 -1
- package/dist/components/Section/Section.cjs.map +1 -1
- package/dist/components/Section/Section.d.ts.map +1 -1
- package/dist/components/Section/Section.js +2 -0
- package/dist/components/Section/Section.js.map +1 -1
- package/dist/components/Select/Select.cjs +1 -1
- package/dist/components/Select/Select.cjs.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +1 -0
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/SelectContent.cjs +1 -1
- package/dist/components/Select/SelectContent.cjs.map +1 -1
- package/dist/components/Select/SelectContent.d.ts.map +1 -1
- package/dist/components/Select/SelectContent.js +1 -0
- package/dist/components/Select/SelectContent.js.map +1 -1
- package/dist/components/Select/SelectItem.cjs +1 -1
- package/dist/components/Select/SelectItem.cjs.map +1 -1
- package/dist/components/Select/SelectItem.d.ts.map +1 -1
- package/dist/components/Select/SelectItem.js +1 -0
- package/dist/components/Select/SelectItem.js.map +1 -1
- package/dist/components/Select/SelectSeparator.cjs +1 -1
- package/dist/components/Select/SelectSeparator.cjs.map +1 -1
- package/dist/components/Select/SelectSeparator.d.ts.map +1 -1
- package/dist/components/Select/SelectSeparator.js +1 -0
- package/dist/components/Select/SelectSeparator.js.map +1 -1
- package/dist/components/Select/SelectTrigger.cjs +1 -1
- package/dist/components/Select/SelectTrigger.cjs.map +1 -1
- package/dist/components/Select/SelectTrigger.d.ts.map +1 -1
- package/dist/components/Select/SelectTrigger.js +1 -0
- package/dist/components/Select/SelectTrigger.js.map +1 -1
- package/dist/components/Sheet/Sheet.cjs +1 -1
- package/dist/components/Sheet/Sheet.cjs.map +1 -1
- package/dist/components/Sheet/Sheet.d.ts.map +1 -1
- package/dist/components/Sheet/Sheet.js +2 -0
- package/dist/components/Sheet/Sheet.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.cjs +1 -1
- package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
- package/dist/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/Sidebar/Sidebar.js +2 -0
- package/dist/components/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/Sidebar/SidebarContent.cjs +1 -1
- package/dist/components/Sidebar/SidebarContent.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarContent.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarContent.js +1 -0
- package/dist/components/Sidebar/SidebarContent.js.map +1 -1
- package/dist/components/Sidebar/SidebarFooter.cjs +1 -1
- package/dist/components/Sidebar/SidebarFooter.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarFooter.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarFooter.js +1 -0
- package/dist/components/Sidebar/SidebarFooter.js.map +1 -1
- package/dist/components/Sidebar/SidebarGroup.cjs +1 -1
- package/dist/components/Sidebar/SidebarGroup.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarGroup.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarGroup.js +1 -0
- package/dist/components/Sidebar/SidebarGroup.js.map +1 -1
- package/dist/components/Sidebar/SidebarGroupLabel.cjs +1 -1
- package/dist/components/Sidebar/SidebarGroupLabel.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarGroupLabel.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarGroupLabel.js +1 -0
- package/dist/components/Sidebar/SidebarGroupLabel.js.map +1 -1
- package/dist/components/Sidebar/SidebarHeader.cjs +1 -1
- package/dist/components/Sidebar/SidebarHeader.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarHeader.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarHeader.js +1 -0
- package/dist/components/Sidebar/SidebarHeader.js.map +1 -1
- package/dist/components/Sidebar/SidebarInset.cjs +1 -1
- package/dist/components/Sidebar/SidebarInset.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarInset.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarInset.js +1 -0
- package/dist/components/Sidebar/SidebarInset.js.map +1 -1
- package/dist/components/Sidebar/SidebarMenu.cjs +1 -1
- package/dist/components/Sidebar/SidebarMenu.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarMenu.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarMenu.js +1 -0
- package/dist/components/Sidebar/SidebarMenu.js.map +1 -1
- package/dist/components/Sidebar/SidebarMenuButton.cjs +1 -1
- package/dist/components/Sidebar/SidebarMenuButton.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarMenuButton.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarMenuButton.js +1 -0
- package/dist/components/Sidebar/SidebarMenuButton.js.map +1 -1
- package/dist/components/Sidebar/SidebarMenuItem.cjs +1 -1
- package/dist/components/Sidebar/SidebarMenuItem.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarMenuItem.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarMenuItem.js +1 -0
- package/dist/components/Sidebar/SidebarMenuItem.js.map +1 -1
- package/dist/components/Sidebar/SidebarProvider.cjs +1 -1
- package/dist/components/Sidebar/SidebarProvider.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarProvider.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarProvider.js +1 -0
- package/dist/components/Sidebar/SidebarProvider.js.map +1 -1
- package/dist/components/Sidebar/SidebarTrigger.cjs +1 -1
- package/dist/components/Sidebar/SidebarTrigger.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarTrigger.d.ts.map +1 -1
- package/dist/components/Sidebar/SidebarTrigger.js +1 -0
- package/dist/components/Sidebar/SidebarTrigger.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.cjs +1 -1
- package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +1 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/SkipLink/SkipLink.cjs +1 -1
- package/dist/components/SkipLink/SkipLink.cjs.map +1 -1
- package/dist/components/SkipLink/SkipLink.d.ts.map +1 -1
- package/dist/components/SkipLink/SkipLink.js +2 -1
- package/dist/components/SkipLink/SkipLink.js.map +1 -1
- package/dist/components/Slider/Slider.cjs +1 -1
- package/dist/components/Slider/Slider.cjs.map +1 -1
- package/dist/components/Slider/Slider.d.ts.map +1 -1
- package/dist/components/Slider/Slider.js +6 -0
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Slider/Slider.variants.cjs.map +1 -1
- package/dist/components/Slider/Slider.variants.d.ts.map +1 -1
- package/dist/components/Slider/Slider.variants.js.map +1 -1
- package/dist/components/Spinner/Spinner.cjs +1 -1
- package/dist/components/Spinner/Spinner.cjs.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts.map +1 -1
- package/dist/components/Spinner/Spinner.js +1 -0
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/Spinner/Spinner.variants.cjs.map +1 -1
- package/dist/components/Spinner/Spinner.variants.d.ts.map +1 -1
- package/dist/components/Spinner/Spinner.variants.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.cjs +1 -1
- package/dist/components/SplitLayout/SplitLayout.cjs.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js +2 -0
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/Stack/Stack.cjs +1 -1
- package/dist/components/Stack/Stack.cjs.map +1 -1
- package/dist/components/Stack/Stack.d.ts +11 -3
- package/dist/components/Stack/Stack.d.ts.map +1 -1
- package/dist/components/Stack/Stack.js +5 -4
- package/dist/components/Stack/Stack.js.map +1 -1
- package/dist/components/Stepper/Stepper.cjs +1 -1
- package/dist/components/Stepper/Stepper.cjs.map +1 -1
- package/dist/components/Stepper/Stepper.d.ts.map +1 -1
- package/dist/components/Stepper/Stepper.js +3 -0
- package/dist/components/Stepper/Stepper.js.map +1 -1
- package/dist/components/Stepper/StepperContent.cjs +1 -1
- package/dist/components/Stepper/StepperContent.cjs.map +1 -1
- package/dist/components/Stepper/StepperContent.d.ts.map +1 -1
- package/dist/components/Stepper/StepperContent.js +1 -0
- package/dist/components/Stepper/StepperContent.js.map +1 -1
- package/dist/components/Stepper/StepperDescription.cjs +1 -1
- package/dist/components/Stepper/StepperDescription.cjs.map +1 -1
- package/dist/components/Stepper/StepperDescription.d.ts.map +1 -1
- package/dist/components/Stepper/StepperDescription.js +1 -0
- package/dist/components/Stepper/StepperDescription.js.map +1 -1
- package/dist/components/Stepper/StepperIndicator.cjs +1 -1
- package/dist/components/Stepper/StepperIndicator.cjs.map +1 -1
- package/dist/components/Stepper/StepperIndicator.d.ts.map +1 -1
- package/dist/components/Stepper/StepperIndicator.js +2 -1
- package/dist/components/Stepper/StepperIndicator.js.map +1 -1
- package/dist/components/Stepper/StepperItem.cjs +1 -1
- package/dist/components/Stepper/StepperItem.cjs.map +1 -1
- package/dist/components/Stepper/StepperItem.d.ts.map +1 -1
- package/dist/components/Stepper/StepperItem.js +1 -0
- package/dist/components/Stepper/StepperItem.js.map +1 -1
- package/dist/components/Stepper/StepperTitle.cjs +1 -1
- package/dist/components/Stepper/StepperTitle.cjs.map +1 -1
- package/dist/components/Stepper/StepperTitle.d.ts.map +1 -1
- package/dist/components/Stepper/StepperTitle.js +1 -0
- package/dist/components/Stepper/StepperTitle.js.map +1 -1
- package/dist/components/Switch/Switch.cjs +1 -1
- package/dist/components/Switch/Switch.cjs.map +1 -1
- package/dist/components/Switch/Switch.d.ts.map +1 -1
- package/dist/components/Switch/Switch.js +6 -3
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Switch/Switch.variants.cjs +1 -1
- package/dist/components/Switch/Switch.variants.cjs.map +1 -1
- package/dist/components/Switch/Switch.variants.d.ts.map +1 -1
- package/dist/components/Switch/Switch.variants.js +4 -4
- package/dist/components/Switch/Switch.variants.js.map +1 -1
- package/dist/components/Table/Table.cjs +1 -1
- package/dist/components/Table/Table.cjs.map +1 -1
- package/dist/components/Table/Table.d.ts.map +1 -1
- package/dist/components/Table/Table.js +3 -0
- package/dist/components/Table/Table.js.map +1 -1
- package/dist/components/Table/TableBody.cjs +1 -1
- package/dist/components/Table/TableBody.cjs.map +1 -1
- package/dist/components/Table/TableBody.d.ts.map +1 -1
- package/dist/components/Table/TableBody.js +2 -0
- package/dist/components/Table/TableBody.js.map +1 -1
- package/dist/components/Table/TableCell.cjs +1 -1
- package/dist/components/Table/TableCell.cjs.map +1 -1
- package/dist/components/Table/TableCell.d.ts.map +1 -1
- package/dist/components/Table/TableCell.js +1 -0
- package/dist/components/Table/TableCell.js.map +1 -1
- package/dist/components/Table/TableFooter.cjs +1 -1
- package/dist/components/Table/TableFooter.cjs.map +1 -1
- package/dist/components/Table/TableFooter.d.ts.map +1 -1
- package/dist/components/Table/TableFooter.js +3 -1
- package/dist/components/Table/TableFooter.js.map +1 -1
- package/dist/components/Table/TableHead.cjs +1 -1
- package/dist/components/Table/TableHead.cjs.map +1 -1
- package/dist/components/Table/TableHead.d.ts.map +1 -1
- package/dist/components/Table/TableHead.js +2 -1
- package/dist/components/Table/TableHead.js.map +1 -1
- package/dist/components/Table/TableHeader.cjs +1 -1
- package/dist/components/Table/TableHeader.cjs.map +1 -1
- package/dist/components/Table/TableHeader.d.ts.map +1 -1
- package/dist/components/Table/TableHeader.js +2 -0
- package/dist/components/Table/TableHeader.js.map +1 -1
- package/dist/components/Table/TableRow.cjs +1 -1
- package/dist/components/Table/TableRow.cjs.map +1 -1
- package/dist/components/Table/TableRow.d.ts.map +1 -1
- package/dist/components/Table/TableRow.js +2 -0
- package/dist/components/Table/TableRow.js.map +1 -1
- package/dist/components/Tabs/Tabs.cjs +1 -1
- package/dist/components/Tabs/Tabs.cjs.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +1 -0
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/TabsContent.cjs +1 -1
- package/dist/components/Tabs/TabsContent.cjs.map +1 -1
- package/dist/components/Tabs/TabsContent.d.ts.map +1 -1
- package/dist/components/Tabs/TabsContent.js +1 -0
- package/dist/components/Tabs/TabsContent.js.map +1 -1
- package/dist/components/Tabs/TabsList.cjs +1 -1
- package/dist/components/Tabs/TabsList.cjs.map +1 -1
- package/dist/components/Tabs/TabsList.d.ts.map +1 -1
- package/dist/components/Tabs/TabsList.js +1 -0
- package/dist/components/Tabs/TabsList.js.map +1 -1
- package/dist/components/Tabs/TabsTrigger.cjs +1 -1
- package/dist/components/Tabs/TabsTrigger.cjs.map +1 -1
- package/dist/components/Tabs/TabsTrigger.d.ts.map +1 -1
- package/dist/components/Tabs/TabsTrigger.js +1 -0
- package/dist/components/Tabs/TabsTrigger.js.map +1 -1
- package/dist/components/Tag/Tag.cjs +1 -1
- package/dist/components/Tag/Tag.cjs.map +1 -1
- package/dist/components/Tag/Tag.d.ts.map +1 -1
- package/dist/components/Tag/Tag.js +1 -0
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/components/Tag/Tag.variants.cjs +1 -1
- package/dist/components/Tag/Tag.variants.cjs.map +1 -1
- package/dist/components/Tag/Tag.variants.js +1 -1
- package/dist/components/Tag/Tag.variants.js.map +1 -1
- package/dist/components/Text/Text.cjs +1 -1
- package/dist/components/Text/Text.cjs.map +1 -1
- package/dist/components/Text/Text.d.ts +1 -1
- package/dist/components/Text/Text.d.ts.map +1 -1
- package/dist/components/Text/Text.js +1 -0
- package/dist/components/Text/Text.js.map +1 -1
- package/dist/components/Text/Text.variants.cjs +1 -1
- package/dist/components/Text/Text.variants.cjs.map +1 -1
- package/dist/components/Text/Text.variants.d.ts +1 -1
- package/dist/components/Text/Text.variants.d.ts.map +1 -1
- package/dist/components/Text/Text.variants.js +6 -1
- package/dist/components/Text/Text.variants.js.map +1 -1
- package/dist/components/Textarea/Textarea.cjs +1 -1
- package/dist/components/Textarea/Textarea.cjs.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea/Textarea.js +1 -0
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Timeline/Timeline.cjs +1 -1
- package/dist/components/Timeline/Timeline.cjs.map +1 -1
- package/dist/components/Timeline/Timeline.d.ts.map +1 -1
- package/dist/components/Timeline/Timeline.js +2 -0
- package/dist/components/Timeline/Timeline.js.map +1 -1
- package/dist/components/Timeline/TimelineItem.cjs +1 -1
- package/dist/components/Timeline/TimelineItem.cjs.map +1 -1
- package/dist/components/Timeline/TimelineItem.d.ts +2 -1
- package/dist/components/Timeline/TimelineItem.d.ts.map +1 -1
- package/dist/components/Timeline/TimelineItem.js +49 -28
- package/dist/components/Timeline/TimelineItem.js.map +1 -1
- package/dist/components/Toast/Toast.cjs +1 -1
- package/dist/components/Toast/Toast.cjs.map +1 -1
- package/dist/components/Toast/Toast.d.ts.map +1 -1
- package/dist/components/Toast/Toast.js +4 -0
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/Toaster.cjs +1 -1
- package/dist/components/Toast/Toaster.cjs.map +1 -1
- package/dist/components/Toast/Toaster.d.ts.map +1 -1
- package/dist/components/Toast/Toaster.js +1 -0
- package/dist/components/Toast/Toaster.js.map +1 -1
- package/dist/components/Tooltip/TooltipContent.cjs +1 -1
- package/dist/components/Tooltip/TooltipContent.cjs.map +1 -1
- package/dist/components/Tooltip/TooltipContent.d.ts.map +1 -1
- package/dist/components/Tooltip/TooltipContent.js +1 -0
- package/dist/components/Tooltip/TooltipContent.js.map +1 -1
- package/dist/components/Tooltip/TooltipTrigger.cjs +1 -1
- package/dist/components/Tooltip/TooltipTrigger.cjs.map +1 -1
- package/dist/components/Tooltip/TooltipTrigger.d.ts.map +1 -1
- package/dist/components/Tooltip/TooltipTrigger.js +1 -0
- package/dist/components/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.cjs +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +190 -188
- package/dist/styles-root.css +13 -1
- package/dist/styles.css +22 -1
- package/dist/utils/_tailwind-safelist.d.ts +2 -0
- package/dist/utils/_tailwind-safelist.d.ts.map +1 -0
- package/dist/utils/dismiss-button.cjs +1 -1
- package/dist/utils/dismiss-button.cjs.map +1 -1
- package/dist/utils/dismiss-button.d.ts.map +1 -1
- package/dist/utils/dismiss-button.js +1 -0
- package/dist/utils/dismiss-button.js.map +1 -1
- package/dist/utils/modal-primitive.cjs +1 -1
- package/dist/utils/modal-primitive.cjs.map +1 -1
- package/dist/utils/modal-primitive.d.ts.map +1 -1
- package/dist/utils/modal-primitive.js +5 -0
- package/dist/utils/modal-primitive.js.map +1 -1
- package/dist/utils/polymorphic.d.ts +11 -0
- package/dist/utils/polymorphic.d.ts.map +1 -0
- package/dist/utils/responsive-maps.cjs +2 -0
- package/dist/utils/responsive-maps.cjs.map +1 -0
- package/dist/utils/responsive-maps.d.ts +50 -0
- package/dist/utils/responsive-maps.d.ts.map +1 -0
- package/dist/utils/responsive-maps.js +103 -0
- package/dist/utils/responsive-maps.js.map +1 -0
- package/dist/utils/responsive.cjs +1 -1
- package/dist/utils/responsive.cjs.map +1 -1
- package/dist/utils/responsive.d.ts +2 -19
- package/dist/utils/responsive.d.ts.map +1 -1
- package/dist/utils/responsive.js +23 -113
- package/dist/utils/responsive.js.map +1 -1
- package/dist/utils/slot.cjs +1 -1
- package/dist/utils/slot.cjs.map +1 -1
- package/dist/utils/slot.d.ts.map +1 -1
- package/dist/utils/slot.js +1 -0
- package/dist/utils/slot.js.map +1 -1
- package/package.json +12 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/slot.cjs`),r=require(`./Section.variants.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/jsx-runtime`);function o({ref:e,as:i=`section`,className:o,spacing:s,background:c,divider:l,asChild:u=!1,...d}){return(0,a.jsx)(u?n.Slot:i,{ref:e,className:t.cn(r.sectionVariants({spacing:s,background:c,divider:l}),o),...d})}o.displayName=`Section`,exports.Section=o;
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/slot.cjs`),r=require(`./Section.variants.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/jsx-runtime`);function o({ref:e,as:i=`section`,className:o,spacing:s,background:c,divider:l,asChild:u=!1,...d}){return(0,a.jsx)(u?n.Slot:i,{ref:e,"data-surface":c===`emphasis`?`inverse`:void 0,className:t.cn(r.sectionVariants({spacing:s,background:c,divider:l}),o),...d})}o.displayName=`Section`,exports.Section=o;
|
|
2
2
|
//# sourceMappingURL=Section.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Section.cjs","names":[],"sources":["../../../src/components/Section/Section.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"Section.cjs","names":[],"sources":["../../../src/components/Section/Section.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@nuka/utils/slot\";\nimport { cn } from \"@nuka/utils/cn\";\nimport {\n sectionVariants,\n type SectionVariantProps,\n} from \"@nuka/components/Section/Section.variants\";\n\ntype SectionElement =\n | \"section\"\n | \"div\"\n | \"article\"\n | \"aside\"\n | \"main\"\n | \"header\"\n | \"footer\";\n\nexport interface SectionProps\n extends React.HTMLAttributes<HTMLElement>, SectionVariantProps {\n ref?: React.Ref<HTMLElement> | undefined;\n as?: SectionElement;\n asChild?: boolean;\n}\n\nfunction Section({\n ref,\n as: Comp = \"section\",\n className,\n spacing,\n background,\n divider,\n asChild = false,\n ...props\n}: SectionProps) {\n const Tag = asChild ? Slot : Comp;\n\n return (\n <Tag\n ref={ref as React.RefObject<never>}\n data-surface={background === \"emphasis\" ? \"inverse\" : undefined}\n className={cn(\n sectionVariants({ spacing, background, divider }),\n className,\n )}\n {...props}\n />\n );\n}\n\nSection.displayName = \"Section\";\n\nexport { Section, sectionVariants };\n"],"mappings":"sPA0BA,SAAS,EAAQ,CACf,MACA,GAAI,EAAO,UACX,YACA,UACA,aACA,UACA,UAAU,GACV,GAAG,GACY,CAGf,OACE,EAAA,EAAA,KAHU,EAAU,EAAA,KAAO,EAG3B,CACO,MACL,eAAc,IAAe,WAAa,UAAY,IAAA,GACtD,UAAW,EAAA,GACT,EAAA,gBAAgB,CAAE,UAAS,aAAY,UAAS,CAAC,CACjD,EACD,CACD,GAAI,EACJ,CAAA,CAIN,EAAQ,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../../src/components/Section/Section.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../../src/components/Section/Section.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACzB,MAAM,2CAA2C,CAAC;AAEnD,KAAK,cAAc,GACf,SAAS,GACT,KAAK,GACL,SAAS,GACT,OAAO,GACP,MAAM,GACN,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,YACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,mBAAmB;IAC9D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;IACzC,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,iBAAS,OAAO,CAAC,EACf,GAAG,EACH,EAAE,EAAE,IAAgB,EACpB,SAAS,EACT,OAAO,EACP,UAAU,EACV,OAAO,EACP,OAAe,EACf,GAAG,KAAK,EACT,EAAE,YAAY,2CAcd;kBAvBQ,OAAO;;;AA2BhB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { cn as e } from "../../utils/cn.js";
|
|
2
3
|
import { Slot as t } from "../../utils/slot.js";
|
|
3
4
|
import { sectionVariants as n } from "./Section.variants.js";
|
|
@@ -7,6 +8,7 @@ import { jsx as r } from "react/jsx-runtime";
|
|
|
7
8
|
function i({ ref: i, as: a = "section", className: o, spacing: s, background: c, divider: l, asChild: u = !1, ...d }) {
|
|
8
9
|
return /* @__PURE__ */ r(u ? t : a, {
|
|
9
10
|
ref: i,
|
|
11
|
+
"data-surface": c === "emphasis" ? "inverse" : void 0,
|
|
10
12
|
className: e(n({
|
|
11
13
|
spacing: s,
|
|
12
14
|
background: c,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Section.js","names":[],"sources":["../../../src/components/Section/Section.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"Section.js","names":[],"sources":["../../../src/components/Section/Section.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@nuka/utils/slot\";\nimport { cn } from \"@nuka/utils/cn\";\nimport {\n sectionVariants,\n type SectionVariantProps,\n} from \"@nuka/components/Section/Section.variants\";\n\ntype SectionElement =\n | \"section\"\n | \"div\"\n | \"article\"\n | \"aside\"\n | \"main\"\n | \"header\"\n | \"footer\";\n\nexport interface SectionProps\n extends React.HTMLAttributes<HTMLElement>, SectionVariantProps {\n ref?: React.Ref<HTMLElement> | undefined;\n as?: SectionElement;\n asChild?: boolean;\n}\n\nfunction Section({\n ref,\n as: Comp = \"section\",\n className,\n spacing,\n background,\n divider,\n asChild = false,\n ...props\n}: SectionProps) {\n const Tag = asChild ? Slot : Comp;\n\n return (\n <Tag\n ref={ref as React.RefObject<never>}\n data-surface={background === \"emphasis\" ? \"inverse\" : undefined}\n className={cn(\n sectionVariants({ spacing, background, divider }),\n className,\n )}\n {...props}\n />\n );\n}\n\nSection.displayName = \"Section\";\n\nexport { Section, sectionVariants };\n"],"mappings":";;;;;;;AA0BA,SAAS,EAAQ,EACf,QACA,IAAI,IAAO,WACX,cACA,YACA,eACA,YACA,aAAU,IACV,GAAG,KACY;AAGf,QACE,kBAHU,IAAU,IAAO,GAG3B;EACO;EACL,gBAAc,MAAe,aAAa,YAAY,KAAA;EACtD,WAAW,EACT,EAAgB;GAAE;GAAS;GAAY;GAAS,CAAC,EACjD,EACD;EACD,GAAI;EACJ,CAAA;;AAIN,EAAQ,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/slot.cjs`),n=require(`../../hooks/use-controllable-state.cjs`),r=require(`../../hooks/use-option-registry.cjs`),i=require(`./Select.context.cjs`);let a=require(`react`);a=e.__toESM(a,1);let o=require(`react/jsx-runtime`);function s({ref:e,children:s,value:c,defaultValue:l,onValueChange:u,open:d,defaultOpen:f=!1,onOpenChange:p,disabled:m=!1,name:h}){let[g,_]=n.useControllableState(c,l,u),[v,y]=n.useControllableState(d,f,p),[b,x]=a.useState(void 0),S=r.useOptionRegistry(),C=a.useRef(null),w=`${a.useId()}-listbox`,T=a.useCallback(e=>{y(e),e||x(void 0)},[y]);return a.useEffect(()=>{if(!v)return;let e=e=>{C.current&&!C.current.contains(e.target)&&T(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[v,T]),(0,o.jsx)(i.SelectContext,{value:a.useMemo(()=>(S.registryVersion,{open:v,value:g,highlightedValue:b,disabled:m,listboxId:w,onOpenChange:T,onValueChange:_,onHighlightChange:x,registerOption:S.registerOption,unregisterOption:S.unregisterOption,getOptions:S.getOptions,getOptionLabel:S.getOptionLabel,getOptionRef:S.getOptionRef,isOptionDisabled:S.isOptionDisabled,registerDisabledOption:S.registerDisabledOption}),[v,g,b,m,w,T,_,S]),children:(0,o.jsxs)(`div`,{ref:t.composeRefs(e,C),className:`relative inline-block w-full`,children:[s,h!==void 0&&(0,o.jsx)(`input`,{type:`hidden`,name:h,value:g??``})]})})}s.displayName=`Select`,exports.Select=s;
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/slot.cjs`),n=require(`../../hooks/use-controllable-state.cjs`),r=require(`../../hooks/use-option-registry.cjs`),i=require(`./Select.context.cjs`);let a=require(`react`);a=e.__toESM(a,1);let o=require(`react/jsx-runtime`);function s({ref:e,children:s,value:c,defaultValue:l,onValueChange:u,open:d,defaultOpen:f=!1,onOpenChange:p,disabled:m=!1,name:h}){let[g,_]=n.useControllableState(c,l,u),[v,y]=n.useControllableState(d,f,p),[b,x]=a.useState(void 0),S=r.useOptionRegistry(),C=a.useRef(null),w=`${a.useId()}-listbox`,T=a.useCallback(e=>{y(e),e||x(void 0)},[y]);return a.useEffect(()=>{if(!v)return;let e=e=>{C.current&&!C.current.contains(e.target)&&T(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[v,T]),(0,o.jsx)(i.SelectContext,{value:a.useMemo(()=>(S.registryVersion,{open:v,value:g,highlightedValue:b,disabled:m,listboxId:w,onOpenChange:T,onValueChange:_,onHighlightChange:x,registerOption:S.registerOption,unregisterOption:S.unregisterOption,getOptions:S.getOptions,getOptionLabel:S.getOptionLabel,getOptionRef:S.getOptionRef,isOptionDisabled:S.isOptionDisabled,registerDisabledOption:S.registerDisabledOption}),[v,g,b,m,w,T,_,S]),children:(0,o.jsxs)(`div`,{ref:t.composeRefs(e,C),"data-slot":`root`,className:`relative inline-block w-full`,children:[s,h!==void 0&&(0,o.jsx)(`input`,{type:`hidden`,name:h,value:g??``})]})})}s.displayName=`Select`,exports.Select=s;
|
|
2
2
|
//# sourceMappingURL=Select.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.cjs","names":[],"sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { useControllableState } from \"@nuka/hooks/use-controllable-state\";\nimport { useOptionRegistry } from \"@nuka/hooks/use-option-registry\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { SelectContext } from \"@nuka/components/Select/Select.context\";\nimport type { SelectContextValue } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n children: React.ReactNode;\n value?: string | undefined;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n name?: string;\n}\n\nfunction Select({\n ref,\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n disabled = false,\n name,\n}: SelectProps) {\n const [currentValue, handleValueChange] = useControllableState(\n controlledValue,\n defaultValue,\n onValueChange,\n );\n const [currentOpen, setOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange,\n );\n const [highlightedValue, setHighlightedValue] = React.useState<\n string | undefined\n >(undefined);\n\n const registry = useOptionRegistry();\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const generatedId = React.useId();\n const listboxId = `${generatedId}-listbox`;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setHighlightedValue(undefined);\n }\n },\n [setOpen],\n );\n\n // TODO: extract to useOutsideClick or migrate to Floating UI useDismiss\n // when SelectContent moves to Portal rendering (deferred from audit batch 2).\n // Close on outside click. Manual listener because Select uses absolute\n // positioning (ADR-013), not Floating UI. A Portal + useFloating refactor\n // would unify this with useDismiss but requires rearchitecting SelectContent.\n React.useEffect(() => {\n if (!currentOpen) return;\n\n const handleMouseDown = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n handleOpenChange(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleMouseDown);\n return () => {\n document.removeEventListener(\"mousedown\", handleMouseDown);\n };\n }, [currentOpen, handleOpenChange]);\n\n const contextValue: SelectContextValue = React.useMemo(() => {\n void registry.registryVersion;\n return {\n open: currentOpen,\n value: currentValue,\n highlightedValue,\n disabled,\n listboxId,\n onOpenChange: handleOpenChange,\n onValueChange: handleValueChange,\n onHighlightChange: setHighlightedValue,\n registerOption: registry.registerOption,\n unregisterOption: registry.unregisterOption,\n getOptions: registry.getOptions,\n getOptionLabel: registry.getOptionLabel,\n getOptionRef: registry.getOptionRef,\n isOptionDisabled: registry.isOptionDisabled,\n registerDisabledOption: registry.registerDisabledOption,\n };\n }, [\n currentOpen,\n currentValue,\n highlightedValue,\n disabled,\n listboxId,\n handleOpenChange,\n handleValueChange,\n registry,\n ]);\n\n return (\n <SelectContext value={contextValue}>\n <div\n ref={composeRefs(ref, rootRef)}\n className=\"relative inline-block w-full\"\n >\n {children}\n {name !== undefined && (\n <input type=\"hidden\" name={name} value={currentValue ?? \"\"} />\n )}\n </div>\n </SelectContext>\n );\n}\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"mappings":"yTAqBA,SAAS,EAAO,CACd,MACA,WACA,MAAO,EACP,eACA,gBACA,KAAM,EACN,cAAc,GACd,eACA,WAAW,GACX,QACc,CACd,GAAM,CAAC,EAAc,GAAqB,EAAA,qBACxC,EACA,EACA,EACD,CACK,CAAC,EAAa,GAAW,EAAA,qBAC7B,EACA,EACA,EACD,CACK,CAAC,EAAkB,GAAuB,EAAM,SAEpD,IAAA,GAAU,CAEN,EAAW,EAAA,mBAAmB,CAC9B,EAAU,EAAM,OAAuB,KAAK,CAG5C,EAAY,GADE,EAAM,OAAO,CACA,UAE3B,EAAmB,EAAM,YAC5B,GAAsB,CACrB,EAAQ,EAAS,CACZ,GACH,EAAoB,IAAA,GAAU,EAGlC,CAAC,EAAQ,CACV,CAoDD,OA7CA,EAAM,cAAgB,CACpB,GAAI,CAAC,EAAa,OAElB,IAAM,EAAmB,GAAkB,CACrC,EAAQ,SAAW,CAAC,EAAQ,QAAQ,SAAS,EAAE,OAAe,EAChE,EAAiB,GAAM,EAK3B,OADA,SAAS,iBAAiB,YAAa,EAAgB,KAC1C,CACX,SAAS,oBAAoB,YAAa,EAAgB,GAE3D,CAAC,EAAa,EAAiB,CAAC,EAiCjC,EAAA,EAAA,KAAC,EAAA,cAAD,CAAe,MA/BwB,EAAM,aACxC,EAAS,gBACP,CACL,KAAM,EACN,MAAO,EACP,mBACA,WACA,YACA,aAAc,EACd,cAAe,EACf,kBAAmB,EACnB,eAAgB,EAAS,eACzB,iBAAkB,EAAS,iBAC3B,WAAY,EAAS,WACrB,eAAgB,EAAS,eACzB,aAAc,EAAS,aACvB,iBAAkB,EAAS,iBAC3B,uBAAwB,EAAS,uBAClC,EACA,CACD,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CAAC,WAIE,EAAA,EAAA,MAAC,MAAD,CACE,IAAK,EAAA,YAAY,EAAK,EAAQ,CAC9B,UAAU,
|
|
1
|
+
{"version":3,"file":"Select.cjs","names":[],"sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { useControllableState } from \"@nuka/hooks/use-controllable-state\";\nimport { useOptionRegistry } from \"@nuka/hooks/use-option-registry\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { SelectContext } from \"@nuka/components/Select/Select.context\";\nimport type { SelectContextValue } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n children: React.ReactNode;\n value?: string | undefined;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n name?: string;\n}\n\nfunction Select({\n ref,\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n disabled = false,\n name,\n}: SelectProps) {\n const [currentValue, handleValueChange] = useControllableState(\n controlledValue,\n defaultValue,\n onValueChange,\n );\n const [currentOpen, setOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange,\n );\n const [highlightedValue, setHighlightedValue] = React.useState<\n string | undefined\n >(undefined);\n\n const registry = useOptionRegistry();\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const generatedId = React.useId();\n const listboxId = `${generatedId}-listbox`;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setHighlightedValue(undefined);\n }\n },\n [setOpen],\n );\n\n // TODO: extract to useOutsideClick or migrate to Floating UI useDismiss\n // when SelectContent moves to Portal rendering (deferred from audit batch 2).\n // Close on outside click. Manual listener because Select uses absolute\n // positioning (ADR-013), not Floating UI. A Portal + useFloating refactor\n // would unify this with useDismiss but requires rearchitecting SelectContent.\n React.useEffect(() => {\n if (!currentOpen) return;\n\n const handleMouseDown = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n handleOpenChange(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleMouseDown);\n return () => {\n document.removeEventListener(\"mousedown\", handleMouseDown);\n };\n }, [currentOpen, handleOpenChange]);\n\n const contextValue: SelectContextValue = React.useMemo(() => {\n void registry.registryVersion;\n return {\n open: currentOpen,\n value: currentValue,\n highlightedValue,\n disabled,\n listboxId,\n onOpenChange: handleOpenChange,\n onValueChange: handleValueChange,\n onHighlightChange: setHighlightedValue,\n registerOption: registry.registerOption,\n unregisterOption: registry.unregisterOption,\n getOptions: registry.getOptions,\n getOptionLabel: registry.getOptionLabel,\n getOptionRef: registry.getOptionRef,\n isOptionDisabled: registry.isOptionDisabled,\n registerDisabledOption: registry.registerDisabledOption,\n };\n }, [\n currentOpen,\n currentValue,\n highlightedValue,\n disabled,\n listboxId,\n handleOpenChange,\n handleValueChange,\n registry,\n ]);\n\n return (\n <SelectContext value={contextValue}>\n <div\n ref={composeRefs(ref, rootRef)}\n data-slot=\"root\"\n className=\"relative inline-block w-full\"\n >\n {children}\n {name !== undefined && (\n <input type=\"hidden\" name={name} value={currentValue ?? \"\"} />\n )}\n </div>\n </SelectContext>\n );\n}\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"mappings":"yTAqBA,SAAS,EAAO,CACd,MACA,WACA,MAAO,EACP,eACA,gBACA,KAAM,EACN,cAAc,GACd,eACA,WAAW,GACX,QACc,CACd,GAAM,CAAC,EAAc,GAAqB,EAAA,qBACxC,EACA,EACA,EACD,CACK,CAAC,EAAa,GAAW,EAAA,qBAC7B,EACA,EACA,EACD,CACK,CAAC,EAAkB,GAAuB,EAAM,SAEpD,IAAA,GAAU,CAEN,EAAW,EAAA,mBAAmB,CAC9B,EAAU,EAAM,OAAuB,KAAK,CAG5C,EAAY,GADE,EAAM,OAAO,CACA,UAE3B,EAAmB,EAAM,YAC5B,GAAsB,CACrB,EAAQ,EAAS,CACZ,GACH,EAAoB,IAAA,GAAU,EAGlC,CAAC,EAAQ,CACV,CAoDD,OA7CA,EAAM,cAAgB,CACpB,GAAI,CAAC,EAAa,OAElB,IAAM,EAAmB,GAAkB,CACrC,EAAQ,SAAW,CAAC,EAAQ,QAAQ,SAAS,EAAE,OAAe,EAChE,EAAiB,GAAM,EAK3B,OADA,SAAS,iBAAiB,YAAa,EAAgB,KAC1C,CACX,SAAS,oBAAoB,YAAa,EAAgB,GAE3D,CAAC,EAAa,EAAiB,CAAC,EAiCjC,EAAA,EAAA,KAAC,EAAA,cAAD,CAAe,MA/BwB,EAAM,aACxC,EAAS,gBACP,CACL,KAAM,EACN,MAAO,EACP,mBACA,WACA,YACA,aAAc,EACd,cAAe,EACf,kBAAmB,EACnB,eAAgB,EAAS,eACzB,iBAAkB,EAAS,iBAC3B,WAAY,EAAS,WACrB,eAAgB,EAAS,eACzB,aAAc,EAAS,aACvB,iBAAkB,EAAS,iBAC3B,uBAAwB,EAAS,uBAClC,EACA,CACD,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CAAC,WAIE,EAAA,EAAA,MAAC,MAAD,CACE,IAAK,EAAA,YAAY,EAAK,EAAQ,CAC9B,YAAU,OACV,UAAU,wCAHZ,CAKG,EACA,IAAS,IAAA,KACR,EAAA,EAAA,KAAC,QAAD,CAAO,KAAK,SAAe,OAAM,MAAO,GAAgB,GAAM,CAAA,CAE5D,GACQ,CAAA,CAIpB,EAAO,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iBAAS,MAAM,CAAC,EACd,GAAG,EACH,QAAQ,EACR,KAAK,EAAE,eAAe,EACtB,YAAY,EACZ,aAAa,EACb,IAAI,EAAE,cAAc,EACpB,WAAmB,EACnB,YAAY,EACZ,QAAgB,EAChB,IAAI,GACL,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iBAAS,MAAM,CAAC,EACd,GAAG,EACH,QAAQ,EACR,KAAK,EAAE,eAAe,EACtB,YAAY,EACZ,aAAa,EACb,IAAI,EAAE,cAAc,EACpB,WAAmB,EACnB,YAAY,EACZ,QAAgB,EAChB,IAAI,GACL,EAAE,WAAW,2CA+Fb;kBA1GQ,MAAM;;;AA8Gf,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -47,6 +47,7 @@ function s({ ref: s, children: c, value: l, defaultValue: u, onValueChange: d, o
|
|
|
47
47
|
]),
|
|
48
48
|
children: /* @__PURE__ */ o("div", {
|
|
49
49
|
ref: e(s, w),
|
|
50
|
+
"data-slot": "root",
|
|
50
51
|
className: "relative inline-block w-full",
|
|
51
52
|
children: [c, g !== void 0 && /* @__PURE__ */ a("input", {
|
|
52
53
|
type: "hidden",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":[],"sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { useControllableState } from \"@nuka/hooks/use-controllable-state\";\nimport { useOptionRegistry } from \"@nuka/hooks/use-option-registry\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { SelectContext } from \"@nuka/components/Select/Select.context\";\nimport type { SelectContextValue } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n children: React.ReactNode;\n value?: string | undefined;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n name?: string;\n}\n\nfunction Select({\n ref,\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n disabled = false,\n name,\n}: SelectProps) {\n const [currentValue, handleValueChange] = useControllableState(\n controlledValue,\n defaultValue,\n onValueChange,\n );\n const [currentOpen, setOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange,\n );\n const [highlightedValue, setHighlightedValue] = React.useState<\n string | undefined\n >(undefined);\n\n const registry = useOptionRegistry();\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const generatedId = React.useId();\n const listboxId = `${generatedId}-listbox`;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setHighlightedValue(undefined);\n }\n },\n [setOpen],\n );\n\n // TODO: extract to useOutsideClick or migrate to Floating UI useDismiss\n // when SelectContent moves to Portal rendering (deferred from audit batch 2).\n // Close on outside click. Manual listener because Select uses absolute\n // positioning (ADR-013), not Floating UI. A Portal + useFloating refactor\n // would unify this with useDismiss but requires rearchitecting SelectContent.\n React.useEffect(() => {\n if (!currentOpen) return;\n\n const handleMouseDown = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n handleOpenChange(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleMouseDown);\n return () => {\n document.removeEventListener(\"mousedown\", handleMouseDown);\n };\n }, [currentOpen, handleOpenChange]);\n\n const contextValue: SelectContextValue = React.useMemo(() => {\n void registry.registryVersion;\n return {\n open: currentOpen,\n value: currentValue,\n highlightedValue,\n disabled,\n listboxId,\n onOpenChange: handleOpenChange,\n onValueChange: handleValueChange,\n onHighlightChange: setHighlightedValue,\n registerOption: registry.registerOption,\n unregisterOption: registry.unregisterOption,\n getOptions: registry.getOptions,\n getOptionLabel: registry.getOptionLabel,\n getOptionRef: registry.getOptionRef,\n isOptionDisabled: registry.isOptionDisabled,\n registerDisabledOption: registry.registerDisabledOption,\n };\n }, [\n currentOpen,\n currentValue,\n highlightedValue,\n disabled,\n listboxId,\n handleOpenChange,\n handleValueChange,\n registry,\n ]);\n\n return (\n <SelectContext value={contextValue}>\n <div\n ref={composeRefs(ref, rootRef)}\n className=\"relative inline-block w-full\"\n >\n {children}\n {name !== undefined && (\n <input type=\"hidden\" name={name} value={currentValue ?? \"\"} />\n )}\n </div>\n </SelectContext>\n );\n}\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"mappings":";;;;;;;;AAqBA,SAAS,EAAO,EACd,QACA,aACA,OAAO,GACP,iBACA,kBACA,MAAM,GACN,iBAAc,IACd,iBACA,cAAW,IACX,WACc;CACd,IAAM,CAAC,GAAc,KAAqB,EACxC,GACA,GACA,EACD,EACK,CAAC,GAAa,KAAW,EAC7B,GACA,GACA,EACD,EACK,CAAC,GAAkB,KAAuB,EAAM,SAEpD,KAAA,EAAU,EAEN,IAAW,GAAmB,EAC9B,IAAU,EAAM,OAAuB,KAAK,EAG5C,IAAY,GADE,EAAM,OAAO,CACA,WAE3B,IAAmB,EAAM,aAC5B,MAAsB;AAErB,EADA,EAAQ,EAAS,EACZ,KACH,EAAoB,KAAA,EAAU;IAGlC,CAAC,EAAQ,CACV;AAoDD,QA7CA,EAAM,gBAAgB;AACpB,MAAI,CAAC,EAAa;EAElB,IAAM,KAAmB,MAAkB;AACzC,GAAI,EAAQ,WAAW,CAAC,EAAQ,QAAQ,SAAS,EAAE,OAAe,IAChE,EAAiB,GAAM;;AAK3B,SADA,SAAS,iBAAiB,aAAa,EAAgB,QAC1C;AACX,YAAS,oBAAoB,aAAa,EAAgB;;IAE3D,CAAC,GAAa,EAAiB,CAAC,EAiCjC,kBAAC,GAAD;EAAe,OA/BwB,EAAM,eACxC,EAAS,iBACP;GACL,MAAM;GACN,OAAO;GACP;GACA;GACA;GACA,cAAc;GACd,eAAe;GACf,mBAAmB;GACnB,gBAAgB,EAAS;GACzB,kBAAkB,EAAS;GAC3B,YAAY,EAAS;GACrB,gBAAgB,EAAS;GACzB,cAAc,EAAS;GACvB,kBAAkB,EAAS;GAC3B,wBAAwB,EAAS;GAClC,GACA;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC;YAIE,kBAAC,OAAD;GACE,KAAK,EAAY,GAAK,EAAQ;GAC9B,WAAU;
|
|
1
|
+
{"version":3,"file":"Select.js","names":[],"sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { useControllableState } from \"@nuka/hooks/use-controllable-state\";\nimport { useOptionRegistry } from \"@nuka/hooks/use-option-registry\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { SelectContext } from \"@nuka/components/Select/Select.context\";\nimport type { SelectContextValue } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n children: React.ReactNode;\n value?: string | undefined;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n name?: string;\n}\n\nfunction Select({\n ref,\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n disabled = false,\n name,\n}: SelectProps) {\n const [currentValue, handleValueChange] = useControllableState(\n controlledValue,\n defaultValue,\n onValueChange,\n );\n const [currentOpen, setOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange,\n );\n const [highlightedValue, setHighlightedValue] = React.useState<\n string | undefined\n >(undefined);\n\n const registry = useOptionRegistry();\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const generatedId = React.useId();\n const listboxId = `${generatedId}-listbox`;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setHighlightedValue(undefined);\n }\n },\n [setOpen],\n );\n\n // TODO: extract to useOutsideClick or migrate to Floating UI useDismiss\n // when SelectContent moves to Portal rendering (deferred from audit batch 2).\n // Close on outside click. Manual listener because Select uses absolute\n // positioning (ADR-013), not Floating UI. A Portal + useFloating refactor\n // would unify this with useDismiss but requires rearchitecting SelectContent.\n React.useEffect(() => {\n if (!currentOpen) return;\n\n const handleMouseDown = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n handleOpenChange(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleMouseDown);\n return () => {\n document.removeEventListener(\"mousedown\", handleMouseDown);\n };\n }, [currentOpen, handleOpenChange]);\n\n const contextValue: SelectContextValue = React.useMemo(() => {\n void registry.registryVersion;\n return {\n open: currentOpen,\n value: currentValue,\n highlightedValue,\n disabled,\n listboxId,\n onOpenChange: handleOpenChange,\n onValueChange: handleValueChange,\n onHighlightChange: setHighlightedValue,\n registerOption: registry.registerOption,\n unregisterOption: registry.unregisterOption,\n getOptions: registry.getOptions,\n getOptionLabel: registry.getOptionLabel,\n getOptionRef: registry.getOptionRef,\n isOptionDisabled: registry.isOptionDisabled,\n registerDisabledOption: registry.registerDisabledOption,\n };\n }, [\n currentOpen,\n currentValue,\n highlightedValue,\n disabled,\n listboxId,\n handleOpenChange,\n handleValueChange,\n registry,\n ]);\n\n return (\n <SelectContext value={contextValue}>\n <div\n ref={composeRefs(ref, rootRef)}\n data-slot=\"root\"\n className=\"relative inline-block w-full\"\n >\n {children}\n {name !== undefined && (\n <input type=\"hidden\" name={name} value={currentValue ?? \"\"} />\n )}\n </div>\n </SelectContext>\n );\n}\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"mappings":";;;;;;;;AAqBA,SAAS,EAAO,EACd,QACA,aACA,OAAO,GACP,iBACA,kBACA,MAAM,GACN,iBAAc,IACd,iBACA,cAAW,IACX,WACc;CACd,IAAM,CAAC,GAAc,KAAqB,EACxC,GACA,GACA,EACD,EACK,CAAC,GAAa,KAAW,EAC7B,GACA,GACA,EACD,EACK,CAAC,GAAkB,KAAuB,EAAM,SAEpD,KAAA,EAAU,EAEN,IAAW,GAAmB,EAC9B,IAAU,EAAM,OAAuB,KAAK,EAG5C,IAAY,GADE,EAAM,OAAO,CACA,WAE3B,IAAmB,EAAM,aAC5B,MAAsB;AAErB,EADA,EAAQ,EAAS,EACZ,KACH,EAAoB,KAAA,EAAU;IAGlC,CAAC,EAAQ,CACV;AAoDD,QA7CA,EAAM,gBAAgB;AACpB,MAAI,CAAC,EAAa;EAElB,IAAM,KAAmB,MAAkB;AACzC,GAAI,EAAQ,WAAW,CAAC,EAAQ,QAAQ,SAAS,EAAE,OAAe,IAChE,EAAiB,GAAM;;AAK3B,SADA,SAAS,iBAAiB,aAAa,EAAgB,QAC1C;AACX,YAAS,oBAAoB,aAAa,EAAgB;;IAE3D,CAAC,GAAa,EAAiB,CAAC,EAiCjC,kBAAC,GAAD;EAAe,OA/BwB,EAAM,eACxC,EAAS,iBACP;GACL,MAAM;GACN,OAAO;GACP;GACA;GACA;GACA,cAAc;GACd,eAAe;GACf,mBAAmB;GACnB,gBAAgB,EAAS;GACzB,kBAAkB,EAAS;GAC3B,YAAY,EAAS;GACrB,gBAAgB,EAAS;GACzB,cAAc,EAAS;GACvB,kBAAkB,EAAS;GAC3B,wBAAwB,EAAS;GAClC,GACA;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC;YAIE,kBAAC,OAAD;GACE,KAAK,EAAY,GAAK,EAAQ;GAC9B,aAAU;GACV,WAAU;aAHZ,CAKG,GACA,MAAS,KAAA,KACR,kBAAC,SAAD;IAAO,MAAK;IAAe;IAAM,OAAO,KAAgB;IAAM,CAAA,CAE5D;;EACQ,CAAA;;AAIpB,EAAO,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`./Select.context.cjs`);let r=require(`react`);r=e.__toESM(r,1);let i=require(`react/jsx-runtime`);function a({ref:e,className:r,children:a}){let o=n.useSelect();return(0,i.jsx)(`div`,{ref:e,id:o.listboxId,role:`listbox`,hidden:!o.open,className:t.cn(`absolute left-0 w-full`,`z-(--nuka-z-dropdown)`,`bg-(--nuka-bg-base)`,`border border-(--nuka-border-base)`,`rounded-(--radius-md)`,`shadow-md`,`py-(--space-1)`,`mt-(--space-1)`,`max-h-60 overflow-y-auto`,r),children:a})}a.displayName=`SelectContent`,exports.SelectContent=a;
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`./Select.context.cjs`);let r=require(`react`);r=e.__toESM(r,1);let i=require(`react/jsx-runtime`);function a({ref:e,className:r,children:a}){let o=n.useSelect();return(0,i.jsx)(`div`,{ref:e,id:o.listboxId,"data-slot":`content`,role:`listbox`,hidden:!o.open,className:t.cn(`absolute left-0 w-full`,`z-(--nuka-z-dropdown)`,`bg-(--nuka-bg-base)`,`border border-(--nuka-border-base)`,`rounded-(--radius-md)`,`shadow-md`,`py-(--space-1)`,`mt-(--space-1)`,`max-h-60 overflow-y-auto`,r),children:a})}a.displayName=`SelectContent`,exports.SelectContent=a;
|
|
2
2
|
//# sourceMappingURL=SelectContent.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectContent.cjs","names":[],"sources":["../../../src/components/Select/SelectContent.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectContentProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n className?: string;\n children: React.ReactNode;\n}\n\n// TODO: migrate to Portal + Floating UI positioning to avoid overflow/stacking\n// context clipping (deferred from audit batch 2).\nfunction SelectContent({ ref, className, children }: SelectContentProps) {\n const ctx = useSelect();\n\n return (\n <div\n ref={ref}\n id={ctx.listboxId}\n role=\"listbox\"\n hidden={!ctx.open}\n className={cn(\n \"absolute left-0 w-full\",\n \"z-(--nuka-z-dropdown)\",\n \"bg-(--nuka-bg-base)\",\n \"border border-(--nuka-border-base)\",\n \"rounded-(--radius-md)\",\n \"shadow-md\",\n \"py-(--space-1)\",\n \"mt-(--space-1)\",\n \"max-h-60 overflow-y-auto\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nSelectContent.displayName = \"SelectContent\";\n\nexport { SelectContent };\n"],"mappings":"kNAaA,SAAS,EAAc,CAAE,MAAK,YAAW,YAAgC,CACvE,IAAM,EAAM,EAAA,WAAW,CAEvB,OACE,EAAA,EAAA,KAAC,MAAD,CACO,MACL,GAAI,EAAI,UACR,KAAK,UACL,OAAQ,CAAC,EAAI,KACb,UAAW,EAAA,GACT,yBACA,wBACA,sBACA,qCACA,wBACA,YACA,iBACA,iBACA,2BACA,EACD,CAEA,WACG,CAAA,CAIV,EAAc,YAAc"}
|
|
1
|
+
{"version":3,"file":"SelectContent.cjs","names":[],"sources":["../../../src/components/Select/SelectContent.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectContentProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n className?: string;\n children: React.ReactNode;\n}\n\n// TODO: migrate to Portal + Floating UI positioning to avoid overflow/stacking\n// context clipping (deferred from audit batch 2).\nfunction SelectContent({ ref, className, children }: SelectContentProps) {\n const ctx = useSelect();\n\n return (\n <div\n ref={ref}\n id={ctx.listboxId}\n data-slot=\"content\"\n role=\"listbox\"\n hidden={!ctx.open}\n className={cn(\n \"absolute left-0 w-full\",\n \"z-(--nuka-z-dropdown)\",\n \"bg-(--nuka-bg-base)\",\n \"border border-(--nuka-border-base)\",\n \"rounded-(--radius-md)\",\n \"shadow-md\",\n \"py-(--space-1)\",\n \"mt-(--space-1)\",\n \"max-h-60 overflow-y-auto\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nSelectContent.displayName = \"SelectContent\";\n\nexport { SelectContent };\n"],"mappings":"kNAaA,SAAS,EAAc,CAAE,MAAK,YAAW,YAAgC,CACvE,IAAM,EAAM,EAAA,WAAW,CAEvB,OACE,EAAA,EAAA,KAAC,MAAD,CACO,MACL,GAAI,EAAI,UACR,YAAU,UACV,KAAK,UACL,OAAQ,CAAC,EAAI,KACb,UAAW,EAAA,GACT,yBACA,wBACA,sBACA,qCACA,wBACA,YACA,iBACA,iBACA,2BACA,EACD,CAEA,WACG,CAAA,CAIV,EAAc,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectContent.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAID,iBAAS,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"SelectContent.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAID,iBAAS,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CA0BtE;kBA1BQ,aAAa;;;AA8BtB,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -9,6 +9,7 @@ function r({ ref: r, className: i, children: a }) {
|
|
|
9
9
|
return /* @__PURE__ */ n("div", {
|
|
10
10
|
ref: r,
|
|
11
11
|
id: o.listboxId,
|
|
12
|
+
"data-slot": "content",
|
|
12
13
|
role: "listbox",
|
|
13
14
|
hidden: !o.open,
|
|
14
15
|
className: e("absolute left-0 w-full", "z-(--nuka-z-dropdown)", "bg-(--nuka-bg-base)", "border border-(--nuka-border-base)", "rounded-(--radius-md)", "shadow-md", "py-(--space-1)", "mt-(--space-1)", "max-h-60 overflow-y-auto", i),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectContent.js","names":[],"sources":["../../../src/components/Select/SelectContent.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectContentProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n className?: string;\n children: React.ReactNode;\n}\n\n// TODO: migrate to Portal + Floating UI positioning to avoid overflow/stacking\n// context clipping (deferred from audit batch 2).\nfunction SelectContent({ ref, className, children }: SelectContentProps) {\n const ctx = useSelect();\n\n return (\n <div\n ref={ref}\n id={ctx.listboxId}\n role=\"listbox\"\n hidden={!ctx.open}\n className={cn(\n \"absolute left-0 w-full\",\n \"z-(--nuka-z-dropdown)\",\n \"bg-(--nuka-bg-base)\",\n \"border border-(--nuka-border-base)\",\n \"rounded-(--radius-md)\",\n \"shadow-md\",\n \"py-(--space-1)\",\n \"mt-(--space-1)\",\n \"max-h-60 overflow-y-auto\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nSelectContent.displayName = \"SelectContent\";\n\nexport { SelectContent };\n"],"mappings":";;;;;;AAaA,SAAS,EAAc,EAAE,QAAK,cAAW,eAAgC;CACvE,IAAM,IAAM,GAAW;AAEvB,QACE,kBAAC,OAAD;EACO;EACL,IAAI,EAAI;EACR,MAAK;EACL,QAAQ,CAAC,EAAI;EACb,WAAW,EACT,0BACA,yBACA,uBACA,sCACA,yBACA,aACA,kBACA,kBACA,4BACA,EACD;EAEA;EACG,CAAA;;AAIV,EAAc,cAAc"}
|
|
1
|
+
{"version":3,"file":"SelectContent.js","names":[],"sources":["../../../src/components/Select/SelectContent.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectContentProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n className?: string;\n children: React.ReactNode;\n}\n\n// TODO: migrate to Portal + Floating UI positioning to avoid overflow/stacking\n// context clipping (deferred from audit batch 2).\nfunction SelectContent({ ref, className, children }: SelectContentProps) {\n const ctx = useSelect();\n\n return (\n <div\n ref={ref}\n id={ctx.listboxId}\n data-slot=\"content\"\n role=\"listbox\"\n hidden={!ctx.open}\n className={cn(\n \"absolute left-0 w-full\",\n \"z-(--nuka-z-dropdown)\",\n \"bg-(--nuka-bg-base)\",\n \"border border-(--nuka-border-base)\",\n \"rounded-(--radius-md)\",\n \"shadow-md\",\n \"py-(--space-1)\",\n \"mt-(--space-1)\",\n \"max-h-60 overflow-y-auto\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nSelectContent.displayName = \"SelectContent\";\n\nexport { SelectContent };\n"],"mappings":";;;;;;AAaA,SAAS,EAAc,EAAE,QAAK,cAAW,eAAgC;CACvE,IAAM,IAAM,GAAW;AAEvB,QACE,kBAAC,OAAD;EACO;EACL,IAAI,EAAI;EACR,aAAU;EACV,MAAK;EACL,QAAQ,CAAC,EAAI;EACb,WAAW,EACT,0BACA,yBACA,uBACA,sCACA,yBACA,aACA,kBACA,kBACA,4BACA,EACD;EAEA;EACG,CAAA;;AAIV,EAAc,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/slot.cjs`),r=require(`./Select.context.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/jsx-runtime`);function o(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function s({ref:e,value:s,disabled:c=!1,className:l,children:u}){let d=r.useSelect(),f=i.useRef(null),p=n.composeRefs(e,f),m=d.value===s,h=d.highlightedValue===s,g=`${d.listboxId}-option-${s}`,_=o(u);return i.useLayoutEffect(()=>(d.registerOption(s,_,f.current),()=>{d.unregisterOption(s)}),[]),i.useEffect(()=>{d.registerDisabledOption(s,c)},[d,s,c]),(0,a.jsx)(`div`,{ref:p,id:g,role:`option`,"aria-selected":m,"aria-disabled":c||void 0,className:t.cn(`px-(--space-3) py-(--space-2)`,`text-sm`,`cursor-pointer`,`select-none`,`text-(--nuka-text-base)`,c&&`opacity-50 cursor-not-allowed pointer-events-none`,m&&!h&&`bg-(--nuka-accent-bg-subtle) text-(--nuka-accent-text)`,h&&`bg-(--nuka-bg-muted) outline-none`,!m&&!h&&!c&&`hover:bg-(--nuka-bg-muted)`,l),onClick:()=>{c||(d.onValueChange(s),d.onOpenChange(!1))},children:u})}s.displayName=`SelectItem`,exports.SelectItem=s;
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/slot.cjs`),r=require(`./Select.context.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/jsx-runtime`);function o(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function s({ref:e,value:s,disabled:c=!1,className:l,children:u}){let d=r.useSelect(),f=i.useRef(null),p=n.composeRefs(e,f),m=d.value===s,h=d.highlightedValue===s,g=`${d.listboxId}-option-${s}`,_=o(u);return i.useLayoutEffect(()=>(d.registerOption(s,_,f.current),()=>{d.unregisterOption(s)}),[]),i.useEffect(()=>{d.registerDisabledOption(s,c)},[d,s,c]),(0,a.jsx)(`div`,{ref:p,id:g,"data-slot":`item`,role:`option`,"aria-selected":m,"aria-disabled":c||void 0,className:t.cn(`px-(--space-3) py-(--space-2)`,`text-sm`,`cursor-pointer`,`select-none`,`text-(--nuka-text-base)`,c&&`opacity-50 cursor-not-allowed pointer-events-none`,m&&!h&&`bg-(--nuka-accent-bg-subtle) text-(--nuka-accent-text)`,h&&`bg-(--nuka-bg-muted) outline-none`,!m&&!h&&!c&&`hover:bg-(--nuka-bg-muted)`,l),onClick:()=>{c||(d.onValueChange(s),d.onOpenChange(!1))},children:u})}s.displayName=`SelectItem`,exports.SelectItem=s;
|
|
2
2
|
//# sourceMappingURL=SelectItem.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectItem.cjs","names":[],"sources":["../../../src/components/Select/SelectItem.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectItemProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n value: string;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nfunction getLabel(children: React.ReactNode): string {\n if (typeof children === \"string\") return children;\n if (typeof children === \"number\") return String(children);\n return \"\";\n}\n\nfunction SelectItem({\n ref,\n value,\n disabled = false,\n className,\n children,\n}: SelectItemProps) {\n const ctx = useSelect();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, internalRef);\n\n const isSelected = ctx.value === value;\n const isHighlighted = ctx.highlightedValue === value;\n const optionId = `${ctx.listboxId}-option-${value}`;\n const label = getLabel(children);\n\n React.useLayoutEffect(() => {\n ctx.registerOption(value, label, internalRef.current);\n return () => {\n ctx.unregisterOption(value);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- register once on mount, unregister on unmount\n }, []);\n\n React.useEffect(() => {\n ctx.registerDisabledOption(value, disabled);\n }, [ctx, value, disabled]);\n\n const handleClick = () => {\n if (disabled) return;\n ctx.onValueChange(value);\n ctx.onOpenChange(false);\n };\n\n return (\n <div\n ref={composedRef}\n id={optionId}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n className={cn(\n \"px-(--space-3) py-(--space-2)\",\n \"text-sm\",\n \"cursor-pointer\",\n \"select-none\",\n \"text-(--nuka-text-base)\",\n disabled && \"opacity-50 cursor-not-allowed pointer-events-none\",\n isSelected &&\n !isHighlighted &&\n \"bg-(--nuka-accent-bg-subtle) text-(--nuka-accent-text)\",\n isHighlighted && \"bg-(--nuka-bg-muted) outline-none\",\n !isSelected &&\n !isHighlighted &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n className,\n )}\n onClick={handleClick}\n >\n {children}\n </div>\n );\n}\n\nSelectItem.displayName = \"SelectItem\";\n\nexport { SelectItem };\n"],"mappings":"oPAcA,SAAS,EAAS,EAAmC,CAGnD,OAFI,OAAO,GAAa,SAAiB,EACrC,OAAO,GAAa,SAAiB,OAAO,EAAS,CAClD,GAGT,SAAS,EAAW,CAClB,MACA,QACA,WAAW,GACX,YACA,YACkB,CAClB,IAAM,EAAM,EAAA,WAAW,CACjB,EAAc,EAAM,OAAuB,KAAK,CAChD,EAAc,EAAA,YAAY,EAAK,EAAY,CAE3C,EAAa,EAAI,QAAU,EAC3B,EAAgB,EAAI,mBAAqB,EACzC,EAAW,GAAG,EAAI,UAAU,UAAU,IACtC,EAAQ,EAAS,EAAS,CAoBhC,OAlBA,EAAM,qBACJ,EAAI,eAAe,EAAO,EAAO,EAAY,QAAQ,KACxC,CACX,EAAI,iBAAiB,EAAM,GAG5B,EAAE,CAAC,CAEN,EAAM,cAAgB,CACpB,EAAI,uBAAuB,EAAO,EAAS,EAC1C,CAAC,EAAK,EAAO,EAAS,CAAC,EASxB,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,GAAI,EACJ,KAAK,SACL,gBAAe,EACf,gBAAe,GAAY,IAAA,GAC3B,UAAW,EAAA,GACT,gCACA,UACA,iBACA,cACA,0BACA,GAAY,oDACZ,GACE,CAAC,GACD,yDACF,GAAiB,oCACjB,CAAC,GACC,CAAC,GACD,CAAC,GACD,6BACF,EACD,CACD,
|
|
1
|
+
{"version":3,"file":"SelectItem.cjs","names":[],"sources":["../../../src/components/Select/SelectItem.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectItemProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n value: string;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nfunction getLabel(children: React.ReactNode): string {\n if (typeof children === \"string\") return children;\n if (typeof children === \"number\") return String(children);\n return \"\";\n}\n\nfunction SelectItem({\n ref,\n value,\n disabled = false,\n className,\n children,\n}: SelectItemProps) {\n const ctx = useSelect();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, internalRef);\n\n const isSelected = ctx.value === value;\n const isHighlighted = ctx.highlightedValue === value;\n const optionId = `${ctx.listboxId}-option-${value}`;\n const label = getLabel(children);\n\n React.useLayoutEffect(() => {\n ctx.registerOption(value, label, internalRef.current);\n return () => {\n ctx.unregisterOption(value);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- register once on mount, unregister on unmount\n }, []);\n\n React.useEffect(() => {\n ctx.registerDisabledOption(value, disabled);\n }, [ctx, value, disabled]);\n\n const handleClick = () => {\n if (disabled) return;\n ctx.onValueChange(value);\n ctx.onOpenChange(false);\n };\n\n return (\n <div\n ref={composedRef}\n id={optionId}\n data-slot=\"item\"\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n className={cn(\n \"px-(--space-3) py-(--space-2)\",\n \"text-sm\",\n \"cursor-pointer\",\n \"select-none\",\n \"text-(--nuka-text-base)\",\n disabled && \"opacity-50 cursor-not-allowed pointer-events-none\",\n isSelected &&\n !isHighlighted &&\n \"bg-(--nuka-accent-bg-subtle) text-(--nuka-accent-text)\",\n isHighlighted && \"bg-(--nuka-bg-muted) outline-none\",\n !isSelected &&\n !isHighlighted &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n className,\n )}\n onClick={handleClick}\n >\n {children}\n </div>\n );\n}\n\nSelectItem.displayName = \"SelectItem\";\n\nexport { SelectItem };\n"],"mappings":"oPAcA,SAAS,EAAS,EAAmC,CAGnD,OAFI,OAAO,GAAa,SAAiB,EACrC,OAAO,GAAa,SAAiB,OAAO,EAAS,CAClD,GAGT,SAAS,EAAW,CAClB,MACA,QACA,WAAW,GACX,YACA,YACkB,CAClB,IAAM,EAAM,EAAA,WAAW,CACjB,EAAc,EAAM,OAAuB,KAAK,CAChD,EAAc,EAAA,YAAY,EAAK,EAAY,CAE3C,EAAa,EAAI,QAAU,EAC3B,EAAgB,EAAI,mBAAqB,EACzC,EAAW,GAAG,EAAI,UAAU,UAAU,IACtC,EAAQ,EAAS,EAAS,CAoBhC,OAlBA,EAAM,qBACJ,EAAI,eAAe,EAAO,EAAO,EAAY,QAAQ,KACxC,CACX,EAAI,iBAAiB,EAAM,GAG5B,EAAE,CAAC,CAEN,EAAM,cAAgB,CACpB,EAAI,uBAAuB,EAAO,EAAS,EAC1C,CAAC,EAAK,EAAO,EAAS,CAAC,EASxB,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,GAAI,EACJ,YAAU,OACV,KAAK,SACL,gBAAe,EACf,gBAAe,GAAY,IAAA,GAC3B,UAAW,EAAA,GACT,gCACA,UACA,iBACA,cACA,0BACA,GAAY,oDACZ,GACE,CAAC,GACD,yDACF,GAAiB,oCACjB,CAAC,GACC,CAAC,GACD,CAAC,GACD,6BACF,EACD,CACD,YA/BsB,CACpB,IACJ,EAAI,cAAc,EAAM,CACxB,EAAI,aAAa,GAAM,GA8BpB,WACG,CAAA,CAIV,EAAW,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectItem.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAQD,iBAAS,UAAU,CAAC,EAClB,GAAG,EACH,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"SelectItem.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAQD,iBAAS,UAAU,CAAC,EAClB,GAAG,EACH,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,eAAe,2CA0DjB;kBAhEQ,UAAU;;;AAoEnB,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectItem.js","names":[],"sources":["../../../src/components/Select/SelectItem.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectItemProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n value: string;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nfunction getLabel(children: React.ReactNode): string {\n if (typeof children === \"string\") return children;\n if (typeof children === \"number\") return String(children);\n return \"\";\n}\n\nfunction SelectItem({\n ref,\n value,\n disabled = false,\n className,\n children,\n}: SelectItemProps) {\n const ctx = useSelect();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, internalRef);\n\n const isSelected = ctx.value === value;\n const isHighlighted = ctx.highlightedValue === value;\n const optionId = `${ctx.listboxId}-option-${value}`;\n const label = getLabel(children);\n\n React.useLayoutEffect(() => {\n ctx.registerOption(value, label, internalRef.current);\n return () => {\n ctx.unregisterOption(value);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- register once on mount, unregister on unmount\n }, []);\n\n React.useEffect(() => {\n ctx.registerDisabledOption(value, disabled);\n }, [ctx, value, disabled]);\n\n const handleClick = () => {\n if (disabled) return;\n ctx.onValueChange(value);\n ctx.onOpenChange(false);\n };\n\n return (\n <div\n ref={composedRef}\n id={optionId}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n className={cn(\n \"px-(--space-3) py-(--space-2)\",\n \"text-sm\",\n \"cursor-pointer\",\n \"select-none\",\n \"text-(--nuka-text-base)\",\n disabled && \"opacity-50 cursor-not-allowed pointer-events-none\",\n isSelected &&\n !isHighlighted &&\n \"bg-(--nuka-accent-bg-subtle) text-(--nuka-accent-text)\",\n isHighlighted && \"bg-(--nuka-bg-muted) outline-none\",\n !isSelected &&\n !isHighlighted &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n className,\n )}\n onClick={handleClick}\n >\n {children}\n </div>\n );\n}\n\nSelectItem.displayName = \"SelectItem\";\n\nexport { SelectItem };\n"],"mappings":";;;;;;;AAcA,SAAS,EAAS,GAAmC;AAGnD,QAFI,OAAO,KAAa,WAAiB,IACrC,OAAO,KAAa,WAAiB,OAAO,EAAS,GAClD;;AAGT,SAAS,EAAW,EAClB,QACA,UACA,cAAW,IACX,cACA,eACkB;CAClB,IAAM,IAAM,GAAW,EACjB,IAAc,EAAM,OAAuB,KAAK,EAChD,IAAc,EAAY,GAAK,EAAY,EAE3C,IAAa,EAAI,UAAU,GAC3B,IAAgB,EAAI,qBAAqB,GACzC,IAAW,GAAG,EAAI,UAAU,UAAU,KACtC,IAAQ,EAAS,EAAS;AAoBhC,QAlBA,EAAM,uBACJ,EAAI,eAAe,GAAO,GAAO,EAAY,QAAQ,QACxC;AACX,IAAI,iBAAiB,EAAM;KAG5B,EAAE,CAAC,EAEN,EAAM,gBAAgB;AACpB,IAAI,uBAAuB,GAAO,EAAS;IAC1C;EAAC;EAAK;EAAO;EAAS,CAAC,EASxB,kBAAC,OAAD;EACE,KAAK;EACL,IAAI;EACJ,MAAK;EACL,iBAAe;EACf,iBAAe,KAAY,KAAA;EAC3B,WAAW,EACT,iCACA,WACA,kBACA,eACA,2BACA,KAAY,qDACZ,KACE,CAAC,KACD,0DACF,KAAiB,qCACjB,CAAC,KACC,CAAC,KACD,CAAC,KACD,8BACF,EACD;EACD,
|
|
1
|
+
{"version":3,"file":"SelectItem.js","names":[],"sources":["../../../src/components/Select/SelectItem.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\n\nexport interface SelectItemProps {\n ref?: React.Ref<HTMLDivElement> | undefined;\n value: string;\n disabled?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nfunction getLabel(children: React.ReactNode): string {\n if (typeof children === \"string\") return children;\n if (typeof children === \"number\") return String(children);\n return \"\";\n}\n\nfunction SelectItem({\n ref,\n value,\n disabled = false,\n className,\n children,\n}: SelectItemProps) {\n const ctx = useSelect();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, internalRef);\n\n const isSelected = ctx.value === value;\n const isHighlighted = ctx.highlightedValue === value;\n const optionId = `${ctx.listboxId}-option-${value}`;\n const label = getLabel(children);\n\n React.useLayoutEffect(() => {\n ctx.registerOption(value, label, internalRef.current);\n return () => {\n ctx.unregisterOption(value);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- register once on mount, unregister on unmount\n }, []);\n\n React.useEffect(() => {\n ctx.registerDisabledOption(value, disabled);\n }, [ctx, value, disabled]);\n\n const handleClick = () => {\n if (disabled) return;\n ctx.onValueChange(value);\n ctx.onOpenChange(false);\n };\n\n return (\n <div\n ref={composedRef}\n id={optionId}\n data-slot=\"item\"\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n className={cn(\n \"px-(--space-3) py-(--space-2)\",\n \"text-sm\",\n \"cursor-pointer\",\n \"select-none\",\n \"text-(--nuka-text-base)\",\n disabled && \"opacity-50 cursor-not-allowed pointer-events-none\",\n isSelected &&\n !isHighlighted &&\n \"bg-(--nuka-accent-bg-subtle) text-(--nuka-accent-text)\",\n isHighlighted && \"bg-(--nuka-bg-muted) outline-none\",\n !isSelected &&\n !isHighlighted &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n className,\n )}\n onClick={handleClick}\n >\n {children}\n </div>\n );\n}\n\nSelectItem.displayName = \"SelectItem\";\n\nexport { SelectItem };\n"],"mappings":";;;;;;;AAcA,SAAS,EAAS,GAAmC;AAGnD,QAFI,OAAO,KAAa,WAAiB,IACrC,OAAO,KAAa,WAAiB,OAAO,EAAS,GAClD;;AAGT,SAAS,EAAW,EAClB,QACA,UACA,cAAW,IACX,cACA,eACkB;CAClB,IAAM,IAAM,GAAW,EACjB,IAAc,EAAM,OAAuB,KAAK,EAChD,IAAc,EAAY,GAAK,EAAY,EAE3C,IAAa,EAAI,UAAU,GAC3B,IAAgB,EAAI,qBAAqB,GACzC,IAAW,GAAG,EAAI,UAAU,UAAU,KACtC,IAAQ,EAAS,EAAS;AAoBhC,QAlBA,EAAM,uBACJ,EAAI,eAAe,GAAO,GAAO,EAAY,QAAQ,QACxC;AACX,IAAI,iBAAiB,EAAM;KAG5B,EAAE,CAAC,EAEN,EAAM,gBAAgB;AACpB,IAAI,uBAAuB,GAAO,EAAS;IAC1C;EAAC;EAAK;EAAO;EAAS,CAAC,EASxB,kBAAC,OAAD;EACE,KAAK;EACL,IAAI;EACJ,aAAU;EACV,MAAK;EACL,iBAAe;EACf,iBAAe,KAAY,KAAA;EAC3B,WAAW,EACT,iCACA,WACA,kBACA,eACA,2BACA,KAAY,qDACZ,KACE,CAAC,KACD,0DACF,KAAiB,qCACjB,CAAC,KACC,CAAC,KACD,CAAC,KACD,8BACF,EACD;EACD,eA/BsB;AACpB,SACJ,EAAI,cAAc,EAAM,EACxB,EAAI,aAAa,GAAM;;EA8BpB;EACG,CAAA;;AAIV,EAAW,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`);let n=require(`react`);n=e.__toESM(n,1);let r=require(`react/jsx-runtime`);function i({ref:e,className:n,...i}){return(0,r.jsx)(`div`,{ref:e,role:`separator`,"aria-orientation":`horizontal`,className:t.cn(`my-(--space-1) h-px bg-(--nuka-border-base)`,n)
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`);let n=require(`react`);n=e.__toESM(n,1);let r=require(`react/jsx-runtime`);function i({ref:e,className:n,...i}){return(0,r.jsx)(`div`,{ref:e,role:`separator`,"aria-orientation":`horizontal`,className:t.cn(`my-(--space-1) h-px bg-(--nuka-border-base)`,n),"data-slot":`separator`,...i})}i.displayName=`SelectSeparator`,exports.SelectSeparator=i;
|
|
2
2
|
//# sourceMappingURL=SelectSeparator.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectSeparator.cjs","names":[],"sources":["../../../src/components/Select/SelectSeparator.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\n\nexport interface SelectSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction SelectSeparator({ ref, className, ...props }: SelectSeparatorProps) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"my-(--space-1) h-px bg-(--nuka-border-base)\", className)}\n {...props}\n />\n );\n}\n\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport { SelectSeparator };\n"],"mappings":"gLAQA,SAAS,EAAgB,CAAE,MAAK,YAAW,GAAG,GAA+B,CAC3E,OACE,EAAA,EAAA,KAAC,MAAD,CACO,MACL,KAAK,YACL,mBAAiB,aACjB,UAAW,EAAA,GAAG,8CAA+C,EAAU,CACvE,GAAI,EACJ,CAAA,CAIN,EAAgB,YAAc"}
|
|
1
|
+
{"version":3,"file":"SelectSeparator.cjs","names":[],"sources":["../../../src/components/Select/SelectSeparator.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\n\nexport interface SelectSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction SelectSeparator({ ref, className, ...props }: SelectSeparatorProps) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"my-(--space-1) h-px bg-(--nuka-border-base)\", className)}\n data-slot=\"separator\"\n {...props}\n />\n );\n}\n\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport { SelectSeparator };\n"],"mappings":"gLAQA,SAAS,EAAgB,CAAE,MAAK,YAAW,GAAG,GAA+B,CAC3E,OACE,EAAA,EAAA,KAAC,MAAD,CACO,MACL,KAAK,YACL,mBAAiB,aACjB,UAAW,EAAA,GAAG,8CAA+C,EAAU,CACvE,YAAU,YACV,GAAI,EACJ,CAAA,CAIN,EAAgB,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectSeparator.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectSeparator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CAC7C;AAED,iBAAS,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"SelectSeparator.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectSeparator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CAC7C;AAED,iBAAS,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAW1E;kBAXQ,eAAe;;;AAexB,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectSeparator.js","names":[],"sources":["../../../src/components/Select/SelectSeparator.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\n\nexport interface SelectSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction SelectSeparator({ ref, className, ...props }: SelectSeparatorProps) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"my-(--space-1) h-px bg-(--nuka-border-base)\", className)}\n {...props}\n />\n );\n}\n\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport { SelectSeparator };\n"],"mappings":";;;;;AAQA,SAAS,EAAgB,EAAE,QAAK,cAAW,GAAG,KAA+B;AAC3E,QACE,kBAAC,OAAD;EACO;EACL,MAAK;EACL,oBAAiB;EACjB,WAAW,EAAG,+CAA+C,EAAU;EACvE,GAAI;EACJ,CAAA;;AAIN,EAAgB,cAAc"}
|
|
1
|
+
{"version":3,"file":"SelectSeparator.js","names":[],"sources":["../../../src/components/Select/SelectSeparator.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\n\nexport interface SelectSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction SelectSeparator({ ref, className, ...props }: SelectSeparatorProps) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"my-(--space-1) h-px bg-(--nuka-border-base)\", className)}\n data-slot=\"separator\"\n {...props}\n />\n );\n}\n\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport { SelectSeparator };\n"],"mappings":";;;;;AAQA,SAAS,EAAgB,EAAE,QAAK,cAAW,GAAG,KAA+B;AAC3E,QACE,kBAAC,OAAD;EACO;EACL,MAAK;EACL,oBAAiB;EACjB,WAAW,EAAG,+CAA+C,EAAU;EACvE,aAAU;EACV,GAAI;EACJ,CAAA;;AAIN,EAAgB,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/roving-index.cjs`),r=require(`../FormField/FormField.context.cjs`),i=require(`../../hooks/use-form-field-props.cjs`),a=require(`../../utils/scroll-into-view-safe.cjs`),o=require(`./Select.context.cjs`),s=require(`./SelectTrigger.utils.cjs`),c=require(`./SelectTrigger.variants.cjs`);let l=require(`react`);l=e.__toESM(l,1);let u=require(`react/jsx-runtime`);function d({ref:e,className:d,placeholder:f,intent:p,size:m,disabled:h,...g}){let _=o.useSelect(),v=r.useFormField(),y=i.useFormFieldProps({id:g.id,"aria-invalid":g[`aria-invalid`],"aria-describedby":g[`aria-describedby`],"aria-required":g[`aria-required`]}),b=l.useRef(``),x=l.useRef(void 0),S=h??_.disabled,C=g[`aria-labelledby`]??(v.labelId||void 0),w=_.value===void 0?void 0:_.getOptionLabel(_.value),T=g[`aria-label`]??(C===void 0?w??f??`Select`:void 0),E=l.useCallback(()=>_.getOptions().filter(e=>!_.isOptionDisabled(e)),[_]),D=l.useCallback(e=>{_.onHighlightChange(e),e!==void 0&&a.scrollIntoViewSafe(_.getOptionRef(e))},[_]),O=l.useCallback(()=>{_.highlightedValue!==void 0&&(_.onValueChange(_.highlightedValue),_.onOpenChange(!1))},[_]),k=l.useCallback(e=>{let t=E();if(t.length===0)return;let r=_.highlightedValue===void 0?-1:t.indexOf(_.highlightedValue),i=n.getRovingIndex({next:`ArrowDown`,prev:`ArrowUp`,first:`Home`,last:`End`}[e],r,t.length,`vertical`);if(i===void 0)return;let a=t[i];a!==void 0&&D(a)},[_.highlightedValue,E,D]),A=l.useCallback(e=>{_.onOpenChange(!0);let t=E();if(t.length!==0){if(e===`current`&&_.value!==void 0){let e=t.indexOf(_.value);if(e!==-1){D(t[e]);return}}D(e===`last`?t[t.length-1]:t[0])}},[_,E,D]),j=l.useCallback(e=>{x.current!==void 0&&clearTimeout(x.current),b.current+=e.toLowerCase(),x.current=setTimeout(()=>{b.current=``},300);let t=E().find(e=>_.getOptionLabel(e)?.toLowerCase().startsWith(b.current));t!==void 0&&(_.open||_.onOpenChange(!0),D(t))},[_,E,D]),M=e=>{if(g.onKeyDown?.(e),!e.defaultPrevented)switch(e.key){case`ArrowDown`:e.preventDefault(),_.open?k(`next`):A(`first`);break;case`ArrowUp`:e.preventDefault(),_.open?k(`prev`):A(`last`);break;case`Home`:_.open&&(e.preventDefault(),k(`first`));break;case`End`:_.open&&(e.preventDefault(),k(`last`));break;case`Enter`:e.preventDefault(),_.open?O():A(`current`);break;case` `:e.preventDefault(),_.open?O():A(`current`);break;case`Escape`:_.open&&(e.preventDefault(),_.onOpenChange(!1));break;case`Tab`:_.open&&_.onOpenChange(!1);break;default:e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&j(e.key);break}},N=e=>{if(g.onClick?.(e),!e.defaultPrevented&&(_.onOpenChange(!_.open),!_.open)){let e=E();_.value!==void 0&&e.includes(_.value)&&D(_.value)}},P=_.open&&_.highlightedValue!==void 0?`${_.listboxId}-option-${_.highlightedValue}`:void 0;return(0,u.jsxs)(`button`,{...g,ref:e,type:`button`,id:y.resolvedId,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":_.open,"aria-controls":_.listboxId,"aria-activedescendant":P,"aria-label":T,"aria-labelledby":C,"aria-invalid":y.ariaInvalid,"aria-describedby":y.ariaDescribedBy,"aria-required":y.ariaRequired,disabled:S,className:t.cn(c.selectTriggerVariants({intent:p,size:m}),d),onClick:N,onKeyDown:M,children:[(0,u.jsx)(`span`,{className:t.cn(`truncate`,w===void 0&&`text-(--nuka-text-muted)`),children:w??f}),(0,u.jsx)(s.ChevronIcon,{open:_.open})]})}d.displayName=`SelectTrigger`,exports.SelectTrigger=d;
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/roving-index.cjs`),r=require(`../FormField/FormField.context.cjs`),i=require(`../../hooks/use-form-field-props.cjs`),a=require(`../../utils/scroll-into-view-safe.cjs`),o=require(`./Select.context.cjs`),s=require(`./SelectTrigger.utils.cjs`),c=require(`./SelectTrigger.variants.cjs`);let l=require(`react`);l=e.__toESM(l,1);let u=require(`react/jsx-runtime`);function d({ref:e,className:d,placeholder:f,intent:p,size:m,disabled:h,...g}){let _=o.useSelect(),v=r.useFormField(),y=i.useFormFieldProps({id:g.id,"aria-invalid":g[`aria-invalid`],"aria-describedby":g[`aria-describedby`],"aria-required":g[`aria-required`]}),b=l.useRef(``),x=l.useRef(void 0),S=h??_.disabled,C=g[`aria-labelledby`]??(v.labelId||void 0),w=_.value===void 0?void 0:_.getOptionLabel(_.value),T=g[`aria-label`]??(C===void 0?w??f??`Select`:void 0),E=l.useCallback(()=>_.getOptions().filter(e=>!_.isOptionDisabled(e)),[_]),D=l.useCallback(e=>{_.onHighlightChange(e),e!==void 0&&a.scrollIntoViewSafe(_.getOptionRef(e))},[_]),O=l.useCallback(()=>{_.highlightedValue!==void 0&&(_.onValueChange(_.highlightedValue),_.onOpenChange(!1))},[_]),k=l.useCallback(e=>{let t=E();if(t.length===0)return;let r=_.highlightedValue===void 0?-1:t.indexOf(_.highlightedValue),i=n.getRovingIndex({next:`ArrowDown`,prev:`ArrowUp`,first:`Home`,last:`End`}[e],r,t.length,`vertical`);if(i===void 0)return;let a=t[i];a!==void 0&&D(a)},[_.highlightedValue,E,D]),A=l.useCallback(e=>{_.onOpenChange(!0);let t=E();if(t.length!==0){if(e===`current`&&_.value!==void 0){let e=t.indexOf(_.value);if(e!==-1){D(t[e]);return}}D(e===`last`?t[t.length-1]:t[0])}},[_,E,D]),j=l.useCallback(e=>{x.current!==void 0&&clearTimeout(x.current),b.current+=e.toLowerCase(),x.current=setTimeout(()=>{b.current=``},300);let t=E().find(e=>_.getOptionLabel(e)?.toLowerCase().startsWith(b.current));t!==void 0&&(_.open||_.onOpenChange(!0),D(t))},[_,E,D]),M=e=>{if(g.onKeyDown?.(e),!e.defaultPrevented)switch(e.key){case`ArrowDown`:e.preventDefault(),_.open?k(`next`):A(`first`);break;case`ArrowUp`:e.preventDefault(),_.open?k(`prev`):A(`last`);break;case`Home`:_.open&&(e.preventDefault(),k(`first`));break;case`End`:_.open&&(e.preventDefault(),k(`last`));break;case`Enter`:e.preventDefault(),_.open?O():A(`current`);break;case` `:e.preventDefault(),_.open?O():A(`current`);break;case`Escape`:_.open&&(e.preventDefault(),_.onOpenChange(!1));break;case`Tab`:_.open&&_.onOpenChange(!1);break;default:e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&j(e.key);break}},N=e=>{if(g.onClick?.(e),!e.defaultPrevented&&(_.onOpenChange(!_.open),!_.open)){let e=E();_.value!==void 0&&e.includes(_.value)&&D(_.value)}},P=_.open&&_.highlightedValue!==void 0?`${_.listboxId}-option-${_.highlightedValue}`:void 0;return(0,u.jsxs)(`button`,{...g,ref:e,type:`button`,id:y.resolvedId,"data-slot":`trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":_.open,"aria-controls":_.listboxId,"aria-activedescendant":P,"aria-label":T,"aria-labelledby":C,"aria-invalid":y.ariaInvalid,"aria-describedby":y.ariaDescribedBy,"aria-required":y.ariaRequired,disabled:S,className:t.cn(c.selectTriggerVariants({intent:p,size:m}),d),onClick:N,onKeyDown:M,children:[(0,u.jsx)(`span`,{className:t.cn(`truncate`,w===void 0&&`text-(--nuka-text-muted)`),children:w??f}),(0,u.jsx)(s.ChevronIcon,{open:_.open})]})}d.displayName=`SelectTrigger`,exports.SelectTrigger=d;
|
|
2
2
|
//# sourceMappingURL=SelectTrigger.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTrigger.cjs","names":[],"sources":["../../../src/components/Select/SelectTrigger.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { getRovingIndex } from \"@nuka/utils/roving-index\";\nimport { scrollIntoViewSafe } from \"@nuka/utils/scroll-into-view-safe\";\nimport {\n TYPEAHEAD_TIMEOUT,\n ChevronIcon,\n} from \"@nuka/components/Select/SelectTrigger.utils\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\nimport { useFormField } from \"@nuka/components/FormField\";\nimport { useFormFieldProps } from \"@nuka/hooks/use-form-field-props\";\nimport {\n selectTriggerVariants,\n type SelectTriggerVariantProps,\n} from \"@nuka/components/Select/SelectTrigger.variants\";\n\nexport interface SelectTriggerProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\">,\n SelectTriggerVariantProps {\n ref?: React.Ref<HTMLButtonElement> | undefined;\n placeholder?: string;\n}\n\nfunction SelectTrigger({\n ref,\n className,\n placeholder,\n intent,\n size,\n disabled: disabledProp,\n ...props\n}: SelectTriggerProps) {\n const ctx = useSelect();\n const formCtx = useFormField();\n\n const field = useFormFieldProps({\n id: props.id,\n \"aria-invalid\": props[\"aria-invalid\"],\n \"aria-describedby\": props[\"aria-describedby\"],\n \"aria-required\": props[\"aria-required\"],\n });\n\n const typeaheadBufferRef = React.useRef(\"\");\n const typeaheadTimerRef = React.useRef<\n ReturnType<typeof setTimeout> | undefined\n >(undefined);\n\n const resolvedDisabled = disabledProp ?? ctx.disabled;\n\n const ariaLabelledBy =\n props[\"aria-labelledby\"] ?? (formCtx.labelId || undefined);\n\n const displayLabel =\n ctx.value !== undefined ? ctx.getOptionLabel(ctx.value) : undefined;\n\n // Fallback aria-label when no aria-labelledby provides a name.\n // role=\"combobox\" has nameFrom:author, so text content alone won't work.\n const ariaLabel =\n props[\"aria-label\"] ??\n (ariaLabelledBy === undefined\n ? (displayLabel ?? placeholder ?? \"Select\")\n : undefined);\n\n const getEnabledOptions = React.useCallback((): string[] => {\n return ctx.getOptions().filter((v) => !ctx.isOptionDisabled(v));\n }, [ctx]);\n\n const highlightOption = React.useCallback(\n (optionValue: string | undefined) => {\n ctx.onHighlightChange(optionValue);\n if (optionValue !== undefined) {\n scrollIntoViewSafe(ctx.getOptionRef(optionValue));\n }\n },\n [ctx],\n );\n\n const selectHighlighted = React.useCallback(() => {\n if (ctx.highlightedValue !== undefined) {\n ctx.onValueChange(ctx.highlightedValue);\n ctx.onOpenChange(false);\n }\n }, [ctx]);\n\n const moveHighlight = React.useCallback(\n (direction: \"next\" | \"prev\" | \"first\" | \"last\") => {\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n const currentIndex =\n ctx.highlightedValue !== undefined\n ? options.indexOf(ctx.highlightedValue)\n : -1;\n\n const keyMap = {\n next: \"ArrowDown\",\n prev: \"ArrowUp\",\n first: \"Home\",\n last: \"End\",\n } as const;\n const nextIndex = getRovingIndex(\n keyMap[direction],\n currentIndex,\n options.length,\n \"vertical\",\n );\n if (nextIndex === undefined) return;\n\n const nextValue = options[nextIndex];\n if (nextValue !== undefined) {\n highlightOption(nextValue);\n }\n },\n [ctx.highlightedValue, getEnabledOptions, highlightOption],\n );\n\n const openAndHighlight = React.useCallback(\n (direction: \"first\" | \"last\" | \"current\") => {\n ctx.onOpenChange(true);\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n if (direction === \"current\" && ctx.value !== undefined) {\n const valueIndex = options.indexOf(ctx.value);\n if (valueIndex !== -1) {\n highlightOption(options[valueIndex]);\n return;\n }\n }\n\n if (direction === \"last\") {\n highlightOption(options[options.length - 1]);\n } else {\n highlightOption(options[0]);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleTypeahead = React.useCallback(\n (char: string) => {\n if (typeaheadTimerRef.current !== undefined) {\n clearTimeout(typeaheadTimerRef.current);\n }\n\n typeaheadBufferRef.current += char.toLowerCase();\n\n typeaheadTimerRef.current = setTimeout(() => {\n typeaheadBufferRef.current = \"\";\n }, TYPEAHEAD_TIMEOUT);\n\n const options = getEnabledOptions();\n const match = options.find((v) => {\n const label = ctx.getOptionLabel(v);\n return label?.toLowerCase().startsWith(typeaheadBufferRef.current);\n });\n\n if (match !== undefined) {\n if (!ctx.open) {\n ctx.onOpenChange(true);\n }\n highlightOption(match);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n props.onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"first\");\n } else {\n moveHighlight(\"next\");\n }\n break;\n\n case \"ArrowUp\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"last\");\n } else {\n moveHighlight(\"prev\");\n }\n break;\n\n case \"Home\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"first\");\n }\n break;\n\n case \"End\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"last\");\n }\n break;\n\n case \"Enter\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \" \":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \"Escape\":\n if (ctx.open) {\n e.preventDefault();\n ctx.onOpenChange(false);\n }\n break;\n\n case \"Tab\":\n if (ctx.open) {\n ctx.onOpenChange(false);\n // Do not preventDefault: allow Tab to move focus naturally\n }\n break;\n\n default:\n if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n handleTypeahead(e.key);\n }\n break;\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n props.onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.onOpenChange(!ctx.open);\n if (!ctx.open) {\n // Opening: highlight current value or first option\n const options = getEnabledOptions();\n if (ctx.value !== undefined && options.includes(ctx.value)) {\n highlightOption(ctx.value);\n }\n }\n };\n\n // aria-activedescendant must be undefined (not empty string) when no highlight\n const ariaActiveDescendant =\n ctx.open && ctx.highlightedValue !== undefined\n ? `${ctx.listboxId}-option-${ctx.highlightedValue}`\n : undefined;\n\n return (\n <button\n {...props}\n ref={ref}\n type=\"button\"\n id={field.resolvedId}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={ctx.open}\n aria-controls={ctx.listboxId}\n aria-activedescendant={ariaActiveDescendant}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={field.ariaInvalid}\n aria-describedby={field.ariaDescribedBy}\n aria-required={field.ariaRequired}\n disabled={resolvedDisabled}\n className={cn(selectTriggerVariants({ intent, size }), className)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n \"truncate\",\n displayLabel === undefined && \"text-(--nuka-text-muted)\",\n )}\n >\n {displayLabel ?? placeholder}\n </span>\n <ChevronIcon open={ctx.open} />\n </button>\n );\n}\n\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport { SelectTrigger, selectTriggerVariants };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectTrigger.cjs","names":[],"sources":["../../../src/components/Select/SelectTrigger.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { getRovingIndex } from \"@nuka/utils/roving-index\";\nimport { scrollIntoViewSafe } from \"@nuka/utils/scroll-into-view-safe\";\nimport {\n TYPEAHEAD_TIMEOUT,\n ChevronIcon,\n} from \"@nuka/components/Select/SelectTrigger.utils\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\nimport { useFormField } from \"@nuka/components/FormField\";\nimport { useFormFieldProps } from \"@nuka/hooks/use-form-field-props\";\nimport {\n selectTriggerVariants,\n type SelectTriggerVariantProps,\n} from \"@nuka/components/Select/SelectTrigger.variants\";\n\nexport interface SelectTriggerProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\">,\n SelectTriggerVariantProps {\n ref?: React.Ref<HTMLButtonElement> | undefined;\n placeholder?: string;\n}\n\nfunction SelectTrigger({\n ref,\n className,\n placeholder,\n intent,\n size,\n disabled: disabledProp,\n ...props\n}: SelectTriggerProps) {\n const ctx = useSelect();\n const formCtx = useFormField();\n\n const field = useFormFieldProps({\n id: props.id,\n \"aria-invalid\": props[\"aria-invalid\"],\n \"aria-describedby\": props[\"aria-describedby\"],\n \"aria-required\": props[\"aria-required\"],\n });\n\n const typeaheadBufferRef = React.useRef(\"\");\n const typeaheadTimerRef = React.useRef<\n ReturnType<typeof setTimeout> | undefined\n >(undefined);\n\n const resolvedDisabled = disabledProp ?? ctx.disabled;\n\n const ariaLabelledBy =\n props[\"aria-labelledby\"] ?? (formCtx.labelId || undefined);\n\n const displayLabel =\n ctx.value !== undefined ? ctx.getOptionLabel(ctx.value) : undefined;\n\n // Fallback aria-label when no aria-labelledby provides a name.\n // role=\"combobox\" has nameFrom:author, so text content alone won't work.\n const ariaLabel =\n props[\"aria-label\"] ??\n (ariaLabelledBy === undefined\n ? (displayLabel ?? placeholder ?? \"Select\")\n : undefined);\n\n const getEnabledOptions = React.useCallback((): string[] => {\n return ctx.getOptions().filter((v) => !ctx.isOptionDisabled(v));\n }, [ctx]);\n\n const highlightOption = React.useCallback(\n (optionValue: string | undefined) => {\n ctx.onHighlightChange(optionValue);\n if (optionValue !== undefined) {\n scrollIntoViewSafe(ctx.getOptionRef(optionValue));\n }\n },\n [ctx],\n );\n\n const selectHighlighted = React.useCallback(() => {\n if (ctx.highlightedValue !== undefined) {\n ctx.onValueChange(ctx.highlightedValue);\n ctx.onOpenChange(false);\n }\n }, [ctx]);\n\n const moveHighlight = React.useCallback(\n (direction: \"next\" | \"prev\" | \"first\" | \"last\") => {\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n const currentIndex =\n ctx.highlightedValue !== undefined\n ? options.indexOf(ctx.highlightedValue)\n : -1;\n\n const keyMap = {\n next: \"ArrowDown\",\n prev: \"ArrowUp\",\n first: \"Home\",\n last: \"End\",\n } as const;\n const nextIndex = getRovingIndex(\n keyMap[direction],\n currentIndex,\n options.length,\n \"vertical\",\n );\n if (nextIndex === undefined) return;\n\n const nextValue = options[nextIndex];\n if (nextValue !== undefined) {\n highlightOption(nextValue);\n }\n },\n [ctx.highlightedValue, getEnabledOptions, highlightOption],\n );\n\n const openAndHighlight = React.useCallback(\n (direction: \"first\" | \"last\" | \"current\") => {\n ctx.onOpenChange(true);\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n if (direction === \"current\" && ctx.value !== undefined) {\n const valueIndex = options.indexOf(ctx.value);\n if (valueIndex !== -1) {\n highlightOption(options[valueIndex]);\n return;\n }\n }\n\n if (direction === \"last\") {\n highlightOption(options[options.length - 1]);\n } else {\n highlightOption(options[0]);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleTypeahead = React.useCallback(\n (char: string) => {\n if (typeaheadTimerRef.current !== undefined) {\n clearTimeout(typeaheadTimerRef.current);\n }\n\n typeaheadBufferRef.current += char.toLowerCase();\n\n typeaheadTimerRef.current = setTimeout(() => {\n typeaheadBufferRef.current = \"\";\n }, TYPEAHEAD_TIMEOUT);\n\n const options = getEnabledOptions();\n const match = options.find((v) => {\n const label = ctx.getOptionLabel(v);\n return label?.toLowerCase().startsWith(typeaheadBufferRef.current);\n });\n\n if (match !== undefined) {\n if (!ctx.open) {\n ctx.onOpenChange(true);\n }\n highlightOption(match);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n props.onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"first\");\n } else {\n moveHighlight(\"next\");\n }\n break;\n\n case \"ArrowUp\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"last\");\n } else {\n moveHighlight(\"prev\");\n }\n break;\n\n case \"Home\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"first\");\n }\n break;\n\n case \"End\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"last\");\n }\n break;\n\n case \"Enter\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \" \":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \"Escape\":\n if (ctx.open) {\n e.preventDefault();\n ctx.onOpenChange(false);\n }\n break;\n\n case \"Tab\":\n if (ctx.open) {\n ctx.onOpenChange(false);\n // Do not preventDefault: allow Tab to move focus naturally\n }\n break;\n\n default:\n if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n handleTypeahead(e.key);\n }\n break;\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n props.onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.onOpenChange(!ctx.open);\n if (!ctx.open) {\n // Opening: highlight current value or first option\n const options = getEnabledOptions();\n if (ctx.value !== undefined && options.includes(ctx.value)) {\n highlightOption(ctx.value);\n }\n }\n };\n\n // aria-activedescendant must be undefined (not empty string) when no highlight\n const ariaActiveDescendant =\n ctx.open && ctx.highlightedValue !== undefined\n ? `${ctx.listboxId}-option-${ctx.highlightedValue}`\n : undefined;\n\n return (\n <button\n {...props}\n ref={ref}\n type=\"button\"\n id={field.resolvedId}\n data-slot=\"trigger\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={ctx.open}\n aria-controls={ctx.listboxId}\n aria-activedescendant={ariaActiveDescendant}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={field.ariaInvalid}\n aria-describedby={field.ariaDescribedBy}\n aria-required={field.ariaRequired}\n disabled={resolvedDisabled}\n className={cn(selectTriggerVariants({ intent, size }), className)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n \"truncate\",\n displayLabel === undefined && \"text-(--nuka-text-muted)\",\n )}\n >\n {displayLabel ?? placeholder}\n </span>\n <ChevronIcon open={ctx.open} />\n </button>\n );\n}\n\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport { SelectTrigger, selectTriggerVariants };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC/B,MAAM,gDAAgD,CAAC;AAExD,MAAM,WAAW,kBACf,SACE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,EAC/D,yBAAyB;IAC3B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,EACH,SAAS,EACT,WAAW,EACX,MAAM,EACN,IAAI,EACJ,QAAQ,EAAE,YAAY,EACtB,GAAG,KAAK,EACT,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SelectTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC/B,MAAM,gDAAgD,CAAC;AAExD,MAAM,WAAW,kBACf,SACE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,EAC/D,yBAAyB;IAC3B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,EACH,SAAS,EACT,WAAW,EACX,MAAM,EACN,IAAI,EACJ,QAAQ,EAAE,YAAY,EACtB,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAyQpB;kBAjRQ,aAAa;;;AAqRtB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTrigger.js","names":[],"sources":["../../../src/components/Select/SelectTrigger.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { getRovingIndex } from \"@nuka/utils/roving-index\";\nimport { scrollIntoViewSafe } from \"@nuka/utils/scroll-into-view-safe\";\nimport {\n TYPEAHEAD_TIMEOUT,\n ChevronIcon,\n} from \"@nuka/components/Select/SelectTrigger.utils\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\nimport { useFormField } from \"@nuka/components/FormField\";\nimport { useFormFieldProps } from \"@nuka/hooks/use-form-field-props\";\nimport {\n selectTriggerVariants,\n type SelectTriggerVariantProps,\n} from \"@nuka/components/Select/SelectTrigger.variants\";\n\nexport interface SelectTriggerProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\">,\n SelectTriggerVariantProps {\n ref?: React.Ref<HTMLButtonElement> | undefined;\n placeholder?: string;\n}\n\nfunction SelectTrigger({\n ref,\n className,\n placeholder,\n intent,\n size,\n disabled: disabledProp,\n ...props\n}: SelectTriggerProps) {\n const ctx = useSelect();\n const formCtx = useFormField();\n\n const field = useFormFieldProps({\n id: props.id,\n \"aria-invalid\": props[\"aria-invalid\"],\n \"aria-describedby\": props[\"aria-describedby\"],\n \"aria-required\": props[\"aria-required\"],\n });\n\n const typeaheadBufferRef = React.useRef(\"\");\n const typeaheadTimerRef = React.useRef<\n ReturnType<typeof setTimeout> | undefined\n >(undefined);\n\n const resolvedDisabled = disabledProp ?? ctx.disabled;\n\n const ariaLabelledBy =\n props[\"aria-labelledby\"] ?? (formCtx.labelId || undefined);\n\n const displayLabel =\n ctx.value !== undefined ? ctx.getOptionLabel(ctx.value) : undefined;\n\n // Fallback aria-label when no aria-labelledby provides a name.\n // role=\"combobox\" has nameFrom:author, so text content alone won't work.\n const ariaLabel =\n props[\"aria-label\"] ??\n (ariaLabelledBy === undefined\n ? (displayLabel ?? placeholder ?? \"Select\")\n : undefined);\n\n const getEnabledOptions = React.useCallback((): string[] => {\n return ctx.getOptions().filter((v) => !ctx.isOptionDisabled(v));\n }, [ctx]);\n\n const highlightOption = React.useCallback(\n (optionValue: string | undefined) => {\n ctx.onHighlightChange(optionValue);\n if (optionValue !== undefined) {\n scrollIntoViewSafe(ctx.getOptionRef(optionValue));\n }\n },\n [ctx],\n );\n\n const selectHighlighted = React.useCallback(() => {\n if (ctx.highlightedValue !== undefined) {\n ctx.onValueChange(ctx.highlightedValue);\n ctx.onOpenChange(false);\n }\n }, [ctx]);\n\n const moveHighlight = React.useCallback(\n (direction: \"next\" | \"prev\" | \"first\" | \"last\") => {\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n const currentIndex =\n ctx.highlightedValue !== undefined\n ? options.indexOf(ctx.highlightedValue)\n : -1;\n\n const keyMap = {\n next: \"ArrowDown\",\n prev: \"ArrowUp\",\n first: \"Home\",\n last: \"End\",\n } as const;\n const nextIndex = getRovingIndex(\n keyMap[direction],\n currentIndex,\n options.length,\n \"vertical\",\n );\n if (nextIndex === undefined) return;\n\n const nextValue = options[nextIndex];\n if (nextValue !== undefined) {\n highlightOption(nextValue);\n }\n },\n [ctx.highlightedValue, getEnabledOptions, highlightOption],\n );\n\n const openAndHighlight = React.useCallback(\n (direction: \"first\" | \"last\" | \"current\") => {\n ctx.onOpenChange(true);\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n if (direction === \"current\" && ctx.value !== undefined) {\n const valueIndex = options.indexOf(ctx.value);\n if (valueIndex !== -1) {\n highlightOption(options[valueIndex]);\n return;\n }\n }\n\n if (direction === \"last\") {\n highlightOption(options[options.length - 1]);\n } else {\n highlightOption(options[0]);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleTypeahead = React.useCallback(\n (char: string) => {\n if (typeaheadTimerRef.current !== undefined) {\n clearTimeout(typeaheadTimerRef.current);\n }\n\n typeaheadBufferRef.current += char.toLowerCase();\n\n typeaheadTimerRef.current = setTimeout(() => {\n typeaheadBufferRef.current = \"\";\n }, TYPEAHEAD_TIMEOUT);\n\n const options = getEnabledOptions();\n const match = options.find((v) => {\n const label = ctx.getOptionLabel(v);\n return label?.toLowerCase().startsWith(typeaheadBufferRef.current);\n });\n\n if (match !== undefined) {\n if (!ctx.open) {\n ctx.onOpenChange(true);\n }\n highlightOption(match);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n props.onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"first\");\n } else {\n moveHighlight(\"next\");\n }\n break;\n\n case \"ArrowUp\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"last\");\n } else {\n moveHighlight(\"prev\");\n }\n break;\n\n case \"Home\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"first\");\n }\n break;\n\n case \"End\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"last\");\n }\n break;\n\n case \"Enter\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \" \":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \"Escape\":\n if (ctx.open) {\n e.preventDefault();\n ctx.onOpenChange(false);\n }\n break;\n\n case \"Tab\":\n if (ctx.open) {\n ctx.onOpenChange(false);\n // Do not preventDefault: allow Tab to move focus naturally\n }\n break;\n\n default:\n if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n handleTypeahead(e.key);\n }\n break;\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n props.onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.onOpenChange(!ctx.open);\n if (!ctx.open) {\n // Opening: highlight current value or first option\n const options = getEnabledOptions();\n if (ctx.value !== undefined && options.includes(ctx.value)) {\n highlightOption(ctx.value);\n }\n }\n };\n\n // aria-activedescendant must be undefined (not empty string) when no highlight\n const ariaActiveDescendant =\n ctx.open && ctx.highlightedValue !== undefined\n ? `${ctx.listboxId}-option-${ctx.highlightedValue}`\n : undefined;\n\n return (\n <button\n {...props}\n ref={ref}\n type=\"button\"\n id={field.resolvedId}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={ctx.open}\n aria-controls={ctx.listboxId}\n aria-activedescendant={ariaActiveDescendant}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={field.ariaInvalid}\n aria-describedby={field.ariaDescribedBy}\n aria-required={field.ariaRequired}\n disabled={resolvedDisabled}\n className={cn(selectTriggerVariants({ intent, size }), className)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n \"truncate\",\n displayLabel === undefined && \"text-(--nuka-text-muted)\",\n )}\n >\n {displayLabel ?? placeholder}\n </span>\n <ChevronIcon open={ctx.open} />\n </button>\n );\n}\n\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport { SelectTrigger, selectTriggerVariants };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectTrigger.js","names":[],"sources":["../../../src/components/Select/SelectTrigger.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { getRovingIndex } from \"@nuka/utils/roving-index\";\nimport { scrollIntoViewSafe } from \"@nuka/utils/scroll-into-view-safe\";\nimport {\n TYPEAHEAD_TIMEOUT,\n ChevronIcon,\n} from \"@nuka/components/Select/SelectTrigger.utils\";\nimport { useSelect } from \"@nuka/components/Select/Select.context\";\nimport { useFormField } from \"@nuka/components/FormField\";\nimport { useFormFieldProps } from \"@nuka/hooks/use-form-field-props\";\nimport {\n selectTriggerVariants,\n type SelectTriggerVariantProps,\n} from \"@nuka/components/Select/SelectTrigger.variants\";\n\nexport interface SelectTriggerProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\">,\n SelectTriggerVariantProps {\n ref?: React.Ref<HTMLButtonElement> | undefined;\n placeholder?: string;\n}\n\nfunction SelectTrigger({\n ref,\n className,\n placeholder,\n intent,\n size,\n disabled: disabledProp,\n ...props\n}: SelectTriggerProps) {\n const ctx = useSelect();\n const formCtx = useFormField();\n\n const field = useFormFieldProps({\n id: props.id,\n \"aria-invalid\": props[\"aria-invalid\"],\n \"aria-describedby\": props[\"aria-describedby\"],\n \"aria-required\": props[\"aria-required\"],\n });\n\n const typeaheadBufferRef = React.useRef(\"\");\n const typeaheadTimerRef = React.useRef<\n ReturnType<typeof setTimeout> | undefined\n >(undefined);\n\n const resolvedDisabled = disabledProp ?? ctx.disabled;\n\n const ariaLabelledBy =\n props[\"aria-labelledby\"] ?? (formCtx.labelId || undefined);\n\n const displayLabel =\n ctx.value !== undefined ? ctx.getOptionLabel(ctx.value) : undefined;\n\n // Fallback aria-label when no aria-labelledby provides a name.\n // role=\"combobox\" has nameFrom:author, so text content alone won't work.\n const ariaLabel =\n props[\"aria-label\"] ??\n (ariaLabelledBy === undefined\n ? (displayLabel ?? placeholder ?? \"Select\")\n : undefined);\n\n const getEnabledOptions = React.useCallback((): string[] => {\n return ctx.getOptions().filter((v) => !ctx.isOptionDisabled(v));\n }, [ctx]);\n\n const highlightOption = React.useCallback(\n (optionValue: string | undefined) => {\n ctx.onHighlightChange(optionValue);\n if (optionValue !== undefined) {\n scrollIntoViewSafe(ctx.getOptionRef(optionValue));\n }\n },\n [ctx],\n );\n\n const selectHighlighted = React.useCallback(() => {\n if (ctx.highlightedValue !== undefined) {\n ctx.onValueChange(ctx.highlightedValue);\n ctx.onOpenChange(false);\n }\n }, [ctx]);\n\n const moveHighlight = React.useCallback(\n (direction: \"next\" | \"prev\" | \"first\" | \"last\") => {\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n const currentIndex =\n ctx.highlightedValue !== undefined\n ? options.indexOf(ctx.highlightedValue)\n : -1;\n\n const keyMap = {\n next: \"ArrowDown\",\n prev: \"ArrowUp\",\n first: \"Home\",\n last: \"End\",\n } as const;\n const nextIndex = getRovingIndex(\n keyMap[direction],\n currentIndex,\n options.length,\n \"vertical\",\n );\n if (nextIndex === undefined) return;\n\n const nextValue = options[nextIndex];\n if (nextValue !== undefined) {\n highlightOption(nextValue);\n }\n },\n [ctx.highlightedValue, getEnabledOptions, highlightOption],\n );\n\n const openAndHighlight = React.useCallback(\n (direction: \"first\" | \"last\" | \"current\") => {\n ctx.onOpenChange(true);\n const options = getEnabledOptions();\n if (options.length === 0) return;\n\n if (direction === \"current\" && ctx.value !== undefined) {\n const valueIndex = options.indexOf(ctx.value);\n if (valueIndex !== -1) {\n highlightOption(options[valueIndex]);\n return;\n }\n }\n\n if (direction === \"last\") {\n highlightOption(options[options.length - 1]);\n } else {\n highlightOption(options[0]);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleTypeahead = React.useCallback(\n (char: string) => {\n if (typeaheadTimerRef.current !== undefined) {\n clearTimeout(typeaheadTimerRef.current);\n }\n\n typeaheadBufferRef.current += char.toLowerCase();\n\n typeaheadTimerRef.current = setTimeout(() => {\n typeaheadBufferRef.current = \"\";\n }, TYPEAHEAD_TIMEOUT);\n\n const options = getEnabledOptions();\n const match = options.find((v) => {\n const label = ctx.getOptionLabel(v);\n return label?.toLowerCase().startsWith(typeaheadBufferRef.current);\n });\n\n if (match !== undefined) {\n if (!ctx.open) {\n ctx.onOpenChange(true);\n }\n highlightOption(match);\n }\n },\n [ctx, getEnabledOptions, highlightOption],\n );\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n props.onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"first\");\n } else {\n moveHighlight(\"next\");\n }\n break;\n\n case \"ArrowUp\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"last\");\n } else {\n moveHighlight(\"prev\");\n }\n break;\n\n case \"Home\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"first\");\n }\n break;\n\n case \"End\":\n if (ctx.open) {\n e.preventDefault();\n moveHighlight(\"last\");\n }\n break;\n\n case \"Enter\":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \" \":\n e.preventDefault();\n if (!ctx.open) {\n openAndHighlight(\"current\");\n } else {\n selectHighlighted();\n }\n break;\n\n case \"Escape\":\n if (ctx.open) {\n e.preventDefault();\n ctx.onOpenChange(false);\n }\n break;\n\n case \"Tab\":\n if (ctx.open) {\n ctx.onOpenChange(false);\n // Do not preventDefault: allow Tab to move focus naturally\n }\n break;\n\n default:\n if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n handleTypeahead(e.key);\n }\n break;\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n props.onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.onOpenChange(!ctx.open);\n if (!ctx.open) {\n // Opening: highlight current value or first option\n const options = getEnabledOptions();\n if (ctx.value !== undefined && options.includes(ctx.value)) {\n highlightOption(ctx.value);\n }\n }\n };\n\n // aria-activedescendant must be undefined (not empty string) when no highlight\n const ariaActiveDescendant =\n ctx.open && ctx.highlightedValue !== undefined\n ? `${ctx.listboxId}-option-${ctx.highlightedValue}`\n : undefined;\n\n return (\n <button\n {...props}\n ref={ref}\n type=\"button\"\n id={field.resolvedId}\n data-slot=\"trigger\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={ctx.open}\n aria-controls={ctx.listboxId}\n aria-activedescendant={ariaActiveDescendant}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={field.ariaInvalid}\n aria-describedby={field.ariaDescribedBy}\n aria-required={field.ariaRequired}\n disabled={resolvedDisabled}\n className={cn(selectTriggerVariants({ intent, size }), className)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <span\n className={cn(\n \"truncate\",\n displayLabel === undefined && \"text-(--nuka-text-muted)\",\n )}\n >\n {displayLabel ?? placeholder}\n </span>\n <ChevronIcon open={ctx.open} />\n </button>\n );\n}\n\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport { SelectTrigger, selectTriggerVariants };\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/slot.cjs`),r=require(`../../utils/dismiss-button.cjs`),i=require(`../../utils/portal.cjs`),a=require(`../../hooks/use-scroll-lock.cjs`),o=require(`../../hooks/use-escape-key.cjs`),s=require(`../../hooks/use-focus-trap.cjs`),c=require(`../../utils/modal-primitive.cjs`),l=require(`../../hooks/use-modal-title-warning.cjs`),u=require(`./Sheet.context.cjs`);let d=require(`react`);d=e.__toESM(d,1);let f=require(`react/jsx-runtime`);var{Root:p,Trigger:m,Title:h,Description:g,Close:_}=c.createModalPrimitive({displayNamePrefix:`Sheet`,closeLabel:`Close sheet`,Context:u.SheetContext,useContext:u.useSheetContext}),v={right:`inset-y-0 right-0 h-full w-3/4 max-w-sm translate-x-full data-[state=open]:translate-x-0 border-l`,left:`inset-y-0 left-0 h-full w-3/4 max-w-sm -translate-x-full data-[state=open]:translate-x-0 border-r`,top:`inset-x-0 top-0 w-full -translate-y-full data-[state=open]:translate-y-0 border-b`,bottom:`inset-x-0 bottom-0 w-full translate-y-full data-[state=open]:translate-y-0 border-t`};function y({ref:e,side:c=`right`,className:p,children:m,...h}){let g=u.useSheetContext(),_=d.useRef(null),y=n.composeRefs(e,_);return s.useFocusTrap(_,g.open),a.useScrollLock(g.open),l.useModalTitleWarning(`Sheet`,g.titleId,g.open),o.useEscapeKey(()=>g.onOpenChange(!1),g.open),g.open?(0,f.jsxs)(i.Portal,{children:[(0,f.jsx)(`div`,{className:t.cn(`fixed inset-0 z-(--nuka-z-modal)`,`bg-(--nuka-bg-overlay)`,`data-[state=open]:animate-[nuka-dialog-overlay-enter_150ms_ease-out]`),"data-state":`open`,onClick:()=>g.onOpenChange(!1),"aria-hidden":`true`}),(0,f.jsxs)(`div`,{ref:y,role:`dialog`,"aria-modal":`true`,"aria-labelledby":g.titleId,"aria-describedby":g.hasDescription?g.descriptionId:void 0,tabIndex:-1,"data-state":`open`,"data-side":c,className:t.cn(`fixed z-(--nuka-z-modal)`,`bg-(--nuka-bg-base) border-(--nuka-border-base) shadow-md`,`p-(--space-6)`,`transition-transform duration-300 ease-in-out`,`motion-reduce:transition-none`,`focus-visible:outline-none`,v[c],p),...h,children:[(0,f.jsx)(r.DismissButton,{onClick:()=>g.onOpenChange(!1),label:`Close sheet`,className:`absolute top-(--space-4) right-(--space-4) text-(--nuka-text-muted)`}),m]})]}):null}y.displayName=`SheetContent`,exports.Sheet=p,exports.SheetClose=_,exports.SheetContent=y,exports.SheetDescription=g,exports.SheetTitle=h,exports.SheetTrigger=m;
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/slot.cjs`),r=require(`../../utils/dismiss-button.cjs`),i=require(`../../utils/portal.cjs`),a=require(`../../hooks/use-scroll-lock.cjs`),o=require(`../../hooks/use-escape-key.cjs`),s=require(`../../hooks/use-focus-trap.cjs`),c=require(`../../utils/modal-primitive.cjs`),l=require(`../../hooks/use-modal-title-warning.cjs`),u=require(`./Sheet.context.cjs`);let d=require(`react`);d=e.__toESM(d,1);let f=require(`react/jsx-runtime`);var{Root:p,Trigger:m,Title:h,Description:g,Close:_}=c.createModalPrimitive({displayNamePrefix:`Sheet`,closeLabel:`Close sheet`,Context:u.SheetContext,useContext:u.useSheetContext}),v={right:`inset-y-0 right-0 h-full w-3/4 max-w-sm translate-x-full data-[state=open]:translate-x-0 border-l`,left:`inset-y-0 left-0 h-full w-3/4 max-w-sm -translate-x-full data-[state=open]:translate-x-0 border-r`,top:`inset-x-0 top-0 w-full -translate-y-full data-[state=open]:translate-y-0 border-b`,bottom:`inset-x-0 bottom-0 w-full translate-y-full data-[state=open]:translate-y-0 border-t`};function y({ref:e,side:c=`right`,className:p,children:m,...h}){let g=u.useSheetContext(),_=d.useRef(null),y=n.composeRefs(e,_);return s.useFocusTrap(_,g.open),a.useScrollLock(g.open),l.useModalTitleWarning(`Sheet`,g.titleId,g.open),o.useEscapeKey(()=>g.onOpenChange(!1),g.open),g.open?(0,f.jsxs)(i.Portal,{children:[(0,f.jsx)(`div`,{className:t.cn(`fixed inset-0 z-(--nuka-z-modal)`,`bg-(--nuka-bg-overlay)`,`data-[state=open]:animate-[nuka-dialog-overlay-enter_150ms_ease-out]`),"data-slot":`overlay`,"data-state":`open`,onClick:()=>g.onOpenChange(!1),"aria-hidden":`true`}),(0,f.jsxs)(`div`,{ref:y,role:`dialog`,"aria-modal":`true`,"aria-labelledby":g.titleId,"aria-describedby":g.hasDescription?g.descriptionId:void 0,tabIndex:-1,"data-slot":`content`,"data-state":`open`,"data-side":c,className:t.cn(`fixed z-(--nuka-z-modal)`,`bg-(--nuka-bg-base) border-(--nuka-border-base) shadow-md`,`p-(--space-6)`,`transition-transform duration-300 ease-in-out`,`motion-reduce:transition-none`,`focus-visible:outline-none`,v[c],p),...h,children:[(0,f.jsx)(r.DismissButton,{onClick:()=>g.onOpenChange(!1),label:`Close sheet`,className:`absolute top-(--space-4) right-(--space-4) text-(--nuka-text-muted)`}),m]})]}):null}y.displayName=`SheetContent`,exports.Sheet=p,exports.SheetClose=_,exports.SheetContent=y,exports.SheetDescription=g,exports.SheetTitle=h,exports.SheetTrigger=m;
|
|
2
2
|
//# sourceMappingURL=Sheet.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.cjs","names":[],"sources":["../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { DismissButton } from \"@nuka/utils/dismiss-button\";\nimport { useFocusTrap } from \"@nuka/hooks/use-focus-trap\";\nimport { useScrollLock } from \"@nuka/hooks/use-scroll-lock\";\nimport {\n createModalPrimitive,\n useEscapeKey,\n} from \"@nuka/utils/modal-primitive\";\nimport { useModalTitleWarning } from \"@nuka/hooks/use-modal-title-warning\";\nimport type {\n ModalRootProps,\n ModalTriggerProps,\n ModalTitleProps,\n ModalDescriptionProps,\n ModalCloseProps,\n} from \"@nuka/utils/modal-primitive\";\nimport {\n SheetContext,\n useSheetContext,\n} from \"@nuka/components/Sheet/Sheet.context\";\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nconst {\n Root: Sheet,\n Trigger: SheetTrigger,\n Title: SheetTitle,\n Description: SheetDescription,\n Close: SheetClose,\n} = createModalPrimitive({\n displayNamePrefix: \"Sheet\",\n closeLabel: \"Close sheet\",\n Context: SheetContext,\n useContext: useSheetContext,\n});\n\nexport type SheetProps = ModalRootProps;\nexport type SheetTriggerProps = ModalTriggerProps;\nexport type SheetTitleProps = ModalTitleProps;\nexport type SheetDescriptionProps = ModalDescriptionProps;\nexport type SheetCloseProps = ModalCloseProps;\n\nconst sideClasses: Record<SheetSide, string> = {\n right:\n \"inset-y-0 right-0 h-full w-3/4 max-w-sm translate-x-full data-[state=open]:translate-x-0 border-l\",\n left: \"inset-y-0 left-0 h-full w-3/4 max-w-sm -translate-x-full data-[state=open]:translate-x-0 border-r\",\n top: \"inset-x-0 top-0 w-full -translate-y-full data-[state=open]:translate-y-0 border-b\",\n bottom:\n \"inset-x-0 bottom-0 w-full translate-y-full data-[state=open]:translate-y-0 border-t\",\n};\n\nexport interface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n side?: SheetSide;\n}\n\nfunction SheetContent({\n ref,\n side = \"right\",\n className,\n children,\n ...props\n}: SheetContentProps) {\n const ctx = useSheetContext();\n const panelRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, panelRef);\n\n useFocusTrap(panelRef, ctx.open);\n useScrollLock(ctx.open);\n useModalTitleWarning(\"Sheet\", ctx.titleId, ctx.open);\n useEscapeKey(() => ctx.onOpenChange(false), ctx.open);\n\n if (!ctx.open) return null;\n\n return (\n <Portal>\n <div\n className={cn(\n \"fixed inset-0 z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-overlay)\",\n \"data-[state=open]:animate-[nuka-dialog-overlay-enter_150ms_ease-out]\",\n )}\n data-state=\"open\"\n onClick={() => ctx.onOpenChange(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={composedRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.hasDescription ? ctx.descriptionId : undefined}\n tabIndex={-1}\n data-state=\"open\"\n data-side={side}\n className={cn(\n \"fixed z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-base) border-(--nuka-border-base) shadow-md\",\n \"p-(--space-6)\",\n \"transition-transform duration-300 ease-in-out\",\n \"motion-reduce:transition-none\",\n // Programmatic focus via useFocusTrap; :focus-visible does not activate, so this is inert\n \"focus-visible:outline-none\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n <DismissButton\n onClick={() => ctx.onOpenChange(false)}\n label=\"Close sheet\"\n className=\"absolute top-(--space-4) right-(--space-4) text-(--nuka-text-muted)\"\n />\n {children}\n </div>\n </Portal>\n );\n}\n\nSheetContent.displayName = \"SheetContent\";\n\nexport {\n Sheet,\n SheetTrigger,\n SheetContent,\n SheetTitle,\n SheetDescription,\n SheetClose,\n};\n"],"mappings":"0iBA2BA,GAAM,CACJ,KAAM,EACN,QAAS,EACT,MAAO,EACP,YAAa,EACb,MAAO,GACL,EAAA,qBAAqB,CACvB,kBAAmB,QACnB,WAAY,cACZ,QAAS,EAAA,aACT,WAAY,EAAA,gBACb,CAAC,CAQI,EAAyC,CAC7C,MACE,oGACF,KAAM,oGACN,IAAK,oFACL,OACE,sFACH,CAOD,SAAS,EAAa,CACpB,MACA,OAAO,QACP,YACA,WACA,GAAG,GACiB,CACpB,IAAM,EAAM,EAAA,iBAAiB,CACvB,EAAW,EAAM,OAAuB,KAAK,CAC7C,EAAc,EAAA,YAAY,EAAK,EAAS,CAS9C,OAPA,EAAA,aAAa,EAAU,EAAI,KAAK,CAChC,EAAA,cAAc,EAAI,KAAK,CACvB,EAAA,qBAAqB,QAAS,EAAI,QAAS,EAAI,KAAK,CACpD,EAAA,iBAAmB,EAAI,aAAa,GAAM,CAAE,EAAI,KAAK,CAEhD,EAAI,MAGP,EAAA,EAAA,MAAC,EAAA,OAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EAAA,GACT,mCACA,yBACA,uEACD,CACD,aAAW,OACX,YAAe,EAAI,aAAa,GAAM,CACtC,cAAY,OACZ,CAAA,EACF,EAAA,EAAA,MAAC,MAAD,CACE,IAAK,EACL,KAAK,SACL,aAAW,OACX,kBAAiB,EAAI,QACrB,mBAAkB,EAAI,eAAiB,EAAI,cAAgB,IAAA,GAC3D,SAAU,GACV,aAAW,OACX,YAAW,EACX,UAAW,EAAA,GACT,2BACA,4DACA,gBACA,gDACA,gCAEA,6BACA,EAAY,GACZ,EACD,CACD,GAAI,
|
|
1
|
+
{"version":3,"file":"Sheet.cjs","names":[],"sources":["../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { DismissButton } from \"@nuka/utils/dismiss-button\";\nimport { useFocusTrap } from \"@nuka/hooks/use-focus-trap\";\nimport { useScrollLock } from \"@nuka/hooks/use-scroll-lock\";\nimport {\n createModalPrimitive,\n useEscapeKey,\n} from \"@nuka/utils/modal-primitive\";\nimport { useModalTitleWarning } from \"@nuka/hooks/use-modal-title-warning\";\nimport type {\n ModalRootProps,\n ModalTriggerProps,\n ModalTitleProps,\n ModalDescriptionProps,\n ModalCloseProps,\n} from \"@nuka/utils/modal-primitive\";\nimport {\n SheetContext,\n useSheetContext,\n} from \"@nuka/components/Sheet/Sheet.context\";\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nconst {\n Root: Sheet,\n Trigger: SheetTrigger,\n Title: SheetTitle,\n Description: SheetDescription,\n Close: SheetClose,\n} = createModalPrimitive({\n displayNamePrefix: \"Sheet\",\n closeLabel: \"Close sheet\",\n Context: SheetContext,\n useContext: useSheetContext,\n});\n\nexport type SheetProps = ModalRootProps;\nexport type SheetTriggerProps = ModalTriggerProps;\nexport type SheetTitleProps = ModalTitleProps;\nexport type SheetDescriptionProps = ModalDescriptionProps;\nexport type SheetCloseProps = ModalCloseProps;\n\nconst sideClasses: Record<SheetSide, string> = {\n right:\n \"inset-y-0 right-0 h-full w-3/4 max-w-sm translate-x-full data-[state=open]:translate-x-0 border-l\",\n left: \"inset-y-0 left-0 h-full w-3/4 max-w-sm -translate-x-full data-[state=open]:translate-x-0 border-r\",\n top: \"inset-x-0 top-0 w-full -translate-y-full data-[state=open]:translate-y-0 border-b\",\n bottom:\n \"inset-x-0 bottom-0 w-full translate-y-full data-[state=open]:translate-y-0 border-t\",\n};\n\nexport interface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n side?: SheetSide;\n}\n\nfunction SheetContent({\n ref,\n side = \"right\",\n className,\n children,\n ...props\n}: SheetContentProps) {\n const ctx = useSheetContext();\n const panelRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, panelRef);\n\n useFocusTrap(panelRef, ctx.open);\n useScrollLock(ctx.open);\n useModalTitleWarning(\"Sheet\", ctx.titleId, ctx.open);\n useEscapeKey(() => ctx.onOpenChange(false), ctx.open);\n\n if (!ctx.open) return null;\n\n return (\n <Portal>\n <div\n className={cn(\n \"fixed inset-0 z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-overlay)\",\n \"data-[state=open]:animate-[nuka-dialog-overlay-enter_150ms_ease-out]\",\n )}\n data-slot=\"overlay\"\n data-state=\"open\"\n onClick={() => ctx.onOpenChange(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={composedRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.hasDescription ? ctx.descriptionId : undefined}\n tabIndex={-1}\n data-slot=\"content\"\n data-state=\"open\"\n data-side={side}\n className={cn(\n \"fixed z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-base) border-(--nuka-border-base) shadow-md\",\n \"p-(--space-6)\",\n \"transition-transform duration-300 ease-in-out\",\n \"motion-reduce:transition-none\",\n // Programmatic focus via useFocusTrap; :focus-visible does not activate, so this is inert\n \"focus-visible:outline-none\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n <DismissButton\n onClick={() => ctx.onOpenChange(false)}\n label=\"Close sheet\"\n className=\"absolute top-(--space-4) right-(--space-4) text-(--nuka-text-muted)\"\n />\n {children}\n </div>\n </Portal>\n );\n}\n\nSheetContent.displayName = \"SheetContent\";\n\nexport {\n Sheet,\n SheetTrigger,\n SheetContent,\n SheetTitle,\n SheetDescription,\n SheetClose,\n};\n"],"mappings":"0iBA2BA,GAAM,CACJ,KAAM,EACN,QAAS,EACT,MAAO,EACP,YAAa,EACb,MAAO,GACL,EAAA,qBAAqB,CACvB,kBAAmB,QACnB,WAAY,cACZ,QAAS,EAAA,aACT,WAAY,EAAA,gBACb,CAAC,CAQI,EAAyC,CAC7C,MACE,oGACF,KAAM,oGACN,IAAK,oFACL,OACE,sFACH,CAOD,SAAS,EAAa,CACpB,MACA,OAAO,QACP,YACA,WACA,GAAG,GACiB,CACpB,IAAM,EAAM,EAAA,iBAAiB,CACvB,EAAW,EAAM,OAAuB,KAAK,CAC7C,EAAc,EAAA,YAAY,EAAK,EAAS,CAS9C,OAPA,EAAA,aAAa,EAAU,EAAI,KAAK,CAChC,EAAA,cAAc,EAAI,KAAK,CACvB,EAAA,qBAAqB,QAAS,EAAI,QAAS,EAAI,KAAK,CACpD,EAAA,iBAAmB,EAAI,aAAa,GAAM,CAAE,EAAI,KAAK,CAEhD,EAAI,MAGP,EAAA,EAAA,MAAC,EAAA,OAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EAAA,GACT,mCACA,yBACA,uEACD,CACD,YAAU,UACV,aAAW,OACX,YAAe,EAAI,aAAa,GAAM,CACtC,cAAY,OACZ,CAAA,EACF,EAAA,EAAA,MAAC,MAAD,CACE,IAAK,EACL,KAAK,SACL,aAAW,OACX,kBAAiB,EAAI,QACrB,mBAAkB,EAAI,eAAiB,EAAI,cAAgB,IAAA,GAC3D,SAAU,GACV,YAAU,UACV,aAAW,OACX,YAAW,EACX,UAAW,EAAA,GACT,2BACA,4DACA,gBACA,gDACA,gCAEA,6BACA,EAAY,GACZ,EACD,CACD,GAAI,WArBN,EAuBE,EAAA,EAAA,KAAC,EAAA,cAAD,CACE,YAAe,EAAI,aAAa,GAAM,CACtC,MAAM,cACN,UAAU,sEACV,CAAA,CACD,EACG,GACC,CAAA,CAAA,CA7CW,KAiDxB,EAAa,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../../../src/components/Sheet/Sheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAMrC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,QAAA,MACQ,KAAK,4BACF,YAAY,+BACd,UAAU,6BACJ,gBAAgB,mCACtB,UAAU,2BAMjB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;AACxC,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAC9C,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAW9C,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,EACH,IAAc,EACd,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../../../src/components/Sheet/Sheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAMrC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,QAAA,MACQ,KAAK,4BACF,YAAY,+BACd,UAAU,6BACJ,gBAAgB,mCACtB,UAAU,2BAMjB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;AACxC,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAC9C,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAW9C,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,EACH,IAAc,EACd,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,kDAyDnB;kBA/DQ,YAAY;;;AAmErB,OAAO,EACL,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,CAAC"}
|
|
@@ -27,6 +27,7 @@ function b({ ref: s, side: l = "right", className: m, children: h, ...g }) {
|
|
|
27
27
|
let _ = u(), v = d.useRef(null), b = t(s, v);
|
|
28
28
|
return o(v, _.open), i(_.open), c("Sheet", _.titleId, _.open), a(() => _.onOpenChange(!1), _.open), _.open ? /* @__PURE__ */ p(r, { children: [/* @__PURE__ */ f("div", {
|
|
29
29
|
className: e("fixed inset-0 z-(--nuka-z-modal)", "bg-(--nuka-bg-overlay)", "data-[state=open]:animate-[nuka-dialog-overlay-enter_150ms_ease-out]"),
|
|
30
|
+
"data-slot": "overlay",
|
|
30
31
|
"data-state": "open",
|
|
31
32
|
onClick: () => _.onOpenChange(!1),
|
|
32
33
|
"aria-hidden": "true"
|
|
@@ -37,6 +38,7 @@ function b({ ref: s, side: l = "right", className: m, children: h, ...g }) {
|
|
|
37
38
|
"aria-labelledby": _.titleId,
|
|
38
39
|
"aria-describedby": _.hasDescription ? _.descriptionId : void 0,
|
|
39
40
|
tabIndex: -1,
|
|
41
|
+
"data-slot": "content",
|
|
40
42
|
"data-state": "open",
|
|
41
43
|
"data-side": l,
|
|
42
44
|
className: e("fixed z-(--nuka-z-modal)", "bg-(--nuka-bg-base) border-(--nuka-border-base) shadow-md", "p-(--space-6)", "transition-transform duration-300 ease-in-out", "motion-reduce:transition-none", "focus-visible:outline-none", y[l], m),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.js","names":[],"sources":["../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { DismissButton } from \"@nuka/utils/dismiss-button\";\nimport { useFocusTrap } from \"@nuka/hooks/use-focus-trap\";\nimport { useScrollLock } from \"@nuka/hooks/use-scroll-lock\";\nimport {\n createModalPrimitive,\n useEscapeKey,\n} from \"@nuka/utils/modal-primitive\";\nimport { useModalTitleWarning } from \"@nuka/hooks/use-modal-title-warning\";\nimport type {\n ModalRootProps,\n ModalTriggerProps,\n ModalTitleProps,\n ModalDescriptionProps,\n ModalCloseProps,\n} from \"@nuka/utils/modal-primitive\";\nimport {\n SheetContext,\n useSheetContext,\n} from \"@nuka/components/Sheet/Sheet.context\";\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nconst {\n Root: Sheet,\n Trigger: SheetTrigger,\n Title: SheetTitle,\n Description: SheetDescription,\n Close: SheetClose,\n} = createModalPrimitive({\n displayNamePrefix: \"Sheet\",\n closeLabel: \"Close sheet\",\n Context: SheetContext,\n useContext: useSheetContext,\n});\n\nexport type SheetProps = ModalRootProps;\nexport type SheetTriggerProps = ModalTriggerProps;\nexport type SheetTitleProps = ModalTitleProps;\nexport type SheetDescriptionProps = ModalDescriptionProps;\nexport type SheetCloseProps = ModalCloseProps;\n\nconst sideClasses: Record<SheetSide, string> = {\n right:\n \"inset-y-0 right-0 h-full w-3/4 max-w-sm translate-x-full data-[state=open]:translate-x-0 border-l\",\n left: \"inset-y-0 left-0 h-full w-3/4 max-w-sm -translate-x-full data-[state=open]:translate-x-0 border-r\",\n top: \"inset-x-0 top-0 w-full -translate-y-full data-[state=open]:translate-y-0 border-b\",\n bottom:\n \"inset-x-0 bottom-0 w-full translate-y-full data-[state=open]:translate-y-0 border-t\",\n};\n\nexport interface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n side?: SheetSide;\n}\n\nfunction SheetContent({\n ref,\n side = \"right\",\n className,\n children,\n ...props\n}: SheetContentProps) {\n const ctx = useSheetContext();\n const panelRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, panelRef);\n\n useFocusTrap(panelRef, ctx.open);\n useScrollLock(ctx.open);\n useModalTitleWarning(\"Sheet\", ctx.titleId, ctx.open);\n useEscapeKey(() => ctx.onOpenChange(false), ctx.open);\n\n if (!ctx.open) return null;\n\n return (\n <Portal>\n <div\n className={cn(\n \"fixed inset-0 z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-overlay)\",\n \"data-[state=open]:animate-[nuka-dialog-overlay-enter_150ms_ease-out]\",\n )}\n data-state=\"open\"\n onClick={() => ctx.onOpenChange(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={composedRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.hasDescription ? ctx.descriptionId : undefined}\n tabIndex={-1}\n data-state=\"open\"\n data-side={side}\n className={cn(\n \"fixed z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-base) border-(--nuka-border-base) shadow-md\",\n \"p-(--space-6)\",\n \"transition-transform duration-300 ease-in-out\",\n \"motion-reduce:transition-none\",\n // Programmatic focus via useFocusTrap; :focus-visible does not activate, so this is inert\n \"focus-visible:outline-none\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n <DismissButton\n onClick={() => ctx.onOpenChange(false)}\n label=\"Close sheet\"\n className=\"absolute top-(--space-4) right-(--space-4) text-(--nuka-text-muted)\"\n />\n {children}\n </div>\n </Portal>\n );\n}\n\nSheetContent.displayName = \"SheetContent\";\n\nexport {\n Sheet,\n SheetTrigger,\n SheetContent,\n SheetTitle,\n SheetDescription,\n SheetClose,\n};\n"],"mappings":";;;;;;;;;;;;;;AA2BA,IAAM,EACJ,MAAM,GACN,SAAS,GACT,OAAO,GACP,aAAa,GACb,OAAO,MACL,EAAqB;CACvB,mBAAmB;CACnB,YAAY;CACZ,SAAS;CACT,YAAY;CACb,CAAC,EAQI,IAAyC;CAC7C,OACE;CACF,MAAM;CACN,KAAK;CACL,QACE;CACH;AAOD,SAAS,EAAa,EACpB,QACA,UAAO,SACP,cACA,aACA,GAAG,KACiB;CACpB,IAAM,IAAM,GAAiB,EACvB,IAAW,EAAM,OAAuB,KAAK,EAC7C,IAAc,EAAY,GAAK,EAAS;AAS9C,QAPA,EAAa,GAAU,EAAI,KAAK,EAChC,EAAc,EAAI,KAAK,EACvB,EAAqB,SAAS,EAAI,SAAS,EAAI,KAAK,EACpD,QAAmB,EAAI,aAAa,GAAM,EAAE,EAAI,KAAK,EAEhD,EAAI,OAGP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;EACE,WAAW,EACT,oCACA,0BACA,uEACD;EACD,cAAW;EACX,eAAe,EAAI,aAAa,GAAM;EACtC,eAAY;EACZ,CAAA,EACF,kBAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAW;EACX,mBAAiB,EAAI;EACrB,oBAAkB,EAAI,iBAAiB,EAAI,gBAAgB,KAAA;EAC3D,UAAU;EACV,cAAW;EACX,aAAW;EACX,WAAW,EACT,4BACA,6DACA,iBACA,iDACA,iCAEA,8BACA,EAAY,IACZ,EACD;EACD,GAAI;
|
|
1
|
+
{"version":3,"file":"Sheet.js","names":[],"sources":["../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { DismissButton } from \"@nuka/utils/dismiss-button\";\nimport { useFocusTrap } from \"@nuka/hooks/use-focus-trap\";\nimport { useScrollLock } from \"@nuka/hooks/use-scroll-lock\";\nimport {\n createModalPrimitive,\n useEscapeKey,\n} from \"@nuka/utils/modal-primitive\";\nimport { useModalTitleWarning } from \"@nuka/hooks/use-modal-title-warning\";\nimport type {\n ModalRootProps,\n ModalTriggerProps,\n ModalTitleProps,\n ModalDescriptionProps,\n ModalCloseProps,\n} from \"@nuka/utils/modal-primitive\";\nimport {\n SheetContext,\n useSheetContext,\n} from \"@nuka/components/Sheet/Sheet.context\";\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nconst {\n Root: Sheet,\n Trigger: SheetTrigger,\n Title: SheetTitle,\n Description: SheetDescription,\n Close: SheetClose,\n} = createModalPrimitive({\n displayNamePrefix: \"Sheet\",\n closeLabel: \"Close sheet\",\n Context: SheetContext,\n useContext: useSheetContext,\n});\n\nexport type SheetProps = ModalRootProps;\nexport type SheetTriggerProps = ModalTriggerProps;\nexport type SheetTitleProps = ModalTitleProps;\nexport type SheetDescriptionProps = ModalDescriptionProps;\nexport type SheetCloseProps = ModalCloseProps;\n\nconst sideClasses: Record<SheetSide, string> = {\n right:\n \"inset-y-0 right-0 h-full w-3/4 max-w-sm translate-x-full data-[state=open]:translate-x-0 border-l\",\n left: \"inset-y-0 left-0 h-full w-3/4 max-w-sm -translate-x-full data-[state=open]:translate-x-0 border-r\",\n top: \"inset-x-0 top-0 w-full -translate-y-full data-[state=open]:translate-y-0 border-b\",\n bottom:\n \"inset-x-0 bottom-0 w-full translate-y-full data-[state=open]:translate-y-0 border-t\",\n};\n\nexport interface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n side?: SheetSide;\n}\n\nfunction SheetContent({\n ref,\n side = \"right\",\n className,\n children,\n ...props\n}: SheetContentProps) {\n const ctx = useSheetContext();\n const panelRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, panelRef);\n\n useFocusTrap(panelRef, ctx.open);\n useScrollLock(ctx.open);\n useModalTitleWarning(\"Sheet\", ctx.titleId, ctx.open);\n useEscapeKey(() => ctx.onOpenChange(false), ctx.open);\n\n if (!ctx.open) return null;\n\n return (\n <Portal>\n <div\n className={cn(\n \"fixed inset-0 z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-overlay)\",\n \"data-[state=open]:animate-[nuka-dialog-overlay-enter_150ms_ease-out]\",\n )}\n data-slot=\"overlay\"\n data-state=\"open\"\n onClick={() => ctx.onOpenChange(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={composedRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.hasDescription ? ctx.descriptionId : undefined}\n tabIndex={-1}\n data-slot=\"content\"\n data-state=\"open\"\n data-side={side}\n className={cn(\n \"fixed z-(--nuka-z-modal)\",\n \"bg-(--nuka-bg-base) border-(--nuka-border-base) shadow-md\",\n \"p-(--space-6)\",\n \"transition-transform duration-300 ease-in-out\",\n \"motion-reduce:transition-none\",\n // Programmatic focus via useFocusTrap; :focus-visible does not activate, so this is inert\n \"focus-visible:outline-none\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n <DismissButton\n onClick={() => ctx.onOpenChange(false)}\n label=\"Close sheet\"\n className=\"absolute top-(--space-4) right-(--space-4) text-(--nuka-text-muted)\"\n />\n {children}\n </div>\n </Portal>\n );\n}\n\nSheetContent.displayName = \"SheetContent\";\n\nexport {\n Sheet,\n SheetTrigger,\n SheetContent,\n SheetTitle,\n SheetDescription,\n SheetClose,\n};\n"],"mappings":";;;;;;;;;;;;;;AA2BA,IAAM,EACJ,MAAM,GACN,SAAS,GACT,OAAO,GACP,aAAa,GACb,OAAO,MACL,EAAqB;CACvB,mBAAmB;CACnB,YAAY;CACZ,SAAS;CACT,YAAY;CACb,CAAC,EAQI,IAAyC;CAC7C,OACE;CACF,MAAM;CACN,KAAK;CACL,QACE;CACH;AAOD,SAAS,EAAa,EACpB,QACA,UAAO,SACP,cACA,aACA,GAAG,KACiB;CACpB,IAAM,IAAM,GAAiB,EACvB,IAAW,EAAM,OAAuB,KAAK,EAC7C,IAAc,EAAY,GAAK,EAAS;AAS9C,QAPA,EAAa,GAAU,EAAI,KAAK,EAChC,EAAc,EAAI,KAAK,EACvB,EAAqB,SAAS,EAAI,SAAS,EAAI,KAAK,EACpD,QAAmB,EAAI,aAAa,GAAM,EAAE,EAAI,KAAK,EAEhD,EAAI,OAGP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;EACE,WAAW,EACT,oCACA,0BACA,uEACD;EACD,aAAU;EACV,cAAW;EACX,eAAe,EAAI,aAAa,GAAM;EACtC,eAAY;EACZ,CAAA,EACF,kBAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAW;EACX,mBAAiB,EAAI;EACrB,oBAAkB,EAAI,iBAAiB,EAAI,gBAAgB,KAAA;EAC3D,UAAU;EACV,aAAU;EACV,cAAW;EACX,aAAW;EACX,WAAW,EACT,4BACA,6DACA,iBACA,iDACA,iCAEA,8BACA,EAAY,IACZ,EACD;EACD,GAAI;YArBN,CAuBE,kBAAC,GAAD;GACE,eAAe,EAAI,aAAa,GAAM;GACtC,OAAM;GACN,WAAU;GACV,CAAA,EACD,EACG;IACC,EAAA,CAAA,GA7CW;;AAiDxB,EAAa,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../Sheet/Sheet.cjs`),r=require(`./Sidebar.context.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/jsx-runtime`);function o({ref:e,className:i,children:o,...s}){let{expanded:c,isMobile:l,mobileOpen:u,setMobileOpen:d}=r.useSidebarContext();return l?(0,a.jsx)(n.Sheet,{open:u,onOpenChange:d,children:(0,a.jsxs)(n.SheetContent,{side:`left`,className:`w-72 p-0`,children:[(0,a.jsx)(n.SheetTitle,{className:`sr-only`,children:`Navigation`}),(0,a.jsx)(n.SheetDescription,{className:`sr-only`,children:`Main navigation menu`}),(0,a.jsx)(`div`,{className:`flex h-full flex-col`,...s,children:o})]})}):(0,a.jsx)(`aside`,{ref:e,"data-expanded":c?``:void 0,"data-collapsed":c?void 0:``,className:t.cn(`flex h-full flex-col`,`border-r border-(--nuka-border-base)`,`bg-(--nuka-bg-base)`,`transition-[width] duration-200 ease-in-out`,`motion-reduce:transition-none`,`overflow-hidden shrink-0`,c?`w-64`:`w-14`,i),...s,children:o})}o.displayName=`Sidebar`,exports.Sidebar=o;
|
|
1
|
+
"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../Sheet/Sheet.cjs`),r=require(`./Sidebar.context.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/jsx-runtime`);function o({ref:e,className:i,children:o,...s}){let{expanded:c,isMobile:l,mobileOpen:u,setMobileOpen:d}=r.useSidebarContext();return l?(0,a.jsx)(n.Sheet,{open:u,onOpenChange:d,children:(0,a.jsxs)(n.SheetContent,{side:`left`,className:`w-72 p-0`,children:[(0,a.jsx)(n.SheetTitle,{className:`sr-only`,children:`Navigation`}),(0,a.jsx)(n.SheetDescription,{className:`sr-only`,children:`Main navigation menu`}),(0,a.jsx)(`div`,{className:`flex h-full flex-col`,"data-slot":`root`,...s,children:o})]})}):(0,a.jsx)(`aside`,{ref:e,"data-slot":`root`,"data-expanded":c?``:void 0,"data-collapsed":c?void 0:``,className:t.cn(`flex h-full flex-col`,`border-r border-(--nuka-border-base)`,`bg-(--nuka-bg-base)`,`transition-[width] duration-200 ease-in-out`,`motion-reduce:transition-none`,`overflow-hidden shrink-0`,c?`w-64`:`w-14`,i),...s,children:o})}o.displayName=`Sidebar`,exports.Sidebar=o;
|
|
2
2
|
//# sourceMappingURL=Sidebar.cjs.map
|