@stll/ui 0.66.0 → 0.67.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/calendar/day-calendar.js +2 -2
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/animated-preview.js +1 -1
- package/dist/components/application-rail.js +1 -1
- package/dist/components/button.js +2 -2
- package/dist/components/checkbox.js +2 -2
- package/dist/components/color-picker.js +4 -4
- package/dist/components/combobox.js +4 -4
- package/dist/components/command.js +3 -3
- package/dist/components/composer.js +1 -1
- package/dist/components/context-menu.d.ts +10 -1
- package/dist/components/context-menu.js +9 -2
- package/dist/components/court-filter.js +2 -2
- package/dist/components/date-picker-popover.js +3 -3
- package/dist/components/destructive-action-confirmation.js +1 -1
- package/dist/components/details-grid.js +1 -1
- package/dist/components/dialog.js +3 -3
- package/dist/components/document-identity-badge.js +1 -1
- package/dist/components/entity-actions.d.ts +34 -0
- package/dist/components/entity-actions.js +132 -0
- package/dist/components/file-input.js +1 -1
- package/dist/components/hex-color-picker.js +1 -1
- package/dist/components/horizontal-scroller.js +2 -2
- package/dist/components/identity-text.js +1 -1
- package/dist/components/inline-rename.js +1 -1
- package/dist/components/input-group.js +3 -3
- package/dist/components/input.js +2 -2
- package/dist/components/kbd.js +1 -1
- package/dist/components/matter-icon.js +1 -1
- package/dist/components/menu.js +2 -2
- package/dist/components/number-input.js +1 -1
- package/dist/components/outline-rail.js +4 -4
- package/dist/components/popover.js +1 -1
- package/dist/components/segmented-icon-toggle.js +1 -1
- package/dist/components/select.js +3 -3
- package/dist/components/sheet.js +2 -2
- package/dist/components/sheet.native.js +1 -1
- package/dist/components/sidebar.js +4 -4
- package/dist/components/split-button.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/textarea.js +2 -2
- package/dist/components/toast.js +3 -3
- package/dist/components/tooltip.js +1 -1
- package/dist/components/truncated-text.js +2 -2
- package/dist/components/workspace-shell.js +3 -3
- package/dist/data-table/table.js +1 -1
- package/dist/index.js +34 -34
- package/dist/inspector/chrome.js +1 -1
- package/dist/inspector/dock.js +1 -1
- package/dist/inspector/entity-tab.js +2 -2
- package/dist/inspector/facet-bar.js +4 -4
- package/dist/inspector/index.js +2 -2
- package/dist/kanban/card-shell.js +1 -1
- package/dist/kanban/cell-action.js +1 -1
- package/dist/kanban/column-band-header.js +1 -1
- package/dist/kanban/index.js +5 -5
- package/dist/kanban/sortable-interactions.js +2 -2
- package/dist/kanban/subgroup-board.js +4 -4
- package/dist/kanban/virtual-cell.js +2 -2
- package/dist/lib/native-context-menu.d.ts +24 -0
- package/dist/lib/native-context-menu.js +85 -0
- package/dist/review/review-author-avatar.js +1 -1
- package/dist/review/review-comment-card.js +2 -2
- package/dist/review/review-decision-actions.js +1 -1
- package/dist/review/review-out-of-date-notice.js +1 -1
- package/dist/styles/theme.css +23 -23
- package/package.json +14 -6
package/dist/components/sheet.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { XIcon } from "../icons.js";
|
|
3
|
-
import { cn } from "../lib/utils.js";
|
|
4
3
|
import { OVERLAY_LAYER_CLASS_NAMES } from "../lib/overlay-layer.js";
|
|
5
4
|
import "../lib/safe-area.js";
|
|
6
|
-
import {
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
7
6
|
import { Button } from "./button.js";
|
|
8
7
|
import { ScrollArea } from "./scroll-area.js";
|
|
8
|
+
import { renderTooltipTrigger } from "./tooltip-trigger-helper.js";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
import { Dialog } from "@base-ui/react/dialog";
|
|
11
11
|
// src/components/sheet.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Text as Text$1 } from "./text.native.js";
|
|
2
1
|
import { Button } from "./button.native.js";
|
|
2
|
+
import { Text as Text$1 } from "./text.native.js";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
import { createContext, use } from "react";
|
|
5
5
|
import { KeyboardAvoidingView, Modal, Platform, ScrollView, View } from "react-native";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { useIsMobile } from "../hooks/use-mobile.js";
|
|
2
3
|
import { PanelLeftIcon, PanelRightIcon } from "../icons.js";
|
|
4
|
+
import { Slot } from "../lib/slot.js";
|
|
3
5
|
import { cn } from "../lib/utils.js";
|
|
4
|
-
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "./tooltip.js";
|
|
5
|
-
import { useIsMobile } from "../hooks/use-mobile.js";
|
|
6
6
|
import { Button } from "./button.js";
|
|
7
|
-
import { Sheet, SheetContent as SheetPopup, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
|
|
8
7
|
import { Input } from "./input.js";
|
|
9
8
|
import { Separator } from "./separator.js";
|
|
10
|
-
import {
|
|
9
|
+
import { Sheet, SheetContent as SheetPopup, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
|
|
11
10
|
import { deriveSidebarState, nextOpenMobile, nextRequestedOpen, resolveSidebarLayout, resolveSidebarOpen } from "./sidebar.logic.js";
|
|
12
11
|
import { Skeleton } from "./skeleton.js";
|
|
12
|
+
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "./tooltip.js";
|
|
13
13
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
import { createContext, use, useId, useState } from "react";
|
|
15
15
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { ChevronDownIcon } from "../icons.js";
|
|
3
3
|
import { cn } from "../lib/utils.js";
|
|
4
4
|
import { BUTTON_CONTENT, Button } from "./button.js";
|
|
5
|
-
import { Popover, PopoverTrigger } from "./popover.js";
|
|
6
5
|
import { DropdownMenu as Menu, DropdownMenuTrigger as MenuTrigger } from "./menu.js";
|
|
6
|
+
import { Popover, PopoverTrigger } from "./popover.js";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
// src/components/split-button.tsx
|
|
9
9
|
/** Two independent actions share quiet chrome; only the chevron opens the secondary surface. */
|
package/dist/components/tabs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn, composeRefs } from "../lib/utils.js";
|
|
3
2
|
import { hasTabOrderChanged, revealActiveTab } from "../lib/tab-order.js";
|
|
3
|
+
import { cn, composeRefs } from "../lib/utils.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
6
6
|
import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { CONTROL_SIZE } from "../lib/control-size.js";
|
|
4
2
|
import { useContentDir } from "../hooks/use-content-dir.js";
|
|
3
|
+
import { CONTROL_SIZE } from "../lib/control-size.js";
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { INLINE_FIELD_CLASS_NAME } from "./input-control.js";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { useState } from "react";
|
package/dist/components/toast.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { CircleAlertIcon, CircleCheckIcon, InfoIcon, TriangleAlertIcon, XIcon } from "../icons.js";
|
|
3
|
-
import { cn } from "../lib/utils.js";
|
|
4
3
|
import { SAFE_AREA_TOAST_GEOMETRY_CLASS_NAME } from "../lib/safe-area.js";
|
|
5
|
-
import {
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
6
5
|
import { buttonVariants } from "./button.js";
|
|
6
|
+
import { Loader } from "./loader.js";
|
|
7
7
|
import { ScrollArea } from "./scroll-area.js";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import * as React$1 from "react";
|
|
@@ -108,7 +108,7 @@ const Toasts = ({ position }) => {
|
|
|
108
108
|
"data-slot": "toast-action",
|
|
109
109
|
children: toastItem.actionProps.children
|
|
110
110
|
}), /* @__PURE__ */ jsx(Toast.Close, {
|
|
111
|
-
className: "text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-0.5 select-none",
|
|
111
|
+
className: "text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded-sm p-0.5 select-none",
|
|
112
112
|
"data-slot": "toast-close",
|
|
113
113
|
"aria-label": "Close notification",
|
|
114
114
|
children: /* @__PURE__ */ jsx(XIcon, { className: "size-4" })
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from "../lib/utils.js";
|
|
3
2
|
import { OVERLAY_LAYER_CLASS_NAMES } from "../lib/overlay-layer.js";
|
|
4
3
|
import { CONTENT_SIZED_POSITIONER_CLASS_NAME, IN_FLOW_POPUP_CLASS_NAME } from "../lib/positioner-sizing.js";
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { Kbd } from "./kbd.js";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { Tooltip as Tooltip$1 } from "@base-ui/react/tooltip";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "./tooltip.js";
|
|
4
2
|
import { containedEventHandler } from "../hooks/use-contained-handler.js";
|
|
3
|
+
import { cn } from "../lib/utils.js";
|
|
5
4
|
import { Popover, PopoverContent as PopoverPopup } from "./popover.js";
|
|
5
|
+
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "./tooltip.js";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import * as React$1 from "react";
|
|
8
8
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { useIsMobile } from "../hooks/use-mobile.js";
|
|
2
3
|
import { NewChatIcon } from "../icons.js";
|
|
3
|
-
import {
|
|
4
|
+
import { InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton } from "../inspector/chrome.js";
|
|
4
5
|
import { SHELL_CHROME_LAYER_CLASS_NAME } from "../lib/overlay-layer.js";
|
|
5
6
|
import { SAFE_AREA_BOTTOM_EDGE_CLASS_NAME, SAFE_AREA_TOP_EDGE_CLASS_NAME } from "../lib/safe-area.js";
|
|
6
|
-
import {
|
|
7
|
-
import { InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton } from "../inspector/chrome.js";
|
|
7
|
+
import { cn } from "../lib/utils.js";
|
|
8
8
|
import { Sheet, SheetContent as SheetPopup, SheetTitle, SheetTrigger } from "./sheet.js";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
import { useEffect } from "react";
|
package/dist/data-table/table.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { cn } from "../lib/utils.js";
|
|
2
1
|
import { Button } from "../components/button.js";
|
|
3
2
|
import { Skeleton } from "../components/skeleton.js";
|
|
4
3
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "../components/table.js";
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
// src/data-table/table.tsx
|
|
7
7
|
const DataTable = ({ columns, emptyLabel, getRowProps, isLoading = false, loadingLabel, loadingRowCount = DEFAULT_LOADING_ROW_COUNT, rowAction, rowKey, rows }) => {
|
package/dist/index.js
CHANGED
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { cn, composeRefs } from "./lib/utils.js";
|
|
2
1
|
import { Accordion, AccordionContent as AccordionPanel, AccordionItem, AccordionTrigger } from "./components/accordion.js";
|
|
3
|
-
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./inspector/layout-tokens.js";
|
|
4
2
|
import { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator } from "./components/application-rail.js";
|
|
5
|
-
import {
|
|
6
|
-
import { Kbd, formatKeys, kbdPlatformOf, useKbdPlatform } from "./components/kbd.js";
|
|
7
|
-
import { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipContent as TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
|
|
3
|
+
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./inspector/layout-tokens.js";
|
|
8
4
|
import { AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogContent as AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport } from "./components/alert-dialog.js";
|
|
9
|
-
import { useIsMobile } from "./hooks/use-mobile.js";
|
|
10
|
-
import { BidiText, UserText, stripDirectionalControls, withoutDirectionalControls } from "./components/bidi-text.js";
|
|
11
|
-
import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./inspector/chrome.js";
|
|
12
|
-
import { StellaMark } from "./components/stella-mark.js";
|
|
13
|
-
import { BUTTON_CONTENT, BUTTON_SIZE_CONTENT, Button, ButtonTextRun, buttonAccessibleDisabledClass, buttonVariants } from "./components/button.js";
|
|
14
|
-
import { ScrollArea, ScrollBar } from "./components/scroll-area.js";
|
|
15
|
-
import { Sheet, SheetBackdrop, SheetClose, SheetContent as SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, SheetTitle, SheetTrigger } from "./components/sheet.js";
|
|
16
5
|
import { WorkspaceEndRail, WorkspaceShell } from "./components/workspace-shell.js";
|
|
17
6
|
import { Avatar, AvatarFallback, AvatarImage } from "./components/avatar.js";
|
|
18
7
|
import { Badge, badgeVariants } from "./components/badge.js";
|
|
8
|
+
import { BidiText, UserText, stripDirectionalControls, withoutDirectionalControls } from "./components/bidi-text.js";
|
|
19
9
|
import { DiscordLogoIcon, GitHubLogoIcon, XLogoIcon } from "./components/brand-icons.js";
|
|
20
|
-
import { DirectionalIcon } from "./components/directional-icon.js";
|
|
21
10
|
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/breadcrumb.js";
|
|
11
|
+
import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./inspector/chrome.js";
|
|
12
|
+
import { BUTTON_CONTENT, BUTTON_SIZE_CONTENT, Button, ButtonTextRun, buttonAccessibleDisabledClass, buttonVariants } from "./components/button.js";
|
|
22
13
|
import { Checkbox } from "./components/checkbox.js";
|
|
23
14
|
import { Collapsible, CollapsiblePanel, CollapsibleTrigger } from "./components/collapsible.js";
|
|
24
15
|
import { ColorPicker, ColorPickerContent, DEFAULT_PRESETS } from "./components/color-picker.js";
|
|
25
|
-
import { containedEventHandler, containedHandler } from "./hooks/use-contained-handler.js";
|
|
26
|
-
import { CONTROL_SIZE, CONTROL_SIZES } from "./lib/control-size.js";
|
|
27
|
-
import { contentDir, isStructuredInputType, useContentDir } from "./hooks/use-content-dir.js";
|
|
28
|
-
import { Input } from "./components/input.js";
|
|
29
16
|
import { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue } from "./components/combobox.js";
|
|
30
|
-
import { DialogFormState } from "./components/dialog-form-state.js";
|
|
31
|
-
import { DIALOG_MOBILE_LAYOUT, DIALOG_SIZE_CLASS_NAMES, Dialog, DialogBackdrop, DialogClose, DialogContent as DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport } from "./components/dialog.js";
|
|
32
17
|
import { Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut } from "./components/command.js";
|
|
33
18
|
import { COPIED_RESET_MS, CopyButton, CopyFeedback, useCopiedFeedback, useCopyConfirmation } from "./components/copy-button.js";
|
|
34
19
|
import { CalendarCell, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow } from "./calendar/primitives.js";
|
|
35
|
-
import { assertConsecutiveCalendarDates, getResourceCalendarPlacement, layoutResourceCalendarEntries, nextCalendarDate } from "./calendar/resource-calendar.logic.js";
|
|
36
20
|
import { ResourceCalendar } from "./calendar/resource-calendar.js";
|
|
37
|
-
import {
|
|
38
|
-
import { Popover, PopoverClose, PopoverContent as PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger } from "./components/popover.js";
|
|
39
|
-
import { useLatest } from "./hooks/use-latest.js";
|
|
40
|
-
import { Select, SelectContent as SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue } from "./components/select.js";
|
|
21
|
+
import { assertConsecutiveCalendarDates, getResourceCalendarPlacement, layoutResourceCalendarEntries, nextCalendarDate } from "./calendar/resource-calendar.logic.js";
|
|
41
22
|
import { DatePickerPopover } from "./components/date-picker-popover.js";
|
|
42
23
|
import { DetailsGrid, DetailsItem } from "./components/details-grid.js";
|
|
43
|
-
import { Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity } from "./components/field.js";
|
|
44
24
|
import { DestructiveActionConfirmation, useDestructiveActionConfirmation } from "./components/destructive-action-confirmation.js";
|
|
45
25
|
import { DestructiveConfirmDialog } from "./components/destructive-confirm-dialog.js";
|
|
26
|
+
import { DIALOG_MOBILE_LAYOUT, DIALOG_SIZE_CLASS_NAMES, Dialog, DialogBackdrop, DialogClose, DialogContent as DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport } from "./components/dialog.js";
|
|
27
|
+
import { DirectionalIcon } from "./components/directional-icon.js";
|
|
28
|
+
import { Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity } from "./components/field.js";
|
|
46
29
|
import { FileInput } from "./components/file-input.js";
|
|
30
|
+
import { DialogFormState } from "./components/dialog-form-state.js";
|
|
47
31
|
import { Form, formVariants } from "./components/form.js";
|
|
48
32
|
import { Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle } from "./components/frame.js";
|
|
49
33
|
import { HexColorPicker } from "./components/hex-color-picker.js";
|
|
34
|
+
import { Input } from "./components/input.js";
|
|
50
35
|
import { InlineRenameInput } from "./components/inline-rename.js";
|
|
51
|
-
import { Textarea } from "./components/textarea.js";
|
|
52
36
|
import { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea } from "./components/input-group.js";
|
|
53
37
|
import { List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle } from "./components/list.js";
|
|
54
38
|
import { SearchField } from "./components/search-field.js";
|
|
55
39
|
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from "./components/input-otp.js";
|
|
40
|
+
import { Kbd, formatKeys, kbdPlatformOf, useKbdPlatform } from "./components/kbd.js";
|
|
56
41
|
import { Label } from "./components/label.js";
|
|
57
42
|
import { DropdownMenu as Menu, DropdownMenuCheckboxItem as MenuCheckboxItem, DropdownMenuContent as MenuPopup, DropdownMenuCreateHandle as MenuCreateHandle, DropdownMenuGroup as MenuGroup, DropdownMenuItem as MenuItem, DropdownMenuLabel as MenuGroupLabel, DropdownMenuLinkItem as MenuLinkItem, DropdownMenuPortal as MenuPortal, DropdownMenuRadioGroup as MenuRadioGroup, DropdownMenuRadioItem as MenuRadioItem, DropdownMenuSeparator as MenuSeparator, DropdownMenuShortcut as MenuShortcut, DropdownMenuSub as MenuSub, DropdownMenuSubContent as MenuSubPopup, DropdownMenuSubTrigger as MenuSubTrigger, DropdownMenuTrigger as MenuTrigger, MenuAnchor } from "./components/menu.js";
|
|
58
43
|
import { MenuSection } from "./components/menu-section.js";
|
|
59
|
-
import { getInitials } from "./lib/initials.js";
|
|
60
|
-
import { ReviewAuthorAvatar, UNKNOWN_AUTHOR_LABEL } from "./review/review-author-avatar.js";
|
|
61
44
|
import { OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OutlineRail, outlineEntryText } from "./components/outline-rail.js";
|
|
62
45
|
import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "./components/pagination.js";
|
|
46
|
+
import { Popover, PopoverClose, PopoverContent as PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger } from "./components/popover.js";
|
|
63
47
|
import { HoverCard as PreviewCard, HoverCardContent as PreviewCardPopup, HoverCardTrigger as PreviewCardTrigger, PreviewCardPrimitive } from "./components/preview-card.js";
|
|
64
48
|
import { MenuPreviewLayout, PreviewPane } from "./components/preview-pane.js";
|
|
65
49
|
import { LEGAL_TEXT_CLASS_NAME, Prose } from "./components/prose.js";
|
|
50
|
+
import { ScrollArea, ScrollBar } from "./components/scroll-area.js";
|
|
66
51
|
import { ScrollToTop } from "./components/scroll-to-top.js";
|
|
67
52
|
import { SecretInput } from "./components/secret-input.js";
|
|
68
|
-
import { Toggle } from "./components/toggle.js";
|
|
69
|
-
import { ToggleGroup, ToggleGroupItem } from "./components/toggle-group.js";
|
|
70
53
|
import { SegmentedIconToggle } from "./components/segmented-icon-toggle.js";
|
|
54
|
+
import { Select, SelectContent as SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue } from "./components/select.js";
|
|
71
55
|
import { ResizeSeparator, Separator, TextSeparator } from "./components/separator.js";
|
|
72
|
-
import {
|
|
56
|
+
import { Sheet, SheetBackdrop, SheetClose, SheetContent as SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, SheetTitle, SheetTrigger } from "./components/sheet.js";
|
|
73
57
|
import { PanelTrigger, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarIdentityButton, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout } from "./components/sidebar.js";
|
|
58
|
+
import { Skeleton } from "./components/skeleton.js";
|
|
59
|
+
import { StellaMark } from "./components/stella-mark.js";
|
|
74
60
|
import { StellaWordmarkLatin } from "./components/stella-wordmark.js";
|
|
75
61
|
import { SortableHead, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./components/table.js";
|
|
76
62
|
import { Tabs, TabsContent as TabsPanel, TabsList, TabsTab } from "./components/tabs.js";
|
|
63
|
+
import { Textarea } from "./components/textarea.js";
|
|
77
64
|
import { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastProvider, resolveToastUpdateTimeout, stellaToast, toastCountdownMs, toastDedupeId } from "./components/toast.js";
|
|
65
|
+
import { Toggle } from "./components/toggle.js";
|
|
66
|
+
import { ToggleGroup, ToggleGroupItem } from "./components/toggle-group.js";
|
|
67
|
+
import { TOOLTIP_OPEN_DELAY_MS, Tooltip, TooltipContent as TooltipPopup, TooltipCreateHandle, TooltipFactTrigger, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
|
|
78
68
|
import { TruncatedText, isTextOverflowing } from "./components/truncated-text.js";
|
|
69
|
+
import { containedEventHandler, containedHandler } from "./hooks/use-contained-handler.js";
|
|
70
|
+
import { contentDir, isStructuredInputType, useContentDir } from "./hooks/use-content-dir.js";
|
|
71
|
+
import { useLatest } from "./hooks/use-latest.js";
|
|
72
|
+
import { useIsMobile } from "./hooks/use-mobile.js";
|
|
73
|
+
import { useViewportWidth } from "./hooks/use-viewport-width.js";
|
|
74
|
+
import { CONTROL_SIZE, CONTROL_SIZES } from "./lib/control-size.js";
|
|
75
|
+
import { getInitials } from "./lib/initials.js";
|
|
76
|
+
import { emptyColor, optionColors, resolveOptionColor } from "./lib/option-color.js";
|
|
77
|
+
import { BOARD_DRAG_OVERLAY_Z_INDEX, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, SHELL_CHROME_LAYER_CLASS_NAME } from "./lib/overlay-layer.js";
|
|
78
|
+
import { typedCharacter } from "./lib/typed-character.js";
|
|
79
79
|
import { duplicateColumnIds, findTableColumn, hideableColumnIds, sortableColumnIds, tableColumnIds, tableColumnSizing, visibleColumnIds } from "./data-table/schema.js";
|
|
80
80
|
import { DataTable } from "./data-table/table.js";
|
|
81
|
-
import {
|
|
81
|
+
import { cn, composeRefs } from "./lib/utils.js";
|
|
82
82
|
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./inspector/pane-width.js";
|
|
83
83
|
import { InspectorDock } from "./inspector/dock.js";
|
|
84
84
|
import { InspectorEntityTab, entityTabGlyph } from "./inspector/entity-tab.js";
|
|
@@ -100,9 +100,9 @@ import { KANBAN_DIRECTIONS, KANBAN_HORIZONTAL_EDGES, getKanbanHorizontalEdge } f
|
|
|
100
100
|
import { KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_CARD_DRAG_MIME, registerKanbanBoardAutoScroll, registerKanbanCardDrag } from "./kanban/drag-interactions.js";
|
|
101
101
|
import { KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS } from "./kanban/band-peek.js";
|
|
102
102
|
import { KanbanSubgroupBoard } from "./kanban/subgroup-board.js";
|
|
103
|
-
import {
|
|
103
|
+
import { getFirstWeekday, getLocaleWeekInfo, getWeekendDays } from "./lib/week.js";
|
|
104
104
|
import { KANBAN_VIRTUAL_CELL_PAGINATION, KanbanVirtualCell } from "./kanban/virtual-cell.js";
|
|
105
|
-
import {
|
|
105
|
+
import { ReviewAuthorAvatar, UNKNOWN_AUTHOR_LABEL } from "./review/review-author-avatar.js";
|
|
106
106
|
import { ReviewCommentCard } from "./review/review-comment-card.js";
|
|
107
107
|
import { ReviewDecisionActions } from "./review/review-decision-actions.js";
|
|
108
108
|
import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffText, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, reviewDiffSegmentKeys } from "./review/review-diff-text.js";
|
package/dist/inspector/chrome.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { withoutDirectionalControls } from "../components/bidi-text.js";
|
|
1
2
|
import { cn } from "../lib/utils.js";
|
|
2
3
|
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, TOOLBAR_ROW_HEIGHT } from "./layout-tokens.js";
|
|
3
|
-
import { withoutDirectionalControls } from "../components/bidi-text.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
// src/inspector/chrome.tsx
|
|
6
6
|
/**
|
package/dist/inspector/dock.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EllipsisIcon } from "../icons.js";
|
|
2
|
-
import { cn } from "../lib/utils.js";
|
|
3
2
|
import { SHELL_CHROME_LAYER_CLASS_NAME } from "../lib/overlay-layer.js";
|
|
3
|
+
import { cn } from "../lib/utils.js";
|
|
4
4
|
import "./pane-width.js";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
// src/inspector/dock.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { cn } from "../lib/utils.js";
|
|
2
1
|
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "../components/tooltip.js";
|
|
3
|
-
import { InspectorRailTab } from "./chrome.js";
|
|
4
2
|
import { containedEventHandler } from "../hooks/use-contained-handler.js";
|
|
3
|
+
import { cn } from "../lib/utils.js";
|
|
4
|
+
import { InspectorRailTab } from "./chrome.js";
|
|
5
5
|
import { resolveEntityTabActivateHandler, resolveEntityTabCloseHandler } from "./entity-tab.logic.js";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
// src/inspector/entity-tab.tsx
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ChevronDownIcon } from "../icons.js";
|
|
2
|
-
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { TOOLBAR_ROW_HEIGHT } from "./layout-tokens.js";
|
|
4
|
-
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "../components/tooltip.js";
|
|
5
1
|
import { Button } from "../components/button.js";
|
|
6
2
|
import { DropdownMenu as Menu, DropdownMenuContent as MenuPopup, DropdownMenuItem as MenuItem, DropdownMenuTrigger as MenuTrigger } from "../components/menu.js";
|
|
3
|
+
import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "../components/tooltip.js";
|
|
4
|
+
import { ChevronDownIcon } from "../icons.js";
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
7
6
|
import { resolveFacetOverflow } from "./facet-bar.logic.js";
|
|
7
|
+
import { TOOLBAR_ROW_HEIGHT } from "./layout-tokens.js";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { useEffect, useRef, useState } from "react";
|
|
10
10
|
// src/inspector/facet-bar.tsx
|
package/dist/inspector/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./layout-tokens.js";
|
|
2
1
|
import { Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorEmptyRow, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle } from "./chrome.js";
|
|
3
|
-
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./pane-width.js";
|
|
4
2
|
import { InspectorDock } from "./dock.js";
|
|
5
3
|
import { InspectorEntityTab, entityTabGlyph } from "./entity-tab.js";
|
|
6
4
|
import { InspectorFacetBar } from "./facet-bar.js";
|
|
5
|
+
import { PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX } from "./layout-tokens.js";
|
|
6
|
+
import { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed } from "./pane-width.js";
|
|
7
7
|
import { INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, resolveDragWidth, resolveKeyboardWidth, useInspectorPaneWidth } from "./use-pane-width.js";
|
|
8
8
|
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorEntityTab, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, PROPERTY_ROW_GRID, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, entityTabGlyph, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKeyboardWidth, shouldForceSidebarCollapsed, useInspectorPaneWidth };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { cn } from "../lib/utils.js";
|
|
2
1
|
import { containedEventHandler } from "../hooks/use-contained-handler.js";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
3
|
import { KANBAN_CARD_STICKY_TOP_CLASS } from "./sticky-lane.js";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
// src/kanban/card-shell.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Button } from "../components/button.js";
|
|
1
2
|
import { PlusIcon } from "../icons.js";
|
|
2
3
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { Button } from "../components/button.js";
|
|
4
4
|
import "./layout-tokens.js";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
// src/kanban/cell-action.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { DirectionalIcon } from "../components/directional-icon.js";
|
|
1
2
|
import { ChevronDownIcon } from "../icons.js";
|
|
2
3
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { DirectionalIcon } from "../components/directional-icon.js";
|
|
4
4
|
import { KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS } from "./layout-tokens.js";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
// src/kanban/column-band-header.tsx
|
package/dist/kanban/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { selectKanbanCardFieldIds } from "./card-properties.js";
|
|
2
|
-
import { KANBAN_CARD_STICKY_TOP_VAR, KANBAN_STICKY_TOP_VAR, KanbanCollapsedBandCaption } from "./sticky-lane.js";
|
|
3
2
|
import { KanbanCardShell } from "./card-shell.js";
|
|
4
|
-
import { KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX } from "./layout-tokens.js";
|
|
5
3
|
import { KanbanCellAction } from "./cell-action.js";
|
|
6
4
|
import { KanbanColumnBandHeader } from "./column-band-header.js";
|
|
7
|
-
import { getKanbanGroupingPropertyId, getKanbanGroups, isKanbanGroupingRenderable, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanRows } from "./grouping.js";
|
|
8
|
-
import { KANBAN_BOARD_AXES, buildKanbanBoardMatrix, createKanbanDropIntent, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, orderKanbanCellsByColumns } from "./matrix.js";
|
|
9
5
|
import { KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, hasKanbanColumnBands, resolveKanbanColumnBands } from "./column-bands.js";
|
|
10
6
|
import { KanbanColumnHeader } from "./column-header.js";
|
|
11
|
-
import {
|
|
7
|
+
import { KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX } from "./layout-tokens.js";
|
|
12
8
|
import { KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KanbanCardDragSurface, KanbanDragHandle, KanbanSortableBoard, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors } from "./sortable-interactions.js";
|
|
13
9
|
import { KANBAN_DIRECTIONS, KANBAN_HORIZONTAL_EDGES, getKanbanHorizontalEdge } from "./sortable-edge.js";
|
|
14
10
|
import { KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_CARD_DRAG_MIME, registerKanbanBoardAutoScroll, registerKanbanCardDrag } from "./drag-interactions.js";
|
|
11
|
+
import { KANBAN_BOARD_COLLISION_DETECTION, kanbanKeyboardCoordinates } from "./sortable-interactions.logic.js";
|
|
12
|
+
import { getKanbanGroupingPropertyId, getKanbanGroups, isKanbanGroupingRenderable, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanRows } from "./grouping.js";
|
|
13
|
+
import { KANBAN_BOARD_AXES, buildKanbanBoardMatrix, createKanbanDropIntent, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, orderKanbanCellsByColumns } from "./matrix.js";
|
|
15
14
|
import { KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS } from "./band-peek.js";
|
|
16
15
|
import { KanbanSubgroupBoard } from "./subgroup-board.js";
|
|
16
|
+
import { KANBAN_CARD_STICKY_TOP_VAR, KANBAN_STICKY_TOP_VAR, KanbanCollapsedBandCaption } from "./sticky-lane.js";
|
|
17
17
|
import { KANBAN_VIRTUAL_CELL_PAGINATION, KanbanVirtualCell } from "./virtual-cell.js";
|
|
18
18
|
export { KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_OPTIONS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_BOARD_COLLISION_DETECTION, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_DIRECTIONS, KANBAN_DRAG_OVERLAY_Z_INDEX, KANBAN_HORIZONTAL_EDGES, KANBAN_MOUSE_ACTIVATION_DISTANCE, KANBAN_SORTABLE_ACTIVATION_MODES, KANBAN_STICKY_TOP_VAR, KANBAN_TOUCH_ACTIVATION_CONSTRAINT, KANBAN_VIRTUAL_CELL_PAGINATION, KanbanCardDragSurface, KanbanCardShell, KanbanCellAction, KanbanCollapsedBandCaption, KanbanColumnBandHeader, KanbanColumnHeader, KanbanDragHandle, KanbanSortableBoard, KanbanSubgroupBoard, KanbanVirtualCell, buildKanbanBoardMatrix, createKanbanDropIntent, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getKanbanHorizontalEdge, hasKanbanColumnBands, isKanbanGroupingRenderable, kanbanKeyboardCoordinates, orderKanbanCellsByColumns, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanCardFieldIds, selectKanbanRows, useKanbanDropTarget, useKanbanSortable, useKanbanSortableSensors };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Button } from "../components/button.js";
|
|
2
3
|
import { GripVerticalIcon } from "../icons.js";
|
|
3
|
-
import { cn } from "../lib/utils.js";
|
|
4
4
|
import "../lib/overlay-layer.js";
|
|
5
|
-
import {
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
6
6
|
import { KANBAN_BOARD_COLLISION_DETECTION, KANBAN_DROP_TARGET_TYPES, clearKanbanKeyboardTarget, getKanbanKeyboardTargetState, isKanbanDropSettled, kanbanKeyboardCoordinates } from "./sortable-interactions.logic.js";
|
|
7
7
|
import { isActiveTouchChange } from "./touch-identity.js";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { DirectionalIcon } from "../components/directional-icon.js";
|
|
1
2
|
import { ChevronDownIcon } from "../icons.js";
|
|
2
3
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
import {
|
|
4
|
-
import { KANBAN_STICKY_TOP_CLASS, KANBAN_STICKY_TOP_VAR, KanbanCollapsedBandCaption } from "./sticky-lane.js";
|
|
5
|
-
import { KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS } from "./layout-tokens.js";
|
|
4
|
+
import { createBandPeekController } from "./band-peek.js";
|
|
6
5
|
import { KanbanColumnBandHeader } from "./column-band-header.js";
|
|
7
6
|
import { KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_CLASS, resolveKanbanColumnBands } from "./column-bands.js";
|
|
8
7
|
import { KANBAN_CARD_DRAG_MIME } from "./drag-interactions.js";
|
|
9
|
-
import {
|
|
8
|
+
import { KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS } from "./layout-tokens.js";
|
|
9
|
+
import { KANBAN_STICKY_TOP_CLASS, KANBAN_STICKY_TOP_VAR, KanbanCollapsedBandCaption } from "./sticky-lane.js";
|
|
10
10
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
12
12
|
// src/kanban/subgroup-board.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { resolveOptionColor } from "../lib/option-color.js";
|
|
1
2
|
import { cn } from "../lib/utils.js";
|
|
2
|
-
import { KANBAN_CARD_STICKY_TOP_VAR, KANBAN_STICKY_TOP_CLASS, resolveKanbanCardStickyTop } from "./sticky-lane.js";
|
|
3
3
|
import { useKanbanDropTarget } from "./sortable-interactions.js";
|
|
4
|
-
import {
|
|
4
|
+
import { KANBAN_CARD_STICKY_TOP_VAR, KANBAN_STICKY_TOP_CLASS, resolveKanbanCardStickyTop } from "./sticky-lane.js";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { useId, useLayoutEffect, useRef, useState } from "react";
|
|
7
7
|
import { useDndContext } from "@dnd-kit/core";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Why a right-click keeps the native menu, or null when stella may take it. */
|
|
2
|
+
export type NativeContextMenuReason = "editable" | "link" | "selection" | "shift";
|
|
3
|
+
type ContextMenuEventLike = {
|
|
4
|
+
readonly shiftKey: boolean;
|
|
5
|
+
readonly target: EventTarget | null;
|
|
6
|
+
};
|
|
7
|
+
/** The element is, or sits inside, text the user can edit. */
|
|
8
|
+
export declare const isEditableContextMenuTarget: (element: Element) => boolean;
|
|
9
|
+
/** The element is, or sits inside, a link with a destination. */
|
|
10
|
+
export declare const isLinkContextMenuTarget: (element: Element) => boolean;
|
|
11
|
+
/** A non-empty text selection covers the element. */
|
|
12
|
+
export declare const isSelectedTextContextMenuTarget: (element: Element) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Why this right-click keeps the browser's menu on an object, or null when
|
|
15
|
+
* the object's own actions open instead.
|
|
16
|
+
*/
|
|
17
|
+
export declare const nativeContextMenuReason: (event: ContextMenuEventLike) => NativeContextMenuReason | null;
|
|
18
|
+
/**
|
|
19
|
+
* The narrower rule a desktop webview applies to a right-click nothing in the
|
|
20
|
+
* page handled: only editable or selected text keeps a (text) menu, since
|
|
21
|
+
* the webview's native menu elsewhere offers browser items such as reload.
|
|
22
|
+
*/
|
|
23
|
+
export declare const nativeTextContextMenuReason: (event: Pick<ContextMenuEventLike, "target">) => Extract<NativeContextMenuReason, "editable" | "selection"> | null;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// src/lib/native-context-menu.ts
|
|
2
|
+
/** Input types whose value is text a user edits; the others are controls. */
|
|
3
|
+
const NON_TEXT_INPUT_TYPES = /* @__PURE__ */ new Set([
|
|
4
|
+
"button",
|
|
5
|
+
"checkbox",
|
|
6
|
+
"color",
|
|
7
|
+
"file",
|
|
8
|
+
"hidden",
|
|
9
|
+
"image",
|
|
10
|
+
"radio",
|
|
11
|
+
"range",
|
|
12
|
+
"reset",
|
|
13
|
+
"submit"
|
|
14
|
+
]);
|
|
15
|
+
/** The element a right-click landed on; a text node answers for its parent. */
|
|
16
|
+
const elementOf = (target) => {
|
|
17
|
+
if (target instanceof Element) return target;
|
|
18
|
+
if (target instanceof Node) return target.parentElement;
|
|
19
|
+
return null;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* What a `contenteditable` value means under the HTML standard: its keywords
|
|
23
|
+
* match ASCII case-insensitively, the empty string means "true", and an
|
|
24
|
+
* invalid value inherits from the parent.
|
|
25
|
+
*/
|
|
26
|
+
const contentEditableState = (value) => {
|
|
27
|
+
if (value === null) return "inherit";
|
|
28
|
+
switch (value.toLowerCase()) {
|
|
29
|
+
case "":
|
|
30
|
+
case "true":
|
|
31
|
+
case "plaintext-only": return "editable";
|
|
32
|
+
case "false": return "not-editable";
|
|
33
|
+
default: return "inherit";
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
/** The element is, or sits inside, text the user can edit. */
|
|
37
|
+
const isEditableContextMenuTarget = (element) => {
|
|
38
|
+
const field = element.closest("input, textarea");
|
|
39
|
+
if (field !== null) {
|
|
40
|
+
const type = field.getAttribute("type")?.toLowerCase() ?? "text";
|
|
41
|
+
if (field.tagName.toLowerCase() === "textarea") return true;
|
|
42
|
+
return !NON_TEXT_INPUT_TYPES.has(type);
|
|
43
|
+
}
|
|
44
|
+
for (let current = element.closest("[contenteditable]"); current !== null; current = current.parentElement?.closest("[contenteditable]") ?? null) {
|
|
45
|
+
const state = contentEditableState(current.getAttribute("contenteditable"));
|
|
46
|
+
if (state !== "inherit") return state === "editable";
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
};
|
|
50
|
+
/** The element is, or sits inside, a link with a destination. */
|
|
51
|
+
const isLinkContextMenuTarget = (element) => element.closest("a[href]") !== null;
|
|
52
|
+
/** A non-empty text selection covers the element. */
|
|
53
|
+
const isSelectedTextContextMenuTarget = (element) => {
|
|
54
|
+
const selection = element.ownerDocument.defaultView?.getSelection() ?? null;
|
|
55
|
+
if (selection === null || selection.isCollapsed) return false;
|
|
56
|
+
if (selection.toString().trim() === "") return false;
|
|
57
|
+
for (let index = 0; index < selection.rangeCount; index += 1) if (selection.getRangeAt(index).intersectsNode(element)) return true;
|
|
58
|
+
return false;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Why this right-click keeps the browser's menu on an object, or null when
|
|
62
|
+
* the object's own actions open instead.
|
|
63
|
+
*/
|
|
64
|
+
const nativeContextMenuReason = (event) => {
|
|
65
|
+
if (event.shiftKey) return "shift";
|
|
66
|
+
const element = elementOf(event.target);
|
|
67
|
+
if (element === null) return null;
|
|
68
|
+
if (isEditableContextMenuTarget(element)) return "editable";
|
|
69
|
+
if (isSelectedTextContextMenuTarget(element)) return "selection";
|
|
70
|
+
if (isLinkContextMenuTarget(element)) return "link";
|
|
71
|
+
return null;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* The narrower rule a desktop webview applies to a right-click nothing in the
|
|
75
|
+
* page handled: only editable or selected text keeps a (text) menu, since
|
|
76
|
+
* the webview's native menu elsewhere offers browser items such as reload.
|
|
77
|
+
*/
|
|
78
|
+
const nativeTextContextMenuReason = (event) => {
|
|
79
|
+
const element = elementOf(event.target);
|
|
80
|
+
if (element === null) return null;
|
|
81
|
+
if (isEditableContextMenuTarget(element)) return "editable";
|
|
82
|
+
if (isSelectedTextContextMenuTarget(element)) return "selection";
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
85
|
+
export { isEditableContextMenuTarget, isLinkContextMenuTarget, isSelectedTextContextMenuTarget, nativeContextMenuReason, nativeTextContextMenuReason };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cn } from "../lib/utils.js";
|
|
2
1
|
import { Avatar, AvatarFallback, AvatarImage } from "../components/avatar.js";
|
|
3
2
|
import { getInitials } from "../lib/initials.js";
|
|
3
|
+
import { cn } from "../lib/utils.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
// src/review/review-author-avatar.tsx
|
|
6
6
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { CheckIcon, RotateCcwIcon, Trash2Icon } from "../icons.js";
|
|
2
|
-
import { cn } from "../lib/utils.js";
|
|
3
1
|
import { BidiText } from "../components/bidi-text.js";
|
|
4
2
|
import { Button } from "../components/button.js";
|
|
3
|
+
import { CheckIcon, RotateCcwIcon, Trash2Icon } from "../icons.js";
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { ReviewAuthorAvatar } from "./review-author-avatar.js";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { Temporal } from "temporal-polyfill/full";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Button } from "../components/button.js";
|
|
1
2
|
import { CheckIcon, RotateCcwIcon, XIcon } from "../icons.js";
|
|
2
3
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
import { Button } from "../components/button.js";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { panic } from "better-result";
|
|
6
6
|
// src/review/review-decision-actions.tsx
|