@frontify/guideline-blocks-settings 0.32.1 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/CHANGELOG.md +147 -0
  2. package/dist/components/Attachments/AttachmentItem.es.js +128 -109
  3. package/dist/components/Attachments/AttachmentItem.es.js.map +1 -1
  4. package/dist/components/Attachments/Attachments.es.js +9 -1
  5. package/dist/components/Attachments/Attachments.es.js.map +1 -1
  6. package/dist/components/Attachments/AttachmentsButtonTrigger.es.js +17 -9
  7. package/dist/components/Attachments/AttachmentsButtonTrigger.es.js.map +1 -1
  8. package/dist/components/BlockItemWrapper/BlockItemWrapper.es.js +38 -44
  9. package/dist/components/BlockItemWrapper/BlockItemWrapper.es.js.map +1 -1
  10. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.es.js +33 -0
  11. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.es.js.map +1 -0
  12. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.es.js +26 -0
  13. package/dist/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.es.js.map +1 -0
  14. package/dist/components/BlockItemWrapper/Toolbar/BaseToolbarButton.es.js +28 -0
  15. package/dist/components/BlockItemWrapper/Toolbar/BaseToolbarButton.es.js.map +1 -0
  16. package/dist/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.es.js +35 -0
  17. package/dist/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.es.js.map +1 -0
  18. package/dist/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.es.js +44 -0
  19. package/dist/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.es.js.map +1 -0
  20. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.es.js +25 -0
  21. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.es.js.map +1 -0
  22. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.es.js +29 -0
  23. package/dist/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.es.js.map +1 -0
  24. package/dist/components/BlockItemWrapper/Toolbar/Toolbar.es.js +11 -112
  25. package/dist/components/BlockItemWrapper/Toolbar/Toolbar.es.js.map +1 -1
  26. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.es.js +12 -0
  27. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.es.js.map +1 -0
  28. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButtonTooltip.es.js +20 -0
  29. package/dist/components/BlockItemWrapper/Toolbar/ToolbarButtonTooltip.es.js.map +1 -0
  30. package/dist/components/BlockItemWrapper/Toolbar/context/DragPreviewContext.es.js +11 -0
  31. package/dist/components/BlockItemWrapper/Toolbar/context/DragPreviewContext.es.js.map +1 -0
  32. package/dist/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.es.js +18 -0
  33. package/dist/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.es.js.map +1 -0
  34. package/dist/components/BlockItemWrapper/Toolbar/helpers.es.js +1 -1
  35. package/dist/components/BlockItemWrapper/Toolbar/helpers.es.js.map +1 -1
  36. package/dist/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.es.js +18 -0
  37. package/dist/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.es.js.map +1 -0
  38. package/dist/helpers/mapColorPalettes.es.js +20 -8
  39. package/dist/helpers/mapColorPalettes.es.js.map +1 -1
  40. package/dist/index.cjs.js +3 -3
  41. package/dist/index.cjs.js.map +1 -1
  42. package/dist/index.d.ts +92 -27
  43. package/dist/index.es.js +205 -187
  44. package/dist/index.es.js.map +1 -1
  45. package/dist/index.umd.js +3 -3
  46. package/dist/index.umd.js.map +1 -1
  47. package/dist/styles.css +1 -1
  48. package/package.json +4 -2
  49. package/setupTests.ts +7 -2
  50. package/src/components/Attachments/AttachmentItem.tsx +21 -0
  51. package/src/components/Attachments/Attachments.spec.ct.tsx +20 -1
  52. package/src/components/Attachments/Attachments.tsx +8 -4
  53. package/src/components/Attachments/AttachmentsButtonTrigger.tsx +11 -3
  54. package/src/components/Attachments/types.ts +4 -2
  55. package/src/components/BlockItemWrapper/BlockItemWrapper.spec.ct.tsx +37 -38
  56. package/src/components/BlockItemWrapper/BlockItemWrapper.tsx +44 -48
  57. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.spec.tsx +96 -0
  58. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButton.tsx +42 -0
  59. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.spec.tsx +44 -0
  60. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/AttachmentsToolbarButtonTrigger.tsx +24 -0
  61. package/src/components/BlockItemWrapper/Toolbar/AttachmentsToolbarButton/index.ts +3 -0
  62. package/src/components/BlockItemWrapper/Toolbar/BaseToolbarButton.spec.tsx +40 -0
  63. package/src/components/BlockItemWrapper/Toolbar/BaseToolbarButton.tsx +37 -0
  64. package/src/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.spec.tsx +89 -0
  65. package/src/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/DragHandleToolbarButton.tsx +40 -0
  66. package/src/components/BlockItemWrapper/Toolbar/DragHandleToolbarButton/index.ts +3 -0
  67. package/src/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.spec.tsx +140 -0
  68. package/src/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/FlyoutToolbarButton.tsx +61 -0
  69. package/src/components/BlockItemWrapper/Toolbar/FlyoutToolbarButton/index.ts +3 -0
  70. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.spec.tsx +77 -0
  71. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/MenuToolbarButton.tsx +30 -0
  72. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.spec.tsx +63 -0
  73. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/ToolbarFlyoutMenu.tsx +40 -0
  74. package/src/components/BlockItemWrapper/Toolbar/MenuToolbarButton/index.ts +3 -0
  75. package/src/components/BlockItemWrapper/Toolbar/Toolbar.spec.tsx +189 -57
  76. package/src/components/BlockItemWrapper/Toolbar/Toolbar.tsx +29 -126
  77. package/src/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.spec.tsx +70 -0
  78. package/src/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.tsx +19 -0
  79. package/src/components/BlockItemWrapper/Toolbar/ToolbarButton/index.ts +3 -0
  80. package/src/components/BlockItemWrapper/Toolbar/ToolbarButtonTooltip.tsx +25 -0
  81. package/src/components/BlockItemWrapper/Toolbar/context/DragPreviewContext.tsx +15 -0
  82. package/src/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.tsx +25 -0
  83. package/src/components/BlockItemWrapper/Toolbar/context/index.ts +4 -0
  84. package/src/components/BlockItemWrapper/Toolbar/helpers.ts +1 -1
  85. package/src/components/BlockItemWrapper/Toolbar/hooks/index.ts +3 -0
  86. package/src/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.spec.tsx +59 -0
  87. package/src/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.ts +24 -0
  88. package/src/components/BlockItemWrapper/Toolbar/index.ts +6 -0
  89. package/src/components/BlockItemWrapper/Toolbar/types.ts +10 -30
  90. package/src/components/BlockItemWrapper/types.ts +1 -2
  91. package/src/helpers/mapColorPalettes.spec.ts +14 -113
  92. package/src/helpers/mapColorPalettes.ts +51 -8
  93. package/src/hooks/useAttachments.spec.tsx +1 -0
  94. package/tsconfig.json +1 -1
  95. package/dist/components/BlockItemWrapper/Toolbar/ToolbarAttachments.es.js +0 -27
  96. package/dist/components/BlockItemWrapper/Toolbar/ToolbarAttachments.es.js.map +0 -1
  97. package/dist/components/BlockItemWrapper/Toolbar/ToolbarAttachmentsTrigger.es.js +0 -12
  98. package/dist/components/BlockItemWrapper/Toolbar/ToolbarAttachmentsTrigger.es.js.map +0 -1
  99. package/src/components/BlockItemWrapper/Toolbar/ToolbarAttachments.tsx +0 -29
  100. package/src/components/BlockItemWrapper/Toolbar/ToolbarAttachmentsTrigger.tsx +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.es.js","sources":["../../../../src/components/BlockItemWrapper/Toolbar/Toolbar.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {\n ActionMenu,\n Flyout,\n IconDotsHorizontal16,\n MenuItemContentSize,\n LegacyTooltip as Tooltip,\n TooltipPosition,\n} from '@frontify/fondue';\n\nimport { DEFAULT_DRAGGING_TOOLTIP, DEFAULT_DRAG_TOOLTIP } from '../constants';\n\nimport { ToolbarSegment } from './ToolbarSegment';\nimport { ToolbarAttachments } from './ToolbarAttachments';\nimport { getToolbarButtonClassNames } from './helpers';\nimport { type ToolbarProps } from './types';\n\nexport const Toolbar = ({ items, flyoutMenu, attachments, isDragging }: ToolbarProps) => {\n return (\n <div\n data-test-id=\"block-item-wrapper-toolbar\"\n className=\"tw-rounded-md tw-bg-base tw-border tw-border-line-strong tw-divide-x tw-divide-line-strong tw-shadow-lg tw-flex tw-flex-none tw-items-center tw-isolate\"\n >\n {attachments.isEnabled && (\n <ToolbarSegment>\n <ToolbarAttachments\n isOpen={attachments.isOpen && !isDragging}\n onOpenChange={attachments.onOpenChange}\n />\n </ToolbarSegment>\n )}\n <ToolbarSegment>\n {items.map((item, i) =>\n 'draggableProps' in item ? (\n <Tooltip\n key={i}\n withArrow\n hoverDelay={0}\n enterDelay={300}\n open={isDragging}\n position={TooltipPosition.Top}\n content={\n <div>\n {isDragging ? DEFAULT_DRAGGING_TOOLTIP : item.tooltip ?? DEFAULT_DRAG_TOOLTIP}\n </div>\n }\n triggerElement={\n <button\n ref={item.setActivatorNodeRef}\n data-test-id=\"block-item-wrapper-toolbar-btn\"\n {...item.draggableProps}\n className={getToolbarButtonClassNames('grab', isDragging)}\n >\n {item.icon}\n </button>\n }\n />\n ) : (\n <Tooltip\n key={i}\n withArrow\n enterDelay={300}\n hoverDelay={0}\n disabled={isDragging}\n position={TooltipPosition.Top}\n content={<div>{item.tooltip ?? ''}</div>}\n triggerElement={\n <button\n data-test-id=\"block-item-wrapper-toolbar-btn\"\n onClick={item.onClick}\n className={getToolbarButtonClassNames('pointer')}\n >\n {item.icon}\n </button>\n }\n />\n ),\n )}\n {flyoutMenu.items.length > 0 && (\n <Tooltip\n withArrow\n hoverDelay={0}\n enterDelay={300}\n disabled={isDragging || flyoutMenu.isOpen}\n position={TooltipPosition.Top}\n content={<div>Options</div>}\n triggerElement={\n <div className=\"tw-flex tw-flex-shrink-0 tw-flex-1 tw-h-6 tw-relative\">\n <Flyout\n isOpen={flyoutMenu.isOpen && !isDragging}\n legacyFooter={false}\n fitContent\n hug={false}\n onOpenChange={flyoutMenu.onOpenChange}\n trigger={\n <div\n data-test-id=\"block-item-wrapper-toolbar-flyout\"\n className={getToolbarButtonClassNames(\n 'pointer',\n flyoutMenu.isOpen && !isDragging,\n )}\n >\n <IconDotsHorizontal16 />\n </div>\n }\n >\n <ActionMenu\n menuBlocks={flyoutMenu.items.map((block, blockIndex) => ({\n id: blockIndex.toString(),\n menuItems: block.map((item, itemIndex) => ({\n id: blockIndex.toString() + itemIndex.toString(),\n size: MenuItemContentSize.XSmall,\n title: item.title,\n style: item.style,\n onClick: () => {\n flyoutMenu.onOpenChange(false);\n item.onClick();\n },\n initialValue: true,\n decorator: <div className=\"tw-mr-2\">{item.icon}</div>,\n })),\n }))}\n />\n </Flyout>\n </div>\n }\n />\n )}\n </ToolbarSegment>\n </div>\n );\n};\n"],"names":["Toolbar","items","flyoutMenu","attachments","isDragging","jsxs","ToolbarSegment","jsx","ToolbarAttachments","item","i","Tooltip","TooltipPosition","DEFAULT_DRAGGING_TOOLTIP","DEFAULT_DRAG_TOOLTIP","getToolbarButtonClassNames","Flyout","IconDotsHorizontal16","ActionMenu","block","blockIndex","itemIndex","MenuItemContentSize"],"mappings":"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"}
1
+ {"version":3,"file":"Toolbar.es.js","sources":["../../../../src/components/BlockItemWrapper/Toolbar/Toolbar.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ToolbarSegment } from './ToolbarSegment';\nimport { AttachmentsToolbarButton } from './AttachmentsToolbarButton';\nimport { type ToolbarProps } from './types';\nimport { ToolbarButton } from './ToolbarButton';\nimport { DragHandleToolbarButton } from './DragHandleToolbarButton';\nimport { FlyoutToolbarButton } from './FlyoutToolbarButton';\nimport { MenuToolbarButton } from './MenuToolbarButton';\n\nexport const Toolbar = ({ items, attachments }: ToolbarProps) => (\n <div\n data-test-id=\"block-item-wrapper-toolbar\"\n className=\"tw-rounded-md tw-bg-base tw-border tw-border-line-strong tw-divide-x tw-divide-line-strong tw-shadow-lg tw-flex tw-flex-none tw-items-center tw-isolate\"\n >\n {attachments.isEnabled && (\n <ToolbarSegment>\n <AttachmentsToolbarButton />\n </ToolbarSegment>\n )}\n <ToolbarSegment>\n {items.map((item) => {\n if (item.type === 'dragHandle') {\n return <DragHandleToolbarButton key={item.tooltip + item.type} {...item} />;\n }\n if (item.type === 'menu') {\n return <MenuToolbarButton key={item.tooltip + item.type} {...item} />;\n }\n if (item.type === 'flyout') {\n return <FlyoutToolbarButton key={item.tooltip + item.type} {...item} />;\n }\n return <ToolbarButton key={item.tooltip + item.type} {...item} />;\n })}\n </ToolbarSegment>\n </div>\n);\n"],"names":["Toolbar","items","attachments","jsxs","jsx","ToolbarSegment","AttachmentsToolbarButton","item","DragHandleToolbarButton","MenuToolbarButton","FlyoutToolbarButton","ToolbarButton"],"mappings":";;;;;;;AAUO,MAAMA,IAAU,CAAC,EAAE,OAAAC,GAAO,aAAAC,EAC7B,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,gBAAa;AAAA,IACb,WAAU;AAAA,IAET,UAAA;AAAA,MAAAD,EAAY,aACT,gBAAAE,EAACC,GACG,EAAA,UAAA,gBAAAD,EAACE,IAAyB,CAAA,GAC9B;AAAA,MAEH,gBAAAF,EAAAC,GAAA,EACI,UAAMJ,EAAA,IAAI,CAACM,MACJA,EAAK,SAAS,iCACNC,GAAwD,EAAA,GAAGD,KAA9BA,EAAK,UAAUA,EAAK,IAAgB,IAEzEA,EAAK,SAAS,2BACNE,GAAkD,EAAA,GAAGF,KAA9BA,EAAK,UAAUA,EAAK,IAAgB,IAEnEA,EAAK,SAAS,6BACNG,GAAoD,EAAA,GAAGH,KAA9BA,EAAK,UAAUA,EAAK,IAAgB,sBAEjEI,GAA8C,EAAA,GAAGJ,KAA9BA,EAAK,UAAUA,EAAK,IAAgB,CAClE,GACL;AAAA,IAAA;AAAA,EAAA;AACJ;"}
@@ -0,0 +1,12 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { useDragPreviewContext as n } from "../context/DragPreviewContext.es.js";
3
+ import { BaseToolbarButton as a } from "../BaseToolbarButton.es.js";
4
+ import { ToolbarButtonTooltip as l } from "../ToolbarButtonTooltip.es.js";
5
+ const c = ({ tooltip: t, icon: r, onClick: e }) => {
6
+ const i = n();
7
+ return /* @__PURE__ */ o(l, { disabled: i, content: t ?? "", children: /* @__PURE__ */ o(a, { "data-test-id": "block-item-wrapper-toolbar-btn", onClick: e, children: r }) });
8
+ };
9
+ export {
10
+ c as ToolbarButton
11
+ };
12
+ //# sourceMappingURL=ToolbarButton.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarButton.es.js","sources":["../../../../../src/components/BlockItemWrapper/Toolbar/ToolbarButton/ToolbarButton.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useDragPreviewContext } from '../context/DragPreviewContext';\nimport { BaseToolbarButton } from '../BaseToolbarButton';\nimport { ToolbarButtonTooltip } from '../ToolbarButtonTooltip';\n\nexport type ToolbarButtonProps = { icon: JSX.Element; tooltip?: string; onClick: () => void };\n\nexport const ToolbarButton = ({ tooltip, icon, onClick }: ToolbarButtonProps) => {\n const isDragPreview = useDragPreviewContext();\n\n return (\n <ToolbarButtonTooltip disabled={isDragPreview} content={tooltip ?? ''}>\n <BaseToolbarButton data-test-id=\"block-item-wrapper-toolbar-btn\" onClick={onClick}>\n {icon}\n </BaseToolbarButton>\n </ToolbarButtonTooltip>\n );\n};\n"],"names":["ToolbarButton","tooltip","icon","onClick","isDragPreview","useDragPreviewContext","jsx","ToolbarButtonTooltip","BaseToolbarButton"],"mappings":";;;;AAQO,MAAMA,IAAgB,CAAC,EAAE,SAAAC,GAAS,MAAAC,GAAM,SAAAC,QAAkC;AAC7E,QAAMC,IAAgBC;AAEtB,SACK,gBAAAC,EAAAC,GAAA,EAAqB,UAAUH,GAAe,SAASH,KAAW,IAC/D,UAAA,gBAAAK,EAACE,GAAkB,EAAA,gBAAa,kCAAiC,SAAAL,GAC5D,aACL,EACJ,CAAA;AAER;"}
@@ -0,0 +1,20 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { LegacyTooltip as l, TooltipPosition as n } from "@frontify/fondue";
3
+ const m = ({ open: t, content: i, children: r, disabled: e }) => /* @__PURE__ */ o(
4
+ l,
5
+ {
6
+ withArrow: !0,
7
+ hoverDelay: 0,
8
+ enterDelay: 300,
9
+ open: t,
10
+ disabled: e,
11
+ position: n.Top,
12
+ content: /* @__PURE__ */ o("div", { children: i }),
13
+ triggerElement: r,
14
+ "data-test-id": "toolbar-button-tooltip"
15
+ }
16
+ );
17
+ export {
18
+ m as ToolbarButtonTooltip
19
+ };
20
+ //# sourceMappingURL=ToolbarButtonTooltip.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarButtonTooltip.es.js","sources":["../../../../src/components/BlockItemWrapper/Toolbar/ToolbarButtonTooltip.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { LegacyTooltip as Tooltip, TooltipPosition } from '@frontify/fondue';\nimport { ReactElement, ReactNode } from 'react';\n\ntype ToolbarButtonTooltipProps = {\n content: ReactNode;\n children: ReactElement;\n open?: boolean;\n disabled?: boolean;\n};\n\nexport const ToolbarButtonTooltip = ({ open, content, children, disabled }: ToolbarButtonTooltipProps) => (\n <Tooltip\n withArrow\n hoverDelay={0}\n enterDelay={300}\n open={open}\n disabled={disabled}\n position={TooltipPosition.Top}\n content={<div>{content}</div>}\n triggerElement={children}\n data-test-id=\"toolbar-button-tooltip\"\n />\n);\n"],"names":["ToolbarButtonTooltip","open","content","children","disabled","jsx","Tooltip","TooltipPosition"],"mappings":";;AAYO,MAAMA,IAAuB,CAAC,EAAE,MAAAC,GAAM,SAAAC,GAAS,UAAAC,GAAU,UAAAC,QAC5D,gBAAAC;AAAA,EAACC;AAAAA,EAAA;AAAA,IACG,WAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,MAAAL;AAAA,IACA,UAAAG;AAAA,IACA,UAAUG,EAAgB;AAAA,IAC1B,SAAU,gBAAAF,EAAA,OAAA,EAAK,UAAQH,EAAA,CAAA;AAAA,IACvB,gBAAgBC;AAAA,IAChB,gBAAa;AAAA,EAAA;AACjB;"}
@@ -0,0 +1,11 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { createContext as n, useContext as i } from "react";
3
+ const e = n(!1), a = ({
4
+ children: t,
5
+ isDragPreview: r
6
+ }) => /* @__PURE__ */ o(e.Provider, { value: r, children: t }), v = () => i(e);
7
+ export {
8
+ a as DragPreviewContextProvider,
9
+ v as useDragPreviewContext
10
+ };
11
+ //# sourceMappingURL=DragPreviewContext.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DragPreviewContext.es.js","sources":["../../../../../src/components/BlockItemWrapper/Toolbar/context/DragPreviewContext.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ReactNode, createContext, useContext } from 'react';\n\nconst DragPreviewContext = createContext(false);\n\nexport const DragPreviewContextProvider = ({\n children,\n isDragPreview,\n}: {\n children: ReactNode;\n isDragPreview: boolean;\n}) => <DragPreviewContext.Provider value={isDragPreview}>{children}</DragPreviewContext.Provider>;\n\nexport const useDragPreviewContext = () => useContext(DragPreviewContext);\n"],"names":["DragPreviewContext","createContext","DragPreviewContextProvider","children","isDragPreview","useDragPreviewContext","useContext"],"mappings":";;AAIA,MAAMA,IAAqBC,EAAc,EAAK,GAEjCC,IAA6B,CAAC;AAAA,EACvC,UAAAC;AAAA,EACA,eAAAC;AACJ,wBAGOJ,EAAmB,UAAnB,EAA4B,OAAOI,GAAgB,UAAAD,GAAS,GAEtDE,IAAwB,MAAMC,EAAWN,CAAkB;"}
@@ -0,0 +1,18 @@
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { createContext as i, useMemo as l, useContext as s } from "react";
3
+ const e = i({
4
+ openFlyoutIds: [],
5
+ setOpenFlyoutIds: () => console.error("No MultiFlyoutContext Provider found")
6
+ }), C = ({
7
+ children: r,
8
+ openFlyoutIds: t,
9
+ setOpenFlyoutIds: o
10
+ }) => {
11
+ const n = l(() => ({ openFlyoutIds: t, setOpenFlyoutIds: o }), [t, o]);
12
+ return /* @__PURE__ */ u(e.Provider, { value: n, children: r });
13
+ }, c = () => s(e);
14
+ export {
15
+ C as MultiFlyoutContextProvider,
16
+ c as useMultiFlyoutContext
17
+ };
18
+ //# sourceMappingURL=MultiFlyoutContext.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiFlyoutContext.es.js","sources":["../../../../../src/components/BlockItemWrapper/Toolbar/context/MultiFlyoutContext.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Dispatch, ReactNode, SetStateAction, createContext, useContext, useMemo } from 'react';\n\nexport type MultiFlyoutContextType = {\n openFlyoutIds: string[];\n setOpenFlyoutIds: Dispatch<SetStateAction<string[]>>;\n};\n\nconst MultiFlyoutContext = createContext<MultiFlyoutContextType>({\n openFlyoutIds: [],\n setOpenFlyoutIds: () => console.error('No MultiFlyoutContext Provider found'),\n});\n\nexport const MultiFlyoutContextProvider = ({\n children,\n openFlyoutIds,\n setOpenFlyoutIds,\n}: { children: ReactNode } & MultiFlyoutContextType) => {\n const memoizedContext = useMemo(() => ({ openFlyoutIds, setOpenFlyoutIds }), [openFlyoutIds, setOpenFlyoutIds]);\n\n return <MultiFlyoutContext.Provider value={memoizedContext}>{children}</MultiFlyoutContext.Provider>;\n};\n\nexport const useMultiFlyoutContext = () => useContext(MultiFlyoutContext);\n"],"names":["MultiFlyoutContext","createContext","MultiFlyoutContextProvider","children","openFlyoutIds","setOpenFlyoutIds","memoizedContext","useMemo","useMultiFlyoutContext","useContext"],"mappings":";;AASA,MAAMA,IAAqBC,EAAsC;AAAA,EAC7D,eAAe,CAAC;AAAA,EAChB,kBAAkB,MAAM,QAAQ,MAAM,sCAAsC;AAChF,CAAC,GAEYC,IAA6B,CAAC;AAAA,EACvC,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,kBAAAC;AACJ,MAAwD;AAC9C,QAAAC,IAAkBC,EAAQ,OAAO,EAAE,eAAAH,GAAe,kBAAAC,EAAqB,IAAA,CAACD,GAAeC,CAAgB,CAAC;AAE9G,2BAAQL,EAAmB,UAAnB,EAA4B,OAAOM,GAAkB,UAAAH,EAAS,CAAA;AAC1E,GAEaK,IAAwB,MAAMC,EAAWT,CAAkB;"}
@@ -17,7 +17,7 @@ const w = (e, r) => {
17
17
  ) : t.push(
18
18
  "hover:tw-bg-box-neutral-hover active:tw-bg-box-neutral-pressed",
19
19
  "tw-text-text-weak hover:tw-text-box-neutral-inverse-hover active:tw-text-box-neutral-inverse-pressed",
20
- e === "grab" ? "tw-cursor-grab active:tw-cursor-grabbing" : "tw-cursor-pointer"
20
+ e === "grab" ? "!tw-cursor-grab active:tw-cursor-grabbing" : "tw-cursor-pointer"
21
21
  ), o(t);
22
22
  };
23
23
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.es.js","sources":["../../../../src/components/BlockItemWrapper/Toolbar/helpers.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { FOCUS_VISIBLE_STYLE } from '@frontify/fondue';\n\nimport { joinClassNames } from '../../../utilities';\n\nexport const getToolbarButtonClassNames = (cursor: 'grab' | 'pointer', forceActiveStyle?: boolean) => {\n const classNames = [\n FOCUS_VISIBLE_STYLE,\n 'tw-relative tw-inline-flex tw-items-center tw-justify-center',\n 'tw-h-6 tw-p-1',\n 'tw-rounded',\n 'tw-text-xs tw-font-medium',\n 'tw-gap-0.5',\n 'focus-visible:tw-z-10',\n ];\n\n if (forceActiveStyle) {\n classNames.push(\n 'tw-bg-box-neutral-pressed',\n 'tw-text-box-neutral-inverse-pressed',\n cursor === 'grab' ? 'tw-cursor-grabbing' : 'tw-cursor-pointer',\n );\n } else {\n classNames.push(\n 'hover:tw-bg-box-neutral-hover active:tw-bg-box-neutral-pressed',\n 'tw-text-text-weak hover:tw-text-box-neutral-inverse-hover active:tw-text-box-neutral-inverse-pressed',\n cursor === 'grab' ? 'tw-cursor-grab active:tw-cursor-grabbing' : 'tw-cursor-pointer',\n );\n }\n\n return joinClassNames(classNames);\n};\n"],"names":["getToolbarButtonClassNames","cursor","forceActiveStyle","classNames","FOCUS_VISIBLE_STYLE","joinClassNames"],"mappings":";;AAMa,MAAAA,IAA6B,CAACC,GAA4BC,MAA+B;AAClG,QAAMC,IAAa;AAAA,IACfC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGJ,SAAIF,IACWC,EAAA;AAAA,IACP;AAAA,IACA;AAAA,IACAF,MAAW,SAAS,uBAAuB;AAAA,EAAA,IAGpCE,EAAA;AAAA,IACP;AAAA,IACA;AAAA,IACAF,MAAW,SAAS,6CAA6C;AAAA,EAAA,GAIlEI,EAAeF,CAAU;AACpC;"}
1
+ {"version":3,"file":"helpers.es.js","sources":["../../../../src/components/BlockItemWrapper/Toolbar/helpers.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { FOCUS_VISIBLE_STYLE } from '@frontify/fondue';\n\nimport { joinClassNames } from '../../../utilities';\n\nexport const getToolbarButtonClassNames = (cursor: 'grab' | 'pointer', forceActiveStyle?: boolean) => {\n const classNames = [\n FOCUS_VISIBLE_STYLE,\n 'tw-relative tw-inline-flex tw-items-center tw-justify-center',\n 'tw-h-6 tw-p-1',\n 'tw-rounded',\n 'tw-text-xs tw-font-medium',\n 'tw-gap-0.5',\n 'focus-visible:tw-z-10',\n ];\n\n if (forceActiveStyle) {\n classNames.push(\n 'tw-bg-box-neutral-pressed',\n 'tw-text-box-neutral-inverse-pressed',\n cursor === 'grab' ? 'tw-cursor-grabbing' : 'tw-cursor-pointer',\n );\n } else {\n classNames.push(\n 'hover:tw-bg-box-neutral-hover active:tw-bg-box-neutral-pressed',\n 'tw-text-text-weak hover:tw-text-box-neutral-inverse-hover active:tw-text-box-neutral-inverse-pressed',\n cursor === 'grab' ? '!tw-cursor-grab active:tw-cursor-grabbing' : 'tw-cursor-pointer',\n );\n }\n\n return joinClassNames(classNames);\n};\n"],"names":["getToolbarButtonClassNames","cursor","forceActiveStyle","classNames","FOCUS_VISIBLE_STYLE","joinClassNames"],"mappings":";;AAMa,MAAAA,IAA6B,CAACC,GAA4BC,MAA+B;AAClG,QAAMC,IAAa;AAAA,IACfC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGJ,SAAIF,IACWC,EAAA;AAAA,IACP;AAAA,IACA;AAAA,IACAF,MAAW,SAAS,uBAAuB;AAAA,EAAA,IAGpCE,EAAA;AAAA,IACP;AAAA,IACA;AAAA,IACAF,MAAW,SAAS,8CAA8C;AAAA,EAAA,GAInEI,EAAeF,CAAU;AACpC;"}
@@ -0,0 +1,18 @@
1
+ import { useCallback as l } from "react";
2
+ import { useMultiFlyoutContext as p } from "../context/MultiFlyoutContext.es.js";
3
+ const m = (e) => {
4
+ const { openFlyoutIds: s, setOpenFlyoutIds: t } = p(), o = l(
5
+ (r) => {
6
+ t((u) => {
7
+ const n = u.filter((i) => i !== e);
8
+ return r ? [...n, e] : n;
9
+ });
10
+ },
11
+ [e, t]
12
+ );
13
+ return { isOpen: s.includes(e), onOpenChange: o };
14
+ };
15
+ export {
16
+ m as useMultiFlyoutState
17
+ };
18
+ //# sourceMappingURL=useMultiFlyoutState.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiFlyoutState.es.js","sources":["../../../../../src/components/BlockItemWrapper/Toolbar/hooks/useMultiFlyoutState.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useCallback } from 'react';\nimport { useMultiFlyoutContext } from '../context/MultiFlyoutContext';\n\nexport const useMultiFlyoutState = (flyoutId: string) => {\n const { openFlyoutIds, setOpenFlyoutIds } = useMultiFlyoutContext();\n\n const onOpenChange = useCallback(\n (isFlyoutOpen: boolean) => {\n setOpenFlyoutIds((currentIds) => {\n const filteredIds = currentIds.filter((id) => id !== flyoutId);\n if (!isFlyoutOpen) {\n return filteredIds;\n } else {\n return [...filteredIds, flyoutId];\n }\n });\n },\n [flyoutId, setOpenFlyoutIds],\n );\n\n return { isOpen: openFlyoutIds.includes(flyoutId), onOpenChange };\n};\n"],"names":["useMultiFlyoutState","flyoutId","openFlyoutIds","setOpenFlyoutIds","useMultiFlyoutContext","onOpenChange","useCallback","isFlyoutOpen","currentIds","filteredIds","id"],"mappings":";;AAKa,MAAAA,IAAsB,CAACC,MAAqB;AACrD,QAAM,EAAE,eAAAC,GAAe,kBAAAC,EAAiB,IAAIC,EAAsB,GAE5DC,IAAeC;AAAA,IACjB,CAACC,MAA0B;AACvB,MAAAJ,EAAiB,CAACK,MAAe;AAC7B,cAAMC,IAAcD,EAAW,OAAO,CAACE,MAAOA,MAAOT,CAAQ;AAC7D,eAAKM,IAGM,CAAC,GAAGE,GAAaR,CAAQ,IAFzBQ;AAAA,MAGX,CACH;AAAA,IACL;AAAA,IACA,CAACR,GAAUE,CAAgB;AAAA,EAAA;AAG/B,SAAO,EAAE,QAAQD,EAAc,SAASD,CAAQ,GAAG,cAAAI;AACvD;"}
@@ -1,16 +1,28 @@
1
- const n = (a) => a.map(p), p = (a) => ({
2
- id: a.id,
3
- title: a.name,
4
- colors: a.colors.map((e) => ({
1
+ const i = (e) => e.map(n), n = (e) => ({
2
+ id: e.id,
3
+ title: e.name,
4
+ colors: e.colors.map(p)
5
+ }), t = (e) => "revision" in e, p = (e) => {
6
+ if (t(e)) {
7
+ const { title: r, revision: a } = e;
8
+ return {
9
+ alpha: a.rgba.alpha ? a.rgba.alpha / 255 : 1,
10
+ red: a.rgba.red ?? 0,
11
+ green: a.rgba.green ?? 0,
12
+ blue: a.rgba.blue ?? 0,
13
+ name: r ?? ""
14
+ };
15
+ }
16
+ return {
5
17
  alpha: e.alpha ? e.alpha / 255 : 1,
6
18
  red: e.red ?? 0,
7
19
  green: e.green ?? 0,
8
20
  blue: e.blue ?? 0,
9
21
  name: e.name ?? ""
10
- }))
11
- });
22
+ };
23
+ };
12
24
  export {
13
- p as mapAppBridgeColorPaletteToFonduePalette,
14
- n as mapAppBridgeColorPalettesToFonduePalettes
25
+ n as mapAppBridgeColorPaletteToFonduePalette,
26
+ i as mapAppBridgeColorPalettesToFonduePalettes
15
27
  };
16
28
  //# sourceMappingURL=mapColorPalettes.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapColorPalettes.es.js","sources":["../../src/helpers/mapColorPalettes.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ColorPalette } from '@frontify/app-bridge';\nimport { Palette } from '@frontify/fondue';\n\nexport const mapAppBridgeColorPalettesToFonduePalettes = (colorPalettes: ColorPalette[]): Palette[] => {\n return colorPalettes.map(mapAppBridgeColorPaletteToFonduePalette);\n};\n\nexport const mapAppBridgeColorPaletteToFonduePalette = (colorPalette: ColorPalette): Palette => {\n return {\n id: colorPalette.id,\n title: colorPalette.name,\n colors: colorPalette.colors.map((color) => ({\n alpha: color.alpha ? color.alpha / 255 : 1,\n red: color.red ?? 0,\n green: color.green ?? 0,\n blue: color.blue ?? 0,\n name: color.name ?? '',\n })),\n };\n};\n"],"names":["mapAppBridgeColorPalettesToFonduePalettes","colorPalettes","mapAppBridgeColorPaletteToFonduePalette","colorPalette","color"],"mappings":"AAKa,MAAAA,IAA4C,CAACC,MAC/CA,EAAc,IAAIC,CAAuC,GAGvDA,IAA0C,CAACC,OAC7C;AAAA,EACH,IAAIA,EAAa;AAAA,EACjB,OAAOA,EAAa;AAAA,EACpB,QAAQA,EAAa,OAAO,IAAI,CAACC,OAAW;AAAA,IACxC,OAAOA,EAAM,QAAQA,EAAM,QAAQ,MAAM;AAAA,IACzC,KAAKA,EAAM,OAAO;AAAA,IAClB,OAAOA,EAAM,SAAS;AAAA,IACtB,MAAMA,EAAM,QAAQ;AAAA,IACpB,MAAMA,EAAM,QAAQ;AAAA,EAAA,EACtB;AAAA;"}
1
+ {"version":3,"file":"mapColorPalettes.es.js","sources":["../../src/helpers/mapColorPalettes.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { ColorPalette } from '@frontify/app-bridge';\nimport { Palette } from '@frontify/fondue';\n\ntype Nullable<T> = T | null;\n\ntype V3Color = {\n id: number;\n name: Nullable<string>;\n red: Nullable<number>;\n green: Nullable<number>;\n blue: Nullable<number>;\n alpha: Nullable<number>;\n};\n\ntype V4Color = {\n id: number;\n title: Nullable<string>;\n revision: {\n rgba: {\n red: Nullable<number>;\n green: Nullable<number>;\n blue: Nullable<number>;\n alpha: Nullable<number>;\n };\n };\n};\n\ntype Color = V3Color | V4Color;\n\nexport const mapAppBridgeColorPalettesToFonduePalettes = (colorPalettes: ColorPalette[]): Palette[] => {\n return colorPalettes.map(mapAppBridgeColorPaletteToFonduePalette);\n};\nexport const mapAppBridgeColorPaletteToFonduePalette = (colorPalette: ColorPalette): Palette => {\n return {\n id: colorPalette.id,\n title: colorPalette.name,\n colors: colorPalette.colors.map(mapColor),\n };\n};\n\nconst isV4Color = (color: Color): color is V4Color => {\n return 'revision' in color;\n};\n\nconst mapColor = (color: Color) => {\n if (isV4Color(color)) {\n const { title, revision } = color;\n return {\n alpha: revision.rgba.alpha ? revision.rgba.alpha / 255 : 1,\n red: revision.rgba.red ?? 0,\n green: revision.rgba.green ?? 0,\n blue: revision.rgba.blue ?? 0,\n name: title ?? '',\n };\n }\n return {\n alpha: color.alpha ? color.alpha / 255 : 1,\n red: color.red ?? 0,\n green: color.green ?? 0,\n blue: color.blue ?? 0,\n name: color.name ?? '',\n };\n};\n"],"names":["mapAppBridgeColorPalettesToFonduePalettes","colorPalettes","mapAppBridgeColorPaletteToFonduePalette","colorPalette","mapColor","isV4Color","color","title","revision"],"mappings":"AA+Ba,MAAAA,IAA4C,CAACC,MAC/CA,EAAc,IAAIC,CAAuC,GAEvDA,IAA0C,CAACC,OAC7C;AAAA,EACH,IAAIA,EAAa;AAAA,EACjB,OAAOA,EAAa;AAAA,EACpB,QAAQA,EAAa,OAAO,IAAIC,CAAQ;AAAA,IAI1CC,IAAY,CAACC,MACR,cAAcA,GAGnBF,IAAW,CAACE,MAAiB;AAC3B,MAAAD,EAAUC,CAAK,GAAG;AACZ,UAAA,EAAE,OAAAC,GAAO,UAAAC,EAAa,IAAAF;AACrB,WAAA;AAAA,MACH,OAAOE,EAAS,KAAK,QAAQA,EAAS,KAAK,QAAQ,MAAM;AAAA,MACzD,KAAKA,EAAS,KAAK,OAAO;AAAA,MAC1B,OAAOA,EAAS,KAAK,SAAS;AAAA,MAC9B,MAAMA,EAAS,KAAK,QAAQ;AAAA,MAC5B,MAAMD,KAAS;AAAA,IAAA;AAAA,EAEvB;AACO,SAAA;AAAA,IACH,OAAOD,EAAM,QAAQA,EAAM,QAAQ,MAAM;AAAA,IACzC,KAAKA,EAAM,OAAO;AAAA,IAClB,OAAOA,EAAM,SAAS;AAAA,IACtB,MAAMA,EAAM,QAAQ;AAAA,IACpB,MAAMA,EAAM,QAAQ;AAAA,EAAA;AAE5B;"}