Coverage for src / lexigram / ui / atoms / inputs / special / simple.py: 73%

15 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-10 04:11 +0800

1from __future__ import annotations 

2 

3from typing import Any 

4 

5from lexigram.ui.atoms.inputs.base import AbstractInput 

6from lexigram.ui.core.base import el 

7 

8 

9class Hidden(AbstractInput): 

10 """Hidden input field.""" 

11 

12 def _render_input(self) -> Any: 

13 return el( 

14 "input", 

15 type="hidden", 

16 name=self.name, 

17 value=self.value, 

18 id=self.input_id, 

19 ) 

20 

21 def render(self) -> Any: 

22 return self._render_input() 

23 

24 

25class TimePicker(AbstractInput): 

26 """Time selection input.""" 

27 

28 def _render_input(self) -> Any: 

29 return el( 

30 "input", 

31 type="time", 

32 name=self.name, 

33 id=self.input_id, 

34 value=self.value or "", 

35 disabled=self.disabled, 

36 class_=self._get_input_classes("pl-3 pr-3"), 

37 **self._get_extra_props(), 

38 ) 

39 

40 

41class ColorPicker(AbstractInput): 

42 """Color selection input.""" 

43 

44 def _render_input(self) -> Any: 

45 return el( 

46 "input", 

47 type="color", 

48 name=self.name, 

49 id=self.input_id, 

50 value=self.value or "#000000", 

51 disabled=self.disabled, 

52 class_="h-10 w-20 rounded border border-input bg-background cursor-pointer", 

53 **self._get_extra_props(), 

54 )