@@ -3,7 +3,6 @@ module Components.Button exposing (emptyState, primary, radio, rounded, secondar
3
3
import Accessibility exposing (Attribute )
4
4
import Accessibility.Aria
5
5
import Accessibility.Key
6
- import Extras.HtmlTree exposing (HtmlTree (..) )
7
6
import Html exposing (Html )
8
7
import Html.Attributes exposing (class )
9
8
@@ -21,10 +20,17 @@ withAdditionalAttributes attributes additionalAttributes children =
21
20
children
22
21
23
22
24
- primary : List (Attribute msg ) -> List (Html msg ) -> Html msg
25
- primary =
23
+ primary : Bool -> List (Attribute msg ) -> List (Html msg ) -> Html msg
24
+ primary enabled =
26
25
withAdditionalAttributes
27
- [ class " inline-flex justify-center py-2 px-4 border border-transparent shadow-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300" ]
26
+ [ if enabled then
27
+ class " inline-flex justify-center py-2 px-4 border border-transparent shadow-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
28
+
29
+ else
30
+ class " inline-flex justify-center py-2 px-4 border border-transparent shadow-sm font-medium rounded-md text-white dark:text-gray-400 bg-indigo-400 dark:bg-indigo-900 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
31
+ , Html . Attributes . disabled <| not enabled
32
+ , Accessibility . Key . tabbable enabled
33
+ ]
28
34
29
35
30
36
secondary : List (Attribute msg ) -> List (Html msg ) -> Html msg
@@ -79,7 +85,7 @@ toggle on labelId additionalAttributes children =
79
85
( class " flex items-center" :: additionalAttributes)
80
86
[ Accessibility . button
81
87
[ Html . Attributes . type_ " button"
82
- , class " relative inline-flex shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
88
+ , class " relative inline-flex shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer motion-reduce:transition-none transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300"
83
89
, class <|
84
90
if on then
85
91
" bg-indigo-600 dark:bg-indigo-400"
@@ -92,7 +98,7 @@ toggle on labelId additionalAttributes children =
92
98
]
93
99
[ Accessibility . span
94
100
[ Accessibility . Aria . hidden True
95
- , class " pointer-events-none inline-block h-5 w-5 rounded-full bg-white dark:bg-gray-700 shadow transform ring-0 transition ease-in-out duration-200"
101
+ , class " pointer-events-none inline-block h-5 w-5 rounded-full bg-white dark:bg-gray-700 shadow transform motion-reduce:transform-none ring-0 transition ease-in-out duration-200"
96
102
, class <|
97
103
if on then
98
104
" translate-x-5"
@@ -119,7 +125,7 @@ radio name_ value_ checked_ tabbable additionalAttributes =
119
125
name_
120
126
value_
121
127
checked_
122
- ( [ class " h-4 w-4 dark:bg-gray-200 text-indigo-600 dark:text-indigo-400 border-gray-300 dark:border-gray-500 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300 "
128
+ ( [ class " h-4 w-4 dark:bg-gray-200 text-indigo-600 dark:text-amber-700 border-gray-300 dark:border-gray-500 focus:ring-indigo-500 dark:focus:ring-indigo-800 dark:focus:ring-offset-indigo-300 "
123
129
, Accessibility . Key . tabbable tabbable
124
130
]
125
131
++ additionalAttributes
0 commit comments