@cellarnode/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat/chat-api.d.ts +14 -0
- package/dist/chat/chat-api.d.ts.map +1 -0
- package/dist/chat/chat-api.js +36 -0
- package/dist/chat/chat-api.js.map +1 -0
- package/dist/chat/chat-toggle-button.d.ts +8 -0
- package/dist/chat/chat-toggle-button.d.ts.map +1 -0
- package/dist/chat/chat-toggle-button.js +8 -0
- package/dist/chat/chat-toggle-button.js.map +1 -0
- package/dist/chat/chat-ws.d.ts +61 -0
- package/dist/chat/chat-ws.d.ts.map +1 -0
- package/dist/chat/chat-ws.js +217 -0
- package/dist/chat/chat-ws.js.map +1 -0
- package/dist/chat/communication-hub-widget.d.ts +21 -0
- package/dist/chat/communication-hub-widget.d.ts.map +1 -0
- package/dist/chat/communication-hub-widget.js +49 -0
- package/dist/chat/communication-hub-widget.js.map +1 -0
- package/dist/chat/communication-panel.d.ts +3 -0
- package/dist/chat/communication-panel.d.ts.map +1 -0
- package/dist/chat/communication-panel.js +34 -0
- package/dist/chat/communication-panel.js.map +1 -0
- package/dist/chat/index.d.ts +17 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +11 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/messenger-layout.d.ts +25 -0
- package/dist/chat/messenger-layout.d.ts.map +1 -0
- package/dist/chat/messenger-layout.js +70 -0
- package/dist/chat/messenger-layout.js.map +1 -0
- package/dist/chat/negotiation-event-card.d.ts +9 -0
- package/dist/chat/negotiation-event-card.d.ts.map +1 -0
- package/dist/chat/negotiation-event-card.js +39 -0
- package/dist/chat/negotiation-event-card.js.map +1 -0
- package/dist/chat/timeline-utils.d.ts +7 -0
- package/dist/chat/timeline-utils.d.ts.map +1 -0
- package/dist/chat/timeline-utils.js +40 -0
- package/dist/chat/timeline-utils.js.map +1 -0
- package/dist/chat/types.d.ts +132 -0
- package/dist/chat/types.d.ts.map +1 -0
- package/dist/chat/types.js +3 -0
- package/dist/chat/types.js.map +1 -0
- package/dist/chat/unified-timeline.d.ts +13 -0
- package/dist/chat/unified-timeline.d.ts.map +1 -0
- package/dist/chat/unified-timeline.js +97 -0
- package/dist/chat/unified-timeline.js.map +1 -0
- package/dist/chat/use-chat.d.ts +10 -0
- package/dist/chat/use-chat.d.ts.map +1 -0
- package/dist/chat/use-chat.js +280 -0
- package/dist/chat/use-chat.js.map +1 -0
- package/dist/components/accordion.d.ts +8 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +19 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert.d.ts +29 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +31 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/animated-list.d.ts +20 -0
- package/dist/components/animated-list.d.ts.map +1 -0
- package/dist/components/animated-list.js +50 -0
- package/dist/components/animated-list.js.map +1 -0
- package/dist/components/avatar.d.ts +19 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +18 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +39 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +35 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/button.d.ts +64 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +174 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/button.stories.d.ts +13 -0
- package/dist/components/button.stories.d.ts.map +1 -0
- package/dist/components/button.stories.js +48 -0
- package/dist/components/button.stories.js.map +1 -0
- package/dist/components/card.d.ts +9 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +17 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/checkbox.d.ts +37 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +84 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/combobox.d.ts +20 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +87 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command.d.ts +12 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +31 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/description-list.d.ts +4 -0
- package/dist/components/description-list.d.ts.map +1 -0
- package/dist/components/description-list.js +12 -0
- package/dist/components/description-list.js.map +1 -0
- package/dist/components/dialog.d.ts +30 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +32 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/divider.d.ts +4 -0
- package/dist/components/divider.d.ts.map +1 -0
- package/dist/components/divider.js +6 -0
- package/dist/components/divider.js.map +1 -0
- package/dist/components/drawer.d.ts +23 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +23 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +26 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +52 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown.d.ts +37 -0
- package/dist/components/dropdown.d.ts.map +1 -0
- package/dist/components/dropdown.js +79 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/fieldset.d.ts +22 -0
- package/dist/components/fieldset.d.ts.map +1 -0
- package/dist/components/fieldset.js +25 -0
- package/dist/components/fieldset.js.map +1 -0
- package/dist/components/form.d.ts +25 -0
- package/dist/components/form.d.ts.map +1 -0
- package/dist/components/form.js +60 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/heading.d.ts +7 -0
- package/dist/components/heading.d.ts.map +1 -0
- package/dist/components/heading.js +11 -0
- package/dist/components/heading.js.map +1 -0
- package/dist/components/input.d.ts +11 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +57 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/kanban-board.d.ts +78 -0
- package/dist/components/kanban-board.d.ts.map +1 -0
- package/dist/components/kanban-board.js +18 -0
- package/dist/components/kanban-board.js.map +1 -0
- package/dist/components/kanban-board.stories.d.ts +10 -0
- package/dist/components/kanban-board.stories.d.ts.map +1 -0
- package/dist/components/kanban-board.stories.js +125 -0
- package/dist/components/kanban-board.stories.js.map +1 -0
- package/dist/components/kanban-card.d.ts +8 -0
- package/dist/components/kanban-card.d.ts.map +1 -0
- package/dist/components/kanban-card.js +13 -0
- package/dist/components/kanban-card.js.map +1 -0
- package/dist/components/kanban-dnd-board.d.ts +8 -0
- package/dist/components/kanban-dnd-board.d.ts.map +1 -0
- package/dist/components/kanban-dnd-board.js +104 -0
- package/dist/components/kanban-dnd-board.js.map +1 -0
- package/dist/components/label.d.ts +5 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +9 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/link.d.ts +12 -0
- package/dist/components/link.d.ts.map +1 -0
- package/dist/components/link.js +14 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/listbox.d.ts +16 -0
- package/dist/components/listbox.d.ts.map +1 -0
- package/dist/components/listbox.js +88 -0
- package/dist/components/listbox.js.map +1 -0
- package/dist/components/pagination.d.ts +18 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +22 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.d.ts +11 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +27 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/radio.d.ts +38 -0
- package/dist/components/radio.d.ts.map +1 -0
- package/dist/components/radio.js +87 -0
- package/dist/components/radio.js.map +1 -0
- package/dist/components/scroll-area.d.ts +6 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +14 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +6 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +41 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +5 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +9 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/shadcn-badge.d.ts +10 -0
- package/dist/components/shadcn-badge.d.ts.map +1 -0
- package/dist/components/shadcn-badge.js +25 -0
- package/dist/components/shadcn-badge.js.map +1 -0
- package/dist/components/shadcn-button.d.ts +11 -0
- package/dist/components/shadcn-button.d.ts.map +1 -0
- package/dist/components/shadcn-button.js +36 -0
- package/dist/components/shadcn-button.js.map +1 -0
- package/dist/components/shadcn-dialog.d.ts +18 -0
- package/dist/components/shadcn-dialog.d.ts.map +1 -0
- package/dist/components/shadcn-dialog.js +37 -0
- package/dist/components/shadcn-dialog.js.map +1 -0
- package/dist/components/shadcn-input.d.ts +4 -0
- package/dist/components/shadcn-input.d.ts.map +1 -0
- package/dist/components/shadcn-input.js +7 -0
- package/dist/components/shadcn-input.js.map +1 -0
- package/dist/components/shadcn-select.d.ts +14 -0
- package/dist/components/shadcn-select.d.ts.map +1 -0
- package/dist/components/shadcn-select.js +32 -0
- package/dist/components/shadcn-select.js.map +1 -0
- package/dist/components/shadcn-textarea.d.ts +4 -0
- package/dist/components/shadcn-textarea.d.ts.map +1 -0
- package/dist/components/shadcn-textarea.js +7 -0
- package/dist/components/shadcn-textarea.js.map +1 -0
- package/dist/components/sheet.d.ts +26 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +37 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.d.ts +68 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +208 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +3 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +7 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +5 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +8 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/sonner.d.ts +11 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.js +14 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/switch.d.ts +30 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +68 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +17 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +41 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +12 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +30 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text.d.ts +6 -0
- package/dist/components/text.d.ts.map +1 -0
- package/dist/components/text.js +16 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/textarea.d.ts +8 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +38 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toast.d.ts +16 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +34 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toaster.d.ts +2 -0
- package/dist/components/toaster.d.ts.map +1 -0
- package/dist/components/toaster.js +10 -0
- package/dist/components/toaster.js.map +1 -0
- package/dist/components/tooltip.d.ts +8 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +11 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/use-toast.d.ts +3 -0
- package/dist/components/use-toast.d.ts.map +1 -0
- package/dist/components/use-toast.js +3 -0
- package/dist/components/use-toast.js.map +1 -0
- package/dist/globe/data/country-geo.d.ts +15 -0
- package/dist/globe/data/country-geo.d.ts.map +1 -0
- package/dist/globe/data/country-geo.js +81 -0
- package/dist/globe/data/country-geo.js.map +1 -0
- package/dist/globe/electron-arc.d.ts +30 -0
- package/dist/globe/electron-arc.d.ts.map +1 -0
- package/dist/globe/electron-arc.js +119 -0
- package/dist/globe/electron-arc.js.map +1 -0
- package/dist/globe/globe-theme.d.ts +34 -0
- package/dist/globe/globe-theme.d.ts.map +1 -0
- package/dist/globe/globe-theme.js +118 -0
- package/dist/globe/globe-theme.js.map +1 -0
- package/dist/globe/globe-types.d.ts +42 -0
- package/dist/globe/globe-types.d.ts.map +1 -0
- package/dist/globe/globe-types.js +5 -0
- package/dist/globe/globe-types.js.map +1 -0
- package/dist/globe/globe-view.d.ts +27 -0
- package/dist/globe/globe-view.d.ts.map +1 -0
- package/dist/globe/globe-view.js +601 -0
- package/dist/globe/globe-view.js.map +1 -0
- package/dist/globe/globe-view.stories.d.ts +42 -0
- package/dist/globe/globe-view.stories.d.ts.map +1 -0
- package/dist/globe/globe-view.stories.js +319 -0
- package/dist/globe/globe-view.stories.js.map +1 -0
- package/dist/globe/index.d.ts +12 -0
- package/dist/globe/index.d.ts.map +1 -0
- package/dist/globe/index.js +7 -0
- package/dist/globe/index.js.map +1 -0
- package/dist/globe/map/country-code-map.d.ts +10 -0
- package/dist/globe/map/country-code-map.d.ts.map +1 -0
- package/dist/globe/map/country-code-map.js +15 -0
- package/dist/globe/map/country-code-map.js.map +1 -0
- package/dist/globe/map/map-geometry.d.ts +10 -0
- package/dist/globe/map/map-geometry.d.ts.map +1 -0
- package/dist/globe/map/map-geometry.js +57 -0
- package/dist/globe/map/map-geometry.js.map +1 -0
- package/dist/globe/map/map-materials.d.ts +8 -0
- package/dist/globe/map/map-materials.d.ts.map +1 -0
- package/dist/globe/map/map-materials.js +32 -0
- package/dist/globe/map/map-materials.js.map +1 -0
- package/dist/globe/map/map-projection.d.ts +11 -0
- package/dist/globe/map/map-projection.d.ts.map +1 -0
- package/dist/globe/map/map-projection.js +17 -0
- package/dist/globe/map/map-projection.js.map +1 -0
- package/dist/globe/scene-extras.d.ts +10 -0
- package/dist/globe/scene-extras.d.ts.map +1 -0
- package/dist/globe/scene-extras.js +69 -0
- package/dist/globe/scene-extras.js.map +1 -0
- package/dist/hooks/use-kanban-dnd.d.ts +23 -0
- package/dist/hooks/use-kanban-dnd.d.ts.map +1 -0
- package/dist/hooks/use-kanban-dnd.js +22 -0
- package/dist/hooks/use-kanban-dnd.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-toast.d.ts +45 -0
- package/dist/hooks/use-toast.d.ts.map +1 -0
- package/dist/hooks/use-toast.js +125 -0
- package/dist/hooks/use-toast.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/currencies.d.ts +33 -0
- package/dist/lib/currencies.d.ts.map +1 -0
- package/dist/lib/currencies.js +13 -0
- package/dist/lib/currencies.js.map +1 -0
- package/dist/lib/kanban-transitions.d.ts +12 -0
- package/dist/lib/kanban-transitions.d.ts.map +1 -0
- package/dist/lib/kanban-transitions.js +13 -0
- package/dist/lib/kanban-transitions.js.map +1 -0
- package/dist/lib/semantic-tones.d.ts +4 -0
- package/dist/lib/semantic-tones.d.ts.map +1 -0
- package/dist/lib/semantic-tones.js +35 -0
- package/dist/lib/semantic-tones.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/offer/attachments-folder.d.ts +13 -0
- package/dist/offer/attachments-folder.d.ts.map +1 -0
- package/dist/offer/attachments-folder.js +20 -0
- package/dist/offer/attachments-folder.js.map +1 -0
- package/dist/offer/confirm-action-dialog.d.ts +18 -0
- package/dist/offer/confirm-action-dialog.d.ts.map +1 -0
- package/dist/offer/confirm-action-dialog.js +57 -0
- package/dist/offer/confirm-action-dialog.js.map +1 -0
- package/dist/offer/index.d.ts +11 -0
- package/dist/offer/index.d.ts.map +1 -0
- package/dist/offer/index.js +6 -0
- package/dist/offer/index.js.map +1 -0
- package/dist/offer/inline-counter-form.d.ts +19 -0
- package/dist/offer/inline-counter-form.d.ts.map +1 -0
- package/dist/offer/inline-counter-form.js +59 -0
- package/dist/offer/inline-counter-form.js.map +1 -0
- package/dist/offer/negotiation-event-card.d.ts +9 -0
- package/dist/offer/negotiation-event-card.d.ts.map +1 -0
- package/dist/offer/negotiation-event-card.js +39 -0
- package/dist/offer/negotiation-event-card.js.map +1 -0
- package/dist/offer/offer-status-badge.d.ts +8 -0
- package/dist/offer/offer-status-badge.d.ts.map +1 -0
- package/dist/offer/offer-status-badge.js +35 -0
- package/dist/offer/offer-status-badge.js.map +1 -0
- package/dist/offer/types.d.ts +43 -0
- package/dist/offer/types.d.ts.map +1 -0
- package/dist/offer/types.js +2 -0
- package/dist/offer/types.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +2 -0
- package/dist/theme/index.js.map +1 -0
- package/package.json +166 -0
- package/src/theme/tokens.css +475 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* DnD-enabled KanbanBoard variant. Loaded lazily via React.lazy()
|
|
4
|
+
* to avoid bundling @dnd-kit when DnD is not needed.
|
|
5
|
+
*/
|
|
6
|
+
import { useState, useCallback } from "react";
|
|
7
|
+
import { DragDropProvider, DragOverlay, useDragOperation, useDroppable, } from "@dnd-kit/react";
|
|
8
|
+
import { cn } from "../lib/utils";
|
|
9
|
+
import { KanbanColumnShell } from "./kanban-board";
|
|
10
|
+
// ─── DnD Board ───────────────────────────────────────────────────────────────
|
|
11
|
+
function KanbanDndBoard({ columns, renderColumnCards, className, items, getItemId, getItemColumn, onDragEnd, onDragStartRaw, onDragEndRaw, isValidTransition, renderDragOverlay, renderColumn, columnClassName, columnBodyClassName, }) {
|
|
12
|
+
const [dragSourceColumn, setDragSourceColumn] = useState(null);
|
|
13
|
+
const handleDragStart = useCallback((event) => {
|
|
14
|
+
onDragStartRaw?.(event);
|
|
15
|
+
// Try to derive source column from the dragged item
|
|
16
|
+
if (items && getItemId && getItemColumn) {
|
|
17
|
+
const sourceData = event.operation?.source?.data;
|
|
18
|
+
if (sourceData) {
|
|
19
|
+
// Check if the source data contains an item we can identify
|
|
20
|
+
const itemId = sourceData.itemId;
|
|
21
|
+
if (itemId) {
|
|
22
|
+
const item = items.find((i) => getItemId(i) === itemId);
|
|
23
|
+
if (item) {
|
|
24
|
+
setDragSourceColumn(getItemColumn(item));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Fallback: check for columnId in source data
|
|
31
|
+
const columnId = event.operation?.source?.data?.columnId;
|
|
32
|
+
if (columnId) {
|
|
33
|
+
setDragSourceColumn(columnId);
|
|
34
|
+
}
|
|
35
|
+
}, [items, getItemId, getItemColumn, onDragStartRaw]);
|
|
36
|
+
const handleDragEnd = useCallback((event) => {
|
|
37
|
+
const prevSourceColumn = dragSourceColumn;
|
|
38
|
+
setDragSourceColumn(null);
|
|
39
|
+
onDragEndRaw?.(event);
|
|
40
|
+
if (event.canceled)
|
|
41
|
+
return;
|
|
42
|
+
const { source, target } = event.operation ?? {};
|
|
43
|
+
if (!source || !target)
|
|
44
|
+
return;
|
|
45
|
+
// Get target column ID
|
|
46
|
+
const targetColumnId = target.data?.columnId;
|
|
47
|
+
if (!targetColumnId)
|
|
48
|
+
return;
|
|
49
|
+
// Get source item ID and column
|
|
50
|
+
const sourceItemId = source.data?.itemId;
|
|
51
|
+
let sourceColumnId = prevSourceColumn;
|
|
52
|
+
if (!sourceColumnId && sourceItemId && items && getItemId && getItemColumn) {
|
|
53
|
+
const item = items.find((i) => getItemId(i) === sourceItemId);
|
|
54
|
+
if (item)
|
|
55
|
+
sourceColumnId = getItemColumn(item);
|
|
56
|
+
}
|
|
57
|
+
if (!sourceColumnId || !sourceItemId)
|
|
58
|
+
return;
|
|
59
|
+
if (sourceColumnId === targetColumnId)
|
|
60
|
+
return;
|
|
61
|
+
if (isValidTransition && !isValidTransition(sourceColumnId, targetColumnId))
|
|
62
|
+
return;
|
|
63
|
+
onDragEnd?.(sourceItemId, sourceColumnId, targetColumnId);
|
|
64
|
+
}, [dragSourceColumn, items, getItemId, getItemColumn, isValidTransition, onDragEnd, onDragEndRaw]);
|
|
65
|
+
return (_jsxs(DragDropProvider, { onDragStart: handleDragStart, onDragEnd: handleDragEnd, children: [_jsx("div", { className: cn("grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4", className), children: columns.map((col) => {
|
|
66
|
+
const isValid = dragSourceColumn !== null &&
|
|
67
|
+
(isValidTransition
|
|
68
|
+
? isValidTransition(dragSourceColumn, col.id)
|
|
69
|
+
: dragSourceColumn !== col.id);
|
|
70
|
+
const isInvalid = dragSourceColumn !== null && !isValid;
|
|
71
|
+
return (_jsx(DroppableColumn, { column: col, disabled: isInvalid, isValidTarget: isValid, isInvalidTarget: isInvalid, isDragging: dragSourceColumn !== null, renderColumn: renderColumn, columnClassName: columnClassName, bodyClassName: columnBodyClassName, children: renderColumnCards(col.id) }, col.id));
|
|
72
|
+
}) }), renderDragOverlay && items && getItemId && (_jsx(DndOverlay, { items: items, getItemId: getItemId, renderDragOverlay: renderDragOverlay }))] }));
|
|
73
|
+
}
|
|
74
|
+
function DroppableColumn({ column, children, disabled, isValidTarget, isInvalidTarget, isDragging, renderColumn, columnClassName, bodyClassName, }) {
|
|
75
|
+
const { ref, isDropTarget } = useDroppable({
|
|
76
|
+
id: column.id,
|
|
77
|
+
data: { columnId: column.id },
|
|
78
|
+
disabled,
|
|
79
|
+
});
|
|
80
|
+
const state = {
|
|
81
|
+
isOver: isDropTarget,
|
|
82
|
+
isValidTarget,
|
|
83
|
+
isInvalidTarget,
|
|
84
|
+
isDragging,
|
|
85
|
+
};
|
|
86
|
+
// When renderColumn is provided, delegate full column rendering to the consumer
|
|
87
|
+
if (renderColumn) {
|
|
88
|
+
return _jsx(_Fragment, { children: renderColumn(column, children, state, ref) });
|
|
89
|
+
}
|
|
90
|
+
const extraClass = typeof columnClassName === "function"
|
|
91
|
+
? columnClassName(column.id, state)
|
|
92
|
+
: columnClassName;
|
|
93
|
+
const dndClasses = cn(isDropTarget && isValidTarget && "ring-2 ring-primary/40", isInvalidTarget && "opacity-40");
|
|
94
|
+
return (_jsx(KanbanColumnShell, { column: column, className: cn(dndClasses, extraClass), bodyClassName: bodyClassName, children: _jsx("div", { ref: ref, className: "flex min-h-0 flex-1 flex-col", children: children }) }));
|
|
95
|
+
}
|
|
96
|
+
// ─── Drag Overlay ────────────────────────────────────────────────────────────
|
|
97
|
+
function DndOverlay({ items, getItemId, renderDragOverlay, }) {
|
|
98
|
+
const { source } = useDragOperation();
|
|
99
|
+
const itemId = source?.data?.itemId;
|
|
100
|
+
const item = itemId ? items.find((i) => getItemId(i) === itemId) : undefined;
|
|
101
|
+
return _jsx(DragOverlay, { children: item ? renderDragOverlay(item) : null });
|
|
102
|
+
}
|
|
103
|
+
export default KanbanDndBoard;
|
|
104
|
+
//# sourceMappingURL=kanban-dnd-board.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-dnd-board.js","sourceRoot":"","sources":["../../src/components/kanban-dnd-board.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Label as LabelPrimitive } from "radix-ui";
|
|
3
|
+
declare function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export { Label };
|
|
5
|
+
//# sourceMappingURL=label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,UAAU,CAAA;AAIlD,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,2CAWlD;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Label as LabelPrimitive } from "radix-ui";
|
|
4
|
+
import { cn } from "../lib/utils";
|
|
5
|
+
function Label({ className, ...props }) {
|
|
6
|
+
return (_jsx(LabelPrimitive.Root, { "data-slot": "label", className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className), ...props }));
|
|
7
|
+
}
|
|
8
|
+
export { Label };
|
|
9
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,SAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACyC;IACjD,OAAO,CACL,KAAC,cAAc,CAAC,IAAI,iBACR,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,qNAAqN,EACrN,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TODO: Update this component to use your client-side framework's link
|
|
3
|
+
* component. We've provided examples of how to do this for Next.js, Remix, and
|
|
4
|
+
* Inertia.js in the Catalyst documentation:
|
|
5
|
+
*
|
|
6
|
+
* https://catalyst.tailwindui.com/docs#client-side-router-integration
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
export declare const Link: React.ForwardRefExoticComponent<{
|
|
10
|
+
href: string;
|
|
11
|
+
} & Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
12
|
+
//# sourceMappingURL=link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/components/link.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,eAAO,MAAM,IAAI;UACA,MAAM;oJAQrB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* TODO: Update this component to use your client-side framework's link
|
|
4
|
+
* component. We've provided examples of how to do this for Next.js, Remix, and
|
|
5
|
+
* Inertia.js in the Catalyst documentation:
|
|
6
|
+
*
|
|
7
|
+
* https://catalyst.tailwindui.com/docs#client-side-router-integration
|
|
8
|
+
*/
|
|
9
|
+
import * as Headless from '@headlessui/react';
|
|
10
|
+
import { forwardRef } from 'react';
|
|
11
|
+
export const Link = forwardRef(function Link(props, ref) {
|
|
12
|
+
return (_jsx(Headless.DataInteractive, { children: _jsx("a", { ...props, ref: ref }) }));
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/components/link.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,IAAI,CAC1C,KAA6D,EAC7D,GAA0C;IAE1C,OAAO,CACL,KAAC,QAAQ,CAAC,eAAe,cACvB,eAAO,KAAK,EAAE,GAAG,EAAE,GAAG,GAAI,GACD,CAC5B,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as Headless from '@headlessui/react';
|
|
2
|
+
export declare function Listbox<T>({ className, placeholder, autoFocus, plain, 'aria-label': ariaLabel, children: options, ...props }: {
|
|
3
|
+
className?: string;
|
|
4
|
+
placeholder?: React.ReactNode;
|
|
5
|
+
autoFocus?: boolean;
|
|
6
|
+
plain?: boolean;
|
|
7
|
+
'aria-label'?: string;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
} & Omit<Headless.ListboxProps<'div', T>, 'as' | 'multiple'>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function ListboxOption<T>({ children, className, ...props }: {
|
|
11
|
+
className?: string;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
} & Omit<Headless.ListboxOptionProps<'div', T>, 'as' | 'className'>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function ListboxLabel({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function ListboxDescription({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=listbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listbox.d.ts","sourceRoot":"","sources":["../../src/components/listbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAI7C,wBAAgB,OAAO,CAAC,CAAC,EAAE,EACzB,SAAS,EACT,WAAW,EACX,SAAS,EACT,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,QAAQ,EAAE,OAAO,EACjB,GAAG,KAAK,EACT,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,2CAqF3D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,GAAG,IAAI,CAC1D,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,EACrC,IAAI,GAAG,WAAW,CACnB,2CAgDA;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAE3F;AAED,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAY3G"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as Headless from '@headlessui/react';
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
import { Fragment } from 'react'; // Still used by ListboxOption
|
|
6
|
+
export function Listbox({ className, placeholder, autoFocus, plain, 'aria-label': ariaLabel, children: options, ...props }) {
|
|
7
|
+
return (_jsxs(Headless.Listbox, { as: "div", ...props, multiple: false, children: [_jsxs(Headless.ListboxButton, { autoFocus: autoFocus, "data-slot": "control", "aria-label": ariaLabel, className: clsx([
|
|
8
|
+
className,
|
|
9
|
+
// Basic layout
|
|
10
|
+
'group relative block w-full',
|
|
11
|
+
// Background color + shadow applied to inset pseudo element (skip for plain variant)
|
|
12
|
+
!plain && 'before:absolute before:inset-px before:rounded-[calc(var(--radius-lg)-1px)] before:bg-white before:shadow-sm',
|
|
13
|
+
// Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo
|
|
14
|
+
!plain && 'dark:before:hidden',
|
|
15
|
+
// Hide default focus styles
|
|
16
|
+
'focus:outline-hidden',
|
|
17
|
+
// Focus ring
|
|
18
|
+
'after:pointer-events-none after:absolute after:inset-0 after:rounded-lg after:ring-transparent after:ring-inset data-focus:after:ring-2 data-focus:after:ring-ring',
|
|
19
|
+
// Disabled state
|
|
20
|
+
'data-disabled:opacity-50',
|
|
21
|
+
!plain && 'data-disabled:before:bg-zinc-950/5 data-disabled:before:shadow-none',
|
|
22
|
+
]), children: [_jsx(Headless.ListboxSelectedOption, { as: "span", options: options, placeholder: placeholder && _jsx("span", { className: "block truncate text-zinc-500", children: placeholder }), className: clsx([
|
|
23
|
+
// Basic layout
|
|
24
|
+
'relative block w-full appearance-none rounded-lg',
|
|
25
|
+
// Padding - compact for plain variant
|
|
26
|
+
plain
|
|
27
|
+
? 'py-1 pr-6 pl-2.5'
|
|
28
|
+
: 'py-[calc(--spacing(2.5)-1px)] sm:py-[calc(--spacing(1.5)-1px)] pr-[calc(--spacing(7)-1px)] pl-[calc(--spacing(3.5)-1px)] sm:pl-[calc(--spacing(3)-1px)]',
|
|
29
|
+
// Set minimum height for when no value is selected (skip for plain)
|
|
30
|
+
!plain && 'min-h-11 sm:min-h-9',
|
|
31
|
+
// Typography
|
|
32
|
+
'text-left text-base/6 text-zinc-950 placeholder:text-zinc-500 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]',
|
|
33
|
+
// Border
|
|
34
|
+
'border border-zinc-950/10 group-data-active:border-zinc-950/20 group-data-hover:border-zinc-950/20 dark:border-white/10 dark:group-data-active:border-white/20 dark:group-data-hover:border-white/20',
|
|
35
|
+
// Background color
|
|
36
|
+
'bg-transparent dark:bg-white/5',
|
|
37
|
+
// Invalid state
|
|
38
|
+
'group-data-invalid:border-red-500 group-data-hover:group-data-invalid:border-red-500 dark:group-data-invalid:border-red-600 dark:data-hover:group-data-invalid:border-red-600',
|
|
39
|
+
// Disabled state
|
|
40
|
+
'group-data-disabled:border-zinc-950/20 group-data-disabled:opacity-100 dark:group-data-disabled:border-white/15 dark:group-data-disabled:bg-white/2.5 dark:group-data-disabled:data-hover:border-white/15',
|
|
41
|
+
]) }), _jsx("span", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2", children: _jsxs("svg", { className: "size-5 stroke-zinc-500 group-data-disabled:stroke-zinc-600 sm:size-4 dark:stroke-zinc-400 forced-colors:stroke-[CanvasText]", viewBox: "0 0 16 16", "aria-hidden": "true", fill: "none", children: [_jsx("path", { d: "M5.75 10.75L8 13L10.25 10.75", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M10.25 5.25L8 3L5.75 5.25", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" })] }) })] }), _jsx(Headless.ListboxOptions, { transition: true, anchor: "selection start", className: clsx(
|
|
42
|
+
// Anchor positioning
|
|
43
|
+
'[--anchor-offset:-1.625rem] [--anchor-padding:--spacing(4)] sm:[--anchor-offset:-1.375rem]',
|
|
44
|
+
// Base styles
|
|
45
|
+
'isolate z-50 w-[var(--button-width)] min-w-[var(--button-width)] scroll-py-1 rounded-xl p-1 select-none',
|
|
46
|
+
// Invisible border that is only visible in `forced-colors` mode for accessibility purposes
|
|
47
|
+
'outline outline-transparent focus:outline-hidden',
|
|
48
|
+
// Handle scrolling when menu won't fit in viewport
|
|
49
|
+
'overflow-y-scroll overscroll-contain',
|
|
50
|
+
// Popover background
|
|
51
|
+
'bg-white/75 backdrop-blur-xl dark:bg-zinc-800/75',
|
|
52
|
+
// Shadows
|
|
53
|
+
'shadow-lg ring-1 ring-zinc-950/10 dark:ring-white/10 dark:ring-inset',
|
|
54
|
+
// Transitions
|
|
55
|
+
'transition-opacity duration-100 ease-in data-closed:data-leave:opacity-0 data-transition:pointer-events-none'), children: options })] }));
|
|
56
|
+
}
|
|
57
|
+
export function ListboxOption({ children, className, ...props }) {
|
|
58
|
+
const sharedClasses = clsx(
|
|
59
|
+
// Base
|
|
60
|
+
'flex min-w-0 items-center',
|
|
61
|
+
// Icons
|
|
62
|
+
'*:data-[slot=icon]:size-5 *:data-[slot=icon]:shrink-0 sm:*:data-[slot=icon]:size-4', '*:data-[slot=icon]:text-zinc-500 group-data-focus/option:*:data-[slot=icon]:text-white dark:*:data-[slot=icon]:text-zinc-400', 'forced-colors:*:data-[slot=icon]:text-[CanvasText] forced-colors:group-data-focus/option:*:data-[slot=icon]:text-[Canvas]',
|
|
63
|
+
// Avatars
|
|
64
|
+
'*:data-[slot=avatar]:-mx-0.5 *:data-[slot=avatar]:size-6 sm:*:data-[slot=avatar]:size-5');
|
|
65
|
+
return (_jsx(Headless.ListboxOption, { as: Fragment, ...props, children: ({ selectedOption }) => {
|
|
66
|
+
if (selectedOption) {
|
|
67
|
+
return _jsx("div", { className: clsx(className, sharedClasses), children: children });
|
|
68
|
+
}
|
|
69
|
+
return (_jsxs("div", { className: clsx(
|
|
70
|
+
// Basic layout
|
|
71
|
+
'group/option grid cursor-default grid-cols-[--spacing(5)_1fr] items-baseline gap-x-2 rounded-lg py-2.5 pr-3.5 pl-2 sm:grid-cols-[--spacing(4)_1fr] sm:py-1.5 sm:pr-3 sm:pl-1.5',
|
|
72
|
+
// Typography
|
|
73
|
+
'text-base/6 text-zinc-950 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]',
|
|
74
|
+
// Focus
|
|
75
|
+
'outline-hidden data-focus:bg-primary data-focus:text-primary-foreground',
|
|
76
|
+
// Forced colors mode
|
|
77
|
+
'forced-color-adjust-none forced-colors:data-focus:bg-[Highlight] forced-colors:data-focus:text-[HighlightText]',
|
|
78
|
+
// Disabled
|
|
79
|
+
'data-disabled:opacity-50'), children: [_jsx("svg", { className: "relative hidden size-5 self-center stroke-current group-data-selected/option:inline sm:size-4", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M4 8.5l3 3L12 4", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }) }), _jsx("span", { className: clsx(className, sharedClasses, 'col-start-2'), children: children })] }));
|
|
80
|
+
} }));
|
|
81
|
+
}
|
|
82
|
+
export function ListboxLabel({ className, ...props }) {
|
|
83
|
+
return _jsx("span", { ...props, className: clsx(className, 'ml-2.5 truncate first:ml-0 sm:ml-2 sm:first:ml-0') });
|
|
84
|
+
}
|
|
85
|
+
export function ListboxDescription({ className, children, ...props }) {
|
|
86
|
+
return (_jsx("span", { ...props, className: clsx(className, 'flex flex-1 overflow-hidden text-zinc-500 group-data-focus/option:text-white before:w-2 before:min-w-0 before:shrink dark:text-zinc-400'), children: _jsx("span", { className: "flex-1 truncate", children: children }) }));
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=listbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listbox.js","sourceRoot":"","sources":["../../src/components/listbox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export declare function Pagination({ 'aria-label': ariaLabel, className, ...props }: React.ComponentPropsWithoutRef<'nav'>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function PaginationPrevious({ href, className, children, }: React.PropsWithChildren<{
|
|
4
|
+
href?: string | null;
|
|
5
|
+
className?: string;
|
|
6
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function PaginationNext({ href, className, children, }: React.PropsWithChildren<{
|
|
8
|
+
href?: string | null;
|
|
9
|
+
className?: string;
|
|
10
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function PaginationList({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function PaginationPage({ href, className, current, children, }: React.PropsWithChildren<{
|
|
13
|
+
href: string;
|
|
14
|
+
className?: string;
|
|
15
|
+
current?: boolean;
|
|
16
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function PaginationGap({ className, children, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,wBAAgB,UAAU,CAAC,EACzB,YAAY,EAAE,SAA6B,EAC3C,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAEvC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAW,EACX,SAAS,EACT,QAAqB,GACtB,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,2CAgBvE;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAW,EACX,SAAS,EACT,QAAiB,GAClB,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,2CAgBvE;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAE7F;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,SAAS,EACT,OAAe,EACf,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,2CAgBlF;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAUxC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { Button } from './button';
|
|
4
|
+
export function Pagination({ 'aria-label': ariaLabel = 'Page navigation', className, ...props }) {
|
|
5
|
+
return _jsx("nav", { "aria-label": ariaLabel, ...props, className: clsx(className, 'flex gap-x-2') });
|
|
6
|
+
}
|
|
7
|
+
export function PaginationPrevious({ href = null, className, children = 'Previous', }) {
|
|
8
|
+
return (_jsx("span", { className: clsx(className, 'grow basis-0'), children: _jsxs(Button, { ...(href === null ? { disabled: true } : { href }), plain: true, "aria-label": "Previous page", children: [_jsx("svg", { className: "stroke-current", "data-slot": "icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M2.75 8H13.25M2.75 8L5.25 5.5M2.75 8L5.25 10.5", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }) }), children] }) }));
|
|
9
|
+
}
|
|
10
|
+
export function PaginationNext({ href = null, className, children = 'Next', }) {
|
|
11
|
+
return (_jsx("span", { className: clsx(className, 'flex grow basis-0 justify-end'), children: _jsxs(Button, { ...(href === null ? { disabled: true } : { href }), plain: true, "aria-label": "Next page", children: [children, _jsx("svg", { className: "stroke-current", "data-slot": "icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M13.25 8L2.75 8M13.25 8L10.75 10.5M13.25 8L10.75 5.5", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }) })] }) }));
|
|
12
|
+
}
|
|
13
|
+
export function PaginationList({ className, ...props }) {
|
|
14
|
+
return _jsx("span", { ...props, className: clsx(className, 'hidden items-baseline gap-x-2 sm:flex') });
|
|
15
|
+
}
|
|
16
|
+
export function PaginationPage({ href, className, current = false, children, }) {
|
|
17
|
+
return (_jsx(Button, { href: href, plain: true, "aria-label": `Page ${children}`, "aria-current": current ? 'page' : undefined, className: clsx(className, 'min-w-9 before:absolute before:-inset-px before:rounded-lg', current && 'before:bg-zinc-950/5 dark:before:bg-white/10'), children: _jsx("span", { className: "-mx-0.5", children: children }) }));
|
|
18
|
+
}
|
|
19
|
+
export function PaginationGap({ className, children = _jsx(_Fragment, { children: "\u2026" }), ...props }) {
|
|
20
|
+
return (_jsx("span", { "aria-hidden": "true", ...props, className: clsx(className, 'w-9 text-center text-sm/6 font-semibold text-zinc-950 select-none dark:text-white'), children: children }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,UAAU,UAAU,CAAC,EACzB,YAAY,EAAE,SAAS,GAAG,iBAAiB,EAC3C,SAAS,EACT,GAAG,KAAK,EAC8B;IACtC,OAAO,4BAAiB,SAAS,KAAM,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,GAAI,CAAA;AAC9F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,GAAG,IAAI,EACX,SAAS,EACT,QAAQ,GAAG,UAAU,GACiD;IACtE,OAAO,CACL,eAAM,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,YAC9C,MAAC,MAAM,OAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,sBAAY,eAAe,aAC3F,cAAK,SAAS,EAAC,gBAAgB,eAAW,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,YACjG,eACE,CAAC,EAAC,gDAAgD,EAClD,WAAW,EAAE,GAAG,EAChB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,GACE,EACL,QAAQ,IACF,GACJ,CACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,GAAG,IAAI,EACX,SAAS,EACT,QAAQ,GAAG,MAAM,GACqD;IACtE,OAAO,CACL,eAAM,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,+BAA+B,CAAC,YAC/D,MAAC,MAAM,OAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,sBAAY,WAAW,aACtF,QAAQ,EACT,cAAK,SAAS,EAAC,gBAAgB,eAAW,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,YACjG,eACE,CAAC,EAAC,sDAAsD,EACxD,WAAW,EAAE,GAAG,EAChB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,GACE,IACC,GACJ,CACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA0C;IAC5F,OAAO,kBAAU,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,uCAAuC,CAAC,GAAI,CAAA;AACjG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,SAAS,EACT,OAAO,GAAG,KAAK,EACf,QAAQ,GACyE;IACjF,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,KAAK,sBACO,QAAQ,QAAQ,EAAE,kBAChB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC1C,SAAS,EAAE,IAAI,CACb,SAAS,EACT,4DAA4D,EAC5D,OAAO,IAAI,8CAA8C,CAC1D,YAED,eAAM,SAAS,EAAC,SAAS,YAAE,QAAQ,GAAQ,GACpC,CACV,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,GAAG,uCAAa,EACxB,GAAG,KAAK,EAC+B;IACvC,OAAO,CACL,8BACc,MAAM,KACd,KAAK,EACT,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,mFAAmF,CAAC,YAE9G,QAAQ,GACJ,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
3
|
+
declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function PopoverTitle({ className, ...props }: React.ComponentProps<"h2">): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function PopoverDescription({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverHeader, PopoverTitle, PopoverDescription, };
|
|
11
|
+
//# sourceMappingURL=popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAItD,iBAAS,OAAO,CAAC,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAEpD;AAED,iBAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAEvD;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAevD;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAEtD;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQ1E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAQxE;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,2CAQ3B;AAED,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
4
|
+
import { cn } from "../lib/utils";
|
|
5
|
+
function Popover({ ...props }) {
|
|
6
|
+
return _jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
7
|
+
}
|
|
8
|
+
function PopoverTrigger({ ...props }) {
|
|
9
|
+
return _jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
10
|
+
}
|
|
11
|
+
function PopoverContent({ className, align = "center", sideOffset = 4, ...props }) {
|
|
12
|
+
return (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { "data-slot": "popover-content", align: align, sideOffset: sideOffset, className: cn("z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className), ...props }) }));
|
|
13
|
+
}
|
|
14
|
+
function PopoverAnchor({ ...props }) {
|
|
15
|
+
return _jsx(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
16
|
+
}
|
|
17
|
+
function PopoverHeader({ className, ...props }) {
|
|
18
|
+
return (_jsx("div", { "data-slot": "popover-header", className: cn("flex flex-col gap-1 text-sm", className), ...props }));
|
|
19
|
+
}
|
|
20
|
+
function PopoverTitle({ className, ...props }) {
|
|
21
|
+
return (_jsx("div", { "data-slot": "popover-title", className: cn("font-medium", className), ...props }));
|
|
22
|
+
}
|
|
23
|
+
function PopoverDescription({ className, ...props }) {
|
|
24
|
+
return (_jsx("p", { "data-slot": "popover-description", className: cn("text-muted-foreground", className), ...props }));
|
|
25
|
+
}
|
|
26
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverHeader, PopoverTitle, PopoverDescription, };
|
|
27
|
+
//# sourceMappingURL=popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../src/components/popover.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,SAAS,OAAO,CAAC,EACf,GAAG,KAAK,EAC2C;IACnD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAA;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EAC8C;IACtD,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAA;AAC5E,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAK,GAAG,QAAQ,EAChB,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,OAAO,iBACb,iBAAiB,EAC3B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACX,geAAge,EAChe,SAAS,CACV,KACG,KAAK,GACT,GACsB,CAC3B,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EAC6C;IACrD,OAAO,KAAC,gBAAgB,CAAC,MAAM,iBAAW,gBAAgB,KAAK,KAAK,GAAI,CAAA;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACzE,OAAO,CACL,2BACY,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KACnD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACvE,OAAO,CACL,2BACY,eAAe,EACzB,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,KACnC,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACkB;IAC1B,OAAO,CACL,yBACY,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAC7C,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as Headless from '@headlessui/react';
|
|
2
|
+
export declare function RadioGroup({ className, ...props }: {
|
|
3
|
+
className?: string;
|
|
4
|
+
} & Omit<Headless.RadioGroupProps, 'as' | 'className'>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function RadioField({ className, ...props }: {
|
|
6
|
+
className?: string;
|
|
7
|
+
} & Omit<Headless.FieldProps, 'as' | 'className'>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const colors: {
|
|
9
|
+
'dark/zinc': string[];
|
|
10
|
+
'dark/white': string[];
|
|
11
|
+
white: string;
|
|
12
|
+
dark: string;
|
|
13
|
+
zinc: string;
|
|
14
|
+
red: string;
|
|
15
|
+
orange: string;
|
|
16
|
+
amber: string;
|
|
17
|
+
yellow: string;
|
|
18
|
+
lime: string;
|
|
19
|
+
green: string;
|
|
20
|
+
emerald: string;
|
|
21
|
+
teal: string;
|
|
22
|
+
cyan: string;
|
|
23
|
+
sky: string;
|
|
24
|
+
blue: string;
|
|
25
|
+
indigo: string;
|
|
26
|
+
violet: string;
|
|
27
|
+
purple: string;
|
|
28
|
+
fuchsia: string;
|
|
29
|
+
pink: string;
|
|
30
|
+
rose: string;
|
|
31
|
+
};
|
|
32
|
+
type Color = keyof typeof colors;
|
|
33
|
+
export declare function Radio({ color, className, ...props }: {
|
|
34
|
+
color?: Color;
|
|
35
|
+
className?: string;
|
|
36
|
+
} & Omit<Headless.RadioProps, 'as' | 'className' | 'children'>): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=radio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/components/radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,CAAC,2CAc7E;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,2CAoBxE;AA+BD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAuCX,CAAA;AAED,KAAK,KAAK,GAAG,MAAM,OAAO,MAAM,CAAA;AAEhC,wBAAgB,KAAK,CAAC,EACpB,KAAmB,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,2CAkBpG"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as Headless from '@headlessui/react';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
export function RadioGroup({ className, ...props }) {
|
|
5
|
+
return (_jsx(Headless.RadioGroup, { "data-slot": "control", ...props, className: clsx(className,
|
|
6
|
+
// Basic groups
|
|
7
|
+
'space-y-3 **:data-[slot=label]:font-normal',
|
|
8
|
+
// With descriptions
|
|
9
|
+
'has-data-[slot=description]:space-y-6 has-data-[slot=description]:**:data-[slot=label]:font-medium') }));
|
|
10
|
+
}
|
|
11
|
+
export function RadioField({ className, ...props }) {
|
|
12
|
+
return (_jsx(Headless.Field, { "data-slot": "field", ...props, className: clsx(className,
|
|
13
|
+
// Base layout
|
|
14
|
+
'grid grid-cols-[1.125rem_1fr] gap-x-4 gap-y-1 sm:grid-cols-[1rem_1fr]',
|
|
15
|
+
// Control layout
|
|
16
|
+
'*:data-[slot=control]:col-start-1 *:data-[slot=control]:row-start-1 *:data-[slot=control]:mt-0.75 sm:*:data-[slot=control]:mt-1',
|
|
17
|
+
// Label layout
|
|
18
|
+
'*:data-[slot=label]:col-start-2 *:data-[slot=label]:row-start-1',
|
|
19
|
+
// Description layout
|
|
20
|
+
'*:data-[slot=description]:col-start-2 *:data-[slot=description]:row-start-2',
|
|
21
|
+
// With description
|
|
22
|
+
'has-data-[slot=description]:**:data-[slot=label]:font-medium') }));
|
|
23
|
+
}
|
|
24
|
+
const base = [
|
|
25
|
+
// Basic layout
|
|
26
|
+
'relative isolate flex size-4.75 shrink-0 rounded-full sm:size-4.25',
|
|
27
|
+
// Background color + shadow applied to inset pseudo element, so shadow blends with border in light mode
|
|
28
|
+
'before:absolute before:inset-0 before:-z-10 before:rounded-full before:bg-white before:shadow-sm',
|
|
29
|
+
// Background color when checked
|
|
30
|
+
'group-data-checked:before:bg-(--radio-checked-bg)',
|
|
31
|
+
// Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo
|
|
32
|
+
'dark:before:hidden',
|
|
33
|
+
// Background color applied to control in dark mode
|
|
34
|
+
'dark:bg-white/5 dark:group-data-checked:bg-(--radio-checked-bg)',
|
|
35
|
+
// Border
|
|
36
|
+
'border border-zinc-950/15 group-data-checked:border-transparent group-data-hover:group-data-checked:border-transparent group-data-hover:border-zinc-950/30 group-data-checked:bg-(--radio-checked-border)',
|
|
37
|
+
'dark:border-white/15 dark:group-data-checked:border-white/5 dark:group-data-hover:group-data-checked:border-white/5 dark:group-data-hover:border-white/30',
|
|
38
|
+
// Inner highlight shadow
|
|
39
|
+
'after:absolute after:inset-0 after:rounded-full after:shadow-[inset_0_1px_--theme(--color-white/15%)]',
|
|
40
|
+
'dark:after:-inset-px dark:after:hidden dark:after:rounded-full dark:group-data-checked:after:block',
|
|
41
|
+
// Indicator color (light mode)
|
|
42
|
+
'[--radio-indicator:transparent] group-data-checked:[--radio-indicator:var(--radio-checked-indicator)] group-data-hover:group-data-checked:[--radio-indicator:var(--radio-checked-indicator)] group-data-hover:[--radio-indicator:var(--color-zinc-900)]/10',
|
|
43
|
+
// Indicator color (dark mode)
|
|
44
|
+
'dark:group-data-hover:group-data-checked:[--radio-indicator:var(--radio-checked-indicator)] dark:group-data-hover:[--radio-indicator:var(--color-zinc-700)]',
|
|
45
|
+
// Focus ring
|
|
46
|
+
'group-data-focus:outline group-data-focus:outline-2 group-data-focus:outline-offset-2 group-data-focus:outline-blue-500',
|
|
47
|
+
// Disabled state
|
|
48
|
+
'group-data-disabled:opacity-50',
|
|
49
|
+
'group-data-disabled:border-zinc-950/25 group-data-disabled:bg-zinc-950/5 group-data-disabled:[--radio-checked-indicator:var(--color-zinc-950)]/50 group-data-disabled:before:bg-transparent',
|
|
50
|
+
'dark:group-data-disabled:border-white/20 dark:group-data-disabled:bg-white/2.5 dark:group-data-disabled:[--radio-checked-indicator:var(--color-white)]/50 dark:group-data-checked:group-data-disabled:after:hidden',
|
|
51
|
+
];
|
|
52
|
+
const colors = {
|
|
53
|
+
'dark/zinc': [
|
|
54
|
+
'[--radio-checked-bg:var(--color-zinc-900)] [--radio-checked-border:var(--color-zinc-950)]/90 [--radio-checked-indicator:var(--color-white)]',
|
|
55
|
+
'dark:[--radio-checked-bg:var(--color-zinc-600)]',
|
|
56
|
+
],
|
|
57
|
+
'dark/white': [
|
|
58
|
+
'[--radio-checked-bg:var(--color-zinc-900)] [--radio-checked-border:var(--color-zinc-950)]/90 [--radio-checked-indicator:var(--color-white)]',
|
|
59
|
+
'dark:[--radio-checked-bg:var(--color-white)] dark:[--radio-checked-border:var(--color-zinc-950)]/15 dark:[--radio-checked-indicator:var(--color-zinc-900)]',
|
|
60
|
+
],
|
|
61
|
+
white: '[--radio-checked-bg:var(--color-white)] [--radio-checked-border:var(--color-zinc-950)]/15 [--radio-checked-indicator:var(--color-zinc-900)]',
|
|
62
|
+
dark: '[--radio-checked-bg:var(--color-zinc-900)] [--radio-checked-border:var(--color-zinc-950)]/90 [--radio-checked-indicator:var(--color-white)]',
|
|
63
|
+
zinc: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-zinc-600)] [--radio-checked-border:var(--color-zinc-700)]/90',
|
|
64
|
+
red: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-red-600)] [--radio-checked-border:var(--color-red-700)]/90',
|
|
65
|
+
orange: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-orange-500)] [--radio-checked-border:var(--color-orange-600)]/90',
|
|
66
|
+
amber: '[--radio-checked-bg:var(--color-amber-400)] [--radio-checked-border:var(--color-amber-500)]/80 [--radio-checked-indicator:var(--color-amber-950)]',
|
|
67
|
+
yellow: '[--radio-checked-bg:var(--color-yellow-300)] [--radio-checked-border:var(--color-yellow-400)]/80 [--radio-checked-indicator:var(--color-yellow-950)]',
|
|
68
|
+
lime: '[--radio-checked-bg:var(--color-lime-300)] [--radio-checked-border:var(--color-lime-400)]/80 [--radio-checked-indicator:var(--color-lime-950)]',
|
|
69
|
+
green: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-green-600)] [--radio-checked-border:var(--color-green-700)]/90',
|
|
70
|
+
emerald: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-emerald-600)] [--radio-checked-border:var(--color-emerald-700)]/90',
|
|
71
|
+
teal: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-teal-600)] [--radio-checked-border:var(--color-teal-700)]/90',
|
|
72
|
+
cyan: '[--radio-checked-bg:var(--color-cyan-300)] [--radio-checked-border:var(--color-cyan-400)]/80 [--radio-checked-indicator:var(--color-cyan-950)]',
|
|
73
|
+
sky: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-sky-500)] [--radio-checked-border:var(--color-sky-600)]/80',
|
|
74
|
+
blue: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-blue-600)] [--radio-checked-border:var(--color-blue-700)]/90',
|
|
75
|
+
indigo: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-indigo-500)] [--radio-checked-border:var(--color-indigo-600)]/90',
|
|
76
|
+
violet: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-violet-500)] [--radio-checked-border:var(--color-violet-600)]/90',
|
|
77
|
+
purple: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-purple-500)] [--radio-checked-border:var(--color-purple-600)]/90',
|
|
78
|
+
fuchsia: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-fuchsia-500)] [--radio-checked-border:var(--color-fuchsia-600)]/90',
|
|
79
|
+
pink: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-pink-500)] [--radio-checked-border:var(--color-pink-600)]/90',
|
|
80
|
+
rose: '[--radio-checked-indicator:var(--color-white)] [--radio-checked-bg:var(--color-rose-500)] [--radio-checked-border:var(--color-rose-600)]/90',
|
|
81
|
+
};
|
|
82
|
+
export function Radio({ color = 'dark/zinc', className, ...props }) {
|
|
83
|
+
return (_jsx(Headless.Radio, { "data-slot": "control", ...props, className: clsx(className, 'group inline-flex focus:outline-hidden'), children: _jsx("span", { className: clsx([base, colors[color]]), children: _jsx("span", { className: clsx('size-full rounded-full border-[4.5px] border-transparent bg-(--radio-indicator) bg-clip-padding',
|
|
84
|
+
// Forced colors mode
|
|
85
|
+
'forced-colors:border-[Canvas] forced-colors:group-data-checked:border-[Highlight]') }) }) }));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=radio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/components/radio.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACoE;IAC5E,OAAO,CACL,KAAC,QAAQ,CAAC,UAAU,iBACR,SAAS,KACf,KAAK,EACT,SAAS,EAAE,IAAI,CACb,SAAS;QACT,eAAe;QACf,4CAA4C;QAC5C,oBAAoB;QACpB,oGAAoG,CACrG,GACD,CACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EAC+D;IACvE,OAAO,CACL,KAAC,QAAQ,CAAC,KAAK,iBACH,OAAO,KACb,KAAK,EACT,SAAS,EAAE,IAAI,CACb,SAAS;QACT,cAAc;QACd,uEAAuE;QACvE,iBAAiB;QACjB,iIAAiI;QACjI,eAAe;QACf,iEAAiE;QACjE,qBAAqB;QACrB,6EAA6E;QAC7E,mBAAmB;QACnB,8DAA8D,CAC/D,GACD,CACH,CAAA;AACH,CAAC;AAED,MAAM,IAAI,GAAG;IACX,eAAe;IACf,oEAAoE;IACpE,wGAAwG;IACxG,kGAAkG;IAClG,gCAAgC;IAChC,mDAAmD;IACnD,kGAAkG;IAClG,oBAAoB;IACpB,mDAAmD;IACnD,iEAAiE;IACjE,SAAS;IACT,2MAA2M;IAC3M,2JAA2J;IAC3J,yBAAyB;IACzB,uGAAuG;IACvG,oGAAoG;IACpG,+BAA+B;IAC/B,4PAA4P;IAC5P,8BAA8B;IAC9B,6JAA6J;IAC7J,aAAa;IACb,yHAAyH;IACzH,iBAAiB;IACjB,gCAAgC;IAChC,6LAA6L;IAC7L,oNAAoN;CACrN,CAAA;AAED,MAAM,MAAM,GAAG;IACb,WAAW,EAAE;QACX,6IAA6I;QAC7I,iDAAiD;KAClD;IACD,YAAY,EAAE;QACZ,6IAA6I;QAC7I,4JAA4J;KAC7J;IACD,KAAK,EACH,6IAA6I;IAC/I,IAAI,EAAE,6IAA6I;IACnJ,IAAI,EAAE,6IAA6I;IACnJ,GAAG,EAAE,2IAA2I;IAChJ,MAAM,EACJ,iJAAiJ;IACnJ,KAAK,EACH,mJAAmJ;IACrJ,MAAM,EACJ,sJAAsJ;IACxJ,IAAI,EAAE,gJAAgJ;IACtJ,KAAK,EACH,+IAA+I;IACjJ,OAAO,EACL,mJAAmJ;IACrJ,IAAI,EAAE,6IAA6I;IACnJ,IAAI,EAAE,gJAAgJ;IACtJ,GAAG,EAAE,2IAA2I;IAChJ,IAAI,EAAE,6IAA6I;IACnJ,MAAM,EACJ,iJAAiJ;IACnJ,MAAM,EACJ,iJAAiJ;IACnJ,MAAM,EACJ,iJAAiJ;IACnJ,OAAO,EACL,mJAAmJ;IACrJ,IAAI,EAAE,6IAA6I;IACnJ,IAAI,EAAE,6IAA6I;CACpJ,CAAA;AAID,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,GAAG,WAAW,EACnB,SAAS,EACT,GAAG,KAAK,EAC2F;IACnG,OAAO,CACL,KAAC,QAAQ,CAAC,KAAK,iBACH,SAAS,KACf,KAAK,EACT,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,wCAAwC,CAAC,YAEpE,eAAM,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAC1C,eACE,SAAS,EAAE,IAAI,CACb,iGAAiG;gBACjG,qBAAqB;gBACrB,mFAAmF,CACpF,GACD,GACG,GACQ,CAClB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
3
|
+
declare function ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function ScrollBar({ className, orientation, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export { ScrollArea, ScrollBar };
|
|
6
|
+
//# sourceMappingURL=scroll-area.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../src/components/scroll-area.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAI5D,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAiBvD;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,2CAqBtE;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
4
|
+
import { cn } from "../lib/utils";
|
|
5
|
+
function ScrollArea({ className, children, ...props }) {
|
|
6
|
+
return (_jsxs(ScrollAreaPrimitive.Root, { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { "data-slot": "scroll-area-viewport", className: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] }));
|
|
7
|
+
}
|
|
8
|
+
function ScrollBar({ className, orientation = "vertical", ...props }) {
|
|
9
|
+
return (_jsx(ScrollAreaPrimitive.ScrollAreaScrollbar, { "data-slot": "scroll-area-scrollbar", orientation: orientation, className: cn("flex touch-none p-px transition-colors select-none", orientation === "vertical" &&
|
|
10
|
+
"h-full w-2.5 border-l border-l-transparent", orientation === "horizontal" &&
|
|
11
|
+
"h-2.5 flex-col border-t border-t-transparent", className), ...props, children: _jsx(ScrollAreaPrimitive.ScrollAreaThumb, { "data-slot": "scroll-area-thumb", className: "relative flex-1 rounded-full bg-border" }) }));
|
|
12
|
+
}
|
|
13
|
+
export { ScrollArea, ScrollBar };
|
|
14
|
+
//# sourceMappingURL=scroll-area.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-area.js","sourceRoot":"","sources":["../../src/components/scroll-area.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,SAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,MAAC,mBAAmB,CAAC,IAAI,iBACb,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAChC,KAAK,aAET,KAAC,mBAAmB,CAAC,QAAQ,iBACjB,sBAAsB,EAChC,SAAS,EAAC,oJAAoJ,YAE7J,QAAQ,GACoB,EAC/B,KAAC,SAAS,KAAG,EACb,KAAC,mBAAmB,CAAC,MAAM,KAAG,IACL,CAC5B,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAW,GAAG,UAAU,EACxB,GAAG,KAAK,EAC6D;IACrE,OAAO,CACL,KAAC,mBAAmB,CAAC,mBAAmB,iBAC5B,uBAAuB,EACjC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,WAAW,KAAK,UAAU;YACxB,4CAA4C,EAC9C,WAAW,KAAK,YAAY;YAC1B,8CAA8C,EAChD,SAAS,CACV,KACG,KAAK,YAET,KAAC,mBAAmB,CAAC,eAAe,iBACxB,mBAAmB,EAC7B,SAAS,EAAC,wCAAwC,GAClD,GACsC,CAC3C,CAAA;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as Headless from '@headlessui/react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare const Select: React.ForwardRefExoticComponent<{
|
|
4
|
+
className?: string;
|
|
5
|
+
} & Omit<Headless.SelectProps<"select">, "className" | "as"> & React.RefAttributes<HTMLSelectElement>>;
|
|
6
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,eAAO,MAAM,MAAM;gBACgC,MAAM;sGA8DvD,CAAA"}
|