@sarunyu/system-one 1.1.1 → 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.cjs CHANGED
@@ -396,6 +396,160 @@ const Card = React.forwardRef(function Card2({
396
396
  );
397
397
  });
398
398
  Card.displayName = "Card";
399
+ const pageWidthClass = {
400
+ sm: "max-w-[640px]",
401
+ md: "max-w-[960px]",
402
+ lg: "max-w-[1200px]",
403
+ xl: "max-w-[1440px]",
404
+ full: "max-w-none"
405
+ };
406
+ const Page = React.forwardRef(function Page2({ width = "lg", className, children, ...rest }, ref) {
407
+ return /* @__PURE__ */ jsxRuntime.jsx(
408
+ "main",
409
+ {
410
+ ref,
411
+ className: cn(
412
+ "mx-auto w-full px-6 md:px-8 py-10 flex flex-col gap-12",
413
+ pageWidthClass[width],
414
+ className
415
+ ),
416
+ ...rest,
417
+ children
418
+ }
419
+ );
420
+ });
421
+ const PageHeader = React.forwardRef(
422
+ function PageHeader2({ title, description, actions, eyebrow, className, ...rest }, ref) {
423
+ return /* @__PURE__ */ jsxRuntime.jsxs(
424
+ "header",
425
+ {
426
+ ref,
427
+ className: cn(
428
+ "flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
429
+ className
430
+ ),
431
+ ...rest,
432
+ children: [
433
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 min-w-0", children: [
434
+ eyebrow && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-2", children: eyebrow }),
435
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { children: title }),
436
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground max-w-[720px]", children: description })
437
+ ] }),
438
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-3 shrink-0", children: actions })
439
+ ]
440
+ }
441
+ );
442
+ }
443
+ );
444
+ const Section = React.forwardRef(function Section2({ title, description, actions, className, children, ...rest }, ref) {
445
+ const hasHeader = Boolean(title || description || actions);
446
+ return /* @__PURE__ */ jsxRuntime.jsxs(
447
+ "section",
448
+ {
449
+ ref,
450
+ className: cn("flex flex-col gap-6", className),
451
+ ...rest,
452
+ children: [
453
+ hasHeader && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between", children: [
454
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 min-w-0", children: [
455
+ title && /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }),
456
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground max-w-[720px]", children: description })
457
+ ] }),
458
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-3 shrink-0", children: actions })
459
+ ] }),
460
+ children
461
+ ]
462
+ }
463
+ );
464
+ });
465
+ const Toolbar = React.forwardRef(
466
+ function Toolbar2({ end, className, children, ...rest }, ref) {
467
+ return /* @__PURE__ */ jsxRuntime.jsxs(
468
+ "div",
469
+ {
470
+ ref,
471
+ className: cn(
472
+ "flex flex-wrap items-center gap-3",
473
+ className
474
+ ),
475
+ ...rest,
476
+ children: [
477
+ children,
478
+ end && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto flex items-center gap-3", children: end })
479
+ ]
480
+ }
481
+ );
482
+ }
483
+ );
484
+ const cardGridColsClass = {
485
+ 2: "grid-cols-1 sm:grid-cols-2",
486
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
487
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"
488
+ };
489
+ const CardGrid = React.forwardRef(
490
+ function CardGrid2({ cols = 3, className, children, ...rest }, ref) {
491
+ return /* @__PURE__ */ jsxRuntime.jsx(
492
+ "div",
493
+ {
494
+ ref,
495
+ className: cn("grid gap-6", cardGridColsClass[cols], className),
496
+ ...rest,
497
+ children
498
+ }
499
+ );
500
+ }
501
+ );
502
+ const stackGapClass = {
503
+ 1: "gap-1",
504
+ 2: "gap-2",
505
+ 3: "gap-3",
506
+ 4: "gap-4",
507
+ 6: "gap-6",
508
+ 8: "gap-8",
509
+ 10: "gap-10",
510
+ 12: "gap-12"
511
+ };
512
+ const stackAlignClass = {
513
+ start: "items-start",
514
+ center: "items-center",
515
+ end: "items-end",
516
+ stretch: "items-stretch"
517
+ };
518
+ const stackJustifyClass = {
519
+ start: "justify-start",
520
+ center: "justify-center",
521
+ end: "justify-end",
522
+ between: "justify-between",
523
+ around: "justify-around"
524
+ };
525
+ const Stack = React.forwardRef(function Stack2({
526
+ direction = "col",
527
+ gap = 4,
528
+ align,
529
+ justify,
530
+ wrap,
531
+ className,
532
+ children,
533
+ ...rest
534
+ }, ref) {
535
+ return /* @__PURE__ */ jsxRuntime.jsx(
536
+ "div",
537
+ {
538
+ ref,
539
+ className: cn(
540
+ "flex",
541
+ direction === "col" ? "flex-col" : "flex-row",
542
+ stackGapClass[gap],
543
+ align && stackAlignClass[align],
544
+ justify && stackJustifyClass[justify],
545
+ wrap && "flex-wrap",
546
+ className
547
+ ),
548
+ ...rest,
549
+ children
550
+ }
551
+ );
552
+ });
399
553
  const sizeStyles$1 = {
400
554
  large: {
401
555
  container: "h-9 px-3 gap-1",
@@ -2804,7 +2958,7 @@ const sizeClasses = {
2804
2958
  font: "font-bold",
2805
2959
  gap: "gap-1.5",
2806
2960
  iconSize: "h-5 w-5",
2807
- badgeClass: "min-w-[18px] px-[5.5px] text-[length:var(--text-xs)] leading-[var(--leading-4)]"
2961
+ badgeClass: "min-w-[16px] h-[16px] px-[3px] text-[length:var(--text-xs)] leading-[var(--leading-4)]"
2808
2962
  },
2809
2963
  md: {
2810
2964
  pad: "px-2.5 py-2",
@@ -2813,7 +2967,7 @@ const sizeClasses = {
2813
2967
  font: "font-bold",
2814
2968
  gap: "gap-1.5",
2815
2969
  iconSize: "h-[18px] w-[18px]",
2816
- badgeClass: "min-w-[18px] px-[5.5px] text-[length:var(--text-xs)] leading-[var(--leading-4)]"
2970
+ badgeClass: "min-w-[16px] h-[16px] px-[3px] text-[length:var(--text-xs)] leading-[var(--leading-4)]"
2817
2971
  },
2818
2972
  sm: {
2819
2973
  pad: "px-2 py-1.5",
@@ -2822,7 +2976,7 @@ const sizeClasses = {
2822
2976
  font: "font-semibold",
2823
2977
  gap: "gap-1",
2824
2978
  iconSize: "h-4 w-4",
2825
- badgeClass: "min-h-[14px] px-1 text-[length:var(--text-xxs)] leading-[var(--leading-3)]"
2979
+ badgeClass: "min-w-[14px] h-[14px] px-1 text-[length:var(--text-xxs)] leading-[var(--leading-3)]"
2826
2980
  }
2827
2981
  };
2828
2982
  function DefaultTabIcon({ className }) {
@@ -2843,7 +2997,7 @@ const Tab = React.forwardRef(function Tab2({
2843
2997
  const hasNotification = notification !== void 0 && notification !== null;
2844
2998
  const renderedIcon = icon === true ? /* @__PURE__ */ jsxRuntime.jsx(DefaultTabIcon, { className: s.iconSize }) : icon;
2845
2999
  const textColor = disabled ? "text-disabled" : active ? "text-primary-action" : "text-muted-foreground";
2846
- const borderColor = active && !disabled ? "border-primary-action" : "border-border";
3000
+ const borderColor = disabled ? "border-border-disabled" : active ? "border-primary-action" : "border-border";
2847
3001
  const cursor = disabled ? "cursor-not-allowed" : "cursor-pointer";
2848
3002
  const hoverBg = !disabled && !active ? "hover:bg-hover-bg" : "";
2849
3003
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3894,18 +4048,24 @@ const TimeInput = React.forwardRef(
3894
4048
  TimeInput.displayName = "TimeInput";
3895
4049
  exports.Button = Button;
3896
4050
  exports.Card = Card;
4051
+ exports.CardGrid = CardGrid;
3897
4052
  exports.Chip = Chip;
3898
4053
  exports.DateInput = DateInput;
3899
4054
  exports.Dropdown = Dropdown;
3900
4055
  exports.DropdownMultiple = DropdownMultiple;
3901
4056
  exports.Input = Input;
3902
4057
  exports.OptionList = OptionList;
4058
+ exports.Page = Page;
4059
+ exports.PageHeader = PageHeader;
3903
4060
  exports.SearchInput = SearchInput;
4061
+ exports.Section = Section;
4062
+ exports.Stack = Stack;
3904
4063
  exports.StatusTag = StatusTag;
3905
4064
  exports.Tab = Tab;
3906
4065
  exports.TabGroup = TabGroup;
3907
4066
  exports.Tag = Tag;
3908
4067
  exports.TextArea = TextArea;
3909
4068
  exports.TimeInput = TimeInput;
4069
+ exports.Toolbar = Toolbar;
3910
4070
  exports.cn = cn;
3911
4071
  //# sourceMappingURL=index.cjs.map