@kubex/zinc 1.1.25 → 1.1.26

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.
@@ -13,17 +13,6 @@
13
13
  }
14
14
  ]
15
15
  },
16
- {
17
- "name": "zn-action-bar",
18
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
19
- "attributes": [],
20
- "references": [
21
- {
22
- "name": "Documentation",
23
- "url": "https://zinc.style/components/action-bar"
24
- }
25
- ]
26
- },
27
16
  {
28
17
  "name": "zn-alert",
29
18
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -63,6 +52,17 @@
63
52
  }
64
53
  ]
65
54
  },
55
+ {
56
+ "name": "zn-action-bar",
57
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
58
+ "attributes": [],
59
+ "references": [
60
+ {
61
+ "name": "Documentation",
62
+ "url": "https://zinc.style/components/action-bar"
63
+ }
64
+ ]
65
+ },
66
66
  {
67
67
  "name": "zn-animated-button",
68
68
  "description": "\n---\n\n\n### **Methods:**\n - **purchase(): _void_** - Programmatically trigger the purchase flow\n- **setSuccess(): _void_** - Set the button to success state manually\n- **setFailure(message): _void_** - Set the button to failure state manually with optional error message\n- **reset(): _void_** - Reset the button to idle state",
@@ -890,27 +890,6 @@
890
890
  }
891
891
  ]
892
892
  },
893
- {
894
- "name": "zn-copy-button",
895
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
896
- "attributes": [
897
- { "name": "value", "values": [] },
898
- { "name": "copy-label", "values": [] },
899
- { "name": "src", "values": [] },
900
- { "name": "size", "values": [] },
901
- {
902
- "name": "from",
903
- "description": "An id that references an element in the same document from which data will be copied. If both this and `value` are\npresent, this value will take precedence. By default, the target element's `textContent` will be copied. To copy an\nattribute, append the attribute name wrapped in square brackets, e.g. `from=\"el[value]\"`. To copy a property,\nappend a dot and the property name, e.g. `from=\"el.value\"`.",
904
- "values": []
905
- }
906
- ],
907
- "references": [
908
- {
909
- "name": "Documentation",
910
- "url": "https://zinc.style/components/copy-button"
911
- }
912
- ]
913
- },
914
893
  {
915
894
  "name": "zn-data-select",
916
895
  "description": "A select component with built-in data providers for common options like colors, currencies, and countries.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted when the select's value changes.\n- **zn-clear** - Emitted when the clear button is activated.\n- **blur** - Emitted when the select loses focus.\n\n### **Slots:**\n - **label** - The select's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the select, on the right. Alternatively, you can use the `context-note` attribute.\n- **help-text** - Text that describes how to use the select. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **combobox** - The container that wraps the prefix, combobox, clear icon, and expand button (forwarded from zn-select).\n- **expand-icon** - The container that wraps the expand icon (forwarded from zn-select).\n- **form-control-help-text** - The help text's wrapper (forwarded from zn-select).\n- **form-control-input** - The select's wrapper (forwarded from zn-select).\n- **display-input** - The element that displays the selected option's label (forwarded from zn-select).",
@@ -1059,28 +1038,38 @@
1059
1038
  ]
1060
1039
  },
1061
1040
  {
1062
- "name": "zn-data-table-filter",
1041
+ "name": "zn-copy-button",
1063
1042
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1064
1043
  "attributes": [
1065
- { "name": "filters", "values": [] },
1066
- { "name": "name", "values": [] },
1067
- { "name": "value", "values": [] }
1044
+ { "name": "value", "values": [] },
1045
+ { "name": "copy-label", "values": [] },
1046
+ { "name": "src", "values": [] },
1047
+ { "name": "size", "values": [] },
1048
+ {
1049
+ "name": "from",
1050
+ "description": "An id that references an element in the same document from which data will be copied. If both this and `value` are\npresent, this value will take precedence. By default, the target element's `textContent` will be copied. To copy an\nattribute, append the attribute name wrapped in square brackets, e.g. `from=\"el[value]\"`. To copy a property,\nappend a dot and the property name, e.g. `from=\"el.value\"`.",
1051
+ "values": []
1052
+ }
1068
1053
  ],
1069
1054
  "references": [
1070
1055
  {
1071
1056
  "name": "Documentation",
1072
- "url": "https://zinc.style/components/data-table-filter"
1057
+ "url": "https://zinc.style/components/copy-button"
1073
1058
  }
1074
1059
  ]
1075
1060
  },
1076
1061
  {
1077
- "name": "zn-data-table-sort",
1062
+ "name": "zn-data-table-filter",
1078
1063
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1079
- "attributes": [],
1064
+ "attributes": [
1065
+ { "name": "filters", "values": [] },
1066
+ { "name": "name", "values": [] },
1067
+ { "name": "value", "values": [] }
1068
+ ],
1080
1069
  "references": [
1081
1070
  {
1082
1071
  "name": "Documentation",
1083
- "url": "https://zinc.style/components/data-table-sort"
1072
+ "url": "https://zinc.style/components/data-table-filter"
1084
1073
  }
1085
1074
  ]
1086
1075
  },
@@ -1126,6 +1115,17 @@
1126
1115
  }
1127
1116
  ]
1128
1117
  },
1118
+ {
1119
+ "name": "zn-data-table-sort",
1120
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1121
+ "attributes": [],
1122
+ "references": [
1123
+ {
1124
+ "name": "Documentation",
1125
+ "url": "https://zinc.style/components/data-table-sort"
1126
+ }
1127
+ ]
1128
+ },
1129
1129
  {
1130
1130
  "name": "zn-datepicker",
1131
1131
  "description": "A date picker component with calendar popup and input validation.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the date value changes.\n- **zn-input** - Emitted when the input value changes.\n- **zn-blur** - Emitted when the input loses focus.\n- **zn-focus** - Emitted when the input gains focus.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Sets focus on the input.\n- **blur()** - Removes focus from the input.\n- **select()** - Selects all the text in the input.\n- **checkValidity(): _boolean_** - Checks the validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - **label** - The datepicker's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Tooltip content for the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Additional context text displayed above the input. Alternatively, you can use the `context-note` attribute.\n- **help-text** - Help text displayed below the input. Alternatively, you can use the `help-text` attribute.\n- **prefix** - Content to display before the input (in addition to the default calendar icon).\n- **suffix** - Content to display after the input.\n\n### **CSS Properties:**\n - **--zn-input-*** - Inherited input component CSS custom properties. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **form-control** - The form control wrapper.\n- **form-control-label** - The label element.\n- **form-control-input** - The input wrapper.\n- **form-control-help-text** - The help text element.",
@@ -2418,6 +2418,28 @@
2418
2418
  }
2419
2419
  ]
2420
2420
  },
2421
+ {
2422
+ "name": "zn-opt-group",
2423
+ "description": "Groups options within a `<zn-select>` under a labeled header, similar to `<optgroup>` in native HTML.\n---\n\n\n### **Slots:**\n - _default_ - The default slot for `<zn-option>` elements.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **label** - The group label element.",
2424
+ "attributes": [
2425
+ {
2426
+ "name": "label",
2427
+ "description": "The label for the opt-group, displayed as a non-selectable header above the grouped options.",
2428
+ "values": []
2429
+ },
2430
+ {
2431
+ "name": "disabled",
2432
+ "description": "Disables all options within the group.",
2433
+ "values": []
2434
+ }
2435
+ ],
2436
+ "references": [
2437
+ {
2438
+ "name": "Documentation",
2439
+ "url": "https://zinc.style/components/opt-group"
2440
+ }
2441
+ ]
2442
+ },
2421
2443
  {
2422
2444
  "name": "zn-note",
2423
2445
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - **caption** - The note's caption.\n- **date** - The note's date.\n- **body** - The note's body.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -2454,28 +2476,6 @@
2454
2476
  }
2455
2477
  ]
2456
2478
  },
2457
- {
2458
- "name": "zn-opt-group",
2459
- "description": "Groups options within a `<zn-select>` under a labeled header, similar to `<optgroup>` in native HTML.\n---\n\n\n### **Slots:**\n - _default_ - The default slot for `<zn-option>` elements.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **label** - The group label element.",
2460
- "attributes": [
2461
- {
2462
- "name": "label",
2463
- "description": "The label for the opt-group, displayed as a non-selectable header above the grouped options.",
2464
- "values": []
2465
- },
2466
- {
2467
- "name": "disabled",
2468
- "description": "Disables all options within the group.",
2469
- "values": []
2470
- }
2471
- ],
2472
- "references": [
2473
- {
2474
- "name": "Documentation",
2475
- "url": "https://zinc.style/components/opt-group"
2476
- }
2477
- ]
2478
- },
2479
2479
  {
2480
2480
  "name": "zn-order-table",
2481
2481
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -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.25",
4
+ "version": "1.1.26",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -15,28 +15,6 @@
15
15
  "events": [],
16
16
  "js": { "properties": [], "events": [] }
17
17
  },
18
- {
19
- "name": "zn-action-bar",
20
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
21
- "doc-url": "",
22
- "attributes": [],
23
- "slots": [
24
- { "name": "", "description": "The default slot." },
25
- { "name": "example", "description": "An example slot." }
26
- ],
27
- "events": [
28
- { "name": "zn-event-name", "description": "Emitted as an example." }
29
- ],
30
- "js": {
31
- "properties": [],
32
- "events": [
33
- {
34
- "name": "zn-event-name",
35
- "description": "Emitted as an example."
36
- }
37
- ]
38
- }
39
- },
40
18
  {
41
19
  "name": "zn-alert",
42
20
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -100,6 +78,28 @@
100
78
  ]
101
79
  }
102
80
  },
81
+ {
82
+ "name": "zn-action-bar",
83
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
84
+ "doc-url": "",
85
+ "attributes": [],
86
+ "slots": [
87
+ { "name": "", "description": "The default slot." },
88
+ { "name": "example", "description": "An example slot." }
89
+ ],
90
+ "events": [
91
+ { "name": "zn-event-name", "description": "Emitted as an example." }
92
+ ],
93
+ "js": {
94
+ "properties": [],
95
+ "events": [
96
+ {
97
+ "name": "zn-event-name",
98
+ "description": "Emitted as an example."
99
+ }
100
+ ]
101
+ }
102
+ },
103
103
  {
104
104
  "name": "zn-animated-button",
105
105
  "description": "\n---\n\n\n### **Methods:**\n - **purchase(): _void_** - Programmatically trigger the purchase flow\n- **setSuccess(): _void_** - Set the button to success state manually\n- **setFailure(message): _void_** - Set the button to failure state manually with optional error message\n- **reset(): _void_** - Reset the button to idle state",
@@ -1956,57 +1956,6 @@
1956
1956
  "events": []
1957
1957
  }
1958
1958
  },
1959
- {
1960
- "name": "zn-copy-button",
1961
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1962
- "doc-url": "",
1963
- "attributes": [
1964
- { "name": "value", "value": { "type": "string", "default": "''" } },
1965
- {
1966
- "name": "copy-label",
1967
- "value": { "type": "string", "default": "''" }
1968
- },
1969
- { "name": "src", "value": { "type": "string", "default": "''" } },
1970
- { "name": "size", "value": { "type": "number", "default": "24" } },
1971
- {
1972
- "name": "from",
1973
- "description": "An id that references an element in the same document from which data will be copied. If both this and `value` are\npresent, this value will take precedence. By default, the target element's `textContent` will be copied. To copy an\nattribute, append the attribute name wrapped in square brackets, e.g. `from=\"el[value]\"`. To copy a property,\nappend a dot and the property name, e.g. `from=\"el.value\"`.",
1974
- "value": { "type": "string", "default": "''" }
1975
- }
1976
- ],
1977
- "slots": [
1978
- { "name": "", "description": "The default slot." },
1979
- { "name": "example", "description": "An example slot." }
1980
- ],
1981
- "events": [
1982
- { "name": "zn-event-name", "description": "Emitted as an example." }
1983
- ],
1984
- "js": {
1985
- "properties": [
1986
- { "name": "copyIcon", "type": "HTMLSlotElement" },
1987
- { "name": "successIcon", "type": "HTMLSlotElement" },
1988
- { "name": "errorIcon", "type": "HTMLSlotElement" },
1989
- { "name": "tooltip", "type": "ZnTooltip" },
1990
- { "name": "isCopying", "type": "boolean" },
1991
- { "name": "status", "type": "'rest' | 'success' | 'error'" },
1992
- { "name": "value", "type": "string" },
1993
- { "name": "copyLabel", "type": "string" },
1994
- { "name": "src", "type": "string" },
1995
- { "name": "size", "type": "number" },
1996
- {
1997
- "name": "from",
1998
- "description": "An id that references an element in the same document from which data will be copied. If both this and `value` are\npresent, this value will take precedence. By default, the target element's `textContent` will be copied. To copy an\nattribute, append the attribute name wrapped in square brackets, e.g. `from=\"el[value]\"`. To copy a property,\nappend a dot and the property name, e.g. `from=\"el.value\"`.",
1999
- "type": "string"
2000
- }
2001
- ],
2002
- "events": [
2003
- {
2004
- "name": "zn-event-name",
2005
- "description": "Emitted as an example."
2006
- }
2007
- ]
2008
- }
2009
- },
2010
1959
  {
2011
1960
  "name": "zn-data-select",
2012
1961
  "description": "A select component with built-in data providers for common options like colors, currencies, and countries.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted when the select's value changes.\n- **zn-clear** - Emitted when the clear button is activated.\n- **blur** - Emitted when the select loses focus.\n\n### **Slots:**\n - **label** - The select's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the select, on the right. Alternatively, you can use the `context-note` attribute.\n- **help-text** - Text that describes how to use the select. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **combobox** - The container that wraps the prefix, combobox, clear icon, and expand button (forwarded from zn-select).\n- **expand-icon** - The container that wraps the expand icon (forwarded from zn-select).\n- **form-control-help-text** - The help text's wrapper (forwarded from zn-select).\n- **form-control-input** - The select's wrapper (forwarded from zn-select).\n- **display-input** - The element that displays the selected option's label (forwarded from zn-select).",
@@ -2407,19 +2356,22 @@
2407
2356
  }
2408
2357
  },
2409
2358
  {
2410
- "name": "zn-data-table-filter",
2359
+ "name": "zn-copy-button",
2411
2360
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
2412
2361
  "doc-url": "",
2413
2362
  "attributes": [
2363
+ { "name": "value", "value": { "type": "string", "default": "''" } },
2414
2364
  {
2415
- "name": "filters",
2416
- "value": { "type": "string", "default": "\"\"" }
2365
+ "name": "copy-label",
2366
+ "value": { "type": "string", "default": "''" }
2417
2367
  },
2368
+ { "name": "src", "value": { "type": "string", "default": "''" } },
2369
+ { "name": "size", "value": { "type": "number", "default": "24" } },
2418
2370
  {
2419
- "name": "name",
2420
- "value": { "type": "string", "default": "\"data-table-filter\"" }
2421
- },
2422
- { "name": "value", "value": { "type": "string" } }
2371
+ "name": "from",
2372
+ "description": "An id that references an element in the same document from which data will be copied. If both this and `value` are\npresent, this value will take precedence. By default, the target element's `textContent` will be copied. To copy an\nattribute, append the attribute name wrapped in square brackets, e.g. `from=\"el[value]\"`. To copy a property,\nappend a dot and the property name, e.g. `from=\"el.value\"`.",
2373
+ "value": { "type": "string", "default": "''" }
2374
+ }
2423
2375
  ],
2424
2376
  "slots": [
2425
2377
  { "name": "", "description": "The default slot." },
@@ -2430,14 +2382,21 @@
2430
2382
  ],
2431
2383
  "js": {
2432
2384
  "properties": [
2433
- { "name": "filters", "type": "string" },
2434
- { "name": "name", "type": "string" },
2385
+ { "name": "copyIcon", "type": "HTMLSlotElement" },
2386
+ { "name": "successIcon", "type": "HTMLSlotElement" },
2387
+ { "name": "errorIcon", "type": "HTMLSlotElement" },
2388
+ { "name": "tooltip", "type": "ZnTooltip" },
2389
+ { "name": "isCopying", "type": "boolean" },
2390
+ { "name": "status", "type": "'rest' | 'success' | 'error'" },
2435
2391
  { "name": "value", "type": "string" },
2436
- { "name": "validationMessage", "type": "string" },
2437
- { "name": "validity", "type": "ValidityState" },
2438
- { "name": "handleQBClear" },
2439
- { "name": "handleQBReset" },
2440
- { "name": "handleQBUpdate" }
2392
+ { "name": "copyLabel", "type": "string" },
2393
+ { "name": "src", "type": "string" },
2394
+ { "name": "size", "type": "number" },
2395
+ {
2396
+ "name": "from",
2397
+ "description": "An id that references an element in the same document from which data will be copied. If both this and `value` are\npresent, this value will take precedence. By default, the target element's `textContent` will be copied. To copy an\nattribute, append the attribute name wrapped in square brackets, e.g. `from=\"el[value]\"`. To copy a property,\nappend a dot and the property name, e.g. `from=\"el.value\"`.",
2398
+ "type": "string"
2399
+ }
2441
2400
  ],
2442
2401
  "events": [
2443
2402
  {
@@ -2448,10 +2407,20 @@
2448
2407
  }
2449
2408
  },
2450
2409
  {
2451
- "name": "zn-data-table-sort",
2410
+ "name": "zn-data-table-filter",
2452
2411
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
2453
2412
  "doc-url": "",
2454
- "attributes": [],
2413
+ "attributes": [
2414
+ {
2415
+ "name": "filters",
2416
+ "value": { "type": "string", "default": "\"\"" }
2417
+ },
2418
+ {
2419
+ "name": "name",
2420
+ "value": { "type": "string", "default": "\"data-table-filter\"" }
2421
+ },
2422
+ { "name": "value", "value": { "type": "string" } }
2423
+ ],
2455
2424
  "slots": [
2456
2425
  { "name": "", "description": "The default slot." },
2457
2426
  { "name": "example", "description": "An example slot." }
@@ -2460,7 +2429,16 @@
2460
2429
  { "name": "zn-event-name", "description": "Emitted as an example." }
2461
2430
  ],
2462
2431
  "js": {
2463
- "properties": [],
2432
+ "properties": [
2433
+ { "name": "filters", "type": "string" },
2434
+ { "name": "name", "type": "string" },
2435
+ { "name": "value", "type": "string" },
2436
+ { "name": "validationMessage", "type": "string" },
2437
+ { "name": "validity", "type": "ValidityState" },
2438
+ { "name": "handleQBClear" },
2439
+ { "name": "handleQBReset" },
2440
+ { "name": "handleQBUpdate" }
2441
+ ],
2464
2442
  "events": [
2465
2443
  {
2466
2444
  "name": "zn-event-name",
@@ -2562,6 +2540,28 @@
2562
2540
  ]
2563
2541
  }
2564
2542
  },
2543
+ {
2544
+ "name": "zn-data-table-sort",
2545
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
2546
+ "doc-url": "",
2547
+ "attributes": [],
2548
+ "slots": [
2549
+ { "name": "", "description": "The default slot." },
2550
+ { "name": "example", "description": "An example slot." }
2551
+ ],
2552
+ "events": [
2553
+ { "name": "zn-event-name", "description": "Emitted as an example." }
2554
+ ],
2555
+ "js": {
2556
+ "properties": [],
2557
+ "events": [
2558
+ {
2559
+ "name": "zn-event-name",
2560
+ "description": "Emitted as an example."
2561
+ }
2562
+ ]
2563
+ }
2564
+ },
2565
2565
  {
2566
2566
  "name": "zn-datepicker",
2567
2567
  "description": "A date picker component with calendar popup and input validation.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the date value changes.\n- **zn-input** - Emitted when the input value changes.\n- **zn-blur** - Emitted when the input loses focus.\n- **zn-focus** - Emitted when the input gains focus.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Sets focus on the input.\n- **blur()** - Removes focus from the input.\n- **select()** - Selects all the text in the input.\n- **checkValidity(): _boolean_** - Checks the validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - **label** - The datepicker's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Tooltip content for the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Additional context text displayed above the input. Alternatively, you can use the `context-note` attribute.\n- **help-text** - Help text displayed below the input. Alternatively, you can use the `help-text` attribute.\n- **prefix** - Content to display before the input (in addition to the default calendar icon).\n- **suffix** - Content to display after the input.\n\n### **CSS Properties:**\n - **--zn-input-*** - Inherited input component CSS custom properties. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **form-control** - The form control wrapper.\n- **form-control-label** - The label element.\n- **form-control-input** - The input wrapper.\n- **form-control-help-text** - The help text element.",
@@ -5650,6 +5650,45 @@
5650
5650
  ]
5651
5651
  }
5652
5652
  },
5653
+ {
5654
+ "name": "zn-opt-group",
5655
+ "description": "Groups options within a `<zn-select>` under a labeled header, similar to `<optgroup>` in native HTML.\n---\n\n\n### **Slots:**\n - _default_ - The default slot for `<zn-option>` elements.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **label** - The group label element.",
5656
+ "doc-url": "",
5657
+ "attributes": [
5658
+ {
5659
+ "name": "label",
5660
+ "description": "The label for the opt-group, displayed as a non-selectable header above the grouped options.",
5661
+ "value": { "type": "string", "default": "''" }
5662
+ },
5663
+ {
5664
+ "name": "disabled",
5665
+ "description": "Disables all options within the group.",
5666
+ "value": { "type": "boolean", "default": "false" }
5667
+ }
5668
+ ],
5669
+ "slots": [
5670
+ {
5671
+ "name": "",
5672
+ "description": "The default slot for `<zn-option>` elements."
5673
+ }
5674
+ ],
5675
+ "events": [],
5676
+ "js": {
5677
+ "properties": [
5678
+ {
5679
+ "name": "label",
5680
+ "description": "The label for the opt-group, displayed as a non-selectable header above the grouped options.",
5681
+ "type": "string"
5682
+ },
5683
+ {
5684
+ "name": "disabled",
5685
+ "description": "Disables all options within the group.",
5686
+ "type": "boolean"
5687
+ }
5688
+ ],
5689
+ "events": []
5690
+ }
5691
+ },
5653
5692
  {
5654
5693
  "name": "zn-note",
5655
5694
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - **caption** - The note's caption.\n- **date** - The note's date.\n- **body** - The note's body.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -5739,45 +5778,6 @@
5739
5778
  "events": []
5740
5779
  }
5741
5780
  },
5742
- {
5743
- "name": "zn-opt-group",
5744
- "description": "Groups options within a `<zn-select>` under a labeled header, similar to `<optgroup>` in native HTML.\n---\n\n\n### **Slots:**\n - _default_ - The default slot for `<zn-option>` elements.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **label** - The group label element.",
5745
- "doc-url": "",
5746
- "attributes": [
5747
- {
5748
- "name": "label",
5749
- "description": "The label for the opt-group, displayed as a non-selectable header above the grouped options.",
5750
- "value": { "type": "string", "default": "''" }
5751
- },
5752
- {
5753
- "name": "disabled",
5754
- "description": "Disables all options within the group.",
5755
- "value": { "type": "boolean", "default": "false" }
5756
- }
5757
- ],
5758
- "slots": [
5759
- {
5760
- "name": "",
5761
- "description": "The default slot for `<zn-option>` elements."
5762
- }
5763
- ],
5764
- "events": [],
5765
- "js": {
5766
- "properties": [
5767
- {
5768
- "name": "label",
5769
- "description": "The label for the opt-group, displayed as a non-selectable header above the grouped options.",
5770
- "type": "string"
5771
- },
5772
- {
5773
- "name": "disabled",
5774
- "description": "Disables all options within the group.",
5775
- "type": "boolean"
5776
- }
5777
- ],
5778
- "events": []
5779
- }
5780
- },
5781
5781
  {
5782
5782
  "name": "zn-order-table",
5783
5783
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
package/dist/zn.min.js CHANGED
@@ -5086,7 +5086,7 @@ Please report this to https://github.com/markedjs/marked.`,a){let i="<p>An error
5086
5086
  tooltip=${n}
5087
5087
  aria-pressed=${o?"true":"false"}
5088
5088
  ></zn-button>
5089
- `}};Ir.styles=[Er.styles,Y(P6e)],b([pe("zn-textarea")],Ir.prototype,"textarea",2),b([pe(".markdown-editor__preview")],Ir.prototype,"previewEl",2),b([w()],Ir.prototype,"name",2),b([w()],Ir.prototype,"value",2),b([ia()],Ir.prototype,"defaultValue",2),b([w()],Ir.prototype,"label",2),b([w({attribute:"help-text"})],Ir.prototype,"helpText",2),b([w()],Ir.prototype,"placeholder",2),b([w({type:Number})],Ir.prototype,"rows",2),b([w({reflect:!0,attribute:"view-mode"})],Ir.prototype,"viewMode",2),b([w({attribute:"storage-key"})],Ir.prototype,"storageKey",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"required",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"readonly",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"disabled",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"expanded",2),b([He("viewMode",{waitUntilFirstUpdate:!0})],Ir.prototype,"handleViewModeChange",1),b([He("value",{waitUntilFirstUpdate:!0})],Ir.prototype,"handleValueChange",1),b([He("markedReady",{waitUntilFirstUpdate:!0})],Ir.prototype,"handleMarkedReady",1);var tat=Ir;Ir.define("zn-markdown-editor");var rat={},VD=Kr(class extends ii{constructor(){super(...arguments),this.ot=rat}render(a,r){return r()}update(a,[r,t]){if(Array.isArray(r)){if(Array.isArray(this.ot)&&this.ot.length===r.length&&r.every((i,n)=>i===this.ot[n]))return jr}else if(this.ot===r)return jr;return this.ot=Array.isArray(r)?Array.from(r):r,this.render(r,t)}});var O6e={id:"in"},c4={id:"out"},p4="__new__",d0="application/x-zn-flow-type",d4;function u4(){return d4||(d4=new Image,d4.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"),d4}var ua=240,zi=60,f4=200,GD=40,WD=40,aat=40,q6e=240,iat=20;function jD(a){let r=a.length*7.2,t=Math.max(1,Math.ceil(r/(q6e-36)));return{w:Math.min(q6e,Math.round(36+r)),h:aat+(t-1)*iat}}var Mi=20;function bn(a){return Math.round(a/Mi)*Mi}var N6e=10,nat=4;function H6e(a,r){let t=a.m+r.m;return a.x<r.x+r.w+t&&r.x<a.x+a.w+t&&a.y<r.y+r.h+t&&r.y<a.y+a.h+t}function KD(a,r,t,i){let n=Za(a,r(a.type)),o=a.x+ua/2,s=c=>Math.round(o+(n.length===1?0:(c-(n.length-1)/2)*f4)),l=170,d=n.map((c,f)=>{let p=s(f),u=i.find(k=>k.source.node===a.id&&k.source.port===c.id),m=u?t.find(k=>k.id===u.target.node):void 0;if(!u||!m)return{x:p,aligned:!1};if(i.some(k=>k!==u&&k.target.node===u.target.node&&k.target.port===u.target.port))return{x:p,aligned:!1};let _=zc(m,r(m.type)),x=Math.max(_.findIndex(k=>k.id===u.target.port),0),y=r_(m,"in",x,_.length).x;return Math.abs(y-p)>f4?{x:p,aligned:!1}:{x:y,aligned:!0}});for(let c=0;c<d.length;c++)d[c].aligned&&d.some((f,p)=>p!==c&&Math.abs(f.x-d[c].x)<l)&&(d[c]={x:s(c),aligned:!1});return d.map(c=>c.x)}function UD(a,r,t,i){let n=[{x:a.x,y:a.y,w:ua,h:zi,m:N6e}],o=Za(a,r(a.type)),s=KD(a,r,t,i);return o.forEach((l,d)=>{if(!l.label)return;let c=jD(l.label);n.push({x:s[d]-c.w/2,y:a.y+zi+GD+WD,w:c.w,h:c.h,m:nat})}),n}function B6e(a,r,t,i,n){let o=UD(a,t,i,n);return UD(r,t,i,n).some(s=>o.some(l=>H6e(l,s)))}function F6e(a,r,t,i,n){let o={x:a.x,y:a.y,w:ua,h:zi,m:N6e};return UD(r,t,i,n).some(s=>H6e(o,s))}var YD=200,XD=120,$6e=120,V6e=80;function r_(a,r,t,i){return{x:a.x+ua*(t+1)/(i+1),y:a.y+(r==="in"?0:zi)}}function U6e(){return{nodes:[],connections:[],notes:[]}}function h4(a){var r;return a?(r=a.inputs)!=null?r:[O6e]:[O6e]}function QD(a){var r;return a?(r=a.outputs)!=null?r:[c4]:[c4]}function zc(a,r){var t;return(t=a.inputs)!=null?t:h4(r)}function Za(a,r){var t;return(t=a.outputs)!=null?t:QD(r)}function a_(a,r){var t,i;return(i=(t=zc(a,r)[0])==null?void 0:t.id)!=null?i:null}function G6e(a,r){let t=new Set,i=n=>{for(let o of a.connections)o.source.node===n&&!t.has(o.target.node)&&(t.add(o.target.node),i(o.target.node))};return i(r),t}function mp(a,r){let t=new Set(a.map(c=>c.id)),i=new Map(a.map(c=>[c.id,[]])),n=new Set;for(let c of r)!t.has(c.source.node)||!t.has(c.target.node)||(i.get(c.source.node).push(c),n.add(c.target.node));let o=new Set,s=new Set,l=new Set,d=c=>{var f;s.add(c),l.add(c);for(let p of(f=i.get(c))!=null?f:[])l.has(p.target.node)?o.add(p):s.has(p.target.node)||d(p.target.node);l.delete(c)};return a.filter(c=>!n.has(c.id)).forEach(c=>d(c.id)),a.forEach(c=>{s.has(c.id)||d(c.id)}),o}var W6e=Q`@keyframes rotate-gradient{from{--rotate:0deg}to{--rotate:360deg}}:host{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-transform:none}:host *,:host *::before,:host *::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:rgb(var(--zn-border-color))}[hidden]{display:none !important}.width-container,.form-container,.wide-form-container{height:100%;width:100%;margin:var(--zn-default-margin,0 auto)}.width-container{max-width:var(--zn-container)}.form-container{max-width:var(--zn-container-ph)}.wide-form-container{max-width:var(--zn-container-lg)}:host{--node-accent:rgb(var(--zn-color-primary));--port-size:11px;position:absolute;top:0;left:0;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}:host([dragging]) .card{cursor:grabbing}.card{position:relative;display:flex;flex-direction:column;justify-content:center;width:100%;height:100%;padding:0 10px;background:rgb(var(--zn-panel));border:1px solid rgb(var(--zn-border-color));border-radius:10px;box-shadow:0 1px 2px rgba(var(--zn-shadow),0.4);cursor:grab;transition:border-color 0.12s ease,box-shadow 0.12s ease}.card:hover{border-color:rgb(var(--zn-color-border-active))}.card.selected{border-color:var(--node-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--node-accent) 35%,transparent)}.card.link-target{border-color:rgb(var(--zn-color-primary));box-shadow:0 0 0 3px color-mix(in srgb,rgb(var(--zn-color-primary)) 30%,transparent)}.card.error{border-color:rgb(var(--zn-color-error));background:color-mix(in srgb,rgb(var(--zn-color-error)) 6%,rgb(var(--zn-panel)))}.body{display:flex;align-items:center;gap:10px}.icon-tile{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:36px;height:36px;border-radius:8px;color:var(--node-accent);background:color-mix(in srgb,var(--node-accent) 14%,transparent)}.text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.text .title{font-size:0.8125rem;font-weight:600;color:rgb(var(--zn-text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text .subtitle{font-size:0.75rem;color:rgb(var(--zn-color-muted-text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu{flex:0 0 auto;margin-right:-4px}zn-menu-item.danger{color:rgb(var(--zn-color-error))}.ports{position:absolute;left:0;width:100%;height:0}.ports--in{top:0}.ports--out{bottom:0}.port-wrap{position:absolute}.port{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:var(--port-size);height:var(--port-size);border-radius:50%;background:rgb(var(--zn-panel));border:2px solid var(--node-accent);box-sizing:border-box;pointer-events:none}.port--in{transition:transform 0.12s ease,background 0.12s ease,box-shadow 0.12s ease}:host([link-target]) .port--in{transform:translate(-50%,-50%) scale(1.4);background:rgb(var(--zn-color-primary));border-color:rgb(var(--zn-color-primary));box-shadow:0 0 0 4px color-mix(in srgb,rgb(var(--zn-color-primary)) 25%,transparent)}.port--out{pointer-events:auto;cursor:pointer;transition:transform 0.12s ease,background 0.12s ease,box-shadow 0.12s ease}.port--out:hover{transform:translate(-50%,-50%) scale(1.4);background:var(--node-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--node-accent) 25%,transparent)}.port-label{position:absolute;top:calc(var(--port-size) / 2 + 3px);left:8px;font-size:0.625rem;font-weight:600;letter-spacing:0.02em;color:rgb(var(--zn-color-muted-text));white-space:nowrap;pointer-events:none}`;var Yn=class extends K{constructor(){super(...arguments);this.selected=!1;this.error=!1;this.dragging=!1;this.linkTarget=!1;this._onBodyPointerDown=t=>{if(t.button!==0)return;let i=t.target;i.closest(".port")||i.closest("zn-dropdown")||(t.stopPropagation(),this._emit("flow-node-select",{nodeId:this.node.id}),this._emit("flow-node-grab",{nodeId:this.node.id,clientX:t.clientX,clientY:t.clientY}))}}updated(t){var i,n;super.updated(t),this.style.width=`${ua}px`,this.style.height=`${zi}px`,this.style.setProperty("--node-accent",(n=(i=this.type)==null?void 0:i.color)!=null?n:"rgb(var(--zn-color-primary))")}get nodeTitle(){var t,i,n,o,s,l;return(l=(s=(n=(t=this.node)==null?void 0:t.label)!=null?n:(i=this.type)==null?void 0:i.label)!=null?s:(o=this.node)==null?void 0:o.type)!=null?l:"Node"}get nodeSubtitle(){var i,n,o,s,l,d,c;let t=(l=(n=(i=this.node)==null?void 0:i.data)==null?void 0:n.subtitle)!=null?l:(s=(o=this.node)==null?void 0:o.data)==null?void 0:s.description;return typeof t=="string"?t:(c=(d=this.type)==null?void 0:d.description)!=null?c:""}_emit(t,i){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:i}))}_action(t){this._emit("flow-node-action",{nodeId:this.node.id,action:t})}_renderPorts(t,i){let n=t.length;return C`
5089
+ `}};Ir.styles=[Er.styles,Y(P6e)],b([pe("zn-textarea")],Ir.prototype,"textarea",2),b([pe(".markdown-editor__preview")],Ir.prototype,"previewEl",2),b([w()],Ir.prototype,"name",2),b([w()],Ir.prototype,"value",2),b([ia()],Ir.prototype,"defaultValue",2),b([w()],Ir.prototype,"label",2),b([w({attribute:"help-text"})],Ir.prototype,"helpText",2),b([w()],Ir.prototype,"placeholder",2),b([w({type:Number})],Ir.prototype,"rows",2),b([w({reflect:!0,attribute:"view-mode"})],Ir.prototype,"viewMode",2),b([w({attribute:"storage-key"})],Ir.prototype,"storageKey",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"required",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"readonly",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"disabled",2),b([w({type:Boolean,reflect:!0})],Ir.prototype,"expanded",2),b([He("viewMode",{waitUntilFirstUpdate:!0})],Ir.prototype,"handleViewModeChange",1),b([He("value",{waitUntilFirstUpdate:!0})],Ir.prototype,"handleValueChange",1),b([He("markedReady",{waitUntilFirstUpdate:!0})],Ir.prototype,"handleMarkedReady",1);var tat=Ir;Ir.define("zn-markdown-editor");var rat={},VD=Kr(class extends ii{constructor(){super(...arguments),this.ot=rat}render(a,r){return r()}update(a,[r,t]){if(Array.isArray(r)){if(Array.isArray(this.ot)&&this.ot.length===r.length&&r.every((i,n)=>i===this.ot[n]))return jr}else if(this.ot===r)return jr;return this.ot=Array.isArray(r)?Array.from(r):r,this.render(r,t)}});var O6e={id:"in"},c4={id:"out"},p4="__new__",d0="application/x-zn-flow-type",d4;function u4(){return d4||(d4=new Image,d4.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"),d4}var ua=240,zi=60,f4=200,GD=40,WD=40,aat=40,q6e=240,iat=20;function jD(a){let r=a.length*7.2,t=Math.max(1,Math.ceil(r/(q6e-36)));return{w:Math.min(q6e,Math.round(36+r)),h:aat+(t-1)*iat}}var Mi=20;function bn(a){return Math.round(a/Mi)*Mi}var N6e=10,nat=4;function H6e(a,r){let t=a.m+r.m;return a.x<r.x+r.w+t&&r.x<a.x+a.w+t&&a.y<r.y+r.h+t&&r.y<a.y+a.h+t}function KD(a,r,t,i){let n=Za(a,r(a.type)),o=a.x+ua/2,s=c=>Math.round(o+(n.length===1?0:(c-(n.length-1)/2)*f4)),l=170,d=n.map((c,f)=>{let p=s(f),u=i.find(k=>k.source.node===a.id&&k.source.port===c.id),m=u?t.find(k=>k.id===u.target.node):void 0;if(!u||!m)return{x:p,aligned:!1};if(i.some(k=>k!==u&&k.target.node===u.target.node&&k.target.port===u.target.port))return{x:p,aligned:!1};let _=zc(m,r(m.type)),x=Math.max(_.findIndex(k=>k.id===u.target.port),0),y=r_(m,"in",x,_.length).x;return Math.abs(y-p)>f4?{x:p,aligned:!1}:{x:y,aligned:!0}});for(let c=0;c<d.length;c++)d[c].aligned&&d.some((f,p)=>p!==c&&Math.abs(f.x-d[c].x)<l)&&(d[c]={x:s(c),aligned:!1});return d.map(c=>c.x)}function UD(a,r,t,i){let n=[{x:a.x,y:a.y,w:ua,h:zi,m:N6e}],o=Za(a,r(a.type)),s=KD(a,r,t,i);return o.forEach((l,d)=>{if(!l.label)return;let c=jD(l.label);n.push({x:s[d]-c.w/2,y:a.y+zi+GD+WD,w:c.w,h:c.h,m:nat})}),n}function B6e(a,r,t,i,n){let o=UD(a,t,i,n);return UD(r,t,i,n).some(s=>o.some(l=>H6e(l,s)))}function F6e(a,r,t,i,n){let o={x:a.x,y:a.y,w:ua,h:zi,m:N6e};return UD(r,t,i,n).some(s=>H6e(o,s))}var YD=200,XD=120,$6e=120,V6e=80;function r_(a,r,t,i){return{x:a.x+ua*(t+1)/(i+1),y:a.y+(r==="in"?0:zi)}}function U6e(){return{nodes:[],connections:[],notes:[]}}function h4(a){var r;return a?(r=a.inputs)!=null?r:[O6e]:[O6e]}function QD(a){var r;return a?(r=a.outputs)!=null?r:[c4]:[c4]}function zc(a,r){var t;return(t=a.inputs)!=null?t:h4(r)}function Za(a,r){var t;return(t=a.outputs)!=null?t:QD(r)}function a_(a,r){var t,i;return(i=(t=zc(a,r)[0])==null?void 0:t.id)!=null?i:null}function G6e(a,r){let t=new Set,i=n=>{for(let o of a.connections)o.source.node===n&&!t.has(o.target.node)&&(t.add(o.target.node),i(o.target.node))};return i(r),t}function mp(a,r){let t=new Set(a.map(c=>c.id)),i=new Map(a.map(c=>[c.id,[]])),n=new Set;for(let c of r)!t.has(c.source.node)||!t.has(c.target.node)||(i.get(c.source.node).push(c),n.add(c.target.node));let o=new Set,s=new Set,l=new Set,d=c=>{var f;s.add(c),l.add(c);for(let p of(f=i.get(c))!=null?f:[])l.has(p.target.node)?o.add(p):s.has(p.target.node)||d(p.target.node);l.delete(c)};return a.filter(c=>!n.has(c.id)).forEach(c=>d(c.id)),a.forEach(c=>{s.has(c.id)||d(c.id)}),o}var W6e=Q`@keyframes rotate-gradient{from{--rotate:0deg}to{--rotate:360deg}}:host{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-transform:none}:host *,:host *::before,:host *::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:rgb(var(--zn-border-color))}[hidden]{display:none !important}.width-container,.form-container,.wide-form-container{height:100%;width:100%;margin:var(--zn-default-margin,0 auto)}.width-container{max-width:var(--zn-container)}.form-container{max-width:var(--zn-container-ph)}.wide-form-container{max-width:var(--zn-container-lg)}:host{--node-accent:rgb(var(--zn-color-primary));--port-size:11px;position:absolute;top:0;left:0;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}:host([dragging]) .card{cursor:grabbing}.card{position:relative;display:flex;flex-direction:column;justify-content:center;width:100%;height:100%;padding:0 10px;background:rgb(var(--zn-panel));border:1px solid rgb(var(--zn-border-color));border-radius:10px;box-shadow:0 1px 2px rgba(var(--zn-shadow),0.4);cursor:grab;transition:border-color 0.12s ease,box-shadow 0.12s ease}.card:hover{border-color:rgb(var(--zn-color-border-active))}.card.selected{border-color:var(--node-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--node-accent) 35%,transparent)}.card.link-target{border-color:rgb(var(--zn-color-primary));box-shadow:0 0 0 3px color-mix(in srgb,rgb(var(--zn-color-primary)) 30%,transparent)}.card.error{border-color:rgb(var(--zn-color-error));background:color-mix(in srgb,rgb(var(--zn-color-error)) 6%,rgb(var(--zn-panel)))}.body{display:flex;align-items:center;gap:10px}.icon-tile{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:36px;height:36px;border-radius:8px;color:var(--node-accent);background:color-mix(in srgb,var(--node-accent) 14%,transparent)}.text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.text .title{font-size:0.8125rem;font-weight:600;color:rgb(var(--zn-text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text .subtitle{font-size:0.75rem;color:rgb(var(--zn-color-muted-text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu{flex:0 0 auto}zn-menu-item.danger{color:rgb(var(--zn-color-error))}.ports{position:absolute;left:0;width:100%;height:0}.ports--in{top:0}.ports--out{bottom:0}.port-wrap{position:absolute}.port{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:var(--port-size);height:var(--port-size);border-radius:50%;background:rgb(var(--zn-panel));border:2px solid var(--node-accent);box-sizing:border-box;pointer-events:none}.port--in{transition:transform 0.12s ease,background 0.12s ease,box-shadow 0.12s ease}:host([link-target]) .port--in{transform:translate(-50%,-50%) scale(1.4);background:rgb(var(--zn-color-primary));border-color:rgb(var(--zn-color-primary));box-shadow:0 0 0 4px color-mix(in srgb,rgb(var(--zn-color-primary)) 25%,transparent)}.port--out{pointer-events:auto;cursor:pointer;transition:transform 0.12s ease,background 0.12s ease,box-shadow 0.12s ease}.port--out:hover{transform:translate(-50%,-50%) scale(1.4);background:var(--node-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--node-accent) 25%,transparent)}.port-label{position:absolute;top:calc(var(--port-size) / 2 + 3px);left:8px;font-size:0.625rem;font-weight:600;letter-spacing:0.02em;color:rgb(var(--zn-color-muted-text));white-space:nowrap;pointer-events:none}`;var Yn=class extends K{constructor(){super(...arguments);this.selected=!1;this.error=!1;this.dragging=!1;this.linkTarget=!1;this._onBodyPointerDown=t=>{if(t.button!==0)return;let i=t.target;i.closest(".port")||i.closest("zn-dropdown")||(t.stopPropagation(),this._emit("flow-node-select",{nodeId:this.node.id}),this._emit("flow-node-grab",{nodeId:this.node.id,clientX:t.clientX,clientY:t.clientY}))}}updated(t){var i,n;super.updated(t),this.style.width=`${ua}px`,this.style.height=`${zi}px`,this.style.setProperty("--node-accent",(n=(i=this.type)==null?void 0:i.color)!=null?n:"rgb(var(--zn-color-primary))")}get nodeTitle(){var t,i,n,o,s,l;return(l=(s=(n=(t=this.node)==null?void 0:t.label)!=null?n:(i=this.type)==null?void 0:i.label)!=null?s:(o=this.node)==null?void 0:o.type)!=null?l:"Node"}get nodeSubtitle(){var i,n,o,s,l,d,c;let t=(l=(n=(i=this.node)==null?void 0:i.data)==null?void 0:n.subtitle)!=null?l:(s=(o=this.node)==null?void 0:o.data)==null?void 0:s.description;return typeof t=="string"?t:(c=(d=this.type)==null?void 0:d.description)!=null?c:""}_emit(t,i){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:i}))}_action(t){this._emit("flow-node-action",{nodeId:this.node.id,action:t})}_renderPorts(t,i){let n=t.length;return C`
5090
5090
  <div class="ports ports--${i}">
5091
5091
  ${t.map((o,s)=>{let l=`${100*(s+1)/(n+1)}%`;return C`
5092
5092
  <div class="port-wrap" style="left:${l}">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubex/zinc",
3
- "version": "1.1.25",
3
+ "version": "1.1.26",
4
4
  "description": "A collection of web components for building web applications based off of @shoelace-style/Shoelace",
5
5
  "keywords": [
6
6
  "web components",
@@ -94,9 +94,9 @@
94
94
  }
95
95
  }
96
96
 
97
+ // Sits flush with the body padding, mirroring the icon tile's edge gap.
97
98
  .menu {
98
99
  flex: 0 0 auto;
99
- margin-right: -4px;
100
100
  }
101
101
 
102
102
  zn-menu-item.danger {