lkb-fields-document 1.0.0 → 1.0.1

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 (109) hide show
  1. package/component-blocks/dist/lkb-fields-document-component-blocks.cjs.d.ts +2 -2
  2. package/component-blocks/dist/lkb-fields-document-component-blocks.cjs.js +16 -306
  3. package/component-blocks/dist/lkb-fields-document-component-blocks.node.cjs.js +16 -306
  4. package/dist/lkb-fields-document.cjs.d.ts +2 -2
  5. package/dist/lkb-fields-document.cjs.js +16 -1167
  6. package/dist/lkb-fields-document.node.cjs.js +16 -1167
  7. package/package.json +6 -6
  8. package/structure-views/dist/lkb-fields-document-structure-views.cjs.d.ts +2 -2
  9. package/structure-views/dist/lkb-fields-document-structure-views.cjs.js +16 -138
  10. package/structure-views/dist/lkb-fields-document-structure-views.node.cjs.js +16 -138
  11. package/views/dist/lkb-fields-document-views.cjs.d.ts +2 -2
  12. package/views/dist/lkb-fields-document-views.cjs.js +13 -111
  13. package/views/dist/lkb-fields-document-views.node.cjs.js +13 -111
  14. package/component-blocks/dist/lkb-fields-document-component-blocks.esm.js +0 -300
  15. package/component-blocks/dist/lkb-fields-document-component-blocks.node.esm.js +0 -300
  16. package/dist/Cell-0ac0ac66.node.cjs.js +0 -21
  17. package/dist/Cell-242f7404.esm.js +0 -17
  18. package/dist/Cell-3103f73d.node.esm.js +0 -17
  19. package/dist/Cell-bfb56d74.cjs.js +0 -21
  20. package/dist/Field-0e0f75ed.node.cjs.js +0 -1628
  21. package/dist/Field-28177061.cjs.js +0 -1628
  22. package/dist/Field-35b79e6b.node.esm.js +0 -1619
  23. package/dist/Field-92d13205.esm.js +0 -1619
  24. package/dist/api-2f524611.esm.js +0 -502
  25. package/dist/api-73636987.cjs.js +0 -506
  26. package/dist/api-8e2b20b8.node.cjs.js +0 -506
  27. package/dist/api-c32e360e.node.esm.js +0 -502
  28. package/dist/callout-ui-2aded278.cjs.js +0 -131
  29. package/dist/callout-ui-3e5ca544.node.esm.js +0 -126
  30. package/dist/callout-ui-8b5f2376.esm.js +0 -126
  31. package/dist/callout-ui-ad50f301.node.cjs.js +0 -131
  32. package/dist/declarations/src/component-blocks.d.ts +0 -4
  33. package/dist/declarations/src/component-blocks.d.ts.map +0 -1
  34. package/dist/declarations/src/document-editor/component-blocks/api.d.ts +0 -120
  35. package/dist/declarations/src/document-editor/component-blocks/api.d.ts.map +0 -1
  36. package/dist/declarations/src/document-editor/component-blocks/types.d.ts +0 -241
  37. package/dist/declarations/src/document-editor/component-blocks/types.d.ts.map +0 -1
  38. package/dist/declarations/src/document-editor/toolset/relationship/relationship-shared.d.ts +0 -10
  39. package/dist/declarations/src/document-editor/toolset/relationship/relationship-shared.d.ts.map +0 -1
  40. package/dist/declarations/src/index.d.ts +0 -7
  41. package/dist/declarations/src/index.d.ts.map +0 -1
  42. package/dist/declarations/src/my-component-blocks/index.d.ts +0 -46
  43. package/dist/declarations/src/my-component-blocks/index.d.ts.map +0 -1
  44. package/dist/declarations/src/structure/Cell.d.ts +0 -5
  45. package/dist/declarations/src/structure/Cell.d.ts.map +0 -1
  46. package/dist/declarations/src/structure/Field.d.ts +0 -5
  47. package/dist/declarations/src/structure/Field.d.ts.map +0 -1
  48. package/dist/declarations/src/structure/controller.d.ts +0 -10
  49. package/dist/declarations/src/structure/controller.d.ts.map +0 -1
  50. package/dist/declarations/src/structure/structure.d.ts +0 -4
  51. package/dist/declarations/src/structure/structure.d.ts.map +0 -1
  52. package/dist/declarations/src/structure-views.d.ts +0 -5
  53. package/dist/declarations/src/structure-views.d.ts.map +0 -1
  54. package/dist/declarations/src/types/DocumentFeatures.d.ts +0 -33
  55. package/dist/declarations/src/types/DocumentFeatures.d.ts.map +0 -1
  56. package/dist/declarations/src/types/DocumentFieldConfig.d.ts +0 -18
  57. package/dist/declarations/src/types/DocumentFieldConfig.d.ts.map +0 -1
  58. package/dist/declarations/src/types/FormattingConfig.d.ts +0 -28
  59. package/dist/declarations/src/types/FormattingConfig.d.ts.map +0 -1
  60. package/dist/declarations/src/types/RelationshipsConfig.d.ts +0 -9
  61. package/dist/declarations/src/types/RelationshipsConfig.d.ts.map +0 -1
  62. package/dist/declarations/src/types/StructureFieldConfig.d.ts +0 -10
  63. package/dist/declarations/src/types/StructureFieldConfig.d.ts.map +0 -1
  64. package/dist/declarations/src/validation/structure-validation.d.ts +0 -218
  65. package/dist/declarations/src/validation/structure-validation.d.ts.map +0 -1
  66. package/dist/declarations/src/views/Cell.d.ts +0 -5
  67. package/dist/declarations/src/views/Cell.d.ts.map +0 -1
  68. package/dist/declarations/src/views/Field.d.ts +0 -5
  69. package/dist/declarations/src/views/Field.d.ts.map +0 -1
  70. package/dist/declarations/src/views/controller.d.ts +0 -15
  71. package/dist/declarations/src/views/controller.d.ts.map +0 -1
  72. package/dist/declarations/src/views/document.d.ts +0 -4
  73. package/dist/declarations/src/views/document.d.ts.map +0 -1
  74. package/dist/declarations/src/views.d.ts +0 -7
  75. package/dist/declarations/src/views.d.ts.map +0 -1
  76. package/dist/editor-shared-a6e340e6.node.esm.js +0 -1993
  77. package/dist/editor-shared-a997ae98.node.cjs.js +0 -2007
  78. package/dist/editor-shared-cc1293ed.cjs.js +0 -2007
  79. package/dist/editor-shared-da518ba3.esm.js +0 -1993
  80. package/dist/form-from-preview-2042b9ef.cjs.js +0 -512
  81. package/dist/form-from-preview-5df6e492.node.esm.js +0 -508
  82. package/dist/form-from-preview-9e501058.node.cjs.js +0 -512
  83. package/dist/form-from-preview-b3a66f37.esm.js +0 -508
  84. package/dist/index-06c36775.cjs.js +0 -14
  85. package/dist/index-586adb8f.node.esm.js +0 -11
  86. package/dist/index-67d52357.esm.js +0 -11
  87. package/dist/index-c3223fdc.node.cjs.js +0 -14
  88. package/dist/layouts-6412fa2a.esm.js +0 -189
  89. package/dist/layouts-a4a3cf0b.node.cjs.js +0 -196
  90. package/dist/layouts-ba9a558b.cjs.js +0 -196
  91. package/dist/layouts-e653b908.node.esm.js +0 -189
  92. package/dist/lkb-fields-document.esm.js +0 -1162
  93. package/dist/lkb-fields-document.node.esm.js +0 -1162
  94. package/dist/shared-0533009e.cjs.js +0 -594
  95. package/dist/shared-4684cc24.node.cjs.js +0 -594
  96. package/dist/shared-5e864055.node.esm.js +0 -579
  97. package/dist/shared-aaba5901.esm.js +0 -579
  98. package/dist/toolbar-state-3359e2f3.cjs.js +0 -994
  99. package/dist/toolbar-state-945823b8.node.esm.js +0 -971
  100. package/dist/toolbar-state-9611743f.node.cjs.js +0 -994
  101. package/dist/toolbar-state-bc8fe661.esm.js +0 -971
  102. package/dist/utils-06bcddc4.node.cjs.js +0 -747
  103. package/dist/utils-200ff260.node.esm.js +0 -722
  104. package/dist/utils-6409f730.cjs.js +0 -747
  105. package/dist/utils-bc6a0b82.esm.js +0 -722
  106. package/structure-views/dist/lkb-fields-document-structure-views.esm.js +0 -131
  107. package/structure-views/dist/lkb-fields-document-structure-views.node.esm.js +0 -131
  108. package/views/dist/lkb-fields-document-views.esm.js +0 -95
  109. package/views/dist/lkb-fields-document-views.node.esm.js +0 -95
@@ -1,189 +0,0 @@
1
- 'use client';
2
- import { createContext, useContext, useMemo } from 'react';
3
- import { Transforms } from 'slate';
4
- import { useSlateStatic, ReactEditor } from 'slate-react';
5
- import { Icon } from '@keystar/ui/icon';
6
- import { columnsIcon } from '@keystar/ui/icon/icons/columnsIcon';
7
- import { trash2Icon } from '@keystar/ui/icon/icons/trash2Icon';
8
- import { j as isElementActive } from './utils-bc6a0b82.esm.js';
9
- import { j as blockElementSpacing, B as BlockPopoverTrigger, c as BlockPopover, d as useToolbarState } from './toolbar-state-bc8fe661.esm.js';
10
- import { i as insertLayout } from './shared-aaba5901.esm.js';
11
- import { css, tokenSchema } from '@keystar/ui/style';
12
- import { ActionGroup } from '@keystar/ui/action-group';
13
- import { ActionButton } from '@keystar/ui/button';
14
- import { Flex } from '@keystar/ui/layout';
15
- import { Item } from '@keystar/ui/tag';
16
- import { TooltipTrigger, Tooltip } from '@keystar/ui/tooltip';
17
- import { EditorToolbarButton } from '@keystar/ui/editor';
18
- import { jsx, jsxs } from 'react/jsx-runtime';
19
- import '@keystar/ui/typography';
20
- import './api-2f524611.esm.js';
21
- import 'lkb-core';
22
- import '@keystar/ui/drag-and-drop';
23
- import './index-67d52357.esm.js';
24
- import '@braintree/sanitize-url';
25
- import '@react-aria/i18n';
26
- import '@keystar/ui/number-field';
27
- import '@keystar/ui/picker';
28
- import '@keystar/ui/combobox';
29
- import '@keystar/ui/text-field';
30
- import '@keystar/ui/checkbox';
31
- import './form-from-preview-b3a66f37.esm.js';
32
- import 'lkb-core/admin-ui/context';
33
- import 'lkb-core/fields/types/relationship/views';
34
- import 'lkb-core/admin-ui/utils';
35
- import '@keystar/ui/dialog';
36
- import '@keystar/ui/field';
37
- import '@keystar/ui/list-view';
38
- import '@keystar/ui/slots';
39
- import '@keystar/ui/icon/icons/trashIcon';
40
- import '@react-aria/overlays';
41
- import '@react-aria/utils';
42
- import '@react-stately/overlays';
43
- import '@keystar/ui/overlays';
44
- import '@emotion/weak-memoize';
45
- import './layouts-6412fa2a.esm.js';
46
-
47
- const LayoutOptionsContext = /*#__PURE__*/createContext([]);
48
- const LayoutOptionsProvider = LayoutOptionsContext.Provider;
49
-
50
- // UI Components
51
- const LayoutContainer = ({
52
- attributes,
53
- children,
54
- element
55
- }) => {
56
- const editor = useSlateStatic();
57
- const layout = element.layout;
58
- const layoutOptions = useContext(LayoutOptionsContext);
59
- const currentLayoutIndex = layoutOptions.findIndex(x => x.toString() === layout.toString());
60
- return /*#__PURE__*/jsx("div", {
61
- className: blockElementSpacing,
62
- ...attributes,
63
- children: /*#__PURE__*/jsxs(BlockPopoverTrigger, {
64
- element: element,
65
- children: [/*#__PURE__*/jsx("div", {
66
- className: css({
67
- columnGap: tokenSchema.size.space.regular,
68
- display: 'grid'
69
- }),
70
- style: {
71
- gridTemplateColumns: layout.map(x => `${x}fr`).join(' ')
72
- },
73
- children: children
74
- }), /*#__PURE__*/jsx(BlockPopover, {
75
- children: /*#__PURE__*/jsxs(Flex, {
76
- padding: "regular",
77
- gap: "regular",
78
- children: [/*#__PURE__*/jsx(ActionGroup, {
79
- selectionMode: "single",
80
- prominence: "low",
81
- density: "compact",
82
- onAction: key => {
83
- const path = ReactEditor.findPath(editor, element);
84
- const layoutOption = layoutOptions[key];
85
- Transforms.setNodes(editor, {
86
- type: 'layout',
87
- layout: layoutOption
88
- }, {
89
- at: path
90
- });
91
- ReactEditor.focus(editor);
92
- },
93
- selectedKeys: currentLayoutIndex !== -1 ? [currentLayoutIndex.toString()] : [],
94
- children: layoutOptions.map((layoutOption, i) => /*#__PURE__*/jsx(Item, {
95
- children: makeLayoutIcon(layoutOption)
96
- }, i))
97
- }), /*#__PURE__*/jsxs(TooltipTrigger, {
98
- children: [/*#__PURE__*/jsx(ActionButton, {
99
- prominence: "low",
100
- onPress: () => {
101
- const path = ReactEditor.findPath(editor, element);
102
- Transforms.removeNodes(editor, {
103
- at: path
104
- });
105
- },
106
- children: /*#__PURE__*/jsx(Icon, {
107
- src: trash2Icon
108
- })
109
- }), /*#__PURE__*/jsx(Tooltip, {
110
- tone: "critical",
111
- children: "\u5220\u9664"
112
- })]
113
- })]
114
- })
115
- })]
116
- })
117
- });
118
- };
119
- const LayoutArea = ({
120
- attributes,
121
- children
122
- }) => {
123
- return /*#__PURE__*/jsx("div", {
124
- className: css({
125
- borderColor: tokenSchema.color.border.neutral,
126
- borderRadius: tokenSchema.size.radius.regular,
127
- borderStyle: 'dashed',
128
- borderWidth: tokenSchema.size.border.regular,
129
- padding: tokenSchema.size.space.medium
130
- }),
131
- ...attributes,
132
- children: children
133
- });
134
- };
135
- function makeLayoutIcon(ratios) {
136
- const size = 16;
137
- const element = /*#__PURE__*/jsx("div", {
138
- role: "img",
139
- className: css({
140
- display: 'grid',
141
- gridTemplateColumns: ratios.map(r => `${r}fr`).join(' '),
142
- gap: 2,
143
- width: size,
144
- height: size
145
- }),
146
- children: ratios.map((_, i) => {
147
- return /*#__PURE__*/jsx("div", {
148
- className: css({
149
- backgroundColor: 'currentcolor',
150
- borderRadius: 1
151
- })
152
- }, i);
153
- })
154
- });
155
- return element;
156
- }
157
- const layoutsIcon = /*#__PURE__*/jsx(Icon, {
158
- src: columnsIcon
159
- });
160
- const LayoutsButton = ({
161
- layouts
162
- }) => {
163
- const {
164
- editor,
165
- layouts: {
166
- isSelected
167
- }
168
- } = useToolbarState();
169
- return useMemo(() => /*#__PURE__*/jsxs(TooltipTrigger, {
170
- children: [/*#__PURE__*/jsx(EditorToolbarButton, {
171
- isSelected: isSelected,
172
- onPress: () => {
173
- if (isElementActive(editor, 'layout')) {
174
- Transforms.unwrapNodes(editor, {
175
- match: node => node.type === 'layout'
176
- });
177
- } else {
178
- insertLayout(editor, layouts[0]);
179
- }
180
- ReactEditor.focus(editor);
181
- },
182
- children: layoutsIcon
183
- }), /*#__PURE__*/jsx(Tooltip, {
184
- children: "\u5E03\u5C40"
185
- })]
186
- }), [editor, isSelected, layouts]);
187
- };
188
-
189
- export { LayoutArea, LayoutContainer, LayoutOptionsProvider, LayoutsButton };
@@ -1,196 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var React = require('react');
7
- var slate = require('slate');
8
- var slateReact = require('slate-react');
9
- var icon = require('@keystar/ui/icon');
10
- var columnsIcon = require('@keystar/ui/icon/icons/columnsIcon');
11
- var trash2Icon = require('@keystar/ui/icon/icons/trash2Icon');
12
- var utils = require('./utils-06bcddc4.node.cjs.js');
13
- var toolbarState = require('./toolbar-state-9611743f.node.cjs.js');
14
- var shared = require('./shared-4684cc24.node.cjs.js');
15
- var style = require('@keystar/ui/style');
16
- var actionGroup = require('@keystar/ui/action-group');
17
- var button = require('@keystar/ui/button');
18
- var layout = require('@keystar/ui/layout');
19
- var tag = require('@keystar/ui/tag');
20
- var tooltip = require('@keystar/ui/tooltip');
21
- var editor = require('@keystar/ui/editor');
22
- var jsxRuntime = require('react/jsx-runtime');
23
- require('@keystar/ui/typography');
24
- require('./api-8e2b20b8.node.cjs.js');
25
- require('lkb-core');
26
- require('@keystar/ui/drag-and-drop');
27
- require('./index-c3223fdc.node.cjs.js');
28
- require('@braintree/sanitize-url');
29
- require('@react-aria/i18n');
30
- require('@keystar/ui/number-field');
31
- require('@keystar/ui/picker');
32
- require('@keystar/ui/combobox');
33
- require('@keystar/ui/text-field');
34
- require('@keystar/ui/checkbox');
35
- require('./form-from-preview-9e501058.node.cjs.js');
36
- require('lkb-core/admin-ui/context');
37
- require('lkb-core/fields/types/relationship/views');
38
- require('lkb-core/admin-ui/utils');
39
- require('@keystar/ui/dialog');
40
- require('@keystar/ui/field');
41
- require('@keystar/ui/list-view');
42
- require('@keystar/ui/slots');
43
- require('@keystar/ui/icon/icons/trashIcon');
44
- require('@react-aria/overlays');
45
- require('@react-aria/utils');
46
- require('@react-stately/overlays');
47
- require('@keystar/ui/overlays');
48
- require('@emotion/weak-memoize');
49
- require('./layouts-a4a3cf0b.node.cjs.js');
50
-
51
- const LayoutOptionsContext = /*#__PURE__*/React.createContext([]);
52
- const LayoutOptionsProvider = LayoutOptionsContext.Provider;
53
-
54
- // UI Components
55
- const LayoutContainer = ({
56
- attributes,
57
- children,
58
- element
59
- }) => {
60
- const editor = slateReact.useSlateStatic();
61
- const layout$1 = element.layout;
62
- const layoutOptions = React.useContext(LayoutOptionsContext);
63
- const currentLayoutIndex = layoutOptions.findIndex(x => x.toString() === layout$1.toString());
64
- return /*#__PURE__*/jsxRuntime.jsx("div", {
65
- className: toolbarState.blockElementSpacing,
66
- ...attributes,
67
- children: /*#__PURE__*/jsxRuntime.jsxs(toolbarState.BlockPopoverTrigger, {
68
- element: element,
69
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
70
- className: style.css({
71
- columnGap: style.tokenSchema.size.space.regular,
72
- display: 'grid'
73
- }),
74
- style: {
75
- gridTemplateColumns: layout$1.map(x => `${x}fr`).join(' ')
76
- },
77
- children: children
78
- }), /*#__PURE__*/jsxRuntime.jsx(toolbarState.BlockPopover, {
79
- children: /*#__PURE__*/jsxRuntime.jsxs(layout.Flex, {
80
- padding: "regular",
81
- gap: "regular",
82
- children: [/*#__PURE__*/jsxRuntime.jsx(actionGroup.ActionGroup, {
83
- selectionMode: "single",
84
- prominence: "low",
85
- density: "compact",
86
- onAction: key => {
87
- const path = slateReact.ReactEditor.findPath(editor, element);
88
- const layoutOption = layoutOptions[key];
89
- slate.Transforms.setNodes(editor, {
90
- type: 'layout',
91
- layout: layoutOption
92
- }, {
93
- at: path
94
- });
95
- slateReact.ReactEditor.focus(editor);
96
- },
97
- selectedKeys: currentLayoutIndex !== -1 ? [currentLayoutIndex.toString()] : [],
98
- children: layoutOptions.map((layoutOption, i) => /*#__PURE__*/jsxRuntime.jsx(tag.Item, {
99
- children: makeLayoutIcon(layoutOption)
100
- }, i))
101
- }), /*#__PURE__*/jsxRuntime.jsxs(tooltip.TooltipTrigger, {
102
- children: [/*#__PURE__*/jsxRuntime.jsx(button.ActionButton, {
103
- prominence: "low",
104
- onPress: () => {
105
- const path = slateReact.ReactEditor.findPath(editor, element);
106
- slate.Transforms.removeNodes(editor, {
107
- at: path
108
- });
109
- },
110
- children: /*#__PURE__*/jsxRuntime.jsx(icon.Icon, {
111
- src: trash2Icon.trash2Icon
112
- })
113
- }), /*#__PURE__*/jsxRuntime.jsx(tooltip.Tooltip, {
114
- tone: "critical",
115
- children: "\u5220\u9664"
116
- })]
117
- })]
118
- })
119
- })]
120
- })
121
- });
122
- };
123
- const LayoutArea = ({
124
- attributes,
125
- children
126
- }) => {
127
- return /*#__PURE__*/jsxRuntime.jsx("div", {
128
- className: style.css({
129
- borderColor: style.tokenSchema.color.border.neutral,
130
- borderRadius: style.tokenSchema.size.radius.regular,
131
- borderStyle: 'dashed',
132
- borderWidth: style.tokenSchema.size.border.regular,
133
- padding: style.tokenSchema.size.space.medium
134
- }),
135
- ...attributes,
136
- children: children
137
- });
138
- };
139
- function makeLayoutIcon(ratios) {
140
- const size = 16;
141
- const element = /*#__PURE__*/jsxRuntime.jsx("div", {
142
- role: "img",
143
- className: style.css({
144
- display: 'grid',
145
- gridTemplateColumns: ratios.map(r => `${r}fr`).join(' '),
146
- gap: 2,
147
- width: size,
148
- height: size
149
- }),
150
- children: ratios.map((_, i) => {
151
- return /*#__PURE__*/jsxRuntime.jsx("div", {
152
- className: style.css({
153
- backgroundColor: 'currentcolor',
154
- borderRadius: 1
155
- })
156
- }, i);
157
- })
158
- });
159
- return element;
160
- }
161
- const layoutsIcon = /*#__PURE__*/jsxRuntime.jsx(icon.Icon, {
162
- src: columnsIcon.columnsIcon
163
- });
164
- const LayoutsButton = ({
165
- layouts
166
- }) => {
167
- const {
168
- editor: editor$1,
169
- layouts: {
170
- isSelected
171
- }
172
- } = toolbarState.useToolbarState();
173
- return React.useMemo(() => /*#__PURE__*/jsxRuntime.jsxs(tooltip.TooltipTrigger, {
174
- children: [/*#__PURE__*/jsxRuntime.jsx(editor.EditorToolbarButton, {
175
- isSelected: isSelected,
176
- onPress: () => {
177
- if (utils.isElementActive(editor$1, 'layout')) {
178
- slate.Transforms.unwrapNodes(editor$1, {
179
- match: node => node.type === 'layout'
180
- });
181
- } else {
182
- shared.insertLayout(editor$1, layouts[0]);
183
- }
184
- slateReact.ReactEditor.focus(editor$1);
185
- },
186
- children: layoutsIcon
187
- }), /*#__PURE__*/jsxRuntime.jsx(tooltip.Tooltip, {
188
- children: "\u5E03\u5C40"
189
- })]
190
- }), [editor$1, isSelected, layouts]);
191
- };
192
-
193
- exports.LayoutArea = LayoutArea;
194
- exports.LayoutContainer = LayoutContainer;
195
- exports.LayoutOptionsProvider = LayoutOptionsProvider;
196
- exports.LayoutsButton = LayoutsButton;
@@ -1,196 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var React = require('react');
7
- var slate = require('slate');
8
- var slateReact = require('slate-react');
9
- var icon = require('@keystar/ui/icon');
10
- var columnsIcon = require('@keystar/ui/icon/icons/columnsIcon');
11
- var trash2Icon = require('@keystar/ui/icon/icons/trash2Icon');
12
- var utils = require('./utils-6409f730.cjs.js');
13
- var toolbarState = require('./toolbar-state-3359e2f3.cjs.js');
14
- var shared = require('./shared-0533009e.cjs.js');
15
- var style = require('@keystar/ui/style');
16
- var actionGroup = require('@keystar/ui/action-group');
17
- var button = require('@keystar/ui/button');
18
- var layout = require('@keystar/ui/layout');
19
- var tag = require('@keystar/ui/tag');
20
- var tooltip = require('@keystar/ui/tooltip');
21
- var editor = require('@keystar/ui/editor');
22
- var jsxRuntime = require('react/jsx-runtime');
23
- require('@keystar/ui/typography');
24
- require('./api-73636987.cjs.js');
25
- require('lkb-core');
26
- require('@keystar/ui/drag-and-drop');
27
- require('./index-06c36775.cjs.js');
28
- require('@braintree/sanitize-url');
29
- require('@react-aria/i18n');
30
- require('@keystar/ui/number-field');
31
- require('@keystar/ui/picker');
32
- require('@keystar/ui/combobox');
33
- require('@keystar/ui/text-field');
34
- require('@keystar/ui/checkbox');
35
- require('./form-from-preview-2042b9ef.cjs.js');
36
- require('lkb-core/admin-ui/context');
37
- require('lkb-core/fields/types/relationship/views');
38
- require('lkb-core/admin-ui/utils');
39
- require('@keystar/ui/dialog');
40
- require('@keystar/ui/field');
41
- require('@keystar/ui/list-view');
42
- require('@keystar/ui/slots');
43
- require('@keystar/ui/icon/icons/trashIcon');
44
- require('@react-aria/overlays');
45
- require('@react-aria/utils');
46
- require('@react-stately/overlays');
47
- require('@keystar/ui/overlays');
48
- require('@emotion/weak-memoize');
49
- require('./layouts-ba9a558b.cjs.js');
50
-
51
- const LayoutOptionsContext = /*#__PURE__*/React.createContext([]);
52
- const LayoutOptionsProvider = LayoutOptionsContext.Provider;
53
-
54
- // UI Components
55
- const LayoutContainer = ({
56
- attributes,
57
- children,
58
- element
59
- }) => {
60
- const editor = slateReact.useSlateStatic();
61
- const layout$1 = element.layout;
62
- const layoutOptions = React.useContext(LayoutOptionsContext);
63
- const currentLayoutIndex = layoutOptions.findIndex(x => x.toString() === layout$1.toString());
64
- return /*#__PURE__*/jsxRuntime.jsx("div", {
65
- className: toolbarState.blockElementSpacing,
66
- ...attributes,
67
- children: /*#__PURE__*/jsxRuntime.jsxs(toolbarState.BlockPopoverTrigger, {
68
- element: element,
69
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
70
- className: style.css({
71
- columnGap: style.tokenSchema.size.space.regular,
72
- display: 'grid'
73
- }),
74
- style: {
75
- gridTemplateColumns: layout$1.map(x => `${x}fr`).join(' ')
76
- },
77
- children: children
78
- }), /*#__PURE__*/jsxRuntime.jsx(toolbarState.BlockPopover, {
79
- children: /*#__PURE__*/jsxRuntime.jsxs(layout.Flex, {
80
- padding: "regular",
81
- gap: "regular",
82
- children: [/*#__PURE__*/jsxRuntime.jsx(actionGroup.ActionGroup, {
83
- selectionMode: "single",
84
- prominence: "low",
85
- density: "compact",
86
- onAction: key => {
87
- const path = slateReact.ReactEditor.findPath(editor, element);
88
- const layoutOption = layoutOptions[key];
89
- slate.Transforms.setNodes(editor, {
90
- type: 'layout',
91
- layout: layoutOption
92
- }, {
93
- at: path
94
- });
95
- slateReact.ReactEditor.focus(editor);
96
- },
97
- selectedKeys: currentLayoutIndex !== -1 ? [currentLayoutIndex.toString()] : [],
98
- children: layoutOptions.map((layoutOption, i) => /*#__PURE__*/jsxRuntime.jsx(tag.Item, {
99
- children: makeLayoutIcon(layoutOption)
100
- }, i))
101
- }), /*#__PURE__*/jsxRuntime.jsxs(tooltip.TooltipTrigger, {
102
- children: [/*#__PURE__*/jsxRuntime.jsx(button.ActionButton, {
103
- prominence: "low",
104
- onPress: () => {
105
- const path = slateReact.ReactEditor.findPath(editor, element);
106
- slate.Transforms.removeNodes(editor, {
107
- at: path
108
- });
109
- },
110
- children: /*#__PURE__*/jsxRuntime.jsx(icon.Icon, {
111
- src: trash2Icon.trash2Icon
112
- })
113
- }), /*#__PURE__*/jsxRuntime.jsx(tooltip.Tooltip, {
114
- tone: "critical",
115
- children: "\u5220\u9664"
116
- })]
117
- })]
118
- })
119
- })]
120
- })
121
- });
122
- };
123
- const LayoutArea = ({
124
- attributes,
125
- children
126
- }) => {
127
- return /*#__PURE__*/jsxRuntime.jsx("div", {
128
- className: style.css({
129
- borderColor: style.tokenSchema.color.border.neutral,
130
- borderRadius: style.tokenSchema.size.radius.regular,
131
- borderStyle: 'dashed',
132
- borderWidth: style.tokenSchema.size.border.regular,
133
- padding: style.tokenSchema.size.space.medium
134
- }),
135
- ...attributes,
136
- children: children
137
- });
138
- };
139
- function makeLayoutIcon(ratios) {
140
- const size = 16;
141
- const element = /*#__PURE__*/jsxRuntime.jsx("div", {
142
- role: "img",
143
- className: style.css({
144
- display: 'grid',
145
- gridTemplateColumns: ratios.map(r => `${r}fr`).join(' '),
146
- gap: 2,
147
- width: size,
148
- height: size
149
- }),
150
- children: ratios.map((_, i) => {
151
- return /*#__PURE__*/jsxRuntime.jsx("div", {
152
- className: style.css({
153
- backgroundColor: 'currentcolor',
154
- borderRadius: 1
155
- })
156
- }, i);
157
- })
158
- });
159
- return element;
160
- }
161
- const layoutsIcon = /*#__PURE__*/jsxRuntime.jsx(icon.Icon, {
162
- src: columnsIcon.columnsIcon
163
- });
164
- const LayoutsButton = ({
165
- layouts
166
- }) => {
167
- const {
168
- editor: editor$1,
169
- layouts: {
170
- isSelected
171
- }
172
- } = toolbarState.useToolbarState();
173
- return React.useMemo(() => /*#__PURE__*/jsxRuntime.jsxs(tooltip.TooltipTrigger, {
174
- children: [/*#__PURE__*/jsxRuntime.jsx(editor.EditorToolbarButton, {
175
- isSelected: isSelected,
176
- onPress: () => {
177
- if (utils.isElementActive(editor$1, 'layout')) {
178
- slate.Transforms.unwrapNodes(editor$1, {
179
- match: node => node.type === 'layout'
180
- });
181
- } else {
182
- shared.insertLayout(editor$1, layouts[0]);
183
- }
184
- slateReact.ReactEditor.focus(editor$1);
185
- },
186
- children: layoutsIcon
187
- }), /*#__PURE__*/jsxRuntime.jsx(tooltip.Tooltip, {
188
- children: "\u5E03\u5C40"
189
- })]
190
- }), [editor$1, isSelected, layouts]);
191
- };
192
-
193
- exports.LayoutArea = LayoutArea;
194
- exports.LayoutContainer = LayoutContainer;
195
- exports.LayoutOptionsProvider = LayoutOptionsProvider;
196
- exports.LayoutsButton = LayoutsButton;