@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
package/dist/styles.css CHANGED
@@ -583,6 +583,8 @@
583
583
  .wp-card--interactive { cursor: pointer; transition: box-shadow 0.12s, transform 0.12s; }
584
584
  .wp-card--interactive:hover { box-shadow: var(--wp-shadow-md); transform: translateY(-1px); }
585
585
  .wp-card--interactive[role=button]:focus-visible { outline: none; box-shadow: var(--wp-ring-focus); }
586
+ /* 목록 카드 보기의 강조 카드(SearchResults.selectedIds, 1.6.1) — hover 가 테두리·그림자를 바꿔도 고리를 유지한다. */
587
+ .wp-card.is-selected, .wp-card.is-selected:hover { border-color: var(--wp-navy-600); box-shadow: var(--wp-ring-selected); }
586
588
  /* 표지 — 머리 위에 꽉 차게 깔린다. 카드가 overflow를 자르지 않으므로 위 두 모서리는
587
589
  여기서 직접 깎는다(카드 곡률에서 테두리 1px을 뺀 값). */
588
590
  .wp-card__cover {
@@ -631,6 +633,9 @@
631
633
  .wp-badge--danger { background: var(--wp-status-danger-bg); border-color: var(--wp-status-danger-border); color: var(--wp-status-danger-fg); }
632
634
  .wp-badge--brand { background: var(--wp-navy-50); border-color: var(--wp-navy-200); color: var(--wp-navy-600); }
633
635
  .wp-badge--dot::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
636
+ /* 줄바꿈 배지(Badge.wrap, 1.6.1) — 스펙이 style 로 박던 값 그대로. 가로 여백은 크기(md/lg)의 것을 둔다. */
637
+ .wp-badge--wrap { height: auto; min-height: 20px; max-width: 100%; padding-top: 2px; padding-bottom: 2px; white-space: normal; }
638
+ .wp-badge--lg.wp-badge--wrap { min-height: 24px; }
634
639
 
635
640
  .wp-tag {
636
641
  display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 8px;
@@ -722,6 +727,11 @@
722
727
  .wp-table--dense td { padding: 6px 12px; }
723
728
  .wp-table--hover tbody tr:hover { background: var(--wp-surface-hover); }
724
729
  .wp-table tbody tr[aria-selected='true'] { background: var(--wp-surface-selected); }
730
+ /* 강조 행(SearchResults.selectedIds, 1.6.1) — 체크 선택과 같은 바탕에 왼쪽 막대를 더해 둘을 가른다.
731
+ 강조 행은 aria-selected 가 아니라 aria-current 라 바탕도 클래스로 칠한다.
732
+ tr 에는 그림자가 안정적으로 그려지지 않아 첫 칸 안쪽에 긋는다. */
733
+ .wp-table tbody tr.wp-row--selected { background: var(--wp-surface-selected); }
734
+ .wp-table tbody tr.wp-row--selected > td:first-child { box-shadow: inset 3px 0 0 var(--wp-navy-600); }
725
735
  /* 정렬 헤더 — th의 타이포를 그대로 물려받아 버튼처럼 보이지 않게 한다. */
726
736
  .wp-table__sort {
727
737
  display: inline-flex; align-items: center; gap: 3px;
@@ -749,6 +759,13 @@
749
759
  .wp-table--stackable tbody tr { position: relative; display: flex; flex-direction: column; padding: 10px 14px; background: var(--wp-surface-card); border: var(--wp-border-w) solid var(--wp-border-subtle); border-radius: var(--wp-radius-card); }
750
760
  .wp-table--stackable.wp-table--hover tbody tr:hover { background: var(--wp-surface-card); }
751
761
  .wp-table--stackable tbody tr[aria-selected='true'] { border-color: var(--wp-navy-600); background: var(--wp-surface-selected); }
762
+ /* 행 카드에서는 막대 대신 카드 고리 — 첫 칸은 선택 칸(절대 위치)이거나 머리라 막대가 엉뚱한 데 선다.
763
+ 강조 행은 aria-selected 가 없으니(aria-current) 테두리·바탕을 체크 선택 행과 같게 직접 준다. */
764
+ .wp-table--stackable tbody tr.wp-row--selected { border-color: var(--wp-navy-600); background: var(--wp-surface-selected); box-shadow: var(--wp-ring-selected); }
765
+ .wp-table--stackable tbody tr.wp-row--selected > td:first-child { box-shadow: none; }
766
+ /* 위 hover 규칙(행 카드 바탕을 카드색으로, 명시도 0,3,2)이 선택·강조 바탕(0,2,2)을 이기지 않게 — 누르고 있는 동안에도 선택 바탕 */
767
+ .wp-table--stackable.wp-table--hover tbody tr[aria-selected='true']:hover,
768
+ .wp-table--stackable.wp-table--hover tbody tr.wp-row--selected:hover { background: var(--wp-surface-selected); }
752
769
  .wp-table--stackable tbody td { display: flex; align-items: center; gap: 12px; min-height: 28px; padding: 3px 0; border: 0; white-space: normal; text-align: left; min-width: 0; }
753
770
  .wp-table--stackable tbody td::before { content: attr(data-label); flex: none; width: 6em; font-size: 12px; color: var(--wp-text-subtle); }
754
771
  .wp-table--stackable tbody td[data-label='']::before { display: none; }
@@ -464,7 +464,14 @@ interface SduiPage {
464
464
  leaveGuard?: SduiPropValue;
465
465
  /** 실시간 채널 구독 — 어댑터의 subscribe로 위임(이벤트 수신 시 조용한 재조회) */
466
466
  subscribe?: string[];
467
- /** URL 쿼리파라미터와 동기화할 상태 키 — 딥링크/새로고침 보존용 */
467
+ /**
468
+ * URL 쿼리파라미터와 동기화할 상태 키 — 딥링크/새로고침 보존용.
469
+ *
470
+ * 표기(1.6.1): 문자열은 원문(`?tab=delegations`), JSON 으로 다시 읽으면 다른 값이 되는 문자열
471
+ * (`"123"`·`"true"`·따옴표·괄호로 시작하는 것)과 문자열 아닌 값은 JSON(`?tab=%22123%22`, `?page=2`).
472
+ * 읽기는 JSON 으로 읽히면 그 값, 아니면 원문이라 옛 따옴표 링크(`?tab=%22delegations%22`)도 그대로 산다.
473
+ * 손으로 링크를 만들 때 숫자처럼 생긴 **문자열** 값은 따옴표로 싸야 한다(`?tab=%221%22` — `?tab=1` 은 숫자 1).
474
+ */
468
475
  urlState?: string[];
469
476
  /**
470
477
  * 페이지가 열릴 때 채울 상태 — `{ "상태키": { endpoint, select? } }`.
@@ -1,10 +1,10 @@
1
- export { ApprovalLineEditor, stepLabel, stepTypeIcon } from '../chunk-IQXLNICY.js';
2
- import '../chunk-LKQJJSVJ.js';
3
- import '../chunk-4OABUPIU.js';
4
- import '../chunk-X2NIRVLN.js';
1
+ export { ApprovalLineEditor, stepLabel, stepTypeIcon } from '../chunk-USNPJEXH.js';
2
+ import '../chunk-VAXRTBJH.js';
3
+ import '../chunk-A57GKV5F.js';
4
+ import '../chunk-FP32LNFK.js';
5
5
  import '../chunk-BITS7UJY.js';
6
6
  import '../chunk-RIZRM7OO.js';
7
- import '../chunk-YNEEJCSZ.js';
7
+ import '../chunk-JHFA5RDN.js';
8
8
  import '../chunk-GSM664TX.js';
9
- import '../chunk-BLFJMMBW.js';
9
+ import '../chunk-YYAGE733.js';
10
10
  import '../chunk-3JTBOABA.js';
@@ -1,12 +1,12 @@
1
- export { ApprovalOverridesEditor, facetsFrom } from '../chunk-OUEJWC2Z.js';
2
- import '../chunk-6TI4WF5Y.js';
3
- import '../chunk-IQXLNICY.js';
4
- import '../chunk-LKQJJSVJ.js';
5
- import '../chunk-4OABUPIU.js';
6
- import '../chunk-X2NIRVLN.js';
1
+ export { ApprovalOverridesEditor, facetsFrom } from '../chunk-KDKRFWIF.js';
2
+ import '../chunk-GSXD52XG.js';
3
+ import '../chunk-USNPJEXH.js';
4
+ import '../chunk-VAXRTBJH.js';
5
+ import '../chunk-A57GKV5F.js';
6
+ import '../chunk-FP32LNFK.js';
7
7
  import '../chunk-BITS7UJY.js';
8
8
  import '../chunk-RIZRM7OO.js';
9
- import '../chunk-YNEEJCSZ.js';
9
+ import '../chunk-JHFA5RDN.js';
10
10
  import '../chunk-GSM664TX.js';
11
- import '../chunk-BLFJMMBW.js';
11
+ import '../chunk-YYAGE733.js';
12
12
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { ApprovalStepper, normalizeStepStatus } from '../chunk-WTIYILY3.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { ApprovalStepper, normalizeStepStatus } from '../chunk-CUFGH3LB.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,10 +1,10 @@
1
- export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-CSE3PZOZ.js';
2
- import '../chunk-LKQJJSVJ.js';
3
- import '../chunk-4OABUPIU.js';
4
- import '../chunk-X2NIRVLN.js';
1
+ export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-J7BZF4T4.js';
2
+ import '../chunk-VAXRTBJH.js';
3
+ import '../chunk-A57GKV5F.js';
4
+ import '../chunk-FP32LNFK.js';
5
5
  import '../chunk-BITS7UJY.js';
6
6
  import '../chunk-RIZRM7OO.js';
7
- import '../chunk-YNEEJCSZ.js';
7
+ import '../chunk-JHFA5RDN.js';
8
8
  import '../chunk-GSM664TX.js';
9
- import '../chunk-BLFJMMBW.js';
9
+ import '../chunk-YYAGE733.js';
10
10
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { ColumnBoard } from '../chunk-QVS6K4FP.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { ColumnBoard } from '../chunk-7G6J6QFC.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { DiffView } from '../chunk-HRHKQOOF.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { DiffView } from '../chunk-NLSR3JYU.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { Disclosure } from '../chunk-VPOOIEKT.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { Disclosure } from '../chunk-OCYJ2ZOV.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,5 +1,5 @@
1
- export { EventCalendar, statusToneOf } from '../chunk-53KS4E5N.js';
1
+ export { EventCalendar, statusToneOf } from '../chunk-O4EMQWCV.js';
2
2
  import '../chunk-RIZRM7OO.js';
3
3
  import '../chunk-GSM664TX.js';
4
- import '../chunk-BLFJMMBW.js';
4
+ import '../chunk-YYAGE733.js';
5
5
  import '../chunk-3JTBOABA.js';
@@ -1,9 +1,9 @@
1
- export { FileDropzone, unwrapUploaded } from '../chunk-RU5U2YMT.js';
2
- import '../chunk-KZ6U6FKB.js';
3
- import '../chunk-AZSLSAJB.js';
1
+ export { FileDropzone, unwrapUploaded } from '../chunk-EUSC5NMZ.js';
2
+ import '../chunk-3PT5OBOU.js';
3
+ import '../chunk-UZZLMPRW.js';
4
4
  import '../chunk-BITS7UJY.js';
5
5
  import '../chunk-RIZRM7OO.js';
6
- import '../chunk-YNEEJCSZ.js';
6
+ import '../chunk-JHFA5RDN.js';
7
7
  import '../chunk-GSM664TX.js';
8
- import '../chunk-BLFJMMBW.js';
8
+ import '../chunk-YYAGE733.js';
9
9
  import '../chunk-3JTBOABA.js';
@@ -1,7 +1,7 @@
1
- export { ImageLightbox } from '../chunk-KZ6U6FKB.js';
2
- import '../chunk-AZSLSAJB.js';
1
+ export { ImageLightbox } from '../chunk-3PT5OBOU.js';
2
+ import '../chunk-UZZLMPRW.js';
3
3
  import '../chunk-BITS7UJY.js';
4
4
  import '../chunk-RIZRM7OO.js';
5
5
  import '../chunk-GSM664TX.js';
6
- import '../chunk-BLFJMMBW.js';
6
+ import '../chunk-YYAGE733.js';
7
7
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { InlineEdit } from '../chunk-YZTTFEL4.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { InlineEdit } from '../chunk-34BABTH4.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { JsonField } from '../chunk-NAIWQQPW.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { JsonField } from '../chunk-US3K6Q5T.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- export { OPTION_TYPES, OptionSchemaEditor } from '../chunk-HXLQSO66.js';
2
- import '../chunk-LIZTK3HO.js';
3
- import '../chunk-BLFJMMBW.js';
1
+ export { OPTION_TYPES, OptionSchemaEditor } from '../chunk-ESAFQXEU.js';
2
+ import '../chunk-UC725BGW.js';
3
+ import '../chunk-YYAGE733.js';
4
4
  import '../chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- export { OptionValueFields } from '../chunk-WEG3V7ZB.js';
2
- import '../chunk-LIZTK3HO.js';
3
- import '../chunk-BLFJMMBW.js';
1
+ export { OptionValueFields } from '../chunk-SGGIWPP6.js';
2
+ import '../chunk-UC725BGW.js';
3
+ import '../chunk-YYAGE733.js';
4
4
  import '../chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- export { OrgChart } from '../chunk-V7BWMOHO.js';
1
+ export { OrgChart } from '../chunk-EGFDELSF.js';
2
2
  import '../chunk-CSZCWBOE.js';
3
- import '../chunk-BLFJMMBW.js';
3
+ import '../chunk-YYAGE733.js';
4
4
  import '../chunk-3JTBOABA.js';
@@ -1,11 +1,11 @@
1
- export { OrgChartBoard, buildModel, compareMembers, fitCanvasView, isUnassignedGroup, leadershipEmployees, orgVocabOf, pickEmployees, pickGroups, pickPositions } from '../chunk-FEKKOBPX.js';
1
+ export { OrgChartBoard, buildModel, compareMembers, fitCanvasView, isUnassignedGroup, leadershipEmployees, orgVocabOf, pickEmployees, pickGroups, pickPositions } from '../chunk-VSNHDHGS.js';
2
2
  import '../chunk-XRHR452N.js';
3
3
  import '../chunk-CSZCWBOE.js';
4
- import '../chunk-KZ6U6FKB.js';
5
- import '../chunk-AZSLSAJB.js';
4
+ import '../chunk-3PT5OBOU.js';
5
+ import '../chunk-UZZLMPRW.js';
6
6
  import '../chunk-BITS7UJY.js';
7
7
  import '../chunk-RIZRM7OO.js';
8
- import '../chunk-YNEEJCSZ.js';
8
+ import '../chunk-JHFA5RDN.js';
9
9
  import '../chunk-GSM664TX.js';
10
- import '../chunk-BLFJMMBW.js';
10
+ import '../chunk-YYAGE733.js';
11
11
  import '../chunk-3JTBOABA.js';
@@ -1,7 +1,7 @@
1
- export { PeriodFilter } from '../chunk-6XI2VF2O.js';
2
- import '../chunk-X2NIRVLN.js';
1
+ export { PeriodFilter } from '../chunk-GKYUDTMI.js';
2
+ import '../chunk-FP32LNFK.js';
3
3
  import '../chunk-BITS7UJY.js';
4
4
  import '../chunk-RIZRM7OO.js';
5
5
  import '../chunk-GSM664TX.js';
6
- import '../chunk-BLFJMMBW.js';
6
+ import '../chunk-YYAGE733.js';
7
7
  import '../chunk-3JTBOABA.js';
@@ -1,6 +1,6 @@
1
- export { PermissionMatrixEditor, initiallyClosedCategories, stickyInsetOf } from '../chunk-MN4RZ2WP.js';
1
+ export { PermissionMatrixEditor, initiallyClosedCategories, stickyInsetOf } from '../chunk-KO3EUNWB.js';
2
2
  import '../chunk-RIZRM7OO.js';
3
- import '../chunk-YNEEJCSZ.js';
3
+ import '../chunk-JHFA5RDN.js';
4
4
  import '../chunk-GSM664TX.js';
5
- import '../chunk-BLFJMMBW.js';
5
+ import '../chunk-YYAGE733.js';
6
6
  import '../chunk-3JTBOABA.js';
@@ -1,6 +1,6 @@
1
- export { PositionSelect } from '../chunk-OYDJHQNZ.js';
1
+ export { PositionSelect } from '../chunk-BV37UCDF.js';
2
2
  import '../chunk-XRHR452N.js';
3
- import '../chunk-YNEEJCSZ.js';
3
+ import '../chunk-JHFA5RDN.js';
4
4
  import '../chunk-GSM664TX.js';
5
- import '../chunk-BLFJMMBW.js';
5
+ import '../chunk-YYAGE733.js';
6
6
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { PrintSheet, canScriptCloseWindow } from '../chunk-M6H3SHIS.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { PrintSheet, canScriptCloseWindow } from '../chunk-6YBSBC77.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,5 +1,5 @@
1
- export { ProfileEditDiffCard } from '../chunk-CEVZAFPO.js';
2
- import '../chunk-YNEEJCSZ.js';
1
+ export { ProfileEditDiffCard } from '../chunk-IIRVHSNK.js';
2
+ import '../chunk-JHFA5RDN.js';
3
3
  import '../chunk-GSM664TX.js';
4
- import '../chunk-BLFJMMBW.js';
4
+ import '../chunk-YYAGE733.js';
5
5
  import '../chunk-3JTBOABA.js';
@@ -1,5 +1,5 @@
1
- export { QRDisplay } from '../chunk-7JP52QQO.js';
2
- import '../chunk-YNEEJCSZ.js';
1
+ export { QRDisplay } from '../chunk-XFKNU6QN.js';
2
+ import '../chunk-JHFA5RDN.js';
3
3
  import '../chunk-GSM664TX.js';
4
- import '../chunk-BLFJMMBW.js';
4
+ import '../chunk-YYAGE733.js';
5
5
  import '../chunk-3JTBOABA.js';
@@ -1,9 +1,9 @@
1
- export { RankBoard } from '../chunk-2QXA52DG.js';
1
+ export { RankBoard } from '../chunk-VQKX5PJ4.js';
2
2
  import '../chunk-XRHR452N.js';
3
- import '../chunk-CI5OZ2QT.js';
3
+ import '../chunk-VR5MFUD2.js';
4
4
  import '../chunk-BITS7UJY.js';
5
5
  import '../chunk-RIZRM7OO.js';
6
- import '../chunk-YNEEJCSZ.js';
6
+ import '../chunk-JHFA5RDN.js';
7
7
  import '../chunk-GSM664TX.js';
8
- import '../chunk-BLFJMMBW.js';
8
+ import '../chunk-YYAGE733.js';
9
9
  import '../chunk-3JTBOABA.js';
@@ -1,6 +1,6 @@
1
- export { RoleMemberPicker } from '../chunk-YN7X7BEO.js';
2
- import '../chunk-LKQJJSVJ.js';
3
- import '../chunk-YNEEJCSZ.js';
1
+ export { RoleMemberPicker } from '../chunk-PCFH74RD.js';
2
+ import '../chunk-VAXRTBJH.js';
3
+ import '../chunk-JHFA5RDN.js';
4
4
  import '../chunk-GSM664TX.js';
5
- import '../chunk-BLFJMMBW.js';
5
+ import '../chunk-YYAGE733.js';
6
6
  import '../chunk-3JTBOABA.js';
@@ -1,8 +1,8 @@
1
- export { SearchableMultiPicker } from '../chunk-7C54CKFZ.js';
2
- import '../chunk-4OABUPIU.js';
3
- import '../chunk-X2NIRVLN.js';
1
+ export { SearchableMultiPicker } from '../chunk-3PCR73OC.js';
2
+ import '../chunk-A57GKV5F.js';
3
+ import '../chunk-FP32LNFK.js';
4
4
  import '../chunk-BITS7UJY.js';
5
5
  import '../chunk-RIZRM7OO.js';
6
6
  import '../chunk-GSM664TX.js';
7
- import '../chunk-BLFJMMBW.js';
7
+ import '../chunk-YYAGE733.js';
8
8
  import '../chunk-3JTBOABA.js';
@@ -1,3 +1,3 @@
1
- export { SecureScreen } from '../chunk-AY4GM6KQ.js';
2
- import '../chunk-BLFJMMBW.js';
1
+ export { SecureScreen } from '../chunk-AJ3KDBEE.js';
2
+ import '../chunk-YYAGE733.js';
3
3
  import '../chunk-3JTBOABA.js';
@@ -1,7 +1,7 @@
1
- export { StagePeriodEditor } from '../chunk-XG22XKKD.js';
2
- import '../chunk-X2NIRVLN.js';
1
+ export { StagePeriodEditor } from '../chunk-TB7G5DXQ.js';
2
+ import '../chunk-FP32LNFK.js';
3
3
  import '../chunk-BITS7UJY.js';
4
4
  import '../chunk-RIZRM7OO.js';
5
5
  import '../chunk-GSM664TX.js';
6
- import '../chunk-BLFJMMBW.js';
6
+ import '../chunk-YYAGE733.js';
7
7
  import '../chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- export { TagInput, foldSuggestions, normalizeKeyword, normalizeKeywords, splitKeywordText } from '../chunk-W4VA76QO.js';
1
+ export { TagInput, foldSuggestions, normalizeKeyword, normalizeKeywords, splitKeywordText } from '../chunk-OQ7A3SFM.js';
2
2
  import '../chunk-RIZRM7OO.js';
3
- import '../chunk-BLFJMMBW.js';
3
+ import '../chunk-YYAGE733.js';
4
4
  import '../chunk-3JTBOABA.js';
@@ -1,5 +1,5 @@
1
- export { TagMultiSelect, pickSeedValues } from '../chunk-6TI4WF5Y.js';
2
- import '../chunk-YNEEJCSZ.js';
1
+ export { TagMultiSelect, pickSeedValues } from '../chunk-GSXD52XG.js';
2
+ import '../chunk-JHFA5RDN.js';
3
3
  import '../chunk-GSM664TX.js';
4
- import '../chunk-BLFJMMBW.js';
4
+ import '../chunk-YYAGE733.js';
5
5
  import '../chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- export { Timeline } from '../chunk-NA232CBX.js';
2
- import '../chunk-VPOOIEKT.js';
3
- import '../chunk-BLFJMMBW.js';
1
+ export { Timeline } from '../chunk-XUVWIRZJ.js';
2
+ import '../chunk-OCYJ2ZOV.js';
3
+ import '../chunk-YYAGE733.js';
4
4
  import '../chunk-3JTBOABA.js';
@@ -1,9 +1,9 @@
1
- export { TreePicker } from '../chunk-K6RE23XX.js';
2
- import '../chunk-2KQL6DYG.js';
3
- import '../chunk-4OABUPIU.js';
4
- import '../chunk-X2NIRVLN.js';
1
+ export { TreePicker } from '../chunk-OKNF2SBB.js';
2
+ import '../chunk-TWUKNUUQ.js';
3
+ import '../chunk-A57GKV5F.js';
4
+ import '../chunk-FP32LNFK.js';
5
5
  import '../chunk-BITS7UJY.js';
6
6
  import '../chunk-RIZRM7OO.js';
7
7
  import '../chunk-GSM664TX.js';
8
- import '../chunk-BLFJMMBW.js';
8
+ import '../chunk-YYAGE733.js';
9
9
  import '../chunk-3JTBOABA.js';
@@ -27,7 +27,10 @@ interface TreeViewProps {
27
27
  rows?: unknown[];
28
28
  /** 평면 행에서 읽을 키 이름. 없으면 `rows`는 무시된다. */
29
29
  tree?: TreeRowsMapping;
30
- /** 지정하면 controlled — 내부 선택 상태를 쓰지 않는다. */
30
+ /**
31
+ * 지정하면 controlled — 내부 선택 상태를 쓰지 않는다. 선택이 바뀌면 접힌 조상을 펼치고
32
+ * 그 행을 트리 스크롤 상자 안으로 가져온다(같은 선택에서 사용자가 접은 것은 존중).
33
+ */
31
34
  selectedId?: string | null;
32
35
  onSelect?: (id: string, node: TreeNode) => void;
33
36
  /** 검색 입력을 노출한다. 일치 노드의 조상은 펼친 채 유지된다. */
@@ -47,10 +50,21 @@ declare function buildTreeNodes(rows: unknown[] | undefined, tree: TreeRowsMappi
47
50
  /** rows가 비어있지 않고 매핑이 있으면 파생 트리, 아니면 nodes 폴백. TreePicker도 이 판을 쓴다. */
48
51
  declare function resolveTreeNodes(nodes: TreeNode[] | undefined, rows: unknown[] | undefined, tree: TreeRowsMapping | undefined): TreeNode[];
49
52
  declare function pruneExcluded(nodes: TreeNode[], excluded: ReadonlySet<string>): TreeNode[];
53
+ /**
54
+ * id 노드의 조상 id(뿌리 → 부모 순). 뿌리 노드면 빈 배열, 트리에 없으면 null —
55
+ * 바인딩된 rows 가 아직 안 온 것과 "조상 없음"을 가르려고 둘을 구분한다.
56
+ */
57
+ declare function ancestorIdsOf(nodes: readonly TreeNode[], id: string): string[] | null;
58
+ /**
59
+ * 선택 행을 트리 스크롤 상자 안으로 — 상자만 움직이고 페이지는 건드리지 않는다.
60
+ * 화면 좌표 차이는 transform 배율(편집기 미리보기 확대, 모달 열림 애니메이션)이 곱해진 값이라
61
+ * scrollTop(배치 px)으로 옮길 때 배율(화면 높이 ÷ offsetHeight)로 나눈다.
62
+ */
63
+ declare function scrollRowIntoBox(box: Pick<HTMLElement, 'scrollHeight' | 'clientHeight' | 'scrollTop' | 'getBoundingClientRect'> & Partial<Pick<HTMLElement, 'offsetHeight'>>, row: Pick<HTMLElement, 'getBoundingClientRect'>): void;
50
64
  /**
51
65
  * 바깥에서 온 `style`·`className`을 뿌리에 얹어 내보낸다 — 자식 축(`grow`·`width` …)이
52
66
  * 이 컴포넌트에서도 동작하게 하는 유일한 통로다. 까닭은 {@link ../boxed.tsx}에 있다.
53
67
  */
54
68
  declare const TreeView: React__default.FC<TreeViewProps & SduiBoxProps>;
55
69
 
56
- export { type TreeNode, type TreeRowsMapping, TreeView, type TreeViewProps, buildTreeNodes, pruneExcluded, resolveTreeNodes };
70
+ export { type TreeNode, type TreeRowsMapping, TreeView, type TreeViewProps, ancestorIdsOf, buildTreeNodes, pruneExcluded, resolveTreeNodes, scrollRowIntoBox };
@@ -1,8 +1,8 @@
1
- export { TreeView, buildTreeNodes, pruneExcluded, resolveTreeNodes } from '../chunk-2KQL6DYG.js';
2
- import '../chunk-4OABUPIU.js';
3
- import '../chunk-X2NIRVLN.js';
1
+ export { TreeView, ancestorIdsOf, buildTreeNodes, pruneExcluded, resolveTreeNodes, scrollRowIntoBox } from '../chunk-TWUKNUUQ.js';
2
+ import '../chunk-A57GKV5F.js';
3
+ import '../chunk-FP32LNFK.js';
4
4
  import '../chunk-BITS7UJY.js';
5
5
  import '../chunk-RIZRM7OO.js';
6
6
  import '../chunk-GSM664TX.js';
7
- import '../chunk-BLFJMMBW.js';
7
+ import '../chunk-YYAGE733.js';
8
8
  import '../chunk-3JTBOABA.js';