@wipco/sdui 1.8.1 → 1.8.2

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.
@@ -1,4 +1,4 @@
1
- import { DatePicker, TimePicker } from './chunk-LKSGAILO.js';
1
+ import { DatePicker, TimePicker } from './chunk-5JXXCRXA.js';
2
2
  import { Field } from './chunk-KIHN7DGA.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useRef, useEffect, useMemo } from 'react';
@@ -1,5 +1,5 @@
1
1
  import { orderCircleStyle, ellipsisStyle, unwrapRows, uid } from './chunk-YOLT2TPX.js';
2
- import { includesLooseSearch } from './chunk-ECBSYHZU.js';
2
+ import { includesLooseSearch } from './chunk-I2URQNZZ.js';
3
3
  import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-XFNHHGFR.js';
4
4
  import { Icon, Badge, IconButton, Field, Select, Input, Tag, Spinner, Button, isPlainObject } from './chunk-KIHN7DGA.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
@@ -360,6 +360,20 @@ function buildMonthCells(index, min, max, weekStartsOn = 0) {
360
360
  }
361
361
  return weeks;
362
362
  }
363
+ function viewForSlot(anchorIdx, slot, monthCount) {
364
+ return slot === "start" ? anchorIdx : anchorIdx - monthCount + 1;
365
+ }
366
+ function initialRangeView(monthCount, anchorIdx, slot, endIdxs) {
367
+ if (endIdxs.length >= 2) {
368
+ const lo = Math.min(...endIdxs);
369
+ if (Math.max(...endIdxs) - lo < monthCount) return lo;
370
+ }
371
+ return viewForSlot(anchorIdx, slot, monthCount);
372
+ }
373
+ function alignRangeView(viewIdx, monthCount, anchorIdx, slot, endIdxs) {
374
+ if (endIdxs.every((idx) => idx >= viewIdx && idx <= viewIdx + monthCount - 1)) return viewIdx;
375
+ return viewForSlot(anchorIdx, slot, monthCount);
376
+ }
363
377
  function sameDayInMonth(date, index) {
364
378
  const first = monthStart(index);
365
379
  const lastDay = new Date(first.getFullYear(), first.getMonth() + 1, 0).getDate();
@@ -379,14 +393,29 @@ function Calendar({
379
393
  onFocusDateChange,
380
394
  autoFocus = false,
381
395
  locale,
382
- selectedDates = []
396
+ selectedDates = [],
397
+ viewAlign
383
398
  }) {
384
399
  const focusIdx = monthIndex(focusDate);
385
- const [viewIdx, setViewIdx] = useState(focusIdx);
400
+ const minIdx = minDate ? monthIndex(minDate) : -Infinity;
401
+ const maxIdx = maxDate ? monthIndex(maxDate) : Infinity;
402
+ const lastViewIdx = Math.max(minIdx, maxIdx - monthCount + 1);
403
+ const clampView = (idx) => clampIndex(idx, minIdx, lastViewIdx);
404
+ const [viewIdx, setViewIdx] = useState(
405
+ () => viewAlign ? clampView(initialRangeView(monthCount, monthIndex(viewAlign.anchor), viewAlign.slot, viewAlign.ends.map(monthIndex))) : focusIdx
406
+ );
407
+ const [alignSeq, setAlignSeq] = useState(viewAlign?.seq);
386
408
  const [zoom, setZoom] = useState(null);
387
409
  const gridRef = useRef(null);
388
410
  const focusYmd = formatYmd(focusDate);
389
- const visibleIdx = clampViewToFocus(focusIdx, viewIdx, monthCount);
411
+ let baseIdx = viewIdx;
412
+ if (viewAlign && viewAlign.seq !== alignSeq) {
413
+ setAlignSeq(viewAlign.seq);
414
+ baseIdx = clampView(
415
+ alignRangeView(viewIdx, monthCount, monthIndex(viewAlign.anchor), viewAlign.slot, viewAlign.ends.map(monthIndex))
416
+ );
417
+ }
418
+ const visibleIdx = clampViewToFocus(focusIdx, baseIdx, monthCount);
390
419
  if (visibleIdx !== viewIdx) setViewIdx(visibleIdx);
391
420
  const claimFocusRef = useRef(false);
392
421
  useEffect(() => {
@@ -402,12 +431,8 @@ function Calendar({
402
431
  if (claim) grid.querySelector('[tabindex="0"]')?.focus();
403
432
  }, [focusYmd]);
404
433
  const todayYmd = formatYmd(/* @__PURE__ */ new Date());
405
- const minIdx = minDate ? monthIndex(minDate) : -Infinity;
406
- const maxIdx = maxDate ? monthIndex(maxDate) : Infinity;
407
434
  const prevDisabled = visibleIdx <= minIdx;
408
435
  const nextDisabled = visibleIdx + monthCount - 1 >= maxIdx;
409
- const lastViewIdx = Math.max(minIdx, maxIdx - monthCount + 1);
410
- const clampView = (idx) => clampIndex(idx, minIdx, lastViewIdx);
411
436
  const moveFocus = (next) => {
412
437
  onFocusDateChange(clampDate(next, minDate, maxDate));
413
438
  };
@@ -530,11 +555,14 @@ function Calendar({
530
555
  );
531
556
  }) }) }),
532
557
  /* @__PURE__ */ jsx("tbody", { className: "wp-dp__weeks", children: weeks.map((week, w) => /* @__PURE__ */ jsx("tr", { className: "wp-dp__week", children: week.map((cell) => {
533
- const state = cell.disabled ? {} : dayState(cell.date);
558
+ if (cell.outside && monthCount > 1) {
559
+ return /* @__PURE__ */ jsx("td", { className: "wp-dp__day wp-dp__day--outside wp-dp__day--blank", children: /* @__PURE__ */ jsx("span", { className: "wp-dp__day-blank", "aria-hidden": "true" }) }, cell.ymd);
560
+ }
561
+ const state = cell.disabled || cell.outside ? {} : dayState(cell.date);
534
562
  const classes = ["wp-dp__day"];
535
563
  if (cell.outside) classes.push("wp-dp__day--outside");
536
564
  if (cell.disabled) classes.push("wp-dp__day--disabled");
537
- if (cell.ymd === todayYmd) classes.push("wp-dp__day--today");
565
+ if (cell.ymd === todayYmd && !cell.outside) classes.push("wp-dp__day--today");
538
566
  if (state.selected) classes.push("wp-dp__day--selected");
539
567
  if (state.rangeStart) classes.push("wp-dp__day--range-start");
540
568
  if (state.rangeMiddle) classes.push("wp-dp__day--range-middle");
@@ -799,6 +827,36 @@ function DateRangePickerImpl({
799
827
  const [focusDate, setFocusDate] = useState(() => fromDate ?? clampDate(/* @__PURE__ */ new Date(), minDate, maxDate));
800
828
  const [grabFocus, setGrabFocus] = useState(false);
801
829
  const [end, setEnd] = useState("from");
830
+ const [viewAlign, setViewAlign] = useState(void 0);
831
+ const programmaticFocusRef = useRef(false);
832
+ const alignFor = (which) => {
833
+ const ends = [fromDate, toDate].filter((d) => d !== void 0);
834
+ const own = which === "from" ? fromDate : toDate;
835
+ if (own) return { anchor: own, slot: which === "from" ? "start" : "end", ends };
836
+ const other = which === "from" ? toDate : fromDate;
837
+ if (other) return { anchor: other, slot: which === "from" ? "end" : "start", ends };
838
+ return void 0;
839
+ };
840
+ const requestAlign = (next) => {
841
+ setViewAlign((prev) => next ? { ...next, seq: (prev?.seq ?? 0) + 1 } : void 0);
842
+ };
843
+ const activateEnd = (which) => {
844
+ if (which === end) return;
845
+ setEnd(which);
846
+ if (!open || programmaticFocusRef.current) return;
847
+ const own = which === "from" ? fromDate : toDate;
848
+ if (!own) return;
849
+ setFocusDate(own);
850
+ requestAlign(alignFor(which));
851
+ };
852
+ const focusEndInput = (ref) => {
853
+ programmaticFocusRef.current = true;
854
+ try {
855
+ ref.current?.focus();
856
+ } finally {
857
+ programmaticFocusRef.current = false;
858
+ }
859
+ };
802
860
  const dismiss = useCallback((reason) => {
803
861
  setOpen(false);
804
862
  if (reason === "escape") (end === "to" ? toRef : fromRef).current?.focus();
@@ -821,6 +879,7 @@ function DateRangePickerImpl({
821
879
  setFocusDate(
822
880
  (which === "to" ? toDate ?? fromDate : fromDate ?? toDate) ?? clampDate(/* @__PURE__ */ new Date(), minDate, maxDate)
823
881
  );
882
+ requestAlign(alignFor(which));
824
883
  setGrabFocus(claimFocus);
825
884
  setOpen(true);
826
885
  };
@@ -868,18 +927,18 @@ function DateRangePickerImpl({
868
927
  const keepTo = toDate && date.getTime() > toDate.getTime() ? "" : toValue;
869
928
  commit(ymd, keepTo);
870
929
  setEnd("to");
871
- toRef.current?.focus();
930
+ focusEndInput(toRef);
872
931
  return;
873
932
  }
874
933
  if (fromDate && date.getTime() < fromDate.getTime()) {
875
934
  commit(ymd, "");
876
935
  setEnd("to");
877
- toRef.current?.focus();
936
+ focusEndInput(toRef);
878
937
  return;
879
938
  }
880
939
  commit(fromValue, ymd);
881
940
  setOpen(false);
882
- toRef.current?.focus();
941
+ focusEndInput(toRef);
883
942
  };
884
943
  return /* @__PURE__ */ jsxs("div", { ref: hostRef, className: "wp-dp-host wp-dp-host--range", onBlur: handleBlur, children: [
885
944
  /* @__PURE__ */ jsx(HoistedStyle, { id: "wp-datepicker", css: DP_CSS }),
@@ -900,7 +959,7 @@ function DateRangePickerImpl({
900
959
  ariaLabel: loc.startLabel,
901
960
  onValueChange: (raw) => handleTextChange("from", raw),
902
961
  onKeyDown: handleKeyDown("from"),
903
- onFocus: () => setEnd("from"),
962
+ onFocus: () => activateEnd("from"),
904
963
  onPointerDown: () => {
905
964
  if (!disabled && !open) openCalendar("from", false);
906
965
  }
@@ -922,7 +981,7 @@ function DateRangePickerImpl({
922
981
  ariaLabel: loc.endLabel,
923
982
  onValueChange: (raw) => handleTextChange("to", raw),
924
983
  onKeyDown: handleKeyDown("to"),
925
- onFocus: () => setEnd("to"),
984
+ onFocus: () => activateEnd("to"),
926
985
  onPointerDown: () => {
927
986
  if (!disabled && !open) openCalendar("to", false);
928
987
  }
@@ -951,6 +1010,7 @@ function DateRangePickerImpl({
951
1010
  autoFocus: grabFocus,
952
1011
  locale: loc,
953
1012
  selectedDates: [fromDate, toDate].filter((d) => d !== void 0),
1013
+ viewAlign,
954
1014
  dayState: (date) => {
955
1015
  const t = date.getTime();
956
1016
  const start = fromDate?.getTime();
@@ -1007,6 +1067,8 @@ var DP_CSS = `
1007
1067
  .wp-dp__day-btn:focus-visible{outline:2px solid var(--wp-border-focus);outline-offset:-1px}
1008
1068
  .wp-dp__day--today .wp-dp__day-btn{box-shadow:inset 0 0 0 1px var(--wp-border-focus)}
1009
1069
  .wp-dp__day--outside{color:var(--wp-text-subtle)}
1070
+ /* \uB450 \uB2EC \uD45C\uC2DC\uC758 \uCC44\uC6C0 \uCE78 \u2014 \uB0A0\uC9DC \uCE78\uACFC \uAC19\uC740 \uC790\uB9AC\uB97C \uCC28\uC9C0\uD558\uB294 \uBE48\uCE78(6\uC8FC \uACA9\uC790 \uB192\uC774 \uC720\uC9C0, \uB450 \uD45C \uB192\uC774\uAC00 \uAC19\uB2E4) */
1071
+ .wp-dp__day-blank{display:block;width:32px;height:30px;margin:0 auto}
1010
1072
  .wp-dp__day--disabled{color:var(--wp-text-disabled)}
1011
1073
  .wp-dp__day--disabled .wp-dp__day-btn{cursor:default}
1012
1074
  .wp-dp__day--selected .wp-dp__day-btn{background:var(--wp-action-primary-bg);color:var(--wp-action-primary-fg);font-weight:500}
@@ -1,5 +1,5 @@
1
1
  import { ellipsisStyle, unwrapRows } from './chunk-YOLT2TPX.js';
2
- import { includesLooseSearch } from './chunk-ECBSYHZU.js';
2
+ import { includesLooseSearch } from './chunk-I2URQNZZ.js';
3
3
  import { useSduiAdapter, hostFetchOf } from './chunk-XFNHHGFR.js';
4
4
  import { Icon, Button, Input, Spinner } from './chunk-KIHN7DGA.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- import { includesLooseSearch } from './chunk-ECBSYHZU.js';
1
+ import { includesLooseSearch } from './chunk-I2URQNZZ.js';
2
2
  import { OverlayLayer } from './chunk-R2ORCOTG.js';
3
3
  import { Button, Dialog, Input, Tag, Checkbox } from './chunk-KIHN7DGA.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- import { DateRangePicker } from './chunk-LKSGAILO.js';
1
+ import { DateRangePicker } from './chunk-5JXXCRXA.js';
2
2
  import { useOverlayLayer } from './chunk-R2ORCOTG.js';
3
3
  import { HoistedStyle } from './chunk-RIZRM7OO.js';
4
4
  import { Input, Button, IconButton, Tag, Field, Checkbox } from './chunk-KIHN7DGA.js';
@@ -1,4 +1,4 @@
1
- import { buildCascadingTree } from './chunk-ECBSYHZU.js';
1
+ import { buildCascadingTree } from './chunk-I2URQNZZ.js';
2
2
  import { Input, IconButton, EmptyState, Icon, Badge } from './chunk-KIHN7DGA.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import React, { useMemo, useState, useRef, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { resolveTreeNodes, TreeView } from './chunk-L2WC45T3.js';
1
+ import { resolveTreeNodes, TreeView } from './chunk-OI2GPBIL.js';
2
2
  import { OverlayLayer } from './chunk-R2ORCOTG.js';
3
3
  import { Field, Dialog, Icon, Button, Input } from './chunk-KIHN7DGA.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- import { DateRangePicker } from './chunk-LKSGAILO.js';
1
+ import { DateRangePicker } from './chunk-5JXXCRXA.js';
2
2
  import { SegmentedControl, Select } from './chunk-KIHN7DGA.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import { useState, useMemo } from 'react';
@@ -1,5 +1,5 @@
1
1
  import { TagMultiSelect } from './chunk-TCHXA35K.js';
2
- import { ApprovalLineEditor, stepTypeIcon, stepLabel } from './chunk-2TUCSOZR.js';
2
+ import { ApprovalLineEditor, stepTypeIcon, stepLabel } from './chunk-4SVSS7VO.js';
3
3
  import { orderCircleStyle, unwrapRows, uid } from './chunk-YOLT2TPX.js';
4
4
  import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-XFNHHGFR.js';
5
5
  import { Card, Icon, Input, IconButton, Field, Button, Badge } from './chunk-KIHN7DGA.js';
package/dist/index.js CHANGED
@@ -5,10 +5,10 @@ import { Text, Spacer, Show, Section, Row, PageHead, KeyValueList, Grid, Divider
5
5
  export { Actions, Col, Divider, Grid, KeyValueList, PageHead, Row, Section, Show, Spacer, Text } from './chunk-YK7ZNV2C.js';
6
6
  import { ImageViewer } from './chunk-PN5IJPA5.js';
7
7
  export { ImageViewer } from './chunk-PN5IJPA5.js';
8
- import { normalizeSearchFields, searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-ECBSYHZU.js';
9
- export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-ECBSYHZU.js';
10
- import { parseYmd, YMD_RE, TimePicker, DateRangePicker, DatePicker } from './chunk-LKSGAILO.js';
11
- export { DatePicker, DateRangePicker, TimePicker } from './chunk-LKSGAILO.js';
8
+ import { normalizeSearchFields, searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-I2URQNZZ.js';
9
+ export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-I2URQNZZ.js';
10
+ import { parseYmd, YMD_RE, TimePicker, DateRangePicker, DatePicker } from './chunk-5JXXCRXA.js';
11
+ export { DatePicker, DateRangePicker, TimePicker } from './chunk-5JXXCRXA.js';
12
12
  import './chunk-KJDHF6VU.js';
13
13
  import { OverlayContainerContext, OverlayLayer, useAnyModalOpen } from './chunk-R2ORCOTG.js';
14
14
  export { OverlayContainerContext, OverlayLayer, getOverlayRoot, useAnyModalOpen, useOverlayLayer } from './chunk-R2ORCOTG.js';
package/dist/rich.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useOptionalModule, DependencyPlaceholder } from './chunk-JRCHWX2B.js';
2
- export { DatePicker, DateRangePicker, TimePicker } from './chunk-LKSGAILO.js';
2
+ export { DatePicker, DateRangePicker, TimePicker } from './chunk-5JXXCRXA.js';
3
3
  import './chunk-KJDHF6VU.js';
4
4
  import './chunk-R2ORCOTG.js';
5
5
  import { HoistedStyle } from './chunk-RIZRM7OO.js';
@@ -1,7 +1,7 @@
1
- export { ApprovalLineEditor, stepLabel, stepTypeIcon } from '../chunk-2TUCSOZR.js';
1
+ export { ApprovalLineEditor, stepLabel, stepTypeIcon } from '../chunk-4SVSS7VO.js';
2
2
  import '../chunk-YOLT2TPX.js';
3
- import '../chunk-ECBSYHZU.js';
4
- import '../chunk-LKSGAILO.js';
3
+ import '../chunk-I2URQNZZ.js';
4
+ import '../chunk-5JXXCRXA.js';
5
5
  import '../chunk-KJDHF6VU.js';
6
6
  import '../chunk-R2ORCOTG.js';
7
7
  import '../chunk-RIZRM7OO.js';
@@ -1,9 +1,9 @@
1
- export { ApprovalOverridesEditor, facetsFrom } from '../chunk-HSHVR6VH.js';
1
+ export { ApprovalOverridesEditor, facetsFrom } from '../chunk-ZDWCLHIY.js';
2
2
  import '../chunk-TCHXA35K.js';
3
- import '../chunk-2TUCSOZR.js';
3
+ import '../chunk-4SVSS7VO.js';
4
4
  import '../chunk-YOLT2TPX.js';
5
- import '../chunk-ECBSYHZU.js';
6
- import '../chunk-LKSGAILO.js';
5
+ import '../chunk-I2URQNZZ.js';
6
+ import '../chunk-5JXXCRXA.js';
7
7
  import '../chunk-KJDHF6VU.js';
8
8
  import '../chunk-R2ORCOTG.js';
9
9
  import '../chunk-RIZRM7OO.js';
@@ -1,7 +1,7 @@
1
- export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-OB425KVK.js';
1
+ export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-DTCZPXOT.js';
2
2
  import '../chunk-YOLT2TPX.js';
3
- import '../chunk-ECBSYHZU.js';
4
- import '../chunk-LKSGAILO.js';
3
+ import '../chunk-I2URQNZZ.js';
4
+ import '../chunk-5JXXCRXA.js';
5
5
  import '../chunk-KJDHF6VU.js';
6
6
  import '../chunk-R2ORCOTG.js';
7
7
  import '../chunk-RIZRM7OO.js';
@@ -1,5 +1,5 @@
1
- export { PeriodFilter } from '../chunk-6AFQPHLW.js';
2
- import '../chunk-LKSGAILO.js';
1
+ export { PeriodFilter } from '../chunk-UNQ6VAVD.js';
2
+ import '../chunk-5JXXCRXA.js';
3
3
  import '../chunk-KJDHF6VU.js';
4
4
  import '../chunk-R2ORCOTG.js';
5
5
  import '../chunk-RIZRM7OO.js';
@@ -1,6 +1,6 @@
1
- export { SearchableMultiPicker } from '../chunk-LAGO4H4U.js';
2
- import '../chunk-ECBSYHZU.js';
3
- import '../chunk-LKSGAILO.js';
1
+ export { SearchableMultiPicker } from '../chunk-H7RLEDKJ.js';
2
+ import '../chunk-I2URQNZZ.js';
3
+ import '../chunk-5JXXCRXA.js';
4
4
  import '../chunk-KJDHF6VU.js';
5
5
  import '../chunk-R2ORCOTG.js';
6
6
  import '../chunk-RIZRM7OO.js';
@@ -1,5 +1,5 @@
1
- export { StagePeriodEditor } from '../chunk-HSS7MTJK.js';
2
- import '../chunk-LKSGAILO.js';
1
+ export { StagePeriodEditor } from '../chunk-3PGKBTBZ.js';
2
+ import '../chunk-5JXXCRXA.js';
3
3
  import '../chunk-KJDHF6VU.js';
4
4
  import '../chunk-R2ORCOTG.js';
5
5
  import '../chunk-RIZRM7OO.js';
@@ -1,7 +1,7 @@
1
- export { TreePicker } from '../chunk-RDQO43Y5.js';
2
- import '../chunk-L2WC45T3.js';
3
- import '../chunk-ECBSYHZU.js';
4
- import '../chunk-LKSGAILO.js';
1
+ export { TreePicker } from '../chunk-UDJVLMDH.js';
2
+ import '../chunk-OI2GPBIL.js';
3
+ import '../chunk-I2URQNZZ.js';
4
+ import '../chunk-5JXXCRXA.js';
5
5
  import '../chunk-KJDHF6VU.js';
6
6
  import '../chunk-R2ORCOTG.js';
7
7
  import '../chunk-RIZRM7OO.js';
@@ -1,6 +1,6 @@
1
- export { TreeView, ancestorIdsOf, buildTreeNodes, pruneExcluded, resolveTreeNodes, scrollRowIntoBox } from '../chunk-L2WC45T3.js';
2
- import '../chunk-ECBSYHZU.js';
3
- import '../chunk-LKSGAILO.js';
1
+ export { TreeView, ancestorIdsOf, buildTreeNodes, pruneExcluded, resolveTreeNodes, scrollRowIntoBox } from '../chunk-OI2GPBIL.js';
2
+ import '../chunk-I2URQNZZ.js';
3
+ import '../chunk-5JXXCRXA.js';
4
4
  import '../chunk-KJDHF6VU.js';
5
5
  import '../chunk-R2ORCOTG.js';
6
6
  import '../chunk-RIZRM7OO.js';
@@ -1,13 +1,13 @@
1
- import { TreePicker } from '../chunk-RDQO43Y5.js';
2
- export { TreePicker } from '../chunk-RDQO43Y5.js';
3
- import { TreeView } from '../chunk-L2WC45T3.js';
4
- export { TreeView, buildTreeNodes } from '../chunk-L2WC45T3.js';
1
+ import { TreePicker } from '../chunk-UDJVLMDH.js';
2
+ export { TreePicker } from '../chunk-UDJVLMDH.js';
3
+ import { TreeView } from '../chunk-OI2GPBIL.js';
4
+ export { TreeView, buildTreeNodes } from '../chunk-OI2GPBIL.js';
5
5
  import { SecureScreen } from '../chunk-ITFSPOOB.js';
6
6
  export { SecureScreen } from '../chunk-ITFSPOOB.js';
7
7
  import { StackedMeter } from '../chunk-EJIWOD7W.js';
8
8
  export { StackedMeter } from '../chunk-EJIWOD7W.js';
9
- import { StagePeriodEditor } from '../chunk-HSS7MTJK.js';
10
- export { StagePeriodEditor } from '../chunk-HSS7MTJK.js';
9
+ import { StagePeriodEditor } from '../chunk-3PGKBTBZ.js';
10
+ export { StagePeriodEditor } from '../chunk-3PGKBTBZ.js';
11
11
  import { Strip } from '../chunk-XAXROQKB.js';
12
12
  export { Strip } from '../chunk-XAXROQKB.js';
13
13
  import { SummaryTable } from '../chunk-VZOQRQAR.js';
@@ -30,8 +30,8 @@ import { RecordSheet } from '../chunk-VR4DQTWR.js';
30
30
  export { RecordSheet } from '../chunk-VR4DQTWR.js';
31
31
  import { RoleMemberPicker } from '../chunk-QP7AQEGZ.js';
32
32
  export { RoleMemberPicker } from '../chunk-QP7AQEGZ.js';
33
- import { SearchableMultiPicker } from '../chunk-LAGO4H4U.js';
34
- export { SearchableMultiPicker } from '../chunk-LAGO4H4U.js';
33
+ import { SearchableMultiPicker } from '../chunk-H7RLEDKJ.js';
34
+ export { SearchableMultiPicker } from '../chunk-H7RLEDKJ.js';
35
35
  import { JsonField } from '../chunk-PGAP2RLS.js';
36
36
  export { JsonField } from '../chunk-PGAP2RLS.js';
37
37
  import { LiveClock } from '../chunk-37BNG4DT.js';
@@ -48,9 +48,9 @@ import '../chunk-XRHR452N.js';
48
48
  import '../chunk-XDR6HC4U.js';
49
49
  import { PermissionMatrixEditor } from '../chunk-DNUO63VZ.js';
50
50
  export { PermissionMatrixEditor, stickyInsetOf } from '../chunk-DNUO63VZ.js';
51
- import { PeriodFilter } from '../chunk-6AFQPHLW.js';
52
- export { PeriodFilter } from '../chunk-6AFQPHLW.js';
53
- export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-OB425KVK.js';
51
+ import { PeriodFilter } from '../chunk-UNQ6VAVD.js';
52
+ export { PeriodFilter } from '../chunk-UNQ6VAVD.js';
53
+ export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-DTCZPXOT.js';
54
54
  import { ColumnBoard } from '../chunk-CUAGMSSG.js';
55
55
  export { ColumnBoard } from '../chunk-CUAGMSSG.js';
56
56
  import { DiffView } from '../chunk-DDX7KJAW.js';
@@ -67,15 +67,15 @@ export { InlineEdit } from '../chunk-FXEKHHEA.js';
67
67
  import '../chunk-O3SD2HS6.js';
68
68
  import '../chunk-YK7ZNV2C.js';
69
69
  import '../chunk-PN5IJPA5.js';
70
- import { ApprovalOverridesEditor } from '../chunk-HSHVR6VH.js';
71
- export { ApprovalOverridesEditor } from '../chunk-HSHVR6VH.js';
70
+ import { ApprovalOverridesEditor } from '../chunk-ZDWCLHIY.js';
71
+ export { ApprovalOverridesEditor } from '../chunk-ZDWCLHIY.js';
72
72
  import { TagMultiSelect } from '../chunk-TCHXA35K.js';
73
73
  export { TagMultiSelect, pickSeedValues } from '../chunk-TCHXA35K.js';
74
- import { ApprovalLineEditor } from '../chunk-2TUCSOZR.js';
75
- export { ApprovalLineEditor } from '../chunk-2TUCSOZR.js';
74
+ import { ApprovalLineEditor } from '../chunk-4SVSS7VO.js';
75
+ export { ApprovalLineEditor } from '../chunk-4SVSS7VO.js';
76
76
  import '../chunk-YOLT2TPX.js';
77
- import '../chunk-ECBSYHZU.js';
78
- import '../chunk-LKSGAILO.js';
77
+ import '../chunk-I2URQNZZ.js';
78
+ import '../chunk-5JXXCRXA.js';
79
79
  import '../chunk-KJDHF6VU.js';
80
80
  import '../chunk-R2ORCOTG.js';
81
81
  import '../chunk-RIZRM7OO.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipco/sdui",
3
- "version": "1.8.1",
3
+ "version": "1.8.2",
4
4
  "description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
5
5
  "keywords": [
6
6
  "sdui",