@wipco/sdui 0.19.1 → 0.19.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 { DateRangePicker } from './chunk-HPZUPYPK.js';
1
+ import { DateRangePicker } from './chunk-IY7SMV6V.js';
2
2
  import { SegmentedControl, Select } from './chunk-WIDDHR7L.js';
3
3
  import { boxed } from './chunk-SAN4IX6N.js';
4
4
  import { useState, useMemo } from 'react';
@@ -1,5 +1,5 @@
1
- import { resolveTreeNodes, TreeView } from './chunk-BQ5ZGGW7.js';
2
- import { OverlayLayer } from './chunk-HPZUPYPK.js';
1
+ import { resolveTreeNodes, TreeView } from './chunk-TUR4EBKX.js';
2
+ import { OverlayLayer } from './chunk-IY7SMV6V.js';
3
3
  import { Field, Dialog, Icon, Button, Input } from './chunk-WIDDHR7L.js';
4
4
  import { boxed } from './chunk-SAN4IX6N.js';
5
5
  import { useState, useMemo, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { useOverlayLayer, DateRangePicker } from './chunk-HPZUPYPK.js';
1
+ import { useOverlayLayer, DateRangePicker } from './chunk-IY7SMV6V.js';
2
2
  import { Input, Button, IconButton, Tag, Field, Checkbox } from './chunk-WIDDHR7L.js';
3
3
  import { useRef, useEffect, useState, useMemo } from 'react';
4
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -365,20 +365,71 @@ function Calendar({
365
365
  })
366
366
  ] }) });
367
367
  }
368
- function useDismiss(open, hostRef, onDismiss) {
368
+ function useDismiss(open, hostRef, popRef, onDismiss) {
369
369
  useEffect(() => {
370
370
  if (!open) return;
371
371
  const handlePointerDown = (event) => {
372
- if (event.target instanceof Node && hostRef.current?.contains(event.target)) return;
372
+ const target = event.target;
373
+ if (target instanceof Node && (hostRef.current?.contains(target) || popRef.current?.contains(target))) return;
373
374
  onDismiss("outside");
374
375
  };
375
376
  document.addEventListener("pointerdown", handlePointerDown);
376
377
  return () => {
377
378
  document.removeEventListener("pointerdown", handlePointerDown);
378
379
  };
379
- }, [open, hostRef, onDismiss]);
380
+ }, [open, hostRef, popRef, onDismiss]);
380
381
  useOverlayLayer(open, () => onDismiss("escape"), hostRef);
381
382
  }
383
+ var CALENDAR_HEIGHT = 340;
384
+ var ANCHOR_GAP = 8;
385
+ var VIEWPORT_EDGE = 8;
386
+ function anchorTo(host) {
387
+ if (!host || typeof window === "undefined") return null;
388
+ const rect = host.getBoundingClientRect();
389
+ const below = window.innerHeight - rect.bottom;
390
+ const up = below < CALENDAR_HEIGHT && rect.top > below;
391
+ return {
392
+ left: rect.left,
393
+ top: up ? void 0 : rect.bottom + ANCHOR_GAP,
394
+ bottom: up ? window.innerHeight - rect.top + ANCHOR_GAP : void 0,
395
+ minWidth: rect.width
396
+ };
397
+ }
398
+ function usePopoverAnchor(open, hostRef, popRef) {
399
+ const [anchor, setAnchor] = useState(null);
400
+ useLayoutEffect(() => {
401
+ if (!open) {
402
+ setAnchor(null);
403
+ return;
404
+ }
405
+ const place = () => setAnchor(anchorTo(hostRef.current));
406
+ place();
407
+ window.addEventListener("scroll", place, true);
408
+ window.addEventListener("resize", place);
409
+ return () => {
410
+ window.removeEventListener("scroll", place, true);
411
+ window.removeEventListener("resize", place);
412
+ };
413
+ }, [open, hostRef]);
414
+ useLayoutEffect(() => {
415
+ const el = popRef.current;
416
+ if (!open || !el || !anchor) return;
417
+ const overflow = el.getBoundingClientRect().right - (window.innerWidth - VIEWPORT_EDGE);
418
+ if (overflow > 1) {
419
+ setAnchor((prev) => prev ? { ...prev, left: Math.max(VIEWPORT_EDGE, prev.left - overflow) } : prev);
420
+ }
421
+ }, [open, anchor, popRef]);
422
+ return anchor;
423
+ }
424
+ function anchorStyle(anchor) {
425
+ if (!anchor) return void 0;
426
+ return { left: anchor.left, top: anchor.top, bottom: anchor.bottom, minWidth: anchor.minWidth };
427
+ }
428
+ function portal(anchor, container, node) {
429
+ if (!anchor) return null;
430
+ const root = container ?? getOverlayRoot();
431
+ return root ? createPortal(node, root) : node;
432
+ }
382
433
  function DateInput({
383
434
  inputRef,
384
435
  value,
@@ -460,7 +511,9 @@ function DatePickerImpl({
460
511
  setOpen(false);
461
512
  if (reason === "escape") inputRef.current?.focus();
462
513
  }, []);
463
- useDismiss(open, hostRef, dismiss);
514
+ useDismiss(open, hostRef, popRef, dismiss);
515
+ const anchor = usePopoverAnchor(open, hostRef, popRef);
516
+ const overlayContainer = React.useContext(OverlayContainerContext);
464
517
  const isInvalid = Boolean(invalid);
465
518
  const commit = (next) => {
466
519
  if (!isControlled) setInnerValue(next);
@@ -499,7 +552,7 @@ function DatePickerImpl({
499
552
  };
500
553
  const handleBlur = (event) => {
501
554
  const next = event.relatedTarget;
502
- if (next instanceof Node && hostRef.current?.contains(next)) return;
555
+ if (next instanceof Node && (hostRef.current?.contains(next) || popRef.current?.contains(next))) return;
503
556
  if (text !== fieldText) setText(fieldText);
504
557
  setOpen(false);
505
558
  };
@@ -524,27 +577,41 @@ function DatePickerImpl({
524
577
  }
525
578
  }
526
579
  ),
527
- open ? /* @__PURE__ */ jsx("div", { ref: popRef, className: "wp-dp-pop", role: "dialog", "aria-label": "\uB0A0\uC9DC \uC120\uD0DD \uB2EC\uB825", children: /* @__PURE__ */ jsx("div", { className: "wp-dp-pop__body", children: /* @__PURE__ */ jsx(
528
- Calendar,
529
- {
530
- monthCount: 1,
531
- minDate,
532
- maxDate,
533
- focusDate,
534
- onFocusDateChange: setFocusDate,
535
- autoFocus: grabFocus,
536
- dayState: (date) => ({ selected: isSameDay(date, selectedDate) }),
537
- onPick: (date) => {
538
- const ymd = formatYmd(date);
539
- const time = withTime ? splitDateTime(text)[1] : "";
540
- const next = withTime ? `${ymd}T${isValidHm(time) ? time : "00:00"}` : ymd;
541
- setText(toFieldText(next, withTime));
542
- commit(next);
543
- setOpen(false);
544
- inputRef.current?.focus();
580
+ portal(
581
+ anchor,
582
+ overlayContainer,
583
+ /* @__PURE__ */ jsx(
584
+ "div",
585
+ {
586
+ ref: popRef,
587
+ className: "wp-dp-pop",
588
+ style: anchorStyle(anchor),
589
+ role: "dialog",
590
+ "aria-label": "\uB0A0\uC9DC \uC120\uD0DD \uB2EC\uB825",
591
+ children: /* @__PURE__ */ jsx("div", { className: "wp-dp-pop__body", children: /* @__PURE__ */ jsx(
592
+ Calendar,
593
+ {
594
+ monthCount: 1,
595
+ minDate,
596
+ maxDate,
597
+ focusDate,
598
+ onFocusDateChange: setFocusDate,
599
+ autoFocus: grabFocus,
600
+ dayState: (date) => ({ selected: isSameDay(date, selectedDate) }),
601
+ onPick: (date) => {
602
+ const ymd = formatYmd(date);
603
+ const time = withTime ? splitDateTime(text)[1] : "";
604
+ const next = withTime ? `${ymd}T${isValidHm(time) ? time : "00:00"}` : ymd;
605
+ setText(toFieldText(next, withTime));
606
+ commit(next);
607
+ setOpen(false);
608
+ inputRef.current?.focus();
609
+ }
610
+ }
611
+ ) })
545
612
  }
546
- }
547
- ) }) }) : null
613
+ )
614
+ )
548
615
  ] });
549
616
  }
550
617
  function DateRangePickerImpl({
@@ -585,7 +652,9 @@ function DateRangePickerImpl({
585
652
  setOpen(false);
586
653
  if (reason === "escape") (end === "to" ? toRef : fromRef).current?.focus();
587
654
  }, [end]);
588
- useDismiss(open, hostRef, dismiss);
655
+ useDismiss(open, hostRef, popRef, dismiss);
656
+ const anchor = usePopoverAnchor(open, hostRef, popRef);
657
+ const overlayContainer = React.useContext(OverlayContainerContext);
589
658
  const isInvalid = Boolean(invalid);
590
659
  const commit = (nextFrom, nextTo) => {
591
660
  const next = { from: nextFrom || void 0, to: nextTo || void 0 };
@@ -637,7 +706,7 @@ function DateRangePickerImpl({
637
706
  };
638
707
  const handleBlur = (event) => {
639
708
  const next = event.relatedTarget;
640
- if (next instanceof Node && hostRef.current?.contains(next)) return;
709
+ if (next instanceof Node && (hostRef.current?.contains(next) || popRef.current?.contains(next))) return;
641
710
  if (fromText !== fromValue) setFromText(fromValue);
642
711
  if (toText !== toValue) setToText(toValue);
643
712
  setOpen(false);
@@ -708,36 +777,50 @@ function DateRangePickerImpl({
708
777
  }
709
778
  )
710
779
  ] }),
711
- open ? /* @__PURE__ */ jsx("div", { ref: popRef, className: "wp-dp-pop wp-dp-pop--wide", role: "dialog", "aria-label": "\uAE30\uAC04 \uC120\uD0DD \uB2EC\uB825", children: /* @__PURE__ */ jsx("div", { className: "wp-dp-pop__body", children: /* @__PURE__ */ jsx(
712
- Calendar,
713
- {
714
- monthCount: 2,
715
- minDate,
716
- maxDate,
717
- focusDate,
718
- onFocusDateChange: setFocusDate,
719
- autoFocus: grabFocus,
720
- dayState: (date) => {
721
- const t = date.getTime();
722
- const start = fromDate?.getTime();
723
- const end2 = toDate?.getTime();
724
- if (start !== void 0 && end2 !== void 0 && t > start && t < end2) return { rangeMiddle: true };
725
- return {
726
- rangeStart: start !== void 0 && t === start && end2 !== void 0,
727
- rangeEnd: end2 !== void 0 && t === end2,
728
- // 한쪽 끝만 정해진 상태는 단일 선택처럼 보인다
729
- selected: start !== void 0 && t === start && end2 === void 0 || end2 !== void 0 && t === end2 && start === void 0 || void 0
730
- };
731
- },
732
- onPick: pick
733
- }
734
- ) }) }) : null
780
+ portal(
781
+ anchor,
782
+ overlayContainer,
783
+ /* @__PURE__ */ jsx(
784
+ "div",
785
+ {
786
+ ref: popRef,
787
+ className: "wp-dp-pop wp-dp-pop--wide",
788
+ style: anchorStyle(anchor),
789
+ role: "dialog",
790
+ "aria-label": "\uAE30\uAC04 \uC120\uD0DD \uB2EC\uB825",
791
+ children: /* @__PURE__ */ jsx("div", { className: "wp-dp-pop__body", children: /* @__PURE__ */ jsx(
792
+ Calendar,
793
+ {
794
+ monthCount: 2,
795
+ minDate,
796
+ maxDate,
797
+ focusDate,
798
+ onFocusDateChange: setFocusDate,
799
+ autoFocus: grabFocus,
800
+ dayState: (date) => {
801
+ const t = date.getTime();
802
+ const start = fromDate?.getTime();
803
+ const end2 = toDate?.getTime();
804
+ if (start !== void 0 && end2 !== void 0 && t > start && t < end2) return { rangeMiddle: true };
805
+ return {
806
+ rangeStart: start !== void 0 && t === start && end2 !== void 0,
807
+ rangeEnd: end2 !== void 0 && t === end2,
808
+ // 한쪽 끝만 정해진 상태는 단일 선택처럼 보인다
809
+ selected: start !== void 0 && t === start && end2 === void 0 || end2 !== void 0 && t === end2 && start === void 0 || void 0
810
+ };
811
+ },
812
+ onPick: pick
813
+ }
814
+ ) })
815
+ }
816
+ )
817
+ )
735
818
  ] });
736
819
  }
737
820
  var DP_CSS = `
738
821
  .wp-dp-host{position:relative}
739
- .wp-dp-pop{position:absolute;top:calc(100% + var(--wp-space-2));left:0;min-width:100%;width:max-content;background:var(--wp-surface-card);border:1px solid var(--wp-border-subtle);border-radius:var(--wp-radius-lg);box-shadow:var(--wp-shadow-lg);z-index:300}
740
- .wp-dp-pop--wide{max-width:min(640px,90vw)}
822
+ .wp-dp-pop{position:fixed;width:max-content;max-width:min(92vw,400px);background:var(--wp-surface-card);border:1px solid var(--wp-border-subtle);border-radius:var(--wp-radius-lg);box-shadow:var(--wp-shadow-lg);z-index:var(--wp-z-dialog);pointer-events:auto}
823
+ .wp-dp-pop--wide{max-width:min(92vw,720px)}
741
824
  .wp-dp-pop__body{padding:var(--wp-space-4);max-height:60vh;overflow:auto}
742
825
  .wp-dp-range{display:flex;align-items:center;gap:var(--wp-space-1)}
743
826
  .wp-dp-range>*{flex:1 1 0;min-width:0}
@@ -1,5 +1,5 @@
1
- import { includesLooseSearch } from './chunk-SUJCS7SU.js';
2
- import { OverlayLayer } from './chunk-HPZUPYPK.js';
1
+ import { includesLooseSearch } from './chunk-GUFIEWW2.js';
2
+ import { OverlayLayer } from './chunk-IY7SMV6V.js';
3
3
  import { Button, Dialog, Input, Tag, Checkbox } from './chunk-WIDDHR7L.js';
4
4
  import { boxed } from './chunk-SAN4IX6N.js';
5
5
  import React, { useMemo, useState, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { buildCascadingTree } from './chunk-SUJCS7SU.js';
1
+ import { buildCascadingTree } from './chunk-GUFIEWW2.js';
2
2
  import { Input, IconButton, EmptyState, Icon, Badge } from './chunk-WIDDHR7L.js';
3
3
  import { boxed } from './chunk-SAN4IX6N.js';
4
4
  import React, { useMemo, useState, useRef, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { includesLooseSearch } from './chunk-SUJCS7SU.js';
1
+ import { includesLooseSearch } from './chunk-GUFIEWW2.js';
2
2
  import { Icon, Button, Input, Spinner } from './chunk-WIDDHR7L.js';
3
3
  import { boxed } from './chunk-SAN4IX6N.js';
4
4
  import { useId, useRef, useState, useEffect, useMemo } from 'react';
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@ import { DEV, isSafeNavigationTarget, useSduiAdapter, hostFetchOf, useSduiSandbo
2
2
  export { defaultAdapter, useSduiAssetResolver, useSduiSandbox } from './chunk-WGRB5UL4.js';
3
3
  import { ImageViewer } from './chunk-THEP3VWY.js';
4
4
  export { ImageViewer } from './chunk-THEP3VWY.js';
5
- import { normalizeSearchFields, searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-SUJCS7SU.js';
6
- export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-SUJCS7SU.js';
7
- import { HoistedStyle, DateRangePicker, DatePicker, OverlayLayer } from './chunk-HPZUPYPK.js';
8
- export { DatePicker, DateRangePicker, OverlayContainerContext, OverlayLayer, getOverlayRoot, useOverlayLayer } from './chunk-HPZUPYPK.js';
5
+ import { normalizeSearchFields, searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-GUFIEWW2.js';
6
+ export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-GUFIEWW2.js';
7
+ import { HoistedStyle, DateRangePicker, DatePicker, OverlayLayer } from './chunk-IY7SMV6V.js';
8
+ export { DatePicker, DateRangePicker, OverlayContainerContext, OverlayLayer, getOverlayRoot, useOverlayLayer } from './chunk-IY7SMV6V.js';
9
9
  import { EmptyState, Button, Checkbox, SegmentedControl, Spinner, Select, Pagination, Icon, Card, Badge, ProgressBar, Tag, Toast, Textarea, Tabs, Table, Switch, StatCard, Input, IconButton, Field, Alert, warnOnce, Dialog } from './chunk-WIDDHR7L.js';
10
10
  export { Alert, Avatar, Badge, Breadcrumb, Button, Card, Checkbox, Dialog, EmptyState, Field, Icon, IconButton, Input, Pagination, ProgressBar, Radio, SegmentedControl, Select, SidebarNav, Spinner, StatCard, Switch, Table, Tabs, Tag, Textarea, Toast, Tooltip } from './chunk-WIDDHR7L.js';
11
11
  import { boxed, mergeStyle, containerLayoutStyle, joinClass, columnsClass, typographyStyle, LAYOUT_CSS, childLayoutFrom, CHILD_LAYOUT_PROPS } from './chunk-SAN4IX6N.js';
package/dist/rich.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { useSduiAssetResolver } from './chunk-WGRB5UL4.js';
2
- import { HoistedStyle } from './chunk-HPZUPYPK.js';
3
- export { DatePicker, DateRangePicker } from './chunk-HPZUPYPK.js';
2
+ import { HoistedStyle } from './chunk-IY7SMV6V.js';
3
+ export { DatePicker, DateRangePicker } from './chunk-IY7SMV6V.js';
4
4
  import { Spinner, EmptyState } from './chunk-WIDDHR7L.js';
5
5
  import './chunk-SAN4IX6N.js';
6
6
  import { useRef, useCallback, useMemo, useState, useEffect, useLayoutEffect } from 'react';
@@ -1,5 +1,5 @@
1
- export { AutocompleteField, toAutocompleteOptions } from '../chunk-ZODL6LE2.js';
2
- import '../chunk-SUJCS7SU.js';
3
- import '../chunk-HPZUPYPK.js';
1
+ export { AutocompleteField, toAutocompleteOptions } from '../chunk-YKROA4XK.js';
2
+ import '../chunk-GUFIEWW2.js';
3
+ import '../chunk-IY7SMV6V.js';
4
4
  import '../chunk-WIDDHR7L.js';
5
5
  import '../chunk-SAN4IX6N.js';
@@ -1,4 +1,4 @@
1
- export { PeriodFilter } from '../chunk-IB4NDAYU.js';
2
- import '../chunk-HPZUPYPK.js';
1
+ export { PeriodFilter } from '../chunk-44VLH3I2.js';
2
+ import '../chunk-IY7SMV6V.js';
3
3
  import '../chunk-WIDDHR7L.js';
4
4
  import '../chunk-SAN4IX6N.js';
@@ -1,5 +1,5 @@
1
- export { SearchableMultiPicker } from '../chunk-NXY6QH36.js';
2
- import '../chunk-SUJCS7SU.js';
3
- import '../chunk-HPZUPYPK.js';
1
+ export { SearchableMultiPicker } from '../chunk-J5QWCUDJ.js';
2
+ import '../chunk-GUFIEWW2.js';
3
+ import '../chunk-IY7SMV6V.js';
4
4
  import '../chunk-WIDDHR7L.js';
5
5
  import '../chunk-SAN4IX6N.js';
@@ -1,6 +1,6 @@
1
- export { TreePicker } from '../chunk-YLYSOOVR.js';
2
- import '../chunk-BQ5ZGGW7.js';
3
- import '../chunk-SUJCS7SU.js';
4
- import '../chunk-HPZUPYPK.js';
1
+ export { TreePicker } from '../chunk-F5BAER4V.js';
2
+ import '../chunk-TUR4EBKX.js';
3
+ import '../chunk-GUFIEWW2.js';
4
+ import '../chunk-IY7SMV6V.js';
5
5
  import '../chunk-WIDDHR7L.js';
6
6
  import '../chunk-SAN4IX6N.js';
@@ -1,5 +1,5 @@
1
- export { TreeView, buildTreeNodes, pruneExcluded, resolveTreeNodes } from '../chunk-BQ5ZGGW7.js';
2
- import '../chunk-SUJCS7SU.js';
3
- import '../chunk-HPZUPYPK.js';
1
+ export { TreeView, buildTreeNodes, pruneExcluded, resolveTreeNodes } from '../chunk-TUR4EBKX.js';
2
+ import '../chunk-GUFIEWW2.js';
3
+ import '../chunk-IY7SMV6V.js';
4
4
  import '../chunk-WIDDHR7L.js';
5
5
  import '../chunk-SAN4IX6N.js';
@@ -1,5 +1,5 @@
1
- import { SearchableMultiPicker } from '../chunk-NXY6QH36.js';
2
- export { SearchableMultiPicker } from '../chunk-NXY6QH36.js';
1
+ import { SearchableMultiPicker } from '../chunk-J5QWCUDJ.js';
2
+ export { SearchableMultiPicker } from '../chunk-J5QWCUDJ.js';
3
3
  import { SecureScreen } from '../chunk-IIRENCDS.js';
4
4
  export { SecureScreen } from '../chunk-IIRENCDS.js';
5
5
  import { StackedMeter } from '../chunk-BMZKZGJF.js';
@@ -12,10 +12,10 @@ import { TagMultiSelect } from '../chunk-QDEZXA34.js';
12
12
  export { TagMultiSelect } from '../chunk-QDEZXA34.js';
13
13
  import { Timeline } from '../chunk-EFYEOT47.js';
14
14
  export { Timeline } from '../chunk-EFYEOT47.js';
15
- import { TreePicker } from '../chunk-YLYSOOVR.js';
16
- export { TreePicker } from '../chunk-YLYSOOVR.js';
17
- import { TreeView } from '../chunk-BQ5ZGGW7.js';
18
- export { TreeView, buildTreeNodes } from '../chunk-BQ5ZGGW7.js';
15
+ import { TreePicker } from '../chunk-F5BAER4V.js';
16
+ export { TreePicker } from '../chunk-F5BAER4V.js';
17
+ import { TreeView } from '../chunk-TUR4EBKX.js';
18
+ export { TreeView, buildTreeNodes } from '../chunk-TUR4EBKX.js';
19
19
  import { EventCalendar } from '../chunk-C3JY6GA3.js';
20
20
  export { EventCalendar } from '../chunk-C3JY6GA3.js';
21
21
  import { ImageLightbox } from '../chunk-XPBZMECW.js';
@@ -28,14 +28,14 @@ import { LiveClock } from '../chunk-Z3WGIFJP.js';
28
28
  export { LiveClock } from '../chunk-Z3WGIFJP.js';
29
29
  import { OrgChart } from '../chunk-QWJ3OBBL.js';
30
30
  export { OrgChart } from '../chunk-QWJ3OBBL.js';
31
- import { PeriodFilter } from '../chunk-IB4NDAYU.js';
32
- export { PeriodFilter } from '../chunk-IB4NDAYU.js';
31
+ import { PeriodFilter } from '../chunk-44VLH3I2.js';
32
+ export { PeriodFilter } from '../chunk-44VLH3I2.js';
33
33
  import { PrintSheet } from '../chunk-MYJ2KEIP.js';
34
34
  export { PrintSheet } from '../chunk-MYJ2KEIP.js';
35
35
  import '../chunk-THEP3VWY.js';
36
- export { AutocompleteField, toAutocompleteOptions } from '../chunk-ZODL6LE2.js';
37
- import '../chunk-SUJCS7SU.js';
38
- import '../chunk-HPZUPYPK.js';
36
+ export { AutocompleteField, toAutocompleteOptions } from '../chunk-YKROA4XK.js';
37
+ import '../chunk-GUFIEWW2.js';
38
+ import '../chunk-IY7SMV6V.js';
39
39
  import { ColumnBoard } from '../chunk-C4JRSZGS.js';
40
40
  export { ColumnBoard } from '../chunk-C4JRSZGS.js';
41
41
  import { DiffView } from '../chunk-LDJ2CFFH.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipco/sdui",
3
- "version": "0.19.1",
3
+ "version": "0.19.2",
4
4
  "description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
5
5
  "keywords": [
6
6
  "sdui",