@seepmaini/stencil-recipe-components 0.0.1

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 (118) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  3. package/dist/cjs/index-BgGiRDlK.js +1502 -0
  4. package/dist/cjs/index.cjs.js +7 -0
  5. package/dist/cjs/loader.cjs.js +13 -0
  6. package/dist/cjs/my-component.cjs.entry.js +33 -0
  7. package/dist/cjs/no-recipe-found.cjs.entry.js +25 -0
  8. package/dist/cjs/recipe-browser.cjs.entry.js +64 -0
  9. package/dist/cjs/recipe-button.cjs.entry.js +24 -0
  10. package/dist/cjs/recipe-card.cjs.entry.js +78 -0
  11. package/dist/cjs/recipe-form-section.cjs.entry.js +20 -0
  12. package/dist/cjs/recipe-input.cjs.entry.js +24 -0
  13. package/dist/cjs/recipe-navbar.cjs.entry.js +30 -0
  14. package/dist/cjs/recipe-textarea.cjs.entry.js +23 -0
  15. package/dist/cjs/search-food.cjs.entry.js +36 -0
  16. package/dist/cjs/stencil-recipe-components.cjs.js +25 -0
  17. package/dist/collection/collection-manifest.json +22 -0
  18. package/dist/collection/components/my-component/my-component.cmp.test.js +27 -0
  19. package/dist/collection/components/my-component/my-component.css +3 -0
  20. package/dist/collection/components/my-component/my-component.js +95 -0
  21. package/dist/collection/components/no-recipe-found/no-recipe-found.css +76 -0
  22. package/dist/collection/components/no-recipe-found/no-recipe-found.js +107 -0
  23. package/dist/collection/components/recipe-browser/recipe-browser.css +183 -0
  24. package/dist/collection/components/recipe-browser/recipe-browser.js +220 -0
  25. package/dist/collection/components/recipe-button/recipe-button.css +34 -0
  26. package/dist/collection/components/recipe-button/recipe-button.js +89 -0
  27. package/dist/collection/components/recipe-card/recipe-card.css +207 -0
  28. package/dist/collection/components/recipe-card/recipe-card.js +260 -0
  29. package/dist/collection/components/recipe-form-section/recipe-form-section.css +54 -0
  30. package/dist/collection/components/recipe-form-section/recipe-form-section.js +82 -0
  31. package/dist/collection/components/recipe-input/recipe-input.css +47 -0
  32. package/dist/collection/components/recipe-input/recipe-input.js +167 -0
  33. package/dist/collection/components/recipe-navbar/recipe-navbar.css +56 -0
  34. package/dist/collection/components/recipe-navbar/recipe-navbar.js +55 -0
  35. package/dist/collection/components/recipe-textarea/recipe-textarea.css +43 -0
  36. package/dist/collection/components/recipe-textarea/recipe-textarea.js +146 -0
  37. package/dist/collection/components/search-food/search-food.css +117 -0
  38. package/dist/collection/components/search-food/search-food.js +92 -0
  39. package/dist/collection/index.js +10 -0
  40. package/dist/collection/utils/utils.js +3 -0
  41. package/dist/collection/utils/utils.unit.test.js +16 -0
  42. package/dist/components/index.d.ts +35 -0
  43. package/dist/components/index.js +1 -0
  44. package/dist/components/my-component.d.ts +11 -0
  45. package/dist/components/my-component.js +1 -0
  46. package/dist/components/no-recipe-found.d.ts +11 -0
  47. package/dist/components/no-recipe-found.js +1 -0
  48. package/dist/components/p-DlkZDAps.js +1 -0
  49. package/dist/components/recipe-browser.d.ts +11 -0
  50. package/dist/components/recipe-browser.js +1 -0
  51. package/dist/components/recipe-button.d.ts +11 -0
  52. package/dist/components/recipe-button.js +1 -0
  53. package/dist/components/recipe-card.d.ts +11 -0
  54. package/dist/components/recipe-card.js +1 -0
  55. package/dist/components/recipe-form-section.d.ts +11 -0
  56. package/dist/components/recipe-form-section.js +1 -0
  57. package/dist/components/recipe-input.d.ts +11 -0
  58. package/dist/components/recipe-input.js +1 -0
  59. package/dist/components/recipe-navbar.d.ts +11 -0
  60. package/dist/components/recipe-navbar.js +1 -0
  61. package/dist/components/recipe-textarea.d.ts +11 -0
  62. package/dist/components/recipe-textarea.js +1 -0
  63. package/dist/components/search-food.d.ts +11 -0
  64. package/dist/components/search-food.js +1 -0
  65. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  66. package/dist/esm/index-DxpnpZMq.js +1495 -0
  67. package/dist/esm/index.js +5 -0
  68. package/dist/esm/loader.js +11 -0
  69. package/dist/esm/my-component.entry.js +31 -0
  70. package/dist/esm/no-recipe-found.entry.js +23 -0
  71. package/dist/esm/recipe-browser.entry.js +62 -0
  72. package/dist/esm/recipe-button.entry.js +22 -0
  73. package/dist/esm/recipe-card.entry.js +76 -0
  74. package/dist/esm/recipe-form-section.entry.js +18 -0
  75. package/dist/esm/recipe-input.entry.js +22 -0
  76. package/dist/esm/recipe-navbar.entry.js +28 -0
  77. package/dist/esm/recipe-textarea.entry.js +21 -0
  78. package/dist/esm/search-food.entry.js +34 -0
  79. package/dist/esm/stencil-recipe-components.js +21 -0
  80. package/dist/index.cjs.js +1 -0
  81. package/dist/index.js +1 -0
  82. package/dist/stencil-recipe-components/index.esm.js +1 -0
  83. package/dist/stencil-recipe-components/p-06b59cd5.entry.js +1 -0
  84. package/dist/stencil-recipe-components/p-2289adb0.entry.js +1 -0
  85. package/dist/stencil-recipe-components/p-5df4665a.entry.js +1 -0
  86. package/dist/stencil-recipe-components/p-83e3c89d.entry.js +1 -0
  87. package/dist/stencil-recipe-components/p-87586541.entry.js +1 -0
  88. package/dist/stencil-recipe-components/p-969201bf.entry.js +1 -0
  89. package/dist/stencil-recipe-components/p-DQuL1Twl.js +1 -0
  90. package/dist/stencil-recipe-components/p-DxpnpZMq.js +3 -0
  91. package/dist/stencil-recipe-components/p-b5c77a1a.entry.js +1 -0
  92. package/dist/stencil-recipe-components/p-c8a44beb.entry.js +1 -0
  93. package/dist/stencil-recipe-components/p-efd4f7bb.entry.js +1 -0
  94. package/dist/stencil-recipe-components/p-f5524ed4.entry.js +1 -0
  95. package/dist/stencil-recipe-components/stencil-recipe-components.esm.js +1 -0
  96. package/dist/types/components/my-component/my-component.cmp.test.d.ts +1 -0
  97. package/dist/types/components/my-component/my-component.d.ts +16 -0
  98. package/dist/types/components/no-recipe-found/no-recipe-found.d.ts +9 -0
  99. package/dist/types/components/recipe-browser/recipe-browser.d.ts +21 -0
  100. package/dist/types/components/recipe-button/recipe-button.d.ts +6 -0
  101. package/dist/types/components/recipe-card/recipe-card.d.ts +34 -0
  102. package/dist/types/components/recipe-form-section/recipe-form-section.d.ts +6 -0
  103. package/dist/types/components/recipe-input/recipe-input.d.ts +10 -0
  104. package/dist/types/components/recipe-navbar/recipe-navbar.d.ts +4 -0
  105. package/dist/types/components/recipe-textarea/recipe-textarea.d.ts +9 -0
  106. package/dist/types/components/search-food/search-food.d.ts +10 -0
  107. package/dist/types/components.d.ts +558 -0
  108. package/dist/types/index.d.ts +11 -0
  109. package/dist/types/stencil-public-runtime.d.ts +1872 -0
  110. package/dist/types/utils/utils.d.ts +1 -0
  111. package/dist/types/utils/utils.unit.test.d.ts +1 -0
  112. package/loader/cdn.js +1 -0
  113. package/loader/index.cjs.js +1 -0
  114. package/loader/index.d.ts +24 -0
  115. package/loader/index.es2017.js +1 -0
  116. package/loader/index.js +2 -0
  117. package/package.json +82 -0
  118. package/readme.md +111 -0
@@ -0,0 +1,9 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export declare class NoRecipesFound {
3
+ header: string;
4
+ message: string;
5
+ buttonText: string;
6
+ clear: EventEmitter<void>;
7
+ private handleClear;
8
+ render(): any;
9
+ }
@@ -0,0 +1,21 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export type RecipeBrowseType = 'category' | 'area' | 'ingredient';
3
+ export interface RecipeBrowseEvent {
4
+ type: RecipeBrowseType;
5
+ value: string;
6
+ }
7
+ export declare class RecipeBrowser {
8
+ categories: string[];
9
+ areas: string[];
10
+ ingredients: string[];
11
+ selectedCategory: string;
12
+ selectedArea: string;
13
+ selectedIngredient: string;
14
+ browseChange: EventEmitter<RecipeBrowseEvent>;
15
+ browseClear: EventEmitter<void>;
16
+ private handleCategory;
17
+ private handleArea;
18
+ private handleIngredient;
19
+ private handleClear;
20
+ render(): any;
21
+ }
@@ -0,0 +1,6 @@
1
+ export declare class RecipeButton {
2
+ variant: 'primary' | 'secondary';
3
+ type: 'button' | 'submit';
4
+ disabled: boolean;
5
+ render(): any;
6
+ }
@@ -0,0 +1,34 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ type MealType = 'Breakfast' | 'Lunch' | 'Dinner';
3
+ type PlannerEvent = {
4
+ id: string;
5
+ day: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';
6
+ mealType: MealType;
7
+ };
8
+ export declare class RecipeCard {
9
+ recipeId: string;
10
+ recipeTitle: string;
11
+ image: string;
12
+ category: string;
13
+ cuisine: string;
14
+ favorite: boolean;
15
+ favoriteToggle: EventEmitter<{
16
+ id: string;
17
+ }>;
18
+ recipeClick: EventEmitter<{
19
+ id: string;
20
+ }>;
21
+ addToPlanner: EventEmitter<PlannerEvent>;
22
+ showPlanner: boolean;
23
+ selectedDay: string;
24
+ selectedMeal: MealType | '';
25
+ private handleViewRecipe;
26
+ private toggleFavorite;
27
+ private openPlanner;
28
+ private closePlanner;
29
+ private handleDayChange;
30
+ private handleMealChange;
31
+ private confirmPlanner;
32
+ render(): any;
33
+ }
34
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare class RecipeFormSection {
2
+ number: string;
3
+ formTitle: string;
4
+ description: string;
5
+ render(): any;
6
+ }
@@ -0,0 +1,10 @@
1
+ export declare class RecipeInput {
2
+ label: string;
3
+ name: string;
4
+ type: string;
5
+ placeholder: string;
6
+ value: string;
7
+ required: boolean;
8
+ helper: string;
9
+ render(): any;
10
+ }
@@ -0,0 +1,4 @@
1
+ export declare class RecipeNavbar {
2
+ currentPage: string;
3
+ render(): any;
4
+ }
@@ -0,0 +1,9 @@
1
+ export declare class RecipeTextarea {
2
+ label: string;
3
+ name: string;
4
+ rows: number;
5
+ placeholder: string;
6
+ value: string;
7
+ required: boolean;
8
+ render(): any;
9
+ }
@@ -0,0 +1,10 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export declare class SearchFood {
3
+ search: string;
4
+ searchSubmit: EventEmitter<string>;
5
+ searchClear: EventEmitter<void>;
6
+ private handleInput;
7
+ private handleSearch;
8
+ private clearSearch;
9
+ render(): any;
10
+ }
@@ -0,0 +1,558 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /**
4
+ * This is an autogenerated file created by the Stencil compiler.
5
+ * It contains typing information for all components that exist in this project.
6
+ */
7
+ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { RecipeBrowseEvent } from "./components/recipe-browser/recipe-browser";
9
+ export { RecipeBrowseEvent } from "./components/recipe-browser/recipe-browser";
10
+ export namespace Components {
11
+ interface MyComponent {
12
+ /**
13
+ * The first name
14
+ */
15
+ "first"?: string;
16
+ /**
17
+ * The last name
18
+ */
19
+ "last"?: string;
20
+ /**
21
+ * The middle name
22
+ */
23
+ "middle"?: string;
24
+ }
25
+ interface NoRecipeFound {
26
+ /**
27
+ * @default 'Clear Search'
28
+ */
29
+ "buttonText": string;
30
+ /**
31
+ * @default 'No Recipes Found'
32
+ */
33
+ "header": string;
34
+ /**
35
+ * @default 'We couldn’t find any recipes matching your search. Try a different recipe, category, cuisine, or ingredient.'
36
+ */
37
+ "message": string;
38
+ }
39
+ interface RecipeBrowser {
40
+ /**
41
+ * @default []
42
+ */
43
+ "areas": string[];
44
+ /**
45
+ * @default []
46
+ */
47
+ "categories": string[];
48
+ /**
49
+ * @default []
50
+ */
51
+ "ingredients": string[];
52
+ /**
53
+ * @default ''
54
+ */
55
+ "selectedArea": string;
56
+ /**
57
+ * @default ''
58
+ */
59
+ "selectedCategory": string;
60
+ /**
61
+ * @default ''
62
+ */
63
+ "selectedIngredient": string;
64
+ }
65
+ interface RecipeButton {
66
+ /**
67
+ * @default false
68
+ */
69
+ "disabled": boolean;
70
+ /**
71
+ * @default 'button'
72
+ */
73
+ "type": 'button' | 'submit';
74
+ /**
75
+ * @default 'primary'
76
+ */
77
+ "variant": 'primary' | 'secondary';
78
+ }
79
+ interface RecipeCard {
80
+ /**
81
+ * @default ''
82
+ */
83
+ "category": string;
84
+ /**
85
+ * @default ''
86
+ */
87
+ "cuisine": string;
88
+ /**
89
+ * @default false
90
+ */
91
+ "favorite": boolean;
92
+ /**
93
+ * @default ''
94
+ */
95
+ "image": string;
96
+ /**
97
+ * @default ''
98
+ */
99
+ "recipeId": string;
100
+ /**
101
+ * @default ''
102
+ */
103
+ "recipeTitle": string;
104
+ }
105
+ interface RecipeFormSection {
106
+ "description": string;
107
+ "formTitle": string;
108
+ "number": string;
109
+ }
110
+ interface RecipeInput {
111
+ /**
112
+ * @default ''
113
+ */
114
+ "helper": string;
115
+ "label": string;
116
+ "name": string;
117
+ /**
118
+ * @default ''
119
+ */
120
+ "placeholder": string;
121
+ /**
122
+ * @default false
123
+ */
124
+ "required": boolean;
125
+ /**
126
+ * @default 'text'
127
+ */
128
+ "type": string;
129
+ /**
130
+ * @default ''
131
+ */
132
+ "value": string;
133
+ }
134
+ interface RecipeNavbar {
135
+ /**
136
+ * @default ''
137
+ */
138
+ "currentPage": string;
139
+ }
140
+ interface RecipeTextarea {
141
+ "label": string;
142
+ "name": string;
143
+ /**
144
+ * @default ''
145
+ */
146
+ "placeholder": string;
147
+ /**
148
+ * @default false
149
+ */
150
+ "required": boolean;
151
+ /**
152
+ * @default 5
153
+ */
154
+ "rows": number;
155
+ /**
156
+ * @default ''
157
+ */
158
+ "value": string;
159
+ }
160
+ interface SearchFood {
161
+ /**
162
+ * @default ''
163
+ */
164
+ "search": string;
165
+ }
166
+ }
167
+ export interface NoRecipeFoundCustomEvent<T> extends CustomEvent<T> {
168
+ detail: T;
169
+ target: HTMLNoRecipeFoundElement;
170
+ }
171
+ export interface RecipeBrowserCustomEvent<T> extends CustomEvent<T> {
172
+ detail: T;
173
+ target: HTMLRecipeBrowserElement;
174
+ }
175
+ export interface RecipeCardCustomEvent<T> extends CustomEvent<T> {
176
+ detail: T;
177
+ target: HTMLRecipeCardElement;
178
+ }
179
+ export interface SearchFoodCustomEvent<T> extends CustomEvent<T> {
180
+ detail: T;
181
+ target: HTMLSearchFoodElement;
182
+ }
183
+ declare global {
184
+ interface HTMLMyComponentElement extends Components.MyComponent, HTMLStencilElement {
185
+ }
186
+ var HTMLMyComponentElement: {
187
+ prototype: HTMLMyComponentElement;
188
+ new (): HTMLMyComponentElement;
189
+ };
190
+ interface HTMLNoRecipeFoundElementEventMap {
191
+ "clear": void;
192
+ }
193
+ interface HTMLNoRecipeFoundElement extends Components.NoRecipeFound, HTMLStencilElement {
194
+ addEventListener<K extends keyof HTMLNoRecipeFoundElementEventMap>(type: K, listener: (this: HTMLNoRecipeFoundElement, ev: NoRecipeFoundCustomEvent<HTMLNoRecipeFoundElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
195
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
196
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
197
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
198
+ removeEventListener<K extends keyof HTMLNoRecipeFoundElementEventMap>(type: K, listener: (this: HTMLNoRecipeFoundElement, ev: NoRecipeFoundCustomEvent<HTMLNoRecipeFoundElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
199
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
200
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
201
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
202
+ }
203
+ var HTMLNoRecipeFoundElement: {
204
+ prototype: HTMLNoRecipeFoundElement;
205
+ new (): HTMLNoRecipeFoundElement;
206
+ };
207
+ interface HTMLRecipeBrowserElementEventMap {
208
+ "browseChange": RecipeBrowseEvent;
209
+ "browseClear": void;
210
+ }
211
+ interface HTMLRecipeBrowserElement extends Components.RecipeBrowser, HTMLStencilElement {
212
+ addEventListener<K extends keyof HTMLRecipeBrowserElementEventMap>(type: K, listener: (this: HTMLRecipeBrowserElement, ev: RecipeBrowserCustomEvent<HTMLRecipeBrowserElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
213
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
214
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
215
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
216
+ removeEventListener<K extends keyof HTMLRecipeBrowserElementEventMap>(type: K, listener: (this: HTMLRecipeBrowserElement, ev: RecipeBrowserCustomEvent<HTMLRecipeBrowserElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
217
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
218
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
219
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
220
+ }
221
+ var HTMLRecipeBrowserElement: {
222
+ prototype: HTMLRecipeBrowserElement;
223
+ new (): HTMLRecipeBrowserElement;
224
+ };
225
+ interface HTMLRecipeButtonElement extends Components.RecipeButton, HTMLStencilElement {
226
+ }
227
+ var HTMLRecipeButtonElement: {
228
+ prototype: HTMLRecipeButtonElement;
229
+ new (): HTMLRecipeButtonElement;
230
+ };
231
+ interface HTMLRecipeCardElementEventMap {
232
+ "favoriteToggle": { id: string };
233
+ "recipeClick": { id: string };
234
+ "add-to-planner": PlannerEvent;
235
+ }
236
+ interface HTMLRecipeCardElement extends Components.RecipeCard, HTMLStencilElement {
237
+ addEventListener<K extends keyof HTMLRecipeCardElementEventMap>(type: K, listener: (this: HTMLRecipeCardElement, ev: RecipeCardCustomEvent<HTMLRecipeCardElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
238
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
239
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
240
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
241
+ removeEventListener<K extends keyof HTMLRecipeCardElementEventMap>(type: K, listener: (this: HTMLRecipeCardElement, ev: RecipeCardCustomEvent<HTMLRecipeCardElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
242
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
243
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
244
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
245
+ }
246
+ var HTMLRecipeCardElement: {
247
+ prototype: HTMLRecipeCardElement;
248
+ new (): HTMLRecipeCardElement;
249
+ };
250
+ interface HTMLRecipeFormSectionElement extends Components.RecipeFormSection, HTMLStencilElement {
251
+ }
252
+ var HTMLRecipeFormSectionElement: {
253
+ prototype: HTMLRecipeFormSectionElement;
254
+ new (): HTMLRecipeFormSectionElement;
255
+ };
256
+ interface HTMLRecipeInputElement extends Components.RecipeInput, HTMLStencilElement {
257
+ }
258
+ var HTMLRecipeInputElement: {
259
+ prototype: HTMLRecipeInputElement;
260
+ new (): HTMLRecipeInputElement;
261
+ };
262
+ interface HTMLRecipeNavbarElement extends Components.RecipeNavbar, HTMLStencilElement {
263
+ }
264
+ var HTMLRecipeNavbarElement: {
265
+ prototype: HTMLRecipeNavbarElement;
266
+ new (): HTMLRecipeNavbarElement;
267
+ };
268
+ interface HTMLRecipeTextareaElement extends Components.RecipeTextarea, HTMLStencilElement {
269
+ }
270
+ var HTMLRecipeTextareaElement: {
271
+ prototype: HTMLRecipeTextareaElement;
272
+ new (): HTMLRecipeTextareaElement;
273
+ };
274
+ interface HTMLSearchFoodElementEventMap {
275
+ "searchSubmit": string;
276
+ "searchClear": void;
277
+ }
278
+ interface HTMLSearchFoodElement extends Components.SearchFood, HTMLStencilElement {
279
+ addEventListener<K extends keyof HTMLSearchFoodElementEventMap>(type: K, listener: (this: HTMLSearchFoodElement, ev: SearchFoodCustomEvent<HTMLSearchFoodElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
280
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
281
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
282
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
283
+ removeEventListener<K extends keyof HTMLSearchFoodElementEventMap>(type: K, listener: (this: HTMLSearchFoodElement, ev: SearchFoodCustomEvent<HTMLSearchFoodElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
284
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
285
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
286
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
287
+ }
288
+ var HTMLSearchFoodElement: {
289
+ prototype: HTMLSearchFoodElement;
290
+ new (): HTMLSearchFoodElement;
291
+ };
292
+ interface HTMLElementTagNameMap {
293
+ "my-component": HTMLMyComponentElement;
294
+ "no-recipe-found": HTMLNoRecipeFoundElement;
295
+ "recipe-browser": HTMLRecipeBrowserElement;
296
+ "recipe-button": HTMLRecipeButtonElement;
297
+ "recipe-card": HTMLRecipeCardElement;
298
+ "recipe-form-section": HTMLRecipeFormSectionElement;
299
+ "recipe-input": HTMLRecipeInputElement;
300
+ "recipe-navbar": HTMLRecipeNavbarElement;
301
+ "recipe-textarea": HTMLRecipeTextareaElement;
302
+ "search-food": HTMLSearchFoodElement;
303
+ }
304
+ }
305
+ declare namespace LocalJSX {
306
+ type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K]?: never };
307
+
308
+ interface MyComponent {
309
+ /**
310
+ * The first name
311
+ */
312
+ "first"?: string;
313
+ /**
314
+ * The last name
315
+ */
316
+ "last"?: string;
317
+ /**
318
+ * The middle name
319
+ */
320
+ "middle"?: string;
321
+ }
322
+ interface NoRecipeFound {
323
+ /**
324
+ * @default 'Clear Search'
325
+ */
326
+ "buttonText"?: string;
327
+ /**
328
+ * @default 'No Recipes Found'
329
+ */
330
+ "header"?: string;
331
+ /**
332
+ * @default 'We couldn’t find any recipes matching your search. Try a different recipe, category, cuisine, or ingredient.'
333
+ */
334
+ "message"?: string;
335
+ "onClear"?: (event: NoRecipeFoundCustomEvent<void>) => void;
336
+ }
337
+ interface RecipeBrowser {
338
+ /**
339
+ * @default []
340
+ */
341
+ "areas"?: string[];
342
+ /**
343
+ * @default []
344
+ */
345
+ "categories"?: string[];
346
+ /**
347
+ * @default []
348
+ */
349
+ "ingredients"?: string[];
350
+ "onBrowseChange"?: (event: RecipeBrowserCustomEvent<RecipeBrowseEvent>) => void;
351
+ "onBrowseClear"?: (event: RecipeBrowserCustomEvent<void>) => void;
352
+ /**
353
+ * @default ''
354
+ */
355
+ "selectedArea"?: string;
356
+ /**
357
+ * @default ''
358
+ */
359
+ "selectedCategory"?: string;
360
+ /**
361
+ * @default ''
362
+ */
363
+ "selectedIngredient"?: string;
364
+ }
365
+ interface RecipeButton {
366
+ /**
367
+ * @default false
368
+ */
369
+ "disabled"?: boolean;
370
+ /**
371
+ * @default 'button'
372
+ */
373
+ "type"?: 'button' | 'submit';
374
+ /**
375
+ * @default 'primary'
376
+ */
377
+ "variant"?: 'primary' | 'secondary';
378
+ }
379
+ interface RecipeCard {
380
+ /**
381
+ * @default ''
382
+ */
383
+ "category"?: string;
384
+ /**
385
+ * @default ''
386
+ */
387
+ "cuisine"?: string;
388
+ /**
389
+ * @default false
390
+ */
391
+ "favorite"?: boolean;
392
+ /**
393
+ * @default ''
394
+ */
395
+ "image"?: string;
396
+ "onAdd-to-planner"?: (event: RecipeCardCustomEvent<PlannerEvent>) => void;
397
+ "onFavoriteToggle"?: (event: RecipeCardCustomEvent<{ id: string }>) => void;
398
+ "onRecipeClick"?: (event: RecipeCardCustomEvent<{ id: string }>) => void;
399
+ /**
400
+ * @default ''
401
+ */
402
+ "recipeId"?: string;
403
+ /**
404
+ * @default ''
405
+ */
406
+ "recipeTitle"?: string;
407
+ }
408
+ interface RecipeFormSection {
409
+ "description": string;
410
+ "formTitle": string;
411
+ "number": string;
412
+ }
413
+ interface RecipeInput {
414
+ /**
415
+ * @default ''
416
+ */
417
+ "helper"?: string;
418
+ "label": string;
419
+ "name": string;
420
+ /**
421
+ * @default ''
422
+ */
423
+ "placeholder"?: string;
424
+ /**
425
+ * @default false
426
+ */
427
+ "required"?: boolean;
428
+ /**
429
+ * @default 'text'
430
+ */
431
+ "type"?: string;
432
+ /**
433
+ * @default ''
434
+ */
435
+ "value"?: string;
436
+ }
437
+ interface RecipeNavbar {
438
+ /**
439
+ * @default ''
440
+ */
441
+ "currentPage"?: string;
442
+ }
443
+ interface RecipeTextarea {
444
+ "label": string;
445
+ "name": string;
446
+ /**
447
+ * @default ''
448
+ */
449
+ "placeholder"?: string;
450
+ /**
451
+ * @default false
452
+ */
453
+ "required"?: boolean;
454
+ /**
455
+ * @default 5
456
+ */
457
+ "rows"?: number;
458
+ /**
459
+ * @default ''
460
+ */
461
+ "value"?: string;
462
+ }
463
+ interface SearchFood {
464
+ "onSearchClear"?: (event: SearchFoodCustomEvent<void>) => void;
465
+ "onSearchSubmit"?: (event: SearchFoodCustomEvent<string>) => void;
466
+ /**
467
+ * @default ''
468
+ */
469
+ "search"?: string;
470
+ }
471
+
472
+ interface MyComponentAttributes {
473
+ "first": string;
474
+ "middle": string;
475
+ "last": string;
476
+ }
477
+ interface NoRecipeFoundAttributes {
478
+ "header": string;
479
+ "message": string;
480
+ "buttonText": string;
481
+ }
482
+ interface RecipeBrowserAttributes {
483
+ "selectedCategory": string;
484
+ "selectedArea": string;
485
+ "selectedIngredient": string;
486
+ }
487
+ interface RecipeButtonAttributes {
488
+ "variant": 'primary' | 'secondary';
489
+ "type": 'button' | 'submit';
490
+ "disabled": boolean;
491
+ }
492
+ interface RecipeCardAttributes {
493
+ "recipeId": string;
494
+ "recipeTitle": string;
495
+ "image": string;
496
+ "category": string;
497
+ "cuisine": string;
498
+ "favorite": boolean;
499
+ }
500
+ interface RecipeFormSectionAttributes {
501
+ "number": string;
502
+ "formTitle": string;
503
+ "description": string;
504
+ }
505
+ interface RecipeInputAttributes {
506
+ "label": string;
507
+ "name": string;
508
+ "type": string;
509
+ "placeholder": string;
510
+ "value": string;
511
+ "required": boolean;
512
+ "helper": string;
513
+ }
514
+ interface RecipeNavbarAttributes {
515
+ "currentPage": string;
516
+ }
517
+ interface RecipeTextareaAttributes {
518
+ "label": string;
519
+ "name": string;
520
+ "rows": number;
521
+ "placeholder": string;
522
+ "value": string;
523
+ "required": boolean;
524
+ }
525
+ interface SearchFoodAttributes {
526
+ "search": string;
527
+ }
528
+
529
+ interface IntrinsicElements {
530
+ "my-component": Omit<MyComponent, keyof MyComponentAttributes> & { [K in keyof MyComponent & keyof MyComponentAttributes]?: MyComponent[K] } & { [K in keyof MyComponent & keyof MyComponentAttributes as `attr:${K}`]?: MyComponentAttributes[K] } & { [K in keyof MyComponent & keyof MyComponentAttributes as `prop:${K}`]?: MyComponent[K] };
531
+ "no-recipe-found": Omit<NoRecipeFound, keyof NoRecipeFoundAttributes> & { [K in keyof NoRecipeFound & keyof NoRecipeFoundAttributes]?: NoRecipeFound[K] } & { [K in keyof NoRecipeFound & keyof NoRecipeFoundAttributes as `attr:${K}`]?: NoRecipeFoundAttributes[K] } & { [K in keyof NoRecipeFound & keyof NoRecipeFoundAttributes as `prop:${K}`]?: NoRecipeFound[K] };
532
+ "recipe-browser": Omit<RecipeBrowser, keyof RecipeBrowserAttributes> & { [K in keyof RecipeBrowser & keyof RecipeBrowserAttributes]?: RecipeBrowser[K] } & { [K in keyof RecipeBrowser & keyof RecipeBrowserAttributes as `attr:${K}`]?: RecipeBrowserAttributes[K] } & { [K in keyof RecipeBrowser & keyof RecipeBrowserAttributes as `prop:${K}`]?: RecipeBrowser[K] };
533
+ "recipe-button": Omit<RecipeButton, keyof RecipeButtonAttributes> & { [K in keyof RecipeButton & keyof RecipeButtonAttributes]?: RecipeButton[K] } & { [K in keyof RecipeButton & keyof RecipeButtonAttributes as `attr:${K}`]?: RecipeButtonAttributes[K] } & { [K in keyof RecipeButton & keyof RecipeButtonAttributes as `prop:${K}`]?: RecipeButton[K] };
534
+ "recipe-card": Omit<RecipeCard, keyof RecipeCardAttributes> & { [K in keyof RecipeCard & keyof RecipeCardAttributes]?: RecipeCard[K] } & { [K in keyof RecipeCard & keyof RecipeCardAttributes as `attr:${K}`]?: RecipeCardAttributes[K] } & { [K in keyof RecipeCard & keyof RecipeCardAttributes as `prop:${K}`]?: RecipeCard[K] };
535
+ "recipe-form-section": Omit<RecipeFormSection, keyof RecipeFormSectionAttributes> & { [K in keyof RecipeFormSection & keyof RecipeFormSectionAttributes]?: RecipeFormSection[K] } & { [K in keyof RecipeFormSection & keyof RecipeFormSectionAttributes as `attr:${K}`]?: RecipeFormSectionAttributes[K] } & { [K in keyof RecipeFormSection & keyof RecipeFormSectionAttributes as `prop:${K}`]?: RecipeFormSection[K] } & OneOf<"number", RecipeFormSection["number"], RecipeFormSectionAttributes["number"]> & OneOf<"formTitle", RecipeFormSection["formTitle"], RecipeFormSectionAttributes["formTitle"]> & OneOf<"description", RecipeFormSection["description"], RecipeFormSectionAttributes["description"]>;
536
+ "recipe-input": Omit<RecipeInput, keyof RecipeInputAttributes> & { [K in keyof RecipeInput & keyof RecipeInputAttributes]?: RecipeInput[K] } & { [K in keyof RecipeInput & keyof RecipeInputAttributes as `attr:${K}`]?: RecipeInputAttributes[K] } & { [K in keyof RecipeInput & keyof RecipeInputAttributes as `prop:${K}`]?: RecipeInput[K] } & OneOf<"label", RecipeInput["label"], RecipeInputAttributes["label"]> & OneOf<"name", RecipeInput["name"], RecipeInputAttributes["name"]>;
537
+ "recipe-navbar": Omit<RecipeNavbar, keyof RecipeNavbarAttributes> & { [K in keyof RecipeNavbar & keyof RecipeNavbarAttributes]?: RecipeNavbar[K] } & { [K in keyof RecipeNavbar & keyof RecipeNavbarAttributes as `attr:${K}`]?: RecipeNavbarAttributes[K] } & { [K in keyof RecipeNavbar & keyof RecipeNavbarAttributes as `prop:${K}`]?: RecipeNavbar[K] };
538
+ "recipe-textarea": Omit<RecipeTextarea, keyof RecipeTextareaAttributes> & { [K in keyof RecipeTextarea & keyof RecipeTextareaAttributes]?: RecipeTextarea[K] } & { [K in keyof RecipeTextarea & keyof RecipeTextareaAttributes as `attr:${K}`]?: RecipeTextareaAttributes[K] } & { [K in keyof RecipeTextarea & keyof RecipeTextareaAttributes as `prop:${K}`]?: RecipeTextarea[K] } & OneOf<"label", RecipeTextarea["label"], RecipeTextareaAttributes["label"]> & OneOf<"name", RecipeTextarea["name"], RecipeTextareaAttributes["name"]>;
539
+ "search-food": Omit<SearchFood, keyof SearchFoodAttributes> & { [K in keyof SearchFood & keyof SearchFoodAttributes]?: SearchFood[K] } & { [K in keyof SearchFood & keyof SearchFoodAttributes as `attr:${K}`]?: SearchFoodAttributes[K] } & { [K in keyof SearchFood & keyof SearchFoodAttributes as `prop:${K}`]?: SearchFood[K] };
540
+ }
541
+ }
542
+ export { LocalJSX as JSX };
543
+ declare module "@stencil/core" {
544
+ export namespace JSX {
545
+ interface IntrinsicElements {
546
+ "my-component": LocalJSX.IntrinsicElements["my-component"] & JSXBase.HTMLAttributes<HTMLMyComponentElement>;
547
+ "no-recipe-found": LocalJSX.IntrinsicElements["no-recipe-found"] & JSXBase.HTMLAttributes<HTMLNoRecipeFoundElement>;
548
+ "recipe-browser": LocalJSX.IntrinsicElements["recipe-browser"] & JSXBase.HTMLAttributes<HTMLRecipeBrowserElement>;
549
+ "recipe-button": LocalJSX.IntrinsicElements["recipe-button"] & JSXBase.HTMLAttributes<HTMLRecipeButtonElement>;
550
+ "recipe-card": LocalJSX.IntrinsicElements["recipe-card"] & JSXBase.HTMLAttributes<HTMLRecipeCardElement>;
551
+ "recipe-form-section": LocalJSX.IntrinsicElements["recipe-form-section"] & JSXBase.HTMLAttributes<HTMLRecipeFormSectionElement>;
552
+ "recipe-input": LocalJSX.IntrinsicElements["recipe-input"] & JSXBase.HTMLAttributes<HTMLRecipeInputElement>;
553
+ "recipe-navbar": LocalJSX.IntrinsicElements["recipe-navbar"] & JSXBase.HTMLAttributes<HTMLRecipeNavbarElement>;
554
+ "recipe-textarea": LocalJSX.IntrinsicElements["recipe-textarea"] & JSXBase.HTMLAttributes<HTMLRecipeTextareaElement>;
555
+ "search-food": LocalJSX.IntrinsicElements["search-food"] & JSXBase.HTMLAttributes<HTMLSearchFoodElement>;
556
+ }
557
+ }
558
+ }