-
Notifications
You must be signed in to change notification settings - Fork 8
/
macros.clj
185 lines (177 loc) · 3.02 KB
/
macros.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
(ns soda-ash.macros)
(def semantic-ui-react-tags
'[Accordion
AccordionAccordion
AccordionContent
AccordionPanel
AccordionTitle
Advertisement
Breadcrumb
BreadcrumbDivider
BreadcrumbSection
Button
ButtonContent
ButtonGroup
ButtonOr
Card
CardContent
CardDescription
CardGroup
CardHeader
CardMeta
Checkbox
Comment ;; use as CommentSA
CommentAction
CommentActions
CommentAuthor
CommentAvatar
CommentContent
CommentGroup
CommentMetadata
CommentText
Confirm
Container
Dimmer
DimmerDimmable
DimmerInner
Divider
Dropdown
DropdownDivider
DropdownHeader
DropdownItem
DropdownMenu
DropdownSearchInput
Embed
Feed
FeedContent
FeedDate
FeedEvent
FeedExtra
FeedLabel
FeedLike
FeedMeta
FeedSummary
FeedUser
Flag
Form
FormButton
FormCheckbox
FormDropdown
FormField
FormGroup
FormInput
FormRadio
FormSelect
FormTextArea
Grid
GridColumn
GridRow
Header
HeaderContent
HeaderSubheader
Icon
IconGroup
Image
ImageGroup
Input
Item
ItemContent
ItemDescription
ItemExtra
ItemGroup
ItemHeader
ItemImage
ItemMeta
Label
LabelDetail
LabelGroup
List ;; use as ListSA
ListContent
ListDescription
ListHeader
ListIcon
ListItem
ListList
Loader
Menu
MenuHeader
MenuItem
MenuMenu
Message
MessageContent
MessageHeader
MessageItem
MessageList
Modal
ModalActions
ModalContent
ModalDescription
ModalHeader
;; MountNode (don't include)
Pagination
PaginationItem
Placeholder
PlaceholderHeader
PlaceholderImage
PlaceholderLine
PlaceholderParagraph
Popup
PopupContent
PopupHeader
Portal
PortalInner
Progress
Radio
Rail
Rating
RatingIcon
;; ref (don't include)
Responsive
Reveal
RevealContent
Search
SearchCategory
SearchResult
SearchResults
Segment
SegmentGroup
SegmentInline
Select
Sidebar
SidebarPushable
SidebarPusher
Statistic
StatisticGroup
StatisticLabel
StatisticValue
Step
StepContent
StepDescription
StepGroup
StepTitle
Sticky
Tab
TabPane
Table
TableBody
TableCell
TableFooter
TableHeader
TableHeaderCell
TableRow
TextArea
Transition
TransitionGroup
TransitionablePortal
Visibility])
(def reserved-tags #{"Comment"
"List"})
(defn create-semantic-ui-react-component [tag]
(let [tag-name (if (reserved-tags (name tag))
(-> tag name (str "SA") symbol)
tag)]
`(def ~tag-name (reagent.core/adapt-react-class
(aget js/semanticUIReact ~(name tag))))))
(defmacro export-semantic-ui-react-components []
`(do ~@(map create-semantic-ui-react-component
semantic-ui-react-tags)))