From f08771d2210d6adfb50afd6a777ca39068b30116 Mon Sep 17 00:00:00 2001 From: Philippe Torrel Date: Tue, 11 Aug 2026 10:04:41 +0200 Subject: [PATCH] --- 05_react/uebungen/u14_input-price.zip | Bin 0 -> 265855 bytes 05_react/uebungen/u14_input-price/.gitignore | 24 + .../uebungen/u14_input-price/.oxlintrc.json | 8 + 05_react/uebungen/u14_input-price/README.md | 16 + 05_react/uebungen/u14_input-price/index.html | 13 + .../u14_input-price/package-lock.json | 2131 ++++++++++++++++ .../uebungen/u14_input-price/package.json | 26 + .../u14_input-price/public/favicon.svg | 1 + .../uebungen/u14_input-price/public/icons.svg | 24 + 05_react/uebungen/u14_input-price/src/App.jsx | 31 + .../u14_input-price/src/assets/react.svg | 1 + .../u14_input-price/src/assets/vite.svg | 1 + .../src/components/inputs/InputPrice.jsx | 56 + .../uebungen/u14_input-price/src/main.jsx | 12 + .../src/styles/01_frameworks/_index.scss | 3 + .../bootstrap-5.3.8/_accordion.scss | 153 ++ .../01_frameworks/bootstrap-5.3.8/_alert.scss | 68 + .../01_frameworks/bootstrap-5.3.8/_badge.scss | 38 + .../bootstrap-5.3.8/_breadcrumb.scss | 40 + .../bootstrap-5.3.8/_button-group.scss | 147 ++ .../bootstrap-5.3.8/_buttons.scss | 216 ++ .../01_frameworks/bootstrap-5.3.8/_card.scss | 238 ++ .../bootstrap-5.3.8/_carousel.scss | 226 ++ .../01_frameworks/bootstrap-5.3.8/_close.scss | 66 + .../bootstrap-5.3.8/_containers.scss | 41 + .../bootstrap-5.3.8/_dropdown.scss | 250 ++ .../01_frameworks/bootstrap-5.3.8/_forms.scss | 9 + .../bootstrap-5.3.8/_functions.scss | 302 +++ .../01_frameworks/bootstrap-5.3.8/_grid.scss | 39 + .../bootstrap-5.3.8/_helpers.scss | 12 + .../bootstrap-5.3.8/_images.scss | 42 + .../bootstrap-5.3.8/_list-group.scss | 199 ++ .../01_frameworks/bootstrap-5.3.8/_maps.scss | 174 ++ .../bootstrap-5.3.8/_mixins.scss | 42 + .../01_frameworks/bootstrap-5.3.8/_modal.scss | 240 ++ .../01_frameworks/bootstrap-5.3.8/_nav.scss | 197 ++ .../bootstrap-5.3.8/_navbar.scss | 289 +++ .../bootstrap-5.3.8/_offcanvas.scss | 147 ++ .../bootstrap-5.3.8/_pagination.scss | 109 + .../bootstrap-5.3.8/_placeholders.scss | 51 + .../bootstrap-5.3.8/_popover.scss | 196 ++ .../bootstrap-5.3.8/_progress.scss | 68 + .../bootstrap-5.3.8/_reboot.scss | 617 +++++ .../01_frameworks/bootstrap-5.3.8/_root.scss | 187 ++ .../bootstrap-5.3.8/_spinners.scss | 86 + .../bootstrap-5.3.8/_tables.scss | 171 ++ .../bootstrap-5.3.8/_toasts.scss | 73 + .../bootstrap-5.3.8/_tooltip.scss | 119 + .../bootstrap-5.3.8/_transitions.scss | 27 + .../01_frameworks/bootstrap-5.3.8/_type.scss | 106 + .../bootstrap-5.3.8/_utilities.scss | 806 ++++++ .../bootstrap-5.3.8/_variables-dark.scss | 102 + .../bootstrap-5.3.8/_variables.scss | 1753 +++++++++++++ .../bootstrap-5.3.8/bootstrap-grid.scss | 62 + .../bootstrap-5.3.8/bootstrap-reboot.scss | 10 + .../bootstrap-5.3.8/bootstrap-utilities.scss | 19 + .../bootstrap-5.3.8/bootstrap.scss | 52 + .../forms/_floating-labels.scss | 97 + .../bootstrap-5.3.8/forms/_form-check.scss | 189 ++ .../bootstrap-5.3.8/forms/_form-control.scss | 214 ++ .../bootstrap-5.3.8/forms/_form-range.scss | 91 + .../bootstrap-5.3.8/forms/_form-select.scss | 80 + .../bootstrap-5.3.8/forms/_form-text.scss | 11 + .../bootstrap-5.3.8/forms/_input-group.scss | 132 + .../bootstrap-5.3.8/forms/_labels.scss | 36 + .../bootstrap-5.3.8/forms/_validation.scss | 12 + .../bootstrap-5.3.8/helpers/_clearfix.scss | 3 + .../bootstrap-5.3.8/helpers/_color-bg.scss | 7 + .../helpers/_colored-links.scss | 30 + .../bootstrap-5.3.8/helpers/_focus-ring.scss | 5 + .../bootstrap-5.3.8/helpers/_icon-link.scss | 25 + .../bootstrap-5.3.8/helpers/_position.scss | 36 + .../bootstrap-5.3.8/helpers/_ratio.scss | 26 + .../bootstrap-5.3.8/helpers/_stacks.scss | 15 + .../helpers/_stretched-link.scss | 15 + .../helpers/_text-truncation.scss | 7 + .../helpers/_visually-hidden.scss | 8 + .../bootstrap-5.3.8/helpers/_vr.scss | 8 + .../bootstrap-5.3.8/mixins/_alert.scss | 18 + .../bootstrap-5.3.8/mixins/_backdrop.scss | 14 + .../bootstrap-5.3.8/mixins/_banner.scss | 7 + .../mixins/_border-radius.scss | 78 + .../bootstrap-5.3.8/mixins/_box-shadow.scss | 24 + .../bootstrap-5.3.8/mixins/_breakpoints.scss | 127 + .../bootstrap-5.3.8/mixins/_buttons.scss | 70 + .../bootstrap-5.3.8/mixins/_caret.scss | 69 + .../bootstrap-5.3.8/mixins/_clearfix.scss | 9 + .../bootstrap-5.3.8/mixins/_color-mode.scss | 21 + .../bootstrap-5.3.8/mixins/_color-scheme.scss | 7 + .../bootstrap-5.3.8/mixins/_container.scss | 11 + .../bootstrap-5.3.8/mixins/_deprecate.scss | 10 + .../bootstrap-5.3.8/mixins/_forms.scss | 163 ++ .../bootstrap-5.3.8/mixins/_gradients.scss | 47 + .../bootstrap-5.3.8/mixins/_grid.scss | 151 ++ .../bootstrap-5.3.8/mixins/_image.scss | 16 + .../bootstrap-5.3.8/mixins/_list-group.scss | 26 + .../bootstrap-5.3.8/mixins/_lists.scss | 7 + .../bootstrap-5.3.8/mixins/_pagination.scss | 10 + .../bootstrap-5.3.8/mixins/_reset-text.scss | 17 + .../bootstrap-5.3.8/mixins/_resize.scss | 6 + .../mixins/_table-variants.scss | 24 + .../mixins/_text-truncate.scss | 8 + .../bootstrap-5.3.8/mixins/_transition.scss | 26 + .../bootstrap-5.3.8/mixins/_utilities.scss | 97 + .../mixins/_visually-hidden.scss | 38 + .../bootstrap-5.3.8/tests/jasmine.js | 16 + .../_auto-import-of-variables-dark.test.scss | 7 + .../tests/mixins/_box-shadow.test.scss | 188 ++ .../tests/mixins/_color-contrast.test.scss | 139 + .../tests/mixins/_color-modes.test.scss | 69 + .../_media-query-color-mode-full.test.scss | 8 + .../tests/mixins/_utilities.test.scss | 393 +++ .../tests/sass-true/register.js | 14 + .../bootstrap-5.3.8/tests/sass-true/runner.js | 17 + .../tests/utilities/_api.test.scss | 75 + .../bootstrap-5.3.8/utilities/_api.scss | 47 + .../bootstrap-5.3.8/vendor/_rfs.scss | 348 +++ .../01_frameworks/bulma-1.04/_index.scss | 10 + .../01_frameworks/bulma-1.04/base/_index.scss | 6 + .../bulma-1.04/base/animations.scss | 15 + .../bulma-1.04/base/generic.scss | 240 ++ .../bulma-1.04/base/minireset.scss | 92 + .../bulma-1.04/base/skeleton.scss | 114 + .../bulma-1.04/components/_index.scss | 13 + .../bulma-1.04/components/breadcrumb.scss | 139 + .../bulma-1.04/components/card.scss | 162 ++ .../bulma-1.04/components/dropdown.scss | 188 ++ .../bulma-1.04/components/menu.scss | 165 ++ .../bulma-1.04/components/message.scss | 183 ++ .../bulma-1.04/components/modal.scss | 164 ++ .../bulma-1.04/components/navbar.scss | 799 ++++++ .../bulma-1.04/components/pagination.scss | 379 +++ .../bulma-1.04/components/panel.scss | 218 ++ .../bulma-1.04/components/tabs.scss | 273 ++ .../bulma-1.04/elements/_index.scss | 16 + .../bulma-1.04/elements/block.scss | 6 + .../bulma-1.04/elements/box.scss | 59 + .../bulma-1.04/elements/button.scss | 659 +++++ .../bulma-1.04/elements/content.scss | 289 +++ .../bulma-1.04/elements/delete.scss | 6 + .../bulma-1.04/elements/icon.scss | 67 + .../bulma-1.04/elements/image.scss | 64 + .../bulma-1.04/elements/loader.scss | 15 + .../bulma-1.04/elements/notification.scss | 105 + .../bulma-1.04/elements/progress.scss | 115 + .../bulma-1.04/elements/table.scss | 261 ++ .../bulma-1.04/elements/tag.scss | 219 ++ .../bulma-1.04/elements/title.scss | 130 + .../01_frameworks/bulma-1.04/form/_index.scss | 9 + .../bulma-1.04/form/checkbox-radio.scss | 36 + .../01_frameworks/bulma-1.04/form/file.scss | 330 +++ .../bulma-1.04/form/input-textarea.scss | 115 + .../01_frameworks/bulma-1.04/form/select.scss | 144 ++ .../01_frameworks/bulma-1.04/form/shared.scss | 178 ++ .../01_frameworks/bulma-1.04/form/tools.scss | 352 +++ .../01_frameworks/bulma-1.04/grid/_index.scss | 5 + .../bulma-1.04/grid/columns.scss | 961 +++++++ .../01_frameworks/bulma-1.04/grid/grid.scss | 209 ++ .../bulma-1.04/helpers/_index.scss | 15 + .../bulma-1.04/helpers/aspect-ratio.scss | 12 + .../bulma-1.04/helpers/border.scss | 15 + .../bulma-1.04/helpers/color.scss | 344 +++ .../bulma-1.04/helpers/flexbox.scss | 62 + .../bulma-1.04/helpers/float.scss | 28 + .../01_frameworks/bulma-1.04/helpers/gap.scss | 24 + .../bulma-1.04/helpers/other.scss | 19 + .../bulma-1.04/helpers/overflow.scss | 21 + .../bulma-1.04/helpers/position.scss | 19 + .../bulma-1.04/helpers/spacing.scss | 64 + .../bulma-1.04/helpers/typography.scss | 174 ++ .../bulma-1.04/helpers/visibility.scss | 221 ++ .../bulma-1.04/layout/_index.scss | 9 + .../bulma-1.04/layout/container.scss | 59 + .../bulma-1.04/layout/footer.scss | 23 + .../01_frameworks/bulma-1.04/layout/hero.scss | 273 ++ .../bulma-1.04/layout/level.scss | 107 + .../bulma-1.04/layout/media.scss | 106 + .../bulma-1.04/layout/section.scss | 38 + .../bulma-1.04/themes/_index.scss | 36 + .../01_frameworks/bulma-1.04/themes/dark.scss | 57 + .../bulma-1.04/themes/light.scss | 147 ++ .../bulma-1.04/themes/setup.scss | 174 ++ .../bulma-1.04/utilities/_index.scss | 7 + .../bulma-1.04/utilities/controls.scss | 85 + .../bulma-1.04/utilities/css-variables.scss | 502 ++++ .../utilities/derived-variables.scss | 112 + .../bulma-1.04/utilities/extends.scss | 34 + .../bulma-1.04/utilities/functions.scss | 310 +++ .../utilities/initial-variables.scss | 157 ++ .../bulma-1.04/utilities/mixins.scss | 462 ++++ .../src/styles/02_fonts/_index.scss | 3 + .../02_fonts/_playfair-display-v40-latin.scss | 96 + .../02_fonts/_source-sans-3-v19-latin.scss | 134 + .../src/styles/03_base/_colors.scss | 12 + .../src/styles/03_base/_index.scss | 5 + .../src/styles/03_base/_theme.scss | 46 + .../src/styles/03_base/_typography.scss | 9 + .../src/styles/03_base/_utils.scss | 0 .../src/styles/03_base/_variables.scss | 0 .../src/styles/04_plugins/_index.scss | 4 + .../core/foundation/animations.scss | 9 + .../04_plugins/splide-4.1.4/core/index.scss | 3 + .../core/object/modifiers/draggable.scss | 8 + .../core/object/modifiers/fade.scss | 18 + .../core/object/modifiers/index.scss | 4 + .../core/object/modifiers/rtl.scss | 5 + .../core/object/modifiers/ttb.scss | 9 + .../core/object/objects/container.scss | 6 + .../core/object/objects/index.scss | 10 + .../core/object/objects/list.scss | 17 + .../core/object/objects/pagination.scss | 26 + .../core/object/objects/progress.scss | 7 + .../core/object/objects/root.scss | 9 + .../core/object/objects/slide.scss | 14 + .../core/object/objects/spinner.scss | 21 + .../splide-4.1.4/core/object/objects/sr.scss | 12 + .../core/object/objects/toggle.scss | 22 + .../core/object/objects/track.scss | 7 + .../template/default/foundation/colors.scss | 8 + .../template/default/foundation/mixins.scss | 27 + .../splide-4.1.4/template/default/index.scss | 13 + .../default/object/modifiers/index.scss | 3 + .../default/object/modifiers/nav.scss | 37 + .../default/object/modifiers/rtl.scss | 28 + .../default/object/modifiers/ttb.scss | 54 + .../default/object/objects/arrow.scss | 105 + .../default/object/objects/index.scss | 5 + .../default/object/objects/pagination.scss | 80 + .../default/object/objects/progress.scss | 13 + .../default/object/objects/slide.scss | 42 + .../default/object/objects/toggle.scss | 19 + .../splide-4.1.4/themes/default/index.scss | 1 + .../splide-4.1.4/themes/sea-green/index.scss | 52 + .../sea-green/object/objects/arrow.scss | 17 + .../sea-green/object/objects/index.scss | 3 + .../themes/sea-green/object/objects/root.scss | 3 + .../splide-4.1.4/themes/skyblue/index.scss | 37 + .../04_plugins/toastify-1.12/_toastify.scss | 88 + .../src/styles/05_modules/_button.scss | 13 + .../src/styles/05_modules/_footer-main.scss | 37 + .../src/styles/05_modules/_header-main.scss | 83 + .../src/styles/05_modules/_index.scss | 8 + .../src/styles/05_modules/_inputAmount.scss | 29 + .../src/styles/05_modules/_inputPrice.scss | 6 + .../src/styles/05_modules/_logo-main.scss | 14 + .../src/styles/05_modules/_menu-main.scss | 60 + .../styles/05_modules/_product-manager.scss | 37 + .../u14_input-price/src/styles/main.scss | 16 + .../uebungen/u14_input-price/vite.config.js | 7 + 05_react/uebungen/u15_routing-react.zip | Bin 0 -> 52401 bytes 05_react/uebungen/u15_routing/.gitignore | 24 + 05_react/uebungen/u15_routing/.oxlintrc.json | 8 + 05_react/uebungen/u15_routing/README.md | 16 + 05_react/uebungen/u15_routing/index.html | 14 + .../uebungen/u15_routing/package-lock.json | 2237 +++++++++++++++++ 05_react/uebungen/u15_routing/package.json | 27 + .../uebungen/u15_routing/public/favicon.svg | 1 + .../uebungen/u15_routing/public/icons.svg | 24 + 05_react/uebungen/u15_routing/src/App.jsx | 50 + .../uebungen/u15_routing/src/assets/hero.png | Bin 0 -> 13057 bytes .../uebungen/u15_routing/src/assets/react.svg | 1 + .../uebungen/u15_routing/src/assets/vite.svg | 1 + .../src/components/navs/Navbar.jsx | 39 + 05_react/uebungen/u15_routing/src/main.jsx | 19 + .../u15_routing/src/pages/AboutPage.jsx | 34 + .../u15_routing/src/pages/HomePage.jsx | 10 + .../u15_routing/src/routes/Router.jsx | 17 + 05_react/uebungen/u15_routing/vite.config.js | 7 + .../01_components-with-hooks/src/App.jsx | 1 + .../components/examples/ExampleUseReducer.jsx | 8 +- .../examples/theme-switcher/ThemeContext.jsx | 1 + 271 files changed, 28827 insertions(+), 4 deletions(-) create mode 100644 05_react/uebungen/u14_input-price.zip create mode 100644 05_react/uebungen/u14_input-price/.gitignore create mode 100644 05_react/uebungen/u14_input-price/.oxlintrc.json create mode 100644 05_react/uebungen/u14_input-price/README.md create mode 100644 05_react/uebungen/u14_input-price/index.html create mode 100644 05_react/uebungen/u14_input-price/package-lock.json create mode 100644 05_react/uebungen/u14_input-price/package.json create mode 100644 05_react/uebungen/u14_input-price/public/favicon.svg create mode 100644 05_react/uebungen/u14_input-price/public/icons.svg create mode 100644 05_react/uebungen/u14_input-price/src/App.jsx create mode 100644 05_react/uebungen/u14_input-price/src/assets/react.svg create mode 100644 05_react/uebungen/u14_input-price/src/assets/vite.svg create mode 100644 05_react/uebungen/u14_input-price/src/components/inputs/InputPrice.jsx create mode 100644 05_react/uebungen/u14_input-price/src/main.jsx create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_accordion.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_alert.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_badge.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_breadcrumb.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_button-group.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_buttons.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_card.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_carousel.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_close.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_containers.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_dropdown.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_forms.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_functions.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_grid.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_helpers.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_images.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_list-group.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_maps.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_mixins.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_modal.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_nav.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_navbar.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_offcanvas.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_pagination.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_placeholders.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_popover.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_progress.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_reboot.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_root.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_spinners.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_tables.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_toasts.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_tooltip.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_transitions.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_type.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_utilities.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_variables-dark.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_variables.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/bootstrap-grid.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/bootstrap-reboot.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/bootstrap-utilities.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/bootstrap.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_floating-labels.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_form-check.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_form-control.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_form-range.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_form-select.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_form-text.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_input-group.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_labels.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/forms/_validation.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_clearfix.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_color-bg.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_colored-links.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_focus-ring.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_icon-link.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_position.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_ratio.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_stacks.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_stretched-link.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_text-truncation.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_visually-hidden.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/helpers/_vr.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_alert.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_backdrop.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_banner.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_border-radius.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_box-shadow.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_breakpoints.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_buttons.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_caret.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_clearfix.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_color-mode.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_color-scheme.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_container.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_deprecate.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_forms.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_gradients.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_grid.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_image.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_list-group.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_lists.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_pagination.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_reset-text.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_resize.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_table-variants.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_text-truncate.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_transition.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_utilities.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/mixins/_visually-hidden.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/jasmine.js create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/mixins/_auto-import-of-variables-dark.test.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/mixins/_box-shadow.test.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/mixins/_color-contrast.test.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/mixins/_color-modes.test.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/mixins/_media-query-color-mode-full.test.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/mixins/_utilities.test.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/sass-true/register.js create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/sass-true/runner.js create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/tests/utilities/_api.test.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/utilities/_api.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/vendor/_rfs.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/base/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/base/animations.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/base/generic.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/base/minireset.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/base/skeleton.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/breadcrumb.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/card.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/dropdown.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/menu.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/message.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/modal.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/navbar.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/pagination.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/panel.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/components/tabs.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/block.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/box.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/button.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/content.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/delete.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/icon.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/image.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/loader.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/notification.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/progress.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/table.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/tag.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/elements/title.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/form/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/form/checkbox-radio.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/form/file.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/form/input-textarea.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/form/select.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/form/shared.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/form/tools.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/grid/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/grid/columns.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/grid/grid.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/aspect-ratio.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/border.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/color.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/flexbox.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/float.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/gap.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/other.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/overflow.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/position.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/spacing.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/typography.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/helpers/visibility.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/layout/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/layout/container.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/layout/footer.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/layout/hero.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/layout/level.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/layout/media.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/layout/section.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/themes/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/themes/dark.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/themes/light.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/themes/setup.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/controls.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/css-variables.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/derived-variables.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/extends.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/functions.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/initial-variables.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/01_frameworks/bulma-1.04/utilities/mixins.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/02_fonts/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/02_fonts/_playfair-display-v40-latin.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/02_fonts/_source-sans-3-v19-latin.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/03_base/_colors.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/03_base/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/03_base/_theme.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/03_base/_typography.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/03_base/_utils.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/03_base/_variables.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/foundation/animations.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/modifiers/draggable.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/modifiers/fade.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/modifiers/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/modifiers/rtl.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/modifiers/ttb.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/container.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/list.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/pagination.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/progress.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/root.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/slide.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/spinner.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/sr.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/toggle.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/core/object/objects/track.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/foundation/colors.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/foundation/mixins.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/modifiers/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/modifiers/nav.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/modifiers/rtl.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/modifiers/ttb.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/objects/arrow.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/objects/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/objects/pagination.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/objects/progress.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/objects/slide.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/template/default/object/objects/toggle.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/themes/default/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/themes/sea-green/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/themes/sea-green/object/objects/arrow.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/themes/sea-green/object/objects/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/themes/sea-green/object/objects/root.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/splide-4.1.4/themes/skyblue/index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/04_plugins/toastify-1.12/_toastify.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_button.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_footer-main.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_header-main.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_index.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_inputAmount.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_inputPrice.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_logo-main.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_menu-main.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/05_modules/_product-manager.scss create mode 100644 05_react/uebungen/u14_input-price/src/styles/main.scss create mode 100644 05_react/uebungen/u14_input-price/vite.config.js create mode 100644 05_react/uebungen/u15_routing-react.zip create mode 100644 05_react/uebungen/u15_routing/.gitignore create mode 100644 05_react/uebungen/u15_routing/.oxlintrc.json create mode 100644 05_react/uebungen/u15_routing/README.md create mode 100644 05_react/uebungen/u15_routing/index.html create mode 100644 05_react/uebungen/u15_routing/package-lock.json create mode 100644 05_react/uebungen/u15_routing/package.json create mode 100644 05_react/uebungen/u15_routing/public/favicon.svg create mode 100644 05_react/uebungen/u15_routing/public/icons.svg create mode 100644 05_react/uebungen/u15_routing/src/App.jsx create mode 100644 05_react/uebungen/u15_routing/src/assets/hero.png create mode 100644 05_react/uebungen/u15_routing/src/assets/react.svg create mode 100644 05_react/uebungen/u15_routing/src/assets/vite.svg create mode 100644 05_react/uebungen/u15_routing/src/components/navs/Navbar.jsx create mode 100644 05_react/uebungen/u15_routing/src/main.jsx create mode 100644 05_react/uebungen/u15_routing/src/pages/AboutPage.jsx create mode 100644 05_react/uebungen/u15_routing/src/pages/HomePage.jsx create mode 100644 05_react/uebungen/u15_routing/src/routes/Router.jsx create mode 100644 05_react/uebungen/u15_routing/vite.config.js diff --git a/05_react/uebungen/u14_input-price.zip b/05_react/uebungen/u14_input-price.zip new file mode 100644 index 0000000000000000000000000000000000000000..46f272b6a515dc7a62cff8fcdb41ef39d2b46a5d GIT binary patch literal 265855 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

1`l;$&H^^u6rj&zm-^`h&5k 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�G8hRA(-sOtX{@vw_!L&fw*TamEZcO3 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 + + + + + + u14_input-price + + +

+ + + diff --git a/05_react/uebungen/u14_input-price/package-lock.json b/05_react/uebungen/u14_input-price/package-lock.json new file mode 100644 index 0000000..c5614c8 --- /dev/null +++ b/05_react/uebungen/u14_input-price/package-lock.json @@ -0,0 +1,2131 @@ +{ + "name": "u14_input-price", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "u14_input-price", + "version": "0.0.0", + "dependencies": { + "bootstrap": "^5.3.8", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "react-icons": "^5.7.0", + "sass-embedded": "^1.100.0" + }, + "devDependencies": { + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.4", + "oxlint": "^1.75.0", + "vite": "^8.2.0" + } + }, + "node_modules/@bufbuild/protobuf": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.13.0.tgz", + "integrity": "sha512-acq7c49vxfm1ggJ95P70TX7ABDM0vxr1SYD3BB0o0jnBLB4OAqeHyKuN+cD3w80gXEDQ2zxHpR6CUeA+O/aU9g==", + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, + "node_modules/@oxc-project/types": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", + "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.78.0.tgz", + "integrity": "sha512-Bu819lmAfZMUHErrpe0cEWj3iaefuUODHSU8+UbXy67V/r7/7f4K3FL0NmbD85E+wiFLDYuhP8Zlv0XnVeXshw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.78.0.tgz", + "integrity": "sha512-CDfxZgB61B7buRdY2FJoAYYPPXCZ1EoC1LKscnC5dg3kjobdxiconvAvvN1BmHyW4PyFT3jRLDag/BY/roSNBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.78.0.tgz", + "integrity": "sha512-2Y2U9Ahrz+OO0Ej88f9SJYq51/jUBp1Mc7iZu0ukrbeeZ3gpRGfzIFnoqfHDY96xr0GEfNrPUBFEy0nN5aD7HA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.78.0.tgz", + "integrity": "sha512-rpych6eJq6m9jDRypTEaPD1xysaEW5h9+xuxhGK/QhOg+/xaqPZrCrTNoIl/f3nEjuJeCEmstNDlrE9rJi/3/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.78.0.tgz", + "integrity": "sha512-IcMGrQT3QizkOESUJd5et+rOhVqSkNDfNik1cvrKDqIbzqx9KMtRswpFgkCuNTSwylCFLKhGUu8KmqY1ZnC0Dg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.78.0.tgz", + "integrity": "sha512-/uLdoJ0IXE6vo/0f0LKjinQAp+re+VMaCWaNT8ENIv2EOCkSsc8SGaflXAuW0Jua2dq5+GLVWm1NQK7P3UFSNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.78.0.tgz", + "integrity": "sha512-7xi4Wb/O8NRJhLoUXmDJMUVpNYvB5kefdhFU1Jb8rtae4QoXlTiLwI14X4YvAXVZLNZChP8m5qO9SQAlWQTbkQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.78.0.tgz", + "integrity": "sha512-4hFW0+fVXa3OIh1Y4A5SPkmvI4wuuBSrCVKzOyE7PTjhc7yEqZ1pmvEEeS5Lj/MaqvegFxXyF33N+6jkehxdyg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.78.0.tgz", + "integrity": "sha512-oC0mvsgBJjlMijSDEhx9KuvR9zYeHXceA9MjbuXB1F8NSR78Yj2unOBrstEvTVaq+pko+kuue6DajC00eqvTdg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.78.0.tgz", + "integrity": "sha512-XAllT5SUZS+ohjuZ3/5S0cwe0r7eboiuigeStCZ5DXRYx/2KVM2UvQXvAfyzXEimtQjAB7cDQ2YxDe2Zl2WNQQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.78.0.tgz", + "integrity": "sha512-trucMER/0QtecoXvc1y/UVqE3kwJipDwrx4oHfj+nNm3dq2zjP44WT0CfHNDPM3G1DXIkx/gY6lAD21NSCZVhA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.78.0.tgz", + "integrity": "sha512-cm3O4F/HQbdzOUX5mKHqG5KDL6E5w0pnlZ+fbBy2rmLryPOowkuLagFHTopQsEIpjcaZoPOrL+BmmAytAG9HFg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.78.0.tgz", + "integrity": "sha512-33wRf6HqGNsybJ3qX4cGaQN2ODPxNmc1rMa0mrTmx3eFq1VzOnvQooi9bIGVYakW8a/wmqVx1mgsUm8R2xfTiw==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.78.0.tgz", + "integrity": "sha512-rRdISSYegj6VganMZ9tjRjijowfHJ09IZU01i0toBAqr6n5LEtwHq2IeS4FjW2RoskOHlb6efB26H5izYb3GEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.78.0.tgz", + "integrity": "sha512-GmsP4rW0xTL6u5CVdcDsaN5Fbc7hBc382Wmar1kttbnwSEviM+rSINKOMQ+UQ6iH+AGwC+8gaAiwu134Tgh6Lg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.78.0.tgz", + "integrity": "sha512-sy9yeYuADc8a+n4TLBayzMCZiHPW78DcIFVpOXTmdKHWQeM9xe5uzkqIIZmi326D5hY9XVwacipEB1p7tQjPAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.78.0.tgz", + "integrity": "sha512-rjc2hF1KfMi8fZj1X/m3AmnHbdsF3rL0v6KQg0Uc880Yb2khjz+3U14sfdZ7jWTpRnN1m1NQa/TT7uU9lJWPrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.78.0.tgz", + "integrity": "sha512-zcuXFVrEFHIafRfkCQT8w/Xe41o07ozl/vwHq7p94vB29xVzsB0sZGYORU1jhcYKv3Lr0J3HbJ2T4fHH5rWmvA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.78.0.tgz", + "integrity": "sha512-Sb5ocmLSuYeOuXd+CFOToGKp/gjXUEWDnvIGwhnh8aq8wY4TMmEnKnvbogSW7RdMZv77JSARduS7/gv+khYEjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", + "cpu": [ + "arm" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.3.tgz", + "integrity": "sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.3.tgz", + "integrity": "sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.3.tgz", + "integrity": "sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.3.tgz", + "integrity": "sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.3.tgz", + "integrity": "sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.3.tgz", + "integrity": "sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.3.tgz", + "integrity": "sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.3.tgz", + "integrity": "sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.3.tgz", + "integrity": "sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.3.tgz", + "integrity": "sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.3.tgz", + "integrity": "sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.3.tgz", + "integrity": "sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.3.tgz", + "integrity": "sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.3.tgz", + "integrity": "sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.5.tgz", + "integrity": "sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "optional": true, + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/colorjs.io": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", + "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/immutable": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true + }, + "node_modules/oxlint": { + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.78.0.tgz", + "integrity": "sha512-QgQePuxIqKOzo1KSjG2EnITEeWvWnKAm77eq8nrMtf6AGoA+zyGc4PFYtDNJSD25g/ibOwfQ851hZ4/SPkMVoA==", + "dev": true, + "license": "MIT", + "bin": { + "oxlint": "bin/oxlint" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/binding-android-arm-eabi": "1.78.0", + "@oxlint/binding-android-arm64": "1.78.0", + "@oxlint/binding-darwin-arm64": "1.78.0", + "@oxlint/binding-darwin-x64": "1.78.0", + "@oxlint/binding-freebsd-x64": "1.78.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.78.0", + "@oxlint/binding-linux-arm-musleabihf": "1.78.0", + "@oxlint/binding-linux-arm64-gnu": "1.78.0", + "@oxlint/binding-linux-arm64-musl": "1.78.0", + "@oxlint/binding-linux-ppc64-gnu": "1.78.0", + "@oxlint/binding-linux-riscv64-gnu": "1.78.0", + "@oxlint/binding-linux-riscv64-musl": "1.78.0", + "@oxlint/binding-linux-s390x-gnu": "1.78.0", + "@oxlint/binding-linux-x64-gnu": "1.78.0", + "@oxlint/binding-linux-x64-musl": "1.78.0", + "@oxlint/binding-openharmony-arm64": "1.78.0", + "@oxlint/binding-win32-arm64-msvc": "1.78.0", + "@oxlint/binding-win32-ia32-msvc": "1.78.0", + "@oxlint/binding-win32-x64-msvc": "1.78.0" + }, + "peerDependencies": { + "oxlint-tsgolint": ">=7.0.2001", + "vite-plus": "*" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + }, + "vite-plus": { + "optional": true + } + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.8" + } + }, + "node_modules/react-icons": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.7.0.tgz", + "integrity": "sha512-LBLy340Rzqy6+/yVhZKT3B/QpP1BZaesGqasf09HPOBzRarcDIFH0WwXlXQfE7q7ipxK4MSiC5DIBWURCny6fw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rolldown": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.3.tgz", + "integrity": "sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.143.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.2.3", + "@rolldown/binding-darwin-arm64": "1.2.3", + "@rolldown/binding-darwin-x64": "1.2.3", + "@rolldown/binding-freebsd-x64": "1.2.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.3", + "@rolldown/binding-linux-arm64-gnu": "1.2.3", + "@rolldown/binding-linux-arm64-musl": "1.2.3", + "@rolldown/binding-linux-ppc64-gnu": "1.2.3", + "@rolldown/binding-linux-s390x-gnu": "1.2.3", + "@rolldown/binding-linux-x64-gnu": "1.2.3", + "@rolldown/binding-linux-x64-musl": "1.2.3", + "@rolldown/binding-openharmony-arm64": "1.2.3", + "@rolldown/binding-win32-arm64-msvc": "1.2.3", + "@rolldown/binding-win32-x64-msvc": "1.2.3" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sass": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz", + "integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "chokidar": "^5.0.0", + "immutable": "^5.1.5", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=20.19.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass-embedded": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.100.0.tgz", + "integrity": "sha512-Ut8wlQSk19tm7jMK6mz6cF1+e+E7tUnW2tM02zQDPnOTcVbV8qCQG8UWxZkkNlY50+hV3hqP24OOkUlMz8xBpw==", + "license": "MIT", + "dependencies": { + "@bufbuild/protobuf": "^2.5.0", + "colorjs.io": "^0.5.0", + "immutable": "^5.1.5", + "rxjs": "^7.4.0", + "supports-color": "^8.1.1", + "sync-child-process": "^1.0.2", + "varint": "^6.0.0" + }, + "bin": { + "sass": "dist/bin/sass.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "sass-embedded-all-unknown": "1.100.0", + "sass-embedded-android-arm": "1.100.0", + "sass-embedded-android-arm64": "1.100.0", + "sass-embedded-android-riscv64": "1.100.0", + "sass-embedded-android-x64": "1.100.0", + "sass-embedded-darwin-arm64": "1.100.0", + "sass-embedded-darwin-x64": "1.100.0", + "sass-embedded-linux-arm": "1.100.0", + "sass-embedded-linux-arm64": "1.100.0", + "sass-embedded-linux-musl-arm": "1.100.0", + "sass-embedded-linux-musl-arm64": "1.100.0", + "sass-embedded-linux-musl-riscv64": "1.100.0", + "sass-embedded-linux-musl-x64": "1.100.0", + "sass-embedded-linux-riscv64": "1.100.0", + "sass-embedded-linux-x64": "1.100.0", + "sass-embedded-unknown-all": "1.100.0", + "sass-embedded-win32-arm64": "1.100.0", + "sass-embedded-win32-x64": "1.100.0" + } + }, + "node_modules/sass-embedded-all-unknown": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.100.0.tgz", + "integrity": "sha512-auFtXY/kwYILmSVjtBDwyj0axcLbYYiffOKWoaXHnI5bsYwiRbBh3EneR1rpbX2ZIZCrwX93i5pxKLTZF/662Q==", + "cpu": [ + "!arm", + "!arm64", + "!riscv64", + "!x64" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "sass": "1.100.0" + } + }, + "node_modules/sass-embedded-android-arm": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.100.0.tgz", + "integrity": "sha512-70f3HgX2pFNmzpGQ86n5e6QfWn2fP4QUQGfFQK0P1XH73ZLIzLo2YqygrGKGKeeqtc5eU2Wl1/xQzhzuKnO4kw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-arm64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.100.0.tgz", + "integrity": "sha512-W+Ru9JwTnfU0UX3jSZcbqFdtKFMcYdfFwytc57h2DgnqCOIiAqI2E06mABZBZC+r3LwXCBuS5GbXAGeVgvVDkA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-riscv64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.100.0.tgz", + "integrity": "sha512-icU3o0V/uCSytSpf+tX5Lf51BvyQEbLzDUJfUi9etSauYBGHpPKkdtdZH0si4v98phq11Kl8rSV1SggksxF1Hg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-x64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.100.0.tgz", + "integrity": "sha512-mevF9VQk6gEYByy8+jusaHGmd7Usb2ytX/DsEOd0JtOGCtcf1kh575xJ6OUBDIcJ15uLnbau/0iy1eP6WVBvWA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-arm64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.100.0.tgz", + "integrity": "sha512-1PVlYi61POo93IT/FfrG1mc1tAHxeSTyUALF2aOFmXGWjVXr3bQzEQiBGCOvQbj/ix+5hNyXFXcEMEyKvtUJJA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-x64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.100.0.tgz", + "integrity": "sha512-x97o3JnGyImZNCIVs9wQHJUE5QCvmVIKaH1cwrz/5dK7OT1FpeNiW+u9TUomP9hG6Ekjd8EL8NBHpxTfIhdjmg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.100.0.tgz", + "integrity": "sha512-9Ul7O1eKrc5YlhwWjkp8tZPSe3UEwSZ1uwUZOQom1HL0pRlBA6F/IlGZYFTLwnHMIP1fc77MMNaBRfc05mKMpw==", + "cpu": [ + "arm" + ], + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.100.0.tgz", + "integrity": "sha512-Dwjmj8Z6VRy7rAi53JAdEwIyUjpfl7PhpSc2/LpQPQx+aO5Dp7Spaipkax0ufJl1SoDUdchCsM4y/88YaluorQ==", + "cpu": [ + "arm64" + ], + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.100.0.tgz", + "integrity": "sha512-sl0JgbGloPyJg66XXx5UDSDScZ0oU85DpMQU4JU/sCUCFj1Z8zZ69SJWKTCNE4/jwnce7WI2zPCV5AG+RHOZJw==", + "cpu": [ + "arm" + ], + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.100.0.tgz", + "integrity": "sha512-XpACJB2KjSLjf2e9uuvGVdOURsoNrFqgRiihhXyUHK9W0t3LIHb7z5MA/7XGPIT9bWSOO2zyw+rH/FHtDV/Yrg==", + "cpu": [ + "arm64" + ], + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-riscv64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.100.0.tgz", + "integrity": "sha512-ShvI0Kx04mwoCARwZ0UjiT97isQvzO80tAt91zmFyHLN9kelc/IrQi940farSm2xQVPCKdeVyeG0ekBsokSpYQ==", + "cpu": [ + "riscv64" + ], + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.100.0.tgz", + "integrity": "sha512-TDBCRWNuS4RDLQXvRc1gjZlWiWTWaWGp0Bwu/IKwJxov81lsvrCs3TihTyNXtW7V5aoN4Ky3r0QOkNb3mwmBnA==", + "cpu": [ + "x64" + ], + "libc": "musl", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-riscv64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.100.0.tgz", + "integrity": "sha512-j4ENJGOheO+fm3j/yorLxCjBP6/XskrZx7dTLlT+lXYwN/qqCqoA/gsNLI0McS3DFM6GBwPiffzWsdWS8t6sEQ==", + "cpu": [ + "riscv64" + ], + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-x64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.100.0.tgz", + "integrity": "sha512-0vUSN8j0WGtCJIOPh//EmUvYGHW0QOe5iul8qyhPk50MAcw49MA0r34AhftjDdx94ILPF6vApFs0gwHPQRlpVA==", + "cpu": [ + "x64" + ], + "libc": "glibc", + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-unknown-all": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.100.0.tgz", + "integrity": "sha512-c+naBgWId4MIpToXcI0DgqetjdAkwTTAxFAuOaBz7HUXLdyG1oZRrEvSsbe41nEdQOKH0vgofVFCeSQgoXOG9A==", + "license": "MIT", + "optional": true, + "os": [ + "!android", + "!darwin", + "!linux", + "!win32" + ], + "dependencies": { + "sass": "1.100.0" + } + }, + "node_modules/sass-embedded-win32-arm64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.100.0.tgz", + "integrity": "sha512-iE+yxj+hUXwwbqpHkXxgAWTzeRfcWxJ7SSTQEPMk48lwq3oCrWLlz5sQuWHbuTK/i0GKQfROdP+hOmPi89yjUg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-x64": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.100.0.tgz", + "integrity": "sha512-qI4F8MI7/KYoy9NdjJfhSspG42WPkADSNDvwEV7qWvCSFC83koJssRsKO2/PfY+niZz6BG65Ic/D+A11h959hw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/sync-child-process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", + "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "license": "MIT", + "dependencies": { + "sync-message-port": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/sync-message-port": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.2.0.tgz", + "integrity": "sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/05_react/uebungen/u14_input-price/package.json b/05_react/uebungen/u14_input-price/package.json new file mode 100644 index 0000000..ec782ad --- /dev/null +++ b/05_react/uebungen/u14_input-price/package.json @@ -0,0 +1,26 @@ +{ + "name": "u14_input-price", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "oxlint", + "preview": "vite preview" + }, + "dependencies": { + "bootstrap": "^5.3.8", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "react-icons": "^5.7.0", + "sass-embedded": "^1.100.0" + }, + "devDependencies": { + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.4", + "oxlint": "^1.75.0", + "vite": "^8.2.0" + } +} diff --git a/05_react/uebungen/u14_input-price/public/favicon.svg b/05_react/uebungen/u14_input-price/public/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/05_react/uebungen/u14_input-price/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/05_react/uebungen/u14_input-price/public/icons.svg b/05_react/uebungen/u14_input-price/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/05_react/uebungen/u14_input-price/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/05_react/uebungen/u14_input-price/src/App.jsx b/05_react/uebungen/u14_input-price/src/App.jsx new file mode 100644 index 0000000..2f2d223 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/App.jsx @@ -0,0 +1,31 @@ +import InputPrice from './components/inputs/InputPrice'; + +function App(props) { + // const { } = props; + + return ( +
+ +
+
+

Übung 14: InputPrice Komponente erweitern

+

+ Nachdem wir die InputAmount-Komponente erweitert haben, wollen wir nun die{' '} + InputPrice-Komponente erweitern. +

+

+ Erweitere die InputPrice-Komponente, sodass der Wert des Eingabefelds auf eine Dezimalzahl + mit maximal zwei Nachkommastellen begrenzt ist. Wenn der Benutzer versucht, eine ungültige Eingabe zu machen, + soll das Eingabefeld rot umrandet werden. +

+

+ Hinweis: Du kannst das style-Attribut verwenden, um das Aussehen eines + Elements zu ändern. Hier ist ein Beispiel, wie du das style-Attribut verwenden kannst. + Alternativ kannst du die Bootstrap-Klasse is-invalid verwenden, um das Eingabefeld rot zu + umranden. +

+
+
+ ); +} +export default App; diff --git a/05_react/uebungen/u14_input-price/src/assets/react.svg b/05_react/uebungen/u14_input-price/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/05_react/uebungen/u14_input-price/src/assets/vite.svg b/05_react/uebungen/u14_input-price/src/assets/vite.svg new file mode 100644 index 0000000..5101b67 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/05_react/uebungen/u14_input-price/src/components/inputs/InputPrice.jsx b/05_react/uebungen/u14_input-price/src/components/inputs/InputPrice.jsx new file mode 100644 index 0000000..c9b8192 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/components/inputs/InputPrice.jsx @@ -0,0 +1,56 @@ +import { useState } from 'react'; +import { FaDollarSign, FaEuroSign, FaYenSign } from 'react-icons/fa6'; + +const isValidPrice = (value) => { + const regex = new RegExp(/^\d*(\.\d{0,2})?$/); + return regex.test(value); +}; + +const InputPrice = (props) => { + const { currency = '$' } = props; + + const [price, setPrice] = useState(0); + + //Evenhandler + const handleChange = (e) => { + // console.log(`Preis: ${e.target.value}`); + // console.log('RegEx: ', isValidPrice(e.target.value)); + + // if (!isValidPrice(e.target.value)) return; + + setPrice(e.target.value); + }; + + return ( +
+
+ {currency === '$' && ( + + + + )} + + {currency === '€' && ( + + + + )} + {currency === '¥' && ( + + + + )} +
+
+ ); +}; +export default InputPrice; diff --git a/05_react/uebungen/u14_input-price/src/main.jsx b/05_react/uebungen/u14_input-price/src/main.jsx new file mode 100644 index 0000000..af81b7b --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/main.jsx @@ -0,0 +1,12 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +// Einbindung der Haupt Sass Datei +import './styles/main.scss'; +import App from './App.jsx'; + +createRoot(document.getElementById('root')).render( + + + , +); diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/_index.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/_index.scss new file mode 100644 index 0000000..dcefbc9 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/_index.scss @@ -0,0 +1,3 @@ +// @import 'bootstrap-5.3.8/bootstrap-grid'; +@import 'bootstrap-5.3.8/bootstrap'; +// @import 'bulma-1.04/index' diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_accordion.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_accordion.scss new file mode 100644 index 0000000..e9f267f --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_accordion.scss @@ -0,0 +1,153 @@ +// +// Base styles +// + +.accordion { + // scss-docs-start accordion-css-vars + --#{$prefix}accordion-color: #{$accordion-color}; + --#{$prefix}accordion-bg: #{$accordion-bg}; + --#{$prefix}accordion-transition: #{$accordion-transition}; + --#{$prefix}accordion-border-color: #{$accordion-border-color}; + --#{$prefix}accordion-border-width: #{$accordion-border-width}; + --#{$prefix}accordion-border-radius: #{$accordion-border-radius}; + --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius}; + --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x}; + --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y}; + --#{$prefix}accordion-btn-color: #{$accordion-button-color}; + --#{$prefix}accordion-btn-bg: #{$accordion-button-bg}; + --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)}; + --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width}; + --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform}; + --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition}; + --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)}; + --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow}; + --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x}; + --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y}; + --#{$prefix}accordion-active-color: #{$accordion-button-active-color}; + --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg}; + // scss-docs-end accordion-css-vars +} + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x); + @include font-size($font-size-base); + color: var(--#{$prefix}accordion-btn-color); + text-align: left; // Reset button style + background-color: var(--#{$prefix}accordion-btn-bg); + border: 0; + @include border-radius(0); + overflow-anchor: none; + @include transition(var(--#{$prefix}accordion-transition)); + + &:not(.collapsed) { + color: var(--#{$prefix}accordion-active-color); + background-color: var(--#{$prefix}accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list + + &::after { + background-image: var(--#{$prefix}accordion-btn-active-icon); + transform: var(--#{$prefix}accordion-btn-icon-transform); + } + } + + // Accordion icon + &::after { + flex-shrink: 0; + width: var(--#{$prefix}accordion-btn-icon-width); + height: var(--#{$prefix}accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--#{$prefix}accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--#{$prefix}accordion-btn-icon-width); + @include transition(var(--#{$prefix}accordion-btn-icon-transition)); + } + + &:hover { + z-index: 2; + } + + &:focus { + z-index: 3; + outline: 0; + box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow); + } +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + color: var(--#{$prefix}accordion-color); + background-color: var(--#{$prefix}accordion-bg); + border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color); + + &:first-of-type { + @include border-top-radius(var(--#{$prefix}accordion-border-radius)); + + > .accordion-header .accordion-button { + @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius)); + } + } + + &:not(:first-of-type) { + border-top: 0; + } + + // Only set a border-radius on the last item if the accordion is collapsed + &:last-of-type { + @include border-bottom-radius(var(--#{$prefix}accordion-border-radius)); + + > .accordion-header .accordion-button { + &.collapsed { + @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius)); + } + } + + > .accordion-collapse { + @include border-bottom-radius(var(--#{$prefix}accordion-border-radius)); + } + } +} + +.accordion-body { + padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x); +} + + +// Flush accordion items +// +// Remove borders and border-radius to keep accordion items edge-to-edge. + +.accordion-flush { + > .accordion-item { + border-right: 0; + border-left: 0; + @include border-radius(0); + + &:first-child { border-top: 0; } + &:last-child { border-bottom: 0; } + + // stylelint-disable selector-max-class + > .accordion-collapse, + > .accordion-header .accordion-button, + > .accordion-header .accordion-button.collapsed { + @include border-radius(0); + } + // stylelint-enable selector-max-class + } +} + +@if $enable-dark-mode { + @include color-mode(dark) { + .accordion-button::after { + --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon-dark)}; + --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon-dark)}; + } + } +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_alert.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_alert.scss new file mode 100644 index 0000000..b8cff9b --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_alert.scss @@ -0,0 +1,68 @@ +// +// Base styles +// + +.alert { + // scss-docs-start alert-css-vars + --#{$prefix}alert-bg: transparent; + --#{$prefix}alert-padding-x: #{$alert-padding-x}; + --#{$prefix}alert-padding-y: #{$alert-padding-y}; + --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom}; + --#{$prefix}alert-color: inherit; + --#{$prefix}alert-border-color: transparent; + --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color); + --#{$prefix}alert-border-radius: #{$alert-border-radius}; + --#{$prefix}alert-link-color: inherit; + // scss-docs-end alert-css-vars + + position: relative; + padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x); + margin-bottom: var(--#{$prefix}alert-margin-bottom); + color: var(--#{$prefix}alert-color); + background-color: var(--#{$prefix}alert-bg); + border: var(--#{$prefix}alert-border); + @include border-radius(var(--#{$prefix}alert-border-radius)); +} + +// Headings for larger alerts +.alert-heading { + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; + color: var(--#{$prefix}alert-link-color); +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: $alert-dismissible-padding-r; + + // Adjust close link position + .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: $stretched-link-z-index + 1; + padding: $alert-padding-y * 1.25 $alert-padding-x; + } +} + + +// scss-docs-start alert-modifiers +// Generate contextual modifier classes for colorizing the alert +@each $state in map-keys($theme-colors) { + .alert-#{$state} { + --#{$prefix}alert-color: var(--#{$prefix}#{$state}-text-emphasis); + --#{$prefix}alert-bg: var(--#{$prefix}#{$state}-bg-subtle); + --#{$prefix}alert-border-color: var(--#{$prefix}#{$state}-border-subtle); + --#{$prefix}alert-link-color: var(--#{$prefix}#{$state}-text-emphasis); + } +} +// scss-docs-end alert-modifiers diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_badge.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_badge.scss new file mode 100644 index 0000000..cc3d269 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_badge.scss @@ -0,0 +1,38 @@ +// Base class +// +// Requires one of the contextual, color modifier classes for `color` and +// `background-color`. + +.badge { + // scss-docs-start badge-css-vars + --#{$prefix}badge-padding-x: #{$badge-padding-x}; + --#{$prefix}badge-padding-y: #{$badge-padding-y}; + @include rfs($badge-font-size, --#{$prefix}badge-font-size); + --#{$prefix}badge-font-weight: #{$badge-font-weight}; + --#{$prefix}badge-color: #{$badge-color}; + --#{$prefix}badge-border-radius: #{$badge-border-radius}; + // scss-docs-end badge-css-vars + + display: inline-block; + padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x); + @include font-size(var(--#{$prefix}badge-font-size)); + font-weight: var(--#{$prefix}badge-font-weight); + line-height: 1; + color: var(--#{$prefix}badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + @include border-radius(var(--#{$prefix}badge-border-radius)); + @include gradient-bg(); + + // Empty badges collapse automatically + &:empty { + display: none; + } +} + +// Quick fix for badges in buttons +.btn .badge { + position: relative; + top: -1px; +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_breadcrumb.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_breadcrumb.scss new file mode 100644 index 0000000..b8252ff --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_breadcrumb.scss @@ -0,0 +1,40 @@ +.breadcrumb { + // scss-docs-start breadcrumb-css-vars + --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x}; + --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y}; + --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom}; + @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size); + --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg}; + --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius}; + --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color}; + --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x}; + --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color}; + // scss-docs-end breadcrumb-css-vars + + display: flex; + flex-wrap: wrap; + padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x); + margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom); + @include font-size(var(--#{$prefix}breadcrumb-font-size)); + list-style: none; + background-color: var(--#{$prefix}breadcrumb-bg); + @include border-radius(var(--#{$prefix}breadcrumb-border-radius)); +} + +.breadcrumb-item { + // The separator between breadcrumbs (by default, a forward-slash: "/") + + .breadcrumb-item { + padding-left: var(--#{$prefix}breadcrumb-item-padding-x); + + &::before { + float: left; // Suppress inline spacings and underlining of the separator + padding-right: var(--#{$prefix}breadcrumb-item-padding-x); + color: var(--#{$prefix}breadcrumb-divider-color); + content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"}; + } + } + + &.active { + color: var(--#{$prefix}breadcrumb-item-active-color); + } +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_button-group.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_button-group.scss new file mode 100644 index 0000000..78e1252 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_button-group.scss @@ -0,0 +1,147 @@ +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; // match .btn alignment given font-size hack above + + > .btn { + position: relative; + flex: 1 1 auto; + } + + // Bring the hover, focused, and "active" buttons to the front to overlay + // the borders properly + > .btn-check:checked + .btn, + > .btn-check:focus + .btn, + > .btn:hover, + > .btn:focus, + > .btn:active, + > .btn.active { + z-index: 1; + } +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + + .input-group { + width: auto; + } +} + +.btn-group { + @include border-radius($btn-border-radius); + + // Prevent double borders when buttons are next to each other + > :not(.btn-check:first-child) + .btn, + > .btn-group:not(:first-child) { + margin-left: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list + } + + // Reset rounded corners + > .btn:not(:last-child):not(.dropdown-toggle), + > .btn.dropdown-toggle-split:first-child, + > .btn-group:not(:last-child) > .btn { + @include border-end-radius(0); + } + + // The left radius should be 0 if the button is: + // - the "third or more" child + // - the second child and the previous element isn't `.btn-check` (making it the first child visually) + // - part of a btn-group which isn't the first child + > .btn:nth-child(n + 3), + > :not(.btn-check) + .btn, + > .btn-group:not(:first-child) > .btn { + @include border-start-radius(0); + } +} + +// Sizing +// +// Remix the default button sizing classes into new ones for easier manipulation. + +.btn-group-sm > .btn { @extend .btn-sm; } +.btn-group-lg > .btn { @extend .btn-lg; } + + +// +// Split button dropdowns +// + +.dropdown-toggle-split { + padding-right: $btn-padding-x * .75; + padding-left: $btn-padding-x * .75; + + &::after, + .dropup &::after, + .dropend &::after { + margin-left: 0; + } + + .dropstart &::before { + margin-right: 0; + } +} + +.btn-sm + .dropdown-toggle-split { + padding-right: $btn-padding-x-sm * .75; + padding-left: $btn-padding-x-sm * .75; +} + +.btn-lg + .dropdown-toggle-split { + padding-right: $btn-padding-x-lg * .75; + padding-left: $btn-padding-x-lg * .75; +} + + +// The clickable button for toggling the menu +// Set the same inset shadow as the :active state +.btn-group.show .dropdown-toggle { + @include box-shadow($btn-active-box-shadow); + + // Show no shadow for `.btn-link` since it has no other button styles. + &.btn-link { + @include box-shadow(none); + } +} + + +// +// Vertical button groups +// + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; + + > .btn, + > .btn-group { + width: 100%; + } + + > .btn:not(:first-child), + > .btn-group:not(:first-child) { + margin-top: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list + } + + // Reset rounded corners + > .btn:not(:last-child):not(.dropdown-toggle), + > .btn-group:not(:last-child) > .btn { + @include border-bottom-radius(0); + } + + // The top radius should be 0 if the button is: + // - the "third or more" child + // - the second child and the previous element isn't `.btn-check` (making it the first child visually) + // - part of a btn-group which isn't the first child + > .btn:nth-child(n + 3), + > :not(.btn-check) + .btn, + > .btn-group:not(:first-child) > .btn { + @include border-top-radius(0); + } +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_buttons.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_buttons.scss new file mode 100644 index 0000000..caa4518 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_buttons.scss @@ -0,0 +1,216 @@ +// +// Base styles +// + +.btn { + // scss-docs-start btn-css-vars + --#{$prefix}btn-padding-x: #{$btn-padding-x}; + --#{$prefix}btn-padding-y: #{$btn-padding-y}; + --#{$prefix}btn-font-family: #{$btn-font-family}; + @include rfs($btn-font-size, --#{$prefix}btn-font-size); + --#{$prefix}btn-font-weight: #{$btn-font-weight}; + --#{$prefix}btn-line-height: #{$btn-line-height}; + --#{$prefix}btn-color: #{$btn-color}; + --#{$prefix}btn-bg: transparent; + --#{$prefix}btn-border-width: #{$btn-border-width}; + --#{$prefix}btn-border-color: transparent; + --#{$prefix}btn-border-radius: #{$btn-border-radius}; + --#{$prefix}btn-hover-border-color: transparent; + --#{$prefix}btn-box-shadow: #{$btn-box-shadow}; + --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity}; + --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5); + // scss-docs-end btn-css-vars + + display: inline-block; + padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x); + font-family: var(--#{$prefix}btn-font-family); + @include font-size(var(--#{$prefix}btn-font-size)); + font-weight: var(--#{$prefix}btn-font-weight); + line-height: var(--#{$prefix}btn-line-height); + color: var(--#{$prefix}btn-color); + text-align: center; + text-decoration: if($link-decoration == none, null, none); + white-space: $btn-white-space; + vertical-align: middle; + cursor: if($enable-button-pointers, pointer, null); + user-select: none; + border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color); + @include border-radius(var(--#{$prefix}btn-border-radius)); + @include gradient-bg(var(--#{$prefix}btn-bg)); + @include box-shadow(var(--#{$prefix}btn-box-shadow)); + @include transition($btn-transition); + + &:hover { + color: var(--#{$prefix}btn-hover-color); + text-decoration: if($link-hover-decoration == underline, none, null); + background-color: var(--#{$prefix}btn-hover-bg); + border-color: var(--#{$prefix}btn-hover-border-color); + } + + .btn-check + &:hover { + // override for the checkbox/radio buttons + color: var(--#{$prefix}btn-color); + background-color: var(--#{$prefix}btn-bg); + border-color: var(--#{$prefix}btn-border-color); + } + + &:focus-visible { + color: var(--#{$prefix}btn-hover-color); + @include gradient-bg(var(--#{$prefix}btn-hover-bg)); + border-color: var(--#{$prefix}btn-hover-border-color); + outline: 0; + // Avoid using mixin so we can pass custom focus shadow properly + @if $enable-shadows { + box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow); + } @else { + box-shadow: var(--#{$prefix}btn-focus-box-shadow); + } + } + + .btn-check:focus-visible + & { + border-color: var(--#{$prefix}btn-hover-border-color); + outline: 0; + // Avoid using mixin so we can pass custom focus shadow properly + @if $enable-shadows { + box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow); + } @else { + box-shadow: var(--#{$prefix}btn-focus-box-shadow); + } + } + + .btn-check:checked + &, + :not(.btn-check) + &:active, + &:first-child:active, + &.active, + &.show { + color: var(--#{$prefix}btn-active-color); + background-color: var(--#{$prefix}btn-active-bg); + // Remove CSS gradients if they're enabled + background-image: if($enable-gradients, none, null); + border-color: var(--#{$prefix}btn-active-border-color); + @include box-shadow(var(--#{$prefix}btn-active-shadow)); + + &:focus-visible { + // Avoid using mixin so we can pass custom focus shadow properly + @if $enable-shadows { + box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow); + } @else { + box-shadow: var(--#{$prefix}btn-focus-box-shadow); + } + } + } + + .btn-check:checked:focus-visible + & { + // Avoid using mixin so we can pass custom focus shadow properly + @if $enable-shadows { + box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow); + } @else { + box-shadow: var(--#{$prefix}btn-focus-box-shadow); + } + } + + &:disabled, + &.disabled, + fieldset:disabled & { + color: var(--#{$prefix}btn-disabled-color); + pointer-events: none; + background-color: var(--#{$prefix}btn-disabled-bg); + background-image: if($enable-gradients, none, null); + border-color: var(--#{$prefix}btn-disabled-border-color); + opacity: var(--#{$prefix}btn-disabled-opacity); + @include box-shadow(none); + } +} + + +// +// Alternate buttons +// + +// scss-docs-start btn-variant-loops +@each $color, $value in $theme-colors { + .btn-#{$color} { + @if $color == "light" { + @include button-variant( + $value, + $value, + $hover-background: shade-color($value, $btn-hover-bg-shade-amount), + $hover-border: shade-color($value, $btn-hover-border-shade-amount), + $active-background: shade-color($value, $btn-active-bg-shade-amount), + $active-border: shade-color($value, $btn-active-border-shade-amount) + ); + } @else if $color == "dark" { + @include button-variant( + $value, + $value, + $hover-background: tint-color($value, $btn-hover-bg-tint-amount), + $hover-border: tint-color($value, $btn-hover-border-tint-amount), + $active-background: tint-color($value, $btn-active-bg-tint-amount), + $active-border: tint-color($value, $btn-active-border-tint-amount) + ); + } @else { + @include button-variant($value, $value); + } + } +} + +@each $color, $value in $theme-colors { + .btn-outline-#{$color} { + @include button-outline-variant($value); + } +} +// scss-docs-end btn-variant-loops + + +// +// Link buttons +// + +// Make a button look and behave like a link +.btn-link { + --#{$prefix}btn-font-weight: #{$font-weight-normal}; + --#{$prefix}btn-color: #{$btn-link-color}; + --#{$prefix}btn-bg: transparent; + --#{$prefix}btn-border-color: transparent; + --#{$prefix}btn-hover-color: #{$btn-link-hover-color}; + --#{$prefix}btn-hover-border-color: transparent; + --#{$prefix}btn-active-color: #{$btn-link-hover-color}; + --#{$prefix}btn-active-border-color: transparent; + --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color}; + --#{$prefix}btn-disabled-border-color: transparent; + --#{$prefix}btn-box-shadow: 0 0 0 #000; // Can't use `none` as keyword negates all values when used with multiple shadows + --#{$prefix}btn-focus-shadow-rgb: #{$btn-link-focus-shadow-rgb}; + + text-decoration: $link-decoration; + @if $enable-gradients { + background-image: none; + } + + &:hover, + &:focus-visible { + text-decoration: $link-hover-decoration; + } + + &:focus-visible { + color: var(--#{$prefix}btn-color); + } + + &:hover { + color: var(--#{$prefix}btn-hover-color); + } + + // No need for an active state here +} + + +// +// Button Sizes +// + +.btn-lg { + @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg); +} + +.btn-sm { + @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm); +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_card.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_card.scss new file mode 100644 index 0000000..dcebe6a --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_card.scss @@ -0,0 +1,238 @@ +// +// Base styles +// + +.card { + // scss-docs-start card-css-vars + --#{$prefix}card-spacer-y: #{$card-spacer-y}; + --#{$prefix}card-spacer-x: #{$card-spacer-x}; + --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y}; + --#{$prefix}card-title-color: #{$card-title-color}; + --#{$prefix}card-subtitle-color: #{$card-subtitle-color}; + --#{$prefix}card-border-width: #{$card-border-width}; + --#{$prefix}card-border-color: #{$card-border-color}; + --#{$prefix}card-border-radius: #{$card-border-radius}; + --#{$prefix}card-box-shadow: #{$card-box-shadow}; + --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius}; + --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y}; + --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x}; + --#{$prefix}card-cap-bg: #{$card-cap-bg}; + --#{$prefix}card-cap-color: #{$card-cap-color}; + --#{$prefix}card-height: #{$card-height}; + --#{$prefix}card-color: #{$card-color}; + --#{$prefix}card-bg: #{$card-bg}; + --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding}; + --#{$prefix}card-group-margin: #{$card-group-margin}; + // scss-docs-end card-css-vars + + position: relative; + display: flex; + flex-direction: column; + min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106 + height: var(--#{$prefix}card-height); + color: var(--#{$prefix}body-color); + word-wrap: break-word; + background-color: var(--#{$prefix}card-bg); + background-clip: border-box; + border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color); + @include border-radius(var(--#{$prefix}card-border-radius)); + @include box-shadow(var(--#{$prefix}card-box-shadow)); + + > hr { + margin-right: 0; + margin-left: 0; + } + + > .list-group { + border-top: inherit; + border-bottom: inherit; + + &:first-child { + border-top-width: 0; + @include border-top-radius(var(--#{$prefix}card-inner-border-radius)); + } + + &:last-child { + border-bottom-width: 0; + @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius)); + } + } + + // Due to specificity of the above selector (`.card > .list-group`), we must + // use a child selector here to prevent double borders. + > .card-header + .list-group, + > .list-group + .card-footer { + border-top: 0; + } +} + +.card-body { + // Enable `flex-grow: 1` for decks and groups so that card blocks take up + // as much space as possible, ensuring footers are aligned to the bottom. + flex: 1 1 auto; + padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x); + color: var(--#{$prefix}card-color); +} + +.card-title { + margin-bottom: var(--#{$prefix}card-title-spacer-y); + color: var(--#{$prefix}card-title-color); +} + +.card-subtitle { + margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list + margin-bottom: 0; + color: var(--#{$prefix}card-subtitle-color); +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link { + &:hover { + text-decoration: if($link-hover-decoration == underline, none, null); + } + + + .card-link { + margin-left: var(--#{$prefix}card-spacer-x); + } +} + +// +// Optional textual caps +// + +.card-header { + padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x); + margin-bottom: 0; // Removes the default margin-bottom of + color: var(--#{$prefix}card-cap-color); + background-color: var(--#{$prefix}card-cap-bg); + border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color); + + &:first-child { + @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0); + } +} + +.card-footer { + padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x); + color: var(--#{$prefix}card-cap-color); + background-color: var(--#{$prefix}card-cap-bg); + border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color); + + &:last-child { + @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius)); + } +} + + +// +// Header navs +// + +.card-header-tabs { + margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list + margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list + margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list + border-bottom: 0; + + .nav-link.active { + background-color: var(--#{$prefix}card-bg); + border-bottom-color: var(--#{$prefix}card-bg); + } +} + +.card-header-pills { + margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list + margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list +} + +// Card image +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--#{$prefix}card-img-overlay-padding); + @include border-radius(var(--#{$prefix}card-inner-border-radius)); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch +} + +.card-img, +.card-img-top { + @include border-top-radius(var(--#{$prefix}card-inner-border-radius)); +} + +.card-img, +.card-img-bottom { + @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius)); +} + + +// +// Card groups +// + +.card-group { + // The child selector allows nested `.card` within `.card-group` + // to display properly. + > .card { + margin-bottom: var(--#{$prefix}card-group-margin); + } + + @include media-breakpoint-up(sm) { + display: flex; + flex-flow: row wrap; + // The child selector allows nested `.card` within `.card-group` + // to display properly. + > .card { + flex: 1 0 0; + margin-bottom: 0; + + + .card { + margin-left: 0; + border-left: 0; + } + + // Handle rounded corners + @if $enable-rounded { + &:not(:last-child) { + @include border-end-radius(0); + + > .card-img-top, + > .card-header { + // stylelint-disable-next-line property-disallowed-list + border-top-right-radius: 0; + } + > .card-img-bottom, + > .card-footer { + // stylelint-disable-next-line property-disallowed-list + border-bottom-right-radius: 0; + } + } + + &:not(:first-child) { + @include border-start-radius(0); + + > .card-img-top, + > .card-header { + // stylelint-disable-next-line property-disallowed-list + border-top-left-radius: 0; + } + > .card-img-bottom, + > .card-footer { + // stylelint-disable-next-line property-disallowed-list + border-bottom-left-radius: 0; + } + } + } + } + } +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_carousel.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_carousel.scss new file mode 100644 index 0000000..5ebf6b1 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_carousel.scss @@ -0,0 +1,226 @@ +// Notes on the classes: +// +// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically) +// even when their scroll action started on a carousel, but for compatibility (with Firefox) +// we're preventing all actions instead +// 2. The .carousel-item-start and .carousel-item-end is used to indicate where +// the active slide is heading. +// 3. .active.carousel-item is the current slide. +// 4. .active.carousel-item-start and .active.carousel-item-end is the current +// slide in its in-transition state. Only one of these occurs at a time. +// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end +// is the upcoming slide in transition. + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; + @include clearfix(); +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + backface-visibility: hidden; + @include transition($carousel-transition); +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + + +// +// Alternate transitions +// + +.carousel-fade { + .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; + } + + .carousel-item.active, + .carousel-item-next.carousel-item-start, + .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; + } + + .active.carousel-item-start, + .active.carousel-item-end { + z-index: 0; + opacity: 0; + @include transition(opacity 0s $carousel-transition-duration); + } +} + + +// +// Left/right controls for nav +// + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + // Use flex for alignment (1-3) + display: flex; // 1. allow flex styles + align-items: center; // 2. vertically center contents + justify-content: center; // 3. horizontally center contents + width: $carousel-control-width; + padding: 0; + color: $carousel-control-color; + text-align: center; + background: none; + filter: var(--#{$prefix}carousel-control-icon-filter); + border: 0; + opacity: $carousel-control-opacity; + @include transition($carousel-control-transition); + + // Hover/focus state + &:hover, + &:focus { + color: $carousel-control-color; + text-decoration: none; + outline: 0; + opacity: $carousel-control-hover-opacity; + } +} +.carousel-control-prev { + left: 0; + background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null); +} +.carousel-control-next { + right: 0; + background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null); +} + +// Icons for within +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: $carousel-control-icon-width; + height: $carousel-control-icon-width; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: escape-svg($carousel-control-prev-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-next-icon-bg) + "*/"}; +} +.carousel-control-next-icon { + background-image: escape-svg($carousel-control-next-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-prev-icon-bg) + "*/"}; +} + +// Optional indicator pips/controls +// +// Add a container (such as a list) with the following class and add an item (ideally a focusable control, +// like a button) with data-bs-target for each slide your carousel holds. + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + // Use the .carousel-control's width as margin so we don't overlay those + margin-right: $carousel-control-width; + margin-bottom: 1rem; + margin-left: $carousel-control-width; + + [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: $carousel-indicator-width; + height: $carousel-indicator-height; + padding: 0; + margin-right: $carousel-indicator-spacer; + margin-left: $carousel-indicator-spacer; + text-indent: -999px; + cursor: pointer; + background-color: var(--#{$prefix}carousel-indicator-active-bg); + background-clip: padding-box; + border: 0; + // Use transparent borders to increase the hit area by 10px on top and bottom. + border-top: $carousel-indicator-hit-area-height solid transparent; + border-bottom: $carousel-indicator-hit-area-height solid transparent; + opacity: $carousel-indicator-opacity; + @include transition($carousel-indicator-transition); + } + + .active { + opacity: $carousel-indicator-active-opacity; + } +} + + +// Optional captions +// +// + +.carousel-caption { + position: absolute; + right: (100% - $carousel-caption-width) * .5; + bottom: $carousel-caption-spacer; + left: (100% - $carousel-caption-width) * .5; + padding-top: $carousel-caption-padding-y; + padding-bottom: $carousel-caption-padding-y; + color: var(--#{$prefix}carousel-caption-color); + text-align: center; +} + +// Dark mode carousel + +@mixin carousel-dark() { + --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark}; + --#{$prefix}carousel-caption-color: #{$carousel-caption-color-dark}; + --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter-dark}; +} + +.carousel-dark { + @include carousel-dark(); +} + +:root, +[data-bs-theme="light"] { + --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg}; + --#{$prefix}carousel-caption-color: #{$carousel-caption-color}; + --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter}; +} + +@if $enable-dark-mode { + @include color-mode(dark, true) { + @include carousel-dark(); + } +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_close.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_close.scss new file mode 100644 index 0000000..d53c96f --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_close.scss @@ -0,0 +1,66 @@ +// Transparent background and border properties included for button version. +// iOS requires the button element instead of an anchor tag. +// If you want the anchor version, it requires `href="#"`. +// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile + +.btn-close { + // scss-docs-start close-css-vars + --#{$prefix}btn-close-color: #{$btn-close-color}; + --#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) }; + --#{$prefix}btn-close-opacity: #{$btn-close-opacity}; + --#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity}; + --#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow}; + --#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity}; + --#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity}; + // scss-docs-end close-css-vars + + box-sizing: content-box; + width: $btn-close-width; + height: $btn-close-height; + padding: $btn-close-padding-y $btn-close-padding-x; + color: var(--#{$prefix}btn-close-color); + background: transparent var(--#{$prefix}btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements + filter: var(--#{$prefix}btn-close-filter); + border: 0; // for button elements + @include border-radius(); + opacity: var(--#{$prefix}btn-close-opacity); + + // Override
's hover style + &:hover { + color: var(--#{$prefix}btn-close-color); + text-decoration: none; + opacity: var(--#{$prefix}btn-close-hover-opacity); + } + + &:focus { + outline: 0; + box-shadow: var(--#{$prefix}btn-close-focus-shadow); + opacity: var(--#{$prefix}btn-close-focus-opacity); + } + + &:disabled, + &.disabled { + pointer-events: none; + user-select: none; + opacity: var(--#{$prefix}btn-close-disabled-opacity); + } +} + +@mixin btn-close-white() { + --#{$prefix}btn-close-filter: #{$btn-close-filter-dark}; +} + +.btn-close-white { + @include btn-close-white(); +} + +:root, +[data-bs-theme="light"] { + --#{$prefix}btn-close-filter: #{$btn-close-filter}; +} + +@if $enable-dark-mode { + @include color-mode(dark, true) { + @include btn-close-white(); + } +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_containers.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_containers.scss new file mode 100644 index 0000000..83b3138 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_containers.scss @@ -0,0 +1,41 @@ +// Container widths +// +// Set the container width, and override it for fixed navbars in media queries. + +@if $enable-container-classes { + // Single container class with breakpoint max-widths + .container, + // 100% wide container at all breakpoints + .container-fluid { + @include make-container(); + } + + // Responsive containers that are 100% wide until a breakpoint + @each $breakpoint, $container-max-width in $container-max-widths { + .container-#{$breakpoint} { + @extend .container-fluid; + } + + @include media-breakpoint-up($breakpoint, $grid-breakpoints) { + %responsive-container-#{$breakpoint} { + max-width: $container-max-width; + } + + // Extend each breakpoint which is smaller or equal to the current breakpoint + $extend-breakpoint: true; + + @each $name, $width in $grid-breakpoints { + @if ($extend-breakpoint) { + .container#{breakpoint-infix($name, $grid-breakpoints)} { + @extend %responsive-container-#{$breakpoint}; + } + + // Once the current breakpoint is reached, stop extending + @if ($breakpoint == $name) { + $extend-breakpoint: false; + } + } + } + } + } +} diff --git a/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_dropdown.scss b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_dropdown.scss new file mode 100644 index 0000000..587ebb4 --- /dev/null +++ b/05_react/uebungen/u14_input-price/src/styles/01_frameworks/bootstrap-5.3.8/_dropdown.scss @@ -0,0 +1,250 @@ +// The dropdown wrapper (`
`) +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; + + // Generate the caret automatically + @include caret(); +} + +// The dropdown menu +.dropdown-menu { + // scss-docs-start dropdown-css-vars + --#{$prefix}dropdown-zindex: #{$zindex-dropdown}; + --#{$prefix}dropdown-min-width: #{$dropdown-min-width}; + --#{$prefix}dropdown-padding-x: #{$dropdown-padding-x}; + --#{$prefix}dropdown-padding-y: #{$dropdown-padding-y}; + --#{$prefix}dropdown-spacer: #{$dropdown-spacer}; + @include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size); + --#{$prefix}dropdown-color: #{$dropdown-color}; + --#{$prefix}dropdown-bg: #{$dropdown-bg}; + --#{$prefix}dropdown-border-color: #{$dropdown-border-color}; + --#{$prefix}dropdown-border-radius: #{$dropdown-border-radius}; + --#{$prefix}dropdown-border-width: #{$dropdown-border-width}; + --#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius}; + --#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg}; + --#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y}; + --#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow}; + --#{$prefix}dropdown-link-color: #{$dropdown-link-color}; + --#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color}; + --#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg}; + --#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color}; + --#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg}; + --#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color}; + --#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x}; + --#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y}; + --#{$prefix}dropdown-header-color: #{$dropdown-header-color}; + --#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x}; + --#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y}; + // scss-docs-end dropdown-css-vars + + position: absolute; + z-index: var(--#{$prefix}dropdown-zindex); + display: none; // none by default, but block on "open" of the menu + min-width: var(--#{$prefix}dropdown-min-width); + padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x); + margin: 0; // Override default margin of ul + @include font-size(var(--#{$prefix}dropdown-font-size)); + color: var(--#{$prefix}dropdown-color); + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + list-style: none; + background-color: var(--#{$prefix}dropdown-bg); + background-clip: padding-box; + border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color); + @include border-radius(var(--#{$prefix}dropdown-border-radius)); + @include box-shadow(var(--#{$prefix}dropdown-box-shadow)); + + &[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--#{$prefix}dropdown-spacer); + } + + @if $dropdown-padding-y == 0 { + > .dropdown-item:first-child, + > li:first-child .dropdown-item { + @include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius)); + } + > .dropdown-item:last-child, + > li:last-child .dropdown-item { + @include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius)); + } + + } +} + +// scss-docs-start responsive-breakpoints +// We deliberately hardcode the `bs-` prefix because we check +// this custom property in JS to determine Popper's positioning + +@each $breakpoint in map-keys($grid-breakpoints) { + @include media-breakpoint-up($breakpoint) { + $infix: breakpoint-infix($breakpoint, $grid-breakpoints); + + .dropdown-menu#{$infix}-start { + --bs-position: start; + + &[data-bs-popper] { + right: auto; + left: 0; + } + } + + .dropdown-menu#{$infix}-end { + --bs-position: end; + + &[data-bs-popper] { + right: 0; + left: auto; + } + } + } +} +// scss-docs-end responsive-breakpoints + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// Just add .dropup after the standard .dropdown class and you're set. +.dropup { + .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--#{$prefix}dropdown-spacer); + } + + .dropdown-toggle { + @include caret(up); + } +} + +.dropend { + .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--#{$prefix}dropdown-spacer); + } + + .dropdown-toggle { + @include caret(end); + &::after { + vertical-align: 0; + } + } +} + +.dropstart { + .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--#{$prefix}dropdown-spacer); + } + + .dropdown-toggle { + @include caret(start); + &::before { + vertical-align: 0; + } + } +} + + +// Dividers (basically an `
`) within the dropdown +.dropdown-divider { + height: 0; + margin: var(--#{$prefix}dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--#{$prefix}dropdown-divider-bg); + opacity: 1; // Revisit in v6 to de-dupe styles that conflict with
element +} + +// Links, buttons, and more within the dropdown menu +// +// `
+ +
+ + ); +}; + +export default Navbar; diff --git a/05_react/uebungen/u15_routing/src/main.jsx b/05_react/uebungen/u15_routing/src/main.jsx new file mode 100644 index 0000000..8cacd1a --- /dev/null +++ b/05_react/uebungen/u15_routing/src/main.jsx @@ -0,0 +1,19 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import { BrowserRouter } from 'react-router-dom'; + +import App from './App.jsx'; + +import 'bootstrap/dist/css/bootstrap.min.css'; +// import './styles/main.scss'; + +const root = createRoot(document.getElementById('root')); + +root.render( + + + + + , +); diff --git a/05_react/uebungen/u15_routing/src/pages/AboutPage.jsx b/05_react/uebungen/u15_routing/src/pages/AboutPage.jsx new file mode 100644 index 0000000..0fbfc09 --- /dev/null +++ b/05_react/uebungen/u15_routing/src/pages/AboutPage.jsx @@ -0,0 +1,34 @@ +const AboutPage = (props) => { + return ( +
+

About

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Minima, voluptatibus nobis molestiae, dignissimos id + dolores minus iste quisquam harum vitae rem dolorem debitis natus asperiores amet rerum ratione laboriosam quam. + Sit corporis voluptate laboriosam doloribus incidunt voluptatibus repellat. Excepturi vitae perferendis odit + enim, iusto, consequuntur assumenda corrupti autem eius minus explicabo tempore amet? Facere repudiandae, culpa + autem quae sint accusantium! Recusandae dicta itaque pariatur, veritatis voluptatem reprehenderit? Error facilis + fugit veritatis quam harum tempore dignissimos laboriosam commodi quod. Quas magnam modi saepe quae ab ipsam + amet veritatis molestias facilis odit? Quos nihil minus suscipit vel unde ipsa non quia ex quis obcaecati fugiat + animi nobis sit ducimus libero dolorem voluptates numquam, assumenda autem? Excepturi reprehenderit hic + aspernatur tempora, maiores nihil. Itaque quisquam expedita repellat voluptate, rem delectus sed, laborum dolor + minima nam ipsum possimus odit asperiores molestiae ex fugit sequi cupiditate doloremque tempora inventore + praesentium quo! Minima minus numquam aspernatur! Laudantium quisquam perspiciatis consectetur eos, nobis + doloribus reiciendis accusamus dolor quos cum cumque voluptatibus vero harum sapiente consequuntur eaque in quas + obcaecati. Et mollitia ex esse sint facilis fuga perferendis! Saepe ipsa voluptatum, nam labore corrupti, + laboriosam, sit ex explicabo facere laborum sunt natus eaque! Accusamus culpa harum repellendus iure, quasi, cum + architecto fugit ut est voluptatem cumque nisi recusandae? Cumque culpa sequi quis dolores nostrum omnis facilis + beatae quam similique, reiciendis nam modi hic libero natus blanditiis voluptatibus, magnam quos ea voluptate + odit commodi sapiente iusto dolor molestias! Blanditiis? Accusamus itaque nulla exercitationem. Maiores vitae at + dicta ipsam. Ullam eum excepturi eius, facere cumque nulla alias ab natus distinctio officia placeat possimus + optio commodi molestias repellendus voluptatem dicta delectus? Maxime aliquid numquam qui vitae doloribus + consectetur temporibus doloremque, perspiciatis sint quia obcaecati, nemo saepe velit odio nobis laborum. Natus + iure id nostrum quidem doloribus quae explicabo deserunt et quia? Labore dicta unde eum est esse reiciendis + maiores dignissimos temporibus ullam magnam, amet exercitationem praesentium voluptas, impedit sed alias, + eveniet voluptates nisi nulla dolore sequi similique fugit? Reiciendis, animi quibusdam? Pariatur sequi cum +

+
+ ); +}; + +export default AboutPage; diff --git a/05_react/uebungen/u15_routing/src/pages/HomePage.jsx b/05_react/uebungen/u15_routing/src/pages/HomePage.jsx new file mode 100644 index 0000000..dbe58d5 --- /dev/null +++ b/05_react/uebungen/u15_routing/src/pages/HomePage.jsx @@ -0,0 +1,10 @@ +const HomePage = (props) => { + return ( +
+

Home

+

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Ad, voluptatibus.

+
+ ); +}; + +export default HomePage; diff --git a/05_react/uebungen/u15_routing/src/routes/Router.jsx b/05_react/uebungen/u15_routing/src/routes/Router.jsx new file mode 100644 index 0000000..01695be --- /dev/null +++ b/05_react/uebungen/u15_routing/src/routes/Router.jsx @@ -0,0 +1,17 @@ +import { Routes, Route } from 'react-router-dom'; + +import AboutPage from '../pages/AboutPage'; +import HomePage from '../pages/HomePage'; + +const Router = (props) => { + // const { } = props; + + return ( + + } /> + } /> + + ); +}; + +export default Router; diff --git a/05_react/uebungen/u15_routing/vite.config.js b/05_react/uebungen/u15_routing/vite.config.js new file mode 100644 index 0000000..8b0f57b --- /dev/null +++ b/05_react/uebungen/u15_routing/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/05_react/unterricht/tag41/01_components-with-hooks/src/App.jsx b/05_react/unterricht/tag41/01_components-with-hooks/src/App.jsx index fcd370a..0e8b010 100644 --- a/05_react/unterricht/tag41/01_components-with-hooks/src/App.jsx +++ b/05_react/unterricht/tag41/01_components-with-hooks/src/App.jsx @@ -40,6 +40,7 @@ function App(props) {
+

diff --git a/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/ExampleUseReducer.jsx b/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/ExampleUseReducer.jsx index 1f2c8eb..559f808 100644 --- a/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/ExampleUseReducer.jsx +++ b/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/ExampleUseReducer.jsx @@ -12,13 +12,13 @@ function reducer(state, action) { const { type, payload = 1 } = action; switch (type) { case 'INCREASE': - return { counter: state.counter + 1 }; + return { ...state, counter: state.counter + 1 }; case 'DECREASE': - return { counter: state.counter - 1 }; + return { ...state, counter: state.counter - 1 }; case 'DOUBLE': - return { counter: state.counter * 2 }; + return { ...state, counter: state.counter * 2 }; case 'INC_VALUE': - return { counter: state.counter + payload }; + return { ...state, counter: state.counter + payload }; default: console.warn('Action Type not found'); diff --git a/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/theme-switcher/ThemeContext.jsx b/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/theme-switcher/ThemeContext.jsx index a8a64d1..ee75ac4 100644 --- a/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/theme-switcher/ThemeContext.jsx +++ b/05_react/unterricht/tag41/01_components-with-hooks/src/components/examples/theme-switcher/ThemeContext.jsx @@ -1,6 +1,7 @@ import { createContext } from 'react'; export const THEME_DEFAULT_VALUE = 'light'; + const ThemeContext = createContext(THEME_DEFAULT_VALUE); // standard theme is light; // ThemeContext wird durch createContext() zu einem JSX-Element