__init__.py
1 # SPDX-License-Identifier: MIT 2 # 3 # Copyright (c) 2021 The Anvil Extras project team members listed at 4 # https://github.com/anvilistas/anvil-extras/graphs/contributors 5 # 6 # This software is published at https://github.com/anvilistas/anvil-extras 7 from ..utils._component_helpers import _html_injector 8 from ._anvil_designer import MessagePillTemplate 9 10 __version__ = "3.1.0" 11 12 css = """ 13 .anvil-role-ae-message-pill { 14 padding-left: 1em; 15 border-radius: 2em; 16 } 17 """ 18 _html_injector.css(css) 19 20 21 class MessagePill(MessagePillTemplate): 22 backgrounds = dict( 23 info="#bde5f8", success="#dff2bf", warning="#feefb3", error="#ffd2d2" 24 ) 25 foregrounds = dict( 26 info="#00529b", success="#4f8a10", warning="#9f6000", error="#d8000c" 27 ) 28 icons = dict( 29 info="fa:info-circle", 30 success="fa:check", 31 warning="fa:warning", 32 error="fa:times-circle", 33 ) 34 35 def __init__(self, **properties): 36 self.label.role = "ae-message-pill" 37 self.init_components(**properties) 38 39 @property 40 def level(self): 41 return self.item["level"] 42 43 @level.setter 44 def level(self, value): 45 if value not in ("info", "success", "warning", "error"): 46 raise ValueError( 47 "level must be one of 'info', 'success', 'warning' or 'error'" 48 ) 49 self.item["level"] = value 50 self.label.background = self.backgrounds[value] 51 self.label.foreground = self.foregrounds[value] 52 self.label.icon = self.icons[value] 53 54 @property 55 def message(self): 56 return self.item["message"] 57 58 @message.setter 59 def message(self, value): 60 self.item["message"] = value 61 self.label.text = value