@salemcobalt/ui 0.1.1 → 0.2.0-rc.1

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
@@ -163,9 +163,277 @@ var Kbd = Object.assign(KbdBase, { Group: KbdGroup });
163
163
 
164
164
  // src/components/Dialog/Dialog.tsx
165
165
  import { Dialog as BaseDialog } from "@base-ui/react/dialog";
166
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
167
- function Root({ dismissible = true, onOpenChange, open, defaultOpen, children }) {
166
+
167
+ // src/components/Icon/Icon.tsx
168
+ import { jsx as jsx4 } from "react/jsx-runtime";
169
+ function Icon({ size = "md", title, className, children, ...rest }) {
168
170
  return /* @__PURE__ */ jsx4(
171
+ "svg",
172
+ {
173
+ className: cx("sc-icon", className),
174
+ "data-size": size,
175
+ viewBox: "0 0 16 16",
176
+ fill: "none",
177
+ stroke: "currentColor",
178
+ strokeWidth: "1.5",
179
+ strokeLinecap: "round",
180
+ strokeLinejoin: "round",
181
+ focusable: "false",
182
+ "aria-hidden": title ? void 0 : true,
183
+ role: title ? "img" : void 0,
184
+ "aria-label": title,
185
+ ...rest,
186
+ children
187
+ }
188
+ );
189
+ }
190
+
191
+ // src/icons/icons.gen.tsx
192
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
193
+ function ArchiveIcon(props) {
194
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
195
+ /* @__PURE__ */ jsx5("rect", { x: "2.25", y: "2.75", width: "11.5", height: "3", rx: ".75" }),
196
+ /* @__PURE__ */ jsx5("path", { d: "M3.25 5.75v6.5a1 1 0 0 0 1 1h7.5a1 1 0 0 0 1-1v-6.5M6.5 8.75h3" })
197
+ ] });
198
+ }
199
+ function ArrowLeftIcon(props) {
200
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M13 8H3M7 4 3 8l4 4" }) });
201
+ }
202
+ function ArrowRightIcon(props) {
203
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M3 8h10M9 4l4 4-4 4" }) });
204
+ }
205
+ function BellIcon(props) {
206
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
207
+ /* @__PURE__ */ jsx5("path", { d: "M4 6.5a4 4 0 0 1 8 0v3l1.25 2H2.75L4 9.5z" }),
208
+ /* @__PURE__ */ jsx5("path", { d: "M6.5 13.5a1.5 1.5 0 0 0 3 0" })
209
+ ] });
210
+ }
211
+ function BriefcaseIcon(props) {
212
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
213
+ /* @__PURE__ */ jsx5("rect", { x: "2", y: "4.75", width: "12", height: "8.5", rx: "1" }),
214
+ /* @__PURE__ */ jsx5("path", { d: "M5.5 4.75V3.5a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v1.25M2 8.5h12" })
215
+ ] });
216
+ }
217
+ function CalendarIcon(props) {
218
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
219
+ /* @__PURE__ */ jsx5("rect", { x: "2.5", y: "3.25", width: "11", height: "10", rx: "1" }),
220
+ /* @__PURE__ */ jsx5("path", { d: "M2.5 6.75h11M5.5 1.75v3M10.5 1.75v3" })
221
+ ] });
222
+ }
223
+ function CheckIcon(props) {
224
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "m3 8.5 3.5 3.5L13 4.5" }) });
225
+ }
226
+ function ChevronDownIcon(props) {
227
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "m4 6 4 4 4-4" }) });
228
+ }
229
+ function ChevronLeftIcon(props) {
230
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "m10 4-4 4 4 4" }) });
231
+ }
232
+ function ChevronRightIcon(props) {
233
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "m6 4 4 4-4 4" }) });
234
+ }
235
+ function ChevronUpIcon(props) {
236
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "m4 10 4-4 4 4" }) });
237
+ }
238
+ function CircleCheckIcon(props) {
239
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
240
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "6" }),
241
+ /* @__PURE__ */ jsx5("path", { d: "m5.25 8 2 2 3.5-4" })
242
+ ] });
243
+ }
244
+ function CircleXIcon(props) {
245
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
246
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "6" }),
247
+ /* @__PURE__ */ jsx5("path", { d: "m6 6 4 4M10 6l-4 4" })
248
+ ] });
249
+ }
250
+ function ClockIcon(props) {
251
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
252
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "6" }),
253
+ /* @__PURE__ */ jsx5("path", { d: "M8 4.75V8l2.25 1.5" })
254
+ ] });
255
+ }
256
+ function CopyIcon(props) {
257
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
258
+ /* @__PURE__ */ jsx5("rect", { x: "6", y: "6", width: "7.5", height: "7.5", rx: "1" }),
259
+ /* @__PURE__ */ jsx5("path", { d: "M4 10H3.25a1 1 0 0 1-1-1V3.25a1 1 0 0 1 1-1H9a1 1 0 0 1 1 1V4" })
260
+ ] });
261
+ }
262
+ function DocumentIcon(props) {
263
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
264
+ /* @__PURE__ */ jsx5("path", { d: "M9 2.25H4.5a1 1 0 0 0-1 1v9.5a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V5.75z" }),
265
+ /* @__PURE__ */ jsx5("path", { d: "M9 2.25v3.5h3.5M6 8.5h4M6 11h4" })
266
+ ] });
267
+ }
268
+ function DownloadIcon(props) {
269
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
270
+ /* @__PURE__ */ jsx5("path", { d: "M8 2.5v8M4.75 7.25 8 10.5l3.25-3.25" }),
271
+ /* @__PURE__ */ jsx5("path", { d: "M2.75 11v1.5a1 1 0 0 0 1 1h8.5a1 1 0 0 0 1-1V11" })
272
+ ] });
273
+ }
274
+ function EditIcon(props) {
275
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "m10.75 2.75 2.5 2.5-7.5 7.5H3.25v-2.5z" }) });
276
+ }
277
+ function ExternalLinkIcon(props) {
278
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
279
+ /* @__PURE__ */ jsx5("path", { d: "M9 2.75h4.25V7M13.25 2.75 7.5 8.5" }),
280
+ /* @__PURE__ */ jsx5("path", { d: "M11.25 9v3.25a1 1 0 0 1-1 1h-6.5a1 1 0 0 1-1-1v-6.5a1 1 0 0 1 1-1H7" })
281
+ ] });
282
+ }
283
+ function EyeIcon(props) {
284
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
285
+ /* @__PURE__ */ jsx5("path", { d: "M1.75 8s2.25-4.25 6.25-4.25S14.25 8 14.25 8s-2.25 4.25-6.25 4.25S1.75 8 1.75 8z" }),
286
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "2" })
287
+ ] });
288
+ }
289
+ function FilterIcon(props) {
290
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M2.5 3h11l-4.25 5v4.25L6.75 13.5V8z" }) });
291
+ }
292
+ function FlagIcon(props) {
293
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
294
+ /* @__PURE__ */ jsx5("path", { d: "M3.5 14V2.75" }),
295
+ /* @__PURE__ */ jsx5("path", { d: "M3.5 2.75h8.75l-2.25 3 2.25 3H3.5" })
296
+ ] });
297
+ }
298
+ function InboxIcon(props) {
299
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
300
+ /* @__PURE__ */ jsx5("path", { d: "M2 9v3.25a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V9l-1.6-4.6a1 1 0 0 0-.95-.65H4.55a1 1 0 0 0-.95.65z" }),
301
+ /* @__PURE__ */ jsx5("path", { d: "M2 9h3.25l1 2h3.5l1-2H14" })
302
+ ] });
303
+ }
304
+ function InfoIcon(props) {
305
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
306
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "6" }),
307
+ /* @__PURE__ */ jsx5("path", { d: "M8 7.25V11M8 5.25v.01" })
308
+ ] });
309
+ }
310
+ function LinkIcon(props) {
311
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
312
+ /* @__PURE__ */ jsx5("path", { d: "M6.75 9.25a2.5 2.5 0 0 0 3.54 0l2-2a2.5 2.5 0 0 0-3.54-3.54l-.75.75" }),
313
+ /* @__PURE__ */ jsx5("path", { d: "M9.25 6.75a2.5 2.5 0 0 0-3.54 0l-2 2a2.5 2.5 0 0 0 3.54 3.54l.75-.75" })
314
+ ] });
315
+ }
316
+ function MailIcon(props) {
317
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
318
+ /* @__PURE__ */ jsx5("rect", { x: "2", y: "3.5", width: "12", height: "9", rx: "1" }),
319
+ /* @__PURE__ */ jsx5("path", { d: "m2.5 4.5 5.5 4.25L13.5 4.5" })
320
+ ] });
321
+ }
322
+ function MapPinIcon(props) {
323
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
324
+ /* @__PURE__ */ jsx5("path", { d: "M8 14s4.5-3.9 4.5-7.5a4.5 4.5 0 1 0-9 0C3.5 10.1 8 14 8 14z" }),
325
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "6.5", r: "1.5" })
326
+ ] });
327
+ }
328
+ function MenuIcon(props) {
329
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M2.5 4.5h11M2.5 8h11M2.5 11.5h11" }) });
330
+ }
331
+ function MinusIcon(props) {
332
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M3 8h10" }) });
333
+ }
334
+ function MoonIcon(props) {
335
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M13.25 9.5A5.5 5.5 0 0 1 6.5 2.75 5.5 5.5 0 1 0 13.25 9.5z" }) });
336
+ }
337
+ function MoreHorizontalIcon(props) {
338
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
339
+ /* @__PURE__ */ jsx5("circle", { cx: "3.5", cy: "8", r: "1.25", fill: "currentColor", stroke: "none" }),
340
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "1.25", fill: "currentColor", stroke: "none" }),
341
+ /* @__PURE__ */ jsx5("circle", { cx: "12.5", cy: "8", r: "1.25", fill: "currentColor", stroke: "none" })
342
+ ] });
343
+ }
344
+ function MoreVerticalIcon(props) {
345
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
346
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "3.5", r: "1.25", fill: "currentColor", stroke: "none" }),
347
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "1.25", fill: "currentColor", stroke: "none" }),
348
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "12.5", r: "1.25", fill: "currentColor", stroke: "none" })
349
+ ] });
350
+ }
351
+ function PauseIcon(props) {
352
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
353
+ /* @__PURE__ */ jsx5("rect", { x: "3.75", y: "2.75", width: "3", height: "10.5", rx: ".75" }),
354
+ /* @__PURE__ */ jsx5("rect", { x: "9.25", y: "2.75", width: "3", height: "10.5", rx: ".75" })
355
+ ] });
356
+ }
357
+ function PlayIcon(props) {
358
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M4.5 2.75v10.5L13 8z" }) });
359
+ }
360
+ function PlusIcon(props) {
361
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M8 3v10M3 8h10" }) });
362
+ }
363
+ function RefreshIcon(props) {
364
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
365
+ /* @__PURE__ */ jsx5("path", { d: "M2.75 8a5.25 5.25 0 0 1 9-3.7l1.5 1.45" }),
366
+ /* @__PURE__ */ jsx5("path", { d: "M13.25 2.25v3.5h-3.5" }),
367
+ /* @__PURE__ */ jsx5("path", { d: "M13.25 8a5.25 5.25 0 0 1-9 3.7l-1.5-1.45" }),
368
+ /* @__PURE__ */ jsx5("path", { d: "M2.75 13.75v-3.5h3.5" })
369
+ ] });
370
+ }
371
+ function SearchIcon(props) {
372
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
373
+ /* @__PURE__ */ jsx5("circle", { cx: "7", cy: "7", r: "4.5" }),
374
+ /* @__PURE__ */ jsx5("path", { d: "m10.5 10.5 3 3" })
375
+ ] });
376
+ }
377
+ function SettingsIcon(props) {
378
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
379
+ /* @__PURE__ */ jsx5("path", { d: "M13.01 6.42 14.67 6.94v2.12l-1.66.52-.35.84.8 1.55-1.49 1.49-1.55-.8-.84.35-.52 1.66H6.94l-.52-1.66-.84-.35-1.55.8-1.49-1.49.8-1.55-.35-.84-1.66-.52V6.94l1.66-.52.35-.84-.8-1.55 1.49-1.49 1.55.8.84-.35.52-1.66h2.12l.52 1.66.84.35 1.55-.8 1.49 1.49-.8 1.55z" }),
380
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "2.25" })
381
+ ] });
382
+ }
383
+ function StarIcon(props) {
384
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "m8 2.25 1.8 3.8 4.2.55-3.1 2.9.8 4.15L8 11.6l-3.7 2.05.8-4.15L2 6.6l4.2-.55z" }) });
385
+ }
386
+ function SunIcon(props) {
387
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
388
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "8", r: "3" }),
389
+ /* @__PURE__ */ jsx5("path", { d: "M8 1.75v1.5M8 12.75v1.5M1.75 8h1.5M12.75 8h1.5M3.58 3.58l1.06 1.06M11.36 11.36l1.06 1.06M3.58 12.42l1.06-1.06M11.36 4.64l1.06-1.06" })
390
+ ] });
391
+ }
392
+ function ThumbsDownIcon(props) {
393
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
394
+ /* @__PURE__ */ jsx5("path", { d: "M5 2.5H3a.5.5 0 0 0-.5.5v5.5a.5.5 0 0 0 .5.5h2" }),
395
+ /* @__PURE__ */ jsx5("path", { d: "M5 9l2.5 4.5a1.5 1.5 0 0 0 1.5-1.5V9.5h3.25a1.25 1.25 0 0 0 1.23-1.45l-.9-5a1.25 1.25 0 0 0-1.23-1.05H5z" })
396
+ ] });
397
+ }
398
+ function ThumbsUpIcon(props) {
399
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
400
+ /* @__PURE__ */ jsx5("path", { d: "M5 13.5H3a.5.5 0 0 1-.5-.5V7.5A.5.5 0 0 1 3 7h2" }),
401
+ /* @__PURE__ */ jsx5("path", { d: "M5 7l2.5-4.5a1.5 1.5 0 0 1 1.5 1.5v2.5h3.25a1.25 1.25 0 0 1 1.23 1.45l-.9 5a1.25 1.25 0 0 1-1.23 1.05H5z" })
402
+ ] });
403
+ }
404
+ function TrashIcon(props) {
405
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
406
+ /* @__PURE__ */ jsx5("path", { d: "M2.75 4.25h10.5M6.25 4.25V3a.75.75 0 0 1 .75-.75h2A.75.75 0 0 1 9.75 3v1.25" }),
407
+ /* @__PURE__ */ jsx5("path", { d: "M4 4.25l.5 8.5a1 1 0 0 0 1 .95h5a1 1 0 0 0 1-.95l.5-8.5" }),
408
+ /* @__PURE__ */ jsx5("path", { d: "M6.5 7v4M9.5 7v4" })
409
+ ] });
410
+ }
411
+ function UndoIcon(props) {
412
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
413
+ /* @__PURE__ */ jsx5("path", { d: "M3 7h7a3.5 3.5 0 0 1 0 7H6" }),
414
+ /* @__PURE__ */ jsx5("path", { d: "M6 4 3 7l3 3" })
415
+ ] });
416
+ }
417
+ function UserIcon(props) {
418
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
419
+ /* @__PURE__ */ jsx5("circle", { cx: "8", cy: "5.25", r: "2.75" }),
420
+ /* @__PURE__ */ jsx5("path", { d: "M2.75 13.75a5.25 5.25 0 0 1 10.5 0" })
421
+ ] });
422
+ }
423
+ function WarningIcon(props) {
424
+ return /* @__PURE__ */ jsxs4(Icon, { ...props, children: [
425
+ /* @__PURE__ */ jsx5("path", { d: "M8 2.5 1.75 13.25h12.5z" }),
426
+ /* @__PURE__ */ jsx5("path", { d: "M8 6.5v3M8 11.5v.01" })
427
+ ] });
428
+ }
429
+ function XIcon(props) {
430
+ return /* @__PURE__ */ jsx5(Icon, { ...props, children: /* @__PURE__ */ jsx5("path", { d: "M4 4l8 8M12 4l-8 8" }) });
431
+ }
432
+
433
+ // src/components/Dialog/Dialog.tsx
434
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
435
+ function Root({ dismissible = true, onOpenChange, open, defaultOpen, children }) {
436
+ return /* @__PURE__ */ jsx6(
169
437
  BaseDialog.Root,
170
438
  {
171
439
  open,
@@ -184,9 +452,9 @@ function Root({ dismissible = true, onOpenChange, open, defaultOpen, children })
184
452
  }
185
453
  var Trigger = BaseDialog.Trigger;
186
454
  function Content({ size = "md", className, children, ...rest }) {
187
- return /* @__PURE__ */ jsxs4(BaseDialog.Portal, { children: [
188
- /* @__PURE__ */ jsx4(BaseDialog.Backdrop, { className: "sc-dialog__backdrop" }),
189
- /* @__PURE__ */ jsx4(
455
+ return /* @__PURE__ */ jsxs5(BaseDialog.Portal, { children: [
456
+ /* @__PURE__ */ jsx6(BaseDialog.Backdrop, { className: "sc-dialog__backdrop" }),
457
+ /* @__PURE__ */ jsx6(
190
458
  BaseDialog.Popup,
191
459
  {
192
460
  className: cx("sc-dialog__popup", className),
@@ -199,47 +467,906 @@ function Content({ size = "md", className, children, ...rest }) {
199
467
  ] });
200
468
  }
201
469
  function Title({ className, ...rest }) {
202
- return /* @__PURE__ */ jsx4(BaseDialog.Title, { className: cx("sc-dialog__title", className), ...rest });
470
+ return /* @__PURE__ */ jsx6(BaseDialog.Title, { className: cx("sc-dialog__title", className), ...rest });
203
471
  }
204
472
  function Description({ className, ...rest }) {
205
- return /* @__PURE__ */ jsx4(BaseDialog.Description, { className: cx("sc-dialog__description", className), ...rest });
473
+ return /* @__PURE__ */ jsx6(BaseDialog.Description, { className: cx("sc-dialog__description", className), ...rest });
206
474
  }
207
475
  function Body({ className, ...rest }) {
208
- return /* @__PURE__ */ jsx4("div", { className: cx("sc-dialog__body", className), ...rest });
476
+ return /* @__PURE__ */ jsx6("div", { className: cx("sc-dialog__body", className), ...rest });
209
477
  }
210
478
  function Actions({ className, ...rest }) {
211
- return /* @__PURE__ */ jsx4(Inline, { justify: "end", className: cx("sc-dialog__actions", className), ...rest });
479
+ return /* @__PURE__ */ jsx6(Inline, { justify: "end", className: cx("sc-dialog__actions", className), ...rest });
212
480
  }
213
481
  function Close({ className, children, render, ...rest }) {
214
482
  if (children === void 0 && render === void 0) {
215
- return /* @__PURE__ */ jsx4(BaseDialog.Close, { className: cx("sc-dialog__close", className), "aria-label": "Close", ...rest, children: /* @__PURE__ */ jsx4(
216
- "svg",
217
- {
218
- width: "16",
219
- height: "16",
220
- viewBox: "0 0 16 16",
221
- fill: "none",
222
- stroke: "currentColor",
223
- strokeWidth: "1.75",
224
- "aria-hidden": "true",
225
- children: /* @__PURE__ */ jsx4("path", { d: "M4 4l8 8M12 4l-8 8" })
226
- }
227
- ) });
483
+ return /* @__PURE__ */ jsx6(BaseDialog.Close, { className: cx("sc-dialog__close", className), "aria-label": "Close", ...rest, children: /* @__PURE__ */ jsx6(XIcon, {}) });
228
484
  }
229
- return /* @__PURE__ */ jsx4(BaseDialog.Close, { className, render, ...rest, children });
485
+ return /* @__PURE__ */ jsx6(BaseDialog.Close, { className, render, ...rest, children });
230
486
  }
231
487
  var Dialog = { Root, Trigger, Content, Title, Description, Body, Actions, Close };
232
488
 
489
+ // src/icons/icon-names.gen.ts
490
+ var iconNames = [
491
+ "archive",
492
+ "arrow-left",
493
+ "arrow-right",
494
+ "bell",
495
+ "briefcase",
496
+ "calendar",
497
+ "check",
498
+ "chevron-down",
499
+ "chevron-left",
500
+ "chevron-right",
501
+ "chevron-up",
502
+ "circle-check",
503
+ "circle-x",
504
+ "clock",
505
+ "copy",
506
+ "document",
507
+ "download",
508
+ "edit",
509
+ "external-link",
510
+ "eye",
511
+ "filter",
512
+ "flag",
513
+ "inbox",
514
+ "info",
515
+ "link",
516
+ "mail",
517
+ "map-pin",
518
+ "menu",
519
+ "minus",
520
+ "moon",
521
+ "more-horizontal",
522
+ "more-vertical",
523
+ "pause",
524
+ "play",
525
+ "plus",
526
+ "refresh",
527
+ "search",
528
+ "settings",
529
+ "star",
530
+ "sun",
531
+ "thumbs-down",
532
+ "thumbs-up",
533
+ "trash",
534
+ "undo",
535
+ "user",
536
+ "warning",
537
+ "x"
538
+ ];
539
+
540
+ // src/components/Tooltip/Tooltip.tsx
541
+ import { Tooltip as BaseTooltip } from "@base-ui/react/tooltip";
542
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
543
+ function TooltipBase({
544
+ content,
545
+ children,
546
+ side = "top",
547
+ align = "center",
548
+ delay = 300,
549
+ closeDelay,
550
+ open,
551
+ defaultOpen,
552
+ onOpenChange,
553
+ disabled,
554
+ className
555
+ }) {
556
+ return /* @__PURE__ */ jsxs6(
557
+ BaseTooltip.Root,
558
+ {
559
+ open,
560
+ defaultOpen,
561
+ onOpenChange: onOpenChange ? (next) => onOpenChange(next) : void 0,
562
+ disabled,
563
+ children: [
564
+ /* @__PURE__ */ jsx7(BaseTooltip.Trigger, { render: children, delay, closeDelay }),
565
+ /* @__PURE__ */ jsx7(BaseTooltip.Portal, { children: /* @__PURE__ */ jsx7(BaseTooltip.Positioner, { side, align, sideOffset: 6, className: "sc-tooltip__positioner", children: /* @__PURE__ */ jsxs6(BaseTooltip.Popup, { role: "tooltip", className: cx("sc-tooltip", className), children: [
566
+ /* @__PURE__ */ jsx7(BaseTooltip.Arrow, { className: "sc-tooltip__arrow" }),
567
+ content
568
+ ] }) }) })
569
+ ]
570
+ }
571
+ );
572
+ }
573
+ var Provider = BaseTooltip.Provider;
574
+ var Tooltip = Object.assign(TooltipBase, { Provider });
575
+
576
+ // src/components/IconButton/IconButton.tsx
577
+ import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
578
+ function IconButton({
579
+ label,
580
+ children,
581
+ variant = "ghost",
582
+ size = "md",
583
+ tooltip,
584
+ tooltipSide = "top",
585
+ round = false,
586
+ loading = false,
587
+ type = "button",
588
+ className,
589
+ onClick,
590
+ ...rest
591
+ }) {
592
+ const handleClick = (event) => {
593
+ if (loading) {
594
+ event.preventDefault();
595
+ return;
596
+ }
597
+ onClick?.(event);
598
+ };
599
+ const button = /* @__PURE__ */ jsxs7(
600
+ "button",
601
+ {
602
+ type,
603
+ className: cx("sc-button", "sc-icon-button", className),
604
+ "data-variant": variant,
605
+ "data-size": size,
606
+ "data-round": round || void 0,
607
+ "data-loading": loading || void 0,
608
+ "aria-busy": loading || void 0,
609
+ "aria-label": label,
610
+ onClick: handleClick,
611
+ ...rest,
612
+ children: [
613
+ /* @__PURE__ */ jsx8("span", { className: "sc-button__icon", "aria-hidden": "true", children }),
614
+ loading ? /* @__PURE__ */ jsx8("span", { className: "sc-button__spinner", "aria-hidden": "true" }) : null
615
+ ]
616
+ }
617
+ );
618
+ if (!tooltip) return button;
619
+ return /* @__PURE__ */ jsx8(Tooltip, { content: tooltip === true ? label : tooltip, side: tooltipSide, children: button });
620
+ }
621
+
622
+ // src/components/Menu/Menu.tsx
623
+ import { Menu as BaseMenu } from "@base-ui/react/menu";
624
+ import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
625
+ function Root2({ open, defaultOpen, onOpenChange, disabled, modal = true, children }) {
626
+ return /* @__PURE__ */ jsx9(
627
+ BaseMenu.Root,
628
+ {
629
+ open,
630
+ defaultOpen,
631
+ onOpenChange: onOpenChange ? (next) => onOpenChange(next) : void 0,
632
+ disabled,
633
+ modal,
634
+ children
635
+ }
636
+ );
637
+ }
638
+ function Trigger2({ render, className, children, ...rest }) {
639
+ return /* @__PURE__ */ jsx9(
640
+ BaseMenu.Trigger,
641
+ {
642
+ render: render ?? /* @__PURE__ */ jsx9(Button, { variant: "secondary", iconEnd: /* @__PURE__ */ jsx9(ChevronDownIcon, {}), className }),
643
+ className: render ? className : void 0,
644
+ ...rest,
645
+ children
646
+ }
647
+ );
648
+ }
649
+ function Content2({
650
+ side = "bottom",
651
+ align = "start",
652
+ sideOffset = 4,
653
+ className,
654
+ children,
655
+ ...rest
656
+ }) {
657
+ return /* @__PURE__ */ jsx9(BaseMenu.Portal, { children: /* @__PURE__ */ jsx9(BaseMenu.Positioner, { side, align, sideOffset, className: "sc-menu__positioner", children: /* @__PURE__ */ jsx9(BaseMenu.Popup, { className: cx("sc-menu", className), ...rest, children }) }) });
658
+ }
659
+ function ItemBody({
660
+ icon,
661
+ trailing,
662
+ children
663
+ }) {
664
+ return /* @__PURE__ */ jsxs8(Fragment2, { children: [
665
+ /* @__PURE__ */ jsx9("span", { className: "sc-menu__icon", "aria-hidden": "true", children: icon }),
666
+ /* @__PURE__ */ jsx9("span", { className: "sc-menu__label", children }),
667
+ trailing !== void 0 ? /* @__PURE__ */ jsx9("span", { className: "sc-menu__trailing", children: trailing }) : null
668
+ ] });
669
+ }
670
+ function Item({ icon, trailing, tone = "default", className, children, ...rest }) {
671
+ return /* @__PURE__ */ jsx9(BaseMenu.Item, { className: cx("sc-menu__item", className), "data-tone": tone, ...rest, children: /* @__PURE__ */ jsx9(ItemBody, { icon, trailing, children }) });
672
+ }
673
+ function LinkItem({ icon, trailing, tone = "default", className, children, ...rest }) {
674
+ return /* @__PURE__ */ jsx9(BaseMenu.LinkItem, { className: cx("sc-menu__item", className), "data-tone": tone, ...rest, children: /* @__PURE__ */ jsx9(ItemBody, { icon, trailing, children }) });
675
+ }
676
+ function CheckboxItem({ trailing, onCheckedChange, className, children, ...rest }) {
677
+ return /* @__PURE__ */ jsxs8(
678
+ BaseMenu.CheckboxItem,
679
+ {
680
+ className: cx("sc-menu__item", className),
681
+ onCheckedChange: onCheckedChange ? (checked) => onCheckedChange(checked) : void 0,
682
+ ...rest,
683
+ children: [
684
+ /* @__PURE__ */ jsx9(BaseMenu.CheckboxItemIndicator, { className: "sc-menu__icon sc-menu__indicator", children: /* @__PURE__ */ jsx9(CheckIcon, { size: "sm" }) }),
685
+ /* @__PURE__ */ jsx9("span", { className: "sc-menu__label", children }),
686
+ trailing !== void 0 ? /* @__PURE__ */ jsx9("span", { className: "sc-menu__trailing", children: trailing }) : null
687
+ ]
688
+ }
689
+ );
690
+ }
691
+ function RadioGroup({
692
+ label,
693
+ onValueChange,
694
+ className,
695
+ children,
696
+ ...rest
697
+ }) {
698
+ return /* @__PURE__ */ jsxs8(
699
+ BaseMenu.RadioGroup,
700
+ {
701
+ className: cx("sc-menu__group", className),
702
+ onValueChange: onValueChange ? (value) => onValueChange(value) : void 0,
703
+ ...rest,
704
+ children: [
705
+ label !== void 0 ? /* @__PURE__ */ jsx9(BaseMenu.GroupLabel, { className: "sc-menu__group-label", children: label }) : null,
706
+ children
707
+ ]
708
+ }
709
+ );
710
+ }
711
+ function RadioItem({ trailing, className, children, ...rest }) {
712
+ return /* @__PURE__ */ jsxs8(BaseMenu.RadioItem, { className: cx("sc-menu__item", className), ...rest, children: [
713
+ /* @__PURE__ */ jsx9(BaseMenu.RadioItemIndicator, { className: "sc-menu__icon sc-menu__indicator", children: /* @__PURE__ */ jsx9("span", { className: "sc-menu__radio-dot" }) }),
714
+ /* @__PURE__ */ jsx9("span", { className: "sc-menu__label", children }),
715
+ trailing !== void 0 ? /* @__PURE__ */ jsx9("span", { className: "sc-menu__trailing", children: trailing }) : null
716
+ ] });
717
+ }
718
+ function Group({ label, className, children, ...rest }) {
719
+ return /* @__PURE__ */ jsxs8(BaseMenu.Group, { className: cx("sc-menu__group", className), ...rest, children: [
720
+ label !== void 0 ? /* @__PURE__ */ jsx9(BaseMenu.GroupLabel, { className: "sc-menu__group-label", children: label }) : null,
721
+ children
722
+ ] });
723
+ }
724
+ function Separator({ className, ...rest }) {
725
+ return /* @__PURE__ */ jsx9(BaseMenu.Separator, { className: cx("sc-menu__separator", className), ...rest });
726
+ }
727
+ var Menu = {
728
+ Root: Root2,
729
+ Trigger: Trigger2,
730
+ Content: Content2,
731
+ Item,
732
+ LinkItem,
733
+ CheckboxItem,
734
+ RadioGroup,
735
+ RadioItem,
736
+ Group,
737
+ Separator
738
+ };
739
+
740
+ // src/components/Input/Input.tsx
741
+ import { Field as Field2 } from "@base-ui/react/field";
742
+
743
+ // src/components/Field/FieldShell.tsx
744
+ import { Field } from "@base-ui/react/field";
745
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
746
+ function FieldShell({
747
+ label,
748
+ hideLabel = false,
749
+ description,
750
+ error,
751
+ invalid = false,
752
+ required = false,
753
+ disabled = false,
754
+ name,
755
+ size = "md",
756
+ className,
757
+ children
758
+ }) {
759
+ return /* @__PURE__ */ jsxs9(
760
+ Field.Root,
761
+ {
762
+ className: cx("sc-field", className),
763
+ name,
764
+ disabled,
765
+ invalid: invalid || error != null,
766
+ "data-size": size,
767
+ children: [
768
+ /* @__PURE__ */ jsxs9(Field.Label, { className: cx("sc-field__label", hideLabel && "sc-visually-hidden"), children: [
769
+ label,
770
+ required ? /* @__PURE__ */ jsx10("span", { className: "sc-field__required", "aria-hidden": "true", children: "*" }) : null
771
+ ] }),
772
+ children,
773
+ description != null ? /* @__PURE__ */ jsx10(Field.Description, { className: "sc-field__description", children: description }) : null,
774
+ error != null ? /* @__PURE__ */ jsx10(Field.Error, { className: "sc-field__error", match: true, children: error }) : null
775
+ ]
776
+ }
777
+ );
778
+ }
779
+
780
+ // src/components/Input/Input.tsx
781
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
782
+ function Input({
783
+ label,
784
+ hideLabel,
785
+ description,
786
+ error,
787
+ invalid,
788
+ required,
789
+ disabled,
790
+ name,
791
+ size,
792
+ className,
793
+ iconStart,
794
+ iconEnd,
795
+ onValueChange,
796
+ ...rest
797
+ }) {
798
+ return /* @__PURE__ */ jsx11(
799
+ FieldShell,
800
+ {
801
+ label,
802
+ hideLabel,
803
+ description,
804
+ error,
805
+ invalid,
806
+ required,
807
+ disabled,
808
+ name,
809
+ size,
810
+ className,
811
+ children: /* @__PURE__ */ jsxs10(
812
+ "span",
813
+ {
814
+ className: "sc-input-wrap",
815
+ "data-icon-start": iconStart ? "" : void 0,
816
+ "data-icon-end": iconEnd ? "" : void 0,
817
+ children: [
818
+ iconStart ? /* @__PURE__ */ jsx11("span", { className: "sc-input__icon", "data-side": "start", "aria-hidden": "true", children: iconStart }) : null,
819
+ /* @__PURE__ */ jsx11(
820
+ Field2.Control,
821
+ {
822
+ className: "sc-input",
823
+ required,
824
+ onValueChange: onValueChange ? (value) => onValueChange(value) : void 0,
825
+ ...rest
826
+ }
827
+ ),
828
+ iconEnd ? /* @__PURE__ */ jsx11("span", { className: "sc-input__icon", "data-side": "end", "aria-hidden": "true", children: iconEnd }) : null
829
+ ]
830
+ }
831
+ )
832
+ }
833
+ );
834
+ }
835
+
836
+ // src/components/Textarea/Textarea.tsx
837
+ import { Field as Field3 } from "@base-ui/react/field";
838
+ import { jsx as jsx12 } from "react/jsx-runtime";
839
+ function Textarea({
840
+ label,
841
+ hideLabel,
842
+ description,
843
+ error,
844
+ invalid,
845
+ required,
846
+ disabled,
847
+ name,
848
+ className,
849
+ rows = 3,
850
+ resize = "vertical",
851
+ onValueChange,
852
+ ...rest
853
+ }) {
854
+ return /* @__PURE__ */ jsx12(
855
+ FieldShell,
856
+ {
857
+ label,
858
+ hideLabel,
859
+ description,
860
+ error,
861
+ invalid,
862
+ required,
863
+ disabled,
864
+ name,
865
+ className,
866
+ children: /* @__PURE__ */ jsx12(
867
+ Field3.Control,
868
+ {
869
+ render: /* @__PURE__ */ jsx12("textarea", { rows, ...rest }),
870
+ className: "sc-input sc-textarea",
871
+ "data-resize": resize,
872
+ required,
873
+ onValueChange: onValueChange ? (value) => onValueChange(value) : void 0
874
+ }
875
+ )
876
+ }
877
+ );
878
+ }
879
+
880
+ // src/components/Select/Select.tsx
881
+ import { Select as BaseSelect } from "@base-ui/react/select";
882
+ import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
883
+ function isGroup(entry) {
884
+ return "options" in entry;
885
+ }
886
+ function Option({ option }) {
887
+ return /* @__PURE__ */ jsxs11(BaseSelect.Item, { value: option.value, disabled: option.disabled, className: "sc-select__item", children: [
888
+ /* @__PURE__ */ jsx13(BaseSelect.ItemIndicator, { className: "sc-select__indicator", children: /* @__PURE__ */ jsx13(CheckIcon, { size: "sm" }) }),
889
+ /* @__PURE__ */ jsx13(BaseSelect.ItemText, { className: "sc-select__item-text", children: option.label })
890
+ ] });
891
+ }
892
+ function Select({
893
+ label,
894
+ hideLabel,
895
+ description,
896
+ error,
897
+ invalid,
898
+ required,
899
+ disabled,
900
+ name,
901
+ size = "md",
902
+ className,
903
+ options,
904
+ value,
905
+ defaultValue,
906
+ onValueChange,
907
+ placeholder = "Choose\u2026",
908
+ readOnly,
909
+ fullWidth = false,
910
+ id
911
+ }) {
912
+ const items = options.flatMap((entry) => isGroup(entry) ? entry.options : [entry]);
913
+ return /* @__PURE__ */ jsx13(
914
+ FieldShell,
915
+ {
916
+ label,
917
+ hideLabel,
918
+ description,
919
+ error,
920
+ invalid,
921
+ required,
922
+ disabled,
923
+ name,
924
+ size,
925
+ className,
926
+ children: /* @__PURE__ */ jsxs11(
927
+ BaseSelect.Root,
928
+ {
929
+ items,
930
+ value,
931
+ defaultValue,
932
+ onValueChange: onValueChange ? (next) => onValueChange(next) : void 0,
933
+ disabled,
934
+ required,
935
+ readOnly,
936
+ children: [
937
+ /* @__PURE__ */ jsxs11(
938
+ BaseSelect.Trigger,
939
+ {
940
+ id,
941
+ className: "sc-select",
942
+ "data-size": size,
943
+ "data-full-width": fullWidth || void 0,
944
+ children: [
945
+ /* @__PURE__ */ jsx13(BaseSelect.Value, { className: "sc-select__value", placeholder }),
946
+ /* @__PURE__ */ jsx13(BaseSelect.Icon, { className: "sc-select__icon", children: /* @__PURE__ */ jsx13(ChevronDownIcon, {}) })
947
+ ]
948
+ }
949
+ ),
950
+ /* @__PURE__ */ jsx13(BaseSelect.Portal, { children: /* @__PURE__ */ jsx13(
951
+ BaseSelect.Positioner,
952
+ {
953
+ className: "sc-select__positioner",
954
+ sideOffset: 4,
955
+ alignItemWithTrigger: false,
956
+ children: /* @__PURE__ */ jsx13(BaseSelect.Popup, { className: "sc-select__popup", children: /* @__PURE__ */ jsx13(BaseSelect.List, { children: options.map(
957
+ (entry, i) => isGroup(entry) ? /* @__PURE__ */ jsxs11(BaseSelect.Group, { className: "sc-select__group", children: [
958
+ /* @__PURE__ */ jsx13(BaseSelect.GroupLabel, { className: "sc-select__group-label", children: entry.label }),
959
+ entry.options.map((option) => /* @__PURE__ */ jsx13(Option, { option }, option.value))
960
+ ] }, i) : /* @__PURE__ */ jsx13(Option, { option: entry }, entry.value)
961
+ ) }) })
962
+ }
963
+ ) })
964
+ ]
965
+ }
966
+ )
967
+ }
968
+ );
969
+ }
970
+
971
+ // src/components/Checkbox/Checkbox.tsx
972
+ import { Checkbox as BaseCheckbox } from "@base-ui/react/checkbox";
973
+ import { useId } from "react";
974
+ import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
975
+ function Checkbox({
976
+ label,
977
+ description,
978
+ onCheckedChange,
979
+ className,
980
+ disabled,
981
+ ...rest
982
+ }) {
983
+ const descriptionId = useId();
984
+ return /* @__PURE__ */ jsxs12("div", { className: cx("sc-choice", className), "data-disabled": disabled || void 0, children: [
985
+ /* @__PURE__ */ jsxs12("label", { className: "sc-choice__control", children: [
986
+ /* @__PURE__ */ jsx14(
987
+ BaseCheckbox.Root,
988
+ {
989
+ className: "sc-checkbox",
990
+ disabled,
991
+ "aria-describedby": description != null ? descriptionId : void 0,
992
+ onCheckedChange: onCheckedChange ? (checked) => onCheckedChange(checked) : void 0,
993
+ ...rest,
994
+ children: /* @__PURE__ */ jsxs12(BaseCheckbox.Indicator, { className: "sc-checkbox__indicator", children: [
995
+ /* @__PURE__ */ jsx14(CheckIcon, { size: "sm", className: "sc-checkbox__check" }),
996
+ /* @__PURE__ */ jsx14(MinusIcon, { size: "sm", className: "sc-checkbox__dash" })
997
+ ] })
998
+ }
999
+ ),
1000
+ /* @__PURE__ */ jsx14("span", { className: "sc-choice__label", children: label })
1001
+ ] }),
1002
+ description != null ? /* @__PURE__ */ jsx14("span", { className: "sc-choice__description", id: descriptionId, children: description }) : null
1003
+ ] });
1004
+ }
1005
+
1006
+ // src/components/Switch/Switch.tsx
1007
+ import { Switch as BaseSwitch } from "@base-ui/react/switch";
1008
+ import { useId as useId2 } from "react";
1009
+ import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
1010
+ function Switch({
1011
+ label,
1012
+ description,
1013
+ onCheckedChange,
1014
+ labelPosition = "end",
1015
+ className,
1016
+ disabled,
1017
+ ...rest
1018
+ }) {
1019
+ const descriptionId = useId2();
1020
+ return /* @__PURE__ */ jsxs13(
1021
+ "div",
1022
+ {
1023
+ className: cx("sc-choice", className),
1024
+ "data-disabled": disabled || void 0,
1025
+ "data-label-position": labelPosition,
1026
+ children: [
1027
+ /* @__PURE__ */ jsxs13("label", { className: "sc-choice__control", children: [
1028
+ /* @__PURE__ */ jsx15(
1029
+ BaseSwitch.Root,
1030
+ {
1031
+ className: "sc-switch",
1032
+ disabled,
1033
+ "aria-describedby": description != null ? descriptionId : void 0,
1034
+ onCheckedChange: onCheckedChange ? (checked) => onCheckedChange(checked) : void 0,
1035
+ ...rest,
1036
+ children: /* @__PURE__ */ jsx15(BaseSwitch.Thumb, { className: "sc-switch__thumb" })
1037
+ }
1038
+ ),
1039
+ /* @__PURE__ */ jsx15("span", { className: "sc-choice__label", children: label })
1040
+ ] }),
1041
+ description != null ? /* @__PURE__ */ jsx15("span", { className: "sc-choice__description", id: descriptionId, children: description }) : null
1042
+ ]
1043
+ }
1044
+ );
1045
+ }
1046
+
1047
+ // src/components/Tabs/Tabs.tsx
1048
+ import { Tabs as BaseTabs } from "@base-ui/react/tabs";
1049
+ import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
1050
+ function Root3({ className, onValueChange, ...rest }) {
1051
+ return /* @__PURE__ */ jsx16(
1052
+ BaseTabs.Root,
1053
+ {
1054
+ className: cx("sc-tabs", className),
1055
+ onValueChange: onValueChange ? (value) => onValueChange(String(value)) : void 0,
1056
+ ...rest
1057
+ }
1058
+ );
1059
+ }
1060
+ function List({ fill = false, className, children, ...rest }) {
1061
+ return /* @__PURE__ */ jsxs14(BaseTabs.List, { className: cx("sc-tabs__list", className), "data-fill": fill || void 0, ...rest, children: [
1062
+ children,
1063
+ /* @__PURE__ */ jsx16(BaseTabs.Indicator, { className: "sc-tabs__indicator" })
1064
+ ] });
1065
+ }
1066
+ function Tab({ icon, count, className, children, ...rest }) {
1067
+ return /* @__PURE__ */ jsxs14(BaseTabs.Tab, { className: cx("sc-tabs__tab", className), ...rest, children: [
1068
+ icon ? /* @__PURE__ */ jsx16("span", { className: "sc-tabs__icon", "aria-hidden": "true", children: icon }) : null,
1069
+ /* @__PURE__ */ jsx16("span", { className: "sc-tabs__label", children }),
1070
+ count != null ? /* @__PURE__ */ jsxs14(Fragment3, { children: [
1071
+ " ",
1072
+ /* @__PURE__ */ jsx16("span", { className: "sc-tabs__count", children: count })
1073
+ ] }) : null
1074
+ ] });
1075
+ }
1076
+ function Panel({ className, ...rest }) {
1077
+ return /* @__PURE__ */ jsx16(BaseTabs.Panel, { className: cx("sc-tabs__panel", className), ...rest });
1078
+ }
1079
+ var Tabs = { Root: Root3, List, Tab, Panel };
1080
+
1081
+ // src/components/Toolbar/Toolbar.tsx
1082
+ import { Toolbar as BaseToolbar } from "@base-ui/react/toolbar";
1083
+ import { jsx as jsx17 } from "react/jsx-runtime";
1084
+ function Root4({ wrap = true, gap = "xs", className, ...rest }) {
1085
+ return /* @__PURE__ */ jsx17(
1086
+ BaseToolbar.Root,
1087
+ {
1088
+ className: cx("sc-toolbar", className),
1089
+ "data-wrap": wrap || void 0,
1090
+ "data-gap": gap,
1091
+ ...rest
1092
+ }
1093
+ );
1094
+ }
1095
+ function Group2({ gap = "2xs", className, ...rest }) {
1096
+ return /* @__PURE__ */ jsx17(BaseToolbar.Group, { className: cx("sc-toolbar__group", className), "data-gap": gap, ...rest });
1097
+ }
1098
+ function Separator2({ className, ...rest }) {
1099
+ return /* @__PURE__ */ jsx17(BaseToolbar.Separator, { className: cx("sc-toolbar__separator", className), ...rest });
1100
+ }
1101
+ var Button2 = BaseToolbar.Button;
1102
+ function Spacer({ className }) {
1103
+ return /* @__PURE__ */ jsx17("div", { className: cx("sc-toolbar__spacer", className), "aria-hidden": "true" });
1104
+ }
1105
+ var Toolbar = { Root: Root4, Group: Group2, Separator: Separator2, Button: Button2, Spacer };
1106
+
1107
+ // src/components/Banner/Banner.tsx
1108
+ import { useState } from "react";
1109
+ import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
1110
+ var toneIcons = {
1111
+ info: /* @__PURE__ */ jsx18(InfoIcon, {}),
1112
+ success: /* @__PURE__ */ jsx18(CircleCheckIcon, {}),
1113
+ warning: /* @__PURE__ */ jsx18(WarningIcon, {}),
1114
+ danger: /* @__PURE__ */ jsx18(CircleXIcon, {}),
1115
+ neutral: null
1116
+ };
1117
+ function Banner({
1118
+ tone = "info",
1119
+ icon,
1120
+ action,
1121
+ dismissible = false,
1122
+ onDismiss,
1123
+ open,
1124
+ dismissLabel = "Dismiss",
1125
+ role,
1126
+ className,
1127
+ children,
1128
+ ...rest
1129
+ }) {
1130
+ const [dismissed, setDismissed] = useState(false);
1131
+ const visible = open ?? !dismissed;
1132
+ if (!visible) return null;
1133
+ const glyph = icon === false ? null : icon ?? toneIcons[tone];
1134
+ return /* @__PURE__ */ jsxs15(
1135
+ "div",
1136
+ {
1137
+ role: role ?? (tone === "warning" || tone === "danger" ? "alert" : "status"),
1138
+ className: cx("sc-banner", className),
1139
+ "data-tone": tone,
1140
+ ...rest,
1141
+ children: [
1142
+ glyph ? /* @__PURE__ */ jsx18("span", { className: "sc-banner__icon", "aria-hidden": "true", children: glyph }) : null,
1143
+ /* @__PURE__ */ jsx18("div", { className: "sc-banner__body", children }),
1144
+ action ? /* @__PURE__ */ jsx18("div", { className: "sc-banner__action", children: action }) : null,
1145
+ dismissible ? /* @__PURE__ */ jsx18(
1146
+ IconButton,
1147
+ {
1148
+ label: dismissLabel,
1149
+ size: "sm",
1150
+ className: "sc-banner__dismiss",
1151
+ onClick: () => {
1152
+ setDismissed(true);
1153
+ onDismiss?.();
1154
+ },
1155
+ children: /* @__PURE__ */ jsx18(XIcon, {})
1156
+ }
1157
+ ) : null
1158
+ ]
1159
+ }
1160
+ );
1161
+ }
1162
+
1163
+ // src/components/Spinner/Spinner.tsx
1164
+ import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
1165
+ function Spinner({
1166
+ size = "md",
1167
+ label = "Loading",
1168
+ decorative = false,
1169
+ className,
1170
+ ...rest
1171
+ }) {
1172
+ return /* @__PURE__ */ jsx19(
1173
+ "span",
1174
+ {
1175
+ className: cx("sc-spinner", className),
1176
+ "data-size": size,
1177
+ role: decorative ? void 0 : "status",
1178
+ "aria-label": decorative ? void 0 : label,
1179
+ "aria-hidden": decorative || void 0,
1180
+ ...rest,
1181
+ children: /* @__PURE__ */ jsxs16(
1182
+ "svg",
1183
+ {
1184
+ viewBox: "0 0 16 16",
1185
+ fill: "none",
1186
+ stroke: "currentColor",
1187
+ strokeWidth: "1.75",
1188
+ "aria-hidden": "true",
1189
+ focusable: "false",
1190
+ children: [
1191
+ /* @__PURE__ */ jsx19("circle", { className: "sc-spinner__track", cx: "8", cy: "8", r: "6.25" }),
1192
+ /* @__PURE__ */ jsx19("circle", { className: "sc-spinner__arc", cx: "8", cy: "8", r: "6.25", strokeLinecap: "round" })
1193
+ ]
1194
+ }
1195
+ )
1196
+ }
1197
+ );
1198
+ }
1199
+
1200
+ // src/components/Progress/Progress.tsx
1201
+ import { Progress as BaseProgress } from "@base-ui/react/progress";
1202
+ import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
1203
+ function Progress({
1204
+ value,
1205
+ max = 100,
1206
+ min = 0,
1207
+ label,
1208
+ valueText,
1209
+ showValue = false,
1210
+ tone = "accent",
1211
+ size = "md",
1212
+ variant = "bar",
1213
+ className,
1214
+ ...rest
1215
+ }) {
1216
+ const current = value ?? null;
1217
+ const hasValueText = valueText != null || showValue && current !== null;
1218
+ return /* @__PURE__ */ jsxs17(
1219
+ BaseProgress.Root,
1220
+ {
1221
+ value: current,
1222
+ max,
1223
+ min,
1224
+ getAriaValueText: (formatted) => typeof valueText === "string" ? valueText : formatted ?? "",
1225
+ className: cx("sc-progress", className),
1226
+ "data-variant": variant,
1227
+ "data-tone": tone,
1228
+ "data-size": size,
1229
+ ...rest,
1230
+ children: [
1231
+ variant === "inline" ? /* @__PURE__ */ jsx20(Spinner, { size: "sm", decorative: true, className: "sc-progress__spinner" }) : null,
1232
+ label != null ? /* @__PURE__ */ jsx20(BaseProgress.Label, { className: "sc-progress__label", children: label }) : null,
1233
+ hasValueText ? /* @__PURE__ */ jsx20(BaseProgress.Value, { className: "sc-progress__value", children: (formatted) => valueText != null ? valueText : formatted }) : null,
1234
+ variant === "bar" ? /* @__PURE__ */ jsx20(BaseProgress.Track, { className: "sc-progress__track", children: /* @__PURE__ */ jsx20(BaseProgress.Indicator, { className: "sc-progress__indicator" }) }) : null
1235
+ ]
1236
+ }
1237
+ );
1238
+ }
1239
+
1240
+ // src/components/Heading/Heading.tsx
1241
+ import { createElement as createElement3 } from "react";
1242
+ var sizeByLevel = {
1243
+ 1: "3xl",
1244
+ 2: "2xl",
1245
+ 3: "xl",
1246
+ 4: "lg",
1247
+ 5: "md",
1248
+ 6: "sm"
1249
+ };
1250
+ function Heading({
1251
+ level = 2,
1252
+ size,
1253
+ as,
1254
+ tone = "default",
1255
+ truncate = false,
1256
+ className,
1257
+ ...rest
1258
+ }) {
1259
+ return createElement3(as ?? `h${level}`, {
1260
+ className: cx("sc-heading", className),
1261
+ "data-size": size ?? sizeByLevel[level],
1262
+ "data-tone": tone,
1263
+ "data-truncate": truncate || void 0,
1264
+ ...rest
1265
+ });
1266
+ }
1267
+
1268
+ // src/components/Text/Text.tsx
1269
+ import { createElement as createElement4 } from "react";
1270
+ function Text({
1271
+ as = "p",
1272
+ size = "sm",
1273
+ tone = "default",
1274
+ weight = "regular",
1275
+ align,
1276
+ truncate = false,
1277
+ numeric = false,
1278
+ className,
1279
+ style,
1280
+ ...rest
1281
+ }) {
1282
+ const clamp = typeof truncate === "number" ? truncate : void 0;
1283
+ return createElement4(as, {
1284
+ className: cx("sc-text", className),
1285
+ "data-size": size,
1286
+ "data-tone": tone,
1287
+ "data-weight": weight,
1288
+ "data-align": align,
1289
+ "data-truncate": truncate === true ? "" : clamp !== void 0 ? "clamp" : void 0,
1290
+ "data-numeric": numeric || void 0,
1291
+ style: clamp !== void 0 ? { ...style, "--sc-text-lines": clamp } : style,
1292
+ ...rest
1293
+ });
1294
+ }
1295
+
233
1296
  // src/index.ts
234
1297
  var version = "0.1.1";
235
1298
  export {
1299
+ ArchiveIcon,
1300
+ ArrowLeftIcon,
1301
+ ArrowRightIcon,
236
1302
  Badge,
1303
+ Banner,
1304
+ BellIcon,
1305
+ BriefcaseIcon,
237
1306
  Button,
1307
+ CalendarIcon,
238
1308
  Card,
1309
+ CheckIcon,
1310
+ Checkbox,
1311
+ ChevronDownIcon,
1312
+ ChevronLeftIcon,
1313
+ ChevronRightIcon,
1314
+ ChevronUpIcon,
1315
+ CircleCheckIcon,
1316
+ CircleXIcon,
1317
+ ClockIcon,
1318
+ CopyIcon,
239
1319
  Dialog,
1320
+ DocumentIcon,
1321
+ DownloadIcon,
1322
+ EditIcon,
1323
+ ExternalLinkIcon,
1324
+ EyeIcon,
1325
+ FilterIcon,
1326
+ FlagIcon,
1327
+ Heading,
1328
+ Icon,
1329
+ IconButton,
1330
+ InboxIcon,
1331
+ InfoIcon,
240
1332
  Inline,
1333
+ Input,
241
1334
  Kbd,
1335
+ LinkIcon,
1336
+ MailIcon,
1337
+ MapPinIcon,
1338
+ Menu,
1339
+ MenuIcon,
1340
+ MinusIcon,
1341
+ MoonIcon,
1342
+ MoreHorizontalIcon,
1343
+ MoreVerticalIcon,
1344
+ PauseIcon,
1345
+ PlayIcon,
1346
+ PlusIcon,
1347
+ Progress,
1348
+ RefreshIcon,
1349
+ SearchIcon,
1350
+ Select,
1351
+ SettingsIcon,
1352
+ Spinner,
242
1353
  Stack,
1354
+ StarIcon,
1355
+ SunIcon,
1356
+ Switch,
1357
+ Tabs,
1358
+ Text,
1359
+ Textarea,
1360
+ ThumbsDownIcon,
1361
+ ThumbsUpIcon,
1362
+ Toolbar,
1363
+ Tooltip,
1364
+ TrashIcon,
1365
+ UndoIcon,
1366
+ UserIcon,
1367
+ WarningIcon,
1368
+ XIcon,
1369
+ iconNames,
243
1370
  version
244
1371
  };
245
1372
  //# sourceMappingURL=index.js.map