@wipco/sdui 1.6.0 → 1.6.1

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 (85) hide show
  1. package/dist/{chunk-YZTTFEL4.js → chunk-34BABTH4.js} +1 -1
  2. package/dist/{chunk-7C54CKFZ.js → chunk-3PCR73OC.js} +2 -2
  3. package/dist/{chunk-KZ6U6FKB.js → chunk-3PT5OBOU.js} +1 -1
  4. package/dist/{chunk-NWYYNE3Q.js → chunk-4YPPL7JK.js} +1 -1
  5. package/dist/{chunk-M6H3SHIS.js → chunk-6YBSBC77.js} +1 -1
  6. package/dist/{chunk-QVS6K4FP.js → chunk-7G6J6QFC.js} +1 -1
  7. package/dist/{chunk-4OABUPIU.js → chunk-A57GKV5F.js} +2 -2
  8. package/dist/{chunk-AY4GM6KQ.js → chunk-AJ3KDBEE.js} +1 -1
  9. package/dist/{chunk-OYDJHQNZ.js → chunk-BV37UCDF.js} +2 -2
  10. package/dist/{chunk-WTIYILY3.js → chunk-CUFGH3LB.js} +1 -1
  11. package/dist/{chunk-V7BWMOHO.js → chunk-EGFDELSF.js} +1 -1
  12. package/dist/{chunk-HXLQSO66.js → chunk-ESAFQXEU.js} +2 -2
  13. package/dist/{chunk-RU5U2YMT.js → chunk-EUSC5NMZ.js} +3 -3
  14. package/dist/{chunk-X2NIRVLN.js → chunk-FP32LNFK.js} +1 -1
  15. package/dist/{chunk-6XI2VF2O.js → chunk-GKYUDTMI.js} +2 -2
  16. package/dist/{chunk-6TI4WF5Y.js → chunk-GSXD52XG.js} +2 -2
  17. package/dist/{chunk-CEVZAFPO.js → chunk-IIRVHSNK.js} +2 -2
  18. package/dist/{chunk-CSE3PZOZ.js → chunk-J7BZF4T4.js} +4 -4
  19. package/dist/{chunk-YNEEJCSZ.js → chunk-JHFA5RDN.js} +1 -1
  20. package/dist/{chunk-OUEJWC2Z.js → chunk-KDKRFWIF.js} +5 -5
  21. package/dist/{chunk-MN4RZ2WP.js → chunk-KO3EUNWB.js} +2 -2
  22. package/dist/{chunk-HRHKQOOF.js → chunk-NLSR3JYU.js} +1 -1
  23. package/dist/{chunk-53KS4E5N.js → chunk-O4EMQWCV.js} +9 -3
  24. package/dist/{chunk-VPOOIEKT.js → chunk-OCYJ2ZOV.js} +1 -1
  25. package/dist/{chunk-K6RE23XX.js → chunk-OKNF2SBB.js} +2 -2
  26. package/dist/{chunk-W4VA76QO.js → chunk-OQ7A3SFM.js} +1 -1
  27. package/dist/{chunk-YN7X7BEO.js → chunk-PCFH74RD.js} +3 -3
  28. package/dist/{chunk-WEG3V7ZB.js → chunk-SGGIWPP6.js} +2 -2
  29. package/dist/{chunk-XG22XKKD.js → chunk-TB7G5DXQ.js} +2 -2
  30. package/dist/{chunk-2KQL6DYG.js → chunk-TWUKNUUQ.js} +65 -9
  31. package/dist/{chunk-LIZTK3HO.js → chunk-UC725BGW.js} +1 -1
  32. package/dist/{chunk-NAIWQQPW.js → chunk-US3K6Q5T.js} +1 -1
  33. package/dist/{chunk-IQXLNICY.js → chunk-USNPJEXH.js} +4 -4
  34. package/dist/{chunk-AZSLSAJB.js → chunk-UZZLMPRW.js} +1 -1
  35. package/dist/{chunk-LKQJJSVJ.js → chunk-VAXRTBJH.js} +1 -1
  36. package/dist/{chunk-2QXA52DG.js → chunk-VQKX5PJ4.js} +3 -3
  37. package/dist/{chunk-CI5OZ2QT.js → chunk-VR5MFUD2.js} +1 -1
  38. package/dist/{chunk-FEKKOBPX.js → chunk-VSNHDHGS.js} +3 -3
  39. package/dist/{chunk-7JP52QQO.js → chunk-XFKNU6QN.js} +2 -2
  40. package/dist/{chunk-NA232CBX.js → chunk-XUVWIRZJ.js} +2 -2
  41. package/dist/{chunk-BLFJMMBW.js → chunk-YYAGE733.js} +17 -2
  42. package/dist/index.d.ts +35 -5
  43. package/dist/index.js +81 -33
  44. package/dist/meta.d.ts +1 -1
  45. package/dist/meta.js +116 -4
  46. package/dist/rich/ExcelUploadCard.js +3 -3
  47. package/dist/rich.d.ts +2 -1
  48. package/dist/rich.js +33 -6
  49. package/dist/styles.css +17 -0
  50. package/dist/{types-CYfIthux.d.ts → types-CMikpoN5.d.ts} +8 -1
  51. package/dist/widgets/ApprovalLineEditor.js +6 -6
  52. package/dist/widgets/ApprovalOverridesEditor.js +8 -8
  53. package/dist/widgets/ApprovalStepper.js +2 -2
  54. package/dist/widgets/AutocompleteField.js +6 -6
  55. package/dist/widgets/ColumnBoard.js +2 -2
  56. package/dist/widgets/DiffView.js +2 -2
  57. package/dist/widgets/Disclosure.js +2 -2
  58. package/dist/widgets/EventCalendar.js +2 -2
  59. package/dist/widgets/FileDropzone.js +5 -5
  60. package/dist/widgets/ImageLightbox.js +3 -3
  61. package/dist/widgets/InlineEdit.js +2 -2
  62. package/dist/widgets/JsonField.js +2 -2
  63. package/dist/widgets/OptionSchemaEditor.js +3 -3
  64. package/dist/widgets/OptionValueFields.js +3 -3
  65. package/dist/widgets/OrgChart.js +2 -2
  66. package/dist/widgets/OrgChartBoard.js +5 -5
  67. package/dist/widgets/PeriodFilter.js +3 -3
  68. package/dist/widgets/PermissionMatrixEditor.js +3 -3
  69. package/dist/widgets/PositionSelect.js +3 -3
  70. package/dist/widgets/PrintSheet.js +2 -2
  71. package/dist/widgets/ProfileEditDiffCard.js +3 -3
  72. package/dist/widgets/QRDisplay.js +3 -3
  73. package/dist/widgets/RankBoard.js +4 -4
  74. package/dist/widgets/RoleMemberPicker.js +4 -4
  75. package/dist/widgets/SearchableMultiPicker.js +4 -4
  76. package/dist/widgets/SecureScreen.js +2 -2
  77. package/dist/widgets/StagePeriodEditor.js +3 -3
  78. package/dist/widgets/TagInput.js +2 -2
  79. package/dist/widgets/TagMultiSelect.js +3 -3
  80. package/dist/widgets/Timeline.js +3 -3
  81. package/dist/widgets/TreePicker.js +5 -5
  82. package/dist/widgets/TreeView.d.ts +16 -2
  83. package/dist/widgets/TreeView.js +4 -4
  84. package/dist/widgets/index.js +70 -70
  85. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { IconButton, Input } from './chunk-BLFJMMBW.js';
1
+ import { IconButton, Input } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import { useState, useRef, useEffect, useCallback } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
- import { includesLooseSearch } from './chunk-4OABUPIU.js';
1
+ import { includesLooseSearch } from './chunk-A57GKV5F.js';
2
2
  import { OverlayLayer } from './chunk-BITS7UJY.js';
3
- import { Button, Dialog, Input, Tag, Checkbox } from './chunk-BLFJMMBW.js';
3
+ import { Button, Dialog, Input, Tag, Checkbox } from './chunk-YYAGE733.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
5
5
  import React, { useMemo, useState } from 'react';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { ImageViewer } from './chunk-AZSLSAJB.js';
1
+ import { ImageViewer } from './chunk-UZZLMPRW.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import { useState } from 'react';
4
4
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { Spinner, EmptyState } from './chunk-BLFJMMBW.js';
1
+ import { Spinner, EmptyState } from './chunk-YYAGE733.js';
2
2
  import { useState, useEffect } from 'react';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
 
@@ -1,4 +1,4 @@
1
- import { Button } from './chunk-BLFJMMBW.js';
1
+ import { Button } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import { useEffect, useState } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { Badge, Checkbox, IconButton, Icon } from './chunk-BLFJMMBW.js';
1
+ import { Badge, Checkbox, IconButton, Icon } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import { useState, useEffect } from 'react';
4
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
- import { DateRangePicker } from './chunk-X2NIRVLN.js';
1
+ import { DateRangePicker } from './chunk-FP32LNFK.js';
2
2
  import { useOverlayLayer } from './chunk-BITS7UJY.js';
3
3
  import { HoistedStyle } from './chunk-RIZRM7OO.js';
4
- import { Input, Button, IconButton, Tag, Field, Checkbox } from './chunk-BLFJMMBW.js';
4
+ import { Input, Button, IconButton, Tag, Field, Checkbox } from './chunk-YYAGE733.js';
5
5
  import { useRef, useEffect, useState, useMemo } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
 
@@ -1,4 +1,4 @@
1
- import { Icon } from './chunk-BLFJMMBW.js';
1
+ import { Icon } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import { useRef, useState, useEffect } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  import { fetchAllJobPositions } from './chunk-XRHR452N.js';
2
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
3
- import { Select, Button } from './chunk-BLFJMMBW.js';
2
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
3
+ import { Select, Button } from './chunk-YYAGE733.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
5
5
  import { useRef, useState, useEffect, useMemo } from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { Icon, Badge, Tooltip } from './chunk-BLFJMMBW.js';
1
+ import { Icon, Badge, Tooltip } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import React from 'react';
4
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
1
  import { usePanZoomCanvas, MIN_ZOOM, MAX_ZOOM } from './chunk-CSZCWBOE.js';
2
- import { IconButton, Badge } from './chunk-BLFJMMBW.js';
2
+ import { IconButton, Badge } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useMemo, useCallback, useEffect } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { Text } from './chunk-LIZTK3HO.js';
2
- import { Field, Input, Select, IconButton, Button } from './chunk-BLFJMMBW.js';
1
+ import { Text } from './chunk-UC725BGW.js';
2
+ import { Field, Input, Select, IconButton, Button } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useMemo } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
- import { ImageLightbox } from './chunk-KZ6U6FKB.js';
2
- import { useSduiSandbox, useSduiAdapter, hostRawFetchOf, defaultAdapter, useSduiAssetResolver } from './chunk-YNEEJCSZ.js';
3
- import { Spinner, Icon, IconButton } from './chunk-BLFJMMBW.js';
1
+ import { ImageLightbox } from './chunk-3PT5OBOU.js';
2
+ import { useSduiSandbox, useSduiAdapter, hostRawFetchOf, defaultAdapter, useSduiAssetResolver } from './chunk-JHFA5RDN.js';
3
+ import { Spinner, Icon, IconButton } from './chunk-YYAGE733.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
5
5
  import { useState, useRef, useEffect, useCallback } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  import { useOverlayLayer, OverlayContainerContext, getOverlayRoot } from './chunk-BITS7UJY.js';
2
2
  import { HoistedStyle } from './chunk-RIZRM7OO.js';
3
3
  import { useIsMobile } from './chunk-GSM664TX.js';
4
- import { Icon } from './chunk-BLFJMMBW.js';
4
+ import { Icon } from './chunk-YYAGE733.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
6
6
  import React, { useState, useRef, useEffect, useMemo, useCallback, useLayoutEffect } from 'react';
7
7
  import { createPortal } from 'react-dom';
@@ -1,5 +1,5 @@
1
- import { DateRangePicker } from './chunk-X2NIRVLN.js';
2
- import { SegmentedControl, Select } from './chunk-BLFJMMBW.js';
1
+ import { DateRangePicker } from './chunk-FP32LNFK.js';
2
+ import { SegmentedControl, Select } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useMemo } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { useSduiAdapter, hostFetchOf } from './chunk-YNEEJCSZ.js';
2
- import { Badge, Tag } from './chunk-BLFJMMBW.js';
1
+ import { useSduiAdapter, hostFetchOf } from './chunk-JHFA5RDN.js';
2
+ import { Badge, Tag } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useRef, useEffect, useMemo, useState } from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
2
- import { Spinner, Badge, Icon } from './chunk-BLFJMMBW.js';
1
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
2
+ import { Spinner, Badge, Icon } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useEffect } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
- import { ellipsisStyle, unwrapRows } from './chunk-LKQJJSVJ.js';
2
- import { includesLooseSearch } from './chunk-4OABUPIU.js';
3
- import { useSduiAdapter, hostFetchOf } from './chunk-YNEEJCSZ.js';
4
- import { Icon, Button, Input, Spinner } from './chunk-BLFJMMBW.js';
1
+ import { ellipsisStyle, unwrapRows } from './chunk-VAXRTBJH.js';
2
+ import { includesLooseSearch } from './chunk-A57GKV5F.js';
3
+ import { useSduiAdapter, hostFetchOf } from './chunk-JHFA5RDN.js';
4
+ import { Icon, Button, Input, Spinner } from './chunk-YYAGE733.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
6
6
  import { useId, useRef, useMemo, useState, useEffect } from 'react';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
1
  import { DEV } from './chunk-GSM664TX.js';
2
- import { warnOnce } from './chunk-BLFJMMBW.js';
2
+ import { warnOnce } from './chunk-YYAGE733.js';
3
3
  import { createContext, useContext } from 'react';
4
4
 
5
5
  function isSafeNavigationTarget(to) {
@@ -1,8 +1,8 @@
1
- import { TagMultiSelect } from './chunk-6TI4WF5Y.js';
2
- import { ApprovalLineEditor, stepTypeIcon, stepLabel } from './chunk-IQXLNICY.js';
3
- import { orderCircleStyle, unwrapRows, uid } from './chunk-LKQJJSVJ.js';
4
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
5
- import { Card, Icon, Input, IconButton, Field, Button, Badge } from './chunk-BLFJMMBW.js';
1
+ import { TagMultiSelect } from './chunk-GSXD52XG.js';
2
+ import { ApprovalLineEditor, stepTypeIcon, stepLabel } from './chunk-USNPJEXH.js';
3
+ import { orderCircleStyle, unwrapRows, uid } from './chunk-VAXRTBJH.js';
4
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
5
+ import { Card, Icon, Input, IconButton, Field, Button, Badge } from './chunk-YYAGE733.js';
6
6
  import { boxed } from './chunk-3JTBOABA.js';
7
7
  import React, { useRef, useState, useEffect } from 'react';
8
8
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  import { HoistedStyle } from './chunk-RIZRM7OO.js';
2
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
2
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
3
3
  import { MOBILE_MEDIA_QUERY } from './chunk-GSM664TX.js';
4
- import { Icon, Badge, Checkbox, Select, Button } from './chunk-BLFJMMBW.js';
4
+ import { Icon, Badge, Checkbox, Select, Button } from './chunk-YYAGE733.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
6
6
  import { useRef, useEffect, useState, useMemo } from 'react';
7
7
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { Icon, Badge } from './chunk-BLFJMMBW.js';
1
+ import { Icon, Badge } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import React from 'react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  import { HoistedStyle } from './chunk-RIZRM7OO.js';
2
2
  import { useIsMobile } from './chunk-GSM664TX.js';
3
- import { SegmentedControl, IconButton, Button, Tag, EmptyState, Icon, Badge } from './chunk-BLFJMMBW.js';
3
+ import { SegmentedControl, IconButton, Button, Tag, EmptyState, Icon, Badge } from './chunk-YYAGE733.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
5
5
  import { useState, useMemo } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -144,7 +144,6 @@ var EventBar = ({ segment, selected, tall = false, onSelect }) => {
144
144
  fontSize: tall ? 13 : 12,
145
145
  fontWeight: 600,
146
146
  lineHeight: 1,
147
- overflow: "hidden",
148
147
  whiteSpace: "nowrap",
149
148
  cursor: "pointer",
150
149
  textAlign: "left",
@@ -155,6 +154,7 @@ var EventBar = ({ segment, selected, tall = false, onSelect }) => {
155
154
  "button",
156
155
  {
157
156
  type: "button",
157
+ className: "wp-evcal__bar",
158
158
  title: event.title,
159
159
  "aria-pressed": selected,
160
160
  style,
@@ -209,6 +209,12 @@ var EVCAL_CSS = `
209
209
  .wp-evcal__item-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;color:var(--wp-text-strong)}
210
210
  .wp-evcal__item-meta{display:contents}
211
211
  .wp-evcal__item-range{flex:none;font-size:13px;color:var(--wp-text-muted)}
212
+ .wp-evcal__bar{overflow:hidden}
213
+ @media (pointer:coarse){
214
+ .wp-evcal__lanes{z-index:0}
215
+ .wp-evcal--month .wp-evcal__bar{position:relative;overflow:visible}
216
+ .wp-evcal--month .wp-evcal__bar::before{content:"";position:absolute;left:0;right:0;top:50%;height:32px;margin-top:-16px;z-index:-1}
217
+ }
212
218
  @media screen and (max-width:767.98px){
213
219
  .wp-evcal__types{flex:1 1 100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding-bottom:2px}
214
220
  .wp-evcal__types::-webkit-scrollbar{display:none}
@@ -533,7 +539,7 @@ var EventCalendarImpl = ({
533
539
  ))
534
540
  }
535
541
  ),
536
- /* @__PURE__ */ jsxs("div", { style: laneGridStyle(MONTH_BAR_TOP, MONTH_LANE_H), children: [
542
+ /* @__PURE__ */ jsxs("div", { className: "wp-evcal__lanes", style: laneGridStyle(MONTH_BAR_TOP, MONTH_LANE_H), children: [
537
543
  row.segments.map((seg) => /* @__PURE__ */ jsx(
538
544
  EventBar,
539
545
  {
@@ -1,4 +1,4 @@
1
- import { Icon } from './chunk-BLFJMMBW.js';
1
+ import { Icon } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import { useState, useId, useCallback } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
- import { resolveTreeNodes, TreeView } from './chunk-2KQL6DYG.js';
1
+ import { resolveTreeNodes, TreeView } from './chunk-TWUKNUUQ.js';
2
2
  import { OverlayLayer } from './chunk-BITS7UJY.js';
3
- import { Field, Dialog, Icon, Button, Input } from './chunk-BLFJMMBW.js';
3
+ import { Field, Dialog, Icon, Button, Input } from './chunk-YYAGE733.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
5
5
  import { useState, useMemo } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
1
  import { HoistedStyle } from './chunk-RIZRM7OO.js';
2
- import { Tag } from './chunk-BLFJMMBW.js';
2
+ import { Tag } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useMemo, useRef, useEffect } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
- import { fetchAllPages } from './chunk-LKQJJSVJ.js';
2
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
3
- import { Alert, Badge, Spinner, Button, Input, Checkbox } from './chunk-BLFJMMBW.js';
1
+ import { fetchAllPages } from './chunk-VAXRTBJH.js';
2
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
3
+ import { Alert, Badge, Spinner, Button, Input, Checkbox } from './chunk-YYAGE733.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
5
5
  import { useRef, useMemo, useState, useCallback, useEffect } from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { Text } from './chunk-LIZTK3HO.js';
2
- import { Switch, Field, Select, Input } from './chunk-BLFJMMBW.js';
1
+ import { Text } from './chunk-UC725BGW.js';
2
+ import { Switch, Field, Select, Input } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import React, { useMemo } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { DatePicker, TimePicker } from './chunk-X2NIRVLN.js';
2
- import { Field } from './chunk-BLFJMMBW.js';
1
+ import { DatePicker, TimePicker } from './chunk-FP32LNFK.js';
2
+ import { Field } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useRef, useEffect, useMemo } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { buildCascadingTree } from './chunk-4OABUPIU.js';
2
- import { Input, IconButton, EmptyState, Icon, Badge } from './chunk-BLFJMMBW.js';
1
+ import { buildCascadingTree } from './chunk-A57GKV5F.js';
2
+ import { Input, IconButton, EmptyState, Icon, Badge } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import React, { useMemo, useState, useRef, useEffect } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -66,6 +66,35 @@ function collectExpandedIds(nodes, maxDepth, depth = 0, acc = /* @__PURE__ */ ne
66
66
  }
67
67
  return acc;
68
68
  }
69
+ function ancestorIdsOf(nodes, id) {
70
+ const path = [];
71
+ const walk = (list) => {
72
+ for (const node of list) {
73
+ if (node.id === id) return true;
74
+ if (node.children && node.children.length > 0) {
75
+ path.push(node.id);
76
+ if (walk(node.children)) return true;
77
+ path.pop();
78
+ }
79
+ }
80
+ return false;
81
+ };
82
+ return walk(nodes) ? path : null;
83
+ }
84
+ function withAncestors(prev, nodes, selected) {
85
+ if (selected == null || selected === "") return prev;
86
+ const ancestors = ancestorIdsOf(nodes, selected);
87
+ if (!ancestors || ancestors.every((id) => prev.has(id))) return prev;
88
+ return /* @__PURE__ */ new Set([...prev, ...ancestors]);
89
+ }
90
+ function scrollRowIntoBox(box, row) {
91
+ if (box.scrollHeight <= box.clientHeight) return;
92
+ const boxRect = box.getBoundingClientRect();
93
+ const rowRect = row.getBoundingClientRect();
94
+ const scale = box.offsetHeight && boxRect.height > 0 ? boxRect.height / box.offsetHeight : 1;
95
+ if (rowRect.top < boxRect.top) box.scrollTop -= (boxRect.top - rowRect.top) / scale;
96
+ else if (rowRect.bottom > boxRect.bottom) box.scrollTop += (rowRect.bottom - boxRect.bottom) / scale;
97
+ }
69
98
  function toggled(prev, id) {
70
99
  const next = new Set(prev);
71
100
  if (next.has(id)) next.delete(id);
@@ -84,18 +113,44 @@ function TreeViewImpl({
84
113
  maxHeight
85
114
  }) {
86
115
  const sourceNodes = useMemo(() => resolveTreeNodes(nodes, rows, tree), [nodes, rows, tree]);
87
- const [expanded, setExpanded] = useState(() => collectExpandedIds(sourceNodes, defaultExpandedDepth));
116
+ const [innerSelected, setInnerSelected] = useState(null);
117
+ const isControlled = selectedId !== void 0;
118
+ const currentSelected = isControlled ? selectedId : innerSelected;
119
+ const [expanded, setExpanded] = useState(
120
+ () => withAncestors(collectExpandedIds(sourceNodes, defaultExpandedDepth), sourceNodes, currentSelected)
121
+ );
88
122
  const [searchCollapsed, setSearchCollapsed] = useState(() => /* @__PURE__ */ new Set());
89
123
  const [query, setQuery] = useState("");
90
- const [innerSelected, setInnerSelected] = useState(null);
124
+ const treeRef = useRef(null);
91
125
  const hadRows = useRef(Array.isArray(rows) && rows.length > 0);
92
126
  useEffect(() => {
93
127
  const hasRows = Array.isArray(rows) && rows.length > 0;
94
- if (hasRows && !hadRows.current) setExpanded(collectExpandedIds(sourceNodes, defaultExpandedDepth));
128
+ if (hasRows && !hadRows.current) {
129
+ setExpanded(withAncestors(collectExpandedIds(sourceNodes, defaultExpandedDepth), sourceNodes, currentSelected));
130
+ }
95
131
  hadRows.current = hasRows;
96
- }, [rows, sourceNodes, defaultExpandedDepth]);
97
- const isControlled = selectedId !== void 0;
98
- const currentSelected = isControlled ? selectedId : innerSelected;
132
+ }, [rows, sourceNodes, defaultExpandedDepth, currentSelected]);
133
+ const revealedFor = useRef(null);
134
+ const scrollPending = useRef(false);
135
+ useEffect(() => {
136
+ if (currentSelected == null || currentSelected === "") {
137
+ revealedFor.current = null;
138
+ return;
139
+ }
140
+ if (revealedFor.current === currentSelected) return;
141
+ if (ancestorIdsOf(sourceNodes, currentSelected) === null) return;
142
+ revealedFor.current = currentSelected;
143
+ scrollPending.current = true;
144
+ setExpanded((prev) => withAncestors(prev, sourceNodes, currentSelected));
145
+ }, [currentSelected, sourceNodes]);
146
+ useEffect(() => {
147
+ if (!scrollPending.current) return;
148
+ const box = treeRef.current;
149
+ const row = box?.querySelector('[aria-current="true"]');
150
+ if (!box || !row) return;
151
+ scrollPending.current = false;
152
+ scrollRowIntoBox(box, row);
153
+ });
99
154
  const trimmedQuery = query.trim().toLowerCase();
100
155
  const searching = trimmedQuery.length > 0;
101
156
  const visibleNodes = useMemo(() => {
@@ -271,6 +326,7 @@ function TreeViewImpl({
271
326
  /* @__PURE__ */ jsx(
272
327
  "div",
273
328
  {
329
+ ref: treeRef,
274
330
  role: "tree",
275
331
  className: "wp-scroll",
276
332
  style: { overflowY: "auto", ...maxHeight ? { maxHeight } : null },
@@ -283,4 +339,4 @@ function TreeViewImpl({
283
339
  }
284
340
  var TreeView = boxed(TreeViewImpl, "TreeView");
285
341
 
286
- export { TreeView, buildTreeNodes, pruneExcluded, resolveTreeNodes };
342
+ export { TreeView, ancestorIdsOf, buildTreeNodes, pruneExcluded, resolveTreeNodes, scrollRowIntoBox };
@@ -1,4 +1,4 @@
1
- import { formatDisplayValue } from './chunk-BLFJMMBW.js';
1
+ import { formatDisplayValue } from './chunk-YYAGE733.js';
2
2
  import { mergeStyle, containerLayoutStyle, joinClass, columnsClass, typographyStyle, GAP_CSS } from './chunk-3JTBOABA.js';
3
3
  import React from 'react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { Textarea, Icon } from './chunk-BLFJMMBW.js';
1
+ import { Textarea, Icon } from './chunk-YYAGE733.js';
2
2
  import { boxed } from './chunk-3JTBOABA.js';
3
3
  import { useState, useRef, useId, useEffect, useCallback } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
- import { orderCircleStyle, ellipsisStyle, unwrapRows, uid } from './chunk-LKQJJSVJ.js';
2
- import { includesLooseSearch } from './chunk-4OABUPIU.js';
3
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
4
- import { Icon, Badge, IconButton, Field, Select, Input, Tag, Spinner, Button, isPlainObject } from './chunk-BLFJMMBW.js';
1
+ import { orderCircleStyle, ellipsisStyle, unwrapRows, uid } from './chunk-VAXRTBJH.js';
2
+ import { includesLooseSearch } from './chunk-A57GKV5F.js';
3
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
4
+ import { Icon, Badge, IconButton, Field, Select, Input, Tag, Spinner, Button, isPlainObject } from './chunk-YYAGE733.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
6
6
  import React, { useState, useId, useRef, useEffect } from 'react';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
1
  import { useOverlayLayer, OverlayContainerContext, getOverlayRoot } from './chunk-BITS7UJY.js';
2
- import { IconButton } from './chunk-BLFJMMBW.js';
2
+ import { IconButton } from './chunk-YYAGE733.js';
3
3
  import { useState, useRef, useCallback, useEffect, useContext } from 'react';
4
4
  import { createPortal } from 'react-dom';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { isPlainObject } from './chunk-BLFJMMBW.js';
1
+ import { isPlainObject } from './chunk-YYAGE733.js';
2
2
 
3
3
  // src/widgets/shared.ts
4
4
  function unwrapRows(payload) {
@@ -1,7 +1,7 @@
1
1
  import { fetchAllJobPositions } from './chunk-XRHR452N.js';
2
- import { useSduiDispatch, useSduiCan, SduiDialog } from './chunk-CI5OZ2QT.js';
3
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
4
- import { Card, Input, Button, Icon, Badge, IconButton } from './chunk-BLFJMMBW.js';
2
+ import { useSduiDispatch, useSduiCan, SduiDialog } from './chunk-VR5MFUD2.js';
3
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
4
+ import { Card, Input, Button, Icon, Badge, IconButton } from './chunk-YYAGE733.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
6
6
  import React, { useState, useEffect, useCallback, useMemo } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
1
  import { OverlayLayer } from './chunk-BITS7UJY.js';
2
- import { Dialog, Button, warnOnce } from './chunk-BLFJMMBW.js';
2
+ import { Dialog, Button, warnOnce } from './chunk-YYAGE733.js';
3
3
  import { createContext, useContext, useMemo, useRef, useCallback, useState } from 'react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
 
@@ -1,8 +1,8 @@
1
1
  import { parseJobPositionRow } from './chunk-XRHR452N.js';
2
2
  import { usePanZoomCanvas, MIN_ZOOM } from './chunk-CSZCWBOE.js';
3
- import { ImageLightbox } from './chunk-KZ6U6FKB.js';
4
- import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-YNEEJCSZ.js';
5
- import { warnOnce, Badge, Button, IconButton, Icon } from './chunk-BLFJMMBW.js';
3
+ import { ImageLightbox } from './chunk-3PT5OBOU.js';
4
+ import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-JHFA5RDN.js';
5
+ import { warnOnce, Badge, Button, IconButton, Icon } from './chunk-YYAGE733.js';
6
6
  import { boxed } from './chunk-3JTBOABA.js';
7
7
  import { useState, useMemo, useRef, useCallback, useEffect, useLayoutEffect } from 'react';
8
8
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { useSduiAssetResolver } from './chunk-YNEEJCSZ.js';
2
- import { Spinner, Icon } from './chunk-BLFJMMBW.js';
1
+ import { useSduiAssetResolver } from './chunk-JHFA5RDN.js';
2
+ import { Spinner, Icon } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useEffect } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { Disclosure } from './chunk-VPOOIEKT.js';
2
- import { Icon } from './chunk-BLFJMMBW.js';
1
+ import { Disclosure } from './chunk-OCYJ2ZOV.js';
2
+ import { Icon } from './chunk-YYAGE733.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
5
5
 
@@ -1534,11 +1534,26 @@ function Card({
1534
1534
  }
1535
1535
  );
1536
1536
  }
1537
- function Badge({ tone = "neutral", dot = false, size = "md", children, className = "", ...rest }) {
1537
+ function Badge({
1538
+ tone = "neutral",
1539
+ dot = false,
1540
+ size = "md",
1541
+ wrap = false,
1542
+ children,
1543
+ className = "",
1544
+ ...rest
1545
+ }) {
1538
1546
  return /* @__PURE__ */ jsx(
1539
1547
  "span",
1540
1548
  {
1541
- className: joinClass("wp-badge", `wp-badge--${tone}`, dot && "wp-badge--dot", size === "lg" && "wp-badge--lg", className),
1549
+ className: joinClass(
1550
+ "wp-badge",
1551
+ `wp-badge--${tone}`,
1552
+ dot && "wp-badge--dot",
1553
+ size === "lg" && "wp-badge--lg",
1554
+ wrap && "wp-badge--wrap",
1555
+ className
1556
+ ),
1542
1557
  ...rest,
1543
1558
  children
1544
1559
  }