@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,47 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .field {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 8px;
9
+ }
10
+
11
+ label {
12
+ color: #555555;
13
+ font-size: 16px;
14
+ font-weight: 700;
15
+ }
16
+
17
+ input {
18
+ width: 100%;
19
+ height: 44px;
20
+ padding: 12px 13px;
21
+ border: 1px solid #eeeeee;
22
+ border-radius: 10px;
23
+ outline: none;
24
+ background: #fafafa;
25
+ color: #333333;
26
+ font-family: Arial, sans-serif;
27
+ font-size: 14px;
28
+ box-sizing: border-box;
29
+ transition:
30
+ border-color 0.2s ease,
31
+ box-shadow 0.2s ease;
32
+ }
33
+
34
+ input:focus {
35
+ border-color: #f97316;
36
+ background: white;
37
+ box-shadow: 0 0 0 3px rgba(163, 111, 66, 0.08);
38
+ }
39
+
40
+ input::placeholder {
41
+ color: #bbb;
42
+ }
43
+
44
+ small {
45
+ color: #aaa;
46
+ font-size: 9px;
47
+ }
@@ -0,0 +1,167 @@
1
+ import { h } from "@stencil/core";
2
+ export class RecipeInput {
3
+ label;
4
+ name;
5
+ type = 'text';
6
+ placeholder = '';
7
+ value = '';
8
+ required = false;
9
+ helper = '';
10
+ render() {
11
+ return (h("div", { key: '70a6dc59dc7c4367c091fa1cb69a6f9ab7936108', class: "field" }, h("label", { key: '4ac58bf5d0570aeb26333b6056429dd90483fddc', htmlFor: this.name }, this.label, this.required ? ' *' : ''), h("input", { key: '1146d0d67f77e85ffb058d8c705c739e5f4d8765', id: this.name, name: this.name, type: this.type, placeholder: this.placeholder, value: this.value, required: this.required }), this.helper && h("small", { key: '1bfde2d7cbffdc08d8d97e011fc08e89619a6926' }, this.helper)));
12
+ }
13
+ static get is() { return "recipe-input"; }
14
+ static get encapsulation() { return "shadow"; }
15
+ static get originalStyleUrls() {
16
+ return {
17
+ "$": ["recipe-input.css"]
18
+ };
19
+ }
20
+ static get styleUrls() {
21
+ return {
22
+ "$": ["recipe-input.css"]
23
+ };
24
+ }
25
+ static get properties() {
26
+ return {
27
+ "label": {
28
+ "type": "string",
29
+ "mutable": false,
30
+ "complexType": {
31
+ "original": "string",
32
+ "resolved": "string",
33
+ "references": {}
34
+ },
35
+ "required": true,
36
+ "optional": false,
37
+ "docs": {
38
+ "tags": [],
39
+ "text": ""
40
+ },
41
+ "getter": false,
42
+ "setter": false,
43
+ "reflect": false,
44
+ "attribute": "label"
45
+ },
46
+ "name": {
47
+ "type": "string",
48
+ "mutable": false,
49
+ "complexType": {
50
+ "original": "string",
51
+ "resolved": "string",
52
+ "references": {}
53
+ },
54
+ "required": true,
55
+ "optional": false,
56
+ "docs": {
57
+ "tags": [],
58
+ "text": ""
59
+ },
60
+ "getter": false,
61
+ "setter": false,
62
+ "reflect": false,
63
+ "attribute": "name"
64
+ },
65
+ "type": {
66
+ "type": "string",
67
+ "mutable": false,
68
+ "complexType": {
69
+ "original": "string",
70
+ "resolved": "string",
71
+ "references": {}
72
+ },
73
+ "required": false,
74
+ "optional": false,
75
+ "docs": {
76
+ "tags": [],
77
+ "text": ""
78
+ },
79
+ "getter": false,
80
+ "setter": false,
81
+ "reflect": false,
82
+ "attribute": "type",
83
+ "defaultValue": "'text'"
84
+ },
85
+ "placeholder": {
86
+ "type": "string",
87
+ "mutable": false,
88
+ "complexType": {
89
+ "original": "string",
90
+ "resolved": "string",
91
+ "references": {}
92
+ },
93
+ "required": false,
94
+ "optional": false,
95
+ "docs": {
96
+ "tags": [],
97
+ "text": ""
98
+ },
99
+ "getter": false,
100
+ "setter": false,
101
+ "reflect": false,
102
+ "attribute": "placeholder",
103
+ "defaultValue": "''"
104
+ },
105
+ "value": {
106
+ "type": "string",
107
+ "mutable": false,
108
+ "complexType": {
109
+ "original": "string",
110
+ "resolved": "string",
111
+ "references": {}
112
+ },
113
+ "required": false,
114
+ "optional": false,
115
+ "docs": {
116
+ "tags": [],
117
+ "text": ""
118
+ },
119
+ "getter": false,
120
+ "setter": false,
121
+ "reflect": false,
122
+ "attribute": "value",
123
+ "defaultValue": "''"
124
+ },
125
+ "required": {
126
+ "type": "boolean",
127
+ "mutable": false,
128
+ "complexType": {
129
+ "original": "boolean",
130
+ "resolved": "boolean",
131
+ "references": {}
132
+ },
133
+ "required": false,
134
+ "optional": false,
135
+ "docs": {
136
+ "tags": [],
137
+ "text": ""
138
+ },
139
+ "getter": false,
140
+ "setter": false,
141
+ "reflect": false,
142
+ "attribute": "required",
143
+ "defaultValue": "false"
144
+ },
145
+ "helper": {
146
+ "type": "string",
147
+ "mutable": false,
148
+ "complexType": {
149
+ "original": "string",
150
+ "resolved": "string",
151
+ "references": {}
152
+ },
153
+ "required": false,
154
+ "optional": false,
155
+ "docs": {
156
+ "tags": [],
157
+ "text": ""
158
+ },
159
+ "getter": false,
160
+ "setter": false,
161
+ "reflect": false,
162
+ "attribute": "helper",
163
+ "defaultValue": "''"
164
+ }
165
+ };
166
+ }
167
+ }
@@ -0,0 +1,56 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .navbar {
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: space-between;
9
+ padding: 16px 40px;
10
+ background: #f97316;
11
+ border-bottom: 1px solid #e5e7eb;
12
+ }
13
+
14
+ .logo {
15
+ color: #ffffff;
16
+ text-decoration: none;
17
+ font-size: 28px;
18
+ font-weight: 700;
19
+ }
20
+
21
+ .nav-links {
22
+ display: flex;
23
+ align-items: center;
24
+ gap: 26px;
25
+ }
26
+
27
+ .nav-link {
28
+ color: #ffffff;
29
+ text-decoration: none;
30
+ font-size: 15px;
31
+ font-weight: 600;
32
+ transition: color 0.2s ease;
33
+ }
34
+
35
+ .nav-link:hover{
36
+ color: #f9b787;
37
+ }
38
+
39
+ @media (max-width: 700px) {
40
+ .navbar {
41
+ flex-direction: column;
42
+ gap: 15px;
43
+ padding: 15px 20px;
44
+ }
45
+
46
+ .logo {
47
+ font-size: 22px;
48
+ text-align: center;
49
+ }
50
+
51
+ .nav-links {
52
+ gap: 15px;
53
+ flex-wrap: wrap;
54
+ justify-content: center;
55
+ }
56
+ }
@@ -0,0 +1,55 @@
1
+ import { h } from "@stencil/core";
2
+ export class RecipeNavbar {
3
+ currentPage = '';
4
+ render() {
5
+ return (h("nav", { key: '566b7977eb5d49698529bb053851bfd00ae3e6b7', class: "navbar" }, h("a", { key: '0486dfb39ffe360a78251520ce19aeeb02f9cbe8', href: "/", class: "logo" }, "\uD83C\uDF74 Recipe Finder and Meal Planner"), h("div", { key: '3c08b289c5845dfe5845dae53e48736e04c98f73', class: "nav-links" }, h("a", { key: 'ca549a73243a753de94117ac0a4c1136ec43d4d3', href: "/", class: {
6
+ 'nav-link': true,
7
+ 'active': this.currentPage === 'home',
8
+ } }, "Home"), h("a", { key: 'd8fc2d2b873d7e7f1eb17e5f3e53a367811124ba', href: "/favorites", class: {
9
+ 'nav-link': true,
10
+ 'active': this.currentPage === 'favorites',
11
+ } }, "Favorites"), h("a", { key: 'de54d4a21354713ee67e5f28675d8046e8093c0c', href: "/meal-plan", class: {
12
+ 'nav-link': true,
13
+ 'active': this.currentPage === 'meal-plan',
14
+ } }, "Meal Planner"), h("a", { key: '98a0114e219316138f9968f9b9f462ab90dc2144', href: "/my-recipes", class: {
15
+ 'nav-link': true,
16
+ 'active': this.currentPage === 'my-recipes',
17
+ } }, "My Recipes"))));
18
+ }
19
+ static get is() { return "recipe-navbar"; }
20
+ static get encapsulation() { return "shadow"; }
21
+ static get originalStyleUrls() {
22
+ return {
23
+ "$": ["recipe-navbar.css"]
24
+ };
25
+ }
26
+ static get styleUrls() {
27
+ return {
28
+ "$": ["recipe-navbar.css"]
29
+ };
30
+ }
31
+ static get properties() {
32
+ return {
33
+ "currentPage": {
34
+ "type": "string",
35
+ "mutable": false,
36
+ "complexType": {
37
+ "original": "string",
38
+ "resolved": "string",
39
+ "references": {}
40
+ },
41
+ "required": false,
42
+ "optional": false,
43
+ "docs": {
44
+ "tags": [],
45
+ "text": ""
46
+ },
47
+ "getter": false,
48
+ "setter": false,
49
+ "reflect": false,
50
+ "attribute": "current-page",
51
+ "defaultValue": "''"
52
+ }
53
+ };
54
+ }
55
+ }
@@ -0,0 +1,43 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .field {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 8px;
9
+ }
10
+
11
+ label {
12
+ color: #555555;
13
+ font-size: 16px;
14
+ font-weight: 700;
15
+ }
16
+
17
+ textarea {
18
+ width: 100%;
19
+ padding: 12px 13px;
20
+ border: 1px solid #eeeeee;
21
+ border-radius: 10px;
22
+ outline: none;
23
+ background: #fafafa;
24
+ color: #333333;
25
+ font-family: Arial, sans-serif;
26
+ font-size: 14px;
27
+ line-height: 1.7;
28
+ resize: vertical;
29
+ box-sizing: border-box;
30
+ transition:
31
+ border-color 0.2s ease,
32
+ box-shadow 0.2s ease;
33
+ }
34
+
35
+ textarea:focus {
36
+ border-color: #f97316;
37
+ background: white;
38
+ box-shadow: 0 0 0 3px rgba(163, 111, 66, 0.08);
39
+ }
40
+
41
+ textarea::placeholder {
42
+ color: #bbb;
43
+ }
@@ -0,0 +1,146 @@
1
+ import { h } from "@stencil/core";
2
+ export class RecipeTextarea {
3
+ label;
4
+ name;
5
+ rows = 5;
6
+ placeholder = '';
7
+ value = '';
8
+ required = false;
9
+ render() {
10
+ return (h("div", { key: '65e2378ab0cd0e4d0b255aebf5db8f9dd9b7cd23', class: "field" }, h("label", { key: '1806eef424c6305fc8456a9bd3209ac2cd6ccae3', htmlFor: this.name }, this.label, this.required ? ' *' : ''), h("textarea", { key: 'dfa80a318722b204622fc7d0935cf8fb346e2bd0', id: this.name, name: this.name, rows: this.rows, placeholder: this.placeholder, required: this.required }, this.value)));
11
+ }
12
+ static get is() { return "recipe-textarea"; }
13
+ static get encapsulation() { return "shadow"; }
14
+ static get originalStyleUrls() {
15
+ return {
16
+ "$": ["recipe-textarea.css"]
17
+ };
18
+ }
19
+ static get styleUrls() {
20
+ return {
21
+ "$": ["recipe-textarea.css"]
22
+ };
23
+ }
24
+ static get properties() {
25
+ return {
26
+ "label": {
27
+ "type": "string",
28
+ "mutable": false,
29
+ "complexType": {
30
+ "original": "string",
31
+ "resolved": "string",
32
+ "references": {}
33
+ },
34
+ "required": true,
35
+ "optional": false,
36
+ "docs": {
37
+ "tags": [],
38
+ "text": ""
39
+ },
40
+ "getter": false,
41
+ "setter": false,
42
+ "reflect": false,
43
+ "attribute": "label"
44
+ },
45
+ "name": {
46
+ "type": "string",
47
+ "mutable": false,
48
+ "complexType": {
49
+ "original": "string",
50
+ "resolved": "string",
51
+ "references": {}
52
+ },
53
+ "required": true,
54
+ "optional": false,
55
+ "docs": {
56
+ "tags": [],
57
+ "text": ""
58
+ },
59
+ "getter": false,
60
+ "setter": false,
61
+ "reflect": false,
62
+ "attribute": "name"
63
+ },
64
+ "rows": {
65
+ "type": "number",
66
+ "mutable": false,
67
+ "complexType": {
68
+ "original": "number",
69
+ "resolved": "number",
70
+ "references": {}
71
+ },
72
+ "required": false,
73
+ "optional": false,
74
+ "docs": {
75
+ "tags": [],
76
+ "text": ""
77
+ },
78
+ "getter": false,
79
+ "setter": false,
80
+ "reflect": false,
81
+ "attribute": "rows",
82
+ "defaultValue": "5"
83
+ },
84
+ "placeholder": {
85
+ "type": "string",
86
+ "mutable": false,
87
+ "complexType": {
88
+ "original": "string",
89
+ "resolved": "string",
90
+ "references": {}
91
+ },
92
+ "required": false,
93
+ "optional": false,
94
+ "docs": {
95
+ "tags": [],
96
+ "text": ""
97
+ },
98
+ "getter": false,
99
+ "setter": false,
100
+ "reflect": false,
101
+ "attribute": "placeholder",
102
+ "defaultValue": "''"
103
+ },
104
+ "value": {
105
+ "type": "string",
106
+ "mutable": false,
107
+ "complexType": {
108
+ "original": "string",
109
+ "resolved": "string",
110
+ "references": {}
111
+ },
112
+ "required": false,
113
+ "optional": false,
114
+ "docs": {
115
+ "tags": [],
116
+ "text": ""
117
+ },
118
+ "getter": false,
119
+ "setter": false,
120
+ "reflect": false,
121
+ "attribute": "value",
122
+ "defaultValue": "''"
123
+ },
124
+ "required": {
125
+ "type": "boolean",
126
+ "mutable": false,
127
+ "complexType": {
128
+ "original": "boolean",
129
+ "resolved": "boolean",
130
+ "references": {}
131
+ },
132
+ "required": false,
133
+ "optional": false,
134
+ "docs": {
135
+ "tags": [],
136
+ "text": ""
137
+ },
138
+ "getter": false,
139
+ "setter": false,
140
+ "reflect": false,
141
+ "attribute": "required",
142
+ "defaultValue": "false"
143
+ }
144
+ };
145
+ }
146
+ }
@@ -0,0 +1,117 @@
1
+ :host {
2
+ display: block;
3
+ font-family: Arial, sans-serif;
4
+ }
5
+ .search-wrapper {
6
+ width: 100%;
7
+ display: flex;
8
+ justify-content: center;
9
+ box-sizing: border-box;
10
+ padding: 24px 16px;
11
+ }
12
+ .search-box {
13
+ width: 100%;
14
+ max-width: 700px;
15
+ display: flex;
16
+ align-items: center;
17
+ padding: 6px;
18
+ background: #ffffff;
19
+ border: 1px solid #d7d2cd;
20
+ border-radius: 14px;
21
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
22
+ transition:
23
+ border-color 0.2s ease,
24
+ box-shadow 0.2s ease;
25
+ }
26
+ .search-box:focus-within {
27
+ border-color: #e0700f;
28
+ box-shadow:
29
+ 0 0 0 3px rgba(163, 111, 66, 0.1),
30
+ 0 8px 24px rgba(0, 0, 0, 0.07);
31
+ }
32
+ .search-icon {
33
+ flex-shrink: 0;
34
+ margin-left: 12px;
35
+ margin-right: 8px;
36
+ font-size: 20px;
37
+ }
38
+ input {
39
+ flex: 1;
40
+ min-width: 0;
41
+ padding: 13px 8px;
42
+ border: none;
43
+ outline: none;
44
+ background: transparent;
45
+ color: #2c2c2c;
46
+ font-family: Arial, sans-serif;
47
+ font-size: 16px;
48
+ }
49
+ input::placeholder {
50
+ color: #b7bdca;
51
+ }
52
+ .clear-button {
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ width: 34px;
57
+ height: 34px;
58
+ padding: 0;
59
+ border: none;
60
+ border-radius: 50%;
61
+ background: transparent;
62
+ color: #999999;
63
+ font-family: Arial, sans-serif;
64
+ font-size: 24px;
65
+ cursor: pointer;
66
+ transition:
67
+ background-color 0.2s ease,
68
+ color 0.2s ease;
69
+ }
70
+ .clear-button:hover {
71
+ background: #f5f2ef;
72
+ color: #555555;
73
+ }
74
+ .search-button {
75
+ flex-shrink: 0;
76
+ padding: 12px 22px;
77
+ border: none;
78
+ border-radius: 10px;
79
+ background: #f97316;
80
+ color: #ffffff;
81
+ font-family: Arial, sans-serif;
82
+ font-size: 14px;
83
+ font-weight: 600;
84
+ cursor: pointer;
85
+ transition:
86
+ background-color 0.2s ease,
87
+ transform 0.2s ease;
88
+ }
89
+ .search-button:hover {
90
+ background: #f97316;
91
+ transform: translateY(-1px);
92
+ }
93
+ .search-button:active {
94
+ transform: translateY(0);
95
+ }
96
+ @media (max-width: 600px) {
97
+ .search-wrapper {
98
+ padding: 18px 12px;
99
+ }
100
+ .search-box {
101
+ border-radius: 12px;
102
+ }
103
+ input {
104
+ font-size: 14px;
105
+ }
106
+ .search-button {
107
+ padding: 11px 15px;
108
+ font-size: 13px;
109
+ }
110
+ }
111
+ @media (prefers-reduced-motion: reduce) {
112
+ .search-box,
113
+ .clear-button,
114
+ .search-button {
115
+ transition: none;
116
+ }
117
+ }