@nascentdigital/funnel-editor 4.5.7 → 4.6.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.
- package/dist/collection/hooks/CollectionController.d.ts +1 -1
- package/dist/core/components/ColorModeToggle.js +6 -4
- package/dist/core/components/Header.js +3 -2
- package/dist/core/components/UserEditor.d.ts +2 -2
- package/dist/core/components/feedback/Badge.d.ts +2 -1
- package/dist/core/components/feedback/Badge.js +4 -3
- package/dist/core/components/fields/DynamicPagesEditor.js +7 -6
- package/dist/core/components/fields/EmptyFieldCard.js +4 -4
- package/dist/core/components/fields/FieldCardLayout.js +5 -5
- package/dist/core/components/fields/FieldHeader.js +3 -2
- package/dist/core/components/fields/FieldsPanel.js +4 -4
- package/dist/core/components/fields/FormEditor.js +5 -4
- package/dist/core/components/fields/asset/AssetEditor.d.ts +3 -2
- package/dist/core/components/fields/asset/AssetEditor.js +1 -1
- package/dist/core/components/fields/asset/AssetUploader.d.ts +3 -2
- package/dist/core/components/fields/asset/AssetUploader.js +1 -1
- package/dist/core/components/fields/collection/CollectionCard.js +1 -11
- package/dist/core/components/fields/collection/CollectionPicker.js +3 -2
- package/dist/core/components/fields/collection/previews/index.d.ts +0 -1
- package/dist/core/components/fields/collection/previews/index.js +0 -1
- package/dist/core/components/fields/embed/EmbeddedVideoEditor.d.ts +2 -2
- package/dist/core/components/fields/factories/AssetFactory.d.ts +1 -1
- package/dist/core/components/fields/factories/CollectionFactory.d.ts +1 -1
- package/dist/core/components/fields/factories/EmbeddedVideoFactory.d.ts +2 -2
- package/dist/core/components/fields/factories/FieldValueFactory.d.ts +1 -1
- package/dist/core/components/fields/factories/FieldValueFactory.js +1 -1
- package/dist/core/components/fields/factories/LinkFactory.d.ts +2 -2
- package/dist/core/components/fields/factories/TextFactory.d.ts +2 -2
- package/dist/core/components/fields/form/FormFieldEditor.d.ts +3 -2
- package/dist/core/components/fields/index.d.ts +1 -0
- package/dist/core/components/fields/index.js +1 -0
- package/dist/core/components/fields/link/LinkEditor.d.ts +2 -2
- package/dist/core/components/fields/link/LinkEditor.js +4 -0
- package/dist/core/components/fields/list/CreateFieldButton.d.ts +1 -1
- package/dist/core/components/fields/list/CreateFieldButton.js +4 -5
- package/dist/core/components/fields/list/CreateFieldCard.js +4 -4
- package/dist/core/components/fields/page/PagePicker.js +4 -2
- package/dist/core/components/fields/richtext/FloatingToolbarPlugin.js +3 -2
- package/dist/core/components/fields/richtext/LinkEditor.js +17 -4
- package/dist/core/components/fields/richtext/LinkPopup.js +11 -7
- package/dist/core/components/interaction/AvatarButton.d.ts +2 -1
- package/dist/core/components/interaction/AvatarButton.js +3 -2
- package/dist/core/components/interaction/Button.d.ts +2 -0
- package/dist/core/components/interaction/Button.js +3 -2
- package/dist/core/components/interaction/Combobox.js +2 -2
- package/dist/core/components/interaction/IconButton.d.ts +2 -0
- package/dist/core/components/interaction/IconButton.js +3 -2
- package/dist/core/components/interaction/IconLink.d.ts +1 -1
- package/dist/core/components/interaction/MiniEditor.d.ts +3 -2
- package/dist/core/components/interaction/MiniEditor.js +7 -5
- package/dist/core/components/interaction/Popup.d.ts +20 -15
- package/dist/core/components/interaction/Popup.js +63 -66
- package/dist/core/components/interaction/QuickInput.js +2 -0
- package/dist/core/components/interaction/QuickPicker.js +4 -4
- package/dist/core/components/interaction/Tabs.d.ts +5 -1
- package/dist/core/components/interaction/Tabs.js +18 -8
- package/dist/core/components/interaction/menu/useMenuController.d.ts +2 -2
- package/dist/core/components/interaction/table/TableItem.d.ts +2 -1
- package/dist/core/components/interaction/table/TableItem.js +5 -3
- package/dist/core/components/layout/InfoPanel.js +4 -2
- package/dist/core/components/visuals/Icon.d.ts +1 -1
- package/dist/core/components/visuals/Icon.js +6 -0
- package/dist/core/components/visuals/index.d.ts +0 -1
- package/dist/core/components/visuals/index.js +0 -1
- package/dist/core/domain/Block.d.ts +4 -0
- package/dist/core/domain/Block.js +7 -0
- package/dist/core/domain/BlockConfiguration.d.ts +9 -2
- package/dist/core/domain/BlockConfiguration.js +49 -12
- package/dist/core/domain/CollectionBrowser.d.ts +2 -2
- package/dist/core/domain/CollectionFieldProxy.d.ts +7 -2
- package/dist/core/domain/CollectionFieldProxy.js +55 -66
- package/dist/core/domain/SectionBlock.d.ts +5 -0
- package/dist/core/domain/SectionBlock.js +15 -0
- package/dist/core/hooks/useBlockConfiguration.d.ts +7 -1
- package/dist/core/hooks/useBlockConfiguration.js +8 -1
- package/dist/core/hooks/usePage.d.ts +2 -2
- package/dist/core/hooks/usePage.js +5 -4
- package/dist/core/repository/CollectionRepository.js +1 -1
- package/dist/core/repository/CollectionSerializer.d.ts +3 -2
- package/dist/core/repository/CollectionSerializer.js +12 -7
- package/dist/core/repository/PageRepository.js +2 -2
- package/dist/core/repository/PageSerializer.d.ts +5 -3
- package/dist/core/repository/PageSerializer.js +10 -11
- package/dist/explore/components/CreateCollectionDialog.d.ts +2 -3
- package/dist/explore/components/CreateCollectionDialog.js +1 -1
- package/dist/explore/components/CreatePageDialog.d.ts +3 -3
- package/dist/explore/components/CreatePageDialog.js +2 -2
- package/dist/explore/screens/CollectionExplorer.js +4 -4
- package/dist/explore/screens/PageExplorer.js +4 -4
- package/dist/page/components/BlockEditor.js +10 -2
- package/dist/page/components/config/BlockConfigButton.d.ts +8 -0
- package/dist/page/components/config/BlockConfigButton.js +320 -0
- package/dist/page/components/config/BlockConfigurationProvider.d.ts +8 -0
- package/dist/page/components/config/BlockConfigurationProvider.js +17 -0
- package/dist/page/components/config/LegacyBlockPreview.d.ts +8 -0
- package/dist/page/components/config/{BlockPreview.js → LegacyBlockPreview.js} +30 -40
- package/dist/page/components/config/index.d.ts +3 -1
- package/dist/page/components/config/index.js +3 -1
- package/dist/page/components/index.d.ts +1 -1
- package/dist/page/components/index.js +1 -1
- package/dist/page/components/nav/NavSection.js +4 -3
- package/dist/page/components/panels/BlockConfigPanel.d.ts +1 -0
- package/dist/page/components/panels/BlockConfigPanel.js +25 -0
- package/dist/page/components/{PageStatus.d.ts → panels/PageStatus.d.ts} +3 -3
- package/dist/page/components/{PageStatus.js → panels/PageStatus.js} +10 -14
- package/dist/page/components/panels/index.d.ts +2 -0
- package/dist/page/components/{status → panels}/index.js +2 -1
- package/dist/page/hooks/PageController.d.ts +2 -2
- package/dist/page/screens/PageEditor.js +8 -1
- package/dist/styles/index.css +157 -46
- package/dist/styles/tailwind.js +7 -3
- package/dist/users/screens/UserExplorer.js +7 -6
- package/package.json +3 -2
- package/dist/core/components/fields/collection/previews/ClientPreview.d.ts +0 -10
- package/dist/core/components/fields/collection/previews/ClientPreview.js +0 -29
- package/dist/core/components/visuals/SkeletonLayout.d.ts +0 -9
- package/dist/core/components/visuals/SkeletonLayout.js +0 -429
- package/dist/page/components/config/BlockConfig.d.ts +0 -8
- package/dist/page/components/config/BlockConfig.js +0 -28
- package/dist/page/components/config/BlockConfigEditor.d.ts +0 -9
- package/dist/page/components/config/BlockConfigEditor.js +0 -129
- package/dist/page/components/config/BlockPreview.d.ts +0 -10
- package/dist/page/components/config/BlockView.d.ts +0 -4
- package/dist/page/components/config/BlockView.js +0 -9
- package/dist/page/components/config/LegacyBlockConfigEditor.d.ts +0 -9
- package/dist/page/components/config/LegacyBlockConfigEditor.js +0 -27
- package/dist/page/components/config/ListPanelEditor.d.ts +0 -8
- package/dist/page/components/config/ListPanelEditor.js +0 -102
- package/dist/page/components/config/MessagePanelEditor.d.ts +0 -8
- package/dist/page/components/config/MessagePanelEditor.js +0 -17
- package/dist/page/components/config/VisualPanelEditor.d.ts +0 -8
- package/dist/page/components/config/VisualPanelEditor.js +0 -76
- package/dist/page/components/status/index.d.ts +0 -1
- /package/dist/page/components/{status → panels}/AutoSave.d.ts +0 -0
- /package/dist/page/components/{status → panels}/AutoSave.js +0 -0
package/dist/styles/index.css
CHANGED
|
@@ -499,6 +499,13 @@ video {
|
|
|
499
499
|
[hidden]:where(:not([hidden="until-found"])) {
|
|
500
500
|
display: none;
|
|
501
501
|
}
|
|
502
|
+
|
|
503
|
+
[popover]{
|
|
504
|
+
inset: var(--toolwind-toggle-BK394oP67O, 0px);
|
|
505
|
+
background-color: var(--toolwind-toggle-44E42ImXUl, canvas);
|
|
506
|
+
color: var(--toolwind-toggle-adoVjD3x5w, canvastext);
|
|
507
|
+
margin: var(--toolwind-toggle-4GI4by3Q5p, auto);
|
|
508
|
+
}
|
|
502
509
|
html, body, #__next, .Editor-wrap{
|
|
503
510
|
position: relative;
|
|
504
511
|
height: 100lvh;
|
|
@@ -2730,6 +2737,18 @@ video {
|
|
|
2730
2737
|
--tw-border-opacity: 1;
|
|
2731
2738
|
border-color: rgb(var(--color-ix-primary) / var(--tw-border-opacity, 1));
|
|
2732
2739
|
}
|
|
2740
|
+
.FieldCard-hover.FieldCard{
|
|
2741
|
+
--tw-border-opacity: 1;
|
|
2742
|
+
border-color: rgb(var(--color-ix-primary) / var(--tw-border-opacity, 1));
|
|
2743
|
+
}
|
|
2744
|
+
.FieldCard-press.FieldCard{
|
|
2745
|
+
--tw-scale-x: .97;
|
|
2746
|
+
--tw-scale-y: .97;
|
|
2747
|
+
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
2748
|
+
transition-timing-function: cubic-bezier(0.5, 1, 0.89, 1);
|
|
2749
|
+
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
|
|
2750
|
+
transition-duration: 200ms;
|
|
2751
|
+
}
|
|
2733
2752
|
.iconbutton{
|
|
2734
2753
|
flex-shrink: 0;
|
|
2735
2754
|
cursor: pointer;
|
|
@@ -4229,33 +4248,35 @@ video {
|
|
|
4229
4248
|
:root {
|
|
4230
4249
|
--nd-visual-width: unset;
|
|
4231
4250
|
--nd-visual-height: unset;
|
|
4251
|
+
--nd-visual-max-width: unset;
|
|
4252
|
+
--nd-visual-max-height: unset;
|
|
4232
4253
|
--nd-visual-anchor: center;
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
|
|
4242
|
-
|
|
4254
|
+
--nd-visual-aspect: unset;
|
|
4255
|
+
--nd-visual-object-fit: unset;
|
|
4256
|
+
}
|
|
4257
|
+
.nd-Visual-image,
|
|
4258
|
+
.nd-Visual-video
|
|
4259
|
+
{
|
|
4260
|
+
aspect-ratio: var(--nd-visual-aspect, var(--_nd-visual-native-width) / var(--_nd-visual-native-height));
|
|
4261
|
+
max-width: var(--nd-visual-max-width, 100%);
|
|
4262
|
+
max-height: var(--nd-visual-max-height, 100%);
|
|
4263
|
+
width: var(--nd-visual-width, calc(var(--_nd-visual-native-width) * 1px));
|
|
4264
|
+
height: var(--nd-visual-height, calc(var(--_nd-visual-native-height) * 1px));
|
|
4265
|
+
}
|
|
4266
|
+
.nd-Visual-image img, .nd-Visual-image video, .nd-Visual-video img, .nd-Visual-video video{
|
|
4267
|
+
width: 100%;
|
|
4268
|
+
height: 100%;
|
|
4269
|
+
-o-object-fit: var(--nd-visual-object-fit, cover);
|
|
4270
|
+
object-fit: var(--nd-visual-object-fit, cover);
|
|
4243
4271
|
-o-object-position: var(--nd-visual-anchor);
|
|
4244
4272
|
object-position: var(--nd-visual-anchor);
|
|
4245
4273
|
}
|
|
4246
|
-
.nd-Visual-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
aspect-ratio: var(--nd-visual-width) / var(--nd-visual-height);
|
|
4274
|
+
img.nd-Visual-image {
|
|
4275
|
+
-o-object-fit: var(--nd-visual-object-fit, cover);
|
|
4276
|
+
object-fit: var(--nd-visual-object-fit, cover);
|
|
4250
4277
|
-o-object-position: var(--nd-visual-anchor);
|
|
4251
4278
|
object-position: var(--nd-visual-anchor);
|
|
4252
|
-
}
|
|
4253
|
-
.nd-Visual-video video{
|
|
4254
|
-
-o-object-fit: cover;
|
|
4255
|
-
object-fit: cover;
|
|
4256
|
-
-o-object-position: var(--nd-visual-anchor);
|
|
4257
|
-
object-position: var(--nd-visual-anchor);
|
|
4258
|
-
}
|
|
4279
|
+
}
|
|
4259
4280
|
.pointer-events-none{
|
|
4260
4281
|
pointer-events: none;
|
|
4261
4282
|
}
|
|
@@ -4274,6 +4295,9 @@ video {
|
|
|
4274
4295
|
.static{
|
|
4275
4296
|
position: static;
|
|
4276
4297
|
}
|
|
4298
|
+
.\!fixed{
|
|
4299
|
+
position: fixed !important;
|
|
4300
|
+
}
|
|
4277
4301
|
.fixed{
|
|
4278
4302
|
position: fixed;
|
|
4279
4303
|
}
|
|
@@ -4367,9 +4391,6 @@ video {
|
|
|
4367
4391
|
.col-span-10{
|
|
4368
4392
|
grid-column: span 10 / span 10;
|
|
4369
4393
|
}
|
|
4370
|
-
.col-span-2{
|
|
4371
|
-
grid-column: span 2 / span 2;
|
|
4372
|
-
}
|
|
4373
4394
|
.col-span-4{
|
|
4374
4395
|
grid-column: span 4 / span 4;
|
|
4375
4396
|
}
|
|
@@ -4779,9 +4800,6 @@ video {
|
|
|
4779
4800
|
.w-8\/12{
|
|
4780
4801
|
width: 66.666667%;
|
|
4781
4802
|
}
|
|
4782
|
-
.w-\[100px\]{
|
|
4783
|
-
width: 100px;
|
|
4784
|
-
}
|
|
4785
4803
|
.w-\[120px\]{
|
|
4786
4804
|
width: 120px;
|
|
4787
4805
|
}
|
|
@@ -5514,6 +5532,9 @@ video {
|
|
|
5514
5532
|
.p-3{
|
|
5515
5533
|
padding: 3px;
|
|
5516
5534
|
}
|
|
5535
|
+
.p-l1{
|
|
5536
|
+
padding: 2px;
|
|
5537
|
+
}
|
|
5517
5538
|
.p-l2{
|
|
5518
5539
|
padding: 4px;
|
|
5519
5540
|
}
|
|
@@ -5591,6 +5612,10 @@ video {
|
|
|
5591
5612
|
padding-top: 72px;
|
|
5592
5613
|
padding-bottom: 72px;
|
|
5593
5614
|
}
|
|
5615
|
+
.py-l2{
|
|
5616
|
+
padding-top: 4px;
|
|
5617
|
+
padding-bottom: 4px;
|
|
5618
|
+
}
|
|
5594
5619
|
.py-l3{
|
|
5595
5620
|
padding-top: 6px;
|
|
5596
5621
|
padding-bottom: 6px;
|
|
@@ -5611,6 +5636,9 @@ video {
|
|
|
5611
5636
|
padding-top: 24px;
|
|
5612
5637
|
padding-bottom: 24px;
|
|
5613
5638
|
}
|
|
5639
|
+
.pb-l10{
|
|
5640
|
+
padding-bottom: 40px;
|
|
5641
|
+
}
|
|
5614
5642
|
.pb-l3{
|
|
5615
5643
|
padding-bottom: 6px;
|
|
5616
5644
|
}
|
|
@@ -5653,6 +5681,9 @@ video {
|
|
|
5653
5681
|
.pt-10{
|
|
5654
5682
|
padding-top: 10px;
|
|
5655
5683
|
}
|
|
5684
|
+
.pt-l10{
|
|
5685
|
+
padding-top: 40px;
|
|
5686
|
+
}
|
|
5656
5687
|
.pt-l12{
|
|
5657
5688
|
padding-top: 56px;
|
|
5658
5689
|
}
|
|
@@ -5699,9 +5730,6 @@ video {
|
|
|
5699
5730
|
--tw-ordinal: ordinal;
|
|
5700
5731
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
5701
5732
|
}
|
|
5702
|
-
.leading-\[100\%\]{
|
|
5703
|
-
line-height: 100%;
|
|
5704
|
-
}
|
|
5705
5733
|
.leading-\[20px\]{
|
|
5706
5734
|
line-height: 20px;
|
|
5707
5735
|
}
|
|
@@ -5712,10 +5740,6 @@ video {
|
|
|
5712
5740
|
--tw-text-opacity: 1;
|
|
5713
5741
|
color: rgb(var(--color-background) / var(--tw-text-opacity, 1));
|
|
5714
5742
|
}
|
|
5715
|
-
.text-border-l1{
|
|
5716
|
-
--tw-text-opacity: 1;
|
|
5717
|
-
color: rgb(var(--color-border-l1) / var(--tw-text-opacity, 1));
|
|
5718
|
-
}
|
|
5719
5743
|
.text-content-button{
|
|
5720
5744
|
--tw-text-opacity: 1;
|
|
5721
5745
|
color: rgb(var(--color-content-button) / var(--tw-text-opacity, 1));
|
|
@@ -5901,6 +5925,44 @@ video {
|
|
|
5901
5925
|
.\@container{
|
|
5902
5926
|
container-type: inline-size;
|
|
5903
5927
|
}
|
|
5928
|
+
.\!anchor{
|
|
5929
|
+
}
|
|
5930
|
+
.anchor{
|
|
5931
|
+
}
|
|
5932
|
+
.anchor\/\[--nd-popup-anchor\]{
|
|
5933
|
+
anchor-name: var(--nd-popup-anchor);
|
|
5934
|
+
}
|
|
5935
|
+
.anchored{
|
|
5936
|
+
}
|
|
5937
|
+
.anchored-bottom{
|
|
5938
|
+
position-area: bottom;
|
|
5939
|
+
}
|
|
5940
|
+
.anchored-bottom-span-left{
|
|
5941
|
+
position-area: bottom span-left;
|
|
5942
|
+
}
|
|
5943
|
+
.anchored-left{
|
|
5944
|
+
position-area: left;
|
|
5945
|
+
}
|
|
5946
|
+
.anchored-right{
|
|
5947
|
+
position-area: right;
|
|
5948
|
+
}
|
|
5949
|
+
.anchored-top{
|
|
5950
|
+
position-area: top;
|
|
5951
|
+
}
|
|
5952
|
+
.anchored-top-span-right{
|
|
5953
|
+
position-area: top span-right;
|
|
5954
|
+
}
|
|
5955
|
+
.anchored\/\[--nd-popup-anchor\]{
|
|
5956
|
+
position-anchor: var(--nd-popup-anchor);
|
|
5957
|
+
}
|
|
5958
|
+
.anchored\/\[--nd-popup-anchor\]:where(.anchored\/\[--nd-popup-anchor\]){
|
|
5959
|
+
position: absolute;
|
|
5960
|
+
view-transition-name: --tw-anchor-view-transition-2j1919322s193433343934192p322r2w33362l;
|
|
5961
|
+
--toolwind-toggle-BK394oP67O: auto;
|
|
5962
|
+
--toolwind-toggle-44E42ImXUl: transparent;
|
|
5963
|
+
--toolwind-toggle-adoVjD3x5w: inherit;
|
|
5964
|
+
--toolwind-toggle-4GI4by3Q5p: 0px;
|
|
5965
|
+
}
|
|
5904
5966
|
.counter-l1{
|
|
5905
5967
|
counter-reset: l1;
|
|
5906
5968
|
}
|
|
@@ -5989,6 +6051,43 @@ video {
|
|
|
5989
6051
|
pointer-events: auto;
|
|
5990
6052
|
}
|
|
5991
6053
|
}
|
|
6054
|
+
.scroller-edge{
|
|
6055
|
+
border-top-width: 1px;
|
|
6056
|
+
border-style: solid;
|
|
6057
|
+
border-color: transparent;
|
|
6058
|
+
|
|
6059
|
+
animation: scroller-edge linear both;
|
|
6060
|
+
animation-timeline: scroll(self);
|
|
6061
|
+
animation-range: 0px 20px;
|
|
6062
|
+
}
|
|
6063
|
+
/* animation */
|
|
6064
|
+
@keyframes scroller-edge {
|
|
6065
|
+
from {
|
|
6066
|
+
border-top-color: transparent;
|
|
6067
|
+
}
|
|
6068
|
+
to {
|
|
6069
|
+
border-top-color: #3b82f6;
|
|
6070
|
+
}
|
|
6071
|
+
}
|
|
6072
|
+
.scroller-fade-top{
|
|
6073
|
+
position: relative;
|
|
6074
|
+
}
|
|
6075
|
+
/* overlay */
|
|
6076
|
+
.scroller-fade-top::before{
|
|
6077
|
+
position: sticky;
|
|
6078
|
+
left: 0px;
|
|
6079
|
+
right: 0px;
|
|
6080
|
+
top: 0px;
|
|
6081
|
+
z-index: 2;
|
|
6082
|
+
display: block;
|
|
6083
|
+
height: 16px;
|
|
6084
|
+
width: 100%;
|
|
6085
|
+
background-color: inherit;
|
|
6086
|
+
--tw-content: "\00a0";
|
|
6087
|
+
content: var(--tw-content);
|
|
6088
|
+
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
|
|
6089
|
+
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
|
|
6090
|
+
}
|
|
5992
6091
|
.stacked{
|
|
5993
6092
|
display: grid;
|
|
5994
6093
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
@@ -6023,13 +6122,22 @@ video {
|
|
|
6023
6122
|
inherits: false;
|
|
6024
6123
|
initial-value: #000;
|
|
6025
6124
|
}
|
|
6026
|
-
.\[--nd-icon-color\:theme\(colors\.content-primary\)\]{
|
|
6027
|
-
--nd-icon-color: rgb(var(--color-content-primary) / 1);
|
|
6028
|
-
}
|
|
6029
6125
|
.focus-within\:field-focused:focus-within.field {
|
|
6030
6126
|
}
|
|
6031
6127
|
.focus-visible\:field-focused:focus-visible.field {
|
|
6032
6128
|
}
|
|
6129
|
+
.group:hover .group-hover\:FieldCard-hover.FieldCard{
|
|
6130
|
+
--tw-border-opacity: 1;
|
|
6131
|
+
border-color: rgb(var(--color-ix-primary) / var(--tw-border-opacity, 1));
|
|
6132
|
+
}
|
|
6133
|
+
.group:active .group-active\:FieldCard-press.FieldCard{
|
|
6134
|
+
--tw-scale-x: .97;
|
|
6135
|
+
--tw-scale-y: .97;
|
|
6136
|
+
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
6137
|
+
transition-timing-function: cubic-bezier(0.5, 1, 0.89, 1);
|
|
6138
|
+
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
|
|
6139
|
+
transition-duration: 200ms;
|
|
6140
|
+
}
|
|
6033
6141
|
@media (min-width: 768px){
|
|
6034
6142
|
.md\:display-md{
|
|
6035
6143
|
font-family: var(--font-display), sans-serif;
|
|
@@ -6198,9 +6306,6 @@ video {
|
|
|
6198
6306
|
.hover\:underline:hover{
|
|
6199
6307
|
text-decoration-line: underline;
|
|
6200
6308
|
}
|
|
6201
|
-
.hover\:opacity-full:hover{
|
|
6202
|
-
opacity: 1;
|
|
6203
|
-
}
|
|
6204
6309
|
.hover\:outline-ix-primary\/\[\.35\]:hover{
|
|
6205
6310
|
outline-color: rgb(var(--color-ix-primary) / .35);
|
|
6206
6311
|
}
|
|
@@ -6309,9 +6414,6 @@ video {
|
|
|
6309
6414
|
--tw-bg-opacity: 1;
|
|
6310
6415
|
background-color: rgb(var(--color-ix-primary-hover) / var(--tw-bg-opacity, 1));
|
|
6311
6416
|
}
|
|
6312
|
-
.group:hover .group-hover\:bg-ix-primary\/tint1{
|
|
6313
|
-
background-color: rgb(var(--color-ix-primary) / .1);
|
|
6314
|
-
}
|
|
6315
6417
|
.group:hover .group-hover\:bg-ix-util-hover\/tint1{
|
|
6316
6418
|
background-color: rgb(var(--color-ix-util-hover) / .1);
|
|
6317
6419
|
}
|
|
@@ -6319,6 +6421,10 @@ video {
|
|
|
6319
6421
|
--tw-text-opacity: 1;
|
|
6320
6422
|
color: rgb(var(--color-content-primary) / var(--tw-text-opacity, 1));
|
|
6321
6423
|
}
|
|
6424
|
+
.group:hover .group-hover\:text-content-secondary{
|
|
6425
|
+
--tw-text-opacity: 1;
|
|
6426
|
+
color: rgb(var(--color-content-secondary) / var(--tw-text-opacity, 1));
|
|
6427
|
+
}
|
|
6322
6428
|
.group:focus-visible .group-focus-visible\:outline-ix-primary{
|
|
6323
6429
|
outline-color: rgb(var(--color-ix-primary) / 1);
|
|
6324
6430
|
}
|
|
@@ -6335,12 +6441,13 @@ video {
|
|
|
6335
6441
|
--tw-bg-opacity: 1;
|
|
6336
6442
|
background-color: rgb(var(--color-ix-primary-press) / var(--tw-bg-opacity, 1));
|
|
6337
6443
|
}
|
|
6338
|
-
.group:active .group-active\:bg-ix-primary\/tint3{
|
|
6339
|
-
background-color: rgb(var(--color-ix-primary) / .3);
|
|
6340
|
-
}
|
|
6341
6444
|
.group:active .group-active\:bg-ix-util-press\/tint2{
|
|
6342
6445
|
background-color: rgb(var(--color-ix-util-press) / .2);
|
|
6343
6446
|
}
|
|
6447
|
+
.group:active .group-active\:text-content-primary{
|
|
6448
|
+
--tw-text-opacity: 1;
|
|
6449
|
+
color: rgb(var(--color-content-primary) / var(--tw-text-opacity, 1));
|
|
6450
|
+
}
|
|
6344
6451
|
.group:active .group-active\:text-content-tertiary{
|
|
6345
6452
|
--tw-text-opacity: 1;
|
|
6346
6453
|
color: rgb(var(--color-content-tertiary) / var(--tw-text-opacity, 1));
|
|
@@ -6494,6 +6601,10 @@ video {
|
|
|
6494
6601
|
display: block;
|
|
6495
6602
|
}
|
|
6496
6603
|
|
|
6604
|
+
.lg\:flex{
|
|
6605
|
+
display: flex;
|
|
6606
|
+
}
|
|
6607
|
+
|
|
6497
6608
|
.lg\:w-\[240px\]{
|
|
6498
6609
|
width: 240px;
|
|
6499
6610
|
}
|
package/dist/styles/tailwind.js
CHANGED
|
@@ -9,6 +9,7 @@ const plugin_1 = __importDefault(require("tailwindcss/plugin"));
|
|
|
9
9
|
const Tailwind_1 = require("@nascentdigital/funnel-ui/Tailwind");
|
|
10
10
|
const aspect_ratio_1 = __importDefault(require("@tailwindcss/aspect-ratio"));
|
|
11
11
|
const container_queries_1 = __importDefault(require("@tailwindcss/container-queries"));
|
|
12
|
+
const anchors_1 = __importDefault(require("@toolwind/anchors"));
|
|
12
13
|
// tailwind
|
|
13
14
|
exports.EditorTailwindConfig = {
|
|
14
15
|
content: [
|
|
@@ -258,15 +259,16 @@ exports.EditorTailwindConfig = {
|
|
|
258
259
|
'quad-in-out': 'cubic-bezier(0.45, 0, 0.55, 1)',
|
|
259
260
|
'cube-in': 'cubic-bezier(0.32, 0, 0.67, 0)',
|
|
260
261
|
'cube-out': 'cubic-bezier(0.33, 1, 0.68, 1)',
|
|
261
|
-
'cube-in-out': 'cubic-bezier(0.65, 0, 0.35, 1)'
|
|
262
|
+
'cube-in-out': 'cubic-bezier(0.65, 0, 0.35, 1)'
|
|
262
263
|
}
|
|
263
264
|
}
|
|
264
265
|
},
|
|
265
266
|
plugins: [
|
|
266
267
|
aspect_ratio_1.default,
|
|
267
268
|
container_queries_1.default,
|
|
269
|
+
anchors_1.default,
|
|
270
|
+
// counter: provides custom counting control via tailwind
|
|
268
271
|
(0, plugin_1.default)(function ({ matchUtilities, matchVariant, theme }) {
|
|
269
|
-
// counter: provides custom counting control via tailwind
|
|
270
272
|
matchUtilities({
|
|
271
273
|
'counter': (value) => ({
|
|
272
274
|
counterReset: value
|
|
@@ -280,7 +282,9 @@ exports.EditorTailwindConfig = {
|
|
|
280
282
|
}, {
|
|
281
283
|
values: theme('counterName')
|
|
282
284
|
});
|
|
283
|
-
|
|
285
|
+
}),
|
|
286
|
+
// avoid: avoids child component (pass in selector to thing you want to not match)
|
|
287
|
+
(0, plugin_1.default)(function ({ matchUtilities, matchVariant, theme }) {
|
|
284
288
|
matchVariant('avoid', child => `&:not(:has(${child}:hover, ${child}:focus-visible, ${child}:active))`);
|
|
285
289
|
})
|
|
286
290
|
]
|
|
@@ -12,6 +12,7 @@ const core_1 = require("../../core");
|
|
|
12
12
|
// component
|
|
13
13
|
function UserExplorer() {
|
|
14
14
|
// bind hooks
|
|
15
|
+
const anchorId = (0, react_1.useId)();
|
|
15
16
|
const userEditorRef = (0, react_1.useRef)(null);
|
|
16
17
|
const { user } = (0, core_1.useAuthenticator)();
|
|
17
18
|
const browser = (0, core_1.useUserBrowser)();
|
|
@@ -118,7 +119,7 @@ function renderUsers({ user: currentUser, router, browser, menu, userEditorRef,
|
|
|
118
119
|
await browser.sync();
|
|
119
120
|
}
|
|
120
121
|
};
|
|
121
|
-
const onMenuOpen = async (e, user) => {
|
|
122
|
+
const onMenuOpen = async (e, user, anchor) => {
|
|
122
123
|
// consume event
|
|
123
124
|
e.preventDefault();
|
|
124
125
|
e.stopPropagation();
|
|
@@ -145,7 +146,7 @@ function renderUsers({ user: currentUser, router, browser, menu, userEditorRef,
|
|
|
145
146
|
// open menu
|
|
146
147
|
menu.items = menuItems;
|
|
147
148
|
menu.selectedItem = undefined;
|
|
148
|
-
menu.open(
|
|
149
|
+
menu.open(anchor, user);
|
|
149
150
|
};
|
|
150
151
|
const onMenuSelect = async (item) => {
|
|
151
152
|
var _a;
|
|
@@ -173,21 +174,21 @@ function renderUsers({ user: currentUser, router, browser, menu, userEditorRef,
|
|
|
173
174
|
const { users } = browser;
|
|
174
175
|
const canManageUsers = currentUser.hasAny('user.update', 'user.delete', 'user.passwordReset');
|
|
175
176
|
return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between items-center gap-l8", children: [(0, jsx_runtime_1.jsx)("h2", { className: "heading-lg text-content-primary", children: "Users" }), currentUser.has('user.create') &&
|
|
176
|
-
(0, jsx_runtime_1.jsx)(core_1.Button, { variant: "primary", iconLeft: "Plus", onClick: e => onCreateUser(
|
|
177
|
+
(0, jsx_runtime_1.jsx)(core_1.Button, { anchorId: "user-create", variant: "primary", iconLeft: "Plus", onClick: e => onCreateUser('user-create'), children: "New user" })] }), (0, jsx_runtime_1.jsx)(core_1.Table, { className: "flex-1", children: users.map(user => {
|
|
177
178
|
// bond props
|
|
178
179
|
const isCurrentUser = currentUser.id === user.id;
|
|
179
180
|
const isInferior = currentUser.role.compareTo(user.role) > 0;
|
|
180
181
|
// render
|
|
181
|
-
return ((0, jsx_runtime_1.jsx)(core_1.TableItem, { details: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [user.blocked &&
|
|
182
|
+
return ((0, jsx_runtime_1.jsx)(core_1.TableItem, { anchorId: `user-edit-${user.id}`, details: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [user.blocked &&
|
|
182
183
|
(0, jsx_runtime_1.jsx)(core_1.StatusBadge, { variant: "error", label: "Blocked" }), isCurrentUser &&
|
|
183
184
|
(0, jsx_runtime_1.jsx)(core_1.StatusBadge, { variant: "warn", label: "You" }), user.isAdmin
|
|
184
185
|
? (0, jsx_runtime_1.jsx)(core_1.StatusBadge, { variant: "success", label: user.role.name })
|
|
185
186
|
: user.isEditor
|
|
186
187
|
? (0, jsx_runtime_1.jsx)(core_1.StatusBadge, { variant: "default", label: user.role.name })
|
|
187
188
|
: (0, jsx_runtime_1.jsx)(core_1.StatusBadge, { variant: "warn", label: user.role.name }), canManageUsers &&
|
|
188
|
-
(0, jsx_runtime_1.jsx)(core_1.IconButton, { className: (0, classnames_1.default)('interactive-child ml-l5', {
|
|
189
|
+
(0, jsx_runtime_1.jsx)(core_1.IconButton, { anchorId: `user-menu-${user.id}`, className: (0, classnames_1.default)('interactive-child ml-l5', {
|
|
189
190
|
'opacity-none': isInferior
|
|
190
|
-
}), variant: "util", size: "sm", icon: "EllipsisVertical", onClick: e => onMenuOpen(e, user), disabled: isInferior })] }), onClick: e => onEditUser(user,
|
|
191
|
+
}), variant: "util", size: "sm", icon: "EllipsisVertical", onClick: e => onMenuOpen(e, user, `user-menu-${user.id}`), disabled: isInferior })] }), onClick: e => onEditUser(user, `user-edit-${user.id}`), disabled: isInferior, children: (0, jsx_runtime_1.jsxs)("div", { className: "flex-1 flex items-center gap-l6", children: [(0, jsx_runtime_1.jsx)("h3", { className: "label-md label-strong text-content-primary", children: user.username }), (0, jsx_runtime_1.jsx)("span", { className: "label-xs text-content-secondary", children: user.email })] }) }, user.id));
|
|
191
192
|
}) }), (0, jsx_runtime_1.jsx)(core_1.Menu, { controller: menu, onItemClick: onMenuSelect })] }, "changes"));
|
|
192
193
|
}
|
|
193
194
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nascentdigital/funnel-editor",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "restricted"
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@tailwindcss/aspect-ratio": "^0",
|
|
79
79
|
"@tailwindcss/container-queries": "^0",
|
|
80
|
+
"@toolwind/anchors": "^1",
|
|
80
81
|
"@types/node": "^22",
|
|
81
82
|
"@types/url-regex-safe": "^1",
|
|
82
83
|
"autoprefixer": "^10",
|
|
@@ -89,5 +90,5 @@
|
|
|
89
90
|
"ts-jest": "^29",
|
|
90
91
|
"type-fest": "^4"
|
|
91
92
|
},
|
|
92
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "4a1d18f6f87148196b5e820c0ada8f2a8111b9f6"
|
|
93
94
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Schema } from '@nascentdigital/funnel-core';
|
|
2
|
-
import { Client } from '@nascentdigital/funnel-ui';
|
|
3
|
-
export declare function ClientPreview({ className, client }: ClientPreview.Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
export declare namespace ClientPreview {
|
|
5
|
-
type Props = {
|
|
6
|
-
className?: string;
|
|
7
|
-
schema: Schema.CollectionField;
|
|
8
|
-
client: Client.Value;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ClientPreview = ClientPreview;
|
|
7
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const funnel_ui_1 = require("@nascentdigital/funnel-ui");
|
|
9
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
10
|
-
// components
|
|
11
|
-
function ClientPreview({ className, client }) {
|
|
12
|
-
// bind props
|
|
13
|
-
const { name, fields } = client;
|
|
14
|
-
const { logo: logoRaw, division: divisionRaw, location: locationRaw } = fields !== null && fields !== void 0 ? fields : {};
|
|
15
|
-
const logo = logoRaw === null || logoRaw === void 0 ? void 0 : logoRaw.value;
|
|
16
|
-
const division = divisionRaw === null || divisionRaw === void 0 ? void 0 : divisionRaw.value;
|
|
17
|
-
const location = locationRaw === null || locationRaw === void 0 ? void 0 : locationRaw.value;
|
|
18
|
-
// render
|
|
19
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(className, 'h-full flex flex-col justify-center items-center gap-l8 p-l8', '[--nd-icon-color:theme(colors.content-primary)]', '[--nd-icon-color:theme(colors.content-primary)]'), children: [logo
|
|
20
|
-
?
|
|
21
|
-
(0, jsx_runtime_1.jsx)(funnel_ui_1.Icon, { className: "w-[100px] h-40", icon: logo })
|
|
22
|
-
:
|
|
23
|
-
(0, jsx_runtime_1.jsx)("div", { className: "text-border-l1 border border-dashed border-border-l1 rounded-xs p-l6", children: "Logo" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center text-center", children: [(0, jsx_runtime_1.jsx)("h4", { className: "body-xs body-strong text-content-secondary", children: name }), division && location &&
|
|
24
|
-
(0, jsx_runtime_1.jsx)("span", { className: "label-xs text-content-tertiary", children: division
|
|
25
|
-
? location
|
|
26
|
-
? `${division}, ${location}`
|
|
27
|
-
: division
|
|
28
|
-
: location })] })] }));
|
|
29
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { BlockLayout } from '@nascentdigital/funnel-core';
|
|
2
|
-
export declare function SkeletonLayout({ variant, layout }: SkeletonLayout.Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export declare namespace SkeletonLayout {
|
|
4
|
-
type Variant = 'mobile' | 'desktop';
|
|
5
|
-
type Props = {
|
|
6
|
-
variant: Variant;
|
|
7
|
-
layout?: Readonly<BlockLayout>;
|
|
8
|
-
};
|
|
9
|
-
}
|