@kubex/zinc 1.1.64 → 1.1.65
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/custom-elements.json +246 -27
- package/dist/vscode.html-custom-data.json +13 -3
- package/dist/web-types.json +44 -5
- package/dist/zn.d.ts +46 -11
- package/dist/zn.min.js +441 -389
- package/docs/pages/components/remarkd-editor.md +25 -9
- package/package.json +2 -2
- package/src/components/page-builder/page-builder.component.ts +118 -54
- package/src/components/query-builder/query-builder.component.ts +2 -1
- package/src/components/remarkd-editor/remarkd-editor.component.ts +240 -55
- package/src/components/remarkd-editor/remarkd-editor.scss +106 -3
- package/src/components/remarkd-editor/remarkd-editor.test.ts +40 -6
- package/web-test-runner.config.js +2 -2
|
@@ -24847,6 +24847,34 @@
|
|
|
24847
24847
|
"static": true,
|
|
24848
24848
|
"default": "{ 'zn-collapsible': ZnCollapsible, 'zn-icon': ZnIcon, 'zn-input': ZnInput, 'zn-page-palette-item': ZnPagePaletteItem, 'zn-page-section-card': ZnPageSectionCard, }"
|
|
24849
24849
|
},
|
|
24850
|
+
{
|
|
24851
|
+
"kind": "field",
|
|
24852
|
+
"name": "formControlController",
|
|
24853
|
+
"privacy": "private",
|
|
24854
|
+
"readonly": true,
|
|
24855
|
+
"default": "new FormControlController(this)"
|
|
24856
|
+
},
|
|
24857
|
+
{
|
|
24858
|
+
"kind": "field",
|
|
24859
|
+
"name": "name",
|
|
24860
|
+
"type": {
|
|
24861
|
+
"text": "string"
|
|
24862
|
+
},
|
|
24863
|
+
"default": "''",
|
|
24864
|
+
"description": "The name of the control, submitted as a name/value pair with form data.",
|
|
24865
|
+
"attribute": "name"
|
|
24866
|
+
},
|
|
24867
|
+
{
|
|
24868
|
+
"kind": "field",
|
|
24869
|
+
"name": "form",
|
|
24870
|
+
"type": {
|
|
24871
|
+
"text": "string"
|
|
24872
|
+
},
|
|
24873
|
+
"default": "''",
|
|
24874
|
+
"description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
|
|
24875
|
+
"attribute": "form",
|
|
24876
|
+
"reflects": true
|
|
24877
|
+
},
|
|
24850
24878
|
{
|
|
24851
24879
|
"kind": "field",
|
|
24852
24880
|
"name": "config",
|
|
@@ -24973,7 +25001,7 @@
|
|
|
24973
25001
|
"kind": "field",
|
|
24974
25002
|
"name": "_slotDragOver",
|
|
24975
25003
|
"type": {
|
|
24976
|
-
"text": "{containerId: string; index: number} | null"
|
|
25004
|
+
"text": "{ containerId: string; index: number } | null"
|
|
24977
25005
|
},
|
|
24978
25006
|
"privacy": "private",
|
|
24979
25007
|
"default": "null",
|
|
@@ -24983,7 +25011,7 @@
|
|
|
24983
25011
|
"kind": "field",
|
|
24984
25012
|
"name": "_slotPicker",
|
|
24985
25013
|
"type": {
|
|
24986
|
-
"text": "{containerId: string; index: number} | null"
|
|
25014
|
+
"text": "{ containerId: string; index: number } | null"
|
|
24987
25015
|
},
|
|
24988
25016
|
"privacy": "private",
|
|
24989
25017
|
"default": "null",
|
|
@@ -25032,6 +25060,78 @@
|
|
|
25032
25060
|
},
|
|
25033
25061
|
"description": "Replaces the page state wholesale (does not emit zn-page-change)."
|
|
25034
25062
|
},
|
|
25063
|
+
{
|
|
25064
|
+
"kind": "field",
|
|
25065
|
+
"name": "value",
|
|
25066
|
+
"type": {
|
|
25067
|
+
"text": "string"
|
|
25068
|
+
},
|
|
25069
|
+
"description": "Replaces the page state from a JSON string (does not emit zn-page-change)."
|
|
25070
|
+
},
|
|
25071
|
+
{
|
|
25072
|
+
"kind": "field",
|
|
25073
|
+
"name": "defaultValue",
|
|
25074
|
+
"description": "The serialised state of the last externally loaded page — restored on form reset."
|
|
25075
|
+
},
|
|
25076
|
+
{
|
|
25077
|
+
"kind": "field",
|
|
25078
|
+
"name": "validity",
|
|
25079
|
+
"type": {
|
|
25080
|
+
"text": "ValidityState"
|
|
25081
|
+
},
|
|
25082
|
+
"description": "Gets the validity state object.",
|
|
25083
|
+
"readonly": true
|
|
25084
|
+
},
|
|
25085
|
+
{
|
|
25086
|
+
"kind": "field",
|
|
25087
|
+
"name": "validationMessage",
|
|
25088
|
+
"type": {
|
|
25089
|
+
"text": "string"
|
|
25090
|
+
},
|
|
25091
|
+
"description": "Gets the validation message.",
|
|
25092
|
+
"readonly": true
|
|
25093
|
+
},
|
|
25094
|
+
{
|
|
25095
|
+
"kind": "method",
|
|
25096
|
+
"name": "checkValidity",
|
|
25097
|
+
"return": {
|
|
25098
|
+
"type": {
|
|
25099
|
+
"text": "boolean"
|
|
25100
|
+
}
|
|
25101
|
+
},
|
|
25102
|
+
"description": "Checks for validity but does not show a validation message."
|
|
25103
|
+
},
|
|
25104
|
+
{
|
|
25105
|
+
"kind": "method",
|
|
25106
|
+
"name": "getForm",
|
|
25107
|
+
"return": {
|
|
25108
|
+
"type": {
|
|
25109
|
+
"text": "HTMLFormElement | null"
|
|
25110
|
+
}
|
|
25111
|
+
},
|
|
25112
|
+
"description": "Gets the associated form, if one exists."
|
|
25113
|
+
},
|
|
25114
|
+
{
|
|
25115
|
+
"kind": "method",
|
|
25116
|
+
"name": "reportValidity",
|
|
25117
|
+
"return": {
|
|
25118
|
+
"type": {
|
|
25119
|
+
"text": "boolean"
|
|
25120
|
+
}
|
|
25121
|
+
},
|
|
25122
|
+
"description": "Checks for validity and shows the browser's validation message if the control is invalid."
|
|
25123
|
+
},
|
|
25124
|
+
{
|
|
25125
|
+
"kind": "method",
|
|
25126
|
+
"name": "setCustomValidity",
|
|
25127
|
+
"parameters": [
|
|
25128
|
+
{
|
|
25129
|
+
"name": "_message",
|
|
25130
|
+
"default": "''"
|
|
25131
|
+
}
|
|
25132
|
+
],
|
|
25133
|
+
"description": "Sets a custom validation message. Pass an empty string to restore validity."
|
|
25134
|
+
},
|
|
25035
25135
|
{
|
|
25036
25136
|
"kind": "method",
|
|
25037
25137
|
"name": "handleConfigChange"
|
|
@@ -25157,7 +25257,7 @@
|
|
|
25157
25257
|
"kind": "field",
|
|
25158
25258
|
"name": "_restorePrompt",
|
|
25159
25259
|
"type": {
|
|
25160
|
-
"text": "{savedAt: number} | null"
|
|
25260
|
+
"text": "{ savedAt: number } | null"
|
|
25161
25261
|
},
|
|
25162
25262
|
"privacy": "private",
|
|
25163
25263
|
"default": "null",
|
|
@@ -25195,7 +25295,7 @@
|
|
|
25195
25295
|
"privacy": "private",
|
|
25196
25296
|
"return": {
|
|
25197
25297
|
"type": {
|
|
25198
|
-
"text": "{savedAt: number; state: PageState} | null"
|
|
25298
|
+
"text": "{ savedAt: number; state: PageState } | null"
|
|
25199
25299
|
}
|
|
25200
25300
|
},
|
|
25201
25301
|
"description": "The stored auto-save, purging it when past its TTL (or unreadable)."
|
|
@@ -25690,7 +25790,7 @@
|
|
|
25690
25790
|
{
|
|
25691
25791
|
"name": "drop",
|
|
25692
25792
|
"type": {
|
|
25693
|
-
"text": "{over: (e: DragEvent) => void; drop: (e: DragEvent) => void}"
|
|
25793
|
+
"text": "{ over: (e: DragEvent) => void; drop: (e: DragEvent) => void }"
|
|
25694
25794
|
}
|
|
25695
25795
|
},
|
|
25696
25796
|
{
|
|
@@ -25887,6 +25987,24 @@
|
|
|
25887
25987
|
}
|
|
25888
25988
|
],
|
|
25889
25989
|
"attributes": [
|
|
25990
|
+
{
|
|
25991
|
+
"name": "name",
|
|
25992
|
+
"type": {
|
|
25993
|
+
"text": "string"
|
|
25994
|
+
},
|
|
25995
|
+
"default": "''",
|
|
25996
|
+
"description": "The name of the control, submitted as a name/value pair with form data.",
|
|
25997
|
+
"fieldName": "name"
|
|
25998
|
+
},
|
|
25999
|
+
{
|
|
26000
|
+
"name": "form",
|
|
26001
|
+
"type": {
|
|
26002
|
+
"text": "string"
|
|
26003
|
+
},
|
|
26004
|
+
"default": "''",
|
|
26005
|
+
"description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
|
|
26006
|
+
"fieldName": "form"
|
|
26007
|
+
},
|
|
25890
26008
|
{
|
|
25891
26009
|
"name": "config",
|
|
25892
26010
|
"type": {
|
|
@@ -31582,6 +31700,10 @@
|
|
|
31582
31700
|
{
|
|
31583
31701
|
"description": "The context menu opened by typing \"/\" in a block.",
|
|
31584
31702
|
"name": "slash-menu"
|
|
31703
|
+
},
|
|
31704
|
+
{
|
|
31705
|
+
"description": "The caption / alignment / size panel shown when an image block is clicked.",
|
|
31706
|
+
"name": "image-controls"
|
|
31585
31707
|
}
|
|
31586
31708
|
],
|
|
31587
31709
|
"members": [
|
|
@@ -31674,25 +31796,25 @@
|
|
|
31674
31796
|
},
|
|
31675
31797
|
{
|
|
31676
31798
|
"kind": "field",
|
|
31677
|
-
"name": "
|
|
31799
|
+
"name": "imagePickerIndex",
|
|
31678
31800
|
"type": {
|
|
31679
|
-
"text": "
|
|
31801
|
+
"text": "number | null"
|
|
31680
31802
|
},
|
|
31681
31803
|
"privacy": "private",
|
|
31682
|
-
"default": "
|
|
31804
|
+
"default": "null"
|
|
31683
31805
|
},
|
|
31684
31806
|
{
|
|
31685
31807
|
"kind": "field",
|
|
31686
|
-
"name": "
|
|
31808
|
+
"name": "imageEdit",
|
|
31687
31809
|
"type": {
|
|
31688
|
-
"text": "
|
|
31810
|
+
"text": "ImageBlockData | null"
|
|
31689
31811
|
},
|
|
31690
31812
|
"privacy": "private",
|
|
31691
31813
|
"default": "null"
|
|
31692
31814
|
},
|
|
31693
31815
|
{
|
|
31694
31816
|
"kind": "field",
|
|
31695
|
-
"name": "
|
|
31817
|
+
"name": "dropIndicator",
|
|
31696
31818
|
"type": {
|
|
31697
31819
|
"text": "number | null"
|
|
31698
31820
|
},
|
|
@@ -31701,21 +31823,21 @@
|
|
|
31701
31823
|
},
|
|
31702
31824
|
{
|
|
31703
31825
|
"kind": "field",
|
|
31704
|
-
"name": "
|
|
31826
|
+
"name": "dragIndex",
|
|
31705
31827
|
"type": {
|
|
31706
|
-
"text": "
|
|
31828
|
+
"text": "number | null"
|
|
31707
31829
|
},
|
|
31708
31830
|
"privacy": "private",
|
|
31709
|
-
"default": "
|
|
31831
|
+
"default": "null"
|
|
31710
31832
|
},
|
|
31711
31833
|
{
|
|
31712
31834
|
"kind": "field",
|
|
31713
|
-
"name": "
|
|
31835
|
+
"name": "editShell",
|
|
31714
31836
|
"type": {
|
|
31715
|
-
"text": "
|
|
31837
|
+
"text": "string"
|
|
31716
31838
|
},
|
|
31717
31839
|
"privacy": "private",
|
|
31718
|
-
"default": "
|
|
31840
|
+
"default": "''"
|
|
31719
31841
|
},
|
|
31720
31842
|
{
|
|
31721
31843
|
"kind": "field",
|
|
@@ -31799,7 +31921,7 @@
|
|
|
31799
31921
|
"text": "string"
|
|
31800
31922
|
},
|
|
31801
31923
|
"default": "''",
|
|
31802
|
-
"description": "Endpoint for image uploads. Posting the file
|
|
31924
|
+
"description": "Endpoint for image uploads — required for image support. Posting the file\nmetadata here must return `{uploadPath, uploadUrl}`; the file is then PUT\nto `uploadUrl` and the returned `uploadPath` is embedded as the image URL.",
|
|
31803
31925
|
"attribute": "attachment-url"
|
|
31804
31926
|
},
|
|
31805
31927
|
{
|
|
@@ -32002,6 +32124,43 @@
|
|
|
32002
32124
|
}
|
|
32003
32125
|
]
|
|
32004
32126
|
},
|
|
32127
|
+
{
|
|
32128
|
+
"kind": "method",
|
|
32129
|
+
"name": "parseImageBlock",
|
|
32130
|
+
"privacy": "private",
|
|
32131
|
+
"return": {
|
|
32132
|
+
"type": {
|
|
32133
|
+
"text": "ImageBlockData | null"
|
|
32134
|
+
}
|
|
32135
|
+
},
|
|
32136
|
+
"parameters": [
|
|
32137
|
+
{
|
|
32138
|
+
"name": "block",
|
|
32139
|
+
"type": {
|
|
32140
|
+
"text": "string"
|
|
32141
|
+
}
|
|
32142
|
+
}
|
|
32143
|
+
],
|
|
32144
|
+
"description": "Parses a block that is purely an image (with optional caption/align lines)."
|
|
32145
|
+
},
|
|
32146
|
+
{
|
|
32147
|
+
"kind": "method",
|
|
32148
|
+
"name": "serializeImageBlock",
|
|
32149
|
+
"privacy": "private",
|
|
32150
|
+
"return": {
|
|
32151
|
+
"type": {
|
|
32152
|
+
"text": "string"
|
|
32153
|
+
}
|
|
32154
|
+
},
|
|
32155
|
+
"parameters": [
|
|
32156
|
+
{
|
|
32157
|
+
"name": "data",
|
|
32158
|
+
"type": {
|
|
32159
|
+
"text": "ImageBlockData"
|
|
32160
|
+
}
|
|
32161
|
+
}
|
|
32162
|
+
]
|
|
32163
|
+
},
|
|
32005
32164
|
{
|
|
32006
32165
|
"kind": "method",
|
|
32007
32166
|
"name": "toggleCheckbox",
|
|
@@ -32041,6 +32200,44 @@
|
|
|
32041
32200
|
}
|
|
32042
32201
|
]
|
|
32043
32202
|
},
|
|
32203
|
+
{
|
|
32204
|
+
"kind": "method",
|
|
32205
|
+
"name": "updateImageEdit",
|
|
32206
|
+
"privacy": "private",
|
|
32207
|
+
"parameters": [
|
|
32208
|
+
{
|
|
32209
|
+
"name": "patch",
|
|
32210
|
+
"type": {
|
|
32211
|
+
"text": "Partial<ImageBlockData>"
|
|
32212
|
+
}
|
|
32213
|
+
}
|
|
32214
|
+
]
|
|
32215
|
+
},
|
|
32216
|
+
{
|
|
32217
|
+
"kind": "field",
|
|
32218
|
+
"name": "saveImageEdit",
|
|
32219
|
+
"privacy": "private"
|
|
32220
|
+
},
|
|
32221
|
+
{
|
|
32222
|
+
"kind": "field",
|
|
32223
|
+
"name": "closeImageEdit",
|
|
32224
|
+
"privacy": "private"
|
|
32225
|
+
},
|
|
32226
|
+
{
|
|
32227
|
+
"kind": "field",
|
|
32228
|
+
"name": "deleteImageBlock",
|
|
32229
|
+
"privacy": "private"
|
|
32230
|
+
},
|
|
32231
|
+
{
|
|
32232
|
+
"kind": "field",
|
|
32233
|
+
"name": "editImageSource",
|
|
32234
|
+
"privacy": "private"
|
|
32235
|
+
},
|
|
32236
|
+
{
|
|
32237
|
+
"kind": "field",
|
|
32238
|
+
"name": "handleImageControlsKeydown",
|
|
32239
|
+
"privacy": "private"
|
|
32240
|
+
},
|
|
32044
32241
|
{
|
|
32045
32242
|
"kind": "method",
|
|
32046
32243
|
"name": "computeEditShell",
|
|
@@ -32084,6 +32281,19 @@
|
|
|
32084
32281
|
}
|
|
32085
32282
|
]
|
|
32086
32283
|
},
|
|
32284
|
+
{
|
|
32285
|
+
"kind": "method",
|
|
32286
|
+
"name": "deleteBlock",
|
|
32287
|
+
"privacy": "private",
|
|
32288
|
+
"parameters": [
|
|
32289
|
+
{
|
|
32290
|
+
"name": "index",
|
|
32291
|
+
"type": {
|
|
32292
|
+
"text": "number"
|
|
32293
|
+
}
|
|
32294
|
+
}
|
|
32295
|
+
]
|
|
32296
|
+
},
|
|
32087
32297
|
{
|
|
32088
32298
|
"kind": "method",
|
|
32089
32299
|
"name": "insertDraftBlock",
|
|
@@ -32247,12 +32457,12 @@
|
|
|
32247
32457
|
},
|
|
32248
32458
|
{
|
|
32249
32459
|
"kind": "field",
|
|
32250
|
-
"name": "
|
|
32460
|
+
"name": "closeImagePicker",
|
|
32251
32461
|
"privacy": "private"
|
|
32252
32462
|
},
|
|
32253
32463
|
{
|
|
32254
32464
|
"kind": "field",
|
|
32255
|
-
"name": "
|
|
32465
|
+
"name": "handleImagePicked",
|
|
32256
32466
|
"privacy": "private"
|
|
32257
32467
|
},
|
|
32258
32468
|
{
|
|
@@ -32323,6 +32533,11 @@
|
|
|
32323
32533
|
"name": "renderSlashMenu",
|
|
32324
32534
|
"privacy": "private"
|
|
32325
32535
|
},
|
|
32536
|
+
{
|
|
32537
|
+
"kind": "method",
|
|
32538
|
+
"name": "renderImageControls",
|
|
32539
|
+
"privacy": "private"
|
|
32540
|
+
},
|
|
32326
32541
|
{
|
|
32327
32542
|
"kind": "method",
|
|
32328
32543
|
"name": "renderBlock",
|
|
@@ -32344,7 +32559,13 @@
|
|
|
32344
32559
|
},
|
|
32345
32560
|
{
|
|
32346
32561
|
"kind": "method",
|
|
32347
|
-
"name": "
|
|
32562
|
+
"name": "renderBody",
|
|
32563
|
+
"privacy": "private",
|
|
32564
|
+
"description": "The block views, with the inline image picker spliced in when active."
|
|
32565
|
+
},
|
|
32566
|
+
{
|
|
32567
|
+
"kind": "method",
|
|
32568
|
+
"name": "renderImagePicker",
|
|
32348
32569
|
"privacy": "private"
|
|
32349
32570
|
}
|
|
32350
32571
|
],
|
|
@@ -32392,7 +32613,7 @@
|
|
|
32392
32613
|
"text": "string"
|
|
32393
32614
|
},
|
|
32394
32615
|
"default": "''",
|
|
32395
|
-
"description": "Endpoint for image uploads. Posting the file
|
|
32616
|
+
"description": "Endpoint for image uploads — required for image support. Posting the file\nmetadata here must return `{uploadPath, uploadUrl}`; the file is then PUT\nto `uploadUrl` and the returned `uploadPath` is embedded as the image URL.",
|
|
32396
32617
|
"fieldName": "attachmentUrl"
|
|
32397
32618
|
},
|
|
32398
32619
|
{
|
|
@@ -32431,7 +32652,7 @@
|
|
|
32431
32652
|
"tagNameWithoutPrefix": "remarkd-editor",
|
|
32432
32653
|
"tagName": "zn-remarkd-editor",
|
|
32433
32654
|
"customElement": true,
|
|
32434
|
-
"jsDoc": "/**\n * @summary A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n * @documentation https://zinc.style/components/remarkd-editor\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-button\n * @dependency zn-button-group\n * @dependency zn-icon\n * @dependency zn-
|
|
32655
|
+
"jsDoc": "/**\n * @summary A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n * @documentation https://zinc.style/components/remarkd-editor\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-button\n * @dependency zn-button-group\n * @dependency zn-icon\n * @dependency zn-file\n *\n * @event zn-input - Emitted on each keystroke while editing a block.\n * @event zn-change - Emitted when a block edit is committed and the value changes.\n *\n * @csspart base - The component's base wrapper.\n * @csspart toolbar - The always-visible block-insert toolbar.\n * @csspart block - A rendered block wrapper.\n * @csspart rendered - The rendered remarkd output of a block.\n * @csspart input - The textarea shown while editing a block.\n * @csspart slash-menu - The context menu opened by typing \"/\" in a block.\n * @csspart image-controls - The caption / alignment / size panel shown when an image block is clicked.\n */",
|
|
32435
32656
|
"documentation": "https://zinc.style/components/remarkd-editor",
|
|
32436
32657
|
"status": "experimental",
|
|
32437
32658
|
"since": "1.0",
|
|
@@ -32439,9 +32660,7 @@
|
|
|
32439
32660
|
"zn-button",
|
|
32440
32661
|
"zn-button-group",
|
|
32441
32662
|
"zn-icon",
|
|
32442
|
-
"zn-
|
|
32443
|
-
"zn-file",
|
|
32444
|
-
"zn-input"
|
|
32663
|
+
"zn-file"
|
|
32445
32664
|
]
|
|
32446
32665
|
}
|
|
32447
32666
|
],
|
|
@@ -42082,7 +42301,7 @@
|
|
|
42082
42301
|
"package": {
|
|
42083
42302
|
"name": "@kubex/zinc",
|
|
42084
42303
|
"description": "A collection of web components for building web applications based off of @shoelace-style/Shoelace",
|
|
42085
|
-
"version": "1.1.
|
|
42304
|
+
"version": "1.1.65",
|
|
42086
42305
|
"author": "",
|
|
42087
42306
|
"license": "MIT"
|
|
42088
42307
|
}
|
|
@@ -2646,8 +2646,18 @@
|
|
|
2646
2646
|
},
|
|
2647
2647
|
{
|
|
2648
2648
|
"name": "zn-page-builder",
|
|
2649
|
-
"description": "A config-driven page composer: a palette of predefined section types, a linear\ncanvas of section cards, and an inspector for editing each section's content.\n---\n\n\n### **Events:**\n - **zn-page-change** - Emitted whenever the page state changes. `event.detail.state` is the new PageState.\n- **zn-page-selection-change** - Emitted when the selected section changes. `event.detail.sectionId`.\n\n### **Methods:**\n - **addSection(type: _string_, index: _number_): _PageSection | null_** - Adds a section of a registered type at `index` (default: end). Returns null for unknown types.\n- **addSectionToSlot(type: _string_, containerId: _string_, slotIndex: _number_): _PageSection | null_** - Adds a new section of a registered type into a container's slot. Returns null if not allowed.\n\n### **Slots:**\n - **config** - `<template type=\"…\">` declarations; never displayed. Each template's attributes (type, label, icon, icon-library, color, category, description, slots, accepts) declare a palette entry and its content declares the inspector form for that type. `slots` makes the section a container with that many child slots; `accepts` is a comma-separated list of the type keys its slots allow.\n- **header-left** - Actions shown on the left of the header bar.\n- **header-right** - Actions shown on the right of the header bar.\n\n### **CSS Parts:**\n - **base** - The grid wrapper.\n- **header** - The full-width header action bar (only rendered when header slots are filled).\n- **palette** - The left palette panel.\n- **canvas** - The centre section-card canvas.\n- **inspector** - The right panel while a section is selected.",
|
|
2649
|
+
"description": "A config-driven page composer: a palette of predefined section types, a linear\ncanvas of section cards, and an inspector for editing each section's content.\n---\n\n\n### **Events:**\n - **zn-page-change** - Emitted whenever the page state changes. `event.detail.state` is the new PageState.\n- **zn-page-selection-change** - Emitted when the selected section changes. `event.detail.sectionId`.\n\n### **Methods:**\n - **checkValidity(): _boolean_** - Checks for validity but does not show a validation message.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(_message)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **addSection(type: _string_, index: _number_): _PageSection | null_** - Adds a section of a registered type at `index` (default: end). Returns null for unknown types.\n- **addSectionToSlot(type: _string_, containerId: _string_, slotIndex: _number_): _PageSection | null_** - Adds a new section of a registered type into a container's slot. Returns null if not allowed.\n\n### **Slots:**\n - **config** - `<template type=\"…\">` declarations; never displayed. Each template's attributes (type, label, icon, icon-library, color, category, description, slots, accepts) declare a palette entry and its content declares the inspector form for that type. `slots` makes the section a container with that many child slots; `accepts` is a comma-separated list of the type keys its slots allow.\n- **header-left** - Actions shown on the left of the header bar.\n- **header-right** - Actions shown on the right of the header bar.\n\n### **CSS Parts:**\n - **base** - The grid wrapper.\n- **header** - The full-width header action bar (only rendered when header slots are filled).\n- **palette** - The left palette panel.\n- **canvas** - The centre section-card canvas.\n- **inspector** - The right panel while a section is selected.",
|
|
2650
2650
|
"attributes": [
|
|
2651
|
+
{
|
|
2652
|
+
"name": "name",
|
|
2653
|
+
"description": "The name of the control, submitted as a name/value pair with form data.",
|
|
2654
|
+
"values": []
|
|
2655
|
+
},
|
|
2656
|
+
{
|
|
2657
|
+
"name": "form",
|
|
2658
|
+
"description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
|
|
2659
|
+
"values": []
|
|
2660
|
+
},
|
|
2651
2661
|
{
|
|
2652
2662
|
"name": "config",
|
|
2653
2663
|
"description": "The page state as a JSON string. Parsed on set; invalid JSON is ignored with a warning.",
|
|
@@ -3255,7 +3265,7 @@
|
|
|
3255
3265
|
},
|
|
3256
3266
|
{
|
|
3257
3267
|
"name": "zn-remarkd-editor",
|
|
3258
|
-
"description": "A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted on each keystroke while editing a block.\n- **zn-change** - Emitted when a block edit is committed and the value changes.\n\n### **Methods:**\n - **focus()** - Starts editing the first block, or a new block if the document is empty.\n- **blur()** - Commits any in-progress block edit.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The always-visible block-insert toolbar.\n- **block** - A rendered block wrapper.\n- **rendered** - The rendered remarkd output of a block.\n- **input** - The textarea shown while editing a block.\n- **slash-menu** - The context menu opened by typing \"/\" in a block.",
|
|
3268
|
+
"description": "A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted on each keystroke while editing a block.\n- **zn-change** - Emitted when a block edit is committed and the value changes.\n\n### **Methods:**\n - **focus()** - Starts editing the first block, or a new block if the document is empty.\n- **blur()** - Commits any in-progress block edit.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The always-visible block-insert toolbar.\n- **block** - A rendered block wrapper.\n- **rendered** - The rendered remarkd output of a block.\n- **input** - The textarea shown while editing a block.\n- **slash-menu** - The context menu opened by typing \"/\" in a block.\n- **image-controls** - The caption / alignment / size panel shown when an image block is clicked.",
|
|
3259
3269
|
"attributes": [
|
|
3260
3270
|
{
|
|
3261
3271
|
"name": "name",
|
|
@@ -3274,7 +3284,7 @@
|
|
|
3274
3284
|
},
|
|
3275
3285
|
{
|
|
3276
3286
|
"name": "attachment-url",
|
|
3277
|
-
"description": "Endpoint for image uploads. Posting the file
|
|
3287
|
+
"description": "Endpoint for image uploads — required for image support. Posting the file\nmetadata here must return `{uploadPath, uploadUrl}`; the file is then PUT\nto `uploadUrl` and the returned `uploadPath` is embedded as the image URL.",
|
|
3278
3288
|
"values": []
|
|
3279
3289
|
},
|
|
3280
3290
|
{
|
package/dist/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"name": "@kubex/zinc",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.65",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -6234,9 +6234,19 @@
|
|
|
6234
6234
|
},
|
|
6235
6235
|
{
|
|
6236
6236
|
"name": "zn-page-builder",
|
|
6237
|
-
"description": "A config-driven page composer: a palette of predefined section types, a linear\ncanvas of section cards, and an inspector for editing each section's content.\n---\n\n\n### **Events:**\n - **zn-page-change** - Emitted whenever the page state changes. `event.detail.state` is the new PageState.\n- **zn-page-selection-change** - Emitted when the selected section changes. `event.detail.sectionId`.\n\n### **Methods:**\n - **addSection(type: _string_, index: _number_): _PageSection | null_** - Adds a section of a registered type at `index` (default: end). Returns null for unknown types.\n- **addSectionToSlot(type: _string_, containerId: _string_, slotIndex: _number_): _PageSection | null_** - Adds a new section of a registered type into a container's slot. Returns null if not allowed.\n\n### **Slots:**\n - **config** - `<template type=\"…\">` declarations; never displayed. Each template's attributes (type, label, icon, icon-library, color, category, description, slots, accepts) declare a palette entry and its content declares the inspector form for that type. `slots` makes the section a container with that many child slots; `accepts` is a comma-separated list of the type keys its slots allow.\n- **header-left** - Actions shown on the left of the header bar.\n- **header-right** - Actions shown on the right of the header bar.\n\n### **CSS Parts:**\n - **base** - The grid wrapper.\n- **header** - The full-width header action bar (only rendered when header slots are filled).\n- **palette** - The left palette panel.\n- **canvas** - The centre section-card canvas.\n- **inspector** - The right panel while a section is selected.",
|
|
6237
|
+
"description": "A config-driven page composer: a palette of predefined section types, a linear\ncanvas of section cards, and an inspector for editing each section's content.\n---\n\n\n### **Events:**\n - **zn-page-change** - Emitted whenever the page state changes. `event.detail.state` is the new PageState.\n- **zn-page-selection-change** - Emitted when the selected section changes. `event.detail.sectionId`.\n\n### **Methods:**\n - **checkValidity(): _boolean_** - Checks for validity but does not show a validation message.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(_message)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **addSection(type: _string_, index: _number_): _PageSection | null_** - Adds a section of a registered type at `index` (default: end). Returns null for unknown types.\n- **addSectionToSlot(type: _string_, containerId: _string_, slotIndex: _number_): _PageSection | null_** - Adds a new section of a registered type into a container's slot. Returns null if not allowed.\n\n### **Slots:**\n - **config** - `<template type=\"…\">` declarations; never displayed. Each template's attributes (type, label, icon, icon-library, color, category, description, slots, accepts) declare a palette entry and its content declares the inspector form for that type. `slots` makes the section a container with that many child slots; `accepts` is a comma-separated list of the type keys its slots allow.\n- **header-left** - Actions shown on the left of the header bar.\n- **header-right** - Actions shown on the right of the header bar.\n\n### **CSS Parts:**\n - **base** - The grid wrapper.\n- **header** - The full-width header action bar (only rendered when header slots are filled).\n- **palette** - The left palette panel.\n- **canvas** - The centre section-card canvas.\n- **inspector** - The right panel while a section is selected.",
|
|
6238
6238
|
"doc-url": "",
|
|
6239
6239
|
"attributes": [
|
|
6240
|
+
{
|
|
6241
|
+
"name": "name",
|
|
6242
|
+
"description": "The name of the control, submitted as a name/value pair with form data.",
|
|
6243
|
+
"value": { "type": "string", "default": "''" }
|
|
6244
|
+
},
|
|
6245
|
+
{
|
|
6246
|
+
"name": "form",
|
|
6247
|
+
"description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
|
|
6248
|
+
"value": { "type": "string", "default": "''" }
|
|
6249
|
+
},
|
|
6240
6250
|
{
|
|
6241
6251
|
"name": "config",
|
|
6242
6252
|
"description": "The page state as a JSON string. Parsed on set; invalid JSON is ignored with a warning.",
|
|
@@ -6292,6 +6302,16 @@
|
|
|
6292
6302
|
],
|
|
6293
6303
|
"js": {
|
|
6294
6304
|
"properties": [
|
|
6305
|
+
{
|
|
6306
|
+
"name": "name",
|
|
6307
|
+
"description": "The name of the control, submitted as a name/value pair with form data.",
|
|
6308
|
+
"type": "string"
|
|
6309
|
+
},
|
|
6310
|
+
{
|
|
6311
|
+
"name": "form",
|
|
6312
|
+
"description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
|
|
6313
|
+
"type": "string"
|
|
6314
|
+
},
|
|
6295
6315
|
{
|
|
6296
6316
|
"name": "config",
|
|
6297
6317
|
"description": "The page state as a JSON string. Parsed on set; invalid JSON is ignored with a warning.",
|
|
@@ -6324,6 +6344,25 @@
|
|
|
6324
6344
|
"description": "Replaces the page state wholesale (does not emit zn-page-change).",
|
|
6325
6345
|
"type": "PageState"
|
|
6326
6346
|
},
|
|
6347
|
+
{
|
|
6348
|
+
"name": "value",
|
|
6349
|
+
"description": "Replaces the page state from a JSON string (does not emit zn-page-change).",
|
|
6350
|
+
"type": "string"
|
|
6351
|
+
},
|
|
6352
|
+
{
|
|
6353
|
+
"name": "defaultValue",
|
|
6354
|
+
"description": "The serialised state of the last externally loaded page — restored on form reset."
|
|
6355
|
+
},
|
|
6356
|
+
{
|
|
6357
|
+
"name": "validity",
|
|
6358
|
+
"description": "Gets the validity state object.",
|
|
6359
|
+
"type": "ValidityState"
|
|
6360
|
+
},
|
|
6361
|
+
{
|
|
6362
|
+
"name": "validationMessage",
|
|
6363
|
+
"description": "Gets the validation message.",
|
|
6364
|
+
"type": "string"
|
|
6365
|
+
},
|
|
6327
6366
|
{
|
|
6328
6367
|
"name": "restoreAutoSave",
|
|
6329
6368
|
"description": "Load the auto-saved page, if one exists within the 1-day TTL."
|
|
@@ -7591,7 +7630,7 @@
|
|
|
7591
7630
|
},
|
|
7592
7631
|
{
|
|
7593
7632
|
"name": "zn-remarkd-editor",
|
|
7594
|
-
"description": "A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted on each keystroke while editing a block.\n- **zn-change** - Emitted when a block edit is committed and the value changes.\n\n### **Methods:**\n - **focus()** - Starts editing the first block, or a new block if the document is empty.\n- **blur()** - Commits any in-progress block edit.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The always-visible block-insert toolbar.\n- **block** - A rendered block wrapper.\n- **rendered** - The rendered remarkd output of a block.\n- **input** - The textarea shown while editing a block.\n- **slash-menu** - The context menu opened by typing \"/\" in a block.",
|
|
7633
|
+
"description": "A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted on each keystroke while editing a block.\n- **zn-change** - Emitted when a block edit is committed and the value changes.\n\n### **Methods:**\n - **focus()** - Starts editing the first block, or a new block if the document is empty.\n- **blur()** - Commits any in-progress block edit.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The always-visible block-insert toolbar.\n- **block** - A rendered block wrapper.\n- **rendered** - The rendered remarkd output of a block.\n- **input** - The textarea shown while editing a block.\n- **slash-menu** - The context menu opened by typing \"/\" in a block.\n- **image-controls** - The caption / alignment / size panel shown when an image block is clicked.",
|
|
7595
7634
|
"doc-url": "",
|
|
7596
7635
|
"attributes": [
|
|
7597
7636
|
{
|
|
@@ -7611,7 +7650,7 @@
|
|
|
7611
7650
|
},
|
|
7612
7651
|
{
|
|
7613
7652
|
"name": "attachment-url",
|
|
7614
|
-
"description": "Endpoint for image uploads. Posting the file
|
|
7653
|
+
"description": "Endpoint for image uploads — required for image support. Posting the file\nmetadata here must return `{uploadPath, uploadUrl}`; the file is then PUT\nto `uploadUrl` and the returned `uploadPath` is embedded as the image URL.",
|
|
7615
7654
|
"value": { "type": "string", "default": "''" }
|
|
7616
7655
|
},
|
|
7617
7656
|
{
|
|
@@ -7664,7 +7703,7 @@
|
|
|
7664
7703
|
},
|
|
7665
7704
|
{
|
|
7666
7705
|
"name": "attachmentUrl",
|
|
7667
|
-
"description": "Endpoint for image uploads. Posting the file
|
|
7706
|
+
"description": "Endpoint for image uploads — required for image support. Posting the file\nmetadata here must return `{uploadPath, uploadUrl}`; the file is then PUT\nto `uploadUrl` and the returned `uploadPath` is embedded as the image URL.",
|
|
7668
7707
|
"type": "string"
|
|
7669
7708
|
},
|
|
7670
7709
|
{
|