@nldd/design-system 0.8.65 → 0.8.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/actions/toolbar/toolbar.d.ts +4 -2
- package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
- package/dist/components/actions/toolbar/toolbar.js +4 -2
- package/dist/components/actions/toolbar/toolbar.js.map +1 -1
- package/dist/components/actions/toolbar/toolbar.styles.d.ts.map +1 -1
- package/dist/components/actions/toolbar/toolbar.styles.js +32 -8
- package/dist/components/actions/toolbar/toolbar.styles.js.map +1 -1
- package/dist/components/actions/toolbar/toolbar.template.d.ts.map +1 -1
- package/dist/components/actions/toolbar/toolbar.template.js +5 -2
- package/dist/components/actions/toolbar/toolbar.template.js.map +1 -1
- package/dist/components/components.js +1 -1
- package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
- package/dist/components/content/icon/icon-aliases.js +21 -7
- package/dist/components/content/icon/icon-aliases.js.map +1 -1
- package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
- package/dist/components/content/icon/icon-registry.js +16 -4
- package/dist/components/content/icon/icon-registry.js.map +1 -1
- package/dist/components/{index-D3NSlPL5.js → index-Bfw_pYWB.js} +1 -1
- package/dist/components/{index-BlMqctke.js → index-Bqf6o41r.js} +1 -1
- package/dist/components/{index-BseMFLNF.js → index-CKnwqp_9.js} +1 -1
- package/dist/components/{index-D7B3n3QJ.js → index-CXT1jMFt.js} +1 -1
- package/dist/components/{index-ChjtFo6I.js → index-DO7aT0MT.js} +1 -1
- package/dist/components/{index-BcdqzZql.js → index-DWwviobk.js} +1 -1
- package/dist/components/{index-BI4lrehT.js → index-DjsXjoZJ.js} +629 -81
- package/dist/components/inputs/text-editor/text-editor.commands.d.ts +7 -0
- package/dist/components/inputs/text-editor/text-editor.commands.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.commands.js +44 -0
- package/dist/components/inputs/text-editor/text-editor.commands.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.d.ts +1 -1
- package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.js +5 -7
- package/dist/components/inputs/text-editor/text-editor.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.ordered-list.js +32 -11
- package/dist/components/inputs/text-editor/text-editor.ordered-list.js.map +1 -1
- package/dist/components/inputs/token-field/token-field.d.ts +3 -3
- package/dist/components/inputs/token-field/token-field.d.ts.map +1 -1
- package/dist/components/inputs/token-field/token-field.js +17 -5
- package/dist/components/inputs/token-field/token-field.js.map +1 -1
- package/dist/components/layout/app-view/app-view.d.ts +26 -6
- package/dist/components/layout/app-view/app-view.d.ts.map +1 -1
- package/dist/components/layout/app-view/app-view.js +101 -11
- package/dist/components/layout/app-view/app-view.js.map +1 -1
- package/dist/components/layout/app-view/app-view.styles.d.ts.map +1 -1
- package/dist/components/layout/app-view/app-view.styles.js +25 -0
- package/dist/components/layout/app-view/app-view.styles.js.map +1 -1
- package/dist/components/layout/page/page.d.ts +31 -1
- package/dist/components/layout/page/page.d.ts.map +1 -1
- package/dist/components/layout/page/page.js +112 -26
- package/dist/components/layout/page/page.js.map +1 -1
- package/dist/components/layout/page/page.styles.d.ts.map +1 -1
- package/dist/components/layout/page/page.styles.js +48 -0
- package/dist/components/layout/page/page.styles.js.map +1 -1
- package/dist/components/layout/sheet/sheet.d.ts +4 -0
- package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
- package/dist/components/layout/sheet/sheet.js +4 -0
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.d.ts +3 -0
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.d.ts.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.js +49 -0
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.js.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js +55 -0
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.template.d.ts.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.template.js +18 -9
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.template.js.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts +8 -0
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js +21 -0
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js +34 -0
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.d.ts.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.js +17 -7
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.js.map +1 -1
- package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts +6 -0
- package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts.map +1 -1
- package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js +17 -0
- package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js.map +1 -1
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.d.ts +10 -0
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.d.ts.map +1 -1
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.js +13 -0
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.js.map +1 -1
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js +19 -0
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js.map +1 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.d.ts +6 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.d.ts.map +1 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.js +42 -6
- package/dist/components/navigation/top-title-bar/top-title-bar.js.map +1 -1
- package/dist/utilities/scroll-mode-controller.d.ts +69 -0
- package/dist/utilities/scroll-mode-controller.d.ts.map +1 -0
- package/dist/utilities/scroll-mode-controller.js +101 -0
- package/dist/utilities/scroll-mode-controller.js.map +1 -0
- package/package.json +1 -1
|
@@ -902,8 +902,8 @@ const aliases = {
|
|
|
902
902
|
"forward": "chevron-right",
|
|
903
903
|
// circle-dashed
|
|
904
904
|
"icon-placeholder": "circle-dashed",
|
|
905
|
-
// clipboard-
|
|
906
|
-
"paste": "clipboard-
|
|
905
|
+
// clipboard-square
|
|
906
|
+
"paste": "clipboard-square",
|
|
907
907
|
// clock
|
|
908
908
|
"time": "clock",
|
|
909
909
|
"now": "clock",
|
|
@@ -952,7 +952,7 @@ const aliases = {
|
|
|
952
952
|
// file
|
|
953
953
|
"document": "file",
|
|
954
954
|
// file-text
|
|
955
|
-
"
|
|
955
|
+
"text-document": "file-text",
|
|
956
956
|
// file-text-stack
|
|
957
957
|
"documents": "file-text-stack",
|
|
958
958
|
"text-documents": "file-text-stack",
|
|
@@ -1027,6 +1027,8 @@ const aliases = {
|
|
|
1027
1027
|
// paperclip
|
|
1028
1028
|
"attachment": "paperclip",
|
|
1029
1029
|
"attach": "paperclip",
|
|
1030
|
+
// paragraph-sign
|
|
1031
|
+
"paragraph": "paragraph-sign",
|
|
1030
1032
|
// parking-sign-square
|
|
1031
1033
|
"parking": "parking-sign-square",
|
|
1032
1034
|
// pencil
|
|
@@ -1096,8 +1098,8 @@ const aliases = {
|
|
|
1096
1098
|
// sun
|
|
1097
1099
|
"day": "sun",
|
|
1098
1100
|
"light-mode": "sun",
|
|
1099
|
-
//
|
|
1100
|
-
"download-table": "
|
|
1101
|
+
// rectangle-split-2x3-badge-arrow-down
|
|
1102
|
+
"download-table": "rectangle-split-2x3-badge-arrow-down",
|
|
1101
1103
|
// tag
|
|
1102
1104
|
"label": "tag",
|
|
1103
1105
|
"category": "tag",
|
|
@@ -1145,8 +1147,9 @@ const aliases = {
|
|
|
1145
1147
|
"protection": "shield",
|
|
1146
1148
|
// shopping-cart
|
|
1147
1149
|
"cart": "shopping-cart",
|
|
1148
|
-
//
|
|
1149
|
-
"table": "
|
|
1150
|
+
// rectangle-split-2x3
|
|
1151
|
+
"table": "rectangle-split-2x3",
|
|
1152
|
+
"table-cells": "rectangle-split-2x3",
|
|
1150
1153
|
// square-and-arrow-down
|
|
1151
1154
|
"save": "square-and-arrow-down",
|
|
1152
1155
|
"import": "square-and-arrow-down",
|
|
@@ -1163,7 +1166,18 @@ const aliases = {
|
|
|
1163
1166
|
// rectangle-split-3x1
|
|
1164
1167
|
"columns-3": "rectangle-split-3x1",
|
|
1165
1168
|
// tree-structure
|
|
1166
|
-
"hierarchy": "tree-structure"
|
|
1169
|
+
"hierarchy": "tree-structure",
|
|
1170
|
+
"sitemap": "tree-structure",
|
|
1171
|
+
// lifebuoy
|
|
1172
|
+
"support": "lifebuoy",
|
|
1173
|
+
// network-structure
|
|
1174
|
+
"network": "network-structure",
|
|
1175
|
+
// centralized-structure
|
|
1176
|
+
"centralized-network": "centralized-structure",
|
|
1177
|
+
// person-circle-badge-plus
|
|
1178
|
+
"new-account": "person-circle-badge-plus",
|
|
1179
|
+
// wheat
|
|
1180
|
+
"harvest": "wheat"
|
|
1167
1181
|
};
|
|
1168
1182
|
const iconRegistry = /* @__PURE__ */ new Map([
|
|
1169
1183
|
["accessibility", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20m0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16m4.56 4.13a.75.75 0 0 1 .39 1.45l-3.45.92v1.84a5 5 0 0 0 .17 1.3l1.05 3.92a.75.75 0 0 1-1.45.39l-.98-3.69a.3.3 0 0 0-.58 0l-.99 3.69a.75.75 0 0 1-1.46-.32l.01-.07 1.06-3.94a5 5 0 0 0 .17-1.3V10.5l-3.45-.92a.75.75 0 0 1 .4-1.45l2.13.57a9.4 9.4 0 0 0 4.84 0zM12 5.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3"/>\n</svg>'],
|
|
@@ -1211,7 +1225,7 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1211
1225
|
["caret-up", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M2 16 12 6l10 10z"/>\n</svg>'],
|
|
1212
1226
|
["caret-up-extra-small", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="m6 14 6-6 6 6z"/>\n</svg>'],
|
|
1213
1227
|
["caret-up-small", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="m4 15 8-8 8 8z"/>\n</svg>'],
|
|
1214
|
-
["centralized-
|
|
1228
|
+
["centralized-structure", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 1a2 2 0 0 1 .68 3.88l.49 5.12c.78.04 1.5.3 2.1.7l2.97-2.75a2 2 0 1 1 .68.73l-2.9 2.7q.78.9.95 2.14l2.2.3a1.5 1.5 0 1 1-.14.99l-2.07-.28q-.17 1.18-.9 2.05l1.96 2.5a1.5 1.5 0 1 1-.79.62l-1.91-2.44a4 4 0 0 1-3.35.6l-.52 1.48a1.5 1.5 0 1 1-.95-.34l.54-1.51A4 4 0 0 1 9.2 15.2l-2.2.69.01.1a2 2 0 1 1-.3-1.06l2.3-.72a4 4 0 0 1 .66-2.41L6.3 9.5q-.53.48-1.3.5a2 2 0 1 1 1.88-1.32l3.43 2.36q.78-.71 1.86-.95l-.49-5.12A2 2 0 0 1 12 1m1 11a2 2 0 1 0 0 4 2 2 0 0 0 0-4"/>\n</svg>'],
|
|
1215
1229
|
["certificate", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M15 11a3 3 0 0 1 2 5.23V21l-2-1-2 1v-4.77A2.99 2.99 0 0 1 15 11m0 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2"/>\n <path fill="currentColor" d="M19 3a3 3 0 0 1 3 3v10c0 1.67-1.33 3-3 3h-1v-2h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h7v2H5c-1.67 0-3-1.33-3-3V6a3 3 0 0 1 3-3z"/>\n <path fill="currentColor" d="M10 13H6v-2h4zM18 9H6V7h12z"/>\n</svg>'],
|
|
1216
1230
|
["chart-x-y-axis-line", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M4 19h18v2H2V3h2z"/>\n <path fill="currentColor" d="M20.7 7.7 14 14.42l-3-3-3.3 3.3-1.4-1.42L11 8.6l3 3 5.3-5.3z"/>\n</svg>'],
|
|
1217
1231
|
["check-circle-filled", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20m-1.3 11.3L8.42 11 7 12.41l3.7 3.71 6.71-6.7L16 8z"/>\n</svg>'],
|
|
@@ -1252,7 +1266,7 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1252
1266
|
["circle-filled-extra-small", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M8 12c0 2.204 1.796 4 4 4s4-1.796 4-4-1.796-4-4-4-4 1.796-4 4"/>\n</svg>'],
|
|
1253
1267
|
["circle-filled-small", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M6 12c0 3.306 2.694 6 6 6s6-2.694 6-6-2.694-6-6-6a6.01 6.01 0 0 0-6 6"/>\n</svg>'],
|
|
1254
1268
|
["clipboard", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M15 2a1 1 0 0 1 1 1h1a3 3 0 0 1 3 3v13a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h1a1 1 0 0 1 1-1zM7 5a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-1v2c0 .55-.42 1-1 1H9a1 1 0 0 1-1-1V5zm3 1h4V4h-4z"/>\n</svg>'],
|
|
1255
|
-
["clipboard-
|
|
1269
|
+
["clipboard-square", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18 11a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3h-6a3 3 0 0 1-3-3v-6a3 3 0 0 1 3-3zm-6 2a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1z"/>\n <path fill="currentColor" d="M14 2a1 1 0 0 1 1 1h1a3 3 0 0 1 3 3v4.13c-.65-.17-1.33-.13-2-.13V6a1 1 0 0 0-1-1h-1v2c0 .55-.42 1-1 1H8a1 1 0 0 1-1-1V5H6a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h2a4 4 0 0 0 .54 2H6a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h1a1 1 0 0 1 1-1zM9 6h4V4H9z"/>\n</svg>'],
|
|
1256
1270
|
["clock", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="m13 11.59 3.24 3.24-1.41 1.41-3.54-3.53A1 1 0 0 1 11 12V6h2z"/>\n <path fill="currentColor" d="M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20m0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16"/>\n</svg>'],
|
|
1257
1271
|
["clock-arrow-clockwise", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M21 8h-6V6h2.29a8 8 0 1 0 1.64 10l1.73 1a10 10 0 0 1-4.83 4.24c-2.06.8-4.26.95-6.42.42A10 10 0 1 1 19 4.86V2h2z"/>\n <path fill="currentColor" d="m13 11.59 3.24 3.24-1.41 1.41-3.54-3.53A1 1 0 0 1 11 12V6h2z"/>\n</svg>'],
|
|
1258
1272
|
["clock-arrow-counter-clockwise", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M5 4.86A10 10 0 1 1 3.34 17l1.73-1A8 8 0 1 0 6.71 6H9v2H3V2h2z"/>\n <path fill="currentColor" d="m13 11.59 3.24 3.24-1.41 1.41-3.54-3.53A1 1 0 0 1 11 12V6h2z"/>\n</svg>'],
|
|
@@ -1299,6 +1313,12 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1299
1313
|
["globe-rack-server", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M6.5 10.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3"/>\n <path fill="currentColor" d="M12 2c4 0 7.48 2.39 9.07 5.81A2 2 0 0 1 22 9.5v5a2 2 0 0 1-.93 1.69A10 10 0 0 1 12 22c-4 0-7.48-2.39-9.07-5.81A2 2 0 0 1 2 14.7V9.5a2 2 0 0 1 .93-1.69A10 10 0 0 1 12 2M9.17 16.5A6.4 6.4 0 0 0 11 19.56V16.5zM13 19.56a6.4 6.4 0 0 0 1.83-3.06H13zM5.4 16.5a8 8 0 0 0 2.65 2.46q-.57-1.1-.96-2.46zm11.5 0q-.37 1.36-.95 2.46a8 8 0 0 0 2.66-2.46zM4 14.5h16v-5H4zm4.05-9.46A8 8 0 0 0 5.4 7.5h1.7q.38-1.36.96-2.46m2.95-.6A6.4 6.4 0 0 0 9.17 7.5H11zm2 3.06h1.83A6.4 6.4 0 0 0 13 4.43zm2.95-2.46q.57 1.1.96 2.46h1.7c-.69-1-1.6-1.85-2.66-2.46"/>\n</svg>'],
|
|
1300
1314
|
["hand", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12.5 1c.89 0 1.67.47 2.11 1.17A2.5 2.5 0 0 1 18 4.5v.05A2.5 2.5 0 0 1 21 7v7a8 8 0 0 1-14.9 4.04l-3.4-5.87A2.5 2.5 0 0 1 7 9.6V4.5a2.5 2.5 0 0 1 3.39-2.33A2.5 2.5 0 0 1 12.5 1m0 2a.5.5 0 0 0-.5.5V10a1 1 0 1 1-2 0V4.5a.5.5 0 0 0-1 0v8.84a1 1 0 0 1-1.89.46l-1.8-3.13-.07-.09a.5.5 0 0 0-.85.5l.05.09 3.38 5.85A6 6 0 0 0 19 14V7a.5.5 0 0 0-1 0v4a1 1 0 1 1-2 0V4.5a.5.5 0 0 0-1 0V10a1 1 0 1 1-2 0V3.5a.5.5 0 0 0-.5-.5"/>\n</svg>'],
|
|
1301
1315
|
["handshake", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M5.99 3.67a4 4 0 0 1 5.66 0l.09.1a4 4 0 0 1 4.86.6l4.24 4.25.14.15a4 4 0 0 1 0 5.36l-.14.15L14.12 21l-.19.17a2.5 2.5 0 0 1-3.15 0l-.2-.17q-.6-.62-.7-1.42a2.5 2.5 0 0 1-2.12-2.12 2.5 2.5 0 0 1-1.23-.54l-.19-.17c-.4-.4-.63-.9-.7-1.41a2.5 2.5 0 0 1-1.23-.54l-.19-.17a2.5 2.5 0 0 1 0-3.53l5.3-5.3 3.19 3.17a.5.5 0 1 0 .7-.7l-3.18-3.18a2 2 0 0 0-2.83 0L4.58 7.9a2 2 0 0 0-.52 1.93l-.54.55q-.55.55-.8 1.24a4 4 0 0 1 .44-5.13zm-.35 8.84a.5.5 0 1 0 .7.7l2.48-2.47a1 1 0 1 1 1.41 1.42l-2.47 2.47a.5.5 0 1 0 .7.7l2.48-2.47a1 1 0 1 1 1.41 1.42l-2.47 2.47a.5.5 0 0 0 .7.71l2.48-2.47a1 1 0 0 1 1.42 1.4L12 18.88a.5.5 0 1 0 .7.71l6.72-6.72a2 2 0 0 0 0-2.82L15.18 5.8a2 2 0 0 0-1.93-.51l1.58 1.57.17.2c.8.98.74 2.42-.17 3.34l-.2.17a2.5 2.5 0 0 1-3.15 0l-.19-.17-1.76-1.77z"/>\n</svg>'],
|
|
1316
|
+
["heading-1", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M4 11h8V3h2v18h-2v-8H4v8H2V3h2zm17 10h-2v-7.5h-2v-2h4z"/>\n</svg>'],
|
|
1317
|
+
["heading-2", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M4 11h8V3h2v18h-2v-8H4v8H2V3h2zm16.5.9c.8.46 1.35 1.3 1.47 2.2.12.92-.2 1.87-.85 2.52L18.74 19H22v2h-6v-2.09l3.7-3.7c.46-.46.36-1.25-.2-1.58a1 1 0 0 0-1.47.61l-1.93-.52c.24-.88.9-1.64 1.75-2a3 3 0 0 1 2.65.18"/>\n</svg>'],
|
|
1318
|
+
["heading-3", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M4 11h8V3h2v18h-2v-8H4v8H2V3h2zm14.37.56c1.16-.2 2.43.16 3.2 1.06a2.64 2.64 0 0 1-.1 3.63q.26.27.45.6c.54.98.39 2.18-.34 3.02a3.5 3.5 0 0 1-3.21 1.07 3.1 3.1 0 0 1-2.51-2.07l1.91-.58c.12.4.57.62.94.68.47.09 1.03-.03 1.36-.4.18-.22.24-.5.1-.74-.23-.4-.74-.58-1.17-.58h-1v-2h1c.43 0 .94-.18 1.17-.58.14-.25.08-.52-.1-.73-.33-.38-.89-.5-1.36-.41-.37.06-.82.29-.94.68l-1.91-.58a3.1 3.1 0 0 1 2.5-2.07"/>\n</svg>'],
|
|
1319
|
+
["heading-4", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M4 11h8V3h2v18h-2v-8H4v8H2V3h2z"/>\n <path fill="currentColor" d="M22 17h1v2h-1v2h-2v-2h-4v-2l3.5-5.5H22zm-3.75 0H20v-2.6z"/>\n</svg>'],
|
|
1320
|
+
["heading-5", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M4 11h8V3h2v18h-2v-8H4v8H2V3h2zm17.5 2.5H18V15h1c1.63 0 3 1.37 3 3s-1.37 3-3 3h-3v-2h3c.54 0 1-.46 1-1s-.46-1-1-1h-3v-5.5h5.5z"/>\n</svg>'],
|
|
1321
|
+
["heading-6", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18.16 11.61c1.4-.38 2.93.26 3.65 1.52l-1.73 1c-.6-1.05-2.33-.64-2.33.62v.48Q18.32 15 19 15c1.8 0 3.25 1.34 3.25 3s-1.46 3-3.25 3c-1.74 0-3.16-1.26-3.25-2.84V14.5a3.3 3.3 0 0 1 2.4-2.89m-.41 6.4c0 1.32 2.5 1.32 2.5 0 0-1.33-2.5-1.33-2.5 0"/>\n <path fill="currentColor" d="M4 11h8V3h2v18h-2v-8H4v8H2V3h2z"/>\n</svg>'],
|
|
1302
1322
|
["heart", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 5.216a5.858 5.858 0 1 1 8.284 8.284v.003L12 21.787l-8.284-8.284c-2.297-2.297-2.216-5.979 0-8.284C6 2.916 9.684 3.026 11.999 5.217zm6.87 1.414a3.86 3.86 0 0 0-5.456 0L12 8.045l-1.414-1.413a3.858 3.858 0 0 0-5.455 5.457l6.87 6.87 6.87-6.873a3.86 3.86 0 0 0 0-5.456"/>\n</svg>'],
|
|
1303
1323
|
["heart-filled", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M3.716 5.218a5.86 5.86 0 0 1 8.283 0L12 5.215a5.858 5.858 0 0 1 8.284 8.284l-.001.001.001.002L12 21.787l-8.284-8.284a5.86 5.86 0 0 1 0-8.285"/>\n</svg>'],
|
|
1304
1324
|
["highlighter", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M22 22H4v-2h18z"/>\n <path fill="currentColor" d="M12.59 2.66a2 2 0 0 1 2.48-.4l2.38 1.38a2 2 0 0 1 .9 2.37l-2.87 8.53a3 3 0 0 1-2.07 1.94l-.6.17c-.52.2-.85.57-1.13 1.02a1 1 0 0 1-1.35.34l-.4-.23-.56.97a.5.5 0 0 1-.43.25H5.48a.5.5 0 0 1-.44-.75l1.43-2.47-.52-.3a1 1 0 0 1-.33-1.23c.3-.56.51-1.1.34-1.76l-.1-.35a3 3 0 0 1 .68-2.79zM7.9 10.84a1 1 0 0 0-.12.78l.1.36a4 4 0 0 1-.06 2.27l2.73 1.58a4 4 0 0 1 1.91-1.17l.42-.11a1 1 0 0 0 .62-.48zM9.27 9.3l4.9 2.83 2.28-6.77L14.07 4z"/>\n</svg>'],
|
|
@@ -1312,6 +1332,7 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1312
1332
|
["italic", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18 4h-2.821l-4.287 16H14v2H6v-2h2.821l4.287-16H10V2h8z"/>\n</svg>'],
|
|
1313
1333
|
["key", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3"/>\n <path fill="currentColor" d="M12 1a6 6 0 0 1 6 6l-.01.41A6 6 0 0 1 15 12.2v.3l2.5 2.5-2 2 1.5 1.5-4.5 4.5L9 20v-7.8a6 6 0 0 1-2.99-4.8L6 7a6 6 0 0 1 6-6m0 2a4 4 0 0 0-2 7.46l1 .58v8.04l1.4 1.2 1.77-1.78-1.5-1.5 2-2L13 13.33v-2.29l1-.58A4 4 0 0 0 12 3"/>\n</svg>'],
|
|
1314
1334
|
["leaf", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M20.73 3c0 5.66.3 11.03-2.83 14.15a8 8 0 0 1-10.98.31 11 11 0 0 0-1.44 3.5 1 1 0 0 1-1.96-.37c.28-1.5.99-3.12 2.04-4.7A8 8 0 0 1 6.59 5.84C9.7 2.7 15.07 3 20.73 3m-2 2c-2.1 0-4.02 0-5.76.23-2.24.3-3.85.9-4.97 2.02a6 6 0 0 0-1.14 6.9 19 19 0 0 1 5.38-4.45 1 1 0 0 1 .95 1.76c-1.83 1-3.64 2.53-5.09 4.33l-.02.02a6 6 0 0 0 8.4-.07c1.12-1.12 1.73-2.73 2.02-4.97.23-1.74.24-3.65.24-5.77"/>\n</svg>'],
|
|
1335
|
+
["lifebuoy", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20m2.31 14.43a5 5 0 0 1-4.62 0L7.5 18.62a8 8 0 0 0 9 0zM5.38 7.5a8 8 0 0 0 0 9l2.19-2.19a5 5 0 0 1 0-4.62zm11.05 2.2a5 5 0 0 1 0 4.62l2.19 2.19a8 8 0 0 0 0-9zM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6m0-5a8 8 0 0 0-4.5 1.38l2.2 2.19a5 5 0 0 1 4.62 0l2.19-2.19A8 8 0 0 0 12 4"/>\n</svg>'],
|
|
1315
1336
|
["lightbulb", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M15 20a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2zm0-2a.5.5 0 0 1 0 1H9a.5.5 0 0 1 0-1zM12 2a7 7 0 0 1 4.6 12.27c-.36.32-.6.76-.6 1.25 0 .82-.66 1.48-1.48 1.48H9.48C8.66 17 8 16.36 8 15.52c0-.43-.19-.82-.48-1.13l-.13-.12A7 7 0 0 1 12 2m0 2a5 5 0 0 0-3.3 8.76c.6.53 1.12 1.3 1.26 2.24h4.08c.14-.94.65-1.71 1.25-2.24A5 5 0 0 0 12 4"/>\n</svg>'],
|
|
1316
1337
|
["link", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M14.47 9.53a5 5 0 0 1 0 7.07l-3.36 3.35a5 5 0 0 1-7.06-7.06l3.13-3.14c-.18.9-.15 1.85.09 2.74l-1.63 1.63a3 3 0 0 0 4.24 4.24l3.18-3.18a3 3 0 0 0-1.8-5.1 2 2 0 0 1 .39-.55l1.12-1.12q.94.36 1.7 1.12"/>\n <path fill="currentColor" d="M19.78 4.22a5 5 0 0 1 0 7.07l-2.96 2.96c.18-.9.15-1.85-.09-2.74l1.63-1.63a3 3 0 1 0-4.24-4.24l-3.18 3.18a3 3 0 0 0 1.8 5.1 2 2 0 0 1-.39.56l-1.12 1.11a4.98 4.98 0 0 1-1.88-8l3.36-3.37a5 5 0 0 1 7.07 0"/>\n</svg>'],
|
|
1317
1338
|
["list", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M2 5h20v2H2zm0 6h20v2H2zm0 6h20v2H2z"/>\n</svg>'],
|
|
@@ -1327,9 +1348,11 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1327
1348
|
["minus-extra-small", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M6 11h12v2H6z"/>\n</svg>'],
|
|
1328
1349
|
["minus-small", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M4 11h16v2H4z"/>\n</svg>'],
|
|
1329
1350
|
["moon", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M10.47 2.12a8.99 8.99 0 0 0 11.41 11.4 10 10 0 1 1-11.4-11.4M8 5.07A8 8 0 1 0 18.93 16 11 11 0 0 1 8 5.07"/>\n</svg>'],
|
|
1351
|
+
["network-structure", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 1a3 3 0 0 1 2.89 3.8l1.95 1.13A2.99 2.99 0 0 1 22 8a3 3 0 0 1-2.32 2.92v2.16a3 3 0 1 1-2.84 5l-1.95 1.12a3 3 0 1 1-5.78 0l-1.95-1.13A2.99 2.99 0 0 1 2 16a3 3 0 0 1 2.32-2.92v-2.16a3 3 0 1 1 2.84-5L9.11 4.8A3 3 0 0 1 12 1m0 18a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-4.1-3.79c.13.5.13 1.06 0 1.55l1.96 1.14a3 3 0 0 1 1.39-.8v-2.2a3 3 0 0 1-1.4-.81zm6.25-1.12a3 3 0 0 1-1.4.81v2.2a3 3 0 0 1 1.39.8l1.96-1.14a3 3 0 0 1 0-1.55zM5 15a1 1 0 1 0 0 2 1 1 0 0 0 0-2m14 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-4.1-3.79c.13.5.13 1.07 0 1.58l1.95 1.12a3 3 0 0 1 1.33-.8v-2.23a3 3 0 0 1-1.33-.79zm-7.75-1.12a3 3 0 0 1-1.33.8v2.23a3 3 0 0 1 1.33.79l1.96-1.12a3 3 0 0 1 0-1.58zM12 11a1 1 0 1 0 0 2 1 1 0 0 0 0-2M7.9 7.23c.13.5.13 1.06 0 1.56L9.84 9.9a3 3 0 0 1 1.4-.81V6.9a3 3 0 0 1-1.4-.8zm6.24-1.13a3 3 0 0 1-1.39.8v2.2a3 3 0 0 1 1.4.8l1.95-1.1a3 3 0 0 1 0-1.56zM5 7a1 1 0 1 0 0 2 1 1 0 0 0 0-2m14 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-7-4a1 1 0 1 0 0 2 1 1 0 0 0 0-2"/>\n</svg>'],
|
|
1330
1352
|
["numbered-list", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M5.43 14a2 2 0 0 1 1.3 3.4l-1.1 1.1H7.5V20h-4v-1.5l2.16-2.16a.5.5 0 0 0 .14-.4.5.5 0 0 0-.47-.44.5.5 0 0 0-.51.37l-1.45-.39A2 2 0 0 1 5.43 14M22 19H10v-2h12zM22 13H10v-2h12zM6.5 10H5V5.5H3.5V4h3zM22 7H10V5h12z"/>\n</svg>'],
|
|
1331
1353
|
["paper-plane", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19.7 2.74c.96-.31 1.87.6 1.56 1.57l-5.73 17.94c-.4.98-1.8 1.03-2.27.07L10.2 14.5a1.3 1.3 0 0 0-.7-.7l-7.72-3.03c-1.1-.42-1.04-2 .08-2.35zm-7.77 10.75q.08.15.13.29l2.25 5.74 3.94-12.36zm-7.45-3.8 5.74 2.25.3.13 6.32-6.32z"/>\n</svg>'],
|
|
1332
1354
|
["paperclip", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M8.04 15.21a.75.75 0 1 0 1.06 1.06l8-8a2.5 2.5 0 0 0-3.53-3.54l-8 8a4.25 4.25 0 1 0 6 6.02l8.01-8 1.42 1.4-8 8.01a6.2 6.2 0 0 1-8.85 0 6.2 6.2 0 0 1 0-8.84l8-8a4.5 4.5 0 1 1 6.37 6.36l-8 8a2.75 2.75 0 1 1-3.9-3.88l8.01-8 1.42 1.4z"/>\n</svg>'],
|
|
1355
|
+
["paragraph-sign", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 4h-2v18h-2V4h-2v18h-2V12h-1a5 5 0 0 1 0-10h9z"/>\n</svg>'],
|
|
1333
1356
|
["parking-sign-square", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12.5 6a4 4 0 0 1 0 8h-2v4h-2V6zm-2 6h2a2 2 0 1 0 0-4h-2z"/>\n <path fill="currentColor" d="M19 2a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3zM5 4a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1z"/>\n</svg>'],
|
|
1334
1357
|
["pencil", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M21.418 4a2 2 0 0 1 0 2.828L7.246 21H3.003v-4.243L17.175 2.586a2 2 0 0 1 2.828 0zM15.76 6.828 5.003 17.586V19h1.414L17.175 8.243zm1.414-1.414 1.414 1.414 1.414-1.414L18.59 4z"/>\n</svg>'],
|
|
1335
1358
|
["pencil-on-square", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M10.932 6H5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5.927l2-2V19c0 1.66-1.34 3-3 3H5c-1.66 0-3-1.34-3-3V7a3 3 0 0 1 3-3h7.93z"/>\n <path fill="currentColor" d="M17.175 2.586a2 2 0 0 1 2.829 0L21.418 4a2 2 0 0 1 0 2.828L11.246 17H7.003v-4.242zm-8.172 11V15h1.414l6.758-6.758-1.414-1.414zm8.172-8.172 1.414 1.414 1.415-1.414L18.589 4z"/>\n</svg>'],
|
|
@@ -1338,6 +1361,7 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1338
1361
|
["person-2", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M10 14c2.2 0 4 1.8 4 4v3h-2v-3a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3H2v-3c0-2.2 1.8-4 4-4zM22 17v3h-2v-3a2 2 0 0 0-2-2h-3.93a5 5 0 0 0-1.92-1.55A4 4 0 0 1 14 13h4c2.2 0 4 1.8 4 4"/>\n <path fill="currentColor" d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4M16 3a4 4 0 1 1-3.2 6.4 5 5 0 0 0-.5-3.94A4 4 0 0 1 16 3m0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4"/>\n</svg>'],
|
|
1339
1362
|
["person-badge-gear", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18.75 13q.23.02.25.25v.68q.01.19.19.25.35.11.67.28c.1.05.23.04.3-.04l.5-.49c.09-.1.25-.1.34 0L22.07 15c.1.1.1.25 0 .35l-.49.48q-.12.14-.04.3.16.33.28.68.06.18.25.19h.68q.23.02.25.25v1.5q-.02.23-.25.25h-.68a.3.3 0 0 0-.25.19q-.11.35-.28.67c-.05.1-.04.23.04.3l.49.5c.1.09.1.25 0 .34L21 22.07c-.1.1-.25.1-.35 0l-.48-.49a.3.3 0 0 0-.3-.04q-.33.16-.68.28a.3.3 0 0 0-.19.25v.68q-.02.23-.25.25h-1.5a.25.25 0 0 1-.25-.25v-.68a.3.3 0 0 0-.19-.25 4 4 0 0 1-.67-.28.3.3 0 0 0-.3.04l-.5.49c-.09.1-.25.1-.34 0L13.93 21a.25.25 0 0 1 0-.35l.49-.48q.13-.13.04-.3-.16-.33-.28-.68a.3.3 0 0 0-.25-.19h-.68a.25.25 0 0 1-.25-.25v-1.5q.02-.23.25-.25h.68q.2-.01.25-.19.11-.35.28-.67a.3.3 0 0 0-.04-.3l-.49-.5a.25.25 0 0 1 0-.34L15 13.93c.1-.1.25-.1.35 0l.48.49q.14.13.3.04.33-.16.68-.28.18-.06.19-.25v-.68q.02-.23.25-.25zM18 16.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3"/>\n <path fill="currentColor" d="M13.53 14a6 6 0 0 0-1.19 2H9a3 3 0 0 0-3 3v3H4v-3a5 5 0 0 1 5-5z"/>\n <path fill="currentColor" d="M12 2a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6"/>\n</svg>'],
|
|
1340
1363
|
["person-circle", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 6a3.25 3.25 0 1 1 0 6.5A3.25 3.25 0 0 1 12 6"/>\n <path fill="currentColor" d="M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 2a8 8 0 0 0-5.5 13.807V17a3 3 0 0 1 3-3h5a3 3 0 0 1 3 3v.807A8 8 0 0 0 12 4"/>\n</svg>'],
|
|
1364
|
+
["person-circle-badge-plus", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18 13a5 5 0 1 1 0 10 5 5 0 0 1 0-10m-.75 4.25H15v1.5h2.25V21h1.5v-2.25H21v-1.5h-2.25V15h-1.5z"/>\n <path fill="currentColor" d="M12 2a10 10 0 0 1 9.9 11.44 6 6 0 0 0-1.9-1.1V12a8 8 0 1 0-13.5 5.8V17a3 3 0 0 1 3-3h4.03a6 6 0 0 0-.1 7.9q-.7.1-1.43.1a10 10 0 0 1 0-20"/>\n <path fill="currentColor" d="M12 6a3.25 3.25 0 1 1 0 6.5A3.25 3.25 0 0 1 12 6"/>\n</svg>'],
|
|
1341
1365
|
["photo", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M9 8a2 2 0 1 1 0 4 2 2 0 0 1 0-4"/>\n <path fill="currentColor" d="M19 4a3 3 0 0 1 3 3v10c0 1.666-1.33 3-3 3H5c-1.66 0-3-1.334-3-3V7a3 3 0 0 1 3-3zM5 6a1 1 0 0 0-1 1v9l1.94-1.94a1.5 1.5 0 0 1 2.12 0l1.956 1.956 4.617-4.472a1.5 1.5 0 0 1 2.122.034L20 14.932V7a1 1 0 0 0-1-1z"/>\n</svg>'],
|
|
1342
1366
|
["photo-slash", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M22 20.59 20.6 22 2 3.41 3.41 2zM4.01 6.84 4 7v9l1.94-1.94a1.5 1.5 0 0 1 2.12 0l1.96 1.96 1.6-1.57L17.18 20H5c-1.67 0-3-1.33-3-3V7q.02-.94.5-1.67zM19 4a3 3 0 0 1 3 3v10q-.02.94-.5 1.66l-7-6.99c.63-.6 1.59-.78 2.25-.1L20 14.94V7a1 1 0 0 0-1-1H8.83l-2-2zm-9.84 8a2.02 2.02 0 0 1-2.15-2.16z"/>\n</svg>'],
|
|
1343
1367
|
["pipeline-corner-2", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M13 11V8a3 3 0 0 0-3-3H4v2h5.5c.83 0 1.5.67 1.5 1.5V11zm-2 5a3 3 0 0 0 3 3h6v-2h-5a2 2 0 0 1-2-2v-2h-2zm5-4a1 1 0 0 1-1 1v1.5c0 .28.22.5.5.5H20a1 1 0 1 1 2 0v6a1 1 0 1 1-2 0h-6a5 5 0 0 1-5-5v-3a1 1 0 1 1 0-2V9.5a.5.5 0 0 0-.5-.5H4a1 1 0 0 1-2 0V3a1 1 0 0 1 2 0h6a5 5 0 0 1 5 5v3a1 1 0 0 1 1 1"/>\n</svg>'],
|
|
@@ -1353,6 +1377,8 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1353
1377
|
["rectangle", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 4a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3zM5 6a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1z"/>\n</svg>'],
|
|
1354
1378
|
["rectangle-chevron-left-forward-slash-chevron-right", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 4a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3zM5 6a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1zm8.87 2.2-2.15 8-1.44-.4 2.14-8zm-3.84 1.83L8.06 12l1.97 1.97-1.06 1.06L5.94 12l3.03-3.03zM18.06 12l-3.03 3.03-1.06-1.06L15.94 12l-1.97-1.97 1.06-1.06z"/>\n</svg>'],
|
|
1355
1379
|
["rectangle-split-2x1", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 4a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3zM5 6a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h6V6zm14 12a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-6v12z"/>\n</svg>'],
|
|
1380
|
+
["rectangle-split-2x3", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 3.5a3 3 0 0 1 3 3v11a3 3 0 0 1-2.85 3H4.85A3 3 0 0 1 2 17.65V6.5a3 3 0 0 1 3-3zm-15 12v2a1 1 0 0 0 1 1h6v-3zm9 0v3h6a1 1 0 0 0 1-1v-2zm-9-2h7v-3H4zm9 0h7v-3h-7zm-8-8a1 1 0 0 0-1 1v2h7v-3zm8 3h7v-2a1 1 0 0 0-1-1h-6z"/>\n</svg>'],
|
|
1381
|
+
["rectangle-split-2x3-badge-arrow-down", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18 13a5 5 0 1 1 0 10 5 5 0 0 1 0-10m-.75 5.38-1.49-1.49-1.06 1.06 3.3 3.3 3.3-3.3-1.06-1.06-1.49 1.49V15h-1.5z"/>\n <path fill="currentColor" d="M19 2.5a3 3 0 0 1 3 3v8.03a6 6 0 0 0-2-1.19V9.5h-7v3h2.6a6 6 0 0 0-2.47 2H13v.18a6 6 0 0 0-.81 4.82H4.85A3 3 0 0 1 2 16.65V5.5a3 3 0 0 1 3-3zm-15 14a1 1 0 0 0 1 1h6v-3H4zm0-4h7v-3H4zm1-8a1 1 0 0 0-1 1v2h7v-3zm8 3h7v-2a1 1 0 0 0-1-1h-6z"/>\n</svg>'],
|
|
1356
1382
|
["rectangle-split-3x1", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 4a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3zM5 6a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h3V6zm11 12h3a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-3zm-6 0h4V6h-4z"/>\n</svg>'],
|
|
1357
1383
|
["rectangle-stack", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 8a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-8a3 3 0 0 1 3-3zM5 10a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1z"/>\n <path fill="currentColor" d="M18 5a2 2 0 0 1 2 2H4c0-1.1.9-2 2-2zM16 2a2 2 0 0 1 2 2H6c0-1.1.9-2 2-2z"/>\n</svg>'],
|
|
1358
1384
|
["scissor", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M2.4 6.14a3 3 0 0 1 5.55 2.05l2.82 1.62 8.75-2.95a2 2 0 0 1 2.44.87L7.95 15.82a3 3 0 1 1-1-1.74L8.83 13a2 2 0 0 1 0-2L6.95 9.92A3 3 0 0 1 2.4 6.14m3.47 9.72a1 1 0 1 0-1.73 1 1 1 0 0 0 1.73-1m4.7-4.61a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M5.5 6.77a1 1 0 1 0-1 1.74 1 1 0 0 0 1-1.74"/>\n <path fill="currentColor" d="M21.96 16.27a2 2 0 0 1-2.44.87l-7.5-2.53 3.53-2.04z"/>\n</svg>'],
|
|
@@ -1374,20 +1400,20 @@ const iconRegistry = /* @__PURE__ */ new Map([
|
|
|
1374
1400
|
["square-on-square", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18 5v1h1c1.66 0 3 1.34 3 3v10c0 1.658-1.308 3-3 3H9c-1.66 0-3-1.34-3-3v-1H5c-1.66 0-3-1.34-3-3V5a3 3 0 0 1 3-3h10c1.66 0 3 1.34 3 3M9 8a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zM5 4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h1V9a3 3 0 0 1 3-3h7V5a1 1 0 0 0-1-1z"/>\n</svg>'],
|
|
1375
1401
|
["square-plus-on-square", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M15 13h3v2h-3v3h-2v-3h-3v-2h3v-3h2z"/>\n <path fill="currentColor" d="M18 5v1h1c1.66 0 3 1.34 3 3v10c0 1.658-1.308 3-3 3H9c-1.66 0-3-1.34-3-3v-1H5c-1.66 0-3-1.34-3-3V5a3 3 0 0 1 3-3h10c1.66 0 3 1.34 3 3M9 8a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zM5 4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h1V9a3 3 0 0 1 3-3h7V5a1 1 0 0 0-1-1z"/>\n</svg>'],
|
|
1376
1402
|
["stack-code", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 8a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-8a3 3 0 0 1 3-3zM5 10a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1zm8.87 1.2-2.15 8-1.44-.4 2.14-8zm-3.84 1.83L8.06 15l1.97 1.97-1.06 1.06L5.94 15l3.03-3.03zM18.06 15l-3.03 3.03-1.06-1.06L15.94 15l-1.97-1.97 1.06-1.06zM18 5a2 2 0 0 1 2 2H4c0-1.1.9-2 2-2zm-2-3a2 2 0 0 1 2 2H6c0-1.1.9-2 2-2z"/>\n</svg>'],
|
|
1403
|
+
["stack-text", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M14 18H6v-2h8zm4-4H6v-2h12z"/>\n <path fill="currentColor" d="M19 8a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-8a3 3 0 0 1 3-3zM5 10a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1z"/>\n <path fill="currentColor" d="M18 5a2 2 0 0 1 2 2H4c0-1.1.9-2 2-2zm-2-3a2 2 0 0 1 2 2H6c0-1.1.9-2 2-2z"/>\n</svg>'],
|
|
1377
1404
|
["star", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M11.55 1.8a.5.5 0 0 1 .9 0l2.56 6.14a.5.5 0 0 0 .41.3l6.63.53a.5.5 0 0 1 .28.87l-5.05 4.32a.5.5 0 0 0-.16.49l1.54 6.46c.1.4-.3.72-.66.57l-5.74-3.5a.5.5 0 0 0-.52 0L6 21.48a.5.5 0 0 1-.66-.57l1.54-6.46a.5.5 0 0 0-.16-.49L1.67 9.64a.5.5 0 0 1 .28-.87l6.63-.53a.5.5 0 0 0 .41-.3zm-.71 6.9a2.5 2.5 0 0 1-2.1 1.54l-3.01.24 2.3 1.96a2.5 2.5 0 0 1 .8 2.47l-.7 2.94 2.72-1.66a2.5 2.5 0 0 1 2.45.09l2.58 1.57-.7-2.94c-.22-.9.09-1.86.8-2.47l2.3-1.96-3.02-.24a2.5 2.5 0 0 1-2.1-1.53L12 5.9z"/>\n</svg>'],
|
|
1378
1405
|
["star-filled", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M11.55 1.8a.5.5 0 0 1 .9 0l2.56 6.14a.5.5 0 0 0 .41.3l6.63.53a.5.5 0 0 1 .28.87l-5.05 4.32a.5.5 0 0 0-.16.49l1.54 6.46a.5.5 0 0 1-.73.54l-5.67-3.47a.5.5 0 0 0-.52 0l-5.67 3.47a.5.5 0 0 1-.73-.54l1.54-6.46a.5.5 0 0 0-.16-.49L1.67 9.64a.5.5 0 0 1 .28-.87l6.63-.53a.5.5 0 0 0 .41-.3z"/>\n</svg>'],
|
|
1379
1406
|
["starburst-filled", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M11.17 1.48a.95.95 0 0 1 1.66 0l.87 1.55c.26.47.85.63 1.31.36l1.53-.91a.95.95 0 0 1 1.44.83l-.03 1.77c0 .54.43.97.97.97l1.77-.03c.75 0 1.21.8.83 1.44l-.9 1.53a.95.95 0 0 0 .35 1.31l1.55.87a.95.95 0 0 1 0 1.66l-1.55.87A.95.95 0 0 0 20.6 15l.91 1.53a.95.95 0 0 1-.83 1.44l-1.77-.03a.95.95 0 0 0-.97.97l.03 1.77a.95.95 0 0 1-1.44.83l-1.53-.9a.95.95 0 0 0-1.31.35l-.87 1.55a.95.95 0 0 1-1.66 0l-.87-1.55A.95.95 0 0 0 9 20.6l-1.53.91a.95.95 0 0 1-1.44-.83l.03-1.77a.95.95 0 0 0-.97-.97l-1.77.03a.95.95 0 0 1-.83-1.44l.9-1.53a.95.95 0 0 0-.35-1.31l-1.55-.87a.95.95 0 0 1 0-1.66l1.55-.87A.95.95 0 0 0 3.4 9l-.91-1.53a.95.95 0 0 1 .83-1.44l1.77.03c.54 0 .97-.43.97-.97l-.03-1.77a.95.95 0 0 1 1.44-.83l1.53.9a.95.95 0 0 0 1.31-.35z"/>\n</svg>'],
|
|
1380
1407
|
["strikethrough", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18.97 17.04a5 5 0 0 1-1.42 2.8 7 7 0 0 1-3.08 1.8 9 9 0 0 1-3.84.25 8 8 0 0 1-3.42-1.38 5.4 5.4 0 0 1-1.97-2.59l.94-.32.95-.32c.2.55.6 1.13 1.27 1.62s1.55.86 2.54 1.02c1 .15 2.02.09 2.96-.19s1.7-.74 2.22-1.28.8-1.12.86-1.66a2.5 2.5 0 0 0-.4-1.66q-.38-.62-1.12-1.13h2.77c.61.94.87 2 .74 3.04M22 13H2v-2h20zM9.71 2.35a7.6 7.6 0 0 1 3.56-.24c1.19.2 2.29.67 3.17 1.38.89.7 1.52 1.6 1.84 2.59l-1.9.6a3.4 3.4 0 0 0-1.18-1.63 5 5 0 0 0-2.26-.97 5.6 5.6 0 0 0-2.62.18 4.5 4.5 0 0 0-2 1.24 3 3 0 0 0-.8 1.7q-.11.87.38 1.73.34.59.97 1.07H6.21a4.8 4.8 0 0 1 .63-5.85 6.5 6.5 0 0 1 2.87-1.8"/>\n</svg>'],
|
|
1381
1408
|
["sun", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M13 22h-2v-3.07c.65.09 1.35.09 2 0zM6.4 16.2q.6.8 1.4 1.4l-2.16 2.18-1.42-1.42zM19.78 18.36l-1.42 1.42-2.17-2.17q.8-.6 1.42-1.42z"/>\n <path fill="currentColor" d="M12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6"/>\n <path fill="currentColor" d="M5.07 11c-.1.65-.1 1.35 0 2H2v-2zM22 13h-3.07c.1-.65.1-1.35 0-2H22zM7.8 6.4Q7 7 6.4 7.8L4.21 5.65l1.42-1.42zM19.78 5.64 17.6 7.8a7 7 0 0 0-1.42-1.42l2.17-2.17zM13 5.07c-.65-.1-1.35-.1-2 0V2h2z"/>\n</svg>'],
|
|
1382
|
-
["table-cells", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M19 3.5a3 3 0 0 1 3 3v11a3 3 0 0 1-2.85 3H4.85A3 3 0 0 1 2 17.65V6.5a3 3 0 0 1 3-3zm-15 12v2a1 1 0 0 0 1 1h6v-3zm9 0v3h6a1 1 0 0 0 1-1v-2zm-9-2h7v-3H4zm9 0h7v-3h-7zm-8-8a1 1 0 0 0-1 1v2h7v-3zm8 3h7v-2a1 1 0 0 0-1-1h-6z"/>\n</svg>'],
|
|
1383
|
-
["table-cells-badge-arrow-down", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M18 13a5 5 0 1 1 0 10 5 5 0 0 1 0-10m-.75 5.38-1.49-1.49-1.06 1.06 3.3 3.3 3.3-3.3-1.06-1.06-1.49 1.49V15h-1.5z"/>\n <path fill="currentColor" d="M19 2.5a3 3 0 0 1 3 3v8.03a6 6 0 0 0-2-1.19V9.5h-7v3h2.6a6 6 0 0 0-2.47 2H13v.18a6 6 0 0 0-.81 4.82H4.85A3 3 0 0 1 2 16.65V5.5a3 3 0 0 1 3-3zm-15 14a1 1 0 0 0 1 1h6v-3H4zm0-4h7v-3H4zm1-8a1 1 0 0 0-1 1v2h7v-3zm8 3h7v-2a1 1 0 0 0-1-1h-6z"/>\n</svg>'],
|
|
1384
1409
|
["tag", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M21.24 5.2a3 3 0 0 1 .74 2.34l-.43 3.88a3 3 0 0 1-.86 1.79l-7.92 7.92a3.04 3.04 0 0 1-4.13.1l-5.88-5.87a3.04 3.04 0 0 1 .1-4.13L10.8 3.3a3 3 0 0 1 1.79-.86l3.88-.43a3 3 0 0 1 2.33.74l.13.12 2.2 2.2zm-3.74-.9a1 1 0 0 0-.82-.3l-3.88.44a1 1 0 0 0-.6.28l-7.92 7.92a1 1 0 0 0 0 1.42l5.66 5.65a1 1 0 0 0 1.41 0l7.92-7.92a1 1 0 0 0 .29-.6l.43-3.88a1 1 0 0 0-.29-.81zm-1.02 3.22a1.5 1.5 0 1 1-2.12 2.12 1.5 1.5 0 0 1 2.12-2.12"/>\n</svg>'],
|
|
1385
1410
|
["terminal", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="m11.4 12-4 4L6 14.6 8.57 12 6 9.4 7.4 8zM18 16h-6v-2h6z"/>\n <path fill="currentColor" d="M19 4a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3zM5 6a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1z"/>\n</svg>'],
|
|
1386
1411
|
["text-quote", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M17 20H3v-2h14zM21 15.5H3v-2h18zM7.22 6.1a3 3 0 0 0-1.55 1.02A2 2 0 1 1 3 9a5 5 0 0 1 3.7-4.83zM12.22 6.1a3 3 0 0 0-1.55 1.02A2 2 0 1 1 8 9a5 5 0 0 1 3.7-4.83zM21 11h-6.5V9H21zM21 6.5h-6.5v-2H21z"/>\n</svg>'],
|
|
1387
1412
|
["timer", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M12 2a10 10 0 1 1-8.66 5l1.73 1A8 8 0 1 0 13 4.06V7h-2V2z"/>\n <path fill="currentColor" d="M12.5 11.13a1 1 0 0 1-1 1.74l-5.2-3 1-1.74z"/>\n</svg>'],
|
|
1388
1413
|
["trash", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" fill-rule="evenodd" d="M8 4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2h5v2h-1.08L19 19.046A3 3 0 0 1 16 22H8a3 3 0 0 1-3-2.954L4.08 8H3V6h5zM6.087 8l.91 10.917L7 19a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l.003-.083L17.914 8zM14 6h-4V4h4zm-3 4v8H9v-8zm4 0v8h-2v-8z"/>\n</svg>'],
|
|
1389
1414
|
["tree-structure", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M20 15a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-3c0-1.1.9-2 2-2h1.5v-1a1 1 0 0 0-1-1H14c-.77 0-1.47-.3-2-.77-.53.48-1.23.77-2 .77H8.5a1 1 0 0 0-1 1v1H9a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3c0-1.1.9-2 2-2h1.5v-1a3 3 0 0 1 3-3H10a1 1 0 0 0 1-1V9H9a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2h6a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2h-2v1a1 1 0 0 0 1 1h1.5a3 3 0 0 1 3 3v1zM4 20h5v-3H4zm11 0h5v-3h-5zM9 7h6V4H9z"/>\n</svg>'],
|
|
1390
|
-
["underlined", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M20 22H4v-2h16zM8 13c0 1.33 1.43 3 4 3s4-1.67 4-3V2h2v11c0 2.76-2.69 5-6 5s-6-2.24-6-5V2h2z"/>\n</svg>']
|
|
1415
|
+
["underlined", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M20 22H4v-2h16zM8 13c0 1.33 1.43 3 4 3s4-1.67 4-3V2h2v11c0 2.76-2.69 5-6 5s-6-2.24-6-5V2h2z"/>\n</svg>'],
|
|
1416
|
+
["wheat", '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <path fill="currentColor" d="M8 22H6v-3h2zm10 0h-2v-3h2zM3 14a4 4 0 0 1 4 4 4 4 0 0 1-4-4m8 0a4 4 0 0 1-4 4 4 4 0 0 1 4-4m2 0a4 4 0 0 1 4 4 4 4 0 0 1-4-4m8 0a4 4 0 0 1-4 4 4 4 0 0 1 4-4M3 10a4 4 0 0 1 4 4 4 4 0 0 1-4-4m8 0a4 4 0 0 1-4 4 4 4 0 0 1 4-4m2 0a4 4 0 0 1 4 4 4 4 0 0 1-4-4m8 0a4 4 0 0 1-4 4 4 4 0 0 1 4-4M3 6a4 4 0 0 1 4 4 4 4 0 0 1-4-4m8 0a4 4 0 0 1-4 4 4 4 0 0 1 4-4m2 0a4 4 0 0 1 4 4 4 4 0 0 1-4-4m8 0a4 4 0 0 1-4 4 4 4 0 0 1 4-4M7 2a4 4 0 0 1 0 5.29A4 4 0 0 1 7 2m10 0a4 4 0 0 1 0 5.29A4 4 0 0 1 17 2"/>\n</svg>']
|
|
1391
1417
|
]);
|
|
1392
1418
|
var __defProp$1w = Object.defineProperty;
|
|
1393
1419
|
var __getOwnPropDesc$1u = Object.getOwnPropertyDescriptor;
|
|
@@ -7060,24 +7086,22 @@ const toolbarTitleStyles = css$1`
|
|
|
7060
7086
|
/* # Host */
|
|
7061
7087
|
|
|
7062
7088
|
:host {
|
|
7063
|
-
--_title-group-min-width:
|
|
7089
|
+
--_title-group-min-width: 0px;
|
|
7064
7090
|
--_title-width: auto;
|
|
7065
|
-
--_title-max-width:
|
|
7091
|
+
--_title-max-width: var(--primitives-area-240);
|
|
7066
7092
|
--_title-group-height: var(--semantics-controls-md-min-size);
|
|
7067
7093
|
--_title-font: var(--primitives-font-body-lg-medium-flat);
|
|
7068
7094
|
--_subtitle-font: var(--primitives-font-body-xs-regular-flat);
|
|
7095
|
+
--_action-gap: var(--primitives-space-8);
|
|
7069
7096
|
|
|
7070
7097
|
${inheritedTextReset}
|
|
7071
7098
|
display: inline-flex;
|
|
7072
7099
|
min-width: var(--_title-group-min-width);
|
|
7073
|
-
max-width: var(--_title-max-width);
|
|
7074
7100
|
height: var(--_title-group-height);
|
|
7075
|
-
|
|
7076
|
-
flex-direction: column;
|
|
7101
|
+
flex-direction: row;
|
|
7077
7102
|
flex-shrink: 1;
|
|
7078
7103
|
flex-basis: var(--_title-width);
|
|
7079
|
-
|
|
7080
|
-
align-items: flex-start;
|
|
7104
|
+
align-items: center;
|
|
7081
7105
|
}
|
|
7082
7106
|
|
|
7083
7107
|
:host([size="sm"]) {
|
|
@@ -7097,7 +7121,13 @@ const toolbarTitleStyles = css$1`
|
|
|
7097
7121
|
flex-basis: 0;
|
|
7098
7122
|
}
|
|
7099
7123
|
|
|
7100
|
-
:
|
|
7124
|
+
/* Sole toolbar element: let the text fill the row instead of capping at
|
|
7125
|
+
--_title-max-width, matching the pre-fit-content stretch behaviour. */
|
|
7126
|
+
:host([solo-fluid]) .toolbar__title-group {
|
|
7127
|
+
max-width: none;
|
|
7128
|
+
}
|
|
7129
|
+
|
|
7130
|
+
:host([align="center"]) .toolbar__title-group {
|
|
7101
7131
|
align-items: center;
|
|
7102
7132
|
}
|
|
7103
7133
|
|
|
@@ -7108,6 +7138,26 @@ const toolbarTitleStyles = css$1`
|
|
|
7108
7138
|
|
|
7109
7139
|
/* # Elements */
|
|
7110
7140
|
|
|
7141
|
+
/* The title + subtitle column: the fit-content-capped, clipping part. The
|
|
7142
|
+
action slot sits outside this cap so the control is never truncated. */
|
|
7143
|
+
.toolbar__title-group {
|
|
7144
|
+
display: flex;
|
|
7145
|
+
min-width: 0;
|
|
7146
|
+
max-width: var(--_title-max-width);
|
|
7147
|
+
flex-direction: column;
|
|
7148
|
+
justify-content: center;
|
|
7149
|
+
align-items: flex-start;
|
|
7150
|
+
overflow: hidden;
|
|
7151
|
+
}
|
|
7152
|
+
|
|
7153
|
+
/* Optional trailing action (e.g. an xs nldd-icon-button), tuned to sit
|
|
7154
|
+
against the title. A margin (not a host gap) means an empty slot adds no
|
|
7155
|
+
space; flex-shrink:0 keeps it full-size while the title text truncates. */
|
|
7156
|
+
::slotted([slot="action"]) {
|
|
7157
|
+
flex-shrink: 0;
|
|
7158
|
+
margin-inline-start: var(--_action-gap);
|
|
7159
|
+
}
|
|
7160
|
+
|
|
7111
7161
|
/* text-align lives on the text elements, not :host: the inheritedTextReset on
|
|
7112
7162
|
:host locks text-align to start, so a host-level override would need
|
|
7113
7163
|
!important. The title/subtitle are shadow elements outside that reset. */
|
|
@@ -7152,8 +7202,11 @@ function toolbarItemTemplate(component) {
|
|
|
7152
7202
|
}
|
|
7153
7203
|
function toolbarTitleTemplate(component) {
|
|
7154
7204
|
return html$1`
|
|
7155
|
-
|
|
7156
|
-
|
|
7205
|
+
<div class="toolbar__title-group">
|
|
7206
|
+
${component.text ? html$1`<p class="toolbar__title">${component.text}</p>` : nothing}
|
|
7207
|
+
${component.supportingText ? html$1`<p class="toolbar__subtitle">${component.supportingText}</p>` : nothing}
|
|
7208
|
+
</div>
|
|
7209
|
+
<slot name="action"></slot>
|
|
7157
7210
|
`;
|
|
7158
7211
|
}
|
|
7159
7212
|
function template$e(component, hasCenterChildren, leftSpacerZero, rightSpacerZero, isSoloFluidItem, hasOverflow, menuOpen, label, centerOnly, t2) {
|
|
@@ -26015,16 +26068,16 @@ const highlightStyle = HighlightStyle.define([
|
|
|
26015
26068
|
]);
|
|
26016
26069
|
const nlddCodeMirrorTheme = [baseTheme$1, syntaxHighlighting(highlightStyle)];
|
|
26017
26070
|
const loaders = {
|
|
26018
|
-
json: async () => (await import("./index-
|
|
26019
|
-
yaml: async () => (await import("./index-
|
|
26071
|
+
json: async () => (await import("./index-Bqf6o41r.js")).json(),
|
|
26072
|
+
yaml: async () => (await import("./index-Bfw_pYWB.js")).yaml(),
|
|
26020
26073
|
javascript: async () => (await Promise.resolve().then(() => index$2)).javascript(),
|
|
26021
26074
|
typescript: async () => (await Promise.resolve().then(() => index$2)).javascript({ typescript: true }),
|
|
26022
26075
|
css: async () => (await Promise.resolve().then(() => index$3)).css(),
|
|
26023
26076
|
html: async () => (await Promise.resolve().then(() => index$1)).html(),
|
|
26024
|
-
xml: async () => (await import("./index-
|
|
26025
|
-
python: async () => (await import("./index-
|
|
26026
|
-
rust: async () => (await import("./index-
|
|
26027
|
-
sql: async () => (await import("./index-
|
|
26077
|
+
xml: async () => (await import("./index-CXT1jMFt.js")).xml(),
|
|
26078
|
+
python: async () => (await import("./index-CKnwqp_9.js")).python(),
|
|
26079
|
+
rust: async () => (await import("./index-DO7aT0MT.js")).rust(),
|
|
26080
|
+
sql: async () => (await import("./index-DWwviobk.js")).sql(),
|
|
26028
26081
|
markdown: async () => (await Promise.resolve().then(() => index)).markdown(),
|
|
26029
26082
|
// No official lang-* package — wrap the legacy StreamLanguage modes.
|
|
26030
26083
|
bash: async () => new LanguageSupport(StreamLanguage.define((await import("./shell-BlsXDxCn.js")).shell)),
|
|
@@ -44452,7 +44505,9 @@ function annotations(countLabel) {
|
|
|
44452
44505
|
];
|
|
44453
44506
|
}
|
|
44454
44507
|
const ORDERED_RE = /^(\s*)(\d+)[.)](?=\s|$)/;
|
|
44508
|
+
const BQ_PREFIX_RE = /^(?:[ ]{0,3}>[ ]?)*/;
|
|
44455
44509
|
const FENCE_RE = /^\s*(?:```|~~~)/;
|
|
44510
|
+
const BQ_UNIT = 1e3;
|
|
44456
44511
|
function renumberOrderedLists(doc2) {
|
|
44457
44512
|
const changes = [];
|
|
44458
44513
|
const levels = [];
|
|
@@ -44469,19 +44524,23 @@ function renumberOrderedLists(doc2) {
|
|
|
44469
44524
|
continue;
|
|
44470
44525
|
}
|
|
44471
44526
|
if (inFence) continue;
|
|
44472
|
-
const
|
|
44527
|
+
const bqPrefix = BQ_PREFIX_RE.exec(line)[0];
|
|
44528
|
+
const content2 = line.slice(bqPrefix.length);
|
|
44529
|
+
const bqDepth = (bqPrefix.match(/>/g) ?? []).length;
|
|
44530
|
+
const match = ORDERED_RE.exec(content2);
|
|
44473
44531
|
if (!match) {
|
|
44474
|
-
if (
|
|
44532
|
+
if (content2.trim() === "") {
|
|
44475
44533
|
if (++blanks >= 2) levels.length = 0;
|
|
44476
44534
|
continue;
|
|
44477
44535
|
}
|
|
44478
44536
|
blanks = 0;
|
|
44479
|
-
const indent2 = /^\s*/.exec(
|
|
44537
|
+
const indent2 = bqDepth * BQ_UNIT + /^\s*/.exec(content2)[0].length;
|
|
44480
44538
|
while (levels.length && levels[levels.length - 1].indent >= indent2) levels.pop();
|
|
44481
44539
|
continue;
|
|
44482
44540
|
}
|
|
44483
44541
|
blanks = 0;
|
|
44484
|
-
const
|
|
44542
|
+
const contentIndent = match[1].length;
|
|
44543
|
+
const indent = bqDepth * BQ_UNIT + contentIndent;
|
|
44485
44544
|
const typed = match[2];
|
|
44486
44545
|
while (levels.length && levels[levels.length - 1].indent > indent) levels.pop();
|
|
44487
44546
|
const top2 = levels[levels.length - 1];
|
|
@@ -44495,7 +44554,7 @@ function renumberOrderedLists(doc2) {
|
|
|
44495
44554
|
}
|
|
44496
44555
|
const targetStr = String(target);
|
|
44497
44556
|
if (targetStr !== typed) {
|
|
44498
|
-
const numStart = lineStart +
|
|
44557
|
+
const numStart = lineStart + bqPrefix.length + contentIndent;
|
|
44499
44558
|
changes.push({ from: numStart, to: numStart + typed.length, insert: targetStr });
|
|
44500
44559
|
}
|
|
44501
44560
|
}
|
|
@@ -44947,6 +45006,35 @@ function indentListItems(view) {
|
|
|
44947
45006
|
if (changes.length) view.dispatch({ changes });
|
|
44948
45007
|
view.focus();
|
|
44949
45008
|
}
|
|
45009
|
+
function outdentListItems(view) {
|
|
45010
|
+
if (view.state.readOnly) return;
|
|
45011
|
+
const { state: state2 } = view;
|
|
45012
|
+
const { from, to } = state2.selection.main;
|
|
45013
|
+
const first = state2.doc.lineAt(from).number;
|
|
45014
|
+
const last = state2.doc.lineAt(to).number;
|
|
45015
|
+
const changes = [];
|
|
45016
|
+
for (let i = first; i <= last; i++) {
|
|
45017
|
+
const line = state2.doc.line(i);
|
|
45018
|
+
const match = line.text.match(LIST_STRIP_RE);
|
|
45019
|
+
if (!match) continue;
|
|
45020
|
+
const indent = match[1].length;
|
|
45021
|
+
if (indent === 0) continue;
|
|
45022
|
+
let targetIndent = 0;
|
|
45023
|
+
for (let j = i - 1; j >= 1; j--) {
|
|
45024
|
+
const text = state2.doc.line(j).text;
|
|
45025
|
+
if (text.trim() === "") continue;
|
|
45026
|
+
const prev = text.match(LIST_STRIP_RE);
|
|
45027
|
+
if (!prev) break;
|
|
45028
|
+
if (prev[1].length < indent) {
|
|
45029
|
+
targetIndent = prev[1].length;
|
|
45030
|
+
break;
|
|
45031
|
+
}
|
|
45032
|
+
}
|
|
45033
|
+
changes.push({ from: line.from, to: line.from + (indent - targetIndent) });
|
|
45034
|
+
}
|
|
45035
|
+
if (changes.length) view.dispatch({ changes });
|
|
45036
|
+
view.focus();
|
|
45037
|
+
}
|
|
44950
45038
|
function canIndentListItem(view) {
|
|
44951
45039
|
const { state: state2 } = view;
|
|
44952
45040
|
const line = state2.doc.lineAt(state2.selection.main.head);
|
|
@@ -45980,12 +46068,9 @@ let NLDDTextEditor = class extends NLDDCodeMirrorElement {
|
|
|
45980
46068
|
indent() {
|
|
45981
46069
|
if (this.view) indentListItems(this.view);
|
|
45982
46070
|
}
|
|
45983
|
-
/**
|
|
46071
|
+
/** Un-nest the selected list item(s) by one level — the inverse of indent(). */
|
|
45984
46072
|
outdent() {
|
|
45985
|
-
if (this.view)
|
|
45986
|
-
indentLess(this.view);
|
|
45987
|
-
this.view.focus();
|
|
45988
|
-
}
|
|
46073
|
+
if (this.view) outdentListItems(this.view);
|
|
45989
46074
|
}
|
|
45990
46075
|
/** Undo the last change. History is built in, so Cmd/Ctrl+Z works too. */
|
|
45991
46076
|
undo() {
|
|
@@ -47859,7 +47944,8 @@ let NLDDTokenField = class extends LitElement {
|
|
|
47859
47944
|
_handleBlur(e) {
|
|
47860
47945
|
const related = e.relatedTarget;
|
|
47861
47946
|
if (related && this._menu?.contains(related)) return;
|
|
47862
|
-
this.
|
|
47947
|
+
if (this.allowCustom && this._text.trim()) this._commitValue(this._text.trim(), false);
|
|
47948
|
+
else this._closeMenu();
|
|
47863
47949
|
}
|
|
47864
47950
|
_handleKeydown(e) {
|
|
47865
47951
|
switch (e.key) {
|
|
@@ -48065,10 +48151,11 @@ let NLDDTokenField = class extends LitElement {
|
|
|
48065
48151
|
* picker), so a focused empty field behaves the same whether it was just focused
|
|
48066
48152
|
* or a value was just committed.
|
|
48067
48153
|
*/
|
|
48068
|
-
_commitValue(value) {
|
|
48154
|
+
_commitValue(value, refocus = true) {
|
|
48069
48155
|
this._addValue(value);
|
|
48070
48156
|
this._resetInputText();
|
|
48071
48157
|
this._closeMenu();
|
|
48158
|
+
if (!refocus) return;
|
|
48072
48159
|
void this.updateComplete.then(() => {
|
|
48073
48160
|
if (this._showInput) this._input?.focus();
|
|
48074
48161
|
else this._focusTokenAt(this._tokens.length - 1);
|
|
@@ -48197,6 +48284,69 @@ __decorateClass$P([
|
|
|
48197
48284
|
NLDDTokenField = __decorateClass$P([
|
|
48198
48285
|
customElement("nldd-token-field")
|
|
48199
48286
|
], NLDDTokenField);
|
|
48287
|
+
const SINGLE_COLUMN_CHANGE_EVENT = "nldd-single-column-change";
|
|
48288
|
+
function findScrollModeProvider(host) {
|
|
48289
|
+
const el = host.closest?.("nldd-app-view");
|
|
48290
|
+
return el && "registerScrollConsumer" in el ? el : null;
|
|
48291
|
+
}
|
|
48292
|
+
class ScrollModeController {
|
|
48293
|
+
constructor(host, onChange) {
|
|
48294
|
+
this.mode = "nested";
|
|
48295
|
+
this._raf = 0;
|
|
48296
|
+
this._provider = null;
|
|
48297
|
+
this._onResize = () => {
|
|
48298
|
+
if (this._raf) return;
|
|
48299
|
+
this._raf = requestAnimationFrame(() => {
|
|
48300
|
+
this._raf = 0;
|
|
48301
|
+
this.read();
|
|
48302
|
+
});
|
|
48303
|
+
};
|
|
48304
|
+
this._host = host;
|
|
48305
|
+
this._onChange = onChange;
|
|
48306
|
+
host.addController(this);
|
|
48307
|
+
}
|
|
48308
|
+
hostConnected() {
|
|
48309
|
+
this._provider = findScrollModeProvider(this._host);
|
|
48310
|
+
if (this._provider) {
|
|
48311
|
+
this._provider.registerScrollConsumer(this);
|
|
48312
|
+
} else {
|
|
48313
|
+
window.addEventListener("resize", this._onResize, { passive: true });
|
|
48314
|
+
this.read();
|
|
48315
|
+
}
|
|
48316
|
+
}
|
|
48317
|
+
hostDisconnected() {
|
|
48318
|
+
if (this._provider) {
|
|
48319
|
+
this._provider.unregisterScrollConsumer(this);
|
|
48320
|
+
this._provider = null;
|
|
48321
|
+
} else {
|
|
48322
|
+
window.removeEventListener("resize", this._onResize);
|
|
48323
|
+
}
|
|
48324
|
+
if (this._raf) cancelAnimationFrame(this._raf);
|
|
48325
|
+
}
|
|
48326
|
+
/**
|
|
48327
|
+
* ScrollModeConsumer — nldd-app-view pushes the mode it derived. When a mode is
|
|
48328
|
+
* passed it is applied directly; this is race-free, whereas re-reading
|
|
48329
|
+
* `getComputedStyle` during a synchronous push can return a stale value for a
|
|
48330
|
+
* deeply-nested host (the var may not have propagated through an ancestor's
|
|
48331
|
+
* pending re-render yet). With no argument (resize / no app-view) the inherited
|
|
48332
|
+
* var is re-read instead.
|
|
48333
|
+
*/
|
|
48334
|
+
readScrollMode(mode) {
|
|
48335
|
+
const next = mode ?? this._readVar();
|
|
48336
|
+
if (next === this.mode) return;
|
|
48337
|
+
this.mode = next;
|
|
48338
|
+
this._host.dataset.scroll = next;
|
|
48339
|
+
this._onChange?.(next);
|
|
48340
|
+
}
|
|
48341
|
+
_readVar() {
|
|
48342
|
+
const raw = getComputedStyle(this._host).getPropertyValue("--context-scroll-mode").trim();
|
|
48343
|
+
return raw === "root" ? "root" : "nested";
|
|
48344
|
+
}
|
|
48345
|
+
/** Re-read the inherited `--context-scroll-mode` (used on connect + resize). */
|
|
48346
|
+
read() {
|
|
48347
|
+
this.readScrollMode();
|
|
48348
|
+
}
|
|
48349
|
+
}
|
|
48200
48350
|
const appViewStyles = css$1`
|
|
48201
48351
|
:host {
|
|
48202
48352
|
box-sizing: border-box;
|
|
@@ -48224,6 +48374,15 @@ const appViewStyles = css$1`
|
|
|
48224
48374
|
--_background-color: var(--semantics-surfaces-tinted-background-color);
|
|
48225
48375
|
}
|
|
48226
48376
|
|
|
48377
|
+
/* Root-scroll mode — the DOCUMENT scrolls (see ScrollModeController +
|
|
48378
|
+
--context-scroll-mode). The app-view is the outermost DS layer, so it grows
|
|
48379
|
+
with its content (min-height fills the viewport for short pages), letting a
|
|
48380
|
+
descendant nldd-page's sticky layers stick against the document. */
|
|
48381
|
+
:host([data-scroll="root"]) {
|
|
48382
|
+
height: auto;
|
|
48383
|
+
min-height: 100dvh;
|
|
48384
|
+
}
|
|
48385
|
+
|
|
48227
48386
|
|
|
48228
48387
|
/* # Block */
|
|
48229
48388
|
|
|
@@ -48238,6 +48397,12 @@ const appViewStyles = css$1`
|
|
|
48238
48397
|
flex-basis: 0;
|
|
48239
48398
|
}
|
|
48240
48399
|
|
|
48400
|
+
/* Root-scroll mode — row axis untouched (this is a column block but a row item
|
|
48401
|
+
of the host); only stop clipping so descendant sticky layers can escape. */
|
|
48402
|
+
:host([data-scroll="root"]) .app-view {
|
|
48403
|
+
overflow: visible;
|
|
48404
|
+
}
|
|
48405
|
+
|
|
48241
48406
|
|
|
48242
48407
|
/* # Elements */
|
|
48243
48408
|
|
|
@@ -48247,6 +48412,16 @@ const appViewStyles = css$1`
|
|
|
48247
48412
|
flex-shrink: 1;
|
|
48248
48413
|
flex-basis: 0;
|
|
48249
48414
|
}
|
|
48415
|
+
|
|
48416
|
+
/* Root-scroll mode — the slotted layer (bar/split-view or page) is a COLUMN
|
|
48417
|
+
item here, so flex-basis/flex-shrink govern its height: fill the viewport
|
|
48418
|
+
when short (flex-grow), keep its own height when taller (flex-shrink:0), so
|
|
48419
|
+
a definite ancestor height can't squeeze it and cap a descendant sticky
|
|
48420
|
+
layer's range. */
|
|
48421
|
+
:host([data-scroll="root"]) ::slotted(*) {
|
|
48422
|
+
flex-basis: auto;
|
|
48423
|
+
flex-shrink: 0;
|
|
48424
|
+
}
|
|
48250
48425
|
`;
|
|
48251
48426
|
function appViewTemplate(_component) {
|
|
48252
48427
|
return html$1`
|
|
@@ -48276,27 +48451,85 @@ let NLDDAppView = class extends LitElement {
|
|
|
48276
48451
|
constructor() {
|
|
48277
48452
|
super(...arguments);
|
|
48278
48453
|
this.background = "base";
|
|
48454
|
+
this._scrollConsumers = /* @__PURE__ */ new Set();
|
|
48455
|
+
this._derivedMode = null;
|
|
48456
|
+
this._scrollMode = new ScrollModeController(this, () => this._applyOverscroll());
|
|
48457
|
+
this._onSingleColumnChange = () => {
|
|
48458
|
+
this._evaluateScrollMode();
|
|
48459
|
+
};
|
|
48460
|
+
}
|
|
48461
|
+
// ---- ScrollModeProvider ---------------------------------------------------
|
|
48462
|
+
/** @internal */
|
|
48463
|
+
registerScrollConsumer(consumer) {
|
|
48464
|
+
this._scrollConsumers.add(consumer);
|
|
48465
|
+
if (this._derivedMode) consumer.readScrollMode(this._derivedMode);
|
|
48466
|
+
}
|
|
48467
|
+
/** @internal */
|
|
48468
|
+
unregisterScrollConsumer(consumer) {
|
|
48469
|
+
this._scrollConsumers.delete(consumer);
|
|
48470
|
+
}
|
|
48471
|
+
// The outermost (first in document order) horizontal split view — the one
|
|
48472
|
+
// whose single-column state decides whether the whole app is one scrolling
|
|
48473
|
+
// column. Vertical splitters (stacked-split-view) never collapse horizontally
|
|
48474
|
+
// and don't participate. Returns null for a bare-page app.
|
|
48475
|
+
_outermostSplitView() {
|
|
48476
|
+
return this.querySelector("nldd-navigation-split-view, nldd-side-by-side-split-view");
|
|
48477
|
+
}
|
|
48478
|
+
/**
|
|
48479
|
+
* Derive the document-vs-nested scroll mode from the outermost horizontal
|
|
48480
|
+
* split view and push it to every registered layer. When there is no such
|
|
48481
|
+
* split view the mode is left unset so it inherits (nested by default, or a
|
|
48482
|
+
* consumer/media-query override such as the docs' bare page).
|
|
48483
|
+
*/
|
|
48484
|
+
_evaluateScrollMode() {
|
|
48485
|
+
const splitView = this._outermostSplitView();
|
|
48486
|
+
if (splitView && typeof splitView.isSingleColumn !== "boolean") return;
|
|
48487
|
+
const next = splitView ? splitView.isSingleColumn ? "root" : "nested" : null;
|
|
48488
|
+
if (next === this._derivedMode) return;
|
|
48489
|
+
this._derivedMode = next;
|
|
48490
|
+
if (next) {
|
|
48491
|
+
this.style.setProperty("--context-scroll-mode", next);
|
|
48492
|
+
} else {
|
|
48493
|
+
this.style.removeProperty("--context-scroll-mode");
|
|
48494
|
+
}
|
|
48495
|
+
this._scrollConsumers.forEach((consumer) => consumer.readScrollMode(this._derivedMode ?? void 0));
|
|
48279
48496
|
}
|
|
48280
48497
|
connectedCallback() {
|
|
48281
48498
|
super.connectedCallback();
|
|
48282
48499
|
_connectedStack.push(this);
|
|
48283
48500
|
this._writeBodyBackground();
|
|
48284
|
-
|
|
48285
|
-
|
|
48501
|
+
this._applyOverscroll();
|
|
48502
|
+
this.addEventListener(SINGLE_COLUMN_CHANGE_EVENT, this._onSingleColumnChange);
|
|
48503
|
+
this._evaluateScrollMode();
|
|
48286
48504
|
}
|
|
48287
48505
|
disconnectedCallback() {
|
|
48288
48506
|
super.disconnectedCallback();
|
|
48507
|
+
this.removeEventListener(SINGLE_COLUMN_CHANGE_EVENT, this._onSingleColumnChange);
|
|
48289
48508
|
const idx = _connectedStack.indexOf(this);
|
|
48290
48509
|
if (idx >= 0) _connectedStack.splice(idx, 1);
|
|
48291
48510
|
const owner = _currentOwner();
|
|
48292
48511
|
if (owner) {
|
|
48293
48512
|
owner._writeBodyBackground();
|
|
48513
|
+
owner._applyOverscroll();
|
|
48294
48514
|
} else {
|
|
48295
48515
|
document.body.style.removeProperty("background-color");
|
|
48296
48516
|
document.documentElement.style.removeProperty("overscroll-behavior");
|
|
48297
48517
|
document.body.style.removeProperty("overscroll-behavior");
|
|
48298
48518
|
}
|
|
48299
48519
|
}
|
|
48520
|
+
// Nested mode pins the viewport (no rubber-band on gestures outside an
|
|
48521
|
+
// nldd-page); root mode lets the document rubber-band natively. Only the
|
|
48522
|
+
// current owner writes this shared document-level style.
|
|
48523
|
+
_applyOverscroll() {
|
|
48524
|
+
if (_currentOwner() !== this) return;
|
|
48525
|
+
if (this._scrollMode.mode === "root") {
|
|
48526
|
+
document.documentElement.style.removeProperty("overscroll-behavior");
|
|
48527
|
+
document.body.style.removeProperty("overscroll-behavior");
|
|
48528
|
+
} else {
|
|
48529
|
+
document.documentElement.style.overscrollBehavior = "none";
|
|
48530
|
+
document.body.style.overscrollBehavior = "none";
|
|
48531
|
+
}
|
|
48532
|
+
}
|
|
48300
48533
|
updated(changed) {
|
|
48301
48534
|
if (changed.has("background") && _currentOwner() === this) {
|
|
48302
48535
|
this._writeBodyBackground();
|
|
@@ -48349,6 +48582,16 @@ const barSplitViewStyles = css$1`
|
|
|
48349
48582
|
--_background-color: var(--context-parent-background-color);
|
|
48350
48583
|
}
|
|
48351
48584
|
|
|
48585
|
+
/* Root-scroll mode: the document scrolls (ScrollModeController /
|
|
48586
|
+
--context-scroll-mode). Bars become sticky layers that stay put while the
|
|
48587
|
+
main content scrolls under them; their measured heights are published into
|
|
48588
|
+
--context-layer-top/bottom (see bar-split-view.ts) so a descendant
|
|
48589
|
+
nldd-page's sticky header/footer stack below/above them. The sticky insets
|
|
48590
|
+
and those offsets are set by JS; bars paint above the content. */
|
|
48591
|
+
:host([data-scroll="root"]) {
|
|
48592
|
+
height: auto;
|
|
48593
|
+
}
|
|
48594
|
+
|
|
48352
48595
|
|
|
48353
48596
|
/* # Block */
|
|
48354
48597
|
|
|
@@ -48362,6 +48605,15 @@ const barSplitViewStyles = css$1`
|
|
|
48362
48605
|
flex-basis: 0;
|
|
48363
48606
|
}
|
|
48364
48607
|
|
|
48608
|
+
/* Root-scroll mode: flow wrappers must be content-sized (not flex-basis:0) so
|
|
48609
|
+
their border box spans the whole document. Otherwise a sticky bar's
|
|
48610
|
+
containing block is only as tall as the initial viewport fill and the bar
|
|
48611
|
+
un-sticks partway down. */
|
|
48612
|
+
:host([data-scroll="root"]) .bar-split-view {
|
|
48613
|
+
flex-basis: auto;
|
|
48614
|
+
flex-shrink: 0;
|
|
48615
|
+
}
|
|
48616
|
+
|
|
48365
48617
|
|
|
48366
48618
|
/* # Elements */
|
|
48367
48619
|
|
|
@@ -48373,10 +48625,31 @@ const barSplitViewStyles = css$1`
|
|
|
48373
48625
|
flex-shrink: 0;
|
|
48374
48626
|
}
|
|
48375
48627
|
|
|
48628
|
+
:host([data-scroll="root"]) .bar-split-view__bar {
|
|
48629
|
+
overflow: visible;
|
|
48630
|
+
/* Sticky bars sit over the scrolling document, so they need an opaque
|
|
48631
|
+
background to occlude the content passing beneath them. */
|
|
48632
|
+
background-color: var(--_background-color);
|
|
48633
|
+
}
|
|
48634
|
+
|
|
48635
|
+
/* Root-scroll mode: top/bottom bars stick; JS sets their top/bottom insets. */
|
|
48636
|
+
:host([data-scroll="root"]) .bar-split-view__bar--top,
|
|
48637
|
+
:host([data-scroll="root"]) .bar-split-view__bar--bottom {
|
|
48638
|
+
position: sticky;
|
|
48639
|
+
z-index: 3;
|
|
48640
|
+
}
|
|
48641
|
+
|
|
48376
48642
|
.bar-split-view__divider {
|
|
48377
48643
|
flex-shrink: 0;
|
|
48378
48644
|
}
|
|
48379
48645
|
|
|
48646
|
+
/* Root-scroll mode: the seam divider sticks too, riding with its bar instead
|
|
48647
|
+
of scrolling away with the content. */
|
|
48648
|
+
:host([data-scroll="root"]) .bar-split-view__divider {
|
|
48649
|
+
position: sticky;
|
|
48650
|
+
z-index: 3;
|
|
48651
|
+
}
|
|
48652
|
+
|
|
48380
48653
|
.bar-split-view__main {
|
|
48381
48654
|
display: flex;
|
|
48382
48655
|
min-width: 0;
|
|
@@ -48388,6 +48661,12 @@ const barSplitViewStyles = css$1`
|
|
|
48388
48661
|
flex-basis: 0;
|
|
48389
48662
|
}
|
|
48390
48663
|
|
|
48664
|
+
:host([data-scroll="root"]) .bar-split-view__main {
|
|
48665
|
+
overflow: visible;
|
|
48666
|
+
flex-basis: auto;
|
|
48667
|
+
flex-shrink: 0;
|
|
48668
|
+
}
|
|
48669
|
+
|
|
48391
48670
|
/* Only the main pane grows to fill remaining space; bar panes size to
|
|
48392
48671
|
* their content. Without this scoping a bar's slotted content gets
|
|
48393
48672
|
* flex-basis: 0 and collapses (the old 'flex: 1' shorthand expanded
|
|
@@ -48400,6 +48679,15 @@ const barSplitViewStyles = css$1`
|
|
|
48400
48679
|
flex-shrink: 1;
|
|
48401
48680
|
flex-basis: 0;
|
|
48402
48681
|
}
|
|
48682
|
+
|
|
48683
|
+
/* Root-scroll mode: the slotted main layer (a split-view or page) is a COLUMN
|
|
48684
|
+
item of the main column: give it a real content height (flex-basis:auto)
|
|
48685
|
+
that it keeps on tall pages (flex-shrink:0), otherwise its 0 basis collapses
|
|
48686
|
+
the main box and the sticky bars' containing block never spans the document. */
|
|
48687
|
+
:host([data-scroll="root"]) ::slotted([slot="main"]) {
|
|
48688
|
+
flex-basis: auto;
|
|
48689
|
+
flex-shrink: 0;
|
|
48690
|
+
}
|
|
48403
48691
|
`;
|
|
48404
48692
|
const splitViewDividerStyles = css$1`
|
|
48405
48693
|
:host {
|
|
@@ -48508,16 +48796,22 @@ NLDDSplitViewDivider = __decorateClass$N([
|
|
|
48508
48796
|
], NLDDSplitViewDivider);
|
|
48509
48797
|
function barSplitViewTemplate(component) {
|
|
48510
48798
|
const sorted = component._getSortedChildren();
|
|
48511
|
-
const
|
|
48512
|
-
if (!
|
|
48799
|
+
const panes = sorted.map((el) => ({ slot: el.slot, isMain: el.slot === "main" }));
|
|
48800
|
+
if (!panes.some((pane) => pane.isMain)) panes.push({ slot: "main", isMain: true });
|
|
48801
|
+
const mainIndex = panes.findIndex((pane) => pane.isMain);
|
|
48513
48802
|
return html$1`
|
|
48514
48803
|
<div class="bar-split-view">
|
|
48515
|
-
${
|
|
48516
|
-
const next =
|
|
48517
|
-
const showDivider = next ?
|
|
48804
|
+
${panes.map((pane, index2) => {
|
|
48805
|
+
const next = panes[index2 + 1];
|
|
48806
|
+
const showDivider = next ? pane.isMain !== next.isMain : false;
|
|
48518
48807
|
return html$1`
|
|
48519
|
-
<div class=${classMap({
|
|
48520
|
-
|
|
48808
|
+
<div class=${classMap({
|
|
48809
|
+
"bar-split-view__main": pane.isMain,
|
|
48810
|
+
"bar-split-view__bar": !pane.isMain,
|
|
48811
|
+
"bar-split-view__bar--top": !pane.isMain && index2 < mainIndex,
|
|
48812
|
+
"bar-split-view__bar--bottom": !pane.isMain && index2 > mainIndex
|
|
48813
|
+
})}>
|
|
48814
|
+
<slot name=${pane.slot}></slot>
|
|
48521
48815
|
</div>
|
|
48522
48816
|
${showDivider ? html$1`
|
|
48523
48817
|
<div class="bar-split-view__divider">
|
|
@@ -48544,10 +48838,42 @@ const mdMaxPx = parseInt(breakpoints.mdMax);
|
|
|
48544
48838
|
let NLDDBarSplitView = class extends LitElement {
|
|
48545
48839
|
constructor() {
|
|
48546
48840
|
super(...arguments);
|
|
48841
|
+
this._scrollMode = new ScrollModeController(this, () => this._updateLayerOffsets());
|
|
48547
48842
|
this.background = "inherit";
|
|
48548
48843
|
this._currentBreakpoint = null;
|
|
48549
48844
|
this._observer = null;
|
|
48550
48845
|
this._resizeObserver = null;
|
|
48846
|
+
this._updateLayerOffsets = () => {
|
|
48847
|
+
const block = this.shadowRoot?.querySelector(".bar-split-view") ?? null;
|
|
48848
|
+
const main = block?.querySelector(".bar-split-view__main") ?? null;
|
|
48849
|
+
if (!block || !main) return;
|
|
48850
|
+
const children = Array.from(block.children);
|
|
48851
|
+
const mainIndex = children.indexOf(main);
|
|
48852
|
+
if (this._scrollMode.mode !== "root") {
|
|
48853
|
+
children.forEach((el) => {
|
|
48854
|
+
el.style.top = "";
|
|
48855
|
+
el.style.bottom = "";
|
|
48856
|
+
});
|
|
48857
|
+
main.style.removeProperty("--context-layer-top");
|
|
48858
|
+
main.style.removeProperty("--context-layer-bottom");
|
|
48859
|
+
return;
|
|
48860
|
+
}
|
|
48861
|
+
const cs = getComputedStyle(this);
|
|
48862
|
+
let top2 = parseFloat(cs.getPropertyValue("--context-layer-top")) || 0;
|
|
48863
|
+
for (let i = 0; i < mainIndex; i++) {
|
|
48864
|
+
children[i].style.top = `${top2}px`;
|
|
48865
|
+
children[i].style.bottom = "";
|
|
48866
|
+
top2 += children[i].offsetHeight;
|
|
48867
|
+
}
|
|
48868
|
+
main.style.setProperty("--context-layer-top", `${top2}px`);
|
|
48869
|
+
let bottom = parseFloat(cs.getPropertyValue("--context-layer-bottom")) || 0;
|
|
48870
|
+
for (let i = children.length - 1; i > mainIndex; i--) {
|
|
48871
|
+
children[i].style.bottom = `${bottom}px`;
|
|
48872
|
+
children[i].style.top = "";
|
|
48873
|
+
bottom += children[i].offsetHeight;
|
|
48874
|
+
}
|
|
48875
|
+
main.style.setProperty("--context-layer-bottom", `${bottom}px`);
|
|
48876
|
+
};
|
|
48551
48877
|
}
|
|
48552
48878
|
connectedCallback() {
|
|
48553
48879
|
super.connectedCallback();
|
|
@@ -48560,6 +48886,7 @@ let NLDDBarSplitView = class extends LitElement {
|
|
|
48560
48886
|
this._currentBreakpoint = bp;
|
|
48561
48887
|
this.requestUpdate();
|
|
48562
48888
|
}
|
|
48889
|
+
this._updateLayerOffsets();
|
|
48563
48890
|
});
|
|
48564
48891
|
this._resizeObserver.observe(this);
|
|
48565
48892
|
}
|
|
@@ -48603,6 +48930,9 @@ let NLDDBarSplitView = class extends LitElement {
|
|
|
48603
48930
|
return aVal - bVal;
|
|
48604
48931
|
});
|
|
48605
48932
|
}
|
|
48933
|
+
updated() {
|
|
48934
|
+
this._updateLayerOffsets();
|
|
48935
|
+
}
|
|
48606
48936
|
render() {
|
|
48607
48937
|
return barSplitViewTemplate(this);
|
|
48608
48938
|
}
|
|
@@ -48653,6 +48983,14 @@ const navigationSplitViewStyles = css$1`
|
|
|
48653
48983
|
--_background-color: var(--context-parent-background-color);
|
|
48654
48984
|
}
|
|
48655
48985
|
|
|
48986
|
+
/* Root-scroll mode: flow instead of clipping (see ScrollModeController /
|
|
48987
|
+
--context-scroll-mode). Reached in full-stack (one visible pane), so the row
|
|
48988
|
+
wrapper and the visible pane stop clipping and let a slotted nldd-page stick
|
|
48989
|
+
against the document. */
|
|
48990
|
+
:host([data-scroll="root"]) {
|
|
48991
|
+
height: auto;
|
|
48992
|
+
}
|
|
48993
|
+
|
|
48656
48994
|
|
|
48657
48995
|
/* # Keyframes */
|
|
48658
48996
|
|
|
@@ -48700,6 +49038,15 @@ const navigationSplitViewStyles = css$1`
|
|
|
48700
49038
|
flex-basis: 0;
|
|
48701
49039
|
}
|
|
48702
49040
|
|
|
49041
|
+
/* Root-scroll mode: row-axis wrappers — flex-basis/flex-shrink here are the
|
|
49042
|
+
WIDTH (row main axis), so leave them at their nested values; overriding them
|
|
49043
|
+
stops the panes shrinking to the viewport and the split-view never stacks.
|
|
49044
|
+
Only stop clipping so a descendant page's sticky layers escape. Their height
|
|
49045
|
+
comes from the cross-axis stretch of the content-sized main column above. */
|
|
49046
|
+
:host([data-scroll="root"]) .navigation-split-view {
|
|
49047
|
+
overflow: visible;
|
|
49048
|
+
}
|
|
49049
|
+
|
|
48703
49050
|
|
|
48704
49051
|
/* # Elements */
|
|
48705
49052
|
|
|
@@ -48721,6 +49068,11 @@ const navigationSplitViewStyles = css$1`
|
|
|
48721
49068
|
flex-shrink: 0;
|
|
48722
49069
|
}
|
|
48723
49070
|
|
|
49071
|
+
:host([data-scroll="root"]) .navigation-split-view__primary-sidebar-pane,
|
|
49072
|
+
:host([data-scroll="root"]) .navigation-split-view__secondary-sidebar-pane {
|
|
49073
|
+
overflow: visible;
|
|
49074
|
+
}
|
|
49075
|
+
|
|
48724
49076
|
.navigation-split-view__main-pane {
|
|
48725
49077
|
display: flex;
|
|
48726
49078
|
min-width: var(--_main-min-width);
|
|
@@ -48732,6 +49084,10 @@ const navigationSplitViewStyles = css$1`
|
|
|
48732
49084
|
flex-basis: 0;
|
|
48733
49085
|
}
|
|
48734
49086
|
|
|
49087
|
+
:host([data-scroll="root"]) .navigation-split-view__main-pane {
|
|
49088
|
+
overflow: visible;
|
|
49089
|
+
}
|
|
49090
|
+
|
|
48735
49091
|
/* Full-stack: the single visible pane fills the space, no minimum */
|
|
48736
49092
|
:host(.full-stack) .navigation-split-view__primary-sidebar-pane,
|
|
48737
49093
|
:host(.full-stack) .navigation-split-view__secondary-sidebar-pane,
|
|
@@ -48934,30 +49290,45 @@ const navigationSplitViewStyles = css$1`
|
|
|
48934
49290
|
flex-shrink: 1;
|
|
48935
49291
|
flex-basis: 0;
|
|
48936
49292
|
}
|
|
49293
|
+
|
|
49294
|
+
/* Root-scroll mode: slotted pane content is a COLUMN item of the pane: govern
|
|
49295
|
+
its height so it fills a short viewport (flex-grow) but keeps its own height
|
|
49296
|
+
when taller (flex-shrink:0), rather than collapsing to a 0 basis. */
|
|
49297
|
+
:host([data-scroll="root"]) ::slotted(*) {
|
|
49298
|
+
flex-basis: auto;
|
|
49299
|
+
flex-shrink: 0;
|
|
49300
|
+
}
|
|
48937
49301
|
`;
|
|
48938
49302
|
function navigationSplitViewTemplate(component) {
|
|
49303
|
+
const showPrimary = component._showPrimarySidebar;
|
|
49304
|
+
const showSecondary = component._showSecondarySidebar;
|
|
49305
|
+
const showMain = component._showMain;
|
|
49306
|
+
const showInspector = component._showInspector;
|
|
49307
|
+
const dividerAfterPrimary = showPrimary && (showSecondary || showMain || showInspector);
|
|
49308
|
+
const dividerAfterSecondary = showSecondary && (showMain || showInspector);
|
|
49309
|
+
const dividerBeforeInspector = showInspector && (showPrimary || showSecondary || showMain);
|
|
48939
49310
|
return html$1`
|
|
48940
49311
|
<div class="navigation-split-view">
|
|
48941
|
-
${
|
|
49312
|
+
${showPrimary ? html$1`
|
|
48942
49313
|
<div class="navigation-split-view__primary-sidebar-pane">
|
|
48943
49314
|
<slot name="primary-sidebar"></slot>
|
|
48944
49315
|
<slot name="sidebar"></slot>
|
|
48945
49316
|
</div>
|
|
48946
|
-
<nldd-split-view-divider orientation="vertical"></nldd-split-view-divider>
|
|
48947
49317
|
` : nothing}
|
|
48948
|
-
${
|
|
49318
|
+
${dividerAfterPrimary ? html$1`<nldd-split-view-divider orientation="vertical"></nldd-split-view-divider>` : nothing}
|
|
49319
|
+
${showSecondary ? html$1`
|
|
48949
49320
|
<div class="navigation-split-view__secondary-sidebar-pane">
|
|
48950
49321
|
<slot name="secondary-sidebar"></slot>
|
|
48951
49322
|
</div>
|
|
48952
|
-
<nldd-split-view-divider orientation="vertical"></nldd-split-view-divider>
|
|
48953
49323
|
` : nothing}
|
|
48954
|
-
${
|
|
49324
|
+
${dividerAfterSecondary ? html$1`<nldd-split-view-divider orientation="vertical"></nldd-split-view-divider>` : nothing}
|
|
49325
|
+
${showMain ? html$1`
|
|
48955
49326
|
<div class="navigation-split-view__main-pane">
|
|
48956
49327
|
<slot name="main"></slot>
|
|
48957
49328
|
</div>
|
|
48958
49329
|
` : nothing}
|
|
48959
|
-
${
|
|
48960
|
-
|
|
49330
|
+
${showInspector ? html$1`
|
|
49331
|
+
${dividerBeforeInspector ? html$1`<nldd-split-view-divider orientation="vertical"></nldd-split-view-divider>` : nothing}
|
|
48961
49332
|
<div class="navigation-split-view__inspector-pane">
|
|
48962
49333
|
<slot name="inspector"></slot>
|
|
48963
49334
|
</div>
|
|
@@ -49006,6 +49377,7 @@ var __decorateClass$L = (decorators, target, key, kind) => {
|
|
|
49006
49377
|
let NLDDNavigationSplitView = class extends LitElement {
|
|
49007
49378
|
constructor() {
|
|
49008
49379
|
super(...arguments);
|
|
49380
|
+
this._scrollMode = new ScrollModeController(this);
|
|
49009
49381
|
this.inspectorAutoHidden = false;
|
|
49010
49382
|
this.inspectorAsSheet = false;
|
|
49011
49383
|
this.primarySidebarAsSheet = false;
|
|
@@ -49061,6 +49433,15 @@ let NLDDNavigationSplitView = class extends LitElement {
|
|
|
49061
49433
|
get _hasInspector() {
|
|
49062
49434
|
return this.querySelector(':scope > [slot="inspector"]') !== null;
|
|
49063
49435
|
}
|
|
49436
|
+
/**
|
|
49437
|
+
* True when collapsed to a single visible pane (full-stack). nldd-app-view
|
|
49438
|
+
* reads this — and listens for the `single-column-change` event below — to
|
|
49439
|
+
* switch the whole app to document-level scroll.
|
|
49440
|
+
* @internal
|
|
49441
|
+
*/
|
|
49442
|
+
get isSingleColumn() {
|
|
49443
|
+
return this._mode === "full-stack";
|
|
49444
|
+
}
|
|
49064
49445
|
_paneHasContent(slot) {
|
|
49065
49446
|
const selector = slot === "primary-sidebar" ? ':scope > nldd-split-view-pane:is([slot="primary-sidebar"], [slot="sidebar"])' : `:scope > nldd-split-view-pane[slot="${slot}"]`;
|
|
49066
49447
|
return this.querySelector(selector)?.hasAttribute("has-content") ?? false;
|
|
@@ -49164,8 +49545,16 @@ let NLDDNavigationSplitView = class extends LitElement {
|
|
|
49164
49545
|
this._showMain = main;
|
|
49165
49546
|
this._showInspector = inspector && !this.inspectorAsSheet;
|
|
49166
49547
|
this.inspectorAutoHidden = this._hasInspector && !inspector;
|
|
49548
|
+
const wasSingleColumn = this._mode === "full-stack";
|
|
49167
49549
|
this._mode = mode;
|
|
49168
49550
|
this.classList.toggle("full-stack", mode === "full-stack");
|
|
49551
|
+
if (this.isSingleColumn !== wasSingleColumn) {
|
|
49552
|
+
this.dispatchEvent(new CustomEvent(SINGLE_COLUMN_CHANGE_EVENT, {
|
|
49553
|
+
bubbles: true,
|
|
49554
|
+
composed: true,
|
|
49555
|
+
detail: { singleColumn: this.isSingleColumn }
|
|
49556
|
+
}));
|
|
49557
|
+
}
|
|
49169
49558
|
this._updatePaneBackButtons();
|
|
49170
49559
|
}
|
|
49171
49560
|
_updatePaneBackButtons() {
|
|
@@ -49460,11 +49849,27 @@ let NLDDSideBySideSplitView = class extends LitElement {
|
|
|
49460
49849
|
this._updateVisiblePanes();
|
|
49461
49850
|
}
|
|
49462
49851
|
}
|
|
49852
|
+
/**
|
|
49853
|
+
* True when only one pane fits. nldd-app-view reads this — and listens for the
|
|
49854
|
+
* `single-column-change` event below — to switch to document-level scroll.
|
|
49855
|
+
* @internal
|
|
49856
|
+
*/
|
|
49857
|
+
get isSingleColumn() {
|
|
49858
|
+
return this._visiblePanes <= 1;
|
|
49859
|
+
}
|
|
49463
49860
|
_updateVisiblePanes() {
|
|
49464
49861
|
if (!this._paneMinWidth) return;
|
|
49465
49862
|
const width = this.getBoundingClientRect().width;
|
|
49466
49863
|
const fitting = Math.floor(width / this._paneMinWidth);
|
|
49864
|
+
const wasSingleColumn = this.isSingleColumn;
|
|
49467
49865
|
this._visiblePanes = Math.min(this.panes, Math.max(1, fitting));
|
|
49866
|
+
if (this.isSingleColumn !== wasSingleColumn) {
|
|
49867
|
+
this.dispatchEvent(new CustomEvent(SINGLE_COLUMN_CHANGE_EVENT, {
|
|
49868
|
+
bubbles: true,
|
|
49869
|
+
composed: true,
|
|
49870
|
+
detail: { singleColumn: this.isSingleColumn }
|
|
49871
|
+
}));
|
|
49872
|
+
}
|
|
49468
49873
|
}
|
|
49469
49874
|
render() {
|
|
49470
49875
|
return sideBySideSplitViewTemplate(this);
|
|
@@ -49674,6 +50079,13 @@ const splitViewPaneStyles = css$1`
|
|
|
49674
50079
|
--context-back-button-display: none;
|
|
49675
50080
|
}
|
|
49676
50081
|
|
|
50082
|
+
/* Root-scroll mode — flow instead of clipping (see ScrollModeController /
|
|
50083
|
+
--context-scroll-mode) so a slotted nldd-page's sticky layers can stick
|
|
50084
|
+
against the document rather than this pane. */
|
|
50085
|
+
:host([data-scroll="root"]) {
|
|
50086
|
+
height: auto;
|
|
50087
|
+
}
|
|
50088
|
+
|
|
49677
50089
|
|
|
49678
50090
|
/* # Block */
|
|
49679
50091
|
|
|
@@ -49695,6 +50107,10 @@ const splitViewPaneStyles = css$1`
|
|
|
49695
50107
|
flex-basis: auto;
|
|
49696
50108
|
}
|
|
49697
50109
|
|
|
50110
|
+
:host([data-scroll="root"]) .split-view-pane {
|
|
50111
|
+
overflow: visible;
|
|
50112
|
+
}
|
|
50113
|
+
|
|
49698
50114
|
|
|
49699
50115
|
/* # Elements */
|
|
49700
50116
|
|
|
@@ -49704,6 +50120,14 @@ const splitViewPaneStyles = css$1`
|
|
|
49704
50120
|
flex-shrink: 1;
|
|
49705
50121
|
flex-basis: auto;
|
|
49706
50122
|
}
|
|
50123
|
+
|
|
50124
|
+
/* Slotted page is a COLUMN item here: keep its content height on tall pages
|
|
50125
|
+
(flex-shrink:0) so its sticky header/footer range spans the document,
|
|
50126
|
+
while still filling a short viewport via flex-grow. */
|
|
50127
|
+
:host([data-scroll="root"]) ::slotted(*) {
|
|
50128
|
+
flex-basis: auto;
|
|
50129
|
+
flex-shrink: 0;
|
|
50130
|
+
}
|
|
49707
50131
|
`;
|
|
49708
50132
|
function splitViewPaneTemplate(_component) {
|
|
49709
50133
|
return html$1`
|
|
@@ -49725,6 +50149,7 @@ var __decorateClass$I = (decorators, target, key, kind) => {
|
|
|
49725
50149
|
let NLDDSplitViewPane = class extends LitElement {
|
|
49726
50150
|
constructor() {
|
|
49727
50151
|
super(...arguments);
|
|
50152
|
+
this._scrollMode = new ScrollModeController(this);
|
|
49728
50153
|
this.hasContent = false;
|
|
49729
50154
|
this.hideBack = false;
|
|
49730
50155
|
this.background = "inherit";
|
|
@@ -49797,6 +50222,24 @@ const pageStyles = css$1`
|
|
|
49797
50222
|
overflow: hidden;
|
|
49798
50223
|
}
|
|
49799
50224
|
|
|
50225
|
+
/* Root-scroll mode: the DOCUMENT scrolls (see nldd-app-view), not the page.
|
|
50226
|
+
The page stops owning an inner scroll container and its sticky-header/footer
|
|
50227
|
+
become real position:sticky layers against the document, offset by the
|
|
50228
|
+
cumulative layer heights above/below (--context-layer-top/bottom, published
|
|
50229
|
+
by any bars sitting outside the page). The mode is derived upstream and
|
|
50230
|
+
delivered as --context-scroll-mode; nldd-page reflects it to [data-scroll]
|
|
50231
|
+
so these (higher-specificity, later) rules win over the nested ones. */
|
|
50232
|
+
:host([data-scroll="root"]) {
|
|
50233
|
+
height: auto;
|
|
50234
|
+
overflow: visible;
|
|
50235
|
+
overscroll-behavior: auto;
|
|
50236
|
+
}
|
|
50237
|
+
|
|
50238
|
+
/* Undo the nested-mode clip — the document is the scroller now. */
|
|
50239
|
+
:host([data-scroll="root"][sticky-header]) {
|
|
50240
|
+
overflow: visible;
|
|
50241
|
+
}
|
|
50242
|
+
|
|
49800
50243
|
|
|
49801
50244
|
/* # Block */
|
|
49802
50245
|
|
|
@@ -49807,6 +50250,14 @@ const pageStyles = css$1`
|
|
|
49807
50250
|
flex-grow: 1;
|
|
49808
50251
|
}
|
|
49809
50252
|
|
|
50253
|
+
/* Root-scroll mode: no inner scroller; content-sized (flex-shrink:0) so the
|
|
50254
|
+
sticky header/footer's containing block spans the whole document rather
|
|
50255
|
+
than being squeezed to a definite ancestor height. */
|
|
50256
|
+
:host([data-scroll="root"]) .page {
|
|
50257
|
+
overflow: visible;
|
|
50258
|
+
flex-shrink: 0;
|
|
50259
|
+
}
|
|
50260
|
+
|
|
49810
50261
|
|
|
49811
50262
|
/* # Elements */
|
|
49812
50263
|
|
|
@@ -49841,6 +50292,17 @@ const pageStyles = css$1`
|
|
|
49841
50292
|
opacity: 1;
|
|
49842
50293
|
}
|
|
49843
50294
|
|
|
50295
|
+
/* Root-scroll mode: sticky against the document instead of absolute-over-a-
|
|
50296
|
+
nested-scroller. Being in normal flow it reserves its own space, so no
|
|
50297
|
+
ResizeObserver padding is needed. left/right revert to auto: those insets
|
|
50298
|
+
only mattered for the absolute overlay. */
|
|
50299
|
+
:host([data-scroll="root"][sticky-header]) .page__header {
|
|
50300
|
+
position: sticky;
|
|
50301
|
+
top: var(--context-layer-top, 0px);
|
|
50302
|
+
left: auto;
|
|
50303
|
+
right: auto;
|
|
50304
|
+
}
|
|
50305
|
+
|
|
49844
50306
|
.page__scroll {
|
|
49845
50307
|
display: flex;
|
|
49846
50308
|
min-height: 0;
|
|
@@ -49854,6 +50316,12 @@ const pageStyles = css$1`
|
|
|
49854
50316
|
overscroll-behavior: contain;
|
|
49855
50317
|
}
|
|
49856
50318
|
|
|
50319
|
+
/* Root-scroll mode: content-sized, no inner scroller (see the .page rule). */
|
|
50320
|
+
:host([data-scroll="root"]) .page__scroll {
|
|
50321
|
+
overflow: visible;
|
|
50322
|
+
flex-shrink: 0;
|
|
50323
|
+
}
|
|
50324
|
+
|
|
49857
50325
|
.page__main {
|
|
49858
50326
|
display: flex;
|
|
49859
50327
|
flex-direction: column;
|
|
@@ -49882,6 +50350,11 @@ const pageStyles = css$1`
|
|
|
49882
50350
|
pointer-events: none;
|
|
49883
50351
|
height: var(--primitives-space-32);
|
|
49884
50352
|
}
|
|
50353
|
+
|
|
50354
|
+
/* Root-scroll mode: footer sticks to the document bottom, above any bottom bars. */
|
|
50355
|
+
:host([data-scroll="root"][sticky-footer]) .page__footer {
|
|
50356
|
+
bottom: var(--context-layer-bottom, 0px);
|
|
50357
|
+
}
|
|
49885
50358
|
`;
|
|
49886
50359
|
function pageTemplate(component) {
|
|
49887
50360
|
return html$1`
|
|
@@ -49917,12 +50390,21 @@ let NLDDPage = class extends LitElement {
|
|
|
49917
50390
|
this.stickyFooter = false;
|
|
49918
50391
|
this.background = "inherit";
|
|
49919
50392
|
this._scrolled = false;
|
|
50393
|
+
this._scrollMode = "nested";
|
|
49920
50394
|
this._scrollTarget = null;
|
|
50395
|
+
this._scrollProvider = null;
|
|
49921
50396
|
this._headerObserver = null;
|
|
49922
50397
|
this._mainSlot = null;
|
|
50398
|
+
this._resizeRaf = 0;
|
|
50399
|
+
this._onResize = () => {
|
|
50400
|
+
if (this._resizeRaf) return;
|
|
50401
|
+
this._resizeRaf = requestAnimationFrame(() => {
|
|
50402
|
+
this._resizeRaf = 0;
|
|
50403
|
+
if (this._readScrollMode()) this._configureScroll();
|
|
50404
|
+
});
|
|
50405
|
+
};
|
|
49923
50406
|
this._onScroll = () => {
|
|
49924
|
-
|
|
49925
|
-
this._scrolled = target.scrollTop > 0;
|
|
50407
|
+
this._scrolled = this._isRoot ? window.scrollY > 0 : ((this.stickyHeader ? this._scrollEl : this)?.scrollTop ?? 0) > 0;
|
|
49926
50408
|
};
|
|
49927
50409
|
this._updateMainItems = () => {
|
|
49928
50410
|
const slot = this._mainSlot;
|
|
@@ -49933,7 +50415,25 @@ let NLDDPage = class extends LitElement {
|
|
|
49933
50415
|
items.forEach((el) => el.classList.toggle("is-last", el === last));
|
|
49934
50416
|
};
|
|
49935
50417
|
}
|
|
50418
|
+
get _isRoot() {
|
|
50419
|
+
return this._scrollMode === "root";
|
|
50420
|
+
}
|
|
49936
50421
|
get scrollTarget() {
|
|
50422
|
+
if (this._isRoot) return document.scrollingElement ?? document.documentElement;
|
|
50423
|
+
return this.stickyHeader ? this._scrollEl ?? this : this;
|
|
50424
|
+
}
|
|
50425
|
+
/**
|
|
50426
|
+
* The target to attach scroll LISTENERS to for this page's scrolling. In root
|
|
50427
|
+
* mode the document is the scroller and its scroll event fires on `window` —
|
|
50428
|
+
* a listener on `document.scrollingElement` would never fire — so this differs
|
|
50429
|
+
* from `scrollTarget` (which is for reading scrollTop). In nested mode the two
|
|
50430
|
+
* are the same. Components that react to this page's scroll (e.g.
|
|
50431
|
+
* nldd-top-title-bar's collapse-anchor) must listen here and measure position
|
|
50432
|
+
* against the viewport.
|
|
50433
|
+
* @internal
|
|
50434
|
+
*/
|
|
50435
|
+
get scrollEventTarget() {
|
|
50436
|
+
if (this._isRoot) return window;
|
|
49937
50437
|
return this.stickyHeader ? this._scrollEl ?? this : this;
|
|
49938
50438
|
}
|
|
49939
50439
|
get _headerEl() {
|
|
@@ -49946,38 +50446,66 @@ let NLDDPage = class extends LitElement {
|
|
|
49946
50446
|
super.connectedCallback();
|
|
49947
50447
|
this.style.containerType = "inline-size";
|
|
49948
50448
|
this.style.containerName = "layout-container";
|
|
49949
|
-
|
|
49950
|
-
|
|
49951
|
-
|
|
50449
|
+
this._scrollProvider = findScrollModeProvider(this);
|
|
50450
|
+
if (this._scrollProvider) {
|
|
50451
|
+
this._scrollProvider.registerScrollConsumer(this);
|
|
50452
|
+
if (this.hasUpdated) this._configureScroll();
|
|
50453
|
+
} else {
|
|
50454
|
+
window.addEventListener("resize", this._onResize, { passive: true });
|
|
50455
|
+
if (this.hasUpdated) {
|
|
50456
|
+
this._readScrollMode();
|
|
50457
|
+
this._configureScroll();
|
|
50458
|
+
}
|
|
49952
50459
|
}
|
|
49953
50460
|
}
|
|
49954
50461
|
disconnectedCallback() {
|
|
49955
50462
|
super.disconnectedCallback();
|
|
50463
|
+
window.removeEventListener("resize", this._onResize);
|
|
50464
|
+
this._scrollProvider?.unregisterScrollConsumer(this);
|
|
50465
|
+
this._scrollProvider = null;
|
|
50466
|
+
if (this._resizeRaf) cancelAnimationFrame(this._resizeRaf);
|
|
49956
50467
|
this._teardownScrollListener();
|
|
49957
50468
|
this._teardownHeaderObserver();
|
|
49958
50469
|
this._teardownMainSlotListener();
|
|
49959
50470
|
}
|
|
49960
50471
|
firstUpdated() {
|
|
49961
|
-
this.
|
|
49962
|
-
|
|
50472
|
+
if (!this._scrollProvider) this._readScrollMode();
|
|
50473
|
+
this._configureScroll();
|
|
49963
50474
|
this._setupMainSlotListener();
|
|
49964
50475
|
}
|
|
49965
50476
|
updated(changed) {
|
|
49966
|
-
if (changed.has("stickyHeader"))
|
|
49967
|
-
|
|
49968
|
-
|
|
49969
|
-
|
|
49970
|
-
|
|
49971
|
-
|
|
49972
|
-
|
|
49973
|
-
|
|
49974
|
-
|
|
49975
|
-
|
|
50477
|
+
if (changed.has("stickyHeader")) this._configureScroll();
|
|
50478
|
+
}
|
|
50479
|
+
/**
|
|
50480
|
+
* ScrollModeConsumer — nldd-app-view pushes the derived mode here; called with
|
|
50481
|
+
* no argument (resize / no app-view) it re-reads the inherited var. @internal
|
|
50482
|
+
*/
|
|
50483
|
+
readScrollMode(mode) {
|
|
50484
|
+
if (this._readScrollMode(mode)) this._configureScroll();
|
|
50485
|
+
}
|
|
50486
|
+
// Apply the scroll mode; returns true when it changed so callers can
|
|
50487
|
+
// reconfigure. With an explicit mode (app-view's push) it is applied directly
|
|
50488
|
+
// — race-free, unlike a getComputedStyle read mid-propagation. Otherwise the
|
|
50489
|
+
// inherited --context-scroll-mode is read (anything but 'root' means nested).
|
|
50490
|
+
_readScrollMode(mode) {
|
|
50491
|
+
const next = mode ?? (getComputedStyle(this).getPropertyValue("--context-scroll-mode").trim() === "root" ? "root" : "nested");
|
|
50492
|
+
if (next === this._scrollMode) return false;
|
|
50493
|
+
this._scrollMode = next;
|
|
50494
|
+
this.dataset.scroll = next;
|
|
50495
|
+
return true;
|
|
50496
|
+
}
|
|
50497
|
+
// (Re)wire the scroll listener + header observer for the current mode.
|
|
50498
|
+
_configureScroll() {
|
|
50499
|
+
this._teardownScrollListener();
|
|
50500
|
+
this._teardownHeaderObserver();
|
|
50501
|
+
if (this._scrollEl) this._scrollEl.style.paddingTop = "";
|
|
50502
|
+
this._setupScrollListener();
|
|
50503
|
+
if (this.stickyHeader && !this._isRoot) this._setupHeaderObserver();
|
|
50504
|
+
this._onScroll();
|
|
49976
50505
|
}
|
|
49977
50506
|
_setupScrollListener() {
|
|
49978
|
-
const target = this.
|
|
49979
|
-
|
|
49980
|
-
target.addEventListener("scroll", this._onScroll);
|
|
50507
|
+
const target = this.scrollEventTarget;
|
|
50508
|
+
target.addEventListener("scroll", this._onScroll, { passive: true });
|
|
49981
50509
|
this._scrollTarget = target;
|
|
49982
50510
|
}
|
|
49983
50511
|
_teardownScrollListener() {
|
|
@@ -52460,6 +52988,7 @@ let NLDDTopTitleBar = class extends LitElement {
|
|
|
52460
52988
|
this._anchorElement = null;
|
|
52461
52989
|
this._activeScrollTarget = null;
|
|
52462
52990
|
this._scrollTargetStyleObserver = null;
|
|
52991
|
+
this._pageModeObserver = null;
|
|
52463
52992
|
this._boundOnScroll = this._onScroll.bind(this);
|
|
52464
52993
|
this._onToolbarSlotChange = (e) => {
|
|
52465
52994
|
const slot = e.target;
|
|
@@ -52511,8 +53040,25 @@ let NLDDTopTitleBar = class extends LitElement {
|
|
|
52511
53040
|
const root = this.getRootNode();
|
|
52512
53041
|
this._anchorElement = root.getElementById?.(this.collapseAnchor) ?? root.querySelector(`#${this.collapseAnchor}`);
|
|
52513
53042
|
if (!this._anchorElement) return;
|
|
53043
|
+
this._wireScrollTarget();
|
|
53044
|
+
if (this._pageElement) {
|
|
53045
|
+
this._pageModeObserver = new MutationObserver(() => this._wireScrollTarget());
|
|
53046
|
+
this._pageModeObserver.observe(this._pageElement, {
|
|
53047
|
+
attributes: true,
|
|
53048
|
+
attributeFilter: ["data-scroll"]
|
|
53049
|
+
});
|
|
53050
|
+
}
|
|
53051
|
+
this.updateComplete.then(() => this._onScroll());
|
|
53052
|
+
}
|
|
53053
|
+
// (Re)attach the scroll + style listeners to the page's current scroll
|
|
53054
|
+
// target — the host document in root-scroll mode, the page (or its inner
|
|
53055
|
+
// scroller) in nested mode.
|
|
53056
|
+
_wireScrollTarget() {
|
|
53057
|
+
this._activeScrollTarget?.removeEventListener("scroll", this._boundOnScroll);
|
|
53058
|
+
this._scrollTargetStyleObserver?.disconnect();
|
|
53059
|
+
this._scrollTargetStyleObserver = null;
|
|
52514
53060
|
const page2 = this._pageElement;
|
|
52515
|
-
this._activeScrollTarget = page2 ? page2.
|
|
53061
|
+
this._activeScrollTarget = page2 ? page2.scrollEventTarget : window;
|
|
52516
53062
|
this._activeScrollTarget.addEventListener("scroll", this._boundOnScroll, { passive: true });
|
|
52517
53063
|
if (this._activeScrollTarget instanceof Element) {
|
|
52518
53064
|
this._scrollTargetStyleObserver = new MutationObserver(() => this._onScroll());
|
|
@@ -52521,7 +53067,7 @@ let NLDDTopTitleBar = class extends LitElement {
|
|
|
52521
53067
|
attributeFilter: ["style"]
|
|
52522
53068
|
});
|
|
52523
53069
|
}
|
|
52524
|
-
this.
|
|
53070
|
+
this._onScroll();
|
|
52525
53071
|
}
|
|
52526
53072
|
_teardownAnchor() {
|
|
52527
53073
|
this._activeScrollTarget?.removeEventListener("scroll", this._boundOnScroll);
|
|
@@ -52529,12 +53075,14 @@ let NLDDTopTitleBar = class extends LitElement {
|
|
|
52529
53075
|
this._anchorElement = null;
|
|
52530
53076
|
this._scrollTargetStyleObserver?.disconnect();
|
|
52531
53077
|
this._scrollTargetStyleObserver = null;
|
|
53078
|
+
this._pageModeObserver?.disconnect();
|
|
53079
|
+
this._pageModeObserver = null;
|
|
52532
53080
|
}
|
|
52533
53081
|
_onScroll() {
|
|
52534
53082
|
if (!this._anchorElement || !this._pageElement) return;
|
|
52535
|
-
const
|
|
53083
|
+
const barTop = this.getBoundingClientRect().top;
|
|
52536
53084
|
const anchorTop = this._anchorElement.getBoundingClientRect().top;
|
|
52537
|
-
this.classList.toggle("is-compact", anchorTop <=
|
|
53085
|
+
this.classList.toggle("is-compact", anchorTop <= barTop);
|
|
52538
53086
|
}
|
|
52539
53087
|
_handleBack() {
|
|
52540
53088
|
if (this.backHref) return;
|