gov-layout 1.1.10 → 1.2.0

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.
package/dist/index.js CHANGED
@@ -79,6 +79,318 @@ function SidebarHeader({ orgLogo, orgName, orgSubtitle, collapsed }) {
79
79
  ] })
80
80
  ] });
81
81
  }
82
+ var defaultProps = (size = 20) => ({
83
+ width: size,
84
+ height: size,
85
+ viewBox: "0 0 24 24",
86
+ fill: "none",
87
+ stroke: "currentColor",
88
+ strokeWidth: 2,
89
+ strokeLinecap: "round",
90
+ strokeLinejoin: "round"
91
+ });
92
+ function HomeIcon({ size = 20, className, style } = {}) {
93
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
94
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }),
95
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "9 22 9 12 15 12 15 22" })
96
+ ] });
97
+ }
98
+ function SearchIcon({ size = 20, className, style } = {}) {
99
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
100
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "11", cy: "11", r: "8" }),
101
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })
102
+ ] });
103
+ }
104
+ function BellIcon({ size = 20, className, style } = {}) {
105
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
106
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }),
107
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })
108
+ ] });
109
+ }
110
+ function FolderIcon({ size = 20, className, style } = {}) {
111
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...defaultProps(size), className, style, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" }) });
112
+ }
113
+ function ClipboardIcon({ size = 20, className, style } = {}) {
114
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }),
116
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "8", y: "2", width: "8", height: "4", rx: "1", ry: "1" })
117
+ ] });
118
+ }
119
+ function FileTextIcon({ size = 20, className, style } = {}) {
120
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
121
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
122
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "14 2 14 8 20 8" }),
123
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "16", y1: "13", x2: "8", y2: "13" }),
124
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
125
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "10 9 9 9 8 9" })
126
+ ] });
127
+ }
128
+ function CalendarIcon({ size = 20, className, style } = {}) {
129
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
130
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }),
131
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "16", y1: "2", x2: "16", y2: "6" }),
132
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "8", y1: "2", x2: "8", y2: "6" }),
133
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "3", y1: "10", x2: "21", y2: "10" })
134
+ ] });
135
+ }
136
+ function UserIcon({ size = 20, className, style } = {}) {
137
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
138
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }),
139
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "7", r: "4" })
140
+ ] });
141
+ }
142
+ function UsersIcon({ size = 20, className, style } = {}) {
143
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
144
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }),
145
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "7", r: "4" }),
146
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }),
147
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
148
+ ] });
149
+ }
150
+ function GearIcon({ size = 20, className, style } = {}) {
151
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
152
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3" }),
153
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" })
154
+ ] });
155
+ }
156
+ function WrenchIcon({ size = 20, className, style } = {}) {
157
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...defaultProps(size), className, style, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" }) });
158
+ }
159
+ function ShieldIcon({ size = 20, className, style } = {}) {
160
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...defaultProps(size), className, style, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }) });
161
+ }
162
+ function HelpCircleIcon({ size = 20, className, style } = {}) {
163
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
164
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
165
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }),
166
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
167
+ ] });
168
+ }
169
+ function BarChartIcon({ size = 20, className, style } = {}) {
170
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
171
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "20", x2: "12", y2: "10" }),
172
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "20", x2: "18", y2: "4" }),
173
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "20", x2: "6", y2: "16" })
174
+ ] });
175
+ }
176
+ function HistoryIcon({ size = 20, className, style } = {}) {
177
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
178
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "1 4 1 10 7 10" }),
179
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.51 15a9 9 0 1 0 2.13-9.36L1 10" })
180
+ ] });
181
+ }
182
+ function DatabaseIcon({ size = 20, className, style } = {}) {
183
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
184
+ /* @__PURE__ */ jsxRuntime.jsx("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
185
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" }),
186
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" })
187
+ ] });
188
+ }
189
+ function BuildingIcon({ size = 20, className, style } = {}) {
190
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
191
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", ry: "2" }),
192
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "9", y1: "22", x2: "9", y2: "18" }),
193
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "15", y1: "22", x2: "15", y2: "18" }),
194
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "9", y1: "6", x2: "9.01", y2: "6" }),
195
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "15", y1: "6", x2: "15.01", y2: "6" }),
196
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "9", y1: "10", x2: "9.01", y2: "10" }),
197
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "15", y1: "10", x2: "15.01", y2: "10" }),
198
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "9", y1: "14", x2: "9.01", y2: "14" }),
199
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "15", y1: "14", x2: "15.01", y2: "14" })
200
+ ] });
201
+ }
202
+ function MapPinIcon({ size = 20, className, style } = {}) {
203
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
204
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }),
205
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "10", r: "3" })
206
+ ] });
207
+ }
208
+ function PhoneIcon({ size = 20, className, style } = {}) {
209
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...defaultProps(size), className, style, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" }) });
210
+ }
211
+ function MailIcon({ size = 20, className, style } = {}) {
212
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
213
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z" }),
214
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "22,6 12,13 2,6" })
215
+ ] });
216
+ }
217
+ function CheckCircleIcon({ size = 20, className, style } = {}) {
218
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
219
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }),
220
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "22 4 12 14.01 9 11.01" })
221
+ ] });
222
+ }
223
+ function AlertTriangleIcon({ size = 20, className, style } = {}) {
224
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
225
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }),
226
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
227
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
228
+ ] });
229
+ }
230
+ function XCircleIcon({ size = 20, className, style } = {}) {
231
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
232
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
233
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
234
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
235
+ ] });
236
+ }
237
+ function PlusCircleIcon({ size = 20, className, style } = {}) {
238
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
239
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
240
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12", y2: "16" }),
241
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "8", y1: "12", x2: "16", y2: "12" })
242
+ ] });
243
+ }
244
+ function LogOutIcon({ size = 20, className, style } = {}) {
245
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
246
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }),
247
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "16 17 21 12 16 7" }),
248
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "21", y1: "12", x2: "9", y2: "12" })
249
+ ] });
250
+ }
251
+ function DownloadIcon({ size = 20, className, style } = {}) {
252
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
253
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
254
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "7 10 12 15 17 10" }),
255
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })
256
+ ] });
257
+ }
258
+ function UploadIcon({ size = 20, className, style } = {}) {
259
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
260
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
261
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "17 8 12 3 7 8" }),
262
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })
263
+ ] });
264
+ }
265
+ function PrinterIcon({ size = 20, className, style } = {}) {
266
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
267
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "6 9 6 2 18 2 18 9" }),
268
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" }),
269
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "6", y: "14", width: "12", height: "8" })
270
+ ] });
271
+ }
272
+ function StarIcon({ size = 20, className, style } = {}) {
273
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...defaultProps(size), className, style, children: /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" }) });
274
+ }
275
+ function HeartIcon({ size = 20, className, style } = {}) {
276
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...defaultProps(size), className, style, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" }) });
277
+ }
278
+ function EyeIcon({ size = 20, className, style } = {}) {
279
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
280
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
281
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3" })
282
+ ] });
283
+ }
284
+ function EditIcon({ size = 20, className, style } = {}) {
285
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
286
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }),
287
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
288
+ ] });
289
+ }
290
+ function TrashIcon({ size = 20, className, style } = {}) {
291
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { ...defaultProps(size), className, style, children: [
292
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "3 6 5 6 21 6" }),
293
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }),
294
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "10", y1: "11", x2: "10", y2: "17" }),
295
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "14", y1: "11", x2: "14", y2: "17" })
296
+ ] });
297
+ }
298
+ var ICON_MAP = {
299
+ home: HomeIcon,
300
+ dashboard: HomeIcon,
301
+ services: FolderIcon,
302
+ service: FolderIcon,
303
+ folder: FolderIcon,
304
+ category: FolderIcon,
305
+ users: UsersIcon,
306
+ members: UsersIcon,
307
+ user: UserIcon,
308
+ profile: UserIcon,
309
+ staff: UserIcon,
310
+ settings: GearIcon,
311
+ setting: GearIcon,
312
+ config: GearIcon,
313
+ help: HelpCircleIcon,
314
+ support: HelpCircleIcon,
315
+ faq: HelpCircleIcon,
316
+ reports: BarChartIcon,
317
+ report: BarChartIcon,
318
+ stats: BarChartIcon,
319
+ chart: BarChartIcon,
320
+ analytics: BarChartIcon,
321
+ roles: ShieldIcon,
322
+ permissions: ShieldIcon,
323
+ security: ShieldIcon,
324
+ logs: HistoryIcon,
325
+ history: HistoryIcon,
326
+ activity: HistoryIcon,
327
+ audit: HistoryIcon,
328
+ backup: DatabaseIcon,
329
+ database: DatabaseIcon,
330
+ data: DatabaseIcon,
331
+ documents: FileTextIcon,
332
+ document: FileTextIcon,
333
+ docs: FileTextIcon,
334
+ files: FileTextIcon,
335
+ file: FileTextIcon,
336
+ forms: ClipboardIcon,
337
+ form: ClipboardIcon,
338
+ request: ClipboardIcon,
339
+ requests: ClipboardIcon,
340
+ calendar: CalendarIcon,
341
+ schedule: CalendarIcon,
342
+ appointment: CalendarIcon,
343
+ notifications: BellIcon,
344
+ notification: BellIcon,
345
+ alerts: BellIcon,
346
+ search: SearchIcon,
347
+ organization: BuildingIcon,
348
+ org: BuildingIcon,
349
+ department: BuildingIcon,
350
+ agency: BuildingIcon,
351
+ location: MapPinIcon,
352
+ map: MapPinIcon,
353
+ address: MapPinIcon,
354
+ phone: PhoneIcon,
355
+ contact: PhoneIcon,
356
+ call: PhoneIcon,
357
+ email: MailIcon,
358
+ mail: MailIcon,
359
+ message: MailIcon,
360
+ messages: MailIcon,
361
+ tools: WrenchIcon,
362
+ maintenance: WrenchIcon,
363
+ favorites: StarIcon,
364
+ bookmark: StarIcon,
365
+ edit: EditIcon,
366
+ manage: EditIcon,
367
+ delete: TrashIcon,
368
+ trash: TrashIcon,
369
+ view: EyeIcon,
370
+ preview: EyeIcon,
371
+ detail: EyeIcon,
372
+ download: DownloadIcon,
373
+ export: DownloadIcon,
374
+ upload: UploadIcon,
375
+ import: UploadIcon,
376
+ print: PrinterIcon,
377
+ printer: PrinterIcon,
378
+ logout: LogOutIcon,
379
+ signout: LogOutIcon,
380
+ approve: CheckCircleIcon,
381
+ approved: CheckCircleIcon,
382
+ add: PlusCircleIcon,
383
+ create: PlusCircleIcon,
384
+ new: PlusCircleIcon
385
+ };
386
+ function DefaultIcon() {
387
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "4" }) });
388
+ }
389
+ function getAutoIcon(id) {
390
+ const IconComp = ICON_MAP[id.toLowerCase()];
391
+ if (IconComp) return /* @__PURE__ */ jsxRuntime.jsx(IconComp, {});
392
+ return /* @__PURE__ */ jsxRuntime.jsx(DefaultIcon, {});
393
+ }
82
394
  function ChevronDownIcon({ isOpen }) {
83
395
  return /* @__PURE__ */ jsxRuntime.jsx(
84
396
  "svg",
@@ -109,6 +421,7 @@ function MenuItemComponent({
109
421
  }) {
110
422
  const hasChildren = item.children && item.children.length > 0;
111
423
  const isActive = item.path ? currentPath === item.path : false;
424
+ const resolvedIcon = item.icon || getAutoIcon(item.id);
112
425
  const isChildActive = hasChildren ? item.children.some((child) => child.path === currentPath) : false;
113
426
  const [userToggled, setUserToggled] = react.useState(false);
114
427
  const [isOpen, setIsOpen] = react.useState(isChildActive);
@@ -149,13 +462,13 @@ function MenuItemComponent({
149
462
  cursor: "pointer",
150
463
  transition: "background-color 0.15s ease"
151
464
  },
152
- children: item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
465
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
153
466
  width: "24px",
154
467
  height: "24px",
155
468
  display: "flex",
156
469
  alignItems: "center",
157
470
  justifyContent: "center"
158
- }, children: item.icon })
471
+ }, children: resolvedIcon })
159
472
  }
160
473
  ),
161
474
  item.dividerAfter && /* @__PURE__ */ jsxRuntime.jsx("hr", { style: {
@@ -194,7 +507,7 @@ function MenuItemComponent({
194
507
  lineHeight: "22px"
195
508
  },
196
509
  children: [
197
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
510
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: {
198
511
  width: "24px",
199
512
  height: "24px",
200
513
  display: "flex",
@@ -202,7 +515,7 @@ function MenuItemComponent({
202
515
  justifyContent: "center",
203
516
  flexShrink: 0,
204
517
  color: isActive ? activeColor : "var(--color-alias-text-colors-tertiary, #475272)"
205
- }, children: item.icon }),
518
+ }, children: resolvedIcon }),
206
519
  /* @__PURE__ */ jsxRuntime.jsx("span", { style: { flex: 1 }, children: item.title }),
207
520
  hasChildren && /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { isOpen: expanded })
208
521
  ]
@@ -468,22 +781,22 @@ function ToggleIcon({ isOpen }) {
468
781
  }
469
782
  );
470
783
  }
471
- function HelpCircleIcon() {
784
+ function HelpCircleIcon2() {
472
785
  return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
473
786
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
474
787
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }),
475
788
  /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
476
789
  ] });
477
790
  }
478
- function GearIcon() {
791
+ function GearIcon2() {
479
792
  return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
480
793
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3" }),
481
794
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" })
482
795
  ] });
483
796
  }
484
797
  var DEFAULT_BOTTOM_MENU = [
485
- { id: "settings", title: "\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E23\u0E30\u0E1A\u0E1A", icon: /* @__PURE__ */ jsxRuntime.jsx(GearIcon, {}), path: "/settings" },
486
- { id: "help", title: "\u0E0A\u0E48\u0E27\u0E22\u0E40\u0E2B\u0E25\u0E37\u0E2D", icon: /* @__PURE__ */ jsxRuntime.jsx(HelpCircleIcon, {}), path: "/help" }
798
+ { id: "settings", title: "\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E23\u0E30\u0E1A\u0E1A", icon: /* @__PURE__ */ jsxRuntime.jsx(GearIcon2, {}), path: "/settings" },
799
+ { id: "help", title: "\u0E0A\u0E48\u0E27\u0E22\u0E40\u0E2B\u0E25\u0E37\u0E2D", icon: /* @__PURE__ */ jsxRuntime.jsx(HelpCircleIcon2, {}), path: "/help" }
487
800
  ];
488
801
  function StaffSidebar({
489
802
  orgLogo,
@@ -610,7 +923,7 @@ function StaffSidebar({
610
923
  )
611
924
  ] });
612
925
  }
613
- function BellIcon() {
926
+ function BellIcon2() {
614
927
  return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "22", height: "24", viewBox: "0 0 22 24", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
615
928
  "path",
616
929
  {
@@ -771,7 +1084,7 @@ function UserHeader({
771
1084
  justifyContent: "center"
772
1085
  },
773
1086
  children: [
774
- /* @__PURE__ */ jsxRuntime.jsx(BellIcon, {}),
1087
+ /* @__PURE__ */ jsxRuntime.jsx(BellIcon2, {}),
775
1088
  unreadCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
776
1089
  "span",
777
1090
  {
@@ -1602,17 +1915,88 @@ function SettingsPanel({ className, showTheme = true }) {
1602
1915
  ] });
1603
1916
  }
1604
1917
 
1918
+ // src/icons/index.ts
1919
+ var Icons = {
1920
+ Home: HomeIcon,
1921
+ Search: SearchIcon,
1922
+ Bell: BellIcon,
1923
+ Folder: FolderIcon,
1924
+ Clipboard: ClipboardIcon,
1925
+ FileText: FileTextIcon,
1926
+ Calendar: CalendarIcon,
1927
+ User: UserIcon,
1928
+ Users: UsersIcon,
1929
+ Gear: GearIcon,
1930
+ Wrench: WrenchIcon,
1931
+ Shield: ShieldIcon,
1932
+ HelpCircle: HelpCircleIcon,
1933
+ BarChart: BarChartIcon,
1934
+ History: HistoryIcon,
1935
+ Database: DatabaseIcon,
1936
+ Building: BuildingIcon,
1937
+ MapPin: MapPinIcon,
1938
+ Phone: PhoneIcon,
1939
+ Mail: MailIcon,
1940
+ CheckCircle: CheckCircleIcon,
1941
+ AlertTriangle: AlertTriangleIcon,
1942
+ XCircle: XCircleIcon,
1943
+ PlusCircle: PlusCircleIcon,
1944
+ LogOut: LogOutIcon,
1945
+ Download: DownloadIcon,
1946
+ Upload: UploadIcon,
1947
+ Printer: PrinterIcon,
1948
+ Star: StarIcon,
1949
+ Heart: HeartIcon,
1950
+ Eye: EyeIcon,
1951
+ Edit: EditIcon,
1952
+ Trash: TrashIcon
1953
+ };
1954
+
1955
+ exports.AlertTriangleIcon = AlertTriangleIcon;
1956
+ exports.BarChartIcon = BarChartIcon;
1957
+ exports.BellIcon = BellIcon;
1958
+ exports.BuildingIcon = BuildingIcon;
1959
+ exports.CalendarIcon = CalendarIcon;
1960
+ exports.CheckCircleIcon = CheckCircleIcon;
1961
+ exports.ClipboardIcon = ClipboardIcon;
1962
+ exports.DatabaseIcon = DatabaseIcon;
1963
+ exports.DownloadIcon = DownloadIcon;
1964
+ exports.EditIcon = EditIcon;
1965
+ exports.EyeIcon = EyeIcon;
1605
1966
  exports.FONT_SIZE_OPTIONS = FONT_SIZE_OPTIONS;
1967
+ exports.FileTextIcon = FileTextIcon;
1968
+ exports.FolderIcon = FolderIcon;
1606
1969
  exports.FontSizeSettings = FontSizeSettings;
1970
+ exports.GearIcon = GearIcon;
1971
+ exports.HeartIcon = HeartIcon;
1972
+ exports.HelpCircleIcon = HelpCircleIcon;
1973
+ exports.HistoryIcon = HistoryIcon;
1974
+ exports.HomeIcon = HomeIcon;
1975
+ exports.Icons = Icons;
1976
+ exports.LogOutIcon = LogOutIcon;
1977
+ exports.MailIcon = MailIcon;
1978
+ exports.MapPinIcon = MapPinIcon;
1979
+ exports.PhoneIcon = PhoneIcon;
1980
+ exports.PlusCircleIcon = PlusCircleIcon;
1981
+ exports.PrinterIcon = PrinterIcon;
1982
+ exports.SearchIcon = SearchIcon;
1607
1983
  exports.SettingsPanel = SettingsPanel;
1608
1984
  exports.SettingsProvider = SettingsProvider;
1985
+ exports.ShieldIcon = ShieldIcon;
1609
1986
  exports.SidebarHeader = SidebarHeader;
1610
1987
  exports.SidebarMenu = SidebarMenu;
1611
1988
  exports.SidebarUserProfile = SidebarUserProfile;
1612
1989
  exports.StaffSidebar = StaffSidebar;
1990
+ exports.StarIcon = StarIcon;
1613
1991
  exports.ThemeSettings = ThemeSettings;
1992
+ exports.TrashIcon = TrashIcon;
1993
+ exports.UploadIcon = UploadIcon;
1614
1994
  exports.UserHeader = UserHeader;
1995
+ exports.UserIcon = UserIcon;
1615
1996
  exports.UserSidebar = UserSidebar;
1997
+ exports.UsersIcon = UsersIcon;
1998
+ exports.WrenchIcon = WrenchIcon;
1999
+ exports.XCircleIcon = XCircleIcon;
1616
2000
  exports.useSettings = useSettings;
1617
2001
  //# sourceMappingURL=index.js.map
1618
2002
  //# sourceMappingURL=index.js.map