@vectoriox/iox-ui 5.40.0 → 5.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/composite-core/index.d.ts +212 -12
- package/design-core/index.d.ts +694 -17
- package/fesm2022/vectoriox-iox-ui-actions-core.mjs +4 -3
- package/fesm2022/vectoriox-iox-ui-actions-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-composite-core.mjs +540 -124
- package/fesm2022/vectoriox-iox-ui-composite-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-design-core.mjs +843 -45
- package/fesm2022/vectoriox-iox-ui-design-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs +846 -17
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui.mjs +3945 -3914
- package/fesm2022/vectoriox-iox-ui.mjs.map +1 -1
- package/generation-core/index.d.ts +608 -4
- package/index.d.ts +22 -1
- package/package.json +1 -1
- package/src/actions-core/element-actions.ts +4 -3
- package/src/composite-core/accordion.ts +1 -0
- package/src/composite-core/card.ts +6 -4
- package/src/composite-core/composite-kinds.ts +42 -6
- package/src/composite-core/exclusive-runtime.ts +60 -10
- package/src/composite-core/exclusive.ts +64 -0
- package/src/composite-core/public-api.ts +5 -2
- package/src/composite-core/segmented.ts +351 -0
- package/src/composite-core/structure.ts +6 -1
- package/src/composite-core/tabs.ts +6 -3
- package/src/design-core/contrast-audit.ts +8 -3
- package/src/design-core/flavor-spec.generated.ts +832 -41
- package/src/generation-core/compose-site.ts +170 -12
- package/src/generation-core/node-baselines.generated.ts +49 -0
- package/src/generation-core/patterns.ts +21 -0
- package/src/generation-core/site-spec.generated.ts +639 -0
- package/styles/iox-design.css +19 -0
|
@@ -892,6 +892,556 @@ declare const SPEC_SITE_PATTERNS: {
|
|
|
892
892
|
}];
|
|
893
893
|
};
|
|
894
894
|
};
|
|
895
|
+
readonly "pricing.tiers": {
|
|
896
|
+
readonly family: "pricing";
|
|
897
|
+
readonly label: "Pricing — plans with a monthly / yearly switch";
|
|
898
|
+
readonly node: {
|
|
899
|
+
readonly t: "Section";
|
|
900
|
+
readonly es: "section";
|
|
901
|
+
readonly c: readonly [{
|
|
902
|
+
readonly t: "Container";
|
|
903
|
+
readonly es: "box";
|
|
904
|
+
readonly lay: {
|
|
905
|
+
readonly display: "flex";
|
|
906
|
+
readonly flexDirection: "column";
|
|
907
|
+
readonly gap: "8px";
|
|
908
|
+
readonly alignItems: "center";
|
|
909
|
+
readonly textAlign: "center";
|
|
910
|
+
};
|
|
911
|
+
readonly c: readonly [{
|
|
912
|
+
readonly t: "Text";
|
|
913
|
+
readonly es: "eyebrow";
|
|
914
|
+
readonly slot: "eyebrow";
|
|
915
|
+
readonly ph: "copy";
|
|
916
|
+
readonly text: "Pricing";
|
|
917
|
+
readonly lay: {
|
|
918
|
+
readonly textAlign: "center";
|
|
919
|
+
};
|
|
920
|
+
}, {
|
|
921
|
+
readonly t: "Heading";
|
|
922
|
+
readonly es: "h2";
|
|
923
|
+
readonly level: "h2";
|
|
924
|
+
readonly slot: "title";
|
|
925
|
+
readonly ph: "copy";
|
|
926
|
+
readonly text: "Plans";
|
|
927
|
+
readonly lay: {
|
|
928
|
+
readonly textAlign: "center";
|
|
929
|
+
};
|
|
930
|
+
}];
|
|
931
|
+
}, {
|
|
932
|
+
readonly t: "Container";
|
|
933
|
+
readonly recipe: "segmented";
|
|
934
|
+
readonly name: "Billing period";
|
|
935
|
+
readonly lay: {
|
|
936
|
+
readonly alignSelf: "center";
|
|
937
|
+
};
|
|
938
|
+
readonly resp: {
|
|
939
|
+
readonly mobile: {
|
|
940
|
+
readonly position: "sticky";
|
|
941
|
+
readonly top: "calc(12px + env(safe-area-inset-top, 0px))";
|
|
942
|
+
readonly zIndex: "2";
|
|
943
|
+
readonly width: "100%";
|
|
944
|
+
};
|
|
945
|
+
};
|
|
946
|
+
}, {
|
|
947
|
+
readonly t: "Container";
|
|
948
|
+
readonly es: "box";
|
|
949
|
+
readonly layer: "Plans";
|
|
950
|
+
readonly lay: {
|
|
951
|
+
readonly display: "grid";
|
|
952
|
+
readonly gridTemplateColumns: "repeat(3, minmax(0, 1fr))";
|
|
953
|
+
readonly gap: "var(--iox-space-gap)";
|
|
954
|
+
readonly alignItems: "stretch";
|
|
955
|
+
};
|
|
956
|
+
readonly resp: {
|
|
957
|
+
readonly mobile: {
|
|
958
|
+
readonly gridTemplateColumns: "minmax(0, 1fr)";
|
|
959
|
+
};
|
|
960
|
+
};
|
|
961
|
+
readonly c: readonly [{
|
|
962
|
+
readonly t: "Container";
|
|
963
|
+
readonly recipe: "card";
|
|
964
|
+
readonly layout: "top";
|
|
965
|
+
readonly ph: "copy";
|
|
966
|
+
readonly parts: {
|
|
967
|
+
readonly media: false;
|
|
968
|
+
readonly eyebrow: false;
|
|
969
|
+
readonly badge: false;
|
|
970
|
+
readonly actions: false;
|
|
971
|
+
};
|
|
972
|
+
readonly words: {
|
|
973
|
+
readonly title: "First plan";
|
|
974
|
+
readonly text: "Who this plan is for, in one sentence.";
|
|
975
|
+
};
|
|
976
|
+
readonly c: readonly [{
|
|
977
|
+
readonly t: "Container";
|
|
978
|
+
readonly es: "box";
|
|
979
|
+
readonly layer: "Price · Monthly";
|
|
980
|
+
readonly shownWhen: "monthly";
|
|
981
|
+
readonly lay: {
|
|
982
|
+
readonly display: "flex";
|
|
983
|
+
readonly alignItems: "baseline";
|
|
984
|
+
readonly flexWrap: "wrap";
|
|
985
|
+
readonly gap: "6px";
|
|
986
|
+
};
|
|
987
|
+
readonly c: readonly [{
|
|
988
|
+
readonly t: "Text";
|
|
989
|
+
readonly es: "price";
|
|
990
|
+
readonly ph: "price";
|
|
991
|
+
readonly text: "Monthly price";
|
|
992
|
+
readonly lay: {
|
|
993
|
+
readonly width: "auto";
|
|
994
|
+
};
|
|
995
|
+
}, {
|
|
996
|
+
readonly t: "Text";
|
|
997
|
+
readonly es: "small";
|
|
998
|
+
readonly text: "per month";
|
|
999
|
+
readonly lay: {
|
|
1000
|
+
readonly width: "auto";
|
|
1001
|
+
};
|
|
1002
|
+
}];
|
|
1003
|
+
}, {
|
|
1004
|
+
readonly t: "Container";
|
|
1005
|
+
readonly es: "box";
|
|
1006
|
+
readonly layer: "Price · Yearly";
|
|
1007
|
+
readonly shownWhen: "yearly";
|
|
1008
|
+
readonly lay: {
|
|
1009
|
+
readonly display: "flex";
|
|
1010
|
+
readonly alignItems: "baseline";
|
|
1011
|
+
readonly flexWrap: "wrap";
|
|
1012
|
+
readonly gap: "6px";
|
|
1013
|
+
};
|
|
1014
|
+
readonly c: readonly [{
|
|
1015
|
+
readonly t: "Text";
|
|
1016
|
+
readonly es: "price";
|
|
1017
|
+
readonly ph: "price";
|
|
1018
|
+
readonly text: "Yearly price";
|
|
1019
|
+
readonly lay: {
|
|
1020
|
+
readonly width: "auto";
|
|
1021
|
+
};
|
|
1022
|
+
}, {
|
|
1023
|
+
readonly t: "Text";
|
|
1024
|
+
readonly es: "small";
|
|
1025
|
+
readonly text: "per year";
|
|
1026
|
+
readonly lay: {
|
|
1027
|
+
readonly width: "auto";
|
|
1028
|
+
};
|
|
1029
|
+
}];
|
|
1030
|
+
}, {
|
|
1031
|
+
readonly t: "Container";
|
|
1032
|
+
readonly es: "box";
|
|
1033
|
+
readonly layer: "Includes";
|
|
1034
|
+
readonly lay: {
|
|
1035
|
+
readonly display: "flex";
|
|
1036
|
+
readonly flexDirection: "column";
|
|
1037
|
+
readonly gap: "8px";
|
|
1038
|
+
};
|
|
1039
|
+
readonly c: readonly [{
|
|
1040
|
+
readonly t: "Container";
|
|
1041
|
+
readonly es: "box";
|
|
1042
|
+
readonly lay: {
|
|
1043
|
+
readonly display: "flex";
|
|
1044
|
+
readonly flexWrap: "nowrap";
|
|
1045
|
+
readonly gap: "8px";
|
|
1046
|
+
readonly alignItems: "center";
|
|
1047
|
+
};
|
|
1048
|
+
readonly c: readonly [{
|
|
1049
|
+
readonly t: "Icon";
|
|
1050
|
+
readonly es: "icon";
|
|
1051
|
+
readonly icon: "ph ph-check";
|
|
1052
|
+
}, {
|
|
1053
|
+
readonly t: "Text";
|
|
1054
|
+
readonly es: "body";
|
|
1055
|
+
readonly ph: "copy";
|
|
1056
|
+
readonly text: "What this plan includes";
|
|
1057
|
+
}];
|
|
1058
|
+
}, {
|
|
1059
|
+
readonly t: "Container";
|
|
1060
|
+
readonly es: "box";
|
|
1061
|
+
readonly lay: {
|
|
1062
|
+
readonly display: "flex";
|
|
1063
|
+
readonly flexWrap: "nowrap";
|
|
1064
|
+
readonly gap: "8px";
|
|
1065
|
+
readonly alignItems: "center";
|
|
1066
|
+
};
|
|
1067
|
+
readonly c: readonly [{
|
|
1068
|
+
readonly t: "Icon";
|
|
1069
|
+
readonly es: "icon";
|
|
1070
|
+
readonly icon: "ph ph-check";
|
|
1071
|
+
}, {
|
|
1072
|
+
readonly t: "Text";
|
|
1073
|
+
readonly es: "body";
|
|
1074
|
+
readonly ph: "copy";
|
|
1075
|
+
readonly text: "What this plan includes";
|
|
1076
|
+
}];
|
|
1077
|
+
}, {
|
|
1078
|
+
readonly t: "Container";
|
|
1079
|
+
readonly es: "box";
|
|
1080
|
+
readonly lay: {
|
|
1081
|
+
readonly display: "flex";
|
|
1082
|
+
readonly flexWrap: "nowrap";
|
|
1083
|
+
readonly gap: "8px";
|
|
1084
|
+
readonly alignItems: "center";
|
|
1085
|
+
};
|
|
1086
|
+
readonly c: readonly [{
|
|
1087
|
+
readonly t: "Icon";
|
|
1088
|
+
readonly es: "icon";
|
|
1089
|
+
readonly icon: "ph ph-check";
|
|
1090
|
+
}, {
|
|
1091
|
+
readonly t: "Text";
|
|
1092
|
+
readonly es: "body";
|
|
1093
|
+
readonly ph: "copy";
|
|
1094
|
+
readonly text: "What this plan includes";
|
|
1095
|
+
}];
|
|
1096
|
+
}];
|
|
1097
|
+
}, {
|
|
1098
|
+
readonly t: "Container";
|
|
1099
|
+
readonly es: "box";
|
|
1100
|
+
readonly role: "card.actions";
|
|
1101
|
+
readonly layer: "Buttons";
|
|
1102
|
+
readonly lay: {
|
|
1103
|
+
readonly display: "flex";
|
|
1104
|
+
readonly flexWrap: "wrap";
|
|
1105
|
+
readonly gap: "8px";
|
|
1106
|
+
readonly alignItems: "center";
|
|
1107
|
+
readonly width: "100%";
|
|
1108
|
+
readonly margin: "auto 0px 0px 0px";
|
|
1109
|
+
readonly padding: "6px 0px 0px 0px";
|
|
1110
|
+
};
|
|
1111
|
+
readonly c: readonly [{
|
|
1112
|
+
readonly t: "ButtonBlock";
|
|
1113
|
+
readonly es: "button-primary";
|
|
1114
|
+
readonly href: "/contact";
|
|
1115
|
+
readonly text: "Choose this plan";
|
|
1116
|
+
}];
|
|
1117
|
+
}];
|
|
1118
|
+
}, {
|
|
1119
|
+
readonly t: "Container";
|
|
1120
|
+
readonly recipe: "card";
|
|
1121
|
+
readonly layout: "top";
|
|
1122
|
+
readonly ph: "copy";
|
|
1123
|
+
readonly scheme: "accent";
|
|
1124
|
+
readonly badge: "neutral";
|
|
1125
|
+
readonly icon: "ph ph-sparkle";
|
|
1126
|
+
readonly parts: {
|
|
1127
|
+
readonly media: false;
|
|
1128
|
+
readonly eyebrow: false;
|
|
1129
|
+
readonly badge: true;
|
|
1130
|
+
readonly actions: false;
|
|
1131
|
+
};
|
|
1132
|
+
readonly words: {
|
|
1133
|
+
readonly title: "Second plan";
|
|
1134
|
+
readonly text: "Who this plan is for, in one sentence.";
|
|
1135
|
+
readonly badge: "Most popular";
|
|
1136
|
+
};
|
|
1137
|
+
readonly c: readonly [{
|
|
1138
|
+
readonly t: "Container";
|
|
1139
|
+
readonly es: "box";
|
|
1140
|
+
readonly layer: "Price · Monthly";
|
|
1141
|
+
readonly shownWhen: "monthly";
|
|
1142
|
+
readonly lay: {
|
|
1143
|
+
readonly display: "flex";
|
|
1144
|
+
readonly alignItems: "baseline";
|
|
1145
|
+
readonly flexWrap: "wrap";
|
|
1146
|
+
readonly gap: "6px";
|
|
1147
|
+
};
|
|
1148
|
+
readonly c: readonly [{
|
|
1149
|
+
readonly t: "Text";
|
|
1150
|
+
readonly es: "price";
|
|
1151
|
+
readonly ph: "price";
|
|
1152
|
+
readonly text: "Monthly price";
|
|
1153
|
+
readonly lay: {
|
|
1154
|
+
readonly width: "auto";
|
|
1155
|
+
};
|
|
1156
|
+
}, {
|
|
1157
|
+
readonly t: "Text";
|
|
1158
|
+
readonly es: "small";
|
|
1159
|
+
readonly text: "per month";
|
|
1160
|
+
readonly lay: {
|
|
1161
|
+
readonly width: "auto";
|
|
1162
|
+
};
|
|
1163
|
+
}];
|
|
1164
|
+
}, {
|
|
1165
|
+
readonly t: "Container";
|
|
1166
|
+
readonly es: "box";
|
|
1167
|
+
readonly layer: "Price · Yearly";
|
|
1168
|
+
readonly shownWhen: "yearly";
|
|
1169
|
+
readonly lay: {
|
|
1170
|
+
readonly display: "flex";
|
|
1171
|
+
readonly alignItems: "baseline";
|
|
1172
|
+
readonly flexWrap: "wrap";
|
|
1173
|
+
readonly gap: "6px";
|
|
1174
|
+
};
|
|
1175
|
+
readonly c: readonly [{
|
|
1176
|
+
readonly t: "Text";
|
|
1177
|
+
readonly es: "price";
|
|
1178
|
+
readonly ph: "price";
|
|
1179
|
+
readonly text: "Yearly price";
|
|
1180
|
+
readonly lay: {
|
|
1181
|
+
readonly width: "auto";
|
|
1182
|
+
};
|
|
1183
|
+
}, {
|
|
1184
|
+
readonly t: "Text";
|
|
1185
|
+
readonly es: "small";
|
|
1186
|
+
readonly text: "per year";
|
|
1187
|
+
readonly lay: {
|
|
1188
|
+
readonly width: "auto";
|
|
1189
|
+
};
|
|
1190
|
+
}];
|
|
1191
|
+
}, {
|
|
1192
|
+
readonly t: "Container";
|
|
1193
|
+
readonly es: "box";
|
|
1194
|
+
readonly layer: "Includes";
|
|
1195
|
+
readonly lay: {
|
|
1196
|
+
readonly display: "flex";
|
|
1197
|
+
readonly flexDirection: "column";
|
|
1198
|
+
readonly gap: "8px";
|
|
1199
|
+
};
|
|
1200
|
+
readonly c: readonly [{
|
|
1201
|
+
readonly t: "Container";
|
|
1202
|
+
readonly es: "box";
|
|
1203
|
+
readonly lay: {
|
|
1204
|
+
readonly display: "flex";
|
|
1205
|
+
readonly flexWrap: "nowrap";
|
|
1206
|
+
readonly gap: "8px";
|
|
1207
|
+
readonly alignItems: "center";
|
|
1208
|
+
};
|
|
1209
|
+
readonly c: readonly [{
|
|
1210
|
+
readonly t: "Icon";
|
|
1211
|
+
readonly es: "icon";
|
|
1212
|
+
readonly icon: "ph ph-check";
|
|
1213
|
+
}, {
|
|
1214
|
+
readonly t: "Text";
|
|
1215
|
+
readonly es: "body";
|
|
1216
|
+
readonly ph: "copy";
|
|
1217
|
+
readonly text: "What this plan includes";
|
|
1218
|
+
}];
|
|
1219
|
+
}, {
|
|
1220
|
+
readonly t: "Container";
|
|
1221
|
+
readonly es: "box";
|
|
1222
|
+
readonly lay: {
|
|
1223
|
+
readonly display: "flex";
|
|
1224
|
+
readonly flexWrap: "nowrap";
|
|
1225
|
+
readonly gap: "8px";
|
|
1226
|
+
readonly alignItems: "center";
|
|
1227
|
+
};
|
|
1228
|
+
readonly c: readonly [{
|
|
1229
|
+
readonly t: "Icon";
|
|
1230
|
+
readonly es: "icon";
|
|
1231
|
+
readonly icon: "ph ph-check";
|
|
1232
|
+
}, {
|
|
1233
|
+
readonly t: "Text";
|
|
1234
|
+
readonly es: "body";
|
|
1235
|
+
readonly ph: "copy";
|
|
1236
|
+
readonly text: "What this plan includes";
|
|
1237
|
+
}];
|
|
1238
|
+
}, {
|
|
1239
|
+
readonly t: "Container";
|
|
1240
|
+
readonly es: "box";
|
|
1241
|
+
readonly lay: {
|
|
1242
|
+
readonly display: "flex";
|
|
1243
|
+
readonly flexWrap: "nowrap";
|
|
1244
|
+
readonly gap: "8px";
|
|
1245
|
+
readonly alignItems: "center";
|
|
1246
|
+
};
|
|
1247
|
+
readonly c: readonly [{
|
|
1248
|
+
readonly t: "Icon";
|
|
1249
|
+
readonly es: "icon";
|
|
1250
|
+
readonly icon: "ph ph-check";
|
|
1251
|
+
}, {
|
|
1252
|
+
readonly t: "Text";
|
|
1253
|
+
readonly es: "body";
|
|
1254
|
+
readonly ph: "copy";
|
|
1255
|
+
readonly text: "What this plan includes";
|
|
1256
|
+
}];
|
|
1257
|
+
}];
|
|
1258
|
+
}, {
|
|
1259
|
+
readonly t: "Container";
|
|
1260
|
+
readonly es: "box";
|
|
1261
|
+
readonly role: "card.actions";
|
|
1262
|
+
readonly layer: "Buttons";
|
|
1263
|
+
readonly lay: {
|
|
1264
|
+
readonly display: "flex";
|
|
1265
|
+
readonly flexWrap: "wrap";
|
|
1266
|
+
readonly gap: "8px";
|
|
1267
|
+
readonly alignItems: "center";
|
|
1268
|
+
readonly width: "100%";
|
|
1269
|
+
readonly margin: "auto 0px 0px 0px";
|
|
1270
|
+
readonly padding: "6px 0px 0px 0px";
|
|
1271
|
+
};
|
|
1272
|
+
readonly c: readonly [{
|
|
1273
|
+
readonly t: "ButtonBlock";
|
|
1274
|
+
readonly es: "button-primary";
|
|
1275
|
+
readonly href: "/contact";
|
|
1276
|
+
readonly text: "Choose this plan";
|
|
1277
|
+
}];
|
|
1278
|
+
}];
|
|
1279
|
+
}, {
|
|
1280
|
+
readonly t: "Container";
|
|
1281
|
+
readonly recipe: "card";
|
|
1282
|
+
readonly layout: "top";
|
|
1283
|
+
readonly ph: "copy";
|
|
1284
|
+
readonly parts: {
|
|
1285
|
+
readonly media: false;
|
|
1286
|
+
readonly eyebrow: false;
|
|
1287
|
+
readonly badge: false;
|
|
1288
|
+
readonly actions: false;
|
|
1289
|
+
};
|
|
1290
|
+
readonly words: {
|
|
1291
|
+
readonly title: "Third plan";
|
|
1292
|
+
readonly text: "Who this plan is for, in one sentence.";
|
|
1293
|
+
};
|
|
1294
|
+
readonly c: readonly [{
|
|
1295
|
+
readonly t: "Container";
|
|
1296
|
+
readonly es: "box";
|
|
1297
|
+
readonly layer: "Price · Monthly";
|
|
1298
|
+
readonly shownWhen: "monthly";
|
|
1299
|
+
readonly lay: {
|
|
1300
|
+
readonly display: "flex";
|
|
1301
|
+
readonly alignItems: "baseline";
|
|
1302
|
+
readonly flexWrap: "wrap";
|
|
1303
|
+
readonly gap: "6px";
|
|
1304
|
+
};
|
|
1305
|
+
readonly c: readonly [{
|
|
1306
|
+
readonly t: "Text";
|
|
1307
|
+
readonly es: "price";
|
|
1308
|
+
readonly ph: "price";
|
|
1309
|
+
readonly text: "Monthly price";
|
|
1310
|
+
readonly lay: {
|
|
1311
|
+
readonly width: "auto";
|
|
1312
|
+
};
|
|
1313
|
+
}, {
|
|
1314
|
+
readonly t: "Text";
|
|
1315
|
+
readonly es: "small";
|
|
1316
|
+
readonly text: "per month";
|
|
1317
|
+
readonly lay: {
|
|
1318
|
+
readonly width: "auto";
|
|
1319
|
+
};
|
|
1320
|
+
}];
|
|
1321
|
+
}, {
|
|
1322
|
+
readonly t: "Container";
|
|
1323
|
+
readonly es: "box";
|
|
1324
|
+
readonly layer: "Price · Yearly";
|
|
1325
|
+
readonly shownWhen: "yearly";
|
|
1326
|
+
readonly lay: {
|
|
1327
|
+
readonly display: "flex";
|
|
1328
|
+
readonly alignItems: "baseline";
|
|
1329
|
+
readonly flexWrap: "wrap";
|
|
1330
|
+
readonly gap: "6px";
|
|
1331
|
+
};
|
|
1332
|
+
readonly c: readonly [{
|
|
1333
|
+
readonly t: "Text";
|
|
1334
|
+
readonly es: "price";
|
|
1335
|
+
readonly ph: "price";
|
|
1336
|
+
readonly text: "Yearly price";
|
|
1337
|
+
readonly lay: {
|
|
1338
|
+
readonly width: "auto";
|
|
1339
|
+
};
|
|
1340
|
+
}, {
|
|
1341
|
+
readonly t: "Text";
|
|
1342
|
+
readonly es: "small";
|
|
1343
|
+
readonly text: "per year";
|
|
1344
|
+
readonly lay: {
|
|
1345
|
+
readonly width: "auto";
|
|
1346
|
+
};
|
|
1347
|
+
}];
|
|
1348
|
+
}, {
|
|
1349
|
+
readonly t: "Container";
|
|
1350
|
+
readonly es: "box";
|
|
1351
|
+
readonly layer: "Includes";
|
|
1352
|
+
readonly lay: {
|
|
1353
|
+
readonly display: "flex";
|
|
1354
|
+
readonly flexDirection: "column";
|
|
1355
|
+
readonly gap: "8px";
|
|
1356
|
+
};
|
|
1357
|
+
readonly c: readonly [{
|
|
1358
|
+
readonly t: "Container";
|
|
1359
|
+
readonly es: "box";
|
|
1360
|
+
readonly lay: {
|
|
1361
|
+
readonly display: "flex";
|
|
1362
|
+
readonly flexWrap: "nowrap";
|
|
1363
|
+
readonly gap: "8px";
|
|
1364
|
+
readonly alignItems: "center";
|
|
1365
|
+
};
|
|
1366
|
+
readonly c: readonly [{
|
|
1367
|
+
readonly t: "Icon";
|
|
1368
|
+
readonly es: "icon";
|
|
1369
|
+
readonly icon: "ph ph-check";
|
|
1370
|
+
}, {
|
|
1371
|
+
readonly t: "Text";
|
|
1372
|
+
readonly es: "body";
|
|
1373
|
+
readonly ph: "copy";
|
|
1374
|
+
readonly text: "What this plan includes";
|
|
1375
|
+
}];
|
|
1376
|
+
}, {
|
|
1377
|
+
readonly t: "Container";
|
|
1378
|
+
readonly es: "box";
|
|
1379
|
+
readonly lay: {
|
|
1380
|
+
readonly display: "flex";
|
|
1381
|
+
readonly flexWrap: "nowrap";
|
|
1382
|
+
readonly gap: "8px";
|
|
1383
|
+
readonly alignItems: "center";
|
|
1384
|
+
};
|
|
1385
|
+
readonly c: readonly [{
|
|
1386
|
+
readonly t: "Icon";
|
|
1387
|
+
readonly es: "icon";
|
|
1388
|
+
readonly icon: "ph ph-check";
|
|
1389
|
+
}, {
|
|
1390
|
+
readonly t: "Text";
|
|
1391
|
+
readonly es: "body";
|
|
1392
|
+
readonly ph: "copy";
|
|
1393
|
+
readonly text: "What this plan includes";
|
|
1394
|
+
}];
|
|
1395
|
+
}, {
|
|
1396
|
+
readonly t: "Container";
|
|
1397
|
+
readonly es: "box";
|
|
1398
|
+
readonly lay: {
|
|
1399
|
+
readonly display: "flex";
|
|
1400
|
+
readonly flexWrap: "nowrap";
|
|
1401
|
+
readonly gap: "8px";
|
|
1402
|
+
readonly alignItems: "center";
|
|
1403
|
+
};
|
|
1404
|
+
readonly c: readonly [{
|
|
1405
|
+
readonly t: "Icon";
|
|
1406
|
+
readonly es: "icon";
|
|
1407
|
+
readonly icon: "ph ph-check";
|
|
1408
|
+
}, {
|
|
1409
|
+
readonly t: "Text";
|
|
1410
|
+
readonly es: "body";
|
|
1411
|
+
readonly ph: "copy";
|
|
1412
|
+
readonly text: "What this plan includes";
|
|
1413
|
+
}];
|
|
1414
|
+
}];
|
|
1415
|
+
}, {
|
|
1416
|
+
readonly t: "Container";
|
|
1417
|
+
readonly es: "box";
|
|
1418
|
+
readonly role: "card.actions";
|
|
1419
|
+
readonly layer: "Buttons";
|
|
1420
|
+
readonly lay: {
|
|
1421
|
+
readonly display: "flex";
|
|
1422
|
+
readonly flexWrap: "wrap";
|
|
1423
|
+
readonly gap: "8px";
|
|
1424
|
+
readonly alignItems: "center";
|
|
1425
|
+
readonly width: "100%";
|
|
1426
|
+
readonly margin: "auto 0px 0px 0px";
|
|
1427
|
+
readonly padding: "6px 0px 0px 0px";
|
|
1428
|
+
};
|
|
1429
|
+
readonly c: readonly [{
|
|
1430
|
+
readonly t: "ButtonBlock";
|
|
1431
|
+
readonly es: "button-primary";
|
|
1432
|
+
readonly href: "/contact";
|
|
1433
|
+
readonly text: "Choose this plan";
|
|
1434
|
+
}];
|
|
1435
|
+
}];
|
|
1436
|
+
}];
|
|
1437
|
+
}];
|
|
1438
|
+
readonly lay: {
|
|
1439
|
+
readonly display: "flex";
|
|
1440
|
+
readonly flexDirection: "column";
|
|
1441
|
+
readonly gap: "32px";
|
|
1442
|
+
};
|
|
1443
|
+
};
|
|
1444
|
+
};
|
|
895
1445
|
readonly "hero.full-bleed-media": {
|
|
896
1446
|
readonly family: "hero";
|
|
897
1447
|
readonly label: "Hero — words over a background video";
|
|
@@ -1395,6 +1945,13 @@ interface SitePlan {
|
|
|
1395
1945
|
* `binds`, a binding path per part: `image`, `eyebrow`, `title`, `text`; `href` + `param` link the whole card
|
|
1396
1946
|
* through its title). A header pattern's `phoneMenu` names its phone shape (drawer · bar · both), stamped by
|
|
1397
1947
|
* `planNavShape` (CC1).
|
|
1948
|
+
*
|
|
1949
|
+
* CC4b (`pricing.tiers`): `recipe: 'segmented'` stamps a Segmented control (Monthly · Yearly, named by `name`, its own
|
|
1950
|
+
* `lay` / `resp`) · `shownWhen` hides a node at base and shows it while the pattern's segmented option of that key is
|
|
1951
|
+
* on (the targeted `trigger-on`) · `ph: 'price'` a price the studio types (a publish-blocking placeholder showing its
|
|
1952
|
+
* label) · on a card recipe: `words` (title / text / badge), `badge` (the badge's tone) and `icon` (its glyph), `scheme`
|
|
1953
|
+
* (the Brand card), and `c` — nodes joining its Content column · `icon` an Icon's glyph · `layer` the node's name in the
|
|
1954
|
+
* layer tree.
|
|
1398
1955
|
*/
|
|
1399
1956
|
interface PatternNode {
|
|
1400
1957
|
readonly t: string;
|
|
@@ -1433,6 +1990,16 @@ interface PatternNode {
|
|
|
1433
1990
|
readonly opens?: string;
|
|
1434
1991
|
/** CC3: a control's accessible name (`ariaLabel`). */
|
|
1435
1992
|
readonly name?: string;
|
|
1993
|
+
/** CC4b: hidden at base, shown while the pattern's Segmented option with this key is on. */
|
|
1994
|
+
readonly shownWhen?: string;
|
|
1995
|
+
/** CC4b: a card recipe's words (its title, text, badge). */
|
|
1996
|
+
readonly words?: Readonly<Record<string, string>>;
|
|
1997
|
+
/** CC4b: a card recipe's badge tone (`neutral` · `success` · `warning` · `accent`). */
|
|
1998
|
+
readonly badge?: string;
|
|
1999
|
+
/** CC4b: an Icon's glyph (`ph ph-check`) — on a card recipe, its badge's glyph. */
|
|
2000
|
+
readonly icon?: string;
|
|
2001
|
+
/** CC4b: the node's name in the layer tree (`Price · Monthly`). */
|
|
2002
|
+
readonly layer?: string;
|
|
1436
2003
|
}
|
|
1437
2004
|
/** The composite-core recipes a pattern may stamp (`recipe`). */
|
|
1438
2005
|
declare enum PatternRecipe {
|
|
@@ -1443,6 +2010,8 @@ declare enum PatternRecipe {
|
|
|
1443
2010
|
/** CC4a: Tabs — Manual (three placeholder tabs), or From content when the section names a list `binding`: the tab
|
|
1444
2011
|
* list and the panels are both Repeaters over it, one row giving its tab AND its panel. */
|
|
1445
2012
|
Tabs = "tabs",
|
|
2013
|
+
/** CC4b: the Segmented control — Monthly · Yearly, named by the pattern (`name`). */
|
|
2014
|
+
Segmented = "segmented",
|
|
1446
2015
|
/** CC3: the accessible carousel — a named Slider whose controls are parts, one quote per slide (placeholders). */
|
|
1447
2016
|
Carousel = "carousel",
|
|
1448
2017
|
/** CC3: the Lightbox — a Dialog holding a Slider over the node's `src` (the gallery's own source). */
|
|
@@ -1476,7 +2045,9 @@ declare enum PatternPlaceholder {
|
|
|
1476
2045
|
Copy = "copy",
|
|
1477
2046
|
Image = "image",
|
|
1478
2047
|
/** CC3: a clip the studio uploads (a Video's file): the poster blank until then, publish-blocking. */
|
|
1479
|
-
Video = "video"
|
|
2048
|
+
Video = "video",
|
|
2049
|
+
/** CC4b (Q37): a price the studio types — free text, publish-blocking, its label shown meanwhile, never a number. */
|
|
2050
|
+
Price = "price"
|
|
1480
2051
|
}
|
|
1481
2052
|
/** CC3: what an `opens` node opens. */
|
|
1482
2053
|
declare enum PatternOpens {
|
|
@@ -1707,8 +2278,16 @@ declare enum PlaceholderKind {
|
|
|
1707
2278
|
/** An image slot with no image: the empty-image placeholder (DS3). */
|
|
1708
2279
|
Image = "image",
|
|
1709
2280
|
/** CC3: a video slot with no clip — the studio uploads its own (the poster blank meanwhile). */
|
|
1710
|
-
Video = "video"
|
|
2281
|
+
Video = "video",
|
|
2282
|
+
/** CC4b (Q37): a price — a FACT the customer could be held to. Free text the studio types ("₪ 1,200", "From $40",
|
|
2283
|
+
* "On request"); its label shows meanwhile ("Monthly price"), never a number. No currency model. */
|
|
2284
|
+
Price = "price"
|
|
1711
2285
|
}
|
|
2286
|
+
/** The placeholders a page cannot be published with unfilled (W4's gate): a fact, a price, the studio's own video.
|
|
2287
|
+
* Copy and an empty image are the author's to rewrite, never blocking. */
|
|
2288
|
+
declare const PUBLISH_BLOCKING_PLACEHOLDERS: ReadonlySet<PlaceholderKind>;
|
|
2289
|
+
/** True when a placeholder of `kind` blocks publishing until the studio fills it. */
|
|
2290
|
+
declare function blocksPublish(kind: PlaceholderKind): boolean;
|
|
1712
2291
|
interface ComposedPlaceholder {
|
|
1713
2292
|
nodeId: string;
|
|
1714
2293
|
/** The page key, or the global slot (`header` / `footer`), the node lives in. */
|
|
@@ -1840,6 +2419,31 @@ declare function siteNavPages(pages: ReadonlyArray<SitePageRef>): SitePageRef[];
|
|
|
1840
2419
|
* no /contact page: an email to the business, else removed), and the pattern's phone shape. Pure.
|
|
1841
2420
|
*/
|
|
1842
2421
|
declare function composeNavHeader(input: NavHeaderInput, options: NavHeaderOptions): ComposedNavHeader;
|
|
2422
|
+
/** The pricing section (CC4b, board 10): plans with a Monthly / Yearly switch — the library and the palette, never a
|
|
2423
|
+
* Studio page (Q35). */
|
|
2424
|
+
declare const PRICING_PATTERN = "pricing.tiers";
|
|
2425
|
+
/** What a section is composed from when there is no Site Plan: the studio's name, its pages (the routes a link may
|
|
2426
|
+
* reach) and its facts. */
|
|
2427
|
+
interface SectionInput {
|
|
2428
|
+
readonly business?: SiteBusiness;
|
|
2429
|
+
readonly pages?: ReadonlyArray<SitePageRef>;
|
|
2430
|
+
}
|
|
2431
|
+
interface SectionOptions {
|
|
2432
|
+
/** The section's id; its parts' ids derive from it (`<id>-0-1-…`), so a fresh id gives fresh parts. */
|
|
2433
|
+
readonly id: string;
|
|
2434
|
+
}
|
|
2435
|
+
interface ComposedSection {
|
|
2436
|
+
section: SerializedNode;
|
|
2437
|
+
placeholders: ComposedPlaceholder[];
|
|
2438
|
+
issues: ComposeIssue[];
|
|
2439
|
+
}
|
|
2440
|
+
/**
|
|
2441
|
+
* ONE library pattern composed on its own — the builder palette's ready-made sections (CC4b: "Pricing", the
|
|
2442
|
+
* `pricing.tiers` pattern). THE SAME pattern and composer as `composeSite`: its words, its placeholders (a price shows
|
|
2443
|
+
* its label, never a number) and the one dangling-link rule — except a button to a page the studio lacks keeps its
|
|
2444
|
+
* words, unlinked, for the author to link. Pure.
|
|
2445
|
+
*/
|
|
2446
|
+
declare function composeSection(patternId: string, input: SectionInput, options: SectionOptions): ComposedSection;
|
|
1843
2447
|
|
|
1844
2448
|
/**
|
|
1845
2449
|
* The phone shapes of a navigation bar (complex-components plan CC1, §7a + R1; boards 1–3). ONE pure tree
|
|
@@ -1974,5 +2578,5 @@ declare function removeBarItem(globals: ReadonlyArray<SerializedNode>, itemId: s
|
|
|
1974
2578
|
/** The bar's Items list drag-to-reorder (board 2): item `from` moves to `to`. Input not mutated. */
|
|
1975
2579
|
declare function moveBarItem(globals: ReadonlyArray<SerializedNode>, from: number, to: number): BarItemsEditResult;
|
|
1976
2580
|
|
|
1977
|
-
export { BAR_ITEMS_MAX, BAR_ITEMS_MIN, BASELINE_ROLES, BaselineRole, BindScope, CardBindTarget, ComposeError, ComposeIssueCode, DANGLING_LINK_CODES, DEFAULT_PHONE_MENU_BREAKPOINT, FACT_KEYS, GlobalSlot, NAV_PART_LABELS, NAV_SHAPE_COPY, NEUTRAL_STYLE_PROPS, NODE_BASELINES, NavPagesSource, NavRole, NavShape, NavShapeError, PatternDirective, PatternGlobalPosition, PatternOpens, PatternPlaceholder, PatternRecipe, PhoneMenuBreakpoint, PlaceholderKind, PlanDataSourceMode, PlanDataSourceType, RelativeOp, SAMPLE_IMAGE_REF, SITE_FACT_LABELS, SITE_HEADER_PATTERN, SITE_PATTERNS, SITE_PLAN_VERSION, SITE_TEMPLATES, SPEC_SITE_FACTS, SPEC_SITE_PATTERNS, SPEC_SITE_PLAN_SHAPE, SPEC_SITE_TEMPLATES, STUDIO_TEMPLATE, SitePlanError, SitePlanIssueCode, SitePlanSourceKind, SiteTemplateError, SiteTemplateId, addBarItem, altSourceScopes, assertStyleSlots, assertValidSitePlan, barIconForRoute, composeNavHeader, composeSite, createSerializedNode, findNavRoot, moveBarItem, navPages, navShapeBreakpoint, navShapeOf, nextSourceOf, nodeBindPaths, parseSampleImageRef, patternById, patternNeedsBinding, patternNodes, patternOptionalParts, patternScopes, patternSlots, patternTakesBinding, phoneMenuPages, planFromTemplate, planNavShape, releasedLayoutDefaults, removeBarItem, requiredShapeKeys, routeParams, sampleImageRef, setStyleProps, shapeKeys, siteNavPages, validateSitePlan, walkSerialized };
|
|
1978
|
-
export type { AddBarItemResult, BarItemsEditResult, CmsDataSourcePlan, ComposeContext, ComposeIssue, ComposedDataSource, ComposedItem, ComposedNavHeader, ComposedPage, ComposedPlaceholder, ComposedRoute, ComposedSite, ContentFieldPlan, ContentSeedPlan, ContentTypePlan, CreateNodeOptions, DataSourcePlan, FactKey, NavHeaderInput, NavHeaderOptions, NavPage, NavShapeOptions, NavShapeResult, NodeBaseline, PagePlan, PageSectionPlan, PatternNode, RelativeDataSourcePlan, SerializedBinding, SerializedNode, SerializedResponsive, SiteBusiness, SitePageRef, SitePattern, SitePlan, SitePlanIssue, SitePlanSource, SitePlanValidation, SiteTemplate, TemplatePlanInput };
|
|
2581
|
+
export { BAR_ITEMS_MAX, BAR_ITEMS_MIN, BASELINE_ROLES, BaselineRole, BindScope, CardBindTarget, ComposeError, ComposeIssueCode, DANGLING_LINK_CODES, DEFAULT_PHONE_MENU_BREAKPOINT, FACT_KEYS, GlobalSlot, NAV_PART_LABELS, NAV_SHAPE_COPY, NEUTRAL_STYLE_PROPS, NODE_BASELINES, NavPagesSource, NavRole, NavShape, NavShapeError, PRICING_PATTERN, PUBLISH_BLOCKING_PLACEHOLDERS, PatternDirective, PatternGlobalPosition, PatternOpens, PatternPlaceholder, PatternRecipe, PhoneMenuBreakpoint, PlaceholderKind, PlanDataSourceMode, PlanDataSourceType, RelativeOp, SAMPLE_IMAGE_REF, SITE_FACT_LABELS, SITE_HEADER_PATTERN, SITE_PATTERNS, SITE_PLAN_VERSION, SITE_TEMPLATES, SPEC_SITE_FACTS, SPEC_SITE_PATTERNS, SPEC_SITE_PLAN_SHAPE, SPEC_SITE_TEMPLATES, STUDIO_TEMPLATE, SitePlanError, SitePlanIssueCode, SitePlanSourceKind, SiteTemplateError, SiteTemplateId, addBarItem, altSourceScopes, assertStyleSlots, assertValidSitePlan, barIconForRoute, blocksPublish, composeNavHeader, composeSection, composeSite, createSerializedNode, findNavRoot, moveBarItem, navPages, navShapeBreakpoint, navShapeOf, nextSourceOf, nodeBindPaths, parseSampleImageRef, patternById, patternNeedsBinding, patternNodes, patternOptionalParts, patternScopes, patternSlots, patternTakesBinding, phoneMenuPages, planFromTemplate, planNavShape, releasedLayoutDefaults, removeBarItem, requiredShapeKeys, routeParams, sampleImageRef, setStyleProps, shapeKeys, siteNavPages, validateSitePlan, walkSerialized };
|
|
2582
|
+
export type { AddBarItemResult, BarItemsEditResult, CmsDataSourcePlan, ComposeContext, ComposeIssue, ComposedDataSource, ComposedItem, ComposedNavHeader, ComposedPage, ComposedPlaceholder, ComposedRoute, ComposedSection, ComposedSite, ContentFieldPlan, ContentSeedPlan, ContentTypePlan, CreateNodeOptions, DataSourcePlan, FactKey, NavHeaderInput, NavHeaderOptions, NavPage, NavShapeOptions, NavShapeResult, NodeBaseline, PagePlan, PageSectionPlan, PatternNode, RelativeDataSourcePlan, SectionInput, SectionOptions, SerializedBinding, SerializedNode, SerializedResponsive, SiteBusiness, SitePageRef, SitePattern, SitePlan, SitePlanIssue, SitePlanSource, SitePlanValidation, SiteTemplate, TemplatePlanInput };
|