@seedgrid/fe-components 2026.11.2 → 2026.11.3

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 (156) hide show
  1. package/dist/ai/seedgrid-components.manifest.json +323 -65
  2. package/dist/buttons/SgButton.d.ts +6 -2
  3. package/dist/buttons/SgButton.d.ts.map +1 -1
  4. package/dist/buttons/SgButton.js +2 -2
  5. package/dist/buttons/SgButton.meta.js +3 -3
  6. package/dist/buttons/SgFloatActionButton.d.ts +2 -2
  7. package/dist/buttons/SgFloatActionButton.d.ts.map +1 -1
  8. package/dist/buttons/SgFloatActionButton.js +7 -7
  9. package/dist/buttons/SgFloatActionButton.meta.js +2 -2
  10. package/dist/buttons/SgSplitButton.d.ts +2 -2
  11. package/dist/buttons/SgSplitButton.d.ts.map +1 -1
  12. package/dist/buttons/SgSplitButton.js +4 -4
  13. package/dist/buttons/SgSplitButton.meta.js +3 -3
  14. package/dist/commons/SgAvatar.d.ts +2 -2
  15. package/dist/commons/SgAvatar.d.ts.map +1 -1
  16. package/dist/commons/SgAvatar.js +3 -3
  17. package/dist/commons/SgBadge.d.ts +1 -1
  18. package/dist/commons/SgBadge.d.ts.map +1 -1
  19. package/dist/commons/SgBadge.js +3 -3
  20. package/dist/generated/compiledStyles.d.ts +1 -1
  21. package/dist/generated/compiledStyles.d.ts.map +1 -1
  22. package/dist/generated/compiledStyles.js +1 -1
  23. package/dist/i18n/en-US.d.ts.map +1 -1
  24. package/dist/i18n/en-US.js +26 -0
  25. package/dist/i18n/es.d.ts.map +1 -1
  26. package/dist/i18n/es.js +26 -0
  27. package/dist/i18n/fr.d.ts.map +1 -1
  28. package/dist/i18n/fr.js +26 -0
  29. package/dist/i18n/pt-BR.d.ts.map +1 -1
  30. package/dist/i18n/pt-BR.js +26 -0
  31. package/dist/i18n/pt-PT.d.ts.map +1 -1
  32. package/dist/i18n/pt-PT.js +26 -0
  33. package/dist/index.d.ts +3 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +2 -1
  36. package/dist/inputs/SgAutocomplete.d.ts +1 -1
  37. package/dist/inputs/SgAutocomplete.d.ts.map +1 -1
  38. package/dist/inputs/SgAutocomplete.js +3 -3
  39. package/dist/inputs/SgCameraCapture.d.ts +1 -1
  40. package/dist/inputs/SgCameraCapture.d.ts.map +1 -1
  41. package/dist/inputs/SgCameraCapture.js +4 -4
  42. package/dist/inputs/SgCameraCapture.meta.js +1 -1
  43. package/dist/inputs/SgCheckboxGroup.d.ts +2 -2
  44. package/dist/inputs/SgCheckboxGroup.d.ts.map +1 -1
  45. package/dist/inputs/SgCheckboxGroup.js +12 -12
  46. package/dist/inputs/SgCombobox.js +5 -5
  47. package/dist/inputs/SgDatatable.js +11 -11
  48. package/dist/inputs/SgDatatable.meta.d.ts.map +1 -1
  49. package/dist/inputs/SgDatatable.meta.js +4 -1
  50. package/dist/inputs/SgFileUpload.d.ts +1 -1
  51. package/dist/inputs/SgFileUpload.d.ts.map +1 -1
  52. package/dist/inputs/SgFileUpload.js +2 -2
  53. package/dist/inputs/SgFileUpload.meta.js +1 -1
  54. package/dist/inputs/SgImageUpload.meta.js +1 -1
  55. package/dist/inputs/SgInputCurrency.d.ts.map +1 -1
  56. package/dist/inputs/SgInputCurrency.js +6 -4
  57. package/dist/inputs/SgInputDate.d.ts.map +1 -1
  58. package/dist/inputs/SgInputDate.js +3 -4
  59. package/dist/inputs/SgInputDateTime.d.ts.map +1 -1
  60. package/dist/inputs/SgInputDateTime.js +11 -0
  61. package/dist/inputs/SgInputNumber.d.ts.map +1 -1
  62. package/dist/inputs/SgInputNumber.js +6 -4
  63. package/dist/inputs/SgInputText.d.ts.map +1 -1
  64. package/dist/inputs/SgInputText.js +6 -4
  65. package/dist/inputs/SgInputTextArea.d.ts.map +1 -1
  66. package/dist/inputs/SgInputTextArea.js +4 -2
  67. package/dist/inputs/SgMultiSelect.meta.js +1 -1
  68. package/dist/inputs/SgMultiSelectChips.meta.js +1 -1
  69. package/dist/inputs/SgMultiSelectDropdown.js +1 -1
  70. package/dist/inputs/SgOrderList.d.ts +3 -3
  71. package/dist/inputs/SgOrderList.d.ts.map +1 -1
  72. package/dist/inputs/SgOrderList.js +13 -13
  73. package/dist/inputs/SgOrderList.meta.js +1 -1
  74. package/dist/inputs/SgPeriodSelector.d.ts +1 -1
  75. package/dist/inputs/SgPeriodSelector.d.ts.map +1 -1
  76. package/dist/inputs/SgPeriodSelector.js +3 -3
  77. package/dist/inputs/SgPickList.d.ts +3 -3
  78. package/dist/inputs/SgPickList.d.ts.map +1 -1
  79. package/dist/inputs/SgPickList.js +28 -28
  80. package/dist/inputs/SgPickList.meta.js +1 -1
  81. package/dist/inputs/SgRadioGroup.d.ts +2 -2
  82. package/dist/inputs/SgRadioGroup.d.ts.map +1 -1
  83. package/dist/inputs/SgRadioGroup.js +5 -5
  84. package/dist/inputs/SgRating.d.ts +1 -1
  85. package/dist/inputs/SgRating.d.ts.map +1 -1
  86. package/dist/inputs/SgRating.js +7 -7
  87. package/dist/inputs/SgRating.meta.js +1 -1
  88. package/dist/inputs/SgSlider.d.ts +1 -1
  89. package/dist/inputs/SgSlider.d.ts.map +1 -1
  90. package/dist/inputs/SgSlider.js +3 -3
  91. package/dist/inputs/SgSlider.meta.js +1 -1
  92. package/dist/inputs/SgStepperInput.d.ts +2 -2
  93. package/dist/inputs/SgStepperInput.d.ts.map +1 -1
  94. package/dist/inputs/SgStepperInput.js +4 -4
  95. package/dist/inputs/SgStepperInput.meta.js +1 -1
  96. package/dist/inputs/SgTextEditor.d.ts +1 -1
  97. package/dist/inputs/SgTextEditor.d.ts.map +1 -1
  98. package/dist/inputs/SgTextEditor.js +14 -14
  99. package/dist/inputs/SgToggleSwitch.meta.js +1 -1
  100. package/dist/inputs/SgYearPartSelector.d.ts +1 -1
  101. package/dist/inputs/SgYearPartSelector.d.ts.map +1 -1
  102. package/dist/inputs/SgYearPartSelector.js +1 -2
  103. package/dist/inputs/SgYearPartSelector.meta.js +2 -2
  104. package/dist/inputs/dateTimeLogic.d.ts +7 -1
  105. package/dist/inputs/dateTimeLogic.d.ts.map +1 -1
  106. package/dist/inputs/dateTimeLogic.js +17 -4
  107. package/dist/inputs/useSgMultiSelect.d.ts +1 -1
  108. package/dist/inputs/useSgMultiSelect.d.ts.map +1 -1
  109. package/dist/inputs/useSgMultiSelect.js +1 -1
  110. package/dist/layout/SgAccordion.d.ts +1 -1
  111. package/dist/layout/SgAccordion.d.ts.map +1 -1
  112. package/dist/layout/SgAccordion.js +3 -3
  113. package/dist/layout/SgBreadcrumb.d.ts +1 -1
  114. package/dist/layout/SgBreadcrumb.d.ts.map +1 -1
  115. package/dist/layout/SgBreadcrumb.js +1 -1
  116. package/dist/layout/SgCard.d.ts +1 -1
  117. package/dist/layout/SgCard.d.ts.map +1 -1
  118. package/dist/layout/SgCard.js +14 -14
  119. package/dist/layout/SgMenu.d.ts +1 -1
  120. package/dist/layout/SgMenu.d.ts.map +1 -1
  121. package/dist/layout/SgMenu.js +15 -15
  122. package/dist/layout/SgPageControl.d.ts +1 -1
  123. package/dist/layout/SgPageControl.d.ts.map +1 -1
  124. package/dist/layout/SgPageControl.js +4 -4
  125. package/dist/layout/SgPageControlPage.meta.js +2 -2
  126. package/dist/layout/SgToolBar.d.ts +1 -1
  127. package/dist/layout/SgToolBar.d.ts.map +1 -1
  128. package/dist/layout/SgToolBar.js +4 -4
  129. package/dist/layout/SgToolbarIconButton.meta.js +2 -2
  130. package/dist/layout/SgTreeView.d.ts +4 -4
  131. package/dist/layout/SgTreeView.d.ts.map +1 -1
  132. package/dist/layout/SgTreeView.js +6 -6
  133. package/dist/menus/SgDockMenu.d.ts +1 -1
  134. package/dist/menus/SgDockMenu.d.ts.map +1 -1
  135. package/dist/menus/SgDockMenu.js +4 -4
  136. package/dist/notifications/SgNotificationBell.d.ts +51 -0
  137. package/dist/notifications/SgNotificationBell.d.ts.map +1 -0
  138. package/dist/notifications/SgNotificationBell.js +348 -0
  139. package/dist/notifications/SgNotificationBell.meta.d.ts +4 -0
  140. package/dist/notifications/SgNotificationBell.meta.d.ts.map +1 -0
  141. package/dist/notifications/SgNotificationBell.meta.js +75 -0
  142. package/dist/notifications/notificationBellLogic.d.ts +148 -0
  143. package/dist/notifications/notificationBellLogic.d.ts.map +1 -0
  144. package/dist/notifications/notificationBellLogic.js +244 -0
  145. package/dist/overlay/SgConfirmationDialog.d.ts +1 -1
  146. package/dist/overlay/SgConfirmationDialog.d.ts.map +1 -1
  147. package/dist/overlay/SgConfirmationDialog.js +1 -1
  148. package/dist/overlay/SgPopup.d.ts +1 -1
  149. package/dist/overlay/SgPopup.d.ts.map +1 -1
  150. package/dist/overlay/SgPopup.js +1 -1
  151. package/dist/realtime/SgRealtimeProvider.d.ts +5 -0
  152. package/dist/realtime/SgRealtimeProvider.d.ts.map +1 -1
  153. package/dist/realtime/SgRealtimeProvider.js +31 -8
  154. package/dist/sandbox.cjs +62 -62
  155. package/dist/style.css +1 -1
  156. package/package.json +3 -3
@@ -72,7 +72,7 @@ function canRun(editor, fn) {
72
72
  }
73
73
  }
74
74
  function SgTextEditorBase(props) {
75
- const { id, valueHtml, defaultValueHtml, onChangeHtml, cssText = "", onCssTextChange, fileName, onSave, onLoad, height = 320, placeholder: placeholderProp, disabled, borderRadius, showCssEditor = false, cssEditorLabel: cssEditorLabelProp, className, style, error } = props;
75
+ const { id, valueHtml, defaultValueHtml, onChangeHtml, cssText = "", onCssTextChange, fileName, onSave, onLoad, height = 320, placeholder: placeholderProp, enabled = true, borderRadius, showCssEditor = false, cssEditorLabel: cssEditorLabelProp, className, style, error } = props;
76
76
  const i18n = useComponentsI18n();
77
77
  const placeholder = placeholderProp ?? t(i18n, "components.textEditor.placeholder");
78
78
  const cssEditorLabel = cssEditorLabelProp ?? t(i18n, "components.textEditor.cssEditorLabel");
@@ -85,7 +85,7 @@ function SgTextEditorBase(props) {
85
85
  const isControlled = typeof valueHtml === "string";
86
86
  const editor = useEditor({
87
87
  immediatelyRender: false,
88
- editable: !disabled,
88
+ editable: enabled,
89
89
  extensions: [
90
90
  StarterKit.configure({ codeBlock: {} }),
91
91
  Underline,
@@ -104,7 +104,7 @@ function SgTextEditorBase(props) {
104
104
  attributes: {
105
105
  id,
106
106
  "aria-label": editorAriaLabel,
107
- class: cn("prose max-w-none focus:outline-none min-h-[120px]", disabled ? "opacity-60" : ""),
107
+ class: cn("prose max-w-none focus:outline-none min-h-[120px]", !enabled ? "opacity-60" : ""),
108
108
  "data-placeholder": placeholder
109
109
  }
110
110
  },
@@ -161,7 +161,7 @@ function SgTextEditorBase(props) {
161
161
  const cssTextareaStyle = resolvedBorderRadius
162
162
  ? { borderRadius: resolvedBorderRadius }
163
163
  : undefined;
164
- return (_jsxs("div", { className: cn("w-full", className), style: style, children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2 rounded-t-lg border border-b-0 bg-background p-2", style: toolbarStyle, children: [_jsxs("select", { className: "h-9 rounded-md border px-2 text-sm bg-background", disabled: !editor || disabled, value: active("heading", { level: 1 })
164
+ return (_jsxs("div", { className: cn("w-full", className), style: style, children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2 rounded-t-lg border border-b-0 bg-background p-2", style: toolbarStyle, children: [_jsxs("select", { className: "h-9 rounded-md border px-2 text-sm bg-background", disabled: !editor || !enabled, value: active("heading", { level: 1 })
165
165
  ? "h1"
166
166
  : active("heading", { level: 2 })
167
167
  ? "h2"
@@ -180,17 +180,17 @@ function SgTextEditorBase(props) {
180
180
  editor.commands.toggleHeading({ level: 2 });
181
181
  if (v === "h3")
182
182
  editor.commands.toggleHeading({ level: 3 });
183
- }, children: [_jsx("option", { value: "h1", children: t(i18n, "components.textEditor.toolbar.heading") }), _jsx("option", { value: "h2", children: t(i18n, "components.textEditor.toolbar.subheading") }), _jsx("option", { value: "p", children: t(i18n, "components.textEditor.toolbar.normal") }), _jsx("option", { value: "h3", children: t(i18n, "components.textEditor.toolbar.heading3") })] }), _jsxs("select", { className: "h-9 rounded-md border px-2 text-sm bg-background", disabled: !editor || disabled, onChange: (e) => {
183
+ }, children: [_jsx("option", { value: "h1", children: t(i18n, "components.textEditor.toolbar.heading") }), _jsx("option", { value: "h2", children: t(i18n, "components.textEditor.toolbar.subheading") }), _jsx("option", { value: "p", children: t(i18n, "components.textEditor.toolbar.normal") }), _jsx("option", { value: "h3", children: t(i18n, "components.textEditor.toolbar.heading3") })] }), _jsxs("select", { className: "h-9 rounded-md border px-2 text-sm bg-background", disabled: !editor || !enabled, onChange: (e) => {
184
184
  const v = e.target.value;
185
185
  if (!editor)
186
186
  return;
187
187
  editor.chain().focus().setFontFamily(v).run();
188
- }, defaultValue: "inherit", children: [_jsx("option", { value: "inherit", children: t(i18n, "components.textEditor.toolbar.defaultFont") }), _jsx("option", { value: "Arial", children: "Arial" }), _jsx("option", { value: "Georgia", children: "Georgia" }), _jsx("option", { value: "Times New Roman", children: "Times" }), _jsx("option", { value: "Courier New", children: "Courier" })] }), _jsxs("select", { className: "h-9 rounded-md border px-2 text-sm bg-background", disabled: !editor || disabled, defaultValue: "16px", onChange: (e) => {
188
+ }, defaultValue: "inherit", children: [_jsx("option", { value: "inherit", children: t(i18n, "components.textEditor.toolbar.defaultFont") }), _jsx("option", { value: "Arial", children: "Arial" }), _jsx("option", { value: "Georgia", children: "Georgia" }), _jsx("option", { value: "Times New Roman", children: "Times" }), _jsx("option", { value: "Courier New", children: "Courier" })] }), _jsxs("select", { className: "h-9 rounded-md border px-2 text-sm bg-background", disabled: !editor || !enabled, defaultValue: "16px", onChange: (e) => {
189
189
  const size = e.target.value;
190
190
  if (!editor)
191
191
  return;
192
192
  editor.chain().focus().setMark("textStyle", { fontSize: size }).run();
193
- }, children: [_jsx("option", { value: "12px", children: "12" }), _jsx("option", { value: "14px", children: "14" }), _jsx("option", { value: "16px", children: "16" }), _jsx("option", { value: "18px", children: "18" }), _jsx("option", { value: "24px", children: "24" }), _jsx("option", { value: "32px", children: "32" })] }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.bold"), icon: _jsx("span", { className: "font-bold leading-none", "aria-hidden": "true", children: "B" }), active: active("bold"), disabled: !canRun(editor, (ed) => ed.can().chain().focus().toggleBold().run()) || !!disabled, onClick: () => exec(() => editor.chain().toggleBold().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.italic"), icon: _jsx("span", { className: "italic leading-none", "aria-hidden": "true", children: "I" }), active: active("italic"), disabled: !canRun(editor, (ed) => ed.can().chain().focus().toggleItalic().run()) || !!disabled, onClick: () => exec(() => editor.chain().toggleItalic().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.underline"), icon: _jsx("span", { className: "underline leading-none", "aria-hidden": "true", children: "U" }), active: active("underline"), disabled: !canRun(editor, (ed) => ed.can().chain().focus().toggleUnderline().run()) || !!disabled, onClick: () => exec(() => editor.chain().toggleUnderline().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.strike"), icon: _jsx("span", { className: "line-through leading-none", "aria-hidden": "true", children: "S" }), active: active("strike"), disabled: !canRun(editor, (ed) => ed.can().chain().focus().toggleStrike().run()) || !!disabled, onClick: () => exec(() => editor.chain().toggleStrike().run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ColorPickerButton, { label: t(i18n, "components.textEditor.toolbar.textColor"), hint: t(i18n, "components.textEditor.toolbar.textColor"), icon: _jsx(Palette, { size: 14, "aria-hidden": "true" }), disabled: !editor || !!disabled, onChange: (color) => editor?.chain().focus().setColor(color).run() }), _jsx(ColorPickerButton, { label: t(i18n, "components.textEditor.toolbar.highlightColor"), hint: t(i18n, "components.textEditor.toolbar.highlightColor"), icon: _jsx(Highlighter, { size: 14, "aria-hidden": "true" }), disabled: !editor || !!disabled, onChange: (color) => editor?.chain().focus().toggleHighlight({ color }).run() }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.subscript"), text: "x2", active: active("subscript"), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().toggleSubscript().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.superscript"), text: "x^", active: active("superscript"), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().toggleSuperscript().run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.bullets"), icon: _jsx(List, { size: 14, "aria-hidden": "true" }), active: active("bulletList"), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().toggleBulletList().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.numbered"), icon: _jsx(ListOrdered, { size: 14, "aria-hidden": "true" }), active: active("orderedList"), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().toggleOrderedList().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.outdent"), icon: _jsx(IndentDecrease, { size: 14, "aria-hidden": "true" }), active: false, disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().liftListItem("listItem").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.indent"), icon: _jsx(IndentIncrease, { size: 14, "aria-hidden": "true" }), active: false, disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().sinkListItem("listItem").run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.alignLeft"), icon: _jsx(AlignLeft, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "left" }) || active("heading", { textAlign: "left" }), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().setTextAlign("left").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.alignCenter"), icon: _jsx(AlignCenter, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "center" }) || active("heading", { textAlign: "center" }), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().setTextAlign("center").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.alignRight"), icon: _jsx(AlignRight, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "right" }) || active("heading", { textAlign: "right" }), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().setTextAlign("right").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.justify"), icon: _jsx(AlignJustify, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "justify" }) || active("heading", { textAlign: "justify" }), disabled: !editor || !!disabled, onClick: () => exec(() => editor.chain().setTextAlign("justify").run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.link"), text: t(i18n, "components.textEditor.toolbar.link"), active: active("link"), disabled: !editor || !!disabled, onClick: () => {
193
+ }, children: [_jsx("option", { value: "12px", children: "12" }), _jsx("option", { value: "14px", children: "14" }), _jsx("option", { value: "16px", children: "16" }), _jsx("option", { value: "18px", children: "18" }), _jsx("option", { value: "24px", children: "24" }), _jsx("option", { value: "32px", children: "32" })] }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.bold"), icon: _jsx("span", { className: "font-bold leading-none", "aria-hidden": "true", children: "B" }), active: active("bold"), enabled: !(!canRun(editor, (ed) => ed.can().chain().focus().toggleBold().run()) || !enabled), onClick: () => exec(() => editor.chain().toggleBold().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.italic"), icon: _jsx("span", { className: "italic leading-none", "aria-hidden": "true", children: "I" }), active: active("italic"), enabled: !(!canRun(editor, (ed) => ed.can().chain().focus().toggleItalic().run()) || !enabled), onClick: () => exec(() => editor.chain().toggleItalic().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.underline"), icon: _jsx("span", { className: "underline leading-none", "aria-hidden": "true", children: "U" }), active: active("underline"), enabled: !(!canRun(editor, (ed) => ed.can().chain().focus().toggleUnderline().run()) || !enabled), onClick: () => exec(() => editor.chain().toggleUnderline().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.strike"), icon: _jsx("span", { className: "line-through leading-none", "aria-hidden": "true", children: "S" }), active: active("strike"), enabled: !(!canRun(editor, (ed) => ed.can().chain().focus().toggleStrike().run()) || !enabled), onClick: () => exec(() => editor.chain().toggleStrike().run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ColorPickerButton, { label: t(i18n, "components.textEditor.toolbar.textColor"), hint: t(i18n, "components.textEditor.toolbar.textColor"), icon: _jsx(Palette, { size: 14, "aria-hidden": "true" }), enabled: !(!editor || !enabled), onChange: (color) => editor?.chain().focus().setColor(color).run() }), _jsx(ColorPickerButton, { label: t(i18n, "components.textEditor.toolbar.highlightColor"), hint: t(i18n, "components.textEditor.toolbar.highlightColor"), icon: _jsx(Highlighter, { size: 14, "aria-hidden": "true" }), enabled: !(!editor || !enabled), onChange: (color) => editor?.chain().focus().toggleHighlight({ color }).run() }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.subscript"), text: "x2", active: active("subscript"), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().toggleSubscript().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.superscript"), text: "x^", active: active("superscript"), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().toggleSuperscript().run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.bullets"), icon: _jsx(List, { size: 14, "aria-hidden": "true" }), active: active("bulletList"), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().toggleBulletList().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.numbered"), icon: _jsx(ListOrdered, { size: 14, "aria-hidden": "true" }), active: active("orderedList"), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().toggleOrderedList().run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.outdent"), icon: _jsx(IndentDecrease, { size: 14, "aria-hidden": "true" }), active: false, enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().liftListItem("listItem").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.indent"), icon: _jsx(IndentIncrease, { size: 14, "aria-hidden": "true" }), active: false, enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().sinkListItem("listItem").run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.alignLeft"), icon: _jsx(AlignLeft, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "left" }) || active("heading", { textAlign: "left" }), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().setTextAlign("left").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.alignCenter"), icon: _jsx(AlignCenter, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "center" }) || active("heading", { textAlign: "center" }), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().setTextAlign("center").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.alignRight"), icon: _jsx(AlignRight, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "right" }) || active("heading", { textAlign: "right" }), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().setTextAlign("right").run()) }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.justify"), icon: _jsx(AlignJustify, { size: 14, "aria-hidden": "true" }), active: active("paragraph", { textAlign: "justify" }) || active("heading", { textAlign: "justify" }), enabled: !(!editor || !enabled), onClick: () => exec(() => editor.chain().setTextAlign("justify").run()) }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.link"), text: t(i18n, "components.textEditor.toolbar.link"), active: active("link"), enabled: !(!editor || !enabled), onClick: () => {
194
194
  if (!editor)
195
195
  return;
196
196
  const prev = editor.getAttributes("link").href;
@@ -200,18 +200,18 @@ function SgTextEditorBase(props) {
200
200
  return;
201
201
  }
202
202
  editor.chain().focus().setLink({ href: url }).run();
203
- } }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.image"), icon: _jsx(FileImage, { size: 14, "aria-hidden": "true" }), active: false, disabled: !editor || !!disabled, onClick: () => {
203
+ } }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.image"), icon: _jsx(FileImage, { size: 14, "aria-hidden": "true" }), active: false, enabled: !(!editor || !enabled), onClick: () => {
204
204
  if (!editor)
205
205
  return;
206
206
  const src = window.prompt(t(i18n, "components.textEditor.prompt.imageUrl"));
207
207
  if (!src)
208
208
  return;
209
209
  editor.chain().focus().setImage({ src }).run();
210
- } }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.clear"), text: "X", active: false, disabled: !editor || !!disabled, onClick: () => {
210
+ } }), _jsx("div", { className: "mx-1 h-6 w-px bg-border" }), _jsx(ToolbarButton, { label: t(i18n, "components.textEditor.toolbar.clear"), text: "X", active: false, enabled: !(!editor || !enabled), onClick: () => {
211
211
  if (!editor)
212
212
  return;
213
213
  editor.chain().focus().unsetAllMarks().clearNodes().run();
214
- } }), _jsxs("div", { className: "ml-auto flex items-center gap-2", children: [_jsx("button", { type: "button", className: "h-9 rounded-md border bg-muted px-3 text-sm hover:bg-muted/80 disabled:opacity-50", disabled: !editor || !!disabled, onClick: doSave, children: t(i18n, "components.actions.save") }), _jsxs("label", { className: "h-9 cursor-pointer rounded-md border bg-muted px-3 text-sm leading-9 hover:bg-muted/80", children: [t(i18n, "components.actions.loadHtml"), _jsx("input", { type: "file", accept: "text/html,.html", className: "hidden", onChange: (e) => {
214
+ } }), _jsxs("div", { className: "ml-auto flex items-center gap-2", children: [_jsx("button", { type: "button", className: "h-9 rounded-md border bg-muted px-3 text-sm hover:bg-muted/80 disabled:opacity-50", disabled: !editor || !enabled, onClick: doSave, children: t(i18n, "components.actions.save") }), _jsxs("label", { className: "h-9 cursor-pointer rounded-md border bg-muted px-3 text-sm leading-9 hover:bg-muted/80", children: [t(i18n, "components.actions.loadHtml"), _jsx("input", { type: "file", accept: "text/html,.html", className: "hidden", onChange: (e) => {
215
215
  const f = e.target.files?.[0];
216
216
  if (!f)
217
217
  return;
@@ -227,11 +227,11 @@ export function SgTextEditor(props) {
227
227
  return _jsx(SgTextEditorBase, { ...rest });
228
228
  }
229
229
  function ToolbarButton(props) {
230
- const { label, text, icon, active, disabled, onClick } = props;
231
- return (_jsx("button", { type: "button", title: label, "aria-label": label, disabled: disabled, onClick: onClick, className: cn("inline-flex h-9 min-w-9 items-center justify-center rounded-md border px-2 text-sm", "hover:bg-muted/80 disabled:opacity-50", active ? "bg-muted" : "bg-background"), children: icon ?? text }));
230
+ const { label, text, icon, active, enabled = true, onClick } = props;
231
+ return (_jsx("button", { type: "button", title: label, "aria-label": label, disabled: !enabled, onClick: onClick, className: cn("inline-flex h-9 min-w-9 items-center justify-center rounded-md border px-2 text-sm", "hover:bg-muted/80 disabled:opacity-50", active ? "bg-muted" : "bg-background"), children: icon ?? text }));
232
232
  }
233
233
  function ColorPickerButton(props) {
234
- const { label, hint, icon, disabled, onChange } = props;
235
- return (_jsxs("label", { title: hint ?? label, "aria-label": label, className: cn("relative inline-flex h-9 min-w-9 items-center justify-center rounded-md border px-2 text-sm", "bg-background hover:bg-muted/80", disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"), children: [icon, _jsx("input", { type: "color", disabled: disabled, onChange: (e) => onChange(e.target.value), className: cn("absolute inset-0 h-full w-full opacity-0", disabled ? "cursor-not-allowed" : "cursor-pointer"), "aria-label": label })] }));
234
+ const { label, hint, icon, enabled = true, onChange } = props;
235
+ return (_jsxs("label", { title: hint ?? label, "aria-label": label, className: cn("relative inline-flex h-9 min-w-9 items-center justify-center rounded-md border px-2 text-sm", "bg-background hover:bg-muted/80", !enabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"), children: [icon, _jsx("input", { type: "color", disabled: !enabled, onChange: (e) => onChange(e.target.value), className: cn("absolute inset-0 h-full w-full opacity-0", !enabled ? "cursor-not-allowed" : "cursor-pointer"), "aria-label": label })] }));
236
236
  }
237
237
  SgTextEditor.displayName = "SgTextEditor";
@@ -23,7 +23,7 @@ export const sgMeta = {
23
23
  sdui: {
24
24
  rendererType: "field.toggle",
25
25
  acceptsDataBinding: true,
26
- defaultProps: { checked: false, disabled: false }
26
+ defaultProps: { checked: false, enabled: true }
27
27
  }
28
28
  };
29
29
  export const aiHints = {
@@ -30,7 +30,7 @@ export type SgYearPartSelectorProps = {
30
30
  maxYear?: number;
31
31
  /** Locale dos rotulos. Default "pt-BR". */
32
32
  locale?: string;
33
- disabled?: boolean;
33
+ enabled?: boolean;
34
34
  required?: boolean;
35
35
  className?: string;
36
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SgYearPartSelector.d.ts","sourceRoot":"","sources":["../../src/inputs/SgYearPartSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EAMZ,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,oFAAoF;IACpF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,wFAAwF;IACxF,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA2BF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,uBAAuB,CAAC,2CA6J1E"}
1
+ {"version":3,"file":"SgYearPartSelector.d.ts","sourceRoot":"","sources":["../../src/inputs/SgYearPartSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EAMZ,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,oFAAoF;IACpF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,wFAAwF;IACxF,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA2BF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,uBAAuB,CAAC,2CA4J1E"}
@@ -19,7 +19,7 @@ function pickLocale(map, locale) {
19
19
  const DEFAULT_KIND = YearPartKind.SEMESTER;
20
20
  const ALL_KINDS = [DEFAULT_KIND, YearPartKind.QUARTER, YearPartKind.BIMESTER];
21
21
  export function SgYearPartSelector(props) {
22
- const { id = "sg-year-part-selector", label, value, onChange, allowedKinds, minYear, maxYear, locale = "pt-BR", disabled, required, className } = props;
22
+ const { id = "sg-year-part-selector", label, value, onChange, allowedKinds, minYear, maxYear, locale = "pt-BR", enabled = true, required, className } = props;
23
23
  // Array vazio cai no default: um combo de recorte sem opcao nenhuma seria controle morto na tela.
24
24
  const kinds = React.useMemo(() => (allowedKinds && allowedKinds.length > 0 ? allowedKinds : ALL_KINDS), [allowedKinds]);
25
25
  const isControlled = value !== undefined;
@@ -63,7 +63,6 @@ export function SgYearPartSelector(props) {
63
63
  // Depende do recorte: trocar de trimestre para semestre troca 4 opcoes por 2.
64
64
  const partItems = React.useMemo(() => yearPartOptions(current.kind, locale).map((option) => ({ id: option.value, label: option.label })), [current.kind, locale]);
65
65
  const showKind = kinds.length > 1;
66
- const enabled = disabled ? false : undefined;
67
66
  /*
68
67
  * Flex em vez de grid de 3 colunas: com o combo de recorte escondido a linha reflui para dois
69
68
  * controles, em vez de deixar uma coluna vazia no meio.
@@ -28,7 +28,7 @@ export const sgMeta = {
28
28
  { name: "minYear", type: "number", default: "ano corrente - 30", description: "Primeiro ano oferecido na lista de anos.", semanticRole: "behavior", bindable: true },
29
29
  { name: "maxYear", type: "number", default: "ano corrente + 10", description: "Ultimo ano oferecido na lista de anos.", semanticRole: "behavior", bindable: true },
30
30
  { name: "locale", type: "string", default: "pt-BR", description: "Locale dos rotulos de recorte e fatia. A sigla entre parenteses acompanha o idioma: Q1..Q4 em pt-BR e en-US, T1..T4 em es, fr e pt-PT; bimestre nao tem sigla e sai sem parenteses.", semanticRole: "behavior", bindable: true },
31
- { name: "disabled", type: "boolean", default: false, description: "Desabilita os tres combos (ano, recorte e fatia).", semanticRole: "behavior", bindable: true },
31
+ { name: "enabled", type: "boolean", default: true, description: "Desabilita os tres combos (ano, recorte e fatia).", semanticRole: "behavior", bindable: true },
32
32
  { name: "required", type: "boolean", default: false, description: "Marca o campo como obrigatorio.", semanticRole: "validation", bindable: true },
33
33
  { name: "className", type: "string", description: "Classes extras aplicadas ao container do campo.", semanticRole: "appearance", bindable: false }
34
34
  ],
@@ -44,7 +44,7 @@ export const sgMeta = {
44
44
  defaultProps: {
45
45
  allowedKinds: ["SEMESTER", "QUARTER", "BIMESTER"],
46
46
  locale: "pt-BR",
47
- disabled: false,
47
+ enabled: true,
48
48
  required: false
49
49
  }
50
50
  }
@@ -17,6 +17,12 @@ export type DateTimeValidationInput = {
17
17
  };
18
18
  /** Codigo do erro (null = valido). `local` e o texto do campo ("" = vazio). min/max sao instantes. */
19
19
  export declare function validateDateTime(local: string, input?: DateTimeValidationInput): DateTimeErrorCode | null;
20
- /** Texto de exibicao de um relogio de parede: dd/mm/aaaa HH:mm (en-US: aaaa-mm-dd HH:mm). */
20
+ /** Data no idioma (Intl.DateTimeFormat): pt-BR/pt-PT 05/11/2026, en-US 11/5/2026, es 5/11/2026, fr 05/11/2026. */
21
+ export declare function formatLocalizedDate(year: number, month: number, day: number, locale: string): string;
22
+ /**
23
+ * Texto de exibicao de um relogio de parede, no idioma ativo: a data vem do `Intl.DateTimeFormat` (pt-BR/pt-PT 05/11/2026,
24
+ * en-US 11/5/2026, es 5/11/2026, fr 05/11/2026) e a hora e sempre 24h (HH:mm[:ss]), separadas por um espaco. Assim a saida
25
+ * nao depende do separador que cada navegador usa entre data e hora, e o Flutter (`intl`) produz o mesmo texto.
26
+ */
21
27
  export declare function formatWallClock(local: string, locale: string, showSeconds?: boolean): string;
22
28
  //# sourceMappingURL=dateTimeLogic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeLogic.d.ts","sourceRoot":"","sources":["../../src/inputs/dateTimeLogic.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AASjF,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE;AAMD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB9E;AAQD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,EACvC,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,UAAQ,GAClB,MAAM,CAMR;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBlF;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBhE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,uBAA4B,GAAG,iBAAiB,GAAG,IAAI,CAY7G;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,MAAM,CAM1F"}
1
+ {"version":3,"file":"dateTimeLogic.d.ts","sourceRoot":"","sources":["../../src/inputs/dateTimeLogic.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AASjF,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE;AAMD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB9E;AAQD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,EACvC,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,UAAQ,GAClB,MAAM,CAMR;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBlF;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBhE;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,uBAA4B,GAAG,iBAAiB,GAAG,IAAI,CAY7G;AAED,kHAAkH;AAClH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASpG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,MAAM,CAM1F"}
@@ -128,13 +128,26 @@ export function validateDateTime(local, input = {}) {
128
128
  return "range";
129
129
  return belowMin ? "min" : "max";
130
130
  }
131
- /** Texto de exibicao de um relogio de parede: dd/mm/aaaa HH:mm (en-US: aaaa-mm-dd HH:mm). */
131
+ /** Data no idioma (Intl.DateTimeFormat): pt-BR/pt-PT 05/11/2026, en-US 11/5/2026, es 5/11/2026, fr 05/11/2026. */
132
+ export function formatLocalizedDate(year, month, day, locale) {
133
+ try {
134
+ return new Intl.DateTimeFormat(locale, { timeZone: "UTC", year: "numeric", month: "numeric", day: "numeric" }).format(new Date(Date.UTC(year, month - 1, day)));
135
+ }
136
+ catch {
137
+ const two = (v) => String(v).padStart(2, "0");
138
+ return `${two(day)}/${two(month)}/${year}`;
139
+ }
140
+ }
141
+ /**
142
+ * Texto de exibicao de um relogio de parede, no idioma ativo: a data vem do `Intl.DateTimeFormat` (pt-BR/pt-PT 05/11/2026,
143
+ * en-US 11/5/2026, es 5/11/2026, fr 05/11/2026) e a hora e sempre 24h (HH:mm[:ss]), separadas por um espaco. Assim a saida
144
+ * nao depende do separador que cada navegador usa entre data e hora, e o Flutter (`intl`) produz o mesmo texto.
145
+ */
132
146
  export function formatWallClock(local, locale, showSeconds = false) {
133
147
  const m = LOCAL_RE.exec(local.trim());
134
148
  if (!m)
135
149
  return local;
136
150
  const time = `${m[4]}:${m[5]}${showSeconds ? `:${m[6] ?? "00"}` : ""}`;
137
- if (locale === "en-US")
138
- return `${m[1]}-${m[2]}-${m[3]} ${time}`;
139
- return `${m[3]}/${m[2]}/${m[1]} ${time}`;
151
+ const date = formatLocalizedDate(Number(m[1]), Number(m[2]), Number(m[3]), locale);
152
+ return `${date} ${time}`;
140
153
  }
@@ -9,7 +9,7 @@ export type SgMultiSelectOption = {
9
9
  * Sem ele, vale o `label`. Ex.: `label: "3 - Filial Centro"`, `chipLabel: "3"`.
10
10
  */
11
11
  chipLabel?: string;
12
- disabled?: boolean;
12
+ enabled?: boolean;
13
13
  };
14
14
  export declare function valueEquals(left: SgMultiSelectOptionValue, right: SgMultiSelectOptionValue): boolean;
15
15
  export type UseSgMultiSelectParams = {
@@ -1 +1 @@
1
- {"version":3,"file":"useSgMultiSelect.d.ts","sourceRoot":"","sources":["../../src/inputs/useSgMultiSelect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,wBAAwB,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,WAE1F;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,IAAI,CAAC;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB;;;;;;;;;;;;;;;;uCAyB7C,wBAAwB;oCAgD7B,mBAAmB;wCAgBd,wBAAwB;;;;wCA4E9B,KAAK,CAAC,aAAa;EAiE9B"}
1
+ {"version":3,"file":"useSgMultiSelect.d.ts","sourceRoot":"","sources":["../../src/inputs/useSgMultiSelect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,wBAAwB,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,WAE1F;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,IAAI,CAAC;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB;;;;;;;;;;;;;;;;uCAyB7C,wBAAwB;oCAgD7B,mBAAmB;wCAgBd,wBAAwB;;;;wCA4E9B,KAAK,CAAC,aAAa;EAiE9B"}
@@ -65,7 +65,7 @@ export function useSgMultiSelect(params) {
65
65
  setOpen(true);
66
66
  }, [isDisabled]);
67
67
  const toggleOption = React.useCallback((option) => {
68
- if (option.disabled)
68
+ if ((option.enabled === false))
69
69
  return;
70
70
  const already = resolvedValue.some((entry) => valueEquals(entry, option.value));
71
71
  if (already) {
@@ -4,7 +4,7 @@ export type SgAccordionItem = {
4
4
  id?: string | number;
5
5
  title: React.ReactNode;
6
6
  content: React.ReactNode;
7
- disabled?: boolean;
7
+ enabled?: boolean;
8
8
  icon?: React.ReactNode;
9
9
  end?: React.ReactNode;
10
10
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SgAccordion.d.ts","sourceRoot":"","sources":["../../src/layout/SgAccordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsD/B,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG;IACtF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAKF,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAgN5D;yBAhNe,WAAW"}
1
+ {"version":3,"file":"SgAccordion.d.ts","sourceRoot":"","sources":["../../src/layout/SgAccordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsD/B,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG;IACtF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAKF,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAgN5D;yBAhNe,WAAW"}
@@ -63,7 +63,7 @@ export function SgAccordion(props) {
63
63
  }, [controlled, items.length, multiple, onActiveIndexChange]);
64
64
  const handleToggle = React.useCallback((index) => {
65
65
  const item = items[index];
66
- if (!item || item.disabled)
66
+ if (!item || (item.enabled === false))
67
67
  return;
68
68
  const isOpen = openSet.has(index);
69
69
  if (isOpen && !collapsible)
@@ -84,14 +84,14 @@ export function SgAccordion(props) {
84
84
  const headerId = `${baseId}-header-${item.id ?? index}`;
85
85
  const contentId = `${baseId}-content-${item.id ?? index}`;
86
86
  const resolvedHeaderBackground = item.headerBackgroundColor ?? headerBackgroundColor ?? DEFAULT_HEADER_BACKGROUND;
87
- const sharedButtonClasses = cn("inline-flex items-center gap-2 text-left font-medium transition-[filter,colors] duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40", item.disabled ? "cursor-not-allowed opacity-55" : "cursor-pointer hover:brightness-95");
87
+ const sharedButtonClasses = cn("inline-flex items-center gap-2 text-left font-medium transition-[filter,colors] duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40", (item.enabled === false) ? "cursor-not-allowed opacity-55" : "cursor-pointer hover:brightness-95");
88
88
  return (_jsxs("div", { id: panelId, className: cn("border border-border bg-background", isHorizontal ? "flex min-w-0 overflow-hidden rounded-lg" : "overflow-hidden rounded-lg", panelClassName, item.className), style: isHorizontal
89
89
  ? {
90
90
  minHeight,
91
91
  flex: isOpen ? "1 1 0%" : "0 0 auto",
92
92
  transition: `flex-basis ${animationDuration}ms ease`
93
93
  }
94
- : undefined, children: [_jsx("button", { id: headerId, type: "button", disabled: item.disabled, "aria-controls": contentId, "aria-expanded": isOpen, className: cn(sharedButtonClasses, isHorizontal
94
+ : undefined, children: [_jsx("button", { id: headerId, type: "button", disabled: item.enabled === false, "aria-controls": contentId, "aria-expanded": isOpen, className: cn(sharedButtonClasses, isHorizontal
95
95
  ? "h-full flex-col justify-between border-r border-border px-2 py-3 text-[11px] uppercase tracking-wide"
96
96
  : "w-full justify-between px-4 py-3 text-sm", headerClassName, item.headerClassName), style: isHorizontal
97
97
  ? {
@@ -4,7 +4,7 @@ export type SgBreadcrumbItem = {
4
4
  label: React.ReactNode;
5
5
  href?: string;
6
6
  icon?: React.ReactNode;
7
- disabled?: boolean;
7
+ enabled?: boolean;
8
8
  hidden?: boolean;
9
9
  onClick?: () => void;
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SgBreadcrumb.d.ts","sourceRoot":"","sources":["../../src/layout/SgBreadcrumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAsGF,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CAkL9D;yBAlLe,YAAY"}
1
+ {"version":3,"file":"SgBreadcrumb.d.ts","sourceRoot":"","sources":["../../src/layout/SgBreadcrumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAsGF,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,2CAkL9D;yBAlLe,YAAY"}
@@ -43,7 +43,7 @@ function toDisplayTokens(items, overflowBehavior, maxItems) {
43
43
  }
44
44
  function renderActionItem(item, index, className, iconClassName, onNavigate) {
45
45
  const content = (_jsxs(_Fragment, { children: [item.icon ? _jsx("span", { className: cn("inline-flex items-center justify-center", iconClassName), children: item.icon }) : null, _jsx("span", { className: "truncate", children: item.label })] }));
46
- if (item.disabled) {
46
+ if ((item.enabled === false)) {
47
47
  return _jsx("span", { className: cn(className, "cursor-not-allowed opacity-45"), children: content });
48
48
  }
49
49
  if (item.href) {
@@ -24,7 +24,7 @@ export type SgCardProps = Omit<React.HTMLAttributes<HTMLElement>, "title" | "onC
24
24
  header?: React.ReactNode;
25
25
  footer?: React.ReactNode;
26
26
  clickable?: boolean;
27
- disabled?: boolean;
27
+ enabled?: boolean;
28
28
  collapsible?: boolean;
29
29
  defaultOpen?: boolean;
30
30
  open?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SgCard.d.ts","sourceRoot":"","sources":["../../src/layout/SgCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AACzE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAEtD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAiEF,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,2CAmelD;yBAnee,MAAM"}
1
+ {"version":3,"file":"SgCard.d.ts","sourceRoot":"","sources":["../../src/layout/SgCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AACzE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAEtD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAiEF,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,2CAmelD;yBAnee,MAAM"}
@@ -41,7 +41,7 @@ function DefaultCaret({ open, size }) {
41
41
  }
42
42
  export function SgCard(props) {
43
43
  const i18n = useComponentsI18n();
44
- const { id, className, headerClassName, bodyClassName, footerClassName, bgColor, bgColorTitle, bgColorFooter, cardStyle = "default", size = "md", leading, trailing, trailer, title, description, actions, header, footer, clickable = false, disabled = false, collapsible = false, defaultOpen = true, open: controlledOpen, onOpenChange, collapseIcon, collapseIconSize = 18, collapseToggleAlign = "left", toggleOnHeaderClick = true, draggable = false, defaultPosition, dragPersistKey, onPositionChange, style, onClick, children, ...rest } = props;
44
+ const { id, className, headerClassName, bodyClassName, footerClassName, bgColor, bgColorTitle, bgColorFooter, cardStyle = "default", size = "md", leading, trailing, trailer, title, description, actions, header, footer, clickable = false, enabled = true, collapsible = false, defaultOpen = true, open: controlledOpen, onOpenChange, collapseIcon, collapseIconSize = 18, collapseToggleAlign = "left", toggleOnHeaderClick = true, draggable = false, defaultPosition, dragPersistKey, onPositionChange, style, onClick, children, ...rest } = props;
45
45
  const hasEnvironmentProvider = useHasSgEnvironmentProvider();
46
46
  const { load: loadPersistedState, save: savePersistedState, clear: clearPersistedState } = useSgPersistence();
47
47
  const isInteractive = (clickable || typeof onClick === "function") && !collapsible && !draggable;
@@ -193,9 +193,9 @@ export function SgCard(props) {
193
193
  ? "bg-background border border-border shadow-md"
194
194
  : "bg-background border border-border shadow-sm";
195
195
  const interactiveClasses = isInteractive
196
- ? cn("transition-[box-shadow,transform] duration-150", "hover:shadow-md", "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[hsl(var(--primary)/0.35)]", disabled ? "" : "cursor-pointer", disabled ? "" : "active:translate-y-[0.5px]")
196
+ ? cn("transition-[box-shadow,transform] duration-150", "hover:shadow-md", "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[hsl(var(--primary)/0.35)]", !enabled ? "" : "cursor-pointer", !enabled ? "" : "active:translate-y-[0.5px]")
197
197
  : "";
198
- const disabledClasses = disabled ? "opacity-60 pointer-events-none select-none" : "";
198
+ const disabledClasses = !enabled ? "opacity-60 pointer-events-none select-none" : "";
199
199
  const rootClasses = cn("w-full", sizeClasses.root, variantClasses, interactiveClasses, disabledClasses, draggable ? "touch-none" : "", className);
200
200
  const toggle = React.useCallback(() => setOpen(!isOpen), [isOpen, setOpen]);
201
201
  const onHeaderClick = () => {
@@ -207,12 +207,12 @@ export function SgCard(props) {
207
207
  return;
208
208
  if (!toggleOnHeaderClick)
209
209
  return;
210
- if (disabled)
210
+ if (!enabled)
211
211
  return;
212
212
  toggle();
213
213
  };
214
214
  const onHeaderPointerDown = React.useCallback((event) => {
215
- if (!draggable || disabled)
215
+ if (!draggable || !enabled)
216
216
  return;
217
217
  if (event.button !== 0)
218
218
  return;
@@ -232,7 +232,7 @@ export function SgCard(props) {
232
232
  event.currentTarget.setPointerCapture?.(event.pointerId);
233
233
  setDragging(true);
234
234
  event.preventDefault();
235
- }, [disabled, draggable]);
235
+ }, [enabled, draggable]);
236
236
  const onHeaderPointerMove = React.useCallback((event) => {
237
237
  const state = dragStateRef.current;
238
238
  if (!state || state.pointerId !== event.pointerId)
@@ -266,7 +266,7 @@ export function SgCard(props) {
266
266
  // ignore
267
267
  }
268
268
  }, []);
269
- const headerInteractionClasses = disabled
269
+ const headerInteractionClasses = !enabled
270
270
  ? ""
271
271
  : draggable
272
272
  ? dragging
@@ -278,7 +278,7 @@ export function SgCard(props) {
278
278
  const ToggleButton = collapsible ? (_jsx("button", { "data-sg-card-toggle": "true", type: "button", onClick: (e) => {
279
279
  e.stopPropagation();
280
280
  toggle();
281
- }, className: cn("inline-flex h-9 w-9 items-center justify-center rounded-md", "text-muted-foreground hover:text-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--primary)/0.35)]"), "aria-label": isOpen ? t(i18n, "components.actions.collapse") : t(i18n, "components.actions.expand"), "aria-expanded": isOpen, disabled: disabled, children: collapseIcon ?? _jsx(DefaultCaret, { open: isOpen, size: collapseIconSize }) })) : null;
281
+ }, className: cn("inline-flex h-9 w-9 items-center justify-center rounded-md", "text-muted-foreground hover:text-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--primary)/0.35)]"), "aria-label": isOpen ? t(i18n, "components.actions.collapse") : t(i18n, "components.actions.expand"), "aria-expanded": isOpen, disabled: !enabled, children: collapseIcon ?? _jsx(DefaultCaret, { open: isOpen, size: collapseIconSize }) })) : null;
282
282
  const headerHasContent = Boolean(header) ||
283
283
  Boolean(leading) ||
284
284
  Boolean(title) ||
@@ -286,16 +286,16 @@ export function SgCard(props) {
286
286
  Boolean(trailingNode) ||
287
287
  Boolean(actions) ||
288
288
  collapsible;
289
- const renderDefaultHeader = headerHasContent ? (_jsxs("div", { className: cn("flex items-start gap-3", "border-b border-border/60", sizeClasses.header, headerClassName, headerInteractionClasses), style: bgColorTitle ? { backgroundColor: bgColorTitle } : undefined, onClick: onHeaderClick, onPointerDown: onHeaderPointerDown, onPointerMove: onHeaderPointerMove, onPointerUp: endHeaderDrag, onPointerCancel: endHeaderDrag, role: collapsible && toggleOnHeaderClick ? "button" : undefined, tabIndex: collapsible && toggleOnHeaderClick && !disabled ? 0 : undefined, onKeyDown: (e) => {
290
- if (!collapsible || !toggleOnHeaderClick || disabled)
289
+ const renderDefaultHeader = headerHasContent ? (_jsxs("div", { className: cn("flex items-start gap-3", "border-b border-border/60", sizeClasses.header, headerClassName, headerInteractionClasses), style: bgColorTitle ? { backgroundColor: bgColorTitle } : undefined, onClick: onHeaderClick, onPointerDown: onHeaderPointerDown, onPointerMove: onHeaderPointerMove, onPointerUp: endHeaderDrag, onPointerCancel: endHeaderDrag, role: collapsible && toggleOnHeaderClick ? "button" : undefined, tabIndex: collapsible && toggleOnHeaderClick && enabled ? 0 : undefined, onKeyDown: (e) => {
290
+ if (!collapsible || !toggleOnHeaderClick || !enabled)
291
291
  return;
292
292
  if (e.key === "Enter" || e.key === " ") {
293
293
  e.preventDefault();
294
294
  toggle();
295
295
  }
296
296
  }, "aria-expanded": collapsible ? isOpen : undefined, children: [collapseToggleAlign === "left" ? ToggleButton : null, 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: cn("font-medium text-foreground", sizeClasses.title), children: title })) : null, description ? (_jsx("div", { className: cn("mt-0.5 text-muted-foreground", sizeClasses.desc), children: description })) : null] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [trailingNode ? _jsx("div", { className: "shrink-0", children: trailingNode }) : null, actions ? _jsx("div", { className: "shrink-0", children: actions }) : null, collapseToggleAlign === "right" ? ToggleButton : null] })] })) : null;
297
- const headerNode = header ? (_jsx("div", { className: cn("border-b border-border/60", sizeClasses.header, headerClassName, headerInteractionClasses), style: bgColorTitle ? { backgroundColor: bgColorTitle } : undefined, onClick: onHeaderClick, onPointerDown: onHeaderPointerDown, onPointerMove: onHeaderPointerMove, onPointerUp: endHeaderDrag, onPointerCancel: endHeaderDrag, role: collapsible && toggleOnHeaderClick ? "button" : undefined, tabIndex: collapsible && toggleOnHeaderClick && !disabled ? 0 : undefined, onKeyDown: (e) => {
298
- if (!collapsible || !toggleOnHeaderClick || disabled)
297
+ const headerNode = header ? (_jsx("div", { className: cn("border-b border-border/60", sizeClasses.header, headerClassName, headerInteractionClasses), style: bgColorTitle ? { backgroundColor: bgColorTitle } : undefined, onClick: onHeaderClick, onPointerDown: onHeaderPointerDown, onPointerMove: onHeaderPointerMove, onPointerUp: endHeaderDrag, onPointerCancel: endHeaderDrag, role: collapsible && toggleOnHeaderClick ? "button" : undefined, tabIndex: collapsible && toggleOnHeaderClick && enabled ? 0 : undefined, onKeyDown: (e) => {
298
+ if (!collapsible || !toggleOnHeaderClick || !enabled)
299
299
  return;
300
300
  if (e.key === "Enter" || e.key === " ") {
301
301
  e.preventDefault();
@@ -306,8 +306,8 @@ export function SgCard(props) {
306
306
  const bodyNode = !collapsible ? _jsx("div", { className: cn(sizeClasses.body, bodyClassName), children: children }) : null;
307
307
  const footerNode = !collapsible && footer ? (_jsx("div", { className: cn("border-t border-border/60", sizeClasses.footer, footerClassName), style: bgColorFooter ? { backgroundColor: bgColorFooter } : undefined, children: footer })) : null;
308
308
  const Component = isInteractive ? "button" : "section";
309
- const buttonLikeProps = isInteractive ? { type: "button", onClick: disabled ? undefined : onClick, disabled } : {};
310
- const passiveOnClickProps = !isInteractive && typeof onClick === "function" ? { onClick: disabled ? undefined : onClick } : {};
309
+ const buttonLikeProps = isInteractive ? { type: "button", onClick: !enabled ? undefined : onClick, disabled: !enabled } : {};
310
+ const passiveOnClickProps = !isInteractive && typeof onClick === "function" ? { onClick: !enabled ? undefined : onClick } : {};
311
311
  const roundedDragX = Math.round(dragPosition.x);
312
312
  const roundedDragY = Math.round(dragPosition.y);
313
313
  const shouldApplyDragTransform = draggable && (dragging || roundedDragX !== 0 || roundedDragY !== 0);
@@ -7,7 +7,7 @@ export type SgMenuNode = {
7
7
  hint?: string;
8
8
  url?: string;
9
9
  children?: SgMenuNode[];
10
- disabled?: boolean;
10
+ enabled?: boolean;
11
11
  icon?: React.ReactNode;
12
12
  badge?: string | number;
13
13
  onClick?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SgMenu.d.ts","sourceRoot":"","sources":["../../src/layout/SgMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SgMenu.d.ts","sourceRoot":"","sources":["../../src/layout/SgMenu.tsx"],"names":[],"mappings":"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"}