bitboss-ui 3.0.0-beta.64 → 3.0.0-beta.65
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/dist/ai/changelog.json +82 -4
- package/dist/ai/components.json +2 -2
- package/dist/ai/composables/useBbConfig.md +8 -1
- package/dist/ai/guides/inertia-helpers.md +1127 -275
- package/dist/ai/guides/migration/v2-to-v3.md +48 -0
- package/dist/ai/guides/passthrough.md +4 -2
- package/dist/ai/helpers/inertia/manifest.json +145 -62
- package/dist/ai/helpers/inertia/messages.ts +33 -0
- package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +116 -16
- package/dist/ai/helpers/inertia/useHasChanged.ts +34 -16
- package/dist/ai/helpers/inertia/useLazyProp.ts +102 -36
- package/dist/ai/helpers/inertia/useLazyPropGetter.ts +3 -1
- package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +129 -24
- package/dist/ai/helpers/inertia/usePromiseForm.ts +121 -14
- package/dist/ai/helpers/inertia/useQuery.ts +133 -11
- package/dist/ai/helpers/inertia/useQueryObject.ts +74 -67
- package/dist/ai/helpers/inertia/useResourceContext.ts +60 -14
- package/dist/ai/helpers/inertia/useRouteQuery.ts +29 -24
- package/dist/ai/helpers/inertia/useScreenSizes.ts +9 -7
- package/dist/ai/helpers/inertia/useTableContext.ts +5 -2
- package/dist/ai/helpers/inertia/utils.ts +14 -0
- package/dist/ai/manifest/index.json +2 -2
- package/dist/ai/recipes/inertia/approvals-inbox.md +1 -1
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +1 -1
- package/dist/ai/recipes/inertia/ownership-atlas.md +1 -1
- package/dist/ai/recipes/inertia/records-workspace.md +1 -1
- package/dist/ai/recipes/inertia/upload-center.md +1 -1
- package/dist/ai/source/BbSelectPopover.md +25 -1
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +306 -294
- package/dist/composables/useBbConfig.d.ts +1 -0
- package/dist/composables/useBbConfig.js +11 -7
- package/dist/llms-full.txt +1192 -283
- package/dist/styles.css +1 -1
- package/dist/utils/versionCheck.js +1 -1
- package/package.json +3 -2
- package/scripts/lib/helpers-add.mjs +26 -2
package/dist/ai/changelog.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 3,
|
|
3
3
|
"library": "bitboss-ui",
|
|
4
|
-
"version": "3.0.0-beta.
|
|
4
|
+
"version": "3.0.0-beta.65",
|
|
5
5
|
"upgrade": "v2-to-v3",
|
|
6
6
|
"guide": "ai/guides/migration/v2-to-v3.md",
|
|
7
7
|
"legend": {
|
|
@@ -74,7 +74,8 @@
|
|
|
74
74
|
"3.0.0-beta.61",
|
|
75
75
|
"3.0.0-beta.62",
|
|
76
76
|
"3.0.0-beta.63",
|
|
77
|
-
"3.0.0-beta.64"
|
|
77
|
+
"3.0.0-beta.64",
|
|
78
|
+
"3.0.0-beta.65"
|
|
78
79
|
],
|
|
79
80
|
"unpublished": [
|
|
80
81
|
"3.0.0-alpha.2",
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
],
|
|
98
99
|
"summary": {
|
|
99
100
|
"renames": 222,
|
|
100
|
-
"behaviourBreaks":
|
|
101
|
+
"behaviourBreaks": 255,
|
|
101
102
|
"bySurface": {
|
|
102
103
|
"prop": 15,
|
|
103
104
|
"option": 1,
|
|
@@ -108,7 +109,7 @@
|
|
|
108
109
|
"class": 140
|
|
109
110
|
},
|
|
110
111
|
"unreleased": 0,
|
|
111
|
-
"added":
|
|
112
|
+
"added": 443
|
|
112
113
|
},
|
|
113
114
|
"added": {
|
|
114
115
|
"3.0.0-alpha.1": [
|
|
@@ -2215,6 +2216,10 @@
|
|
|
2215
2216
|
"BbDropdownButton"
|
|
2216
2217
|
]
|
|
2217
2218
|
}
|
|
2219
|
+
],
|
|
2220
|
+
"3.0.0-beta.65": [
|
|
2221
|
+
"helpers · the leave guard speaks the app's locale",
|
|
2222
|
+
"helpers · a resource context aborts the request it no longer wants"
|
|
2218
2223
|
]
|
|
2219
2224
|
},
|
|
2220
2225
|
"breaking": [
|
|
@@ -8921,6 +8926,79 @@
|
|
|
8921
8926
|
"ruling": "owner 2026-10-26 (ATT-13)",
|
|
8922
8927
|
"guide": "v2-to-v3.md § 6 item 111 + BbForm.md § A failed submit",
|
|
8923
8928
|
"firstReleasedIn": "3.0.0-beta.64"
|
|
8929
|
+
},
|
|
8930
|
+
{
|
|
8931
|
+
"id": "f390",
|
|
8932
|
+
"kind": "behaviour",
|
|
8933
|
+
"summary": "useQueryObject: `only`/`preserve*`/`replace` → `visitOptions`; `shouldNavigate` → `paused` (inverted); `resetKeys` default `['page']`; `transform`/`arrayFormat` gone; new `server`",
|
|
8934
|
+
"components": [
|
|
8935
|
+
"useQueryObject",
|
|
8936
|
+
"useQuery"
|
|
8937
|
+
],
|
|
8938
|
+
"description": "Inertia helper useQueryObject options (after npx bitboss-ui helpers update): only / preserveState / preserveScroll / replace → ONE visitOptions (Inertia's VisitOptions, merged over preserveState / preserveScroll / replace: true); shouldNavigate → paused (inverted: true holds the changes, going back to false sends the current state once unless the URL already holds it); resetPage + resetKeys → resetKeys (default ['page']; a passed list REPLACES it); transform and arrayFormat removed (a getter source reshapes; arrays use QUERY_ARRAY_FORMAT of useQuery.ts, comma); new server: false writes the URL with no request. A visit changes only the object's and the reset keys: other parameters keep their order and encoding",
|
|
8939
|
+
"ruling": "owner 2026-10-27 (Q82.11 redesign)",
|
|
8940
|
+
"guide": "v2-to-v3.md § 6 item 113 + inertia-helpers.md § useQueryObject",
|
|
8941
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8942
|
+
},
|
|
8943
|
+
{
|
|
8944
|
+
"id": "f391",
|
|
8945
|
+
"kind": "behaviour",
|
|
8946
|
+
"summary": "useQuery decodes once (`%2C` splits); URL writes build on the one in flight; `useRouteQuery` flags → `visitOptions`, new `server`; `null` removes the key",
|
|
8947
|
+
"components": [
|
|
8948
|
+
"useQuery",
|
|
8949
|
+
"useRouteQuery",
|
|
8950
|
+
"useQueryObject"
|
|
8951
|
+
],
|
|
8952
|
+
"description": "Inertia helpers useQuery / useRouteQuery (helpers update): useQuery decodes once (?q=R%26D reads R&D, not two keys) and an encoded %2C separates a comma array as PHP + Spatie read it; a #fragment or a raw ? inside a value no longer leaks into values or writes. Every URL writer (the two, useQueryObject, the pager) builds on the write in flight: two writes before the answer both land, undoing one is not swallowed, a ref reads back its write; a write changes only its own key. useRouteQuery: preserveScroll / preserveState → visitOptions, new server: false; null / undefined remove the key (was the string 'null'); a repeated key reads its LAST value (PHP)",
|
|
8953
|
+
"ruling": "owner 2026-10-27 (Q82.11 (c)–(e), war room)",
|
|
8954
|
+
"guide": "v2-to-v3.md § 6 item 114 + inertia-helpers.md § useQuery, § useRouteQuery",
|
|
8955
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8956
|
+
},
|
|
8957
|
+
{
|
|
8958
|
+
"id": "f392",
|
|
8959
|
+
"kind": "behaviour",
|
|
8960
|
+
"summary": "Pager: a `page` write pushes history; `pageQueryKey`/`perPageQueryKey`/`visitOptions`; `items` resets on a visit asking for it; guard `whitelist` only lets submits through",
|
|
8961
|
+
"components": [
|
|
8962
|
+
"usePaginatedResponseContext",
|
|
8963
|
+
"useTableContext",
|
|
8964
|
+
"usePromiseForm",
|
|
8965
|
+
"useConfirmOnRouteLeave",
|
|
8966
|
+
"useLazyProp",
|
|
8967
|
+
"useResourceContext"
|
|
8968
|
+
],
|
|
8969
|
+
"description": "Inertia pagination + visit helpers (helpers update): usePaginatedResponseContext / useTableContext take pageQueryKey / perPageQueryKey / visitOptions (additive); a page write PUSHES history (Back = the previous page), a new perPage replaces and returns to page 1 in the same visit; an answer past the last page visits the last page once; a missing prop reads as empty; junk writes (0, NaN, past a known last page) send nothing; items is a copy, reset by a server visit that asks for the prop and kept (rows unchanged) across other prop swaps (appendToProp) — supersedes item 102's reset rule; cursorPaginate() documented unsupported. usePromiseForm resolves false when a before listener cancels, keeps the caller's onSuccess / onError, rejects an Inertia-rendered error page, and a save held by the leave guard answers the user's choice. useConfirmOnRouteLeave whitelist lets only submits (POST / PUT / PATCH / DELETE) through: a link to the same path asks. useLazyProp stops retrying a failed load (sets error) and survives a navigation cancel; useResourceContext drops late responses",
|
|
8970
|
+
"ruling": "owner 2026-10-27 (Q82.11 (a), (b), (f), (h), war room)",
|
|
8971
|
+
"guide": "v2-to-v3.md § 6 item 115 + inertia-helpers.md",
|
|
8972
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8973
|
+
},
|
|
8974
|
+
{
|
|
8975
|
+
"id": "f393",
|
|
8976
|
+
"kind": "behaviour",
|
|
8977
|
+
"summary": "Leave guard adds the browser prompt, `stack` and `messages.ts` words by locale; `useHasChanged` hashes its baseline; paginated `items` is a deep copy; `useScreenSizes` follows `mobileMaxWidth`",
|
|
8978
|
+
"components": [
|
|
8979
|
+
"useConfirmOnRouteLeave",
|
|
8980
|
+
"useHasChanged",
|
|
8981
|
+
"usePaginatedResponseContext",
|
|
8982
|
+
"useScreenSizes"
|
|
8983
|
+
],
|
|
8984
|
+
"description": "Inertia helpers, second pass (helpers update): useConfirmOnRouteLeave adds the browser's own leave prompt (tab close, reload, typed URL, plain <a>) while armed, never for a whitelisted save that leaves through Inertia::location(), takes stack, and speaks the library's locale from a new shared, app-editable messages.ts (English shipped; useBbConfig() gains a read-only locale); useHasChanged baselines by structural hash (Dates, Sets, Maps, undefined, NaN compare as they are; an untouched form no longer reads changed; a File compares by name, size, type and date); usePaginatedResponseContext items is a DEEP copy (row edits stay off the page prop); useScreenSizes isMobile is the library's useMobile() (follows mobileMaxWidth) and SCREEN_BREAKPOINT_MD is gone",
|
|
8985
|
+
"ruling": "owner 2026-10-27 (Q82.14 (1), (2), (4), (6))",
|
|
8986
|
+
"guide": "v2-to-v3.md § 6 item 116 + inertia-helpers.md",
|
|
8987
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8988
|
+
},
|
|
8989
|
+
{
|
|
8990
|
+
"id": "f394",
|
|
8991
|
+
"kind": "behaviour",
|
|
8992
|
+
"summary": "Inertia peer floor `>=2.0.0`; the helpers run and type-check on Inertia 2 and 3",
|
|
8993
|
+
"components": [
|
|
8994
|
+
"usePromiseForm",
|
|
8995
|
+
"useConfirmOnRouteLeave",
|
|
8996
|
+
"useLazyProp"
|
|
8997
|
+
],
|
|
8998
|
+
"description": "Inertia peer floor: @inertiajs/vue3 >=1.0.0 → >=2.0.0 (never tested on 1; the helpers use Inertia 2 APIs). The helpers run and type-check on Inertia 2 and 3 (a new gate types them against 2.3.10): on Inertia 2 usePromiseForm rejects a 419 / 423 / non-Inertia 500 / network error and the leave guard's prompt survives a failed save; useLazyProp keeps validation errors on Inertia 3 only",
|
|
8999
|
+
"ruling": "owner 2026-10-27 (progetto-32 on Inertia 2.3.10)",
|
|
9000
|
+
"guide": "v2-to-v3.md § 6 item 117 + inertia-helpers.md",
|
|
9001
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8924
9002
|
}
|
|
8925
9003
|
]
|
|
8926
9004
|
}
|
package/dist/ai/components.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"library": "bitboss-ui",
|
|
4
|
-
"version": "3.0.0-beta.
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"version": "3.0.0-beta.65",
|
|
5
|
+
"generatedAt": "2026-10-27T14:11:46.011Z",
|
|
6
6
|
"legend": {
|
|
7
7
|
"referenceOnly": "true = internal building block, documented so trees and sources can be read. Never write it in a template; most are not exported.",
|
|
8
8
|
"types[].usage": "api = the type of a prop, event or slot value you pass; wrapper = a component Props/Events/Slots type (its component entry lists every field); advanced = everything else. An api type named <component>Props (BbOffCanvasProps) is that component's props: read its component entry.",
|
|
@@ -16,13 +16,14 @@ plugin (`bitbossUi({ ... })`) and cannot be changed at runtime.
|
|
|
16
16
|
|
|
17
17
|
Use it for exactly one job: switching the locale of locale-aware components
|
|
18
18
|
(built-in labels, close buttons, table/pagination strings) while the app runs.
|
|
19
|
+
`locale` reads the current setting back, read-only.
|
|
19
20
|
|
|
20
21
|
## Import
|
|
21
22
|
|
|
22
23
|
```ts
|
|
23
24
|
import { useBbConfig } from 'bitboss-ui';
|
|
24
25
|
|
|
25
|
-
const { setConfig } = useBbConfig();
|
|
26
|
+
const { setConfig, locale } = useBbConfig();
|
|
26
27
|
```
|
|
27
28
|
|
|
28
29
|
## API
|
|
@@ -37,6 +38,12 @@ declare function setConfig(patch: Partial<DynamicConfig>): void;
|
|
|
37
38
|
Merges the patch into **this app's** config. The change is immediate and
|
|
38
39
|
reactive — every mounted component in that app which reads the key updates.
|
|
39
40
|
|
|
41
|
+
### `locale`
|
|
42
|
+
|
|
43
|
+
A read-only `ComputedRef` of this app's locale exactly as it was set (`'it'`,
|
|
44
|
+
`'it-IT'`), following every `setConfig`. Read it to pick your own words in the
|
|
45
|
+
same language as the library's (the Inertia helpers' `messages.ts` does).
|
|
46
|
+
|
|
40
47
|
### Per-request locale under SSR
|
|
41
48
|
|
|
42
49
|
The config is held **per Vue app**, and SSR gives every request its own app,
|