@box/metadata-taxonomy-picker 3.1.35 → 3.1.37

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.
Files changed (43) hide show
  1. package/dist/chunks/empty-state.js +1 -22
  2. package/dist/chunks/error-state.js +1 -41
  3. package/dist/chunks/load-more-error-row.js +1 -52
  4. package/dist/chunks/load-more-loading-row.js +1 -17
  5. package/dist/chunks/loading-state.js +1 -17
  6. package/dist/chunks/metadata-taxonomy-picker-shell.js +1 -282
  7. package/dist/chunks/taxonomy-ancestor-breadcrumb.js +1 -115
  8. package/dist/chunks/taxonomy-items-list.js +1 -114
  9. package/dist/chunks/taxonomy-level-filter.js +1 -48
  10. package/dist/chunks/taxonomy-menu-item.js +1 -99
  11. package/dist/esm/index.js +1 -3
  12. package/dist/esm/lib/components/metadata-taxonomy-picker-shell/index.js +1 -2
  13. package/dist/esm/lib/components/metadata-taxonomy-picker-shell/messages.js +1 -24
  14. package/dist/esm/lib/components/metadata-taxonomy-picker-shell/metadata-taxonomy-picker-shell.js +1 -2
  15. package/dist/esm/lib/components/taxonomy-ancestor-breadcrumb/index.js +1 -2
  16. package/dist/esm/lib/components/taxonomy-ancestor-breadcrumb/taxonomy-ancestor-breadcrumb.js +1 -2
  17. package/dist/esm/lib/components/taxonomy-items-list/empty-state/empty-state.js +1 -2
  18. package/dist/esm/lib/components/taxonomy-items-list/empty-state/index.js +1 -2
  19. package/dist/esm/lib/components/taxonomy-items-list/error-state/error-state.js +1 -2
  20. package/dist/esm/lib/components/taxonomy-items-list/error-state/index.js +1 -2
  21. package/dist/esm/lib/components/taxonomy-items-list/index.js +1 -6
  22. package/dist/esm/lib/components/taxonomy-items-list/load-more-feedback/index.js +1 -3
  23. package/dist/esm/lib/components/taxonomy-items-list/load-more-feedback/load-more-error-row.js +1 -2
  24. package/dist/esm/lib/components/taxonomy-items-list/load-more-feedback/load-more-loading-row.js +1 -2
  25. package/dist/esm/lib/components/taxonomy-items-list/load-more-feedback/messages.js +1 -20
  26. package/dist/esm/lib/components/taxonomy-items-list/loading-state/index.js +1 -2
  27. package/dist/esm/lib/components/taxonomy-items-list/loading-state/loading-state.js +1 -2
  28. package/dist/esm/lib/components/taxonomy-items-list/messages.js +1 -36
  29. package/dist/esm/lib/components/taxonomy-items-list/taxonomy-items-list.js +1 -2
  30. package/dist/esm/lib/components/taxonomy-level-filter/index.js +1 -2
  31. package/dist/esm/lib/components/taxonomy-level-filter/messages.js +1 -6
  32. package/dist/esm/lib/components/taxonomy-level-filter/taxonomy-level-filter.js +1 -2
  33. package/dist/esm/lib/components/taxonomy-menu-item/index.js +1 -2
  34. package/dist/esm/lib/components/taxonomy-menu-item/messages.js +1 -6
  35. package/dist/esm/lib/components/taxonomy-menu-item/taxonomy-menu-item.js +1 -2
  36. package/dist/esm/lib/components/taxonomy-menu-item/use-taxonomy-menu-item-keyboard.js +1 -100
  37. package/dist/esm/lib/constants.js +1 -2
  38. package/dist/esm/lib/hooks/messages.js +1 -16
  39. package/dist/esm/lib/hooks/use-taxonomy-picker-controller.js +1 -261
  40. package/dist/esm/lib/metadata-taxonomy-picker.js +1 -10
  41. package/dist/esm/lib/state/reducer.js +1 -152
  42. package/dist/esm/lib/state/transitions.js +1 -22
  43. package/package.json +7 -7
@@ -1,114 +1 @@
1
- import "../esm/lib/constants.js";
2
- import { t as e } from "./empty-state.js";
3
- import { t } from "./error-state.js";
4
- import { t as n } from "./loading-state.js";
5
- import { t as r } from "./taxonomy-menu-item.js";
6
- import { t as i } from "./load-more-error-row.js";
7
- import { t as a } from "./load-more-loading-row.js";
8
- import { forwardRef as o, memo as s, useCallback as c, useEffect as l, useImperativeHandle as u, useLayoutEffect as d, useRef as f } from "react";
9
- import { Radio as p } from "@box/blueprint-web";
10
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
11
- import { Composite as g, CompositeProvider as _ } from "@ariakit/react";
12
- import { useVirtualizer as v } from "@tanstack/react-virtual";
13
- import '../styles/taxonomy-items-list.css';var y = {
14
- scrollContainer: "_scrollContainer_lky3p_1",
15
- virtualContent: "_virtualContent_lky3p_11",
16
- virtualRow: "_virtualRow_lky3p_23"
17
- }, b = /*#__PURE__*/ s(function({ children: e, selectedValue: t, onValueChange: n }) {
18
- let r = f(null), i = c((e) => {
19
- r.current = e.key;
20
- }, []), a = c((e) => {
21
- let t = r.current === "ArrowUp" || r.current === "ArrowDown";
22
- r.current = null, n(e, !t);
23
- }, [n]);
24
- return /* @__PURE__ */ m(p.Group, {
25
- name: "taxonomy-picker",
26
- onKeyDown: i,
27
- onValueChange: a,
28
- value: t,
29
- children: e
30
- });
31
- }), x = (e) => e.getBoundingClientRect().height, S = "__load-more-skeleton__", C = /*#__PURE__*/ o(function({ items: o, multiSelect: s, selectedValue: p, estimatedRowHeight: C = 36, hasVariableRowHeight: w = !1, isSearchMode: T = !1, isFetching: E, error: D, loadMoreError: O = null, listboxId: k, onFocusExit: A, onRetry: j, hasMore: M = !1, isFetchingMore: N = !1, onLoadMore: P }, F) {
32
- let I = f(null);
33
- u(F, () => ({
34
- getScrollTop: () => I.current?.scrollTop ?? 0,
35
- scrollTo: (e) => {
36
- I.current && (I.current.scrollTop = e);
37
- }
38
- }), []);
39
- let L = N, R = o.length + +!!L, z = c((e) => e >= o.length ? 112 : C, [C, o.length]), B = c((e) => e >= o.length ? S : o[e].id, [o]), V = c((e, t) => {
40
- let n = o.find((t) => t.id === e);
41
- n?.selectable && n.onSelect(e, t);
42
- }, [o]), H = v({
43
- count: R,
44
- getScrollElement: () => I.current,
45
- estimateSize: z,
46
- gap: 1,
47
- overscan: 20,
48
- getItemKey: B,
49
- measureElement: x
50
- }), U = f(o.length), W = f(null);
51
- o.length !== U.current && (o.length > U.current && I.current && (W.current = I.current.scrollTop), U.current = o.length), d(() => {
52
- let e = W.current;
53
- if (W.current = null, e === null) return;
54
- let t = I.current;
55
- t && t.scrollTop !== e && (t.scrollTop = e);
56
- });
57
- let G = f(P);
58
- G.current = P;
59
- let K = f(!1);
60
- K.current = M && !N && O === null && !!P;
61
- let q = E && o.length === 0, J = !E && D !== null, Y = !E && D === null && o.length === 0;
62
- if (l(() => {
63
- let e = I.current;
64
- if (!e) return;
65
- let t = 0, n = () => {
66
- K.current && e.scrollHeight - e.scrollTop - e.clientHeight <= 200 && G.current?.();
67
- }, r = () => {
68
- cancelAnimationFrame(t), t = requestAnimationFrame(n);
69
- };
70
- return e.addEventListener("scroll", r, { passive: !0 }), t = requestAnimationFrame(n), () => {
71
- e.removeEventListener("scroll", r), cancelAnimationFrame(t);
72
- };
73
- }, [o.length]), q) return /* @__PURE__ */ m(n, {});
74
- if (J) return /* @__PURE__ */ m(t, { onRetry: j });
75
- if (Y) return /* @__PURE__ */ m(e, { isSearchMode: T });
76
- let X = /* @__PURE__ */ m(_, { children: /* @__PURE__ */ m(g, { children: /* @__PURE__ */ m("div", {
77
- className: y.virtualContent,
78
- style: { height: H.getTotalSize() },
79
- children: H.getVirtualItems().map((e) => {
80
- if (e.index >= o.length) return /* @__PURE__ */ m("div", {
81
- ref: H.measureElement,
82
- className: y.virtualRow,
83
- "data-index": e.index,
84
- style: { transform: `translateY(${e.start}px)` },
85
- children: /* @__PURE__ */ m(a, {})
86
- }, e.key);
87
- let t = o[e.index];
88
- return /* @__PURE__ */ m("div", {
89
- ref: w ? H.measureElement : void 0,
90
- className: y.virtualRow,
91
- "data-index": e.index,
92
- style: { transform: `translateY(${e.start}px)` },
93
- children: /* @__PURE__ */ m(r, {
94
- ...t,
95
- onFocusExit: e.index === 0 ? A : void 0,
96
- isSearchMode: T
97
- })
98
- }, e.key);
99
- })
100
- }) }) });
101
- return /* @__PURE__ */ h("div", {
102
- ref: I,
103
- "aria-multiselectable": s || void 0,
104
- className: y.scrollContainer,
105
- id: k,
106
- role: "listbox",
107
- children: [s ? X : /* @__PURE__ */ m(b, {
108
- onValueChange: V,
109
- selectedValue: p,
110
- children: X
111
- }), O !== null && !N && /* @__PURE__ */ m(i, { onRetry: j })]
112
- });
113
- });
114
- export { C as t };
1
+ import"../esm/lib/constants.js";import{t as EmptyListState}from"./empty-state.js";import{t as ErrorState}from"./error-state.js";import{t as LoadingState}from"./loading-state.js";import{t as TaxonomyMenuItem}from"./taxonomy-menu-item.js";import{t as LoadMoreErrorRow}from"./load-more-error-row.js";import{t as LoadMoreLoadingRow}from"./load-more-loading-row.js";import{forwardRef,memo,useCallback,useEffect,useImperativeHandle,useLayoutEffect,useRef}from"react";import{Radio}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import{Composite,CompositeProvider}from"@ariakit/react";import{useVirtualizer}from"@tanstack/react-virtual";import '../styles/taxonomy-items-list.css';var taxonomy_items_list_module_default={scrollContainer:`_scrollContainer_lky3p_1`,virtualContent:`_virtualContent_lky3p_11`,virtualRow:`_virtualRow_lky3p_23`},RadioGroupWrapper=memo(function({children,selectedValue,onValueChange}){let lastKeyRef=useRef(null),handleKeyDown=useCallback(e=>{lastKeyRef.current=e.key},[]),handleValueChange=useCallback(value=>{let isArrowNavigation=lastKeyRef.current===`ArrowUp`||lastKeyRef.current===`ArrowDown`;lastKeyRef.current=null,onValueChange(value,!isArrowNavigation)},[onValueChange]);return jsx(Radio.Group,{name:`taxonomy-picker`,onKeyDown:handleKeyDown,onValueChange:handleValueChange,value:selectedValue,children})}),measureElement=element=>element.getBoundingClientRect().height,LOAD_MORE_VIRTUAL_KEY=`__load-more-skeleton__`,TaxonomyItemsList=forwardRef(function({items,multiSelect,selectedValue,estimatedRowHeight=36,hasVariableRowHeight=!1,isSearchMode=!1,isFetching,error,loadMoreError=null,listboxId,onFocusExit,onRetry,hasMore=!1,isFetchingMore=!1,onLoadMore},ref){let scrollRef=useRef(null);useImperativeHandle(ref,()=>({getScrollTop:()=>scrollRef.current?.scrollTop??0,scrollTo:top=>{scrollRef.current&&(scrollRef.current.scrollTop=top)}}),[]);let showLoadingSlot=isFetchingMore,virtualCount=items.length+ +!!showLoadingSlot,estimateSize=useCallback(index=>index>=items.length?112:estimatedRowHeight,[estimatedRowHeight,items.length]),getItemKey=useCallback(index=>index>=items.length?LOAD_MORE_VIRTUAL_KEY:items[index].id,[items]),handleRadioGroupChange=useCallback((nextValue,closeAfterSelect)=>{let target=items.find(item=>item.id===nextValue);target?.selectable&&target.onSelect(nextValue,closeAfterSelect)},[items]),virtualizer=useVirtualizer({count:virtualCount,getScrollElement:()=>scrollRef.current,estimateSize,gap:1,overscan:20,getItemKey,measureElement}),previousItemsLengthRef=useRef(items.length),preCommitScrollTopRef=useRef(null);items.length!==previousItemsLengthRef.current&&(items.length>previousItemsLengthRef.current&&scrollRef.current&&(preCommitScrollTopRef.current=scrollRef.current.scrollTop),previousItemsLengthRef.current=items.length),useLayoutEffect(()=>{let targetScrollTop=preCommitScrollTopRef.current;if(preCommitScrollTopRef.current=null,targetScrollTop===null)return;let scrollContainer=scrollRef.current;scrollContainer&&scrollContainer.scrollTop!==targetScrollTop&&(scrollContainer.scrollTop=targetScrollTop)});let onLoadMoreRef=useRef(onLoadMore);onLoadMoreRef.current=onLoadMore;let canLoadMoreRef=useRef(!1);canLoadMoreRef.current=hasMore&&!isFetchingMore&&loadMoreError===null&&!!onLoadMore;let showSkeleton=isFetching&&items.length===0,showError=!isFetching&&error!==null,showEmpty=!isFetching&&error===null&&items.length===0;if(useEffect(()=>{let scrollContainer=scrollRef.current;if(!scrollContainer)return;let rafId=0,maybeLoadMore=()=>{canLoadMoreRef.current&&scrollContainer.scrollHeight-scrollContainer.scrollTop-scrollContainer.clientHeight<=200&&onLoadMoreRef.current?.()},handleScroll=()=>{cancelAnimationFrame(rafId),rafId=requestAnimationFrame(maybeLoadMore)};return scrollContainer.addEventListener(`scroll`,handleScroll,{passive:!0}),rafId=requestAnimationFrame(maybeLoadMore),()=>{scrollContainer.removeEventListener(`scroll`,handleScroll),cancelAnimationFrame(rafId)}},[items.length]),showSkeleton)return jsx(LoadingState,{});if(showError)return jsx(ErrorState,{onRetry});if(showEmpty)return jsx(EmptyListState,{isSearchMode});let compositeRows=jsx(CompositeProvider,{children:jsx(Composite,{children:jsx(`div`,{className:taxonomy_items_list_module_default.virtualContent,style:{height:virtualizer.getTotalSize()},children:virtualizer.getVirtualItems().map(virtualRow=>{if(virtualRow.index>=items.length)return jsx(`div`,{ref:virtualizer.measureElement,className:taxonomy_items_list_module_default.virtualRow,"data-index":virtualRow.index,style:{transform:`translateY(${virtualRow.start}px)`},children:jsx(LoadMoreLoadingRow,{})},virtualRow.key);let itemProps=items[virtualRow.index];return jsx(`div`,{ref:hasVariableRowHeight?virtualizer.measureElement:void 0,className:taxonomy_items_list_module_default.virtualRow,"data-index":virtualRow.index,style:{transform:`translateY(${virtualRow.start}px)`},children:jsx(TaxonomyMenuItem,{...itemProps,onFocusExit:virtualRow.index===0?onFocusExit:void 0,isSearchMode})},virtualRow.key)})})})});return jsxs(`div`,{ref:scrollRef,"aria-multiselectable":multiSelect||void 0,className:taxonomy_items_list_module_default.scrollContainer,id:listboxId,role:`listbox`,children:[multiSelect?compositeRows:jsx(RadioGroupWrapper,{onValueChange:handleRadioGroupChange,selectedValue,children:compositeRows}),loadMoreError!==null&&!isFetchingMore&&jsx(LoadMoreErrorRow,{onRetry})]})});export{TaxonomyItemsList as t};
@@ -1,48 +1 @@
1
- import { messages as e } from "../esm/lib/components/taxonomy-level-filter/messages.js";
2
- import { useIntl as t } from "react-intl";
3
- import { DropdownMenu as n, TextButton as r } from "@box/blueprint-web";
4
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
- import { Checkmark as o, ChevronDown as s } from "@box/blueprint-web-assets/icons/Medium";
6
- import '../styles/taxonomy-level-filter.css';var c = {
7
- container: "_container_mbgfz_2",
8
- popoverContent: "_popoverContent_mbgfz_10",
9
- itemStartElement: "_itemStartElement_mbgfz_16",
10
- levelFilterButton: "_levelFilterButton_mbgfz_26"
11
- };
12
- function l({ availableLevels: l, levelFilter: u, onLevelFilterChange: d, container: f }) {
13
- let { formatMessage: p } = t(), m = p(e.allOption), h = u === null ? m : l.find((e) => e.level === u)?.displayName ?? m;
14
- return /* @__PURE__ */ i("div", {
15
- className: c.container,
16
- children: /* @__PURE__ */ a(n.Root, {
17
- modal: !1,
18
- children: [/* @__PURE__ */ i(n.Trigger, { children: /* @__PURE__ */ i(r, {
19
- className: c.levelFilterButton,
20
- icon: s,
21
- variant: "bodyDefault",
22
- children: h
23
- }) }), /* @__PURE__ */ a(n.Content, {
24
- className: c.popoverContent,
25
- align: "start",
26
- container: f,
27
- children: [
28
- /* @__PURE__ */ a(n.Item, {
29
- onClick: () => d(null),
30
- children: [/* @__PURE__ */ i(n.Item.StartElement, {
31
- className: c.itemStartElement,
32
- icon: u === null ? o : void 0
33
- }), /* @__PURE__ */ i(n.Item.MainContent, { label: m })]
34
- }),
35
- /* @__PURE__ */ i(n.Separator, {}),
36
- l.map((e) => /* @__PURE__ */ a(n.Item, {
37
- onClick: () => d(e.level),
38
- children: [/* @__PURE__ */ i(n.Item.StartElement, {
39
- className: c.itemStartElement,
40
- icon: u === e.level ? o : void 0
41
- }), /* @__PURE__ */ i(n.Item.MainContent, { label: e.displayName })]
42
- }, e.level))
43
- ]
44
- })]
45
- })
46
- });
47
- }
48
- export { l as t };
1
+ import{messages}from"../esm/lib/components/taxonomy-level-filter/messages.js";import{useIntl}from"react-intl";import{DropdownMenu,TextButton}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import{Checkmark,ChevronDown}from"@box/blueprint-web-assets/icons/Medium";import '../styles/taxonomy-level-filter.css';var taxonomy_level_filter_module_default={container:`_container_mbgfz_2`,popoverContent:`_popoverContent_mbgfz_10`,itemStartElement:`_itemStartElement_mbgfz_16`,levelFilterButton:`_levelFilterButton_mbgfz_26`};function TaxonomyLevelFilter({availableLevels,levelFilter,onLevelFilterChange,container}){let{formatMessage}=useIntl(),allOption=formatMessage(messages.allOption),currentLabel=levelFilter===null?allOption:availableLevels.find(l=>l.level===levelFilter)?.displayName??allOption;return jsx(`div`,{className:taxonomy_level_filter_module_default.container,children:jsxs(DropdownMenu.Root,{modal:!1,children:[jsx(DropdownMenu.Trigger,{children:jsx(TextButton,{className:taxonomy_level_filter_module_default.levelFilterButton,icon:ChevronDown,variant:`bodyDefault`,children:currentLabel})}),jsxs(DropdownMenu.Content,{className:taxonomy_level_filter_module_default.popoverContent,align:`start`,container,children:[jsxs(DropdownMenu.Item,{onClick:()=>onLevelFilterChange(null),children:[jsx(DropdownMenu.Item.StartElement,{className:taxonomy_level_filter_module_default.itemStartElement,icon:levelFilter===null?Checkmark:void 0}),jsx(DropdownMenu.Item.MainContent,{label:allOption})]}),jsx(DropdownMenu.Separator,{}),availableLevels.map(level=>jsxs(DropdownMenu.Item,{onClick:()=>onLevelFilterChange(level.level),children:[jsx(DropdownMenu.Item.StartElement,{className:taxonomy_level_filter_module_default.itemStartElement,icon:levelFilter===level.level?Checkmark:void 0}),jsx(DropdownMenu.Item.MainContent,{label:level.displayName})]},level.level))]})]})})}export{TaxonomyLevelFilter as t};
@@ -1,99 +1 @@
1
- import { t as e } from "./taxonomy-ancestor-breadcrumb.js";
2
- import { messages as t } from "../esm/lib/components/taxonomy-menu-item/messages.js";
3
- import { useTaxonomyMenuItemKeyboard as n } from "../esm/lib/components/taxonomy-menu-item/use-taxonomy-menu-item-keyboard.js";
4
- import { memo as r, useCallback as i, useRef as a } from "react";
5
- import o from "clsx";
6
- import { useIntl as s } from "react-intl";
7
- import { Checkbox as c, EllipsizableText as l, IconButton as u, Radio as d } from "@box/blueprint-web";
8
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
9
- import { CompositeItem as m } from "@ariakit/react";
10
- import { ChevronRight as h } from "@box/blueprint-web-assets/icons/Medium";
11
- import '../styles/taxonomy-menu-item.css';var g = {
12
- row: "_row_1a4ve_2",
13
- rowWithAncestors: "_rowWithAncestors_1a4ve_19",
14
- nonSelectable: "_nonSelectable_1a4ve_24",
15
- selectionControl: "_selectionControl_1a4ve_31",
16
- content: "_content_1a4ve_41",
17
- drillDown: "_drillDown_1a4ve_48"
18
- }, _ = /*#__PURE__*/ r(function({ id: r, displayName: _, isSearchMode: v = !1, selectable: y, multiSelect: b, isSelected: x, showDrillDown: S, ancestors: C, onSelect: w, onDrillDown: T, onFocusExit: E }) {
19
- let { formatMessage: D } = s(), O = C != null && C.length > 0 && v, k = a(null), A = a(null), j = a(null), { handleSelectionControlFocus: M, handleRowKeyDown: N, handleRowKeyDownCapture: P, handleSelectionControlKeyDown: F, handleDrillDownKeyDown: I } = n({
20
- id: r,
21
- multiSelect: b,
22
- onSelect: w,
23
- onFocusExit: E,
24
- rowRef: k,
25
- selectionControlRef: A,
26
- drillDownRef: j
27
- }), L = i((e) => {
28
- e?.target?.tagName !== "INPUT" && (y ? w(r) : S && T?.(r));
29
- }, [
30
- y,
31
- S,
32
- w,
33
- T,
34
- r
35
- ]), R = i((e) => {
36
- e.stopPropagation(), T?.(r);
37
- }, [T, r]);
38
- return /* @__PURE__ */ p(m, {
39
- ref: k,
40
- render: /* @__PURE__ */ f("div", {
41
- role: "option",
42
- "aria-selected": x
43
- }),
44
- className: o(g.row, {
45
- [g.rowWithAncestors]: O,
46
- [g.nonSelectable]: !y
47
- }),
48
- "data-testid": `taxonomy-menu-item-${r}`,
49
- onClick: L,
50
- onKeyDown: N,
51
- onKeyDownCapture: P,
52
- children: [
53
- y && b && /* @__PURE__ */ f(c.Item, {
54
- ref: A,
55
- "aria-label": _,
56
- checked: x,
57
- className: g.selectionControl,
58
- label: "",
59
- tabIndex: -1,
60
- onClick: (e) => e.stopPropagation(),
61
- onCheckedChange: () => w(r),
62
- onKeyDown: F,
63
- value: r
64
- }),
65
- y && !b && /* @__PURE__ */ f(d.Item, {
66
- ref: A,
67
- "aria-label": _,
68
- className: g.selectionControl,
69
- label: "",
70
- tabIndex: -1,
71
- onClick: (e) => e.stopPropagation(),
72
- onFocus: M,
73
- onKeyDown: F,
74
- value: r
75
- }),
76
- /* @__PURE__ */ p("div", {
77
- className: g.content,
78
- children: [/* @__PURE__ */ f(l, {
79
- as: "span",
80
- lineClamp: 1,
81
- variant: O ? "bodyDefaultBold" : "bodyDefault",
82
- children: _
83
- }), O && /* @__PURE__ */ f(e, { ancestors: C })]
84
- }),
85
- S && /* @__PURE__ */ f(u, {
86
- ref: j,
87
- "aria-label": D(t.drillDownAriaLabel, { name: _ }),
88
- className: g.drillDown,
89
- "data-testid": `taxonomy-menu-item-drill-down-${r}`,
90
- icon: h,
91
- tabIndex: -1,
92
- onClick: R,
93
- onKeyDown: I,
94
- size: "x-small"
95
- })
96
- ]
97
- });
98
- });
99
- export { _ as t };
1
+ import{t as TaxonomyAncestorBreadcrumb}from"./taxonomy-ancestor-breadcrumb.js";import{messages}from"../esm/lib/components/taxonomy-menu-item/messages.js";import{useTaxonomyMenuItemKeyboard}from"../esm/lib/components/taxonomy-menu-item/use-taxonomy-menu-item-keyboard.js";import{memo,useCallback,useRef}from"react";import clsx from"clsx";import{useIntl}from"react-intl";import{Checkbox,EllipsizableText,IconButton,Radio}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import{CompositeItem}from"@ariakit/react";import{ChevronRight}from"@box/blueprint-web-assets/icons/Medium";import '../styles/taxonomy-menu-item.css';var taxonomy_menu_item_module_default={row:`_row_1a4ve_2`,rowWithAncestors:`_rowWithAncestors_1a4ve_19`,nonSelectable:`_nonSelectable_1a4ve_24`,selectionControl:`_selectionControl_1a4ve_31`,content:`_content_1a4ve_41`,drillDown:`_drillDown_1a4ve_48`},TaxonomyMenuItem=memo(function({id,displayName,isSearchMode=!1,selectable,multiSelect,isSelected,showDrillDown,ancestors,onSelect,onDrillDown,onFocusExit}){let{formatMessage}=useIntl(),showAncestors=ancestors!=null&&ancestors.length>0&&isSearchMode,rowRef=useRef(null),selectionControlRef=useRef(null),drillDownRef=useRef(null),{handleSelectionControlFocus,handleRowKeyDown,handleRowKeyDownCapture,handleSelectionControlKeyDown,handleDrillDownKeyDown}=useTaxonomyMenuItemKeyboard({id,multiSelect,onSelect,onFocusExit,rowRef,selectionControlRef,drillDownRef}),handleRowClick=useCallback(event=>{event?.target?.tagName!==`INPUT`&&(selectable?onSelect(id):showDrillDown&&onDrillDown?.(id))},[selectable,showDrillDown,onSelect,onDrillDown,id]),handleDrillDownClick=useCallback(event=>{event.stopPropagation(),onDrillDown?.(id)},[onDrillDown,id]);return jsxs(CompositeItem,{ref:rowRef,render:jsx(`div`,{role:`option`,"aria-selected":isSelected}),className:clsx(taxonomy_menu_item_module_default.row,{[taxonomy_menu_item_module_default.rowWithAncestors]:showAncestors,[taxonomy_menu_item_module_default.nonSelectable]:!selectable}),"data-testid":`taxonomy-menu-item-${id}`,onClick:handleRowClick,onKeyDown:handleRowKeyDown,onKeyDownCapture:handleRowKeyDownCapture,children:[selectable&&multiSelect&&jsx(Checkbox.Item,{ref:selectionControlRef,"aria-label":displayName,checked:isSelected,className:taxonomy_menu_item_module_default.selectionControl,label:``,tabIndex:-1,onClick:event=>event.stopPropagation(),onCheckedChange:()=>onSelect(id),onKeyDown:handleSelectionControlKeyDown,value:id}),selectable&&!multiSelect&&jsx(Radio.Item,{ref:selectionControlRef,"aria-label":displayName,className:taxonomy_menu_item_module_default.selectionControl,label:``,tabIndex:-1,onClick:event=>event.stopPropagation(),onFocus:handleSelectionControlFocus,onKeyDown:handleSelectionControlKeyDown,value:id}),jsxs(`div`,{className:taxonomy_menu_item_module_default.content,children:[jsx(EllipsizableText,{as:`span`,lineClamp:1,variant:showAncestors?`bodyDefaultBold`:`bodyDefault`,children:displayName}),showAncestors&&jsx(TaxonomyAncestorBreadcrumb,{ancestors})]}),showDrillDown&&jsx(IconButton,{ref:drillDownRef,"aria-label":formatMessage(messages.drillDownAriaLabel,{name:displayName}),className:taxonomy_menu_item_module_default.drillDown,"data-testid":`taxonomy-menu-item-drill-down-${id}`,icon:ChevronRight,tabIndex:-1,onClick:handleDrillDownClick,onKeyDown:handleDrillDownKeyDown,size:`x-small`})]})});export{TaxonomyMenuItem as t};
package/dist/esm/index.js CHANGED
@@ -1,3 +1 @@
1
- import { n as e } from "../chunks/metadata-taxonomy-picker-shell.js";
2
- import { MetadataTaxonomyPicker as t } from "./lib/metadata-taxonomy-picker.js";
3
- export { t as MetadataTaxonomyPicker, e as TaxonomyPickerMode };
1
+ import{n as TaxonomyPickerMode}from"../chunks/metadata-taxonomy-picker-shell.js";import{MetadataTaxonomyPicker}from"./lib/metadata-taxonomy-picker.js";export{MetadataTaxonomyPicker,TaxonomyPickerMode};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/metadata-taxonomy-picker-shell.js";
2
- export { e as MetadataTaxonomyPickerShell };
1
+ import{t as MetadataTaxonomyPickerShell}from"../../../../chunks/metadata-taxonomy-picker-shell.js";export{MetadataTaxonomyPickerShell};
@@ -1,24 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({
3
- placeholder: {
4
- id: "groupSharedFeatures.metadataTaxonomyPicker.shell.placeholder",
5
- defaultMessage: "Select an Option"
6
- },
7
- breadcrumbAriaLabel: {
8
- id: "groupSharedFeatures.metadataTaxonomyPicker.shell.breadcrumbAriaLabel",
9
- defaultMessage: "Taxonomy navigation"
10
- },
11
- breadcrumbRootLabel: {
12
- id: "groupSharedFeatures.metadataTaxonomyPicker.shell.breadcrumbRootLabel",
13
- defaultMessage: "All"
14
- },
15
- breadcrumbTruncatedLinksLabel: {
16
- id: "groupSharedFeatures.metadataTaxonomyPicker.shell.breadcrumbTruncatedLinksLabel",
17
- defaultMessage: "Show hidden parent levels"
18
- },
19
- clearAriaLabel: {
20
- id: "groupSharedFeatures.metadataTaxonomyPicker.shell.clearAriaLabel",
21
- defaultMessage: "Clear selection"
22
- }
23
- });
24
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({placeholder:{id:`groupSharedFeatures.metadataTaxonomyPicker.shell.placeholder`,defaultMessage:`Select an Option`},breadcrumbAriaLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.shell.breadcrumbAriaLabel`,defaultMessage:`Taxonomy navigation`},breadcrumbRootLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.shell.breadcrumbRootLabel`,defaultMessage:`All`},breadcrumbTruncatedLinksLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.shell.breadcrumbTruncatedLinksLabel`,defaultMessage:`Show hidden parent levels`},clearAriaLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.shell.clearAriaLabel`,defaultMessage:`Clear selection`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/metadata-taxonomy-picker-shell.js";
2
- export { e as MetadataTaxonomyPickerShell };
1
+ import{t as MetadataTaxonomyPickerShell}from"../../../../chunks/metadata-taxonomy-picker-shell.js";export{MetadataTaxonomyPickerShell};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/taxonomy-ancestor-breadcrumb.js";
2
- export { e as TaxonomyAncestorBreadcrumb };
1
+ import{t as TaxonomyAncestorBreadcrumb}from"../../../../chunks/taxonomy-ancestor-breadcrumb.js";export{TaxonomyAncestorBreadcrumb};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/taxonomy-ancestor-breadcrumb.js";
2
- export { e as TaxonomyAncestorBreadcrumb };
1
+ import{t as TaxonomyAncestorBreadcrumb}from"../../../../chunks/taxonomy-ancestor-breadcrumb.js";export{TaxonomyAncestorBreadcrumb};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/empty-state.js";
2
- export { e as EmptyListState };
1
+ import{t as EmptyListState}from"../../../../../chunks/empty-state.js";export{EmptyListState};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/empty-state.js";
2
- export { e as EmptyListState };
1
+ import{t as EmptyListState}from"../../../../../chunks/empty-state.js";export{EmptyListState};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/error-state.js";
2
- export { e as ErrorState };
1
+ import{t as ErrorState}from"../../../../../chunks/error-state.js";export{ErrorState};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/error-state.js";
2
- export { e as ErrorState };
1
+ import{t as ErrorState}from"../../../../../chunks/error-state.js";export{ErrorState};
@@ -1,6 +1 @@
1
- import { ESTIMATED_BROWSE_ROW_HEIGHT as e, ESTIMATED_SEARCH_ROW_HEIGHT as t } from "../../constants.js";
2
- import { t as n } from "../../../../chunks/empty-state.js";
3
- import { t as r } from "../../../../chunks/error-state.js";
4
- import { t as i } from "../../../../chunks/loading-state.js";
5
- import { t as a } from "../../../../chunks/taxonomy-items-list.js";
6
- export { e as ESTIMATED_BROWSE_ROW_HEIGHT, t as ESTIMATED_SEARCH_ROW_HEIGHT, n as EmptyListState, r as ErrorState, i as LoadingState, a as TaxonomyItemsList };
1
+ import{ESTIMATED_BROWSE_ROW_HEIGHT,ESTIMATED_SEARCH_ROW_HEIGHT}from"../../constants.js";import{t as EmptyListState}from"../../../../chunks/empty-state.js";import{t as ErrorState}from"../../../../chunks/error-state.js";import{t as LoadingState}from"../../../../chunks/loading-state.js";import{t as TaxonomyItemsList}from"../../../../chunks/taxonomy-items-list.js";export{ESTIMATED_BROWSE_ROW_HEIGHT,ESTIMATED_SEARCH_ROW_HEIGHT,EmptyListState,ErrorState,LoadingState,TaxonomyItemsList};
@@ -1,3 +1 @@
1
- import { t as e } from "../../../../../chunks/load-more-error-row.js";
2
- import { t } from "../../../../../chunks/load-more-loading-row.js";
3
- export { e as LoadMoreErrorRow, t as LoadMoreLoadingRow };
1
+ import{t as LoadMoreErrorRow}from"../../../../../chunks/load-more-error-row.js";import{t as LoadMoreLoadingRow}from"../../../../../chunks/load-more-loading-row.js";export{LoadMoreErrorRow,LoadMoreLoadingRow};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/load-more-error-row.js";
2
- export { e as LoadMoreErrorRow };
1
+ import{t as LoadMoreErrorRow}from"../../../../../chunks/load-more-error-row.js";export{LoadMoreErrorRow};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/load-more-loading-row.js";
2
- export { e as LoadMoreLoadingRow };
1
+ import{t as LoadMoreLoadingRow}from"../../../../../chunks/load-more-loading-row.js";export{LoadMoreLoadingRow};
@@ -1,20 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({
3
- loadingRowAriaLabel: {
4
- id: "groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.loadingRowAriaLabel",
5
- defaultMessage: "Loading more items"
6
- },
7
- errorNoticeText: {
8
- id: "groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.errorNoticeText",
9
- defaultMessage: "Loading failed"
10
- },
11
- errorNoticeIconAriaLabel: {
12
- id: "groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.errorNoticeIconAriaLabel",
13
- defaultMessage: "Error"
14
- },
15
- reloadButtonLabel: {
16
- id: "groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.reloadButtonLabel",
17
- defaultMessage: "Reload"
18
- }
19
- });
20
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({loadingRowAriaLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.loadingRowAriaLabel`,defaultMessage:`Loading more items`},errorNoticeText:{id:`groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.errorNoticeText`,defaultMessage:`Loading failed`},errorNoticeIconAriaLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.errorNoticeIconAriaLabel`,defaultMessage:`Error`},reloadButtonLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.loadMoreFeedback.reloadButtonLabel`,defaultMessage:`Reload`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/loading-state.js";
2
- export { e as LoadingState };
1
+ import{t as LoadingState}from"../../../../../chunks/loading-state.js";export{LoadingState};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../../chunks/loading-state.js";
2
- export { e as LoadingState };
1
+ import{t as LoadingState}from"../../../../../chunks/loading-state.js";export{LoadingState};
@@ -1,36 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({
3
- loadingAriaLabel: {
4
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.loadingAriaLabel",
5
- defaultMessage: "Loading taxonomy items"
6
- },
7
- emptyStateHeading: {
8
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.emptyStateHeading",
9
- defaultMessage: "No subnodes"
10
- },
11
- emptyStateBody: {
12
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.emptyStateBody",
13
- defaultMessage: "This path does not have subnodes."
14
- },
15
- searchEmptyStateHeading: {
16
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.searchEmptyStateHeading",
17
- defaultMessage: "No results found"
18
- },
19
- searchEmptyStateBody: {
20
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.searchEmptyStateBody",
21
- defaultMessage: "Try a different search term."
22
- },
23
- errorStateHeading: {
24
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.errorStateHeading",
25
- defaultMessage: "Something went wrong."
26
- },
27
- errorStateBody: {
28
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.errorStateBody",
29
- defaultMessage: "Please reload to try again."
30
- },
31
- reloadButton: {
32
- id: "groupSharedFeatures.metadataTaxonomyPicker.itemsList.reloadButton",
33
- defaultMessage: "Reload"
34
- }
35
- });
36
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({loadingAriaLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.loadingAriaLabel`,defaultMessage:`Loading taxonomy items`},emptyStateHeading:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.emptyStateHeading`,defaultMessage:`No subnodes`},emptyStateBody:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.emptyStateBody`,defaultMessage:`This path does not have subnodes.`},searchEmptyStateHeading:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.searchEmptyStateHeading`,defaultMessage:`No results found`},searchEmptyStateBody:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.searchEmptyStateBody`,defaultMessage:`Try a different search term.`},errorStateHeading:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.errorStateHeading`,defaultMessage:`Something went wrong.`},errorStateBody:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.errorStateBody`,defaultMessage:`Please reload to try again.`},reloadButton:{id:`groupSharedFeatures.metadataTaxonomyPicker.itemsList.reloadButton`,defaultMessage:`Reload`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/taxonomy-items-list.js";
2
- export { e as TaxonomyItemsList };
1
+ import{t as TaxonomyItemsList}from"../../../../chunks/taxonomy-items-list.js";export{TaxonomyItemsList};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/taxonomy-level-filter.js";
2
- export { e as TaxonomyLevelFilter };
1
+ import{t as TaxonomyLevelFilter}from"../../../../chunks/taxonomy-level-filter.js";export{TaxonomyLevelFilter};
@@ -1,6 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({ allOption: {
3
- id: "groupSharedFeatures.metadataTaxonomyPicker.levelFilter.allOption",
4
- defaultMessage: "All levels"
5
- } });
6
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({allOption:{id:`groupSharedFeatures.metadataTaxonomyPicker.levelFilter.allOption`,defaultMessage:`All levels`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/taxonomy-level-filter.js";
2
- export { e as TaxonomyLevelFilter };
1
+ import{t as TaxonomyLevelFilter}from"../../../../chunks/taxonomy-level-filter.js";export{TaxonomyLevelFilter};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/taxonomy-menu-item.js";
2
- export { e as TaxonomyMenuItem };
1
+ import{t as TaxonomyMenuItem}from"../../../../chunks/taxonomy-menu-item.js";export{TaxonomyMenuItem};
@@ -1,6 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({ drillDownAriaLabel: {
3
- id: "groupSharedFeatures.metadataTaxonomyPicker.menuItem.drillDownAriaLabel",
4
- defaultMessage: "Navigate into {name}"
5
- } });
6
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({drillDownAriaLabel:{id:`groupSharedFeatures.metadataTaxonomyPicker.menuItem.drillDownAriaLabel`,defaultMessage:`Navigate into {name}`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/taxonomy-menu-item.js";
2
- export { e as TaxonomyMenuItem };
1
+ import{t as TaxonomyMenuItem}from"../../../../chunks/taxonomy-menu-item.js";export{TaxonomyMenuItem};
@@ -1,100 +1 @@
1
- import { useCallback as e, useRef as t } from "react";
2
- import { useCompositeContext as n } from "@ariakit/react";
3
- function r({ id: r, multiSelect: i, onSelect: a, onFocusExit: o, rowRef: s, selectionControlRef: c, drillDownRef: l }) {
4
- let u = n(), d = t(!1), f = e((e) => {
5
- if (!u) return !1;
6
- let { activeId: t, items: n } = u.getState(), r = n.findIndex((e) => e.id === t);
7
- if (r === -1) return !1;
8
- let i = e === "ArrowDown" ? r + 1 : r - 1;
9
- if (i < 0 || i >= n.length) return !1;
10
- let a = n[i].element;
11
- return a ? (a.focus(), !0) : !1;
12
- }, [u]), p = e(() => {
13
- d.current = !0, c.current?.focus();
14
- }, [c]);
15
- return {
16
- handleSelectionControlFocus: e(() => {
17
- d.current || s.current?.focus(), d.current = !1;
18
- }, [s]),
19
- handleRowKeyDown: e((e) => {
20
- switch (e.key) {
21
- case "Tab":
22
- f(e.shiftKey ? "ArrowUp" : "ArrowDown") ? e.preventDefault() : e.shiftKey && o && (e.preventDefault(), o());
23
- break;
24
- case "ArrowLeft":
25
- e.preventDefault(), e.stopPropagation(), p();
26
- break;
27
- case "ArrowRight":
28
- e.preventDefault(), e.stopPropagation(), l.current?.focus();
29
- break;
30
- }
31
- }, [
32
- p,
33
- f,
34
- o,
35
- l
36
- ]),
37
- handleRowKeyDownCapture: e((e) => {
38
- let t = e.target;
39
- if (!t || t === e.currentTarget) return;
40
- let n = c.current != null && (c.current === t || c.current.contains(t)), r = l.current != null && (l.current === t || l.current.contains(t));
41
- if (!(!n && !r)) {
42
- switch (e.key) {
43
- case "ArrowUp":
44
- case "ArrowDown":
45
- f(e.key) && (e.preventDefault(), e.stopPropagation());
46
- break;
47
- case "Tab":
48
- f(e.shiftKey ? "ArrowUp" : "ArrowDown") ? (e.preventDefault(), e.stopPropagation()) : e.shiftKey && o && (e.preventDefault(), e.stopPropagation(), o());
49
- break;
50
- }
51
- if (n) switch (e.key) {
52
- case "ArrowRight":
53
- e.preventDefault(), e.stopPropagation(), l.current?.focus();
54
- break;
55
- case "ArrowLeft":
56
- e.preventDefault(), e.stopPropagation(), s.current?.focus();
57
- break;
58
- }
59
- }
60
- }, [
61
- f,
62
- o,
63
- c,
64
- l,
65
- s
66
- ]),
67
- handleSelectionControlKeyDown: e((e) => {
68
- switch (e.key) {
69
- case "Enter":
70
- i || (e.preventDefault(), a(r));
71
- break;
72
- }
73
- }, [
74
- i,
75
- a,
76
- r
77
- ]),
78
- handleDrillDownKeyDown: e((e) => {
79
- switch (e.key) {
80
- case "Tab":
81
- f(e.shiftKey ? "ArrowUp" : "ArrowDown") ? e.preventDefault() : e.shiftKey && o && (e.preventDefault(), o());
82
- break;
83
- case "Enter":
84
- case " ":
85
- e.stopPropagation();
86
- break;
87
- case "ArrowLeft":
88
- e.preventDefault(), c.current ? p() : s.current?.focus();
89
- break;
90
- }
91
- }, [
92
- f,
93
- o,
94
- p,
95
- c,
96
- s
97
- ])
98
- };
99
- }
100
- export { r as useTaxonomyMenuItemKeyboard };
1
+ import{useCallback,useRef}from"react";import{useCompositeContext}from"@ariakit/react";function useTaxonomyMenuItemKeyboard({id,multiSelect,onSelect,onFocusExit,rowRef,selectionControlRef,drillDownRef}){let compositeStore=useCompositeContext(),isProgrammaticSelectionFocusRef=useRef(!1),moveToAdjacentRow=useCallback(direction=>{if(!compositeStore)return!1;let{activeId,items}=compositeStore.getState(),currentIndex=items.findIndex(item=>item.id===activeId);if(currentIndex===-1)return!1;let targetIndex=direction===`ArrowDown`?currentIndex+1:currentIndex-1;if(targetIndex<0||targetIndex>=items.length)return!1;let targetElement=items[targetIndex].element;return targetElement?(targetElement.focus(),!0):!1},[compositeStore]),focusSelectionControl=useCallback(()=>{isProgrammaticSelectionFocusRef.current=!0,selectionControlRef.current?.focus()},[selectionControlRef]);return{handleSelectionControlFocus:useCallback(()=>{isProgrammaticSelectionFocusRef.current||rowRef.current?.focus(),isProgrammaticSelectionFocusRef.current=!1},[rowRef]),handleRowKeyDown:useCallback(event=>{switch(event.key){case`Tab`:moveToAdjacentRow(event.shiftKey?`ArrowUp`:`ArrowDown`)?event.preventDefault():event.shiftKey&&onFocusExit&&(event.preventDefault(),onFocusExit());break;case`ArrowLeft`:event.preventDefault(),event.stopPropagation(),focusSelectionControl();break;case`ArrowRight`:event.preventDefault(),event.stopPropagation(),drillDownRef.current?.focus();break}},[focusSelectionControl,moveToAdjacentRow,onFocusExit,drillDownRef]),handleRowKeyDownCapture:useCallback(event=>{let target=event.target;if(!target||target===event.currentTarget)return;let isFromSelectionControl=selectionControlRef.current!=null&&(selectionControlRef.current===target||selectionControlRef.current.contains(target)),isFromDrillDown=drillDownRef.current!=null&&(drillDownRef.current===target||drillDownRef.current.contains(target));if(!(!isFromSelectionControl&&!isFromDrillDown)){switch(event.key){case`ArrowUp`:case`ArrowDown`:moveToAdjacentRow(event.key)&&(event.preventDefault(),event.stopPropagation());break;case`Tab`:moveToAdjacentRow(event.shiftKey?`ArrowUp`:`ArrowDown`)?(event.preventDefault(),event.stopPropagation()):event.shiftKey&&onFocusExit&&(event.preventDefault(),event.stopPropagation(),onFocusExit());break}if(isFromSelectionControl)switch(event.key){case`ArrowRight`:event.preventDefault(),event.stopPropagation(),drillDownRef.current?.focus();break;case`ArrowLeft`:event.preventDefault(),event.stopPropagation(),rowRef.current?.focus();break}}},[moveToAdjacentRow,onFocusExit,selectionControlRef,drillDownRef,rowRef]),handleSelectionControlKeyDown:useCallback(event=>{switch(event.key){case`Enter`:multiSelect||(event.preventDefault(),onSelect(id));break}},[multiSelect,onSelect,id]),handleDrillDownKeyDown:useCallback(event=>{switch(event.key){case`Tab`:moveToAdjacentRow(event.shiftKey?`ArrowUp`:`ArrowDown`)?event.preventDefault():event.shiftKey&&onFocusExit&&(event.preventDefault(),onFocusExit());break;case`Enter`:case` `:event.stopPropagation();break;case`ArrowLeft`:event.preventDefault(),selectionControlRef.current?focusSelectionControl():rowRef.current?.focus();break}},[moveToAdjacentRow,onFocusExit,focusSelectionControl,selectionControlRef,rowRef])}}export{useTaxonomyMenuItemKeyboard};
@@ -1,2 +1 @@
1
- var e = 36, t = 44, n = 20, r = 9, i = 16, a = 3, o = 16, s = 112, c = 200, l = 400, u = " / ", d = 2, f = 2, p = "…", m = 100, h = 300 * 1e3, g = "__root__", _ = "__breadcrumb_root__", v = 500;
2
- export { p as BREADCRUMB_ELLIPSIS_CHAR, d as BREADCRUMB_MAX_LINES, f as BREADCRUMB_OVERFLOW_THRESHOLD_PX, _ as BREADCRUMB_ROOT_ID, u as BREADCRUMB_SEPARATOR, h as CACHE_TTL_MS, m as DEFAULT_PAGE_LIMIT, e as ESTIMATED_BROWSE_ROW_HEIGHT, t as ESTIMATED_SEARCH_ROW_HEIGHT, l as LOAD_MORE_ERROR_MIN_VISIBLE_MS, s as LOAD_MORE_GHOST_BLOCK_HEIGHT, a as LOAD_MORE_GHOST_ROW_COUNT, o as LOAD_MORE_GHOST_ROW_HEIGHT, c as LOAD_MORE_ROOT_MARGIN_PX, n as OVERSCAN_COUNT, g as ROOT_CACHE_KEY, v as SEARCH_DEBOUNCE_MS, r as SKELETON_ROW_COUNT, i as SKELETON_ROW_HEIGHT };
1
+ var ESTIMATED_BROWSE_ROW_HEIGHT=36,ESTIMATED_SEARCH_ROW_HEIGHT=44,OVERSCAN_COUNT=20,SKELETON_ROW_COUNT=9,SKELETON_ROW_HEIGHT=16,LOAD_MORE_GHOST_ROW_COUNT=3,LOAD_MORE_GHOST_ROW_HEIGHT=16,LOAD_MORE_GHOST_BLOCK_HEIGHT=112,LOAD_MORE_ROOT_MARGIN_PX=200,LOAD_MORE_ERROR_MIN_VISIBLE_MS=400,BREADCRUMB_SEPARATOR=` / `,BREADCRUMB_MAX_LINES=2,BREADCRUMB_OVERFLOW_THRESHOLD_PX=2,BREADCRUMB_ELLIPSIS_CHAR=`…`,DEFAULT_PAGE_LIMIT=100,CACHE_TTL_MS=300*1e3,ROOT_CACHE_KEY=`__root__`,BREADCRUMB_ROOT_ID=`__breadcrumb_root__`,SEARCH_DEBOUNCE_MS=500;export{BREADCRUMB_ELLIPSIS_CHAR,BREADCRUMB_MAX_LINES,BREADCRUMB_OVERFLOW_THRESHOLD_PX,BREADCRUMB_ROOT_ID,BREADCRUMB_SEPARATOR,CACHE_TTL_MS,DEFAULT_PAGE_LIMIT,ESTIMATED_BROWSE_ROW_HEIGHT,ESTIMATED_SEARCH_ROW_HEIGHT,LOAD_MORE_ERROR_MIN_VISIBLE_MS,LOAD_MORE_GHOST_BLOCK_HEIGHT,LOAD_MORE_GHOST_ROW_COUNT,LOAD_MORE_GHOST_ROW_HEIGHT,LOAD_MORE_ROOT_MARGIN_PX,OVERSCAN_COUNT,ROOT_CACHE_KEY,SEARCH_DEBOUNCE_MS,SKELETON_ROW_COUNT,SKELETON_ROW_HEIGHT};