@orderlyshop/web-components 0.1.0-build.7045
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/AGENTS.md +110 -0
- package/README.md +685 -0
- package/bin/orderly-build-category-pages.mjs +160 -0
- package/bin/orderly-generate-category-pages.mjs +308 -0
- package/bin/orderly-hydrate-static-pages.mjs +595 -0
- package/bin/orderly-init-navigation.mjs +327 -0
- package/bin/orderly-init-shop.mjs +876 -0
- package/bin/orderly-init-taxonomy.mjs +2 -0
- package/bin/orderly-publish-site.mjs +342 -0
- package/custom-elements.json +505 -0
- package/dist/browser/orderly-web-components.define.global.js +3551 -0
- package/dist/browser/orderly-web-components.define.global.js.map +1 -0
- package/dist/browser/orderly-web-components.global.js +3551 -0
- package/dist/browser/orderly-web-components.global.js.map +1 -0
- package/dist/default-shop-DgX6uy10.d.ts +221 -0
- package/dist/default-shop.d.ts +6 -0
- package/dist/default-shop.js +762 -0
- package/dist/default-shop.js.map +1 -0
- package/dist/define-BNMhl19n.d.ts +9 -0
- package/dist/define.d.ts +2 -0
- package/dist/define.js +11094 -0
- package/dist/define.js.map +1 -0
- package/dist/index.d.ts +683 -0
- package/dist/index.js +11417 -0
- package/dist/index.js.map +1 -0
- package/dist/navigation.d.ts +61 -0
- package/dist/navigation.js +1125 -0
- package/dist/navigation.js.map +1 -0
- package/dist/query.d.ts +31 -0
- package/dist/query.js +115 -0
- package/dist/query.js.map +1 -0
- package/dist/registry-CPDecU3g.d.ts +6 -0
- package/dist/shop-BgQhGRzS.d.ts +173 -0
- package/dist/shop-query.d.ts +8 -0
- package/dist/shop-query.js +100 -0
- package/dist/shop-query.js.map +1 -0
- package/dist/shop.d.ts +8 -0
- package/dist/shop.js +11187 -0
- package/dist/shop.js.map +1 -0
- package/dist/stores.d.ts +46 -0
- package/dist/stores.js +145 -0
- package/dist/stores.js.map +1 -0
- package/dist/taxonomy.d.ts +35 -0
- package/dist/taxonomy.js +247 -0
- package/dist/taxonomy.js.map +1 -0
- package/dist/types-Bjez59Hr.d.ts +96 -0
- package/docs/components/README.md +708 -0
- package/docs/components/product-grid.md +182 -0
- package/docs/components/product-rail.md +174 -0
- package/examples/shop/README.md +72 -0
- package/examples/shop/package.json +28 -0
- package/examples/shop/src/category.html +20 -0
- package/examples/shop/src/checkout.html +21 -0
- package/examples/shop/src/forretningsbetingelser.html +81 -0
- package/examples/shop/src/includes/body-end.html +1 -0
- package/examples/shop/src/includes/body-start.html +3 -0
- package/examples/shop/src/includes/head.html +32 -0
- package/examples/shop/src/index.html +25 -0
- package/examples/shop/src/navigation.ts +154 -0
- package/examples/shop/src/product.html +24 -0
- package/examples/shop/src/templates/page-layouts.html +162 -0
- package/examples/shop/src/templates/shop-footer.html +76 -0
- package/examples/shop/tsconfig.json +32 -0
- package/examples/shop/vite.config.mjs +190 -0
- package/html-custom-data.json +279 -0
- package/package.json +118 -0
- package/server/README.md +111 -0
- package/server/apache/.htaccess +18 -0
- package/server/nginx/orderly-products.conf +24 -0
- package/server/node/product-snapshot-server.mjs +133 -0
- package/server/php/orderly-product.php +204 -0
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0.0",
|
|
3
|
+
"readme": "./README.md",
|
|
4
|
+
"modules": [
|
|
5
|
+
{
|
|
6
|
+
"kind": "javascript-module",
|
|
7
|
+
"path": "dist/index.js",
|
|
8
|
+
"declarations": [
|
|
9
|
+
{
|
|
10
|
+
"kind": "class",
|
|
11
|
+
"name": "OrderlyPageLayoutElement",
|
|
12
|
+
"tagName": "orderly-page-layout",
|
|
13
|
+
"customElement": true,
|
|
14
|
+
"description": "Reusable storefront page structure with utility, header, navigation, sidebars, content, footer, and overlay regions.",
|
|
15
|
+
"attributes": [
|
|
16
|
+
{ "name": "logo-src", "description": "Logo image URL." },
|
|
17
|
+
{ "name": "logo-alt", "description": "Logo alt text and logo link accessible label." },
|
|
18
|
+
{ "name": "logo-href", "description": "Logo link URL." }
|
|
19
|
+
],
|
|
20
|
+
"members": [
|
|
21
|
+
{ "kind": "field", "name": "logoSrc", "type": { "text": "string" } },
|
|
22
|
+
{ "kind": "field", "name": "logoAlt", "type": { "text": "string" } },
|
|
23
|
+
{ "kind": "field", "name": "logoHref", "type": { "text": "string" } }
|
|
24
|
+
],
|
|
25
|
+
"slots": [
|
|
26
|
+
{ "name": "utility", "description": "Top utility strip." },
|
|
27
|
+
{ "name": "header", "description": "Header brand or header content." },
|
|
28
|
+
{ "name": "header-actions", "description": "Header actions such as basket icon." },
|
|
29
|
+
{ "name": "primary-nav", "description": "Primary navigation." },
|
|
30
|
+
{ "name": "left", "description": "Left sidebar." },
|
|
31
|
+
{ "name": "right", "description": "Right sidebar." },
|
|
32
|
+
{ "name": "content-before", "description": "Content before the main content region." },
|
|
33
|
+
{ "name": "content", "description": "Main content." },
|
|
34
|
+
{ "name": "content-after", "description": "Content after the main content region." },
|
|
35
|
+
{ "name": "footer", "description": "Footer content." },
|
|
36
|
+
{ "name": "overlay", "description": "Overlay content such as drawers and dialogs." }
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"kind": "class",
|
|
41
|
+
"name": "OrderlyCategoryPageElement",
|
|
42
|
+
"tagName": "orderly-category-page",
|
|
43
|
+
"customElement": true,
|
|
44
|
+
"description": "Default navigation-driven shop category page composed from page layout, navigation, collection, product grid, basket, product detail, and footer components.",
|
|
45
|
+
"attributes": [
|
|
46
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
47
|
+
{ "name": "slug", "description": "Category slug from the configured navigation." },
|
|
48
|
+
{ "name": "brand-label", "description": "Brand text." },
|
|
49
|
+
{ "name": "product-href", "description": "Product detail page URL used by the popup expand link." },
|
|
50
|
+
{ "name": "checkout-href", "description": "Checkout page URL used by the basket." },
|
|
51
|
+
{ "name": "checkout-label", "description": "Checkout link label." },
|
|
52
|
+
{ "name": "search-placeholder", "description": "Search box placeholder." },
|
|
53
|
+
{ "name": "empty-label", "description": "Empty result text." }
|
|
54
|
+
],
|
|
55
|
+
"members": [
|
|
56
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
57
|
+
{ "kind": "field", "name": "defaultQuery", "type": { "text": "SearchQuery | undefined" }, "description": "Default SearchQuery merged into product searches." },
|
|
58
|
+
{ "kind": "field", "name": "category", "type": { "text": "CategoryNavigationItem | undefined" } },
|
|
59
|
+
{ "kind": "field", "name": "slug", "type": { "text": "string" } },
|
|
60
|
+
{ "kind": "field", "name": "navigationItems", "type": { "text": "CategoryNavigationItem[]" } },
|
|
61
|
+
{ "kind": "field", "name": "sortOptions", "type": { "text": "SortOption[]" } },
|
|
62
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } }
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"kind": "class",
|
|
67
|
+
"name": "OrderlyHomePageElement",
|
|
68
|
+
"tagName": "orderly-home-page",
|
|
69
|
+
"customElement": true,
|
|
70
|
+
"description": "Default storefront homepage that renders one product rail per configured top-level category.",
|
|
71
|
+
"attributes": [
|
|
72
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
73
|
+
{ "name": "brand-label", "description": "Brand text." },
|
|
74
|
+
{ "name": "eyebrow", "description": "Intro eyebrow text." },
|
|
75
|
+
{ "name": "title", "description": "Homepage heading." },
|
|
76
|
+
{ "name": "rail-cta-label", "description": "CTA label used by every category rail." },
|
|
77
|
+
{ "name": "empty-label", "description": "Empty result text used by category rails." },
|
|
78
|
+
{ "name": "product-href", "description": "Product detail page URL used by the popup expand link." },
|
|
79
|
+
{ "name": "checkout-href", "description": "Checkout page URL used by the basket." },
|
|
80
|
+
{ "name": "checkout-label", "description": "Checkout link label." }
|
|
81
|
+
],
|
|
82
|
+
"members": [
|
|
83
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
84
|
+
{ "kind": "field", "name": "defaultQuery", "type": { "text": "SearchQuery | undefined" }, "description": "Default SearchQuery merged into product rail searches." },
|
|
85
|
+
{ "kind": "field", "name": "navigationItems", "type": { "text": "CategoryNavigationItem[]" } },
|
|
86
|
+
{ "kind": "field", "name": "sortOptions", "type": { "text": "SortOption[]" } },
|
|
87
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } },
|
|
88
|
+
{ "kind": "field", "name": "basketLabels", "type": { "text": "BasketLabels" } }
|
|
89
|
+
],
|
|
90
|
+
"slots": [
|
|
91
|
+
{ "name": "utility", "description": "Projected into the internal page layout utility region." },
|
|
92
|
+
{ "name": "header-actions", "description": "Additional header actions after the basket icon." },
|
|
93
|
+
{ "name": "content-before", "description": "Projected before homepage content." },
|
|
94
|
+
{ "name": "content-after", "description": "Projected after homepage content." },
|
|
95
|
+
{ "name": "footer", "description": "Additional footer content after the default shop footer." },
|
|
96
|
+
{ "name": "overlay", "description": "Overlay content." }
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"kind": "class",
|
|
101
|
+
"name": "OrderlyCheckoutPageElement",
|
|
102
|
+
"tagName": "orderly-checkout-page",
|
|
103
|
+
"customElement": true,
|
|
104
|
+
"description": "Default checkout page composed from page layout, navigation, checkout form, basket summary, footer, and shared basket state.",
|
|
105
|
+
"attributes": [
|
|
106
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
107
|
+
{ "name": "brand-label", "description": "Brand text." },
|
|
108
|
+
{ "name": "title", "description": "Checkout page heading." },
|
|
109
|
+
{ "name": "description", "description": "Checkout page intro text." },
|
|
110
|
+
{ "name": "order-title", "description": "Order summary heading." },
|
|
111
|
+
{ "name": "terms-href", "description": "Terms link URL passed to the checkout form." }
|
|
112
|
+
],
|
|
113
|
+
"members": [
|
|
114
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
115
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } },
|
|
116
|
+
{ "kind": "field", "name": "navigationItems", "type": { "text": "NavigationItem[]" } },
|
|
117
|
+
{ "kind": "field", "name": "basketLabels", "type": { "text": "BasketLabels" } },
|
|
118
|
+
{ "kind": "field", "name": "checkoutLabels", "type": { "text": "CheckoutLabels" } }
|
|
119
|
+
],
|
|
120
|
+
"slots": [
|
|
121
|
+
{ "name": "utility", "description": "Projected into the internal page layout utility region." },
|
|
122
|
+
{ "name": "header-actions", "description": "Projected into the internal page layout header actions region." },
|
|
123
|
+
{ "name": "content-before", "description": "Projected before the checkout content." },
|
|
124
|
+
{ "name": "content-after", "description": "Projected after the checkout content." },
|
|
125
|
+
{ "name": "footer", "description": "Additional footer content after the default shop footer." },
|
|
126
|
+
{ "name": "overlay", "description": "Overlay content." }
|
|
127
|
+
],
|
|
128
|
+
"events": [
|
|
129
|
+
{ "name": "orderly-order-created", "type": { "text": "CustomEvent<OrderCreatedDetail>" } },
|
|
130
|
+
{ "name": "orderly-error", "type": { "text": "CustomEvent<{ error: unknown }>" } }
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"kind": "class",
|
|
135
|
+
"name": "OrderlyProductGridElement",
|
|
136
|
+
"tagName": "orderly-product-grid",
|
|
137
|
+
"customElement": true,
|
|
138
|
+
"description": "Search-backed product grid with sorting, loading states, continuation-token paging, and template overrides.",
|
|
139
|
+
"attributes": [
|
|
140
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
141
|
+
{ "name": "paging", "description": "Paging mode: button, manual, dynamic, or infinite." },
|
|
142
|
+
{ "name": "sort-label", "description": "Sort control label." },
|
|
143
|
+
{ "name": "clear-search-label", "description": "Clear search button label for custom context templates." },
|
|
144
|
+
{ "name": "error-label", "description": "Error text." },
|
|
145
|
+
{ "name": "loading-label", "description": "Loading text." },
|
|
146
|
+
{ "name": "results-label", "description": "Result count suffix for custom context templates." },
|
|
147
|
+
{ "name": "searching-label", "description": "Active query prefix for custom context templates." },
|
|
148
|
+
{ "name": "keywords", "description": "Declarative query text mapped to SearchQuery.Query." },
|
|
149
|
+
{ "name": "tags", "description": "Comma-separated values mapped to SearchQuery.Tags." },
|
|
150
|
+
{ "name": "hidden-query", "description": "Declarative query text mapped to SearchQuery.HiddenQuery." },
|
|
151
|
+
{ "name": "order-by", "description": "Comma-separated values mapped to SearchQuery.OrderBy." },
|
|
152
|
+
{ "name": "store-id", "description": "Value mapped to SearchQuery.StoreId." },
|
|
153
|
+
{ "name": "featured", "description": "Boolean mapped to SearchQuery.Featured." }
|
|
154
|
+
],
|
|
155
|
+
"members": [
|
|
156
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
157
|
+
{ "kind": "field", "name": "query", "type": { "text": "SearchQuery | undefined" }, "description": "Explicit SearchQuery. Takes precedence over declarative query markup." },
|
|
158
|
+
{ "kind": "field", "name": "defaultQuery", "type": { "text": "SearchQuery | undefined" }, "description": "Default SearchQuery merged before the grid query." },
|
|
159
|
+
{ "kind": "field", "name": "shopQuery", "type": { "text": "SearchQuery | undefined" }, "description": "Backward-compatible alias for defaultQuery." },
|
|
160
|
+
{ "kind": "field", "name": "sortOptions", "type": { "text": "SortOption[]" } },
|
|
161
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } },
|
|
162
|
+
{ "kind": "field", "name": "paging", "type": { "text": "ProductGridPagingMode" } },
|
|
163
|
+
{ "kind": "field", "name": "products", "type": { "text": "SearchObject[]" } },
|
|
164
|
+
{ "kind": "field", "name": "continuationToken", "type": { "text": "ContinuationToken | undefined" } },
|
|
165
|
+
{ "kind": "field", "name": "hasMore", "type": { "text": "boolean" } },
|
|
166
|
+
{ "kind": "field", "name": "state", "type": { "text": "ProductGridState" } },
|
|
167
|
+
{ "kind": "method", "name": "refresh", "type": { "text": "() => Promise<void>" } },
|
|
168
|
+
{ "kind": "method", "name": "loadNextPage", "type": { "text": "() => Promise<void>" } },
|
|
169
|
+
{ "kind": "method", "name": "setSort", "type": { "text": "(orderBy: string[]) => Promise<void>" } },
|
|
170
|
+
{ "kind": "method", "name": "clearSearch", "type": { "text": "() => Promise<void>" } }
|
|
171
|
+
],
|
|
172
|
+
"events": [
|
|
173
|
+
{ "name": "orderly-results", "type": { "text": "CustomEvent<ProductGridState>" } },
|
|
174
|
+
{ "name": "orderly-error", "type": { "text": "CustomEvent<{ error: unknown }>" } },
|
|
175
|
+
{ "name": "orderly-product-selected", "type": { "text": "CustomEvent<ProductEventDetail>" } },
|
|
176
|
+
{ "name": "orderly-add-to-basket", "type": { "text": "CustomEvent<ProductEventDetail>" } },
|
|
177
|
+
{ "name": "orderly-remove-from-basket", "type": { "text": "CustomEvent<ProductEventDetail>" } }
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"kind": "class",
|
|
182
|
+
"name": "OrderlyProductRailElement",
|
|
183
|
+
"tagName": "orderly-product-rail",
|
|
184
|
+
"customElement": true,
|
|
185
|
+
"description": "Horizontal product rail that renders a SearchQuery by composing orderly-product-grid.",
|
|
186
|
+
"attributes": [
|
|
187
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
188
|
+
{ "name": "title", "description": "Rail heading." },
|
|
189
|
+
{ "name": "cta-label", "description": "CTA link label." },
|
|
190
|
+
{ "name": "cta-href", "description": "CTA link URL." },
|
|
191
|
+
{ "name": "empty-label", "description": "Empty result text." },
|
|
192
|
+
{ "name": "loading-label", "description": "Loading text forwarded to the grid." },
|
|
193
|
+
{ "name": "error-label", "description": "Error text forwarded to the grid." },
|
|
194
|
+
{ "name": "keywords", "description": "Declarative query text mapped to SearchQuery.Query." },
|
|
195
|
+
{ "name": "tags", "description": "Comma-separated values mapped to SearchQuery.Tags." },
|
|
196
|
+
{ "name": "hidden-query", "description": "Declarative query text mapped to SearchQuery.HiddenQuery." },
|
|
197
|
+
{ "name": "order-by", "description": "Comma-separated values mapped to SearchQuery.OrderBy." },
|
|
198
|
+
{ "name": "store-id", "description": "Value mapped to SearchQuery.StoreId." },
|
|
199
|
+
{ "name": "featured", "description": "Boolean mapped to SearchQuery.Featured." }
|
|
200
|
+
],
|
|
201
|
+
"members": [
|
|
202
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
203
|
+
{ "kind": "field", "name": "query", "type": { "text": "SearchQuery | undefined" }, "description": "Explicit SearchQuery. Takes precedence over declarative query markup." },
|
|
204
|
+
{ "kind": "field", "name": "defaultQuery", "type": { "text": "SearchQuery | undefined" }, "description": "Default SearchQuery merged before the rail query." },
|
|
205
|
+
{ "kind": "field", "name": "shopQuery", "type": { "text": "SearchQuery | undefined" }, "description": "Backward-compatible alias for defaultQuery." },
|
|
206
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } }
|
|
207
|
+
],
|
|
208
|
+
"events": [
|
|
209
|
+
{ "name": "orderly-results", "type": { "text": "CustomEvent<ProductGridState>" } },
|
|
210
|
+
{ "name": "orderly-error", "type": { "text": "CustomEvent<{ error: unknown }>" } },
|
|
211
|
+
{ "name": "orderly-product-selected", "type": { "text": "CustomEvent<ProductEventDetail>" } },
|
|
212
|
+
{ "name": "orderly-add-to-basket", "type": { "text": "CustomEvent<ProductEventDetail>" } },
|
|
213
|
+
{ "name": "orderly-remove-from-basket", "type": { "text": "CustomEvent<ProductEventDetail>" } }
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"kind": "class",
|
|
218
|
+
"name": "OrderlyCollectionPageElement",
|
|
219
|
+
"tagName": "orderly-collection-page",
|
|
220
|
+
"customElement": true,
|
|
221
|
+
"description": "Collection page with a full-width hero and search-backed product grid.",
|
|
222
|
+
"attributes": [
|
|
223
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
224
|
+
{ "name": "title", "description": "Collection heading." },
|
|
225
|
+
{ "name": "description", "description": "Collection description." },
|
|
226
|
+
{ "name": "hero-image", "description": "Hero image URL." },
|
|
227
|
+
{ "name": "cta-label", "description": "CTA link label." },
|
|
228
|
+
{ "name": "cta-href", "description": "CTA link URL." },
|
|
229
|
+
{ "name": "keywords", "description": "Declarative query text mapped to SearchQuery.Query." },
|
|
230
|
+
{ "name": "tags", "description": "Comma-separated values mapped to SearchQuery.Tags." },
|
|
231
|
+
{ "name": "hidden-query", "description": "Declarative query text mapped to SearchQuery.HiddenQuery." },
|
|
232
|
+
{ "name": "order-by", "description": "Comma-separated values mapped to SearchQuery.OrderBy." },
|
|
233
|
+
{ "name": "store-id", "description": "Value mapped to SearchQuery.StoreId." },
|
|
234
|
+
{ "name": "featured", "description": "Boolean mapped to SearchQuery.Featured." }
|
|
235
|
+
],
|
|
236
|
+
"members": [
|
|
237
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
238
|
+
{ "kind": "field", "name": "query", "type": { "text": "SearchQuery | undefined" } },
|
|
239
|
+
{ "kind": "field", "name": "defaultQuery", "type": { "text": "SearchQuery | undefined" } },
|
|
240
|
+
{ "kind": "field", "name": "sortOptions", "type": { "text": "SortOption[]" } },
|
|
241
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } }
|
|
242
|
+
]
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"kind": "class",
|
|
246
|
+
"name": "OrderlyProductDetailPageElement",
|
|
247
|
+
"tagName": "orderly-product-detail-page",
|
|
248
|
+
"customElement": true,
|
|
249
|
+
"description": "Default product detail page that resolves a SearchObject through SearchService.Search using SearchQuery.ShareUrl from share-url or #url.",
|
|
250
|
+
"attributes": [
|
|
251
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
252
|
+
{ "name": "share-url", "description": "Product share URL mapped to SearchQuery.ShareUrl." },
|
|
253
|
+
{ "name": "brand-label", "description": "Brand text." },
|
|
254
|
+
{ "name": "checkout-href", "description": "Checkout page URL used by the basket." },
|
|
255
|
+
{ "name": "checkout-label", "description": "Checkout link label." },
|
|
256
|
+
{ "name": "add-label", "description": "Add-to-basket button label." },
|
|
257
|
+
{ "name": "loading-label", "description": "Product loading text." },
|
|
258
|
+
{ "name": "not-found-label", "description": "Product not found text." },
|
|
259
|
+
{ "name": "error-label", "description": "Product loading error text." }
|
|
260
|
+
],
|
|
261
|
+
"members": [
|
|
262
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
263
|
+
{ "kind": "field", "name": "shareUrl", "type": { "text": "string" } },
|
|
264
|
+
{ "kind": "field", "name": "product", "type": { "text": "SearchObject | undefined" } },
|
|
265
|
+
{ "kind": "field", "name": "defaultQuery", "type": { "text": "SearchQuery | undefined" }, "description": "Default SearchQuery merged into the ShareUrl lookup." },
|
|
266
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } },
|
|
267
|
+
{ "kind": "field", "name": "navigationItems", "type": { "text": "NavigationItem[]" } },
|
|
268
|
+
{ "kind": "field", "name": "basketLabels", "type": { "text": "BasketLabels" } }
|
|
269
|
+
],
|
|
270
|
+
"events": [
|
|
271
|
+
{ "name": "orderly-product-loaded", "type": { "text": "CustomEvent<{ product: SearchObject; shareUrl: string }>" } },
|
|
272
|
+
{ "name": "orderly-product-not-found", "type": { "text": "CustomEvent<{ shareUrl: string }>" } },
|
|
273
|
+
{ "name": "orderly-error", "type": { "text": "CustomEvent<{ error: unknown }>" } }
|
|
274
|
+
]
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"kind": "class",
|
|
278
|
+
"name": "OrderlyProductTileElement",
|
|
279
|
+
"tagName": "orderly-product-tile",
|
|
280
|
+
"customElement": true,
|
|
281
|
+
"description": "Product tile for SearchObject with product selection and basket toggle behavior.",
|
|
282
|
+
"attributes": [
|
|
283
|
+
{ "name": "add-label", "description": "Add-to-basket accessible label." },
|
|
284
|
+
{ "name": "remove-label", "description": "Remove-from-basket accessible label." }
|
|
285
|
+
],
|
|
286
|
+
"members": [
|
|
287
|
+
{ "kind": "field", "name": "product", "type": { "text": "SearchObject | undefined" } },
|
|
288
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } }
|
|
289
|
+
],
|
|
290
|
+
"events": [
|
|
291
|
+
{ "name": "orderly-product-selected", "type": { "text": "CustomEvent<ProductEventDetail>" } },
|
|
292
|
+
{ "name": "orderly-add-to-basket", "type": { "text": "CustomEvent<ProductEventDetail>" } },
|
|
293
|
+
{ "name": "orderly-remove-from-basket", "type": { "text": "CustomEvent<ProductEventDetail>" } }
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"kind": "class",
|
|
298
|
+
"name": "OrderlyProductPageElement",
|
|
299
|
+
"tagName": "orderly-product-page",
|
|
300
|
+
"customElement": true,
|
|
301
|
+
"description": "Product detail view with gallery thumbnails and add-to-basket behavior.",
|
|
302
|
+
"attributes": [
|
|
303
|
+
{ "name": "add-label", "description": "Add-to-basket button label." }
|
|
304
|
+
],
|
|
305
|
+
"members": [
|
|
306
|
+
{ "kind": "field", "name": "product", "type": { "text": "SearchObject | undefined" } },
|
|
307
|
+
{ "kind": "field", "name": "selectedImageIndex", "type": { "text": "number" } },
|
|
308
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController | undefined" } }
|
|
309
|
+
],
|
|
310
|
+
"events": [
|
|
311
|
+
{ "name": "orderly-add-to-basket", "type": { "text": "CustomEvent<ProductEventDetail>" } },
|
|
312
|
+
{ "name": "orderly-product-image-selected", "type": { "text": "CustomEvent<{ product?: SearchObject; image?: StoredImage; index: number }>" } }
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"kind": "class",
|
|
317
|
+
"name": "OrderlyStoredImageElement",
|
|
318
|
+
"tagName": "orderly-stored-image",
|
|
319
|
+
"customElement": true,
|
|
320
|
+
"description": "Renders StoredImage with configured URL resolution, rotation, crop, and fit behavior.",
|
|
321
|
+
"attributes": [
|
|
322
|
+
{ "name": "fit", "description": "Image fit, normally contain or cover." },
|
|
323
|
+
{ "name": "variant", "description": "Image URL variant, such as thumbnail or object." },
|
|
324
|
+
{ "name": "alt", "description": "Image alt text." }
|
|
325
|
+
],
|
|
326
|
+
"members": [
|
|
327
|
+
{ "kind": "field", "name": "image", "type": { "text": "StoredImage | undefined" } }
|
|
328
|
+
]
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"kind": "class",
|
|
332
|
+
"name": "OrderlyCreditElement",
|
|
333
|
+
"tagName": "orderly-credit",
|
|
334
|
+
"customElement": true,
|
|
335
|
+
"description": "Formats and renders a Core Credit value as stylable money markup.",
|
|
336
|
+
"attributes": [
|
|
337
|
+
{ "name": "amount", "description": "Declarative amount used when no credit property is assigned." },
|
|
338
|
+
{ "name": "currency", "description": "Declarative currency code used when no credit property is assigned." },
|
|
339
|
+
{ "name": "locale", "description": "Locale used for amount formatting. Defaults to da-DK." },
|
|
340
|
+
{ "name": "empty-label", "description": "Text shown when no Credit value is available." }
|
|
341
|
+
],
|
|
342
|
+
"members": [
|
|
343
|
+
{ "kind": "field", "name": "credit", "type": { "text": "Credit | undefined" } },
|
|
344
|
+
{ "kind": "field", "name": "amount", "type": { "text": "number | undefined" } },
|
|
345
|
+
{ "kind": "field", "name": "currency", "type": { "text": "string" } },
|
|
346
|
+
{ "kind": "field", "name": "locale", "type": { "text": "string" } },
|
|
347
|
+
{ "kind": "field", "name": "emptyLabel", "type": { "text": "string" } }
|
|
348
|
+
]
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"kind": "class",
|
|
352
|
+
"name": "OrderlyBasketIconElement",
|
|
353
|
+
"tagName": "orderly-basket-icon",
|
|
354
|
+
"customElement": true,
|
|
355
|
+
"description": "Basket icon button with count badge.",
|
|
356
|
+
"attributes": [
|
|
357
|
+
{ "name": "label", "description": "Accessible basket label." }
|
|
358
|
+
],
|
|
359
|
+
"members": [
|
|
360
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController" } }
|
|
361
|
+
],
|
|
362
|
+
"events": [
|
|
363
|
+
{ "name": "orderly-basket-open", "type": { "text": "CustomEvent<DraftOrder>" } },
|
|
364
|
+
{ "name": "orderly-basket-change", "type": { "text": "CustomEvent<DraftOrder>" } }
|
|
365
|
+
]
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"kind": "class",
|
|
369
|
+
"name": "OrderlyBasketElement",
|
|
370
|
+
"tagName": "orderly-basket",
|
|
371
|
+
"customElement": true,
|
|
372
|
+
"description": "DraftOrder basket overview with persistence, remove actions, quantity display, verification, summary, and checkout link.",
|
|
373
|
+
"attributes": [
|
|
374
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
375
|
+
{ "name": "empty-label", "description": "Empty basket text." },
|
|
376
|
+
{ "name": "clear-label", "description": "Clear basket button label." },
|
|
377
|
+
{ "name": "continue-label", "description": "Continue shopping link label." },
|
|
378
|
+
{ "name": "continue-href", "description": "Continue shopping link URL." },
|
|
379
|
+
{ "name": "quantity-label", "description": "Quantity label." },
|
|
380
|
+
{ "name": "remove-label", "description": "Remove line label." },
|
|
381
|
+
{ "name": "checkout-href", "description": "Checkout link URL." },
|
|
382
|
+
{ "name": "checkout-label", "description": "Checkout link label." },
|
|
383
|
+
{ "name": "checkout-action", "description": "Checkout action behavior." }
|
|
384
|
+
],
|
|
385
|
+
"members": [
|
|
386
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
387
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController" } }
|
|
388
|
+
],
|
|
389
|
+
"events": [
|
|
390
|
+
{ "name": "orderly-basket-change", "type": { "text": "CustomEvent<DraftOrder>" } },
|
|
391
|
+
{ "name": "orderly-basket-verified", "type": { "text": "CustomEvent<DraftOrder>" } }
|
|
392
|
+
]
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"kind": "class",
|
|
396
|
+
"name": "OrderlyCheckoutElement",
|
|
397
|
+
"tagName": "orderly-checkout",
|
|
398
|
+
"customElement": true,
|
|
399
|
+
"description": "Checkout form that collects profile data, lists delivery methods and service points, verifies the draft, and creates an order.",
|
|
400
|
+
"attributes": [
|
|
401
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
402
|
+
{ "name": "terms-href", "description": "Terms link URL." },
|
|
403
|
+
{ "name": "delivery-address-prompt-label", "description": "Text shown before enough address data is available to load delivery methods." },
|
|
404
|
+
{ "name": "no-delivery-methods-label", "description": "Text shown when no delivery methods are available." },
|
|
405
|
+
{ "name": "service-point-help-label", "description": "Help text shown above service point choices." },
|
|
406
|
+
{ "name": "no-service-points-label", "description": "Text shown when no service points are available." }
|
|
407
|
+
],
|
|
408
|
+
"members": [
|
|
409
|
+
{ "kind": "field", "name": "client", "type": { "text": "OrderlyClient | undefined" } },
|
|
410
|
+
{ "kind": "field", "name": "basketController", "type": { "text": "BasketController" } },
|
|
411
|
+
{ "kind": "field", "name": "profileStore", "type": { "text": "CheckoutProfileStore" } },
|
|
412
|
+
{ "kind": "field", "name": "labels", "type": { "text": "CheckoutLabels" } }
|
|
413
|
+
],
|
|
414
|
+
"events": [
|
|
415
|
+
{ "name": "orderly-checkout-ready", "type": { "text": "CustomEvent<CheckoutReadyDetail>" } },
|
|
416
|
+
{ "name": "orderly-checkout-delivery-selected", "type": { "text": "CustomEvent<{ draft: DraftOrder; transportMethod: TransportMethod; servicePoint?: ServicePointHeader }>" } },
|
|
417
|
+
{ "name": "orderly-order-created", "type": { "text": "CustomEvent<OrderCreatedDetail>" } },
|
|
418
|
+
{ "name": "orderly-error", "type": { "text": "CustomEvent<{ error: unknown }>" } }
|
|
419
|
+
]
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"kind": "class",
|
|
423
|
+
"name": "OrderlyNavigationMenuElement",
|
|
424
|
+
"tagName": "orderly-navigation",
|
|
425
|
+
"customElement": true,
|
|
426
|
+
"description": "Navigation menu with vertical or horizontal layouts, nested disclosure behavior, desktop tiered navigation support, horizontal overflow scrolling, projected inline content, and selection events.",
|
|
427
|
+
"attributes": [
|
|
428
|
+
{ "name": "layout", "description": "Navigation layout. Use vertical for a side menu or horizontal for a tiered desktop menu with a scrolling top row, full-width second row, and third-level dropdowns." },
|
|
429
|
+
{ "name": "sticky", "description": "Set to false to opt out of sticky positioning." }
|
|
430
|
+
],
|
|
431
|
+
"members": [
|
|
432
|
+
{ "kind": "field", "name": "items", "type": { "text": "NavigationItem[]" } },
|
|
433
|
+
{ "kind": "field", "name": "controller", "type": { "text": "NavigationController" } },
|
|
434
|
+
{ "kind": "field", "name": "layout", "type": { "text": "NavigationLayout" } },
|
|
435
|
+
{ "kind": "field", "name": "sticky", "type": { "text": "boolean" } }
|
|
436
|
+
],
|
|
437
|
+
"events": [
|
|
438
|
+
{ "name": "orderly-navigation-select", "type": { "text": "CustomEvent<NavigationSelectionDetail>" } }
|
|
439
|
+
],
|
|
440
|
+
"slots": [
|
|
441
|
+
{ "name": "before-items", "description": "Inline content rendered before the navigation items, for example logos." },
|
|
442
|
+
{ "name": "after-items", "description": "Inline content rendered after the navigation items, for example promotional blocks." }
|
|
443
|
+
]
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"kind": "class",
|
|
447
|
+
"name": "OrderlyShopFooterElement",
|
|
448
|
+
"tagName": "orderly-shop-footer",
|
|
449
|
+
"customElement": true,
|
|
450
|
+
"description": "Configurable shop footer with logo, about text, address, contact information, opening hours, and information links."
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"kind": "class",
|
|
454
|
+
"name": "OrderlySearchBoxElement",
|
|
455
|
+
"tagName": "orderly-search-box",
|
|
456
|
+
"customElement": true,
|
|
457
|
+
"description": "Search input that binds to an orderly-product-grid. Icon mode opens a full-page overlay, shows latest products immediately, then searches automatically with debounce and renders product results below the search field.",
|
|
458
|
+
"attributes": [
|
|
459
|
+
{ "name": "base-url", "description": "Backend URL used when no client property is assigned." },
|
|
460
|
+
{ "name": "for", "description": "Target product grid id." },
|
|
461
|
+
{ "name": "mode", "description": "Render mode: textbox or icon. Icon mode opens a full-page search overlay with immediate initial results." },
|
|
462
|
+
{ "name": "placeholder", "description": "Input placeholder." },
|
|
463
|
+
{ "name": "label", "description": "Accessible search label and submit label." },
|
|
464
|
+
{ "name": "close-label", "description": "Accessible close label for icon overlay mode." },
|
|
465
|
+
{ "name": "prompt-label", "description": "Prompt text shown before a search query is entered in icon overlay mode." },
|
|
466
|
+
{ "name": "loading-label", "description": "Loading label passed to overlay search results." },
|
|
467
|
+
{ "name": "error-label", "description": "Error label passed to overlay search results." },
|
|
468
|
+
{ "name": "empty-label", "description": "Empty-state label for overlay search results." },
|
|
469
|
+
{ "name": "debounce-ms", "description": "Automatic search debounce delay in milliseconds. Defaults to 500." }
|
|
470
|
+
]
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"kind": "class",
|
|
474
|
+
"name": "OrderlySortSelectElement",
|
|
475
|
+
"tagName": "orderly-sort-select",
|
|
476
|
+
"customElement": true,
|
|
477
|
+
"description": "Sort select that binds to an orderly-product-grid.",
|
|
478
|
+
"attributes": [
|
|
479
|
+
{ "name": "for", "description": "Target product grid id." }
|
|
480
|
+
]
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"kind": "class",
|
|
484
|
+
"name": "OrderlyFilterPanelElement",
|
|
485
|
+
"tagName": "orderly-filter-panel",
|
|
486
|
+
"customElement": true,
|
|
487
|
+
"description": "Filter panel placeholder that can bind to an orderly-product-grid.",
|
|
488
|
+
"attributes": [
|
|
489
|
+
{ "name": "for", "description": "Target product grid id." }
|
|
490
|
+
]
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"kind": "class",
|
|
494
|
+
"name": "OrderlyLoadMoreElement",
|
|
495
|
+
"tagName": "orderly-load-more",
|
|
496
|
+
"customElement": true,
|
|
497
|
+
"description": "Load-more control that calls loadNextPage on an orderly-product-grid.",
|
|
498
|
+
"attributes": [
|
|
499
|
+
{ "name": "for", "description": "Target product grid id." }
|
|
500
|
+
]
|
|
501
|
+
}
|
|
502
|
+
]
|
|
503
|
+
}
|
|
504
|
+
]
|
|
505
|
+
}
|