@viur/shop-components 0.0.1-dev.6 → 0.0.1-dev.61

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 (131) hide show
  1. package/.editorconfig +16 -0
  2. package/.github/workflows/npm-publish.yml +42 -0
  3. package/.gitmodules +3 -0
  4. package/LICENSE +21 -0
  5. package/README.md +13 -2
  6. package/old/client/HttpClient.js +111 -0
  7. package/old/client/ViURShopClient.js +472 -0
  8. package/old/client/index.js +23 -0
  9. package/old/client/types.js +10 -0
  10. package/old/components/ExampleUsage.vue +95 -0
  11. package/old/components/ShopCart.vue +91 -0
  12. package/old/components/ShopOrderComplete.vue +73 -0
  13. package/old/components/ShopOrderConfirm.vue +311 -0
  14. package/old/components/ShopOrderStepper.vue +352 -0
  15. package/old/components/ShopPaymentProvider.vue +113 -0
  16. package/old/components/ShopShippingMethod.vue +52 -0
  17. package/old/components/ShopSummary.vue +138 -0
  18. package/old/components/ShopUserData.vue +218 -0
  19. package/old/components/cart/CartLeaf.vue +277 -0
  20. package/old/components/cart/CartLeafModel.vue +312 -0
  21. package/old/components/cart/CartNode.vue +26 -0
  22. package/old/components/cart/CartTree.vue +67 -0
  23. package/old/components/cart/CartTreeWrapper.vue +73 -0
  24. package/old/components/cart/CartView.vue +82 -0
  25. package/old/components/cart/Discount.vue +91 -0
  26. package/old/components/generic/loadinghandler.vue +76 -0
  27. package/old/components/paymentProvider/paypalplus.vue +0 -0
  28. package/old/components/paymentProvider/prepayment.vue +0 -0
  29. package/old/components/paymentProvider/unzerPayment.vue +140 -0
  30. package/old/components/simple/ShopUserData.vue +161 -0
  31. package/old/components/simple/SimpleDefaultLayout.vue +116 -0
  32. package/old/components/ui/generic/CardSelector.vue +52 -0
  33. package/old/components/ui/generic/CartList.vue +69 -0
  34. package/old/components/ui/generic/ShippingInfo.vue +56 -0
  35. package/old/components/ui/generic/ShopPriceFormatter.vue +41 -0
  36. package/old/components/ui/generic/alerts/ShopAlert.vue +30 -0
  37. package/old/components/ui/payment/PaymentOption.vue +79 -0
  38. package/old/components/ui/payment/PaymentSelector.vue +158 -0
  39. package/old/components/ui/stepper/StepperItem.vue +90 -0
  40. package/old/components/ui/stepper/StepperTab.vue +161 -0
  41. package/old/components/ui/stepper/StepperTrigger.vue +69 -0
  42. package/old/components/ui/userdata/AddForm.vue +160 -0
  43. package/old/components/ui/userdata/AddressBox.vue +137 -0
  44. package/old/components/ui/userdata/BaseLayout.vue +77 -0
  45. package/old/components/ui/userdata/CustomBooleanBone.vue +58 -0
  46. package/old/components/ui/userdata/CustomSelectBone.vue +91 -0
  47. package/old/components/ui/userdata/CustomStringBone.vue +71 -0
  48. package/old/components/ui/userdata/DefaultLayout.vue +126 -0
  49. package/old/components/ui/userdata/SelectAddress.vue +21 -0
  50. package/old/components/ui/userdata/multi/ActionBar.vue +38 -0
  51. package/old/components/ui/userdata/multi/CartSelection.vue +42 -0
  52. package/old/ignite/.editorconfig +20 -0
  53. package/old/ignite/.github/workflows/ignite.yml +64 -0
  54. package/old/ignite/.github/workflows/node.yml +30 -0
  55. package/old/ignite/.postcssrc.cjs +25 -0
  56. package/old/ignite/CHANGELOG.md +244 -0
  57. package/old/ignite/LICENSE +21 -0
  58. package/old/ignite/README.md +92 -0
  59. package/old/ignite/dist/ignite.css +2019 -0
  60. package/old/ignite/dist/ignite.min.css +4 -0
  61. package/old/ignite/foundation/basic.css +371 -0
  62. package/old/ignite/foundation/color.css +323 -0
  63. package/old/ignite/foundation/config.css +188 -0
  64. package/old/ignite/foundation/grid.css +78 -0
  65. package/old/ignite/foundation/mediaqueries.css +71 -0
  66. package/old/ignite/foundation/reset.css +261 -0
  67. package/old/ignite/ignite.css +29 -0
  68. package/old/ignite/ignite.css.map +1 -0
  69. package/old/ignite/package-lock.json +5530 -0
  70. package/old/ignite/package.json +58 -0
  71. package/old/ignite/shoelace.css +19 -0
  72. package/old/ignite/themes/dark.css +12 -0
  73. package/old/ignite/themes/light.css +11 -0
  74. package/old/ignite/utilities/shoelace.css +537 -0
  75. package/old/ignite/utilities/utilities.css +24 -0
  76. package/old/stores/address.js +122 -0
  77. package/old/stores/cart.js +266 -0
  78. package/old/stores/message.js +21 -0
  79. package/old/stores/order.js +202 -0
  80. package/old/stores/payment.js +79 -0
  81. package/old/stores/shipping.js +78 -0
  82. package/package.json +23 -23
  83. package/src/Shop.vue +212 -0
  84. package/src/ShopOrderStepper.vue +89 -0
  85. package/src/ShopSummary.vue +170 -0
  86. package/src/Steps/ShopCart.vue +60 -0
  87. package/src/Steps/ShopOrderComplete.vue +24 -0
  88. package/src/Steps/ShopOrderConfirm.vue +295 -0
  89. package/src/Steps/ShopPaymentProvider.vue +53 -0
  90. package/src/Steps/ShopShippingMethod.vue +53 -0
  91. package/src/Steps/ShopUserDataGuest.vue +78 -0
  92. package/src/Steps/index.js +15 -0
  93. package/src/components/AddressForm.vue +84 -0
  94. package/src/components/AddressFormLayout.vue +107 -0
  95. package/src/components/CardSelector.vue +68 -0
  96. package/src/components/CartItem.vue +325 -0
  97. package/src/components/CartItemSmall.vue +257 -0
  98. package/src/components/LoadingHandler.vue +76 -0
  99. package/src/components/PaymentOption.vue +78 -0
  100. package/src/components/PaymentProviderUnzer.vue +201 -0
  101. package/src/components/PaymentSelector.vue +55 -0
  102. package/src/components/ShopAlert.vue +30 -0
  103. package/src/components/StepperTab.vue +132 -0
  104. package/src/components/dialogButton.vue +49 -0
  105. package/src/composables/address.js +95 -0
  106. package/src/composables/cart.js +132 -0
  107. package/src/composables/order.js +80 -0
  108. package/src/composables/payment.js +75 -0
  109. package/src/composables/shipping.js +32 -0
  110. package/src/main.js +44 -0
  111. package/src/shop.js +251 -0
  112. package/src/translations/de.js +15 -0
  113. package/src/translations/en.js +5 -0
  114. package/src/utils.js +49 -0
  115. package/vite.config.js +51 -0
  116. package/src/components/cart/CartView.vue +0 -692
  117. package/src/components/cart/ConfirmView.vue +0 -314
  118. package/src/components/order/category/CategoryList.vue +0 -83
  119. package/src/components/order/category/CategoryView.vue +0 -143
  120. package/src/components/order/information/UserInfoMulti.vue +0 -427
  121. package/src/components/order/information/UserInformation.vue +0 -332
  122. package/src/components/order/information/adress/ShippingAdress.vue +0 -143
  123. package/src/components/order/item/ItemCard.vue +0 -168
  124. package/src/components/order/item/ItemView.vue +0 -233
  125. package/src/components/order/process/ExampleUsage.vue +0 -100
  126. package/src/components/order/process/OrderComplete.vue +0 -41
  127. package/src/components/order/process/OrderTabHeader.vue +0 -7
  128. package/src/components/order/process/OrderView.vue +0 -210
  129. package/src/router/index.js +0 -103
  130. package/src/stores/cart.js +0 -111
  131. package/src/views/ViewMissing.vue +0 -20
@@ -0,0 +1,218 @@
1
+ <template>
2
+ <shop-alert
3
+ v-if="state.alert.show"
4
+ :variant="state.alert.variant"
5
+ :iconName="state.alert.iconName"
6
+ @on-hide="resetAlert()"
7
+ >
8
+ <template #alertMsg> {{ state.alert.msg }} </template>
9
+ </shop-alert>
10
+
11
+ <div class="viur-shop-multi-address-wrap">
12
+ <div class="viur-shop-multi-adress-box" v-for="n in state.amount" :key="n">
13
+ <BaseLayout
14
+ :customer="state.customer"
15
+ :custom-address="!addressStore.state.clone"
16
+ @valid="emit('valid', $event)"
17
+ >
18
+ <!-- <template #cart-selection v-if="multiMode">
19
+ <CartSelection
20
+ :carts="reduce(carts, n)"
21
+ @cart-selected="onCartSelect($event, n)"
22
+ >
23
+ </CartSelection>
24
+ </template> -->
25
+
26
+ <template #billing-address v-if="state.billingList.length <= 1">
27
+ <AddForm
28
+ :customer="state.customer"
29
+ :layout="layout"
30
+ v-model="addressStore.state.active.billing"
31
+ @add-success="state.alert = $event"
32
+ @valid="emit('valid', $event)"
33
+ >
34
+ </AddForm>
35
+ </template>
36
+
37
+ <template #shipping-address v-if="state.shippingList.length <= 1">
38
+ <AddForm
39
+ :customer="state.customer"
40
+ :type="'shipping'"
41
+ :layout="layout"
42
+ v-model="addressStore.state.active.shipping"
43
+ @add-success="state.alert = $event"
44
+ @valid="emit('valid', $event)"
45
+ >
46
+ </AddForm>
47
+ </template>
48
+
49
+ <template #mode-switch>
50
+ <sl-checkbox
51
+ :checked="addressStore.state.clone"
52
+ class="viur-shop-form-bill-check"
53
+ v-html="$t('viur.shop.userdata.shipping_to_billaddress')"
54
+ @sl-change="onCustomShipping"
55
+ >
56
+ </sl-checkbox>
57
+ </template>
58
+ </BaseLayout>
59
+ </div>
60
+
61
+ <!-- <ActionBar
62
+ @on-address-add="addAddress"
63
+ @on-address-remove="removeAddress"
64
+ v-if="multiMode"
65
+ >
66
+ </ActionBar> -->
67
+ </div>
68
+ </template>
69
+
70
+ <script setup>
71
+ // Functions
72
+ import { ref, reactive, computed, onBeforeMount, watch } from "vue";
73
+
74
+ // Stores
75
+ import { useCartStore } from "../stores/cart";
76
+ import { useAddressStore } from "../stores/address";
77
+
78
+ // Components
79
+ import CartSelection from "./ui/userdata/multi/CartSelection.vue";
80
+ import AddForm from "./ui/userdata/AddForm.vue";
81
+ import ActionBar from "./ui/userdata/multi/ActionBar.vue";
82
+ import ShopAlert from "./ui/generic/alerts/ShopAlert.vue";
83
+ import BaseLayout from "./ui/userdata/BaseLayout.vue";
84
+
85
+ const emit = defineEmits(["valid"]);
86
+
87
+ const props = defineProps({
88
+ multiMode: {
89
+ type: Boolean,
90
+ default: true,
91
+ },
92
+ layout: {
93
+ default: null,
94
+ },
95
+ });
96
+
97
+ const cartStore = useCartStore();
98
+ const addressStore = useAddressStore();
99
+
100
+ const state = reactive({
101
+ selection: {},
102
+ customer: computed(() => cartStore.state.customer),
103
+ alert: {
104
+ show: false,
105
+ msg: "",
106
+ variant: "",
107
+ iconName: "",
108
+ },
109
+ amount: 1,
110
+ maxAmount: computed(() => {
111
+ return state.remainingCarts.length;
112
+ }),
113
+ remainingCarts: computed(() => {
114
+ const r = carts.value.filter((cart) => {
115
+ return !selection().includes(cart.key);
116
+ });
117
+ return r;
118
+ }),
119
+ customAddress: {},
120
+ billingList: computed(() => addressStore.getList()),
121
+ shippingList: computed(() => addressStore.getList("shipping")),
122
+ });
123
+
124
+ const carts = ref(
125
+ cartStore.state.childrenByNode?.[cartStore.state.basket.key]
126
+ ? cartStore.state.childrenByNode?.[cartStore.state.basket.key].filter(
127
+ (cart) => cart.skel_type === "node",
128
+ )
129
+ : [
130
+ { name: "Warenkorb1", key: "213123123123" },
131
+ { name: "Warenkorb2", key: "2131231232131233123" },
132
+ ],
133
+ );
134
+
135
+ function selection() {
136
+ let result = [];
137
+ Object.values(state.selection).forEach((selection) => {
138
+ result.push(...selection);
139
+ });
140
+ return result;
141
+ }
142
+
143
+ function onCartSelect(e, grp) {
144
+ state.selection["grp" + grp] = e;
145
+ }
146
+
147
+ function resetAlert() {
148
+ state.alert.show = false;
149
+ state.alert.msg = "";
150
+ state.alert.variant = "";
151
+ state.alert.iconName = "";
152
+ }
153
+
154
+ function addAddress() {
155
+ if (state.maxAmount > 0) state.amount += 1;
156
+ else {
157
+ state.alert.variant = "danger";
158
+ state.alert.show = true;
159
+ state.alert.iconName = "exclamation-octagon";
160
+ state.alert.msg =
161
+ "Keine weiteren Warenkörbe zum zuweisen von Adressen vorhanden.";
162
+ }
163
+ }
164
+
165
+ function removeAddress() {
166
+ if (state.amount === 1) {
167
+ state.alert.variant = "danger";
168
+ state.alert.show = true;
169
+ state.alert.iconName = "exclamation-octagon";
170
+ state.alert.msg = "Mindestens eine Adresse muss angegeben werden.";
171
+ return;
172
+ }
173
+ if (Object.keys(state.selection).includes("grp" + state.amount)) {
174
+ delete state.selection["grp" + state.amount];
175
+ }
176
+ if (Object.keys(state.customAddress).includes("grp" + state.amount)) {
177
+ delete state.customAddress["grp" + state.amount];
178
+ }
179
+ state.amount -= 1;
180
+ }
181
+
182
+ function reduce(arr, grp) {
183
+ let result = [];
184
+ let temp = [];
185
+
186
+ Object.entries(state.selection).forEach(([key, value]) => {
187
+ if (key === "grp" + grp) return;
188
+ temp.push(...value);
189
+ });
190
+
191
+ result = arr.filter((item) => !temp.includes(item.key));
192
+ return result;
193
+ }
194
+
195
+ function onCustomShipping(e, grp) {
196
+ // state.customAddress["grp" + grp] = e.target.checked;
197
+ addressStore.state.clone = e.target.checked;
198
+ }
199
+
200
+ onBeforeMount(() => {});
201
+ </script>
202
+
203
+ <style scoped>
204
+ .viur-shop-form-bill-check {
205
+ margin: var(--sl-spacing-medium) 0;
206
+ }
207
+
208
+ .viur-shop-custom-billing-address-wrap {
209
+ display: flex;
210
+ flex-direction: row;
211
+ }
212
+ .viur-shop-cart-address-wrap {
213
+ display: grid;
214
+ grid-template-columns: 1fr 1fr;
215
+ gap: var(--sl-spacing-x-large);
216
+ margin-bottom: var(--sl-spacing-x-large);
217
+ }
218
+ </style>
@@ -0,0 +1,277 @@
1
+ <template>
2
+ <!-- Debugging -->
3
+ <!-- <pre>{{ state.leaf.article.dest.key }}</pre>
4
+ <pre>{{ state.leaf.article.dest.article }}</pre> -->
5
+
6
+
7
+ <sl-card horizontal class="viur-shop-cart-leaf">
8
+ <img
9
+ class="viur-shop-cart-leaf-image"
10
+ slot="image"
11
+ :src="
12
+ getImage(
13
+ state.leaf.article.dest.shop_image
14
+ ? state.leaf.article.dest.shop_image
15
+ : undefined,
16
+ )
17
+ "
18
+ />
19
+ <h4
20
+ class="viur-shop-cart-leaf-headline headline"
21
+ v-html="state.leaf.article.dest.shop_name"
22
+ ></h4>
23
+ <h5 class="viur-shop-cart-leaf-artno">
24
+ {{ state.leaf.article.dest.shop_art_no_or_gtin }}
25
+ </h5>
26
+ <div
27
+ class="viur-shop-cart-leaf-description"
28
+ v-html="state.leaf.article.dest.shop_description"
29
+ ></div>
30
+ <div class="viur-shop-cart-leaf-quantity">
31
+ <sl-input
32
+ class="viur-shop-cart-leaf-value viur-shop-cart-leaf-value--quantity"
33
+ type="number"
34
+ label="Anzahl"
35
+ placeholder="Number"
36
+ min="0"
37
+ v-model="state.leaf.quantity"
38
+ @input="
39
+ updateItem(
40
+ state.leaf,
41
+ state.leaf.article.dest.key,
42
+ node,
43
+ state.leaf.quantity,
44
+ )
45
+ "
46
+ >
47
+ </sl-input>
48
+ </div>
49
+ <div class="viur-shop-cart-leaf-unitprice">
50
+ <div class="viur-shop-cart-leaf-label">Stückpreis</div>
51
+ <sl-format-number
52
+ class="viur-shop-cart-leaf-value viur-shop-cart-leaf-value--unitprice"
53
+ lang="de"
54
+ type="currency"
55
+ currency="EUR"
56
+ :value="leaf.shop_price_retail"
57
+ >
58
+ </sl-format-number>
59
+ </div>
60
+
61
+ <div class="viur-shop-cart-leaf-actions">
62
+ <!--<sl-button
63
+ size="small"
64
+ outline
65
+ class="viur-shop-cart-leaf-add-to-favourites-btn"
66
+ variant="primary"
67
+ title="Add to favourites"
68
+ >
69
+ <sl-icon name="heart" slot="prefix"></sl-icon>
70
+ </sl-button>-->
71
+ <sl-button
72
+ size="small"
73
+ outline
74
+ class="viur-shop-cart-leaf-delete-btn"
75
+ variant="default"
76
+ :title="$t('viur.shop.cart_leaf.delete')"
77
+ @click="removeItem(state.leaf, state.leaf.article.dest.key, node)"
78
+ >
79
+ <sl-icon name="trash" slot="prefix"></sl-icon>
80
+ </sl-button>
81
+ </div>
82
+
83
+ <div class="viur-shop-cart-leaf-price">
84
+ <div class="viur-shop-cart-leaf-label">Gesamtpreis</div>
85
+ <sl-format-number
86
+ class="viur-shop-cart-leaf-value viur-shop-cart-leaf-value--price"
87
+ lang="de"
88
+ type="currency"
89
+ currency="EUR"
90
+ :value="leaf.shop_price_retail * leaf.quantity"
91
+ >
92
+ </sl-format-number>
93
+ </div>
94
+ <!-- TODO: Some customer needs an availability indicator ("in stock" etc.) here -->
95
+ </sl-card>
96
+ </template>
97
+
98
+ <script setup>
99
+ import { computed, onBeforeMount, reactive } from "vue";
100
+ import { Request } from "@viur/vue-utils";
101
+ import ShopPriceFormatter from "../ui/generic/ShopPriceFormatter.vue";
102
+
103
+ const props = defineProps({
104
+ leaf: { type: Object, required: true },
105
+ node: { type: Object, required: true },
106
+ placeholder: { type: String, required: true },
107
+ });
108
+
109
+ const emit = defineEmits(["updateItem", "removeItem"]);
110
+
111
+ const state = reactive({
112
+ leaf: {},
113
+ });
114
+
115
+ function getImage(image) {
116
+ if (image !== undefined) return Request.downloadUrlFor(image);
117
+
118
+ return props.placeholder;
119
+ }
120
+
121
+ function updateItem(item, articleKey, node, quantity) {
122
+ emit("updateItem", {
123
+ item: item,
124
+ articleKey: articleKey,
125
+ node: node,
126
+ quantity: quantity,
127
+ });
128
+ }
129
+
130
+ function removeItem(item, articleKey, node) {
131
+ emit("removeItem", { item: item, articleKey: articleKey, node: node });
132
+ }
133
+
134
+ onBeforeMount(() => {
135
+ state.leaf = props.leaf;
136
+ });
137
+ </script>
138
+
139
+ <style scoped>
140
+ @layer foundation.shop {
141
+ .viur-shop-cart-leaf {
142
+ --shop-leaf-label-color: var(--ignt-color-primary);
143
+ --shop-leaf-label-font-weight: 600;
144
+ --shop-leaf-label-font-size: 1em;
145
+ --shop-leaf-price-font-size: 1em;
146
+ --shop-leaf-headline-font-size: 1.3em;
147
+
148
+ margin-bottom: var(--ignt-spacing-x-large);
149
+
150
+ &::part(base) {
151
+ display: flex;
152
+ position: relative;
153
+ }
154
+
155
+ &::part(header) {
156
+ border-bottom: none;
157
+ padding-top: 0;
158
+ padding-right: 0;
159
+ }
160
+
161
+ &::part(image) {
162
+ aspect-ratio: 1;
163
+ }
164
+
165
+ &::part(body) {
166
+ display: grid;
167
+ grid-template-columns: repeat(5, minmax(0, 1fr));
168
+ gap: var(--sl-spacing-medium);
169
+ padding: var(--sl-spacing-large);
170
+ height: 100%;
171
+ }
172
+
173
+ &::part(group) {
174
+ padding: 0;
175
+ }
176
+
177
+ @media (max-width: 600px) {
178
+ &::part(body) {
179
+ grid-template-columns: repeat(2, minmax(0, 1fr));
180
+ gap: var(--sl-spacing-medium);
181
+ padding: var(--sl-spacing-large);
182
+ height: 100%;
183
+ }
184
+
185
+ &::part(image) {
186
+ border-radius: var(--border-radius);
187
+ align-self: baseline;
188
+ }
189
+ }
190
+ }
191
+
192
+ .viur-shop-cart-leaf-image {
193
+ aspect-ratio: 1;
194
+ }
195
+
196
+ .viur-shop-cart-leaf-headline {
197
+ grid-column: 1 / span 4;
198
+ order: -2;
199
+ margin: 0;
200
+ font-size: var(--shop-leaf-headline-font-size);
201
+
202
+ @media (max-width: 600px) {
203
+ grid-column: 1 / span 2;
204
+ }
205
+ }
206
+
207
+ .viur-shop-cart-leaf-artno {
208
+ grid-column: 1 / span 5;
209
+ margin: 0;
210
+
211
+ @media (max-width: 600px) {
212
+ grid-column: 1 / span 2;
213
+ }
214
+ }
215
+
216
+ .viur-shop-cart-leaf-actions {
217
+ display: flex;
218
+ justify-content: start;
219
+ gap: var(--sl-spacing-x-small);
220
+
221
+ @media (min-width: 600px) {
222
+ grid-column: 5 / span 1;
223
+ order: -1;
224
+ justify-content: end;
225
+ align-items: end;
226
+ }
227
+ }
228
+
229
+ .viur-shop-cart-leaf-description {
230
+ grid-column: 1 / span 5;
231
+ margin-bottom: var(--ignt-spacing-small);
232
+ display: -webkit-box;
233
+ -webkit-line-clamp: 3;
234
+ -webkit-box-orient: vertical;
235
+ overflow: hidden;
236
+
237
+ &:deep(*) {
238
+ margin: 0;
239
+ }
240
+
241
+ @media (max-width: 600px) {
242
+ grid-column: span 2;
243
+ }
244
+
245
+ @media (max-width: 500px) {
246
+ display: none;
247
+ }
248
+ }
249
+
250
+ .viur-shop-cart-leaf-price {
251
+ align-self: flex-end;
252
+ text-align: right;
253
+ font-size: var(--shop-leaf-price-font-size);
254
+ }
255
+
256
+ .viur-shop-cart-leaf-quantity {
257
+ align-self: flex-end;
258
+ }
259
+
260
+ .viur-shop-cart-leaf-unitprice {
261
+ align-self: flex-end;
262
+
263
+ @media (max-width: 600px) {
264
+ text-align: right;
265
+ }
266
+ }
267
+
268
+ .viur-shop-cart-leaf-label,
269
+ .viur-shop-cart-leaf-value--quantity::part(form-control-label) {
270
+ color: var(--shop-leaf-label-color);
271
+ font-weight: var(--shop-leaf-label-font-weight);
272
+ font-size: var(--shop-leaf-label-font-size);
273
+ margin-bottom: var(--ignt-spacing-x-small);
274
+ }
275
+ }
276
+
277
+ </style>