@cloud-ru/ds-list 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/LICENSE +201 -0
- package/README.md +1413 -0
- package/dist/cjs/components/Items/AccordionItem/AccordionItem.d.ts +4 -0
- package/dist/cjs/components/Items/AccordionItem/AccordionItem.js +37 -0
- package/dist/cjs/components/Items/AccordionItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/AccordionItem/index.js +17 -0
- package/dist/cjs/components/Items/BaseItem/BaseItem.d.ts +24 -0
- package/dist/cjs/components/Items/BaseItem/BaseItem.js +118 -0
- package/dist/cjs/components/Items/BaseItem/constants.d.ts +3 -0
- package/dist/cjs/components/Items/BaseItem/constants.js +8 -0
- package/dist/cjs/components/Items/BaseItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/BaseItem/index.js +17 -0
- package/dist/cjs/components/Items/BaseItem/styles.module.css +312 -0
- package/dist/cjs/components/Items/GroupSelectItem/GroupSelectItem.d.ts +4 -0
- package/dist/cjs/components/Items/GroupSelectItem/GroupSelectItem.js +22 -0
- package/dist/cjs/components/Items/GroupSelectItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/GroupSelectItem/index.js +17 -0
- package/dist/cjs/components/Items/NextListItem/NextListItem.d.ts +2 -0
- package/dist/cjs/components/Items/NextListItem/NextListItem.js +71 -0
- package/dist/cjs/components/Items/NextListItem/constants.d.ts +2 -0
- package/dist/cjs/components/Items/NextListItem/constants.js +13 -0
- package/dist/cjs/components/Items/NextListItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/NextListItem/index.js +17 -0
- package/dist/cjs/components/Items/NextListItem/types.d.ts +4 -0
- package/dist/cjs/components/Items/NextListItem/types.js +2 -0
- package/dist/cjs/components/Items/PinGroupItem/PinGroupItem.d.ts +7 -0
- package/dist/cjs/components/Items/PinGroupItem/PinGroupItem.js +27 -0
- package/dist/cjs/components/Items/PinGroupItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/PinGroupItem/index.js +17 -0
- package/dist/cjs/components/Items/PinGroupItem/styles.module.css +12 -0
- package/dist/cjs/components/Items/SearchItem/SearchItem.d.ts +17 -0
- package/dist/cjs/components/Items/SearchItem/SearchItem.js +28 -0
- package/dist/cjs/components/Items/SearchItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/SearchItem/index.js +17 -0
- package/dist/cjs/components/Items/SearchItem/styles.module.css +13 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/DragHandle.d.ts +7 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/DragHandle.js +20 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.d.ts +2 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.js +9 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.d.ts +19 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.js +52 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.d.ts +15 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.js +19 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/SimpleItem.d.ts +11 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/SimpleItem.js +48 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.d.ts +15 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.js +19 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/index.d.ts +4 -0
- package/dist/cjs/components/Items/SimpleItem/components/index.js +20 -0
- package/dist/cjs/components/Items/SimpleItem/constants.d.ts +7 -0
- package/dist/cjs/components/Items/SimpleItem/constants.js +9 -0
- package/dist/cjs/components/Items/SimpleItem/index.d.ts +2 -0
- package/dist/cjs/components/Items/SimpleItem/index.js +18 -0
- package/dist/cjs/components/Items/SimpleItem/styles.module.css +96 -0
- package/dist/cjs/components/Items/SimpleItem/types.d.ts +3 -0
- package/dist/cjs/components/Items/SimpleItem/types.js +2 -0
- package/dist/cjs/components/Items/SimpleItem/utils.d.ts +6 -0
- package/dist/cjs/components/Items/SimpleItem/utils.js +11 -0
- package/dist/cjs/components/Items/hooks.d.ts +23 -0
- package/dist/cjs/components/Items/hooks.js +130 -0
- package/dist/cjs/components/Items/index.d.ts +5 -0
- package/dist/cjs/components/Items/index.js +21 -0
- package/dist/cjs/components/Items/styles.module.css +168 -0
- package/dist/cjs/components/Items/types.d.ts +168 -0
- package/dist/cjs/components/Items/types.js +2 -0
- package/dist/cjs/components/Items/utils.d.ts +52 -0
- package/dist/cjs/components/Items/utils.js +218 -0
- package/dist/cjs/components/Lists/Droplist/DropList.d.ts +21 -0
- package/dist/cjs/components/Lists/Droplist/DropList.js +36 -0
- package/dist/cjs/components/Lists/Droplist/constants.d.ts +8 -0
- package/dist/cjs/components/Lists/Droplist/constants.js +10 -0
- package/dist/cjs/components/Lists/Droplist/index.d.ts +1 -0
- package/dist/cjs/components/Lists/Droplist/index.js +17 -0
- package/dist/cjs/components/Lists/List/List.d.ts +61 -0
- package/dist/cjs/components/Lists/List/List.js +62 -0
- package/dist/cjs/components/Lists/List/index.d.ts +1 -0
- package/dist/cjs/components/Lists/List/index.js +17 -0
- package/dist/cjs/components/Lists/ListPrivate/ListPrivate.d.ts +18 -0
- package/dist/cjs/components/Lists/ListPrivate/ListPrivate.js +301 -0
- package/dist/cjs/components/Lists/ListPrivate/constants.d.ts +7 -0
- package/dist/cjs/components/Lists/ListPrivate/constants.js +19 -0
- package/dist/cjs/components/Lists/ListPrivate/index.d.ts +1 -0
- package/dist/cjs/components/Lists/ListPrivate/index.js +17 -0
- package/dist/cjs/components/Lists/ListPrivate/styles.module.css +80 -0
- package/dist/cjs/components/Lists/contexts/CollapseProvider.d.ts +17 -0
- package/dist/cjs/components/Lists/contexts/CollapseProvider.js +10 -0
- package/dist/cjs/components/Lists/contexts/FocusListProvider.d.ts +9 -0
- package/dist/cjs/components/Lists/contexts/FocusListProvider.js +9 -0
- package/dist/cjs/components/Lists/contexts/NewListProvider.d.ts +33 -0
- package/dist/cjs/components/Lists/contexts/NewListProvider.js +23 -0
- package/dist/cjs/components/Lists/contexts/OpenListProvider.d.ts +6 -0
- package/dist/cjs/components/Lists/contexts/OpenListProvider.js +10 -0
- package/dist/cjs/components/Lists/contexts/SelectionProvider.d.ts +74 -0
- package/dist/cjs/components/Lists/contexts/SelectionProvider.js +90 -0
- package/dist/cjs/components/Lists/contexts/index.d.ts +5 -0
- package/dist/cjs/components/Lists/contexts/index.js +21 -0
- package/dist/cjs/components/Lists/hooks.d.ts +83 -0
- package/dist/cjs/components/Lists/hooks.js +242 -0
- package/dist/cjs/components/Lists/index.d.ts +5 -0
- package/dist/cjs/components/Lists/index.js +21 -0
- package/dist/cjs/components/Lists/styles.module.css +65 -0
- package/dist/cjs/components/Lists/types.d.ts +200 -0
- package/dist/cjs/components/Lists/types.js +2 -0
- package/dist/cjs/components/Lists/utils.d.ts +8 -0
- package/dist/cjs/components/Lists/utils.js +31 -0
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.js +18 -0
- package/dist/cjs/constants.d.ts +48 -0
- package/dist/cjs/constants.js +51 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +9 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.js +15 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/index.d.ts +1 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/index.js +17 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/styles.module.css +27 -0
- package/dist/cjs/helperComponents/DesktopDroplist/DesktopDroplist.d.ts +7 -0
- package/dist/cjs/helperComponents/DesktopDroplist/DesktopDroplist.js +142 -0
- package/dist/cjs/helperComponents/DesktopDroplist/index.d.ts +1 -0
- package/dist/cjs/helperComponents/DesktopDroplist/index.js +17 -0
- package/dist/cjs/helperComponents/HiddenTabButton/HiddenTabButton.d.ts +7 -0
- package/dist/cjs/helperComponents/HiddenTabButton/HiddenTabButton.js +20 -0
- package/dist/cjs/helperComponents/HiddenTabButton/index.d.ts +1 -0
- package/dist/cjs/helperComponents/HiddenTabButton/index.js +17 -0
- package/dist/cjs/helperComponents/HiddenTabButton/styles.module.css +9 -0
- package/dist/cjs/helperComponents/ItemContent/ItemContent.d.ts +17 -0
- package/dist/cjs/helperComponents/ItemContent/ItemContent.js +27 -0
- package/dist/cjs/helperComponents/ItemContent/index.d.ts +1 -0
- package/dist/cjs/helperComponents/ItemContent/index.js +17 -0
- package/dist/cjs/helperComponents/ItemContent/styles.module.css +139 -0
- package/dist/cjs/helperComponents/ListEmptyState/ListEmptyState.d.ts +16 -0
- package/dist/cjs/helperComponents/ListEmptyState/ListEmptyState.js +25 -0
- package/dist/cjs/helperComponents/ListEmptyState/hooks.d.ts +10 -0
- package/dist/cjs/helperComponents/ListEmptyState/hooks.js +30 -0
- package/dist/cjs/helperComponents/ListEmptyState/index.d.ts +2 -0
- package/dist/cjs/helperComponents/ListEmptyState/index.js +20 -0
- package/dist/cjs/helperComponents/ListEmptyState/styles.module.css +8 -0
- package/dist/cjs/helperComponents/MobileDroplist/MobileDroplist.d.ts +9 -0
- package/dist/cjs/helperComponents/MobileDroplist/MobileDroplist.js +143 -0
- package/dist/cjs/helperComponents/MobileDroplist/MobileDroplist.module.css +16 -0
- package/dist/cjs/helperComponents/MobileDroplist/index.d.ts +1 -0
- package/dist/cjs/helperComponents/MobileDroplist/index.js +17 -0
- package/dist/cjs/helperComponents/MobileDroplist/utils.d.ts +11 -0
- package/dist/cjs/helperComponents/MobileDroplist/utils.js +65 -0
- package/dist/cjs/helperComponents/Separator/Separator.d.ts +20 -0
- package/dist/cjs/helperComponents/Separator/Separator.js +40 -0
- package/dist/cjs/helperComponents/Separator/constants.d.ts +3 -0
- package/dist/cjs/helperComponents/Separator/constants.js +10 -0
- package/dist/cjs/helperComponents/Separator/index.d.ts +1 -0
- package/dist/cjs/helperComponents/Separator/index.js +17 -0
- package/dist/cjs/helperComponents/Separator/styles.module.css +168 -0
- package/dist/cjs/helperComponents/index.d.ts +5 -0
- package/dist/cjs/helperComponents/index.js +21 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/locale/index.d.ts +79 -0
- package/dist/cjs/locale/index.js +44 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/style.css +1113 -0
- package/dist/cjs/types.d.ts +38 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/utils.d.ts +18 -0
- package/dist/cjs/utils.js +26 -0
- package/dist/esm/components/Items/AccordionItem/AccordionItem.d.ts +4 -0
- package/dist/esm/components/Items/AccordionItem/AccordionItem.js +34 -0
- package/dist/esm/components/Items/AccordionItem/index.d.ts +1 -0
- package/dist/esm/components/Items/AccordionItem/index.js +1 -0
- package/dist/esm/components/Items/BaseItem/BaseItem.d.ts +24 -0
- package/dist/esm/components/Items/BaseItem/BaseItem.js +112 -0
- package/dist/esm/components/Items/BaseItem/constants.d.ts +3 -0
- package/dist/esm/components/Items/BaseItem/constants.js +5 -0
- package/dist/esm/components/Items/BaseItem/index.d.ts +1 -0
- package/dist/esm/components/Items/BaseItem/index.js +1 -0
- package/dist/esm/components/Items/BaseItem/styles.module.css +312 -0
- package/dist/esm/components/Items/GroupSelectItem/GroupSelectItem.d.ts +4 -0
- package/dist/esm/components/Items/GroupSelectItem/GroupSelectItem.js +19 -0
- package/dist/esm/components/Items/GroupSelectItem/index.d.ts +1 -0
- package/dist/esm/components/Items/GroupSelectItem/index.js +1 -0
- package/dist/esm/components/Items/NextListItem/NextListItem.d.ts +2 -0
- package/dist/esm/components/Items/NextListItem/NextListItem.js +68 -0
- package/dist/esm/components/Items/NextListItem/constants.d.ts +2 -0
- package/dist/esm/components/Items/NextListItem/constants.js +10 -0
- package/dist/esm/components/Items/NextListItem/index.d.ts +1 -0
- package/dist/esm/components/Items/NextListItem/index.js +1 -0
- package/dist/esm/components/Items/NextListItem/types.d.ts +4 -0
- package/dist/esm/components/Items/NextListItem/types.js +1 -0
- package/dist/esm/components/Items/PinGroupItem/PinGroupItem.d.ts +7 -0
- package/dist/esm/components/Items/PinGroupItem/PinGroupItem.js +20 -0
- package/dist/esm/components/Items/PinGroupItem/index.d.ts +1 -0
- package/dist/esm/components/Items/PinGroupItem/index.js +1 -0
- package/dist/esm/components/Items/PinGroupItem/styles.module.css +12 -0
- package/dist/esm/components/Items/SearchItem/SearchItem.d.ts +17 -0
- package/dist/esm/components/Items/SearchItem/SearchItem.js +22 -0
- package/dist/esm/components/Items/SearchItem/index.d.ts +1 -0
- package/dist/esm/components/Items/SearchItem/index.js +1 -0
- package/dist/esm/components/Items/SearchItem/styles.module.css +13 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/DragHandle.d.ts +7 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/DragHandle.js +14 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.d.ts +2 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.js +6 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.d.ts +19 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.js +46 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.d.ts +15 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.js +13 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/SimpleItem.d.ts +11 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/SimpleItem.js +42 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.d.ts +15 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.js +13 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/index.d.ts +4 -0
- package/dist/esm/components/Items/SimpleItem/components/index.js +4 -0
- package/dist/esm/components/Items/SimpleItem/constants.d.ts +7 -0
- package/dist/esm/components/Items/SimpleItem/constants.js +6 -0
- package/dist/esm/components/Items/SimpleItem/index.d.ts +2 -0
- package/dist/esm/components/Items/SimpleItem/index.js +2 -0
- package/dist/esm/components/Items/SimpleItem/styles.module.css +96 -0
- package/dist/esm/components/Items/SimpleItem/types.d.ts +3 -0
- package/dist/esm/components/Items/SimpleItem/types.js +1 -0
- package/dist/esm/components/Items/SimpleItem/utils.d.ts +6 -0
- package/dist/esm/components/Items/SimpleItem/utils.js +8 -0
- package/dist/esm/components/Items/hooks.d.ts +23 -0
- package/dist/esm/components/Items/hooks.js +125 -0
- package/dist/esm/components/Items/index.d.ts +5 -0
- package/dist/esm/components/Items/index.js +5 -0
- package/dist/esm/components/Items/styles.module.css +168 -0
- package/dist/esm/components/Items/types.d.ts +168 -0
- package/dist/esm/components/Items/types.js +1 -0
- package/dist/esm/components/Items/utils.d.ts +52 -0
- package/dist/esm/components/Items/utils.js +203 -0
- package/dist/esm/components/Lists/Droplist/DropList.d.ts +21 -0
- package/dist/esm/components/Lists/Droplist/DropList.js +32 -0
- package/dist/esm/components/Lists/Droplist/constants.d.ts +8 -0
- package/dist/esm/components/Lists/Droplist/constants.js +7 -0
- package/dist/esm/components/Lists/Droplist/index.d.ts +1 -0
- package/dist/esm/components/Lists/Droplist/index.js +1 -0
- package/dist/esm/components/Lists/List/List.d.ts +61 -0
- package/dist/esm/components/Lists/List/List.js +56 -0
- package/dist/esm/components/Lists/List/index.d.ts +1 -0
- package/dist/esm/components/Lists/List/index.js +1 -0
- package/dist/esm/components/Lists/ListPrivate/ListPrivate.d.ts +18 -0
- package/dist/esm/components/Lists/ListPrivate/ListPrivate.js +295 -0
- package/dist/esm/components/Lists/ListPrivate/constants.d.ts +7 -0
- package/dist/esm/components/Lists/ListPrivate/constants.js +16 -0
- package/dist/esm/components/Lists/ListPrivate/index.d.ts +1 -0
- package/dist/esm/components/Lists/ListPrivate/index.js +1 -0
- package/dist/esm/components/Lists/ListPrivate/styles.module.css +80 -0
- package/dist/esm/components/Lists/contexts/CollapseProvider.d.ts +17 -0
- package/dist/esm/components/Lists/contexts/CollapseProvider.js +5 -0
- package/dist/esm/components/Lists/contexts/FocusListProvider.d.ts +9 -0
- package/dist/esm/components/Lists/contexts/FocusListProvider.js +5 -0
- package/dist/esm/components/Lists/contexts/NewListProvider.d.ts +33 -0
- package/dist/esm/components/Lists/contexts/NewListProvider.js +18 -0
- package/dist/esm/components/Lists/contexts/OpenListProvider.d.ts +6 -0
- package/dist/esm/components/Lists/contexts/OpenListProvider.js +6 -0
- package/dist/esm/components/Lists/contexts/SelectionProvider.d.ts +74 -0
- package/dist/esm/components/Lists/contexts/SelectionProvider.js +83 -0
- package/dist/esm/components/Lists/contexts/index.d.ts +5 -0
- package/dist/esm/components/Lists/contexts/index.js +5 -0
- package/dist/esm/components/Lists/hooks.d.ts +83 -0
- package/dist/esm/components/Lists/hooks.js +238 -0
- package/dist/esm/components/Lists/index.d.ts +5 -0
- package/dist/esm/components/Lists/index.js +5 -0
- package/dist/esm/components/Lists/styles.module.css +65 -0
- package/dist/esm/components/Lists/types.d.ts +200 -0
- package/dist/esm/components/Lists/types.js +1 -0
- package/dist/esm/components/Lists/utils.d.ts +8 -0
- package/dist/esm/components/Lists/utils.js +28 -0
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/constants.d.ts +48 -0
- package/dist/esm/constants.js +48 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +9 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.js +9 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/index.d.ts +1 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/index.js +1 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/styles.module.css +27 -0
- package/dist/esm/helperComponents/DesktopDroplist/DesktopDroplist.d.ts +7 -0
- package/dist/esm/helperComponents/DesktopDroplist/DesktopDroplist.js +136 -0
- package/dist/esm/helperComponents/DesktopDroplist/index.d.ts +1 -0
- package/dist/esm/helperComponents/DesktopDroplist/index.js +1 -0
- package/dist/esm/helperComponents/HiddenTabButton/HiddenTabButton.d.ts +7 -0
- package/dist/esm/helperComponents/HiddenTabButton/HiddenTabButton.js +14 -0
- package/dist/esm/helperComponents/HiddenTabButton/index.d.ts +1 -0
- package/dist/esm/helperComponents/HiddenTabButton/index.js +1 -0
- package/dist/esm/helperComponents/HiddenTabButton/styles.module.css +9 -0
- package/dist/esm/helperComponents/ItemContent/ItemContent.d.ts +17 -0
- package/dist/esm/helperComponents/ItemContent/ItemContent.js +21 -0
- package/dist/esm/helperComponents/ItemContent/index.d.ts +1 -0
- package/dist/esm/helperComponents/ItemContent/index.js +1 -0
- package/dist/esm/helperComponents/ItemContent/styles.module.css +139 -0
- package/dist/esm/helperComponents/ListEmptyState/ListEmptyState.d.ts +16 -0
- package/dist/esm/helperComponents/ListEmptyState/ListEmptyState.js +19 -0
- package/dist/esm/helperComponents/ListEmptyState/hooks.d.ts +10 -0
- package/dist/esm/helperComponents/ListEmptyState/hooks.js +27 -0
- package/dist/esm/helperComponents/ListEmptyState/index.d.ts +2 -0
- package/dist/esm/helperComponents/ListEmptyState/index.js +2 -0
- package/dist/esm/helperComponents/ListEmptyState/styles.module.css +8 -0
- package/dist/esm/helperComponents/MobileDroplist/MobileDroplist.d.ts +9 -0
- package/dist/esm/helperComponents/MobileDroplist/MobileDroplist.js +137 -0
- package/dist/esm/helperComponents/MobileDroplist/MobileDroplist.module.css +16 -0
- package/dist/esm/helperComponents/MobileDroplist/index.d.ts +1 -0
- package/dist/esm/helperComponents/MobileDroplist/index.js +1 -0
- package/dist/esm/helperComponents/MobileDroplist/utils.d.ts +11 -0
- package/dist/esm/helperComponents/MobileDroplist/utils.js +61 -0
- package/dist/esm/helperComponents/Separator/Separator.d.ts +20 -0
- package/dist/esm/helperComponents/Separator/Separator.js +34 -0
- package/dist/esm/helperComponents/Separator/constants.d.ts +3 -0
- package/dist/esm/helperComponents/Separator/constants.js +7 -0
- package/dist/esm/helperComponents/Separator/index.d.ts +1 -0
- package/dist/esm/helperComponents/Separator/index.js +1 -0
- package/dist/esm/helperComponents/Separator/styles.module.css +168 -0
- package/dist/esm/helperComponents/index.d.ts +5 -0
- package/dist/esm/helperComponents/index.js +5 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/locale/index.d.ts +79 -0
- package/dist/esm/locale/index.js +41 -0
- package/dist/esm/style.css +1113 -0
- package/dist/esm/types.d.ts +38 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/utils.d.ts +18 -0
- package/dist/esm/utils.js +19 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +70 -0
- package/src/_iconSizes.scss +7 -0
- package/src/components/Items/AccordionItem/AccordionItem.tsx +79 -0
- package/src/components/Items/AccordionItem/index.ts +1 -0
- package/src/components/Items/BaseItem/BaseItem.tsx +274 -0
- package/src/components/Items/BaseItem/constants.ts +9 -0
- package/src/components/Items/BaseItem/index.ts +1 -0
- package/src/components/Items/BaseItem/styles.module.scss +330 -0
- package/src/components/Items/GroupSelectItem/GroupSelectItem.tsx +48 -0
- package/src/components/Items/GroupSelectItem/index.ts +1 -0
- package/src/components/Items/NextListItem/NextListItem.tsx +157 -0
- package/src/components/Items/NextListItem/constants.ts +12 -0
- package/src/components/Items/NextListItem/index.ts +1 -0
- package/src/components/Items/NextListItem/types.ts +3 -0
- package/src/components/Items/PinGroupItem/PinGroupItem.tsx +38 -0
- package/src/components/Items/PinGroupItem/index.ts +1 -0
- package/src/components/Items/PinGroupItem/styles.module.scss +14 -0
- package/src/components/Items/SearchItem/SearchItem.tsx +55 -0
- package/src/components/Items/SearchItem/index.ts +1 -0
- package/src/components/Items/SearchItem/styles.module.scss +26 -0
- package/src/components/Items/SimpleItem/components/DragHandle/DragHandle.tsx +27 -0
- package/src/components/Items/SimpleItem/components/DragHandle/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.tsx +6 -0
- package/src/components/Items/SimpleItem/components/OverlayDragHandle/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.tsx +87 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlock/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.tsx +33 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleItem/SimpleItem.tsx +70 -0
- package/src/components/Items/SimpleItem/components/SimpleItem/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.tsx +26 -0
- package/src/components/Items/SimpleItem/components/SimpleItemOverlay/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/index.ts +4 -0
- package/src/components/Items/SimpleItem/constants.ts +8 -0
- package/src/components/Items/SimpleItem/index.ts +2 -0
- package/src/components/Items/SimpleItem/styles.module.scss +149 -0
- package/src/components/Items/SimpleItem/types.ts +7 -0
- package/src/components/Items/SimpleItem/utils.ts +8 -0
- package/src/components/Items/hooks.tsx +233 -0
- package/src/components/Items/index.ts +5 -0
- package/src/components/Items/styles.module.scss +107 -0
- package/src/components/Items/types.ts +203 -0
- package/src/components/Items/utils.ts +302 -0
- package/src/components/Lists/Droplist/DropList.tsx +62 -0
- package/src/components/Lists/Droplist/constants.ts +11 -0
- package/src/components/Lists/Droplist/index.ts +1 -0
- package/src/components/Lists/List/List.tsx +155 -0
- package/src/components/Lists/List/index.ts +1 -0
- package/src/components/Lists/ListPrivate/ListPrivate.tsx +560 -0
- package/src/components/Lists/ListPrivate/constants.ts +22 -0
- package/src/components/Lists/ListPrivate/index.ts +1 -0
- package/src/components/Lists/ListPrivate/styles.module.scss +90 -0
- package/src/components/Lists/contexts/CollapseProvider.tsx +22 -0
- package/src/components/Lists/contexts/FocusListProvider.tsx +15 -0
- package/src/components/Lists/contexts/NewListProvider.tsx +76 -0
- package/src/components/Lists/contexts/OpenListProvider.tsx +13 -0
- package/src/components/Lists/contexts/SelectionProvider.tsx +214 -0
- package/src/components/Lists/contexts/index.ts +5 -0
- package/src/components/Lists/hooks.ts +351 -0
- package/src/components/Lists/index.ts +5 -0
- package/src/components/Lists/styles.module.scss +95 -0
- package/src/components/Lists/types.ts +231 -0
- package/src/components/Lists/utils.ts +32 -0
- package/src/components/index.ts +2 -0
- package/src/constants.ts +53 -0
- package/src/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.tsx +32 -0
- package/src/helperComponents/CollapseBlockPrivate/index.ts +1 -0
- package/src/helperComponents/CollapseBlockPrivate/styles.module.scss +32 -0
- package/src/helperComponents/DesktopDroplist/DesktopDroplist.tsx +313 -0
- package/src/helperComponents/DesktopDroplist/index.ts +1 -0
- package/src/helperComponents/HiddenTabButton/HiddenTabButton.tsx +35 -0
- package/src/helperComponents/HiddenTabButton/index.ts +1 -0
- package/src/helperComponents/HiddenTabButton/styles.module.scss +11 -0
- package/src/helperComponents/ItemContent/ItemContent.tsx +80 -0
- package/src/helperComponents/ItemContent/index.ts +1 -0
- package/src/helperComponents/ItemContent/styles.module.scss +100 -0
- package/src/helperComponents/ListEmptyState/ListEmptyState.tsx +52 -0
- package/src/helperComponents/ListEmptyState/hooks.ts +42 -0
- package/src/helperComponents/ListEmptyState/index.ts +2 -0
- package/src/helperComponents/ListEmptyState/styles.module.scss +11 -0
- package/src/helperComponents/MobileDroplist/MobileDroplist.module.scss +25 -0
- package/src/helperComponents/MobileDroplist/MobileDroplist.tsx +230 -0
- package/src/helperComponents/MobileDroplist/index.ts +1 -0
- package/src/helperComponents/MobileDroplist/utils.tsx +76 -0
- package/src/helperComponents/Separator/Separator.tsx +115 -0
- package/src/helperComponents/Separator/constants.ts +11 -0
- package/src/helperComponents/Separator/index.ts +1 -0
- package/src/helperComponents/Separator/styles.module.scss +255 -0
- package/src/helperComponents/index.ts +5 -0
- package/src/index.ts +19 -0
- package/src/locale/index.ts +45 -0
- package/src/types.ts +44 -0
- package/src/utils.ts +26 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ScrollProps as OriginalScrollProps } from '@cloud-ru/ds-scroll';
|
|
2
|
+
import { ValueOf } from '@cloud-ru/ds-utils';
|
|
3
|
+
import { ChangeEvent, KeyboardEvent, Ref } from 'react';
|
|
4
|
+
import { ITEM_TYPE, MODE, SIZE } from './constants';
|
|
5
|
+
/** Размер списка и его элементов */
|
|
6
|
+
export type Size = ValueOf<typeof SIZE>;
|
|
7
|
+
/** Режим выбора элементов списка */
|
|
8
|
+
export type Mode = ValueOf<typeof MODE>;
|
|
9
|
+
/** Тип группового / составного элемента списка */
|
|
10
|
+
export type ItemType = ValueOf<typeof ITEM_TYPE>;
|
|
11
|
+
/** Настройки поисковой строки списка */
|
|
12
|
+
export type SearchState = {
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
value?: string;
|
|
16
|
+
onChange(value: string, e?: ChangeEvent<HTMLInputElement>): void;
|
|
17
|
+
onKeyDown?(e: KeyboardEvent<HTMLElement>): void;
|
|
18
|
+
};
|
|
19
|
+
export type ScrollProps = {
|
|
20
|
+
/** Включить ли скролл для основной части списка */
|
|
21
|
+
scroll?: boolean;
|
|
22
|
+
/** Ссылка на элемент, обозначающий самый конец прокручиваемого списка */
|
|
23
|
+
scrollRef?: Ref<HTMLElement>;
|
|
24
|
+
/** Ссылка на контейнер, который скроллится */
|
|
25
|
+
scrollContainerRef?: Ref<HTMLElement>;
|
|
26
|
+
/** Отключает возможность взаимодействовать со скролбарами мышью. */
|
|
27
|
+
untouchableScrollbars?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Управление скрытием скролл баров:
|
|
30
|
+
* <br> - `Never` - показывать всегда
|
|
31
|
+
* <br> - `Leave` - скрывать когда курсор покидает компонент
|
|
32
|
+
* <br> - `Scroll` - показывать только когда происходит скроллинг
|
|
33
|
+
* <br> - `Move` - показывать при движении курсора над компонентом
|
|
34
|
+
*/
|
|
35
|
+
barHideStrategy?: OriginalScrollProps['barHideStrategy'];
|
|
36
|
+
/** Колбек на скролл прокручиваемого списка */
|
|
37
|
+
onScroll?: OriginalScrollProps['onScroll'];
|
|
38
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactEventHandler } from 'react';
|
|
2
|
+
import { ItemId } from './components';
|
|
3
|
+
export declare const stopPropagation: ReactEventHandler;
|
|
4
|
+
/**
|
|
5
|
+
* Возвращает id для элемента футера
|
|
6
|
+
* @function helper
|
|
7
|
+
*/
|
|
8
|
+
export declare const getFooterItemId: (id: ItemId) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Возвращает id для элемента, подставляя префикс
|
|
11
|
+
* @function helper
|
|
12
|
+
*/
|
|
13
|
+
export declare const getItemAutoId: (prefix: ItemId, id: ItemId) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Возвращает id для дефолтного элемента
|
|
16
|
+
* @function helper
|
|
17
|
+
*/
|
|
18
|
+
export declare const getDefaultItemId: (id: ItemId) => string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultItemId = exports.getItemAutoId = exports.getFooterItemId = exports.stopPropagation = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
const stopPropagation = e => {
|
|
6
|
+
e.stopPropagation();
|
|
7
|
+
};
|
|
8
|
+
exports.stopPropagation = stopPropagation;
|
|
9
|
+
/**
|
|
10
|
+
* Возвращает id для элемента футера
|
|
11
|
+
* @function helper
|
|
12
|
+
*/
|
|
13
|
+
const getFooterItemId = (id) => `${constants_1.ITEM_PREFIXES.footer}__${id}`;
|
|
14
|
+
exports.getFooterItemId = getFooterItemId;
|
|
15
|
+
/**
|
|
16
|
+
* Возвращает id для элемента, подставляя префикс
|
|
17
|
+
* @function helper
|
|
18
|
+
*/
|
|
19
|
+
const getItemAutoId = (prefix, id) => [prefix, id].join('-');
|
|
20
|
+
exports.getItemAutoId = getItemAutoId;
|
|
21
|
+
/**
|
|
22
|
+
* Возвращает id для дефолтного элемента
|
|
23
|
+
* @function helper
|
|
24
|
+
*/
|
|
25
|
+
const getDefaultItemId = (id) => (0, exports.getItemAutoId)(constants_1.ITEM_PREFIXES.default, id);
|
|
26
|
+
exports.getDefaultItemId = getDefaultItemId;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CommonFlattenProps, FlattenAccordionItem } from '../types.js';
|
|
2
|
+
type AccordionItemProps = Omit<FlattenAccordionItem, 'type'> & CommonFlattenProps;
|
|
3
|
+
export declare function AccordionItem({ id, disabled, allChildIds, items, ...option }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronDownSVG, ChevronUpSVG } from '@cloud-ru/ds-icons/interface/system';
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { TEST_IDS } from '../../../constants.js';
|
|
5
|
+
import { CollapseBlockPrivate } from '../../../helperComponents/index.js';
|
|
6
|
+
import { CollapseLevelContext, useCollapseContext, useCollapseLevelContext, useSelectionContext, } from '../../Lists/contexts/index.js';
|
|
7
|
+
import { BaseItem } from '../BaseItem/index.js';
|
|
8
|
+
import { useGroupItemSelection, useRenderItems } from '../hooks.js';
|
|
9
|
+
export function AccordionItem({ id, disabled, allChildIds, items, ...option }) {
|
|
10
|
+
const { level = 0 } = useCollapseLevelContext();
|
|
11
|
+
const { openCollapseItems = [], toggleOpenCollapseItem } = useCollapseContext();
|
|
12
|
+
const { value, isSelectionSingle, isSelectionMultiple } = useSelectionContext();
|
|
13
|
+
const { indeterminate, handleOnSelect, checked: checkedProp, } = useGroupItemSelection({
|
|
14
|
+
items,
|
|
15
|
+
id,
|
|
16
|
+
disabled,
|
|
17
|
+
allChildIds,
|
|
18
|
+
});
|
|
19
|
+
const isOpen = Boolean(openCollapseItems.includes(id ?? ''));
|
|
20
|
+
const checked = Boolean((indeterminate && !isOpen && isSelectionSingle && value && allChildIds.includes(value)) ||
|
|
21
|
+
(isSelectionMultiple && checkedProp));
|
|
22
|
+
const handleKeyDown = useCallback(() => {
|
|
23
|
+
toggleOpenCollapseItem?.(id ?? '');
|
|
24
|
+
}, [id, toggleOpenCollapseItem]);
|
|
25
|
+
const itemsJSX = useRenderItems(items);
|
|
26
|
+
// Раскрытие привязано к явной кнопке-триггеру `groupIndicator` (шеврон справа) и
|
|
27
|
+
// ТОЛЬКО переключает collapse — `option.onClick` сюда не зовём, иначе у потребителя,
|
|
28
|
+
// который вешает на onClick собственный toggle, выходит двойное переключение.
|
|
29
|
+
// Клик по телу строки (выбор/навигация) идёт через `option.onClick` в BaseItem.
|
|
30
|
+
const handleExpandIconClick = () => {
|
|
31
|
+
toggleOpenCollapseItem?.(id ?? '');
|
|
32
|
+
};
|
|
33
|
+
return (_jsx(CollapseBlockPrivate, { header: _jsx(BaseItem, { ...option, id: id, disabled: disabled, open: isOpen, expandIcon: isOpen ? _jsx(ChevronUpSVG, {}) : _jsx(ChevronDownSVG, {}), onExpandIconClick: handleExpandIconClick, isParentNode: true, onOpenNestedList: handleKeyDown, checked: checked, indeterminate: indeterminate, onSelect: !disabled ? handleOnSelect : undefined }), expanded: isOpen, "data-test-id": `${TEST_IDS.accordionItem}-${id}`, children: _jsx(CollapseLevelContext.Provider, { value: { level: level + 1 }, children: itemsJSX }) }));
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AccordionItem.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AccordionItem.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { KeyboardEvent, MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import { FlattenBaseItem } from '../types.js';
|
|
3
|
+
type AllBaseItemProps = FlattenBaseItem & {
|
|
4
|
+
expandIcon?: ReactNode;
|
|
5
|
+
open?: boolean;
|
|
6
|
+
indeterminate?: boolean;
|
|
7
|
+
onSelect?(): void;
|
|
8
|
+
isParentNode?: boolean;
|
|
9
|
+
onOpenNestedList?(e?: KeyboardEvent<HTMLElement>): void;
|
|
10
|
+
/**
|
|
11
|
+
* Клик по явной кнопке-триггеру `groupIndicator` (шеврон справа), открывающей/закрывающей
|
|
12
|
+
* вложенный список. Если передан — шеврон рендерится как отдельная интерактивная кнопка
|
|
13
|
+
* со своим state-layer'ом, а клик по телу строки больше не переключает раскрытие.
|
|
14
|
+
*/
|
|
15
|
+
onExpandIconClick?(e: MouseEvent<HTMLElement>): void;
|
|
16
|
+
/**
|
|
17
|
+
* Слот ручки drag&drop (Figma `centeredWrapper`) — рендерится первым в строке, перед
|
|
18
|
+
* маркером/чекбоксом. Интерактивность (обработчики `@dnd-kit`) и содержимое (иконка)
|
|
19
|
+
* приходят снаружи — `BaseItem` только позиционирует слот, ничего не знает про DnD.
|
|
20
|
+
*/
|
|
21
|
+
dragHandle?: ReactNode;
|
|
22
|
+
};
|
|
23
|
+
export declare function BaseItem({ beforeContent, afterContent, content, onClick, onMouseDown, id, expandIcon, disabled, open, itemRef, switch: switchProp, onKeyDown, onFocus, indeterminate, checked: checkedProp, onSelect, onOpenNestedList, onExpandIconClick, isParentNode, className, inactive, itemWrapRender, dragHandle, ...rest }: AllBaseItemProps): string | number | boolean | Iterable<ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Checkbox, Switch } from '@cloud-ru/ds-toggles';
|
|
3
|
+
import { extractSupportProps } from '@cloud-ru/ds-utils';
|
|
4
|
+
import cn from 'classnames';
|
|
5
|
+
import { DEFAULT_SIZE, TEST_IDS } from '../../../constants.js';
|
|
6
|
+
import { ItemContent } from '../../../helperComponents/index.js';
|
|
7
|
+
import { useCollapseLevelContext, useNewListContext, useOpenListContext, useSelectionContext, } from '../../Lists/contexts/index.js';
|
|
8
|
+
import commonStyles from '../styles.module.css';
|
|
9
|
+
import { isContentItem, isPrimitiveContent } from '../utils.js';
|
|
10
|
+
import { TOGGLE_SIZE_MAP } from './constants.js';
|
|
11
|
+
import styles from './styles.module.css';
|
|
12
|
+
export function BaseItem({ beforeContent, afterContent, content, onClick, onMouseDown, id, expandIcon, disabled, open, itemRef, switch: switchProp, onKeyDown, onFocus, indeterminate, checked: checkedProp, onSelect, onOpenNestedList, onExpandIconClick, isParentNode, className, inactive, itemWrapRender, dragHandle, ...rest }) {
|
|
13
|
+
const interactive = !inactive;
|
|
14
|
+
const { size = DEFAULT_SIZE, marker, contentRender, firstItemId, focusFlattenItems } = useNewListContext();
|
|
15
|
+
const { level = 0 } = useCollapseLevelContext();
|
|
16
|
+
const { closeDroplist, closeDroplistOnItemClick } = useOpenListContext();
|
|
17
|
+
const { value, onChange, mode, isSelectionSingle, isSelectionMultiple } = useSelectionContext();
|
|
18
|
+
const isChecked = isSelectionSingle ? (checkedProp ?? value === id) : (checkedProp ?? value?.includes(id ?? ''));
|
|
19
|
+
const handleChange = () => {
|
|
20
|
+
onChange?.(id);
|
|
21
|
+
};
|
|
22
|
+
const handleItemMouseDown = (e) => {
|
|
23
|
+
if (disabled)
|
|
24
|
+
return;
|
|
25
|
+
onMouseDown?.(e);
|
|
26
|
+
};
|
|
27
|
+
const handleItemFocus = (e) => {
|
|
28
|
+
onFocus?.(e);
|
|
29
|
+
e.stopPropagation();
|
|
30
|
+
};
|
|
31
|
+
const handleCheckboxChange = () => {
|
|
32
|
+
if (isParentNode && onSelect) {
|
|
33
|
+
onSelect();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
handleChange();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const handleItemClick = (e) => {
|
|
40
|
+
if (disabled) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Активация элемента: клик мышью и Enter/Space с клавиатуры дают одинаковый эффект.
|
|
44
|
+
// `onClick` в публичном API типизирован под `MouseEvent` (это семантически клик по
|
|
45
|
+
// пункту меню), поэтому keyboard-событие пробрасывается под тем же типом.
|
|
46
|
+
onClick?.(e);
|
|
47
|
+
if (interactive && !isParentNode) {
|
|
48
|
+
handleChange();
|
|
49
|
+
}
|
|
50
|
+
if (!isSelectionMultiple && closeDroplistOnItemClick) {
|
|
51
|
+
closeDroplist();
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const handleItemKeyDown = (e) => {
|
|
55
|
+
onKeyDown?.(e);
|
|
56
|
+
if (e.key === 'ArrowRight' && onOpenNestedList) {
|
|
57
|
+
onOpenNestedList(e);
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
e.stopPropagation();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
63
|
+
if (isSelectionMultiple && isParentNode && onSelect) {
|
|
64
|
+
onSelect();
|
|
65
|
+
}
|
|
66
|
+
// Повторяем клик по элементу: `handleItemClick` сам вызывает `handleChange` /
|
|
67
|
+
// `closeDroplist`. Отдельный `handleChange` здесь не нужен — иначе в multiple-режиме
|
|
68
|
+
// выбор переключался бы дважды (toggle + откат) и Enter не менял бы состояние.
|
|
69
|
+
!isParentNode && handleItemClick(e);
|
|
70
|
+
e.stopPropagation();
|
|
71
|
+
e.preventDefault();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const handleCheckboxClick = (e) => {
|
|
75
|
+
if (isParentNode) {
|
|
76
|
+
e.stopPropagation();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const handleExpandIconClick = (e) => {
|
|
80
|
+
if (disabled) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// Триггер раскрытия изолирован от клика по строке: всплытие останавливаем,
|
|
84
|
+
// чтобы клик по шеврону не активировал выбор/навигацию пункта.
|
|
85
|
+
e.stopPropagation();
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
onExpandIconClick?.(e);
|
|
88
|
+
};
|
|
89
|
+
const props = extractSupportProps(rest);
|
|
90
|
+
let contentNode;
|
|
91
|
+
if (content && isContentItem(content)) {
|
|
92
|
+
contentNode = contentRender?.({ id, content, disabled }) ?? _jsx(ItemContent, { disabled: disabled, ...content });
|
|
93
|
+
}
|
|
94
|
+
else if (isPrimitiveContent(content)) {
|
|
95
|
+
// Примитивный content — шорткат `{ label: content }`: рендерим через ItemContent,
|
|
96
|
+
// чтобы строка получила размерную высоту, а не схлопывалась до высоты текста.
|
|
97
|
+
contentNode = _jsx(ItemContent, { disabled: disabled, label: content });
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
contentNode = _jsxs("div", { className: styles.content, children: [" ", content, " "] });
|
|
101
|
+
}
|
|
102
|
+
const stateLayerState = isSelectionSingle && isChecked && !switchProp && !isParentNode
|
|
103
|
+
? 'activatedOnBackground'
|
|
104
|
+
: 'emptyNeutralOnBackground';
|
|
105
|
+
const itemJSX = (_jsxs("div", { className: cn(commonStyles.itemWrapper, styles.innerWrapper, className), "data-inactive": inactive || undefined, "data-disabled": disabled || undefined, "data-variant": mode || undefined, "data-checked": (isParentNode && isChecked) || (!isParentNode && isChecked && !switchProp) || undefined, children: [_jsx("span", { className: commonStyles.stateLayer, "aria-hidden": true, "data-state": stateLayerState }), _jsxs("li", { "data-type": 'outside', role: 'menuitem', "data-test-id": props['data-test-id'] || `${TEST_IDS.baseItem}_${id}`, ref: itemRef, className: cn(commonStyles.listItem, styles.droplistItem), "data-size": size, onClick: handleItemClick, onMouseDown: handleItemMouseDown, tabIndex: firstItemId && id === focusFlattenItems[firstItemId]?.originalId ? 0 : -1, "data-non-pointer": (inactive && !onClick) || undefined, "data-variant": mode || undefined, "data-open": open || undefined, onKeyDown: handleItemKeyDown, onFocus: handleItemFocus, style: { '--level': level }, "data-level-one": level === 1 || undefined, "data-level-more-one": level > 1 || undefined, "data-checked": (isParentNode && (indeterminate || isChecked)) || (isChecked && !switchProp) || undefined, children: [dragHandle && _jsx("div", { className: styles.dragHandle, children: dragHandle }), !switchProp && isSelectionSingle && marker && !isParentNode && interactive && (_jsx("div", { className: styles.markerContainer, "data-test-id": TEST_IDS.baseItemMarker })), !switchProp && isSelectionMultiple && interactive && (_jsx("div", { className: styles.checkbox, children: _jsx(Checkbox, { size: TOGGLE_SIZE_MAP[size], disabled: disabled, tabIndex: -1, onChange: isParentNode ? handleCheckboxChange : undefined, checked: isChecked, "data-test-id": TEST_IDS.baseItemCheckbox, onClick: handleCheckboxClick, indeterminate: indeterminate }) })), beforeContent && _jsx("div", { className: styles.beforeContent, children: beforeContent }), contentNode, afterContent && _jsx("div", { className: styles.afterContent, children: afterContent }), switchProp && interactive && (_jsx(Switch, { size: TOGGLE_SIZE_MAP[size], disabled: disabled, checked: isChecked, "data-test-id": TEST_IDS.baseItemSwitch })), !switchProp &&
|
|
106
|
+
expandIcon &&
|
|
107
|
+
(onExpandIconClick ? (_jsxs("button", { type: 'button', className: styles.groupIndicator, "data-size": size, "data-open": open || undefined, "data-test-id": TEST_IDS.groupIndicator, tabIndex: -1, disabled: disabled, onClick: handleExpandIconClick, onMouseDown: e => e.stopPropagation(), children: [_jsx("span", { className: styles.groupIndicatorState, "aria-hidden": true }), expandIcon] })) : (_jsx("span", { className: styles.expandableIcon, children: expandIcon })))] })] }));
|
|
108
|
+
if (!itemWrapRender) {
|
|
109
|
+
return itemJSX;
|
|
110
|
+
}
|
|
111
|
+
return itemWrapRender(itemJSX);
|
|
112
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './BaseItem.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './BaseItem.js';
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
2
|
+
.checkbox{
|
|
3
|
+
display:inline-flex;
|
|
4
|
+
flex-grow:0;
|
|
5
|
+
flex-shrink:0;
|
|
6
|
+
align-items:center;
|
|
7
|
+
justify-content:center;
|
|
8
|
+
box-sizing:content-box;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.beforeContent,
|
|
12
|
+
.afterContent,
|
|
13
|
+
.dragHandle{
|
|
14
|
+
display:inline-flex;
|
|
15
|
+
flex-grow:0;
|
|
16
|
+
flex-shrink:0;
|
|
17
|
+
align-items:center;
|
|
18
|
+
justify-content:center;
|
|
19
|
+
box-sizing:content-box;
|
|
20
|
+
color:var(--sn-theme-color-available-version-textTertiary, var(--sn-brand-color-text-version-tertiary, rgba(65, 66, 78, 0.5490196078)));
|
|
21
|
+
}
|
|
22
|
+
.beforeContent svg,
|
|
23
|
+
.afterContent svg,
|
|
24
|
+
.dragHandle svg{
|
|
25
|
+
width:100%;
|
|
26
|
+
max-width:100%;
|
|
27
|
+
height:100%;
|
|
28
|
+
max-height:100%;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.dragHandle{
|
|
32
|
+
cursor:grab;
|
|
33
|
+
}
|
|
34
|
+
.dragHandle:active{
|
|
35
|
+
cursor:grabbing;
|
|
36
|
+
}
|
|
37
|
+
.dragHandle button{
|
|
38
|
+
display:flex;
|
|
39
|
+
align-items:center;
|
|
40
|
+
justify-content:center;
|
|
41
|
+
width:100%;
|
|
42
|
+
height:100%;
|
|
43
|
+
padding:0;
|
|
44
|
+
border:none;
|
|
45
|
+
color:inherit;
|
|
46
|
+
-webkit-appearance:none;
|
|
47
|
+
-moz-appearance:none;
|
|
48
|
+
appearance:none;
|
|
49
|
+
background:transparent;
|
|
50
|
+
}
|
|
51
|
+
.dragHandle button:disabled{
|
|
52
|
+
cursor:not-allowed;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.afterContent{
|
|
56
|
+
color:var(--sn-theme-color-available-version-textSecondary, var(--sn-brand-color-text-version-secondary, rgba(65, 66, 78, 0.8)));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.expandableIcon{
|
|
60
|
+
display:flex;
|
|
61
|
+
align-items:center;
|
|
62
|
+
color:var(--sn-theme-color-available-version-textSecondary, var(--sn-brand-color-text-version-secondary, rgba(65, 66, 78, 0.8)));
|
|
63
|
+
fill:currentcolor;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.groupIndicator{
|
|
67
|
+
cursor:pointer;
|
|
68
|
+
position:relative;
|
|
69
|
+
display:flex;
|
|
70
|
+
flex-shrink:0;
|
|
71
|
+
align-items:center;
|
|
72
|
+
justify-content:center;
|
|
73
|
+
padding:0;
|
|
74
|
+
border:none;
|
|
75
|
+
border-radius:var(--sn-primitive-dimension-8, 8px);
|
|
76
|
+
color:var(--sn-theme-color-available-version-textSecondary, var(--sn-brand-color-text-version-secondary, rgba(65, 66, 78, 0.8)));
|
|
77
|
+
-webkit-appearance:none;
|
|
78
|
+
-moz-appearance:none;
|
|
79
|
+
appearance:none;
|
|
80
|
+
background:transparent;
|
|
81
|
+
outline:none;
|
|
82
|
+
}
|
|
83
|
+
.groupIndicator svg{
|
|
84
|
+
position:relative;
|
|
85
|
+
z-index:1;
|
|
86
|
+
width:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
87
|
+
height:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
88
|
+
}
|
|
89
|
+
.groupIndicator:focus-visible{
|
|
90
|
+
outline:var(--sn-theme-color-available-complementary, #000000) solid var(--sn-primitive-strokeWeight-strokeSemiBold, 2px);
|
|
91
|
+
outline-offset:calc(0px - var(--sn-primitive-strokeWeight-strokeSemiBold, 2px));
|
|
92
|
+
}
|
|
93
|
+
.groupIndicator[data-open]{
|
|
94
|
+
border-radius:var(--sn-primitive-dimension-2, 2px);
|
|
95
|
+
color:var(--sn-theme-color-available-version-textMain, var(--sn-brand-color-text-version-main, #41424e));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.groupIndicatorState{
|
|
99
|
+
pointer-events:none;
|
|
100
|
+
position:absolute;
|
|
101
|
+
inset:0;
|
|
102
|
+
border-radius:inherit;
|
|
103
|
+
background:transparent;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.groupIndicator:hover > .groupIndicatorState{
|
|
107
|
+
background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-hovered-filled, var(--sn-brand-color-state-neutral-forLightMode-hovered-background, rgba(188, 195, 220, 0.1490196078)));
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.groupIndicator:active > .groupIndicatorState{
|
|
111
|
+
background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-pressed-filled, var(--sn-brand-color-state-neutral-forLightMode-pressed-background, rgba(188, 195, 220, 0.3019607843)));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.groupIndicator[data-open] > .groupIndicatorState{
|
|
115
|
+
background:var(--sn-theme-color-neutral-decorTransparent, var(--sn-brand-color-neutral-transparent-forLightMode, rgba(124, 131, 182, 0.0784313725)));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.markerContainer{
|
|
119
|
+
pointer-events:none;
|
|
120
|
+
position:absolute;
|
|
121
|
+
top:0;
|
|
122
|
+
left:0;
|
|
123
|
+
box-sizing:border-box;
|
|
124
|
+
height:100%;
|
|
125
|
+
}
|
|
126
|
+
.markerContainer::before{
|
|
127
|
+
content:"";
|
|
128
|
+
display:block;
|
|
129
|
+
width:100%;
|
|
130
|
+
height:100%;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.droplistItem{
|
|
134
|
+
position:relative;
|
|
135
|
+
z-index:1;
|
|
136
|
+
width:100%;
|
|
137
|
+
}
|
|
138
|
+
.droplistItem[data-size=s][data-level-one], .droplistItem[data-size=s][data-level-more-one]{
|
|
139
|
+
padding-left:calc(var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px))) + var(--level, 0) * calc(var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px)) + var(--sn-list-anatomy-size-s-listItem-gap, var(--sn-density-spacing-control-wrapper-horizontal-s, var(--sn-primitive-dimension-8, 8px)))));
|
|
140
|
+
}
|
|
141
|
+
.droplistItem[data-size=s] .checkbox{
|
|
142
|
+
width:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
143
|
+
height:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
144
|
+
padding-top:var(--sn-list-anatomy-size-s-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
|
|
145
|
+
padding-bottom:var(--sn-list-anatomy-size-s-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
|
|
146
|
+
}
|
|
147
|
+
.droplistItem[data-size=s] .beforeContent,
|
|
148
|
+
.droplistItem[data-size=s] .dragHandle{
|
|
149
|
+
width:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
150
|
+
height:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
151
|
+
padding-top:var(--sn-list-anatomy-size-s-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
|
|
152
|
+
padding-bottom:var(--sn-list-anatomy-size-s-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
|
|
153
|
+
}
|
|
154
|
+
.droplistItem[data-size=s] .afterContent{
|
|
155
|
+
min-width:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
156
|
+
min-height:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
157
|
+
padding-top:var(--sn-list-anatomy-size-s-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
|
|
158
|
+
padding-bottom:var(--sn-list-anatomy-size-s-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
|
|
159
|
+
}
|
|
160
|
+
.droplistItem[data-size=s] .expandableIcon{
|
|
161
|
+
width:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
162
|
+
height:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
163
|
+
}
|
|
164
|
+
.droplistItem[data-size=s] .groupIndicator{
|
|
165
|
+
width:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
166
|
+
height:var(--sn-density-size-icon-xs, var(--sn-primitive-dimension-24, 24px));
|
|
167
|
+
margin-top:var(--sn-list-anatomy-size-s-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
|
|
168
|
+
}
|
|
169
|
+
.droplistItem[data-size=s] .markerContainer{
|
|
170
|
+
padding-top:var(--sn-list-anatomy-size-s-listItem-markerWrapper-marker-paddingVertical, var(--sn-primitive-dimension-2, 2px));
|
|
171
|
+
padding-bottom:var(--sn-list-anatomy-size-s-listItem-markerWrapper-marker-paddingVertical, var(--sn-primitive-dimension-2, 2px));
|
|
172
|
+
width:var(--sn-list-anatomy-size-s-listItem-markerWrapper-width, var(--sn-primitive-dimension-2, 2px));
|
|
173
|
+
}
|
|
174
|
+
.droplistItem[data-size=s] .markerContainer::before{
|
|
175
|
+
border-radius:var(--sn-list-anatomy-size-s-listItem-markerWrapper-borderTopLeftRadius, var(--sn-primitive-dimension-0, 0)) var(--sn-list-anatomy-size-s-listItem-markerWrapper-borderTopRightRadius, var(--sn-primitive-dimension-2, 2px)) var(--sn-list-anatomy-size-s-listItem-markerWrapper-borderBottomRightRadius, var(--sn-primitive-dimension-2, 2px)) var(--sn-list-anatomy-size-s-listItem-markerWrapper-borderBottomLeftRadius, var(--sn-primitive-dimension-0, 0));
|
|
176
|
+
}
|
|
177
|
+
.droplistItem[data-size=s] .content{
|
|
178
|
+
font-family:var(--sn-regular-body-s-fontFamily, var(--sn-brand-font-fontFamily-regular-body, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface)));
|
|
179
|
+
font-weight:var(--sn-regular-body-s-fontWeight, var(--sn-theme-typography-fontWeight-regular-body-s, var(--sn-brand-font-fontWeight-light-regular-body-s, var(--sn-primitive-font-fontWeightValue-400, 400))));
|
|
180
|
+
line-height:var(--sn-regular-body-s-lineHeight, var(--sn-density-typography-roleBody-lineHeightS, var(--sn-primitive-font-lineHeight-by14, 20px)));
|
|
181
|
+
font-size:var(--sn-regular-body-s-fontSize, var(--sn-density-typography-roleBody-fontSizeS, var(--sn-primitive-font-fontSize-14, 14px)));
|
|
182
|
+
letter-spacing:var(--sn-regular-body-s-letterSpacing, var(--sn-primitive-font-letterSpacing-m, 0.1px));
|
|
183
|
+
paragraph-spacing:var(--sn-regular-body-s-paragraphSpacing, var(--sn-primitive-font-paragraphSpacing-byFontSize12, 6px));
|
|
184
|
+
}
|
|
185
|
+
.droplistItem[data-size=m][data-level-one], .droplistItem[data-size=m][data-level-more-one]{
|
|
186
|
+
padding-left:calc(var(--sn-list-anatomy-size-m-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px))) + var(--level, 0) * calc(var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px)) + var(--sn-list-anatomy-size-m-listItem-gap, var(--sn-density-spacing-control-wrapper-horizontal-m, var(--sn-primitive-dimension-8, 8px)))));
|
|
187
|
+
}
|
|
188
|
+
.droplistItem[data-size=m] .checkbox{
|
|
189
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
190
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
191
|
+
padding-top:var(--sn-list-anatomy-size-m-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
|
|
192
|
+
padding-bottom:var(--sn-list-anatomy-size-m-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
|
|
193
|
+
}
|
|
194
|
+
.droplistItem[data-size=m] .beforeContent,
|
|
195
|
+
.droplistItem[data-size=m] .dragHandle{
|
|
196
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
197
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
198
|
+
padding-top:var(--sn-list-anatomy-size-m-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
|
|
199
|
+
padding-bottom:var(--sn-list-anatomy-size-m-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
|
|
200
|
+
}
|
|
201
|
+
.droplistItem[data-size=m] .afterContent{
|
|
202
|
+
min-width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
203
|
+
min-height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
204
|
+
padding-top:var(--sn-list-anatomy-size-m-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
|
|
205
|
+
padding-bottom:var(--sn-list-anatomy-size-m-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
|
|
206
|
+
}
|
|
207
|
+
.droplistItem[data-size=m] .expandableIcon{
|
|
208
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
209
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
210
|
+
}
|
|
211
|
+
.droplistItem[data-size=m] .groupIndicator{
|
|
212
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
213
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
214
|
+
margin-top:var(--sn-list-anatomy-size-m-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
|
|
215
|
+
}
|
|
216
|
+
.droplistItem[data-size=m] .markerContainer{
|
|
217
|
+
padding-top:var(--sn-list-anatomy-size-m-listItem-markerWrapper-marker-paddingVertical, var(--sn-primitive-dimension-4, 4px));
|
|
218
|
+
padding-bottom:var(--sn-list-anatomy-size-m-listItem-markerWrapper-marker-paddingVertical, var(--sn-primitive-dimension-4, 4px));
|
|
219
|
+
width:var(--sn-list-anatomy-size-m-listItem-markerWrapper-width, var(--sn-primitive-dimension-2, 2px));
|
|
220
|
+
}
|
|
221
|
+
.droplistItem[data-size=m] .markerContainer::before{
|
|
222
|
+
border-radius:var(--sn-list-anatomy-size-m-listItem-markerWrapper-borderTopLeftRadius, var(--sn-primitive-dimension-0, 0)) var(--sn-list-anatomy-size-m-listItem-markerWrapper-borderTopRightRadius, var(--sn-primitive-dimension-2, 2px)) var(--sn-list-anatomy-size-m-listItem-markerWrapper-borderBottomRightRadius, var(--sn-primitive-dimension-2, 2px)) var(--sn-list-anatomy-size-m-listItem-markerWrapper-borderBottomLeftRadius, var(--sn-primitive-dimension-0, 0));
|
|
223
|
+
}
|
|
224
|
+
.droplistItem[data-size=m] .content{
|
|
225
|
+
font-family:var(--sn-regular-body-m-fontFamily, var(--sn-brand-font-fontFamily-regular-body, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface)));
|
|
226
|
+
font-weight:var(--sn-regular-body-m-fontWeight, var(--sn-theme-typography-fontWeight-regular-body-m, var(--sn-brand-font-fontWeight-light-regular-body-m, var(--sn-primitive-font-fontWeightValue-400, 400))));
|
|
227
|
+
line-height:var(--sn-regular-body-m-lineHeight, var(--sn-density-typography-roleBody-lineHeightM, var(--sn-primitive-font-lineHeight-by16, 24px)));
|
|
228
|
+
font-size:var(--sn-regular-body-m-fontSize, var(--sn-density-typography-roleBody-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px)));
|
|
229
|
+
letter-spacing:var(--sn-regular-body-m-letterSpacing, var(--sn-primitive-font-letterSpacing-m, 0.1px));
|
|
230
|
+
paragraph-spacing:var(--sn-regular-body-m-paragraphSpacing, var(--sn-primitive-font-paragraphSpacing-byFontSize14, 7px));
|
|
231
|
+
}
|
|
232
|
+
.droplistItem[data-size=l][data-level-one], .droplistItem[data-size=l][data-level-more-one]{
|
|
233
|
+
padding-left:calc(var(--sn-list-anatomy-size-l-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-l, var(--sn-primitive-dimension-20, 20px))) + var(--level, 0) * calc(var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px)) + var(--sn-list-anatomy-size-l-listItem-gap, var(--sn-density-spacing-control-wrapper-horizontal-l, var(--sn-primitive-dimension-12, 12px)))));
|
|
234
|
+
}
|
|
235
|
+
.droplistItem[data-size=l] .checkbox{
|
|
236
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
237
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
238
|
+
padding-top:var(--sn-list-anatomy-size-l-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
|
|
239
|
+
padding-bottom:var(--sn-list-anatomy-size-l-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
|
|
240
|
+
}
|
|
241
|
+
.droplistItem[data-size=l] .beforeContent,
|
|
242
|
+
.droplistItem[data-size=l] .dragHandle{
|
|
243
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
244
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
245
|
+
padding-top:var(--sn-list-anatomy-size-l-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
|
|
246
|
+
padding-bottom:var(--sn-list-anatomy-size-l-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
|
|
247
|
+
}
|
|
248
|
+
.droplistItem[data-size=l] .afterContent{
|
|
249
|
+
min-width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
250
|
+
min-height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
251
|
+
padding-top:var(--sn-list-anatomy-size-l-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
|
|
252
|
+
padding-bottom:var(--sn-list-anatomy-size-l-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
|
|
253
|
+
}
|
|
254
|
+
.droplistItem[data-size=l] .expandableIcon{
|
|
255
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
256
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
257
|
+
}
|
|
258
|
+
.droplistItem[data-size=l] .groupIndicator{
|
|
259
|
+
width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
260
|
+
height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
|
|
261
|
+
margin-top:var(--sn-list-anatomy-size-l-listItem-centeredWrapper-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
|
|
262
|
+
}
|
|
263
|
+
.droplistItem[data-size=l] .markerContainer{
|
|
264
|
+
padding-top:var(--sn-list-anatomy-size-l-listItem-markerWrapper-marker-paddingVertical, var(--sn-primitive-dimension-6, 6px));
|
|
265
|
+
padding-bottom:var(--sn-list-anatomy-size-l-listItem-markerWrapper-marker-paddingVertical, var(--sn-primitive-dimension-6, 6px));
|
|
266
|
+
width:var(--sn-list-anatomy-size-l-listItem-markerWrapper-width, var(--sn-primitive-dimension-4, 4px));
|
|
267
|
+
}
|
|
268
|
+
.droplistItem[data-size=l] .markerContainer::before{
|
|
269
|
+
border-radius:var(--sn-list-anatomy-size-l-listItem-markerWrapper-borderTopLeftRadius, var(--sn-primitive-dimension-0, 0)) var(--sn-list-anatomy-size-l-listItem-markerWrapper-borderTopRightRadius, var(--sn-primitive-dimension-2, 2px)) var(--sn-list-anatomy-size-l-listItem-markerWrapper-borderBottomRightRadius, var(--sn-primitive-dimension-2, 2px)) var(--sn-list-anatomy-size-l-listItem-markerWrapper-borderBottomLeftRadius, var(--sn-primitive-dimension-0, 0));
|
|
270
|
+
}
|
|
271
|
+
.droplistItem[data-size=l] .content{
|
|
272
|
+
font-family:var(--sn-regular-body-l-fontFamily, var(--sn-brand-font-fontFamily-regular-body, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface)));
|
|
273
|
+
font-weight:var(--sn-regular-body-l-fontWeight, var(--sn-theme-typography-fontWeight-regular-body-l, var(--sn-brand-font-fontWeight-light-regular-body-l, var(--sn-primitive-font-fontWeightValue-400, 400))));
|
|
274
|
+
line-height:var(--sn-regular-body-l-lineHeight, var(--sn-density-typography-roleBody-lineHeightL, var(--sn-primitive-font-lineHeight-by20, 28px)));
|
|
275
|
+
font-size:var(--sn-regular-body-l-fontSize, var(--sn-density-typography-roleBody-fontSizeL, var(--sn-primitive-font-fontSize-20, 20px)));
|
|
276
|
+
letter-spacing:var(--sn-regular-body-l-letterSpacing, var(--sn-primitive-font-letterSpacing-m, 0.1px));
|
|
277
|
+
paragraph-spacing:var(--sn-regular-body-l-paragraphSpacing, var(--sn-primitive-font-paragraphSpacing-byFontSize16, 8px));
|
|
278
|
+
}
|
|
279
|
+
.droplistItem[data-non-pointer]{
|
|
280
|
+
cursor:inherit;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.innerWrapper[data-disabled] .expandableIcon{
|
|
284
|
+
color:var(--sn-theme-color-available-version-textDisabled, var(--sn-brand-color-text-version-disabled, rgba(65, 66, 78, 0.3490196078)));
|
|
285
|
+
}
|
|
286
|
+
.innerWrapper[data-disabled] .groupIndicator{
|
|
287
|
+
cursor:not-allowed;
|
|
288
|
+
color:var(--sn-theme-color-available-version-textDisabled, var(--sn-brand-color-text-version-disabled, rgba(65, 66, 78, 0.3490196078)));
|
|
289
|
+
}
|
|
290
|
+
.innerWrapper[data-disabled] .beforeContent,
|
|
291
|
+
.innerWrapper[data-disabled] .dragHandle{
|
|
292
|
+
opacity:var(--sn-theme-effect-opacity-disabled, 0.4);
|
|
293
|
+
}
|
|
294
|
+
.innerWrapper[data-disabled] .droplistItem{
|
|
295
|
+
cursor:not-allowed;
|
|
296
|
+
}
|
|
297
|
+
.innerWrapper[data-has-checked] .markerContainer::before, .innerWrapper[data-checked] .markerContainer::before{
|
|
298
|
+
background-color:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-55, var(--sn-brandRole-color-brandA-55, var(--sn-primitive-color-brandA-55, #389f74))));
|
|
299
|
+
}
|
|
300
|
+
.innerWrapper[data-has-checked] .droplistItem:focus-visible, .innerWrapper[data-checked] .droplistItem:focus-visible{
|
|
301
|
+
outline-color:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-55, var(--sn-brandRole-color-brandA-55, var(--sn-primitive-color-brandA-55, #389f74))));
|
|
302
|
+
}
|
|
303
|
+
.innerWrapper[data-has-checked][data-disabled] .markerContainer::before, .innerWrapper[data-checked][data-disabled] .markerContainer::before{
|
|
304
|
+
background-color:var(--sn-theme-color-neutral-accent, var(--sn-brand-color-neutral-55, var(--sn-primitive-color-gray-55, #8b8fa7)));
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.content{
|
|
308
|
+
overflow:hidden;
|
|
309
|
+
flex-grow:1;
|
|
310
|
+
flex-shrink:1;
|
|
311
|
+
box-sizing:border-box;
|
|
312
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CommonFlattenProps, FlattenGroupSelectListItem } from '../types.js';
|
|
2
|
+
type GroupSelectItemProps = Omit<FlattenGroupSelectListItem, 'type'> & CommonFlattenProps;
|
|
3
|
+
export declare function GroupSelectItem({ label, beforeContent, truncate, divider, items, groupVariant, id, itemRef, allChildIds, selectButtonLabel, }: GroupSelectItemProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Separator } from '../../../helperComponents/index.js';
|
|
3
|
+
import { useGroupItemSelection, useRenderItems } from '../hooks.js';
|
|
4
|
+
export function GroupSelectItem({ label, beforeContent, truncate, divider, items, groupVariant, id, itemRef, allChildIds, selectButtonLabel, }) {
|
|
5
|
+
const { indeterminate, checked, handleOnSelect } = useGroupItemSelection({
|
|
6
|
+
items,
|
|
7
|
+
id,
|
|
8
|
+
disabled: false,
|
|
9
|
+
allChildIds,
|
|
10
|
+
});
|
|
11
|
+
const itemsJSX = useRenderItems(items);
|
|
12
|
+
return (_jsxs(_Fragment, { children: [_jsx(Separator, { label: label, beforeContent: beforeContent, truncate: truncate, divider: divider, groupVariant: groupVariant, selectButton: {
|
|
13
|
+
indeterminate,
|
|
14
|
+
checked,
|
|
15
|
+
itemRef,
|
|
16
|
+
onClick: handleOnSelect,
|
|
17
|
+
label: selectButtonLabel,
|
|
18
|
+
} }), itemsJSX] }));
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './GroupSelectItem.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './GroupSelectItem.js';
|