@kubex/zinc 1.1.28 → 1.1.31

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 (52) hide show
  1. package/custom-elements-manifest.config.js +2 -2
  2. package/dist/custom-elements.json +1910 -362
  3. package/dist/vscode.html-custom-data.json +55 -14
  4. package/dist/web-types.json +185 -32
  5. package/dist/zn.d.ts +684 -16
  6. package/dist/zn.min.js +1325 -929
  7. package/docs/pages/components/flow-builder-troubleshooter-demo.njk +106 -78
  8. package/docs/pages/components/flow-builder.md +422 -66
  9. package/docs/pages/components/page-builder.md +167 -0
  10. package/docs/pages/components/settings-container.md +37 -2
  11. package/package.json +1 -1
  12. package/src/components/datepicker/datepicker.scss +0 -10
  13. package/src/components/flow-builder/flow-builder.component.ts +377 -16
  14. package/src/components/flow-builder/flow-builder.scss +398 -250
  15. package/src/components/flow-builder/flow-builder.test.ts +241 -4
  16. package/src/components/flow-builder/flow-layout.ts +42 -17
  17. package/src/components/flow-builder/flow.types.ts +168 -43
  18. package/src/components/flow-builder/modules/flow-branch-conditions/flow-branch-conditions.component.ts +300 -0
  19. package/src/components/flow-builder/modules/flow-branch-conditions/flow-branch-conditions.scss +222 -0
  20. package/src/components/flow-builder/modules/flow-branch-conditions/flow-branch-conditions.test.ts +125 -0
  21. package/src/components/flow-builder/modules/flow-branch-conditions/index.ts +12 -0
  22. package/src/components/flow-builder/modules/flow-canvas/flow-canvas.component.ts +184 -26
  23. package/src/components/flow-builder/modules/flow-canvas/flow-canvas.scss +170 -120
  24. package/src/components/flow-builder/modules/flow-node/flow-node.scss +42 -42
  25. package/src/components/flow-builder/modules/flow-step/flow-step.component.ts +2 -1
  26. package/src/components/flow-builder/modules/flow-step/flow-step.scss +25 -17
  27. package/src/components/header/header.scss +3 -1
  28. package/src/components/icon-picker/icon-picker.component.ts +20 -37
  29. package/src/components/icon-picker/icon-picker.scss +5 -45
  30. package/src/components/page-builder/index.ts +14 -0
  31. package/src/components/page-builder/modules/page-palette-item/index.ts +12 -0
  32. package/src/components/page-builder/modules/page-palette-item/page-palette-item.component.ts +71 -0
  33. package/src/components/page-builder/modules/page-palette-item/page-palette-item.scss +70 -0
  34. package/src/components/page-builder/modules/page-palette-item/page-palette-item.test.ts +20 -0
  35. package/src/components/page-builder/modules/page-section-card/index.ts +12 -0
  36. package/src/components/page-builder/modules/page-section-card/page-section-card.component.ts +93 -0
  37. package/src/components/page-builder/modules/page-section-card/page-section-card.scss +92 -0
  38. package/src/components/page-builder/modules/page-section-card/page-section-card.test.ts +50 -0
  39. package/src/components/page-builder/page-builder.component.ts +1053 -0
  40. package/src/components/page-builder/page-builder.scss +494 -0
  41. package/src/components/page-builder/page-builder.test.ts +464 -0
  42. package/src/components/page-builder/page-registry.ts +48 -0
  43. package/src/components/page-builder/page.types.ts +75 -0
  44. package/src/components/panel/panel.scss +1 -0
  45. package/src/components/settings-container/settings-container.component.ts +74 -9
  46. package/src/components/settings-container/settings-container.scss +75 -0
  47. package/src/components/settings-container/settings-container.test.ts +35 -0
  48. package/src/events/events.ts +2 -0
  49. package/src/events/zn-page-change.ts +9 -0
  50. package/src/events/zn-page-selection-change.ts +7 -0
  51. package/src/zinc.ts +4 -0
  52. package/web-test-runner.config.js +6 -1
@@ -47,79 +47,6 @@
47
47
  }
48
48
  ]
49
49
  },
50
- {
51
- "kind": "javascript-module",
52
- "path": "components/action-bar/action-bar.js",
53
- "declarations": [
54
- {
55
- "kind": "class",
56
- "description": "",
57
- "name": "ZnActionBar",
58
- "cssProperties": [
59
- {
60
- "description": "An example CSS custom property.",
61
- "name": "--example"
62
- }
63
- ],
64
- "cssParts": [
65
- {
66
- "description": "The component's base wrapper.",
67
- "name": "base"
68
- }
69
- ],
70
- "slots": [
71
- {
72
- "description": "The default slot.",
73
- "name": ""
74
- },
75
- {
76
- "description": "An example slot.",
77
- "name": "example"
78
- }
79
- ],
80
- "members": [
81
- {
82
- "kind": "field",
83
- "name": "localize",
84
- "privacy": "private",
85
- "readonly": true,
86
- "default": "new LocalizeController(this)"
87
- }
88
- ],
89
- "events": [
90
- {
91
- "description": "Emitted as an example.",
92
- "name": "zn-event-name"
93
- }
94
- ],
95
- "superclass": {
96
- "name": "ZincElement",
97
- "module": "/src/internal/zinc-element"
98
- },
99
- "summary": "Short summary of the component's intended use.",
100
- "tagNameWithoutPrefix": "action-bar",
101
- "tagName": "zn-action-bar",
102
- "customElement": true,
103
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/action-bar\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
104
- "documentation": "https://zinc.style/components/action-bar",
105
- "status": "experimental",
106
- "since": "1.0",
107
- "dependencies": [
108
- "zn-example"
109
- ]
110
- }
111
- ],
112
- "exports": [
113
- {
114
- "kind": "js",
115
- "name": "default",
116
- "declaration": {
117
- "name": "ZnActionBar",
118
- "module": "components/action-bar/action-bar.js"
119
- }
120
- }
121
- ]
122
- },
123
50
  {
124
51
  "kind": "javascript-module",
125
52
  "path": "components/alert/alert.js",
@@ -296,6 +223,79 @@
296
223
  }
297
224
  ]
298
225
  },
226
+ {
227
+ "kind": "javascript-module",
228
+ "path": "components/action-bar/action-bar.js",
229
+ "declarations": [
230
+ {
231
+ "kind": "class",
232
+ "description": "",
233
+ "name": "ZnActionBar",
234
+ "cssProperties": [
235
+ {
236
+ "description": "An example CSS custom property.",
237
+ "name": "--example"
238
+ }
239
+ ],
240
+ "cssParts": [
241
+ {
242
+ "description": "The component's base wrapper.",
243
+ "name": "base"
244
+ }
245
+ ],
246
+ "slots": [
247
+ {
248
+ "description": "The default slot.",
249
+ "name": ""
250
+ },
251
+ {
252
+ "description": "An example slot.",
253
+ "name": "example"
254
+ }
255
+ ],
256
+ "members": [
257
+ {
258
+ "kind": "field",
259
+ "name": "localize",
260
+ "privacy": "private",
261
+ "readonly": true,
262
+ "default": "new LocalizeController(this)"
263
+ }
264
+ ],
265
+ "events": [
266
+ {
267
+ "description": "Emitted as an example.",
268
+ "name": "zn-event-name"
269
+ }
270
+ ],
271
+ "superclass": {
272
+ "name": "ZincElement",
273
+ "module": "/src/internal/zinc-element"
274
+ },
275
+ "summary": "Short summary of the component's intended use.",
276
+ "tagNameWithoutPrefix": "action-bar",
277
+ "tagName": "zn-action-bar",
278
+ "customElement": true,
279
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/action-bar\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
280
+ "documentation": "https://zinc.style/components/action-bar",
281
+ "status": "experimental",
282
+ "since": "1.0",
283
+ "dependencies": [
284
+ "zn-example"
285
+ ]
286
+ }
287
+ ],
288
+ "exports": [
289
+ {
290
+ "kind": "js",
291
+ "name": "default",
292
+ "declaration": {
293
+ "name": "ZnActionBar",
294
+ "module": "components/action-bar/action-bar.js"
295
+ }
296
+ }
297
+ ]
298
+ },
299
299
  {
300
300
  "kind": "javascript-module",
301
301
  "path": "components/animated-button/animated-button.js",
@@ -13163,7 +13163,7 @@
13163
13163
  ],
13164
13164
  "slots": [
13165
13165
  {
13166
- "description": "`<zn-flow-step>` type declarations; never displayed, each `group`/`category` routes the step into the right tab and collapsible grouping of the rendered panel.",
13166
+ "description": "`<zn-flow-step>` type declarations; never displayed, each `group`/`category` routes the step into the right tab and collapsible grouping of the rendered panel. A step may nest `<zn-flow-filter>` declarations (each holding `<zn-flow-filter-field>`s, whose operator / option choices are nested `<zn-flow-operator>` / `<zn-flow-option>` elements) — or set a `branch-filters` JSON attribute — to drive the built-in branch conditions editor.",
13167
13167
  "name": ""
13168
13168
  },
13169
13169
  {
@@ -13187,7 +13187,7 @@
13187
13187
  "text": "object"
13188
13188
  },
13189
13189
  "static": true,
13190
- "default": "{ 'zn-icon': ZnIcon, 'zn-input': ZnInput, 'zn-tabs': ZnTabs, 'zn-navbar': ZnNavbar, 'zn-flow-canvas': ZnFlowCanvas, 'zn-flow-step-group': ZnFlowStepGroup, }"
13190
+ "default": "{ 'zn-icon': ZnIcon, 'zn-input': ZnInput, 'zn-tabs': ZnTabs, 'zn-navbar': ZnNavbar, 'zn-flow-branch-conditions': ZnFlowBranchConditions, 'zn-flow-canvas': ZnFlowCanvas, 'zn-flow-step-group': ZnFlowStepGroup, }"
13191
13191
  },
13192
13192
  {
13193
13193
  "kind": "field",
@@ -13227,6 +13227,16 @@
13227
13227
  "default": "[]",
13228
13228
  "description": "Node ids flagged as having configuration errors (drives the red node styling)."
13229
13229
  },
13230
+ {
13231
+ "kind": "field",
13232
+ "name": "autoSave",
13233
+ "type": {
13234
+ "text": "number | null"
13235
+ },
13236
+ "default": "null",
13237
+ "description": "Auto-save the flow to localStorage (1-day TTL). Omit to disable. A bare\n`auto-save` saves every 5 minutes; a numeric value sets the interval in\nminutes (`auto-save=\"5\"`). Restore with `restoreAutoSave()`.",
13238
+ "attribute": "auto-save"
13239
+ },
13230
13240
  {
13231
13241
  "kind": "field",
13232
13242
  "name": "entrypointsHint",
@@ -13323,6 +13333,25 @@
13323
13333
  "readonly": true,
13324
13334
  "default": "new HasSlotController(this, 'header-left', 'header-right')"
13325
13335
  },
13336
+ {
13337
+ "kind": "field",
13338
+ "name": "_stepsCollapsed",
13339
+ "type": {
13340
+ "text": "boolean"
13341
+ },
13342
+ "privacy": "private",
13343
+ "default": "false",
13344
+ "description": "Side panels tucked away via their edge chevrons."
13345
+ },
13346
+ {
13347
+ "kind": "field",
13348
+ "name": "_sideCollapsed",
13349
+ "type": {
13350
+ "text": "boolean"
13351
+ },
13352
+ "privacy": "private",
13353
+ "default": "false"
13354
+ },
13326
13355
  {
13327
13356
  "kind": "field",
13328
13357
  "name": "_movingNodeId",
@@ -13418,6 +13447,132 @@
13418
13447
  "privacy": "private",
13419
13448
  "readonly": true
13420
13449
  },
13450
+ {
13451
+ "kind": "field",
13452
+ "name": "_autoSaveTimer",
13453
+ "type": {
13454
+ "text": "number | null"
13455
+ },
13456
+ "privacy": "private",
13457
+ "default": "null"
13458
+ },
13459
+ {
13460
+ "kind": "field",
13461
+ "name": "_statusTimer",
13462
+ "type": {
13463
+ "text": "number | null"
13464
+ },
13465
+ "privacy": "private",
13466
+ "default": "null"
13467
+ },
13468
+ {
13469
+ "kind": "field",
13470
+ "name": "_justSavedTimer",
13471
+ "type": {
13472
+ "text": "number | null"
13473
+ },
13474
+ "privacy": "private",
13475
+ "default": "null"
13476
+ },
13477
+ {
13478
+ "kind": "field",
13479
+ "name": "_restoring",
13480
+ "type": {
13481
+ "text": "boolean"
13482
+ },
13483
+ "privacy": "private",
13484
+ "default": "false",
13485
+ "description": "Guards the restore prompt from re-triggering on restoreAutoSave's own setState."
13486
+ },
13487
+ {
13488
+ "kind": "field",
13489
+ "name": "_lastSavedAt",
13490
+ "type": {
13491
+ "text": "number | null"
13492
+ },
13493
+ "privacy": "private",
13494
+ "default": "null",
13495
+ "description": "Epoch of the newest auto-save (also picked up from storage on start)."
13496
+ },
13497
+ {
13498
+ "kind": "field",
13499
+ "name": "_justSaved",
13500
+ "type": {
13501
+ "text": "boolean"
13502
+ },
13503
+ "privacy": "private",
13504
+ "default": "false",
13505
+ "description": "Briefly true right after a save — flashes \"Auto-saved\" in the status pill."
13506
+ },
13507
+ {
13508
+ "kind": "field",
13509
+ "name": "_statusNow",
13510
+ "privacy": "private",
13511
+ "description": "Re-render clock for the \"last saved Xm ago\" label."
13512
+ },
13513
+ {
13514
+ "kind": "field",
13515
+ "name": "_restorePrompt",
13516
+ "type": {
13517
+ "text": "{ savedAt: number } | null"
13518
+ },
13519
+ "privacy": "private",
13520
+ "default": "null",
13521
+ "description": "A fresh auto-save differing from the loaded flow — offer to restore it."
13522
+ },
13523
+ {
13524
+ "kind": "field",
13525
+ "name": "_autoSaveKey",
13526
+ "type": {
13527
+ "text": "string"
13528
+ },
13529
+ "privacy": "private",
13530
+ "description": "localStorage key for this builder's auto-saves — its id, else its heading.",
13531
+ "readonly": true
13532
+ },
13533
+ {
13534
+ "kind": "method",
13535
+ "name": "_stopAutoSave",
13536
+ "privacy": "private"
13537
+ },
13538
+ {
13539
+ "kind": "method",
13540
+ "name": "_restartAutoSave",
13541
+ "privacy": "private"
13542
+ },
13543
+ {
13544
+ "kind": "field",
13545
+ "name": "_autoSaveTick",
13546
+ "privacy": "private",
13547
+ "description": "An empty canvas is never saved — it would clobber a stored flow with nothing."
13548
+ },
13549
+ {
13550
+ "kind": "method",
13551
+ "name": "_readAutoSave",
13552
+ "privacy": "private",
13553
+ "return": {
13554
+ "type": {
13555
+ "text": "{ savedAt: number; state: FlowState } | null"
13556
+ }
13557
+ },
13558
+ "description": "The stored auto-save, purging it when past its TTL (or unreadable)."
13559
+ },
13560
+ {
13561
+ "kind": "method",
13562
+ "name": "restoreAutoSave",
13563
+ "return": {
13564
+ "type": {
13565
+ "text": "boolean"
13566
+ }
13567
+ },
13568
+ "description": "Load the auto-saved flow, if one exists within the 1-day TTL."
13569
+ },
13570
+ {
13571
+ "kind": "method",
13572
+ "name": "_offerRestoreIfNewer",
13573
+ "privacy": "private",
13574
+ "description": "A flow was just loaded — when a fresh auto-save differs from it, ask the\nuser whether to pick up their draft instead."
13575
+ },
13421
13576
  {
13422
13577
  "kind": "field",
13423
13578
  "name": "_onKeyDown",
@@ -13442,6 +13597,91 @@
13442
13597
  }
13443
13598
  ]
13444
13599
  },
13600
+ {
13601
+ "kind": "method",
13602
+ "name": "_parseFilterOptions",
13603
+ "privacy": "private",
13604
+ "static": true,
13605
+ "return": {
13606
+ "type": {
13607
+ "text": "FlowFilterOption[] | undefined"
13608
+ }
13609
+ },
13610
+ "parameters": [
13611
+ {
13612
+ "name": "attr",
13613
+ "type": {
13614
+ "text": "string | null"
13615
+ }
13616
+ }
13617
+ ],
13618
+ "description": "Parse an operator / option list: a JSON array (strings or `{value,label}`) or comma-separated values."
13619
+ },
13620
+ {
13621
+ "kind": "method",
13622
+ "name": "_nestedFilterOptions",
13623
+ "privacy": "private",
13624
+ "static": true,
13625
+ "return": {
13626
+ "type": {
13627
+ "text": "FlowFilterOption[] | undefined"
13628
+ }
13629
+ },
13630
+ "parameters": [
13631
+ {
13632
+ "name": "el",
13633
+ "type": {
13634
+ "text": "Element"
13635
+ }
13636
+ },
13637
+ {
13638
+ "name": "tag",
13639
+ "type": {
13640
+ "text": "string"
13641
+ }
13642
+ }
13643
+ ],
13644
+ "description": "Option list declared as child elements — the tidy form. The element's text\nis the label; a `value` attribute overrides the stored value:\n`<zn-flow-operator value=\"gte\">at least</zn-flow-operator>`."
13645
+ },
13646
+ {
13647
+ "kind": "method",
13648
+ "name": "_filterFieldFromEl",
13649
+ "privacy": "private",
13650
+ "static": true,
13651
+ "return": {
13652
+ "type": {
13653
+ "text": "FlowFilterField | null"
13654
+ }
13655
+ },
13656
+ "parameters": [
13657
+ {
13658
+ "name": "el",
13659
+ "type": {
13660
+ "text": "Element"
13661
+ }
13662
+ }
13663
+ ]
13664
+ },
13665
+ {
13666
+ "kind": "method",
13667
+ "name": "_parseBranchFilters",
13668
+ "privacy": "private",
13669
+ "static": true,
13670
+ "return": {
13671
+ "type": {
13672
+ "text": "FlowBranchFilter[] | undefined"
13673
+ }
13674
+ },
13675
+ "parameters": [
13676
+ {
13677
+ "name": "el",
13678
+ "type": {
13679
+ "text": "Element"
13680
+ }
13681
+ }
13682
+ ],
13683
+ "description": "A step's branch filters: the `branch-filters` JSON attribute, or nested\n`<zn-flow-filter>` declarations each holding `<zn-flow-filter-field>`s."
13684
+ },
13445
13685
  {
13446
13686
  "kind": "method",
13447
13687
  "name": "_typeFromStep",
@@ -13528,6 +13768,16 @@
13528
13768
  "text": "string"
13529
13769
  }
13530
13770
  },
13771
+ {
13772
+ "kind": "method",
13773
+ "name": "toJSON",
13774
+ "return": {
13775
+ "type": {
13776
+ "text": "FlowState"
13777
+ }
13778
+ },
13779
+ "description": "The full flow state — nodes with their positions, connections, branch\ndata, and notes — ready for persisting. Lets `JSON.stringify(builder)`\nserialize the flow directly, e.g. as a POST body."
13780
+ },
13531
13781
  {
13532
13782
  "kind": "field",
13533
13783
  "name": "undo"
@@ -14064,6 +14314,32 @@
14064
14314
  ],
14065
14315
  "description": "Replace one of the node's output ports (per-instance override), keeping its id."
14066
14316
  },
14317
+ {
14318
+ "kind": "method",
14319
+ "name": "_saveBranchConditions",
14320
+ "privacy": "private",
14321
+ "parameters": [
14322
+ {
14323
+ "name": "node",
14324
+ "type": {
14325
+ "text": "FlowNodeInstance"
14326
+ }
14327
+ },
14328
+ {
14329
+ "name": "port",
14330
+ "type": {
14331
+ "text": "FlowPort"
14332
+ }
14333
+ },
14334
+ {
14335
+ "name": "conditions",
14336
+ "type": {
14337
+ "text": "FlowBranchConditions"
14338
+ }
14339
+ }
14340
+ ],
14341
+ "description": "Persist the built-in conditions editor's draft onto the branch and close it. Undoable."
14342
+ },
14067
14343
  {
14068
14344
  "kind": "method",
14069
14345
  "name": "_renderBranchEditor",
@@ -14098,6 +14374,16 @@
14098
14374
  "name": "_renderSidebar",
14099
14375
  "privacy": "private"
14100
14376
  },
14377
+ {
14378
+ "kind": "method",
14379
+ "name": "_renderAutoSaveStatus",
14380
+ "privacy": "private"
14381
+ },
14382
+ {
14383
+ "kind": "method",
14384
+ "name": "_renderRestorePrompt",
14385
+ "privacy": "private"
14386
+ },
14101
14387
  {
14102
14388
  "kind": "method",
14103
14389
  "name": "_renderPicker",
@@ -14148,6 +14434,15 @@
14148
14434
  "default": "''",
14149
14435
  "fieldName": "subheading"
14150
14436
  },
14437
+ {
14438
+ "name": "auto-save",
14439
+ "type": {
14440
+ "text": "number | null"
14441
+ },
14442
+ "default": "null",
14443
+ "description": "Auto-save the flow to localStorage (1-day TTL). Omit to disable. A bare\n`auto-save` saves every 5 minutes; a numeric value sets the interval in\nminutes (`auto-save=\"5\"`). Restore with `restoreAutoSave()`.",
14444
+ "fieldName": "autoSave"
14445
+ },
14151
14446
  {
14152
14447
  "name": "entrypoints-hint",
14153
14448
  "type": {
@@ -14190,7 +14485,7 @@
14190
14485
  "tagNameWithoutPrefix": "flow-builder",
14191
14486
  "tagName": "zn-flow-builder",
14192
14487
  "customElement": true,
14193
- "jsDoc": "/**\n * @summary A drag-and-drop visual flow builder: steps panel, pan/zoom canvas, and a config inspector.\n * @documentation https://zinc.style/components/flow-builder\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-icon\n * @dependency zn-input\n * @dependency zn-tabs\n * @dependency zn-navbar\n * @dependency zn-flow-canvas\n * @dependency zn-flow-node\n *\n * @event zn-flow-change - Emitted whenever the flow state changes. `event.detail.state` is the new FlowState.\n * @event zn-flow-selection-change - Emitted when the selected node changes. `event.detail.nodeId`.\n * @event zn-flow-connect - Emitted when a connection is created. `event.detail.connection`.\n *\n * @slot - `<zn-flow-step>` type declarations; never displayed, each `group`/`category` routes the\n * step into the right tab and collapsible grouping of the rendered panel.\n * @slot header-left - Actions shown on the left of the header bar (e.g. Close / Undo All Changes).\n * @slot header-right - Actions shown on the right of the header bar (e.g. Apply Changes).\n * @slot sidebar - Extra right-panel content (status, version history), below the configuration errors.\n *\n * @csspart base - The grid wrapper.\n * @csspart header - The full-width header action bar (only rendered when header slots are filled).\n * @csspart steps - The left steps panel.\n * @csspart inspector - The right panel while a node or branch is selected.\n */",
14488
+ "jsDoc": "/**\n * @summary A drag-and-drop visual flow builder: steps panel, pan/zoom canvas, and a config inspector.\n * @documentation https://zinc.style/components/flow-builder\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-icon\n * @dependency zn-input\n * @dependency zn-tabs\n * @dependency zn-navbar\n * @dependency zn-flow-branch-conditions\n * @dependency zn-flow-canvas\n * @dependency zn-flow-node\n *\n * @event zn-flow-change - Emitted whenever the flow state changes. `event.detail.state` is the new FlowState.\n * @event zn-flow-selection-change - Emitted when the selected node changes. `event.detail.nodeId`.\n * @event zn-flow-connect - Emitted when a connection is created. `event.detail.connection`.\n *\n * @slot - `<zn-flow-step>` type declarations; never displayed, each `group`/`category` routes the\n * step into the right tab and collapsible grouping of the rendered panel. A step may nest\n * `<zn-flow-filter>` declarations (each holding `<zn-flow-filter-field>`s, whose operator /\n * option choices are nested `<zn-flow-operator>` / `<zn-flow-option>` elements) — or set a\n * `branch-filters` JSON attribute — to drive the built-in branch conditions editor.\n * @slot header-left - Actions shown on the left of the header bar (e.g. Close / Undo All Changes).\n * @slot header-right - Actions shown on the right of the header bar (e.g. Apply Changes).\n * @slot sidebar - Extra right-panel content (status, version history), below the configuration errors.\n *\n * @csspart base - The grid wrapper.\n * @csspart header - The full-width header action bar (only rendered when header slots are filled).\n * @csspart steps - The left steps panel.\n * @csspart inspector - The right panel while a node or branch is selected.\n */",
14194
14489
  "documentation": "https://zinc.style/components/flow-builder",
14195
14490
  "status": "experimental",
14196
14491
  "since": "1.0",
@@ -14199,6 +14494,7 @@
14199
14494
  "zn-input",
14200
14495
  "zn-tabs",
14201
14496
  "zn-navbar",
14497
+ "zn-flow-branch-conditions",
14202
14498
  "zn-flow-canvas",
14203
14499
  "zn-flow-node"
14204
14500
  ]
@@ -15834,19 +16130,6 @@
15834
16130
  "kind": "method",
15835
16131
  "name": "_handleTriggerClick",
15836
16132
  "privacy": "private"
15837
- },
15838
- {
15839
- "kind": "method",
15840
- "name": "_handleTriggerKeyDown",
15841
- "privacy": "private",
15842
- "parameters": [
15843
- {
15844
- "name": "event",
15845
- "type": {
15846
- "text": "KeyboardEvent"
15847
- }
15848
- }
15849
- ]
15850
16133
  }
15851
16134
  ],
15852
16135
  "attributes": [
@@ -23610,405 +23893,1588 @@
23610
23893
  },
23611
23894
  {
23612
23895
  "kind": "javascript-module",
23613
- "path": "components/page-nav/page-nav.js",
23896
+ "path": "components/page-builder/page-builder.js",
23614
23897
  "declarations": [
23615
23898
  {
23616
23899
  "kind": "class",
23617
23900
  "description": "",
23618
- "name": "ZnPageNav",
23619
- "cssProperties": [
23620
- {
23621
- "description": "An example CSS custom property.",
23622
- "name": "--example",
23623
- "inheritedFrom": {
23624
- "name": "ZnTabs",
23625
- "module": "src/components/tabs/tabs.component.ts"
23626
- }
23627
- }
23628
- ],
23901
+ "name": "ZnPageBuilder",
23629
23902
  "cssParts": [
23630
23903
  {
23631
- "description": "The component's base wrapper.",
23632
- "name": "base",
23633
- "inheritedFrom": {
23634
- "name": "ZnTabs",
23635
- "module": "src/components/tabs/tabs.component.ts"
23636
- }
23904
+ "description": "The grid wrapper.",
23905
+ "name": "base"
23906
+ },
23907
+ {
23908
+ "description": "The full-width header action bar (only rendered when header slots are filled).",
23909
+ "name": "header"
23910
+ },
23911
+ {
23912
+ "description": "The left palette panel.",
23913
+ "name": "palette"
23914
+ },
23915
+ {
23916
+ "description": "The centre section-card canvas.",
23917
+ "name": "canvas"
23918
+ },
23919
+ {
23920
+ "description": "The right panel while a section is selected.",
23921
+ "name": "inspector"
23637
23922
  }
23638
23923
  ],
23639
23924
  "slots": [
23640
23925
  {
23641
- "description": "The default slot.",
23642
- "name": "",
23643
- "inheritedFrom": {
23644
- "name": "ZnTabs",
23645
- "module": "src/components/tabs/tabs.component.ts"
23646
- }
23926
+ "description": "`<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.",
23927
+ "name": "config"
23647
23928
  },
23648
23929
  {
23649
- "description": "An example slot.",
23650
- "name": "example",
23651
- "inheritedFrom": {
23652
- "name": "ZnTabs",
23653
- "module": "src/components/tabs/tabs.component.ts"
23654
- }
23930
+ "description": "Actions shown on the left of the header bar.",
23931
+ "name": "header-left"
23932
+ },
23933
+ {
23934
+ "description": "Actions shown on the right of the header bar.",
23935
+ "name": "header-right"
23655
23936
  }
23656
23937
  ],
23657
23938
  "members": [
23658
23939
  {
23659
23940
  "kind": "field",
23660
- "name": "navigation",
23941
+ "name": "dependencies",
23661
23942
  "type": {
23662
- "text": "PageNavData"
23943
+ "text": "object"
23663
23944
  },
23664
- "attribute": "navigation"
23945
+ "static": true,
23946
+ "default": "{ 'zn-collapsible': ZnCollapsible, 'zn-icon': ZnIcon, 'zn-input': ZnInput, 'zn-page-palette-item': ZnPagePaletteItem, 'zn-page-section-card': ZnPageSectionCard, }"
23665
23947
  },
23666
23948
  {
23667
23949
  "kind": "field",
23668
- "name": "breadcrumb",
23950
+ "name": "config",
23669
23951
  "type": {
23670
23952
  "text": "string"
23671
- }
23672
- },
23673
- {
23674
- "kind": "method",
23675
- "name": "toggleNavigation"
23676
- },
23677
- {
23678
- "kind": "method",
23679
- "name": "setActiveTab",
23680
- "parameters": [
23681
- {
23682
- "name": "tabName",
23683
- "type": {
23684
- "text": "string"
23685
- }
23686
- },
23687
- {
23688
- "name": "store",
23689
- "type": {
23690
- "text": "boolean"
23691
- }
23692
- },
23693
- {
23694
- "name": "refresh",
23695
- "type": {
23696
- "text": "boolean"
23697
- }
23698
- },
23699
- {
23700
- "name": "refTab",
23701
- "default": "null",
23702
- "type": {
23703
- "text": "string | null"
23704
- }
23705
- }
23706
- ],
23707
- "inheritedFrom": {
23708
- "name": "ZnTabs",
23709
- "module": "components/tabs/tabs.js"
23710
- }
23711
- },
23712
- {
23713
- "kind": "method",
23714
- "name": "clickTab",
23715
- "parameters": [
23716
- {
23717
- "name": "target",
23718
- "type": {
23719
- "text": "HTMLElement"
23720
- }
23721
- },
23722
- {
23723
- "name": "refresh",
23724
- "type": {
23725
- "text": "boolean"
23726
- }
23727
- },
23728
- {
23729
- "name": "close",
23730
- "default": "true"
23731
- }
23732
- ],
23733
- "inheritedFrom": {
23734
- "name": "ZnTabs",
23735
- "module": "components/tabs/tabs.js"
23736
- }
23953
+ },
23954
+ "default": "''",
23955
+ "description": "The page state as a JSON string. Parsed on set; invalid JSON is ignored with a warning.",
23956
+ "attribute": "config"
23737
23957
  },
23738
23958
  {
23739
23959
  "kind": "field",
23740
- "name": "masterId",
23960
+ "name": "heading",
23741
23961
  "type": {
23742
23962
  "text": "string"
23743
23963
  },
23744
- "attribute": "master-id",
23745
- "reflects": true,
23746
- "inheritedFrom": {
23747
- "name": "ZnTabs",
23748
- "module": "components/tabs/tabs.js"
23749
- }
23964
+ "default": "''",
23965
+ "attribute": "heading",
23966
+ "reflects": true
23750
23967
  },
23751
23968
  {
23752
23969
  "kind": "field",
23753
- "name": "defaultUri",
23970
+ "name": "subheading",
23754
23971
  "type": {
23755
23972
  "text": "string"
23756
23973
  },
23757
23974
  "default": "''",
23758
- "attribute": "default-uri",
23759
- "reflects": true,
23760
- "inheritedFrom": {
23761
- "name": "ZnTabs",
23762
- "module": "components/tabs/tabs.js"
23763
- }
23975
+ "attribute": "subheading",
23976
+ "reflects": true
23764
23977
  },
23765
23978
  {
23766
23979
  "kind": "field",
23767
- "name": "_current",
23980
+ "name": "sectionTypes",
23768
23981
  "type": {
23769
- "text": "string"
23982
+ "text": "PageSectionType[]"
23770
23983
  },
23771
- "default": "''",
23772
- "attribute": "active",
23773
- "reflects": true,
23774
- "inheritedFrom": {
23775
- "name": "ZnTabs",
23776
- "module": "components/tabs/tabs.js"
23777
- }
23984
+ "default": "[]",
23985
+ "description": "Section types to make available, registered into the internal registry."
23778
23986
  },
23779
23987
  {
23780
23988
  "kind": "field",
23781
- "name": "_split",
23989
+ "name": "paletteCollapsed",
23782
23990
  "type": {
23783
- "text": "number"
23991
+ "text": "boolean"
23784
23992
  },
23785
- "attribute": "split",
23786
- "reflects": true,
23787
- "inheritedFrom": {
23788
- "name": "ZnTabs",
23789
- "module": "components/tabs/tabs.js"
23790
- }
23993
+ "default": "false",
23994
+ "description": "Collapses the left palette. Auto-set when the builder becomes narrow.",
23995
+ "attribute": "palette-collapsed",
23996
+ "reflects": true
23791
23997
  },
23792
23998
  {
23793
23999
  "kind": "field",
23794
- "name": "_splitMin",
24000
+ "name": "inspectorCollapsed",
23795
24001
  "type": {
23796
- "text": "number"
24002
+ "text": "boolean"
23797
24003
  },
23798
- "default": "60",
23799
- "attribute": "split-min",
23800
- "reflects": true,
23801
- "inheritedFrom": {
23802
- "name": "ZnTabs",
23803
- "module": "components/tabs/tabs.js"
23804
- }
24004
+ "default": "false",
24005
+ "description": "Collapses the inspector while a section is selected.",
24006
+ "attribute": "inspector-collapsed",
24007
+ "reflects": true
23805
24008
  },
23806
24009
  {
23807
24010
  "kind": "field",
23808
- "name": "_splitMinSecondary",
24011
+ "name": "autoSave",
23809
24012
  "type": {
23810
- "text": "number"
24013
+ "text": "number | null"
23811
24014
  },
23812
- "attribute": "split-min-secondary",
23813
- "reflects": true,
23814
- "inheritedFrom": {
23815
- "name": "ZnTabs",
23816
- "module": "components/tabs/tabs.js"
23817
- }
24015
+ "default": "null",
24016
+ "description": "Auto-save the page to localStorage (1-day TTL). Omit to disable. A bare\n`auto-save` saves every 5 minutes; a numeric value sets the interval in\nminutes (`auto-save=\"2\"`). Restore with `restoreAutoSave()`.",
24017
+ "attribute": "auto-save"
23818
24018
  },
23819
24019
  {
23820
24020
  "kind": "field",
23821
- "name": "_splitMax",
24021
+ "name": "registry",
24022
+ "privacy": "private",
24023
+ "default": "new PageSectionRegistry()"
24024
+ },
24025
+ {
24026
+ "kind": "field",
24027
+ "name": "_state",
23822
24028
  "type": {
23823
- "text": "number"
24029
+ "text": "PageState"
23824
24030
  },
23825
- "attribute": "split-max",
23826
- "reflects": true,
23827
- "inheritedFrom": {
23828
- "name": "ZnTabs",
23829
- "module": "components/tabs/tabs.js"
23830
- }
24031
+ "privacy": "private"
23831
24032
  },
23832
24033
  {
23833
24034
  "kind": "field",
23834
- "name": "primaryCaption",
24035
+ "name": "_selectedId",
23835
24036
  "type": {
23836
- "text": "string"
24037
+ "text": "string | null"
23837
24038
  },
23838
- "default": "'Navigation'",
23839
- "attribute": "primary-caption",
23840
- "reflects": true,
23841
- "inheritedFrom": {
23842
- "name": "ZnTabs",
23843
- "module": "components/tabs/tabs.js"
23844
- }
24039
+ "privacy": "private",
24040
+ "default": "null"
23845
24041
  },
23846
24042
  {
23847
24043
  "kind": "field",
23848
- "name": "secondaryCaption",
24044
+ "name": "_search",
23849
24045
  "type": {
23850
24046
  "text": "string"
23851
24047
  },
23852
- "default": "'Content'",
23853
- "attribute": "secondary-caption",
23854
- "reflects": true,
23855
- "inheritedFrom": {
23856
- "name": "ZnTabs",
23857
- "module": "components/tabs/tabs.js"
23858
- }
24048
+ "privacy": "private",
24049
+ "default": "''"
23859
24050
  },
23860
24051
  {
23861
24052
  "kind": "field",
23862
- "name": "noPrefetch",
24053
+ "name": "_pickerIndex",
23863
24054
  "type": {
23864
- "text": "boolean"
24055
+ "text": "number | null"
23865
24056
  },
23866
- "default": "false",
23867
- "attribute": "no-prefetch",
23868
- "reflects": true,
23869
- "inheritedFrom": {
23870
- "name": "ZnTabs",
23871
- "module": "components/tabs/tabs.js"
23872
- }
24057
+ "privacy": "private",
24058
+ "default": "null",
24059
+ "description": "Index of the drop zone whose \"+\" type picker is open, if any."
23873
24060
  },
23874
24061
  {
23875
24062
  "kind": "field",
23876
- "name": "noCache",
24063
+ "name": "_dragOverIndex",
23877
24064
  "type": {
23878
- "text": "boolean"
24065
+ "text": "number | null"
23879
24066
  },
23880
- "default": "false",
23881
- "attribute": "no-cache",
23882
- "reflects": true,
23883
- "inheritedFrom": {
23884
- "name": "ZnTabs",
23885
- "module": "components/tabs/tabs.js"
23886
- }
24067
+ "privacy": "private",
24068
+ "default": "null"
23887
24069
  },
23888
24070
  {
23889
24071
  "kind": "field",
23890
- "name": "localStorage",
24072
+ "name": "_slotDragOver",
23891
24073
  "type": {
23892
- "text": "boolean"
24074
+ "text": "{containerId: string; index: number} | null"
23893
24075
  },
23894
- "attribute": "local-storage",
23895
- "reflects": true,
23896
- "inheritedFrom": {
23897
- "name": "ZnTabs",
23898
- "module": "components/tabs/tabs.js"
23899
- }
24076
+ "privacy": "private",
24077
+ "default": "null",
24078
+ "description": "The container slot a drag is currently over, if any."
23900
24079
  },
23901
24080
  {
23902
24081
  "kind": "field",
23903
- "name": "storeKey",
24082
+ "name": "_slotPicker",
23904
24083
  "type": {
23905
- "text": "string"
24084
+ "text": "{containerId: string; index: number} | null"
23906
24085
  },
23907
- "attribute": "store-key",
23908
- "inheritedFrom": {
23909
- "name": "ZnTabs",
23910
- "module": "components/tabs/tabs.js"
23911
- }
24086
+ "privacy": "private",
24087
+ "default": "null",
24088
+ "description": "The container slot whose \"+\" type picker is open, if any."
23912
24089
  },
23913
24090
  {
23914
24091
  "kind": "field",
23915
- "name": "storeTtl",
24092
+ "name": "_form",
23916
24093
  "type": {
23917
- "text": "number"
24094
+ "text": "HTMLDivElement | null"
23918
24095
  },
23919
- "default": "0",
23920
- "attribute": "store-ttl",
23921
- "reflects": true,
23922
- "inheritedFrom": {
23923
- "name": "ZnTabs",
23924
- "module": "components/tabs/tabs.js"
23925
- }
24096
+ "privacy": "private",
24097
+ "default": "null",
24098
+ "description": "The stamped config form for the selected section; rebuilt on selection change."
23926
24099
  },
23927
24100
  {
23928
24101
  "kind": "field",
23929
- "name": "padded",
24102
+ "name": "_hasSlot",
24103
+ "privacy": "private",
24104
+ "readonly": true,
24105
+ "default": "new HasSlotController(this, 'header-left', 'header-right')"
24106
+ },
24107
+ {
24108
+ "kind": "field",
24109
+ "name": "_history",
23930
24110
  "type": {
23931
- "text": "boolean"
24111
+ "text": "PageState[]"
23932
24112
  },
23933
- "default": "false",
23934
- "attribute": "padded",
23935
- "reflects": true,
23936
- "inheritedFrom": {
23937
- "name": "ZnTabs",
23938
- "module": "components/tabs/tabs.js"
23939
- }
24113
+ "privacy": "private",
24114
+ "default": "[]"
23940
24115
  },
23941
24116
  {
23942
24117
  "kind": "field",
23943
- "name": "fetchStyle",
24118
+ "name": "_redoStack",
23944
24119
  "type": {
23945
- "text": "string"
24120
+ "text": "PageState[]"
23946
24121
  },
23947
- "default": "\"\"",
23948
- "attribute": "fetch-style",
23949
- "reflects": true,
23950
- "inheritedFrom": {
23951
- "name": "ZnTabs",
23952
- "module": "components/tabs/tabs.js"
23953
- }
24122
+ "privacy": "private",
24123
+ "default": "[]"
23954
24124
  },
23955
24125
  {
23956
24126
  "kind": "field",
23957
- "name": "fullWidth",
24127
+ "name": "state",
23958
24128
  "type": {
23959
- "text": "boolean"
24129
+ "text": "PageState"
23960
24130
  },
23961
- "default": "false",
23962
- "attribute": "full-width",
23963
- "reflects": true,
23964
- "inheritedFrom": {
23965
- "name": "ZnTabs",
23966
- "module": "components/tabs/tabs.js"
23967
- }
24131
+ "description": "Replaces the page state wholesale (does not emit zn-page-change)."
24132
+ },
24133
+ {
24134
+ "kind": "method",
24135
+ "name": "handleConfigChange"
24136
+ },
24137
+ {
24138
+ "kind": "method",
24139
+ "name": "handleSectionTypesChange"
24140
+ },
24141
+ {
24142
+ "kind": "method",
24143
+ "name": "registerSectionType",
24144
+ "return": {
24145
+ "type": {
24146
+ "text": "this"
24147
+ }
24148
+ },
24149
+ "parameters": [
24150
+ {
24151
+ "name": "type",
24152
+ "type": {
24153
+ "text": "PageSectionType"
24154
+ }
24155
+ }
24156
+ ]
24157
+ },
24158
+ {
24159
+ "kind": "method",
24160
+ "name": "registerSectionTypes",
24161
+ "return": {
24162
+ "type": {
24163
+ "text": "this"
24164
+ }
24165
+ },
24166
+ "parameters": [
24167
+ {
24168
+ "name": "types",
24169
+ "type": {
24170
+ "text": "PageSectionType[]"
24171
+ }
24172
+ }
24173
+ ]
23968
24174
  },
23969
24175
  {
23970
24176
  "kind": "field",
23971
- "name": "paddedRight",
24177
+ "name": "_wasNarrow",
23972
24178
  "type": {
23973
24179
  "text": "boolean"
23974
24180
  },
24181
+ "privacy": "private",
23975
24182
  "default": "false",
23976
- "attribute": "padded-right",
23977
- "reflects": true,
23978
- "inheritedFrom": {
23979
- "name": "ZnTabs",
23980
- "module": "components/tabs/tabs.js"
23981
- }
24183
+ "description": "Auto-collapses the palette when the builder crosses into narrow — only on the\ncrossing, so re-expanding while narrow stays a user choice."
23982
24184
  },
23983
24185
  {
23984
24186
  "kind": "field",
23985
- "name": "monitor",
23986
- "type": {
23987
- "text": "string"
23988
- },
23989
- "attribute": "monitor",
23990
- "inheritedFrom": {
23991
- "name": "ZnTabs",
23992
- "module": "components/tabs/tabs.js"
23993
- }
24187
+ "name": "_resizeObserver",
24188
+ "privacy": "private",
24189
+ "default": "new ResizeObserver(entries => { const width = entries[0]?.contentRect.width ?? 0; if (width <= 0) return; const narrow = width < NARROW_WIDTH; if (narrow && !this._wasNarrow) this.paletteCollapsed = true; this._wasNarrow = narrow; })"
23994
24190
  },
23995
24191
  {
23996
24192
  "kind": "field",
23997
- "name": "caption",
24193
+ "name": "_autoSaveTimer",
23998
24194
  "type": {
23999
- "text": "string"
24195
+ "text": "number | null"
24000
24196
  },
24001
- "attribute": "caption",
24002
- "inheritedFrom": {
24003
- "name": "ZnTabs",
24004
- "module": "components/tabs/tabs.js"
24005
- }
24197
+ "privacy": "private",
24198
+ "default": "null"
24006
24199
  },
24007
24200
  {
24008
24201
  "kind": "field",
24009
- "name": "description",
24202
+ "name": "_statusTimer",
24010
24203
  "type": {
24011
- "text": "string"
24204
+ "text": "number | null"
24205
+ },
24206
+ "privacy": "private",
24207
+ "default": "null"
24208
+ },
24209
+ {
24210
+ "kind": "field",
24211
+ "name": "_justSavedTimer",
24212
+ "type": {
24213
+ "text": "number | null"
24214
+ },
24215
+ "privacy": "private",
24216
+ "default": "null"
24217
+ },
24218
+ {
24219
+ "kind": "field",
24220
+ "name": "_restoring",
24221
+ "type": {
24222
+ "text": "boolean"
24223
+ },
24224
+ "privacy": "private",
24225
+ "default": "false",
24226
+ "description": "Guards the restore prompt from re-triggering on restoreAutoSave's own state install."
24227
+ },
24228
+ {
24229
+ "kind": "field",
24230
+ "name": "_lastSavedAt",
24231
+ "type": {
24232
+ "text": "number | null"
24233
+ },
24234
+ "privacy": "private",
24235
+ "default": "null",
24236
+ "description": "Epoch of the newest auto-save (also picked up from storage on start)."
24237
+ },
24238
+ {
24239
+ "kind": "field",
24240
+ "name": "_justSaved",
24241
+ "type": {
24242
+ "text": "boolean"
24243
+ },
24244
+ "privacy": "private",
24245
+ "default": "false",
24246
+ "description": "Briefly true right after a save — flashes \"Auto-saved\" in the status pill."
24247
+ },
24248
+ {
24249
+ "kind": "field",
24250
+ "name": "_statusNow",
24251
+ "privacy": "private",
24252
+ "description": "Re-render clock for the \"last saved Xm ago\" label."
24253
+ },
24254
+ {
24255
+ "kind": "field",
24256
+ "name": "_restorePrompt",
24257
+ "type": {
24258
+ "text": "{savedAt: number} | null"
24259
+ },
24260
+ "privacy": "private",
24261
+ "default": "null",
24262
+ "description": "A fresh auto-save differing from the loaded page — offer to restore it."
24263
+ },
24264
+ {
24265
+ "kind": "field",
24266
+ "name": "_autoSaveKey",
24267
+ "type": {
24268
+ "text": "string"
24269
+ },
24270
+ "privacy": "private",
24271
+ "description": "localStorage key for this builder's auto-saves — its id, else its heading.",
24272
+ "readonly": true
24273
+ },
24274
+ {
24275
+ "kind": "method",
24276
+ "name": "_stopAutoSave",
24277
+ "privacy": "private"
24278
+ },
24279
+ {
24280
+ "kind": "method",
24281
+ "name": "_restartAutoSave",
24282
+ "privacy": "private"
24283
+ },
24284
+ {
24285
+ "kind": "field",
24286
+ "name": "_autoSaveTick",
24287
+ "privacy": "private",
24288
+ "description": "An empty page is never saved — it would clobber a stored page with nothing."
24289
+ },
24290
+ {
24291
+ "kind": "method",
24292
+ "name": "_readAutoSave",
24293
+ "privacy": "private",
24294
+ "return": {
24295
+ "type": {
24296
+ "text": "{savedAt: number; state: PageState} | null"
24297
+ }
24298
+ },
24299
+ "description": "The stored auto-save, purging it when past its TTL (or unreadable)."
24300
+ },
24301
+ {
24302
+ "kind": "field",
24303
+ "name": "restoreAutoSave",
24304
+ "description": "Load the auto-saved page, if one exists within the 1-day TTL."
24305
+ },
24306
+ {
24307
+ "kind": "method",
24308
+ "name": "_offerRestoreIfNewer",
24309
+ "privacy": "private",
24310
+ "description": "A page was just loaded — when a fresh auto-save differs from it, ask the\nuser whether to pick up their draft instead."
24311
+ },
24312
+ {
24313
+ "kind": "method",
24314
+ "name": "_typeFromTemplate",
24315
+ "privacy": "private",
24316
+ "return": {
24317
+ "type": {
24318
+ "text": "PageSectionType | null"
24319
+ }
24320
+ },
24321
+ "parameters": [
24322
+ {
24323
+ "name": "el",
24324
+ "type": {
24325
+ "text": "HTMLTemplateElement"
24326
+ }
24327
+ }
24328
+ ]
24329
+ },
24330
+ {
24331
+ "kind": "field",
24332
+ "name": "_registerSlottedTemplates",
24333
+ "privacy": "private"
24334
+ },
24335
+ {
24336
+ "kind": "method",
24337
+ "name": "_applyExternalState",
24338
+ "privacy": "private",
24339
+ "parameters": [
24340
+ {
24341
+ "name": "next",
24342
+ "type": {
24343
+ "text": "PageState"
24344
+ }
24345
+ }
24346
+ ],
24347
+ "description": "Normalises and installs an externally provided state; resets selection."
24348
+ },
24349
+ {
24350
+ "kind": "method",
24351
+ "name": "_findSection",
24352
+ "privacy": "private",
24353
+ "return": {
24354
+ "type": {
24355
+ "text": "PageSection | undefined"
24356
+ }
24357
+ },
24358
+ "parameters": [
24359
+ {
24360
+ "name": "id",
24361
+ "type": {
24362
+ "text": "string | null"
24363
+ }
24364
+ }
24365
+ ],
24366
+ "description": "Finds a section by id, searching top-level sections and slotted children."
24367
+ },
24368
+ {
24369
+ "kind": "method",
24370
+ "name": "_patchSection",
24371
+ "privacy": "private",
24372
+ "return": {
24373
+ "type": {
24374
+ "text": "PageSection[]"
24375
+ }
24376
+ },
24377
+ "parameters": [
24378
+ {
24379
+ "name": "id",
24380
+ "type": {
24381
+ "text": "string"
24382
+ }
24383
+ },
24384
+ {
24385
+ "name": "patch",
24386
+ "type": {
24387
+ "text": "(s: PageSection) => PageSection"
24388
+ }
24389
+ }
24390
+ ],
24391
+ "description": "New sections array with the section patched wherever it lives (top level or slot)."
24392
+ },
24393
+ {
24394
+ "kind": "method",
24395
+ "name": "_extract",
24396
+ "privacy": "private",
24397
+ "return": {
24398
+ "type": {
24399
+ "text": "[PageSection | undefined, PageSection[]]"
24400
+ }
24401
+ },
24402
+ "parameters": [
24403
+ {
24404
+ "name": "id",
24405
+ "type": {
24406
+ "text": "string"
24407
+ }
24408
+ }
24409
+ ],
24410
+ "description": "Detaches a section wherever it lives: removed from the top level, or its slot nulled."
24411
+ },
24412
+ {
24413
+ "kind": "method",
24414
+ "name": "_commit",
24415
+ "privacy": "private",
24416
+ "parameters": [
24417
+ {
24418
+ "name": "next",
24419
+ "type": {
24420
+ "text": "PageState"
24421
+ }
24422
+ }
24423
+ ],
24424
+ "description": "Installs a new state from a user edit and notifies listeners."
24425
+ },
24426
+ {
24427
+ "kind": "method",
24428
+ "name": "_selectedSection",
24429
+ "privacy": "private",
24430
+ "return": {
24431
+ "type": {
24432
+ "text": "PageSection | undefined"
24433
+ }
24434
+ }
24435
+ },
24436
+ {
24437
+ "kind": "method",
24438
+ "name": "_select",
24439
+ "privacy": "private",
24440
+ "parameters": [
24441
+ {
24442
+ "name": "id",
24443
+ "type": {
24444
+ "text": "string | null"
24445
+ }
24446
+ }
24447
+ ]
24448
+ },
24449
+ {
24450
+ "kind": "method",
24451
+ "name": "_pushHistory",
24452
+ "privacy": "private"
24453
+ },
24454
+ {
24455
+ "kind": "field",
24456
+ "name": "undo"
24457
+ },
24458
+ {
24459
+ "kind": "field",
24460
+ "name": "redo"
24461
+ },
24462
+ {
24463
+ "kind": "method",
24464
+ "name": "addSection",
24465
+ "return": {
24466
+ "type": {
24467
+ "text": "PageSection | null"
24468
+ }
24469
+ },
24470
+ "parameters": [
24471
+ {
24472
+ "name": "type",
24473
+ "type": {
24474
+ "text": "string"
24475
+ }
24476
+ },
24477
+ {
24478
+ "name": "index",
24479
+ "optional": true,
24480
+ "type": {
24481
+ "text": "number"
24482
+ }
24483
+ }
24484
+ ],
24485
+ "description": "Adds a section of a registered type at `index` (default: end). Returns null for unknown types."
24486
+ },
24487
+ {
24488
+ "kind": "method",
24489
+ "name": "addSectionToSlot",
24490
+ "return": {
24491
+ "type": {
24492
+ "text": "PageSection | null"
24493
+ }
24494
+ },
24495
+ "parameters": [
24496
+ {
24497
+ "name": "type",
24498
+ "type": {
24499
+ "text": "string"
24500
+ }
24501
+ },
24502
+ {
24503
+ "name": "containerId",
24504
+ "type": {
24505
+ "text": "string"
24506
+ }
24507
+ },
24508
+ {
24509
+ "name": "slotIndex",
24510
+ "type": {
24511
+ "text": "number"
24512
+ }
24513
+ }
24514
+ ],
24515
+ "description": "Adds a new section of a registered type into a container's slot. Returns null if not allowed."
24516
+ },
24517
+ {
24518
+ "kind": "method",
24519
+ "name": "_removeSection",
24520
+ "privacy": "private",
24521
+ "parameters": [
24522
+ {
24523
+ "name": "id",
24524
+ "type": {
24525
+ "text": "string"
24526
+ }
24527
+ }
24528
+ ]
24529
+ },
24530
+ {
24531
+ "kind": "method",
24532
+ "name": "_duplicateSection",
24533
+ "privacy": "private",
24534
+ "parameters": [
24535
+ {
24536
+ "name": "id",
24537
+ "type": {
24538
+ "text": "string"
24539
+ }
24540
+ }
24541
+ ]
24542
+ },
24543
+ {
24544
+ "kind": "method",
24545
+ "name": "_moveSection",
24546
+ "privacy": "private",
24547
+ "parameters": [
24548
+ {
24549
+ "name": "id",
24550
+ "type": {
24551
+ "text": "string"
24552
+ }
24553
+ },
24554
+ {
24555
+ "name": "index",
24556
+ "type": {
24557
+ "text": "number"
24558
+ }
24559
+ }
24560
+ ],
24561
+ "description": "Moves a section (top-level or slotted) to a top-level position."
24562
+ },
24563
+ {
24564
+ "kind": "method",
24565
+ "name": "_moveToSlot",
24566
+ "privacy": "private",
24567
+ "parameters": [
24568
+ {
24569
+ "name": "id",
24570
+ "type": {
24571
+ "text": "string"
24572
+ }
24573
+ },
24574
+ {
24575
+ "name": "containerId",
24576
+ "type": {
24577
+ "text": "string"
24578
+ }
24579
+ },
24580
+ {
24581
+ "name": "slotIndex",
24582
+ "type": {
24583
+ "text": "number"
24584
+ }
24585
+ }
24586
+ ],
24587
+ "description": "Moves a section into a container's slot. Dropping onto an occupied slot swaps\nthe two children (slot-to-slot reordering); top-level sections and containers\nonly enter empty slots / never enter slots respectively."
24588
+ },
24589
+ {
24590
+ "kind": "method",
24591
+ "name": "_onCardDragStart",
24592
+ "privacy": "private",
24593
+ "parameters": [
24594
+ {
24595
+ "name": "e",
24596
+ "type": {
24597
+ "text": "DragEvent"
24598
+ }
24599
+ },
24600
+ {
24601
+ "name": "id",
24602
+ "type": {
24603
+ "text": "string"
24604
+ }
24605
+ }
24606
+ ]
24607
+ },
24608
+ {
24609
+ "kind": "method",
24610
+ "name": "_isPageDrag",
24611
+ "privacy": "private",
24612
+ "return": {
24613
+ "type": {
24614
+ "text": "boolean"
24615
+ }
24616
+ },
24617
+ "parameters": [
24618
+ {
24619
+ "name": "e",
24620
+ "type": {
24621
+ "text": "DragEvent"
24622
+ }
24623
+ }
24624
+ ],
24625
+ "description": "Whether a drag carries one of the builder's own payloads."
24626
+ },
24627
+ {
24628
+ "kind": "method",
24629
+ "name": "_onSlotDragOver",
24630
+ "privacy": "private",
24631
+ "parameters": [
24632
+ {
24633
+ "name": "e",
24634
+ "type": {
24635
+ "text": "DragEvent"
24636
+ }
24637
+ },
24638
+ {
24639
+ "name": "containerId",
24640
+ "type": {
24641
+ "text": "string"
24642
+ }
24643
+ },
24644
+ {
24645
+ "name": "index",
24646
+ "type": {
24647
+ "text": "number"
24648
+ }
24649
+ }
24650
+ ]
24651
+ },
24652
+ {
24653
+ "kind": "method",
24654
+ "name": "_onSlotDrop",
24655
+ "privacy": "private",
24656
+ "parameters": [
24657
+ {
24658
+ "name": "e",
24659
+ "type": {
24660
+ "text": "DragEvent"
24661
+ }
24662
+ },
24663
+ {
24664
+ "name": "containerId",
24665
+ "type": {
24666
+ "text": "string"
24667
+ }
24668
+ },
24669
+ {
24670
+ "name": "index",
24671
+ "type": {
24672
+ "text": "number"
24673
+ }
24674
+ }
24675
+ ]
24676
+ },
24677
+ {
24678
+ "kind": "method",
24679
+ "name": "_onZoneDragOver",
24680
+ "privacy": "private",
24681
+ "parameters": [
24682
+ {
24683
+ "name": "e",
24684
+ "type": {
24685
+ "text": "DragEvent"
24686
+ }
24687
+ },
24688
+ {
24689
+ "name": "index",
24690
+ "type": {
24691
+ "text": "number"
24692
+ }
24693
+ }
24694
+ ]
24695
+ },
24696
+ {
24697
+ "kind": "method",
24698
+ "name": "_onZoneDrop",
24699
+ "privacy": "private",
24700
+ "parameters": [
24701
+ {
24702
+ "name": "e",
24703
+ "type": {
24704
+ "text": "DragEvent"
24705
+ }
24706
+ },
24707
+ {
24708
+ "name": "index",
24709
+ "type": {
24710
+ "text": "number"
24711
+ }
24712
+ }
24713
+ ]
24714
+ },
24715
+ {
24716
+ "kind": "field",
24717
+ "name": "_onCanvasDragOver",
24718
+ "privacy": "private"
24719
+ },
24720
+ {
24721
+ "kind": "field",
24722
+ "name": "_onCanvasDrop",
24723
+ "privacy": "private"
24724
+ },
24725
+ {
24726
+ "kind": "method",
24727
+ "name": "_onCardKeydown",
24728
+ "privacy": "private",
24729
+ "parameters": [
24730
+ {
24731
+ "name": "e",
24732
+ "type": {
24733
+ "text": "KeyboardEvent"
24734
+ }
24735
+ },
24736
+ {
24737
+ "name": "id",
24738
+ "type": {
24739
+ "text": "string"
24740
+ }
24741
+ }
24742
+ ]
24743
+ },
24744
+ {
24745
+ "kind": "method",
24746
+ "name": "_renderPalette",
24747
+ "privacy": "private"
24748
+ },
24749
+ {
24750
+ "kind": "method",
24751
+ "name": "_renderPaletteItem",
24752
+ "privacy": "private",
24753
+ "parameters": [
24754
+ {
24755
+ "name": "type",
24756
+ "type": {
24757
+ "text": "PageSectionType"
24758
+ }
24759
+ }
24760
+ ]
24761
+ },
24762
+ {
24763
+ "kind": "method",
24764
+ "name": "_renderAutoSaveStatus",
24765
+ "privacy": "private"
24766
+ },
24767
+ {
24768
+ "kind": "method",
24769
+ "name": "_renderRestorePrompt",
24770
+ "privacy": "private"
24771
+ },
24772
+ {
24773
+ "kind": "method",
24774
+ "name": "_renderCanvas",
24775
+ "privacy": "private"
24776
+ },
24777
+ {
24778
+ "kind": "method",
24779
+ "name": "_renderSectionCard",
24780
+ "privacy": "private",
24781
+ "parameters": [
24782
+ {
24783
+ "name": "section",
24784
+ "type": {
24785
+ "text": "PageSection"
24786
+ }
24787
+ },
24788
+ {
24789
+ "name": "drop",
24790
+ "type": {
24791
+ "text": "{over: (e: DragEvent) => void; drop: (e: DragEvent) => void}"
24792
+ }
24793
+ },
24794
+ {
24795
+ "name": "extraClass",
24796
+ "default": "''"
24797
+ }
24798
+ ],
24799
+ "description": "The one card template both the page list and slot cells render."
24800
+ },
24801
+ {
24802
+ "kind": "method",
24803
+ "name": "_renderCard",
24804
+ "privacy": "private",
24805
+ "parameters": [
24806
+ {
24807
+ "name": "section",
24808
+ "type": {
24809
+ "text": "PageSection"
24810
+ }
24811
+ },
24812
+ {
24813
+ "name": "index",
24814
+ "type": {
24815
+ "text": "number"
24816
+ }
24817
+ }
24818
+ ]
24819
+ },
24820
+ {
24821
+ "kind": "method",
24822
+ "name": "_renderSlot",
24823
+ "privacy": "private",
24824
+ "parameters": [
24825
+ {
24826
+ "name": "container",
24827
+ "type": {
24828
+ "text": "PageSection"
24829
+ }
24830
+ },
24831
+ {
24832
+ "name": "child",
24833
+ "type": {
24834
+ "text": "PageSection | null"
24835
+ }
24836
+ },
24837
+ {
24838
+ "name": "index",
24839
+ "type": {
24840
+ "text": "number"
24841
+ }
24842
+ }
24843
+ ]
24844
+ },
24845
+ {
24846
+ "kind": "method",
24847
+ "name": "_slotTypes",
24848
+ "privacy": "private",
24849
+ "return": {
24850
+ "type": {
24851
+ "text": "PageSectionType[]"
24852
+ }
24853
+ },
24854
+ "parameters": [
24855
+ {
24856
+ "name": "container",
24857
+ "type": {
24858
+ "text": "PageSection"
24859
+ }
24860
+ }
24861
+ ],
24862
+ "description": "Types allowed in a container's slots: non-containers, filtered by its accepts list."
24863
+ },
24864
+ {
24865
+ "kind": "method",
24866
+ "name": "_renderTypePicker",
24867
+ "privacy": "private",
24868
+ "parameters": [
24869
+ {
24870
+ "name": "types",
24871
+ "type": {
24872
+ "text": "PageSectionType[]"
24873
+ }
24874
+ },
24875
+ {
24876
+ "name": "pick",
24877
+ "type": {
24878
+ "text": "(type: string) => void"
24879
+ }
24880
+ }
24881
+ ],
24882
+ "description": "The one type-picker template both drop zones and slot cells render."
24883
+ },
24884
+ {
24885
+ "kind": "method",
24886
+ "name": "_renderDropZone",
24887
+ "privacy": "private",
24888
+ "parameters": [
24889
+ {
24890
+ "name": "index",
24891
+ "type": {
24892
+ "text": "number"
24893
+ }
24894
+ }
24895
+ ]
24896
+ },
24897
+ {
24898
+ "kind": "method",
24899
+ "name": "_buildInspectorForm",
24900
+ "privacy": "private",
24901
+ "description": "Clones the selected type's config template into a live form and prefills each\n`[name]` control from the section's data. The element is rendered directly by\nLit (`${this._form}`) so user-entered values survive unrelated re-renders."
24902
+ },
24903
+ {
24904
+ "kind": "method",
24905
+ "name": "_isBooleanControl",
24906
+ "privacy": "private",
24907
+ "return": {
24908
+ "type": {
24909
+ "text": "boolean"
24910
+ }
24911
+ },
24912
+ "parameters": [
24913
+ {
24914
+ "name": "control",
24915
+ "type": {
24916
+ "text": "HTMLElement"
24917
+ }
24918
+ },
24919
+ {
24920
+ "name": "value",
24921
+ "type": {
24922
+ "text": "unknown"
24923
+ }
24924
+ }
24925
+ ]
24926
+ },
24927
+ {
24928
+ "kind": "field",
24929
+ "name": "_onInspectorInput",
24930
+ "privacy": "private",
24931
+ "description": "Handles change/input events bubbling from stamped form controls."
24932
+ },
24933
+ {
24934
+ "kind": "method",
24935
+ "name": "_updateSectionData",
24936
+ "privacy": "private",
24937
+ "parameters": [
24938
+ {
24939
+ "name": "id",
24940
+ "type": {
24941
+ "text": "string"
24942
+ }
24943
+ },
24944
+ {
24945
+ "name": "patch",
24946
+ "type": {
24947
+ "text": "Record<string, unknown>"
24948
+ }
24949
+ }
24950
+ ]
24951
+ },
24952
+ {
24953
+ "kind": "method",
24954
+ "name": "_renameSection",
24955
+ "privacy": "private",
24956
+ "parameters": [
24957
+ {
24958
+ "name": "id",
24959
+ "type": {
24960
+ "text": "string"
24961
+ }
24962
+ },
24963
+ {
24964
+ "name": "label",
24965
+ "type": {
24966
+ "text": "string"
24967
+ }
24968
+ }
24969
+ ]
24970
+ },
24971
+ {
24972
+ "kind": "method",
24973
+ "name": "_renderInspector",
24974
+ "privacy": "private"
24975
+ }
24976
+ ],
24977
+ "events": [
24978
+ {
24979
+ "description": "Emitted whenever the page state changes. `event.detail.state` is the new PageState.",
24980
+ "name": "zn-page-change"
24981
+ },
24982
+ {
24983
+ "description": "Emitted when the selected section changes. `event.detail.sectionId`.",
24984
+ "name": "zn-page-selection-change"
24985
+ }
24986
+ ],
24987
+ "attributes": [
24988
+ {
24989
+ "name": "config",
24990
+ "type": {
24991
+ "text": "string"
24992
+ },
24993
+ "default": "''",
24994
+ "description": "The page state as a JSON string. Parsed on set; invalid JSON is ignored with a warning.",
24995
+ "fieldName": "config"
24996
+ },
24997
+ {
24998
+ "name": "heading",
24999
+ "type": {
25000
+ "text": "string"
25001
+ },
25002
+ "default": "''",
25003
+ "fieldName": "heading"
25004
+ },
25005
+ {
25006
+ "name": "subheading",
25007
+ "type": {
25008
+ "text": "string"
25009
+ },
25010
+ "default": "''",
25011
+ "fieldName": "subheading"
25012
+ },
25013
+ {
25014
+ "name": "palette-collapsed",
25015
+ "type": {
25016
+ "text": "boolean"
25017
+ },
25018
+ "default": "false",
25019
+ "description": "Collapses the left palette. Auto-set when the builder becomes narrow.",
25020
+ "fieldName": "paletteCollapsed"
25021
+ },
25022
+ {
25023
+ "name": "inspector-collapsed",
25024
+ "type": {
25025
+ "text": "boolean"
25026
+ },
25027
+ "default": "false",
25028
+ "description": "Collapses the inspector while a section is selected.",
25029
+ "fieldName": "inspectorCollapsed"
25030
+ },
25031
+ {
25032
+ "name": "auto-save",
25033
+ "type": {
25034
+ "text": "number | null"
25035
+ },
25036
+ "default": "null",
25037
+ "description": "Auto-save the page to localStorage (1-day TTL). Omit to disable. A bare\n`auto-save` saves every 5 minutes; a numeric value sets the interval in\nminutes (`auto-save=\"2\"`). Restore with `restoreAutoSave()`.",
25038
+ "fieldName": "autoSave"
25039
+ }
25040
+ ],
25041
+ "superclass": {
25042
+ "name": "ZincElement",
25043
+ "module": "/src/internal/zinc-element"
25044
+ },
25045
+ "summary": "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.",
25046
+ "tagNameWithoutPrefix": "page-builder",
25047
+ "tagName": "zn-page-builder",
25048
+ "customElement": true,
25049
+ "jsDoc": "/**\n * @summary A config-driven page composer: a palette of predefined section types, a linear\n * canvas of section cards, and an inspector for editing each section's content.\n * @documentation https://zinc.style/components/page-builder\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-collapsible\n * @dependency zn-icon\n * @dependency zn-input\n * @dependency zn-page-palette-item\n * @dependency zn-page-section-card\n *\n * @event zn-page-change - Emitted whenever the page state changes. `event.detail.state` is the new PageState.\n * @event zn-page-selection-change - Emitted when the selected section changes. `event.detail.sectionId`.\n *\n * @slot config - `<template type=\"…\">` declarations; never displayed. Each template's attributes\n * (type, label, icon, icon-library, color, category, description, slots, accepts) declare a\n * palette entry and its content declares the inspector form for that type. `slots` makes the\n * section a container with that many child slots; `accepts` is a comma-separated list of the\n * type keys its slots allow.\n * @slot header-left - Actions shown on the left of the header bar.\n * @slot header-right - Actions shown on the right of the header bar.\n *\n * @csspart base - The grid wrapper.\n * @csspart header - The full-width header action bar (only rendered when header slots are filled).\n * @csspart palette - The left palette panel.\n * @csspart canvas - The centre section-card canvas.\n * @csspart inspector - The right panel while a section is selected.\n */",
25050
+ "documentation": "https://zinc.style/components/page-builder",
25051
+ "status": "experimental",
25052
+ "since": "1.0",
25053
+ "dependencies": [
25054
+ "zn-collapsible",
25055
+ "zn-icon",
25056
+ "zn-input",
25057
+ "zn-page-palette-item",
25058
+ "zn-page-section-card"
25059
+ ]
25060
+ },
25061
+ {
25062
+ "kind": "variable",
25063
+ "name": "type"
25064
+ }
25065
+ ],
25066
+ "exports": [
25067
+ {
25068
+ "kind": "js",
25069
+ "name": "default",
25070
+ "declaration": {
25071
+ "name": "ZnPageBuilder",
25072
+ "module": "components/page-builder/page-builder.js"
25073
+ }
25074
+ }
25075
+ ]
25076
+ },
25077
+ {
25078
+ "kind": "javascript-module",
25079
+ "path": "components/page-nav/page-nav.js",
25080
+ "declarations": [
25081
+ {
25082
+ "kind": "class",
25083
+ "description": "",
25084
+ "name": "ZnPageNav",
25085
+ "cssProperties": [
25086
+ {
25087
+ "description": "An example CSS custom property.",
25088
+ "name": "--example",
25089
+ "inheritedFrom": {
25090
+ "name": "ZnTabs",
25091
+ "module": "src/components/tabs/tabs.component.ts"
25092
+ }
25093
+ }
25094
+ ],
25095
+ "cssParts": [
25096
+ {
25097
+ "description": "The component's base wrapper.",
25098
+ "name": "base",
25099
+ "inheritedFrom": {
25100
+ "name": "ZnTabs",
25101
+ "module": "src/components/tabs/tabs.component.ts"
25102
+ }
25103
+ }
25104
+ ],
25105
+ "slots": [
25106
+ {
25107
+ "description": "The default slot.",
25108
+ "name": "",
25109
+ "inheritedFrom": {
25110
+ "name": "ZnTabs",
25111
+ "module": "src/components/tabs/tabs.component.ts"
25112
+ }
25113
+ },
25114
+ {
25115
+ "description": "An example slot.",
25116
+ "name": "example",
25117
+ "inheritedFrom": {
25118
+ "name": "ZnTabs",
25119
+ "module": "src/components/tabs/tabs.component.ts"
25120
+ }
25121
+ }
25122
+ ],
25123
+ "members": [
25124
+ {
25125
+ "kind": "field",
25126
+ "name": "navigation",
25127
+ "type": {
25128
+ "text": "PageNavData"
25129
+ },
25130
+ "attribute": "navigation"
25131
+ },
25132
+ {
25133
+ "kind": "field",
25134
+ "name": "breadcrumb",
25135
+ "type": {
25136
+ "text": "string"
25137
+ }
25138
+ },
25139
+ {
25140
+ "kind": "method",
25141
+ "name": "toggleNavigation"
25142
+ },
25143
+ {
25144
+ "kind": "method",
25145
+ "name": "setActiveTab",
25146
+ "parameters": [
25147
+ {
25148
+ "name": "tabName",
25149
+ "type": {
25150
+ "text": "string"
25151
+ }
25152
+ },
25153
+ {
25154
+ "name": "store",
25155
+ "type": {
25156
+ "text": "boolean"
25157
+ }
25158
+ },
25159
+ {
25160
+ "name": "refresh",
25161
+ "type": {
25162
+ "text": "boolean"
25163
+ }
25164
+ },
25165
+ {
25166
+ "name": "refTab",
25167
+ "default": "null",
25168
+ "type": {
25169
+ "text": "string | null"
25170
+ }
25171
+ }
25172
+ ],
25173
+ "inheritedFrom": {
25174
+ "name": "ZnTabs",
25175
+ "module": "components/tabs/tabs.js"
25176
+ }
25177
+ },
25178
+ {
25179
+ "kind": "method",
25180
+ "name": "clickTab",
25181
+ "parameters": [
25182
+ {
25183
+ "name": "target",
25184
+ "type": {
25185
+ "text": "HTMLElement"
25186
+ }
25187
+ },
25188
+ {
25189
+ "name": "refresh",
25190
+ "type": {
25191
+ "text": "boolean"
25192
+ }
25193
+ },
25194
+ {
25195
+ "name": "close",
25196
+ "default": "true"
25197
+ }
25198
+ ],
25199
+ "inheritedFrom": {
25200
+ "name": "ZnTabs",
25201
+ "module": "components/tabs/tabs.js"
25202
+ }
25203
+ },
25204
+ {
25205
+ "kind": "field",
25206
+ "name": "masterId",
25207
+ "type": {
25208
+ "text": "string"
25209
+ },
25210
+ "attribute": "master-id",
25211
+ "reflects": true,
25212
+ "inheritedFrom": {
25213
+ "name": "ZnTabs",
25214
+ "module": "components/tabs/tabs.js"
25215
+ }
25216
+ },
25217
+ {
25218
+ "kind": "field",
25219
+ "name": "defaultUri",
25220
+ "type": {
25221
+ "text": "string"
25222
+ },
25223
+ "default": "''",
25224
+ "attribute": "default-uri",
25225
+ "reflects": true,
25226
+ "inheritedFrom": {
25227
+ "name": "ZnTabs",
25228
+ "module": "components/tabs/tabs.js"
25229
+ }
25230
+ },
25231
+ {
25232
+ "kind": "field",
25233
+ "name": "_current",
25234
+ "type": {
25235
+ "text": "string"
25236
+ },
25237
+ "default": "''",
25238
+ "attribute": "active",
25239
+ "reflects": true,
25240
+ "inheritedFrom": {
25241
+ "name": "ZnTabs",
25242
+ "module": "components/tabs/tabs.js"
25243
+ }
25244
+ },
25245
+ {
25246
+ "kind": "field",
25247
+ "name": "_split",
25248
+ "type": {
25249
+ "text": "number"
25250
+ },
25251
+ "attribute": "split",
25252
+ "reflects": true,
25253
+ "inheritedFrom": {
25254
+ "name": "ZnTabs",
25255
+ "module": "components/tabs/tabs.js"
25256
+ }
25257
+ },
25258
+ {
25259
+ "kind": "field",
25260
+ "name": "_splitMin",
25261
+ "type": {
25262
+ "text": "number"
25263
+ },
25264
+ "default": "60",
25265
+ "attribute": "split-min",
25266
+ "reflects": true,
25267
+ "inheritedFrom": {
25268
+ "name": "ZnTabs",
25269
+ "module": "components/tabs/tabs.js"
25270
+ }
25271
+ },
25272
+ {
25273
+ "kind": "field",
25274
+ "name": "_splitMinSecondary",
25275
+ "type": {
25276
+ "text": "number"
25277
+ },
25278
+ "attribute": "split-min-secondary",
25279
+ "reflects": true,
25280
+ "inheritedFrom": {
25281
+ "name": "ZnTabs",
25282
+ "module": "components/tabs/tabs.js"
25283
+ }
25284
+ },
25285
+ {
25286
+ "kind": "field",
25287
+ "name": "_splitMax",
25288
+ "type": {
25289
+ "text": "number"
25290
+ },
25291
+ "attribute": "split-max",
25292
+ "reflects": true,
25293
+ "inheritedFrom": {
25294
+ "name": "ZnTabs",
25295
+ "module": "components/tabs/tabs.js"
25296
+ }
25297
+ },
25298
+ {
25299
+ "kind": "field",
25300
+ "name": "primaryCaption",
25301
+ "type": {
25302
+ "text": "string"
25303
+ },
25304
+ "default": "'Navigation'",
25305
+ "attribute": "primary-caption",
25306
+ "reflects": true,
25307
+ "inheritedFrom": {
25308
+ "name": "ZnTabs",
25309
+ "module": "components/tabs/tabs.js"
25310
+ }
25311
+ },
25312
+ {
25313
+ "kind": "field",
25314
+ "name": "secondaryCaption",
25315
+ "type": {
25316
+ "text": "string"
25317
+ },
25318
+ "default": "'Content'",
25319
+ "attribute": "secondary-caption",
25320
+ "reflects": true,
25321
+ "inheritedFrom": {
25322
+ "name": "ZnTabs",
25323
+ "module": "components/tabs/tabs.js"
25324
+ }
25325
+ },
25326
+ {
25327
+ "kind": "field",
25328
+ "name": "noPrefetch",
25329
+ "type": {
25330
+ "text": "boolean"
25331
+ },
25332
+ "default": "false",
25333
+ "attribute": "no-prefetch",
25334
+ "reflects": true,
25335
+ "inheritedFrom": {
25336
+ "name": "ZnTabs",
25337
+ "module": "components/tabs/tabs.js"
25338
+ }
25339
+ },
25340
+ {
25341
+ "kind": "field",
25342
+ "name": "noCache",
25343
+ "type": {
25344
+ "text": "boolean"
25345
+ },
25346
+ "default": "false",
25347
+ "attribute": "no-cache",
25348
+ "reflects": true,
25349
+ "inheritedFrom": {
25350
+ "name": "ZnTabs",
25351
+ "module": "components/tabs/tabs.js"
25352
+ }
25353
+ },
25354
+ {
25355
+ "kind": "field",
25356
+ "name": "localStorage",
25357
+ "type": {
25358
+ "text": "boolean"
25359
+ },
25360
+ "attribute": "local-storage",
25361
+ "reflects": true,
25362
+ "inheritedFrom": {
25363
+ "name": "ZnTabs",
25364
+ "module": "components/tabs/tabs.js"
25365
+ }
25366
+ },
25367
+ {
25368
+ "kind": "field",
25369
+ "name": "storeKey",
25370
+ "type": {
25371
+ "text": "string"
25372
+ },
25373
+ "attribute": "store-key",
25374
+ "inheritedFrom": {
25375
+ "name": "ZnTabs",
25376
+ "module": "components/tabs/tabs.js"
25377
+ }
25378
+ },
25379
+ {
25380
+ "kind": "field",
25381
+ "name": "storeTtl",
25382
+ "type": {
25383
+ "text": "number"
25384
+ },
25385
+ "default": "0",
25386
+ "attribute": "store-ttl",
25387
+ "reflects": true,
25388
+ "inheritedFrom": {
25389
+ "name": "ZnTabs",
25390
+ "module": "components/tabs/tabs.js"
25391
+ }
25392
+ },
25393
+ {
25394
+ "kind": "field",
25395
+ "name": "padded",
25396
+ "type": {
25397
+ "text": "boolean"
25398
+ },
25399
+ "default": "false",
25400
+ "attribute": "padded",
25401
+ "reflects": true,
25402
+ "inheritedFrom": {
25403
+ "name": "ZnTabs",
25404
+ "module": "components/tabs/tabs.js"
25405
+ }
25406
+ },
25407
+ {
25408
+ "kind": "field",
25409
+ "name": "fetchStyle",
25410
+ "type": {
25411
+ "text": "string"
25412
+ },
25413
+ "default": "\"\"",
25414
+ "attribute": "fetch-style",
25415
+ "reflects": true,
25416
+ "inheritedFrom": {
25417
+ "name": "ZnTabs",
25418
+ "module": "components/tabs/tabs.js"
25419
+ }
25420
+ },
25421
+ {
25422
+ "kind": "field",
25423
+ "name": "fullWidth",
25424
+ "type": {
25425
+ "text": "boolean"
25426
+ },
25427
+ "default": "false",
25428
+ "attribute": "full-width",
25429
+ "reflects": true,
25430
+ "inheritedFrom": {
25431
+ "name": "ZnTabs",
25432
+ "module": "components/tabs/tabs.js"
25433
+ }
25434
+ },
25435
+ {
25436
+ "kind": "field",
25437
+ "name": "paddedRight",
25438
+ "type": {
25439
+ "text": "boolean"
25440
+ },
25441
+ "default": "false",
25442
+ "attribute": "padded-right",
25443
+ "reflects": true,
25444
+ "inheritedFrom": {
25445
+ "name": "ZnTabs",
25446
+ "module": "components/tabs/tabs.js"
25447
+ }
25448
+ },
25449
+ {
25450
+ "kind": "field",
25451
+ "name": "monitor",
25452
+ "type": {
25453
+ "text": "string"
25454
+ },
25455
+ "attribute": "monitor",
25456
+ "inheritedFrom": {
25457
+ "name": "ZnTabs",
25458
+ "module": "components/tabs/tabs.js"
25459
+ }
25460
+ },
25461
+ {
25462
+ "kind": "field",
25463
+ "name": "caption",
25464
+ "type": {
25465
+ "text": "string"
25466
+ },
25467
+ "attribute": "caption",
25468
+ "inheritedFrom": {
25469
+ "name": "ZnTabs",
25470
+ "module": "components/tabs/tabs.js"
25471
+ }
25472
+ },
25473
+ {
25474
+ "kind": "field",
25475
+ "name": "description",
25476
+ "type": {
25477
+ "text": "string"
24012
25478
  },
24013
25479
  "attribute": "description",
24014
25480
  "inheritedFrom": {
@@ -30750,8 +32216,16 @@
30750
32216
  "name": ""
30751
32217
  },
30752
32218
  {
30753
- "description": "An example slot.",
30754
- "name": "example"
32219
+ "description": "Filter definitions used to toggle visibility of content.",
32220
+ "name": "filter"
32221
+ },
32222
+ {
32223
+ "description": "Custom content for the settings panel.",
32224
+ "name": "dropdown-content"
32225
+ },
32226
+ {
32227
+ "description": "Extra content rendered inside the pull tab next to the chevron.",
32228
+ "name": "tab"
30755
32229
  }
30756
32230
  ],
30757
32231
  "members": [
@@ -30788,6 +32262,35 @@
30788
32262
  },
30789
32263
  "attribute": "no-scroll"
30790
32264
  },
32265
+ {
32266
+ "kind": "field",
32267
+ "name": "pullTab",
32268
+ "type": {
32269
+ "text": "boolean"
32270
+ },
32271
+ "default": "false",
32272
+ "attribute": "pull-tab",
32273
+ "reflects": true
32274
+ },
32275
+ {
32276
+ "kind": "field",
32277
+ "name": "open",
32278
+ "type": {
32279
+ "text": "boolean"
32280
+ },
32281
+ "default": "false",
32282
+ "attribute": "open",
32283
+ "reflects": true
32284
+ },
32285
+ {
32286
+ "kind": "field",
32287
+ "name": "panelExpanded",
32288
+ "type": {
32289
+ "text": "boolean"
32290
+ },
32291
+ "privacy": "private",
32292
+ "default": "false"
32293
+ },
30791
32294
  {
30792
32295
  "kind": "field",
30793
32296
  "name": "_mutationObserver",
@@ -30821,6 +32324,26 @@
30821
32324
  "privacy": "private",
30822
32325
  "default": "new Set()"
30823
32326
  },
32327
+ {
32328
+ "kind": "field",
32329
+ "name": "handleDocumentMouseDown",
32330
+ "privacy": "private"
32331
+ },
32332
+ {
32333
+ "kind": "field",
32334
+ "name": "togglePullTab",
32335
+ "privacy": "private"
32336
+ },
32337
+ {
32338
+ "kind": "method",
32339
+ "name": "hidePullTab",
32340
+ "privacy": "private"
32341
+ },
32342
+ {
32343
+ "kind": "field",
32344
+ "name": "handlePanelTransitionEnd",
32345
+ "privacy": "private"
32346
+ },
30824
32347
  {
30825
32348
  "kind": "method",
30826
32349
  "name": "scheduleUpdateFilters",
@@ -30876,6 +32399,11 @@
30876
32399
  }
30877
32400
  ]
30878
32401
  },
32402
+ {
32403
+ "kind": "method",
32404
+ "name": "renderPullTab",
32405
+ "privacy": "private"
32406
+ },
30879
32407
  {
30880
32408
  "kind": "method",
30881
32409
  "name": "getDropdownContent",
@@ -30884,8 +32412,12 @@
30884
32412
  ],
30885
32413
  "events": [
30886
32414
  {
30887
- "description": "Emitted as an example.",
30888
- "name": "zn-event-name"
32415
+ "description": "Emitted when the pull tab panel opens.",
32416
+ "name": "zn-show"
32417
+ },
32418
+ {
32419
+ "description": "Emitted when the pull tab panel closes.",
32420
+ "name": "zn-hide"
30889
32421
  }
30890
32422
  ],
30891
32423
  "attributes": [
@@ -30910,6 +32442,22 @@
30910
32442
  "text": "boolean"
30911
32443
  },
30912
32444
  "fieldName": "noScroll"
32445
+ },
32446
+ {
32447
+ "name": "pull-tab",
32448
+ "type": {
32449
+ "text": "boolean"
32450
+ },
32451
+ "default": "false",
32452
+ "fieldName": "pullTab"
32453
+ },
32454
+ {
32455
+ "name": "open",
32456
+ "type": {
32457
+ "text": "boolean"
32458
+ },
32459
+ "default": "false",
32460
+ "fieldName": "open"
30913
32461
  }
30914
32462
  ],
30915
32463
  "superclass": {
@@ -30920,7 +32468,7 @@
30920
32468
  "tagNameWithoutPrefix": "settings-container",
30921
32469
  "tagName": "zn-settings-container",
30922
32470
  "customElement": true,
30923
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/settings-container\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
32471
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/settings-container\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-show - Emitted when the pull tab panel opens.\n * @event zn-hide - Emitted when the pull tab panel closes.\n *\n * @slot - The default slot.\n * @slot filter - Filter definitions used to toggle visibility of content.\n * @slot dropdown-content - Custom content for the settings panel.\n * @slot tab - Extra content rendered inside the pull tab next to the chevron.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
30924
32472
  "documentation": "https://zinc.style/components/settings-container",
30925
32473
  "status": "experimental",
30926
32474
  "since": "1.0",
@@ -38271,7 +39819,7 @@
38271
39819
  "package": {
38272
39820
  "name": "@kubex/zinc",
38273
39821
  "description": "A collection of web components for building web applications based off of @shoelace-style/Shoelace",
38274
- "version": "1.1.28",
39822
+ "version": "1.1.31",
38275
39823
  "author": "",
38276
39824
  "license": "MIT"
38277
39825
  }