@dxos/react-list 0.6.7 → 0.6.8-main.3be982f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/List.d.ts +1 -1
- package/dist/types/src/List.d.ts.map +1 -1
- package/dist/types/src/ListItem.d.ts +5 -6
- package/dist/types/src/ListItem.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/ListItem.tsx +9 -8
|
@@ -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 { createContextScope, type Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { type 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\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 { type CollapsibleContentProps, type CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { createContextScope, type 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 type ComponentProps,\n type
|
|
5
|
-
"mappings": ";AAIA,SAASA,0BAAsC;AAC/C,SAASC,iBAAiB;AAC1B,OAAOC,SAAqCC,kBAAkB;AAI9D,IAAMC,YAAY;AAclB,IAAM,CAACC,mBAAmBC,eAAAA,IAAmBC,mBAAmBH,WAAW,CAAA,CAAE;AAQ7E,IAAM,CAACI,cAAcC,cAAAA,IAAkBJ,kBAAoCD,SAAAA;AAE3E,IAAMM,OAAOC,2BAAwC,CAACC,OAAmCC,iBAAAA;AACvF,QAAM,EAAEC,aAAaC,UAAU,WAAWC,aAAa,OAAOC,WAAWC,UAAU,GAAGC,UAAAA,IAAcP;AACpG,QAAMQ,WAAWL,YAAY,YAAYM,UAAUC,KAAKD,UAAUE;AAClE,SACE,sBAAA,cAACH,UAAAA;IAAU,GAAIJ,cAAc;MAAEQ,MAAM;MAAW,wBAAwB;IAAK;IAAK,GAAGL;IAAWM,KAAKZ;KACnG,sBAAA,cAACL,cACK;IACFkB,OAAOZ;IACPC;IACAC;IACAC;EACF,GAECC,QAAAA,CAAAA;AAIT,CAAA;AAEAR,KAAKiB,cAAcvB;;;AC/CnB,YAAYwB,iBAAiB;AAC7B,SAASC,sBAAAA,2BAAsC;AAC/C,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,4BAA4B;AACrC,OAAOC,UAKLC,cAAAA,
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContextScope, type Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { type 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\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 { type CollapsibleContentProps, type CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { createContextScope, type 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 type ComponentProps,\n type ComponentPropsWithoutRef,\n type Dispatch,\n type ElementRef,\n forwardRef,\n type ForwardRefExoticComponent,\n type RefAttributes,\n type SetStateAction,\n} from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { LIST_NAME, type ListScopedProps, useListContext } from './List';\n\nconst LIST_ITEM_NAME = 'ListItem';\n\ntype ListItemScopedProps<P> = P & { __listItemScope?: Scope };\n\ninterface ListItemData {\n id: string;\n labelId?: string;\n selected?: CheckboxProps['checked'];\n open?: boolean;\n}\n\ntype ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & RefAttributes<HTMLLIElement> &\n ComponentPropsWithoutRef<'li'> & {\n defaultOpen?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n } & {\n onSelectedChange?: CheckboxProps['onCheckedChange'];\n defaultSelected?: CheckboxProps['defaultChecked'];\n };\n\ntype ListItemElement = ElementRef<'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<ComponentPropsWithoutRef<'p'>, 'id'>> &\n RefAttributes<HTMLParagraphElement> & {\n asChild?: boolean;\n };\n\nconst ListItemHeading = forwardRef<HTMLDivElement, ListItemHeadingProps>(\n ({ children, asChild, __listItemScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Root = asChild ? Slot : Primitive.div;\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 labelId,\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', labelId);\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 {...(open && { 'aria-expanded': true })}\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
6
|
"names": ["createContextScope", "Primitive", "React", "forwardRef", "LIST_NAME", "createListContext", "createListScope", "createContextScope", "ListProvider", "useListContext", "List", "forwardRef", "props", "forwardedRef", "__listScope", "variant", "selectable", "itemSizes", "children", "rootProps", "ListRoot", "Primitive", "ol", "ul", "role", "ref", "scope", "displayName", "Collapsible", "createContextScope", "Primitive", "Slot", "useControllableState", "React", "forwardRef", "useId", "LIST_ITEM_NAME", "createListItemContext", "createListItemScope", "createContextScope", "ListItemProvider", "useListItemContext", "ListItemHeading", "forwardRef", "children", "asChild", "__listItemScope", "props", "forwardedRef", "headingId", "Root", "Slot", "Primitive", "div", "React", "id", "ref", "ListItemOpenTrigger", "Trigger", "ListItemCollapsibleContent", "Content", "ListItem", "useId", "__listScope", "selected", "propsSelected", "defaultSelected", "onSelectedChange", "open", "propsOpen", "defaultOpen", "onOpenChange", "collapsible", "labelId", "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":5456,"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}],"format":"esm"},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":
|
|
1
|
+
{"inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytes":5456,"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}],"format":"esm"},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":13123,"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"}],"format":"esm"},"packages/ui/primitives/react-list/src/index.ts":{"bytes":585,"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"}],"format":"esm"}},"outputs":{"packages/ui/primitives/react-list/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10270},"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":935},"packages/ui/primitives/react-list/src/index.ts":{"bytesInOutput":0},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytesInOutput":2530}},"bytes":3821}}}
|
|
@@ -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 { createContextScope, type Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { type 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\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 { type CollapsibleContentProps, type CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { createContextScope, type 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 type ComponentProps,\n type
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA+C;AAC/C,6BAA0B;AAC1B,mBAA8D;ACA9D,kBAA6B;AAC7B,IAAAA,wBAA+C;AAC/C,IAAAC,0BAA0B;AAC1B,wBAAqB;AACrB,0CAAqC;AACrC,IAAAC,
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContextScope, type Scope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport React, { type 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\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 { type CollapsibleContentProps, type CollapsibleTriggerProps } from '@radix-ui/react-collapsible';\nimport * as Collapsible from '@radix-ui/react-collapsible';\nimport { createContextScope, type 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 type ComponentProps,\n type ComponentPropsWithoutRef,\n type Dispatch,\n type ElementRef,\n forwardRef,\n type ForwardRefExoticComponent,\n type RefAttributes,\n type SetStateAction,\n} from 'react';\n\nimport { useId } from '@dxos/react-hooks';\n\nimport { LIST_NAME, type ListScopedProps, useListContext } from './List';\n\nconst LIST_ITEM_NAME = 'ListItem';\n\ntype ListItemScopedProps<P> = P & { __listItemScope?: Scope };\n\ninterface ListItemData {\n id: string;\n labelId?: string;\n selected?: CheckboxProps['checked'];\n open?: boolean;\n}\n\ntype ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & RefAttributes<HTMLLIElement> &\n ComponentPropsWithoutRef<'li'> & {\n defaultOpen?: boolean;\n onOpenChange?: (nextOpen: boolean) => void;\n } & {\n onSelectedChange?: CheckboxProps['onCheckedChange'];\n defaultSelected?: CheckboxProps['defaultChecked'];\n };\n\ntype ListItemElement = ElementRef<'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<ComponentPropsWithoutRef<'p'>, 'id'>> &\n RefAttributes<HTMLParagraphElement> & {\n asChild?: boolean;\n };\n\nconst ListItemHeading = forwardRef<HTMLDivElement, ListItemHeadingProps>(\n ({ children, asChild, __listItemScope, ...props }, forwardedRef) => {\n const { headingId } = useListItemContext(LIST_ITEM_NAME, __listItemScope);\n const Root = asChild ? Slot : Primitive.div;\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 labelId,\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', labelId);\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 {...(open && { 'aria-expanded': true })}\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
6
|
"names": ["import_react_context", "import_react_primitive", "import_react", "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", "LIST_ITEM_NAME", "createListItemContext", "createListItemScope", "ListItemProvider", "useListItemContext", "ListItemHeading", "asChild", "__listItemScope", "headingId", "Root", "Slot", "div", "id", "ListItemOpenTrigger", "Trigger", "ListItemCollapsibleContent", "Content", "ListItem", "useId", "selected", "propsSelected", "defaultSelected", "onSelectedChange", "open", "propsOpen", "defaultOpen", "onOpenChange", "collapsible", "labelId", "listItemProps", "setSelected", "useControllableState", "prop", "defaultProp", "onChange", "setOpen", "listItem", "li", "aria-labelledby"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytes":5456,"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}],"format":"esm"},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":
|
|
1
|
+
{"inputs":{"packages/ui/primitives/react-list/src/List.tsx":{"bytes":5456,"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}],"format":"esm"},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytes":13123,"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"}],"format":"esm"},"packages/ui/primitives/react-list/src/index.ts":{"bytes":585,"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"}],"format":"esm"}},"outputs":{"packages/ui/primitives/react-list/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10270},"packages/ui/primitives/react-list/dist/lib/node/index.cjs":{"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":935},"packages/ui/primitives/react-list/src/index.ts":{"bytesInOutput":0},"packages/ui/primitives/react-list/src/ListItem.tsx":{"bytesInOutput":2530}},"bytes":3821}}}
|
package/dist/types/src/List.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ type ListContextValue = {
|
|
|
19
19
|
itemSizes?: ListItemSizes;
|
|
20
20
|
};
|
|
21
21
|
declare const useListContext: (consumerName: string, scope: Scope<ListContextValue | undefined>) => ListContextValue;
|
|
22
|
-
declare const List: React.ForwardRefExoticComponent<
|
|
22
|
+
declare const List: React.ForwardRefExoticComponent<Omit<ListProps, "ref"> & React.RefAttributes<HTMLOListElement>>;
|
|
23
23
|
export { List, createListScope, useListContext, LIST_NAME };
|
|
24
24
|
export type { ListProps, ListVariant, ListScopedProps };
|
|
25
25
|
//# sourceMappingURL=List.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/List.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,KAAK,qBAAqB,EAAc,MAAM,OAAO,CAAC;AAItE,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;AAEF,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,
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/List.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,KAAK,qBAAqB,EAAc,MAAM,OAAO,CAAC;AAItE,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;AAEF,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,iGAiBR,CAAC;AAIH,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -2,8 +2,7 @@ import type { CheckboxProps } from '@radix-ui/react-checkbox';
|
|
|
2
2
|
import { type CollapsibleContentProps, type CollapsibleTriggerProps } from '@radix-ui/react-collapsible';
|
|
3
3
|
import * as Collapsible from '@radix-ui/react-collapsible';
|
|
4
4
|
import { type Scope } from '@radix-ui/react-context';
|
|
5
|
-
import {
|
|
6
|
-
import React, { type ComponentProps, type ComponentPropsWithRef, type Dispatch, type ForwardRefExoticComponent, type SetStateAction } from 'react';
|
|
5
|
+
import React, { type ComponentProps, type ComponentPropsWithoutRef, type Dispatch, type ForwardRefExoticComponent, type RefAttributes, type SetStateAction } from 'react';
|
|
7
6
|
declare const LIST_ITEM_NAME = "ListItem";
|
|
8
7
|
type ListItemScopedProps<P> = P & {
|
|
9
8
|
__listItemScope?: Scope;
|
|
@@ -16,7 +15,7 @@ interface ListItemData {
|
|
|
16
15
|
}
|
|
17
16
|
type ListItemProps = Omit<ListItemData, 'id'> & {
|
|
18
17
|
collapsible?: boolean;
|
|
19
|
-
} &
|
|
18
|
+
} & RefAttributes<HTMLLIElement> & ComponentPropsWithoutRef<'li'> & {
|
|
20
19
|
defaultOpen?: boolean;
|
|
21
20
|
onOpenChange?: (nextOpen: boolean) => void;
|
|
22
21
|
} & {
|
|
@@ -31,15 +30,15 @@ type ListItemContextValue = {
|
|
|
31
30
|
setSelected: Dispatch<SetStateAction<CheckboxProps['checked']>>;
|
|
32
31
|
};
|
|
33
32
|
declare const useListItemContext: (consumerName: string, scope: Scope<ListItemContextValue | undefined>) => ListItemContextValue;
|
|
34
|
-
type ListItemHeadingProps = ListItemScopedProps<Omit<
|
|
33
|
+
type ListItemHeadingProps = ListItemScopedProps<Omit<ComponentPropsWithoutRef<'p'>, 'id'>> & RefAttributes<HTMLParagraphElement> & {
|
|
35
34
|
asChild?: boolean;
|
|
36
35
|
};
|
|
37
|
-
declare const ListItemHeading: React.ForwardRefExoticComponent<
|
|
36
|
+
declare const ListItemHeading: React.ForwardRefExoticComponent<Omit<ListItemHeadingProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
38
37
|
type ListItemOpenTriggerProps = ListItemScopedProps<CollapsibleTriggerProps>;
|
|
39
38
|
declare const ListItemOpenTrigger: React.ForwardRefExoticComponent<CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
40
39
|
type ListItemCollapsibleContentProps = ComponentProps<typeof Collapsible.Content>;
|
|
41
40
|
declare const ListItemCollapsibleContent: ForwardRefExoticComponent<CollapsibleContentProps>;
|
|
42
|
-
declare const ListItem: React.ForwardRefExoticComponent<
|
|
41
|
+
declare const ListItem: React.ForwardRefExoticComponent<Omit<ListItemProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
|
|
43
42
|
export { ListItem, ListItemHeading, ListItemCollapsibleContent, ListItemOpenTrigger, createListItemScope, useListItemContext, LIST_ITEM_NAME, };
|
|
44
43
|
export type { ListItemProps, ListItemHeadingProps, ListItemCollapsibleContentProps, ListItemOpenTriggerProps, ListItemScopedProps, };
|
|
45
44
|
//# sourceMappingURL=ListItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,KAAK,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;
|
|
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,KAAK,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,KAAK,EAAE,EACZ,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EAGb,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,aAAa,CAAC,aAAa,CAAC,GACtG,wBAAwB,CAAC,IAAI,CAAC,GAAG;IAC/B,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,wBAAwB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GACxF,aAAa,CAAC,oBAAoB,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,QAAA,MAAM,eAAe,0GAUpB,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,kGAiEb,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.6.
|
|
3
|
+
"version": "0.6.8-main.3be982f",
|
|
4
4
|
"description": "List primitive components for React.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"@radix-ui/react-slot": "^1.0.1",
|
|
31
31
|
"@radix-ui/react-use-controllable-state": "^1.0.0",
|
|
32
32
|
"lodash.omit": "^4.5.0",
|
|
33
|
-
"@dxos/react-hooks": "0.6.
|
|
33
|
+
"@dxos/react-hooks": "0.6.8-main.3be982f"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@radix-ui/react-checkbox": "^1.0.3",
|
|
37
37
|
"@types/lodash.omit": "^4.5.7",
|
|
38
|
-
"@types/react": "
|
|
39
|
-
"@types/react-dom": "
|
|
38
|
+
"@types/react": "~18.2.0",
|
|
39
|
+
"@types/react-dom": "~18.2.0",
|
|
40
40
|
"react": "~18.2.0",
|
|
41
41
|
"react-dom": "~18.2.0"
|
|
42
42
|
},
|
package/src/ListItem.tsx
CHANGED
|
@@ -11,11 +11,12 @@ import { Slot } from '@radix-ui/react-slot';
|
|
|
11
11
|
import { useControllableState } from '@radix-ui/react-use-controllable-state';
|
|
12
12
|
import React, {
|
|
13
13
|
type ComponentProps,
|
|
14
|
-
type
|
|
14
|
+
type ComponentPropsWithoutRef,
|
|
15
15
|
type Dispatch,
|
|
16
16
|
type ElementRef,
|
|
17
17
|
forwardRef,
|
|
18
18
|
type ForwardRefExoticComponent,
|
|
19
|
+
type RefAttributes,
|
|
19
20
|
type SetStateAction,
|
|
20
21
|
} from 'react';
|
|
21
22
|
|
|
@@ -34,9 +35,8 @@ interface ListItemData {
|
|
|
34
35
|
open?: boolean;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
type ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } &
|
|
38
|
-
|
|
39
|
-
> & {
|
|
38
|
+
type ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & RefAttributes<HTMLLIElement> &
|
|
39
|
+
ComponentPropsWithoutRef<'li'> & {
|
|
40
40
|
defaultOpen?: boolean;
|
|
41
41
|
onOpenChange?: (nextOpen: boolean) => void;
|
|
42
42
|
} & {
|
|
@@ -44,7 +44,7 @@ type ListItemProps = Omit<ListItemData, 'id'> & { collapsible?: boolean } & Comp
|
|
|
44
44
|
defaultSelected?: CheckboxProps['defaultChecked'];
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
type ListItemElement = ElementRef<
|
|
47
|
+
type ListItemElement = ElementRef<'li'>;
|
|
48
48
|
|
|
49
49
|
const [createListItemContext, createListItemScope] = createContextScope(LIST_ITEM_NAME, []);
|
|
50
50
|
|
|
@@ -57,9 +57,10 @@ type ListItemContextValue = {
|
|
|
57
57
|
|
|
58
58
|
const [ListItemProvider, useListItemContext] = createListItemContext<ListItemContextValue>(LIST_ITEM_NAME);
|
|
59
59
|
|
|
60
|
-
type ListItemHeadingProps = ListItemScopedProps<Omit<
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
type ListItemHeadingProps = ListItemScopedProps<Omit<ComponentPropsWithoutRef<'p'>, 'id'>> &
|
|
61
|
+
RefAttributes<HTMLParagraphElement> & {
|
|
62
|
+
asChild?: boolean;
|
|
63
|
+
};
|
|
63
64
|
|
|
64
65
|
const ListItemHeading = forwardRef<HTMLDivElement, ListItemHeadingProps>(
|
|
65
66
|
({ children, asChild, __listItemScope, ...props }, forwardedRef) => {
|