@reopt-ai/opt-ui 1.6.0 → 1.7.0

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 (72) hide show
  1. package/COMPONENT_CATALOG.md +95 -12
  2. package/dist/app.css +24 -0
  3. package/dist/core/index.cjs +3 -3
  4. package/dist/core/index.d.cts +1 -1
  5. package/dist/core/index.d.ts +1 -1
  6. package/dist/core/index.js +2 -2
  7. package/dist/docs/02-components/03-shells.md +104 -11
  8. package/dist/docs/02-components/index.md +3 -3
  9. package/dist/docs/05-migration/01-breaking-changes.md +18 -1
  10. package/dist/field-sidebar-BTZCBviA.d.cts +1031 -0
  11. package/dist/field-sidebar-BTZCBviA.d.cts.map +1 -0
  12. package/dist/field-sidebar-CB8vjvUM.d.ts +1031 -0
  13. package/dist/field-sidebar-CB8vjvUM.d.ts.map +1 -0
  14. package/dist/{workflow-canvas-BGBAcjf-.js → field-sidebar-Cs-J-5VE.js} +1882 -52
  15. package/dist/field-sidebar-Cs-J-5VE.js.map +1 -0
  16. package/dist/{workflow-canvas-3Jeevkgy.cjs → field-sidebar-CzIQX70-.cjs} +2010 -48
  17. package/dist/id-registry.cjs +41 -1
  18. package/dist/id-registry.d.cts +1 -1
  19. package/dist/id-registry.d.cts.map +1 -1
  20. package/dist/id-registry.d.ts +1 -1
  21. package/dist/id-registry.d.ts.map +1 -1
  22. package/dist/id-registry.js +41 -1
  23. package/dist/id-registry.js.map +1 -1
  24. package/dist/id-registry.json +85 -0
  25. package/dist/index.cjs +142 -56
  26. package/dist/index.d.cts +149 -80
  27. package/dist/index.d.cts.map +1 -1
  28. package/dist/index.d.ts +149 -80
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +73 -11
  31. package/dist/index.js.map +1 -1
  32. package/dist/meta.cjs +292 -0
  33. package/dist/meta.d.cts.map +1 -1
  34. package/dist/meta.d.ts.map +1 -1
  35. package/dist/meta.js +292 -0
  36. package/dist/meta.js.map +1 -1
  37. package/dist/{pagination-By7Ozv3U.js → pagination-DWbvACuN.js} +93 -31
  38. package/dist/pagination-DWbvACuN.js.map +1 -0
  39. package/dist/{pagination-Uv3CnGJz.cjs → pagination-DjfxBcjX.cjs} +98 -36
  40. package/dist/query.cjs +386 -0
  41. package/dist/query.d.cts +141 -0
  42. package/dist/query.d.cts.map +1 -0
  43. package/dist/query.d.ts +141 -0
  44. package/dist/query.d.ts.map +1 -0
  45. package/dist/query.js +371 -0
  46. package/dist/query.js.map +1 -0
  47. package/dist/{shader-surface-BWhO2xkk.js → shader-surface-BUPZ0P-n.js} +22 -83
  48. package/dist/shader-surface-BUPZ0P-n.js.map +1 -0
  49. package/dist/{shader-surface-DIVWtpFl.d.ts → shader-surface-BfTP9c1Q.d.ts} +139 -139
  50. package/dist/shader-surface-BfTP9c1Q.d.ts.map +1 -0
  51. package/dist/{shader-surface-BK1GMt5_.d.cts → shader-surface-DRrcLrWf.d.cts} +139 -139
  52. package/dist/shader-surface-DRrcLrWf.d.cts.map +1 -0
  53. package/dist/{shader-surface-DxLLfrE6.cjs → shader-surface-Fav5K9UC.cjs} +20 -87
  54. package/dist/shells/index.cjs +31 -24
  55. package/dist/shells/index.d.cts +2 -2
  56. package/dist/shells/index.d.ts +2 -2
  57. package/dist/shells/index.js +3 -2
  58. package/dist/theme/presets/default.css +2 -2
  59. package/dist/theme/presets/minimal.css +2 -2
  60. package/dist/theme/presets/mono-dark.css +2 -2
  61. package/dist/theme/presets/natural.css +1 -1
  62. package/dist/theme/presets/pro.css +2 -2
  63. package/package.json +17 -6
  64. package/dist/pagination-By7Ozv3U.js.map +0 -1
  65. package/dist/shader-surface-BK1GMt5_.d.cts.map +0 -1
  66. package/dist/shader-surface-BWhO2xkk.js.map +0 -1
  67. package/dist/shader-surface-DIVWtpFl.d.ts.map +0 -1
  68. package/dist/workflow-canvas-BGBAcjf-.js.map +0 -1
  69. package/dist/workflow-canvas-Bar_O2SQ.d.ts +0 -494
  70. package/dist/workflow-canvas-Bar_O2SQ.d.ts.map +0 -1
  71. package/dist/workflow-canvas-DghDRtHn.d.cts +0 -494
  72. package/dist/workflow-canvas-DghDRtHn.d.cts.map +0 -1
package/dist/meta.cjs CHANGED
@@ -7586,6 +7586,298 @@ const messages = [
7586
7586
 
7587
7587
  <ChatMessageList messages={messages} loading={false} />`
7588
7588
  }]
7589
+ },
7590
+ {
7591
+ name: "TimeRangeControl",
7592
+ category: "shell",
7593
+ description: "date math(now-7d, now/d) 기반 시간 범위 컨트롤. quick select, 프리셋/최근 사용, 명시적 Update, 자동 갱신, 창 이동·확대/축소 버튼을 제공합니다.",
7594
+ slug: "time-range-control",
7595
+ exports: ["TimeRangeControl", "DEFAULT_TIME_PRESETS"],
7596
+ props: { TimeRangeControl: [
7597
+ {
7598
+ name: "value",
7599
+ type: "TimeRange",
7600
+ required: true,
7601
+ description: "{ from, to } — date math 문자열 또는 ISO"
7602
+ },
7603
+ {
7604
+ name: "onChange",
7605
+ type: "(range: TimeRange) => void",
7606
+ required: true,
7607
+ description: "범위가 커밋되었을 때 호출"
7608
+ },
7609
+ {
7610
+ name: "presets",
7611
+ type: "TimeRangePreset[]",
7612
+ description: "자주 쓰는 범위 목록"
7613
+ },
7614
+ {
7615
+ name: "recentRanges",
7616
+ type: "TimeRangePreset[]",
7617
+ description: "최근 사용한 범위 (호출자 소유)"
7618
+ },
7619
+ {
7620
+ name: "timeZone",
7621
+ type: "string",
7622
+ description: "라운딩·표시에 쓸 IANA 타임존"
7623
+ },
7624
+ {
7625
+ name: "showUpdateButton",
7626
+ type: "boolean",
7627
+ default: "true",
7628
+ description: "편집을 명시적으로 커밋"
7629
+ },
7630
+ {
7631
+ name: "showWindowButtons",
7632
+ type: "boolean",
7633
+ default: "true",
7634
+ description: "이전/다음 창, 확대/축소 버튼"
7635
+ },
7636
+ {
7637
+ name: "refresh",
7638
+ type: "RefreshSetting",
7639
+ description: "{ interval, paused } 자동 갱신 설정"
7640
+ },
7641
+ {
7642
+ name: "onRefresh",
7643
+ type: "() => void | Promise<unknown>",
7644
+ description: "갱신 요청 — 프라미스가 끝난 뒤 다음 tick"
7645
+ }
7646
+ ] },
7647
+ ariaRole: "group",
7648
+ testDescribe: "TimeRangeControl"
7649
+ },
7650
+ {
7651
+ name: "TimeSeriesPanel",
7652
+ category: "shell",
7653
+ description: "시간 범위 컨트롤과 시계열 차트를 한 단위로 묶은 패널. 드래그 줌과 줌 히스토리(되돌리기), 범례 토글을 포함합니다.",
7654
+ slug: "time-series-panel",
7655
+ exports: ["TimeSeriesPanel"],
7656
+ props: { TimeSeriesPanel: [
7657
+ {
7658
+ name: "data",
7659
+ type: "TimeSeriesPoint[]",
7660
+ required: true,
7661
+ description: "시계열 데이터"
7662
+ },
7663
+ {
7664
+ name: "series",
7665
+ type: "TimeSeriesDef[]",
7666
+ required: true,
7667
+ description: "시리즈 정의"
7668
+ },
7669
+ {
7670
+ name: "range",
7671
+ type: "TimeRange",
7672
+ required: true,
7673
+ description: "조회 구간 — 차트 축도 여기에 고정됩니다"
7674
+ },
7675
+ {
7676
+ name: "onRangeChange",
7677
+ type: "(range: TimeRange) => void",
7678
+ required: true,
7679
+ description: "드래그 줌·컨트롤 변경으로 구간이 바뀔 때 호출"
7680
+ },
7681
+ {
7682
+ name: "showRangeControl",
7683
+ type: "boolean",
7684
+ default: "true",
7685
+ description: "헤더에 TimeRangeControl 렌더"
7686
+ },
7687
+ {
7688
+ name: "toggleableLegend",
7689
+ type: "boolean",
7690
+ default: "false",
7691
+ description: "범례 클릭으로 시리즈 숨김"
7692
+ },
7693
+ {
7694
+ name: "annotations",
7695
+ type: "TimeSeriesAnnotation[]",
7696
+ description: "시간축 마커/구간"
7697
+ },
7698
+ {
7699
+ name: "height",
7700
+ type: "number",
7701
+ default: "280",
7702
+ description: "차트 높이"
7703
+ }
7704
+ ] },
7705
+ ariaRole: "region",
7706
+ testDescribe: "TimeSeriesPanel"
7707
+ },
7708
+ {
7709
+ name: "LogTable",
7710
+ category: "shell",
7711
+ description: "계속 도착하는 로그용 윈도잉 테이블. 컬럼 정의 기반, 상단 삽입 시 스크롤 위치 보존, follow 상태 보고, 셀 값 즉시 필터, 밀도·정렬을 지원합니다.",
7712
+ slug: "log-table",
7713
+ exports: ["LogTable"],
7714
+ props: { LogTable: [
7715
+ {
7716
+ name: "rows",
7717
+ type: "Row[]",
7718
+ required: true,
7719
+ description: "표시할 행"
7720
+ },
7721
+ {
7722
+ name: "columns",
7723
+ type: "LogColumn<Row>[]",
7724
+ required: true,
7725
+ description: "컬럼 정의 (표시 중인 것만)"
7726
+ },
7727
+ {
7728
+ name: "getRowId",
7729
+ type: "(row: Row) => string",
7730
+ required: true,
7731
+ description: "행 식별자"
7732
+ },
7733
+ {
7734
+ name: "selectedId",
7735
+ type: "string | null",
7736
+ description: "선택된 행"
7737
+ },
7738
+ {
7739
+ name: "onSelect",
7740
+ type: "(id: string) => void",
7741
+ description: "행 선택"
7742
+ },
7743
+ {
7744
+ name: "onLoadMore",
7745
+ type: "() => void",
7746
+ description: "다음 페이지 요청"
7747
+ },
7748
+ {
7749
+ name: "prepending",
7750
+ type: "boolean",
7751
+ default: "false",
7752
+ description: "상단에 행이 삽입되는 라이브 목록"
7753
+ },
7754
+ {
7755
+ name: "onFollowChange",
7756
+ type: "(following: boolean) => void",
7757
+ description: "최신 행 고정 여부 보고"
7758
+ },
7759
+ {
7760
+ name: "isNew",
7761
+ type: "(row: Row) => boolean",
7762
+ description: "방금 도착한 행 강조"
7763
+ },
7764
+ {
7765
+ name: "sort",
7766
+ type: "LogSort | null",
7767
+ description: "정렬 상태"
7768
+ },
7769
+ {
7770
+ name: "onSortChange",
7771
+ type: "(sort: LogSort) => void",
7772
+ description: "헤더 클릭 정렬"
7773
+ },
7774
+ {
7775
+ name: "onCellAction",
7776
+ type: "(action: LogCellAction) => void",
7777
+ description: "셀 값 포함/제외 필터"
7778
+ },
7779
+ {
7780
+ name: "density",
7781
+ type: "\"compact\" | \"normal\" | \"comfortable\"",
7782
+ default: "\"normal\"",
7783
+ description: "행 높이와 글자 크기"
7784
+ }
7785
+ ] },
7786
+ ariaRole: "listbox",
7787
+ testDescribe: "LogTable"
7788
+ },
7789
+ {
7790
+ name: "QueryBar",
7791
+ category: "shell",
7792
+ description: "검색과 필터를 한 입력으로 합친 쿼리 바. field:value, -부정, (a or b), 비교 연산, 필드·값 자동완성, 절(clause) 칩을 지원합니다.",
7793
+ slug: "query-bar",
7794
+ exports: ["QueryBar"],
7795
+ props: { QueryBar: [
7796
+ {
7797
+ name: "value",
7798
+ type: "Query",
7799
+ required: true,
7800
+ description: "파싱된 쿼리"
7801
+ },
7802
+ {
7803
+ name: "onChange",
7804
+ type: "(query: Query) => void",
7805
+ required: true,
7806
+ description: "커밋 시 호출 (Enter·blur)"
7807
+ },
7808
+ {
7809
+ name: "fields",
7810
+ type: "QueryField[]",
7811
+ description: "자동완성할 필드와 알려진 값"
7812
+ },
7813
+ {
7814
+ name: "showClauses",
7815
+ type: "boolean",
7816
+ default: "false",
7817
+ description: "절을 제거 가능한 칩으로 표시"
7818
+ },
7819
+ {
7820
+ name: "live",
7821
+ type: "boolean",
7822
+ default: "false",
7823
+ description: "키 입력마다 커밋"
7824
+ }
7825
+ ] },
7826
+ ariaRole: "combobox",
7827
+ testDescribe: "QueryBar"
7828
+ },
7829
+ {
7830
+ name: "FieldSidebar",
7831
+ category: "shell",
7832
+ description: "데이터에 어떤 필드가 있고 각 필드가 무슨 값을 갖는지 보여주는 사이드바. 값 분포 막대, 컬럼으로 승격, 값 기준 포함/제외 필터를 제공합니다.",
7833
+ slug: "field-sidebar",
7834
+ exports: ["FieldSidebar"],
7835
+ props: { FieldSidebar: [
7836
+ {
7837
+ name: "fields",
7838
+ type: "FieldSummary[]",
7839
+ required: true,
7840
+ description: "필드 목록"
7841
+ },
7842
+ {
7843
+ name: "expandedField",
7844
+ type: "string | null",
7845
+ description: "값을 펼친 필드"
7846
+ },
7847
+ {
7848
+ name: "onExpandedFieldChange",
7849
+ type: "(field: string | null) => void",
7850
+ description: "펼침 전환 — 호출자가 값을 조회"
7851
+ },
7852
+ {
7853
+ name: "values",
7854
+ type: "FieldValueCount[]",
7855
+ description: "펼친 필드의 상위 값"
7856
+ },
7857
+ {
7858
+ name: "valuesLoading",
7859
+ type: "boolean",
7860
+ default: "false",
7861
+ description: "값 조회 중"
7862
+ },
7863
+ {
7864
+ name: "sampledRows",
7865
+ type: "number",
7866
+ description: "집계 대상 행 수 (분모)"
7867
+ },
7868
+ {
7869
+ name: "onToggleColumn",
7870
+ type: "(field: string, next: boolean) => void",
7871
+ description: "컬럼 추가/제거"
7872
+ },
7873
+ {
7874
+ name: "onFilter",
7875
+ type: "(field: string, value: string, intent: \"include\" | \"exclude\") => void",
7876
+ description: "값 기준 필터"
7877
+ }
7878
+ ] },
7879
+ ariaRole: "complementary",
7880
+ testDescribe: "FieldSidebar"
7589
7881
  }
7590
7882
  ];
7591
7883
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.cts","names":[],"sources":["../src/core/_meta.ts","../src/visuals/_meta.ts","../src/shells/_meta.ts"],"mappings":";;cAy2Ha,WAAS;;;;cCt2HT,aAAa;;;cC6tGb,YAAU"}
1
+ {"version":3,"file":"meta.d.cts","names":[],"sources":["../src/core/_meta.ts","../src/visuals/_meta.ts","../src/shells/_meta.ts"],"mappings":";;cAy2Ha,WAAS;;;;cCt2HT,aAAa;;;cCwgHb,YAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","names":[],"sources":["../src/core/_meta.ts","../src/visuals/_meta.ts","../src/shells/_meta.ts"],"mappings":";;cAy2Ha,WAAS;;;;cCt2HT,aAAa;;;cC6tGb,YAAU"}
1
+ {"version":3,"file":"meta.d.ts","names":[],"sources":["../src/core/_meta.ts","../src/visuals/_meta.ts","../src/shells/_meta.ts"],"mappings":";;cAy2Ha,WAAS;;;;cCt2HT,aAAa;;;cCwgHb,YAAU"}
package/dist/meta.js CHANGED
@@ -7585,6 +7585,298 @@ const messages = [
7585
7585
 
7586
7586
  <ChatMessageList messages={messages} loading={false} />`
7587
7587
  }]
7588
+ },
7589
+ {
7590
+ name: "TimeRangeControl",
7591
+ category: "shell",
7592
+ description: "date math(now-7d, now/d) 기반 시간 범위 컨트롤. quick select, 프리셋/최근 사용, 명시적 Update, 자동 갱신, 창 이동·확대/축소 버튼을 제공합니다.",
7593
+ slug: "time-range-control",
7594
+ exports: ["TimeRangeControl", "DEFAULT_TIME_PRESETS"],
7595
+ props: { TimeRangeControl: [
7596
+ {
7597
+ name: "value",
7598
+ type: "TimeRange",
7599
+ required: true,
7600
+ description: "{ from, to } — date math 문자열 또는 ISO"
7601
+ },
7602
+ {
7603
+ name: "onChange",
7604
+ type: "(range: TimeRange) => void",
7605
+ required: true,
7606
+ description: "범위가 커밋되었을 때 호출"
7607
+ },
7608
+ {
7609
+ name: "presets",
7610
+ type: "TimeRangePreset[]",
7611
+ description: "자주 쓰는 범위 목록"
7612
+ },
7613
+ {
7614
+ name: "recentRanges",
7615
+ type: "TimeRangePreset[]",
7616
+ description: "최근 사용한 범위 (호출자 소유)"
7617
+ },
7618
+ {
7619
+ name: "timeZone",
7620
+ type: "string",
7621
+ description: "라운딩·표시에 쓸 IANA 타임존"
7622
+ },
7623
+ {
7624
+ name: "showUpdateButton",
7625
+ type: "boolean",
7626
+ default: "true",
7627
+ description: "편집을 명시적으로 커밋"
7628
+ },
7629
+ {
7630
+ name: "showWindowButtons",
7631
+ type: "boolean",
7632
+ default: "true",
7633
+ description: "이전/다음 창, 확대/축소 버튼"
7634
+ },
7635
+ {
7636
+ name: "refresh",
7637
+ type: "RefreshSetting",
7638
+ description: "{ interval, paused } 자동 갱신 설정"
7639
+ },
7640
+ {
7641
+ name: "onRefresh",
7642
+ type: "() => void | Promise<unknown>",
7643
+ description: "갱신 요청 — 프라미스가 끝난 뒤 다음 tick"
7644
+ }
7645
+ ] },
7646
+ ariaRole: "group",
7647
+ testDescribe: "TimeRangeControl"
7648
+ },
7649
+ {
7650
+ name: "TimeSeriesPanel",
7651
+ category: "shell",
7652
+ description: "시간 범위 컨트롤과 시계열 차트를 한 단위로 묶은 패널. 드래그 줌과 줌 히스토리(되돌리기), 범례 토글을 포함합니다.",
7653
+ slug: "time-series-panel",
7654
+ exports: ["TimeSeriesPanel"],
7655
+ props: { TimeSeriesPanel: [
7656
+ {
7657
+ name: "data",
7658
+ type: "TimeSeriesPoint[]",
7659
+ required: true,
7660
+ description: "시계열 데이터"
7661
+ },
7662
+ {
7663
+ name: "series",
7664
+ type: "TimeSeriesDef[]",
7665
+ required: true,
7666
+ description: "시리즈 정의"
7667
+ },
7668
+ {
7669
+ name: "range",
7670
+ type: "TimeRange",
7671
+ required: true,
7672
+ description: "조회 구간 — 차트 축도 여기에 고정됩니다"
7673
+ },
7674
+ {
7675
+ name: "onRangeChange",
7676
+ type: "(range: TimeRange) => void",
7677
+ required: true,
7678
+ description: "드래그 줌·컨트롤 변경으로 구간이 바뀔 때 호출"
7679
+ },
7680
+ {
7681
+ name: "showRangeControl",
7682
+ type: "boolean",
7683
+ default: "true",
7684
+ description: "헤더에 TimeRangeControl 렌더"
7685
+ },
7686
+ {
7687
+ name: "toggleableLegend",
7688
+ type: "boolean",
7689
+ default: "false",
7690
+ description: "범례 클릭으로 시리즈 숨김"
7691
+ },
7692
+ {
7693
+ name: "annotations",
7694
+ type: "TimeSeriesAnnotation[]",
7695
+ description: "시간축 마커/구간"
7696
+ },
7697
+ {
7698
+ name: "height",
7699
+ type: "number",
7700
+ default: "280",
7701
+ description: "차트 높이"
7702
+ }
7703
+ ] },
7704
+ ariaRole: "region",
7705
+ testDescribe: "TimeSeriesPanel"
7706
+ },
7707
+ {
7708
+ name: "LogTable",
7709
+ category: "shell",
7710
+ description: "계속 도착하는 로그용 윈도잉 테이블. 컬럼 정의 기반, 상단 삽입 시 스크롤 위치 보존, follow 상태 보고, 셀 값 즉시 필터, 밀도·정렬을 지원합니다.",
7711
+ slug: "log-table",
7712
+ exports: ["LogTable"],
7713
+ props: { LogTable: [
7714
+ {
7715
+ name: "rows",
7716
+ type: "Row[]",
7717
+ required: true,
7718
+ description: "표시할 행"
7719
+ },
7720
+ {
7721
+ name: "columns",
7722
+ type: "LogColumn<Row>[]",
7723
+ required: true,
7724
+ description: "컬럼 정의 (표시 중인 것만)"
7725
+ },
7726
+ {
7727
+ name: "getRowId",
7728
+ type: "(row: Row) => string",
7729
+ required: true,
7730
+ description: "행 식별자"
7731
+ },
7732
+ {
7733
+ name: "selectedId",
7734
+ type: "string | null",
7735
+ description: "선택된 행"
7736
+ },
7737
+ {
7738
+ name: "onSelect",
7739
+ type: "(id: string) => void",
7740
+ description: "행 선택"
7741
+ },
7742
+ {
7743
+ name: "onLoadMore",
7744
+ type: "() => void",
7745
+ description: "다음 페이지 요청"
7746
+ },
7747
+ {
7748
+ name: "prepending",
7749
+ type: "boolean",
7750
+ default: "false",
7751
+ description: "상단에 행이 삽입되는 라이브 목록"
7752
+ },
7753
+ {
7754
+ name: "onFollowChange",
7755
+ type: "(following: boolean) => void",
7756
+ description: "최신 행 고정 여부 보고"
7757
+ },
7758
+ {
7759
+ name: "isNew",
7760
+ type: "(row: Row) => boolean",
7761
+ description: "방금 도착한 행 강조"
7762
+ },
7763
+ {
7764
+ name: "sort",
7765
+ type: "LogSort | null",
7766
+ description: "정렬 상태"
7767
+ },
7768
+ {
7769
+ name: "onSortChange",
7770
+ type: "(sort: LogSort) => void",
7771
+ description: "헤더 클릭 정렬"
7772
+ },
7773
+ {
7774
+ name: "onCellAction",
7775
+ type: "(action: LogCellAction) => void",
7776
+ description: "셀 값 포함/제외 필터"
7777
+ },
7778
+ {
7779
+ name: "density",
7780
+ type: "\"compact\" | \"normal\" | \"comfortable\"",
7781
+ default: "\"normal\"",
7782
+ description: "행 높이와 글자 크기"
7783
+ }
7784
+ ] },
7785
+ ariaRole: "listbox",
7786
+ testDescribe: "LogTable"
7787
+ },
7788
+ {
7789
+ name: "QueryBar",
7790
+ category: "shell",
7791
+ description: "검색과 필터를 한 입력으로 합친 쿼리 바. field:value, -부정, (a or b), 비교 연산, 필드·값 자동완성, 절(clause) 칩을 지원합니다.",
7792
+ slug: "query-bar",
7793
+ exports: ["QueryBar"],
7794
+ props: { QueryBar: [
7795
+ {
7796
+ name: "value",
7797
+ type: "Query",
7798
+ required: true,
7799
+ description: "파싱된 쿼리"
7800
+ },
7801
+ {
7802
+ name: "onChange",
7803
+ type: "(query: Query) => void",
7804
+ required: true,
7805
+ description: "커밋 시 호출 (Enter·blur)"
7806
+ },
7807
+ {
7808
+ name: "fields",
7809
+ type: "QueryField[]",
7810
+ description: "자동완성할 필드와 알려진 값"
7811
+ },
7812
+ {
7813
+ name: "showClauses",
7814
+ type: "boolean",
7815
+ default: "false",
7816
+ description: "절을 제거 가능한 칩으로 표시"
7817
+ },
7818
+ {
7819
+ name: "live",
7820
+ type: "boolean",
7821
+ default: "false",
7822
+ description: "키 입력마다 커밋"
7823
+ }
7824
+ ] },
7825
+ ariaRole: "combobox",
7826
+ testDescribe: "QueryBar"
7827
+ },
7828
+ {
7829
+ name: "FieldSidebar",
7830
+ category: "shell",
7831
+ description: "데이터에 어떤 필드가 있고 각 필드가 무슨 값을 갖는지 보여주는 사이드바. 값 분포 막대, 컬럼으로 승격, 값 기준 포함/제외 필터를 제공합니다.",
7832
+ slug: "field-sidebar",
7833
+ exports: ["FieldSidebar"],
7834
+ props: { FieldSidebar: [
7835
+ {
7836
+ name: "fields",
7837
+ type: "FieldSummary[]",
7838
+ required: true,
7839
+ description: "필드 목록"
7840
+ },
7841
+ {
7842
+ name: "expandedField",
7843
+ type: "string | null",
7844
+ description: "값을 펼친 필드"
7845
+ },
7846
+ {
7847
+ name: "onExpandedFieldChange",
7848
+ type: "(field: string | null) => void",
7849
+ description: "펼침 전환 — 호출자가 값을 조회"
7850
+ },
7851
+ {
7852
+ name: "values",
7853
+ type: "FieldValueCount[]",
7854
+ description: "펼친 필드의 상위 값"
7855
+ },
7856
+ {
7857
+ name: "valuesLoading",
7858
+ type: "boolean",
7859
+ default: "false",
7860
+ description: "값 조회 중"
7861
+ },
7862
+ {
7863
+ name: "sampledRows",
7864
+ type: "number",
7865
+ description: "집계 대상 행 수 (분모)"
7866
+ },
7867
+ {
7868
+ name: "onToggleColumn",
7869
+ type: "(field: string, next: boolean) => void",
7870
+ description: "컬럼 추가/제거"
7871
+ },
7872
+ {
7873
+ name: "onFilter",
7874
+ type: "(field: string, value: string, intent: \"include\" | \"exclude\") => void",
7875
+ description: "값 기준 필터"
7876
+ }
7877
+ ] },
7878
+ ariaRole: "complementary",
7879
+ testDescribe: "FieldSidebar"
7588
7880
  }
7589
7881
  ];
7590
7882
  //#endregion