@aiquants/auth-react-router 0.16.0 → 0.18.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.
package/README.md CHANGED
@@ -110,9 +110,9 @@ carry language, and they are **different axes**:
110
110
 
111
111
  - **`locale`** is forwarded to both `@aiquants/select-box` pickers (the create-group dialog and the directory link
112
112
  form). The picker strings this package owns (`directoryView.pickerNoOptions` / `pickerClear` / `pickerToggle` /
113
- `pickerSelected` / `pickerAvailable`) are passed as the picker's `labels`, the placeholder is the per-instance
114
- `placeholder` prop, and every other key comes from the select-box catalog of `locale` (the values below are those of
115
- `defaultUserAdminLabels` / `jaUserAdminLabels` and of select-box 0.10.0):
113
+ `pickerSelected`) are passed as the picker's `labels`, the placeholder is the per-instance `placeholder` prop, and
114
+ every other key comes from the select-box catalog of `locale` (the values below are those of
115
+ `defaultUserAdminLabels` / `jaUserAdminLabels` and of select-box 0.11.0):
116
116
 
117
117
  | select-box key | Source | `"en"` | `"ja"` |
118
118
  | --- | --- | --- | --- |
@@ -120,7 +120,7 @@ carry language, and they are **different axes**:
120
120
  | `clear` | `directoryView.pickerClear` | Clear the selection | 選択を解除 |
121
121
  | `toggle` | `directoryView.pickerToggle` | Show the group list | グループ一覧を開く |
122
122
  | `selection` | `directoryView.pickerSelected` (`{value}` = the picked option's label) | Selected: {value} | 選択中: {value} |
123
- | `status` | `directoryView.pickerAvailable` (`{count}` = options shown) | {count} groups available | 候補 {count} 件 |
123
+ | `status` | select-box catalog (live-region announcement; see below) | 2 options / 3 options, 2 available | 候補 2 件 / 候補 3 件・選べるもの 2 件 |
124
124
  | `placeholder` | `placeholder` prop: `groupsView.pickUpstreamPlaceholder` (dialog) / `directoryView.pickUpstreamPlaceholder` (link form) | Search by name or address... | 名前かアドレスで検索... |
125
125
  | `scrollUp` | select-box catalog | Scroll up | 上へスクロール |
126
126
  | `scrollDown` | select-box catalog | Scroll down | 下へスクロール |
@@ -129,11 +129,21 @@ carry language, and they are **different axes**:
129
129
  | `scrollToTop` | select-box catalog | Top | 先頭へ |
130
130
  | `scrollToBottom` | select-box catalog | Bottom | 末尾へ |
131
131
  | `noItems` | select-box catalog | No items | 項目がありません |
132
+ | `searching` | select-box catalog (message of the open list while nothing matches yet and more rows may still come) | Searching... | 検索中... |
133
+ | `guess` | select-box catalog (accessible description of a suggested row, one the picker lists as a guess rather than a match) | suggestion | 推測 |
132
134
  | `removeTag` | select-box catalog (multi-select chips; both pickers are single-select) | Remove {label} | 「{label}」を削除 |
133
135
  | `resizeHandle` | select-box catalog (tooltip of the option list's resize handle) | Resize handle | サイズ変更ハンドル |
134
136
 
135
137
  To change a catalog-sourced string, there is no per-key override here: pick the `locale` whose catalog you want.
136
138
 
139
+ The live-region announcement (`status`) is not overridden, so select-box owns its whole policy in one place: silent
140
+ while the popup is closed, while rows may still come and while the query is being typed; `pickerNoOptions` (the
141
+ resolved `noOptions`) when no row is listed; otherwise the listed count alone when every row is selectable, or the
142
+ count followed by how many are selectable when some are not (already-linked upstream groups are listed but disabled):
143
+ the available rows for a blank query ("3 options, 2 available" / 「候補 3 件・選べるもの 2 件」), the available matches
144
+ for a typed one ("3 options, 2 available matches" / 「候補 3 件・選べる一致 2 件」). The examples in the table are
145
+ the blank-query phrases.
146
+
137
147
  - `resolveUserAdminLabels` (run once when `createUserAdminApp` is built) **validates `locale`**: an omitted value keeps
138
148
  the English default `"en"`; `"en"` / `"ja"` pass; anything else (`"ja-JP"`, `"EN"`, `""`, `null`, ...) throws
139
149
  `RangeError` naming `labels.formatLocale`, so a mistake stops the app at startup instead of crashing the picker on
@@ -251,13 +261,28 @@ the host, or the group picker's dropdown renders unstyled:
251
261
  @import "@aiquants/select-box/styles/select-box.css";
252
262
  ```
253
263
 
264
+ That is the components-only build. Follow select-box's own README ("CSS Setup") for the rest of your build: a Tailwind v4
265
+ host imports it (and the `@aiquants/virtualscroll` peer build) in `layer(components)` and points `@source` at
266
+ `node_modules/@aiquants/select-box/dist` (the published package ships no `src`); a host without Tailwind imports
267
+ `@aiquants/select-box/styles/select-box.standalone.css` instead.
268
+
269
+ The option rows of both pickers are drawn by this package: each row shows the group name and address, a note (the local
270
+ group already linked to it, which makes the row unpickable, or else its member count when known), and the part of the
271
+ label the typed query matched. The match paint is
272
+ the picker's own (`RenderOptionContext.highlight`: the query compiled once under the picker's normalization and bound to
273
+ the row's match category), so a row the picker lists as a guess is never painted as an exact match; the runs carry
274
+ `data-aqar-match="exact"` or `"fuzzy"` and are paint-only (background and text colour, no bold), so a label keeps its
275
+ width while you type.
276
+
254
277
  `@aiquants/fuzzy-search` is a transitive peer (the picker's search index, reached only through select-box) and is
255
278
  declared here as well, so a host that installs this package is told what the picker needs rather than discovering it
256
279
  as a runtime resolution failure. `@aiquants/virtualscroll` is both: select-box renders its option list with it, and
257
280
  this package imports it **directly** — `src/admin/labels.ts` resolves the UI language with
258
281
  `resolveVirtualScrollLocale`, so `dist/admin.mjs` carries its specifier. The pickers use the `locale` / `labels` props
259
- of `@aiquants/select-box` 0.10.0 and the locale resolution of `@aiquants/virtualscroll` 3.7.0, so those are the peer
260
- floors.
282
+ of `@aiquants/select-box` and its 0.11 render and typing contract (`RenderOptionContext.highlight`, and `value` /
283
+ `onChange` typed by the option type), plus the locale resolution of `@aiquants/virtualscroll` 3.7.0, so select-box 0.11.0
284
+ and virtualscroll 3.7.0 are the peer floors (the published manifest carries `^0.11.0`, which a 0.10 install does not
285
+ satisfy).
261
286
 
262
287
  All three are **required** peers, not optional. `src/admin/views.tsx` imports `@aiquants/select-box` and
263
288
  `src/admin/labels.ts` imports `@aiquants/virtualscroll` at the top level, and `./admin` re-exports both modules, so the
package/dist/admin.d.mts CHANGED
@@ -199,7 +199,6 @@ type UserAdminLabels = {
199
199
  pickerClear: string;
200
200
  pickerToggle: string;
201
201
  pickerSelected: string;
202
- pickerAvailable: string;
203
202
  externalKeyPlaceholder: string;
204
203
  confirmLink: string;
205
204
  confirmUnlink: string;
package/dist/admin.d.ts CHANGED
@@ -199,7 +199,6 @@ type UserAdminLabels = {
199
199
  pickerClear: string;
200
200
  pickerToggle: string;
201
201
  pickerSelected: string;
202
- pickerAvailable: string;
203
202
  externalKeyPlaceholder: string;
204
203
  confirmLink: string;
205
204
  confirmUnlink: string;