@michengai/dsh-agency-agents 0.1.15 → 0.1.16

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 (2) hide show
  1. package/lib/client.js +144 -14
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -6721,7 +6721,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6721
6721
  function displayDescription(e, active) {
6722
6722
  return active === "en" && e.descriptionEn !== "" ? e.descriptionEn : e.description;
6723
6723
  }
6724
- const CSS = ".aag-btn-wrap{position:relative;order:1;margin-right:-8px}.aag-btn{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 4px 0 8px;border:none;border-radius:24px;background:transparent;color:var(--dsw-alias-label-secondary);font-size:13px;line-height:20px;font-weight:500;cursor:pointer}.aag-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.aag-menu{position:absolute;bottom:calc(100% + 4px);left:0;box-sizing:border-box;padding:4px;display:flex;flex-direction:column;gap:0;width:300px;max-width:360px;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--dsw-alias-border-inverted);border-radius:12px;background:var(--dsw-specific-menu);box-shadow:var(--dsw-shadow-lv3);z-index:10000}.aag-menu-title{padding:8px 10px;font-size:12px;line-height:16px;color:var(--dsw-alias-label-tertiary)}.aag-menu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px 10px;border:none;border-radius:10px;background:transparent;cursor:pointer;text-align:left;font-size:14px;line-height:22px;color:var(--dsw-alias-label-primary);box-sizing:border-box}.aag-menu-item:hover{background:var(--dsw-alias-interactive-bg-hover)}.aag-emoji{flex:0 0 auto;font-size:16px}.aag-menu-empty{padding:8px 10px;color:var(--dsw-alias-label-secondary);font-size:13px}[data-composer-card] :has(> button[aria-haspopup=\"listbox\"]) > :nth-child(2){order:2}\n.aag-section{box-sizing:border-box;display:flex;min-width:0;max-width:760px;width:100%;margin:0 auto;flex-direction:column;gap:16px;padding:0 0 32px;color:var(--dsw-alias-label-primary)}\n.aag-toolbar{display:flex;align-items:flex-start;gap:16px;padding-bottom:12px}\n.aag-title{margin:0;font-size:20px;line-height:28px;font-weight:650;letter-spacing:-.2px}\n.aag-desc{margin:4px 0 0;max-width:42em;color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:1.5}\n.aag-actions{display:flex;align-items:center;gap:8px;margin-left:auto}\n.aag-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground);font:inherit;font-size:13px;font-weight:550;cursor:pointer;transition:opacity 180ms ease,background 180ms ease,border-color 180ms ease}\n.aag-action:hover:not(:disabled){opacity:.9}.aag-action:disabled{opacity:.5;cursor:default}\n.aag-action-secondary{background:transparent;border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary)}\n.aag-action:focus-visible{outline:2px solid var(--dsw-alias-state-success-primary);outline-offset:2px}\n.aag-summary{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-alias-bg-layer-2)}\n.aag-summary-count{font-size:18px;font-weight:650}.aag-summary-label{color:var(--dsw-alias-label-secondary);font-size:12px}.aag-summary-separator{width:1px;height:24px;background:var(--dsw-alias-border-l2)}\n.aag-group{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--dsw-alias-border-l2);border-radius:12px;background:var(--dsw-alias-bg-layer-2)}\n.aag-group-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--dsw-alias-border-l1)}\n.aag-group-title{margin:0;font-size:14px;font-weight:600}.aag-count{color:var(--dsw-alias-label-tertiary);font-size:12px}\n.aag-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--dsw-alias-border-l1)}\n.aag-row:last-child{border-bottom:0}\n.aag-row-main{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}\n.aag-row-id{display:flex;align-items:center;gap:7px;min-width:0}\n.aag-row-name{overflow:hidden;font-size:13px;font-weight:500;line-height:20px;text-overflow:ellipsis;white-space:nowrap}\n.aag-tag{flex:none;padding:1px 6px;border:1px solid var(--dsw-alias-border-l3);border-radius:4px;color:var(--dsw-alias-label-secondary);font-size:11px;line-height:16px}\n.aag-tag-on{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary)}\n.aag-tag-off{border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}\n.aag-note{overflow:hidden;color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}\n.aag-error{color:var(--dsw-alias-state-error-primary);font-size:13px;line-height:20px}\n.aag-filters{display:flex;align-items:flex-end;gap:10px}\n.aag-field{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px}\n.aag-field-category{flex:0 1 220px}\n.aag-field-search{flex:1 1 240px}\n.aag-label{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:16px}\n.aag-control{box-sizing:border-box;width:100%;min-height:32px;padding:0 10px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:inherit;font-size:13px}\n.aag-control:focus-visible{outline:2px solid var(--dsw-alias-state-success-primary);outline-offset:2px}\n.aag-search-wrap{position:relative;display:flex;align-items:center}\n.aag-search{padding-right:32px}.aag-search::-webkit-search-cancel-button,.aag-search::-webkit-search-decoration{-webkit-appearance:none;appearance:none}\n.aag-search-clear{position:absolute;right:4px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--dsw-alias-label-tertiary);font:inherit;font-size:16px;line-height:1;cursor:pointer}\n.aag-search-clear:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}\n.aag-search-clear:focus-visible{outline:2px solid var(--dsw-alias-state-success-primary);outline-offset:2px}\n.aag-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 16px;border:1px dashed var(--dsw-alias-border-l2);border-radius:12px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font-size:13px;line-height:20px;text-align:center}\n.aag-filter-meta{margin-left:auto;color:var(--dsw-alias-label-tertiary);font-size:12px}\n@media (max-width:560px){.aag-toolbar{flex-wrap:wrap}.aag-actions{margin-left:0}.aag-filters{flex-direction:column;align-items:stretch}.aag-field-category,.aag-field-search{flex:none}.aag-row{align-items:flex-start;flex-wrap:wrap}.aag-row>.aag-action{margin-left:auto}.aag-filter-meta{margin-left:0}}\n@media (prefers-reduced-motion:reduce){.aag-action{transition:none}}\n" + DIVISION_ORDER.map((d) => `[role="listbox"] div[data-source="division.${d}"] ~ button span:last-child`).join(",") + "{flex:1 1 auto;max-width:none;min-width:0}";
6724
+ const CSS = ".aag-btn-wrap{position:relative;order:1;margin-right:-8px}.aag-btn{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 4px 0 8px;border:none;border-radius:24px;background:transparent;color:var(--dsw-alias-label-secondary);font-size:13px;line-height:20px;font-weight:500;cursor:pointer}.aag-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.aag-menu{position:absolute;bottom:calc(100% + 4px);left:0;box-sizing:border-box;padding:4px;display:flex;flex-direction:column;gap:0;width:300px;max-width:360px;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--dsw-alias-border-inverted);border-radius:12px;background:var(--dsw-specific-menu);box-shadow:var(--dsw-shadow-lv3);z-index:10000}.aag-menu-title{padding:8px 10px;font-size:12px;line-height:16px;color:var(--dsw-alias-label-tertiary)}.aag-menu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px 10px;border:none;border-radius:10px;background:transparent;cursor:pointer;text-align:left;font-size:14px;line-height:22px;color:var(--dsw-alias-label-primary);box-sizing:border-box}.aag-menu-item:hover{background:var(--dsw-alias-interactive-bg-hover)}.aag-emoji{flex:0 0 auto;font-size:16px}.aag-menu-empty{padding:8px 10px;color:var(--dsw-alias-label-secondary);font-size:13px}[data-composer-card] :has(> button[aria-haspopup=\"listbox\"]) > :nth-child(2){order:2}\n.aag-section{box-sizing:border-box;display:flex;min-width:0;max-width:760px;width:100%;margin:0 auto;flex-direction:column;gap:16px;padding:0 0 32px;color:var(--dsw-alias-label-primary)}\n.aag-toolbar{display:flex;align-items:flex-start;gap:16px;padding-bottom:12px}\n.aag-title{margin:0;font-size:20px;line-height:28px;font-weight:650;letter-spacing:-.2px}\n.aag-desc{margin:4px 0 0;max-width:42em;color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:1.5}\n.aag-actions{display:flex;align-items:center;gap:8px;margin-left:auto}\n.aag-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground);font:inherit;font-size:13px;font-weight:550;cursor:pointer;transition:opacity 180ms ease,background 180ms ease,border-color 180ms ease}\n.aag-action:hover:not(:disabled){opacity:.9}.aag-action:disabled{opacity:.5;cursor:default}\n.aag-action-secondary{background:transparent;border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary)}\n.aag-action:focus-visible{outline:2px solid var(--dsw-alias-state-success-primary);outline-offset:2px}\n.aag-summary{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-alias-bg-layer-2)}\n.aag-summary-count{font-size:18px;font-weight:650}.aag-summary-label{color:var(--dsw-alias-label-secondary);font-size:12px}.aag-summary-separator{width:1px;height:24px;background:var(--dsw-alias-border-l2)}\n.aag-group{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--dsw-alias-border-l2);border-radius:12px;background:var(--dsw-alias-bg-layer-2)}\n.aag-group-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--dsw-alias-border-l1)}\n.aag-group-title{margin:0;font-size:14px;font-weight:600}.aag-count{color:var(--dsw-alias-label-tertiary);font-size:12px}\n.aag-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--dsw-alias-border-l1)}\n.aag-row:last-child{border-bottom:0}\n.aag-row-main{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}\n.aag-row-id{display:flex;align-items:center;gap:7px;min-width:0}\n.aag-row-name{overflow:hidden;font-size:13px;font-weight:500;line-height:20px;text-overflow:ellipsis;white-space:nowrap}\n.aag-tag{flex:none;padding:1px 6px;border:1px solid var(--dsw-alias-border-l3);border-radius:4px;color:var(--dsw-alias-label-secondary);font-size:11px;line-height:16px}\n.aag-tag-on{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary)}\n.aag-tag-off{border-color:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary)}\n.aag-note{overflow:hidden;color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}\n.aag-error{color:var(--dsw-alias-state-error-primary);font-size:13px;line-height:20px}\n.aag-filters{display:flex;align-items:flex-end;gap:10px}\n.aag-field{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px}\n.aag-field-category{flex:0 1 220px}\n.aag-field-search{flex:1 1 240px}\n.aag-label{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:16px}\n.aag-control{box-sizing:border-box;width:100%;min-height:32px;padding:0 10px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:inherit;font-size:13px}\n.aag-control:focus-visible{outline:2px solid var(--dsw-alias-state-success-primary);outline-offset:2px}\n.aag-select{position:relative}\n.aag-select-trigger{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:32px;padding:0 10px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:inherit;font-size:13px;line-height:20px;text-align:left;cursor:pointer}\n.aag-select-trigger:hover{background:var(--dsw-alias-interactive-bg-hover)}\n.aag-select-trigger:focus-visible{outline:2px solid var(--dsw-alias-state-success-primary);outline-offset:2px}\n.aag-select-trigger[aria-expanded=\"true\"]{border-color:var(--dsw-alias-state-success-primary)}\n.aag-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.aag-select-caret{flex:none;width:12px;height:12px;color:var(--dsw-alias-label-tertiary)}\n.aag-select-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;box-sizing:border-box;max-height:280px;overflow:auto;padding:4px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-specific-menu,var(--dsw-alias-bg-layer-2));box-shadow:var(--dsw-shadow-lv3)}\n.aag-select-option{box-sizing:border-box;display:flex;align-items:center;width:100%;min-height:32px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--dsw-alias-label-primary);font:inherit;font-size:13px;line-height:20px;text-align:left;cursor:pointer}\n.aag-select-option:hover,.aag-select-option[data-active=\"true\"]{background:var(--dsw-alias-interactive-bg-hover)}\n.aag-select-option[aria-selected=\"true\"]{color:var(--dsw-alias-state-success-primary)}\n.aag-search-wrap{position:relative;display:flex;align-items:center}\n.aag-search{padding-right:32px}.aag-search::-webkit-search-cancel-button,.aag-search::-webkit-search-decoration{-webkit-appearance:none;appearance:none}\n.aag-search-clear{position:absolute;right:4px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--dsw-alias-label-tertiary);font:inherit;font-size:16px;line-height:1;cursor:pointer}\n.aag-search-clear:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}\n.aag-search-clear:focus-visible{outline:2px solid var(--dsw-alias-state-success-primary);outline-offset:2px}\n.aag-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 16px;border:1px dashed var(--dsw-alias-border-l2);border-radius:12px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font-size:13px;line-height:20px;text-align:center}\n.aag-filter-meta{margin-left:auto;color:var(--dsw-alias-label-tertiary);font-size:12px}\n@media (max-width:560px){.aag-toolbar{flex-wrap:wrap}.aag-actions{margin-left:0}.aag-filters{flex-direction:column;align-items:stretch}.aag-field-category,.aag-field-search{flex:none}.aag-row{align-items:flex-start;flex-wrap:wrap}.aag-row>.aag-action{margin-left:auto}.aag-filter-meta{margin-left:0}}\n@media (prefers-reduced-motion:reduce){.aag-action{transition:none}}\n" + DIVISION_ORDER.map((d) => `[role="listbox"] div[data-source="division.${d}"] ~ button span:last-child`).join(",") + "{flex:1 1 auto;max-width:none;min-width:0}";
6725
6725
  /** 将写失败映射到 agency 词条;非冲突错误返回 null,由调用方展示原始消息。 */
6726
6726
  function writeErrorKey(error, options) {
6727
6727
  if (error instanceof Error && error.message.includes("changed since it was read")) {
@@ -6852,6 +6852,133 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6852
6852
  onClick
6853
6853
  }, expertIcon(), react.default.createElement("span", null, props.t("settings.nav"))), menu);
6854
6854
  }
6855
+ function CategorySelect(props) {
6856
+ const [open, setOpen] = react.default.useState(false);
6857
+ const selectedIndex = Math.max(0, props.options.findIndex((option) => option.value === props.value));
6858
+ const [active, setActive] = react.default.useState(selectedIndex);
6859
+ const rootRef = react.default.useRef(null);
6860
+ const triggerRef = react.default.useRef(null);
6861
+ const listRef = react.default.useRef(null);
6862
+ const wasOpen = react.default.useRef(false);
6863
+ const selected = props.options[selectedIndex];
6864
+ react.default.useEffect(() => {
6865
+ if (!open) return;
6866
+ setActive(selectedIndex);
6867
+ const onPointerDown = (ev) => {
6868
+ const target = ev.target;
6869
+ if (target instanceof Node && rootRef.current?.contains(target) === true) return;
6870
+ setOpen(false);
6871
+ };
6872
+ document.addEventListener("pointerdown", onPointerDown);
6873
+ return () => document.removeEventListener("pointerdown", onPointerDown);
6874
+ }, [open, selectedIndex]);
6875
+ react.default.useEffect(() => {
6876
+ if (open) {
6877
+ listRef.current?.focus();
6878
+ wasOpen.current = true;
6879
+ return;
6880
+ }
6881
+ if (wasOpen.current) {
6882
+ triggerRef.current?.focus();
6883
+ wasOpen.current = false;
6884
+ }
6885
+ }, [open]);
6886
+ react.default.useEffect(() => {
6887
+ if (!open) return;
6888
+ document.getElementById(props.id + "-opt-" + String(active))?.scrollIntoView({ block: "nearest" });
6889
+ }, [
6890
+ active,
6891
+ open,
6892
+ props.id
6893
+ ]);
6894
+ const choose = (value) => {
6895
+ props.onChange(value);
6896
+ setOpen(false);
6897
+ };
6898
+ const move = (next) => {
6899
+ if (props.options.length === 0) return;
6900
+ setActive(Math.min(props.options.length - 1, Math.max(0, next)));
6901
+ };
6902
+ const onTriggerKeyDown = (ev) => {
6903
+ if (ev.key === "ArrowDown" || ev.key === "ArrowUp" || ev.key === "Enter" || ev.key === " ") {
6904
+ ev.preventDefault();
6905
+ setOpen(true);
6906
+ }
6907
+ };
6908
+ const onListKeyDown = (ev) => {
6909
+ if (ev.key === "ArrowDown") {
6910
+ ev.preventDefault();
6911
+ move(active + 1);
6912
+ return;
6913
+ }
6914
+ if (ev.key === "ArrowUp") {
6915
+ ev.preventDefault();
6916
+ move(active - 1);
6917
+ return;
6918
+ }
6919
+ if (ev.key === "Home") {
6920
+ ev.preventDefault();
6921
+ move(0);
6922
+ return;
6923
+ }
6924
+ if (ev.key === "End") {
6925
+ ev.preventDefault();
6926
+ move(props.options.length - 1);
6927
+ return;
6928
+ }
6929
+ if (ev.key === "Enter" || ev.key === " ") {
6930
+ ev.preventDefault();
6931
+ const option = props.options[active];
6932
+ if (option !== void 0) choose(option.value);
6933
+ return;
6934
+ }
6935
+ if (ev.key === "Escape" || ev.key === "Tab") setOpen(false);
6936
+ };
6937
+ return react.default.createElement("div", {
6938
+ className: "aag-select",
6939
+ ref: rootRef
6940
+ }, react.default.createElement("button", {
6941
+ id: props.id,
6942
+ ref: triggerRef,
6943
+ type: "button",
6944
+ className: "aag-select-trigger",
6945
+ "aria-haspopup": "listbox",
6946
+ "aria-expanded": open,
6947
+ "aria-controls": props.id + "-list",
6948
+ onClick: () => setOpen((current) => !current),
6949
+ onKeyDown: onTriggerKeyDown
6950
+ }, react.default.createElement("span", { className: "aag-select-value" }, selected === void 0 ? "" : selected.label), react.default.createElement("svg", {
6951
+ className: "aag-select-caret",
6952
+ viewBox: "0 0 12 12",
6953
+ "aria-hidden": true,
6954
+ focusable: false
6955
+ }, react.default.createElement("path", {
6956
+ d: "M2.5 4.5L6 8l3.5-3.5",
6957
+ fill: "none",
6958
+ stroke: "currentColor",
6959
+ strokeWidth: "1.5",
6960
+ strokeLinecap: "round",
6961
+ strokeLinejoin: "round"
6962
+ }))), open ? react.default.createElement("div", {
6963
+ id: props.id + "-list",
6964
+ ref: listRef,
6965
+ className: "aag-select-menu",
6966
+ role: "listbox",
6967
+ tabIndex: 0,
6968
+ "aria-activedescendant": props.id + "-opt-" + String(active),
6969
+ onKeyDown: onListKeyDown
6970
+ }, props.options.map((option, index) => react.default.createElement("button", {
6971
+ key: option.value === "" ? "all" : option.value,
6972
+ id: props.id + "-opt-" + String(index),
6973
+ type: "button",
6974
+ role: "option",
6975
+ className: "aag-select-option",
6976
+ "aria-selected": option.value === props.value,
6977
+ "data-active": index === active,
6978
+ onMouseEnter: () => setActive(index),
6979
+ onClick: () => choose(option.value)
6980
+ }, option.label))) : null);
6981
+ }
6855
6982
  function AgentsSettings(props) {
6856
6983
  const [state, setState] = react.default.useState(null);
6857
6984
  const [error, setError] = react.default.useState(null);
@@ -6959,21 +7086,24 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6959
7086
  }, react.default.createElement("div", { className: "aag-field aag-field-category" }, react.default.createElement("label", {
6960
7087
  className: "aag-label",
6961
7088
  htmlFor: "aag-filter-category"
6962
- }, props.t("settings.filter.category")), react.default.createElement("select", {
7089
+ }, props.t("settings.filter.category")), react.default.createElement(CategorySelect, {
6963
7090
  id: "aag-filter-category",
6964
- className: "aag-control",
6965
7091
  value: division,
6966
- onChange: (ev) => setDivision(ev.currentTarget.value)
6967
- }, react.default.createElement("option", { value: "" }, props.t("settings.filter.option", {
6968
- name: props.t("settings.filter.all"),
6969
- count: total
6970
- })), DIVISION_ORDER.map((key) => react.default.createElement("option", {
6971
- key,
6972
- value: key
6973
- }, props.t("settings.filter.option", {
6974
- name: props.t(`division.${key}`),
6975
- count: DIVISION_COUNTS[key] ?? 0
6976
- }))))), react.default.createElement("div", { className: "aag-field aag-field-search" }, react.default.createElement("label", {
7092
+ onChange: setDivision,
7093
+ options: [{
7094
+ value: "",
7095
+ label: props.t("settings.filter.option", {
7096
+ name: props.t("settings.filter.all"),
7097
+ count: total
7098
+ })
7099
+ }, ...DIVISION_ORDER.map((key) => ({
7100
+ value: key,
7101
+ label: props.t("settings.filter.option", {
7102
+ name: props.t(`division.${key}`),
7103
+ count: DIVISION_COUNTS[key] ?? 0
7104
+ })
7105
+ }))]
7106
+ })), react.default.createElement("div", { className: "aag-field aag-field-search" }, react.default.createElement("label", {
6977
7107
  className: "aag-label",
6978
7108
  htmlFor: "aag-filter-search"
6979
7109
  }, props.t("settings.search")), react.default.createElement("div", { className: "aag-search-wrap" }, react.default.createElement("input", {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@michengai/dsh-agency-agents",
3
3
  "description": "Agency Experts — a summonable domain-expert roster for DSH (expert mode)",
4
- "version": "0.1.15",
4
+ "version": "0.1.16",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",