@dxos/react-list 0.1.51-main.a24503e → 0.1.51-main.acb2ded

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.
@@ -1,10 +1,7 @@
1
1
  // packages/ui/primitives/react-list/src/List.tsx
2
- import { DndContext } from "@dnd-kit/core";
3
- import { restrictToVerticalAxis } from "@dnd-kit/modifiers";
4
- import { SortableContext, arrayMove, verticalListSortingStrategy } from "@dnd-kit/sortable";
5
2
  import { createContextScope } from "@radix-ui/react-context";
6
3
  import { Primitive } from "@radix-ui/react-primitive";
7
- import React, { forwardRef, useCallback, useState } from "react";
4
+ import React, { forwardRef } from "react";
8
5
  function _extends() {
9
6
  _extends = Object.assign || function(target) {
10
7
  for (var i = 1; i < arguments.length; i++) {
@@ -22,18 +19,9 @@ function _extends() {
22
19
  var LIST_NAME = "List";
23
20
  var [createListContext, createListScope] = createContextScope(LIST_NAME, []);
24
21
  var [ListProvider, useListContext] = createListContext(LIST_NAME);
25
- var isOrderedDraggable = (props) => props.variant === "ordered-draggable";
26
22
  var List = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
27
- const { __listScope, variant = "ordered", selectable = false, onDragEnd, onDragOver, listItemIds, itemSizes, children, ...rootProps } = props;
28
- const ListRoot = variant === "ordered" || variant === "ordered-draggable" ? Primitive.ol : Primitive.ul;
29
- const [draggingId, setDraggingId] = useState(void 0);
30
- const onDragStart = useCallback((event) => setDraggingId(event.active.id), []);
31
- const composedOnDragEnd = useCallback((event) => {
32
- setDraggingId(void 0);
33
- onDragEnd == null ? void 0 : onDragEnd(event);
34
- }, [
35
- onDragEnd
36
- ]);
23
+ const { __listScope, variant = "ordered", selectable = false, itemSizes, children, ...rootProps } = props;
24
+ const ListRoot = variant === "ordered" ? Primitive.ol : Primitive.ul;
37
25
  return /* @__PURE__ */ React.createElement(ListRoot, _extends({}, selectable && {
38
26
  role: "listbox",
39
27
  "aria-multiselectable": true
@@ -43,27 +31,13 @@ var List = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
43
31
  scope: __listScope,
44
32
  variant,
45
33
  selectable,
46
- draggingId,
47
34
  itemSizes
48
- }), isOrderedDraggable(props) ? /* @__PURE__ */ React.createElement(DndContext, {
49
- onDragEnd: composedOnDragEnd,
50
- onDragOver,
51
- onDragStart,
52
- modifiers: [
53
- restrictToVerticalAxis
54
- ]
55
- }, /* @__PURE__ */ React.createElement(SortableContext, {
56
- items: listItemIds,
57
- strategy: verticalListSortingStrategy
58
- }, children)) : /* @__PURE__ */ React.createElement(React.Fragment, null, children)));
35
+ }), children));
59
36
  });
60
37
  List.displayName = LIST_NAME;
61
38
 
62
39
  // packages/ui/primitives/react-list/src/ListItem.tsx
63
- import { useSortable } from "@dnd-kit/sortable";
64
- import { CSS } from "@dnd-kit/utilities";
65
40
  import * as Collapsible from "@radix-ui/react-collapsible";
66
- import { useComposedRefs } from "@radix-ui/react-compose-refs";
67
41
  import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
68
42
  import { Primitive as Primitive2 } from "@radix-ui/react-primitive";
69
43
  import { Slot } from "@radix-ui/react-slot";
@@ -95,17 +69,11 @@ var ListItemHeading = /* @__PURE__ */ forwardRef2(({ children, asChild, __listIt
95
69
  ref: forwardedRef
96
70
  }), children);
97
71
  });
98
- var ListItemDragHandle = /* @__PURE__ */ forwardRef2(({ __listItemScope, children, ...props }, forwardedRef) => {
99
- const { draggableAttributes, draggableListeners } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
100
- return /* @__PURE__ */ React2.createElement("div", _extends2({
101
- role: "button",
102
- ref: forwardedRef
103
- }, props, draggableAttributes, draggableListeners), children);
104
- });
105
72
  var ListItemOpenTrigger = Collapsible.Trigger;
106
73
  var ListItemCollapsibleContent = Collapsible.Content;
107
- var ListItemImpl = /* @__PURE__ */ forwardRef2((props, forwardedRef) => {
108
- const { __listScope, __listItemScope, children, selected: propsSelected, defaultSelected, onSelectedChange, open: propsOpen, defaultOpen, onOpenChange, collapsible, id, draggableAttributes, draggableListeners, ...listItemProps } = props;
74
+ var ListItem = /* @__PURE__ */ forwardRef2((props, forwardedRef) => {
75
+ const id = useId("listItem", props.id);
76
+ const { __listScope, __listItemScope, children, selected: propsSelected, defaultSelected, onSelectedChange, open: propsOpen, defaultOpen, onOpenChange, collapsible, ...listItemProps } = props;
109
77
  const { selectable } = useListContext(LIST_NAME, __listScope);
110
78
  const [selected = false, setSelected] = useControllableState({
111
79
  prop: propsSelected,
@@ -126,54 +94,18 @@ var ListItemImpl = /* @__PURE__ */ forwardRef2((props, forwardedRef) => {
126
94
  role: "option",
127
95
  "aria-selected": !!selected
128
96
  }), children);
129
- return /* @__PURE__ */ React2.createElement(ListItemProvider, _extends2({
97
+ return /* @__PURE__ */ React2.createElement(ListItemProvider, {
130
98
  scope: __listItemScope,
131
99
  headingId,
132
100
  open,
133
101
  selected,
134
102
  setSelected
135
- }, {
136
- draggableAttributes,
137
- draggableListeners
138
- }), collapsible ? /* @__PURE__ */ React2.createElement(Collapsible.Root, {
103
+ }, collapsible ? /* @__PURE__ */ React2.createElement(Collapsible.Root, {
139
104
  asChild: true,
140
105
  open,
141
106
  onOpenChange: setOpen
142
107
  }, listItem) : listItem);
143
108
  });
144
- var DraggableListItem = /* @__PURE__ */ forwardRef2((props, forwardedRef) => {
145
- const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
146
- id: props.id
147
- });
148
- const { itemSizes } = useListContext(LIST_NAME, props.__listScope);
149
- const ref = useComposedRefs(forwardedRef, setNodeRef);
150
- return /* @__PURE__ */ React2.createElement(ListItemImpl, _extends2({}, props, {
151
- style: {
152
- ...props.style,
153
- transform: CSS[itemSizes === "one" ? "Transform" : "Translate"].toString(transform),
154
- transition
155
- },
156
- ref
157
- }, {
158
- draggableAttributes: attributes,
159
- draggableListeners: listeners
160
- }));
161
- });
162
- var ListItem = /* @__PURE__ */ forwardRef2((props, forwardedRef) => {
163
- const { variant } = useListContext(LIST_NAME, props.__listScope);
164
- const listItemId = useId("listItem", props.id);
165
- if (variant === "ordered-draggable") {
166
- return /* @__PURE__ */ React2.createElement(DraggableListItem, _extends2({}, props, {
167
- ref: forwardedRef,
168
- id: listItemId
169
- }));
170
- } else {
171
- return /* @__PURE__ */ React2.createElement(ListItemImpl, _extends2({}, props, {
172
- ref: forwardedRef,
173
- id: listItemId
174
- }));
175
- }
176
- });
177
109
  ListItem.displayName = LIST_ITEM_NAME;
178
110
  export {
179
111
  LIST_ITEM_NAME,
@@ -181,10 +113,8 @@ export {
181
113
  List,
182
114
  ListItem,
183
115
  ListItemCollapsibleContent,
184
- ListItemDragHandle,
185
116
  ListItemHeading,
186
117
  ListItemOpenTrigger,
187
- arrayMove,
188
118
  createListItemScope,
189
119
  createListScope,
190
120
  useListContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/List.tsx", "../../../src/ListItem.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { DndContext, DragEndEvent, DragStartEvent, DragOverEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { SortableContext, arrayMove, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { ComponentPropsWithRef, forwardRef, useCallback, useState } from 'react';\n\n// TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\nconst LIST_NAME = 'List';\n\ntype ListScopedProps<P> = P & { __listScope?: Scope };\n\ntype ListVariant = 'ordered' | 'unordered' | 'ordered-draggable';\n\ntype ListItemSizes = 'one' | 'many';\n\ntype SharedListProps = {\n selectable?: boolean;\n variant?: ListVariant;\n listItemIds?: string[];\n onDragEnd?: (event: DragEndEvent) => void;\n onDragOver?: (event: DragOverEvent) => void;\n itemSizes?: ListItemSizes;\n};\n\ntype SharedDraggableListProps = SharedListProps & {\n listItemIds: Exclude<SharedListProps['listItemIds'], undefined>;\n variant: 'ordered-draggable';\n};\n\ntype HeterogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {\n itemSizes?: 'many';\n};\n\ntype HomogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {\n itemSizes: 'one';\n};\n\ntype BaseListProps = Omit<ComponentPropsWithRef<typeof Primitive.ol>, 'onDragEnd' | 'onDragOver'>;\n\ntype ListProps =\n | (BaseListProps & SharedListProps)\n | (BaseListProps & HomogeneousDraggableListProps)\n | (BaseListProps & HeterogeneousDraggableListProps);\n\n// LIST\n\nconst [createListContext, createListScope] = createContextScope(LIST_NAME, []);\n\ntype ListContextValue = Pick<ListProps, 'selectable' | 'variant'> & {\n draggingId?: string;\n itemSizes?: ListItemSizes;\n};\n\nconst [ListProvider, useListContext] = createListContext<ListContextValue>(LIST_NAME);\n\nconst isOrderedDraggable = (props: ListProps): props is SharedDraggableListProps =>\n props.variant === 'ordered-draggable';\nconst _isOrderedDraggableHomogeneous = (props: ListProps): props is HomogeneousDraggableListProps =>\n isOrderedDraggable(props) && props.itemSizes === 'one';\nconst _isOrderedDraggableHeterogeneous = (props: ListProps): props is HeterogeneousDraggableListProps =>\n isOrderedDraggable(props) && props.itemSizes !== 'one';\n\nconst List = forwardRef<HTMLOListElement, ListProps>((props: ListScopedProps<ListProps>, forwardedRef) => {\n const {\n __listScope,\n variant = 'ordered',\n selectable = false,\n onDragEnd,\n onDragOver,\n listItemIds,\n itemSizes,\n children,\n ...rootProps\n } = props;\n const ListRoot = variant === 'ordered' || variant === 'ordered-draggable' ? Primitive.ol : Primitive.ul;\n const [draggingId, setDraggingId] = useState<string | undefined>(undefined);\n const onDragStart = useCallback((event: DragStartEvent) => setDraggingId(event.active.id as string), []);\n const composedOnDragEnd = useCallback(\n (event: DragEndEvent) => {\n setDraggingId(undefined);\n onDragEnd?.(event);\n },\n [onDragEnd],\n );\n return (\n <ListRoot {...(selectable && { role: 'listbox', 'aria-multiselectable': true })} {...rootProps} ref={forwardedRef}>\n <ListProvider\n {...{\n scope: __listScope,\n variant,\n selectable,\n draggingId,\n itemSizes,\n }}\n >\n {isOrderedDraggable(props) ? (\n <DndContext\n onDragEnd={composedOnDragEnd}\n onDragOver={onDragOver}\n onDragStart={onDragStart}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext items={listItemIds!} strategy={verticalListSortingStrategy}>\n {children}\n </SortableContext>\n </DndContext>\n ) : (\n <>{children}</>\n )}\n </ListProvider>\n </ListRoot>\n );\n});\n\nList.displayName = LIST_NAME;\n\nexport { List, createListScope, useListContext, LIST_NAME, arrayMove };\n\nexport type { ListProps, ListVariant, ListScopedProps, DragEndEvent, DragOverEvent };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DraggableAttributes } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport type { CheckboxProps } from '@radix-ui/react-checkbox';\nimport { CollapsibleContentProps, CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, {\n ComponentProps,\n ComponentPropsWithRef,\n Dispatch,\n forwardRef,\n ForwardRefExoticComponent,\n SetStateAction,\n} from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { LIST_NAME, ListScopedProps, useListContext } from './List';\n\nconst LIST_ITEM_NAME = 'ListItem';\n\ntype ListItemScopedProps<P> = P & { __listItemScope?: Scope };\n\ninterface ListItemData {\n id: string;\n selected?: CheckboxProps['checked'];\n open?: boolean;\n}\n\ntype ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & ComponentPropsWithRef<\n typeof Primitive.li\n > & {\n defaultOpen?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n } & {\n onSelectedChange?: CheckboxProps['onCheckedChange'];\n defaultSelected?: CheckboxProps['defaultChecked'];\n };\n\ntype ListItemElement = React.ElementRef<typeof Primitive.li>;\n\nconst [createListItemContext, createListItemScope] = createContextScope(LIST_ITEM_NAME, []);\n\ntype DraggableListItemContextValue = {\n draggableAttributes: DraggableAttributes;\n draggableListeners: ReturnType<typeof useSortable>['listeners'];\n};\n\ntype ListItemContextValue = {\n headingId: string;\n open: boolean;\n selected: CheckboxProps['checked'];\n setSelected: Dispatch<SetStateAction<CheckboxProps['checked']>>;\n} & Partial<DraggableListItemContextValue>;\n\nconst [ListItemProvider, useListItemContext] = createListItemContext<ListItemContextValue>(LIST_ITEM_NAME);\n\ntype ListItemHeadingProps = ListItemScopedProps<Omit<ComponentPropsWithRef<typeof Primitive.p>, 'id'>> & {\n asChild?: boolean;\n};\n\nconst ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(\n ({ children, asChild, __listItemScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Root = asChild ? Slot : Primitive.p;\n return (\n <Root {...props} id={headingId} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype ListItemDragHandleProps = ComponentPropsWithRef<typeof Primitive.div>;\n\nconst ListItemDragHandle = forwardRef<HTMLDivElement, ListItemScopedProps<ListItemDragHandleProps>>(\n ({ __listItemScope, children, ...props }, forwardedRef) => {\n const { draggableAttributes, draggableListeners } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n return (\n <div role='button' ref={forwardedRef} {...props} {...draggableAttributes} {...draggableListeners}>\n {children}\n </div>\n );\n },\n);\n\ntype ListItemOpenTriggerProps = ListItemScopedProps<CollapsibleTriggerProps>;\n\nconst ListItemOpenTrigger = Collapsible.Trigger;\n\ntype ListItemCollapsibleContentProps = ComponentProps<typeof Collapsible.Content>;\n\nconst ListItemCollapsibleContent: ForwardRefExoticComponent<CollapsibleContentProps> = Collapsible.Content;\n\nconst ListItemImpl = forwardRef<\n ListItemElement,\n ListItemProps & { id: string } & Partial<DraggableListItemContextValue>\n>(\n (\n props: ListItemScopedProps<\n ListScopedProps<ListItemProps & { id: string } & Partial<DraggableListItemContextValue>>\n >,\n forwardedRef,\n ) => {\n const {\n __listScope,\n __listItemScope,\n children,\n selected: propsSelected,\n defaultSelected,\n onSelectedChange,\n open: propsOpen,\n defaultOpen,\n onOpenChange,\n collapsible,\n id,\n draggableAttributes,\n draggableListeners,\n ...listItemProps\n } = props;\n const { selectable } = useListContext(LIST_NAME, __listScope);\n\n const [selected = false, setSelected] = useControllableState({\n prop: propsSelected,\n defaultProp: defaultSelected,\n onChange: onSelectedChange,\n });\n\n const [open = false, setOpen] = useControllableState({\n prop: propsOpen,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const headingId = useId('listItem__heading');\n\n const listItem = (\n <Primitive.li\n {...listItemProps}\n id={id}\n ref={forwardedRef}\n aria-labelledby={headingId}\n {...(selectable && { role: 'option', 'aria-selected': !!selected })}\n >\n {children}\n </Primitive.li>\n );\n\n return (\n <ListItemProvider\n scope={__listItemScope}\n headingId={headingId}\n open={open}\n selected={selected}\n setSelected={setSelected}\n {...{ draggableAttributes, draggableListeners }}\n >\n {collapsible ? (\n <Collapsible.Root asChild open={open} onOpenChange={setOpen}>\n {listItem}\n </Collapsible.Root>\n ) : (\n listItem\n )}\n </ListItemProvider>\n );\n },\n);\n\nconst DraggableListItem = forwardRef<ListItemElement, ListItemProps & { id: string }>(\n (props: ListItemScopedProps<ListScopedProps<ListItemProps & { id: string }>>, forwardedRef) => {\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({\n id: props.id,\n });\n const { itemSizes } = useListContext(LIST_NAME, props.__listScope);\n const ref = useComposedRefs(forwardedRef, setNodeRef) as ComponentPropsWithRef<typeof Primitive.li>['ref'];\n\n return (\n <ListItemImpl\n {...props}\n style={{\n ...props.style,\n transform: CSS[itemSizes === 'one' ? 'Transform' : 'Translate'].toString(transform),\n transition,\n }}\n ref={ref}\n {...{\n draggableAttributes: attributes,\n draggableListeners: listeners,\n }}\n />\n );\n },\n);\n\nconst ListItem = forwardRef<ListItemElement, ListItemProps>((props: ListScopedProps<ListItemProps>, forwardedRef) => {\n const { variant } = useListContext(LIST_NAME, props.__listScope);\n const listItemId = useId('listItem', props.id);\n\n if (variant === 'ordered-draggable') {\n return <DraggableListItem {...props} ref={forwardedRef} id={listItemId} />;\n } else {\n return <ListItemImpl {...props} ref={forwardedRef} id={listItemId} />;\n }\n});\n\nListItem.displayName = LIST_ITEM_NAME;\n\nexport {\n ListItem,\n ListItemHeading,\n ListItemCollapsibleContent,\n ListItemDragHandle,\n ListItemOpenTrigger,\n createListItemScope,\n useListItemContext,\n LIST_ITEM_NAME,\n};\n\nexport type {\n ListItemProps,\n ListItemHeadingProps,\n ListItemCollapsibleContentProps,\n ListItemDragHandleProps,\n ListItemOpenTriggerProps,\n ListItemScopedProps,\n};\n"],
5
- "mappings": "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",
6
- "names": ["DndContext", "restrictToVerticalAxis", "SortableContext", "arrayMove", "verticalListSortingStrategy", "createContextScope", "Primitive", "React", "forwardRef", "useCallback", "useState", "LIST_NAME", "createListContext", "createListScope", "ListProvider", "useListContext", "isOrderedDraggable", "props", "variant", "List", "forwardRef", "props", "forwardedRef", "__listScope", "variant", "selectable", "onDragEnd", "onDragOver", "listItemIds", "itemSizes", "children", "rootProps", "ListRoot", "Primitive", "ol", "ul", "draggingId", "setDraggingId", "useState", "undefined", "onDragStart", "useCallback", "event", "active", "id", "composedOnDragEnd", "role", "ref", "ListProvider", "scope", "isOrderedDraggable", "DndContext", "modifiers", "restrictToVerticalAxis", "SortableContext", "items", "strategy", "verticalListSortingStrategy", "displayName", "LIST_NAME", "useSortable", "CSS", "Collapsible", "useComposedRefs", "createContextScope", "Primitive", "Slot", "useControllableState", "React", "forwardRef", "useId", "_extends", "LIST_ITEM_NAME", "createListItemContext", "createListItemScope", "createContextScope", "ListItemProvider", "useListItemContext", "ListItemHeading", "forwardRef", "children", "asChild", "__listItemScope", "props", "forwardedRef", "headingId", "Root", "Slot", "Primitive", "p", "React", "id", "ref", "ListItemDragHandle", "draggableAttributes", "draggableListeners", "div", "role", "ListItemOpenTrigger", "Trigger", "ListItemCollapsibleContent", "Content", "ListItemImpl", "__listScope", "selected", "propsSelected", "defaultSelected", "onSelectedChange", "open", "propsOpen", "defaultOpen", "onOpenChange", "collapsible", "listItemProps", "selectable", "useListContext", "LIST_NAME", "setSelected", "useControllableState", "prop", "defaultProp", "onChange", "setOpen", "useId", "listItem", "li", "aria-labelledby", "scope", "DraggableListItem", "attributes", "listeners", "setNodeRef", "transform", "transition", "useSortable", "itemSizes", "useComposedRefs", "style", "CSS", "toString", "ListItem", "variant", "listItemId", "displayName"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { ComponentPropsWithRef, forwardRef } from 'react';\n\n// TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\nconst LIST_NAME = 'List';\n\ntype ListScopedProps<P> = P & { __listScope?: Scope };\n\ntype ListVariant = 'ordered' | 'unordered';\n\ntype ListItemSizes = 'one' | 'many';\n\ntype ListProps = ComponentPropsWithRef<typeof Primitive.ol> & {\n selectable?: boolean;\n variant?: ListVariant;\n itemSizes?: ListItemSizes;\n};\n\n// LIST\n\nconst [createListContext, createListScope] = createContextScope(LIST_NAME, []);\n\ntype ListContextValue = {\n selectable: Exclude<ListProps['selectable'], undefined>;\n variant: Exclude<ListProps['variant'], undefined>;\n itemSizes?: ListItemSizes;\n};\n\nconst [ListProvider, useListContext] = createListContext<ListContextValue>(LIST_NAME);\n\nconst List = forwardRef<HTMLOListElement, ListProps>((props: ListScopedProps<ListProps>, forwardedRef) => {\n const { __listScope, variant = 'ordered', selectable = false, itemSizes, children, ...rootProps } = props;\n const ListRoot = variant === 'ordered' ? Primitive.ol : Primitive.ul;\n return (\n <ListRoot {...(selectable && { role: 'listbox', 'aria-multiselectable': true })} {...rootProps} ref={forwardedRef}>\n <ListProvider\n {...{\n scope: __listScope,\n variant,\n selectable,\n itemSizes,\n }}\n >\n {children}\n </ListProvider>\n </ListRoot>\n );\n});\n\nList.displayName = LIST_NAME;\n\nexport { List, createListScope, useListContext, LIST_NAME };\n\nexport type { ListProps, ListVariant, ListScopedProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type { CheckboxProps } from '@radix-ui/react-checkbox';\nimport { CollapsibleContentProps, CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, {\n ComponentProps,\n ComponentPropsWithRef,\n Dispatch,\n forwardRef,\n ForwardRefExoticComponent,\n SetStateAction,\n} from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { LIST_NAME, ListScopedProps, useListContext } from './List';\n\nconst LIST_ITEM_NAME = 'ListItem';\n\ntype ListItemScopedProps<P> = P & { __listItemScope?: Scope };\n\ninterface ListItemData {\n id: string;\n selected?: CheckboxProps['checked'];\n open?: boolean;\n}\n\ntype ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & ComponentPropsWithRef<\n typeof Primitive.li\n > & {\n defaultOpen?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n } & {\n onSelectedChange?: CheckboxProps['onCheckedChange'];\n defaultSelected?: CheckboxProps['defaultChecked'];\n };\n\ntype ListItemElement = React.ElementRef<typeof Primitive.li>;\n\nconst [createListItemContext, createListItemScope] = createContextScope(LIST_ITEM_NAME, []);\n\ntype ListItemContextValue = {\n headingId: string;\n open: boolean;\n selected: CheckboxProps['checked'];\n setSelected: Dispatch<SetStateAction<CheckboxProps['checked']>>;\n};\n\nconst [ListItemProvider, useListItemContext] = createListItemContext<ListItemContextValue>(LIST_ITEM_NAME);\n\ntype ListItemHeadingProps = ListItemScopedProps<Omit<ComponentPropsWithRef<typeof Primitive.p>, 'id'>> & {\n asChild?: boolean;\n};\n\nconst ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(\n ({ children, asChild, __listItemScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Root = asChild ? Slot : Primitive.p;\n return (\n <Root {...props} id={headingId} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype ListItemOpenTriggerProps = ListItemScopedProps<CollapsibleTriggerProps>;\n\nconst ListItemOpenTrigger = Collapsible.Trigger;\n\ntype ListItemCollapsibleContentProps = ComponentProps<typeof Collapsible.Content>;\n\nconst ListItemCollapsibleContent: ForwardRefExoticComponent<CollapsibleContentProps> = Collapsible.Content;\n\nconst ListItem = forwardRef<ListItemElement, ListItemProps>(\n (props: ListItemScopedProps<ListScopedProps<ListItemProps>>, forwardedRef) => {\n const id = useId('listItem', props.id);\n\n const {\n __listScope,\n __listItemScope,\n children,\n selected: propsSelected,\n defaultSelected,\n onSelectedChange,\n open: propsOpen,\n defaultOpen,\n onOpenChange,\n collapsible,\n ...listItemProps\n } = props;\n const { selectable } = useListContext(LIST_NAME, __listScope);\n\n const [selected = false, setSelected] = useControllableState({\n prop: propsSelected,\n defaultProp: defaultSelected,\n onChange: onSelectedChange,\n });\n\n const [open = false, setOpen] = useControllableState({\n prop: propsOpen,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const headingId = useId('listItem__heading');\n\n const listItem = (\n <Primitive.li\n {...listItemProps}\n id={id}\n ref={forwardedRef}\n aria-labelledby={headingId}\n {...(selectable && { role: 'option', 'aria-selected': !!selected })}\n >\n {children}\n </Primitive.li>\n );\n\n return (\n <ListItemProvider\n scope={__listItemScope}\n headingId={headingId}\n open={open}\n selected={selected}\n setSelected={setSelected}\n >\n {collapsible ? (\n <Collapsible.Root asChild open={open} onOpenChange={setOpen}>\n {listItem}\n </Collapsible.Root>\n ) : (\n listItem\n )}\n </ListItemProvider>\n );\n },\n);\n\nListItem.displayName = LIST_ITEM_NAME;\n\nexport {\n ListItem,\n ListItemHeading,\n ListItemCollapsibleContent,\n ListItemOpenTrigger,\n createListItemScope,\n useListItemContext,\n LIST_ITEM_NAME,\n};\n\nexport type {\n ListItemProps,\n ListItemHeadingProps,\n ListItemCollapsibleContentProps,\n ListItemOpenTriggerProps,\n ListItemScopedProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["createContextScope", "Primitive", "React", "forwardRef", "LIST_NAME", "createListContext", "createListScope", "ListProvider", "useListContext", "List", "props", "forwardedRef", "__listScope", "variant", "selectable", "itemSizes", "children", "rootProps", "ListRoot", "ol", "ul", "role", "ref", "scope", "displayName", "Collapsible", "createContextScope", "Primitive", "Slot", "useControllableState", "React", "forwardRef", "useId", "_extends", "LIST_ITEM_NAME", "createListItemContext", "createListItemScope", "createContextScope", "ListItemProvider", "useListItemContext", "ListItemHeading", "forwardRef", "children", "asChild", "__listItemScope", "props", "forwardedRef", "headingId", "Root", "Slot", "Primitive", "p", "React", "id", "ref", "ListItemOpenTrigger", "Trigger", "ListItemCollapsibleContent", "Content", "ListItem", "useId", "__listScope", "selected", "propsSelected", "defaultSelected", "onSelectedChange", "open", "propsOpen", "defaultOpen", "onOpenChange", "collapsible", "listItemProps", "selectable", "useListContext", "LIST_NAME", "setSelected", "useControllableState", "prop", "defaultProp", "onChange", "setOpen", "listItem", "li", "aria-labelledby", "role", "scope", "displayName"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytes":11866,"imports":[{"path":"@dnd-kit/core","kind":"import-statement","external":true},{"path":"@dnd-kit/modifiers","kind":"import-statement","external":true},{"path":"@dnd-kit/sortable","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}]},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":20114,"imports":[{"path":"@dnd-kit/sortable","kind":"import-statement","external":true},{"path":"@dnd-kit/utilities","kind":"import-statement","external":true},{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"}]},"packages/ui/primitives/react-list/src/index.ts":{"bytes":456,"imports":[{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"},{"path":"packages/ui/primitives/react-list/src/ListItem.tsx","kind":"import-statement","original":"./ListItem"}]}},"outputs":{"packages/ui/primitives/react-list/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17714},"packages/ui/primitives/react-list/dist/lib/browser/index.mjs":{"imports":[{"path":"@dnd-kit/core","kind":"import-statement","external":true},{"path":"@dnd-kit/modifiers","kind":"import-statement","external":true},{"path":"@dnd-kit/sortable","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dnd-kit/sortable","kind":"import-statement","external":true},{"path":"@dnd-kit/utilities","kind":"import-statement","external":true},{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true}],"exports":["LIST_ITEM_NAME","LIST_NAME","List","ListItem","ListItemCollapsibleContent","ListItemDragHandle","ListItemHeading","ListItemOpenTrigger","arrayMove","createListItemScope","createListScope","useListContext","useListItemContext"],"entryPoint":"packages/ui/primitives/react-list/src/index.ts","inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytesInOutput":2401},"packages/ui/primitives/react-list/src/index.ts":{"bytesInOutput":0},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytesInOutput":4645}},"bytes":7437}}}
1
+ {"inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytes":5769,"imports":[{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}]},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":12899,"imports":[{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"}]},"packages/ui/primitives/react-list/src/index.ts":{"bytes":456,"imports":[{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"},{"path":"packages/ui/primitives/react-list/src/ListItem.tsx","kind":"import-statement","original":"./ListItem"}]}},"outputs":{"packages/ui/primitives/react-list/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10083},"packages/ui/primitives/react-list/dist/lib/browser/index.mjs":{"imports":[{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true}],"exports":["LIST_ITEM_NAME","LIST_NAME","List","ListItem","ListItemCollapsibleContent","ListItemHeading","ListItemOpenTrigger","createListItemScope","createListScope","useListContext","useListItemContext"],"entryPoint":"packages/ui/primitives/react-list/src/index.ts","inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytesInOutput":1322},"packages/ui/primitives/react-list/src/index.ts":{"bytesInOutput":0},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytesInOutput":2843}},"bytes":4521}}}
@@ -35,10 +35,8 @@ __export(src_exports, {
35
35
  List: () => List,
36
36
  ListItem: () => ListItem,
37
37
  ListItemCollapsibleContent: () => ListItemCollapsibleContent,
38
- ListItemDragHandle: () => ListItemDragHandle,
39
38
  ListItemHeading: () => ListItemHeading,
40
39
  ListItemOpenTrigger: () => ListItemOpenTrigger,
41
- arrayMove: () => import_sortable.arrayMove,
42
40
  createListItemScope: () => createListItemScope,
43
41
  createListScope: () => createListScope,
44
42
  useListContext: () => useListContext,
@@ -47,9 +45,6 @@ __export(src_exports, {
47
45
  module.exports = __toCommonJS(src_exports);
48
46
 
49
47
  // packages/ui/primitives/react-list/src/List.tsx
50
- var import_core = require("@dnd-kit/core");
51
- var import_modifiers = require("@dnd-kit/modifiers");
52
- var import_sortable = require("@dnd-kit/sortable");
53
48
  var import_react_context = require("@radix-ui/react-context");
54
49
  var import_react_primitive = require("@radix-ui/react-primitive");
55
50
  var import_react = __toESM(require("react"));
@@ -70,18 +65,9 @@ function _extends() {
70
65
  var LIST_NAME = "List";
71
66
  var [createListContext, createListScope] = (0, import_react_context.createContextScope)(LIST_NAME, []);
72
67
  var [ListProvider, useListContext] = createListContext(LIST_NAME);
73
- var isOrderedDraggable = (props) => props.variant === "ordered-draggable";
74
68
  var List = /* @__PURE__ */ (0, import_react.forwardRef)((props, forwardedRef) => {
75
- const { __listScope, variant = "ordered", selectable = false, onDragEnd, onDragOver, listItemIds, itemSizes, children, ...rootProps } = props;
76
- const ListRoot = variant === "ordered" || variant === "ordered-draggable" ? import_react_primitive.Primitive.ol : import_react_primitive.Primitive.ul;
77
- const [draggingId, setDraggingId] = (0, import_react.useState)(void 0);
78
- const onDragStart = (0, import_react.useCallback)((event) => setDraggingId(event.active.id), []);
79
- const composedOnDragEnd = (0, import_react.useCallback)((event) => {
80
- setDraggingId(void 0);
81
- onDragEnd == null ? void 0 : onDragEnd(event);
82
- }, [
83
- onDragEnd
84
- ]);
69
+ const { __listScope, variant = "ordered", selectable = false, itemSizes, children, ...rootProps } = props;
70
+ const ListRoot = variant === "ordered" ? import_react_primitive.Primitive.ol : import_react_primitive.Primitive.ul;
85
71
  return /* @__PURE__ */ import_react.default.createElement(ListRoot, _extends({}, selectable && {
86
72
  role: "listbox",
87
73
  "aria-multiselectable": true
@@ -91,27 +77,13 @@ var List = /* @__PURE__ */ (0, import_react.forwardRef)((props, forwardedRef) =>
91
77
  scope: __listScope,
92
78
  variant,
93
79
  selectable,
94
- draggingId,
95
80
  itemSizes
96
- }), isOrderedDraggable(props) ? /* @__PURE__ */ import_react.default.createElement(import_core.DndContext, {
97
- onDragEnd: composedOnDragEnd,
98
- onDragOver,
99
- onDragStart,
100
- modifiers: [
101
- import_modifiers.restrictToVerticalAxis
102
- ]
103
- }, /* @__PURE__ */ import_react.default.createElement(import_sortable.SortableContext, {
104
- items: listItemIds,
105
- strategy: import_sortable.verticalListSortingStrategy
106
- }, children)) : /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, children)));
81
+ }), children));
107
82
  });
108
83
  List.displayName = LIST_NAME;
109
84
 
110
85
  // packages/ui/primitives/react-list/src/ListItem.tsx
111
- var import_sortable2 = require("@dnd-kit/sortable");
112
- var import_utilities = require("@dnd-kit/utilities");
113
86
  var Collapsible = __toESM(require("@radix-ui/react-collapsible"));
114
- var import_react_compose_refs = require("@radix-ui/react-compose-refs");
115
87
  var import_react_context2 = require("@radix-ui/react-context");
116
88
  var import_react_primitive2 = require("@radix-ui/react-primitive");
117
89
  var import_react_slot = require("@radix-ui/react-slot");
@@ -143,17 +115,11 @@ var ListItemHeading = /* @__PURE__ */ (0, import_react2.forwardRef)(({ children,
143
115
  ref: forwardedRef
144
116
  }), children);
145
117
  });
146
- var ListItemDragHandle = /* @__PURE__ */ (0, import_react2.forwardRef)(({ __listItemScope, children, ...props }, forwardedRef) => {
147
- const { draggableAttributes, draggableListeners } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
148
- return /* @__PURE__ */ import_react2.default.createElement("div", _extends2({
149
- role: "button",
150
- ref: forwardedRef
151
- }, props, draggableAttributes, draggableListeners), children);
152
- });
153
118
  var ListItemOpenTrigger = Collapsible.Trigger;
154
119
  var ListItemCollapsibleContent = Collapsible.Content;
155
- var ListItemImpl = /* @__PURE__ */ (0, import_react2.forwardRef)((props, forwardedRef) => {
156
- const { __listScope, __listItemScope, children, selected: propsSelected, defaultSelected, onSelectedChange, open: propsOpen, defaultOpen, onOpenChange, collapsible, id, draggableAttributes, draggableListeners, ...listItemProps } = props;
120
+ var ListItem = /* @__PURE__ */ (0, import_react2.forwardRef)((props, forwardedRef) => {
121
+ const id = (0, import_react_hooks.useId)("listItem", props.id);
122
+ const { __listScope, __listItemScope, children, selected: propsSelected, defaultSelected, onSelectedChange, open: propsOpen, defaultOpen, onOpenChange, collapsible, ...listItemProps } = props;
157
123
  const { selectable } = useListContext(LIST_NAME, __listScope);
158
124
  const [selected = false, setSelected] = (0, import_react_use_controllable_state.useControllableState)({
159
125
  prop: propsSelected,
@@ -174,54 +140,18 @@ var ListItemImpl = /* @__PURE__ */ (0, import_react2.forwardRef)((props, forward
174
140
  role: "option",
175
141
  "aria-selected": !!selected
176
142
  }), children);
177
- return /* @__PURE__ */ import_react2.default.createElement(ListItemProvider, _extends2({
143
+ return /* @__PURE__ */ import_react2.default.createElement(ListItemProvider, {
178
144
  scope: __listItemScope,
179
145
  headingId,
180
146
  open,
181
147
  selected,
182
148
  setSelected
183
- }, {
184
- draggableAttributes,
185
- draggableListeners
186
- }), collapsible ? /* @__PURE__ */ import_react2.default.createElement(Collapsible.Root, {
149
+ }, collapsible ? /* @__PURE__ */ import_react2.default.createElement(Collapsible.Root, {
187
150
  asChild: true,
188
151
  open,
189
152
  onOpenChange: setOpen
190
153
  }, listItem) : listItem);
191
154
  });
192
- var DraggableListItem = /* @__PURE__ */ (0, import_react2.forwardRef)((props, forwardedRef) => {
193
- const { attributes, listeners, setNodeRef, transform, transition } = (0, import_sortable2.useSortable)({
194
- id: props.id
195
- });
196
- const { itemSizes } = useListContext(LIST_NAME, props.__listScope);
197
- const ref = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, setNodeRef);
198
- return /* @__PURE__ */ import_react2.default.createElement(ListItemImpl, _extends2({}, props, {
199
- style: {
200
- ...props.style,
201
- transform: import_utilities.CSS[itemSizes === "one" ? "Transform" : "Translate"].toString(transform),
202
- transition
203
- },
204
- ref
205
- }, {
206
- draggableAttributes: attributes,
207
- draggableListeners: listeners
208
- }));
209
- });
210
- var ListItem = /* @__PURE__ */ (0, import_react2.forwardRef)((props, forwardedRef) => {
211
- const { variant } = useListContext(LIST_NAME, props.__listScope);
212
- const listItemId = (0, import_react_hooks.useId)("listItem", props.id);
213
- if (variant === "ordered-draggable") {
214
- return /* @__PURE__ */ import_react2.default.createElement(DraggableListItem, _extends2({}, props, {
215
- ref: forwardedRef,
216
- id: listItemId
217
- }));
218
- } else {
219
- return /* @__PURE__ */ import_react2.default.createElement(ListItemImpl, _extends2({}, props, {
220
- ref: forwardedRef,
221
- id: listItemId
222
- }));
223
- }
224
- });
225
155
  ListItem.displayName = LIST_ITEM_NAME;
226
156
  // Annotate the CommonJS export names for ESM import in node:
227
157
  0 && (module.exports = {
@@ -230,10 +160,8 @@ ListItem.displayName = LIST_ITEM_NAME;
230
160
  List,
231
161
  ListItem,
232
162
  ListItemCollapsibleContent,
233
- ListItemDragHandle,
234
163
  ListItemHeading,
235
164
  ListItemOpenTrigger,
236
- arrayMove,
237
165
  createListItemScope,
238
166
  createListScope,
239
167
  useListContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/index.ts", "../../../src/List.tsx", "../../../src/ListItem.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nexport * from './List';\nexport * from './ListItem';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DndContext, DragEndEvent, DragStartEvent, DragOverEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { SortableContext, arrayMove, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { ComponentPropsWithRef, forwardRef, useCallback, useState } from 'react';\n\n// TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\nconst LIST_NAME = 'List';\n\ntype ListScopedProps<P> = P & { __listScope?: Scope };\n\ntype ListVariant = 'ordered' | 'unordered' | 'ordered-draggable';\n\ntype ListItemSizes = 'one' | 'many';\n\ntype SharedListProps = {\n selectable?: boolean;\n variant?: ListVariant;\n listItemIds?: string[];\n onDragEnd?: (event: DragEndEvent) => void;\n onDragOver?: (event: DragOverEvent) => void;\n itemSizes?: ListItemSizes;\n};\n\ntype SharedDraggableListProps = SharedListProps & {\n listItemIds: Exclude<SharedListProps['listItemIds'], undefined>;\n variant: 'ordered-draggable';\n};\n\ntype HeterogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {\n itemSizes?: 'many';\n};\n\ntype HomogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {\n itemSizes: 'one';\n};\n\ntype BaseListProps = Omit<ComponentPropsWithRef<typeof Primitive.ol>, 'onDragEnd' | 'onDragOver'>;\n\ntype ListProps =\n | (BaseListProps & SharedListProps)\n | (BaseListProps & HomogeneousDraggableListProps)\n | (BaseListProps & HeterogeneousDraggableListProps);\n\n// LIST\n\nconst [createListContext, createListScope] = createContextScope(LIST_NAME, []);\n\ntype ListContextValue = Pick<ListProps, 'selectable' | 'variant'> & {\n draggingId?: string;\n itemSizes?: ListItemSizes;\n};\n\nconst [ListProvider, useListContext] = createListContext<ListContextValue>(LIST_NAME);\n\nconst isOrderedDraggable = (props: ListProps): props is SharedDraggableListProps =>\n props.variant === 'ordered-draggable';\nconst _isOrderedDraggableHomogeneous = (props: ListProps): props is HomogeneousDraggableListProps =>\n isOrderedDraggable(props) && props.itemSizes === 'one';\nconst _isOrderedDraggableHeterogeneous = (props: ListProps): props is HeterogeneousDraggableListProps =>\n isOrderedDraggable(props) && props.itemSizes !== 'one';\n\nconst List = forwardRef<HTMLOListElement, ListProps>((props: ListScopedProps<ListProps>, forwardedRef) => {\n const {\n __listScope,\n variant = 'ordered',\n selectable = false,\n onDragEnd,\n onDragOver,\n listItemIds,\n itemSizes,\n children,\n ...rootProps\n } = props;\n const ListRoot = variant === 'ordered' || variant === 'ordered-draggable' ? Primitive.ol : Primitive.ul;\n const [draggingId, setDraggingId] = useState<string | undefined>(undefined);\n const onDragStart = useCallback((event: DragStartEvent) => setDraggingId(event.active.id as string), []);\n const composedOnDragEnd = useCallback(\n (event: DragEndEvent) => {\n setDraggingId(undefined);\n onDragEnd?.(event);\n },\n [onDragEnd],\n );\n return (\n <ListRoot {...(selectable && { role: 'listbox', 'aria-multiselectable': true })} {...rootProps} ref={forwardedRef}>\n <ListProvider\n {...{\n scope: __listScope,\n variant,\n selectable,\n draggingId,\n itemSizes,\n }}\n >\n {isOrderedDraggable(props) ? (\n <DndContext\n onDragEnd={composedOnDragEnd}\n onDragOver={onDragOver}\n onDragStart={onDragStart}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext items={listItemIds!} strategy={verticalListSortingStrategy}>\n {children}\n </SortableContext>\n </DndContext>\n ) : (\n <>{children}</>\n )}\n </ListProvider>\n </ListRoot>\n );\n});\n\nList.displayName = LIST_NAME;\n\nexport { List, createListScope, useListContext, LIST_NAME, arrayMove };\n\nexport type { ListProps, ListVariant, ListScopedProps, DragEndEvent, DragOverEvent };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DraggableAttributes } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport type { CheckboxProps } from '@radix-ui/react-checkbox';\nimport { CollapsibleContentProps, CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, {\n ComponentProps,\n ComponentPropsWithRef,\n Dispatch,\n forwardRef,\n ForwardRefExoticComponent,\n SetStateAction,\n} from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { LIST_NAME, ListScopedProps, useListContext } from './List';\n\nconst LIST_ITEM_NAME = 'ListItem';\n\ntype ListItemScopedProps<P> = P & { __listItemScope?: Scope };\n\ninterface ListItemData {\n id: string;\n selected?: CheckboxProps['checked'];\n open?: boolean;\n}\n\ntype ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & ComponentPropsWithRef<\n typeof Primitive.li\n > & {\n defaultOpen?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n } & {\n onSelectedChange?: CheckboxProps['onCheckedChange'];\n defaultSelected?: CheckboxProps['defaultChecked'];\n };\n\ntype ListItemElement = React.ElementRef<typeof Primitive.li>;\n\nconst [createListItemContext, createListItemScope] = createContextScope(LIST_ITEM_NAME, []);\n\ntype DraggableListItemContextValue = {\n draggableAttributes: DraggableAttributes;\n draggableListeners: ReturnType<typeof useSortable>['listeners'];\n};\n\ntype ListItemContextValue = {\n headingId: string;\n open: boolean;\n selected: CheckboxProps['checked'];\n setSelected: Dispatch<SetStateAction<CheckboxProps['checked']>>;\n} & Partial<DraggableListItemContextValue>;\n\nconst [ListItemProvider, useListItemContext] = createListItemContext<ListItemContextValue>(LIST_ITEM_NAME);\n\ntype ListItemHeadingProps = ListItemScopedProps<Omit<ComponentPropsWithRef<typeof Primitive.p>, 'id'>> & {\n asChild?: boolean;\n};\n\nconst ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(\n ({ children, asChild, __listItemScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Root = asChild ? Slot : Primitive.p;\n return (\n <Root {...props} id={headingId} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype ListItemDragHandleProps = ComponentPropsWithRef<typeof Primitive.div>;\n\nconst ListItemDragHandle = forwardRef<HTMLDivElement, ListItemScopedProps<ListItemDragHandleProps>>(\n ({ __listItemScope, children, ...props }, forwardedRef) => {\n const { draggableAttributes, draggableListeners } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n return (\n <div role='button' ref={forwardedRef} {...props} {...draggableAttributes} {...draggableListeners}>\n {children}\n </div>\n );\n },\n);\n\ntype ListItemOpenTriggerProps = ListItemScopedProps<CollapsibleTriggerProps>;\n\nconst ListItemOpenTrigger = Collapsible.Trigger;\n\ntype ListItemCollapsibleContentProps = ComponentProps<typeof Collapsible.Content>;\n\nconst ListItemCollapsibleContent: ForwardRefExoticComponent<CollapsibleContentProps> = Collapsible.Content;\n\nconst ListItemImpl = forwardRef<\n ListItemElement,\n ListItemProps & { id: string } & Partial<DraggableListItemContextValue>\n>(\n (\n props: ListItemScopedProps<\n ListScopedProps<ListItemProps & { id: string } & Partial<DraggableListItemContextValue>>\n >,\n forwardedRef,\n ) => {\n const {\n __listScope,\n __listItemScope,\n children,\n selected: propsSelected,\n defaultSelected,\n onSelectedChange,\n open: propsOpen,\n defaultOpen,\n onOpenChange,\n collapsible,\n id,\n draggableAttributes,\n draggableListeners,\n ...listItemProps\n } = props;\n const { selectable } = useListContext(LIST_NAME, __listScope);\n\n const [selected = false, setSelected] = useControllableState({\n prop: propsSelected,\n defaultProp: defaultSelected,\n onChange: onSelectedChange,\n });\n\n const [open = false, setOpen] = useControllableState({\n prop: propsOpen,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const headingId = useId('listItem__heading');\n\n const listItem = (\n <Primitive.li\n {...listItemProps}\n id={id}\n ref={forwardedRef}\n aria-labelledby={headingId}\n {...(selectable && { role: 'option', 'aria-selected': !!selected })}\n >\n {children}\n </Primitive.li>\n );\n\n return (\n <ListItemProvider\n scope={__listItemScope}\n headingId={headingId}\n open={open}\n selected={selected}\n setSelected={setSelected}\n {...{ draggableAttributes, draggableListeners }}\n >\n {collapsible ? (\n <Collapsible.Root asChild open={open} onOpenChange={setOpen}>\n {listItem}\n </Collapsible.Root>\n ) : (\n listItem\n )}\n </ListItemProvider>\n );\n },\n);\n\nconst DraggableListItem = forwardRef<ListItemElement, ListItemProps & { id: string }>(\n (props: ListItemScopedProps<ListScopedProps<ListItemProps & { id: string }>>, forwardedRef) => {\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({\n id: props.id,\n });\n const { itemSizes } = useListContext(LIST_NAME, props.__listScope);\n const ref = useComposedRefs(forwardedRef, setNodeRef) as ComponentPropsWithRef<typeof Primitive.li>['ref'];\n\n return (\n <ListItemImpl\n {...props}\n style={{\n ...props.style,\n transform: CSS[itemSizes === 'one' ? 'Transform' : 'Translate'].toString(transform),\n transition,\n }}\n ref={ref}\n {...{\n draggableAttributes: attributes,\n draggableListeners: listeners,\n }}\n />\n );\n },\n);\n\nconst ListItem = forwardRef<ListItemElement, ListItemProps>((props: ListScopedProps<ListItemProps>, forwardedRef) => {\n const { variant } = useListContext(LIST_NAME, props.__listScope);\n const listItemId = useId('listItem', props.id);\n\n if (variant === 'ordered-draggable') {\n return <DraggableListItem {...props} ref={forwardedRef} id={listItemId} />;\n } else {\n return <ListItemImpl {...props} ref={forwardedRef} id={listItemId} />;\n }\n});\n\nListItem.displayName = LIST_ITEM_NAME;\n\nexport {\n ListItem,\n ListItemHeading,\n ListItemCollapsibleContent,\n ListItemDragHandle,\n ListItemOpenTrigger,\n createListItemScope,\n useListItemContext,\n LIST_ITEM_NAME,\n};\n\nexport type {\n ListItemProps,\n ListItemHeadingProps,\n ListItemCollapsibleContentProps,\n ListItemDragHandleProps,\n ListItemOpenTriggerProps,\n ListItemScopedProps,\n};\n"],
5
- "mappings": "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",
6
- "names": ["LIST_NAME", "createListContext", "createListScope", "createContextScope", "ListProvider", "useListContext", "isOrderedDraggable", "props", "variant", "List", "forwardRef", "props", "forwardedRef", "__listScope", "variant", "selectable", "onDragEnd", "onDragOver", "listItemIds", "itemSizes", "children", "rootProps", "ListRoot", "Primitive", "ol", "ul", "draggingId", "setDraggingId", "useState", "undefined", "onDragStart", "useCallback", "event", "active", "id", "composedOnDragEnd", "React", "role", "ref", "ListProvider", "scope", "isOrderedDraggable", "DndContext", "modifiers", "restrictToVerticalAxis", "SortableContext", "items", "strategy", "verticalListSortingStrategy", "displayName", "LIST_NAME", "import_sortable", "import_react_context", "import_react_primitive", "import_react", "_extends", "LIST_ITEM_NAME", "createListItemContext", "createListItemScope", "createContextScope", "ListItemProvider", "useListItemContext", "ListItemHeading", "forwardRef", "children", "asChild", "__listItemScope", "props", "forwardedRef", "headingId", "Root", "Slot", "Primitive", "p", "React", "id", "ref", "ListItemDragHandle", "draggableAttributes", "draggableListeners", "div", "role", "ListItemOpenTrigger", "Trigger", "ListItemCollapsibleContent", "Content", "ListItemImpl", "__listScope", "selected", "propsSelected", "defaultSelected", "onSelectedChange", "open", "propsOpen", "defaultOpen", "onOpenChange", "collapsible", "listItemProps", "selectable", "useListContext", "LIST_NAME", "setSelected", "useControllableState", "prop", "defaultProp", "onChange", "setOpen", "useId", "listItem", "li", "aria-labelledby", "scope", "DraggableListItem", "attributes", "listeners", "setNodeRef", "transform", "transition", "useSortable", "itemSizes", "useComposedRefs", "style", "CSS", "toString", "ListItem", "variant", "listItemId", "displayName"]
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nexport * from './List';\nexport * from './ListItem';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { ComponentPropsWithRef, forwardRef } from 'react';\n\n// TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\nconst LIST_NAME = 'List';\n\ntype ListScopedProps<P> = P & { __listScope?: Scope };\n\ntype ListVariant = 'ordered' | 'unordered';\n\ntype ListItemSizes = 'one' | 'many';\n\ntype ListProps = ComponentPropsWithRef<typeof Primitive.ol> & {\n selectable?: boolean;\n variant?: ListVariant;\n itemSizes?: ListItemSizes;\n};\n\n// LIST\n\nconst [createListContext, createListScope] = createContextScope(LIST_NAME, []);\n\ntype ListContextValue = {\n selectable: Exclude<ListProps['selectable'], undefined>;\n variant: Exclude<ListProps['variant'], undefined>;\n itemSizes?: ListItemSizes;\n};\n\nconst [ListProvider, useListContext] = createListContext<ListContextValue>(LIST_NAME);\n\nconst List = forwardRef<HTMLOListElement, ListProps>((props: ListScopedProps<ListProps>, forwardedRef) => {\n const { __listScope, variant = 'ordered', selectable = false, itemSizes, children, ...rootProps } = props;\n const ListRoot = variant === 'ordered' ? Primitive.ol : Primitive.ul;\n return (\n <ListRoot {...(selectable && { role: 'listbox', 'aria-multiselectable': true })} {...rootProps} ref={forwardedRef}>\n <ListProvider\n {...{\n scope: __listScope,\n variant,\n selectable,\n itemSizes,\n }}\n >\n {children}\n </ListProvider>\n </ListRoot>\n );\n});\n\nList.displayName = LIST_NAME;\n\nexport { List, createListScope, useListContext, LIST_NAME };\n\nexport type { ListProps, ListVariant, ListScopedProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type { CheckboxProps } from '@radix-ui/react-checkbox';\nimport { CollapsibleContentProps, CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { createContextScope, Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, {\n ComponentProps,\n ComponentPropsWithRef,\n Dispatch,\n forwardRef,\n ForwardRefExoticComponent,\n SetStateAction,\n} from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { LIST_NAME, ListScopedProps, useListContext } from './List';\n\nconst LIST_ITEM_NAME = 'ListItem';\n\ntype ListItemScopedProps<P> = P & { __listItemScope?: Scope };\n\ninterface ListItemData {\n id: string;\n selected?: CheckboxProps['checked'];\n open?: boolean;\n}\n\ntype ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & ComponentPropsWithRef<\n typeof Primitive.li\n > & {\n defaultOpen?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n } & {\n onSelectedChange?: CheckboxProps['onCheckedChange'];\n defaultSelected?: CheckboxProps['defaultChecked'];\n };\n\ntype ListItemElement = React.ElementRef<typeof Primitive.li>;\n\nconst [createListItemContext, createListItemScope] = createContextScope(LIST_ITEM_NAME, []);\n\ntype ListItemContextValue = {\n headingId: string;\n open: boolean;\n selected: CheckboxProps['checked'];\n setSelected: Dispatch<SetStateAction<CheckboxProps['checked']>>;\n};\n\nconst [ListItemProvider, useListItemContext] = createListItemContext<ListItemContextValue>(LIST_ITEM_NAME);\n\ntype ListItemHeadingProps = ListItemScopedProps<Omit<ComponentPropsWithRef<typeof Primitive.p>, 'id'>> & {\n asChild?: boolean;\n};\n\nconst ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(\n ({ children, asChild, __listItemScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Root = asChild ? Slot : Primitive.p;\n return (\n <Root {...props} id={headingId} ref={forwardedRef}>\n {children}\n </Root>\n );\n },\n);\n\ntype ListItemOpenTriggerProps = ListItemScopedProps<CollapsibleTriggerProps>;\n\nconst ListItemOpenTrigger = Collapsible.Trigger;\n\ntype ListItemCollapsibleContentProps = ComponentProps<typeof Collapsible.Content>;\n\nconst ListItemCollapsibleContent: ForwardRefExoticComponent<CollapsibleContentProps> = Collapsible.Content;\n\nconst ListItem = forwardRef<ListItemElement, ListItemProps>(\n (props: ListItemScopedProps<ListScopedProps<ListItemProps>>, forwardedRef) => {\n const id = useId('listItem', props.id);\n\n const {\n __listScope,\n __listItemScope,\n children,\n selected: propsSelected,\n defaultSelected,\n onSelectedChange,\n open: propsOpen,\n defaultOpen,\n onOpenChange,\n collapsible,\n ...listItemProps\n } = props;\n const { selectable } = useListContext(LIST_NAME, __listScope);\n\n const [selected = false, setSelected] = useControllableState({\n prop: propsSelected,\n defaultProp: defaultSelected,\n onChange: onSelectedChange,\n });\n\n const [open = false, setOpen] = useControllableState({\n prop: propsOpen,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const headingId = useId('listItem__heading');\n\n const listItem = (\n <Primitive.li\n {...listItemProps}\n id={id}\n ref={forwardedRef}\n aria-labelledby={headingId}\n {...(selectable && { role: 'option', 'aria-selected': !!selected })}\n >\n {children}\n </Primitive.li>\n );\n\n return (\n <ListItemProvider\n scope={__listItemScope}\n headingId={headingId}\n open={open}\n selected={selected}\n setSelected={setSelected}\n >\n {collapsible ? (\n <Collapsible.Root asChild open={open} onOpenChange={setOpen}>\n {listItem}\n </Collapsible.Root>\n ) : (\n listItem\n )}\n </ListItemProvider>\n );\n },\n);\n\nListItem.displayName = LIST_ITEM_NAME;\n\nexport {\n ListItem,\n ListItemHeading,\n ListItemCollapsibleContent,\n ListItemOpenTrigger,\n createListItemScope,\n useListItemContext,\n LIST_ITEM_NAME,\n};\n\nexport type {\n ListItemProps,\n ListItemHeadingProps,\n ListItemCollapsibleContentProps,\n ListItemOpenTriggerProps,\n ListItemScopedProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["LIST_NAME", "createListContext", "createListScope", "createContextScope", "ListProvider", "useListContext", "List", "forwardRef", "props", "forwardedRef", "__listScope", "variant", "selectable", "itemSizes", "children", "rootProps", "ListRoot", "Primitive", "ol", "ul", "React", "role", "ref", "scope", "displayName", "import_react_context", "import_react_primitive", "import_react", "_extends", "LIST_ITEM_NAME", "createListItemContext", "createListItemScope", "createContextScope", "ListItemProvider", "useListItemContext", "ListItemHeading", "forwardRef", "children", "asChild", "__listItemScope", "props", "forwardedRef", "headingId", "Root", "Slot", "Primitive", "p", "React", "id", "ref", "ListItemOpenTrigger", "Trigger", "ListItemCollapsibleContent", "Content", "ListItem", "useId", "__listScope", "selected", "propsSelected", "defaultSelected", "onSelectedChange", "open", "propsOpen", "defaultOpen", "onOpenChange", "collapsible", "listItemProps", "selectable", "useListContext", "LIST_NAME", "setSelected", "useControllableState", "prop", "defaultProp", "onChange", "setOpen", "listItem", "li", "aria-labelledby", "role", "scope", "displayName"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytes":11866,"imports":[{"path":"@dnd-kit/core","kind":"import-statement","external":true},{"path":"@dnd-kit/modifiers","kind":"import-statement","external":true},{"path":"@dnd-kit/sortable","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}]},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":20114,"imports":[{"path":"@dnd-kit/sortable","kind":"import-statement","external":true},{"path":"@dnd-kit/utilities","kind":"import-statement","external":true},{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"}]},"packages/ui/primitives/react-list/src/index.ts":{"bytes":456,"imports":[{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"},{"path":"packages/ui/primitives/react-list/src/ListItem.tsx","kind":"import-statement","original":"./ListItem"}]}},"outputs":{"packages/ui/primitives/react-list/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17562},"packages/ui/primitives/react-list/dist/lib/node/index.cjs":{"imports":[{"path":"@dnd-kit/core","kind":"require-call","external":true},{"path":"@dnd-kit/modifiers","kind":"require-call","external":true},{"path":"@dnd-kit/sortable","kind":"require-call","external":true},{"path":"@radix-ui/react-context","kind":"require-call","external":true},{"path":"@radix-ui/react-primitive","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@dnd-kit/sortable","kind":"require-call","external":true},{"path":"@dnd-kit/utilities","kind":"require-call","external":true},{"path":"@radix-ui/react-collapsible","kind":"require-call","external":true},{"path":"@radix-ui/react-compose-refs","kind":"require-call","external":true},{"path":"@radix-ui/react-context","kind":"require-call","external":true},{"path":"@radix-ui/react-primitive","kind":"require-call","external":true},{"path":"@radix-ui/react-slot","kind":"require-call","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@dxos/react-hooks","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/ui/primitives/react-list/src/index.ts","inputs":{"packages/ui/primitives/react-list/src/index.ts":{"bytesInOutput":641},"packages/ui/primitives/react-list/src/List.tsx":{"bytesInOutput":2641},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytesInOutput":5181}},"bytes":10381}}}
1
+ {"inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytes":5769,"imports":[{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}]},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":12899,"imports":[{"path":"@radix-ui/react-collapsible","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"}]},"packages/ui/primitives/react-list/src/index.ts":{"bytes":456,"imports":[{"path":"packages/ui/primitives/react-list/src/List.tsx","kind":"import-statement","original":"./List"},{"path":"packages/ui/primitives/react-list/src/ListItem.tsx","kind":"import-statement","original":"./ListItem"}]}},"outputs":{"packages/ui/primitives/react-list/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10143},"packages/ui/primitives/react-list/dist/lib/node/index.cjs":{"imports":[{"path":"@radix-ui/react-context","kind":"require-call","external":true},{"path":"@radix-ui/react-primitive","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@radix-ui/react-collapsible","kind":"require-call","external":true},{"path":"@radix-ui/react-context","kind":"require-call","external":true},{"path":"@radix-ui/react-primitive","kind":"require-call","external":true},{"path":"@radix-ui/react-slot","kind":"require-call","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"@dxos/react-hooks","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/ui/primitives/react-list/src/index.ts","inputs":{"packages/ui/primitives/react-list/src/index.ts":{"bytesInOutput":547},"packages/ui/primitives/react-list/src/List.tsx":{"bytesInOutput":1458},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytesInOutput":3170}},"bytes":7058}}}
@@ -1,5 +1,3 @@
1
- import { DragEndEvent, DragOverEvent } from '@dnd-kit/core';
2
- import { arrayMove } from '@dnd-kit/sortable';
3
1
  import { Scope } from '@radix-ui/react-context';
4
2
  import { Primitive } from '@radix-ui/react-primitive';
5
3
  import React, { ComponentPropsWithRef } from 'react';
@@ -7,45 +5,21 @@ declare const LIST_NAME = "List";
7
5
  type ListScopedProps<P> = P & {
8
6
  __listScope?: Scope;
9
7
  };
10
- type ListVariant = 'ordered' | 'unordered' | 'ordered-draggable';
8
+ type ListVariant = 'ordered' | 'unordered';
11
9
  type ListItemSizes = 'one' | 'many';
12
- type SharedListProps = {
10
+ type ListProps = ComponentPropsWithRef<typeof Primitive.ol> & {
13
11
  selectable?: boolean;
14
12
  variant?: ListVariant;
15
- listItemIds?: string[];
16
- onDragEnd?: (event: DragEndEvent) => void;
17
- onDragOver?: (event: DragOverEvent) => void;
18
13
  itemSizes?: ListItemSizes;
19
14
  };
20
- type SharedDraggableListProps = SharedListProps & {
21
- listItemIds: Exclude<SharedListProps['listItemIds'], undefined>;
22
- variant: 'ordered-draggable';
23
- };
24
- type HeterogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {
25
- itemSizes?: 'many';
26
- };
27
- type HomogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {
28
- itemSizes: 'one';
29
- };
30
- type BaseListProps = Omit<ComponentPropsWithRef<typeof Primitive.ol>, 'onDragEnd' | 'onDragOver'>;
31
- type ListProps = (BaseListProps & SharedListProps) | (BaseListProps & HomogeneousDraggableListProps) | (BaseListProps & HeterogeneousDraggableListProps);
32
15
  declare const createListScope: import("@radix-ui/react-context").CreateScope;
33
- type ListContextValue = Pick<ListProps, 'selectable' | 'variant'> & {
34
- draggingId?: string;
16
+ type ListContextValue = {
17
+ selectable: Exclude<ListProps['selectable'], undefined>;
18
+ variant: Exclude<ListProps['variant'], undefined>;
35
19
  itemSizes?: ListItemSizes;
36
20
  };
37
21
  declare const useListContext: (consumerName: string, scope: Scope<ListContextValue | undefined>) => ListContextValue;
38
- declare const List: React.ForwardRefExoticComponent<(Pick<BaseListProps & SharedListProps, "slot" | "style" | "title" | "key" | "reversed" | "start" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "asChild" | keyof SharedListProps> | Pick<BaseListProps & SharedListProps & {
39
- listItemIds: Exclude<SharedListProps['listItemIds'], undefined>;
40
- variant: 'ordered-draggable';
41
- } & {
42
- itemSizes: 'one';
43
- }, "slot" | "style" | "title" | "key" | "reversed" | "start" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "asChild" | keyof SharedListProps> | Pick<BaseListProps & SharedListProps & {
44
- listItemIds: Exclude<SharedListProps['listItemIds'], undefined>;
45
- variant: 'ordered-draggable';
46
- } & {
47
- itemSizes?: "many" | undefined;
48
- }, "slot" | "style" | "title" | "key" | "reversed" | "start" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "asChild" | keyof SharedListProps>) & React.RefAttributes<HTMLOListElement>>;
49
- export { List, createListScope, useListContext, LIST_NAME, arrayMove };
50
- export type { ListProps, ListVariant, ListScopedProps, DragEndEvent, DragOverEvent };
22
+ declare const List: React.ForwardRefExoticComponent<Pick<ListProps, "key" | keyof React.OlHTMLAttributes<HTMLOListElement> | "asChild" | "selectable" | "variant" | "itemSizes"> & React.RefAttributes<HTMLOListElement>>;
23
+ export { List, createListScope, useListContext, LIST_NAME };
24
+ export type { ListProps, ListVariant, ListScopedProps };
51
25
  //# sourceMappingURL=List.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/List.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAc,YAAY,EAAkB,aAAa,EAAE,MAAM,eAAe,CAAC;AAExF,OAAO,EAAmB,SAAS,EAA+B,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAsB,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,qBAAqB,EAAqC,MAAM,OAAO,CAAC;AAIxF,QAAA,MAAM,SAAS,SAAS,CAAC;AAEzB,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEtD,KAAK,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAEjE,KAAK,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpC,KAAK,eAAe,GAAG;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAEF,KAAK,wBAAwB,GAAG,eAAe,GAAG;IAChD,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAChE,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,KAAK,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,EAAE,WAAW,CAAC,GAAG;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,6BAA6B,GAAG,OAAO,CAAC,wBAAwB,EAAE,WAAW,CAAC,GAAG;IACpF,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC,CAAC;AAElG,KAAK,SAAS,GACV,CAAC,aAAa,GAAG,eAAe,CAAC,GACjC,CAAC,aAAa,GAAG,6BAA6B,CAAC,GAC/C,CAAC,aAAa,GAAG,+BAA+B,CAAC,CAAC;AAItD,QAAA,MAA0B,eAAe,+CAAqC,CAAC;AAE/E,KAAK,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAqB,cAAc,wFAAkD,CAAC;AAStF,QAAA,MAAM,IAAI;iBArCK,QAAQ,eAAe,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;aACtD,mBAAmB;;eAQjB,KAAK;;iBATH,QAAQ,eAAe,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;aACtD,mBAAmB;;;ykJAsF5B,CAAC;AAIH,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEvE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/List.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,qBAAqB,EAAc,MAAM,OAAO,CAAC;AAIjE,QAAA,MAAM,SAAS,SAAS,CAAC;AAEzB,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEtD,KAAK,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAE3C,KAAK,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpC,KAAK,SAAS,GAAG,qBAAqB,CAAC,OAAO,SAAS,CAAC,EAAE,CAAC,GAAG;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAIF,QAAA,MAA0B,eAAe,+CAAqC,CAAC;AAE/E,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAqB,cAAc,wFAAkD,CAAC;AAEtF,QAAA,MAAM,IAAI,uMAiBR,CAAC;AAIH,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
@@ -1,5 +1,3 @@
1
- import { DraggableAttributes } from '@dnd-kit/core';
2
- import { useSortable } from '@dnd-kit/sortable';
3
1
  import type { CheckboxProps } from '@radix-ui/react-checkbox';
4
2
  import { CollapsibleContentProps, CollapsibleTriggerProps } from '@radix-ui/react-collapsible';
5
3
  import * as Collapsible from '@radix-ui/react-collapsible';
@@ -25,32 +23,22 @@ type ListItemProps = Omit<ListItemData, 'id'> & {
25
23
  defaultSelected?: CheckboxProps['defaultChecked'];
26
24
  };
27
25
  declare const createListItemScope: import("@radix-ui/react-context").CreateScope;
28
- type DraggableListItemContextValue = {
29
- draggableAttributes: DraggableAttributes;
30
- draggableListeners: ReturnType<typeof useSortable>['listeners'];
31
- };
32
26
  type ListItemContextValue = {
33
27
  headingId: string;
34
28
  open: boolean;
35
29
  selected: CheckboxProps['checked'];
36
30
  setSelected: Dispatch<SetStateAction<CheckboxProps['checked']>>;
37
- } & Partial<DraggableListItemContextValue>;
31
+ };
38
32
  declare const useListItemContext: (consumerName: string, scope: Scope<ListItemContextValue | undefined>) => ListItemContextValue;
39
33
  type ListItemHeadingProps = ListItemScopedProps<Omit<ComponentPropsWithRef<typeof Primitive.p>, 'id'>> & {
40
34
  asChild?: boolean;
41
35
  };
42
36
  declare const ListItemHeading: React.ForwardRefExoticComponent<Pick<ListItemHeadingProps, "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "asChild" | "__listItemScope"> & React.RefAttributes<HTMLParagraphElement>>;
43
- type ListItemDragHandleProps = ComponentPropsWithRef<typeof Primitive.div>;
44
- declare const ListItemDragHandle: React.ForwardRefExoticComponent<Pick<ListItemScopedProps<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
45
- ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
46
- } & {
47
- asChild?: boolean | undefined;
48
- }>, "key" | "asChild" | "__listItemScope" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>>;
49
37
  type ListItemOpenTriggerProps = ListItemScopedProps<CollapsibleTriggerProps>;
50
38
  declare const ListItemOpenTrigger: React.ForwardRefExoticComponent<CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>>;
51
39
  type ListItemCollapsibleContentProps = ComponentProps<typeof Collapsible.Content>;
52
40
  declare const ListItemCollapsibleContent: ForwardRefExoticComponent<CollapsibleContentProps>;
53
41
  declare const ListItem: React.ForwardRefExoticComponent<Pick<ListItemProps, "key" | "asChild" | "selected" | "open" | keyof React.LiHTMLAttributes<HTMLLIElement> | "collapsible" | "defaultOpen" | "onOpenChange" | "onSelectedChange" | "defaultSelected"> & React.RefAttributes<HTMLLIElement>>;
54
- export { ListItem, ListItemHeading, ListItemCollapsibleContent, ListItemDragHandle, ListItemOpenTrigger, createListItemScope, useListItemContext, LIST_ITEM_NAME, };
55
- export type { ListItemProps, ListItemHeadingProps, ListItemCollapsibleContentProps, ListItemDragHandleProps, ListItemOpenTriggerProps, ListItemScopedProps, };
42
+ export { ListItem, ListItemHeading, ListItemCollapsibleContent, ListItemOpenTrigger, createListItemScope, useListItemContext, LIST_ITEM_NAME, };
43
+ export type { ListItemProps, ListItemHeadingProps, ListItemCollapsibleContentProps, ListItemOpenTriggerProps, ListItemScopedProps, };
56
44
  //# sourceMappingURL=ListItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/ListItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/ListItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAsB,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,OAAO,KAAK,EAAE,EACZ,cAAc,EACd,qBAAqB,EACrB,QAAQ,EAER,yBAAyB,EACzB,cAAc,EACf,MAAM,OAAO,CAAC;AAMf,QAAA,MAAM,cAAc,aAAa,CAAC;AAElC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,eAAe,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9D,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,qBAAqB,CAC7F,OAAO,SAAS,CAAC,EAAE,CACpB,GAAG;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C,GAAG;IACF,gBAAgB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACpD,eAAe,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACnD,CAAC;AAIJ,QAAA,MAA8B,mBAAmB,+CAA0C,CAAC;AAE5F,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,QAAA,MAAyB,kBAAkB,gGAA+D,CAAC;AAE3G,KAAK,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG;IACvG,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,eAAe,wnJAUpB,CAAC;AAEF,KAAK,wBAAwB,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;AAE7E,QAAA,MAAM,mBAAmB,mGAAsB,CAAC;AAEhD,KAAK,+BAA+B,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAElF,QAAA,MAAM,0BAA0B,EAAE,yBAAyB,CAAC,uBAAuB,CAAuB,CAAC;AAE3G,QAAA,MAAM,QAAQ,4QA+Db,CAAC;AAIF,OAAO,EACL,QAAQ,EACR,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,CAAC;AAEF,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,+BAA+B,EAC/B,wBAAwB,EACxB,mBAAmB,GACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-list",
3
- "version": "0.1.51-main.a24503e",
3
+ "version": "0.1.51-main.acb2ded",
4
4
  "description": "List primitive components for React.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -16,18 +16,13 @@
16
16
  "src"
17
17
  ],
18
18
  "dependencies": {
19
- "@dnd-kit/core": "^6.0.5",
20
- "@dnd-kit/modifiers": "^6.0.0",
21
- "@dnd-kit/sortable": "^7.0.1",
22
- "@dnd-kit/utilities": "^3.2.0",
23
19
  "@radix-ui/react-collapsible": "^1.0.2",
24
- "@radix-ui/react-compose-refs": "^1.0.0",
25
20
  "@radix-ui/react-context": "^1.0.0",
26
21
  "@radix-ui/react-primitive": "^1.0.2",
27
22
  "@radix-ui/react-slot": "^1.0.1",
28
23
  "@radix-ui/react-use-controllable-state": "^1.0.0",
29
24
  "lodash.omit": "^4.5.0",
30
- "@dxos/react-hooks": "0.1.51-main.a24503e"
25
+ "@dxos/react-hooks": "0.1.51-main.acb2ded"
31
26
  },
32
27
  "devDependencies": {
33
28
  "@radix-ui/react-checkbox": "^1.0.3",
package/src/List.tsx CHANGED
@@ -2,12 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { DndContext, DragEndEvent, DragStartEvent, DragOverEvent } from '@dnd-kit/core';
6
- import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
7
- import { SortableContext, arrayMove, verticalListSortingStrategy } from '@dnd-kit/sortable';
8
5
  import { createContextScope, Scope } from '@radix-ui/react-context';
9
6
  import { Primitive } from '@radix-ui/react-primitive';
10
- import React, { ComponentPropsWithRef, forwardRef, useCallback, useState } from 'react';
7
+ import React, { ComponentPropsWithRef, forwardRef } from 'react';
11
8
 
12
9
  // TODO(thure): A lot of the accessible affordances for this kind of thing need to be implemented per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role
13
10
 
@@ -15,79 +12,31 @@ const LIST_NAME = 'List';
15
12
 
16
13
  type ListScopedProps<P> = P & { __listScope?: Scope };
17
14
 
18
- type ListVariant = 'ordered' | 'unordered' | 'ordered-draggable';
15
+ type ListVariant = 'ordered' | 'unordered';
19
16
 
20
17
  type ListItemSizes = 'one' | 'many';
21
18
 
22
- type SharedListProps = {
19
+ type ListProps = ComponentPropsWithRef<typeof Primitive.ol> & {
23
20
  selectable?: boolean;
24
21
  variant?: ListVariant;
25
- listItemIds?: string[];
26
- onDragEnd?: (event: DragEndEvent) => void;
27
- onDragOver?: (event: DragOverEvent) => void;
28
22
  itemSizes?: ListItemSizes;
29
23
  };
30
24
 
31
- type SharedDraggableListProps = SharedListProps & {
32
- listItemIds: Exclude<SharedListProps['listItemIds'], undefined>;
33
- variant: 'ordered-draggable';
34
- };
35
-
36
- type HeterogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {
37
- itemSizes?: 'many';
38
- };
39
-
40
- type HomogeneousDraggableListProps = Exclude<SharedDraggableListProps, 'itemSizes'> & {
41
- itemSizes: 'one';
42
- };
43
-
44
- type BaseListProps = Omit<ComponentPropsWithRef<typeof Primitive.ol>, 'onDragEnd' | 'onDragOver'>;
45
-
46
- type ListProps =
47
- | (BaseListProps & SharedListProps)
48
- | (BaseListProps & HomogeneousDraggableListProps)
49
- | (BaseListProps & HeterogeneousDraggableListProps);
50
-
51
25
  // LIST
52
26
 
53
27
  const [createListContext, createListScope] = createContextScope(LIST_NAME, []);
54
28
 
55
- type ListContextValue = Pick<ListProps, 'selectable' | 'variant'> & {
56
- draggingId?: string;
29
+ type ListContextValue = {
30
+ selectable: Exclude<ListProps['selectable'], undefined>;
31
+ variant: Exclude<ListProps['variant'], undefined>;
57
32
  itemSizes?: ListItemSizes;
58
33
  };
59
34
 
60
35
  const [ListProvider, useListContext] = createListContext<ListContextValue>(LIST_NAME);
61
36
 
62
- const isOrderedDraggable = (props: ListProps): props is SharedDraggableListProps =>
63
- props.variant === 'ordered-draggable';
64
- const _isOrderedDraggableHomogeneous = (props: ListProps): props is HomogeneousDraggableListProps =>
65
- isOrderedDraggable(props) && props.itemSizes === 'one';
66
- const _isOrderedDraggableHeterogeneous = (props: ListProps): props is HeterogeneousDraggableListProps =>
67
- isOrderedDraggable(props) && props.itemSizes !== 'one';
68
-
69
37
  const List = forwardRef<HTMLOListElement, ListProps>((props: ListScopedProps<ListProps>, forwardedRef) => {
70
- const {
71
- __listScope,
72
- variant = 'ordered',
73
- selectable = false,
74
- onDragEnd,
75
- onDragOver,
76
- listItemIds,
77
- itemSizes,
78
- children,
79
- ...rootProps
80
- } = props;
81
- const ListRoot = variant === 'ordered' || variant === 'ordered-draggable' ? Primitive.ol : Primitive.ul;
82
- const [draggingId, setDraggingId] = useState<string | undefined>(undefined);
83
- const onDragStart = useCallback((event: DragStartEvent) => setDraggingId(event.active.id as string), []);
84
- const composedOnDragEnd = useCallback(
85
- (event: DragEndEvent) => {
86
- setDraggingId(undefined);
87
- onDragEnd?.(event);
88
- },
89
- [onDragEnd],
90
- );
38
+ const { __listScope, variant = 'ordered', selectable = false, itemSizes, children, ...rootProps } = props;
39
+ const ListRoot = variant === 'ordered' ? Primitive.ol : Primitive.ul;
91
40
  return (
92
41
  <ListRoot {...(selectable && { role: 'listbox', 'aria-multiselectable': true })} {...rootProps} ref={forwardedRef}>
93
42
  <ListProvider
@@ -95,24 +44,10 @@ const List = forwardRef<HTMLOListElement, ListProps>((props: ListScopedProps<Lis
95
44
  scope: __listScope,
96
45
  variant,
97
46
  selectable,
98
- draggingId,
99
47
  itemSizes,
100
48
  }}
101
49
  >
102
- {isOrderedDraggable(props) ? (
103
- <DndContext
104
- onDragEnd={composedOnDragEnd}
105
- onDragOver={onDragOver}
106
- onDragStart={onDragStart}
107
- modifiers={[restrictToVerticalAxis]}
108
- >
109
- <SortableContext items={listItemIds!} strategy={verticalListSortingStrategy}>
110
- {children}
111
- </SortableContext>
112
- </DndContext>
113
- ) : (
114
- <>{children}</>
115
- )}
50
+ {children}
116
51
  </ListProvider>
117
52
  </ListRoot>
118
53
  );
@@ -120,6 +55,6 @@ const List = forwardRef<HTMLOListElement, ListProps>((props: ListScopedProps<Lis
120
55
 
121
56
  List.displayName = LIST_NAME;
122
57
 
123
- export { List, createListScope, useListContext, LIST_NAME, arrayMove };
58
+ export { List, createListScope, useListContext, LIST_NAME };
124
59
 
125
- export type { ListProps, ListVariant, ListScopedProps, DragEndEvent, DragOverEvent };
60
+ export type { ListProps, ListVariant, ListScopedProps };
package/src/ListItem.tsx CHANGED
@@ -2,13 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { DraggableAttributes } from '@dnd-kit/core';
6
- import { useSortable } from '@dnd-kit/sortable';
7
- import { CSS } from '@dnd-kit/utilities';
8
5
  import type { CheckboxProps } from '@radix-ui/react-checkbox';
9
6
  import { CollapsibleContentProps, CollapsibleTriggerProps } from '@radix-ui/react-collapsible';
10
7
  import * as Collapsible from '@radix-ui/react-collapsible';
11
- import { useComposedRefs } from '@radix-ui/react-compose-refs';
12
8
  import { createContextScope, Scope } from '@radix-ui/react-context';
13
9
  import { Primitive } from '@radix-ui/react-primitive';
14
10
  import { Slot } from '@radix-ui/react-slot';
@@ -50,17 +46,12 @@ type ListItemElement = React.ElementRef<typeof Primitive.li>;
50
46
 
51
47
  const [createListItemContext, createListItemScope] = createContextScope(LIST_ITEM_NAME, []);
52
48
 
53
- type DraggableListItemContextValue = {
54
- draggableAttributes: DraggableAttributes;
55
- draggableListeners: ReturnType<typeof useSortable>['listeners'];
56
- };
57
-
58
49
  type ListItemContextValue = {
59
50
  headingId: string;
60
51
  open: boolean;
61
52
  selected: CheckboxProps['checked'];
62
53
  setSelected: Dispatch<SetStateAction<CheckboxProps['checked']>>;
63
- } & Partial<DraggableListItemContextValue>;
54
+ };
64
55
 
65
56
  const [ListItemProvider, useListItemContext] = createListItemContext<ListItemContextValue>(LIST_ITEM_NAME);
66
57
 
@@ -80,19 +71,6 @@ const ListItemHeading = forwardRef<HTMLParagraphElement, ListItemHeadingProps>(
80
71
  },
81
72
  );
82
73
 
83
- type ListItemDragHandleProps = ComponentPropsWithRef<typeof Primitive.div>;
84
-
85
- const ListItemDragHandle = forwardRef<HTMLDivElement, ListItemScopedProps<ListItemDragHandleProps>>(
86
- ({ __listItemScope, children, ...props }, forwardedRef) => {
87
- const { draggableAttributes, draggableListeners } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
88
- return (
89
- <div role='button' ref={forwardedRef} {...props} {...draggableAttributes} {...draggableListeners}>
90
- {children}
91
- </div>
92
- );
93
- },
94
- );
95
-
96
74
  type ListItemOpenTriggerProps = ListItemScopedProps<CollapsibleTriggerProps>;
97
75
 
98
76
  const ListItemOpenTrigger = Collapsible.Trigger;
@@ -101,16 +79,10 @@ type ListItemCollapsibleContentProps = ComponentProps<typeof Collapsible.Content
101
79
 
102
80
  const ListItemCollapsibleContent: ForwardRefExoticComponent<CollapsibleContentProps> = Collapsible.Content;
103
81
 
104
- const ListItemImpl = forwardRef<
105
- ListItemElement,
106
- ListItemProps & { id: string } & Partial<DraggableListItemContextValue>
107
- >(
108
- (
109
- props: ListItemScopedProps<
110
- ListScopedProps<ListItemProps & { id: string } & Partial<DraggableListItemContextValue>>
111
- >,
112
- forwardedRef,
113
- ) => {
82
+ const ListItem = forwardRef<ListItemElement, ListItemProps>(
83
+ (props: ListItemScopedProps<ListScopedProps<ListItemProps>>, forwardedRef) => {
84
+ const id = useId('listItem', props.id);
85
+
114
86
  const {
115
87
  __listScope,
116
88
  __listItemScope,
@@ -122,9 +94,6 @@ const ListItemImpl = forwardRef<
122
94
  defaultOpen,
123
95
  onOpenChange,
124
96
  collapsible,
125
- id,
126
- draggableAttributes,
127
- draggableListeners,
128
97
  ...listItemProps
129
98
  } = props;
130
99
  const { selectable } = useListContext(LIST_NAME, __listScope);
@@ -162,7 +131,6 @@ const ListItemImpl = forwardRef<
162
131
  open={open}
163
132
  selected={selected}
164
133
  setSelected={setSelected}
165
- {...{ draggableAttributes, draggableListeners }}
166
134
  >
167
135
  {collapsible ? (
168
136
  <Collapsible.Root asChild open={open} onOpenChange={setOpen}>
@@ -176,50 +144,12 @@ const ListItemImpl = forwardRef<
176
144
  },
177
145
  );
178
146
 
179
- const DraggableListItem = forwardRef<ListItemElement, ListItemProps & { id: string }>(
180
- (props: ListItemScopedProps<ListScopedProps<ListItemProps & { id: string }>>, forwardedRef) => {
181
- const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
182
- id: props.id,
183
- });
184
- const { itemSizes } = useListContext(LIST_NAME, props.__listScope);
185
- const ref = useComposedRefs(forwardedRef, setNodeRef) as ComponentPropsWithRef<typeof Primitive.li>['ref'];
186
-
187
- return (
188
- <ListItemImpl
189
- {...props}
190
- style={{
191
- ...props.style,
192
- transform: CSS[itemSizes === 'one' ? 'Transform' : 'Translate'].toString(transform),
193
- transition,
194
- }}
195
- ref={ref}
196
- {...{
197
- draggableAttributes: attributes,
198
- draggableListeners: listeners,
199
- }}
200
- />
201
- );
202
- },
203
- );
204
-
205
- const ListItem = forwardRef<ListItemElement, ListItemProps>((props: ListScopedProps<ListItemProps>, forwardedRef) => {
206
- const { variant } = useListContext(LIST_NAME, props.__listScope);
207
- const listItemId = useId('listItem', props.id);
208
-
209
- if (variant === 'ordered-draggable') {
210
- return <DraggableListItem {...props} ref={forwardedRef} id={listItemId} />;
211
- } else {
212
- return <ListItemImpl {...props} ref={forwardedRef} id={listItemId} />;
213
- }
214
- });
215
-
216
147
  ListItem.displayName = LIST_ITEM_NAME;
217
148
 
218
149
  export {
219
150
  ListItem,
220
151
  ListItemHeading,
221
152
  ListItemCollapsibleContent,
222
- ListItemDragHandle,
223
153
  ListItemOpenTrigger,
224
154
  createListItemScope,
225
155
  useListItemContext,
@@ -230,7 +160,6 @@ export type {
230
160
  ListItemProps,
231
161
  ListItemHeadingProps,
232
162
  ListItemCollapsibleContentProps,
233
- ListItemDragHandleProps,
234
163
  ListItemOpenTriggerProps,
235
164
  ListItemScopedProps,
236
165
  };