@vtex/faststore 0.0.3 → 0.0.5
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/CHANGELOG.md +41 -0
- package/README.md +7 -3
- package/dist/catalog.json +337 -1
- package/dist/components.d.ts +5 -1
- package/dist/components.js +8 -4
- package/dist/content-types.json +73 -0
- package/dist/docs/account-access-gate.md +153 -0
- package/dist/docs/account-entry-point.md +1 -2
- package/dist/docs/account-menu.md +164 -0
- package/dist/docs/buy-button.md +1 -1
- package/dist/docs/cart.md +1 -1
- package/dist/docs/my-account-profile.md +208 -0
- package/dist/docs/session.md +1 -1
- package/dist/docs/sign-in-redirect.md +1 -1
- package/dist/matter/account-access-gate/account-access-gate.d.ts +86 -0
- package/dist/matter/account-access-gate/account-access-gate.js +283 -0
- package/dist/matter/account-access-gate/account-access-gate.js.map +1 -0
- package/dist/matter/account-access-gate/sign-out-intent.d.ts +17 -0
- package/dist/matter/account-access-gate/sign-out-intent.js +62 -0
- package/dist/matter/account-access-gate/sign-out-intent.js.map +1 -0
- package/dist/matter/account-entry-point/account-entry-point.js +2 -2
- package/dist/matter/account-entry-point/account-entry-point.js.map +1 -1
- package/dist/matter/account-menu/account-menu.d.ts +88 -0
- package/dist/matter/account-menu/account-menu.js +246 -0
- package/dist/matter/account-menu/account-menu.js.map +1 -0
- package/dist/matter/cart/cart.d.ts +1 -1
- package/dist/matter/cart/cart.js +2 -2
- package/dist/matter/cart/cart.js.map +1 -1
- package/dist/matter/delivery-options/delivery-options.js.map +1 -1
- package/dist/matter/my-account-profile/my-account-profile.d.ts +291 -0
- package/dist/matter/my-account-profile/my-account-profile.js +856 -0
- package/dist/matter/my-account-profile/my-account-profile.js.map +1 -0
- package/dist/matter/shipping-address/shipping-address.js +2 -2
- package/dist/matter/shipping-address/shipping-address.js.map +1 -1
- package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
- package/dist/particles/footer-social/footer-social.js +1 -1
- package/dist/particles/incentives/incentives.js +1 -1
- package/dist/sdk/actions/cart-action-provider.d.ts +1 -1
- package/dist/sdk/actions/cart-action-provider.js +1 -1
- package/dist/sdk/actions/cart-action-provider.js.map +1 -1
- package/dist/sdk/actions/session-action-provider.d.ts +1 -1
- package/dist/sdk/actions/session-action-provider.js +1 -1
- package/dist/sdk/actions/session-action-provider.js.map +1 -1
- package/dist/sdk/actions/shipping-action-provider.d.ts +1 -1
- package/dist/sdk/actions/shipping-action-provider.js +1 -1
- package/dist/sdk/actions/shipping-action-provider.js.map +1 -1
- package/dist/sdk/cache/storefront-cache.js +1 -1
- package/dist/sdk/cache/storefront-cache.js.map +1 -1
- package/dist/sdk/cart/operations.d.ts +4 -4
- package/dist/sdk/cart/operations.js +1 -1
- package/dist/sdk/cart/operations.js.map +1 -1
- package/dist/sdk/cart/optimistic.js +1 -1
- package/dist/sdk/cart/optimistic.js.map +1 -1
- package/dist/sdk/cart/use-cart-actions.d.ts +1 -1
- package/dist/sdk/cart/use-cart-actions.js +3 -3
- package/dist/sdk/cart/use-cart-actions.js.map +1 -1
- package/dist/sdk/cart/use-cart-validate-on-open.js +1 -1
- package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -1
- package/dist/sdk/cart/write-gate.js +1 -1
- package/dist/sdk/cart/write-gate.js.map +1 -1
- package/dist/sdk/data/page-reactive-data-root.d.ts +2 -2
- package/dist/sdk/data/page-reactive-data-root.js.map +1 -1
- package/dist/sdk/data/reactive-data-provider.d.ts +1 -1
- package/dist/sdk/data/reactive-data-provider.js +1 -1
- package/dist/sdk/data/reactive-data-provider.js.map +1 -1
- package/dist/sdk/data/reactive-list-item-data-provider.d.ts +1 -1
- package/dist/sdk/data/reactive-list-item-data-provider.js +1 -1
- package/dist/sdk/data/reactive-list-item-data-provider.js.map +1 -1
- package/dist/sdk/data/use-reactive-entity.js +1 -1
- package/dist/sdk/data/use-reactive-entity.js.map +1 -1
- package/dist/sdk/generated/gql.js +2 -1
- package/dist/sdk/generated/gql.js.map +1 -1
- package/dist/sdk/generated/graphql.js +85 -1
- package/dist/sdk/generated/graphql.js.map +1 -1
- package/dist/sdk/identity/operations.js.map +1 -1
- package/dist/sdk/identity/use-identity-actions.d.ts +1 -1
- package/dist/sdk/identity/use-identity-actions.js.map +1 -1
- package/dist/sdk/session/auth-operations.d.ts +1 -1
- package/dist/sdk/session/auth-operations.js.map +1 -1
- package/dist/sdk/session/use-session-actions.d.ts +1 -1
- package/dist/sdk/session/use-session-actions.js.map +1 -1
- package/dist/sdk/session/use-session-revalidation.js +65 -0
- package/dist/sdk/session/use-session-revalidation.js.map +1 -0
- package/dist/sdk/shipping/option-select-operations.d.ts +1 -1
- package/dist/sdk/shipping/option-select-operations.js.map +1 -1
- package/dist/sdk/shipping/request-timeout.js +1 -1
- package/dist/sdk/shipping/request-timeout.js.map +1 -1
- package/dist/sdk/shipping/shipping-operations.d.ts +1 -1
- package/dist/sdk/shipping/shipping-operations.js.map +1 -1
- package/dist/sdk/shipping/use-shipping-actions.d.ts +2 -2
- package/dist/sdk/shipping/use-shipping-actions.js.map +1 -1
- package/dist/sdk/state/cart.d.ts +3 -4
- package/dist/sdk/state/cart.js +6 -7
- package/dist/sdk/state/cart.js.map +1 -1
- package/dist/utils/safe-href.js +3 -3
- package/dist/utils/safe-href.js.map +1 -1
- package/package.json +1 -18
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,47 @@ Every published version of `@vtex/faststore` has a section here. From `0.0.2` on
|
|
|
4
4
|
written when its release pull request opens, and reviewed alongside the API delta that justifies the
|
|
5
5
|
version.
|
|
6
6
|
|
|
7
|
+
## 0.0.5
|
|
8
|
+
|
|
9
|
+
`./components` adds `AccountAccessGate`, the single access decision for the account pages, placed
|
|
10
|
+
once in the account layout. It renders the account only for a signed-in shopper, sends a visitor who
|
|
11
|
+
arrived signed out to sign-in once per visit, and shows a notice with a sign-in link when the session
|
|
12
|
+
ended mid-visit or sign-in did not complete. It comes with `AccountAccessGateLoading`,
|
|
13
|
+
`AccountAccessGateNotice`, the `AccountAccessGateContent` content type,
|
|
14
|
+
`AccountAccessGateDefinition`, and the `AccountAccessGateProps`, `AccountAccessGateLoadingProps`,
|
|
15
|
+
`AccountAccessGateNoticeProps` and `AccountAccessGateNoticeReason` types. `declareSignOutIntent`,
|
|
16
|
+
`withdrawSignOutIntent` and `useSignOutIntent` let a sign-out tell the gate it was deliberate.
|
|
17
|
+
|
|
18
|
+
`./components` also adds `AccountMenu`, the account navigation: `AccountMenuRoot` and
|
|
19
|
+
`AccountMenuList`, their `*Definition` and `*Props` exports, the `AccountMenuContent` content type,
|
|
20
|
+
`useAccountMenu`, and the `AccountMenuContextValue`, `AccountMenuCurrent`, `AccountMenuSection` and
|
|
21
|
+
`AccountMenuResolvedSection` types.
|
|
22
|
+
|
|
23
|
+
Nothing is removed. `.`, `./client` and `./graphql` have no signature change.
|
|
24
|
+
|
|
25
|
+
In the Internal set, `@vtex/sukima` fixes `sukima dev --no-watch` overwriting the `dist/package.json`
|
|
26
|
+
another compiler wrote. The host's `@vtex/preview-bridge` link was dropped, so a store outside the
|
|
27
|
+
host's checkout failed with `Can't resolve '@vtex/preview-bridge'`.
|
|
28
|
+
|
|
29
|
+
## 0.0.4
|
|
30
|
+
|
|
31
|
+
`./components` adds `MyAccountProfile`, the signed-in shopper's profile editor. `Root` loads the saved
|
|
32
|
+
profile, renders its `Skeleton` until the data resolves, and renders nothing for an anonymous
|
|
33
|
+
shopper. Save validates every field, sends only the changed ones in one
|
|
34
|
+
`$actions.identity.customerProfileUpdate`, and focuses the first invalid field; Cancel restores the
|
|
35
|
+
saved values. The frame parts are `EditButton`, `SaveButton`, `CancelButton` and `Email`, and the
|
|
36
|
+
field controls are `FirstNameControl`, `LastNameControl`, `PhoneControl`, `BirthDateControl`,
|
|
37
|
+
`GenderControl` and `TaxIdControl`. Each part has its own `*Definition` and `*Props` export, and
|
|
38
|
+
`useMyAccountProfile`, `MyAccountProfileContextValue` and `MyAccountProfileData` come with them.
|
|
39
|
+
Nothing is removed from `./components`.
|
|
40
|
+
|
|
41
|
+
The peer dependencies are no longer optional: `@apollo/client`, `@apollo/client-integration-nextjs`,
|
|
42
|
+
`next`, `react` and `react-dom` are required. `./client`, `./components` and `./internal/server`
|
|
43
|
+
import them directly, and a store outside this repository that never declared `@apollo/client` itself
|
|
44
|
+
failed with `Can't resolve '@apollo/client/react'` because package managers skip optional peers.
|
|
45
|
+
npm 7+ and pnpm 8+ now install them for you. `.`, `./client` and `./graphql` have no signature change,
|
|
46
|
+
so for them this is the only difference.
|
|
47
|
+
|
|
7
48
|
## 0.0.3
|
|
8
49
|
|
|
9
50
|
`./components` adds `SignInRedirect`, the component a store's `/login` page renders to hand the
|
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ These carry no snapshot. Treat their shape as unstable while the package is pre-
|
|
|
66
66
|
|
|
67
67
|
## Peer dependencies
|
|
68
68
|
|
|
69
|
-
All five are
|
|
69
|
+
All five are required:
|
|
70
70
|
|
|
71
71
|
| Peer | Range |
|
|
72
72
|
| --- | --- |
|
|
@@ -79,8 +79,12 @@ All five are optional:
|
|
|
79
79
|
They are peers rather than dependencies so the app resolves one copy of each. Two copies of `@apollo/client`
|
|
80
80
|
mean two caches, and the reactive state behind the hooks would split across them.
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
None is marked optional. `./client`, `./components`, and `./internal/server` import `@apollo/client`,
|
|
83
|
+
`@apollo/client-integration-nextjs`, and `next` directly, so a store using any of those entries cannot run
|
|
84
|
+
without them. Package managers that auto-install peers (npm 7+, pnpm 8+) install them for you.
|
|
85
|
+
|
|
86
|
+
An API Extension that imports only `./graphql` never uses any of them; installing them anyway costs disk,
|
|
87
|
+
not correctness.
|
|
84
88
|
|
|
85
89
|
## Styling
|
|
86
90
|
|
package/dist/catalog.json
CHANGED
|
@@ -3202,6 +3202,36 @@
|
|
|
3202
3202
|
"guideline": "Code-entry step: composes AccessCodeField and dispatches $actions.session.validateAccessCode with the Root-owned email and authenticationToken; a successful validate flips the session reactively and hides the Root. Must be inside AccessCodeSignInRoot. See access-code-sign-in.md.",
|
|
3203
3203
|
"docPath": "src/matter/access-code-sign-in/access-code-sign-in.md"
|
|
3204
3204
|
},
|
|
3205
|
+
"AccountAccessGate": {
|
|
3206
|
+
"name": "AccountAccessGate",
|
|
3207
|
+
"importPath": "@vtex/faststore/components",
|
|
3208
|
+
"contentTypeId": "account-access-gate",
|
|
3209
|
+
"editor": {
|
|
3210
|
+
"label": "Account Access Gate",
|
|
3211
|
+
"category": "identity"
|
|
3212
|
+
},
|
|
3213
|
+
"requiresContext": "session",
|
|
3214
|
+
"schema": {
|
|
3215
|
+
"loadingLabel": {
|
|
3216
|
+
"type": "string",
|
|
3217
|
+
"label": "Loading Announcement"
|
|
3218
|
+
},
|
|
3219
|
+
"expiredMessage": {
|
|
3220
|
+
"type": "string",
|
|
3221
|
+
"label": "Session Ended Message"
|
|
3222
|
+
},
|
|
3223
|
+
"signInIncompleteMessage": {
|
|
3224
|
+
"type": "string",
|
|
3225
|
+
"label": "Sign-in Did Not Complete Message"
|
|
3226
|
+
},
|
|
3227
|
+
"signInLabel": {
|
|
3228
|
+
"type": "string",
|
|
3229
|
+
"label": "Sign-in Link Label"
|
|
3230
|
+
}
|
|
3231
|
+
},
|
|
3232
|
+
"guideline": "The account's single access decision: place it once in the account layout, wrapping the body, and every page that declares that layout inherits it — never restate it per section. It renders its children only for a logged-in shopper; it shows a composed loading look while the session resolves, replaces the current history entry with the sign-in destination for a visitor who arrived signed out (identified counts as signed out), tells a shopper whose session ended mid-visit rather than bouncing them, and stands down while AccountMenuSignOut navigates. It redirects at most once per visit: a shopper who comes back from sign-in still signed out gets a message and a link rather than a second hop. Must be inside SessionRoot, which the same layout hosts. Never place the /login route under it — the gate redirects there, and a gated /login would redirect to itself.",
|
|
3233
|
+
"docPath": "src/matter/account-access-gate/account-access-gate.md"
|
|
3234
|
+
},
|
|
3205
3235
|
"AccountEntryPoint": {
|
|
3206
3236
|
"name": "AccountEntryPoint",
|
|
3207
3237
|
"importPath": "@vtex/faststore/components",
|
|
@@ -3229,9 +3259,45 @@
|
|
|
3229
3259
|
"label": "Loading Announcement"
|
|
3230
3260
|
}
|
|
3231
3261
|
},
|
|
3232
|
-
"guideline": "Session-aware header control rendering one link: the signed-out label toward /login for anonymous and identified shoppers, the signed-in label toward the account route for logged-in ones, and a politely announced placeholder while the session resolves. Both destinations are fixed conventions, not props, so no authored value can misroute the auth flow. Must be inside a SessionRoot, normally the one hosted by the shared layout
|
|
3262
|
+
"guideline": "Session-aware header control rendering one link: the signed-out label toward /login for anonymous and identified shoppers, the signed-in label toward the account route for logged-in ones, and a politely announced placeholder while the session resolves. Both destinations are fixed conventions, not props, so no authored value can misroute the auth flow. Must be inside a SessionRoot, normally the one hosted by the shared layout; a page-hosted provider also works, since the server-side session fetch forwards the shopper cookie. Author the label for a state or that state renders nothing; the labels are optional in the type only because a CMS entry may supply them, and an entry overrides all four fields at runtime. Style it through data-fs-account-entry-point and switch on data-fs-account-entry-point-state.",
|
|
3233
3263
|
"docPath": "src/matter/account-entry-point/account-entry-point.md"
|
|
3234
3264
|
},
|
|
3265
|
+
"AccountMenuRoot": {
|
|
3266
|
+
"name": "AccountMenuRoot",
|
|
3267
|
+
"importPath": "@vtex/faststore/components",
|
|
3268
|
+
"contentTypeId": "account-menu",
|
|
3269
|
+
"providesContext": "account-menu",
|
|
3270
|
+
"editor": {
|
|
3271
|
+
"label": "Account Menu Root",
|
|
3272
|
+
"category": "navigation"
|
|
3273
|
+
},
|
|
3274
|
+
"schema": {
|
|
3275
|
+
"items": {
|
|
3276
|
+
"type": "array",
|
|
3277
|
+
"label": "Sections"
|
|
3278
|
+
}
|
|
3279
|
+
},
|
|
3280
|
+
"guideline": "The account menu's provider, and deliberately not its landmark: it resolves the section list, derives which section the shopper is reading, publishes both, and renders its children. Compose it in the my-account layout around both AccountMenuList and the Slot holding the section's own page — its context has to reach the consumers inside the slot, and a nav stretched that far would announce every section's content as navigation. The list comes from a published entry, else the authored items prop, else the library's five defaults; a channel supplying an empty list resolves to empty rather than falling through, because a merchant who cleared the list cleared it. Style it through data-fs-account-menu.",
|
|
3281
|
+
"docPath": "src/matter/account-menu/account-menu.md"
|
|
3282
|
+
},
|
|
3283
|
+
"AccountMenuList": {
|
|
3284
|
+
"name": "AccountMenuList",
|
|
3285
|
+
"importPath": "@vtex/faststore/components",
|
|
3286
|
+
"requiresContext": "account-menu",
|
|
3287
|
+
"editor": {
|
|
3288
|
+
"label": "Account Menu List",
|
|
3289
|
+
"category": "navigation"
|
|
3290
|
+
},
|
|
3291
|
+
"schema": {
|
|
3292
|
+
"label": {
|
|
3293
|
+
"type": "string",
|
|
3294
|
+
"default": "Account",
|
|
3295
|
+
"label": "Aria Label"
|
|
3296
|
+
}
|
|
3297
|
+
},
|
|
3298
|
+
"guideline": "The account menu's navigation landmark and its items, and nothing else — it surrounds the items alone so the section's own content stays outside the navigation region. Author the label: a landmark with no accessible name is one a screen-reader user cannot tell from any other. The current section carries aria-current, page for the section itself and true for a page inside it, with data-fs-account-menu-item-current beside it as a style target and never as the only signal. When the list scrolls, the current item is brought into view on mount and on every route change. Must be a descendant of AccountMenuRoot.",
|
|
3299
|
+
"docPath": "src/matter/account-menu/account-menu.md"
|
|
3300
|
+
},
|
|
3235
3301
|
"BreadcrumbRoot": {
|
|
3236
3302
|
"name": "BreadcrumbRoot",
|
|
3237
3303
|
"importPath": "@vtex/faststore/components",
|
|
@@ -4911,6 +4977,276 @@
|
|
|
4911
4977
|
"guideline": "Renders the inline sign-out error (role=\"alert\") when the logout mutation returns a user error, else nothing. Must be a descendant of IdentitySummaryRoot.",
|
|
4912
4978
|
"docPath": "src/matter/identity-summary/identity-summary.md"
|
|
4913
4979
|
},
|
|
4980
|
+
"MyAccountProfileRoot": {
|
|
4981
|
+
"name": "MyAccountProfileRoot",
|
|
4982
|
+
"importPath": "@vtex/faststore/components",
|
|
4983
|
+
"fragment": "\n fragment MyAccountProfileData on Query {\n customerProfile {\n __typename\n id\n firstName\n lastName\n email\n homePhone\n mobilePhone\n document\n documentType\n birthDate\n gender\n }\n }\n",
|
|
4984
|
+
"fetchStrategy": "reactive",
|
|
4985
|
+
"requiresContext": "session",
|
|
4986
|
+
"providesContext": "my-account-profile",
|
|
4987
|
+
"actions": {
|
|
4988
|
+
"identity": [
|
|
4989
|
+
"customerProfileUpdate"
|
|
4990
|
+
]
|
|
4991
|
+
},
|
|
4992
|
+
"skeleton": "MyAccountProfileSkeleton",
|
|
4993
|
+
"editor": {
|
|
4994
|
+
"label": "My Account Profile Root",
|
|
4995
|
+
"category": "identity"
|
|
4996
|
+
},
|
|
4997
|
+
"schema": {
|
|
4998
|
+
"documentType": {
|
|
4999
|
+
"type": "string",
|
|
5000
|
+
"label": "Default document type (e.g. CPF)"
|
|
5001
|
+
},
|
|
5002
|
+
"saveFailedMessage": {
|
|
5003
|
+
"type": "string",
|
|
5004
|
+
"label": "Save failure message"
|
|
5005
|
+
},
|
|
5006
|
+
"savedMessage": {
|
|
5007
|
+
"type": "string",
|
|
5008
|
+
"label": "Save success message"
|
|
5009
|
+
}
|
|
5010
|
+
},
|
|
5011
|
+
"guideline": "Data root + form mechanics for the persistent My Account profile: owns the saved profile, the draft, the view/edit toggle, and the single batched Save (dispatches only dirty, registered fields; an empty string erases, an omitted field is untouched). Self-gates on the authenticated (loggedIn) session; requires a SessionRoot ancestor and a mounted ToastProvider ancestor — Save success/failure surface as a toast, not an inline part. Field Controls register their key plus an optional validator and normalizer through useMyAccountProfile() — the field set is a merchant composition decision, never enumerated here. Compose EditButton (view state), SaveButton/CancelButton (edit state), and Email as children in any order. See my-account-profile.md.",
|
|
5012
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5013
|
+
},
|
|
5014
|
+
"MyAccountProfileEditButton": {
|
|
5015
|
+
"name": "MyAccountProfileEditButton",
|
|
5016
|
+
"importPath": "@vtex/faststore/components",
|
|
5017
|
+
"requiresContext": "my-account-profile",
|
|
5018
|
+
"editor": {
|
|
5019
|
+
"label": "My Account Profile Edit Button",
|
|
5020
|
+
"category": "identity"
|
|
5021
|
+
},
|
|
5022
|
+
"schema": {
|
|
5023
|
+
"label": {
|
|
5024
|
+
"type": "string",
|
|
5025
|
+
"default": "Edit",
|
|
5026
|
+
"label": "Button label"
|
|
5027
|
+
}
|
|
5028
|
+
},
|
|
5029
|
+
"guideline": "Switches MyAccountProfileRoot from the view state to the edit state. Renders only in the view state. Must be a descendant of MyAccountProfileRoot.",
|
|
5030
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5031
|
+
},
|
|
5032
|
+
"MyAccountProfileSaveButton": {
|
|
5033
|
+
"name": "MyAccountProfileSaveButton",
|
|
5034
|
+
"importPath": "@vtex/faststore/components",
|
|
5035
|
+
"requiresContext": "my-account-profile",
|
|
5036
|
+
"editor": {
|
|
5037
|
+
"label": "My Account Profile Save Button",
|
|
5038
|
+
"category": "identity"
|
|
5039
|
+
},
|
|
5040
|
+
"schema": {
|
|
5041
|
+
"label": {
|
|
5042
|
+
"type": "string",
|
|
5043
|
+
"default": "Save",
|
|
5044
|
+
"label": "Button label"
|
|
5045
|
+
}
|
|
5046
|
+
},
|
|
5047
|
+
"guideline": "Submits MyAccountProfileRoot's batched Save. Renders only in the edit state; disabled while the write is pending. Must be a descendant of MyAccountProfileRoot.",
|
|
5048
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5049
|
+
},
|
|
5050
|
+
"MyAccountProfileCancelButton": {
|
|
5051
|
+
"name": "MyAccountProfileCancelButton",
|
|
5052
|
+
"importPath": "@vtex/faststore/components",
|
|
5053
|
+
"requiresContext": "my-account-profile",
|
|
5054
|
+
"editor": {
|
|
5055
|
+
"label": "My Account Profile Cancel Button",
|
|
5056
|
+
"category": "identity"
|
|
5057
|
+
},
|
|
5058
|
+
"schema": {
|
|
5059
|
+
"label": {
|
|
5060
|
+
"type": "string",
|
|
5061
|
+
"default": "Cancel",
|
|
5062
|
+
"label": "Button label"
|
|
5063
|
+
}
|
|
5064
|
+
},
|
|
5065
|
+
"guideline": "Reverts every field to its last saved value and returns MyAccountProfileRoot to the view state, without persisting. Renders only in the edit state; disabled while the write is pending. Must be a descendant of MyAccountProfileRoot.",
|
|
5066
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5067
|
+
},
|
|
5068
|
+
"MyAccountProfileEmail": {
|
|
5069
|
+
"name": "MyAccountProfileEmail",
|
|
5070
|
+
"importPath": "@vtex/faststore/components",
|
|
5071
|
+
"requiresContext": "my-account-profile",
|
|
5072
|
+
"editor": {
|
|
5073
|
+
"label": "My Account Profile Email",
|
|
5074
|
+
"category": "identity"
|
|
5075
|
+
},
|
|
5076
|
+
"schema": {},
|
|
5077
|
+
"guideline": "The shopper's read-only login identifier, or nothing when absent. Never editable — no edit-state rendering exists for it. Must be a descendant of MyAccountProfileRoot.",
|
|
5078
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5079
|
+
},
|
|
5080
|
+
"MyAccountProfileSkeleton": {
|
|
5081
|
+
"name": "MyAccountProfileSkeleton",
|
|
5082
|
+
"importPath": "@vtex/faststore/components",
|
|
5083
|
+
"editor": {
|
|
5084
|
+
"label": "My Account Profile Skeleton",
|
|
5085
|
+
"category": "identity"
|
|
5086
|
+
},
|
|
5087
|
+
"schema": {},
|
|
5088
|
+
"guideline": "Loading placeholder rendered by MyAccountProfileRoot while $data is unresolved. Declares no context requirement — it renders before the Root has anything to provide.",
|
|
5089
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5090
|
+
},
|
|
5091
|
+
"MyAccountProfileFirstNameControl": {
|
|
5092
|
+
"name": "MyAccountProfileFirstNameControl",
|
|
5093
|
+
"importPath": "@vtex/faststore/components",
|
|
5094
|
+
"requiresContext": "my-account-profile",
|
|
5095
|
+
"editor": {
|
|
5096
|
+
"label": "My Account Profile First Name Control",
|
|
5097
|
+
"category": "identity"
|
|
5098
|
+
},
|
|
5099
|
+
"schema": {
|
|
5100
|
+
"label": {
|
|
5101
|
+
"type": "string",
|
|
5102
|
+
"default": "First name",
|
|
5103
|
+
"label": "Label"
|
|
5104
|
+
},
|
|
5105
|
+
"requiredMessage": {
|
|
5106
|
+
"type": "string",
|
|
5107
|
+
"default": "First name is required.",
|
|
5108
|
+
"label": "Required message"
|
|
5109
|
+
}
|
|
5110
|
+
},
|
|
5111
|
+
"guideline": "Draft-bound, required first-name field. Blocks Save with an inline message and focus when left empty. Must be a descendant of MyAccountProfileRoot.",
|
|
5112
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5113
|
+
},
|
|
5114
|
+
"MyAccountProfileLastNameControl": {
|
|
5115
|
+
"name": "MyAccountProfileLastNameControl",
|
|
5116
|
+
"importPath": "@vtex/faststore/components",
|
|
5117
|
+
"requiresContext": "my-account-profile",
|
|
5118
|
+
"editor": {
|
|
5119
|
+
"label": "My Account Profile Last Name Control",
|
|
5120
|
+
"category": "identity"
|
|
5121
|
+
},
|
|
5122
|
+
"schema": {
|
|
5123
|
+
"label": {
|
|
5124
|
+
"type": "string",
|
|
5125
|
+
"default": "Last name",
|
|
5126
|
+
"label": "Label"
|
|
5127
|
+
},
|
|
5128
|
+
"requiredMessage": {
|
|
5129
|
+
"type": "string",
|
|
5130
|
+
"default": "Last name is required.",
|
|
5131
|
+
"label": "Required message"
|
|
5132
|
+
}
|
|
5133
|
+
},
|
|
5134
|
+
"guideline": "Draft-bound, required last-name field. Blocks Save with an inline message and focus when left empty. Must be a descendant of MyAccountProfileRoot.",
|
|
5135
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5136
|
+
},
|
|
5137
|
+
"MyAccountProfilePhoneControl": {
|
|
5138
|
+
"name": "MyAccountProfilePhoneControl",
|
|
5139
|
+
"importPath": "@vtex/faststore/components",
|
|
5140
|
+
"requiresContext": "my-account-profile",
|
|
5141
|
+
"editor": {
|
|
5142
|
+
"label": "My Account Profile Phone Control",
|
|
5143
|
+
"category": "identity"
|
|
5144
|
+
},
|
|
5145
|
+
"schema": {
|
|
5146
|
+
"label": {
|
|
5147
|
+
"type": "string",
|
|
5148
|
+
"default": "Phone",
|
|
5149
|
+
"label": "Label"
|
|
5150
|
+
},
|
|
5151
|
+
"field": {
|
|
5152
|
+
"type": [
|
|
5153
|
+
"homePhone",
|
|
5154
|
+
"mobilePhone"
|
|
5155
|
+
],
|
|
5156
|
+
"default": "mobilePhone",
|
|
5157
|
+
"label": "Bound field"
|
|
5158
|
+
},
|
|
5159
|
+
"country": {
|
|
5160
|
+
"type": [
|
|
5161
|
+
"US",
|
|
5162
|
+
"BR"
|
|
5163
|
+
],
|
|
5164
|
+
"default": "US",
|
|
5165
|
+
"label": "Country"
|
|
5166
|
+
},
|
|
5167
|
+
"invalidMessage": {
|
|
5168
|
+
"type": "string",
|
|
5169
|
+
"default": "Invalid phone number",
|
|
5170
|
+
"label": "Invalid message"
|
|
5171
|
+
}
|
|
5172
|
+
},
|
|
5173
|
+
"guideline": "Draft-bound, optional phone field bound to either homePhone or mobilePhone via the field prop (Decision 1) — compose it twice to expose both numbers. Normalizes to E.164 on the Root's Save. Absent from the composition means absent from the payload. Must be a descendant of MyAccountProfileRoot.",
|
|
5174
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5175
|
+
},
|
|
5176
|
+
"MyAccountProfileTaxIdControl": {
|
|
5177
|
+
"name": "MyAccountProfileTaxIdControl",
|
|
5178
|
+
"importPath": "@vtex/faststore/components",
|
|
5179
|
+
"requiresContext": "my-account-profile",
|
|
5180
|
+
"editor": {
|
|
5181
|
+
"label": "My Account Profile Tax ID Control",
|
|
5182
|
+
"category": "identity"
|
|
5183
|
+
},
|
|
5184
|
+
"schema": {
|
|
5185
|
+
"label": {
|
|
5186
|
+
"type": "string",
|
|
5187
|
+
"default": "National tax ID",
|
|
5188
|
+
"label": "Label"
|
|
5189
|
+
},
|
|
5190
|
+
"invalidMessage": {
|
|
5191
|
+
"type": "string",
|
|
5192
|
+
"default": "Invalid document number.",
|
|
5193
|
+
"label": "Invalid message"
|
|
5194
|
+
},
|
|
5195
|
+
"lockedReason": {
|
|
5196
|
+
"type": "string",
|
|
5197
|
+
"default": "Your document ID can't be edited.",
|
|
5198
|
+
"label": "Locked reason"
|
|
5199
|
+
}
|
|
5200
|
+
},
|
|
5201
|
+
"guideline": "Draft-bound, optional national tax-ID field (CPF in V0). Self-gates on the Root's active document type. A saved value renders as a disabled, locked input in the edit state rather than disappearing (Decision 4); an unsaved value renders as an editable field. Must be a descendant of MyAccountProfileRoot.",
|
|
5202
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5203
|
+
},
|
|
5204
|
+
"MyAccountProfileBirthDateControl": {
|
|
5205
|
+
"name": "MyAccountProfileBirthDateControl",
|
|
5206
|
+
"importPath": "@vtex/faststore/components",
|
|
5207
|
+
"requiresContext": "my-account-profile",
|
|
5208
|
+
"editor": {
|
|
5209
|
+
"label": "My Account Profile Birth Date Control",
|
|
5210
|
+
"category": "identity"
|
|
5211
|
+
},
|
|
5212
|
+
"schema": {
|
|
5213
|
+
"label": {
|
|
5214
|
+
"type": "string",
|
|
5215
|
+
"default": "Birth date",
|
|
5216
|
+
"label": "Label"
|
|
5217
|
+
}
|
|
5218
|
+
},
|
|
5219
|
+
"guideline": "Draft-bound, optional birth-date field over a native date input. Maps the native yyyy-mm-dd value to the stored profile format on read and write. Must be a descendant of MyAccountProfileRoot.",
|
|
5220
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5221
|
+
},
|
|
5222
|
+
"MyAccountProfileGenderControl": {
|
|
5223
|
+
"name": "MyAccountProfileGenderControl",
|
|
5224
|
+
"importPath": "@vtex/faststore/components",
|
|
5225
|
+
"requiresContext": "my-account-profile",
|
|
5226
|
+
"editor": {
|
|
5227
|
+
"label": "My Account Profile Gender Control",
|
|
5228
|
+
"category": "identity"
|
|
5229
|
+
},
|
|
5230
|
+
"schema": {
|
|
5231
|
+
"label": {
|
|
5232
|
+
"type": "string",
|
|
5233
|
+
"default": "Gender",
|
|
5234
|
+
"label": "Label"
|
|
5235
|
+
},
|
|
5236
|
+
"placeholder": {
|
|
5237
|
+
"type": "string",
|
|
5238
|
+
"default": "Select",
|
|
5239
|
+
"label": "Placeholder"
|
|
5240
|
+
},
|
|
5241
|
+
"clearLabel": {
|
|
5242
|
+
"type": "string",
|
|
5243
|
+
"default": "Clear",
|
|
5244
|
+
"label": "Clear button label"
|
|
5245
|
+
}
|
|
5246
|
+
},
|
|
5247
|
+
"guideline": "Draft-bound, optional gender field over a store-configurable set of options (the options prop). Free-string storage — no server-side enum. A Clear button erases a selected value back to empty, since the Select itself offers no such option. Must be a descendant of MyAccountProfileRoot.",
|
|
5248
|
+
"docPath": "src/matter/my-account-profile/my-account-profile.md"
|
|
5249
|
+
},
|
|
4914
5250
|
"PricingRoot": {
|
|
4915
5251
|
"name": "PricingRoot",
|
|
4916
5252
|
"importPath": "@vtex/faststore/components",
|