@flowtomic/ui 0.1.9 → 0.1.10

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 (94) hide show
  1. package/dist/components/atoms/actions/badge/badge.d.ts +1 -1
  2. package/dist/components/atoms/actions/button/button.d.ts +2 -2
  3. package/dist/components/atoms/animation/sliding-number/sliding-number.d.ts.map +1 -1
  4. package/dist/components/atoms/animation/sliding-number/sliding-number.js +1 -1
  5. package/dist/components/atoms/data-display/qr-code/qr-code.d.ts +2 -2
  6. package/dist/components/atoms/data-display/qr-code/qr-code.d.ts.map +1 -1
  7. package/dist/components/atoms/data-display/qr-code/qr-code.js +4 -3
  8. package/dist/components/atoms/feedback/alert/alert.d.ts +1 -1
  9. package/dist/components/atoms/feedback/alert-dialog/alert-dialog.d.ts +2 -2
  10. package/dist/components/atoms/forms/input/input.d.ts +2 -2
  11. package/dist/components/atoms/forms/toggle/toggle.d.ts +1 -1
  12. package/dist/components/atoms/index.d.ts +2 -0
  13. package/dist/components/atoms/index.d.ts.map +1 -1
  14. package/dist/components/atoms/index.js +1 -0
  15. package/dist/components/atoms/layout/sidebar/sidebar.d.ts +1 -1
  16. package/dist/components/atoms/navigation/command/command.d.ts +13 -13
  17. package/dist/components/atoms/widget-resize-handle/index.d.ts +3 -0
  18. package/dist/components/atoms/widget-resize-handle/index.d.ts.map +1 -0
  19. package/dist/components/atoms/widget-resize-handle/index.js +1 -0
  20. package/dist/components/atoms/widget-resize-handle/widget-resize-handle.d.ts +60 -0
  21. package/dist/components/atoms/widget-resize-handle/widget-resize-handle.d.ts.map +1 -0
  22. package/dist/components/atoms/widget-resize-handle/widget-resize-handle.js +75 -0
  23. package/dist/components/molecules/draggable-widget/draggable-widget.d.ts +73 -0
  24. package/dist/components/molecules/draggable-widget/draggable-widget.d.ts.map +1 -0
  25. package/dist/components/molecules/draggable-widget/draggable-widget.js +44 -0
  26. package/dist/components/molecules/draggable-widget/index.d.ts +3 -0
  27. package/dist/components/molecules/draggable-widget/index.d.ts.map +1 -0
  28. package/dist/components/molecules/draggable-widget/index.js +1 -0
  29. package/dist/components/molecules/edit-mode-toggle/edit-mode-toggle.d.ts +41 -0
  30. package/dist/components/molecules/edit-mode-toggle/edit-mode-toggle.d.ts.map +1 -0
  31. package/dist/components/molecules/edit-mode-toggle/edit-mode-toggle.js +26 -0
  32. package/dist/components/molecules/edit-mode-toggle/index.d.ts +3 -0
  33. package/dist/components/molecules/edit-mode-toggle/index.d.ts.map +1 -0
  34. package/dist/components/molecules/edit-mode-toggle/index.js +1 -0
  35. package/dist/components/molecules/forms/autocomplete/autocomplete-context.d.ts.map +1 -1
  36. package/dist/components/molecules/forms/autocomplete/autocomplete-item.d.ts.map +1 -1
  37. package/dist/components/molecules/forms/autocomplete/autocomplete-section.d.ts.map +1 -1
  38. package/dist/components/molecules/forms/autocomplete/autocomplete.d.ts +1 -1
  39. package/dist/components/molecules/forms/autocomplete/autocomplete.d.ts.map +1 -1
  40. package/dist/components/molecules/forms/autocomplete/autocomplete.js +4 -4
  41. package/dist/components/molecules/forms/autocomplete/index.d.ts +2 -2
  42. package/dist/components/molecules/forms/autocomplete/index.d.ts.map +1 -1
  43. package/dist/components/molecules/forms/autocomplete/index.js +1 -1
  44. package/dist/components/molecules/forms/text-editor/text-editor.d.ts.map +1 -1
  45. package/dist/components/molecules/forms/text-editor/text-editor.js +13 -12
  46. package/dist/components/molecules/index.d.ts +8 -2
  47. package/dist/components/molecules/index.d.ts.map +1 -1
  48. package/dist/components/molecules/index.js +4 -1
  49. package/dist/components/molecules/navigation/menu-dock/menu-dock.d.ts.map +1 -1
  50. package/dist/components/molecules/navigation/menu-dock/menu-dock.js +1 -1
  51. package/dist/components/molecules/widget-renderer/index.d.ts +3 -0
  52. package/dist/components/molecules/widget-renderer/index.d.ts.map +1 -0
  53. package/dist/components/molecules/widget-renderer/index.js +1 -0
  54. package/dist/components/molecules/widget-renderer/widget-renderer.d.ts +46 -0
  55. package/dist/components/molecules/widget-renderer/widget-renderer.d.ts.map +1 -0
  56. package/dist/components/molecules/widget-renderer/widget-renderer.js +37 -0
  57. package/dist/components/organisms/document-editor/document-editor.d.ts.map +1 -1
  58. package/dist/components/organisms/document-editor/document-editor.js +3 -3
  59. package/dist/components/organisms/document-editor/index.d.ts +1 -1
  60. package/dist/components/organisms/document-editor/index.d.ts.map +1 -1
  61. package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.d.ts +65 -0
  62. package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.d.ts.map +1 -0
  63. package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.js +124 -0
  64. package/dist/components/organisms/draggable-dashboard-grid/index.d.ts +3 -0
  65. package/dist/components/organisms/draggable-dashboard-grid/index.d.ts.map +1 -0
  66. package/dist/components/organisms/draggable-dashboard-grid/index.js +1 -0
  67. package/dist/components/organisms/form-layout/form-layout.d.ts +2 -2
  68. package/dist/components/organisms/form-layout/form-layout.d.ts.map +1 -1
  69. package/dist/components/organisms/form-layout/form-layout.js +11 -9
  70. package/dist/components/organisms/form-layout/index.d.ts +1 -1
  71. package/dist/components/organisms/form-layout/index.d.ts.map +1 -1
  72. package/dist/components/organisms/index.d.ts +6 -0
  73. package/dist/components/organisms/index.d.ts.map +1 -1
  74. package/dist/components/organisms/index.js +3 -0
  75. package/dist/components/organisms/model-selector/model-selector.d.ts +1 -1
  76. package/dist/components/organisms/widget-config-modal/index.d.ts +3 -0
  77. package/dist/components/organisms/widget-config-modal/index.d.ts.map +1 -0
  78. package/dist/components/organisms/widget-config-modal/index.js +1 -0
  79. package/dist/components/organisms/widget-config-modal/widget-config-modal.d.ts +57 -0
  80. package/dist/components/organisms/widget-config-modal/widget-config-modal.d.ts.map +1 -0
  81. package/dist/components/organisms/widget-config-modal/widget-config-modal.js +35 -0
  82. package/dist/components/organisms/widget-palette/index.d.ts +3 -0
  83. package/dist/components/organisms/widget-palette/index.d.ts.map +1 -0
  84. package/dist/components/organisms/widget-palette/index.js +1 -0
  85. package/dist/components/organisms/widget-palette/widget-palette.d.ts +71 -0
  86. package/dist/components/organisms/widget-palette/widget-palette.d.ts.map +1 -0
  87. package/dist/components/organisms/widget-palette/widget-palette.js +42 -0
  88. package/dist/index.d.ts +1 -0
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +458 -454
  91. package/dist/types/dashboard.d.ts +74 -0
  92. package/dist/types/dashboard.d.ts.map +1 -0
  93. package/dist/types/dashboard.js +7 -0
  94. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ export { EditModeToggle } from "./edit-mode-toggle";
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-context.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,qDAEpB,CAAC;AAEb,wBAAgB,sBAAsB,IAAI,wBAAwB,CAQjE"}
1
+ {"version":3,"file":"autocomplete-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-context.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,qBAAqB,EAAmB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,qDAE/B,CAAC;AAEF,wBAAgB,sBAAsB,IAAI,wBAAwB,CAMjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-item.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;IAC3C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,gBAAgB,6FAiDrB,CAAC;AAIF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"autocomplete-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-item.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;IAChF;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,gBAAgB,6FA+CrB,CAAC;AAIF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-section.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-section.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,wBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,mBAAmB,iGAsBvB,CAAC;AAIH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"autocomplete-section.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-section.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACpF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,mBAAmB,iGAmBxB,CAAC;AAIF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -4,8 +4,8 @@
4
4
  * Componente de autocomplete usando hook headless useAutocomplete
5
5
  * Suporta API antiga (options) e composição (Compound Components)
6
6
  */
7
- import * as React from "react";
8
7
  import { type AutocompleteOption } from "flowtomic/logic";
8
+ import * as React from "react";
9
9
  export interface AutocompleteProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "value" | "onChange" | "defaultValue"> {
10
10
  options?: AutocompleteOption[];
11
11
  value?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAoC3E,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAC/C;IAED,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAoPD,eAAO,MAAM,YAAY;;;;;;CAMvB,CAAC"}
1
+ {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,kBAAkB,EAAmB,MAAM,iBAAiB,CAAC;AAI3E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyB/B,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAC/C;IAED,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA4OD,eAAO,MAAM,YAAY;;;;;;CAMvB,CAAC"}
@@ -5,18 +5,18 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  * Componente de autocomplete usando hook headless useAutocomplete
6
6
  * Suporta API antiga (options) e composição (Compound Components)
7
7
  */
8
- // React e types
9
- import * as React from "react";
10
8
  // Hooks Flowtomic
11
9
  import { useAutocomplete } from "flowtomic/logic";
12
10
  // Ícones
13
11
  import { ChevronDownIcon, XIcon } from "lucide-react";
12
+ // React e types
13
+ import * as React from "react";
14
14
  // Utils
15
15
  import { cn } from "@/lib/utils";
16
- import { inputVariants } from "../../../atoms/forms/input/input";
17
16
  import { Spinner } from "../../../atoms/animation/spinner/spinner";
18
17
  // Feedback/Overlay
19
- import { Popover, PopoverContent, PopoverTrigger, } from "../../../atoms/feedback/popover/popover";
18
+ import { Popover, PopoverContent, PopoverTrigger } from "../../../atoms/feedback/popover/popover";
19
+ import { inputVariants } from "../../../atoms/forms/input/input";
20
20
  // Context/Composição
21
21
  import { AutocompleteContext, } from "./autocomplete-context";
22
22
  import { AutocompleteItem } from "./autocomplete-item";
@@ -1,9 +1,9 @@
1
1
  export type { AutocompleteProps } from "./autocomplete";
2
2
  export { Autocomplete } from "./autocomplete";
3
+ export type { AutocompleteContextValue } from "./autocomplete-context";
4
+ export { useAutocompleteContext } from "./autocomplete-context";
3
5
  export type { AutocompleteItemProps } from "./autocomplete-item";
4
6
  export { AutocompleteItem } from "./autocomplete-item";
5
7
  export type { AutocompleteSectionProps } from "./autocomplete-section";
6
8
  export { AutocompleteSection } from "./autocomplete-section";
7
- export type { AutocompleteContextValue } from "./autocomplete-context";
8
- export { useAutocompleteContext } from "./autocomplete-context";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { Autocomplete } from "./autocomplete";
2
+ export { useAutocompleteContext } from "./autocomplete-context";
2
3
  export { AutocompleteItem } from "./autocomplete-item";
3
4
  export { AutocompleteSection } from "./autocomplete-section";
4
- export { useAutocompleteContext } from "./autocomplete-context";
@@ -1 +1 @@
1
- {"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/text-editor/text-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+C/B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7D,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GACrC,IAAI,GAAG,IAAI,GAAG,IAAI,GAClB,YAAY,GAAG,aAAa,GAAG,YAAY,GAC3C,WAAW,GAAG,aAAa,GAAG,YAAY,GAC1C,WAAW,GACX,OAAO,CAAC;AAEZ,QAAA,MAAM,eAAe,EAAE,uBAAuB,EAgB7C,CAAC;AA2DF,KAAK,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAE3E,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACzD,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACnC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,UAAU,wFAmUtB,CAAC;AA8BF,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/text-editor/text-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7D,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,OAAO,CAAC;AAEZ,QAAA,MAAM,eAAe,EAAE,uBAAuB,EAgB7C,CAAC;AA2DF,KAAK,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAE3E,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACzD,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACnC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,UAAU,wFA4XtB,CAAC;AA8BF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -9,19 +9,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  * - Somente 'preview' => somente visualização
10
10
  * - Múltiplos modos => abas para cada modo disponível
11
11
  */
12
- import * as React from "react";
13
- import { useEditor, EditorContent } from "@tiptap/react";
14
- import StarterKit from "@tiptap/starter-kit";
15
- import Placeholder from "@tiptap/extension-placeholder";
16
- import TextStyle from "@tiptap/extension-text-style";
17
12
  import Color from "@tiptap/extension-color";
18
- import TextAlign from "@tiptap/extension-text-align";
19
13
  import Image from "@tiptap/extension-image";
20
- import { Markdown } from "tiptap-markdown";
21
- import { Bold, Code, Heading1, Heading2, Heading3, ImageIcon, Italic, ListOrdered, List as ListIcon, Quote, Strikethrough, AlignLeft, AlignCenter, AlignRight, Eye, FileText, Palette, } from "lucide-react";
14
+ import Placeholder from "@tiptap/extension-placeholder";
15
+ import TextAlign from "@tiptap/extension-text-align";
16
+ import TextStyle from "@tiptap/extension-text-style";
17
+ import { EditorContent, useEditor } from "@tiptap/react";
18
+ import StarterKit from "@tiptap/starter-kit";
19
+ import { AlignCenter, AlignLeft, AlignRight, Bold, Code, Eye, FileText, Heading1, Heading2, Heading3, ImageIcon, Italic, List as ListIcon, ListOrdered, Palette, Quote, Strikethrough, } from "lucide-react";
20
+ import * as React from "react";
22
21
  import { Streamdown } from "streamdown";
22
+ import { Markdown } from "tiptap-markdown";
23
23
  import { cn } from "@/lib/utils";
24
- import { Button, Separator, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Popover, PopoverContent, PopoverTrigger, } from "../../../atoms";
24
+ import { Button, Popover, PopoverContent, PopoverTrigger, Separator, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "../../../atoms";
25
25
  const DEFAULT_ACTIONS = [
26
26
  "bold",
27
27
  "italic",
@@ -96,7 +96,7 @@ function stripMarkdown(md) {
96
96
  }
97
97
  export const TextEditor = React.forwardRef(({ className, value: controlledValue, defaultValue, onChange, placeholder = "Escreva algo...", editable = true, mode: controlledMode, onModeChange, toolbar = true, allowedActions = DEFAULT_ACTIONS, onUploadImage, outputFormat = "markdown", availableModes = ["rich", "markdown"], ...props }, ref) => {
98
98
  const initial = controlledValue ?? defaultValue ?? "";
99
- const { value: internalMarkdown, setValue: setInternalMarkdown, isControlled } = useMarkdownState(controlledValue, initial);
99
+ const { value: internalMarkdown, setValue: setInternalMarkdown, isControlled, } = useMarkdownState(controlledValue, initial);
100
100
  // Expandir modos: se markdown está presente, adicionar preview automaticamente
101
101
  const effectiveModes = React.useMemo(() => {
102
102
  const unique = availableModes.filter((m, i, arr) => arr.indexOf(m) === i);
@@ -130,8 +130,9 @@ export const TextEditor = React.forwardRef(({ className, value: controlledValue,
130
130
  content: internalMarkdown ? undefined : "",
131
131
  onUpdate: ({ editor }) => {
132
132
  try {
133
- // @ts-expect-error acesso ao storage markdown da extensão
134
- const md = editor?.storage?.markdown?.getMarkdown?.() ?? editor.commands.getMarkdown?.();
133
+ // Acesso ao storage markdown da extensão tiptap-markdown
134
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
+ const md = editor?.storage?.markdown?.getMarkdown?.() ?? "";
135
136
  if (typeof md === "string") {
136
137
  if (!isControlled)
137
138
  setInternalMarkdown(md);
@@ -5,8 +5,6 @@
5
5
  export type { ConnectionLineComponent } from "@xyflow/react";
6
6
  export type { ModalBodyProps, ModalContentProps, ModalFooterProps, ModalProps, ModalTriggerProps, } from "./animation/animated-modal";
7
7
  export { Modal, ModalBody, ModalContent, ModalFooter, ModalTrigger, } from "./animation/animated-modal";
8
- export type { TextEditorMode, TextEditorProps, TextEditorToolbarAction } from "./forms/text-editor";
9
- export { TextEditor } from "./forms/text-editor";
10
8
  export type { AnimatedSlidingNumberProps } from "./animation/animated-sliding-number";
11
9
  export { AnimatedSlidingNumber } from "./animation/animated-sliding-number";
12
10
  export type { ButtonCounterProps } from "./animation/button-counter";
@@ -49,6 +47,10 @@ export type { TimeTrackerProps } from "./data-display/time-tracker";
49
47
  export { TimeTracker } from "./data-display/time-tracker";
50
48
  export type { ToolContentProps, ToolHeaderProps, ToolInputProps, ToolOutputProps, ToolProps, } from "./data-display/tool";
51
49
  export { Tool, ToolContent, ToolHeader, ToolInput, ToolOutput } from "./data-display/tool";
50
+ export type { DraggableWidgetProps } from "./draggable-widget";
51
+ export { DraggableWidget } from "./draggable-widget";
52
+ export type { EditModeToggleProps } from "./edit-mode-toggle";
53
+ export { EditModeToggle } from "./edit-mode-toggle";
52
54
  export type { ConfirmationAcceptedProps, ConfirmationActionProps, ConfirmationActionsProps, ConfirmationProps, ConfirmationRejectedProps, ConfirmationRequestProps, ConfirmationTitleProps, } from "./feedback/confirmation";
53
55
  export { Confirmation, ConfirmationAccepted, ConfirmationAction, ConfirmationActions, ConfirmationRejected, ConfirmationRequest, ConfirmationTitle, } from "./feedback/confirmation";
54
56
  export type { CanvasProps } from "./flow/canvas";
@@ -64,6 +66,8 @@ export type { InputGroupAddonProps, InputGroupButtonProps, InputGroupProps, Inpu
64
66
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupTextarea, } from "./forms/input-group";
65
67
  export type { ItemActionsProps, ItemContentProps, ItemDescriptionProps, ItemFooterProps, ItemGroupProps, ItemHeaderProps, ItemMediaProps, ItemProps, ItemSeparatorProps, ItemTitleProps, } from "./forms/item";
66
68
  export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, } from "./forms/item";
69
+ export type { TextEditorMode, TextEditorProps, TextEditorToolbarAction } from "./forms/text-editor";
70
+ export { TextEditor } from "./forms/text-editor";
67
71
  export type { DashboardHeaderProps, DashboardUser, Notification, } from "./layout/dashboard-header";
68
72
  export { DashboardHeader } from "./layout/dashboard-header";
69
73
  export type { MenuDockItem, MenuDockProps } from "./navigation/menu-dock";
@@ -72,4 +76,6 @@ export type { MobileAppCard, NavigationItem, SidebarNavigationProps, } from "./n
72
76
  export { SidebarNavigation } from "./navigation/sidebar-navigation";
73
77
  export type { StartPosition, ThemeToggleButtonProps, } from "./theme/theme-toggle-button/theme-toggle-button";
74
78
  export { ThemeToggleButton } from "./theme/theme-toggle-button/theme-toggle-button";
79
+ export type { WidgetRendererProps } from "./widget-renderer";
80
+ export { WidgetRenderer } from "./widget-renderer";
75
81
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/molecules/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/molecules/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  * Atomic Design: Componentes compostos por múltiplos atoms
4
4
  */
5
5
  export { Modal, ModalBody, ModalContent, ModalFooter, ModalTrigger, } from "./animation/animated-modal";
6
- export { TextEditor } from "./forms/text-editor";
7
6
  export { AnimatedSlidingNumber } from "./animation/animated-sliding-number";
8
7
  export { ButtonCounter } from "./animation/button-counter";
9
8
  export { AuthFormErrorMessage, AuthNavigationLink, PasswordInput } from "./auth";
@@ -25,6 +24,8 @@ export { Task, TaskContent, TaskItem, TaskItemFile, TaskTrigger } from "./data-d
25
24
  export { TeamMemberList } from "./data-display/team-member-list";
26
25
  export { TimeTracker } from "./data-display/time-tracker";
27
26
  export { Tool, ToolContent, ToolHeader, ToolInput, ToolOutput } from "./data-display/tool";
27
+ export { DraggableWidget } from "./draggable-widget";
28
+ export { EditModeToggle } from "./edit-mode-toggle";
28
29
  export { Confirmation, ConfirmationAccepted, ConfirmationAction, ConfirmationActions, ConfirmationRejected, ConfirmationRequest, ConfirmationTitle, } from "./feedback/confirmation";
29
30
  export { Canvas } from "./flow/canvas";
30
31
  export { Connection } from "./flow/connection";
@@ -33,7 +34,9 @@ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText } from "./forms/butt
33
34
  export { ImageDropzone } from "./forms/image-dropzone";
34
35
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupTextarea, } from "./forms/input-group";
35
36
  export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, } from "./forms/item";
37
+ export { TextEditor } from "./forms/text-editor";
36
38
  export { DashboardHeader } from "./layout/dashboard-header";
37
39
  export { MenuDock } from "./navigation/menu-dock";
38
40
  export { SidebarNavigation } from "./navigation/sidebar-navigation";
39
41
  export { ThemeToggleButton } from "./theme/theme-toggle-button/theme-toggle-button";
42
+ export { WidgetRenderer } from "./widget-renderer";
@@ -1 +1 @@
1
- {"version":3,"file":"menu-dock.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/navigation/menu-dock/menu-dock.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAUD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4M5C,CAAC"}
1
+ {"version":3,"file":"menu-dock.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/navigation/menu-dock/menu-dock.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAUD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4M5C,CAAC"}
@@ -7,9 +7,9 @@
7
7
  "use client";
8
8
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
9
  import { useAnimatedIndicator } from "@flowtomic/logic";
10
+ import { Menu } from "lucide-react";
10
11
  import { AnimatePresence, motion, useMotionValue, useReducedMotion, useSpring, useTransform, } from "motion/react";
11
12
  import { useEffect, useMemo, useRef, useState } from "react";
12
- import { Menu } from "lucide-react";
13
13
  import { cn } from "@/lib/utils";
14
14
  const defaultItems = [
15
15
  { label: "home", icon: () => null },
@@ -0,0 +1,3 @@
1
+ export type { WidgetRendererProps } from "./widget-renderer";
2
+ export { WidgetRenderer } from "./widget-renderer";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/widget-renderer/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ export { WidgetRenderer } from "./widget-renderer";
@@ -0,0 +1,46 @@
1
+ /**
2
+ * WidgetRenderer - Molecule Component
3
+ *
4
+ * Renderizador base para widgets com render prop pattern.
5
+ * Totalmente extensível e genérico.
6
+ */
7
+ import type { WidgetLayout } from "@/types/dashboard";
8
+ export interface WidgetRendererProps {
9
+ /**
10
+ * Layout do widget a ser renderizado
11
+ */
12
+ widget: WidgetLayout;
13
+ /**
14
+ * Dados para o widget (opcional, depende do tipo)
15
+ */
16
+ data?: unknown;
17
+ /**
18
+ * Se está carregando
19
+ */
20
+ isLoading?: boolean;
21
+ /**
22
+ * Render prop para renderizar widget customizado
23
+ * Tem prioridade sobre widgetRegistry
24
+ */
25
+ renderWidget?: (widget: WidgetLayout, data?: unknown) => React.ReactNode;
26
+ /**
27
+ * Registry de componentes por tipo de widget
28
+ * Usado quando renderWidget não é fornecido
29
+ */
30
+ widgetRegistry?: Map<string, React.ComponentType<{
31
+ widget: WidgetLayout;
32
+ data?: unknown;
33
+ }>>;
34
+ /**
35
+ * Fallback quando widget não é encontrado
36
+ */
37
+ fallback?: React.ReactNode;
38
+ }
39
+ /**
40
+ * Renderiza widget baseado no tipo
41
+ *
42
+ * Componente genérico que usa render prop pattern ou registry pattern
43
+ * para renderizar widgets. Totalmente extensível.
44
+ */
45
+ export declare const WidgetRenderer: import("react").NamedExoticComponent<WidgetRendererProps>;
46
+ //# sourceMappingURL=widget-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-renderer.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/widget-renderer/widget-renderer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IAEzE;;;OAGG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAE5F;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,2DAkC1B,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * WidgetRenderer - Molecule Component
4
+ *
5
+ * Renderizador base para widgets com render prop pattern.
6
+ * Totalmente extensível e genérico.
7
+ */
8
+ import { memo, Suspense } from "react";
9
+ import { CardSkeleton } from "@/components/atoms";
10
+ /**
11
+ * Renderiza widget baseado no tipo
12
+ *
13
+ * Componente genérico que usa render prop pattern ou registry pattern
14
+ * para renderizar widgets. Totalmente extensível.
15
+ */
16
+ export const WidgetRenderer = memo(({ widget, data, isLoading = false, renderWidget, widgetRegistry, fallback }) => {
17
+ if (isLoading) {
18
+ return _jsx(CardSkeleton, {});
19
+ }
20
+ // Prioridade 1: Render prop
21
+ if (renderWidget) {
22
+ return _jsx(Suspense, { fallback: _jsx(CardSkeleton, {}), children: renderWidget(widget, data) });
23
+ }
24
+ // Prioridade 2: Registry
25
+ if (widgetRegistry) {
26
+ const WidgetComponent = widgetRegistry.get(widget.type);
27
+ if (WidgetComponent) {
28
+ return (_jsx(Suspense, { fallback: _jsx(CardSkeleton, {}), children: _jsx(WidgetComponent, { widget: widget, data: data }) }));
29
+ }
30
+ }
31
+ // Fallback: Widget não encontrado
32
+ if (fallback) {
33
+ return _jsx(_Fragment, { children: fallback });
34
+ }
35
+ return (_jsx("div", { className: "p-4", children: _jsxs("p", { className: "text-muted-foreground", children: ["Tipo de widget desconhecido: ", widget.type] }) }));
36
+ });
37
+ WidgetRenderer.displayName = "WidgetRenderer";
@@ -1 +1 @@
1
- {"version":3,"file":"document-editor.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/document-editor/document-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC;IAC3D,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD,eAAO,MAAM,cAAc,4FAsS1B,CAAC"}
1
+ {"version":3,"file":"document-editor.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/document-editor/document-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC;IAC3D,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD,eAAO,MAAM,cAAc,4FAyS1B,CAAC"}
@@ -13,11 +13,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  * - Navegação entre páginas
14
14
  * - Modo de edição Rich apenas (sem abas)
15
15
  */
16
+ import { ChevronLeft, ChevronRight, Clock, Columns, FileText, List, Plus, Trash2, Type, } from "lucide-react";
16
17
  import * as React from "react";
17
- import { TextEditor } from "../../molecules/forms/text-editor";
18
- import { Button } from "../../atoms";
19
- import { Plus, Trash2, ChevronLeft, ChevronRight, FileText, Clock, Type, Columns, List, } from "lucide-react";
20
18
  import { cn } from "@/lib/utils";
19
+ import { Button } from "../../atoms";
20
+ import { TextEditor } from "../../molecules/forms/text-editor";
21
21
  function generateId() {
22
22
  return `page-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
23
23
  }
@@ -1,3 +1,3 @@
1
- export { DocumentEditor } from "./document-editor";
2
1
  export type { DocumentEditorProps, DocumentPage } from "./document-editor";
2
+ export { DocumentEditor } from "./document-editor";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/document-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/document-editor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * DraggableDashboardGrid - Organism Component
3
+ *
4
+ * Grid principal com drag and drop para dashboards.
5
+ * Componente genérico e reutilizável para qualquer dashboard.
6
+ */
7
+ import type * as React from "react";
8
+ import type { GridConfig, WidgetLayout } from "@/types/dashboard";
9
+ export interface DraggableDashboardGridProps {
10
+ /**
11
+ * Widgets a serem renderizados
12
+ */
13
+ widgets: WidgetLayout[];
14
+ /**
15
+ * Renderiza o conteúdo de um widget
16
+ */
17
+ renderWidget: (widget: WidgetLayout) => React.ReactNode;
18
+ /**
19
+ * Se está em modo de edição
20
+ */
21
+ isEditMode: boolean;
22
+ /**
23
+ * Configuração do grid (opcional, usa defaults se não fornecido)
24
+ */
25
+ gridConfig?: GridConfig;
26
+ /**
27
+ * Callback quando widget é configurado
28
+ */
29
+ onConfigureWidget?: (widgetId: string) => void;
30
+ /**
31
+ * Callback quando widget é removido
32
+ */
33
+ onRemoveWidget?: (widgetId: string) => void;
34
+ /**
35
+ * Callback quando widget é redimensionado
36
+ */
37
+ onResizeWidget?: (widgetId: string, w: number, h: number) => void;
38
+ /**
39
+ * Callback quando widget é adicionado da paleta
40
+ */
41
+ onAddWidget?: (widgetType: string, defaultSize: {
42
+ w: number;
43
+ h: number;
44
+ }) => void;
45
+ /**
46
+ * Callback quando widget é movido
47
+ */
48
+ onMoveWidget?: (widgetId: string, x: number, y: number) => void;
49
+ /**
50
+ * Empty state customizável (opcional)
51
+ */
52
+ emptyState?: React.ReactNode;
53
+ /**
54
+ * Classe CSS adicional
55
+ */
56
+ className?: string;
57
+ }
58
+ /**
59
+ * Grid principal com drag and drop
60
+ *
61
+ * Componente genérico que gerencia um grid de widgets com funcionalidades
62
+ * de drag and drop, redimensionamento e edição.
63
+ */
64
+ export declare function DraggableDashboardGrid({ widgets, renderWidget, isEditMode, gridConfig, onConfigureWidget, onRemoveWidget, onResizeWidget, onAddWidget, onMoveWidget, emptyState, className, }: DraggableDashboardGridProps): import("react/jsx-runtime").JSX.Element;
65
+ //# sourceMappingURL=draggable-dashboard-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draggable-dashboard-grid.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;IAExD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAElE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAElF;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhE;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,GACV,EAAE,2BAA2B,2CAiN7B"}
@@ -0,0 +1,124 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { closestCenter, DndContext, DragOverlay, KeyboardSensor, PointerSensor, useDroppable, useSensor, useSensors, } from "@dnd-kit/core";
3
+ import { useDashboardLayout } from "@flowtomic/logic";
4
+ import { useEffect, useMemo, useState } from "react";
5
+ import { DraggableWidget } from "@/components/molecules/draggable-widget";
6
+ import { cn } from "@/lib/utils";
7
+ /**
8
+ * Grid principal com drag and drop
9
+ *
10
+ * Componente genérico que gerencia um grid de widgets com funcionalidades
11
+ * de drag and drop, redimensionamento e edição.
12
+ */
13
+ export function DraggableDashboardGrid({ widgets, renderWidget, isEditMode, gridConfig, onConfigureWidget, onRemoveWidget, onResizeWidget, onAddWidget, onMoveWidget, emptyState, className, }) {
14
+ // Normaliza gridConfig com defaults
15
+ const normalizedGridConfig = useMemo(() => ({
16
+ columns: 12,
17
+ cellSize: 50,
18
+ gap: 16,
19
+ ...gridConfig,
20
+ }), [gridConfig]);
21
+ // Estado local para gerenciar layout (sincroniza com props)
22
+ const [localWidgets, setLocalWidgets] = useState(widgets);
23
+ // Sincroniza estado local com props externas
24
+ useEffect(() => {
25
+ setLocalWidgets(widgets);
26
+ }, [widgets]);
27
+ // Hook headless para lógica de layout
28
+ const { getWidgetGridPosition, moveWidget: moveWidgetLayout, resizeWidget: resizeWidgetLayout, } = useDashboardLayout({
29
+ widgetsLayout: localWidgets,
30
+ gridConfig: normalizedGridConfig,
31
+ onUpdateLayout: (layout) => {
32
+ setLocalWidgets(layout);
33
+ // Chama callback externo se fornecido
34
+ if (onMoveWidget) {
35
+ layout.forEach((w) => {
36
+ const original = widgets.find((ow) => ow.id === w.id);
37
+ if (original && (original.x !== w.x || original.y !== w.y)) {
38
+ onMoveWidget(w.id, w.x, w.y);
39
+ }
40
+ });
41
+ }
42
+ },
43
+ });
44
+ const [activeId, setActiveId] = useState(null);
45
+ // Configura sensores para drag and drop
46
+ const sensors = useSensors(useSensor(PointerSensor, {
47
+ activationConstraint: {
48
+ distance: 8, // Requer 8px de movimento antes de iniciar drag
49
+ },
50
+ }), useSensor(KeyboardSensor));
51
+ // Widget ativo sendo arrastado
52
+ const activeWidget = useMemo(() => {
53
+ return localWidgets.find((w) => w.id === activeId) || null;
54
+ }, [localWidgets, activeId]);
55
+ const handleDragStart = (event) => {
56
+ setActiveId(event.active.id);
57
+ };
58
+ const handleDragMove = (event) => {
59
+ if (!isEditMode || !activeId)
60
+ return;
61
+ const { delta } = event;
62
+ const activeWidget = localWidgets.find((w) => w.id === activeId);
63
+ if (!activeWidget)
64
+ return;
65
+ // Calcula nova posição baseada no delta do movimento
66
+ // Usa o tamanho da célula do grid para snap to grid
67
+ const cellSize = (normalizedGridConfig.cellSize || 50) + (normalizedGridConfig.gap || 16);
68
+ // Calcula delta em unidades de grid (snap to grid)
69
+ const deltaX = Math.round(delta.x / cellSize);
70
+ const deltaY = Math.round(delta.y / cellSize);
71
+ // Se não houver movimento significativo, não atualiza
72
+ if (deltaX === 0 && deltaY === 0)
73
+ return;
74
+ const newX = Math.max(0, Math.min(normalizedGridConfig.columns - activeWidget.w, activeWidget.x + deltaX));
75
+ const newY = Math.max(0, activeWidget.y + deltaY);
76
+ // Valida limites do grid
77
+ if (newX + activeWidget.w > normalizedGridConfig.columns)
78
+ return;
79
+ // Move widget para nova posição apenas se mudou
80
+ if (newX !== activeWidget.x || newY !== activeWidget.y) {
81
+ moveWidgetLayout(activeWidget.id, newX, newY);
82
+ }
83
+ };
84
+ const handleDragEnd = (event) => {
85
+ const { active, over } = event;
86
+ // Se arrastou da paleta para o grid
87
+ if (active.data.current?.type === "palette-widget" && over) {
88
+ const widgetType = active.data.current.widgetType;
89
+ const defaultSize = active.data.current.defaultSize;
90
+ // Adiciona novo widget na próxima posição disponível
91
+ onAddWidget?.(widgetType, defaultSize);
92
+ }
93
+ setActiveId(null);
94
+ };
95
+ const handleDragCancel = () => {
96
+ setActiveId(null);
97
+ };
98
+ const handleResize = (widgetId, w, h) => {
99
+ resizeWidgetLayout(widgetId, w, h);
100
+ onResizeWidget?.(widgetId, w, h);
101
+ };
102
+ // Droppable area para receber widgets da paleta
103
+ const { setNodeRef: setDroppableRef } = useDroppable({
104
+ id: "dashboard-grid",
105
+ data: {
106
+ type: "grid",
107
+ },
108
+ });
109
+ // Empty state apenas quando está em modo de edição e não há widgets
110
+ if (localWidgets.length === 0 && isEditMode) {
111
+ if (emptyState) {
112
+ return _jsx(_Fragment, { children: emptyState });
113
+ }
114
+ return (_jsxs("div", { className: "flex flex-col items-center justify-center min-h-[400px] p-8 text-center", children: [_jsx("div", { className: "mb-4", children: _jsx("svg", { className: "w-24 h-24 text-muted-foreground mx-auto", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" }) }) }), _jsx("h3", { className: "text-xl font-semibold text-foreground mb-2", children: "Nenhum widget configurado" }), _jsx("p", { className: "text-muted-foreground mb-6 max-w-md", children: "Arraste widgets da paleta para come\u00E7ar a personalizar seu dashboard." })] }));
115
+ }
116
+ return (_jsxs(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragStart: handleDragStart, onDragMove: handleDragMove, onDragEnd: handleDragEnd, onDragCancel: handleDragCancel, children: [_jsx("div", { ref: setDroppableRef, className: cn(className), style: {
117
+ display: "grid",
118
+ gridTemplateColumns: `repeat(${normalizedGridConfig.columns}, minmax(0, 1fr))`,
119
+ gap: `${normalizedGridConfig.gap}px`,
120
+ }, children: localWidgets.map((widget) => {
121
+ const gridPosition = getWidgetGridPosition(widget);
122
+ return (_jsx(DraggableWidget, { widgetId: widget.id, widgetType: widget.type, isEditMode: isEditMode, gridPosition: gridPosition, currentWidth: widget.w, currentHeight: widget.h, cellSize: normalizedGridConfig.cellSize, gap: normalizedGridConfig.gap, onConfigure: onConfigureWidget, onRemove: onRemoveWidget, onResize: handleResize, children: renderWidget(widget) }, widget.id));
123
+ }) }), _jsx(DragOverlay, { children: activeWidget && _jsx("div", { className: "opacity-50", children: renderWidget(activeWidget) }) })] }));
124
+ }
@@ -0,0 +1,3 @@
1
+ export type { DraggableDashboardGridProps } from "./draggable-dashboard-grid";
2
+ export { DraggableDashboardGrid } from "./draggable-dashboard-grid";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/draggable-dashboard-grid/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ export { DraggableDashboardGrid } from "./draggable-dashboard-grid";