fastlifeweb 0.12.0__py3-none-any.whl → 0.14.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fastlife/__init__.py +19 -2
- fastlife/adapters/__init__.py +3 -0
- fastlife/adapters/jinjax/__init__.py +7 -0
- fastlife/{templating/renderer/jinjax.py → adapters/jinjax/renderer.py} +50 -29
- fastlife/{templating/renderer → adapters/jinjax}/widgets/base.py +1 -1
- fastlife/{templating/renderer → adapters/jinjax}/widgets/boolean.py +1 -1
- fastlife/{templating/renderer → adapters/jinjax}/widgets/checklist.py +1 -1
- fastlife/{templating/renderer → adapters/jinjax}/widgets/dropdown.py +1 -1
- fastlife/{templating/renderer → adapters/jinjax}/widgets/factory.py +10 -10
- fastlife/{templating/renderer → adapters/jinjax}/widgets/hidden.py +2 -2
- fastlife/{templating/renderer → adapters/jinjax}/widgets/model.py +2 -2
- fastlife/{templating/renderer → adapters/jinjax}/widgets/sequence.py +2 -2
- fastlife/{templating/renderer → adapters/jinjax}/widgets/text.py +7 -6
- fastlife/{templating/renderer → adapters/jinjax}/widgets/union.py +2 -2
- fastlife/{templates → components}/A.jinja +1 -1
- fastlife/{templates → components}/Button.jinja +1 -1
- fastlife/{templates → components}/Checkbox.jinja +1 -1
- fastlife/{templates → components}/Details.jinja +1 -1
- fastlife/{templates → components}/Form.jinja +1 -1
- fastlife/{templates → components}/H1.jinja +1 -1
- fastlife/{templates → components}/H2.jinja +1 -1
- fastlife/{templates → components}/H3.jinja +1 -1
- fastlife/{templates → components}/H4.jinja +1 -1
- fastlife/{templates → components}/H5.jinja +1 -1
- fastlife/{templates → components}/H6.jinja +1 -1
- fastlife/{templates → components}/Input.jinja +8 -1
- fastlife/{templates → components}/Label.jinja +1 -1
- fastlife/{templates → components}/P.jinja +1 -1
- fastlife/{templates → components}/Radio.jinja +3 -3
- fastlife/{templates → components}/Select.jinja +1 -1
- fastlife/{templates → components}/Summary.jinja +1 -1
- fastlife/{templates → components}/Table.jinja +1 -1
- fastlife/{templates → components}/Td.jinja +1 -1
- fastlife/{templates → components}/Th.jinja +1 -1
- fastlife/{templates → components}/pydantic_form/Boolean.jinja +1 -1
- fastlife/{templates → components}/pydantic_form/Checklist.jinja +1 -1
- fastlife/{templates → components}/pydantic_form/Dropdown.jinja +1 -1
- fastlife/{templates → components}/pydantic_form/Hidden.jinja +1 -1
- fastlife/{templates → components}/pydantic_form/Model.jinja +2 -2
- fastlife/{templates → components}/pydantic_form/Sequence.jinja +3 -3
- fastlife/{templates → components}/pydantic_form/Text.jinja +1 -1
- fastlife/{templates → components}/pydantic_form/Textarea.jinja +10 -4
- fastlife/{templates → components}/pydantic_form/Union.jinja +4 -4
- fastlife/{templates → components}/pydantic_form/Widget.jinja +1 -1
- fastlife/config/__init__.py +5 -0
- fastlife/config/configurator.py +232 -120
- fastlife/config/exceptions.py +41 -0
- fastlife/config/registry.py +26 -7
- fastlife/config/resources.py +216 -0
- fastlife/config/settings.py +17 -6
- fastlife/config/views.py +73 -0
- fastlife/request/form_data.py +4 -4
- fastlife/request/localizer.py +13 -0
- fastlife/request/request.py +7 -3
- fastlife/routing/route.py +1 -1
- fastlife/routing/router.py +1 -1
- fastlife/security/csrf.py +1 -1
- fastlife/security/policy.py +1 -1
- fastlife/services/__init__.py +0 -0
- fastlife/{templating/renderer/abstract.py → services/templates.py} +48 -55
- fastlife/services/translations.py +131 -0
- fastlife/templates/__init__.py +10 -0
- fastlife/{templating → templates}/binding.py +2 -13
- fastlife/views/pydantic_form.py +7 -4
- {fastlifeweb-0.12.0.dist-info → fastlifeweb-0.14.0.dist-info}/METADATA +43 -5
- fastlifeweb-0.14.0.dist-info/RECORD +1710 -0
- fastlife/templating/__init__.py +0 -13
- fastlife/templating/renderer/__init__.py +0 -11
- fastlifeweb-0.12.0.dist-info/RECORD +0 -1703
- /fastlife/{templating/renderer → adapters/jinjax}/widgets/__init__.py +0 -0
- /fastlife/{templates → components}/CsrfToken.jinja +0 -0
- /fastlife/{templates → components}/Hidden.jinja +0 -0
- /fastlife/{templates → components}/Option.jinja +0 -0
- /fastlife/{templates → components}/Tbody.jinja +0 -0
- /fastlife/{templates → components}/Textarea.jinja +0 -0
- /fastlife/{templates → components}/Tfoot.jinja +0 -0
- /fastlife/{templates → components}/Thead.jinja +0 -0
- /fastlife/{templates → components}/Tr.jinja +0 -0
- /fastlife/{templates → components}/icons/AcademicCap.jinja +0 -0
- /fastlife/{templates → components}/icons/AdjustmentsHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/AdjustmentsVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/ArchiveBox.jinja +0 -0
- /fastlife/{templates → components}/icons/ArchiveBoxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArchiveBoxXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowDownCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowDownOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowDownOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowDownTray.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLeftCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLeftEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLeftOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLeftStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLongDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLongLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLongRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowLongUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowPath.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowPathRoundedSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowRightCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowRightEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowRightOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowRightStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowSmallDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowSmallLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowSmallRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowSmallUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTopRightOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTrendingDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTrendingUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnLeftDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnLeftUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnRightDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnRightUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowTurnUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUpCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUpOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUpOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUpTray.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUturnDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUturnLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUturnRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowUturnUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowsPointingIn.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowsPointingOut.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowsRightLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ArrowsUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/AtSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/Backspace.jinja +0 -0
- /fastlife/{templates → components}/icons/Backward.jinja +0 -0
- /fastlife/{templates → components}/icons/Banknotes.jinja +0 -0
- /fastlife/{templates → components}/icons/Bars2.jinja +0 -0
- /fastlife/{templates → components}/icons/Bars3.jinja +0 -0
- /fastlife/{templates → components}/icons/Bars3BottomLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/Bars3BottomRight.jinja +0 -0
- /fastlife/{templates → components}/icons/Bars3CenterLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/Bars4.jinja +0 -0
- /fastlife/{templates → components}/icons/BarsArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/BarsArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/Battery0.jinja +0 -0
- /fastlife/{templates → components}/icons/Battery100.jinja +0 -0
- /fastlife/{templates → components}/icons/Battery50.jinja +0 -0
- /fastlife/{templates → components}/icons/Beaker.jinja +0 -0
- /fastlife/{templates → components}/icons/Bell.jinja +0 -0
- /fastlife/{templates → components}/icons/BellAlert.jinja +0 -0
- /fastlife/{templates → components}/icons/BellSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/BellSnooze.jinja +0 -0
- /fastlife/{templates → components}/icons/Bold.jinja +0 -0
- /fastlife/{templates → components}/icons/Bolt.jinja +0 -0
- /fastlife/{templates → components}/icons/BoltSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/BookOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/Bookmark.jinja +0 -0
- /fastlife/{templates → components}/icons/BookmarkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/BookmarkSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/Briefcase.jinja +0 -0
- /fastlife/{templates → components}/icons/BugAnt.jinja +0 -0
- /fastlife/{templates → components}/icons/BuildingLibrary.jinja +0 -0
- /fastlife/{templates → components}/icons/BuildingOffice.jinja +0 -0
- /fastlife/{templates → components}/icons/BuildingOffice2.jinja +0 -0
- /fastlife/{templates → components}/icons/BuildingStorefront.jinja +0 -0
- /fastlife/{templates → components}/icons/Cake.jinja +0 -0
- /fastlife/{templates → components}/icons/Calculator.jinja +0 -0
- /fastlife/{templates → components}/icons/Calendar.jinja +0 -0
- /fastlife/{templates → components}/icons/CalendarDateRange.jinja +0 -0
- /fastlife/{templates → components}/icons/CalendarDays.jinja +0 -0
- /fastlife/{templates → components}/icons/Camera.jinja +0 -0
- /fastlife/{templates → components}/icons/ChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/ChartBarSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/ChartPie.jinja +0 -0
- /fastlife/{templates → components}/icons/ChatBubbleBottomCenter.jinja +0 -0
- /fastlife/{templates → components}/icons/ChatBubbleBottomCenterText.jinja +0 -0
- /fastlife/{templates → components}/icons/ChatBubbleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ChatBubbleLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/ChatBubbleLeftRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ChatBubbleOvalLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ChatBubbleOvalLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/Check.jinja +0 -0
- /fastlife/{templates → components}/icons/CheckBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/CheckCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronDoubleDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronDoubleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronDoubleRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronDoubleUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronDown.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronRight.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronUp.jinja +0 -0
- /fastlife/{templates → components}/icons/ChevronUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/CircleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/Clipboard.jinja +0 -0
- /fastlife/{templates → components}/icons/ClipboardDocument.jinja +0 -0
- /fastlife/{templates → components}/icons/ClipboardDocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/ClipboardDocumentList.jinja +0 -0
- /fastlife/{templates → components}/icons/Clock.jinja +0 -0
- /fastlife/{templates → components}/icons/Cloud.jinja +0 -0
- /fastlife/{templates → components}/icons/CloudArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/CloudArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/CodeBracket.jinja +0 -0
- /fastlife/{templates → components}/icons/CodeBracketSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/Cog.jinja +0 -0
- /fastlife/{templates → components}/icons/Cog6Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/Cog8Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/CommandLine.jinja +0 -0
- /fastlife/{templates → components}/icons/ComputerDesktop.jinja +0 -0
- /fastlife/{templates → components}/icons/CpuChip.jinja +0 -0
- /fastlife/{templates → components}/icons/CreditCard.jinja +0 -0
- /fastlife/{templates → components}/icons/Cube.jinja +0 -0
- /fastlife/{templates → components}/icons/CubeTransparent.jinja +0 -0
- /fastlife/{templates → components}/icons/CurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/CurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/CurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/CurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/CurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/CurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/CursorArrowRays.jinja +0 -0
- /fastlife/{templates → components}/icons/CursorArrowRipple.jinja +0 -0
- /fastlife/{templates → components}/icons/DevicePhoneMobile.jinja +0 -0
- /fastlife/{templates → components}/icons/DeviceTablet.jinja +0 -0
- /fastlife/{templates → components}/icons/Divide.jinja +0 -0
- /fastlife/{templates → components}/icons/Document.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentCurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentCurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentCurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentCurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentCurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentCurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentDuplicate.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentMagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/DocumentText.jinja +0 -0
- /fastlife/{templates → components}/icons/EllipsisHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/EllipsisHorizontalCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/EllipsisVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/Envelope.jinja +0 -0
- /fastlife/{templates → components}/icons/EnvelopeOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/Equals.jinja +0 -0
- /fastlife/{templates → components}/icons/ExclamationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/ExclamationTriangle.jinja +0 -0
- /fastlife/{templates → components}/icons/Eye.jinja +0 -0
- /fastlife/{templates → components}/icons/EyeDropper.jinja +0 -0
- /fastlife/{templates → components}/icons/EyeSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/FaceFrown.jinja +0 -0
- /fastlife/{templates → components}/icons/FaceSmile.jinja +0 -0
- /fastlife/{templates → components}/icons/Film.jinja +0 -0
- /fastlife/{templates → components}/icons/FingerPrint.jinja +0 -0
- /fastlife/{templates → components}/icons/Fire.jinja +0 -0
- /fastlife/{templates → components}/icons/Flag.jinja +0 -0
- /fastlife/{templates → components}/icons/Folder.jinja +0 -0
- /fastlife/{templates → components}/icons/FolderArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/FolderMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/FolderOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/FolderPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/Forward.jinja +0 -0
- /fastlife/{templates → components}/icons/Funnel.jinja +0 -0
- /fastlife/{templates → components}/icons/Gif.jinja +0 -0
- /fastlife/{templates → components}/icons/Gift.jinja +0 -0
- /fastlife/{templates → components}/icons/GiftTop.jinja +0 -0
- /fastlife/{templates → components}/icons/GlobeAlt.jinja +0 -0
- /fastlife/{templates → components}/icons/GlobeAmericas.jinja +0 -0
- /fastlife/{templates → components}/icons/GlobeAsiaAustralia.jinja +0 -0
- /fastlife/{templates → components}/icons/GlobeEuropeAfrica.jinja +0 -0
- /fastlife/{templates → components}/icons/H1.jinja +0 -0
- /fastlife/{templates → components}/icons/H2.jinja +0 -0
- /fastlife/{templates → components}/icons/H3.jinja +0 -0
- /fastlife/{templates → components}/icons/HandRaised.jinja +0 -0
- /fastlife/{templates → components}/icons/HandThumbDown.jinja +0 -0
- /fastlife/{templates → components}/icons/HandThumbUp.jinja +0 -0
- /fastlife/{templates → components}/icons/Hashtag.jinja +0 -0
- /fastlife/{templates → components}/icons/Heart.jinja +0 -0
- /fastlife/{templates → components}/icons/Home.jinja +0 -0
- /fastlife/{templates → components}/icons/HomeModern.jinja +0 -0
- /fastlife/{templates → components}/icons/Identification.jinja +0 -0
- /fastlife/{templates → components}/icons/Inbox.jinja +0 -0
- /fastlife/{templates → components}/icons/InboxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/InboxStack.jinja +0 -0
- /fastlife/{templates → components}/icons/InformationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/Italic.jinja +0 -0
- /fastlife/{templates → components}/icons/Key.jinja +0 -0
- /fastlife/{templates → components}/icons/Language.jinja +0 -0
- /fastlife/{templates → components}/icons/Lifebuoy.jinja +0 -0
- /fastlife/{templates → components}/icons/LightBulb.jinja +0 -0
- /fastlife/{templates → components}/icons/Link.jinja +0 -0
- /fastlife/{templates → components}/icons/LinkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/ListBullet.jinja +0 -0
- /fastlife/{templates → components}/icons/LockClosed.jinja +0 -0
- /fastlife/{templates → components}/icons/LockOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/MagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/MagnifyingGlassCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/MagnifyingGlassMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/MagnifyingGlassPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/Map.jinja +0 -0
- /fastlife/{templates → components}/icons/MapPin.jinja +0 -0
- /fastlife/{templates → components}/icons/Megaphone.jinja +0 -0
- /fastlife/{templates → components}/icons/Microphone.jinja +0 -0
- /fastlife/{templates → components}/icons/Minus.jinja +0 -0
- /fastlife/{templates → components}/icons/MinusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/MinusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/Moon.jinja +0 -0
- /fastlife/{templates → components}/icons/MusicalNote.jinja +0 -0
- /fastlife/{templates → components}/icons/Newspaper.jinja +0 -0
- /fastlife/{templates → components}/icons/NoSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/NumberedList.jinja +0 -0
- /fastlife/{templates → components}/icons/PaintBrush.jinja +0 -0
- /fastlife/{templates → components}/icons/PaperAirplane.jinja +0 -0
- /fastlife/{templates → components}/icons/PaperClip.jinja +0 -0
- /fastlife/{templates → components}/icons/Pause.jinja +0 -0
- /fastlife/{templates → components}/icons/PauseCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/Pencil.jinja +0 -0
- /fastlife/{templates → components}/icons/PencilSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/PercentBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/Phone.jinja +0 -0
- /fastlife/{templates → components}/icons/PhoneArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/PhoneArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/PhoneXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/Photo.jinja +0 -0
- /fastlife/{templates → components}/icons/Play.jinja +0 -0
- /fastlife/{templates → components}/icons/PlayCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/PlayPause.jinja +0 -0
- /fastlife/{templates → components}/icons/Plus.jinja +0 -0
- /fastlife/{templates → components}/icons/PlusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/PlusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/Power.jinja +0 -0
- /fastlife/{templates → components}/icons/PresentationChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/PresentationChartLine.jinja +0 -0
- /fastlife/{templates → components}/icons/Printer.jinja +0 -0
- /fastlife/{templates → components}/icons/PuzzlePiece.jinja +0 -0
- /fastlife/{templates → components}/icons/QrCode.jinja +0 -0
- /fastlife/{templates → components}/icons/QuestionMarkCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/QueueList.jinja +0 -0
- /fastlife/{templates → components}/icons/Radio.jinja +0 -0
- /fastlife/{templates → components}/icons/ReceiptPercent.jinja +0 -0
- /fastlife/{templates → components}/icons/ReceiptRefund.jinja +0 -0
- /fastlife/{templates → components}/icons/RectangleGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/RectangleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/RocketLaunch.jinja +0 -0
- /fastlife/{templates → components}/icons/Rss.jinja +0 -0
- /fastlife/{templates → components}/icons/Scale.jinja +0 -0
- /fastlife/{templates → components}/icons/Scissors.jinja +0 -0
- /fastlife/{templates → components}/icons/Server.jinja +0 -0
- /fastlife/{templates → components}/icons/ServerStack.jinja +0 -0
- /fastlife/{templates → components}/icons/Share.jinja +0 -0
- /fastlife/{templates → components}/icons/ShieldCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/ShieldExclamation.jinja +0 -0
- /fastlife/{templates → components}/icons/ShoppingBag.jinja +0 -0
- /fastlife/{templates → components}/icons/ShoppingCart.jinja +0 -0
- /fastlife/{templates → components}/icons/Signal.jinja +0 -0
- /fastlife/{templates → components}/icons/SignalSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/Slash.jinja +0 -0
- /fastlife/{templates → components}/icons/Sparkles.jinja +0 -0
- /fastlife/{templates → components}/icons/SpeakerWave.jinja +0 -0
- /fastlife/{templates → components}/icons/SpeakerXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/Square2Stack.jinja +0 -0
- /fastlife/{templates → components}/icons/Square3Stack3d.jinja +0 -0
- /fastlife/{templates → components}/icons/Squares2x2.jinja +0 -0
- /fastlife/{templates → components}/icons/SquaresPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/Star.jinja +0 -0
- /fastlife/{templates → components}/icons/Stop.jinja +0 -0
- /fastlife/{templates → components}/icons/StopCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/Strikethrough.jinja +0 -0
- /fastlife/{templates → components}/icons/Sun.jinja +0 -0
- /fastlife/{templates → components}/icons/Swatch.jinja +0 -0
- /fastlife/{templates → components}/icons/TableCells.jinja +0 -0
- /fastlife/{templates → components}/icons/Tag.jinja +0 -0
- /fastlife/{templates → components}/icons/Ticket.jinja +0 -0
- /fastlife/{templates → components}/icons/Trash.jinja +0 -0
- /fastlife/{templates → components}/icons/Trophy.jinja +0 -0
- /fastlife/{templates → components}/icons/Truck.jinja +0 -0
- /fastlife/{templates → components}/icons/Tv.jinja +0 -0
- /fastlife/{templates → components}/icons/Underline.jinja +0 -0
- /fastlife/{templates → components}/icons/User.jinja +0 -0
- /fastlife/{templates → components}/icons/UserCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/UserGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/UserMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/UserPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/Users.jinja +0 -0
- /fastlife/{templates → components}/icons/Variable.jinja +0 -0
- /fastlife/{templates → components}/icons/VideoCamera.jinja +0 -0
- /fastlife/{templates → components}/icons/VideoCameraSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/ViewColumns.jinja +0 -0
- /fastlife/{templates → components}/icons/ViewfinderCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/Wallet.jinja +0 -0
- /fastlife/{templates → components}/icons/Wifi.jinja +0 -0
- /fastlife/{templates → components}/icons/Window.jinja +0 -0
- /fastlife/{templates → components}/icons/Wrench.jinja +0 -0
- /fastlife/{templates → components}/icons/WrenchScrewdriver.jinja +0 -0
- /fastlife/{templates → components}/icons/XCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/XMark.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/AcademicCap.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/AdjustmentsHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/AdjustmentsVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArchiveBox.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArchiveBoxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArchiveBoxXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowDownCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowDownOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowDownOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowDownTray.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLeftCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLeftEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLeftStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLongDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLongLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLongRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowLongUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowPath.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowPathRoundedSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowRightCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowRightEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowRightStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTopRightOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTrendingDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTrendingUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnLeftDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnLeftUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnRightDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnRightUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowTurnUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUpCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUpOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUpOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUpTray.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUturnDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUturnLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUturnRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowUturnUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowsPointingIn.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowsPointingOut.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowsRightLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ArrowsUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/AtSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Backspace.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Backward.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Banknotes.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bars2.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bars3.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bars3BottomLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bars3BottomRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bars3CenterLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bars4.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BarsArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BarsArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Battery0.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Battery100.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Battery50.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Beaker.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bell.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BellAlert.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BellSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BellSnooze.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bold.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bolt.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BoltSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BookOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Bookmark.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BookmarkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BookmarkSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Briefcase.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BugAnt.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BuildingLibrary.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BuildingOffice.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BuildingOffice2.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/BuildingStorefront.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Cake.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Calculator.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Calendar.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CalendarDateRange.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CalendarDays.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Camera.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChartBarSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChartPie.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChatBubbleBottomCenter.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChatBubbleBottomCenterText.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChatBubbleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChatBubbleLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChatBubbleLeftRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChatBubbleOvalLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChatBubbleOvalLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Check.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CheckBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CheckCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronDoubleDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronDoubleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronDoubleRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronDoubleUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ChevronUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CircleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Clipboard.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ClipboardDocument.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ClipboardDocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ClipboardDocumentList.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Clock.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Cloud.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CloudArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CloudArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CodeBracket.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CodeBracketSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Cog.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Cog6Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Cog8Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CommandLine.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ComputerDesktop.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CpuChip.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CreditCard.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Cube.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CubeTransparent.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CursorArrowRays.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/CursorArrowRipple.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DevicePhoneMobile.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DeviceTablet.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Divide.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Document.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentCurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentCurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentCurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentCurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentCurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentCurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentDuplicate.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentMagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/DocumentText.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/EllipsisHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/EllipsisHorizontalCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/EllipsisVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Envelope.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/EnvelopeOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Equals.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ExclamationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ExclamationTriangle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Eye.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/EyeDropper.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/EyeSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/FaceFrown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/FaceSmile.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Film.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/FingerPrint.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Fire.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Flag.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Folder.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/FolderArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/FolderMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/FolderOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/FolderPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Forward.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Funnel.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Gif.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Gift.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/GiftTop.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/GlobeAlt.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/GlobeAmericas.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/GlobeAsiaAustralia.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/GlobeEuropeAfrica.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/H1.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/H2.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/H3.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/HandRaised.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/HandThumbDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/HandThumbUp.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Hashtag.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Heart.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Home.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/HomeModern.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Identification.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Inbox.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/InboxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/InboxStack.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/InformationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Italic.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Key.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Language.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Lifebuoy.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/LightBulb.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Link.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/LinkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ListBullet.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/LockClosed.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/LockOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/MagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/MagnifyingGlassCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/MagnifyingGlassMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/MagnifyingGlassPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Map.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/MapPin.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Megaphone.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Microphone.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Minus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/MinusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Moon.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/MusicalNote.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Newspaper.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/NoSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/NumberedList.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PaintBrush.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PaperAirplane.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PaperClip.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Pause.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PauseCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Pencil.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PencilSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PercentBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Phone.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PhoneArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PhoneArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PhoneXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Photo.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Play.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PlayCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PlayPause.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Plus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PlusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Power.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PresentationChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PresentationChartLine.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Printer.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/PuzzlePiece.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/QrCode.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/QuestionMarkCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/QueueList.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Radio.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ReceiptPercent.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ReceiptRefund.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/RectangleGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/RectangleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/RocketLaunch.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Rss.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Scale.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Scissors.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Server.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ServerStack.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Share.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ShieldCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ShieldExclamation.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ShoppingBag.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ShoppingCart.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Signal.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/SignalSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Slash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Sparkles.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/SpeakerWave.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/SpeakerXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Square2Stack.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Square3Stack3d.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Squares2x2.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/SquaresPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Star.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Stop.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/StopCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Strikethrough.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Sun.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Swatch.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/TableCells.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Tag.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Ticket.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Trash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Trophy.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Truck.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Tv.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Underline.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/User.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/UserCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/UserGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/UserMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/UserPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Users.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Variable.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/VideoCamera.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/VideoCameraSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ViewColumns.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/ViewfinderCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Wallet.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Wifi.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Window.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/Wrench.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/WrenchScrewdriver.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/XCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/micro/XMark.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/AcademicCap.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/AdjustmentsHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/AdjustmentsVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArchiveBox.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArchiveBoxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArchiveBoxXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowDownCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowDownOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowDownOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowDownTray.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLeftCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLeftEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLeftOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLeftStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLongDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLongLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLongRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowLongUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowPath.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowPathRoundedSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowRightCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowRightEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowRightOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowRightStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowSmallDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowSmallLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowSmallRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowSmallUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTopRightOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTrendingDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTrendingUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnLeftDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnLeftUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnRightDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnRightUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowTurnUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUpCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUpOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUpOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUpTray.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUturnDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUturnLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUturnRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowUturnUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowsPointingIn.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowsPointingOut.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowsRightLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ArrowsUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/AtSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Backspace.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Backward.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Banknotes.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bars2.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bars3.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bars3BottomLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bars3BottomRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bars3CenterLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bars4.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BarsArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BarsArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Battery0.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Battery100.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Battery50.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Beaker.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bell.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BellAlert.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BellSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BellSnooze.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bold.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bolt.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BoltSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BookOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Bookmark.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BookmarkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BookmarkSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Briefcase.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BugAnt.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BuildingLibrary.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BuildingOffice.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BuildingOffice2.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/BuildingStorefront.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Cake.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Calculator.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Calendar.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CalendarDateRange.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CalendarDays.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Camera.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChartBarSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChartPie.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChatBubbleBottomCenter.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChatBubbleBottomCenterText.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChatBubbleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChatBubbleLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChatBubbleLeftRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChatBubbleOvalLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChatBubbleOvalLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Check.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CheckBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CheckCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronDoubleDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronDoubleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronDoubleRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronDoubleUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ChevronUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CircleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Clipboard.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ClipboardDocument.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ClipboardDocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ClipboardDocumentList.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Clock.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Cloud.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CloudArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CloudArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CodeBracket.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CodeBracketSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Cog.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Cog6Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Cog8Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CommandLine.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ComputerDesktop.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CpuChip.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CreditCard.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Cube.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CubeTransparent.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CursorArrowRays.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/CursorArrowRipple.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DevicePhoneMobile.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DeviceTablet.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Divide.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Document.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentCurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentCurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentCurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentCurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentCurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentCurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentDuplicate.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentMagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/DocumentText.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/EllipsisHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/EllipsisHorizontalCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/EllipsisVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Envelope.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/EnvelopeOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Equals.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ExclamationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ExclamationTriangle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Eye.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/EyeDropper.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/EyeSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/FaceFrown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/FaceSmile.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Film.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/FingerPrint.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Fire.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Flag.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Folder.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/FolderArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/FolderMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/FolderOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/FolderPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Forward.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Funnel.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Gif.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Gift.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/GiftTop.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/GlobeAlt.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/GlobeAmericas.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/GlobeAsiaAustralia.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/GlobeEuropeAfrica.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/H1.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/H2.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/H3.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/HandRaised.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/HandThumbDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/HandThumbUp.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Hashtag.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Heart.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Home.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/HomeModern.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Identification.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Inbox.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/InboxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/InboxStack.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/InformationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Italic.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Key.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Language.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Lifebuoy.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/LightBulb.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Link.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/LinkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ListBullet.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/LockClosed.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/LockOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MagnifyingGlassCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MagnifyingGlassMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MagnifyingGlassPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Map.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MapPin.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Megaphone.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Microphone.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Minus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MinusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MinusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Moon.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/MusicalNote.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Newspaper.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/NoSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/NumberedList.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PaintBrush.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PaperAirplane.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PaperClip.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Pause.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PauseCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Pencil.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PencilSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PercentBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Phone.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PhoneArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PhoneArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PhoneXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Photo.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Play.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PlayCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PlayPause.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Plus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PlusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PlusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Power.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PresentationChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PresentationChartLine.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Printer.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/PuzzlePiece.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/QrCode.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/QuestionMarkCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/QueueList.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Radio.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ReceiptPercent.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ReceiptRefund.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/RectangleGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/RectangleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/RocketLaunch.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Rss.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Scale.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Scissors.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Server.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ServerStack.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Share.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ShieldCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ShieldExclamation.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ShoppingBag.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ShoppingCart.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Signal.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/SignalSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Slash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Sparkles.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/SpeakerWave.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/SpeakerXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Square2Stack.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Square3Stack3d.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Squares2x2.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/SquaresPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Star.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Stop.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/StopCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Strikethrough.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Sun.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Swatch.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/TableCells.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Tag.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Ticket.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Trash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Trophy.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Truck.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Tv.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Underline.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/User.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/UserCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/UserGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/UserMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/UserPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Users.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Variable.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/VideoCamera.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/VideoCameraSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ViewColumns.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/ViewfinderCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Wallet.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Wifi.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Window.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/Wrench.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/WrenchScrewdriver.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/XCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/mini/XMark.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/AcademicCap.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/AdjustmentsHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/AdjustmentsVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArchiveBox.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArchiveBoxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArchiveBoxXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowDownCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowDownOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowDownOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowDownTray.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLeftCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLeftEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLeftOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLeftStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLongDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLongLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLongRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowLongUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowPath.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowPathRoundedSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowRightCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowRightEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowRightOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowRightStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowSmallDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowSmallLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowSmallRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowSmallUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTopRightOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTrendingDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTrendingUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnLeftDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnLeftUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnRightDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnRightUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowTurnUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUpCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUpOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUpOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUpTray.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUturnDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUturnLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUturnRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowUturnUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowsPointingIn.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowsPointingOut.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowsRightLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ArrowsUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/AtSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Backspace.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Backward.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Banknotes.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bars2.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bars3.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bars3BottomLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bars3BottomRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bars3CenterLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bars4.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BarsArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BarsArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Battery0.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Battery100.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Battery50.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Beaker.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bell.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BellAlert.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BellSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BellSnooze.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bold.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bolt.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BoltSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BookOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Bookmark.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BookmarkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BookmarkSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Briefcase.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BugAnt.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BuildingLibrary.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BuildingOffice.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BuildingOffice2.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/BuildingStorefront.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Cake.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Calculator.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Calendar.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CalendarDateRange.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CalendarDays.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Camera.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChartBarSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChartPie.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChatBubbleBottomCenter.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChatBubbleBottomCenterText.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChatBubbleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChatBubbleLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChatBubbleLeftRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChatBubbleOvalLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChatBubbleOvalLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Check.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CheckBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CheckCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronDoubleDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronDoubleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronDoubleRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronDoubleUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ChevronUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CircleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Clipboard.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ClipboardDocument.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ClipboardDocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ClipboardDocumentList.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Clock.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Cloud.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CloudArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CloudArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CodeBracket.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CodeBracketSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Cog.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Cog6Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Cog8Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CommandLine.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ComputerDesktop.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CpuChip.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CreditCard.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Cube.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CubeTransparent.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CursorArrowRays.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/CursorArrowRipple.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DevicePhoneMobile.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DeviceTablet.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Divide.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Document.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentCurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentCurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentCurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentCurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentCurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentCurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentDuplicate.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentMagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/DocumentText.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/EllipsisHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/EllipsisHorizontalCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/EllipsisVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Envelope.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/EnvelopeOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Equals.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ExclamationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ExclamationTriangle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Eye.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/EyeDropper.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/EyeSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/FaceFrown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/FaceSmile.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Film.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/FingerPrint.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Fire.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Flag.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Folder.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/FolderArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/FolderMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/FolderOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/FolderPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Forward.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Funnel.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Gif.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Gift.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/GiftTop.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/GlobeAlt.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/GlobeAmericas.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/GlobeAsiaAustralia.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/GlobeEuropeAfrica.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/H1.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/H2.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/H3.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/HandRaised.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/HandThumbDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/HandThumbUp.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Hashtag.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Heart.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Home.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/HomeModern.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Identification.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Inbox.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/InboxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/InboxStack.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/InformationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Italic.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Key.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Language.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Lifebuoy.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/LightBulb.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Link.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/LinkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ListBullet.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/LockClosed.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/LockOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MagnifyingGlassCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MagnifyingGlassMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MagnifyingGlassPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Map.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MapPin.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Megaphone.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Microphone.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Minus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MinusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MinusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Moon.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/MusicalNote.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Newspaper.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/NoSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/NumberedList.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PaintBrush.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PaperAirplane.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PaperClip.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Pause.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PauseCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Pencil.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PencilSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PercentBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Phone.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PhoneArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PhoneArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PhoneXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Photo.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Play.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PlayCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PlayPause.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Plus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PlusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PlusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Power.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PresentationChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PresentationChartLine.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Printer.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/PuzzlePiece.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/QrCode.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/QuestionMarkCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/QueueList.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Radio.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ReceiptPercent.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ReceiptRefund.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/RectangleGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/RectangleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/RocketLaunch.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Rss.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Scale.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Scissors.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Server.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ServerStack.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Share.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ShieldCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ShieldExclamation.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ShoppingBag.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ShoppingCart.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Signal.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/SignalSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Slash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Sparkles.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/SpeakerWave.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/SpeakerXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Square2Stack.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Square3Stack3d.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Squares2x2.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/SquaresPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Star.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Stop.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/StopCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Strikethrough.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Sun.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Swatch.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/TableCells.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Tag.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Ticket.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Trash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Trophy.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Truck.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Tv.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Underline.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/User.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/UserCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/UserGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/UserMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/UserPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Users.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Variable.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/VideoCamera.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/VideoCameraSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ViewColumns.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/ViewfinderCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Wallet.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Wifi.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Window.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/Wrench.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/WrenchScrewdriver.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/XCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/outline/XMark.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/AcademicCap.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/AdjustmentsHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/AdjustmentsVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArchiveBox.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArchiveBoxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArchiveBoxXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowDownCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowDownOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowDownOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowDownTray.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLeftCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLeftEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLeftOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLeftStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLongDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLongLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLongRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowLongUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowPath.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowPathRoundedSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowRightCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowRightEndOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowRightOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowRightStartOnRectangle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowSmallDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowSmallLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowSmallRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowSmallUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTopRightOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTrendingDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTrendingUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnDownRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnLeftDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnLeftUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnRightDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnRightUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowTurnUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUpCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUpLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUpOnSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUpOnSquareStack.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUpTray.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUturnDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUturnLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUturnRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowUturnUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowsPointingIn.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowsPointingOut.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowsRightLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ArrowsUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/AtSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Backspace.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Backward.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Banknotes.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bars2.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bars3.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bars3BottomLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bars3BottomRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bars3CenterLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bars4.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BarsArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BarsArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Battery0.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Battery100.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Battery50.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Beaker.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bell.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BellAlert.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BellSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BellSnooze.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bold.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bolt.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BoltSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BookOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Bookmark.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BookmarkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BookmarkSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Briefcase.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BugAnt.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BuildingLibrary.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BuildingOffice.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BuildingOffice2.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/BuildingStorefront.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Cake.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Calculator.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Calendar.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CalendarDateRange.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CalendarDays.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Camera.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChartBarSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChartPie.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChatBubbleBottomCenter.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChatBubbleBottomCenterText.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChatBubbleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChatBubbleLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChatBubbleLeftRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChatBubbleOvalLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChatBubbleOvalLeftEllipsis.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Check.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CheckBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CheckCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronDoubleDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronDoubleLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronDoubleRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronDoubleUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ChevronUpDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CircleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Clipboard.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ClipboardDocument.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ClipboardDocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ClipboardDocumentList.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Clock.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Cloud.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CloudArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CloudArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CodeBracket.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CodeBracketSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Cog.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Cog6Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Cog8Tooth.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CommandLine.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ComputerDesktop.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CpuChip.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CreditCard.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Cube.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CubeTransparent.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CursorArrowRays.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/CursorArrowRipple.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DevicePhoneMobile.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DeviceTablet.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Divide.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Document.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentArrowUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentCurrencyBangladeshi.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentCurrencyDollar.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentCurrencyEuro.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentCurrencyPound.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentCurrencyRupee.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentCurrencyYen.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentDuplicate.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentMagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/DocumentText.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/EllipsisHorizontal.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/EllipsisHorizontalCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/EllipsisVertical.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Envelope.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/EnvelopeOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Equals.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ExclamationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ExclamationTriangle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Eye.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/EyeDropper.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/EyeSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/FaceFrown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/FaceSmile.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Film.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/FingerPrint.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Fire.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Flag.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Folder.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/FolderArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/FolderMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/FolderOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/FolderPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Forward.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Funnel.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Gif.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Gift.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/GiftTop.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/GlobeAlt.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/GlobeAmericas.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/GlobeAsiaAustralia.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/GlobeEuropeAfrica.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/H1.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/H2.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/H3.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/HandRaised.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/HandThumbDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/HandThumbUp.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Hashtag.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Heart.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Home.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/HomeModern.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Identification.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Inbox.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/InboxArrowDown.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/InboxStack.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/InformationCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Italic.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Key.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Language.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Lifebuoy.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/LightBulb.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Link.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/LinkSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ListBullet.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/LockClosed.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/LockOpen.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MagnifyingGlass.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MagnifyingGlassCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MagnifyingGlassMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MagnifyingGlassPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Map.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MapPin.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Megaphone.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Microphone.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Minus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MinusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MinusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Moon.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/MusicalNote.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Newspaper.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/NoSymbol.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/NumberedList.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PaintBrush.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PaperAirplane.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PaperClip.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Pause.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PauseCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Pencil.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PencilSquare.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PercentBadge.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Phone.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PhoneArrowDownLeft.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PhoneArrowUpRight.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PhoneXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Photo.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Play.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PlayCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PlayPause.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Plus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PlusCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PlusSmall.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Power.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PresentationChartBar.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PresentationChartLine.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Printer.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/PuzzlePiece.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/QrCode.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/QuestionMarkCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/QueueList.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Radio.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ReceiptPercent.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ReceiptRefund.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/RectangleGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/RectangleStack.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/RocketLaunch.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Rss.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Scale.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Scissors.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Server.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ServerStack.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Share.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ShieldCheck.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ShieldExclamation.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ShoppingBag.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ShoppingCart.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Signal.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/SignalSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Slash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Sparkles.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/SpeakerWave.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/SpeakerXMark.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Square2Stack.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Square3Stack3d.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Squares2x2.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/SquaresPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Star.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Stop.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/StopCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Strikethrough.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Sun.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Swatch.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/TableCells.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Tag.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Ticket.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Trash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Trophy.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Truck.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Tv.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Underline.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/User.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/UserCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/UserGroup.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/UserMinus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/UserPlus.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Users.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Variable.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/VideoCamera.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/VideoCameraSlash.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ViewColumns.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/ViewfinderCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Wallet.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Wifi.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Window.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/Wrench.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/WrenchScrewdriver.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/XCircle.jinja +0 -0
- /fastlife/{templates → components}/icons/solid/XMark.jinja +0 -0
- /fastlife/{templates → components}/pydantic_form/Error.jinja +0 -0
- /fastlife/{templates → components}/pydantic_form/Hint.jinja +0 -0
- /fastlife/{templating/renderer → templates}/constants.py +0 -0
- {fastlifeweb-0.12.0.dist-info → fastlifeweb-0.14.0.dist-info}/LICENSE +0 -0
- {fastlifeweb-0.12.0.dist-info → fastlifeweb-0.14.0.dist-info}/WHEEL +0 -0
fastlife/config/configurator.py
CHANGED
@@ -14,28 +14,21 @@ phase.
|
|
14
14
|
import importlib
|
15
15
|
import inspect
|
16
16
|
import logging
|
17
|
+
from collections import defaultdict
|
18
|
+
from collections.abc import Mapping, Sequence
|
17
19
|
from enum import Enum
|
18
20
|
from pathlib import Path
|
19
21
|
from types import ModuleType
|
20
|
-
from typing import
|
21
|
-
TYPE_CHECKING,
|
22
|
-
Any,
|
23
|
-
Callable,
|
24
|
-
List,
|
25
|
-
Optional,
|
26
|
-
Self,
|
27
|
-
Tuple,
|
28
|
-
Type,
|
29
|
-
Union,
|
30
|
-
cast,
|
31
|
-
)
|
22
|
+
from typing import TYPE_CHECKING, Annotated, Any, Callable, Self, Tuple, Type
|
32
23
|
|
33
24
|
import venusian
|
34
25
|
from fastapi import Depends, FastAPI
|
35
26
|
from fastapi import Request as BaseRequest
|
27
|
+
from fastapi import Response
|
36
28
|
from fastapi.params import Depends as DependsType
|
37
29
|
from fastapi.staticfiles import StaticFiles
|
38
30
|
from fastapi.types import IncEx
|
31
|
+
from pydantic import BaseModel, Field
|
39
32
|
|
40
33
|
from fastlife.middlewares.base import AbstractMiddleware
|
41
34
|
from fastlife.request.request import Request
|
@@ -47,11 +40,43 @@ from fastlife.shared_utils.resolver import resolve
|
|
47
40
|
from .settings import Settings
|
48
41
|
|
49
42
|
if TYPE_CHECKING:
|
50
|
-
from .
|
43
|
+
from fastlife.services.templates import (
|
44
|
+
AbstractTemplateRendererFactory, # coverage: ignore; coverage: ignore
|
45
|
+
)
|
46
|
+
|
47
|
+
from .registry import AppRegistry, LocaleNegociator # coverage: ignore
|
51
48
|
|
52
49
|
log = logging.getLogger(__name__)
|
53
50
|
VENUSIAN_CATEGORY = "fastlife"
|
54
51
|
|
52
|
+
venusian_ignored_item = str | Callable[[str], bool]
|
53
|
+
|
54
|
+
|
55
|
+
class ConfigurationError(Exception):
|
56
|
+
"""
|
57
|
+
Error raised during configuration, to avoid errors at runtime.
|
58
|
+
"""
|
59
|
+
|
60
|
+
|
61
|
+
class ExternalDocs(BaseModel):
|
62
|
+
"""OpenAPI externalDocs object."""
|
63
|
+
|
64
|
+
description: str
|
65
|
+
"""link's description."""
|
66
|
+
url: str
|
67
|
+
"""link's URL."""
|
68
|
+
|
69
|
+
|
70
|
+
class OpenApiTag(BaseModel):
|
71
|
+
"""OpenAPI tag object."""
|
72
|
+
|
73
|
+
name: str
|
74
|
+
"""name of the tag."""
|
75
|
+
description: str
|
76
|
+
"""explanation of the tag."""
|
77
|
+
external_docs: ExternalDocs | None = Field(alias="externalDocs", default=None)
|
78
|
+
"""external link to the doc."""
|
79
|
+
|
55
80
|
|
56
81
|
class Configurator:
|
57
82
|
"""
|
@@ -64,7 +89,7 @@ class Configurator:
|
|
64
89
|
|
65
90
|
def __init__(self, settings: Settings) -> None:
|
66
91
|
"""
|
67
|
-
:param settings:
|
92
|
+
:param settings: application settings.
|
68
93
|
"""
|
69
94
|
registry_cls = resolve(settings.registry_class)
|
70
95
|
self.registry = registry_cls(settings)
|
@@ -73,70 +98,80 @@ class Configurator:
|
|
73
98
|
self.middlewares: list[Tuple[Type[AbstractMiddleware], Any]] = []
|
74
99
|
self.exception_handlers: list[Tuple[int | Type[Exception], Any]] = []
|
75
100
|
self.mounts: list[Tuple[str, Path, str]] = []
|
101
|
+
self.tags: dict[str, OpenApiTag] = {}
|
102
|
+
|
103
|
+
self.api_title = "OpenAPI"
|
104
|
+
self.api_version = "v1"
|
105
|
+
self.api_description: str = ""
|
106
|
+
self.api_summary: str | None = None
|
76
107
|
|
77
|
-
self.
|
78
|
-
self.
|
108
|
+
self._route_prefix: str = ""
|
109
|
+
self._routers: dict[str, Router] = defaultdict(Router)
|
79
110
|
|
80
|
-
self.router = Router()
|
81
111
|
self.scanner = venusian.Scanner(fastlife=self)
|
82
112
|
self.include("fastlife.views")
|
83
113
|
self.include("fastlife.middlewares")
|
84
114
|
|
85
|
-
|
115
|
+
@property
|
116
|
+
def _current_router(self) -> Router:
|
117
|
+
return self._routers[self._route_prefix]
|
118
|
+
|
119
|
+
def build_asgi_app(self) -> FastAPI:
|
86
120
|
"""
|
87
|
-
|
121
|
+
Build the app after configuration in order to start after beeing configured.
|
88
122
|
|
89
123
|
:return: FastAPI application.
|
90
124
|
"""
|
91
|
-
|
125
|
+
|
126
|
+
# register our main template renderer at then end, to ensure that
|
127
|
+
# if settings have been manipulated, everythins is taken into account.
|
128
|
+
self.add_renderer(
|
129
|
+
self.registry.settings.jinjax_file_ext,
|
130
|
+
resolve("fastlife.adapters.jinjax.renderer:JinjaxTemplateRenderer")(
|
131
|
+
self.registry.settings
|
132
|
+
),
|
133
|
+
)
|
134
|
+
|
135
|
+
app = FastAPI(
|
92
136
|
title=self.api_title,
|
93
137
|
version=self.api_version,
|
138
|
+
description=self.api_description,
|
139
|
+
summary=self.api_summary,
|
94
140
|
dependencies=[Depends(check_csrf())],
|
95
141
|
docs_url=self.registry.settings.api_swagger_ui_url,
|
96
142
|
redoc_url=self.registry.settings.api_redocs_url,
|
143
|
+
openapi_tags=[tag.model_dump(by_alias=True) for tag in self.tags.values()]
|
144
|
+
if self.tags
|
145
|
+
else None,
|
97
146
|
)
|
98
|
-
|
99
|
-
for
|
100
|
-
|
101
|
-
_app.router.add_api_route(
|
102
|
-
path=route.path,
|
103
|
-
endpoint=route.endpoint,
|
104
|
-
response_model=route.response_model,
|
105
|
-
status_code=route.status_code,
|
106
|
-
tags=route.tags,
|
107
|
-
dependencies=route.dependencies,
|
108
|
-
summary=route.summary,
|
109
|
-
description=route.description,
|
110
|
-
response_description=route.response_description,
|
111
|
-
deprecated=route.deprecated,
|
112
|
-
methods=route.methods,
|
113
|
-
operation_id=route.operation_id,
|
114
|
-
response_model_include=route.response_model_include,
|
115
|
-
response_model_exclude=route.response_model_exclude,
|
116
|
-
response_model_by_alias=route.response_model_by_alias,
|
117
|
-
response_model_exclude_unset=route.response_model_exclude_unset,
|
118
|
-
response_model_exclude_defaults=route.response_model_exclude_defaults,
|
119
|
-
response_model_exclude_none=route.response_model_exclude_none,
|
120
|
-
include_in_schema=route.include_in_schema,
|
121
|
-
name=route.name,
|
122
|
-
openapi_extra=route.openapi_extra,
|
123
|
-
)
|
147
|
+
app.router.route_class = Route
|
148
|
+
for prefix, router in self._routers.items():
|
149
|
+
app.include_router(router, prefix=prefix)
|
124
150
|
|
125
151
|
for middleware_class, options in self.middlewares:
|
126
|
-
|
152
|
+
app.add_middleware(middleware_class, **options) # type: ignore
|
127
153
|
|
128
154
|
for status_code_or_exc, exception_handler in self.exception_handlers:
|
129
|
-
|
155
|
+
app.add_exception_handler(status_code_or_exc, exception_handler)
|
130
156
|
|
131
157
|
for route_path, directory, name in self.mounts:
|
132
|
-
|
133
|
-
return
|
158
|
+
app.mount(route_path, StaticFiles(directory=directory), name=name)
|
159
|
+
return app
|
134
160
|
|
135
|
-
def include(
|
161
|
+
def include(
|
162
|
+
self,
|
163
|
+
module: str | ModuleType,
|
164
|
+
route_prefix: str = "",
|
165
|
+
ignore: venusian_ignored_item | Sequence[venusian_ignored_item] | None = None,
|
166
|
+
) -> Self:
|
136
167
|
"""
|
137
168
|
Include a module in order to load its configuration.
|
138
169
|
|
139
|
-
It will
|
170
|
+
It will scan and load all the submodule until you add an ignore rule.
|
171
|
+
|
172
|
+
The `ignore` argument allows you to ignore certain modules.
|
173
|
+
If it is a scrint, it can be an absolute module name or a relative
|
174
|
+
one, if starts with a dot.
|
140
175
|
|
141
176
|
Here is an example.
|
142
177
|
|
@@ -152,6 +187,8 @@ class Configurator:
|
|
152
187
|
```
|
153
188
|
|
154
189
|
:param module: a module to include.
|
190
|
+
:param route_prefix: prepend all included route with a prefix
|
191
|
+
:param ignore: ignore submodules
|
155
192
|
"""
|
156
193
|
if isinstance(module, str):
|
157
194
|
package = None
|
@@ -160,12 +197,60 @@ class Configurator:
|
|
160
197
|
package = caller_module.__name__ if caller_module else "__main__"
|
161
198
|
|
162
199
|
module = importlib.import_module(module, package)
|
163
|
-
self.
|
200
|
+
old, self._route_prefix = self._route_prefix, route_prefix
|
201
|
+
try:
|
202
|
+
self.scanner.scan( # type: ignore
|
203
|
+
module,
|
204
|
+
categories=[VENUSIAN_CATEGORY],
|
205
|
+
ignore=ignore,
|
206
|
+
)
|
207
|
+
finally:
|
208
|
+
self._route_prefix = old
|
209
|
+
return self
|
210
|
+
|
211
|
+
def set_locale_negociator(self, locale_negociator: "LocaleNegociator") -> Self:
|
212
|
+
"""Install a locale negociator for the app."""
|
213
|
+
self.registry.locale_negociator = locale_negociator
|
164
214
|
return self
|
165
215
|
|
166
|
-
def
|
216
|
+
def add_translation_dirs(self, locales_dir: str) -> Self:
|
217
|
+
"""
|
218
|
+
Add a translation directory for localization.
|
219
|
+
|
220
|
+
Usually, the locales is a directory from a package and has to be
|
221
|
+
passed with a `:` separator: {package_name}:locales.
|
222
|
+
|
223
|
+
:param locales_dir: the directory contains local inside a python package.
|
224
|
+
"""
|
225
|
+
self.registry.localizer.load(locales_dir)
|
226
|
+
return self
|
227
|
+
|
228
|
+
def set_api_documentation_info(
|
229
|
+
self,
|
230
|
+
title: str,
|
231
|
+
version: str,
|
232
|
+
description: str,
|
233
|
+
summary: str | None = None,
|
234
|
+
) -> Self:
|
235
|
+
"""
|
236
|
+
Set your api documentation title for application that expose an API.
|
237
|
+
|
238
|
+
:param title: OpenAPI documentation title
|
239
|
+
:param version: OpenAPI api version
|
240
|
+
:param description: OpenAPI documentation description
|
241
|
+
:param summary: OpenAPI documentation summary
|
242
|
+
"""
|
167
243
|
self.api_title = title
|
168
244
|
self.api_version = version
|
245
|
+
self.api_description = description
|
246
|
+
self.api_summary = summary
|
247
|
+
return self
|
248
|
+
|
249
|
+
def add_open_tag(self, tag: OpenApiTag) -> Self:
|
250
|
+
"""Register a tag description in the documentation."""
|
251
|
+
if tag.name in self.tags:
|
252
|
+
raise ConfigurationError(f"Tag {tag.name} can't be registered twice.")
|
253
|
+
self.tags[tag.name] = tag
|
169
254
|
return self
|
170
255
|
|
171
256
|
def add_middleware(
|
@@ -185,14 +270,14 @@ class Configurator:
|
|
185
270
|
*,
|
186
271
|
permission: str | None = None,
|
187
272
|
status_code: int | None = None,
|
188
|
-
tags:
|
273
|
+
tags: list[str | Enum] | None = None,
|
189
274
|
summary: str | None = None,
|
190
275
|
description: str | None = None,
|
191
276
|
response_description: str = "Successful Response",
|
192
277
|
# responses: Dict[Union[int, str], Dict[str, Any]] | None = None,
|
193
278
|
deprecated: bool | None = None,
|
194
|
-
methods:
|
195
|
-
operation_id:
|
279
|
+
methods: list[str] | None = None,
|
280
|
+
operation_id: str | None = None,
|
196
281
|
# response_model: Any = Default(None),
|
197
282
|
response_model_include: IncEx | None = None,
|
198
283
|
response_model_exclude: IncEx | None = None,
|
@@ -208,12 +293,12 @@ class Configurator:
|
|
208
293
|
# generate_unique_id_function: Callable[[APIRoute], str] = Default(
|
209
294
|
# generate_unique_id
|
210
295
|
# ),
|
211
|
-
) ->
|
296
|
+
) -> Self:
|
212
297
|
"""
|
213
298
|
Add an API route to the app.
|
214
299
|
|
215
300
|
Fastlife does not use a decorator to attach routes, instead the decorator
|
216
|
-
|
301
|
+
{func}`fastlife.config.configurator.configure` has to be used to
|
217
302
|
inject routes inside a method and call the add_route method.
|
218
303
|
|
219
304
|
This route has to be used to add API Route, by API, to expose it in the
|
@@ -222,7 +307,7 @@ class Configurator:
|
|
222
307
|
To add a route that serve HTML user the method {meth}`Configurator.add_route`
|
223
308
|
|
224
309
|
:param name: name of the route, used to build route from the helper
|
225
|
-
|
310
|
+
{meth}`fastlife.request.request.Request.url_for` in order to create links.
|
226
311
|
:param path: path of the route, use `{curly_brace}` to inject FastAPI Path
|
227
312
|
parameters.
|
228
313
|
:param endpoint: the function that will reveive the request.
|
@@ -230,13 +315,13 @@ class Configurator:
|
|
230
315
|
:attr:`fastlife.config.settings.Settings.check_permission` function.
|
231
316
|
|
232
317
|
:param methods: restrict route to a list of http methods.
|
233
|
-
:param description: description for the route.
|
234
|
-
:param summary: summary for the route.
|
235
|
-
:param response_description: description for the response.
|
318
|
+
:param description:OpenAPI description for the route.
|
319
|
+
:param summary: OpenAPI summary for the route.
|
320
|
+
:param response_description: OpenAPI description for the response.
|
236
321
|
:param operation_id: OpenAPI optional unique string used to identify an
|
237
322
|
operation.
|
238
|
-
:param tags:
|
239
|
-
:param deprecated:
|
323
|
+
:param tags: OpenAPI tags for the route.
|
324
|
+
:param deprecated: OpenAPI deprecated annotation for the route.
|
240
325
|
|
241
326
|
:param response_model_include: customize fields list to include in repsonse.
|
242
327
|
:param response_model_exclude: customize fields list to exclude in repsonse.
|
@@ -252,11 +337,11 @@ class Configurator:
|
|
252
337
|
|
253
338
|
:return: the configurator.
|
254
339
|
"""
|
255
|
-
dependencies:
|
340
|
+
dependencies: list[DependsType] = []
|
256
341
|
if permission:
|
257
342
|
dependencies.append(Depends(self.registry.check_permission(permission)))
|
258
343
|
|
259
|
-
self.
|
344
|
+
self._current_router.add_api_route(
|
260
345
|
path,
|
261
346
|
endpoint,
|
262
347
|
# response_model=response_model,
|
@@ -291,40 +376,21 @@ class Configurator:
|
|
291
376
|
endpoint: Callable[..., Any],
|
292
377
|
*,
|
293
378
|
permission: str | None = None,
|
379
|
+
template: str | None = None,
|
294
380
|
status_code: int | None = None,
|
295
|
-
|
296
|
-
|
297
|
-
# description: Optional[str] = None,
|
298
|
-
# response_description: str = "Successful Response",
|
299
|
-
# responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
|
300
|
-
# deprecated: Optional[bool] = None,
|
301
|
-
methods: List[str] | None = None,
|
302
|
-
# operation_id: Optional[str] = None,
|
303
|
-
# response_model: Any = Default(None),
|
304
|
-
# response_model_include: Optional[IncEx] = None,
|
305
|
-
# response_model_exclude: Optional[IncEx] = None,
|
306
|
-
# response_model_by_alias: bool = True,
|
307
|
-
# response_model_exclude_unset: bool = False,
|
308
|
-
# response_model_exclude_defaults: bool = False,
|
309
|
-
# response_model_exclude_none: bool = False,
|
310
|
-
# include_in_schema: bool = True,
|
311
|
-
# response_class: Union[Type[Response], DefaultPlaceholder] = Default(
|
312
|
-
# HTMLResponse
|
313
|
-
# ),
|
314
|
-
# openapi_extra: Optional[Dict[str, Any]] = None,
|
315
|
-
# generate_unique_id_function: Callable[[APIRoute], str] = Default(
|
316
|
-
# generate_unique_id
|
317
|
-
# ),
|
318
|
-
) -> "Configurator":
|
381
|
+
methods: list[str] | None = None,
|
382
|
+
) -> Self:
|
319
383
|
"""
|
320
384
|
Add a route to the app.
|
321
385
|
|
322
|
-
Fastlife does not use
|
323
|
-
|
324
|
-
inject routes inside a method and call the add_route method.
|
386
|
+
Fastlife does not use the FastAPI decorator to attach routes, instead the
|
387
|
+
decorator {func}`@configure <fastlife.config.configurator.configure>` has to
|
388
|
+
be used to inject routes inside a method and call the add_route method.
|
389
|
+
Or the decorator {func}`@view_config <fastlife.config.views.view_config>`
|
390
|
+
can decorate view functions.
|
325
391
|
|
326
392
|
:param name: name of the route, used to build route from the helper
|
327
|
-
|
393
|
+
{meth}`fastlife.request.request.Request.url_for` in order to create links.
|
328
394
|
:param path: path of the route, use `{curly_brace}` to inject FastAPI Path
|
329
395
|
parameters.
|
330
396
|
:param endpoint: the function that will reveive the request.
|
@@ -334,41 +400,39 @@ class Configurator:
|
|
334
400
|
:param methods: restrict route to a list of http methods.
|
335
401
|
:return: the configurator.
|
336
402
|
"""
|
337
|
-
dependencies:
|
403
|
+
dependencies: list[DependsType] = []
|
338
404
|
if permission:
|
339
405
|
dependencies.append(Depends(self.registry.check_permission(permission)))
|
340
406
|
|
341
|
-
|
407
|
+
if template:
|
408
|
+
|
409
|
+
def render(
|
410
|
+
request: Request,
|
411
|
+
resp: Annotated[Response | Mapping[str, Any], Depends(endpoint)],
|
412
|
+
) -> Response:
|
413
|
+
if isinstance(resp, Response):
|
414
|
+
return resp
|
415
|
+
return request.registry.get_renderer(template)(request).render(
|
416
|
+
template,
|
417
|
+
params=resp,
|
418
|
+
)
|
419
|
+
|
420
|
+
endpoint = render
|
421
|
+
|
422
|
+
self._current_router.add_api_route(
|
342
423
|
path,
|
343
424
|
endpoint,
|
344
|
-
# response_model=response_model,
|
345
425
|
status_code=status_code,
|
346
|
-
# tags=tags,
|
347
426
|
dependencies=dependencies,
|
348
|
-
# summary=summary,
|
349
|
-
# description=description,
|
350
|
-
# response_description=response_description,
|
351
|
-
# responses=responses,
|
352
|
-
# deprecated=deprecated,
|
353
427
|
methods=methods,
|
354
|
-
# operation_id=operation_id,
|
355
|
-
# response_model_include=response_model_include,
|
356
|
-
# response_model_exclude=response_model_exclude,
|
357
|
-
# response_model_by_alias=response_model_by_alias,
|
358
|
-
# response_model_exclude_unset=response_model_exclude_unset,
|
359
|
-
# response_model_exclude_defaults=response_model_exclude_defaults,
|
360
|
-
# response_model_exclude_none=response_model_exclude_none,
|
361
428
|
include_in_schema=False,
|
362
|
-
# response_class=response_class,
|
363
429
|
name=name,
|
364
|
-
# openapi_extra=openapi_extra,
|
365
|
-
# generate_unique_id_function=generate_unique_id_function,
|
366
430
|
)
|
367
431
|
return self
|
368
432
|
|
369
433
|
def add_static_route(
|
370
434
|
self, route_path: str, directory: Path, name: str = "static"
|
371
|
-
) ->
|
435
|
+
) -> Self:
|
372
436
|
"""
|
373
437
|
Mount a directory to an http endpoint.
|
374
438
|
|
@@ -382,17 +446,65 @@ class Configurator:
|
|
382
446
|
return self
|
383
447
|
|
384
448
|
def add_exception_handler(
|
385
|
-
self,
|
386
|
-
|
387
|
-
|
449
|
+
self,
|
450
|
+
status_code_or_exc: int | Type[Exception],
|
451
|
+
handler: Any,
|
452
|
+
*,
|
453
|
+
template: str | None = None,
|
454
|
+
status_code: int = 500,
|
455
|
+
) -> Self:
|
456
|
+
"""
|
457
|
+
Add an exception handler the application.
|
458
|
+
|
459
|
+
"""
|
388
460
|
|
389
461
|
def exception_handler(request: BaseRequest, exc: Exception) -> Any:
|
390
|
-
|
391
|
-
|
462
|
+
request = Request(self.registry, request)
|
463
|
+
resp = handler(request, exc)
|
464
|
+
if isinstance(resp, Response):
|
465
|
+
return resp
|
466
|
+
|
467
|
+
if not template:
|
468
|
+
raise RuntimeError(
|
469
|
+
"No template set for "
|
470
|
+
f"{exc.__module__}:{exc.__class__.__qualname__} but "
|
471
|
+
f"{handler.__module__}:{handler.__qualname__} "
|
472
|
+
"did not return a Response"
|
473
|
+
)
|
474
|
+
|
475
|
+
return request.registry.get_renderer(template)(request).render(
|
476
|
+
template,
|
477
|
+
params=resp,
|
478
|
+
status_code=status_code,
|
479
|
+
)
|
392
480
|
|
393
481
|
self.exception_handlers.append((status_code_or_exc, exception_handler))
|
394
482
|
return self
|
395
483
|
|
484
|
+
def add_renderer(
|
485
|
+
self, file_ext: str, renderer: "AbstractTemplateRendererFactory"
|
486
|
+
) -> Self:
|
487
|
+
"""
|
488
|
+
Add a render for a given file extension.
|
489
|
+
|
490
|
+
:param file_ext: the file extention of your templates.
|
491
|
+
:param renderer: the renderer that will render the template.
|
492
|
+
"""
|
493
|
+
# we don't want to expose the renderer publicly as mutable
|
494
|
+
self.registry.renderers[f".{file_ext.lstrip('.')}"] = renderer # type: ignore
|
495
|
+
return self
|
496
|
+
|
497
|
+
def add_template_search_path(self, path: str) -> Self:
|
498
|
+
"""
|
499
|
+
Add a template search path directly from the code.
|
500
|
+
|
501
|
+
:param path: template path.
|
502
|
+
"""
|
503
|
+
self.registry.settings.template_search_path = (
|
504
|
+
f"{self.registry.settings.template_search_path},{path}"
|
505
|
+
)
|
506
|
+
return self
|
507
|
+
|
396
508
|
|
397
509
|
def configure(
|
398
510
|
wrapped: Callable[[Configurator], None],
|
@@ -0,0 +1,41 @@
|
|
1
|
+
from typing import Any, Callable
|
2
|
+
|
3
|
+
import venusian
|
4
|
+
|
5
|
+
from .configurator import VENUSIAN_CATEGORY, Configurator
|
6
|
+
|
7
|
+
|
8
|
+
def exception_handler(
|
9
|
+
exception: type[Exception],
|
10
|
+
*,
|
11
|
+
template: str | None = None,
|
12
|
+
status_code: int | None = None,
|
13
|
+
) -> Callable[..., Any]:
|
14
|
+
"""
|
15
|
+
A decorator function to add an exception handler in the app.
|
16
|
+
|
17
|
+
:param methods: restrict route to a list of http methods.
|
18
|
+
|
19
|
+
:return: the configuration callback.
|
20
|
+
"""
|
21
|
+
|
22
|
+
def configure(
|
23
|
+
wrapped: Callable[..., Any],
|
24
|
+
) -> Callable[..., Any]:
|
25
|
+
def callback(
|
26
|
+
scanner: venusian.Scanner, name: str, ob: Callable[..., Any]
|
27
|
+
) -> None:
|
28
|
+
if not hasattr(scanner, VENUSIAN_CATEGORY):
|
29
|
+
return # coverage: ignore
|
30
|
+
config: Configurator = getattr(scanner, VENUSIAN_CATEGORY)
|
31
|
+
config.add_exception_handler(
|
32
|
+
exception,
|
33
|
+
wrapped,
|
34
|
+
template=template,
|
35
|
+
**({} if status_code is None else {"status_code": status_code}),
|
36
|
+
)
|
37
|
+
|
38
|
+
venusian.attach(wrapped, callback, category=VENUSIAN_CATEGORY) # type: ignore
|
39
|
+
return wrapped
|
40
|
+
|
41
|
+
return configure
|
fastlife/config/registry.py
CHANGED
@@ -1,18 +1,30 @@
|
|
1
|
-
from
|
1
|
+
from collections.abc import Mapping
|
2
|
+
from typing import TYPE_CHECKING, Annotated, Callable
|
2
3
|
|
3
4
|
from fastapi import Depends
|
5
|
+
from fastapi import Request as FastAPIRequest
|
4
6
|
|
5
7
|
from fastlife.request.request import Request
|
6
8
|
from fastlife.security.policy import CheckPermission
|
9
|
+
from fastlife.services.translations import LocalizerFactory
|
7
10
|
from fastlife.shared_utils.resolver import resolve
|
8
11
|
|
9
12
|
if TYPE_CHECKING:
|
10
|
-
from fastlife.
|
13
|
+
from fastlife.services.templates import ( # coverage: ignore
|
11
14
|
AbstractTemplateRendererFactory, # coverage: ignore
|
12
15
|
) # coverage: ignore
|
13
16
|
|
14
17
|
from .settings import Settings
|
15
18
|
|
19
|
+
LocaleNegociator = Callable[[Request], str]
|
20
|
+
|
21
|
+
|
22
|
+
def _default_negociator(settings: Settings) -> LocaleNegociator:
|
23
|
+
def locale_negociator(request: FastAPIRequest) -> str:
|
24
|
+
return settings.default_locale
|
25
|
+
|
26
|
+
return locale_negociator
|
27
|
+
|
16
28
|
|
17
29
|
class AppRegistry:
|
18
30
|
"""
|
@@ -21,16 +33,23 @@ class AppRegistry:
|
|
21
33
|
"""
|
22
34
|
|
23
35
|
settings: Settings
|
24
|
-
|
36
|
+
renderers: Mapping[str, "AbstractTemplateRendererFactory"]
|
25
37
|
check_permission: CheckPermission
|
38
|
+
locale_negociator: LocaleNegociator
|
39
|
+
localizer: LocalizerFactory
|
26
40
|
|
27
41
|
def __init__(self, settings: Settings) -> None:
|
28
|
-
# Abtract class resolved for dependency injection
|
29
|
-
TemplateRenderer = resolve(settings.template_renderer_class)
|
30
|
-
|
31
42
|
self.settings = settings
|
32
|
-
self.renderer = TemplateRenderer(settings)
|
33
43
|
self.check_permission = resolve(settings.check_permission)
|
44
|
+
self.locale_negociator = _default_negociator(self.settings)
|
45
|
+
self.renderers = {}
|
46
|
+
self.localizer = LocalizerFactory()
|
47
|
+
|
48
|
+
def get_renderer(self, template: str) -> "AbstractTemplateRendererFactory":
|
49
|
+
for key, val in self.renderers.items():
|
50
|
+
if template.endswith(key):
|
51
|
+
return val
|
52
|
+
raise RuntimeError(f"No renderer registered for template {template}")
|
34
53
|
|
35
54
|
|
36
55
|
def get_registry(request: Request) -> AppRegistry:
|