@seedgrid/fe-components 2026.3.5 → 2026.3.11

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.
Files changed (122) hide show
  1. package/dist/buttons/SgFloatActionButton.d.ts +2 -3
  2. package/dist/buttons/SgFloatActionButton.d.ts.map +1 -1
  3. package/dist/buttons/SgFloatActionButton.js +3 -3
  4. package/dist/buttons/SgSplitButton.d.ts +1 -0
  5. package/dist/buttons/SgSplitButton.d.ts.map +1 -1
  6. package/dist/buttons/SgSplitButton.js +2 -2
  7. package/dist/commons/SgBadge.d.ts +2 -1
  8. package/dist/commons/SgBadge.d.ts.map +1 -1
  9. package/dist/commons/SgBadge.js +8 -7
  10. package/dist/commons/SgBadgeOverlay.d.ts +1 -0
  11. package/dist/commons/SgBadgeOverlay.d.ts.map +1 -1
  12. package/dist/commons/SgBadgeOverlay.js +2 -2
  13. package/dist/commons/SgToastHost.d.ts +17 -0
  14. package/dist/commons/SgToastHost.d.ts.map +1 -0
  15. package/dist/commons/SgToastHost.js +45 -0
  16. package/dist/commons/SgToaster.d.ts +3 -1
  17. package/dist/commons/SgToaster.d.ts.map +1 -1
  18. package/dist/commons/SgToaster.js +13 -0
  19. package/dist/commons/sgToastHostRegistry.d.ts +7 -0
  20. package/dist/commons/sgToastHostRegistry.d.ts.map +1 -0
  21. package/dist/commons/sgToastHostRegistry.js +41 -0
  22. package/dist/digits/segment-digit/SgSegmentDigit.d.ts +15 -0
  23. package/dist/digits/segment-digit/SgSegmentDigit.d.ts.map +1 -0
  24. package/dist/digits/segment-digit/SgSegmentDigit.js +96 -0
  25. package/dist/digits/segment-digit/index.d.ts +3 -0
  26. package/dist/digits/segment-digit/index.d.ts.map +1 -0
  27. package/dist/digits/segment-digit/index.js +1 -0
  28. package/dist/digits/seven-segment-digit/SgSevenSegmentDigit.d.ts +36 -0
  29. package/dist/digits/seven-segment-digit/SgSevenSegmentDigit.d.ts.map +1 -0
  30. package/dist/digits/seven-segment-digit/SgSevenSegmentDigit.js +123 -0
  31. package/dist/digits/seven-segment-digit/index.d.ts +3 -0
  32. package/dist/digits/seven-segment-digit/index.d.ts.map +1 -0
  33. package/dist/digits/seven-segment-digit/index.js +1 -0
  34. package/dist/gadgets/calendar/SgCalendar.d.ts +29 -0
  35. package/dist/gadgets/calendar/SgCalendar.d.ts.map +1 -0
  36. package/dist/gadgets/calendar/SgCalendar.js +248 -0
  37. package/dist/gadgets/calendar/index.d.ts +3 -0
  38. package/dist/gadgets/calendar/index.d.ts.map +1 -0
  39. package/dist/gadgets/calendar/index.js +1 -0
  40. package/dist/gadgets/clock/SgClock.d.ts +6 -2
  41. package/dist/gadgets/clock/SgClock.d.ts.map +1 -1
  42. package/dist/gadgets/clock/SgClock.js +84 -125
  43. package/dist/gadgets/string-animator/SgStringAnimator.d.ts +1 -1
  44. package/dist/gadgets/string-animator/SgStringAnimator.d.ts.map +1 -1
  45. package/dist/gadgets/string-animator/SgStringAnimator.js +1 -1
  46. package/dist/i18n/en-US.d.ts.map +1 -1
  47. package/dist/i18n/en-US.js +26 -1
  48. package/dist/i18n/es.d.ts.map +1 -1
  49. package/dist/i18n/es.js +26 -1
  50. package/dist/i18n/pt-BR.d.ts.map +1 -1
  51. package/dist/i18n/pt-BR.js +26 -1
  52. package/dist/i18n/pt-PT.d.ts.map +1 -1
  53. package/dist/i18n/pt-PT.js +26 -1
  54. package/dist/index.d.ts +22 -4
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +10 -1
  57. package/dist/inputs/SgCheckboxGroup.d.ts +46 -0
  58. package/dist/inputs/SgCheckboxGroup.d.ts.map +1 -0
  59. package/dist/inputs/SgCheckboxGroup.js +158 -0
  60. package/dist/inputs/SgDatatable.d.ts +104 -0
  61. package/dist/inputs/SgDatatable.d.ts.map +1 -0
  62. package/dist/inputs/SgDatatable.js +441 -0
  63. package/dist/inputs/{SgCurrencyEdit.d.ts → SgInputCurrency.d.ts} +5 -3
  64. package/dist/inputs/SgInputCurrency.d.ts.map +1 -0
  65. package/dist/inputs/{SgCurrencyEdit.js → SgInputCurrency.js} +7 -5
  66. package/dist/inputs/SgOrderList.d.ts +52 -0
  67. package/dist/inputs/SgOrderList.d.ts.map +1 -0
  68. package/dist/inputs/SgOrderList.js +316 -0
  69. package/dist/inputs/SgPickList.d.ts +71 -0
  70. package/dist/inputs/SgPickList.d.ts.map +1 -0
  71. package/dist/inputs/SgPickList.js +362 -0
  72. package/dist/inputs/SgRadioGroup.d.ts +1 -2
  73. package/dist/inputs/SgRadioGroup.d.ts.map +1 -1
  74. package/dist/inputs/SgRadioGroup.js +5 -49
  75. package/dist/inputs/SgRating.d.ts +2 -0
  76. package/dist/inputs/SgRating.d.ts.map +1 -1
  77. package/dist/inputs/SgRating.js +2 -2
  78. package/dist/inputs/SgTextEditor.d.ts +2 -0
  79. package/dist/inputs/SgTextEditor.d.ts.map +1 -1
  80. package/dist/inputs/SgTextEditor.js +2 -2
  81. package/dist/layout/SgCard.d.ts +13 -1
  82. package/dist/layout/SgCard.d.ts.map +1 -1
  83. package/dist/layout/SgCard.js +231 -15
  84. package/dist/layout/SgCarousel.d.ts +2 -0
  85. package/dist/layout/SgCarousel.d.ts.map +1 -1
  86. package/dist/layout/SgCarousel.js +2 -2
  87. package/dist/layout/SgDockLayout.d.ts +1 -0
  88. package/dist/layout/SgDockLayout.d.ts.map +1 -1
  89. package/dist/layout/SgDockLayout.js +2 -2
  90. package/dist/layout/SgDockZone.d.ts +1 -0
  91. package/dist/layout/SgDockZone.d.ts.map +1 -1
  92. package/dist/layout/SgDockZone.js +2 -2
  93. package/dist/layout/SgGroupBox.d.ts +1 -0
  94. package/dist/layout/SgGroupBox.d.ts.map +1 -1
  95. package/dist/layout/SgGroupBox.js +3 -2
  96. package/dist/layout/SgMenu.d.ts +2 -2
  97. package/dist/layout/SgMenu.d.ts.map +1 -1
  98. package/dist/layout/SgMenu.js +22 -22
  99. package/dist/layout/SgPageControl.d.ts +2 -1
  100. package/dist/layout/SgPageControl.d.ts.map +1 -1
  101. package/dist/layout/SgPageControl.js +4 -4
  102. package/dist/layout/SgToolBar.d.ts +2 -0
  103. package/dist/layout/SgToolBar.d.ts.map +1 -1
  104. package/dist/layout/SgToolBar.js +4 -3
  105. package/dist/layout/SgTreeView.d.ts +1 -0
  106. package/dist/layout/SgTreeView.d.ts.map +1 -1
  107. package/dist/layout/SgTreeView.js +2 -2
  108. package/dist/others/SgPlayground.d.ts +2 -0
  109. package/dist/others/SgPlayground.d.ts.map +1 -1
  110. package/dist/others/SgPlayground.js +4 -4
  111. package/dist/overlay/SgConfirmationDialog.d.ts +34 -0
  112. package/dist/overlay/SgConfirmationDialog.d.ts.map +1 -0
  113. package/dist/overlay/SgConfirmationDialog.js +81 -0
  114. package/dist/overlay/SgDialog.d.ts +6 -0
  115. package/dist/overlay/SgDialog.d.ts.map +1 -1
  116. package/dist/overlay/SgDialog.js +28 -3
  117. package/dist/sandbox.cjs +100 -82
  118. package/dist/wizard/SgWizard.d.ts +2 -0
  119. package/dist/wizard/SgWizard.d.ts.map +1 -1
  120. package/dist/wizard/SgWizard.js +2 -2
  121. package/package.json +1 -1
  122. package/dist/inputs/SgCurrencyEdit.d.ts.map +0 -1
@@ -51,8 +51,26 @@ function contentStateClass(animation, entered) {
51
51
  return cn(common, entered ? "translate-y-0" : "translate-y-2");
52
52
  }
53
53
  }
54
+ function resolveDialogShadow(elevation, shadow) {
55
+ if (elevation === undefined)
56
+ return shadow;
57
+ if (typeof elevation !== "string")
58
+ return elevation;
59
+ switch (elevation) {
60
+ case "none":
61
+ return "none";
62
+ case "sm":
63
+ return "0 1px 2px rgba(2, 8, 23, 0.12)";
64
+ case "md":
65
+ return "0 10px 24px rgba(2, 8, 23, 0.2), 0 4px 10px rgba(2, 8, 23, 0.12)";
66
+ case "lg":
67
+ return "0 24px 60px rgba(2, 8, 23, 0.32), 0 12px 24px rgba(2, 8, 23, 0.18)";
68
+ default:
69
+ return elevation;
70
+ }
71
+ }
54
72
  export function SgDialog(props) {
55
- const { open: openProp, onOpenChange, defaultOpen = false, title, subtitle, leading, trailing, children, footer, size = "md", severity = "plain", animation = "zoom", transitionMs = 160, autoCloseMs, className, overlayClassName, contentClassName, headerClassName, bodyClassName, footerClassName, closeable = true, onClose, closeOnOverlayClick = true, closeOnEsc = true, lockBodyScroll = true, initialFocusRef, restoreFocus = true, ariaLabel } = props;
73
+ const { open: openProp, onOpenChange, defaultOpen = false, title, subtitle, leading, trailing, children, footer, size = "md", severity = "plain", animation = "zoom", transitionMs = 160, autoCloseMs, className, style, customColor, elevation, shadow, showTopAccent = true, overlayClassName, contentClassName, headerClassName, bodyClassName, footerClassName, closeable = true, onClose, closeOnOverlayClick = true, closeOnEsc = true, lockBodyScroll = true, initialFocusRef, restoreFocus = true, ariaLabel } = props;
56
74
  const isControlled = openProp !== undefined;
57
75
  const [openUncontrolled, setOpenUncontrolled] = React.useState(defaultOpen);
58
76
  const open = isControlled ? !!openProp : openUncontrolled;
@@ -167,9 +185,16 @@ export function SgDialog(props) {
167
185
  const overlayBase = "fixed inset-0 bg-black/60 backdrop-blur-[1px] transition-opacity";
168
186
  const overlayState = entered ? "opacity-100" : "opacity-0";
169
187
  const contentBase = "w-full rounded-2xl bg-background text-foreground shadow-2xl border border-border " +
170
- "max-h-[85vh] flex flex-col transition duration-150 ease-out border-t-4";
188
+ "max-h-[85vh] flex flex-col transition duration-150 ease-out" +
189
+ (showTopAccent ? " border-t-4" : "");
190
+ const resolvedShadow = resolveDialogShadow(elevation, shadow);
171
191
  const transitionStyle = { transitionDuration: `${transitionMs}ms` };
172
- return createPortal(_jsxs("div", { className: cn("fixed inset-0 z-[1000]", className), role: "dialog", "aria-modal": "true", "aria-label": a11yLabel, children: [_jsx("div", { ref: overlayRef, onMouseDown: onOverlayMouseDown, className: cn(overlayBase, overlayState, overlayClassName), style: transitionStyle }), _jsx("div", { className: "fixed inset-0 flex items-center justify-center p-4", children: _jsxs("div", { ref: contentRef, className: cn(contentBase, sizeClass(size), contentStateClass(animation, entered), severityClass(severity), contentClassName), style: transitionStyle, children: [(title || subtitle || closeable || leading || trailing) && (_jsxs("div", { className: cn("px-5 py-4 border-b border-border flex items-start gap-3", headerClassName), children: [leading ? _jsx("div", { className: "shrink-0 pt-0.5", children: leading }) : null, _jsxs("div", { className: "min-w-0 flex-1", children: [title ? _jsx("div", { className: "text-base font-semibold leading-6", children: title }) : null, subtitle ? _jsx("div", { className: "text-sm text-muted-foreground mt-1", children: subtitle }) : null] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [trailing ? _jsx("div", { className: "shrink-0", children: trailing }) : null, closeable ? (_jsx("button", { type: "button", onClick: close, className: cn("inline-flex items-center justify-center h-9 w-9 rounded-lg", "hover:bg-muted/60 active:bg-muted", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--ring,var(--primary)))]"), "aria-label": "Close", children: _jsx(CloseIcon, {}) })) : null] })] })), _jsx("div", { className: cn("px-5 py-4 overflow-auto", bodyClassName), children: children }), footer ? (_jsx("div", { className: cn("px-5 py-4 border-t border-border flex items-center justify-end gap-2", footerClassName), children: footer })) : null] }) })] }), document.body);
192
+ const contentStyle = {
193
+ ...transitionStyle,
194
+ ...(customColor !== undefined ? { backgroundColor: customColor } : {}),
195
+ ...(resolvedShadow !== undefined ? { boxShadow: resolvedShadow } : {})
196
+ };
197
+ return createPortal(_jsxs("div", { className: cn("fixed inset-0 z-[1000]", className), style: style, role: "dialog", "aria-modal": "true", "aria-label": a11yLabel, children: [_jsx("div", { ref: overlayRef, onMouseDown: onOverlayMouseDown, className: cn(overlayBase, overlayState, overlayClassName), style: transitionStyle }), _jsx("div", { className: "fixed inset-0 flex items-center justify-center p-4", children: _jsxs("div", { ref: contentRef, className: cn(contentBase, sizeClass(size), contentStateClass(animation, entered), showTopAccent ? severityClass(severity) : false, contentClassName), style: contentStyle, children: [(title || subtitle || closeable || leading || trailing) && (_jsxs("div", { className: cn("px-5 py-4 border-b border-border flex items-start gap-3", headerClassName), children: [leading ? _jsx("div", { className: "shrink-0 pt-0.5", children: leading }) : null, _jsxs("div", { className: "min-w-0 flex-1", children: [title ? _jsx("div", { className: "text-base font-semibold leading-6", children: title }) : null, subtitle ? _jsx("div", { className: "text-sm text-muted-foreground mt-1", children: subtitle }) : null] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [trailing ? _jsx("div", { className: "shrink-0", children: trailing }) : null, closeable ? (_jsx("button", { type: "button", onClick: close, className: cn("inline-flex items-center justify-center h-9 w-9 rounded-lg", "hover:bg-muted/60 active:bg-muted", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--ring,var(--primary)))]"), "aria-label": "Close", children: _jsx(CloseIcon, {}) })) : null] })] })), _jsx("div", { className: cn("px-5 py-4 overflow-auto", bodyClassName), children: children }), footer ? (_jsx("div", { className: cn("px-5 py-4 border-t border-border flex items-center justify-end gap-2", footerClassName), children: footer })) : null] }) })] }), document.body);
173
198
  }
174
199
  function CloseIcon() {
175
200
  return (_jsx("svg", { viewBox: "0 0 24 24", className: "size-5", "aria-hidden": "true", children: _jsx("path", { d: "M18 6L6 18M6 6l12 12", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) }));